update to 2.4.0

This commit is contained in:
wangkerong 2021-12-07 16:41:32 +08:00
parent f4dac02c2f
commit db2c2abe82
8 changed files with 126 additions and 150 deletions

View File

@ -1,52 +1,59 @@
diff -up kbd-2.0.4/docs/man/man1/showkey.1.orig kbd-2.0.4/docs/man/man1/showkey.1
--- kbd-2.0.4/docs/man/man1/showkey.1.orig 2016-10-31 16:56:02.000000000 +0100
+++ kbd-2.0.4/docs/man/man1/showkey.1 2017-01-11 10:45:03.763312393 +0100
@@ -84,6 +84,19 @@ 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.
diff -c -r old/docs/man/man1/showkey.1 kbd-2.4.0/docs/man/man1/showkey.1
*** old/docs/man/man1/showkey.1 2020-12-15 22:32:21.000000000 +0800
--- kbd-2.4.0/docs/man/man1/showkey.1 2021-12-03 22:01:27.702550615 +0800
***************
*** 84,89 ****
--- 84,102 ----
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
+.B atkbd.softraw=0
+kernel parameter is used.
+When the raw scan codes are not available, the kernel uses a fixed built-in
+table to produce scan codes from keycodes. Thus,
+.BR setkeycodes (8)
+can affect the output of
+.B showkey
+in scan code dump mode.
+ .SH NOTES
+ The raw scan codes are available only on AT and PS/2 keyboards,
+ and even then they are disabled unless the
+ .B atkbd.softraw=0
+ kernel parameter is used.
+ When the raw scan codes are not available, the kernel uses a fixed built-in
+ table to produce scan codes from keycodes. Thus,
+ .BR setkeycodes (8)
+ can affect the output of
+ .B showkey
+ in scan code dump mode.
+
.SH "SEE ALSO"
.BR loadkeys (1),
.BR dumpkeys (1),
diff -up kbd-2.0.4/docs/man/man8/setkeycodes.8.orig kbd-2.0.4/docs/man/man8/setkeycodes.8
--- kbd-2.0.4/docs/man/man8/setkeycodes.8.orig 2016-10-31 16:56:02.000000000 +0100
+++ kbd-2.0.4/docs/man/man8/setkeycodes.8 2017-01-11 10:45:03.763312393 +0100
@@ -38,6 +38,10 @@ to showkey(1), the command
.RE
will assign the keycode 112 to it, and then loadkeys(1) can be used
to define the function of this key.
.SH "SEE ALSO"
.BR loadkeys (1),
.BR dumpkeys (1),
diff -c -r old/docs/man/man8/setkeycodes.8 kbd-2.4.0/docs/man/man8/setkeycodes.8
*** old/docs/man/man8/setkeycodes.8 2020-12-15 22:32:21.000000000 +0800
--- kbd-2.4.0/docs/man/man8/setkeycodes.8 2021-12-03 22:02:45.193516342 +0800
***************
*** 42,47 ****
--- 42,51 ----
will assign the keycode 112 to it, and then
.BR loadkeys (1)
can be used to define the function of this key.
+
+USB keyboards have standardized keycodes and
+.B setkeycodes
+doesn't affect them at all.
.LP
Some older kernels might hardwire a low scancode range to the
equivalent keycodes; setkeycodes will fail when you try to remap
@@ -56,6 +60,14 @@ None.
.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.
+ USB keyboards have standardized keycodes and
+ .B setkeycodes
+ doesn't affect them at all.
.LP
Some older kernels might hardwire a low scancode range to the
equivalent keycodes; setkeycodes will fail when you try to remap
***************
*** 60,65 ****
--- 64,77 ----
.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.
+
+.B setkeycodes
+affects only the "first" input device
+that has modifiable scancode-to-keycode mapping.
+If there is more than one such device,
+.B setkeycodes
+cannot change the mapping of other devices than the "first" one.
+ .B setkeycodes
+ affects only the "first" input device
+ that has modifiable scancode-to-keycode mapping.
+ If there is more than one such device,
+ .B setkeycodes
+ cannot change the mapping of other devices than the "first" one.
+
.SH "SEE ALSO"
.I "dumpkeys (1), loadkeys (1), showkey (1), getkeycodes (8)"
.SH "SEE ALSO"
.BR dumpkeys (1),
.BR loadkeys (1),
~

View File

@ -1,18 +1,24 @@
diff -up kbd-2.1.0/src/loadkeys.c.orig kbd-2.1.0/src/loadkeys.c
--- kbd-2.1.0/src/loadkeys.c.orig 2019-07-15 10:57:18.000000000 +0200
+++ kbd-2.1.0/src/loadkeys.c 2019-07-17 14:34:51.224525616 +0200
@@ -24,7 +24,7 @@
#include "paths.h"
#include "keymap.h"
diff -Nur kbd-2.4.0/src/loadkeys.c kbd-2.4.0-new/src/loadkeys.c
--- kbd-2.4.0/src/loadkeys.c 2020-06-02 18:16:45.000000000 +0800
+++ kbd-2.4.0-new/src/loadkeys.c 2021-12-07 16:02:44.873000000 +0800
@@ -27,9 +27,11 @@
-static const char *const dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", KERNDIR "/", 0 };
+static const char *const dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", DATADIR "/" XKBKEYMAPDIR "/", DATADIR "/" LEGACYKEYMAPDIR "/**", KERNDIR "/", 0 };
static const char *const suffixes[] = { "", ".kmap", ".map", 0 };
static void __attribute__((noreturn))
diff -up kbd-2.1.0/src/paths.h.orig kbd-2.1.0/src/paths.h
--- kbd-2.1.0/src/paths.h.orig 2019-05-07 11:21:10.000000000 +0200
+++ kbd-2.1.0/src/paths.h 2019-07-17 14:35:13.870574558 +0200
static const char *const dirpath1[] = {
"",
- DATADIR "/" KEYMAPDIR "/**",
- KERNDIR "/",
- NULL
+ DATADIR "/" KEYMAPDIR "/**",
+ DATADIR "/" XKBKEYMAPDIR "/",
+ DATADIR "/" LEGACYKEYMAPDIR "/**",
+ KERNDIR "/",
+ 0
};
static const char *const suffixes[] = {
"",
diff -Nur kbd-2.4.0/src/paths.h kbd-2.4.0-new/src/paths.h
--- kbd-2.4.0/src/paths.h 2020-04-27 23:53:01.000000000 +0800
+++ kbd-2.4.0-new/src/paths.h 2021-12-07 16:03:15.780000000 +0800
@@ -5,6 +5,8 @@
* The following five subdirectories are defined:
*/

View File

@ -1,23 +1,13 @@
diff -up kbd-2.1.0/src/kdmapop.c.orig kbd-2.1.0/src/kdmapop.c
--- kbd-2.1.0/src/kdmapop.c.orig 2019-05-07 11:21:10.000000000 +0200
+++ kbd-2.1.0/src/kdmapop.c 2019-07-17 14:38:15.799967669 +0200
@@ -155,6 +155,7 @@ int getunimap(int fd, struct unimapdesc
}
diff -Nur kbd-2.4.0/src/libkfont/kdmapop.c kbd-2.4.0-new/src/libkfont/kdmapop.c
--- kbd-2.4.0/src/libkfont/kdmapop.c 2020-04-27 23:53:01.000000000 +0800
+++ kbd-2.4.0-new/src/libkfont/kdmapop.c 2021-12-07 16:18:53.166000000 +0800
@@ -166,7 +166,8 @@
if (ioctl(fd, GIO_UNIMAP, &ud)) {
perror("GIO_UNIMAP");
KFONT_ERR(ctx, "ioctl(GIO_UNIMAP): %m");
- return -1;
+ free(ud.entries);
return -1;
+ return -1;
}
if (ct != ud.entry_ct)
diff -up kbd-2.1.0/src/setfont.c.orig kbd-2.1.0/src/setfont.c
--- kbd-2.1.0/src/setfont.c.orig 2019-06-25 18:14:32.000000000 +0200
+++ kbd-2.1.0/src/setfont.c 2019-07-17 14:39:57.928188355 +0200
@@ -323,6 +323,8 @@ do_loadfont(int fd, char *inbuf, int wid
if (putfont(fd, buf, fontsize, width, hwunit))
exit(EX_OSERR);
+
+ free(buf);
}
static void
KFONT_ERR(ctx, _("strange... ct changed from %d to %d"), ct, ud.entry_ct);

View File

@ -1,16 +0,0 @@
diff -up kbd-2.2.0/configure.ac.orig kbd-2.2.0/configure.ac
--- kbd-2.2.0/configure.ac.orig 2019-08-28 11:07:00.787173606 +0200
+++ kbd-2.2.0/configure.ac 2019-08-28 11:08:07.217317151 +0200
@@ -72,9 +72,9 @@ if test "$enable_code_coverage" = yes; t
fi
case "$GCC,$ac_cv_prog_cc_g" in
- yes,yes) CFLAGS="-g $CC_O_LEVEL $FORTIFY_SOURCE" ;;
- yes,) CFLAGS="$CC_O_LEVEL $FORTIFY_SOURCE" ;;
- ,yes) CFLAGS="-g" ;;
+ yes,yes) CFLAGS="$CC_O_LEVEL $FORTIFY_SOURCE $CFLAGS" ;;
+ yes,) CFLAGS="$CC_O_LEVEL $FORTIFY_SOURCE $CFLAGS" ;;
+ ,yes) CFLAGS="$CFLAGS" ;;
esac
CC_CHECK_CFLAGS_APPEND([\

View File

@ -1,14 +0,0 @@
diff -up kbd-2.2.0/src/libkeymap/analyze.l.orig kbd-2.2.0/src/libkeymap/analyze.l
--- kbd-2.2.0/src/libkeymap/analyze.l.orig 2019-06-25 11:41:55.000000000 +0200
+++ kbd-2.2.0/src/libkeymap/analyze.l 2019-10-17 08:39:01.924605478 +0200
@@ -463,7 +463,10 @@ To to|To|TO
strerror_r(errno, buf, sizeof(buf));
+ /* workaround -Werror=format-security error
ERR(yyextra, buf);
+ */
+ ERR(yyextra, _("unknown error"));
return(ERROR);
}

Binary file not shown.

BIN
kbd-2.4.0.tar.xz Normal file

Binary file not shown.

View File

@ -1,11 +1,13 @@
%global kbd_datadir %{_exec_prefix}/lib/kbd
Name: kbd
Version: 2.2.0
Release: 2
Version: 2.4.0
Release: 1
Summary: Tools for managing Linux console(keyboard, virtual terminals, etc.)
License: GPLv2+
URL: https://www.kbd-project.org/
Source0: http://ftp.altlinux.org/pub/people/legion/%{name}/%{name}-%{version}.tar.xz
Source0: https://mirrors.edge.kernel.org/pub/linux/utils/kbd/%{name}-%{version}.tar.xz
Source1: kbd-latsun-fonts.tar.bz2
Source2: kbd-latarcyrheb-32.tar.bz2
Source3: xml2lst.pl
@ -21,8 +23,6 @@ Patch4: kbd-1.15.5-sg-decimal-separator.patch
Patch5: kbd-1.15.5-loadkeys-search-path.patch
Patch6: kbd-2.0.2-unicode-start-font.patch
Patch7: kbd-2.0.4-covscan-fixes.patch
Patch8: kbd-2.2.0-fix-flags.patch
Patch9: kbd-2.2.0-format-security.patch
BuildRequires: bison flex gettext pam-devel check-devel
BuildRequires: gcc console-setup xkeyboard-config automake
@ -66,8 +66,7 @@ cp -fp %{SOURCE6} .
%patch5 -p1 -b .loadkeys-search-path
%patch6 -p1 -b .unicode-start-font
%patch7 -p1 -b .covscan-fixes.patch
%patch8 -p1 -b .fix-flags.patch
%patch9 -p1 -b .format-security.patch
aclocal
autoconf
pushd data/keymaps/i386
@ -93,76 +92,77 @@ iconv -f iso-8859-1 -t utf-8 < "ChangeLog" > "ChangeLog_"
mv "ChangeLog_" "ChangeLog"
%build
%configure --prefix=%{_prefix} --datadir=/lib/%{name} --mandir=%{_mandir} --localedir=%{_datadir}/locale --enable-nls
%configure --prefix=%{_prefix} --datadir=%{kbd_datadir} --mandir=%{_mandir} --localedir=%{_datadir}/locale --enable-nls
%make_build
%install
%make_install
rm -f %{buildroot}/lib/%{name}/keymaps/i386/qwerty/ro_win.map.gz
rm -f $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/i386/qwerty/ro_win.map.gz
ln -s sr-cy.map.gz %{buildroot}/lib/%{name}/keymaps/i386/qwerty/sr-latin.map.gz
ln -s sr-cy.map.gz $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/i386/qwerty/sr-latin.map.gz
ln -s us.map.gz %{buildroot}/lib/%{name}/keymaps/i386/qwerty/ko.map.gz
ln -s us.map.gz $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/i386/qwerty/ko.map.gz
mkdir -p %{buildroot}/bin
for binary in setfont dumpkeys %{name}_mode unicode_start unicode_stop loadkeys ; do
mv %{buildroot}%{_bindir}/$binary %{buildroot}/bin/
done
ln -s fa.map.gz $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/i386/qwerty/ara.map.gz
sed -i -e 's,\<%{name}_mode\>,/bin/%{name}_mode,g;s,\<setfont\>,/bin/setfont,g' \
%{buildroot}/bin/unicode_start
sed -i -e 's,\<kbd_mode\>,%{_bindir}/kbd_mode,g;s,\<setfont\>,%{_bindir}/setfont,g' \
$RPM_BUILD_ROOT%{_bindir}/unicode_start
gzip -c %SOURCE5 > %{buildroot}/%{_mandir}/man1/kbdinfo.1.gz
gzip -c %SOURCE5 > $RPM_BUILD_ROOT/%{_mandir}/man1/kbdinfo.1.gz
cp -r %{buildroot}/lib/%{name}/locale/ %{buildroot}%{_datadir}/locale
rm -rf %{buildroot}/lib/%{name}/locale
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
install -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/vlock
mkdir -p %{buildroot}%{_sysconfdir}/pam.d
install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/pam.d/vlock
mkdir -p $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/legacy
mv $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/{amiga,atari,i386,include,mac,ppc,sun} $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/legacy
mkdir -p %{buildroot}/lib/%{name}/keymaps/legacy
mv %{buildroot}/lib/%{name}/keymaps/{amiga,atari,i386,include,mac,ppc,sun} %{buildroot}/lib/%{name}/keymaps/legacy
mkdir -p %{buildroot}/lib/%{name}/keymaps/xkb
mkdir -p $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb
perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst
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 > %{buildroot}/lib/%{name}/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
cat layouts-list.lst | sort -u >> layouts-list-uniq.lst
while read line; do
ckbcomp "$line" | gzip > %{buildroot}/lib/%{name}/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
gunzip %{buildroot}/lib/%{name}/keymaps/xkb/fi.map.gz
mv %{buildroot}/lib/%{name}/keymaps/xkb/fi.map %{buildroot}/lib/%{name}/keymaps/xkb/fi-kotoistus.map
gzip %{buildroot}/lib/%{name}/keymaps/xkb/fi-kotoistus.map
zgrep -L "U+0041" $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/* | xargs rm -f
gunzip %{buildroot}/lib/%{name}/keymaps/xkb/cz.map.gz
patch %{buildroot}/lib/%{name}/keymaps/xkb/cz.map < %{SOURCE6}
gzip %{buildroot}/lib/%{name}/keymaps/xkb/cz.map
if [ -f "$RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/cz.map.gz" ]; then
gunzip $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/cz.map.gz
patch $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/cz.map < %{SOURCE6}
gzip $RPM_BUILD_ROOT%{kbd_datadir}/keymaps/xkb/cz.map
fi
%find_lang %{name}
%check
make check
%files
%defattr(-,root,root)
%license COPYING
%doc AUTHORS
/bin/*
%doc AUTHORS
%{_datadir}/locale/*
%{_bindir}/*
%config(noreplace) %{_sysconfdir}/pam.d/vlock
# library for tests
%exclude %{_libdir}/libtswrap*
%exclude %{_prefix}/lib/debug/%{_libdir}/libtswrap*
%files misc
%defattr(-,root,root)
/lib/%{name}/*
%exclude /lib/%{name}/keymaps/legacy
%defattr(-,root,root)
%{kbd_datadir}
%exclude %{kbd_datadir}/keymaps/legacy
%files legacy
%defattr(-,root,root)
/lib/%{name}/keymaps/legacy/*
%{kbd_datadir}/keymaps/legacy
%files help
%defattr(-,root,root)
@ -172,6 +172,9 @@ gzip %{buildroot}/lib/%{name}/keymaps/xkb/cz.map
%{_mandir}/man8/*.8.gz
%changelog
* Tue Dec 07 2021 wangkerong <wangkerong@huawei.com> - 2.4.0-1
- update to 2.4.0
* Tue Jul 12 2021 panchenbo <panchenbo@uniontech.com> - 2.2.0-2
- fix kbd contain man dir