wok-tiny view keyboard/receipt @ rev 183

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