wok-tiny view base-tiny/receipt @ rev 151

linux/bundle: multi floppy support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Sep 15 19:49:24 2019 +0200 (2019-09-15)
parents e37956962a84
children 7efc88318579
line source
1 # SliTaz package receipt.
3 PACKAGE="base-tiny"
4 VERSION="1.0"
5 CATEGORY="base-system"
6 SHORT_DESC="Tiny SliTaz base configuration files"
7 MAINTAINER="pascal.bellard@slitaz.org"
8 LICENSE="BSD"
9 WEB_SITE="http://tiny.slitaz.org/"
10 AUTO_SELECTION="always"
11 CONFIG_FILES="/etc/network.conf /etc/rcS.conf /etc/passwd /etc/fstab \
12 /etc/inetd.conf /etc/daemons.conf /root/.profile /etc/init.d/local.sh"
14 # Rules to gen a SliTaz package suitable for Tazpkg.
15 genpkg_rules()
16 {
17 for i in $CONFIG_FILES ; do
18 [ -e $stuff$i ] && echo ${i#/}
19 done | ( cd $stuff ; cpio -o -H newc ) | ( cd $fs ; cpio -id )
20 }
22 config_form()
23 {
24 if [ -z "$MODE" ]; then
25 [ -n "$PASSWORD" ] || PASSWORD=root
26 [ -n "$HOSTNAME" ] || HOSTNAME=slitaz
27 [ -n "$INTERFACE" ] || INTERFACE=eth0
28 [ -n "$IP" ] || IP=192.168.0.6
29 [ -n "$NETMASK" ] || NETMASK=255.255.255.0
30 [ -n "$GATEWAY" ] || GATEWAY=192.168.0.1
31 [ -n "$DNS_SERVER" ] || DNS_SERVER='192.168.0.1 192.168.0.2'
32 [ -n "$FSTAB" ] || FSTAB='/dev/hda1 /mnt ext3 defaults 0 2'
33 [ -n "$RC_LOCAL" ] || RC_LOCAL='[ -x /mnt/boot/init ] && /mnt/boot/init'
34 fi
35 cat <<EOT
36 <table>
37 <tr>
38 <td>Root password (empty=disable)</td>
39 <td><input type="text" name="PASSWORD" value="$PASSWORD" /></td>
40 </tr>
41 <tr>
42 <td>Host name</td>
43 <td><input type="text" name="HOSTNAME" value="$HOSTNAME" /></td>
44 </tr>
45 <tr>
46 <td>Interface</td>
47 <td><input type="text" name="INTERFACE" value="$INTERFACE" /></td>
48 </tr>
49 <tr>
50 <td>Network configuration</td>
51 <td><select name="MODE">
52 <option value="STATIC">STATIC</option>
53 <option value="DHCP"$([ "$MODE" = "DHCP" ] && echo ' selected="selected"')>DHCP</option>
54 <option value="DISABLE"$([ "$MODE" = "DISABLE" ] && echo ' selected="selected"')>DISABLE</option>
55 </select></td>
56 </tr>
57 <tr>
58 <td>Internet address</td>
59 <td><input type="text" name="IP" value="$IP" /></td>
60 </tr>
61 <tr>
62 <td>Netmask</td>
63 <td><input type="text" name="NETMASK" value="$NETMASK" /></td>
64 </tr>
65 <tr>
66 <td>Gateway</td>
67 <td><input type="text" name="GATEWAY" value="$GATEWAY" /></td>
68 </tr>
69 <tr>
70 <td>DNS server(s)</td>
71 <td><input type="text" name="DNS_SERVER" value="$DNS_SERVER" /></td>
72 </tr>
73 <tr>
74 <td>Filesystems</td>
75 <td><textarea name="FSTAB" cols="60" wrap="off">
76 $FSTAB
77 </textarea></td>
78 </tr>
79 <tr>
80 <td>Additional boot commands</td>
81 <td><textarea name="RC_LOCAL" cols="60" wrap="off">
82 $RC_LOCAL
83 </textarea></td>
84 </tr>
85 </table>
86 <input type="checkbox" name="KEEP_MODULES" ${KEEP_MODULES:+checked="checked" }/>
87 Do not remove the modules files after loading modules.
88 <p>
89 <input type="checkbox" name="STUPID" ${STUPID:+ckecked="ckecked" }/>
90 Read floppy sector by sector instead of track by track (slow, stupid but safe).
91 EOT
92 }
94 post_install()
95 {
96 DHCP="no"
97 STATIC="yes"
98 case "$MODE" in
99 "") return 1;;
100 DISABLE)
101 STATIC="no" ;;
102 DHCP) DHCP="yes"
103 STATIC="no"
104 esac
105 cat >> $1/boot/mkrootfs.pre_exec <<EOT
106 if [ -s modules ]; then
107 while read mod; do
108 sed -i "s/LOAD_MODULES=./&\$mod /" etc/rcS.conf
109 done < modules
110 grep ^LOAD_MODULES= etc/rcS.conf >> etc/packages.conf
111 cp etc/packages.conf boot/packages.conf
112 rm -f modules
113 fi
114 EOF
115 [ "$STUPID" ] && cat >> $1/boot/mkrootfs.pre_exec <<EOT
116 for i in boot/bzImage boot/memtest boot/ipxe; do
117 [ -s \$i ] || continue
118 dd if=\$i bs=512 count=1 | \\
119 sed "s|\$(echo -en '\x64\x66\x8F\x47\x78')|\$(echo -en '\x5E\x5E\x90\x90\x90')|" | \\
120 sed "s|\$(echo -en '\x66\x8F\x47\x78')|\$(echo -en '\x5E\x5E\x90\x90')|" | \\
121 sed "s|\$(echo -en '\x77\x02\xB0\x01')|\$(echo -en '\x90\x90\xB0\x01')|" | \\
122 sed "s|\$(echo -en '\xB0\x31\x1C\x03\xB4\x0E')|\$(echo -en '\xB0\x31\x14\xFD\xB4\x0E')|" | \\
123 dd of=\$i conv=notrunc
124 done
125 EOT
126 sed -i "s/^KEEP_MODULES=.*/KEEP_MODULES=\"$KEEP_MODULES\"/" \
127 $1/etc/rcS.conf
128 sed -i -e "s/^DNS_SERVER=.*/DNS_SERVER=\"$DNS_SERVER\"/" \
129 -e "s/^INTERFACE=.*/INTERFACE=\"$INTERFACE\"/" \
130 -e "s/^NETMASK=.*/NETMASK=\"$NETMASK\"/" \
131 -e "s/^GATEWAY=.*/GATEWAY=\"$GATEWAY\"/" \
132 -e "s/^STATIC=.*/STATIC=\"$STATIC\"/" \
133 -e "s/^DHCP=.*/DHCP=\"$DHCP\"/" \
134 -e "s/^IP=.*/IP=\"$IP\"/" $1/etc/network.conf
135 if [ -n "$PASSWORD" ]; then
136 case "$PASSWORD" in
137 \$1\$*)
138 sed -i "s|^root:[^:]*|root:$PASSWORD|" $1/etc/shadow ;;
139 *)
140 mkdir $1/fs
141 ( cd $1/fs ; cpio -idmu ) < dist/rootfs.cpio
142 cp $1/etc/passwd $1/fs/etc/
143 echo "root:$PASSWORD" | chroot $1/fs/ busybox chpasswd -m
144 cp $1/fs/etc/passwd $1/etc/
145 rm -rf $1/fs
146 esac
147 else
148 sed -i 's/^root:[^:]*:/root::/' $1/etc/passwd
149 mkdir $1/root 2> /dev/null
150 cat > $1/root/.profile <<EOT
151 grep -qs ^root:: /etc/passwd /etc/shadow && passwd
152 EOT
153 fi
154 [ -n "$HOSTNAME" ] && echo $HOSTNAME > $1/etc/hostname
155 [ -n "$FSTAB" ] && dos2unix >> $1/etc/fstab <<EOT
156 $FSTAB
157 EOT
158 [ -n "$RC_LOCAL" ] && dos2unix >> $1/etc/init.d/local.sh <<EOT
159 $RC_LOCAL
160 EOT
161 }