summaryrefslogtreecommitdiff
path: root/system/kbd/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'system/kbd/APKBUILD')
-rw-r--r--system/kbd/APKBUILD181
1 files changed, 181 insertions, 0 deletions
diff --git a/system/kbd/APKBUILD b/system/kbd/APKBUILD
new file mode 100644
index 000000000..45a122e25
--- /dev/null
+++ b/system/kbd/APKBUILD
@@ -0,0 +1,181 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=kbd
+pkgver=2.0.4
+pkgrel=3
+pkgdesc="Tools for configuring the console (keyboard, virtual terminals, etc.)"
+url="http://ftp.altlinux.org/pub/people/legion/kbd"
+arch="all"
+license="GPL-2.0-or-later"
+depends="kbd-misc"
+makedepends="linux-headers linux-pam-dev check-dev ckbcomp xkeyboard-config"
+install=""
+subpackages="$pkgname-bkeymaps::noarch $pkgname-legacy::noarch
+ $pkgname-misc::noarch $pkgname-doc $pkgname-openrc $pkgname-vlock"
+source="https://www.kernel.org/pub/linux/utils/kbd/kbd-$pkgver.tar.gz
+ loadkeys.initd
+ loadkeys.confd
+
+ error.h
+ fix-tests.patch
+ "
+builddir="$srcdir"/kbd-$pkgver
+
+_datadir=/usr/share
+_xmapdir="$_datadir"/keymaps/xkb
+_bmapdir="$_datadir"/bkeymaps
+_badmaps="pk-ara"
+
+prepare() {
+ default_prepare
+
+ cd "$builddir"
+ cp "$srcdir"/error.h .
+}
+
+build() {
+ cd "$builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --disable-nls \
+ --prefix=/usr \
+ --datadir="$_datadir" \
+ --htmldir=/usr/share/html/$pkgname
+ make
+}
+
+check() {
+ cd "$builddir"
+ make check
+}
+
+_listxmaps() {
+ local invariant line; invariant=false
+ grep -v '^$' /usr/share/X11/xkb/rules/base.lst | while read line; do
+ case "$line" in
+ '! variant') invariant=true ;;
+ '!'*) invariant=false ;;
+ *) if $invariant; then
+ echo "$line" | cut -d: -f1
+ fi ;;
+ esac
+ done
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm755 "$srcdir"/loadkeys.initd \
+ "$pkgdir"/etc/init.d/loadkeys
+ install -Dm644 "$srcdir"/loadkeys.confd \
+ "$pkgdir"/etc/conf.d/loadkeys
+
+ # Move and fixup legacy keymaps
+ mkdir legacy
+ mv "$pkgdir"/usr/share/keymaps/* legacy
+ mv legacy "$pkgdir"/usr/share/keymaps
+
+ cd "$pkgdir"/usr/share/keymaps/legacy/i386
+ # Make ISO-8815-9 maps the default, instead of 7-bit ones
+ ln -s pt-latin9.map.gz qwerty/pt.map.gz
+ mv azerty/fr.map.gz azerty/fr-old.map.gz
+ ln -s fr-latin9.map.gz azerty/fr.map.gz
+
+ # Add some legacy aliases
+ ln -s fr-latin9.map.gz azerty/fr-latin0.map.gz
+ ln -s sv-latin1.map.gz qwerty/se-latin1.map.gz
+ ln -s sr-cy.map.gz qwerty/sr-latin.map.gz
+
+ # Rename conflicting keymaps
+ mv dvorak/no.map.gz dvorak/no-dvorak.map.gz
+ mv fgGIod/trf.map.gz fgGIod/trf-fgGIod.map.gz
+ mv olpc/es.map.gz olpc/es-olpc.map.gz
+ mv olpc/pt.map.gz olpc/pt-olpc.map.gz
+ mv qwerty/cz.map.gz qwerty/cz-qwerty.map.gz
+
+ # Remove useless layouts
+ rm -f i386/qwerty/ro_win.map.gz
+
+ cd "$builddir"
+
+ # Compile keymaps from X.org layouts
+ mkdir -p "$pkgdir$_xmapdir"
+ local layout variant
+ _listxmaps | while read -r variant layout; do
+ if ! test -f "$pkgdir$_xmapdir"/"$layout".map.gz; then
+ echo "Generating keymap $layout..."
+ ckbcomp "$layout" | gzip > "$pkgdir$_xmapdir"/"$layout".map.gz || exit 1
+ fi
+ echo "Generating keymap $layout-$variant..."
+ ckbcomp "$layout" "$variant" | gzip > "$pkgdir$_xmapdir"/"$layout"-"$variant".map.gz || exit 1
+ done
+
+ # Do some fix-ups on X.org keymaps
+ mv "$pkgdir$_xmapdir"/fi.map.gz "$pkgdir$_xmapdir"/fi-kotoistus.map.gz
+
+ # Install html documentation
+ mkdir -p "$pkgdir$_datadir"/html/$pkgname
+ mv docs/doc/*.html "$pkgdir$_datadir"/html/$pkgname
+
+ # Replace busybox setfont utility.
+ mkdir -p "$pkgdir"/usr/sbin
+ mv "$pkgdir"/usr/bin/setfont "$pkgdir"/usr/sbin
+
+ # Link open to openvt
+ ln -s openvt "$pkgdir"/usr/bin/open
+}
+
+vlock() {
+ pkgdesc="$pkgname vlock implemantation"
+ depends=
+
+ # This is the only binary needing linux-pam so moving this to a
+ # subpackage reduces the amount of depencies of the kbd package.
+
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/vlock "$subpkgdir"/usr/bin
+}
+
+bkeymaps() {
+ pkgdesc="X.org-derived binary keymaps"
+ depends=
+ replaces="bkeymaps"
+ provides="bkeymaps"
+
+ mkdir -p "$subpkgdir$_bmapdir"
+ local map variant layout; for map in "$pkgdir$_xmapdir"/*.map.gz; do
+ variant="$(basename "$map" | cut -d. -f1)"
+ case "$variant" in $_badmaps) continue ;; esac
+
+ layout="${variant%%-*}"
+ mkdir -p "$subpkgdir$_bmapdir"/$layout
+ echo "Generating binary keymap $variant..."
+ "$pkgdir"/usr/bin/loadkeys -ub "$map" | gzip > "$subpkgdir$_bmapdir"/$layout/$variant.bmap.gz
+ done
+}
+
+legacy() {
+ pkgdesc="kbd legacy keymaps"
+ depends=
+
+ mkdir -p "$subpkgdir$_datadir"/keymaps
+ mv "$pkgdir$_datadir"/keymaps/legacy "$subpkgdir$_datadir"/keymaps
+}
+
+misc() {
+ pkgdesc="kbd keymaps and console data"
+ depends=
+
+ mkdir -p "$subpkgdir$_datadir"
+ local dir; for dir in consolefonts consoletrans keymaps unimaps; do
+ mv "$pkgdir$_datadir"/$dir "$subpkgdir$_datadir"
+ done
+}
+
+sha512sums="e37bc661c75a8363e9a5ba903310fa7f7ded4f381c2c77aa7edc0b1aca5a63224933fd113cddcf180e7fb85f55407e0d1f47be1cdf69dcf2787e83ac996bbf03 kbd-2.0.4.tar.gz
+64b5ab4c362350521da8f507d22c0b77784da99bbe1b32f0c001cd826f63c607e3f9cd6af01f06a61af8bd709760bbf2bb3cfe2010c33925f2987a1af6ef4998 loadkeys.initd
+12028796552a5ffed1d5cb19d37fc6a73fb4f2e2bf34d837a81171c7ebee98d6c3f557715bf79706d79ce053b9b2450cd8cf1c4ea045428fb7d8a5915ae3ed78 loadkeys.confd
+c66f6b0d8c8b8d285c740bdbe7130dee272ac01cd5e73b35a58cedf1a77fe8d9e062631b804fb58014d8eb9861c8f28aed07bc022ef31662bcc61b5c85a21752 error.h
+bb67e5bb933a48f4a04402e07d7d67169a97485e6b469f8ccd4436466eb17ec2ddcf0ef74d22b3aae9e813feaee5bef0822ec50c384e0276a8c91f9325502a5f fix-tests.patch"