diff --git a/kbd/.SRCINFO b/kbd/.SRCINFO new file mode 100644 index 0000000000..12bb007610 --- /dev/null +++ b/kbd/.SRCINFO @@ -0,0 +1,31 @@ +pkgbase = kbd + pkgdesc = Keytable files and keyboard utilities + pkgver = 2.6.4 + pkgrel = 3 + url = http://www.kbd-project.org + arch = x86_64 + arch = powerpc64le + arch = powerpc64 + arch = powerpc + arch = riscv64 + license = GPL-2.0-or-later + makedepends = check + makedepends = git + depends = glibc + depends = gzip + depends = pam + provides = vlock + conflicts = vlock + replaces = vlock + backup = etc/pam.d/vlock + source = git+https://git.kernel.org/pub/scm/linux/kernel/git/legion/kbd.git#tag=v2.6.4?signed + source = fix-euro2.patch + source = vlock.pam + source = kbd-ppcbe-fix-loadkmap-compat.patch + validpgpkeys = 7F2A3D07298149A0793C9A4EA45ABA544CFFD434 + b2sums = d519b114d95117c88f61b3d3569fd8cc16d4149cee72899cf5e9fdc9c21464c3a6a1f148f702262559aca7416264c727ad29ed6d238364383a57af518a2a13fc + b2sums = d122ddb1a86e7a282df8e438903f94d697e3d18a24154d976334e6b54b8f1cf1df432cf8dbcd98daa55014ada462f284d0319fbf015554266e91f4d2a8bf812b + b2sums = 104543e72331a633572a26059e6dce1f25c3c8d6deabb855dd94bfffb72edf8a53a58c6ea7ef6806dd80bcd6ab0aa47cc1a45cc0cd90330be6514ff7591b5140 + b2sums = cf505059b3a911c13894b0598e00dbe639e6517b66d1719d3faca6bab01b6ed9a1c3e33bad6901a8fe8be4e48158c20f23e31e197748295e950f00c271d48d6b + +pkgname = kbd diff --git a/kbd/.nvchecker.toml b/kbd/.nvchecker.toml new file mode 100644 index 0000000000..ee4bae79a8 --- /dev/null +++ b/kbd/.nvchecker.toml @@ -0,0 +1,4 @@ +[kbd] +source = "git" +git = "https://git.kernel.org/pub/scm/linux/kernel/git/legion/kbd.git" +prefix = "v" diff --git a/kbd/PKGBUILD b/kbd/PKGBUILD index 4b668d9bb8..2ee90dac4b 100644 --- a/kbd/PKGBUILD +++ b/kbd/PKGBUILD @@ -3,33 +3,40 @@ pkgname=kbd pkgver=2.6.4 -pkgrel=1 +pkgrel=3 pkgdesc="Keytable files and keyboard utilities" arch=(x86_64 powerpc64le powerpc64 powerpc riscv64) url="http://www.kbd-project.org" -license=('GPL') -depends=('glibc' 'pam') -makedepends=('check' 'git') -#source=(https://www.kernel.org/pub/linux/utils/${pkgname}/${pkgname}-${pkgver}.tar.gz -# 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' - 'kbd-ppcbe-fix-loadkmap-compat.patch') +license=('GPL-2.0-or-later') +depends=( + glibc + gzip + pam +) +makedepends=( + check + git +) +source=( + git+https://git.kernel.org/pub/scm/linux/kernel/git/legion/kbd.git#tag=v$pkgver?signed + fix-euro2.patch + vlock.pam + kbd-ppcbe-fix-loadkmap-compat.patch +) backup=('etc/pam.d/vlock') provides=('vlock') conflicts=('vlock') replaces=('vlock') -sha256sums=('SKIP' - 'a5e0167b6a82a9eb4d581d56baab930c2d80f5541dc34630460b73e1115384b8' - '5c2d377a87121e7c399534fb91e2ffc0cc1e75d44a8f07ee6f55c9c089bc81e4' - '1e29b3b764db92051a729fadafe7742a3261e2494d3bb835e3596177e44a6f3c') +b2sums=('d519b114d95117c88f61b3d3569fd8cc16d4149cee72899cf5e9fdc9c21464c3a6a1f148f702262559aca7416264c727ad29ed6d238364383a57af518a2a13fc' + 'd122ddb1a86e7a282df8e438903f94d697e3d18a24154d976334e6b54b8f1cf1df432cf8dbcd98daa55014ada462f284d0319fbf015554266e91f4d2a8bf812b' + '104543e72331a633572a26059e6dce1f25c3c8d6deabb855dd94bfffb72edf8a53a58c6ea7ef6806dd80bcd6ab0aa47cc1a45cc0cd90330be6514ff7591b5140' + 'cf505059b3a911c13894b0598e00dbe639e6517b66d1719d3faca6bab01b6ed9a1c3e33bad6901a8fe8be4e48158c20f23e31e197748295e950f00c271d48d6b') validpgpkeys=( - '7F2A3D07298149A0793C9A4EA45ABA544CFFD434' #Alexey Gladkov - ) + '7F2A3D07298149A0793C9A4EA45ABA544CFFD434' #Alexey Gladkov +) prepare() { - cd ${pkgname} + cd "${pkgname}" # rename keymap files with the same names # this is needed because when only name of keymap is specified # loadkeys loads the first keymap it can find, which is bad (see FS#13837) @@ -49,13 +56,13 @@ prepare() { } build() { - cd ${pkgname} + cd "${pkgname}" ./configure --prefix=/usr --sysconfdir=/etc --datadir=/usr/share/kbd --mandir=/usr/share/man --enable-optional-progs make KEYCODES_PROGS=yes RESIZECONS_PROGS=yes } check() { - cd ${pkgname} + cd "${pkgname}" # This test is expected to fail since kbd-fix-loadkmap-compat.patch modifies the binary format sed -e 's|dumpkeys-bkeymap ||' -i tests/Makefile @@ -64,7 +71,7 @@ check() { } package() { - cd ${pkgname} + cd "${pkgname}" make KEYCODES_PROGS=yes RESIZECONS_PROGS=yes DESTDIR="${pkgdir}" install install -Dm644 ../vlock.pam "${pkgdir}"/etc/pam.d/vlock } diff --git a/kbd/kbd-fix-loadkmap-compat.patch b/kbd/kbd-fix-loadkmap-compat.patch new file mode 100644 index 0000000000..d7143501ac --- /dev/null +++ b/kbd/kbd-fix-loadkmap-compat.patch @@ -0,0 +1,22 @@ +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; + } + } +