wok-tiny annotate keyboard/receipt @ rev 142

Remove ashism ==
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed Feb 27 17:43:23 2019 +0100 (2019-02-27)
parents 1a6a79b48e76
children 1e55ea7da8de
rev   line source
pascal@101 1 # SliTaz package receipt.
pascal@101 2
pascal@101 3 PACKAGE="keyboard"
pascal@101 4 VERSION="1.0"
pascal@134 5 CATEGORY="base-system"
pascal@101 6 SHORT_DESC="keyboard, locales and timezone settings"
pascal@101 7 MAINTAINER="pascal.bellard@slitaz.org"
pascal@101 8 LICENSE="GPL2"
pascal@101 9 WEB_SITE="http://tiny.slitaz.org/"
pascal@102 10
pascal@101 11 DEPENDS="base-tiny"
pascal@102 12 BUILD_DEPENDS="advancecomp"
pascal@101 13
pascal@101 14 # Rules to configure and make the package.
pascal@101 15 compile_rules()
pascal@101 16 {
pascal@102 17 mkdir -p $DESTDIR/usr/share/i18n $stuff
pascal@101 18 cd $stuff
pascal@102 19 for i in kbd-busybox glibc-base glibc-locale ; do
pascal@102 20 tazpkg get $i
pascal@102 21 tazpkg extract $i*
pascal@102 22 done
pascal@102 23 cp -a kbd-busybox*/fs/usr/share/kmap $DESTDIR/usr/share
pascal@102 24 cp -a glibc-*/fs/usr/share/i18n/locales $DESTDIR/usr/share/i18n
pascal@102 25 cp -a glibc-*/fs/usr/share/zoneinfo $DESTDIR/usr/share
pascal@102 26 cd $DESTDIR/usr/share
pascal@102 27 for i in i18n/locales zoneinfo ; do
pascal@102 28 ( cd $i; find * -type f | while read f; do
pascal@102 29 grep -q $f $stuff/../receipt || rm -f $f; done )
pascal@102 30 find $i -type d | tac | while read d; do
pascal@102 31 rmdir $d 2> /dev/null
pascal@102 32 done
pascal@102 33 done
pascal@102 34 find kmap/*.kmap i18n/locales zoneinfo | cpio -o -H newc | \
pascal@102 35 gzip -9 > data.cpio.gz
pascal@102 36 advdef -z4 data.cpio.gz
pascal@102 37 cd $stuff/..
pascal@101 38 rm -rf $stuff
pascal@101 39 }
pascal@101 40
pascal@101 41 # Rules to gen a SliTaz package suitable for Tazpkg.
pascal@101 42 genpkg_rules()
pascal@101 43 {
pascal@101 44 cp -a $install/. $fs/
pascal@101 45 }
pascal@101 46
pascal@101 47 config_form()
pascal@101 48 {
pascal@101 49 cat <<EOT
pascal@101 50 <script type="text/javascript">
pascal@101 51
pascal@101 52 var locale = [], timezone = [];
pascal@101 53 function setdefault(kbd)
pascal@101 54 {
pascal@101 55 if (locale[kbd] != 'undefined') {
pascal@101 56 document.getElementById("locale").value = locale[kbd];
pascal@101 57 }
pascal@101 58 if (timezone[kbd] != 'undefined') {
pascal@101 59 document.getElementById("timezone").value = timezone[kbd];
pascal@101 60 }
pascal@101 61 }
pascal@101 62
pascal@101 63 EOT
pascal@101 64 awk 'BEGIN { n=0 }
pascal@101 65 {
pascal@101 66 print "locale[\"" $1 "\"] = \"" $2 "\";"
pascal@101 67 if ($3 != "-") print "timezone[\"" $1 "\"] = \"" $3 "\";"
pascal@101 68 gsub("_"," ",$4)
pascal@101 69 name[n] = $4
pascal@101 70 kbd[n++] = $1
pascal@101 71 }
pascal@101 72 END {
pascal@101 73 print "</script>"
pascal@101 74 print "<table>"
pascal@101 75 print "<tr><td>Keyboard</td>"
pascal@101 76 print "<td><select name=\"KEYBOARD\" onChange=\"setdefault(value)\">"
pascal@101 77 for (i=0; i < n; i++)
pascal@101 78 print " <option value=\"" kbd[i] "\">" name[i] "</option>"
pascal@101 79 }' <<EOT | sed "s|value=\"$KEYBOARD\"|& selected=\"selected\"|"
pascal@101 80 br-abnt2 pt_BR America/Sao_Paulo Brasil_(abnt2)
pascal@101 81 us-acentos pt_BR America/Sao_Paulo Brasil_(us-acentos)
pascal@101 82 cz-lat2 cs_CZ Europe/Prague Cesky
pascal@101 83 dk-latin1 da_DK Europe/Copenhagen Danso
pascal@101 84 de-latin1 de_DE Europe/Berlin Deutsch
pascal@101 85 de_CH-latin1 de_CH Europe/Zurich Deutsch_Schweiz
pascal@101 86 sg-latin1 de_CH Europe/Zurich Deutsch_Schweiz_(sg)
pascal@101 87 uk en_GB Europe/London English_UK
pascal@101 88 us en_US America/New_York English_US
pascal@101 89 us-acentos en_US America/New_York English_US_(acentos)
pascal@101 90 dvorak en_US America/New_York English_US_(dvorak)
pascal@101 91 dvorak-l en_US America/New_York English_US_(dvorak-l)
pascal@101 92 dvorak-r en_US America/New_York English_US_(dvorak-r)
pascal@101 93 es es_ES Europe/Madrid Espanol
pascal@101 94 fr-latin1 fr_FR Europe/Paris Francais
pascal@101 95 be-latin1 fr_BE Europe/Brussels Francais_Belgique
pascal@101 96 cf fr_CA America/Montreal Francais_Canada
pascal@101 97 fr_CH-latin1 fr_CH Europe/Zurich Francais_Suisse
pascal@101 98 croat hr_HR Europe/Zagreb Hrvatski
pascal@101 99 is-latin1 is_IS Atlantic/Reykjavik Islenska
pascal@101 100 it it_IT Europe/Rome Italiano
pascal@101 101 jp106 ja_JP Asia/Tokyo Japanese
pascal@101 102 hu hu_HU Europe/Budapest Magyar
pascal@101 103 nl2 nl_NL Europe/Amsterdam Nederlands
pascal@101 104 no-latin1 nb_NO Europe/Oslo Norsk_(Bokmal)
pascal@101 105 no-latin1 nn_NO Europe/Oslo Norsk_(Nynorsk)
pascal@101 106 pl2 pl_PL Europe/Warsaw Polski
pascal@101 107 pt-latin1 pt_PT Europe/Lisbon Portugues
pascal@101 108 ru ru_RU Europe/Moscow Russian
pascal@101 109 slovene sl_SI Europe/Ljubljan Slovenski
pascal@101 110 fi-latin1 fi_FI Europe/Helsinki Suomi
pascal@101 111 se-lat6 sv_SE Europe/Stockholm Svenska
pascal@101 112 trq tr_TR Asia/Istanbul Turkce
pascal@101 113 tr_q-latin5 tr_TR Asia/Istanbul Turkce_(latin5)
pascal@101 114 EOT
pascal@101 115 cat <<EOT
pascal@101 116 </select></td>
pascal@101 117 </tr>
pascal@101 118 <tr>
pascal@101 119 <td>Locale</td>
pascal@101 120 <td><select name="LOCALE" id="locale">
pascal@101 121 EOT
pascal@101 122 ( cd /usr/share/i18n/locales ; ls ??_* ) | \
pascal@101 123 sed "s|.*| <option>&</option>|;s|>$LOCALE<| selected=\"selected\"&|"
pascal@101 124 cat <<EOT
pascal@101 125 </select></td>
pascal@101 126 </tr>
pascal@101 127 <tr>
pascal@101 128 <td>Timezone</td>
pascal@101 129 <td><select name="TIMEZONE" id="timezone">
pascal@101 130 EOT
pascal@101 131 ( cd /usr/share/zoneinfo ; find */ -type f ) | \
pascal@101 132 sed "s|.*| <option>&</option>|;s|>$TIMEZONE<| selected=\"selected\"&|"
pascal@101 133 cat <<EOT
pascal@101 134 </select></td>
pascal@101 135 </tr>
pascal@101 136 </table>
pascal@126 137 <input type="checkbox" name="USECMDLINE" ${USECMDLINE:+checked=checked }value="yes">
pascal@102 138 Use the kernel command line arguments <b><i>kmap=</i></b>,
pascal@102 139 <b><i>lang=</i></b> and <b><i>tz=</i></b> (+200Kb).
pascal@101 140 EOT
pascal@101 141 }
pascal@101 142
pascal@101 143 post_install()
pascal@101 144 {
pascal@142 145 if [ "$USECMDLINE" = "yes" ]; then
pascal@102 146 mkdir $1/bin
pascal@102 147 cat > $1/bin/loadkmap <<EOT
pascal@102 148 #!/bin/sh
pascal@102 149
pascal@102 150 cd /usr/share
pascal@102 151 for i in \$(cat /proc/cmdline); do
pascal@102 152 j=\${i#*=}
pascal@102 153 case "\$i" in
pascal@102 154 kmap=*) d=kmap
pascal@102 155 j=\$j.kmap ;;
pascal@102 156 lang=*) d=i18n/locales
pascal@102 157 echo -e "LANG=\$j\nLC_ALL=\$j" > /etc/locale.conf ;;
pascal@102 158 tz=*) d=zoneinfo
pascal@102 159 echo "\$j" > /etc/TZ ;;
pascal@102 160 *) continue
pascal@102 161 esac
pascal@102 162 rm -rf \$d
pascal@102 163 zcat data.cpio.gz | cpio -id \$d/\$j 2>/dev/null
pascal@102 164 done
pascal@102 165 cat kmap/* | busybox loadkmap
pascal@102 166 rm -f /bin/loadkmap data.cpio.gz
pascal@102 167 EOT
pascal@102 168 chmod +x $1/bin/loadkmap
pascal@102 169 else
pascal@102 170 rm -f $1/usr/share/data.cpio.gz
pascal@102 171 fi
pascal@102 172 for i in $1/usr/share/i18n/locales/* ; do
pascal@142 173 [ $i = $1/usr/share/i18n/locales/$LOCALE ] || rm $i
pascal@102 174 done
pascal@102 175 [ -n "$LOCALE" ] && cat > $1/etc/locale.conf <<EOT
pascal@102 176 LANG=$LOCALE
pascal@102 177 LC_ALL=$LOCALE
pascal@102 178 EOT
pascal@102 179 find $1/usr/share/zoneinfo -type f | while read i; do
pascal@142 180 [ $i = $1/usr/share/zoneinfo/$TIMEZONE ] || rm $i
pascal@102 181 done
pascal@102 182 rmdir $1/usr/share/zoneinfo/* 2> /dev/null
pascal@102 183 [ -n "$TIMEZONE" ] && echo "$TIMEZONE" > $1/etc/TZ
pascal@101 184 for i in $1/usr/share/kmap/*.kmap ; do
pascal@142 185 [ $i = $1/usr/share/kmap/$KEYBOARD.kmap ] || rm $i
pascal@101 186 done
pascal@101 187 }