File kbd-setfont-quiet.patch of Package kbd

Index: kbd-2.7.1/docs/man/man8/setfont.8.gen
===================================================================
--- kbd-2.7.1.orig/docs/man/man8/setfont.8.gen
+++ kbd-2.7.1/docs/man/man8/setfont.8.gen
@@ -242,6 +242,10 @@ map even if the specified map is empty.
 \fB\-R\fR, \fB\-\-reset\fR
 Reset the screen font, size, and Unicode mapping to the bootup defaults.
 .TP
+\fB\-v\fR, \fB\-\-quiet\fR
+If kernel cannot load font, do not log error. This prevents ugly errors
+with systemd try-and-fail detection of a fully initialized console.
+.TP
 \fB\-v\fR, \fB\-\-verbose\fR
 Be verbose.
 .TP
Index: kbd-2.7.1/src/libkfont/context.c
===================================================================
--- kbd-2.7.1.orig/src/libkfont/context.c
+++ kbd-2.7.1/src/libkfont/context.c
@@ -84,6 +84,18 @@ kfont_inc_verbosity(struct kfont_context
 	ctx->verbose++;
 }
 
+int
+kfont_get_quietness(struct kfont_context *ctx)
+{
+	return ctx->quiet;
+}
+
+void
+kfont_set_quietness(struct kfont_context *ctx)
+{
+	ctx->quiet = 1;
+}
+
 void
 kfont_set_logger(struct kfont_context *ctx, kfont_logger_t fn)
 {
@@ -155,6 +167,7 @@ kfont_init(const char *prefix, struct kf
 
 	p->progname = prefix;
 	p->verbose = 0;
+	p->quiet = 0;
 	p->options = 0;
 	p->log_fn = log_stderr;
 	p->mapdirpath = mapdirpath;
Index: kbd-2.7.1/src/libkfont/kdfontop.c
===================================================================
--- kbd-2.7.1.orig/src/libkfont/kdfontop.c
+++ kbd-2.7.1/src/libkfont/kdfontop.c
@@ -209,7 +209,8 @@ put_font_kdfontop(struct kfont_context *
 		return 0;
 
 	if (errno == ENOSYS) {
-		KFONT_ERR(ctx, _("Unable to load such font with such kernel version"));
+		if (!kfont_get_quietness(ctx))
+			KFONT_ERR(ctx, _("Unable to load such font with such kernel version"));
 		return -1;
 	}
 
Index: kbd-2.7.1/src/setfont.c
===================================================================
--- kbd-2.7.1.orig/src/setfont.c
+++ kbd-2.7.1/src/setfont.c
@@ -186,6 +186,7 @@ int main(int argc, char *argv[])
 		{ "-d, --double",                    _("double size of font horizontally and vertically.") },
 		{ "-f, --force",                     _("force load unicode map.") },
 		{ "-R, --reset",                     _("reset the screen font, size, and unicode map to the bootup defaults.") },
+		{ "-q, --quiet",                     _("if kernel cannot load font, do not log error.") },
 		{ "-v, --verbose",                   _("be more verbose.") },
 		{ "-V, --version",                   _("print version number.") },
 		{ "-h, --help",                      _("print this usage message.") },
Index: kbd-2.7.1/src/libkfont/kfontP.h
===================================================================
--- kbd-2.7.1.orig/src/libkfont/kfontP.h
+++ kbd-2.7.1/src/libkfont/kfontP.h
@@ -20,6 +20,7 @@
 
 struct kfont_context {
 	const char *progname;
+	int quiet;
 	int verbose;
 	kfont_logger_t log_fn;
 
Index: kbd-2.7.1/src/libkfont/libkfont.map
===================================================================
--- kbd-2.7.1.orig/src/libkfont/libkfont.map
+++ kbd-2.7.1/src/libkfont/libkfont.map
@@ -29,6 +29,8 @@ KFONT_1.0 {
     kfont_write_psffont;
     kfont_read_unicodetable;
     kfont_write_unicodetable;
+    kfont_get_quietness;
+    kfont_set_quietness;
     kfont_get_verbosity;
     kfont_inc_verbosity;
     kfont_set_logger;
Index: kbd-2.7.1/src/include/kbd/kfont.h
===================================================================
--- kbd-2.7.1.orig/src/include/kbd/kfont.h
+++ kbd-2.7.1/src/include/kbd/kfont.h
@@ -124,6 +124,12 @@ enum kfont_option {
 	kfont_double_size,
 };
 
+int kfont_get_quietness(struct kfont_context *ctx)
+	KBD_ATTR_NONNULL(1);
+
+void kfont_set_quietness(struct kfont_context *ctx)
+	KBD_ATTR_NONNULL(1);
+
 int kfont_get_verbosity(struct kfont_context *ctx)
 	KBD_ATTR_NONNULL(1);
 
openSUSE Build Service is sponsored by