# Contributor: Natanael Copa # Maintainer: Natanael Copa setvar pkgname = 'kbd' setvar pkgver = '2.0.4' setvar pkgrel = '2' setvar pkgdesc = ""Tools for configuring the console (keyboard, virtual terminals, etc.)"" setvar url = ""http://ftp.altlinux.org/pub/people/legion/kbd"" setvar arch = ""all"" setvar license = ""GPL2+"" setvar depends = ""kbd-misc"" setvar makedepends = ""linux-headers linux-pam-dev check-dev ckbcomp xkeyboard-config"" setvar install = """" setvar subpackages = ""$pkgname-bkeymaps::noarch $pkgname-legacy::noarch $pkgname-misc::noarch $pkgname-doc $pkgname-vlock"" setvar source = ""http://kbd-project.org/download/kbd-$pkgver.tar.gz error.h fix-tests.patch "" setvar builddir = ""$srcdir"/kbd-$pkgver" setvar _datadir = "/usr/share" setvar _xmapdir = ""$_datadir"/keymaps/xkb" setvar _bmapdir = ""$_datadir"/bkeymaps" setvar _badmaps = ""pk-ara"" proc prepare { default_prepare cd $builddir cp "$srcdir"/error.h . } proc build { cd $builddir ./configure \ --build=$CBUILD \ --host=$CHOST \ --disable-nls \ --prefix=/usr \ --datadir="$_datadir" \ --htmldir=/usr/share/html/$pkgname make } proc check { cd $builddir make check } proc _listxmaps { local invariant line; setvar invariant = 'false' grep -v '^$' /usr/share/X11/xkb/rules/base.lst | while read line { case (line) { '! variant' { setvar invariant = 'true' } '!'* { setvar invariant = 'false' } * { if $invariant { echo $line | cut -d: -f1 } } } } } proc package { 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 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 { if ! test -f "$pkgdir$_xmapdir"/"$layout".map.gz { echo "Generating keymap $layout..." ckbcomp $layout | gzip > "$pkgdir$_xmapdir"/"$layout".map.gz || exit 1 } echo "Generating keymap $layout-$variant..." ckbcomp $layout $variant | gzip > "$pkgdir$_xmapdir"/"$layout"-"$variant".map.gz || exit 1 } # 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 } proc vlock { setvar pkgdesc = ""$pkgname vlock implemantation"" setvar 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 } proc bkeymaps { setvar pkgdesc = ""X.org-derived binary keymaps"" setvar depends = '' setvar replaces = ""bkeymaps"" setvar provides = ""bkeymaps"" mkdir -p "$subpkgdir$_bmapdir" local map variant layout; for map in "$pkgdir$_xmapdir"/*.map.gz { setvar variant = "$(basename "$map" | cut -d. -f1)" case (variant) { $_badmaps { continue } } setvar 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 } } proc legacy { setvar pkgdesc = ""kbd legacy keymaps"" setvar depends = '' mkdir -p "$subpkgdir$_datadir"/keymaps mv "$pkgdir$_datadir"/keymaps/legacy "$subpkgdir$_datadir"/keymaps } proc misc { setvar pkgdesc = ""kbd keymaps and console data"" setvar depends = '' mkdir -p "$subpkgdir$_datadir" local dir; for dir in consolefonts consoletrans keymaps unimaps { mv "$pkgdir$_datadir"/$dir "$subpkgdir$_datadir" } } setvar sha512sums = ""e37bc661c75a8363e9a5ba903310fa7f7ded4f381c2c77aa7edc0b1aca5a63224933fd113cddcf180e7fb85f55407e0d1f47be1cdf69dcf2787e83ac996bbf03 kbd-2.0.4.tar.gz c66f6b0d8c8b8d285c740bdbe7130dee272ac01cd5e73b35a58cedf1a77fe8d9e062631b804fb58014d8eb9861c8f28aed07bc022ef31662bcc61b5c85a21752 error.h bb67e5bb933a48f4a04402e07d7d67169a97485e6b469f8ccd4436466eb17ec2ddcf0ef74d22b3aae9e813feaee5bef0822ec50c384e0276a8c91f9325502a5f fix-tests.patch""