* fix kbd issue on big endian powerpcs (archpower#60)

This commit is contained in:
Alexander Baldeck 2023-08-02 00:37:24 +02:00
parent f201a69042
commit 84f473706b
4 changed files with 108 additions and 25 deletions

View File

@ -3,7 +3,7 @@
pkgname=kbd
pkgver=2.6.1
pkgrel=1
pkgrel=1.1
pkgdesc="Keytable files and keyboard utilities"
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
url="http://www.kbd-project.org"
@ -14,14 +14,16 @@ makedepends=('check' 'git')
# https://www.kernel.org/pub/linux/utils/kbd/${pkgname}-${pkgver}.tar.sign
source=(git+https://git.kernel.org/pub/scm/linux/kernel/git/legion/kbd.git#tag=v$pkgver?signed
'fix-euro2.patch'
'vlock.pam')
'vlock.pam'
'kbd-ppcbe-fix-loadkmap-compat.patch')
backup=('etc/pam.d/vlock')
provides=('vlock')
conflicts=('vlock')
replaces=('vlock')
sha256sums=('SKIP'
'a5e0167b6a82a9eb4d581d56baab930c2d80f5541dc34630460b73e1115384b8'
'5c2d377a87121e7c399534fb91e2ffc0cc1e75d44a8f07ee6f55c9c089bc81e4')
'5c2d377a87121e7c399534fb91e2ffc0cc1e75d44a8f07ee6f55c9c089bc81e4'
'c8c34b14dc974c42a8c0a3f379732444b607a7c3375e8dcac51be5ddc209b876')
validpgpkeys=(
'7F2A3D07298149A0793C9A4EA45ABA544CFFD434' #Alexey Gladkov
)
@ -39,6 +41,14 @@ prepare() {
mv data/keymaps/i386/colemak/{en-latin9,colemak}.map
# 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
autoreconf -if
}

View File

@ -1,22 +0,0 @@
diff --git a/src/libkeymap/dump.c b/src/libkeymap/dump.c
index 83ac351..8531b5a 100644
--- a/src/libkeymap/dump.c
+++ b/src/libkeymap/dump.c
@@ -72,9 +72,14 @@ int lk_dump_bkeymap(struct lk_ctx *ctx, FILE *fd)
continue;
for (j = 0; j < NR_KEYS / 2; j++) {
- int v = lk_get_key(ctx, i, j);
+ int value = lk_get_key(ctx, i, j);
- if (fwrite(&v, sizeof(v), 1, fd) != 1)
+ 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)
goto fail;
}
}

View File

@ -0,0 +1,19 @@
--- 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 @@
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);
- 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;
}
}

View File

@ -0,0 +1,76 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBE8E1rgBEACS11V2AGKefqobEq1jvurx8yek7mdHA7Wf7XNCGq1C+uA+/5ou
wOG4C6G26jv/OHBYdK093ULR0QUCrsAdaN9HEKRfBbYUnthZ02wTE/Z+9QtIZI4H
2ok4uooKM5F0esR1f4DuUkNIRcCOPZFODzycxDNgS3rea1n1i6sKvu631iqzi+ZW
A/fGwJR121ofbMyolJpVu8grKmSseQ0KDPJSc98AWvD81N2xoRVxf94pKALJmODP
AGUb1vQPcphzjucByAVaqXbnkEDB9iid+OHwfTKi/YAwJIsl1Lpkb9Amc+4ywgIk
WDHoyvtxWz6sMbdSI+KzvThNVKGrZH7BU/aAUkk1zrMsvWAh2WjACnlNR5rKodY4
nu9zId/XHDx1X4ViEgRgix1lRW2HOJm9/EUEz9AB0lAMG0ooZctS/eGM20UwIC8d
Zt1KvbVtEKbtU2+J7VXN59MBciqanwUzQwJwxZD5ywPmBIrkrVUdWRCeG+tGMtm0
/D7I1rSwyMPL2b5EEqtDlRW04vXuqbkufBYUELtfLsbYu5N/ot1wrK6D4BNMgmv3
d2/Z6R3wxIoiVDd7pkSLvV30TfpWz6NpyKLbEiSs0fLQNEkQqNRpxcEhNIhrvxC5
WfTL0rvj0uTZaRBpZ2u6zWCZLR09c4Y33R869wWF4ODW2dX8ApcQhhHOEQARAQAB
tCJBbGV4ZXkgR2xhZGtvdiA8bGVnaW9uQGtlcm5lbC5vcmc+iQJOBBMBCAA4FiEE
fyo9BymBSaB5PJpOpFq6VEz/1DQFAmB9wM4CGwMFCwkIBwIGFQoJCAsCBBYCAwEC
HgECF4AACgkQpFq6VEz/1DQyzg//RNukTzufK/2uFAkgxUEyIQACFqwO6Ud5KAPG
tJ7EKTcaoLYdN1x5su4zwgFmv267X9Ttc1vlMlvhTD8ILUuuoWLroEwi6f4S+hPn
m7xQNveE1NuLXo+VD2NXy0oFmEAUGPy+iW0FbQF9V9t8k6S6YGQUcxuP/YMqYmwh
8Hf+o0Hj/EKoMQGKyGk08tuIvA5Pi95h/fsd9tWceY6n8doZfWA7PtarEEq8SCm7
opVMYWek0GKcUVRg4meBqHlppB4hPJy/4qLNrjMxD29HAaRMvy99G6lhL6upjwI9
blsIyaz5jnYlB7vq3wjwMX+++Ew/podotJhCqQpnXfm8zMeT3j7SyT4rS3nCnzPx
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
=MSO+
-----END PGP PUBLIC KEY BLOCK-----