Skip to content
Snippets Groups Projects
Commit b2ed890e authored by Shiz ...'s avatar Shiz ... Committed by Natanael Copa
Browse files

main/kbd: generate (binary) keymaps from X.org keyboard-config

parent 28a50318
No related branches found
No related tags found
No related merge requests found
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=bkeymaps
pkgver=1.13
pkgrel=4
pkgdesc="Binary keymaps for busybox"
url="http://dev.alpinelinux.org/bkeymaps"
arch="noarch"
license="GPL"
depends="busybox"
source="http://dev.alpinelinux.org/$pkgname/$pkgname-$pkgver.tar.gz
http://dev.alpinelinux.org/bkeymaps/bkeymap-colemak-1.13.tar.gz"
_builddir="$srcdir/$pkgname-$pkgver"
build() {
cd "$_builddir"
return 0
}
package() {
cd "$_builddir"
make DESTDIR="$pkgdir" install || return 1
cp -r "$srcdir"/colemak "$pkgdir"/usr/share/bkeymaps/
}
md5sums="a68058ab4a81cf9a8dcbaaa7a5df5b11 bkeymaps-1.13.tar.gz
290d15ffdf9d73187fe7fe25f4aeef23 bkeymap-colemak-1.13.tar.gz"
sha256sums="59d41ddb0c7a92d8ac155a82ed2875b7880c8957ea4308afa633c8b81e5b8887 bkeymaps-1.13.tar.gz
f4e10f53a60516a0db572d0b1298be303dcdc5f83e2fe587379b887a85283acd bkeymap-colemak-1.13.tar.gz"
sha512sums="abea2576d3b9c4144275e446a6bf67491b0fc7d8e4605f43dba30a8192203d195becd0f3e38ed37987a919d1609e03d966b714a6568985958ba2fddc862c51bf bkeymaps-1.13.tar.gz
755c9ed88c1a643c72663def22c08b02b532b3348868f7ae2f1ee4188f9c0cd9a477efb49f282f255708ddfcb9177549345d1be134af7184cc1e5ec5d60d2849 bkeymap-colemak-1.13.tar.gz"
......@@ -2,81 +2,116 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=kbd
pkgver=2.0.4
pkgrel=0
pkgrel=1
pkgdesc="Tools for configuring the console (keyboard, virtual terminals, etc.)"
url="http://ftp.altlinux.org/pub/people/legion/kbd"
arch="all"
license="GPL2+"
depends="kbd-misc"
makedepends="linux-headers bison flex autoconf automake linux-pam-dev check-dev"
makedepends="linux-headers linux-pam-dev check-dev ckbcomp xkeyboard-config"
install=""
subpackages="$pkgname-misc::noarch $pkgname-doc $pkgname-vlock"
subpackages="$pkgname-bkeymaps::noarch $pkgname-legacy::noarch $pkgname-misc::noarch $pkgname-doc $pkgname-vlock"
source="http://kbd-project.org/download/kbd-$pkgver.tar.gz
error.h
fix-tests.patch
"
builddir="$srcdir"/kbd-$pkgver
_datadir=/usr/share
_xmapdir="$_datadir"/keymaps/xkb
_bmapdir="$_datadir"/bkeymaps
_badmaps="pk-ara"
_builddir="$srcdir"/kbd-$pkgver
prepare() {
# apply patches (if any)
default_prepare || return 1
# install our error.h
cp "$srcdir"/error.h . || return 1
# fixes from fedora
# 7-bit maps are obsolete; so are non-euro maps
cd "$_builddir"/data/keymaps/i386
cp qwerty/pt-latin9.map qwerty/pt.map
cp qwerty/sv-latin1.map qwerty/se-latin1.map
mv azerty/fr.map azerty/fr-old.map
cp azerty/fr-latin9.map azerty/fr.map
default_prepare
cp azerty/fr-latin9.map azerty/fr-latin0.map # legacy alias
# Rename conflicting keymaps
mv dvorak/no.map dvorak/no-dvorak.map
mv fgGIod/trf.map fgGIod/trf-fgGIod.map
mv olpc/es.map olpc/es-olpc.map
mv olpc/pt.map olpc/pt-olpc.map
mv qwerty/cz.map qwerty/cz-qwerty.map
cd "$builddir"
cp "$srcdir"/error.h .
}
_datadir=/usr/share
build() {
cd "$_builddir"
cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
--disable-nls \
--prefix=/usr \
--datadir=${_datadir} \
--htmldir=/usr/share/html/$pkgname \
|| return 1
make || return 1
--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 || return 1
cd "$builddir"
make DESTDIR="$pkgdir" install
# Move and fixup legacy keymaps
mkdir legacy
mv "$pkgdir"/usr/share/keymaps/* legacy
mv legacy "$pkgdir"/usr/share/keymaps
# ro_win.map.gz is useless
rm -f "$pkgdir"${_datadir}/keymaps/i386/qwerty/ro_win.map.gz
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
# Create additional name for Serbian latin keyboard
ln -s sr-cy.map.gz "$pkgdir"${_datadir}/keymaps/i386/qwerty/sr-latin.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
# The rhpl keyboard layout table is indexed by kbd layout names,
# so we need a Korean keyboard
ln -s us.map.gz "$pkgdir"${_datadir}/keymaps/i386/qwerty/ko.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"/usr/share/html/$pkgname
mv docs/doc/*.html "$pkgdir"/usr/share/html/$pkgname/ || return 1
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/ || return 1
mv "$pkgdir"/usr/bin/setfont "$pkgdir"/usr/sbin
# Link open to openvt
ln -s openvt "$pkgdir"/usr/bin/open
......@@ -86,24 +121,48 @@ vlock() {
pkgdesc="$pkgname vlock implemantation"
depends=
# This is the only binary needing linux-pam moving this to a
# subpackage reduce the amount of depencies of the kbd package.
# 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/ || return 1
mv "$pkgdir"/usr/bin/vlock "$subpkgdir"/usr/bin
}
bkeymaps() {
pkgdesc="X.org-derived binary keymaps"
depends=
replaces="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="Data for kbd package"
pkgdesc="kbd keymaps and console data"
depends=
mkdir -p "$subpkgdir"${_datadir}
for dir in consolefonts consoletrans keymaps unimaps; do
mv "$pkgdir"${_datadir}/${dir} "$subpkgdir"/${_datadir}/ \
|| return 1
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
c66f6b0d8c8b8d285c740bdbe7130dee272ac01cd5e73b35a58cedf1a77fe8d9e062631b804fb58014d8eb9861c8f28aed07bc022ef31662bcc61b5c85a21752 error.h"
c66f6b0d8c8b8d285c740bdbe7130dee272ac01cd5e73b35a58cedf1a77fe8d9e062631b804fb58014d8eb9861c8f28aed07bc022ef31662bcc61b5c85a21752 error.h
bb67e5bb933a48f4a04402e07d7d67169a97485e6b469f8ccd4436466eb17ec2ddcf0ef74d22b3aae9e813feaee5bef0822ec50c384e0276a8c91f9325502a5f fix-tests.patch"
busybox readlink doesn't accept -e, and in these cases -f has the same effect.
--- a/tests/alt-is-meta.in
+++ b/tests/alt-is-meta.in
@@ -1,6 +1,6 @@
#!/bin/sh -efu
-cwd="$(readlink -ev "${0%/*}")"
+cwd="$(readlink -fv "${0%/*}")"
cd "$cwd"
--- a/tests/dumpkeys-bkeymap.in
+++ b/tests/dumpkeys-bkeymap.in
@@ -1,6 +1,6 @@
#!/bin/sh -efu
-cwd="$(readlink -ev "${0%/*}")"
+cwd="$(readlink -fv "${0%/*}")"
cd "$cwd"
--- a/tests/dumpkeys-fulltable.in
+++ b/tests/dumpkeys-fulltable.in
@@ -1,6 +1,6 @@
#!/bin/sh -efu
-cwd="$(readlink -ev "${0%/*}")"
+cwd="$(readlink -fv "${0%/*}")"
cd "$cwd"
--- a/tests/dumpkeys-mktable.in
+++ b/tests/dumpkeys-mktable.in
@@ -1,6 +1,6 @@
#!/bin/sh -efu
-cwd="$(readlink -ev "${0%/*}")"
+cwd="$(readlink -fv "${0%/*}")"
cd "$cwd"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment