From 02a2eb26c9357fb02eb951933facff4c6d5c3353 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Wed, 23 Sep 2020 08:11:51 +0200 Subject: [PATCH 01/42] Fix kbd fails to build with --nocheck --- kbd.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/kbd.spec b/kbd.spec index bbeb1b9..7857365 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.3.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -179,9 +179,6 @@ fi %ifnarch s390x make check %endif -# remove library used only for tests -rm -f $RPM_BUILD_ROOT%{_libdir}/libtswrap* -rm -f $RPM_BUILD_ROOT%{_prefix}/lib/debug/%{_libdir}/libtswrap* %files -f %{name}.lang %license COPYING @@ -189,6 +186,9 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/lib/debug/%{_libdir}/libtswrap* %{_bindir}/* %{_mandir}/*/* %config(noreplace) %{_sysconfdir}/pam.d/vlock +# library used only for tests +%exclude %{_libdir}/libtswrap* +%exclude %{_prefix}/lib/debug/%{_libdir}/libtswrap* %files misc %{kbd_datadir} @@ -198,6 +198,10 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/lib/debug/%{_libdir}/libtswrap* %{kbd_datadir}/keymaps/legacy %changelog +* Wed Sep 23 2020 Vitezslav Crhonek - 2.3.0-3 +- Exclude test library instead of removing it to fix --nocheck builds + Resolves: #1881515 + * Fri Aug 28 2020 Adam Williamson - 2.3.0-2 - Rebuild with grep #1872913 fix to correctly drop non-ASCII layouts Resolves: #1872922 From de77dbc7a309249887deff748456f0d34e930ead Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Thu, 29 Oct 2020 11:42:20 +0100 Subject: [PATCH 02/42] Don't require kbd-legacy in main kbd package anymore --- kbd.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kbd.spec b/kbd.spec index 7857365..d0a5989 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.3.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -38,8 +38,6 @@ Patch7: kbd-2.0.4-covscan-fixes.patch BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake BuildRequires: console-setup, xkeyboard-config Requires: %{name}-misc = %{version}-%{release} -# Temporarily require -legacy -Requires: %{name}-legacy = %{version}-%{release} # Be sure that system is after UsrMove Conflicts: filesystem < 3 Provides: vlock = %{version} @@ -198,6 +196,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Thu Oct 29 2020 Vitezslav Crhonek - 2.3.0-4 +- Don't require kbd-legacy in main kbd package anymore + Resolves: #1891811 + * Wed Sep 23 2020 Vitezslav Crhonek - 2.3.0-3 - Exclude test library instead of removing it to fix --nocheck builds Resolves: #1881515 From 9193782db0bdb98dd0284c5b0d0c90c0cd27c815 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Wed, 16 Dec 2020 11:15:40 +0100 Subject: [PATCH 03/42] Update to kbd-2.4.0 --- .gitignore | 2 +- kbd.spec | 8 ++++++-- sources | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 17cb028..fb8a683 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ terminus.tar.bz2 /fr-dvorak.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 -/kbd-2.3.0.tar.xz +/kbd-2.4.0.tar.xz diff --git a/kbd.spec b/kbd.spec index d0a5989..5da6a96 100644 --- a/kbd.spec +++ b/kbd.spec @@ -4,8 +4,8 @@ %global kbd_datadir %{_exec_prefix}/lib/kbd Name: kbd -Version: 2.3.0 -Release: 4%{?dist} +Version: 2.4.0 +Release: 1%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -196,6 +196,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Wed Dec 16 2020 Vitezslav Crhonek - 2.4.0-1 +- Update to kbd-2.4.0 + Resolves: #1908123 + * Thu Oct 29 2020 Vitezslav Crhonek - 2.3.0-4 - Don't require kbd-legacy in main kbd package anymore Resolves: #1891811 diff --git a/sources b/sources index bece756..1f88a28 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356db7533f24e49fb78c8e3999901a45a49cdf6a74c0002bba2e0aa8327469d78dd38b6e747103972c30584 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 -SHA512 (kbd-2.3.0.tar.xz) = 6d7ba496a963c29abf1f514831c47e6bc73797b04021115879cbdb203c879c5abfae9f8fcaeec52d8891cad848240d39f5293452d26c7f0a84fb58499ad6e927 +SHA512 (kbd-2.4.0.tar.xz) = c3823e40878ed4cb5b90edf753dba37a7fc3189b7b08a2e59a7830cac23a7a7daf31dedef1fcc130698c7508bc2a037c8ab54e749d0cdbf51756e346f2ed5abb From e597e2b25c5c0e98317c9079d58f8eb373e18ee2 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Mon, 4 Jan 2021 22:32:37 +0000 Subject: [PATCH 04/42] Add BuildRequires: make https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot --- kbd.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/kbd.spec b/kbd.spec index 5da6a96..b34049b 100644 --- a/kbd.spec +++ b/kbd.spec @@ -37,6 +37,7 @@ Patch7: kbd-2.0.4-covscan-fixes.patch BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake BuildRequires: console-setup, xkeyboard-config +BuildRequires: make Requires: %{name}-misc = %{version}-%{release} # Be sure that system is after UsrMove Conflicts: filesystem < 3 From a1aed0e27a193289a1771f427d2b669642242e8f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 26 Jan 2021 15:14:06 +0000 Subject: [PATCH 05/42] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index b34049b..3abd4e5 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.4.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -197,6 +197,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Tue Jan 26 2021 Fedora Release Engineering - 2.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Wed Dec 16 2020 Vitezslav Crhonek - 2.4.0-1 - Update to kbd-2.4.0 Resolves: #1908123 From 94d128363a812b13de2f2fca7da23b39ab0882b8 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Thu, 22 Apr 2021 12:48:49 +0200 Subject: [PATCH 06/42] Fix issues detected by static analysis, fix layout->keymap conversion --- kbd-2.4.0-covscan-fixes.patch | 113 ++++++++++++++++++++++++++++++++++ kbd.spec | 15 ++++- 2 files changed, 125 insertions(+), 3 deletions(-) create mode 100644 kbd-2.4.0-covscan-fixes.patch diff --git a/kbd-2.4.0-covscan-fixes.patch b/kbd-2.4.0-covscan-fixes.patch new file mode 100644 index 0000000..0b05a6f --- /dev/null +++ b/kbd-2.4.0-covscan-fixes.patch @@ -0,0 +1,113 @@ +diff -up kbd-2.4.0/src/libkbdfile/kbdfile.c.orig kbd-2.4.0/src/libkbdfile/kbdfile.c +--- kbd-2.4.0/src/libkbdfile/kbdfile.c.orig 2020-11-11 13:44:48.000000000 +0100 ++++ kbd-2.4.0/src/libkbdfile/kbdfile.c 2021-04-22 08:00:04.981522542 +0200 +@@ -39,8 +39,10 @@ kbdfile_new(struct kbdfile_ctx *ctx) + + if (!fp->ctx) { + fp->ctx = kbdfile_context_new(); +- if (!fp->ctx) ++ if (!fp->ctx) { ++ free(fp); + return NULL; ++ } + fp->flags |= KBDFILE_CTX_INITIALIZED; + } + +@@ -69,7 +71,7 @@ kbdfile_get_pathname(struct kbdfile *fp) + int + kbdfile_set_pathname(struct kbdfile *fp, const char *pathname) + { +- strncpy(fp->pathname, pathname, sizeof(fp->pathname)); ++ strncpy(fp->pathname, pathname, sizeof(fp->pathname) - 1); + return 0; + } + +@@ -385,7 +387,7 @@ kbdfile_find(const char *fnam, const cha + fp->flags &= ~KBDFILE_PIPE; + + /* Try explicitly given name first */ +- strncpy(fp->pathname, fnam, sizeof(fp->pathname)); ++ strncpy(fp->pathname, fnam, sizeof(fp->pathname) - 1); + + if (!maybe_pipe_open(fp)) + return 0; +diff -up kbd-2.4.0/src/libkeymap/common.c.orig kbd-2.4.0/src/libkeymap/common.c +--- kbd-2.4.0/src/libkeymap/common.c.orig 2019-06-24 13:55:23.000000000 +0200 ++++ kbd-2.4.0/src/libkeymap/common.c 2021-04-22 08:00:04.981522542 +0200 +@@ -139,6 +139,7 @@ init_array(struct lk_ctx *ctx, struct lk + rc = lk_array_init(ptr, size, 0); + if (rc < 0) { + ERR(ctx, _("unable to initialize array: %s"), strerror(rc)); ++ free(ptr); + return -1; + } + +diff -up kbd-2.4.0/src/libkfont/psffontop.c.orig kbd-2.4.0/src/libkfont/psffontop.c +--- kbd-2.4.0/src/libkfont/psffontop.c.orig 2020-04-27 17:53:01.000000000 +0200 ++++ kbd-2.4.0/src/libkfont/psffontop.c 2021-04-22 11:59:54.513520000 +0200 +@@ -235,6 +235,7 @@ kfont_read_psffont(struct kfont_context + + if (psfhdr->mode > PSF1_MAXMODE) { + KFONT_ERR(ctx, _("Unsupported psf file mode (%d)"), psfhdr->mode); ++ free(psfhdr); + return -EX_DATAERR; + } + fontlen = ((psfhdr->mode & PSF1_MODE512) ? 512 : 256); +@@ -251,6 +252,7 @@ kfont_read_psffont(struct kfont_context + + if (psfhdr.version > PSF2_MAXVERSION) { + KFONT_ERR(ctx, _("Unsupported psf version (%d)"), psfhdr.version); ++ free(inputbuf); + return -EX_DATAERR; + } + fontlen = assemble_uint32((unsigned char *)&psfhdr.length); +@@ -260,16 +262,20 @@ kfont_read_psffont(struct kfont_context + ftoffset = assemble_uint32((unsigned char *)&psfhdr.headersize); + fontwidth = assemble_uint32((unsigned char *)&psfhdr.width); + utf8 = 1; +- } else ++ } else { ++ free(inputbuf); + return -EX_DATAERR; /* not psf */ ++ } + + /* tests required - we divide by these */ + if (fontlen == 0) { + KFONT_ERR(ctx, _("zero input font length?")); ++ free(inputbuf); + return -EX_DATAERR; + } + if (charsize == 0) { + KFONT_ERR(ctx, _("zero input character size?")); ++ free(inputbuf); + return -EX_DATAERR; + } + +@@ -277,6 +283,7 @@ kfont_read_psffont(struct kfont_context + + if (i > inputlth || (!hastable && i != inputlth)) { + KFONT_ERR(ctx, _("Input file: bad input length (%d)"), inputlth); ++ free(inputbuf); + return -EX_DATAERR; + } + +@@ -289,8 +296,10 @@ kfont_read_psffont(struct kfont_context + if (fontwidthp) + *fontwidthp = fontwidth; + +- if (!uclistheadsp) ++ if (!uclistheadsp) { ++ free(inputbuf); + return 0; /* got font, don't need unicode_list */ ++ } + + struct unicode_list *ptr; + +@@ -322,6 +331,7 @@ kfont_read_psffont(struct kfont_context + clear_uni_entry(&(*uclistheadsp)[fontpos0 + i]); + } + ++ free(inputbuf); + return 0; /* got psf font */ + } + diff --git a/kbd.spec b/kbd.spec index 3abd4e5..9fc1afd 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.4.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -34,6 +34,8 @@ Patch5: kbd-1.15.5-loadkeys-search-path.patch Patch6: kbd-2.0.2-unicode-start-font.patch # Patch7: fixes issues found by static analysis Patch7: kbd-2.0.4-covscan-fixes.patch +# Patch8: fixes another batch of issues found by static analysis +Patch8: kbd-2.4.0-covscan-fixes.patch BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake BuildRequires: console-setup, xkeyboard-config @@ -78,6 +80,7 @@ cp -fp %{SOURCE6} . %patch5 -p1 -b .loadkeys-search-path %patch6 -p1 -b .unicode-start-font %patch7 -p1 -b .covscan-fixes +%patch8 -p1 -b .covscan-fixes-pt2 aclocal autoconf @@ -146,13 +149,13 @@ while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT" >> layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` - ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz + ckbcomp -rules base "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do - ckbcomp "$line" | gzip > $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/"$line".map.gz + ckbcomp -rules base "$line" | gzip > $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/"$line".map.gz done < layouts-list-uniq.lst # wipe converted layouts which cannot input ASCII (#1031848) @@ -197,6 +200,12 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Thu Apr 22 2021 Vitezslav Crhonek - 2.4.0-3 +- Fix issues detected by static analysis +- Fix layout->keymap conversion broken by change in xkeyboard-config + (patch by Peter Hutterer) + Related: #1950406 + * Tue Jan 26 2021 Fedora Release Engineering - 2.4.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From ab3545efb91cb6d446a24639f991e41588537a13 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Tue, 27 Apr 2021 10:14:12 +0200 Subject: [PATCH 07/42] Remove one part of the static analysis fix that actually breaks the package --- kbd-2.4.0-covscan-fixes.patch | 26 +++----------------------- kbd.spec | 6 +++++- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/kbd-2.4.0-covscan-fixes.patch b/kbd-2.4.0-covscan-fixes.patch index 0b05a6f..c62813b 100644 --- a/kbd-2.4.0-covscan-fixes.patch +++ b/kbd-2.4.0-covscan-fixes.patch @@ -1,6 +1,6 @@ diff -up kbd-2.4.0/src/libkbdfile/kbdfile.c.orig kbd-2.4.0/src/libkbdfile/kbdfile.c --- kbd-2.4.0/src/libkbdfile/kbdfile.c.orig 2020-11-11 13:44:48.000000000 +0100 -+++ kbd-2.4.0/src/libkbdfile/kbdfile.c 2021-04-22 08:00:04.981522542 +0200 ++++ kbd-2.4.0/src/libkbdfile/kbdfile.c 2021-04-27 09:58:08.405671071 +0200 @@ -39,8 +39,10 @@ kbdfile_new(struct kbdfile_ctx *ctx) if (!fp->ctx) { @@ -33,7 +33,7 @@ diff -up kbd-2.4.0/src/libkbdfile/kbdfile.c.orig kbd-2.4.0/src/libkbdfile/kbdfil return 0; diff -up kbd-2.4.0/src/libkeymap/common.c.orig kbd-2.4.0/src/libkeymap/common.c --- kbd-2.4.0/src/libkeymap/common.c.orig 2019-06-24 13:55:23.000000000 +0200 -+++ kbd-2.4.0/src/libkeymap/common.c 2021-04-22 08:00:04.981522542 +0200 ++++ kbd-2.4.0/src/libkeymap/common.c 2021-04-27 09:58:08.405671071 +0200 @@ -139,6 +139,7 @@ init_array(struct lk_ctx *ctx, struct lk rc = lk_array_init(ptr, size, 0); if (rc < 0) { @@ -44,7 +44,7 @@ diff -up kbd-2.4.0/src/libkeymap/common.c.orig kbd-2.4.0/src/libkeymap/common.c diff -up kbd-2.4.0/src/libkfont/psffontop.c.orig kbd-2.4.0/src/libkfont/psffontop.c --- kbd-2.4.0/src/libkfont/psffontop.c.orig 2020-04-27 17:53:01.000000000 +0200 -+++ kbd-2.4.0/src/libkfont/psffontop.c 2021-04-22 11:59:54.513520000 +0200 ++++ kbd-2.4.0/src/libkfont/psffontop.c 2021-04-27 09:59:14.170153676 +0200 @@ -235,6 +235,7 @@ kfont_read_psffont(struct kfont_context if (psfhdr->mode > PSF1_MAXMODE) { @@ -91,23 +91,3 @@ diff -up kbd-2.4.0/src/libkfont/psffontop.c.orig kbd-2.4.0/src/libkfont/psffonto return -EX_DATAERR; } -@@ -289,8 +296,10 @@ kfont_read_psffont(struct kfont_context - if (fontwidthp) - *fontwidthp = fontwidth; - -- if (!uclistheadsp) -+ if (!uclistheadsp) { -+ free(inputbuf); - return 0; /* got font, don't need unicode_list */ -+ } - - struct unicode_list *ptr; - -@@ -322,6 +331,7 @@ kfont_read_psffont(struct kfont_context - clear_uni_entry(&(*uclistheadsp)[fontpos0 + i]); - } - -+ free(inputbuf); - return 0; /* got psf font */ - } - diff --git a/kbd.spec b/kbd.spec index 9fc1afd..440a198 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.4.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -200,6 +200,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Tue Apr 27 2021 Vitezslav Crhonek - 2.4.0-4 +- Remove one part of the static analysis fix that actually breaks the package + Resolves: #1953782 + * Thu Apr 22 2021 Vitezslav Crhonek - 2.4.0-3 - Fix issues detected by static analysis - Fix layout->keymap conversion broken by change in xkeyboard-config From bd4172466e9f4553dd1a58b06be765c1fe7a58ed Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Thu, 20 May 2021 09:32:00 +0200 Subject: [PATCH 08/42] Fix setfont exit code --- kbd-2.4.0-setfont-exit-code.patch | 14 ++++++++++++++ kbd.spec | 8 +++++++- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 kbd-2.4.0-setfont-exit-code.patch diff --git a/kbd-2.4.0-setfont-exit-code.patch b/kbd-2.4.0-setfont-exit-code.patch new file mode 100644 index 0000000..a638149 --- /dev/null +++ b/kbd-2.4.0-setfont-exit-code.patch @@ -0,0 +1,14 @@ +diff -up kbd-2.4.0/src/setfont.c.orig kbd-2.4.0/src/setfont.c +--- kbd-2.4.0/src/setfont.c.orig 2020-06-02 11:30:41.000000000 +0200 ++++ kbd-2.4.0/src/setfont.c 2021-05-17 12:06:44.360616147 +0200 +@@ -189,8 +189,8 @@ int main(int argc, char *argv[]) + if (restore) + kfont_restore_font(kfont, fd); + +- if (ifilct) +- kfont_load_fonts(kfont, fd, ifiles, ifilct, iunit, hwunit, no_m, no_u); ++ if (ifilct && (ret = kfont_load_fonts(kfont, fd, ifiles, ifilct, iunit, hwunit, no_m, no_u)) < 0) ++ return -ret; + + if (ufil && (ret = kfont_load_unicodemap(kfont, fd, ufil)) < 0) + return -ret; diff --git a/kbd.spec b/kbd.spec index 440a198..c65951f 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.4.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -36,6 +36,8 @@ Patch6: kbd-2.0.2-unicode-start-font.patch Patch7: kbd-2.0.4-covscan-fixes.patch # Patch8: fixes another batch of issues found by static analysis Patch8: kbd-2.4.0-covscan-fixes.patch +# Patch9: fixes setfont exit code, accepted upstream +Patch9: kbd-2.4.0-setfont-exit-code.patch BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake BuildRequires: console-setup, xkeyboard-config @@ -81,6 +83,7 @@ cp -fp %{SOURCE6} . %patch6 -p1 -b .unicode-start-font %patch7 -p1 -b .covscan-fixes %patch8 -p1 -b .covscan-fixes-pt2 +%patch9 -p1 -b .setfont-exit-code aclocal autoconf @@ -200,6 +203,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Thu May 20 2021 Vitezslav Crhonek - 2.4.0-5 +- Fix setfont exit code + * Tue Apr 27 2021 Vitezslav Crhonek - 2.4.0-4 - Remove one part of the static analysis fix that actually breaks the package Resolves: #1953782 From 472ff21333164e2df44db108a175b9c03d20c763 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 22 Jul 2021 09:28:18 +0000 Subject: [PATCH 09/42] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index c65951f..ea85421 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.4.0 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -203,6 +203,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Thu Jul 22 2021 Fedora Release Engineering - 2.4.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Thu May 20 2021 Vitezslav Crhonek - 2.4.0-5 - Fix setfont exit code From 918f776f5df0b6ab34198a761efec864f2745a34 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Mon, 13 Sep 2021 14:40:32 +0200 Subject: [PATCH 10/42] Use default Finnish xkb-converted layout --- kbd.spec | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/kbd.spec b/kbd.spec index ea85421..649e70e 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.4.0 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -164,13 +164,6 @@ done < layouts-list-uniq.lst # wipe converted layouts which cannot input ASCII (#1031848) zgrep -L "U+0041" $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/* | xargs rm -f -# Rename the converted default fi (kotoistus) layout (#1117891), if exists -if [ -f "$RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/fi.map.gz" ]; then - gunzip $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/fi.map.gz - mv $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/fi.map $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/fi-kotoistus.map - gzip $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/fi-kotoistus.map -fi - # Fix converted cz layout - add compose rules, if exists if [ -f "$RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/cz.map.gz" ]; then gunzip $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/cz.map.gz @@ -203,6 +196,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Mon Sep 13 2021 Vitezslav Crhonek - 2.4.0-7 +- Use default Finnish xkb-converted layout + Resolves: #2001787 + * Thu Jul 22 2021 Fedora Release Engineering - 2.4.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From f8cf2198eafa6d4d649e9cf4c5b3f021ee71307f Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Thu, 21 Oct 2021 14:31:24 -0700 Subject: [PATCH 11/42] Add compat name for Arabic keymap, remove problem char (#2015972) --- ...-codepoint-character-that-chokes-loa.patch | 30 +++++++++++++++++++ kbd.spec | 15 +++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 0001-fa.map-drop-high-codepoint-character-that-chokes-loa.patch diff --git a/0001-fa.map-drop-high-codepoint-character-that-chokes-loa.patch b/0001-fa.map-drop-high-codepoint-character-that-chokes-loa.patch new file mode 100644 index 0000000..7d185eb --- /dev/null +++ b/0001-fa.map-drop-high-codepoint-character-that-chokes-loa.patch @@ -0,0 +1,30 @@ +From d8aa08c7f3096fbb2901d1b9f93473ca9ba1d342 Mon Sep 17 00:00:00 2001 +From: Adam Williamson +Date: Thu, 21 Oct 2021 14:08:24 -0700 +Subject: [PATCH] fa.map: drop high codepoint character that chokes loadkeys + +fa.map contains a mapping for Unicode character U+FDFC. However, +loadkeys refuses to load any map containing a codepoint over +U+F000. To avoid the map failing to load entirely, let's remove +the problematic character. + +Signed-off-by: Adam Williamson +--- + data/keymaps/i386/qwerty/fa.map | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/data/keymaps/i386/qwerty/fa.map b/data/keymaps/i386/qwerty/fa.map +index 9ea0a7a..9aa5284 100644 +--- a/data/keymaps/i386/qwerty/fa.map ++++ b/data/keymaps/i386/qwerty/fa.map +@@ -44,7 +44,6 @@ altgr keycode 57 = U+0020 # SPACE + altgr shift keycode 2 = U+0021 # EXCLAMATION MARK + altgr shift keycode 40 = U+061B # ARABIC SEMICOLON + altgr shift keycode 4 = U+066B # ARABIC DECIMAL SEPARATOR +-altgr shift keycode 5 = U+FDFC # RIAL SIGN + altgr shift keycode 6 = U+066A # ARABIC PERCENT SIGN + altgr shift keycode 8 = U+060C # ARABIC COMMA + altgr keycode 40 = U+06AF # ARABIC LETTER GAF +-- +2.33.0 + diff --git a/kbd.spec b/kbd.spec index 649e70e..f81a9f4 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.4.0 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -38,6 +38,10 @@ Patch7: kbd-2.0.4-covscan-fixes.patch Patch8: kbd-2.4.0-covscan-fixes.patch # Patch9: fixes setfont exit code, accepted upstream Patch9: kbd-2.4.0-setfont-exit-code.patch +# Patch10: drop a character from fa.map that makes it fail to load +# https://github.com/legionus/kbd/issues/62 +# this may not be a correct upstream fix, it's more of a workaround +Patch10: 0001-fa.map-drop-high-codepoint-character-that-chokes-loa.patch BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake BuildRequires: console-setup, xkeyboard-config @@ -84,6 +88,7 @@ cp -fp %{SOURCE6} . %patch7 -p1 -b .covscan-fixes %patch8 -p1 -b .covscan-fixes-pt2 %patch9 -p1 -b .setfont-exit-code +%patch10 -p1 -b .fa-bad-char aclocal autoconf @@ -130,6 +135,10 @@ ln -s sr-cy.map.gz $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/i386/qwerty/sr-latin.ma # Korean keyboard ln -s us.map.gz $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/i386/qwerty/ko.map.gz +# https://bugzilla.redhat.com/show_bug.cgi?id=2015972 +# xkb Arabic layout is 'ara', not 'fa', langtable tells us to use 'ara' +ln -s fa.map.gz $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/i386/qwerty/ara.map.gz + # Some microoptimization sed -i -e 's,\,%{_bindir}/kbd_mode,g;s,\,%{_bindir}/setfont,g' \ $RPM_BUILD_ROOT%{_bindir}/unicode_start @@ -196,6 +205,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Thu Oct 21 2021 Adam Williamson - 2.4.0-8 +- Symlink fa.map.gz to ara.map.gz so Arabic console layout works (#2015972) +- Drop one mapping from fa.map that causes it to fail to load + * Mon Sep 13 2021 Vitezslav Crhonek - 2.4.0-7 - Use default Finnish xkb-converted layout Resolves: #2001787 From f075c2adb328aa8b3167f9d301c9aafd7a61ca48 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 20 Jan 2022 14:11:28 +0000 Subject: [PATCH 12/42] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index f81a9f4..b27e722 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.4.0 -Release: 8%{?dist} +Release: 9%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -205,6 +205,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Thu Jan 20 2022 Fedora Release Engineering - 2.4.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Thu Oct 21 2021 Adam Williamson - 2.4.0-8 - Symlink fa.map.gz to ara.map.gz so Arabic console layout works (#2015972) - Drop one mapping from fa.map that causes it to fail to load From bb8392f7ea5b93652c397682b823f48913c53367 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Wed, 8 Jun 2022 10:16:20 +0200 Subject: [PATCH 13/42] Update to kbd-2.5.0 --- .gitignore | 2 +- kbd-1.15.3-dumpkeys-man.patch | 18 -------- kbd-1.15.5-vlock-more-pam.patch | 61 -------------------------- kbd-2.0.4-covscan-fixes.patch | 11 ----- kbd-2.4.0-covscan-fixes.patch | 44 ------------------- kbd-2.4.0-setfont-exit-code.patch | 14 ------ kbd-2.5.0-renamed-keymap-in-test.patch | 11 +++++ kbd.spec | 52 +++++++++------------- sources | 2 +- 9 files changed, 34 insertions(+), 181 deletions(-) delete mode 100644 kbd-1.15.3-dumpkeys-man.patch delete mode 100644 kbd-1.15.5-vlock-more-pam.patch delete mode 100644 kbd-2.0.4-covscan-fixes.patch delete mode 100644 kbd-2.4.0-setfont-exit-code.patch create mode 100644 kbd-2.5.0-renamed-keymap-in-test.patch diff --git a/.gitignore b/.gitignore index fb8a683..557cf83 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ terminus.tar.bz2 /fr-dvorak.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 -/kbd-2.4.0.tar.xz +/kbd-2.5.0.tar.xz diff --git a/kbd-1.15.3-dumpkeys-man.patch b/kbd-1.15.3-dumpkeys-man.patch deleted file mode 100644 index fc90412..0000000 --- a/kbd-1.15.3-dumpkeys-man.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -up kbd-2.0.4/docs/man/man1/dumpkeys.1.in.orig kbd-2.0.4/docs/man/man1/dumpkeys.1.in ---- kbd-2.0.4/docs/man/man1/dumpkeys.1.in.orig 2017-01-11 11:12:22.884029413 +0100 -+++ kbd-2.0.4/docs/man/man1/dumpkeys.1.in 2017-01-11 11:12:47.537040194 +0100 -@@ -164,6 +164,14 @@ output of - .BI \-S shape " " " " \-\-shape= shape - .LP - .TP -+.B \-1 \-\-separate-lines -+This forces -+.B dumpkeys -+to write one line per (modifier,keycode) pair. It prefixes the word -+.I plain -+for plain keycodes. -+.LP -+.TP - .B \-t \-\-funcs-only - When this option is given, - .B dumpkeys diff --git a/kbd-1.15.5-vlock-more-pam.patch b/kbd-1.15.5-vlock-more-pam.patch deleted file mode 100644 index ba34255..0000000 --- a/kbd-1.15.5-vlock-more-pam.patch +++ /dev/null @@ -1,61 +0,0 @@ ---- a/src/vlock/auth.c -+++ b/src/vlock/auth.c -@@ -4,7 +4,7 @@ - PAM authentication routine for vlock, the VT locking program for linux. - - Copyright (C) 1994-1998 Michael K. Johnson -- Copyright (C) 2002, 2005 Dmitry V. Levin -+ Copyright (C) 2002, 2005, 2013 Dmitry V. Levin - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by -@@ -36,6 +36,25 @@ - /* Unrecognized PAM error timeout. */ - #define ERROR_TIMEOUT 10 - -+static int -+do_account_password_management (pam_handle_t *pamh) -+{ -+ int rc; -+ -+ /* Whether the authenticated user is allowed to log in? */ -+ rc = pam_acct_mgmt (pamh, 0); -+ -+ /* Do we need to prompt the user for a new password? */ -+ if (rc == PAM_NEW_AUTHTOK_REQD) -+ rc = pam_chauthtok (pamh, PAM_CHANGE_EXPIRED_AUTHTOK); -+ -+ /* Extend the lifetime of the existing credentials. */ -+ if (rc == PAM_SUCCESS) -+ rc = pam_setcred (pamh, PAM_REFRESH_CRED); -+ -+ return rc; -+} -+ - int - get_password (pam_handle_t * pamh, const char *username, const char *tty) - { -@@ -84,6 +103,23 @@ get_password (pam_handle_t * pamh, const char *username, const char *tty) - switch (rc) - { - case PAM_SUCCESS: -+ rc = do_account_password_management (pamh); -+ -+ if (rc != PAM_SUCCESS) -+ { -+ /* -+ * The user was authenticated but -+ * either account or password management -+ * returned an error. -+ */ -+ printf ("%s.\n\n\n", -+ pam_strerror (pamh, rc)); -+ fflush (stdout); -+ pam_end (pamh, rc); -+ pamh = 0; -+ break; -+ } -+ - pam_end (pamh, rc); - /* Log the fact of console unlocking. */ - syslog (LOG_NOTICE, diff --git a/kbd-2.0.4-covscan-fixes.patch b/kbd-2.0.4-covscan-fixes.patch deleted file mode 100644 index 5360141..0000000 --- a/kbd-2.0.4-covscan-fixes.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up kbd-2.3.0/src/libkfont/kdmapop.c.orig kbd-2.3.0/src/libkfont/kdmapop.c ---- kbd-2.3.0/src/libkfont/kdmapop.c.orig 2020-04-27 17:53:01.000000000 +0200 -+++ kbd-2.3.0/src/libkfont/kdmapop.c 2020-07-16 09:06:45.246742724 +0200 -@@ -166,6 +166,7 @@ kfont_get_unicodemap(struct kfont_contex - - if (ioctl(fd, GIO_UNIMAP, &ud)) { - KFONT_ERR(ctx, "ioctl(GIO_UNIMAP): %m"); -+ free(ud.entries); - return -1; - } - if (ct != ud.entry_ct) diff --git a/kbd-2.4.0-covscan-fixes.patch b/kbd-2.4.0-covscan-fixes.patch index c62813b..c7ddf27 100644 --- a/kbd-2.4.0-covscan-fixes.patch +++ b/kbd-2.4.0-covscan-fixes.patch @@ -1,47 +1,3 @@ -diff -up kbd-2.4.0/src/libkbdfile/kbdfile.c.orig kbd-2.4.0/src/libkbdfile/kbdfile.c ---- kbd-2.4.0/src/libkbdfile/kbdfile.c.orig 2020-11-11 13:44:48.000000000 +0100 -+++ kbd-2.4.0/src/libkbdfile/kbdfile.c 2021-04-27 09:58:08.405671071 +0200 -@@ -39,8 +39,10 @@ kbdfile_new(struct kbdfile_ctx *ctx) - - if (!fp->ctx) { - fp->ctx = kbdfile_context_new(); -- if (!fp->ctx) -+ if (!fp->ctx) { -+ free(fp); - return NULL; -+ } - fp->flags |= KBDFILE_CTX_INITIALIZED; - } - -@@ -69,7 +71,7 @@ kbdfile_get_pathname(struct kbdfile *fp) - int - kbdfile_set_pathname(struct kbdfile *fp, const char *pathname) - { -- strncpy(fp->pathname, pathname, sizeof(fp->pathname)); -+ strncpy(fp->pathname, pathname, sizeof(fp->pathname) - 1); - return 0; - } - -@@ -385,7 +387,7 @@ kbdfile_find(const char *fnam, const cha - fp->flags &= ~KBDFILE_PIPE; - - /* Try explicitly given name first */ -- strncpy(fp->pathname, fnam, sizeof(fp->pathname)); -+ strncpy(fp->pathname, fnam, sizeof(fp->pathname) - 1); - - if (!maybe_pipe_open(fp)) - return 0; -diff -up kbd-2.4.0/src/libkeymap/common.c.orig kbd-2.4.0/src/libkeymap/common.c ---- kbd-2.4.0/src/libkeymap/common.c.orig 2019-06-24 13:55:23.000000000 +0200 -+++ kbd-2.4.0/src/libkeymap/common.c 2021-04-27 09:58:08.405671071 +0200 -@@ -139,6 +139,7 @@ init_array(struct lk_ctx *ctx, struct lk - rc = lk_array_init(ptr, size, 0); - if (rc < 0) { - ERR(ctx, _("unable to initialize array: %s"), strerror(rc)); -+ free(ptr); - return -1; - } - diff -up kbd-2.4.0/src/libkfont/psffontop.c.orig kbd-2.4.0/src/libkfont/psffontop.c --- kbd-2.4.0/src/libkfont/psffontop.c.orig 2020-04-27 17:53:01.000000000 +0200 +++ kbd-2.4.0/src/libkfont/psffontop.c 2021-04-27 09:59:14.170153676 +0200 diff --git a/kbd-2.4.0-setfont-exit-code.patch b/kbd-2.4.0-setfont-exit-code.patch deleted file mode 100644 index a638149..0000000 --- a/kbd-2.4.0-setfont-exit-code.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up kbd-2.4.0/src/setfont.c.orig kbd-2.4.0/src/setfont.c ---- kbd-2.4.0/src/setfont.c.orig 2020-06-02 11:30:41.000000000 +0200 -+++ kbd-2.4.0/src/setfont.c 2021-05-17 12:06:44.360616147 +0200 -@@ -189,8 +189,8 @@ int main(int argc, char *argv[]) - if (restore) - kfont_restore_font(kfont, fd); - -- if (ifilct) -- kfont_load_fonts(kfont, fd, ifiles, ifilct, iunit, hwunit, no_m, no_u); -+ if (ifilct && (ret = kfont_load_fonts(kfont, fd, ifiles, ifilct, iunit, hwunit, no_m, no_u)) < 0) -+ return -ret; - - if (ufil && (ret = kfont_load_unicodemap(kfont, fd, ufil)) < 0) - return -ret; diff --git a/kbd-2.5.0-renamed-keymap-in-test.patch b/kbd-2.5.0-renamed-keymap-in-test.patch new file mode 100644 index 0000000..3f6abf6 --- /dev/null +++ b/kbd-2.5.0-renamed-keymap-in-test.patch @@ -0,0 +1,11 @@ +diff -up kbd-2.5-rc1/tests/libkeymap.at.orig kbd-2.5-rc1/tests/libkeymap.at +--- kbd-2.5-rc1/tests/libkeymap.at.orig 2022-03-23 09:30:53.176271763 +0100 ++++ kbd-2.5-rc1/tests/libkeymap.at 2022-03-23 09:31:13.997291060 +0100 +@@ -173,6 +173,6 @@ AT_SKIP_IF([ test "$(arch)" != "x86_64" + cp -f -- \ + "$abs_srcdir/data/bkeymap-2.0.4/cz.map.bin" \ + expout +-AT_CHECK([$abs_top_builddir/src/loadkeys -b "$abs_top_srcdir/data/keymaps/i386/qwerty/cz.map"], ++AT_CHECK([$abs_top_builddir/src/loadkeys -b "$abs_top_srcdir/data/keymaps/i386/qwerty/cz-qwerty.map"], + [0], [expout]) + AT_CLEANUP diff --git a/kbd.spec b/kbd.spec index b27e722..1d8baee 100644 --- a/kbd.spec +++ b/kbd.spec @@ -4,8 +4,8 @@ %global kbd_datadir %{_exec_prefix}/lib/kbd Name: kbd -Version: 2.4.0 -Release: 9%{?dist} +Version: 2.5.0 +Release: 1%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -23,25 +23,17 @@ Patch0: kbd-1.15-keycodes-man.patch Patch1: kbd-1.15-sparc.patch # Patch2: adds default unicode font to unicode_start script Patch2: kbd-1.15-unicode_start.patch -# Patch3: add missing dumpkeys option to man page -Patch3: kbd-1.15.3-dumpkeys-man.patch -# Patch4: fixes decimal separator in Swiss German keyboard layout, bz 882529 -Patch4: kbd-1.15.5-sg-decimal-separator.patch -# Patch5: adds xkb and legacy keymaps subdirs to loadkyes search path, bz 1028207 -Patch5: kbd-1.15.5-loadkeys-search-path.patch -# Patch6: don't hardcode font used in unicode_start, take it from vconsole.conf, +# Patch3: fixes decimal separator in Swiss German keyboard layout, bz 882529 +Patch3: kbd-1.15.5-sg-decimal-separator.patch +# Patch4: adds xkb and legacy keymaps subdirs to loadkyes search path, bz 1028207 +Patch4: kbd-1.15.5-loadkeys-search-path.patch +# Patch5: don't hardcode font used in unicode_start, take it from vconsole.conf, # bz 1101007 -Patch6: kbd-2.0.2-unicode-start-font.patch -# Patch7: fixes issues found by static analysis -Patch7: kbd-2.0.4-covscan-fixes.patch -# Patch8: fixes another batch of issues found by static analysis -Patch8: kbd-2.4.0-covscan-fixes.patch -# Patch9: fixes setfont exit code, accepted upstream -Patch9: kbd-2.4.0-setfont-exit-code.patch -# Patch10: drop a character from fa.map that makes it fail to load -# https://github.com/legionus/kbd/issues/62 -# this may not be a correct upstream fix, it's more of a workaround -Patch10: 0001-fa.map-drop-high-codepoint-character-that-chokes-loa.patch +Patch5: kbd-2.0.2-unicode-start-font.patch +# Patch6: fixes issues found by static analysis +Patch6: kbd-2.4.0-covscan-fixes.patch +# Patch7: test uses cz.map that was previously renamed to cz-qwerty.map during the build +Patch7: kbd-2.5.0-renamed-keymap-in-test.patch BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake BuildRequires: console-setup, xkeyboard-config @@ -81,14 +73,11 @@ cp -fp %{SOURCE6} . %patch0 -p1 -b .keycodes-man %patch1 -p1 -b .sparc %patch2 -p1 -b .unicode_start -%patch3 -p1 -b .dumpkeys-man -%patch4 -p1 -b .sg-decimal-separator -%patch5 -p1 -b .loadkeys-search-path -%patch6 -p1 -b .unicode-start-font -%patch7 -p1 -b .covscan-fixes -%patch8 -p1 -b .covscan-fixes-pt2 -%patch9 -p1 -b .setfont-exit-code -%patch10 -p1 -b .fa-bad-char +%patch3 -p1 -b .sg-decimal-separator +%patch4 -p1 -b .loadkeys-search-path +%patch5 -p1 -b .unicode-start-font +%patch6 -p1 -b .covscan-fixes +%patch7 -p1 -b .renamed-keymap-in-test aclocal autoconf @@ -193,9 +182,6 @@ make check %{_bindir}/* %{_mandir}/*/* %config(noreplace) %{_sysconfdir}/pam.d/vlock -# library used only for tests -%exclude %{_libdir}/libtswrap* -%exclude %{_prefix}/lib/debug/%{_libdir}/libtswrap* %files misc %{kbd_datadir} @@ -205,6 +191,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Wed Jun 08 2022 Vitezslav Crhonek - 2.5.0-1 +- Update to kbd-2.5.0 + Resolves: #2092957 + * Thu Jan 20 2022 Fedora Release Engineering - 2.4.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild diff --git a/sources b/sources index 1f88a28..f0909a7 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356db7533f24e49fb78c8e3999901a45a49cdf6a74c0002bba2e0aa8327469d78dd38b6e747103972c30584 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 -SHA512 (kbd-2.4.0.tar.xz) = c3823e40878ed4cb5b90edf753dba37a7fc3189b7b08a2e59a7830cac23a7a7daf31dedef1fcc130698c7508bc2a037c8ab54e749d0cdbf51756e346f2ed5abb +SHA512 (kbd-2.5.0.tar.xz) = 740c4c7b8a2729f5d0539399f691d4201dab97c6eec554b82cc8c80935e956072e9735a739f8f4febc9849c1e8d9d195318b1d0d4e10dce4d34b5fb6d84111d7 From 45b6b9f2cfebfabf0fbbcb11b45b72f9b8a6f7c2 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Tue, 21 Jun 2022 10:36:03 +0200 Subject: [PATCH 14/42] Update to kbd-2.5.1 --- .gitignore | 2 +- kbd-2.5.0-renamed-keymap-in-test.patch | 11 ----------- kbd.spec | 9 +++++---- sources | 2 +- 4 files changed, 7 insertions(+), 17 deletions(-) delete mode 100644 kbd-2.5.0-renamed-keymap-in-test.patch diff --git a/.gitignore b/.gitignore index 557cf83..9c50456 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ terminus.tar.bz2 /fr-dvorak.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 -/kbd-2.5.0.tar.xz +/kbd-2.5.1.tar.xz diff --git a/kbd-2.5.0-renamed-keymap-in-test.patch b/kbd-2.5.0-renamed-keymap-in-test.patch deleted file mode 100644 index 3f6abf6..0000000 --- a/kbd-2.5.0-renamed-keymap-in-test.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up kbd-2.5-rc1/tests/libkeymap.at.orig kbd-2.5-rc1/tests/libkeymap.at ---- kbd-2.5-rc1/tests/libkeymap.at.orig 2022-03-23 09:30:53.176271763 +0100 -+++ kbd-2.5-rc1/tests/libkeymap.at 2022-03-23 09:31:13.997291060 +0100 -@@ -173,6 +173,6 @@ AT_SKIP_IF([ test "$(arch)" != "x86_64" - cp -f -- \ - "$abs_srcdir/data/bkeymap-2.0.4/cz.map.bin" \ - expout --AT_CHECK([$abs_top_builddir/src/loadkeys -b "$abs_top_srcdir/data/keymaps/i386/qwerty/cz.map"], -+AT_CHECK([$abs_top_builddir/src/loadkeys -b "$abs_top_srcdir/data/keymaps/i386/qwerty/cz-qwerty.map"], - [0], [expout]) - AT_CLEANUP diff --git a/kbd.spec b/kbd.spec index 1d8baee..58386eb 100644 --- a/kbd.spec +++ b/kbd.spec @@ -4,7 +4,7 @@ %global kbd_datadir %{_exec_prefix}/lib/kbd Name: kbd -Version: 2.5.0 +Version: 2.5.1 Release: 1%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ @@ -32,8 +32,6 @@ Patch4: kbd-1.15.5-loadkeys-search-path.patch Patch5: kbd-2.0.2-unicode-start-font.patch # Patch6: fixes issues found by static analysis Patch6: kbd-2.4.0-covscan-fixes.patch -# Patch7: test uses cz.map that was previously renamed to cz-qwerty.map during the build -Patch7: kbd-2.5.0-renamed-keymap-in-test.patch BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake BuildRequires: console-setup, xkeyboard-config @@ -77,7 +75,6 @@ cp -fp %{SOURCE6} . %patch4 -p1 -b .loadkeys-search-path %patch5 -p1 -b .unicode-start-font %patch6 -p1 -b .covscan-fixes -%patch7 -p1 -b .renamed-keymap-in-test aclocal autoconf @@ -191,6 +188,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Tue Jun 21 2022 Vitezslav Crhonek - 2.5.1-1 +- Update to kbd-2.5.1 + Resolves: #2097840 + * Wed Jun 08 2022 Vitezslav Crhonek - 2.5.0-1 - Update to kbd-2.5.0 Resolves: #2092957 diff --git a/sources b/sources index f0909a7..6eb443a 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356db7533f24e49fb78c8e3999901a45a49cdf6a74c0002bba2e0aa8327469d78dd38b6e747103972c30584 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 -SHA512 (kbd-2.5.0.tar.xz) = 740c4c7b8a2729f5d0539399f691d4201dab97c6eec554b82cc8c80935e956072e9735a739f8f4febc9849c1e8d9d195318b1d0d4e10dce4d34b5fb6d84111d7 +SHA512 (kbd-2.5.1.tar.xz) = 74855f486aff5fc2f93a6cb29460a590c94eac653b001574e1b4eb1300ea99dfed9222f9e5d1d3a05a112a6880591d5c44ed6e76b8a64edf744ecb0892f562d0 From 3bf51becf7eef2d386f47ef2c7112efaf6325dcd Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 21 Jul 2022 15:38:03 +0000 Subject: [PATCH 15/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index 58386eb..69aa867 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.5.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -188,6 +188,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Thu Jul 21 2022 Fedora Release Engineering - 2.5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Tue Jun 21 2022 Vitezslav Crhonek - 2.5.1-1 - Update to kbd-2.5.1 Resolves: #2097840 From 2c037184b49ecea0bc462c665a6d3ea934a26cd0 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Wed, 21 Sep 2022 10:37:26 +0200 Subject: [PATCH 16/42] Require kbd-legacy in main kbd package again --- kbd.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index 69aa867..55ba8ba 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.5.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -37,6 +37,7 @@ BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake BuildRequires: console-setup, xkeyboard-config BuildRequires: make Requires: %{name}-misc = %{version}-%{release} +Requires: %{name}-legacy = %{version}-%{release} # Be sure that system is after UsrMove Conflicts: filesystem < 3 Provides: vlock = %{version} @@ -188,6 +189,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Wed Sep 21 2022 Vitezslav Crhonek - 2.5.1-3 +- Require kbd-legacy in main kbd package again + Resolves: #2127513 + * Thu Jul 21 2022 Fedora Release Engineering - 2.5.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 952ea5e1e0f6eb1c3fb914e36b264f9f40d5180d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 19 Jan 2023 14:07:42 +0000 Subject: [PATCH 17/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index 55ba8ba..0722b7f 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.5.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -189,6 +189,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Thu Jan 19 2023 Fedora Release Engineering - 2.5.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Wed Sep 21 2022 Vitezslav Crhonek - 2.5.1-3 - Require kbd-legacy in main kbd package again Resolves: #2127513 From 91d7302f5bfd16834ac9f91606eb3718082d7118 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Tue, 21 Feb 2023 11:54:04 +0100 Subject: [PATCH 18/42] Update patch adding compose rules for converted cz layout, fixes FTBFS --- cz-map.patch | 59 ++++++++++++++++++++++++++++++++++++++++++++++------ kbd.spec | 6 +++++- 2 files changed, 58 insertions(+), 7 deletions(-) diff --git a/cz-map.patch b/cz-map.patch index 5e65d0f..810c3c4 100644 --- a/cz-map.patch +++ b/cz-map.patch @@ -1,14 +1,61 @@ ---- cz.map.orig 2016-10-11 13:11:15.000000000 +0200 -+++ cz.map 2016-10-11 13:12:03.093565772 +0200 -@@ -39,7 +39,7 @@ +--- cz.map.new 2023-02-21 11:13:02.527658350 +0100 ++++ cz.map.old 2023-02-21 11:14:28.586714959 +0100 +@@ -1,17 +1,17 @@ + keymaps 0-127 + keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape + keycode 2 = U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam U+002b U+0031 U+0021 dead_tilde U+002b U+0031 U+0021 dead_tilde Meta_plus Meta_one Meta_exclam Meta_exclam Meta_plus Meta_one Meta_exclam Meta_exclam +-keycode 3 = +U+011b U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011b U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011b U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011b U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_kcaron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul ++keycode 3 = +U+011b U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011b U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011b U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011b U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul +U+011a U+0032 U+0040 dead_caron nul U+0032 nul nul Meta_two Meta_two Meta_at Meta_at Meta_nul Meta_two Meta_nul Meta_nul + keycode 4 = +U+0161 U+0033 U+0023 dead_circumflex +U+0161 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0161 U+0033 U+0023 dead_circumflex +U+0161 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0161 U+0033 U+0023 dead_circumflex +U+0161 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0161 U+0033 U+0023 dead_circumflex +U+0161 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0160 U+0033 U+0023 dead_circumflex +U+0160 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0160 U+0033 U+0023 dead_circumflex +U+0160 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0160 U+0033 U+0023 dead_circumflex +U+0160 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +U+0160 U+0033 U+0023 dead_circumflex +U+0160 U+0033 U+0023 dead_circumflex Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_three Meta_three Meta_numbersign Meta_numbersign +-keycode 5 = +U+010d U+0034 U+0024 dead_kbreve +U+010d U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010d U+0034 U+0024 dead_kbreve +U+010d U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010d U+0034 U+0024 dead_kbreve +U+010d U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010d U+0034 U+0024 dead_kbreve +U+010d U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_kbreve +U+010c U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_kbreve +U+010c U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_kbreve +U+010c U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_kbreve +U+010c U+0034 U+0024 dead_kbreve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +-keycode 6 = +U+0159 U+0035 U+0025 dead_abovering +U+0159 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0159 U+0035 U+0025 dead_abovering +U+0159 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0159 U+0035 U+0025 dead_abovering +U+0159 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0159 U+0035 U+0025 dead_abovering +U+0159 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 dead_abovering +U+0158 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 dead_abovering +U+0158 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 dead_abovering +U+0158 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 dead_abovering +U+0158 U+0035 U+0025 dead_abovering Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +-keycode 7 = +U+017e U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017e U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017e U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017e U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_kogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum ++keycode 5 = +U+010d U+0034 U+0024 dead_breve +U+010d U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010d U+0034 U+0024 dead_breve +U+010d U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010d U+0034 U+0024 dead_breve +U+010d U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010d U+0034 U+0024 dead_breve +U+010d U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_breve +U+010c U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_breve +U+010c U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_breve +U+010c U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar +U+010c U+0034 U+0024 dead_breve +U+010c U+0034 U+0024 dead_breve Meta_four Meta_four Meta_dollar Meta_dollar Meta_four Meta_four Meta_dollar Meta_dollar ++keycode 6 = +U+0159 U+0035 U+0025 U+00b0 +U+0159 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0159 U+0035 U+0025 U+00b0 +U+0159 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0159 U+0035 U+0025 U+00b0 +U+0159 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0159 U+0035 U+0025 U+00b0 +U+0159 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 U+00b0 +U+0158 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 U+00b0 +U+0158 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 U+00b0 +U+0158 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent +U+0158 U+0035 U+0025 U+00b0 +U+0158 U+0035 U+0025 U+00b0 Meta_five Meta_five Meta_percent Meta_percent Meta_five Meta_five Meta_percent Meta_percent ++keycode 7 = +U+017e U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017e U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017e U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017e U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum +U+017d U+0036 U+005e dead_ogonek Control_asciicircum U+0036 Control_asciicircum Control_asciicircum Meta_six Meta_six Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_six Meta_Control_asciicircum Meta_Control_asciicircum + keycode 8 = +U+00fd U+0037 U+0026 dead_grave +U+00fd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00fd U+0037 U+0026 dead_grave +U+00fd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00fd U+0037 U+0026 dead_grave +U+00fd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00fd U+0037 U+0026 dead_grave +U+00fd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00dd U+0037 U+0026 dead_grave +U+00dd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00dd U+0037 U+0026 dead_grave +U+00dd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00dd U+0037 U+0026 dead_grave +U+00dd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +U+00dd U+0037 U+0026 dead_grave +U+00dd U+0037 U+0026 dead_grave Meta_seven Meta_seven Meta_ampersand Meta_ampersand Meta_seven Meta_seven Meta_ampersand Meta_ampersand +-keycode 9 = +U+00e1 U+0038 U+002a dead_abovedot +U+00e1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00e1 U+0038 U+002a dead_abovedot +U+00e1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00e1 U+0038 U+002a dead_abovedot +U+00e1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00e1 U+0038 U+002a dead_abovedot +U+00e1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00c1 U+0038 U+002a dead_abovedot +U+00c1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00c1 U+0038 U+002a dead_abovedot +U+00c1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00c1 U+0038 U+002a dead_abovedot +U+00c1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk +U+00c1 U+0038 U+002a dead_abovedot +U+00c1 U+0038 U+002a dead_abovedot Meta_eight Meta_eight Meta_asterisk Meta_asterisk Meta_eight Meta_eight Meta_asterisk Meta_asterisk ++keycode 9 = +U+00e1 U+0038 U+002a U+002e +U+00e1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00e1 U+0038 U+002a U+002e +U+00e1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00e1 U+0038 U+002a U+002e +U+00e1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00e1 U+0038 U+002a U+002e +U+00e1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00c1 U+0038 U+002a U+002e +U+00c1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00c1 U+0038 U+002a U+002e +U+00c1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00c1 U+0038 U+002a U+002e +U+00c1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose +U+00c1 U+0038 U+002a U+002e +U+00c1 Compose Compose Compose Meta_eight Meta_eight Meta_asterisk Meta_period Compose Compose Compose Compose + keycode 10 = +U+00ed U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00ed U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00ed U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00ed U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00cd U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00cd U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00cd U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +U+00cd U+0039 U+007b dead_acute Escape U+0039 Escape Escape Meta_nine Meta_nine Meta_braceleft Meta_braceleft Meta_Escape Meta_nine Meta_Escape Meta_Escape +-keycode 11 = +U+00e9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00e9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00e9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00e9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_kdoubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright ++keycode 11 = +U+00e9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00e9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00e9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00e9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright +U+00c9 U+0030 U+007d dead_doubleacute Control_bracketright U+0030 Control_bracketright Control_bracketright Meta_zero Meta_zero Meta_braceright Meta_braceright Meta_Control_bracketright Meta_zero Meta_Control_bracketright Meta_Control_bracketright + keycode 12 = U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash U+003d U+0025 U+005c dead_diaeresis Control_backslash U+0025 Control_backslash Control_backslash Meta_equal Meta_percent Meta_backslash Meta_backslash Meta_Control_backslash Meta_percent Meta_Control_backslash Meta_Control_backslash +-keycode 13 = dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla dead_acute dead_kcaron dead_macron dead_cedilla ++keycode 13 = dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore dead_acute dead_caron U+005f dead_cedilla Control_underscore dead_caron Control_underscore Control_underscore Meta_underscore dead_caron Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore + keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace + keycode 15 = Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Meta_Tab Tab Meta_Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab + keycode 16 = +U+0071 +U+0051 U+005c +U+03a9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0071 +U+0051 U+005c +U+03a9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0071 +U+0051 U+005c +U+03a9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0071 +U+0051 U+005c +U+03a9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0051 +U+0071 U+005c +U+03c9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0051 +U+0071 U+005c +U+03c9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0051 +U+0071 U+005c +U+03c9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +U+0051 +U+0071 U+005c +U+03c9 Control_q Control_q Control_backslash Control_backslash Meta_q Meta_Q Meta_backslash Meta_backslash Meta_Control_q Meta_Control_q Meta_Control_backslash Meta_Control_backslash +@@ -34,16 +34,16 @@ + keycode 33 = +U+0066 +U+0046 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0066 +U+0046 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0066 +U+0046 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0066 +U+0046 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0046 +U+0066 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0046 +U+0066 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0046 +U+0066 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape +U+0046 +U+0066 U+005b +U+00aa Control_f Control_f Escape Escape Meta_f Meta_F Meta_bracketleft Meta_bracketleft Meta_Control_f Meta_Control_f Meta_Escape Meta_Escape + keycode 34 = +U+0067 +U+0047 U+005d +U+014a Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0067 +U+0047 U+005d +U+014a Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0067 +U+0047 U+005d +U+014a Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0067 +U+0047 U+005d +U+014a Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0047 +U+0067 U+005d +U+014b Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0047 +U+0067 U+005d +U+014b Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0047 +U+0067 U+005d +U+014b Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright +U+0047 +U+0067 U+005d +U+014b Control_g Control_g Control_bracketright Control_bracketright Meta_g Meta_G Meta_bracketright Meta_bracketright Meta_Control_g Meta_Control_g Meta_Control_bracketright Meta_Control_bracketright + keycode 35 = +U+0068 +U+0048 U+0060 +U+0126 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0068 +U+0048 U+0060 +U+0126 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0068 +U+0048 U+0060 +U+0126 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0068 +U+0048 U+0060 +U+0126 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0048 +U+0068 U+0060 +U+0127 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0048 +U+0068 U+0060 +U+0127 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0048 +U+0068 U+0060 +U+0127 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +U+0048 +U+0068 U+0060 +U+0127 BackSpace BackSpace nul nul Meta_h Meta_H Meta_grave Meta_grave Meta_BackSpace Meta_BackSpace Meta_nul Meta_nul +-keycode 36 = +U+006a +U+004a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 dead_horn Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed ++keycode 36 = +U+006a +U+004a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0027 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_apostrophe Meta_apostrophe Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed + keycode 37 = +U+006b +U+004b +U+0142 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0142 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0142 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0142 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0141 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0141 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0141 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0141 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_ampersand Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k keycode 38 = +U+006c +U+004c +U+0141 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0141 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0141 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0141 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0142 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0142 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0142 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0142 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l - keycode 39 = +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +-keycode 39 = +U+016f U+0022 U+0024 dead_kdoubleacute +U+016f U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_kdoubleacute +U+016f U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_kdoubleacute +U+016f U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_kdoubleacute +U+016f U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_kdoubleacute +U+016e U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_kdoubleacute +U+016e U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_kdoubleacute +U+016e U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_kdoubleacute +U+016e U+0022 U+0024 dead_kdoubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar ++keycode 39 = +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar keycode 40 = U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+0053 U+00a7 U+0021 U+0027 +U+0053 Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+0053 U+00a7 U+0021 U+0027 +U+0053 Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+0053 U+00a7 U+0021 U+0027 +U+0053 Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+0053 U+00a7 U+0021 U+0027 +U+0053 Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe --keycode 41 = U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum +-keycode 41 = U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b dead_abovering U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum +keycode 41 = U+003b dead_grave U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift keycode 43 = dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash - keycode 44 = +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +-keycode 44 = +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +-keycode 45 = +U+0078 +U+0058 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x ++keycode 44 = +U+0079 +U+0059 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+2039 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y ++keycode 45 = +U+0078 +U+0058 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+0023 U+203a Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_numbersign Meta_numbersign Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x + keycode 46 = +U+0063 +U+0043 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+0026 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_ampersand Meta_ampersand Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c + keycode 47 = +U+0076 +U+0056 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0076 +U+0056 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0076 +U+0056 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0076 +U+0056 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0056 +U+0076 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0056 +U+0076 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0056 +U+0076 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul +U+0056 +U+0076 U+0040 U+201a Control_v Control_v nul nul Meta_v Meta_V Meta_at Meta_at Meta_Control_v Meta_Control_v Meta_nul Meta_nul + keycode 48 = +U+0062 +U+0042 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0062 +U+0042 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0062 +U+0042 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0062 +U+0042 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0042 +U+0062 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0042 +U+0062 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0042 +U+0062 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +U+0042 +U+0062 U+007b U+2018 Control_b Control_b Escape Escape Meta_b Meta_B Meta_braceleft Meta_braceleft Meta_Control_b Meta_Control_b Meta_Escape Meta_Escape +@@ -51,7 +51,7 @@ + keycode 50 = +U+006d +U+004d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+006d +U+004d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+006d +U+004d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+006d +U+004d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+004d +U+006d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+004d +U+006d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+004d +U+006d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum +U+004d +U+006d U+005e +U+00ba Return Return Control_asciicircum Control_asciicircum Meta_m Meta_M Meta_asciicircum Meta_asciicircum Meta_Control_m Meta_Control_m Meta_Control_asciicircum Meta_Control_asciicircum + keycode 51 = U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete U+002c U+003f U+003c U+00d7 Delete Delete U+003c Delete Meta_comma Meta_question Meta_less Meta_less Meta_Delete Meta_Delete Meta_less Meta_Delete + keycode 52 = U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose U+002e U+003a U+003e U+00f7 Compose Compose Compose U+00f7 Meta_period Meta_colon Meta_greater Meta_greater Compose Compose Compose Compose +-keycode 53 = U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore U+002d U+005f U+002a dead_abovedot Control_underscore Control_underscore U+002a Control_underscore Meta_minus Meta_underscore Meta_asterisk Meta_asterisk Meta_Control_underscore Meta_Control_underscore Meta_asterisk Meta_Control_underscore ++keycode 53 = U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+002a U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_asterisk Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose + keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift + keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply + keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt @@ -108,3 +108,49 @@ keycode 127 = VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period diff --git a/kbd.spec b/kbd.spec index 0722b7f..ff8a64c 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.5.1 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPLv2+ URL: http://www.kbd-project.org/ @@ -189,6 +189,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Tue Feb 21 2023 Vitezslav Crhonek - 2.5.1-5 +- Update patch adding compose rules for converted cz layout + Resolves: #2171583 + * Thu Jan 19 2023 Fedora Release Engineering - 2.5.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 5bcce9c3b37553151cc649016f6aa3fdd34b397b Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Fri, 26 May 2023 12:18:25 +0200 Subject: [PATCH 19/42] SPDX migration, replace deprecated patchN Signed-off-by: Vitezslav Crhonek --- kbd.spec | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/kbd.spec b/kbd.spec index ff8a64c..9a7023e 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,9 +5,9 @@ Name: kbd Version: 2.5.1 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) -License: GPLv2+ +License: GPL-2.0-or-later URL: http://www.kbd-project.org/ Source0: ftp://ftp.altlinux.org/pub/people/legion/kbd/kbd-%{version}.tar.xz @@ -69,13 +69,7 @@ Please note that %{name}-legacy is not helpful without kbd. %setup -q -a 1 -a 2 cp -fp %{SOURCE3} . cp -fp %{SOURCE6} . -%patch0 -p1 -b .keycodes-man -%patch1 -p1 -b .sparc -%patch2 -p1 -b .unicode_start -%patch3 -p1 -b .sg-decimal-separator -%patch4 -p1 -b .loadkeys-search-path -%patch5 -p1 -b .unicode-start-font -%patch6 -p1 -b .covscan-fixes +%autopatch -p1 aclocal autoconf @@ -189,6 +183,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Fri May 26 2023 Vitezslav Crhonek - 2.5.1-6 +- SPDX migration + * Tue Feb 21 2023 Vitezslav Crhonek - 2.5.1-5 - Update patch adding compose rules for converted cz layout Resolves: #2171583 From be8cf27e5d95ed3b3653c20c7f2cfab834e968a5 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Tue, 13 Jun 2023 09:40:19 +0200 Subject: [PATCH 20/42] Update to kbd-2.6.0 Signed-off-by: Vitezslav Crhonek --- .gitignore | 2 +- kbd.spec | 8 ++++++-- sources | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 9c50456..36f3115 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ terminus.tar.bz2 /fr-dvorak.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 -/kbd-2.5.1.tar.xz +/kbd-2.6.0.tar.xz diff --git a/kbd.spec b/kbd.spec index 9a7023e..7a35c8f 100644 --- a/kbd.spec +++ b/kbd.spec @@ -4,8 +4,8 @@ %global kbd_datadir %{_exec_prefix}/lib/kbd Name: kbd -Version: 2.5.1 -Release: 6%{?dist} +Version: 2.6.0 +Release: 1%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -183,6 +183,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Tue Jun 13 2023 Vitezslav Crhonek - 2.6.0-1 +- Update to kbd-2.6.0 + Resolves: #2214279 + * Fri May 26 2023 Vitezslav Crhonek - 2.5.1-6 - SPDX migration diff --git a/sources b/sources index 6eb443a..ec074c8 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356db7533f24e49fb78c8e3999901a45a49cdf6a74c0002bba2e0aa8327469d78dd38b6e747103972c30584 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 -SHA512 (kbd-2.5.1.tar.xz) = 74855f486aff5fc2f93a6cb29460a590c94eac653b001574e1b4eb1300ea99dfed9222f9e5d1d3a05a112a6880591d5c44ed6e76b8a64edf744ecb0892f562d0 +SHA512 (kbd-2.6.0.tar.xz) = 4b8cec06ea2143a285bedb95cb66c313ebac79dc3c64956f969f389186609bc1a066dbf32d6ae308e18947dcbe2f6f684f6c69d4210b40d449735e5704707b27 From 7b60b7f6943abe739613e84d280a6f70a421b571 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Mon, 3 Jul 2023 08:59:09 +0200 Subject: [PATCH 21/42] Update to kbd-2.6.1 Signed-off-by: Vitezslav Crhonek --- .gitignore | 2 +- kbd-2.4.0-covscan-fixes.patch | 16 ++++++++-------- kbd.spec | 6 +++++- sources | 2 +- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 36f3115..64c3186 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ terminus.tar.bz2 /fr-dvorak.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 -/kbd-2.6.0.tar.xz +/kbd-2.6.1.tar.xz diff --git a/kbd-2.4.0-covscan-fixes.patch b/kbd-2.4.0-covscan-fixes.patch index c7ddf27..67cdd50 100644 --- a/kbd-2.4.0-covscan-fixes.patch +++ b/kbd-2.4.0-covscan-fixes.patch @@ -1,7 +1,7 @@ -diff -up kbd-2.4.0/src/libkfont/psffontop.c.orig kbd-2.4.0/src/libkfont/psffontop.c ---- kbd-2.4.0/src/libkfont/psffontop.c.orig 2020-04-27 17:53:01.000000000 +0200 -+++ kbd-2.4.0/src/libkfont/psffontop.c 2021-04-27 09:59:14.170153676 +0200 -@@ -235,6 +235,7 @@ kfont_read_psffont(struct kfont_context +diff -up kbd-2.6.1/src/libkfont/psffontop.c.orig kbd-2.6.1/src/libkfont/psffontop.c +--- kbd-2.6.1/src/libkfont/psffontop.c.orig 2023-06-23 10:29:44.000000000 +0200 ++++ kbd-2.6.1/src/libkfont/psffontop.c 2023-06-30 14:06:06.363944776 +0200 +@@ -236,6 +236,7 @@ kfont_read_psffont(struct kfont_context if (psfhdr->mode > PSF1_MAXMODE) { KFONT_ERR(ctx, _("Unsupported psf file mode (%d)"), psfhdr->mode); @@ -9,7 +9,7 @@ diff -up kbd-2.4.0/src/libkfont/psffontop.c.orig kbd-2.4.0/src/libkfont/psffonto return -EX_DATAERR; } fontlen = ((psfhdr->mode & PSF1_MODE512) ? 512 : 256); -@@ -251,6 +252,7 @@ kfont_read_psffont(struct kfont_context +@@ -253,6 +254,7 @@ kfont_read_psffont(struct kfont_context if (psfhdr.version > PSF2_MAXVERSION) { KFONT_ERR(ctx, _("Unsupported psf version (%d)"), psfhdr.version); @@ -17,9 +17,9 @@ diff -up kbd-2.4.0/src/libkfont/psffontop.c.orig kbd-2.4.0/src/libkfont/psffonto return -EX_DATAERR; } fontlen = assemble_uint32((unsigned char *)&psfhdr.length); -@@ -260,16 +262,20 @@ kfont_read_psffont(struct kfont_context - ftoffset = assemble_uint32((unsigned char *)&psfhdr.headersize); +@@ -263,16 +265,20 @@ kfont_read_psffont(struct kfont_context fontwidth = assemble_uint32((unsigned char *)&psfhdr.width); + fontheight= assemble_uint32((unsigned char *)&psfhdr.height); utf8 = 1; - } else + } else { @@ -39,7 +39,7 @@ diff -up kbd-2.4.0/src/libkfont/psffontop.c.orig kbd-2.4.0/src/libkfont/psffonto return -EX_DATAERR; } -@@ -277,6 +283,7 @@ kfont_read_psffont(struct kfont_context +@@ -286,6 +292,7 @@ kfont_read_psffont(struct kfont_context if (i > inputlth || (!hastable && i != inputlth)) { KFONT_ERR(ctx, _("Input file: bad input length (%d)"), inputlth); diff --git a/kbd.spec b/kbd.spec index 7a35c8f..abee9d8 100644 --- a/kbd.spec +++ b/kbd.spec @@ -4,7 +4,7 @@ %global kbd_datadir %{_exec_prefix}/lib/kbd Name: kbd -Version: 2.6.0 +Version: 2.6.1 Release: 1%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later @@ -183,6 +183,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Mon Jul 03 2023 Vitezslav Crhonek - 2.6.1-1 +- Update to kbd-2.6.1 + Resolves: #2218174 + * Tue Jun 13 2023 Vitezslav Crhonek - 2.6.0-1 - Update to kbd-2.6.0 Resolves: #2214279 diff --git a/sources b/sources index ec074c8..03f5008 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356db7533f24e49fb78c8e3999901a45a49cdf6a74c0002bba2e0aa8327469d78dd38b6e747103972c30584 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 -SHA512 (kbd-2.6.0.tar.xz) = 4b8cec06ea2143a285bedb95cb66c313ebac79dc3c64956f969f389186609bc1a066dbf32d6ae308e18947dcbe2f6f684f6c69d4210b40d449735e5704707b27 +SHA512 (kbd-2.6.1.tar.xz) = 8d7f39efa91ef16f4c0601c1744e7f00e411c121607660c8f585d3e085d8e8bea4ea095f6c7f491af763097a9844fb4a07d4b78a8358cb7caafbfda0626acf91 From 44dc89c0831b19e25c601f5b4ec93800b7bd1248 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 20 Jul 2023 08:26:16 +0000 Subject: [PATCH 22/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index abee9d8..ed3a6ab 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.6.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -183,6 +183,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Thu Jul 20 2023 Fedora Release Engineering - 2.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Mon Jul 03 2023 Vitezslav Crhonek - 2.6.1-1 - Update to kbd-2.6.1 Resolves: #2218174 From 1392cb9cd018eea2d843a1966fe3ce5a362135f1 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Thu, 24 Aug 2023 11:30:12 +0200 Subject: [PATCH 23/42] Update to kbd-2.6.2, remove unused patch, version obsoletes Signed-off-by: Vitezslav Crhonek --- .gitignore | 2 +- ...-codepoint-character-that-chokes-loa.patch | 30 ------------------- kbd-1.15.5-loadkeys-search-path.patch | 16 +++++----- kbd.spec | 10 +++++-- sources | 2 +- 5 files changed, 17 insertions(+), 43 deletions(-) delete mode 100644 0001-fa.map-drop-high-codepoint-character-that-chokes-loa.patch diff --git a/.gitignore b/.gitignore index 64c3186..9b7cb5b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ terminus.tar.bz2 /fr-dvorak.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 -/kbd-2.6.1.tar.xz +/kbd-2.6.2.tar.xz diff --git a/0001-fa.map-drop-high-codepoint-character-that-chokes-loa.patch b/0001-fa.map-drop-high-codepoint-character-that-chokes-loa.patch deleted file mode 100644 index 7d185eb..0000000 --- a/0001-fa.map-drop-high-codepoint-character-that-chokes-loa.patch +++ /dev/null @@ -1,30 +0,0 @@ -From d8aa08c7f3096fbb2901d1b9f93473ca9ba1d342 Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Thu, 21 Oct 2021 14:08:24 -0700 -Subject: [PATCH] fa.map: drop high codepoint character that chokes loadkeys - -fa.map contains a mapping for Unicode character U+FDFC. However, -loadkeys refuses to load any map containing a codepoint over -U+F000. To avoid the map failing to load entirely, let's remove -the problematic character. - -Signed-off-by: Adam Williamson ---- - data/keymaps/i386/qwerty/fa.map | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/data/keymaps/i386/qwerty/fa.map b/data/keymaps/i386/qwerty/fa.map -index 9ea0a7a..9aa5284 100644 ---- a/data/keymaps/i386/qwerty/fa.map -+++ b/data/keymaps/i386/qwerty/fa.map -@@ -44,7 +44,6 @@ altgr keycode 57 = U+0020 # SPACE - altgr shift keycode 2 = U+0021 # EXCLAMATION MARK - altgr shift keycode 40 = U+061B # ARABIC SEMICOLON - altgr shift keycode 4 = U+066B # ARABIC DECIMAL SEPARATOR --altgr shift keycode 5 = U+FDFC # RIAL SIGN - altgr shift keycode 6 = U+066A # ARABIC PERCENT SIGN - altgr shift keycode 8 = U+060C # ARABIC COMMA - altgr keycode 40 = U+06AF # ARABIC LETTER GAF --- -2.33.0 - diff --git a/kbd-1.15.5-loadkeys-search-path.patch b/kbd-1.15.5-loadkeys-search-path.patch index 16beb3d..aeb771c 100644 --- a/kbd-1.15.5-loadkeys-search-path.patch +++ b/kbd-1.15.5-loadkeys-search-path.patch @@ -1,18 +1,18 @@ -diff -up kbd-2.3.0/src/loadkeys.c.orig kbd-2.3.0/src/loadkeys.c ---- kbd-2.3.0/src/loadkeys.c.orig 2020-06-02 12:16:45.000000000 +0200 -+++ kbd-2.3.0/src/loadkeys.c 2020-07-16 09:02:50.398864688 +0200 -@@ -28,6 +28,8 @@ +diff -up kbd-2.6.2/src/loadkeys.c.orig kbd-2.6.2/src/loadkeys.c +--- kbd-2.6.2/src/loadkeys.c.orig 2023-08-22 10:02:52.261785310 +0200 ++++ kbd-2.6.2/src/loadkeys.c 2023-08-22 10:03:44.351889761 +0200 +@@ -27,6 +27,8 @@ + static const char *const dirpath1[] = { - "", DATADIR "/" KEYMAPDIR "/**", + DATADIR "/" XKBKEYMAPDIR "/", + DATADIR "/" LEGACYKEYMAPDIR "/**", KERNDIR "/", NULL }; -diff -up kbd-2.3.0/src/paths.h.orig kbd-2.3.0/src/paths.h ---- kbd-2.3.0/src/paths.h.orig 2020-07-16 09:02:59.243010909 +0200 -+++ kbd-2.3.0/src/paths.h 2020-07-16 09:03:23.446410942 +0200 +diff -up kbd-2.6.2/src/paths.h.orig kbd-2.6.2/src/paths.h +--- kbd-2.6.2/src/paths.h.orig 2023-08-22 10:04:03.021927193 +0200 ++++ kbd-2.6.2/src/paths.h 2023-08-22 10:04:35.740992805 +0200 @@ -5,6 +5,8 @@ * The following five subdirectories are defined: */ diff --git a/kbd.spec b/kbd.spec index ed3a6ab..52c7291 100644 --- a/kbd.spec +++ b/kbd.spec @@ -4,8 +4,8 @@ %global kbd_datadir %{_exec_prefix}/lib/kbd Name: kbd -Version: 2.6.1 -Release: 2%{?dist} +Version: 2.6.2 +Release: 1%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -42,7 +42,7 @@ Requires: %{name}-legacy = %{version}-%{release} Conflicts: filesystem < 3 Provides: vlock = %{version} Conflicts: vlock <= 1.3 -Obsoletes: vlock +Obsoletes: vlock < 1.3-34 %description The %{name} package contains tools for managing a Linux @@ -183,6 +183,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Thu Aug 24 2023 Vitezslav Crhonek - 2.6.2-1 +- Update to kbd-2.6.2 + Resolves: #2232126 + * Thu Jul 20 2023 Fedora Release Engineering - 2.6.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild diff --git a/sources b/sources index 03f5008..25aeee8 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356db7533f24e49fb78c8e3999901a45a49cdf6a74c0002bba2e0aa8327469d78dd38b6e747103972c30584 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 -SHA512 (kbd-2.6.1.tar.xz) = 8d7f39efa91ef16f4c0601c1744e7f00e411c121607660c8f585d3e085d8e8bea4ea095f6c7f491af763097a9844fb4a07d4b78a8358cb7caafbfda0626acf91 +SHA512 (kbd-2.6.2.tar.xz) = afcac33e2e8eecd6f9cfa20bb39254deffc4d8924c4f722d003bdfaf286dac7d87f55ed0a5a35d341ae88fc48162966d5aa1ab8125b11e845bf3c2589a17c8d2 From cdf66d478d4c2a315c1cced1c1a2074931920fc7 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Wed, 20 Sep 2023 16:34:15 +0200 Subject: [PATCH 24/42] Update to kbd-2.6.3 Signed-off-by: Vitezslav Crhonek --- .gitignore | 2 +- kbd.spec | 6 +++++- sources | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 9b7cb5b..9a77df4 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ terminus.tar.bz2 /fr-dvorak.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 -/kbd-2.6.2.tar.xz +/kbd-2.6.3.tar.xz diff --git a/kbd.spec b/kbd.spec index 52c7291..af61151 100644 --- a/kbd.spec +++ b/kbd.spec @@ -4,7 +4,7 @@ %global kbd_datadir %{_exec_prefix}/lib/kbd Name: kbd -Version: 2.6.2 +Version: 2.6.3 Release: 1%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later @@ -183,6 +183,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Wed Sep 20 2023 Vitezslav Crhonek - 2.6.3-1 +- Update to kbd-2.6.3 + Resolves: #2239620 + * Thu Aug 24 2023 Vitezslav Crhonek - 2.6.2-1 - Update to kbd-2.6.2 Resolves: #2232126 diff --git a/sources b/sources index 25aeee8..f6f197d 100644 --- a/sources +++ b/sources @@ -2,3 +2,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 SHA512 (kbd-2.6.2.tar.xz) = afcac33e2e8eecd6f9cfa20bb39254deffc4d8924c4f722d003bdfaf286dac7d87f55ed0a5a35d341ae88fc48162966d5aa1ab8125b11e845bf3c2589a17c8d2 +SHA512 (kbd-2.6.3.tar.xz) = 7daf59557408e1cd29140130094b43d8d89b25b3094fd03912d878483f27d128ad25163ea7023e5a10b7d8b8bf8434447927b69fe0094f8db97484881f23ed60 From 0c0055eae4065addff45511a060cc82e8f317551 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Fri, 15 Dec 2023 09:10:16 +0100 Subject: [PATCH 25/42] Update to kbd-2.6.4 Signed-off-by: Vitezslav Crhonek --- .gitignore | 2 +- kbd.spec | 6 +++++- sources | 3 +-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 9a77df4..2f09443 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ terminus.tar.bz2 /fr-dvorak.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 -/kbd-2.6.3.tar.xz +/kbd-2.6.4.tar.xz diff --git a/kbd.spec b/kbd.spec index af61151..0db0e16 100644 --- a/kbd.spec +++ b/kbd.spec @@ -4,7 +4,7 @@ %global kbd_datadir %{_exec_prefix}/lib/kbd Name: kbd -Version: 2.6.3 +Version: 2.6.4 Release: 1%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later @@ -183,6 +183,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Fri Dec 15 2023 Vitezslav Crhonek - 2.6.4-1 +- Update to kbd-2.6.4 + Resolves: #2254010 + * Wed Sep 20 2023 Vitezslav Crhonek - 2.6.3-1 - Update to kbd-2.6.3 Resolves: #2239620 diff --git a/sources b/sources index f6f197d..79fcc97 100644 --- a/sources +++ b/sources @@ -1,5 +1,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356db7533f24e49fb78c8e3999901a45a49cdf6a74c0002bba2e0aa8327469d78dd38b6e747103972c30584 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 -SHA512 (kbd-2.6.2.tar.xz) = afcac33e2e8eecd6f9cfa20bb39254deffc4d8924c4f722d003bdfaf286dac7d87f55ed0a5a35d341ae88fc48162966d5aa1ab8125b11e845bf3c2589a17c8d2 -SHA512 (kbd-2.6.3.tar.xz) = 7daf59557408e1cd29140130094b43d8d89b25b3094fd03912d878483f27d128ad25163ea7023e5a10b7d8b8bf8434447927b69fe0094f8db97484881f23ed60 +SHA512 (kbd-2.6.4.tar.xz) = a4149cb0f85fd79b333a6c137d70896a30ebceb1cf9d4b5eef3abb2e1866d83b46cee651e4f3e512bf7e0ccd232d955c14f693e57020a3626e4943c4695fc8ab From 2a39d142ffbc54a369ced9c7db7aaf9380d5843e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 21 Jan 2024 00:00:42 +0000 Subject: [PATCH 26/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index 0db0e16..28eb54e 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.6.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -183,6 +183,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Sun Jan 21 2024 Fedora Release Engineering - 2.6.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Dec 15 2023 Vitezslav Crhonek - 2.6.4-1 - Update to kbd-2.6.4 Resolves: #2254010 From be64e0bccc60119a65fc23e2d5ab86dceba85483 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jan 2024 23:40:55 +0000 Subject: [PATCH 27/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index 28eb54e..f331b38 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.6.4 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -183,6 +183,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Wed Jan 24 2024 Fedora Release Engineering - 2.6.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Sun Jan 21 2024 Fedora Release Engineering - 2.6.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 0f3e690579f8b381feb429f5979a24e7ddb08054 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 18 Jul 2024 11:22:59 +0000 Subject: [PATCH 28/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index f331b38..ce01927 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.6.4 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -183,6 +183,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Thu Jul 18 2024 Fedora Release Engineering - 2.6.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Wed Jan 24 2024 Fedora Release Engineering - 2.6.4-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 0b01da5bee0ae7060bca0ac2e0370ddbf89c897d Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Tue, 10 Sep 2024 13:26:41 +0200 Subject: [PATCH 29/42] Add vlock option to issue prompt before invokation of pam stack --- kbd-2.0.4-vlock-add-prompt-option.patch | 84 +++++++++++++++++++++++++ kbd.spec | 7 ++- 2 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 kbd-2.0.4-vlock-add-prompt-option.patch diff --git a/kbd-2.0.4-vlock-add-prompt-option.patch b/kbd-2.0.4-vlock-add-prompt-option.patch new file mode 100644 index 0000000..64e6a64 --- /dev/null +++ b/kbd-2.0.4-vlock-add-prompt-option.patch @@ -0,0 +1,84 @@ +diff -up kbd-2.0.4/src/vlock/auth.c.orig kbd-2.0.4/src/vlock/auth.c +--- kbd-2.0.4/src/vlock/auth.c.orig 2016-12-19 16:01:51.000000000 +0100 ++++ kbd-2.0.4/src/vlock/auth.c 2024-03-11 12:21:29.861328176 +0100 +@@ -90,6 +90,12 @@ int get_password(pam_handle_t *pamh, con + } + fflush(stdout); + ++ if (prompt) { ++ printf(_("Press ENTER to continue.\n")); ++ fflush(stdout); ++ (void )getchar(); ++ } ++ + /* + * No need to request a delay on failure via pam_fail_delay(3): + * authentication module should do it for us. +diff -up kbd-2.0.4/src/vlock/parse.c.orig kbd-2.0.4/src/vlock/parse.c +--- kbd-2.0.4/src/vlock/parse.c.orig 2016-12-19 16:01:51.000000000 +0100 ++++ kbd-2.0.4/src/vlock/parse.c 2024-03-11 12:20:33.167302197 +0100 +@@ -38,6 +38,13 @@ + */ + int o_lock_all; + ++/* ++ * This determines whether there will be prompt before invoking pam ++ * auth stack. ++ * 0 means no, 1 means yes. ++ */ ++int prompt; ++ + const char * + locked_name(void) + { +@@ -63,6 +70,8 @@ show_help(void) + " switch to other virtual consoles.\n" + "-a or --all: lock all virtual consoles by preventing other users\n" + " from switching virtual consoles.\n" ++ "-p or --prompt: wait for keypress before invoking pam auth stack,\n" ++ " useful for unlocking with smartcard setup.\n" + "-v or --version: Print the version number of vlock and exit.\n" + "-h or --help: Print this help message and exit.\n"), + progname, progname); +@@ -74,13 +83,14 @@ void parse(int ac, char *const av[]) + static struct option long_options[] = { + { "current", 0, 0, 'c' }, + { "all", 0, 0, 'a' }, ++ { "prompt", 0, 0, 'p' }, + { "version", 0, 0, 'v' }, + { "help", 0, 0, 'h' }, + { 0, 0, 0, 0 }, + }; + int c; + +- while ((c = getopt_long(ac, av, "acvh", long_options, 0)) != -1) { ++ while ((c = getopt_long(ac, av, "acpvh", long_options, 0)) != -1) { + switch (c) { + case 'c': + o_lock_all = 0; +@@ -88,6 +98,9 @@ void parse(int ac, char *const av[]) + case 'a': + o_lock_all = 1; + break; ++ case 'p': ++ prompt = 1; ++ break; + case 'v': + fprintf(stderr, "%s\n", VERSION); + exit(EXIT_SUCCESS); +diff -up kbd-2.0.4/src/vlock/vlock.h.orig kbd-2.0.4/src/vlock/vlock.h +--- kbd-2.0.4/src/vlock/vlock.h.orig 2016-12-19 16:01:55.000000000 +0100 ++++ kbd-2.0.4/src/vlock/vlock.h 2024-03-11 12:21:29.861328176 +0100 +@@ -40,5 +40,12 @@ const char *locked_name(void); + */ + extern int o_lock_all; + ++/* ++ * This determines whether there will be prompt before invoking pam ++ * auth stack. ++ * 0 means no, 1 means yes. ++ */ ++extern int prompt; ++ + /* Copy of the VT mode when the program was started. */ + extern int is_vt; diff --git a/kbd.spec b/kbd.spec index ce01927..38567f9 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.6.4 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -32,6 +32,8 @@ Patch4: kbd-1.15.5-loadkeys-search-path.patch Patch5: kbd-2.0.2-unicode-start-font.patch # Patch6: fixes issues found by static analysis Patch6: kbd-2.4.0-covscan-fixes.patch +# Patch7: adds vlock option to issue prompt before invokation of pam stack +Patch7: kbd-2.0.4-vlock-add-prompt-option.patch BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake BuildRequires: console-setup, xkeyboard-config @@ -183,6 +185,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Tue Sep 10 2024 Vitezslav Crhonek - 2.6.4-5 +- Add vlock option to issue prompt before invokation of pam stack + * Thu Jul 18 2024 Fedora Release Engineering - 2.6.4-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 2fd209b56bff66ee2d35709d68f6496cb1466bdd Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Tue, 17 Dec 2024 07:37:29 +0100 Subject: [PATCH 30/42] Update to kbd-2.7 Signed-off-by: Vitezslav Crhonek --- .gitignore | 2 +- kbd-1.15-keycodes-man.patch | 24 ++++++------ kbd-1.15-sparc.patch | 20 +++++----- kbd-1.15.5-loadkeys-search-path.patch | 32 ++++++++-------- kbd-2.0.4-vlock-add-prompt-option.patch | 50 ++++++++++++------------- kbd.spec | 10 +++-- sources | 2 +- 7 files changed, 71 insertions(+), 69 deletions(-) diff --git a/.gitignore b/.gitignore index 2f09443..24c3ee5 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ terminus.tar.bz2 /fr-dvorak.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 -/kbd-2.6.4.tar.xz +/kbd-2.7.tar.xz diff --git a/kbd-1.15-keycodes-man.patch b/kbd-1.15-keycodes-man.patch index e400c9d..0d5b19a 100644 --- a/kbd-1.15-keycodes-man.patch +++ b/kbd-1.15-keycodes-man.patch @@ -1,11 +1,10 @@ -diff -up kbd-2.3.0/docs/man/man1/showkey.1.orig kbd-2.3.0/docs/man/man1/showkey.1 ---- kbd-2.3.0/docs/man/man1/showkey.1.orig 2020-07-08 19:25:47.000000000 +0200 -+++ kbd-2.3.0/docs/man/man1/showkey.1 2020-07-16 08:56:15.970254183 +0200 -@@ -84,6 +84,19 @@ corresponds to what the keyboard hardwar +diff -up kbd-2.7-rc1/docs/man/man1/showkey.1.orig kbd-2.7-rc1/docs/man/man1/showkey.1 +--- kbd-2.7-rc1/docs/man/man1/showkey.1.orig 2024-10-25 10:52:17.000000000 +0200 ++++ kbd-2.7-rc1/docs/man/man1/showkey.1 2024-10-29 11:59:53.540044621 +0100 +@@ -84,6 +84,17 @@ corresponds to what the keyboard hardwar to know the scan codes sent by various keys it is better to boot a 2.4 kernel. Since 2.6.9 there also is the boot option atkbd.softraw=0 that tells the 2.6 kernel to return the actual scan codes. -+ +.SH NOTES +The raw scan codes are available only on AT and PS/2 keyboards, +and even then they are disabled unless the @@ -17,14 +16,13 @@ diff -up kbd-2.3.0/docs/man/man1/showkey.1.orig kbd-2.3.0/docs/man/man1/showkey. +can affect the output of +.B showkey +in scan code dump mode. -+ + .SH AUTHORS + Andries Brouwer .SH "SEE ALSO" - .BR loadkeys (1), - .BR dumpkeys (1), -diff -up kbd-2.3.0/docs/man/man8/setkeycodes.8.orig kbd-2.3.0/docs/man/man8/setkeycodes.8 ---- kbd-2.3.0/docs/man/man8/setkeycodes.8.orig 2020-07-08 19:35:35.000000000 +0200 -+++ kbd-2.3.0/docs/man/man8/setkeycodes.8 2020-07-16 08:57:52.293900997 +0200 -@@ -42,6 +42,10 @@ the command +diff -up kbd-2.7-rc1/docs/man/man8/setkeycodes.8.orig kbd-2.7-rc1/docs/man/man8/setkeycodes.8 +--- kbd-2.7-rc1/docs/man/man8/setkeycodes.8.orig 2024-10-24 19:15:13.000000000 +0200 ++++ kbd-2.7-rc1/docs/man/man8/setkeycodes.8 2024-10-29 12:01:28.367235566 +0100 +@@ -43,6 +43,10 @@ the command will assign the keycode 112 to it, and then .BR loadkeys (1) can be used to define the function of this key. @@ -35,7 +33,7 @@ diff -up kbd-2.3.0/docs/man/man8/setkeycodes.8.orig kbd-2.3.0/docs/man/man8/setk .LP Some older kernels might hardwire a low scancode range to the equivalent keycodes; setkeycodes will fail when you try to remap -@@ -60,6 +64,14 @@ None. +@@ -69,6 +73,14 @@ print this usage message. .SH BUGS The keycodes of X have nothing to do with those of Linux. Unusual keys can be made visible under Linux, but not under X. diff --git a/kbd-1.15-sparc.patch b/kbd-1.15-sparc.patch index 3fbc0fb..5560a29 100644 --- a/kbd-1.15-sparc.patch +++ b/kbd-1.15-sparc.patch @@ -1,6 +1,6 @@ -diff -up kbd-2.1.0/docs/man/man8/kbdrate.8.orig kbd-2.1.0/docs/man/man8/kbdrate.8 ---- kbd-2.1.0/docs/man/man8/kbdrate.8.orig 2019-06-21 10:08:17.000000000 +0200 -+++ kbd-2.1.0/docs/man/man8/kbdrate.8 2019-07-17 10:36:19.876499648 +0200 +diff -up kbd-2.7-rc1/docs/man/man8/kbdrate.8.orig kbd-2.7-rc1/docs/man/man8/kbdrate.8 +--- kbd-2.7-rc1/docs/man/man8/kbdrate.8.orig 2023-08-09 13:57:23.000000000 +0200 ++++ kbd-2.7-rc1/docs/man/man8/kbdrate.8 2024-10-29 12:03:53.354503358 +0100 @@ -19,7 +19,7 @@ Using without any options will reset the repeat rate to 10.9 characters per second (cps) and the delay to 250 milliseconds (ms) for Intel- and M68K-based systems. @@ -10,9 +10,9 @@ diff -up kbd-2.1.0/docs/man/man8/kbdrate.8.orig kbd-2.1.0/docs/man/man8/kbdrate. .SH OPTIONS .TP -diff -up kbd-2.1.0/src/kbdrate.c.orig kbd-2.1.0/src/kbdrate.c ---- kbd-2.1.0/src/kbdrate.c.orig 2019-07-02 17:44:57.000000000 +0200 -+++ kbd-2.1.0/src/kbdrate.c 2019-07-17 11:07:04.732486323 +0200 +diff -up kbd-2.7-rc1/src/kbdrate.c.orig kbd-2.7-rc1/src/kbdrate.c +--- kbd-2.7-rc1/src/kbdrate.c.orig 2024-10-19 00:12:27.000000000 +0200 ++++ kbd-2.7-rc1/src/kbdrate.c 2024-10-29 12:08:24.289921559 +0100 @@ -114,9 +114,12 @@ static int print_only = 0; static int KDKBDREP_ioctl_ok(double rate, int delay, int silent) @@ -55,8 +55,8 @@ diff -up kbd-2.1.0/src/kbdrate.c.orig kbd-2.1.0/src/kbdrate.c } #ifdef __sparc__ --double rate = 5.0; /* Default rate */ -+double rate = 20.0; /* Default rate */ - int delay = 200; /* Default delay */ +-static double rate = 5.0; /* Default rate */ ++static double rate = 20.0; /* Default rate */ + static int delay = 200; /* Default delay */ #else - double rate = 10.9; /* Default rate */ + static double rate = 10.9; /* Default rate */ diff --git a/kbd-1.15.5-loadkeys-search-path.patch b/kbd-1.15.5-loadkeys-search-path.patch index aeb771c..40cccb3 100644 --- a/kbd-1.15.5-loadkeys-search-path.patch +++ b/kbd-1.15.5-loadkeys-search-path.patch @@ -1,7 +1,19 @@ -diff -up kbd-2.6.2/src/loadkeys.c.orig kbd-2.6.2/src/loadkeys.c ---- kbd-2.6.2/src/loadkeys.c.orig 2023-08-22 10:02:52.261785310 +0200 -+++ kbd-2.6.2/src/loadkeys.c 2023-08-22 10:03:44.351889761 +0200 -@@ -27,6 +27,8 @@ +diff -up kbd-2.7-rc1/configure.ac.orig kbd-2.7-rc1/configure.ac +--- kbd-2.7-rc1/configure.ac.orig 2024-10-28 16:18:31.000000000 +0100 ++++ kbd-2.7-rc1/configure.ac 2024-10-29 12:15:12.915552224 +0100 +@@ -156,6 +156,8 @@ AC_DEFUN([KBD_SUBST_DEFINE], [ + + KBD_SUBST_DEFINE([OLDKEYMAPDIR], ["keytables"], [Subdirectory of DATADIR]) + KBD_SUBST_DEFINE([KEYMAPDIR], ["keymaps"], [Subdirectory of DATADIR]) ++KBD_SUBST_DEFINE([XKBKEYMAPDIR], ["keymaps/xkb"], [Subdirectory of DATADIR]) ++KBD_SUBST_DEFINE([LEGACYKEYMAPDIR], ["keymaps/legacy"], [Subdirectory of DATADIR]) + KBD_SUBST_DEFINE([UNIMAPDIR], ["unimaps"], [Subdirectory of DATADIR]) + KBD_SUBST_DEFINE([TRANSDIR], ["consoletrans"], [Subdirectory of DATADIR]) + KBD_SUBST_DEFINE([VIDEOMODEDIR], ["videomodes"], [Subdirectory of DATADIR]) +diff -up kbd-2.7-rc1/src/loadkeys.c.orig kbd-2.7-rc1/src/loadkeys.c +--- kbd-2.7-rc1/src/loadkeys.c.orig 2024-10-19 00:12:27.000000000 +0200 ++++ kbd-2.7-rc1/src/loadkeys.c 2024-10-29 12:17:24.519755349 +0100 +@@ -26,6 +26,8 @@ static const char *const dirpath1[] = { DATADIR "/" KEYMAPDIR "/**", @@ -10,15 +22,3 @@ diff -up kbd-2.6.2/src/loadkeys.c.orig kbd-2.6.2/src/loadkeys.c KERNDIR "/", NULL }; -diff -up kbd-2.6.2/src/paths.h.orig kbd-2.6.2/src/paths.h ---- kbd-2.6.2/src/paths.h.orig 2023-08-22 10:04:03.021927193 +0200 -+++ kbd-2.6.2/src/paths.h 2023-08-22 10:04:35.740992805 +0200 -@@ -5,6 +5,8 @@ - * The following five subdirectories are defined: - */ - #define KEYMAPDIR "keymaps" -+#define XKBKEYMAPDIR "keymaps/xkb" -+#define LEGACYKEYMAPDIR "keymaps/legacy" - #define UNIMAPDIR "unimaps" - #define TRANSDIR "consoletrans" - #define VIDEOMODEDIR "videomodes" diff --git a/kbd-2.0.4-vlock-add-prompt-option.patch b/kbd-2.0.4-vlock-add-prompt-option.patch index 64e6a64..a514e02 100644 --- a/kbd-2.0.4-vlock-add-prompt-option.patch +++ b/kbd-2.0.4-vlock-add-prompt-option.patch @@ -1,7 +1,7 @@ -diff -up kbd-2.0.4/src/vlock/auth.c.orig kbd-2.0.4/src/vlock/auth.c ---- kbd-2.0.4/src/vlock/auth.c.orig 2016-12-19 16:01:51.000000000 +0100 -+++ kbd-2.0.4/src/vlock/auth.c 2024-03-11 12:21:29.861328176 +0100 -@@ -90,6 +90,12 @@ int get_password(pam_handle_t *pamh, con +diff -up kbd-2.7-rc1/src/vlock/auth.c.orig kbd-2.7-rc1/src/vlock/auth.c +--- kbd-2.7-rc1/src/vlock/auth.c.orig 2024-10-09 15:14:58.000000000 +0200 ++++ kbd-2.7-rc1/src/vlock/auth.c 2024-10-29 12:20:40.451059945 +0100 +@@ -91,6 +91,12 @@ int get_password(pam_handle_t *pamh, con } fflush(stdout); @@ -14,10 +14,10 @@ diff -up kbd-2.0.4/src/vlock/auth.c.orig kbd-2.0.4/src/vlock/auth.c /* * No need to request a delay on failure via pam_fail_delay(3): * authentication module should do it for us. -diff -up kbd-2.0.4/src/vlock/parse.c.orig kbd-2.0.4/src/vlock/parse.c ---- kbd-2.0.4/src/vlock/parse.c.orig 2016-12-19 16:01:51.000000000 +0100 -+++ kbd-2.0.4/src/vlock/parse.c 2024-03-11 12:20:33.167302197 +0100 -@@ -38,6 +38,13 @@ +diff -up kbd-2.7-rc1/src/vlock/parse.c.orig kbd-2.7-rc1/src/vlock/parse.c +--- kbd-2.7-rc1/src/vlock/parse.c.orig 2024-10-19 00:12:27.000000000 +0200 ++++ kbd-2.7-rc1/src/vlock/parse.c 2024-10-29 12:23:51.730369348 +0100 +@@ -39,6 +39,13 @@ */ int o_lock_all; @@ -31,32 +31,32 @@ diff -up kbd-2.0.4/src/vlock/parse.c.orig kbd-2.0.4/src/vlock/parse.c const char * locked_name(void) { -@@ -63,6 +70,8 @@ show_help(void) +@@ -64,6 +71,8 @@ show_help(void) " switch to other virtual consoles.\n" "-a or --all: lock all virtual consoles by preventing other users\n" " from switching virtual consoles.\n" -+ "-p or --prompt: wait for keypress before invoking pam auth stack,\n" -+ " useful for unlocking with smartcard setup.\n" ++ "-p or --prompt: wait for keypress before invoking pam auth stack,\n" ++ " useful for unlocking with smartcard setup.\n" "-v or --version: Print the version number of vlock and exit.\n" "-h or --help: Print this help message and exit.\n"), - progname, progname); -@@ -74,13 +83,14 @@ void parse(int ac, char *const av[]) + program_invocation_short_name, program_invocation_short_name); +@@ -75,13 +84,14 @@ void parse(int ac, char *const av[]) static struct option long_options[] = { - { "current", 0, 0, 'c' }, - { "all", 0, 0, 'a' }, -+ { "prompt", 0, 0, 'p' }, - { "version", 0, 0, 'v' }, - { "help", 0, 0, 'h' }, - { 0, 0, 0, 0 }, + { "current", 0, NULL, 'c' }, + { "all", 0, NULL, 'a' }, ++ { "prompt", 0, NULL, 'p' }, + { "version", 0, NULL, 'v' }, + { "help", 0, NULL, 'h' }, + { NULL, 0, NULL, 0 }, }; int c; -- while ((c = getopt_long(ac, av, "acvh", long_options, 0)) != -1) { -+ while ((c = getopt_long(ac, av, "acpvh", long_options, 0)) != -1) { +- while ((c = getopt_long(ac, av, "acvh", long_options, NULL)) != -1) { ++ while ((c = getopt_long(ac, av, "acpvh", long_options, NULL)) != -1) { switch (c) { case 'c': o_lock_all = 0; -@@ -88,6 +98,9 @@ void parse(int ac, char *const av[]) +@@ -89,6 +99,9 @@ void parse(int ac, char *const av[]) case 'a': o_lock_all = 1; break; @@ -66,9 +66,9 @@ diff -up kbd-2.0.4/src/vlock/parse.c.orig kbd-2.0.4/src/vlock/parse.c case 'v': fprintf(stderr, "%s\n", VERSION); exit(EXIT_SUCCESS); -diff -up kbd-2.0.4/src/vlock/vlock.h.orig kbd-2.0.4/src/vlock/vlock.h ---- kbd-2.0.4/src/vlock/vlock.h.orig 2016-12-19 16:01:55.000000000 +0100 -+++ kbd-2.0.4/src/vlock/vlock.h 2024-03-11 12:21:29.861328176 +0100 +diff -up kbd-2.7-rc1/src/vlock/vlock.h.orig kbd-2.7-rc1/src/vlock/vlock.h +--- kbd-2.7-rc1/src/vlock/vlock.h.orig 2024-10-08 12:35:16.000000000 +0200 ++++ kbd-2.7-rc1/src/vlock/vlock.h 2024-10-29 12:24:21.315417215 +0100 @@ -40,5 +40,12 @@ const char *locked_name(void); */ extern int o_lock_all; diff --git a/kbd.spec b/kbd.spec index 38567f9..3cd0e35 100644 --- a/kbd.spec +++ b/kbd.spec @@ -4,8 +4,8 @@ %global kbd_datadir %{_exec_prefix}/lib/kbd Name: kbd -Version: 2.6.4 -Release: 5%{?dist} +Version: 2.7 +Release: 1%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -172,7 +172,7 @@ make check %files -f %{name}.lang %license COPYING -%doc ChangeLog AUTHORS README docs/doc/kbd.FAQ*.html docs/doc/font-formats/*.html docs/doc/utf/utf* docs/doc/dvorak/* +%doc ChangeLog AUTHORS README docs/doc/font-formats/*.html docs/doc/dvorak/* %{_bindir}/* %{_mandir}/*/* %config(noreplace) %{_sysconfdir}/pam.d/vlock @@ -185,6 +185,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Tue Dec 17 2024 Vitezslav Crhonek - 2.7-1 +- Update to kbd-2.7 + Resolves: #2331264 + * Tue Sep 10 2024 Vitezslav Crhonek - 2.6.4-5 - Add vlock option to issue prompt before invokation of pam stack diff --git a/sources b/sources index 79fcc97..4c4226c 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356db7533f24e49fb78c8e3999901a45a49cdf6a74c0002bba2e0aa8327469d78dd38b6e747103972c30584 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 -SHA512 (kbd-2.6.4.tar.xz) = a4149cb0f85fd79b333a6c137d70896a30ebceb1cf9d4b5eef3abb2e1866d83b46cee651e4f3e512bf7e0ccd232d955c14f693e57020a3626e4943c4695fc8ab +SHA512 (kbd-2.7.tar.xz) = 22c7eca0e23a6df22218ecb4f3e9e50a58a3d56d951cdd7284cf0ac426d789b547cc55b1293b4aff3fc64c2a148b1733c09d8865ae46fbc617f0b0fa64c44436 From 19eef3310ff13c4d8a5a8f08f758060df1f11b90 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Thu, 2 Jan 2025 13:22:55 +0100 Subject: [PATCH 31/42] Update to kbd-2.7.1 Signed-off-by: Vitezslav Crhonek --- .gitignore | 2 +- kbd.spec | 8 ++++++-- sources | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 24c3ee5..b741c33 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ terminus.tar.bz2 /fr-dvorak.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 -/kbd-2.7.tar.xz +/kbd-2.7.1.tar.xz diff --git a/kbd.spec b/kbd.spec index 3cd0e35..0dbe858 100644 --- a/kbd.spec +++ b/kbd.spec @@ -4,7 +4,7 @@ %global kbd_datadir %{_exec_prefix}/lib/kbd Name: kbd -Version: 2.7 +Version: 2.7.1 Release: 1%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later @@ -166,7 +166,7 @@ fi %find_lang %{name} %check -%ifnarch s390x +%ifnarch s390x ppc64le make check %endif @@ -185,6 +185,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Thu Jan 02 2025 Vitezslav Crhonek - 2.7.1-1 +- Update to kbd-2.7.1 + Resolves: #2331264 + * Tue Dec 17 2024 Vitezslav Crhonek - 2.7-1 - Update to kbd-2.7 Resolves: #2331264 diff --git a/sources b/sources index 4c4226c..9852987 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356db7533f24e49fb78c8e3999901a45a49cdf6a74c0002bba2e0aa8327469d78dd38b6e747103972c30584 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 -SHA512 (kbd-2.7.tar.xz) = 22c7eca0e23a6df22218ecb4f3e9e50a58a3d56d951cdd7284cf0ac426d789b547cc55b1293b4aff3fc64c2a148b1733c09d8865ae46fbc617f0b0fa64c44436 +SHA512 (kbd-2.7.1.tar.xz) = 9c541fdbb77e5b1a757848fb4c6f8bb5a61791220938cbfe899aa16b412a87e98fc97fc06ba39d0f983e4cc808d0dcd983560e12c7f36e4df683a3002c51af09 From 04bd752f9b2eec505872320a15a19412d37b9af8 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Fri, 10 Jan 2025 01:23:58 -0800 Subject: [PATCH 32/42] Drop xkb-converted Georgian layout (#2336875) In https://bugzilla.redhat.com/show_bug.cgi?id=2336875 and https://src.fedoraproject.org/rpms/kbd/pull-request/2#comment-239318 we found out that the Georgian xkb-converted layout (ge.map.gz) is not really ASCII-capable. It has mappings for ASCII characters, but the ones for lower-case Latin letters are not reachable (they rely on modifier keys that are not mapped). Let's just wipe it, rather than trying to write a much cleverer ASCII check. Signed-off-by: Adam Williamson --- kbd.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kbd.spec b/kbd.spec index 0dbe858..61b91ae 100644 --- a/kbd.spec +++ b/kbd.spec @@ -155,6 +155,10 @@ done < layouts-list-uniq.lst # wipe converted layouts which cannot input ASCII (#1031848) zgrep -L "U+0041" $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/* | xargs rm -f +# wipe the xkb-converted georgian layout, it is unusable, see: +# https://bugzilla.redhat.com/show_bug.cgi?id=2336875 +# https://src.fedoraproject.org/rpms/kbd/pull-request/2#comment-239318 +rm -f $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/ge.map.gz # Fix converted cz layout - add compose rules, if exists if [ -f "$RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/cz.map.gz" ]; then From e4adfcb5b6b73ecd39d796922f29e9b3f9764241 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jan 2025 08:19:02 +0000 Subject: [PATCH 33/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index 61b91ae..adff69e 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.7.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -189,6 +189,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Fri Jan 17 2025 Fedora Release Engineering - 2.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Thu Jan 02 2025 Vitezslav Crhonek - 2.7.1-1 - Update to kbd-2.7.1 Resolves: #2331264 From 88612fd7dfde025b37722f57cd6dfbd55e040de0 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Mon, 27 Jan 2025 13:37:31 -0800 Subject: [PATCH 34/42] Add Georgian layout and font (from upstream PR #127) These are added as source files rather than a patch because the patch would be binary and autosetup won't apply those, but we're just adding the same two files the upstream PR adds. This adds a switched keyboard layout and a console font for Georgian. Thanks to Temuri Doghonadze and Gia Shervashidze for these. Signed-off-by: Adam Williamson --- LatCyrHebKa-16_GIA.psfu.gz | Bin 0 -> 4127 bytes ge.map.gz | Bin 0 -> 3246 bytes kbd.spec | 16 +++++++++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 LatCyrHebKa-16_GIA.psfu.gz create mode 100644 ge.map.gz diff --git a/LatCyrHebKa-16_GIA.psfu.gz b/LatCyrHebKa-16_GIA.psfu.gz new file mode 100644 index 0000000000000000000000000000000000000000..5268a10df4a1c8ad2475e005653eac2be0fe626c GIT binary patch literal 4127 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 literal 0 HcmV?d00001 diff --git a/ge.map.gz b/ge.map.gz new file mode 100644 index 0000000000000000000000000000000000000000..6c80aebeb1a8911add328451fa23cf55bc41f3b0 GIT binary patch literal 3246 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 layouts-variants.lst @@ -189,6 +200,9 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Mon Jan 27 2025 Adam Williamson - 2.7.1-3 +- Add Georgian layout and font (from upstream PR #127) + * Fri Jan 17 2025 Fedora Release Engineering - 2.7.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 495467a9c11c336bedc469dcbfc0e88eef2b5539 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Mon, 9 Jun 2025 09:09:55 +0200 Subject: [PATCH 35/42] Update to kbd-2.8.0 Signed-off-by: Vitezslav Crhonek --- .gitignore | 2 +- LatCyrHebKa-16_GIA.psfu.gz | Bin 4127 -> 0 bytes ge.map.gz | Bin 3246 -> 0 bytes kbd.spec | 24 ++++++------------------ sources | 2 +- 5 files changed, 8 insertions(+), 20 deletions(-) delete mode 100644 LatCyrHebKa-16_GIA.psfu.gz delete mode 100644 ge.map.gz diff --git a/.gitignore b/.gitignore index b741c33..33a42f2 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ terminus.tar.bz2 /fr-dvorak.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 -/kbd-2.7.1.tar.xz +/kbd-2.8.0.tar.xz diff --git a/LatCyrHebKa-16_GIA.psfu.gz b/LatCyrHebKa-16_GIA.psfu.gz deleted file mode 100644 index 5268a10df4a1c8ad2475e005653eac2be0fe626c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4127 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 diff --git a/ge.map.gz b/ge.map.gz deleted file mode 100644 index 6c80aebeb1a8911add328451fa23cf55bc41f3b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3246 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 layouts-variants.lst @@ -180,11 +169,6 @@ fi %find_lang %{name} -%check -%ifnarch s390x ppc64le -make check -%endif - %files -f %{name}.lang %license COPYING %doc ChangeLog AUTHORS README docs/doc/font-formats/*.html docs/doc/dvorak/* @@ -200,6 +184,10 @@ make check %{kbd_datadir}/keymaps/legacy %changelog +* Mon Jun 09 2025 Vitezslav Crhonek - 2.8.0-1 +- Update to kbd-2.8.0 + Resolves: #2369419 + * Mon Jan 27 2025 Adam Williamson - 2.7.1-3 - Add Georgian layout and font (from upstream PR #127) diff --git a/sources b/sources index 9852987..f591b67 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356db7533f24e49fb78c8e3999901a45a49cdf6a74c0002bba2e0aa8327469d78dd38b6e747103972c30584 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 -SHA512 (kbd-2.7.1.tar.xz) = 9c541fdbb77e5b1a757848fb4c6f8bb5a61791220938cbfe899aa16b412a87e98fc97fc06ba39d0f983e4cc808d0dcd983560e12c7f36e4df683a3002c51af09 +SHA512 (kbd-2.8.0.tar.xz) = 66b532e782b6be3f53521a8d1c96f2ce895201dae48f8797c563be895dfdf4e9c03b9ccf39708d1b7dd1ffb13d526e499874e8e4ba74d22b507c1d32e4b410a3 From 36dccdf64fc9d83de67ba2882b08d3ea166de805 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Tue, 15 Jul 2025 10:13:51 +0200 Subject: [PATCH 36/42] Fix kfont_load_font(): setfont killed by SIGSEGV The issue was caused by accessing previously free'd memory and introduced by covscan fix. Do not free inputbuf variable in kfont_read_psffont(). Signed-off-by: Vitezslav Crhonek --- kbd-2.4.0-covscan-fixes.patch | 38 ----------------------------------- kbd.spec | 6 +++++- 2 files changed, 5 insertions(+), 39 deletions(-) diff --git a/kbd-2.4.0-covscan-fixes.patch b/kbd-2.4.0-covscan-fixes.patch index 67cdd50..17e0e25 100644 --- a/kbd-2.4.0-covscan-fixes.patch +++ b/kbd-2.4.0-covscan-fixes.patch @@ -9,41 +9,3 @@ diff -up kbd-2.6.1/src/libkfont/psffontop.c.orig kbd-2.6.1/src/libkfont/psffonto return -EX_DATAERR; } fontlen = ((psfhdr->mode & PSF1_MODE512) ? 512 : 256); -@@ -253,6 +254,7 @@ kfont_read_psffont(struct kfont_context - - if (psfhdr.version > PSF2_MAXVERSION) { - KFONT_ERR(ctx, _("Unsupported psf version (%d)"), psfhdr.version); -+ free(inputbuf); - return -EX_DATAERR; - } - fontlen = assemble_uint32((unsigned char *)&psfhdr.length); -@@ -263,16 +265,20 @@ kfont_read_psffont(struct kfont_context - fontwidth = assemble_uint32((unsigned char *)&psfhdr.width); - fontheight= assemble_uint32((unsigned char *)&psfhdr.height); - utf8 = 1; -- } else -+ } else { -+ free(inputbuf); - return -EX_DATAERR; /* not psf */ -+ } - - /* tests required - we divide by these */ - if (fontlen == 0) { - KFONT_ERR(ctx, _("zero input font length?")); -+ free(inputbuf); - return -EX_DATAERR; - } - if (charsize == 0) { - KFONT_ERR(ctx, _("zero input character size?")); -+ free(inputbuf); - return -EX_DATAERR; - } - -@@ -286,6 +292,7 @@ kfont_read_psffont(struct kfont_context - - if (i > inputlth || (!hastable && i != inputlth)) { - KFONT_ERR(ctx, _("Input file: bad input length (%d)"), inputlth); -+ free(inputbuf); - return -EX_DATAERR; - } - diff --git a/kbd.spec b/kbd.spec index 7246245..e0f2e7b 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.8.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -184,6 +184,10 @@ fi %{kbd_datadir}/keymaps/legacy %changelog +* Tue Jul 15 2025 Vitezslav Crhonek - 2.8.0-2 +- Fix kfont_load_font(): setfont killed by SIGSEGV + Resolves: #2370214 + * Mon Jun 09 2025 Vitezslav Crhonek - 2.8.0-1 - Update to kbd-2.8.0 Resolves: #2369419 From 5455dcf44bdb6f120b894be7905a1a04328c88a1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 24 Jul 2025 18:14:05 +0000 Subject: [PATCH 37/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index e0f2e7b..fe3c0e0 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.8.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -184,6 +184,9 @@ fi %{kbd_datadir}/keymaps/legacy %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 2.8.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Tue Jul 15 2025 Vitezslav Crhonek - 2.8.0-2 - Fix kfont_load_font(): setfont killed by SIGSEGV Resolves: #2370214 From 006901a271e0656c420d8f8267f36c0480a065ef Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Mon, 22 Sep 2025 14:42:19 +0200 Subject: [PATCH 38/42] Update to kbd-2.9.0 Signed-off-by: Vitezslav Crhonek --- .gitignore | 2 +- kbd.spec | 8 ++++++-- sources | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 33a42f2..41a800b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ terminus.tar.bz2 /fr-dvorak.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 -/kbd-2.8.0.tar.xz +/kbd-2.9.0.tar.xz diff --git a/kbd.spec b/kbd.spec index fe3c0e0..07c934d 100644 --- a/kbd.spec +++ b/kbd.spec @@ -4,8 +4,8 @@ %global kbd_datadir %{_exec_prefix}/lib/kbd Name: kbd -Version: 2.8.0 -Release: 3%{?dist} +Version: 2.9.0 +Release: 1%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -184,6 +184,10 @@ fi %{kbd_datadir}/keymaps/legacy %changelog +* Mon Sep 22 2025 Vitezslav Crhonek - 2.9.0-1 +- Update to kbd-2.9.0 + Resolves: #2393145 + * Thu Jul 24 2025 Fedora Release Engineering - 2.8.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/sources b/sources index f591b67..c0419c7 100644 --- a/sources +++ b/sources @@ -2,3 +2,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 SHA512 (kbd-2.8.0.tar.xz) = 66b532e782b6be3f53521a8d1c96f2ce895201dae48f8797c563be895dfdf4e9c03b9ccf39708d1b7dd1ffb13d526e499874e8e4ba74d22b507c1d32e4b410a3 +SHA512 (kbd-2.9.0.tar.xz) = c98298596a9942d39d5ffcba551eca3895104ff4dda5ebf8cfef46c1e3f24ef6154cf6892a9022bc0bfc98b065169103ca1e308cb76706e5b5c0ae0035db0db7 From b9cf7908d15ab23253d2562f838662e5a7037051 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 16 Jan 2026 17:22:56 +0000 Subject: [PATCH 39/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index 07c934d..3bde503 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.9.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -184,6 +184,9 @@ fi %{kbd_datadir}/keymaps/legacy %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 2.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + * Mon Sep 22 2025 Vitezslav Crhonek - 2.9.0-1 - Update to kbd-2.9.0 Resolves: #2393145 From 92a7d10456b6c8582010270671002a421a677136 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Tue, 24 Mar 2026 08:51:35 +0100 Subject: [PATCH 40/42] Fix setfont segmentation fault When setfont is invoked with an option that needs an argument and that argument is missing. Resolves: #2447892 Signed-off-by: Vitezslav Crhonek --- kbd-2.9.0-fix-setfont-segfault.patch | 25 +++++++++++++++++++++++++ kbd.spec | 9 ++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 kbd-2.9.0-fix-setfont-segfault.patch diff --git a/kbd-2.9.0-fix-setfont-segfault.patch b/kbd-2.9.0-fix-setfont-segfault.patch new file mode 100644 index 0000000..f0ec5e2 --- /dev/null +++ b/kbd-2.9.0-fix-setfont-segfault.patch @@ -0,0 +1,25 @@ +diff -up kbd-2.9.0/src/setfont.c.orig kbd-2.9.0/src/setfont.c +--- kbd-2.9.0/src/setfont.c.orig 2025-09-01 13:02:27.718045775 +0200 ++++ kbd-2.9.0/src/setfont.c 2026-03-23 10:47:59.579868180 +0100 +@@ -158,8 +158,8 @@ kbd_getopt(int argc, char **argv, const + return '?'; + + required_argument: +- kbd_warning(0, "option '%s' requires an argument", name); +- return '?'; ++ optind--; ++ return '!'; + } + + int main(int argc, char *argv[]) +@@ -296,6 +296,10 @@ int main(int argc, char *argv[]) + kbd_error(EX_USAGE, 0, _("Too many input files.")); + ifiles[ifilct++] = argv[optind++]; + break; ++ case '!': ++ kbd_warning(0, "option '%s' requires an argument", argv[optind]); ++ usage(EX_USAGE, opthelp); ++ break; + } + } + diff --git a/kbd.spec b/kbd.spec index 3bde503..b09632c 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.9.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -34,6 +34,9 @@ Patch5: kbd-2.0.2-unicode-start-font.patch Patch6: kbd-2.4.0-covscan-fixes.patch # Patch7: adds vlock option to issue prompt before invokation of pam stack Patch7: kbd-2.0.4-vlock-add-prompt-option.patch +# Patch8: fixes setfont segfault when option that needs an argument is passed +# with the argument blank, bz 2447892 (already upstream) +Patch8: kbd-2.9.0-fix-setfont-segfault.patch BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake BuildRequires: console-setup, xkeyboard-config @@ -184,6 +187,10 @@ fi %{kbd_datadir}/keymaps/legacy %changelog +* Tue Mar 24 2026 Vitezslav Crhonek - 2.9.0-3 +- Fix setfont segmentation fault when argument for option is missing + Resolves: #2447892 + * Fri Jan 16 2026 Fedora Release Engineering - 2.9.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild From 990654f736abb3fcf644a642fe374abdc0e8a5c9 Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Wed, 10 Jun 2026 06:24:35 +0200 Subject: [PATCH 41/42] Update to kbd-2.10.0 Signed-off-by: Vitezslav Crhonek --- .gitignore | 1 + kbd-2.9.0-fix-setfont-segfault.patch | 25 ------------------------- kbd.spec | 19 ++++++++++--------- sources | 3 +-- 4 files changed, 12 insertions(+), 36 deletions(-) delete mode 100644 kbd-2.9.0-fix-setfont-segfault.patch diff --git a/.gitignore b/.gitignore index 41a800b..eb22426 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ terminus.tar.bz2 /kbd-latarcyrheb-32.tar.bz2 /kbdinfo.1 /kbd-2.9.0.tar.xz +/kbd-2.10.0.tar.xz diff --git a/kbd-2.9.0-fix-setfont-segfault.patch b/kbd-2.9.0-fix-setfont-segfault.patch deleted file mode 100644 index f0ec5e2..0000000 --- a/kbd-2.9.0-fix-setfont-segfault.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up kbd-2.9.0/src/setfont.c.orig kbd-2.9.0/src/setfont.c ---- kbd-2.9.0/src/setfont.c.orig 2025-09-01 13:02:27.718045775 +0200 -+++ kbd-2.9.0/src/setfont.c 2026-03-23 10:47:59.579868180 +0100 -@@ -158,8 +158,8 @@ kbd_getopt(int argc, char **argv, const - return '?'; - - required_argument: -- kbd_warning(0, "option '%s' requires an argument", name); -- return '?'; -+ optind--; -+ return '!'; - } - - int main(int argc, char *argv[]) -@@ -296,6 +296,10 @@ int main(int argc, char *argv[]) - kbd_error(EX_USAGE, 0, _("Too many input files.")); - ifiles[ifilct++] = argv[optind++]; - break; -+ case '!': -+ kbd_warning(0, "option '%s' requires an argument", argv[optind]); -+ usage(EX_USAGE, opthelp); -+ break; - } - } - diff --git a/kbd.spec b/kbd.spec index b09632c..76626d5 100644 --- a/kbd.spec +++ b/kbd.spec @@ -4,8 +4,8 @@ %global kbd_datadir %{_exec_prefix}/lib/kbd Name: kbd -Version: 2.9.0 -Release: 3%{?dist} +Version: 2.10.0 +Release: 1%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -34,13 +34,9 @@ Patch5: kbd-2.0.2-unicode-start-font.patch Patch6: kbd-2.4.0-covscan-fixes.patch # Patch7: adds vlock option to issue prompt before invokation of pam stack Patch7: kbd-2.0.4-vlock-add-prompt-option.patch -# Patch8: fixes setfont segfault when option that needs an argument is passed -# with the argument blank, bz 2447892 (already upstream) -Patch8: kbd-2.9.0-fix-setfont-segfault.patch -BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake -BuildRequires: console-setup, xkeyboard-config -BuildRequires: make +BuildRequires: gcc, bison, flex, gettext, pam-devel, check-devel, automake, make +BuildRequires: console-setup, xkeyboard-config, libxkbcommon-devel Requires: %{name}-misc = %{version}-%{release} Requires: %{name}-legacy = %{version}-%{release} # Be sure that system is after UsrMove @@ -105,7 +101,8 @@ iconv -f iso-8859-1 -t utf-8 < "ChangeLog" > "ChangeLog_" mv "ChangeLog_" "ChangeLog" %build -%configure --prefix=%{_prefix} --datadir=%{kbd_datadir} --mandir=%{_mandir} --localedir=%{_datadir}/locale --enable-nls +%configure --prefix=%{_prefix} --datadir=%{kbd_datadir} \ + --mandir=%{_mandir} --localedir=%{_datadir}/locale --enable-nls --enable-xkb %make_build %install @@ -187,6 +184,10 @@ fi %{kbd_datadir}/keymaps/legacy %changelog +* Wed Jun 10 2026 Vitezslav Crhonek - 2.10.0-1 +- Update to kbd-2.10.0 + Resolves: #2481141 + * Tue Mar 24 2026 Vitezslav Crhonek - 2.9.0-3 - Fix setfont segmentation fault when argument for option is missing Resolves: #2447892 diff --git a/sources b/sources index c0419c7..04ad7de 100644 --- a/sources +++ b/sources @@ -1,5 +1,4 @@ SHA512 (kbd-latsun-fonts.tar.bz2) = b98da5df85017ef1bd297eb2255046d54dd805c84356db7533f24e49fb78c8e3999901a45a49cdf6a74c0002bba2e0aa8327469d78dd38b6e747103972c30584 SHA512 (kbd-latarcyrheb-32.tar.bz2) = 1870a708e16cf16f8343f02f7e97940e8404655078f92709a0b8a334be772faa99b4dbaca37e8d8c5b16d0d4d811fe6b102e4f76ae821148eb33075613dc95b8 SHA512 (kbdinfo.1) = 8696d55f6c15f0ee2c2936eca6180b18100a87b11f0efe809a9531bb1228c67cd096cbc8fa25d9ee496daab28892ee5f320cc4bc9c9d816ff666bb4f80271c99 -SHA512 (kbd-2.8.0.tar.xz) = 66b532e782b6be3f53521a8d1c96f2ce895201dae48f8797c563be895dfdf4e9c03b9ccf39708d1b7dd1ffb13d526e499874e8e4ba74d22b507c1d32e4b410a3 -SHA512 (kbd-2.9.0.tar.xz) = c98298596a9942d39d5ffcba551eca3895104ff4dda5ebf8cfef46c1e3f24ef6154cf6892a9022bc0bfc98b065169103ca1e308cb76706e5b5c0ae0035db0db7 +SHA512 (kbd-2.10.0.tar.xz) = 1b7f55f0a1b34d9b6b4237a1ff3e10eedf4bdebe50e906a7acdea48f85b3c455e72737127491a0c494388b999797aa65411b20b44c3f5612fdeee4d8289f937c From 6bad9f1fea81d10dd5513bd12af521e8c87e669f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jul 2026 04:31:32 +0000 Subject: [PATCH 42/42] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild --- kbd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kbd.spec b/kbd.spec index 76626d5..45ee558 100644 --- a/kbd.spec +++ b/kbd.spec @@ -5,7 +5,7 @@ Name: kbd Version: 2.10.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tools for configuring the console (keyboard, virtual terminals, etc.) License: GPL-2.0-or-later URL: http://www.kbd-project.org/ @@ -184,6 +184,9 @@ fi %{kbd_datadir}/keymaps/legacy %changelog +* Thu Jul 16 2026 Fedora Release Engineering - 2.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + * Wed Jun 10 2026 Vitezslav Crhonek - 2.10.0-1 - Update to kbd-2.10.0 Resolves: #2481141