Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kbd for openSUSE:Factory checked in 
at 2026-03-17 19:02:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kbd (Old)
 and      /work/SRC/openSUSE:Factory/.kbd.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kbd"

Tue Mar 17 19:02:22 2026 rev:130 rq:1339207 version:2.9.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kbd/kbd.changes  2026-03-06 18:16:54.643967157 
+0100
+++ /work/SRC/openSUSE:Factory/.kbd.new.8177/kbd.changes        2026-03-17 
19:03:29.930188412 +0100
@@ -1,0 +2,37 @@
+Mon Mar 16 05:45:52 UTC 2026 - Stanislav Brabec <[email protected]>
+
+- Fix conversion of h and H fr-afnor xkb keymap (boo#1259269).
+
+-------------------------------------------------------------------
+Mon Mar 16 01:39:40 UTC 2026 - Stanislav Brabec <[email protected]>
+
+- Replace setfont --quiet (kbd-setfont-quiet.patch) by upstream
+  solution: add setfont --check that checks for setfont
+  availability without logging errors (boo#1212970,
+  kbd-setfont-check.patch).
+
+-------------------------------------------------------------------
+Mon Mar 16 01:33:11 UTC 2026 - Stanislav Brabec <[email protected]>
+
+- Update to version 2.9.0:
+  * keymaps:
+    + Add Georgian font (LatCyrHebKa-16_GIA.psfu)
+      and keymap (i386/qwerty/ge).
+    + Add new i386 azerty afnor keymap (i386/azerty/fr-afnor).
+    + Disable characters >=U+F000 in qwertz/de_alt_UTF-8
+      (drop kbd-unicode-fxxx.patch).
+    + Add console keymap for Mac swiss german keyboards.
+  * libkeymap:
+    + Support KT_DEAD2 diacritics.
+    + Fix memory leaks.
+  * libkbdfile:
+    + Detect archive type based on content.
+    + Add support for decompressing files without using utilities.
+      Use ELF_DLOPEN_METADATA if possible.
+  * utils:
+    + kbd_mode: support Disabled mode (K_OFF).
+    + loadkeys: Add --tkeymap to dump the keymap as text.
+- Drop kbd-2.7.1-reproducible-gzip.patch, now handled by the
+  upstream.
+
+-------------------------------------------------------------------

Old:
----
  kbd-2.7.1-reproducible-gzip.patch
  kbd-2.7.1.tar.sign
  kbd-2.7.1.tar.xz
  kbd-setfont-quiet.patch
  kbd-unicode-fxxx.patch

New:
----
  kbd-2.9.0.tar.sign
  kbd-2.9.0.tar.xz
  kbd-setfont-check.patch

----------(Old B)----------
  Old:    + loadkeys: Add --tkeymap to dump the keymap as text.
- Drop kbd-2.7.1-reproducible-gzip.patch, now handled by the
  upstream.
  Old:
- Replace setfont --quiet (kbd-setfont-quiet.patch) by upstream
  solution: add setfont --check that checks for setfont
  Old:    + Disable characters >=U+F000 in qwertz/de_alt_UTF-8
      (drop kbd-unicode-fxxx.patch).
    + Add console keymap for Mac swiss german keyboards.
----------(Old E)----------

----------(New B)----------
  New:  availability without logging errors (boo#1212970,
  kbd-setfont-check.patch).
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kbd.spec ++++++
--- /var/tmp/diff_new_pack.0ayPUS/_old  2026-03-17 19:03:31.394249085 +0100
+++ /var/tmp/diff_new_pack.0ayPUS/_new  2026-03-17 19:03:31.398249251 +0100
@@ -24,7 +24,7 @@
 %define legacy_folders amiga,atari,include,mac,pine,ppc,sun
 
 Name:           kbd
-Version:        2.7.1
+Version:        2.9.0
 Release:        0
 Summary:        Keyboard and Font Utilities
 # git: git://git.altlinux.org/people/legion/packages/kbd.git
@@ -59,12 +59,8 @@
 Patch13:        kbd-1.15.5-loadkeys-search-path.patch
 # PATCH-FEATURE-OPENSUSE kbdsettings-nox86.patch [email protected] -- Disable 
"bios" option for NumLock settings on non x86 platforms.
 Patch14:        kbdsettings-nox86.patch
-# PATCH-FIX-SLE kbd-unicode-fxxx.patch [email protected] bsc1085432 -- Do not 
cause error on UNICODE characters >= 0xF000 (e. g. ligature fi)
-Patch15:        kbd-unicode-fxxx.patch
-# PATCH-FIX-UPSTREAM bsc#1240348 -- for reproducible builds
-Patch16:        
https://github.com/legionus/kbd/commit/eebaa3b69efd9e3d218f3436dc43ff3340020ef5.patch#/kbd-2.7.1-reproducible-gzip.patch
-# PATCH-FIX-OPENSUSE kbd-setfont-quiet.patch boo1212970 [email protected] -- 
Implement setfont --quiet to suppress warning from systemd-vconsole-setup.
-Patch17:        kbd-setfont-quiet.patch
+# PATCH-FIX-OPENSUSE kbd-setfont-check.patch boo1212970 [email protected] -- 
Implement setfont --check that checks for setfont availability without logging 
errors.
+Patch17:        kbd-setfont-check.patch
 BuildRequires:  autoconf
 BuildRequires:  automake
 BuildRequires:  bison
@@ -191,6 +187,8 @@
 %ifarch %{ix86} x86_64
 gcc %{optflags} -o numlockbios $RPM_SOURCE_DIR/numlockbios.c
 %endif
+# kbd-2.9.0 has a bug that would end with .gz.gz files. Work arout it. 
(gh#legionus/kbd#154)
+rm -r data/*_Z
 # fix lat2-16.psfu (bnc#340579)
 font=data/consolefonts/lat2a-16.psfu
 ./src/psfxtable -i $font -it  data/unimaps/lat2u.uni \
@@ -364,6 +362,10 @@
   if [ "$XKBLAYOUT-$XKBVARIANT" == "de-e1" ]; then
     sed -i 's/^plain keycode 33 = AltGr/plain keycode 33 = +U+0066/' 
/tmp/"$XKBLAYOUT"-"$XKBVARIANT".map
   fi
+  # fix conversion of h and H in fr-afnor keymap (boo#1259269)
+  if [ "$XKBLAYOUT-$XKBVARIANT" == "fr-afnor" ]; then
+    sed -i '/^keycode 35 /s/AltGr AltGr AltGr AltGr/+U+0067 +U+0047 +U+0067 
+U+0047/g' /tmp/"$XKBLAYOUT"-"$XKBVARIANT".map
+  fi
   # skip converted layouts which cannot input ASCII (rh#1031848)
   grep -q "U+0041" /tmp/"$XKBLAYOUT"-"$XKBVARIANT".map && \
     gzip -cn9 /tmp/"$XKBLAYOUT"-"$XKBVARIANT".map > 
%{buildroot}%{kbd}/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz
@@ -605,6 +607,7 @@
 %files devel
 #%%doc %%{_defaultdocdir}/kbd/html
 %{_includedir}/kbd
+%{_includedir}/array_size.h
 %{_includedir}/kbdfile.h
 %{_includedir}/keymap.h
 %{_includedir}/kfont.h

++++++ kbd-2.7.1.tar.xz -> kbd-2.9.0.tar.xz ++++++
++++ 38262 lines of diff (skipped)

++++++ kbd-setfont-check.patch ++++++
>From f5695d3e69ddc9670dc7dd28107327aceda1ec70 Mon Sep 17 00:00:00 2001
From: Alexey Gladkov <[email protected]>
Date: Fri, 13 Mar 2026 10:38:38 +0100
Subject: [PATCH] setfont: check whether console is suitable for font
 operations

Signed-off-by: Alexey Gladkov <[email protected]>
---
 src/include/kbd/kfont.h   |  8 ++++++++
 src/libkfont/kdfontop.c   | 35 ++++++++++++++++++++++++++++++++---
 src/libkfont/libkfont.map |  9 +++++++++
 src/setfont.c             | 15 +++++++++++----
 4 files changed, 60 insertions(+), 7 deletions(-)

diff --git a/src/include/kbd/kfont.h b/src/include/kbd/kfont.h
index 67ad917..11bc97c 100644
--- a/src/include/kbd/kfont.h
+++ b/src/include/kbd/kfont.h
@@ -188,6 +188,14 @@ int kfont_put_font(struct kfont_context *ctx, int 
consolefd, unsigned char *buf,
 unsigned int kfont_get_fontsize(struct kfont_context *ctx, int consolefd)
        KBD_ATTR_NONNULL(1);
 
+/*
+ * Check whether CONSOLEFD refers to a text-mode console suitable for
+ * font operations through KDFONTOP. The check is silent and returns 1
+ * if the console can be used, 0 otherwise.
+ */
+int kfont_is_font_console(struct kfont_context *ctx, int consolefd)
+       KBD_ATTR_NONNULL(1);
+
 /*
  * Restore font (doesn't work).
  */
diff --git a/src/libkfont/kdfontop.c b/src/libkfont/kdfontop.c
index 4f1f0d2..64d78ad 100644
--- a/src/libkfont/kdfontop.c
+++ b/src/libkfont/kdfontop.c
@@ -21,22 +21,30 @@
 #endif
 
 static int
-is_kd_text(struct kfont_context *ctx, int fd)
+is_kd_text_mode(struct kfont_context *ctx, int fd, int report_errors)
 {
        unsigned int kd_mode;
 
        if (ioctl(fd, KDGETMODE, &kd_mode)) {
-               KFONT_ERR(ctx, "ioctl(KDGETMODE): %m");
+               if (report_errors)
+                       KFONT_ERR(ctx, "ioctl(KDGETMODE): %m");
                return 0;
        }
 
        if (kd_mode == KD_TEXT)
                return 1;
 
-       KFONT_ERR(ctx, _("Console is not in text mode"));
+       if (report_errors)
+               KFONT_ERR(ctx, _("Console is not in text mode"));
        return 0;
 }
 
+static inline int
+is_kd_text(struct kfont_context *ctx, int fd)
+{
+       return is_kd_text_mode(ctx, fd, 1);
+}
+
 int
 kfont_restore_font(struct kfont_context *ctx, int fd)
 {
@@ -176,6 +184,27 @@ kfont_get_fontsize(struct kfont_context *ctx, int fd)
        return 256;
 }
 
+int
+kfont_is_font_console(struct kfont_context *ctx, int fd)
+{
+       if (!is_kd_text_mode(ctx, fd, 0))
+               return 0;
+
+       struct console_font_op cfo = {
+               .op        = KD_FONT_OP_GET,
+               .flags     = 0,
+               .width     = 32,
+               .height    = 32,
+               .charcount = (sizeof(unsigned char) * MAXFONTSIZE) / (64 * 128 
/ 8),
+               .data      = NULL,
+       };
+
+       errno = 0;
+       ioctl(fd, KDFONTOP, &cfo);
+
+       return (errno != ENOSYS && errno != ENOTTY);
+}
+
 static int
 put_font_kdfontop(struct kfont_context *ctx, int consolefd, unsigned char *buf,
                unsigned int count,
diff --git a/src/libkfont/libkfont.map b/src/libkfont/libkfont.map
index 0ea76d2..e89cd86 100644
--- a/src/libkfont/libkfont.map
+++ b/src/libkfont/libkfont.map
@@ -36,3 +36,12 @@ KFONT_1.0 {
   local:
     *;
 };
+
+/*
+ * symbols since kbd 2.9.0
+ */
+KFONT_2.9 {
+  global:
+    kfont_is_font_console;
+
+} KFONT_1.0;
diff --git a/src/setfont.c b/src/setfont.c
index dc336c1..8a80431 100644
--- a/src/setfont.c
+++ b/src/setfont.c
@@ -166,10 +166,8 @@ int main(int argc, char *argv[])
 {
        const char *ifiles[MAXIFILES];
        char *mfil, *ufil, *Ofil, *ofil, *omfil, *oufil, *console;
-       int ifilct = 0, fd, no_m, no_u;
+       int ifilct, fd, no_m, no_u, restore, check_console, ret, c;
        unsigned int iunit, hwunit;
-       int restore = 0;
-       int ret, c;
 
        struct kfont_context *kfont;
 
@@ -183,6 +181,7 @@ int main(int argc, char *argv[])
                { "-m, --consolemap <FILE>",         _("load console screen map 
('none' means don't load it).") },
                { "-u, --unicodemap <FILE>",         _("load font unicode map 
('none' means don't load it).") },
                { "-C, --console <DEV>",             _("the console device to 
be used.") },
+               { "-c, --check",                     _("check whether console 
is suitable for font operations.") },
                { "-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.") },
@@ -193,6 +192,7 @@ int main(int argc, char *argv[])
        };
 
        const struct kbd_option opts[] = {
+               { "=c",  "check",             kbd_no_argument,       'c' },
                { "=d",  "double",            kbd_no_argument,       'd' },
                { "=f",  "force",             kbd_no_argument,       'f' },
                { "=R",  "reset",             kbd_no_argument,       'R' },
@@ -218,7 +218,8 @@ int main(int argc, char *argv[])
 
        ifiles[0] = mfil = ufil = Ofil = ofil = omfil = oufil = NULL;
        iunit = hwunit = 0;
-       no_m = no_u = 0;
+       ifilct = no_m = no_u = 0;
+       restore = check_console = 0;
        console = NULL;
 
        while ((c = kbd_getopt(argc, argv, opts)) != -1) {
@@ -271,6 +272,9 @@ int main(int argc, char *argv[])
                        case 'R':
                                restore = 1;
                                break;
+                       case 'c':
+                               check_console = 1;
+                               break;
                        case 'd':
                                kfont_set_option(kfont, kfont_double_size);
                                break;
@@ -316,6 +320,9 @@ int main(int argc, char *argv[])
        if ((fd = getfd(console)) < 0)
                kbd_error(EX_OSERR, 0, _("Couldn't get a file descriptor 
referring to the console."));
 
+       if (check_console)
+               return kfont_is_font_console(kfont, fd) ? EX_OK : EXIT_FAILURE;
+
        int kd_mode = -1;
        if (!ioctl(fd, KDGETMODE, &kd_mode) && (kd_mode == KD_GRAPHICS)) {
                /*
-- 
2.51.0

Reply via email to