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);