wok-tiny annotate busybox-net/receipt @ rev 173
Fix ctorrent-dnh & tfttest
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed Jul 14 09:04:04 2021 +0000 (2021-07-14) |
parents | c21687abfa6a |
children | 00ad93bee405 |
rev | line source |
---|---|
pascal@157 | 1 # SliTaz package receipt. |
pascal@157 | 2 |
pascal@157 | 3 PACKAGE="busybox-net" |
pascal@157 | 4 VERSION="1.28-20170822" |
pascal@157 | 5 GIT_TAG="753c4045e4f287fc4b4788afd94f58738a7f04b4" |
pascal@157 | 6 CATEGORY="base-system" |
pascal@157 | 7 SHORT_DESC="Busybox UNIX utilities with many network commands." |
pascal@157 | 8 MAINTAINER="pascal.bellard@slitaz.org" |
pascal@157 | 9 LICENSE="GPL2" |
pascal@157 | 10 [ -n "$TARGET" ] || TARGET="i486" |
pascal@157 | 11 DEPENDS="busybox" |
pascal@173 | 12 BUILD_DEPENDS="bzip2 uclibc-cross-compiler-$TARGET wget" |
pascal@157 | 13 TARBALL="busybox-$VERSION.tar.bz2" |
pascal@157 | 14 WEB_SITE="http://www.busybox.net/" |
pascal@157 | 15 WGET_URL="https://git.busybox.net/busybox/snapshot/busybox-$GIT_TAG.tar.bz2" |
pascal@157 | 16 CONFIG_FILES="/etc/dnsd.conf /etc/inetd.conf /etc/udhcpd.conf /etc/resolv.conf \ |
pascal@157 | 17 /etc/network.conf /etc/inetd.conf" |
pascal@157 | 18 |
pascal@157 | 19 apply_bb_patchs() |
pascal@157 | 20 { |
pascal@157 | 21 cd $src |
pascal@157 | 22 while read file; do |
pascal@157 | 23 [ -f done.$file ] && continue |
pascal@157 | 24 echo "Apply $file..." |
pascal@157 | 25 patch -p1 < $stuff/busybox-git-$file || return 1 |
pascal@157 | 26 touch done.$file |
pascal@157 | 27 done <<EOT |
pascal@157 | 28 stat.u |
pascal@157 | 29 ris.u |
pascal@157 | 30 zmodules.u |
pascal@157 | 31 cmdline.u |
pascal@157 | 32 fbvnc.u |
pascal@157 | 33 cpio.u |
pascal@157 | 34 scriptreplay.u |
pascal@157 | 35 ash.u |
pascal@157 | 36 EOT |
pascal@157 | 37 [ $(. $WOK/linux/receipt; printf "%d%02d%02d" ${VERSION//./ }) -le 20626 ] && |
pascal@157 | 38 echo apply 0001-mdev-create-devices-from-sys-dev.patch && |
pascal@157 | 39 patch -p1 -R < $stuff/0001-mdev-create-devices-from-sys-dev.patch |
pascal@157 | 40 cp $stuff/$PACKAGE-git.config .config |
pascal@157 | 41 var="CONFIG_CROSS_COMPILER_PREFIX" |
pascal@157 | 42 sed -i "s/.*$var.*/$var=\"uclibc-$TARGET-\"/" .config |
pascal@157 | 43 } |
pascal@157 | 44 |
pascal@157 | 45 # Rules to configure and make the package. |
pascal@157 | 46 compile_rules() |
pascal@157 | 47 { |
pascal@157 | 48 { apply_bb_patchs && |
pascal@157 | 49 make oldconfig && |
pascal@157 | 50 make && |
pascal@157 | 51 make install |
pascal@157 | 52 } || return 1 |
pascal@157 | 53 echo "Chmod 4755 on busybox binary..." |
pascal@157 | 54 chmod 4755 _install/bin/busybox |
pascal@157 | 55 mkdir -p _install/lib |
pascal@157 | 56 LD_LIBRARY_PATH=/usr/share/uclibc-cross-compiler-$TARGET/lib \ |
pascal@157 | 57 uclibc-$TARGET-ldd busybox 2> /dev/null | \ |
pascal@157 | 58 awk '/=>/ { print $3 }' | while read file ; do |
pascal@157 | 59 cp -a $file _install/lib |
pascal@157 | 60 while [ -L "$file" ]; do |
pascal@157 | 61 dir="$(dirname $file)/" |
pascal@157 | 62 file="$(readlink $file)" |
pascal@157 | 63 case "$file" in |
pascal@157 | 64 /*) ;; |
pascal@157 | 65 *) file="$dir$file";; |
pascal@157 | 66 esac |
pascal@157 | 67 cp -a "$file" _install/lib |
pascal@157 | 68 done |
pascal@157 | 69 done |
pascal@157 | 70 chown 0.0 _install/lib/* |
pascal@157 | 71 } |
pascal@157 | 72 |
pascal@157 | 73 # Rules to gen a SliTaz package suitable for Tazpkg. |
pascal@157 | 74 genpkg_rules() |
pascal@157 | 75 { |
pascal@173 | 76 mkdir -p $fs/boot $fs/bin $fs/sbin $fs/etc/init.d |
pascal@173 | 77 sed -e 's| *#.*$||' -e '/^$/d' < $stuff/services > $fs/etc/services |
pascal@157 | 78 cp -a $src/_install/bin/busybox $fs/bin |
pascal@161 | 79 for i in /bin/sh /bin/login /bin/false /sbin/mdev /init ; do |
pascal@157 | 80 ln -f $fs/bin/busybox $fs$i |
pascal@157 | 81 done |
pascal@157 | 82 |
pascal@157 | 83 # Busybox config files. |
pascal@157 | 84 touch $fs/etc/resolv.conf |
pascal@157 | 85 cp $stuff/inetd.conf $fs/etc |
pascal@173 | 86 cp $stuff/network.conf $fs/etc |
pascal@157 | 87 cp $stuff/daemon $fs/etc/init.d |
pascal@173 | 88 cp $stuff/network.sh $fs/etc/init.d |
pascal@157 | 89 for i in crond dnsd ftpd httpd inetd klogd ntpd syslogd telnetd tftpd \ |
pascal@157 | 90 udhcpd zcip ; do |
pascal@157 | 91 grep -qi config_$i=y $src/.config && |
pascal@157 | 92 ln -s daemon $fs/etc/init.d/$i |
pascal@157 | 93 done |
pascal@157 | 94 # Udhcpc stuff. |
pascal@157 | 95 mkdir -p $fs/usr/share/udhcpc |
pascal@157 | 96 cp $stuff/udhcp.script $fs/usr/share/udhcpc/default.script |
pascal@157 | 97 chmod +x $fs/usr/share/udhcpc/default.script |
pascal@157 | 98 |
pascal@173 | 99 sed -i '2,$s/^#.*//;/^$/d' $fs/etc/init.d/daemon $fs/etc/init.d/*.sh |
pascal@173 | 100 sed -i 's/^#.*//;/^$/d' $fs/etc/*.conf |
pascal@161 | 101 find $fs -exec touch -r $fs {} \; |
pascal@161 | 102 cp $stuff/busybox-net-git.config $fs/boot/config-busybox |
pascal@157 | 103 } |
pascal@157 | 104 |
pascal@157 | 105 config_form() |
pascal@157 | 106 { |
pascal@157 | 107 if [ -z "$MODE" ]; then |
pascal@157 | 108 [ -n "$INTERFACE" ] || INTERFACE=eth0 |
pascal@157 | 109 [ -n "$IP" ] || IP=192.168.0.6 |
pascal@157 | 110 [ -n "$NETMASK" ] || NETMASK=255.255.255.0 |
pascal@157 | 111 [ -n "$GATEWAY" ] || GATEWAY=192.168.0.1 |
pascal@157 | 112 [ -n "$DNS_SERVER" ] || DNS_SERVER='192.168.0.1 192.168.0.2' |
pascal@157 | 113 fi |
pascal@157 | 114 cat <<EOT |
pascal@157 | 115 <table> |
pascal@157 | 116 <tr> |
pascal@157 | 117 <td>Interface</td> |
pascal@157 | 118 <td><input type="text" name="INTERFACE" value="$INTERFACE" /></td> |
pascal@157 | 119 </tr> |
pascal@157 | 120 <tr> |
pascal@157 | 121 <td>Network configuration</td> |
pascal@157 | 122 <td><select name="MODE"> |
pascal@157 | 123 <option value="STATIC">STATIC</option> |
pascal@157 | 124 <option value="DHCP"$([ "$MODE" = "DHCP" ] && echo ' selected="selected"')>DHCP</option> |
pascal@157 | 125 <option value="DISABLE"$([ "$MODE" = "DISABLE" ] && echo ' selected="selected"')>DISABLE</option> |
pascal@157 | 126 </select></td> |
pascal@157 | 127 </tr> |
pascal@157 | 128 <tr> |
pascal@157 | 129 <td>Internet address</td> |
pascal@157 | 130 <td><input type="text" name="IP" value="$IP" /></td> |
pascal@157 | 131 </tr> |
pascal@157 | 132 <tr> |
pascal@157 | 133 <td>Netmask</td> |
pascal@157 | 134 <td><input type="text" name="NETMASK" value="$NETMASK" /></td> |
pascal@157 | 135 </tr> |
pascal@157 | 136 <tr> |
pascal@157 | 137 <td>Gateway</td> |
pascal@157 | 138 <td><input type="text" name="GATEWAY" value="$GATEWAY" /></td> |
pascal@157 | 139 </tr> |
pascal@157 | 140 <tr> |
pascal@157 | 141 <td>DNS server(s)</td> |
pascal@157 | 142 <td><input type="text" name="DNS_SERVER" value="$DNS_SERVER" /></td> |
pascal@157 | 143 </tr> |
pascal@157 | 144 </table> |
pascal@157 | 145 EOT |
pascal@157 | 146 } |
pascal@157 | 147 |
pascal@173 | 148 config_note() |
pascal@173 | 149 { |
pascal@173 | 150 cat <<EOT |
pascal@173 | 151 <script type="text/javascript"> |
pascal@173 | 152 function update_form() |
pascal@173 | 153 { |
pascal@173 | 154 var hide = true |
pascal@173 | 155 for (var i = 0; i < document.forms.length; i++) { |
pascal@173 | 156 for (var j = 0; j < document.forms[i].elements.length; j++) { |
pascal@173 | 157 var obj = document.forms[i].elements[j] |
pascal@173 | 158 if (obj.name == "MODE" && obj.value == "STATIC") |
pascal@173 | 159 hide = false |
pascal@173 | 160 } |
pascal@173 | 161 } |
pascal@173 | 162 for (var i = 0; i < document.forms.length; i++) { |
pascal@173 | 163 for (var j = 0; j < document.forms[i].elements.length; j++) { |
pascal@173 | 164 var obj = document.forms[i].elements[j] |
pascal@173 | 165 switch (obj.name) { |
pascal@173 | 166 case "IP" : |
pascal@173 | 167 case "NETMASK" : |
pascal@173 | 168 case "GATEWAY" : |
pascal@173 | 169 case "DNS_SERVER" : |
pascal@173 | 170 obj.disabled = hide; break; |
pascal@173 | 171 } |
pascal@173 | 172 } |
pascal@173 | 173 } |
pascal@173 | 174 } |
pascal@173 | 175 update_form() |
pascal@173 | 176 window.onchange = update_form |
pascal@173 | 177 //--> |
pascal@173 | 178 </script> |
pascal@173 | 179 EOT |
pascal@173 | 180 } |
pascal@173 | 181 |
pascal@157 | 182 post_install() |
pascal@157 | 183 { |
pascal@157 | 184 sed -i 's|local.sh|network.sh &|' $1/etc/rcS.conf |
pascal@157 | 185 chmod 4755 $1/bin/busybox |
pascal@162 | 186 ln -fs /proc/mounts $1/etc/mtab |
pascal@157 | 187 DHCP="no" |
pascal@157 | 188 STATIC="yes" |
pascal@157 | 189 case "$MODE" in |
pascal@157 | 190 "") return 1;; |
pascal@157 | 191 DISABLE) |
pascal@157 | 192 STATIC="no" ;; |
pascal@157 | 193 DHCP) DHCP="yes" |
pascal@157 | 194 STATIC="no" |
pascal@157 | 195 esac |
pascal@157 | 196 sed -i -e "s/^DNS_SERVER=.*/DNS_SERVER=\"$DNS_SERVER\"/" \ |
pascal@157 | 197 -e "s/^INTERFACE=.*/INTERFACE=\"$INTERFACE\"/" \ |
pascal@157 | 198 -e "s/^NETMASK=.*/NETMASK=\"$NETMASK\"/" \ |
pascal@157 | 199 -e "s/^GATEWAY=.*/GATEWAY=\"$GATEWAY\"/" \ |
pascal@157 | 200 -e "s/^STATIC=.*/STATIC=\"$STATIC\"/" \ |
pascal@157 | 201 -e "s/^DHCP=.*/DHCP=\"$DHCP\"/" \ |
pascal@157 | 202 -e "s/^IP=.*/IP=\"$IP\"/" $1/etc/network.conf |
pascal@157 | 203 [ -n "$HOSTNAME" ] && echo $HOSTNAME > $1/etc/hostname |
pascal@157 | 204 } |