* properly fix loadkeys binary dump on bigendian (archpower#60)

This commit is contained in:
Alexander Baldeck 2023-08-04 23:14:51 +02:00
parent 60b6d52d28
commit b3e79087a6
2 changed files with 12 additions and 22 deletions

View File

@ -3,7 +3,7 @@
pkgname=kbd
pkgver=2.6.1
pkgrel=1.1
pkgrel=1.2
pkgdesc="Keytable files and keyboard utilities"
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
url="http://www.kbd-project.org"
@ -23,7 +23,7 @@ replaces=('vlock')
sha256sums=('SKIP'
'a5e0167b6a82a9eb4d581d56baab930c2d80f5541dc34630460b73e1115384b8'
'5c2d377a87121e7c399534fb91e2ffc0cc1e75d44a8f07ee6f55c9c089bc81e4'
'c8c34b14dc974c42a8c0a3f379732444b607a7c3375e8dcac51be5ddc209b876')
'1e29b3b764db92051a729fadafe7742a3261e2494d3bb835e3596177e44a6f3c')
validpgpkeys=(
'7F2A3D07298149A0793C9A4EA45ABA544CFFD434' #Alexey Gladkov
)
@ -42,12 +42,8 @@ prepare() {
# fix euro2 #28213
patch -Np1 -i ../fix-euro2.patch
case "${CARCH}" in
# fix loadkeys --bkeymap on BE powerpc (archpower#60)
powerpc|powerpc64)
patch -Np1 -i ${srcdir}/kbd-ppcbe-fix-loadkmap-compat.patch
;;
esac
# fix loadkeys -b on BE powerpc (archpower#60)
patch -Np1 -i ${srcdir}/kbd-ppcbe-fix-loadkmap-compat.patch
autoreconf -if
}

View File

@ -1,19 +1,13 @@
--- kbd/src/libkeymap/dump.c.orig 2023-08-02 00:28:16.774469479 +0200
+++ kbd/src/libkeymap/dump.c 2023-08-02 00:28:18.254512204 +0200
@@ -72,14 +72,9 @@
diff --git a/src/libkeymap/dump.c b/src/libkeymap/dump.c
index 4dee51b..8ea1d3e 100644
--- a/src/libkeymap/dump.c
+++ b/src/libkeymap/dump.c
@@ -72,7 +72,7 @@ int lk_dump_bkeymap(struct lk_ctx *ctx, FILE *fd)
continue;
for (j = 0; j < NR_KEYS / 2; j++) {
- int value = lk_get_key(ctx, i, j);
+ int v = lk_get_key(ctx, i, j);
+ unsigned short value = lk_get_key(ctx, i, j);
- if (value < 0 || value > USHRT_MAX) {
- ERR(ctx, _("can not bind key %d to value %d because it is too large"), j, value);
- goto fail;
- }
-
- if (fwrite(&value, sizeof(unsigned short), 1, fd) != 1)
+ if (fwrite(&v, sizeof(v), 1, fd) != 1)
goto fail;
}
}
if (value < 0 || value > USHRT_MAX) {
ERR(ctx, _("can not bind key %d to value %d because it is too large"), j, value);