wok-tiny rev 157

Add geninitramfs & busybox-net
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Feb 28 16:03:43 2020 +0100 (2020-02-28)
parents b02f3505dd41
children 2ecf107b3ad9
files base-tiny/receipt busybox-net/receipt busybox-net/stuff/0001-mdev-create-devices-from-sys-dev.patch busybox-net/stuff/busybox-git-ash.u busybox-net/stuff/busybox-git-cmdline.u busybox-net/stuff/busybox-git-cpio.u busybox-net/stuff/busybox-git-fbvnc.u busybox-net/stuff/busybox-git-ris.u busybox-net/stuff/busybox-git-scriptreplay.u busybox-net/stuff/busybox-git-stat.u busybox-net/stuff/busybox-git-zmodules.u busybox-net/stuff/busybox-net-git.config busybox-net/stuff/busybox.conf busybox-net/stuff/daemon busybox-net/stuff/dnsd.conf busybox-net/stuff/httpd_helper.sh busybox-net/stuff/inetd.conf busybox-net/stuff/init busybox-net/stuff/udhcp.script busybox-net/stuff/udhcpd.conf busybox-net/stuff/zcip.script busybox/receipt busybox/stuff/busybox-git.config busybox/stuff/daemon ctorrent-dnh/receipt dropbear-client-without-zlib/receipt dropbear-client/receipt dropbear-without-zlib/receipt dropbear/receipt fbvnc-auth/receipt fbvnc-ssh/receipt ftp-config/receipt geninitramfs/receipt geninitramfs/stuff/geninitramfs gpxe/receipt lan-config/receipt linux/receipt linux/stuff/linux-2.6.14-slitaz.config lpd-config/receipt lpd-spooling-config/receipt module-3c509/receipt module-cifs/receipt module-cs89x0/receipt module-hp/receipt module-ne/receipt module-nfsd/receipt module-sg/receipt module-tlan/receipt module-tulip/receipt module-tun/receipt module-via-rhine/receipt ntp-config/receipt p910nd/receipt ppp/receipt rsh/receipt telnet-config/receipt udhcpd-config/receipt wiki/receipt
line diff
     1.1 --- a/base-tiny/receipt	Fri Nov 15 11:54:42 2019 +0100
     1.2 +++ b/base-tiny/receipt	Fri Feb 28 16:03:43 2020 +0100
     1.3 @@ -7,9 +7,9 @@
     1.4  MAINTAINER="pascal.bellard@slitaz.org"
     1.5  LICENSE="BSD"
     1.6  WEB_SITE="http://tiny.slitaz.org/"
     1.7 -AUTO_SELECTION="always"
     1.8 -CONFIG_FILES="/etc/network.conf /etc/rcS.conf /etc/passwd /etc/fstab \
     1.9 -/etc/inetd.conf /etc/daemons.conf /root/.profile /etc/init.d/local.sh"
    1.10 +AUTO_SELECTION="never"
    1.11 +CONFIG_FILES="/etc/rcS.conf /etc/passwd /etc/fstab \
    1.12 +/etc/daemons.conf /root/.profile /etc/init.d/local.sh"
    1.13  
    1.14  # Rules to gen a SliTaz package suitable for Tazpkg.
    1.15  genpkg_rules()
    1.16 @@ -18,146 +18,3 @@
    1.17  		[ -e $stuff$i ] && echo ${i#/}
    1.18  	done | ( cd $stuff ; cpio -o -H newc ) | ( cd $fs ; cpio -id )
    1.19  }
    1.20 -
    1.21 -config_form()
    1.22 -{
    1.23 -	if [ -z "$MODE" ]; then
    1.24 -		[ -n "$PASSWORD"   ] || PASSWORD=root
    1.25 -		[ -n "$HOSTNAME"   ] || HOSTNAME=slitaz
    1.26 -		[ -n "$INTERFACE"  ] || INTERFACE=eth0
    1.27 -		[ -n "$IP"         ] || IP=192.168.0.6
    1.28 -		[ -n "$NETMASK"    ] || NETMASK=255.255.255.0
    1.29 -		[ -n "$GATEWAY"    ] || GATEWAY=192.168.0.1
    1.30 -		[ -n "$DNS_SERVER" ] || DNS_SERVER='192.168.0.1 192.168.0.2'
    1.31 -		[ -n "$FSTAB"      ] || FSTAB='/dev/hda1       /mnt         ext3    defaults          0       2'
    1.32 -		[ -n "$RC_LOCAL"   ] || RC_LOCAL='[ -x /mnt/boot/init ] && /mnt/boot/init'
    1.33 -	fi
    1.34 -	cat <<EOT
    1.35 -<table>
    1.36 -<tr>
    1.37 -<td>Root password (empty=disable)</td>
    1.38 -<td><input type="text" name="PASSWORD" value="$PASSWORD" /></td>
    1.39 -</tr>
    1.40 -<tr>
    1.41 -<td>Host name</td>
    1.42 -<td><input type="text" name="HOSTNAME" value="$HOSTNAME" /></td>
    1.43 -</tr>
    1.44 -<tr>
    1.45 -<td>Interface</td>
    1.46 -<td><input type="text" name="INTERFACE" value="$INTERFACE" /></td>
    1.47 -</tr>
    1.48 -<tr>
    1.49 -<td>Network configuration</td>
    1.50 -<td><select name="MODE">
    1.51 -	<option value="STATIC">STATIC</option>
    1.52 -	<option value="DHCP"$([ "$MODE" = "DHCP" ] && echo ' selected="selected"')>DHCP</option>
    1.53 -	<option value="DISABLE"$([ "$MODE" = "DISABLE" ] && echo ' selected="selected"')>DISABLE</option>
    1.54 -</select></td>
    1.55 -</tr>
    1.56 -<tr>
    1.57 -<td>Internet address</td>
    1.58 -<td><input type="text" name="IP" value="$IP" /></td>
    1.59 -</tr>
    1.60 -<tr>
    1.61 -<td>Netmask</td>
    1.62 -<td><input type="text" name="NETMASK" value="$NETMASK" /></td>
    1.63 -</tr>
    1.64 -<tr>
    1.65 -<td>Gateway</td>
    1.66 -<td><input type="text" name="GATEWAY" value="$GATEWAY" /></td>
    1.67 -</tr>
    1.68 -<tr>
    1.69 -<td>DNS server(s)</td>
    1.70 -<td><input type="text" name="DNS_SERVER" value="$DNS_SERVER" /></td>
    1.71 -</tr>
    1.72 -<tr>
    1.73 -<td>Filesystems</td>
    1.74 -<td><textarea name="FSTAB" cols="60" wrap="off">
    1.75 -$FSTAB
    1.76 -</textarea></td>
    1.77 -</tr>
    1.78 -<tr>
    1.79 -<td>Additional boot commands</td>
    1.80 -<td><textarea name="RC_LOCAL" cols="60" wrap="off">
    1.81 -$RC_LOCAL
    1.82 -</textarea></td>
    1.83 -</tr>
    1.84 -</table>
    1.85 -<input type="checkbox" name="KEEP_MODULES" ${KEEP_MODULES:+checked="checked" }/>
    1.86 -Do not remove the modules files after loading modules.
    1.87 -<p>
    1.88 -<input type="checkbox" name="STUPID" ${STUPID:+ckecked="ckecked" }/>
    1.89 -Read floppy sector by sector instead of track by track (slow, stupid but safe).
    1.90 -EOT
    1.91 -}
    1.92 -
    1.93 -post_install()
    1.94 -{
    1.95 -	DHCP="no"
    1.96 -	STATIC="yes"
    1.97 -	case "$MODE" in
    1.98 -	"")	return 1;;
    1.99 -	DISABLE)
   1.100 -		STATIC="no" ;;
   1.101 -	DHCP)	DHCP="yes"
   1.102 -		STATIC="no"
   1.103 -	esac
   1.104 -	cat >> $1/boot/mkrootfs.pre_exec <<EOT
   1.105 -if [ -s modules ]; then
   1.106 -	while read mod; do
   1.107 -		sed -i "s/LOAD_MODULES=./&\$mod /" etc/rcS.conf
   1.108 -	done < modules
   1.109 -	grep ^LOAD_MODULES= etc/rcS.conf >> etc/packages.conf
   1.110 -	cp etc/packages.conf boot/packages.conf
   1.111 -	rm -f modules
   1.112 -fi
   1.113 -EOF
   1.114 -	[ "$STUPID" ] && cat >> $1/boot/mkrootfs.pre_exec <<EOT
   1.115 -for i in boot/bzImage boot/memtest boot/ipxe; do
   1.116 -	[ -s \$i ] || continue
   1.117 -	dd if=\$i bs=512 count=1 | \\
   1.118 -	sed "s|\$(echo -en '\x64\x66\x8F\x47\x78')|\$(echo -en '\x5E\x5E\x90\x90\x90')|" | \\
   1.119 -	sed "s|\$(echo -en '\x66\x8F\x47\x78')|\$(echo -en '\x5E\x5E\x90\x90')|" | \\
   1.120 -	sed "s|\$(echo -en '\x77\x02\xB0\x01')|\$(echo -en '\x90\x90\xB0\x01')|" | \\
   1.121 -	sed "s|\$(echo -en '\x98\xCD\x13')|\$(echo -en '\x89\x90\x90')|" | \\
   1.122 -	sed "s|\$(echo -en '\x60\xCD\x13')|\$(echo -en '\x60\x90\x90')|" | \\
   1.123 -	sed "s|\$(echo -en '\xB0\x31\x1C\x03\xB4\x0E')|\$(echo -en '\xB0\x31\x14\xFD\xB4\x0E')|" | \\
   1.124 -	dd of=\$i conv=notrunc
   1.125 -done
   1.126 -EOT
   1.127 -	sed -i	"s/^KEEP_MODULES=.*/KEEP_MODULES=\"$KEEP_MODULES\"/" \
   1.128 -			$1/etc/rcS.conf
   1.129 -	sed -i	-e "s/^DNS_SERVER=.*/DNS_SERVER=\"$DNS_SERVER\"/" \
   1.130 -		-e "s/^INTERFACE=.*/INTERFACE=\"$INTERFACE\"/" \
   1.131 -		-e "s/^NETMASK=.*/NETMASK=\"$NETMASK\"/" \
   1.132 -		-e "s/^GATEWAY=.*/GATEWAY=\"$GATEWAY\"/" \
   1.133 -		-e "s/^STATIC=.*/STATIC=\"$STATIC\"/" \
   1.134 -		-e "s/^DHCP=.*/DHCP=\"$DHCP\"/" \
   1.135 -		-e "s/^IP=.*/IP=\"$IP\"/" $1/etc/network.conf
   1.136 -	if [ -n "$PASSWORD" ]; then
   1.137 -		case "$PASSWORD" in
   1.138 -		\$1\$*)
   1.139 -			sed -i "s|^root:[^:]*|root:$PASSWORD|" $1/etc/shadow ;;
   1.140 -		*)
   1.141 -			mkdir $1/fs
   1.142 -			( cd $1/fs ; cpio -idmu ) < dist/rootfs.cpio
   1.143 -			cp $1/etc/passwd $1/fs/etc/
   1.144 -			echo "root:$PASSWORD" | chroot $1/fs/ busybox chpasswd -m
   1.145 -			cp $1/fs/etc/passwd $1/etc/
   1.146 -			rm -rf $1/fs
   1.147 -		esac
   1.148 -	else
   1.149 -		sed -i 's/^root:[^:]*:/root::/' $1/etc/passwd
   1.150 -		mkdir $1/root 2> /dev/null
   1.151 -		cat > $1/root/.profile <<EOT
   1.152 -grep -qs ^root:: /etc/passwd /etc/shadow && passwd
   1.153 -EOT
   1.154 -	fi
   1.155 -	[ -n "$HOSTNAME" ] && echo $HOSTNAME > $1/etc/hostname
   1.156 -	[ -n "$FSTAB" ] && dos2unix >> $1/etc/fstab <<EOT
   1.157 -$FSTAB
   1.158 -EOT
   1.159 -	[ -n "$RC_LOCAL" ] && dos2unix >> $1/etc/init.d/local.sh <<EOT
   1.160 -$RC_LOCAL
   1.161 -EOT
   1.162 -}
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/busybox-net/receipt	Fri Feb 28 16:03:43 2020 +0100
     2.3 @@ -0,0 +1,181 @@
     2.4 +# SliTaz package receipt.
     2.5 +
     2.6 +PACKAGE="busybox-net"
     2.7 +VERSION="1.28-20170822"
     2.8 +GIT_TAG="753c4045e4f287fc4b4788afd94f58738a7f04b4"
     2.9 +CATEGORY="base-system"
    2.10 +SHORT_DESC="Busybox UNIX utilities with many network commands."
    2.11 +MAINTAINER="pascal.bellard@slitaz.org"
    2.12 +LICENSE="GPL2"
    2.13 +[ -n "$TARGET" ] || TARGET="i486"
    2.14 +DEPENDS="busybox"
    2.15 +BUILD_DEPENDS="bzip2 uclibc-cross-compiler-$TARGET wget advancecomp"
    2.16 +TARBALL="busybox-$VERSION.tar.bz2"
    2.17 +WEB_SITE="http://www.busybox.net/"
    2.18 +WGET_URL="https://git.busybox.net/busybox/snapshot/busybox-$GIT_TAG.tar.bz2"
    2.19 +CONFIG_FILES="/etc/dnsd.conf /etc/inetd.conf /etc/udhcpd.conf /etc/resolv.conf \
    2.20 +/etc/network.conf /etc/inetd.conf"
    2.21 +
    2.22 +apply_bb_patchs()
    2.23 +{
    2.24 +    cd $src
    2.25 +    while read file; do
    2.26 +    	[ -f done.$file ] && continue
    2.27 +    	echo "Apply $file..."
    2.28 +    	patch -p1 < $stuff/busybox-git-$file || return 1
    2.29 +	touch done.$file
    2.30 +    done <<EOT
    2.31 +stat.u
    2.32 +ris.u
    2.33 +zmodules.u
    2.34 +cmdline.u
    2.35 +fbvnc.u
    2.36 +cpio.u
    2.37 +scriptreplay.u
    2.38 +ash.u
    2.39 +EOT
    2.40 +    [ $(. $WOK/linux/receipt; printf "%d%02d%02d" ${VERSION//./ }) -le 20626 ] &&
    2.41 +    	echo apply 0001-mdev-create-devices-from-sys-dev.patch &&
    2.42 +	patch -p1 -R < $stuff/0001-mdev-create-devices-from-sys-dev.patch
    2.43 +    [ "$(which advdef)" ] &&
    2.44 +	sed -i 's|^cmd_gzip.*|& \&\& advdef -z4 $@|' scripts/Makefile.lib
    2.45 +    cp $stuff/$PACKAGE-git.config .config
    2.46 +    var="CONFIG_CROSS_COMPILER_PREFIX"
    2.47 +    sed -i "s/.*$var.*/$var=\"uclibc-$TARGET-\"/" .config
    2.48 +}
    2.49 +
    2.50 +# Rules to configure and make the package.
    2.51 +compile_rules()
    2.52 +{
    2.53 +    { apply_bb_patchs && 
    2.54 +    make oldconfig &&
    2.55 +    make &&
    2.56 +    make install
    2.57 +    } || return 1
    2.58 +    echo "Chmod 4755 on busybox binary..."
    2.59 +    chmod 4755 _install/bin/busybox
    2.60 +    mkdir -p _install/lib
    2.61 +    LD_LIBRARY_PATH=/usr/share/uclibc-cross-compiler-$TARGET/lib \
    2.62 +	uclibc-$TARGET-ldd busybox 2> /dev/null | \
    2.63 +	awk '/=>/ { print $3 }' | while read file ; do
    2.64 +	cp -a $file _install/lib
    2.65 +	while [ -L "$file" ]; do
    2.66 +		dir="$(dirname $file)/"
    2.67 +		file="$(readlink $file)"
    2.68 +		case "$file" in
    2.69 +		/*) ;;
    2.70 +		*)  file="$dir$file";;
    2.71 +		esac
    2.72 +		cp -a "$file" _install/lib
    2.73 +	done
    2.74 +    done
    2.75 +    chown 0.0 _install/lib/*
    2.76 +}
    2.77 +
    2.78 +# Rules to gen a SliTaz package suitable for Tazpkg.
    2.79 +genpkg_rules()
    2.80 +{
    2.81 +    mkdir $fs/bin $fs/boot
    2.82 +    cp -a $src/_install/bin/busybox $fs/bin
    2.83 +    for i in /bin/sh /bin/login /bin/false /init ; do
    2.84 +	ln -f $fs/bin/busybox $fs$i
    2.85 +    done
    2.86 +    mkdir -p $fs/etc/init.d
    2.87 +    for i in etc/init.d/network.sh etc/network.conf etc/services etc/networks \
    2.88 +	etc/inetd.conf etc/host.conf etc/hosts ; do
    2.89 +	cp -a $WOK/base-tiny/stuff/$i $fs/$i
    2.90 +    done
    2.91 +     sed '/hostname/{Nd}' -i etc/init.d/network.sh
    2.92 +	
    2.93 +    # Busybox config files.
    2.94 +    touch $fs/etc/resolv.conf
    2.95 +    cp $stuff/inetd.conf $fs/etc
    2.96 +    cp $stuff/daemon $fs/etc/init.d
    2.97 +    for i in crond dnsd ftpd httpd inetd klogd ntpd syslogd telnetd tftpd \
    2.98 +	     udhcpd zcip ; do
    2.99 +	grep -qi config_$i=y $src/.config &&
   2.100 +	ln -s daemon $fs/etc/init.d/$i
   2.101 +    done
   2.102 +    # Udhcpc stuff.
   2.103 +    mkdir -p $fs/usr/share/udhcpc
   2.104 +    cp $stuff/udhcp.script $fs/usr/share/udhcpc/default.script
   2.105 +    chmod +x $fs/usr/share/udhcpc/default.script
   2.106 +	
   2.107 +    sed -i '2,$s/^#.*//;/^$/d' $fs/etc/init.d/rc* $fs/etc/init.d/daemon \
   2.108 +	$fs/etc/init.d/*.sh
   2.109 +    sed -i 's/^#.*//;/^$/d' $fs/etc/*.conf $fs/etc/*tab \
   2.110 +	$fs/etc/profile $fs/etc/securetty $fs/etc/shells
   2.111 +	
   2.112 +	cp $stuff/busybox-net-git.config $fs/boot/config-busybox
   2.113 +}
   2.114 +
   2.115 +config_form()
   2.116 +{
   2.117 +	if [ -z "$MODE" ]; then
   2.118 +		[ -n "$HOSTNAME"   ] || HOSTNAME=slitaz
   2.119 +		[ -n "$INTERFACE"  ] || INTERFACE=eth0
   2.120 +		[ -n "$IP"         ] || IP=192.168.0.6
   2.121 +		[ -n "$NETMASK"    ] || NETMASK=255.255.255.0
   2.122 +		[ -n "$GATEWAY"    ] || GATEWAY=192.168.0.1
   2.123 +		[ -n "$DNS_SERVER" ] || DNS_SERVER='192.168.0.1 192.168.0.2'
   2.124 +	fi
   2.125 +	cat <<EOT
   2.126 +<table>
   2.127 +<tr>
   2.128 +<td>Host name</td>
   2.129 +<td><input type="text" name="HOSTNAME" value="$HOSTNAME" /></td>
   2.130 +</tr>
   2.131 +<tr>
   2.132 +<td>Interface</td>
   2.133 +<td><input type="text" name="INTERFACE" value="$INTERFACE" /></td>
   2.134 +</tr>
   2.135 +<tr>
   2.136 +<td>Network configuration</td>
   2.137 +<td><select name="MODE">
   2.138 +	<option value="STATIC">STATIC</option>
   2.139 +	<option value="DHCP"$([ "$MODE" = "DHCP" ] && echo ' selected="selected"')>DHCP</option>
   2.140 +	<option value="DISABLE"$([ "$MODE" = "DISABLE" ] && echo ' selected="selected"')>DISABLE</option>
   2.141 +</select></td>
   2.142 +</tr>
   2.143 +<tr>
   2.144 +<td>Internet address</td>
   2.145 +<td><input type="text" name="IP" value="$IP" /></td>
   2.146 +</tr>
   2.147 +<tr>
   2.148 +<td>Netmask</td>
   2.149 +<td><input type="text" name="NETMASK" value="$NETMASK" /></td>
   2.150 +</tr>
   2.151 +<tr>
   2.152 +<td>Gateway</td>
   2.153 +<td><input type="text" name="GATEWAY" value="$GATEWAY" /></td>
   2.154 +</tr>
   2.155 +<tr>
   2.156 +<td>DNS server(s)</td>
   2.157 +<td><input type="text" name="DNS_SERVER" value="$DNS_SERVER" /></td>
   2.158 +</tr>
   2.159 +</table>
   2.160 +EOT
   2.161 +}
   2.162 +
   2.163 +post_install()
   2.164 +{
   2.165 +	sed -i 's|local.sh|network.sh &|' $1/etc/rcS.conf
   2.166 +	chmod 4755 $1/bin/busybox
   2.167 +	DHCP="no"
   2.168 +	STATIC="yes"
   2.169 +	case "$MODE" in
   2.170 +	"")	return 1;;
   2.171 +	DISABLE)
   2.172 +		STATIC="no" ;;
   2.173 +	DHCP)	DHCP="yes"
   2.174 +		STATIC="no"
   2.175 +	esac
   2.176 +	sed -i	-e "s/^DNS_SERVER=.*/DNS_SERVER=\"$DNS_SERVER\"/" \
   2.177 +		-e "s/^INTERFACE=.*/INTERFACE=\"$INTERFACE\"/" \
   2.178 +		-e "s/^NETMASK=.*/NETMASK=\"$NETMASK\"/" \
   2.179 +		-e "s/^GATEWAY=.*/GATEWAY=\"$GATEWAY\"/" \
   2.180 +		-e "s/^STATIC=.*/STATIC=\"$STATIC\"/" \
   2.181 +		-e "s/^DHCP=.*/DHCP=\"$DHCP\"/" \
   2.182 +		-e "s/^IP=.*/IP=\"$IP\"/" $1/etc/network.conf
   2.183 +	[ -n "$HOSTNAME" ] && echo $HOSTNAME > $1/etc/hostname
   2.184 +}
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/busybox-net/stuff/0001-mdev-create-devices-from-sys-dev.patch	Fri Feb 28 16:03:43 2020 +0100
     3.3 @@ -0,0 +1,198 @@
     3.4 +From 20a3262cd756aadf8771969a4764cd3c571f0a3e Mon Sep 17 00:00:00 2001
     3.5 +From: Denys Vlasenko <vda.linux@googlemail.com>
     3.6 +Date: Wed, 7 Sep 2016 14:09:01 +0200
     3.7 +Subject: [PATCH] mdev: create devices from /sys/dev
     3.8 +
     3.9 +Currently some new devices that have a bus but no class will
    3.10 +be missed by mdev coldplug device creation after boot. This
    3.11 +happens because mdev recursively searches /sys/class which will
    3.12 +by definition only find class devices.
    3.13 +
    3.14 +Some important devices such as iio and gpiochip does not have
    3.15 +a class. But users will need them.
    3.16 +
    3.17 +This switches from using /sys/class as the place to look for
    3.18 +devices to create to using /sys/dev where all char and block
    3.19 +devices are listed.
    3.20 +
    3.21 +The subsystem lookup code that provide the G.subsystem
    3.22 +environment variable is changed from using the directory
    3.23 +name of the class device to instead dereference the
    3.24 +"subsystem" symlink for the device, and look at the last
    3.25 +element of the path of the symlink for the subsystem, which
    3.26 +will work with class devices and bus devices alike. (The new
    3.27 +bus-only devices only symlink to the /sys/bus/* hierarchy.)
    3.28 +
    3.29 +We delete the legacy kernel v2.6.2x /sys/block device path
    3.30 +code as part of this change. It's too old to be kept alive.
    3.31 +
    3.32 +Tested on kernel v4.6-rc2 with a bunch of devices, including
    3.33 +some IIO and gpiochip devices.
    3.34 +
    3.35 +With a print inserted before make_device() the log looks
    3.36 +like so:
    3.37 +
    3.38 +Create device from "/sys/dev/char/1:1", subsystem "mem"
    3.39 +Create device from "/sys/dev/char/1:2", subsystem "mem"
    3.40 +Create device from "/sys/dev/char/1:3", subsystem "mem"
    3.41 +Create device from "/sys/dev/char/1:5", subsystem "mem"
    3.42 +(...)
    3.43 +Create device from "/sys/dev/block/179:56", subsystem "block"
    3.44 +Create device from "/sys/dev/block/179:64", subsystem "block"
    3.45 +
    3.46 +function                                             old     new   delta
    3.47 +mdev_main                                           1388    1346     -42
    3.48 +dirAction                                            134      14    -120
    3.49 +------------------------------------------------------------------------------
    3.50 +(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-162)           Total: -162 bytes
    3.51 +
    3.52 +Cc: Isaac Dunham <ibid.ag@gmail.com>
    3.53 +Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    3.54 +Cc: Jonathan Cameron <jic23@cam.ac.uk>
    3.55 +Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    3.56 +Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
    3.57 +---
    3.58 + util-linux/mdev.c | 88 ++++++++++++++++++++++++++-----------------------------
    3.59 + 1 file changed, 41 insertions(+), 47 deletions(-)
    3.60 +
    3.61 +diff --git a/util-linux/mdev.c b/util-linux/mdev.c
    3.62 +index 37514eb..a59115d 100644
    3.63 +--- a/util-linux/mdev.c
    3.64 ++++ b/util-linux/mdev.c
    3.65 +@@ -543,8 +543,7 @@ static char *build_alias(char *alias, const char *device_name)
    3.66 + 
    3.67 + /* mknod in /dev based on a path like "/sys/block/hda/hda1"
    3.68 +  * NB1: path parameter needs to have SCRATCH_SIZE scratch bytes
    3.69 +- * after NUL, but we promise to not mangle (IOW: to restore NUL if needed)
    3.70 +- * path string.
    3.71 ++ * after NUL, but we promise to not mangle it (IOW: to restore NUL if needed).
    3.72 +  * NB2: "mdev -s" may call us many times, do not leak memory/fds!
    3.73 +  *
    3.74 +  * device_name = $DEVNAME (may be NULL)
    3.75 +@@ -810,41 +809,39 @@ static void make_device(char *device_name, char *path, int operation)
    3.76 + 	} /* for (;;) */
    3.77 + }
    3.78 + 
    3.79 +-/* File callback for /sys/ traversal */
    3.80 ++/* File callback for /sys/ traversal.
    3.81 ++ * We act only on "/sys/.../dev" (pseudo)file
    3.82 ++ */
    3.83 + static int FAST_FUNC fileAction(const char *fileName,
    3.84 + 		struct stat *statbuf UNUSED_PARAM,
    3.85 + 		void *userData,
    3.86 + 		int depth UNUSED_PARAM)
    3.87 + {
    3.88 + 	size_t len = strlen(fileName) - 4; /* can't underflow */
    3.89 +-	char *scratch = userData;
    3.90 +-
    3.91 +-	/* len check is for paranoid reasons */
    3.92 +-	if (strcmp(fileName + len, "/dev") != 0 || len >= PATH_MAX)
    3.93 +-		return FALSE;
    3.94 +-
    3.95 +-	strcpy(scratch, fileName);
    3.96 +-	scratch[len] = '\0';
    3.97 +-	make_device(/*DEVNAME:*/ NULL, scratch, OP_add);
    3.98 +-
    3.99 +-	return TRUE;
   3.100 +-}
   3.101 +-
   3.102 +-/* Directory callback for /sys/ traversal */
   3.103 +-static int FAST_FUNC dirAction(const char *fileName UNUSED_PARAM,
   3.104 +-		struct stat *statbuf UNUSED_PARAM,
   3.105 +-		void *userData UNUSED_PARAM,
   3.106 +-		int depth)
   3.107 +-{
   3.108 +-	/* Extract device subsystem -- the name of the directory
   3.109 +-	 * under /sys/class/ */
   3.110 +-	if (1 == depth) {
   3.111 ++	char *path = userData;	/* char array[PATH_MAX + SCRATCH_SIZE] */
   3.112 ++	char subsys[PATH_MAX];
   3.113 ++	int res;
   3.114 ++
   3.115 ++	/* Is it a ".../dev" file? (len check is for paranoid reasons) */
   3.116 ++	if (strcmp(fileName + len, "/dev") != 0 || len >= PATH_MAX - 32)
   3.117 ++		return FALSE; /* not .../dev */
   3.118 ++
   3.119 ++	strcpy(path, fileName);
   3.120 ++	path[len] = '\0';
   3.121 ++
   3.122 ++	/* Read ".../subsystem" symlink in the same directory where ".../dev" is */
   3.123 ++	strcpy(subsys, path);
   3.124 ++	strcpy(subsys + len, "/subsystem");
   3.125 ++	res = readlink(subsys, subsys, sizeof(subsys)-1);
   3.126 ++	if (res > 0) {
   3.127 ++		subsys[res] = '\0';
   3.128 + 		free(G.subsystem);
   3.129 + 		if (G.subsys_env) {
   3.130 + 			bb_unsetenv_and_free(G.subsys_env);
   3.131 + 			G.subsys_env = NULL;
   3.132 + 		}
   3.133 +-		G.subsystem = strrchr(fileName, '/');
   3.134 ++		/* Set G.subsystem and $SUBSYSTEM from symlink's last component */
   3.135 ++		G.subsystem = strrchr(subsys, '/');
   3.136 + 		if (G.subsystem) {
   3.137 + 			G.subsystem = xstrdup(G.subsystem + 1);
   3.138 + 			G.subsys_env = xasprintf("%s=%s", "SUBSYSTEM", G.subsystem);
   3.139 +@@ -852,6 +849,17 @@ static int FAST_FUNC dirAction(const char *fileName UNUSED_PARAM,
   3.140 + 		}
   3.141 + 	}
   3.142 + 
   3.143 ++	make_device(/*DEVNAME:*/ NULL, path, OP_add);
   3.144 ++
   3.145 ++	return TRUE;
   3.146 ++}
   3.147 ++
   3.148 ++/* Directory callback for /sys/ traversal */
   3.149 ++static int FAST_FUNC dirAction(const char *fileName UNUSED_PARAM,
   3.150 ++		struct stat *statbuf UNUSED_PARAM,
   3.151 ++		void *userData UNUSED_PARAM,
   3.152 ++		int depth)
   3.153 ++{
   3.154 + 	return (depth >= MAX_SYSFS_DEPTH ? SKIP : TRUE);
   3.155 + }
   3.156 + 
   3.157 +@@ -872,8 +880,9 @@ static void load_firmware(const char *firmware, const char *sysfs_path)
   3.158 + 	int firmware_fd, loading_fd;
   3.159 + 
   3.160 + 	/* check for /lib/firmware/$FIRMWARE */
   3.161 +-	xchdir("/lib/firmware");
   3.162 +-	firmware_fd = open(firmware, O_RDONLY); /* can fail */
   3.163 ++	firmware_fd = -1;
   3.164 ++	if (chdir("/lib/firmware") == 0)
   3.165 ++		firmware_fd = open(firmware, O_RDONLY); /* can fail */
   3.166 + 
   3.167 + 	/* check for /sys/$DEVPATH/loading ... give 30 seconds to appear */
   3.168 + 	xchdir(sysfs_path);
   3.169 +@@ -1065,25 +1074,10 @@ int mdev_main(int argc UNUSED_PARAM, char **argv)
   3.170 + 
   3.171 + 		putenv((char*)"ACTION=add");
   3.172 + 
   3.173 +-		/* ACTION_FOLLOWLINKS is needed since in newer kernels
   3.174 +-		 * /sys/block/loop* (for example) are symlinks to dirs,
   3.175 +-		 * not real directories.
   3.176 +-		 * (kernel's CONFIG_SYSFS_DEPRECATED makes them real dirs,
   3.177 +-		 * but we can't enforce that on users)
   3.178 +-		 */
   3.179 +-		if (access("/sys/class/block", F_OK) != 0) {
   3.180 +-			/* Scan obsolete /sys/block only if /sys/class/block
   3.181 +-			 * doesn't exist. Otherwise we'll have dupes.
   3.182 +-			 * Also, do not complain if it doesn't exist.
   3.183 +-			 * Some people configure kernel to have no blockdevs.
   3.184 +-			 */
   3.185 +-			recursive_action("/sys/block",
   3.186 +-				ACTION_RECURSE | ACTION_FOLLOWLINKS | ACTION_QUIET,
   3.187 +-				fileAction, dirAction, temp, 0);
   3.188 +-		}
   3.189 +-		recursive_action("/sys/class",
   3.190 +-			ACTION_RECURSE | ACTION_FOLLOWLINKS,
   3.191 +-			fileAction, dirAction, temp, 0);
   3.192 ++		/* Create all devices from /sys/dev hierarchy */
   3.193 ++		recursive_action("/sys/dev",
   3.194 ++				 ACTION_RECURSE | ACTION_FOLLOWLINKS,
   3.195 ++				 fileAction, dirAction, temp, 0);
   3.196 + 	} else {
   3.197 + 		char *fw;
   3.198 + 		char *seq;
   3.199 +-- 
   3.200 +2.9.2
   3.201 +
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/busybox-net/stuff/busybox-git-ash.u	Fri Feb 28 16:03:43 2020 +0100
     4.3 @@ -0,0 +1,17 @@
     4.4 +Some SliTaz scripts (cook) need that... 
     4.5 +--- busybox-git/shell/ash.c
     4.6 ++++ busybox-git/shell/ash.c
     4.7 +@@ -12632,7 +12632,13 @@
     4.8 + 	if (strchr(name, '/'))
     4.9 + 		return name;
    4.10 + 
    4.11 ++	/* IIRC standards do not say whether . is to be searched. Bash do it. */
    4.12 ++	if (ENABLE_ASH_BASH_COMPAT) {
    4.13 ++		fullname = name;
    4.14 ++		goto try_cur_dir;
    4.15 ++	}
    4.16 +	while ((fullname = path_advance(&path, name)) != NULL) {
    4.17 ++ try_cur_dir:
    4.18 + 		if ((stat(fullname, &statb) == 0) && S_ISREG(statb.st_mode)) {
    4.19 + 			/*
    4.20 + 			 * Don't bother freeing here, since it will
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/busybox-net/stuff/busybox-git-cmdline.u	Fri Feb 28 16:03:43 2020 +0100
     5.3 @@ -0,0 +1,37 @@
     5.4 +Display command line in usage output. Useful to debug scripts with variables.
     5.5 +--- busybox-git/libbb/appletlib.c
     5.6 ++++ busybox-git/libbb/appletlib.c
     5.7 +@@ -128,9 +128,16 @@
     5.8 + 
     5.9 + #endif /* FEATURE_COMPRESS_USAGE */
    5.10 + 
    5.11 +-
    5.12 ++static char **bb_argv;
    5.13 + void FAST_FUNC bb_show_usage(void)
    5.14 + {
    5.15 ++	full_write2_str("\nCommand line: ");
    5.16 ++	while (*bb_argv) {
    5.17 ++		full_write2_str(*bb_argv++);
    5.18 ++		full_write2_str(" ");
    5.19 ++	}
    5.20 ++	full_write2_str("\n\n");
    5.21 ++
    5.22 + 	if (ENABLE_SHOW_USAGE) {
    5.23 + #ifdef SINGLE_APPLET_STR
    5.24 + 		/* Imagine that this applet is "true". Dont suck in printf! */
    5.25 +@@ -780,6 +787,7 @@
    5.26 + #  endif
    5.27 + int busybox_main(int argc UNUSED_PARAM, char **argv)
    5.28 + {
    5.29 ++	bb_argv = argv;
    5.30 + 	if (!argv[1]) {
    5.31 + 		/* Called without arguments */
    5.32 + 		const char *a;
    5.33 +@@ -977,6 +985,7 @@
    5.34 + int main(int argc UNUSED_PARAM, char **argv)
    5.35 + #endif
    5.36 + {
    5.37 ++	bb_argv = argv;
    5.38 + #if 0
    5.39 + 	/* TODO: find a use for a block of memory between end of .bss
    5.40 + 	 * and end of page. For example, I'm getting "_end:0x812e698 2408 bytes"
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/busybox-net/stuff/busybox-git-cpio.u	Fri Feb 28 16:03:43 2020 +0100
     6.3 @@ -0,0 +1,12 @@
     6.4 +--- busybox-1.25/archival/cpio.c
     6.5 ++++ busybox-1.25/archival/cpio.c
     6.6 +@@ -244,6 +244,9 @@
     6.7 + 			if (!(S_ISLNK(st.st_mode) || S_ISREG(st.st_mode)))
     6.8 + 				st.st_size = 0; /* paranoia */
     6.9 + 
    6.10 ++			if (S_ISLNK(st.st_mode))
    6.11 ++				st.st_nlink = 1; /* like GNU cpio */
    6.12 ++
    6.13 + 			/* Store hardlinks for later processing, dont output them */
    6.14 + 			if (!S_ISDIR(st.st_mode) && st.st_nlink > 1) {
    6.15 + 				struct name_s *n;
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/busybox-net/stuff/busybox-git-fbvnc.u	Fri Feb 28 16:03:43 2020 +0100
     7.3 @@ -0,0 +1,684 @@
     7.4 +   text	   data	    bss	    dec	    hex	filename
     7.5 +   3179	      0	      0	   3179	    c6b	util-linux/fbvnc.o
     7.6 +--- /dev/null
     7.7 ++++ busybox/util-linux/fbvnc.c
     7.8 +@@ -0,0 +1,552 @@
     7.9 ++/* vi: set sw=4 ts=4: */
    7.10 ++/*
    7.11 ++ * A small linux framebuffer VNC viewer
    7.12 ++ *
    7.13 ++ * pascal.bellard@ads-lu.com
    7.14 ++ *
    7.15 ++ * Based on Ali Gholami Rudi's fbvnc.c
    7.16 ++ *   http://repo.or.cz/w/fbvnc.git
    7.17 ++ *
    7.18 ++ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
    7.19 ++ */
    7.20 ++
    7.21 ++//applet:IF_FBVNC(APPLET(fbvnc, BB_DIR_BIN, BB_SUID_DROP))
    7.22 ++
    7.23 ++//kbuild:lib-$(CONFIG_FBVNC) += fbvnc.o
    7.24 ++
    7.25 ++//config:config FBVNC
    7.26 ++//config:	bool "fbvnc"
    7.27 ++//config:	default n
    7.28 ++//config:	depends on PLATFORM_LINUX
    7.29 ++//config:	help
    7.30 ++//config:	  A linux framebuffer VNC viewer.
    7.31 ++
    7.32 ++//usage:#define fbvnc_trivial_usage
    7.33 ++//usage:	"[VNC_SERVER] [PORT]"
    7.34 ++//usage:#define fbvnc_full_usage "\n\n"
    7.35 ++//usage:     "A linux framebuffer VNC viewer."
    7.36 ++//usage:     "\nTo exit, press any mouse button and press ESC."
    7.37 ++
    7.38 ++#include "libbb.h"
    7.39 ++#include "vnc.h"
    7.40 ++#include "common_bufsiz.h"
    7.41 ++
    7.42 ++/* Stuff stolen from the kernel's fb.h */
    7.43 ++#define FB_ACTIVATE_ALL 64
    7.44 ++enum {
    7.45 ++	FBIOGET_VSCREENINFO = 0x4600,
    7.46 ++	FBIOPUT_VSCREENINFO = 0x4601,
    7.47 ++	FBIOGET_FSCREENINFO = 0x4602,
    7.48 ++	FBIOGETCMAP = 0x4604,
    7.49 ++	FBIOPUTCMAP = 0x4605
    7.50 ++};
    7.51 ++
    7.52 ++struct fb_bitfield {
    7.53 ++	uint32_t offset;                /* beginning of bitfield */
    7.54 ++	uint32_t length;                /* length of bitfield */
    7.55 ++	uint32_t msb_right;             /* !=0: Most significant bit is right */
    7.56 ++};
    7.57 ++struct fb_var_screeninfo {
    7.58 ++	uint32_t xres;                  /* visible resolution */
    7.59 ++	uint32_t yres;
    7.60 ++	uint32_t xres_virtual;          /* virtual resolution */
    7.61 ++	uint32_t yres_virtual;
    7.62 ++	uint32_t xoffset;               /* offset from virtual to visible */
    7.63 ++	uint32_t yoffset;               /* resolution */
    7.64 ++
    7.65 ++	uint32_t bits_per_pixel;
    7.66 ++	uint32_t grayscale;             /* !=0 Graylevels instead of colors */
    7.67 ++
    7.68 ++	struct fb_bitfield red;         /* bitfield in fb mem if true color, */
    7.69 ++	struct fb_bitfield green;       /* else only length is significant */
    7.70 ++	struct fb_bitfield blue;
    7.71 ++	struct fb_bitfield transp;      /* transparency */
    7.72 ++
    7.73 ++	uint32_t nonstd;                /* !=0 Non standard pixel format */
    7.74 ++
    7.75 ++	uint32_t activate;              /* see FB_ACTIVATE_x */
    7.76 ++
    7.77 ++	uint32_t height;                /* height of picture in mm */
    7.78 ++	uint32_t width;                 /* width of picture in mm */
    7.79 ++
    7.80 ++	uint32_t accel_flags;           /* acceleration flags (hints) */
    7.81 ++
    7.82 ++	/* Timing: All values in pixclocks, except pixclock (of course) */
    7.83 ++	uint32_t pixclock;              /* pixel clock in ps (pico seconds) */
    7.84 ++	uint32_t left_margin;           /* time from sync to picture */
    7.85 ++	uint32_t right_margin;          /* time from picture to sync */
    7.86 ++	uint32_t upper_margin;          /* time from sync to picture */
    7.87 ++	uint32_t lower_margin;
    7.88 ++	uint32_t hsync_len;             /* length of horizontal sync */
    7.89 ++	uint32_t vsync_len;             /* length of vertical sync */
    7.90 ++	uint32_t sync;                  /* see FB_SYNC_x */
    7.91 ++	uint32_t vmode;                 /* see FB_VMODE_x */
    7.92 ++	uint32_t reserved[6];           /* Reserved for future compatibility */
    7.93 ++};
    7.94 ++
    7.95 ++#define DEFAULTFBDEV  FB_0
    7.96 ++
    7.97 ++struct fb_fix_screeninfo {
    7.98 ++	char id[16];			/* identification string eg "TT Builtin" */
    7.99 ++	unsigned long smem_start;	/* Start of frame buffer mem */
   7.100 ++					/* (physical address) */
   7.101 ++	uint32_t smem_len;		/* Length of frame buffer mem */
   7.102 ++	uint32_t type;			/* see FB_TYPE_*		*/
   7.103 ++	uint32_t type_aux;		/* Interleave for interleaved Planes */
   7.104 ++	uint32_t visual;		/* see FB_VISUAL_*		*/ 
   7.105 ++	uint16_t xpanstep;		/* zero if no hardware panning  */
   7.106 ++	uint16_t ypanstep;		/* zero if no hardware panning  */
   7.107 ++	uint16_t ywrapstep;		/* zero if no hardware ywrap    */
   7.108 ++	uint32_t line_length;		/* length of a line in bytes    */
   7.109 ++	unsigned long mmio_start;	/* Start of Memory Mapped I/O   */
   7.110 ++					/* (physical address) */
   7.111 ++	uint32_t mmio_len;		/* Length of Memory Mapped I/O  */
   7.112 ++	uint32_t accel;			/* Indicate to driver which	*/
   7.113 ++					/*  specific chip/card we have	*/
   7.114 ++	uint16_t reserved[3];		/* Reserved for future compatibility */
   7.115 ++};
   7.116 ++
   7.117 ++struct fb_cmap {
   7.118 ++	uint32_t start;			/* First entry	*/
   7.119 ++	uint32_t len;			/* Number of entries */
   7.120 ++	uint16_t *red;			/* Red values	*/
   7.121 ++	uint16_t *green;
   7.122 ++	uint16_t *blue;
   7.123 ++	uint16_t *transp;			/* transparency, can be NULL */
   7.124 ++};
   7.125 ++
   7.126 ++#define FB_VISUAL_TRUECOLOR		2	/* True color	*/
   7.127 ++
   7.128 ++#define COLORLEVELS   (1 << 8)
   7.129 ++
   7.130 ++struct scroll_data {
   7.131 ++	int size;
   7.132 ++	int srv_size;
   7.133 ++	int offset;
   7.134 ++	int pos;
   7.135 ++};
   7.136 ++
   7.137 ++struct globals {
   7.138 ++	struct termios term_orig;
   7.139 ++	struct pollfd ufds[3];
   7.140 ++#define kbd_fd		ufds[0].fd
   7.141 ++#define vnc_fd		ufds[1].fd
   7.142 ++#define rat_fd		ufds[2].fd
   7.143 ++	struct scroll_data scroll[2];
   7.144 ++#define cols		scroll[0].size
   7.145 ++#define srv_cols	scroll[0].srv_size
   7.146 ++#define oc		scroll[0].offset
   7.147 ++#define mc		scroll[0].pos
   7.148 ++#define rows		scroll[1].size
   7.149 ++#define srv_rows	scroll[1].srv_size
   7.150 ++#define or		scroll[1].offset
   7.151 ++#define mr		scroll[1].pos
   7.152 ++	char rat_buttons;
   7.153 ++	int fb_fd;
   7.154 ++	void *fb_ptr;
   7.155 ++	int bpp;
   7.156 ++	int nr, ng, nb;
   7.157 ++	struct fb_var_screeninfo vinfo;
   7.158 ++	struct fb_fix_screeninfo finfo;
   7.159 ++	unsigned short red[COLORLEVELS], green[COLORLEVELS], blue[COLORLEVELS];
   7.160 ++};
   7.161 ++
   7.162 ++#define G (*ptr_to_globals)
   7.163 ++#define INIT_G() do { \
   7.164 ++	SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
   7.165 ++} while (0)
   7.166 ++
   7.167 ++static int fb_len(void)
   7.168 ++{
   7.169 ++	return G.finfo.line_length * G.vinfo.yres_virtual;
   7.170 ++}
   7.171 ++
   7.172 ++static void fb_ioctl_cmap(int fct, struct fb_cmap *cmap)
   7.173 ++{
   7.174 ++	if (G.finfo.visual == FB_VISUAL_TRUECOLOR)
   7.175 ++		return;
   7.176 ++	cmap->start = 0;
   7.177 ++	cmap->len = MAX(G.nr, MAX(G.ng, G.nb));
   7.178 ++	cmap->transp = NULL;
   7.179 ++	xioctl(G.fb_fd, fct, cmap);
   7.180 ++}
   7.181 ++
   7.182 ++static void fb_cmap_save(int save)
   7.183 ++{
   7.184 ++	struct fb_cmap cmap;
   7.185 ++	
   7.186 ++	cmap.red = G.red;
   7.187 ++	cmap.green = G.green;
   7.188 ++	cmap.blue = G.blue;
   7.189 ++	fb_ioctl_cmap(save ? FBIOGETCMAP : FBIOPUTCMAP, &cmap);
   7.190 ++}
   7.191 ++
   7.192 ++static void fb_build_cmap(unsigned short *color, int n)
   7.193 ++{
   7.194 ++	int i, inc = 65535 / (n - 1);
   7.195 ++	
   7.196 ++	for (i = 0; n--; i += inc)
   7.197 ++		*color++ = i;
   7.198 ++}
   7.199 ++
   7.200 ++static void fb_cmap(void)
   7.201 ++{
   7.202 ++	unsigned short red[COLORLEVELS], green[COLORLEVELS], blue[COLORLEVELS];
   7.203 ++	struct fb_cmap cmap;
   7.204 ++
   7.205 ++	fb_build_cmap(cmap.red = red,     G.nr);
   7.206 ++	fb_build_cmap(cmap.green = green, G.ng);
   7.207 ++	fb_build_cmap(cmap.blue = blue,   G.nb);
   7.208 ++	fb_ioctl_cmap(FBIOPUTCMAP, &cmap);
   7.209 ++}
   7.210 ++
   7.211 ++static void fb_init(void)
   7.212 ++{
   7.213 ++	G.fb_fd = xopen(DEFAULTFBDEV, O_RDWR);
   7.214 ++	xioctl(G.fb_fd, FBIOGET_VSCREENINFO, &G.vinfo);
   7.215 ++	xioctl(G.fb_fd, FBIOGET_FSCREENINFO, &G.finfo);
   7.216 ++	close_on_exec_on(G.fb_fd);
   7.217 ++	G.fb_ptr = mmap(NULL, fb_len(), PROT_READ | PROT_WRITE, MAP_SHARED, G.fb_fd, 0);
   7.218 ++	if (G.fb_ptr == MAP_FAILED)
   7.219 ++		bb_perror_msg_and_die("mmap");
   7.220 ++	G.bpp = (G.vinfo.bits_per_pixel + 7) >> 3;
   7.221 ++	G.nr = 1 << G.vinfo.red.length;
   7.222 ++	G.nb = 1 << G.vinfo.blue.length;
   7.223 ++	G.ng = 1 << G.vinfo.green.length;
   7.224 ++	fb_cmap_save(1);
   7.225 ++	fb_cmap();
   7.226 ++}
   7.227 ++
   7.228 ++static void fb_free(void)
   7.229 ++{
   7.230 ++	fb_cmap_save(0);
   7.231 ++	munmap(G.fb_ptr, fb_len());
   7.232 ++	close(G.fb_fd);
   7.233 ++}
   7.234 ++
   7.235 ++#define fb_rows vinfo.yres
   7.236 ++#define fb_cols vinfo.xres
   7.237 ++
   7.238 ++static void fb_set(int r, int c, void *mem, int len)
   7.239 ++{
   7.240 ++	memcpy(G.fb_ptr + (r + G.vinfo.yoffset) * G.finfo.line_length + 
   7.241 ++		(c + G.vinfo.xoffset) * G.bpp, mem, len * G.bpp);
   7.242 ++}
   7.243 ++
   7.244 ++#define line_buffer	bb_common_bufsiz1
   7.245 ++#define MAXPIX		(COMMON_BUFSIZE/sizeof(uint32_t))
   7.246 ++
   7.247 ++static void skip(int len)
   7.248 ++{
   7.249 ++	int n;
   7.250 ++	while (len > 0 && (n = read(G.vnc_fd, line_buffer, 
   7.251 ++				    MIN(len, COMMON_BUFSIZE))) > 0)
   7.252 ++		len -= n;
   7.253 ++}
   7.254 ++
   7.255 ++static void vnc_init(void)
   7.256 ++{
   7.257 ++	struct vnc_client_init clientinit;
   7.258 ++	struct vnc_server_init serverinit;
   7.259 ++	struct vnc_client_pixelfmt pixfmt_cmd;
   7.260 ++	int connstat = VNC_CONN_FAILED;
   7.261 ++
   7.262 ++	write(G.vnc_fd, "RFB 003.003\n", 12);
   7.263 ++	skip(12);
   7.264 ++
   7.265 ++	xread(G.vnc_fd, &connstat, sizeof(connstat));
   7.266 ++
   7.267 ++	if (ntohl(connstat) != VNC_CONN_NOAUTH)
   7.268 ++		bb_perror_msg_and_die("vnc auth");
   7.269 ++
   7.270 ++	clientinit.shared = 1;
   7.271 ++	write(G.vnc_fd, &clientinit, sizeof(clientinit));
   7.272 ++	read(G.vnc_fd, &serverinit, sizeof(serverinit));
   7.273 ++
   7.274 ++	fb_init();
   7.275 ++	G.srv_cols = ntohs(serverinit.w);
   7.276 ++	G.srv_rows = ntohs(serverinit.h);
   7.277 ++	G.cols = MIN(G.srv_cols, G.fb_cols);
   7.278 ++	G.rows = MIN(G.srv_rows, G.fb_rows);
   7.279 ++	G.mr = G.rows / 2;
   7.280 ++	G.mc = G.cols / 2;
   7.281 ++
   7.282 ++	skip(ntohl(serverinit.len));
   7.283 ++	pixfmt_cmd.type = VNC_CLIENT_PIXFMT;
   7.284 ++	pixfmt_cmd.format.bigendian = 0;
   7.285 ++	pixfmt_cmd.format.truecolor = 1;
   7.286 ++	pixfmt_cmd.format.bpp =
   7.287 ++	pixfmt_cmd.format.depth = G.bpp << 3;
   7.288 ++	pixfmt_cmd.format.rmax = htons(G.nr - 1);
   7.289 ++	pixfmt_cmd.format.gmax = htons(G.ng - 1);
   7.290 ++	pixfmt_cmd.format.bmax = htons(G.nb - 1);
   7.291 ++	pixfmt_cmd.format.rshl = G.vinfo.red.offset;
   7.292 ++	pixfmt_cmd.format.gshl = G.vinfo.green.offset;
   7.293 ++	pixfmt_cmd.format.bshl = G.vinfo.blue.offset;
   7.294 ++	write(G.vnc_fd, &pixfmt_cmd, sizeof(pixfmt_cmd));
   7.295 ++}
   7.296 ++
   7.297 ++static void vnc_refresh(int inc)
   7.298 ++{
   7.299 ++	struct vnc_client_fbup fbup_req;
   7.300 ++	fbup_req.type = VNC_CLIENT_FBUP;
   7.301 ++	fbup_req.inc = inc;
   7.302 ++	fbup_req.x = htons(G.oc);
   7.303 ++	fbup_req.y = htons(G.or);
   7.304 ++	fbup_req.w = htons(G.oc + G.cols);
   7.305 ++	fbup_req.h = htons(G.or + G.rows);
   7.306 ++	write(G.vnc_fd, &fbup_req, sizeof(fbup_req));
   7.307 ++}
   7.308 ++
   7.309 ++static void cleanup(void)
   7.310 ++{
   7.311 ++#define RESETSTR "\x1b[?25h\x1b[2J\x1b[H"
   7.312 ++	fb_free();
   7.313 ++	tcsetattr_stdin_TCSANOW(&G.term_orig);
   7.314 ++	write(STDOUT_FILENO, RESETSTR, sizeof(RESETSTR));
   7.315 ++	if (ENABLE_FEATURE_CLEAN_UP) {
   7.316 ++		close(G.vnc_fd);
   7.317 ++		close(G.rat_fd);
   7.318 ++	}
   7.319 ++}
   7.320 ++
   7.321 ++static void killed(int code) NORETURN;
   7.322 ++static void killed(int code)
   7.323 ++{
   7.324 ++	cleanup();
   7.325 ++	if (code > EXIT_FAILURE)
   7.326 ++		kill_myself_with_sig(code);
   7.327 ++	exit(code);
   7.328 ++}
   7.329 ++
   7.330 ++static void vnc_event(void)
   7.331 ++{
   7.332 ++	struct vnc_rect uprect;
   7.333 ++	union {
   7.334 ++		struct vnc_server_fbup fbup;
   7.335 ++		struct vnc_server_cuttext cuttext;
   7.336 ++		struct vnc_server_colormap colormap;
   7.337 ++	} msg;
   7.338 ++	int n;
   7.339 ++
   7.340 ++	switch (xread_char(G.vnc_fd)) {
   7.341 ++	case VNC_SERVER_FBUP:
   7.342 ++		xread(G.vnc_fd, &msg.fbup.pad, sizeof(msg.fbup) - 1);
   7.343 ++		n = ntohs(msg.fbup.n);
   7.344 ++		while (n--) {
   7.345 ++			int x, y, w, h, l, i;
   7.346 ++			xread(G.vnc_fd, &uprect, sizeof(uprect));
   7.347 ++			if (uprect.enc != 0)
   7.348 ++				killed(1);
   7.349 ++			i = 0;
   7.350 ++			x = ntohs(uprect.x) - G.oc;
   7.351 ++			y = ntohs(uprect.y) - G.or;
   7.352 ++			w = ntohs(uprect.w);
   7.353 ++			h = ntohs(uprect.h);
   7.354 ++			l = MIN(w, G.cols - x);
   7.355 ++			if (x < 0) {
   7.356 ++				l = MIN(w + x, G.cols);
   7.357 ++				i = -x;
   7.358 ++				x = 0;
   7.359 ++			}
   7.360 ++			for (; h--; y++) {
   7.361 ++				int a, b, c = i;
   7.362 ++				for (a = b = 0; w > b; b += a, c = 0) {
   7.363 ++					int len;
   7.364 ++					a = MIN(w - b, MAXPIX);
   7.365 ++					len = MIN(a, l - b) - c;
   7.366 ++					xread(G.vnc_fd, line_buffer, a * G.bpp);
   7.367 ++					if (y >= 0 && y < G.rows && len > 0)
   7.368 ++						fb_set(y, x + b, 
   7.369 ++						       line_buffer + (c * G.bpp),
   7.370 ++						       len);
   7.371 ++				}
   7.372 ++			}
   7.373 ++		}
   7.374 ++		break;
   7.375 ++	case VNC_SERVER_BELL:
   7.376 ++		break;
   7.377 ++	case VNC_SERVER_CUTTEXT:
   7.378 ++		xread(G.vnc_fd, &msg.cuttext.pad1, sizeof(msg.cuttext) - 1);
   7.379 ++		skip(ntohl(msg.cuttext.len));
   7.380 ++		break;
   7.381 ++	case VNC_SERVER_COLORMAP:
   7.382 ++		xread(G.vnc_fd, &msg.colormap.pad, sizeof(msg.colormap) - 1);
   7.383 ++		skip(ntohs(msg.colormap.n) * 3 * 2);
   7.384 ++		break;
   7.385 ++	default:
   7.386 ++		killed(1);
   7.387 ++	}
   7.388 ++}
   7.389 ++
   7.390 ++static int update_scroll(struct scroll_data *s)
   7.391 ++{
   7.392 ++	int shift = s->size / 5;
   7.393 ++	int max = s->srv_size - s->size;
   7.394 ++	int status = 0;
   7.395 ++	if (s->pos < s->offset) {
   7.396 ++		if ((s->offset -= shift) < 0)
   7.397 ++			s->offset = 0;
   7.398 ++	}
   7.399 ++	else if (s->pos >= s->offset + s->size && s->offset < max) {
   7.400 ++		if ((s->offset += shift) > max)
   7.401 ++			s->offset = max;
   7.402 ++	}
   7.403 ++	else status++;
   7.404 ++	s->pos = MAX(s->offset, MIN(s->offset + s->size - 1, s->pos));
   7.405 ++	return status;
   7.406 ++}
   7.407 ++
   7.408 ++static void rat_event(void)
   7.409 ++{
   7.410 ++	static u8 btn2vnc[8] = {
   7.411 ++		0, VNC_BUTTON1_MASK, VNC_BUTTON3_MASK, 
   7.412 ++		VNC_BUTTON1_MASK + VNC_BUTTON3_MASK, VNC_BUTTON2_MASK, 
   7.413 ++		VNC_BUTTON1_MASK + VNC_BUTTON2_MASK,
   7.414 ++		VNC_BUTTON2_MASK + VNC_BUTTON3_MASK,
   7.415 ++		VNC_BUTTON1_MASK + VNC_BUTTON2_MASK + VNC_BUTTON3_MASK
   7.416 ++	};
   7.417 ++	signed char ie[4];
   7.418 ++	struct vnc_client_ratevent me = {VNC_CLIENT_RATEVENT};
   7.419 ++	int refresh;
   7.420 ++
   7.421 ++	xread(G.rat_fd, &ie, sizeof(ie));
   7.422 ++	G.mc += ie[1];
   7.423 ++	G.mr -= ie[2];
   7.424 ++	refresh = 2 - update_scroll(&G.scroll[0]) - update_scroll(&G.scroll[1]);
   7.425 ++	me.mask = btn2vnc[(int)(G.rat_buttons = ie[0] & 7)];
   7.426 ++	if (ie[3] > 0)		/* wheel up */
   7.427 ++		me.mask |= VNC_BUTTON4_MASK;
   7.428 ++	if (ie[3] < 0)		/* wheel down */
   7.429 ++		me.mask |= VNC_BUTTON5_MASK;
   7.430 ++	me.y = htons(G.mr);
   7.431 ++	me.x = htons(G.mc);
   7.432 ++	write(G.vnc_fd, &me, sizeof(me));
   7.433 ++	if (refresh)
   7.434 ++		vnc_refresh(0);
   7.435 ++}
   7.436 ++
   7.437 ++static int press(int key, int down)
   7.438 ++{
   7.439 ++	struct vnc_client_keyevent ke = {VNC_CLIENT_KEYEVENT};
   7.440 ++	ke.key = htonl(key);
   7.441 ++	ke.down = down;
   7.442 ++	return write(G.vnc_fd, &ke, sizeof(ke));
   7.443 ++}
   7.444 ++
   7.445 ++static void kbd_event(void)
   7.446 ++{
   7.447 ++	char key[1024];
   7.448 ++	int i, nr;
   7.449 ++
   7.450 ++	if ((nr = read(0, key, sizeof(key))) <= 0 )
   7.451 ++		killed(1);
   7.452 ++	for (i = 0; i < nr; i++) {
   7.453 ++		int j, k;
   7.454 ++		int mod[4];
   7.455 ++		int nmod;
   7.456 ++
   7.457 ++		k = nmod = 0;
   7.458 ++		switch (key[i]) {
   7.459 ++		case 0x08:
   7.460 ++		case 0x7f:
   7.461 ++			k = 0xff08;
   7.462 ++			break;
   7.463 ++		case 0x1b:
   7.464 ++			if (G.rat_buttons)
   7.465 ++				killed(0);
   7.466 ++			if (i + 2 < nr && key[i + 1] == '[') {
   7.467 ++				static const char arr2vnc[] = "HDACB";
   7.468 ++				char *p = strchr(arr2vnc, key[i + 2]);
   7.469 ++
   7.470 ++				if (p) {
   7.471 ++					k = p - arr2vnc + 0xff50;
   7.472 ++					i += 2;
   7.473 ++					break;
   7.474 ++				}
   7.475 ++			}
   7.476 ++			if (i + 1 < nr) {
   7.477 ++				mod[nmod++] = 0xffe9;
   7.478 ++				i++;
   7.479 ++			}
   7.480 ++		case 0x09:
   7.481 ++		case 0x0d:
   7.482 ++			k = 0xff00;
   7.483 ++			goto getkey;
   7.484 ++		case 0x0c:	/* Mouse button + ^L: redraw */
   7.485 ++			if (G.rat_buttons) {
   7.486 ++				vnc_refresh(0);
   7.487 ++				continue;
   7.488 ++			}
   7.489 ++		default:
   7.490 ++		getkey:
   7.491 ++			k += (unsigned char) key[i];
   7.492 ++		}
   7.493 ++		if ((k >= 'A' && k <= 'Z') || strchr(":\"<>?{}|+_()*&^%$#@!~", k))
   7.494 ++			mod[nmod++] = 0xffe1;
   7.495 ++		if (k >= 1 && k <= 26) {
   7.496 ++			k += 'a' - 1;
   7.497 ++			mod[nmod++] = 0xffe3;
   7.498 ++		}
   7.499 ++		mod[nmod] = k;
   7.500 ++		for (j = 0; j <= nmod; j++)
   7.501 ++			press(mod[j], 1);
   7.502 ++		press(k, 0);
   7.503 ++		for (j = 0; j < nmod; j++)
   7.504 ++			press(mod[j], 0);
   7.505 ++	}
   7.506 ++}
   7.507 ++
   7.508 ++static void term_setup(void)
   7.509 ++{
   7.510 ++	struct termios termios;
   7.511 ++#define INITSTR	"\x1b[?25l\x1b[2J\x1b[H** fbvnc **"
   7.512 ++
   7.513 ++	write(STDOUT_FILENO, INITSTR, sizeof(INITSTR));
   7.514 ++	tcgetattr (STDIN_FILENO, &termios);
   7.515 ++	G.term_orig = termios;
   7.516 ++	cfmakeraw(&termios);
   7.517 ++	tcsetattr_stdin_TCSANOW(&termios);
   7.518 ++}
   7.519 ++
   7.520 ++int fbvnc_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
   7.521 ++int fbvnc_main(int argc, char **argv)
   7.522 ++{
   7.523 ++	char *host = (char *) "127.0.0.1";
   7.524 ++	int port, pending = 0;
   7.525 ++	
   7.526 ++	INIT_G();
   7.527 ++	if (argc >= 2)
   7.528 ++		host = argv[1];
   7.529 ++	port = bb_lookup_port((argc >= 3) ?  argv[2] : "vnc", "tcp", 5900);
   7.530 ++	G.vnc_fd = create_and_connect_stream_or_die(host, port);
   7.531 ++	vnc_init();
   7.532 ++	G.rat_fd = open("/dev/input/mice", O_RDWR);
   7.533 ++	write(G.rat_fd, "\xf3\xc8\xf3\x64\xf3\x50", 6);	/* for using mouse wheel */
   7.534 ++	read(G.rat_fd, line_buffer, 1);
   7.535 ++	term_setup();
   7.536 ++	atexit(cleanup);
   7.537 ++	bb_signals(BB_FATAL_SIGS, killed);
   7.538 ++
   7.539 ++	G.ufds[0].events =
   7.540 ++	G.ufds[1].events =
   7.541 ++	G.ufds[2].events = POLLIN;
   7.542 ++	vnc_refresh(0);
   7.543 ++	while (1) {
   7.544 ++		int status = poll(G.ufds, 3, 500);
   7.545 ++		if (status == -1 && errno != EINTR)
   7.546 ++			killed(1);
   7.547 ++		if (!status)
   7.548 ++			continue;
   7.549 ++		if (G.ufds[0].revents & POLLIN)
   7.550 ++			kbd_event();
   7.551 ++		if (G.ufds[1].revents & POLLIN) {
   7.552 ++			vnc_event();
   7.553 ++			pending = 0;
   7.554 ++		}
   7.555 ++		if (G.ufds[2].revents & POLLIN)
   7.556 ++			rat_event();
   7.557 ++		if (!pending++)
   7.558 ++			vnc_refresh(1);
   7.559 ++	}
   7.560 ++}
   7.561 +--- /dev/null
   7.562 ++++ busybox/util-linux/vnc.h
   7.563 +@@ -0,0 +1,124 @@
   7.564 ++#define VNC_CONN_FAILED		0
   7.565 ++#define VNC_CONN_NOAUTH		1
   7.566 ++#define VNC_CONN_AUTH		2
   7.567 ++
   7.568 ++#define VNC_AUTH_OK		0
   7.569 ++#define VNC_AUTH_FAILED		1
   7.570 ++#define VNC_AUTH_TOOMANY	2
   7.571 ++
   7.572 ++#define VNC_SERVER_FBUP		0
   7.573 ++#define VNC_SERVER_COLORMAP	1
   7.574 ++#define VNC_SERVER_BELL		2
   7.575 ++#define VNC_SERVER_CUTTEXT	3
   7.576 ++
   7.577 ++#define VNC_CLIENT_PIXFMT	0
   7.578 ++#define VNC_CLIENT_COLORMAP	1
   7.579 ++#define VNC_CLIENT_SETENC	2
   7.580 ++#define VNC_CLIENT_FBUP		3
   7.581 ++#define VNC_CLIENT_KEYEVENT	4
   7.582 ++#define VNC_CLIENT_RATEVENT	5
   7.583 ++#define VNC_CLIENT_CUTTEXT	6
   7.584 ++
   7.585 ++#define VNC_ENC_RAW		0
   7.586 ++#define VNC_ENC_COPYRECT	1
   7.587 ++#define VNC_ENC_RRE		2
   7.588 ++#define VNC_ENC_CORRE		4
   7.589 ++#define VNC_ENC_HEXTILE		5
   7.590 ++
   7.591 ++#define VNC_BUTTON1_MASK	0x01
   7.592 ++#define VNC_BUTTON2_MASK	0x02
   7.593 ++#define VNC_BUTTON3_MASK	0x04
   7.594 ++#define VNC_BUTTON4_MASK	0x10
   7.595 ++#define VNC_BUTTON5_MASK	0x08
   7.596 ++
   7.597 ++typedef unsigned char u8;
   7.598 ++typedef unsigned short u16;
   7.599 ++typedef unsigned int u32;
   7.600 ++
   7.601 ++struct vnc_pixelfmt {
   7.602 ++	u8 bpp;
   7.603 ++	u8 depth;
   7.604 ++	u8 bigendian;
   7.605 ++	u8 truecolor;
   7.606 ++	u16 rmax;
   7.607 ++	u16 gmax;
   7.608 ++	u16 bmax;
   7.609 ++	u8 rshl;
   7.610 ++	u8 gshl;
   7.611 ++	u8 bshl;
   7.612 ++
   7.613 ++	u8 pad1;
   7.614 ++	u16 pad2;
   7.615 ++};
   7.616 ++
   7.617 ++struct vnc_client_init {
   7.618 ++	u8 shared;
   7.619 ++};
   7.620 ++
   7.621 ++struct vnc_server_init {
   7.622 ++    u16 w;
   7.623 ++    u16 h;
   7.624 ++    struct vnc_pixelfmt fmt;
   7.625 ++    u32 len;
   7.626 ++    /* char name[len]; */
   7.627 ++};
   7.628 ++
   7.629 ++struct vnc_rect {
   7.630 ++	u16 x, y;
   7.631 ++	u16 w, h;
   7.632 ++	u32 enc;
   7.633 ++	/* rect bytes */
   7.634 ++};
   7.635 ++
   7.636 ++struct vnc_server_fbup {
   7.637 ++    u8 type;
   7.638 ++    u8 pad;
   7.639 ++    u16 n;
   7.640 ++    /* struct vnc_rect rects[n]; */
   7.641 ++};
   7.642 ++
   7.643 ++struct vnc_server_cuttext {
   7.644 ++	u8 type;
   7.645 ++	u8 pad1;
   7.646 ++	u16 pad2;
   7.647 ++	u32 len;
   7.648 ++	/* char text[length] */
   7.649 ++};
   7.650 ++
   7.651 ++struct vnc_server_colormap {
   7.652 ++	u8 type;
   7.653 ++	u8 pad;
   7.654 ++	u16 first;
   7.655 ++	u16 n;
   7.656 ++	/* u8 colors[n * 3 * 2]; */
   7.657 ++};
   7.658 ++
   7.659 ++struct vnc_client_pixelfmt {
   7.660 ++	u8 type;
   7.661 ++	u8 pad1;
   7.662 ++	u16 pad2;
   7.663 ++	struct vnc_pixelfmt format;
   7.664 ++};
   7.665 ++
   7.666 ++struct vnc_client_fbup {
   7.667 ++	u8 type;
   7.668 ++	u8 inc;
   7.669 ++	u16 x;
   7.670 ++	u16 y;
   7.671 ++	u16 w;
   7.672 ++	u16 h;
   7.673 ++};
   7.674 ++
   7.675 ++struct vnc_client_keyevent {
   7.676 ++	u8 type;
   7.677 ++	u8 down;
   7.678 ++	u16 pad;
   7.679 ++	u32 key;
   7.680 ++};
   7.681 ++
   7.682 ++struct vnc_client_ratevent {
   7.683 ++	u8 type;
   7.684 ++	u8 mask;
   7.685 ++	u16 x;
   7.686 ++	u16 y;
   7.687 ++};
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/busybox-net/stuff/busybox-git-ris.u	Fri Feb 28 16:03:43 2020 +0100
     8.3 @@ -0,0 +1,90 @@
     8.4 +Add support for the Windows Remote Installation Service
     8.5 +--- busybox-git/networking/tftp.c
     8.6 ++++ busybox-git/networking/tftp.c
     8.7 +@@ -44,6 +44,15 @@
     8.8 + //config:comment "Common options for tftp/tftpd"
     8.9 + //config:	depends on TFTP || TFTPD
    8.10 + //config:
    8.11 ++//config:config FEATURE_TFTPD_RIS
    8.12 ++//config:	bool "Enable \"RIS\" support"
    8.13 ++//config:	default y
    8.14 ++//config:	depends on TFTPD
    8.15 ++//config:	help
    8.16 ++//config:	  Add support for the Windows Remote Installation Service. This allows
    8.17 ++//config:	  a client to get files starting with \ without respecting case.
    8.18 ++//config:	  Each \ will be replaced by a /.
    8.19 ++//config:
    8.20 + //config:config FEATURE_TFTP_GET
    8.21 + //config:	bool "Enable 'tftp get' and/or tftpd upload code"
    8.22 + //config:	default y
    8.23 +@@ -743,6 +752,59 @@
    8.24 + #undef remote_file
    8.25 + }
    8.26 + 
    8.27 ++#if ENABLE_FEATURE_TFTPD_RIS
    8.28 ++#include <dirent.h>
    8.29 ++
    8.30 ++static int lookup_entry(const char *search, char *unixpath);
    8.31 ++static void unixfilename(char *filename);
    8.32 ++
    8.33 ++// lookup search and concat real filename to unixpath
    8.34 ++static int lookup_entry(const char *search, char *unixpath)
    8.35 ++{
    8.36 ++ 	int status = 0;
    8.37 ++	DIR *dirp = opendir(unixpath[0] ? unixpath : ".");
    8.38 ++ 
    8.39 ++ 	if (dirp != NULL) {
    8.40 ++		struct dirent *entry;
    8.41 ++
    8.42 ++		while ((entry = readdir(dirp))) {
    8.43 ++			if (!strcasecmp(entry->d_name, search)) {
    8.44 ++				if (unixpath[0]) strcat(unixpath, "/");
    8.45 ++				strcat(unixpath, entry->d_name);
    8.46 ++				status++;
    8.47 ++				break;
    8.48 ++			}
    8.49 ++		}
    8.50 ++		closedir(dirp);
    8.51 ++ 	}
    8.52 ++	return status;
    8.53 ++}
    8.54 ++
    8.55 ++// update filename with real file path found
    8.56 ++static void unixfilename(char *filename)
    8.57 ++{
    8.58 ++	char unixpath[PATH_MAX];
    8.59 ++	char *s = unixpath + 1;
    8.60 ++	char *check = filename + 1;
    8.61 ++	int len;
    8.62 ++
    8.63 ++	for (unixpath[0] = 0; *check; len++, s += len, check += len) {
    8.64 ++		char *seek = strchr(check, '\\');
    8.65 ++
    8.66 ++		if (!seek) { // basename of filename
    8.67 ++			if (lookup_entry(check, unixpath))
    8.68 ++				strcpy(filename, unixpath); // found
    8.69 ++			break;
    8.70 ++		}
    8.71 ++		len = seek - check;
    8.72 ++		memcpy(s, check, len);
    8.73 ++		s[len] = '\0';
    8.74 ++		if (!lookup_entry(s, unixpath))
    8.75 ++			break; // path mismatch
    8.76 ++	}
    8.77 ++}
    8.78 ++#endif
    8.79 ++
    8.80 + #if ENABLE_TFTP
    8.81 + 
    8.82 + int tftp_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
    8.83 +@@ -892,6 +954,10 @@
    8.84 + 	G.block_buf_tail[0] = '\0';
    8.85 + 
    8.86 + 	local_file = G.block_buf + 2;
    8.87 ++#if ENABLE_FEATURE_TFTPD_RIS
    8.88 ++	if (local_file[0] == '\\')
    8.89 ++		unixfilename(local_file);
    8.90 ++#endif
    8.91 + 	if (local_file[0] == '.' || strstr(local_file, "/.")) {
    8.92 + 		error_msg = "dot in file name";
    8.93 + 		goto err;
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/busybox-net/stuff/busybox-git-scriptreplay.u	Fri Feb 28 16:03:43 2020 +0100
     9.3 @@ -0,0 +1,56 @@
     9.4 +--- busybox-git/util-linux/scriptreplay.c
     9.5 ++++ busybox-git/util-linux/scriptreplay.c
     9.6 +@@ -17,10 +17,20 @@
     9.7 + 
     9.8 + //kbuild:lib-$(CONFIG_SCRIPTREPLAY) += scriptreplay.o
     9.9 + 
    9.10 ++//config:config SCRIPTREPLAY_HOTKEYS
    9.11 ++//config:	bool "speed control hotkeys"
    9.12 ++//config:	default n
    9.13 ++//config:	depends on SCRIPTREPLAY
    9.14 ++//config:	help
    9.15 ++//config:	  Tune replay speed with + - = space return hotkeys.
    9.16 ++
    9.17 + //usage:#define scriptreplay_trivial_usage
    9.18 + //usage:       "TIMINGFILE [TYPESCRIPT [DIVISOR]]"
    9.19 + //usage:#define scriptreplay_full_usage "\n\n"
    9.20 + //usage:       "Play back typescripts, using timing information"
    9.21 ++//usage:	IF_SCRIPTREPLAY_HOTKEYS(
    9.22 ++//usage:       " and + - = space return hotkeys"
    9.23 ++//usage:	)
    9.24 + 
    9.25 + #include "libbb.h"
    9.26 + 
    9.27 +@@ -30,6 +40,10 @@
    9.28 + 	const char *script = "typescript";
    9.29 + 	double delay, factor = 1000000.0;
    9.30 + 	int fd;
    9.31 ++#if ENABLE_SCRIPTREPLAY_HOTKEYS
    9.32 ++	int timeout = -1;
    9.33 ++	char buffer[KEYCODE_BUFFER_SIZE];
    9.34 ++#endif
    9.35 + 	unsigned long count;
    9.36 + 	FILE *tfp;
    9.37 + 
    9.38 +@@ -47,6 +61,21 @@
    9.39 + 	while (fscanf(tfp, "%lf %lu\n", &delay, &count) == 2) {
    9.40 + 		usleep(delay * factor);
    9.41 + 		bb_copyfd_exact_size(fd, STDOUT_FILENO, count);
    9.42 ++#if ENABLE_SCRIPTREPLAY_HOTKEYS
    9.43 ++		switch (read_key(0, buffer, timeout)) {
    9.44 ++		case ' ':
    9.45 ++			timeout = INT_MAX;
    9.46 ++			break;
    9.47 ++		case '=':
    9.48 ++			factor = 1000000.0/2;
    9.49 ++		case '-':
    9.50 ++			factor *= 4;
    9.51 ++		case '+':
    9.52 ++			factor /= 2;
    9.53 ++		default :
    9.54 ++			timeout = -1;
    9.55 ++		}
    9.56 ++#endif
    9.57 + 	}
    9.58 + 	if (ENABLE_FEATURE_CLEAN_UP) {
    9.59 + 		close(fd);
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/busybox-net/stuff/busybox-git-stat.u	Fri Feb 28 16:03:43 2020 +0100
    10.3 @@ -0,0 +1,76 @@
    10.4 +Add non standard stat -m support to display file block list
    10.5 +Useful to patch read-only filesystems such as ISO9660, for defragmentation
    10.6 +tools or boot loaders
    10.7 +--- busybox-git/coreutils/stat.c
    10.8 ++++ busybox-git/coreutils/stat.c
    10.9 +@@ -54,6 +54,7 @@
   10.10 + //usage:	)
   10.11 + //usage:     "\n	-L	Follow links"
   10.12 + //usage:     "\n	-t	Terse display"
   10.13 ++//usage:     "\n	-m	Display block list"
   10.14 + //usage:	IF_SELINUX(
   10.15 + //usage:     "\n	-Z	Print security context"
   10.16 + //usage:	)
   10.17 +@@ -106,13 +107,15 @@
   10.18 + //usage:	)
   10.19 + 
   10.20 + #include "libbb.h"
   10.21 ++#include <linux/fs.h>
   10.22 + #include "common_bufsiz.h"
   10.23 + 
   10.24 + enum {
   10.25 + 	OPT_TERSE       = (1 << 0),
   10.26 + 	OPT_DEREFERENCE = (1 << 1),
   10.27 +-	OPT_FILESYS     = (1 << 2) * ENABLE_FEATURE_STAT_FILESYSTEM,
   10.28 +-	OPT_SELINUX     = (1 << (2+ENABLE_FEATURE_STAT_FILESYSTEM)) * ENABLE_SELINUX,
   10.29 ++	OPT_MAP         = (1 << 2),
   10.30 ++	OPT_FILESYS     = (1 << 3) * ENABLE_FEATURE_STAT_FILESYSTEM,
   10.31 ++	OPT_SELINUX     = (1 << (3+ENABLE_FEATURE_STAT_FILESYSTEM)) * ENABLE_SELINUX,
   10.32 + };
   10.33 + 
   10.34 + #if ENABLE_FEATURE_STAT_FORMAT
   10.35 +@@ -463,6 +466,25 @@
   10.36 + }
   10.37 + #endif  /* FEATURE_STAT_FORMAT */
   10.38 + 
   10.39 ++#if !ENABLE_FEATURE_STAT_FORMAT
   10.40 ++#define do_mapfile(filename, format) do_mapfile(filename)
   10.41 ++#endif
   10.42 ++static bool do_mapfile(const char *filename, const char *format)
   10.43 ++{
   10.44 ++	int i = 0;
   10.45 ++	int fd = xopen(filename, O_RDONLY);
   10.46 ++
   10.47 ++#if ENABLE_FEATURE_STAT_FORMAT
   10.48 ++	(void) format;
   10.49 ++#endif
   10.50 ++	while (1) {
   10.51 ++		int blk = i++;
   10.52 ++		if (ioctl(fd,FIBMAP,&blk) < 0 || blk == 0) break;
   10.53 ++		printf("%u\n",blk);
   10.54 ++	}	
   10.55 ++	return 1;
   10.56 ++}
   10.57 ++
   10.58 + #if ENABLE_FEATURE_STAT_FILESYSTEM
   10.59 + /* Stat the file system and print what we find.  */
   10.60 + #if !ENABLE_FEATURE_STAT_FORMAT
   10.61 +@@ -763,7 +785,7 @@
   10.62 + 	statfunc_ptr statfunc = do_stat;
   10.63 + 
   10.64 + 	opts = getopt32(argv, "^"
   10.65 +-		"tL"
   10.66 ++		"tLm"
   10.67 + 		IF_FEATURE_STAT_FILESYSTEM("f")
   10.68 + 		IF_SELINUX("Z")
   10.69 + 		IF_FEATURE_STAT_FORMAT("c:")
   10.70 +@@ -779,6 +801,9 @@
   10.71 + 		selinux_or_die();
   10.72 + 	}
   10.73 + #endif
   10.74 ++ 	if (opts & OPT_MAP) { /* -m */
   10.75 ++ 		statfunc = do_mapfile;
   10.76 ++	}
   10.77 + 	ok = 1;
   10.78 + 	argv += optind;
   10.79 + 	for (i = 0; argv[i]; ++i)
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/busybox-net/stuff/busybox-git-zmodules.u	Fri Feb 28 16:03:43 2020 +0100
    11.3 @@ -0,0 +1,27 @@
    11.4 +Add LZMA_DEFAULT_MAGIC support
    11.5 +--- busybox-1.25/archival/libarchive/open_transformer.c
    11.6 ++++ busybox-1.25/archival/libarchive/open_transformer.c
    11.7 +@@ -174,6 +174,23 @@
    11.8 + 	/* .gz and .bz2 both have 2-byte signature, and their
    11.9 + 	 * unpack_XXX_stream wants this header skipped. */
   11.10 + 	xread(fd, magic.b16, sizeof(magic.b16[0]));
   11.11 ++#if 1
   11.12 ++// SliTaz may use .gz suffix for lzma'd kernel modules
   11.13 ++#if BB_BIG_ENDIAN
   11.14 ++#define LZMA_DEFAULT_MAGIC 0x5d00
   11.15 ++#else
   11.16 ++#define LZMA_DEFAULT_MAGIC 0x5d
   11.17 ++#endif
   11.18 ++	if (ENABLE_FEATURE_SEAMLESS_LZMA
   11.19 ++	 && magic.b16[0] == LZMA_DEFAULT_MAGIC
   11.20 ++	) {
   11.21 ++		xlseek(fd, -xstate->signature_skipped, SEEK_CUR);
   11.22 ++		xstate->signature_skipped = 0;
   11.23 ++		xstate->xformer = unpack_lzma_stream;
   11.24 ++		USE_FOR_NOMMU(xstate->xformer_prog = "unlzma";)
   11.25 ++		goto found_magic;
   11.26 ++	}
   11.27 ++#endif
   11.28 + 	if (ENABLE_FEATURE_SEAMLESS_GZ
   11.29 + 	 && magic.b16[0] == GZIP_MAGIC
   11.30 + 	) {
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/busybox-net/stuff/busybox-net-git.config	Fri Feb 28 16:03:43 2020 +0100
    12.3 @@ -0,0 +1,1145 @@
    12.4 +#
    12.5 +# Automatically generated make config: don't edit
    12.6 +# Busybox version: 1.28.0.git
    12.7 +# Sat Nov 23 18:41:30 2019
    12.8 +#
    12.9 +CONFIG_HAVE_DOT_CONFIG=y
   12.10 +
   12.11 +#
   12.12 +# Settings
   12.13 +#
   12.14 +# CONFIG_DESKTOP is not set
   12.15 +# CONFIG_EXTRA_COMPAT is not set
   12.16 +# CONFIG_FEDORA_COMPAT is not set
   12.17 +# CONFIG_INCLUDE_SUSv2 is not set
   12.18 +CONFIG_LONG_OPTS=y
   12.19 +CONFIG_SHOW_USAGE=y
   12.20 +# CONFIG_FEATURE_VERBOSE_USAGE is not set
   12.21 +CONFIG_FEATURE_COMPRESS_USAGE=y
   12.22 +# CONFIG_LFS is not set
   12.23 +# CONFIG_PAM is not set
   12.24 +CONFIG_FEATURE_DEVPTS=y
   12.25 +# CONFIG_FEATURE_UTMP is not set
   12.26 +# CONFIG_FEATURE_WTMP is not set
   12.27 +# CONFIG_FEATURE_PIDFILE is not set
   12.28 +CONFIG_PID_FILE_PATH=""
   12.29 +CONFIG_BUSYBOX=y
   12.30 +# CONFIG_FEATURE_INSTALLER is not set
   12.31 +# CONFIG_INSTALL_NO_USR is not set
   12.32 +CONFIG_FEATURE_SUID=y
   12.33 +# CONFIG_FEATURE_SUID_CONFIG is not set
   12.34 +# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
   12.35 +CONFIG_FEATURE_PREFER_APPLETS=y
   12.36 +CONFIG_BUSYBOX_EXEC_PATH="/bin/busybox"
   12.37 +# CONFIG_SELINUX is not set
   12.38 +# CONFIG_FEATURE_CLEAN_UP is not set
   12.39 +CONFIG_FEATURE_SYSLOG=y
   12.40 +CONFIG_PLATFORM_LINUX=y
   12.41 +
   12.42 +#
   12.43 +# Build Options
   12.44 +#
   12.45 +# CONFIG_STATIC is not set
   12.46 +# CONFIG_PIE is not set
   12.47 +# CONFIG_NOMMU is not set
   12.48 +# CONFIG_BUILD_LIBBUSYBOX is not set
   12.49 +# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set
   12.50 +# CONFIG_FEATURE_INDIVIDUAL is not set
   12.51 +# CONFIG_FEATURE_SHARED_BUSYBOX is not set
   12.52 +CONFIG_CROSS_COMPILER_PREFIX="uclibc-i486-"
   12.53 +CONFIG_SYSROOT=""
   12.54 +CONFIG_EXTRA_CFLAGS=""
   12.55 +CONFIG_EXTRA_LDFLAGS=""
   12.56 +CONFIG_EXTRA_LDLIBS=""
   12.57 +# CONFIG_USE_PORTABLE_CODE is not set
   12.58 +
   12.59 +#
   12.60 +# Installation Options ("make install" behavior)
   12.61 +#
   12.62 +# CONFIG_INSTALL_APPLET_SYMLINKS is not set
   12.63 +CONFIG_INSTALL_APPLET_HARDLINKS=y
   12.64 +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
   12.65 +# CONFIG_INSTALL_APPLET_DONT is not set
   12.66 +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
   12.67 +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
   12.68 +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
   12.69 +CONFIG_PREFIX="./_install"
   12.70 +
   12.71 +#
   12.72 +# Debugging Options
   12.73 +#
   12.74 +# CONFIG_DEBUG is not set
   12.75 +# CONFIG_DEBUG_PESSIMIZE is not set
   12.76 +# CONFIG_DEBUG_SANITIZE is not set
   12.77 +# CONFIG_UNIT_TEST is not set
   12.78 +# CONFIG_WERROR is not set
   12.79 +CONFIG_NO_DEBUG_LIB=y
   12.80 +# CONFIG_DMALLOC is not set
   12.81 +# CONFIG_EFENCE is not set
   12.82 +
   12.83 +#
   12.84 +# Library Tuning
   12.85 +#
   12.86 +# CONFIG_FEATURE_USE_BSS_TAIL is not set
   12.87 +# CONFIG_FEATURE_RTMINMAX is not set
   12.88 +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
   12.89 +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
   12.90 +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
   12.91 +CONFIG_PASSWORD_MINLEN=6
   12.92 +CONFIG_MD5_SMALL=3
   12.93 +CONFIG_SHA3_SMALL=1
   12.94 +# CONFIG_FEATURE_FAST_TOP is not set
   12.95 +# CONFIG_FEATURE_ETC_NETWORKS is not set
   12.96 +CONFIG_FEATURE_EDITING=y
   12.97 +CONFIG_FEATURE_EDITING_MAX_LEN=1024
   12.98 +# CONFIG_FEATURE_EDITING_VI is not set
   12.99 +CONFIG_FEATURE_EDITING_HISTORY=32
  12.100 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
  12.101 +# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
  12.102 +# CONFIG_FEATURE_REVERSE_SEARCH is not set
  12.103 +CONFIG_FEATURE_TAB_COMPLETION=y
  12.104 +# CONFIG_FEATURE_USERNAME_COMPLETION is not set
  12.105 +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
  12.106 +# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
  12.107 +# CONFIG_LOCALE_SUPPORT is not set
  12.108 +# CONFIG_UNICODE_SUPPORT is not set
  12.109 +# CONFIG_UNICODE_USING_LOCALE is not set
  12.110 +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
  12.111 +CONFIG_SUBST_WCHAR=0
  12.112 +CONFIG_LAST_SUPPORTED_WCHAR=0
  12.113 +# CONFIG_UNICODE_COMBINING_WCHARS is not set
  12.114 +# CONFIG_UNICODE_WIDE_WCHARS is not set
  12.115 +# CONFIG_UNICODE_BIDI_SUPPORT is not set
  12.116 +# CONFIG_UNICODE_NEUTRAL_TABLE is not set
  12.117 +# CONFIG_UNICODE_PRESERVE_BROKEN is not set
  12.118 +CONFIG_FEATURE_NON_POSIX_CP=y
  12.119 +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
  12.120 +# CONFIG_FEATURE_USE_SENDFILE is not set
  12.121 +CONFIG_FEATURE_COPYBUF_KB=4
  12.122 +CONFIG_FEATURE_SKIP_ROOTFS=y
  12.123 +CONFIG_MONOTONIC_SYSCALL=y
  12.124 +# CONFIG_IOCTL_HEX2STR_ERROR is not set
  12.125 +# CONFIG_FEATURE_HWIB is not set
  12.126 +
  12.127 +#
  12.128 +# Applets
  12.129 +#
  12.130 +
  12.131 +#
  12.132 +# Archival Utilities
  12.133 +#
  12.134 +# CONFIG_FEATURE_SEAMLESS_XZ is not set
  12.135 +# CONFIG_FEATURE_SEAMLESS_LZMA is not set
  12.136 +# CONFIG_FEATURE_SEAMLESS_BZ2 is not set
  12.137 +# CONFIG_FEATURE_SEAMLESS_GZ is not set
  12.138 +# CONFIG_FEATURE_SEAMLESS_Z is not set
  12.139 +# CONFIG_AR is not set
  12.140 +# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
  12.141 +# CONFIG_FEATURE_AR_CREATE is not set
  12.142 +# CONFIG_UNCOMPRESS is not set
  12.143 +CONFIG_GUNZIP=y
  12.144 +CONFIG_ZCAT=y
  12.145 +# CONFIG_FEATURE_GUNZIP_LONG_OPTIONS is not set
  12.146 +# CONFIG_BUNZIP2 is not set
  12.147 +# CONFIG_BZCAT is not set
  12.148 +# CONFIG_UNLZMA is not set
  12.149 +# CONFIG_LZCAT is not set
  12.150 +# CONFIG_LZMA is not set
  12.151 +# CONFIG_UNXZ is not set
  12.152 +# CONFIG_XZCAT is not set
  12.153 +# CONFIG_XZ is not set
  12.154 +# CONFIG_BZIP2 is not set
  12.155 +# CONFIG_FEATURE_BZIP2_DECOMPRESS is not set
  12.156 +CONFIG_CPIO=y
  12.157 +CONFIG_FEATURE_CPIO_O=y
  12.158 +# CONFIG_FEATURE_CPIO_P is not set
  12.159 +# CONFIG_DPKG is not set
  12.160 +# CONFIG_DPKG_DEB is not set
  12.161 +CONFIG_GZIP=y
  12.162 +# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
  12.163 +CONFIG_GZIP_FAST=0
  12.164 +# CONFIG_FEATURE_GZIP_LEVELS is not set
  12.165 +CONFIG_FEATURE_GZIP_DECOMPRESS=y
  12.166 +# CONFIG_LZOP is not set
  12.167 +# CONFIG_UNLZOP is not set
  12.168 +# CONFIG_LZOPCAT is not set
  12.169 +# CONFIG_LZOP_COMPR_HIGH is not set
  12.170 +# CONFIG_RPM is not set
  12.171 +# CONFIG_RPM2CPIO is not set
  12.172 +# CONFIG_TAR is not set
  12.173 +# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
  12.174 +# CONFIG_FEATURE_TAR_CREATE is not set
  12.175 +# CONFIG_FEATURE_TAR_AUTODETECT is not set
  12.176 +# CONFIG_FEATURE_TAR_FROM is not set
  12.177 +# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
  12.178 +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
  12.179 +# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
  12.180 +# CONFIG_FEATURE_TAR_TO_COMMAND is not set
  12.181 +# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
  12.182 +# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
  12.183 +# CONFIG_FEATURE_TAR_SELINUX is not set
  12.184 +# CONFIG_UNZIP is not set
  12.185 +# CONFIG_FEATURE_UNZIP_CDF is not set
  12.186 +# CONFIG_FEATURE_UNZIP_BZIP2 is not set
  12.187 +# CONFIG_FEATURE_UNZIP_LZMA is not set
  12.188 +# CONFIG_FEATURE_UNZIP_XZ is not set
  12.189 +# CONFIG_FEATURE_LZMA_FAST is not set
  12.190 +
  12.191 +#
  12.192 +# Coreutils
  12.193 +#
  12.194 +CONFIG_BASENAME=y
  12.195 +CONFIG_CAT=y
  12.196 +# CONFIG_FEATURE_CATN is not set
  12.197 +# CONFIG_FEATURE_CATV is not set
  12.198 +CONFIG_CHGRP=y
  12.199 +CONFIG_CHMOD=y
  12.200 +CONFIG_CHOWN=y
  12.201 +# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
  12.202 +CONFIG_CHROOT=y
  12.203 +# CONFIG_CKSUM is not set
  12.204 +# CONFIG_COMM is not set
  12.205 +CONFIG_CP=y
  12.206 +# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
  12.207 +CONFIG_CUT=y
  12.208 +CONFIG_DATE=y
  12.209 +# CONFIG_FEATURE_DATE_ISOFMT is not set
  12.210 +# CONFIG_FEATURE_DATE_NANO is not set
  12.211 +# CONFIG_FEATURE_DATE_COMPAT is not set
  12.212 +CONFIG_DD=y
  12.213 +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
  12.214 +# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
  12.215 +CONFIG_FEATURE_DD_IBS_OBS=y
  12.216 +# CONFIG_FEATURE_DD_STATUS is not set
  12.217 +CONFIG_DF=y
  12.218 +# CONFIG_FEATURE_DF_FANCY is not set
  12.219 +CONFIG_DIRNAME=y
  12.220 +# CONFIG_DOS2UNIX is not set
  12.221 +# CONFIG_UNIX2DOS is not set
  12.222 +CONFIG_DU=y
  12.223 +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
  12.224 +# CONFIG_ECHO is not set
  12.225 +CONFIG_FEATURE_FANCY_ECHO=y
  12.226 +# CONFIG_ENV is not set
  12.227 +# CONFIG_EXPAND is not set
  12.228 +# CONFIG_UNEXPAND is not set
  12.229 +CONFIG_EXPR=y
  12.230 +# CONFIG_EXPR_MATH_SUPPORT_64 is not set
  12.231 +# CONFIG_FACTOR is not set
  12.232 +CONFIG_FALSE=y
  12.233 +# CONFIG_FOLD is not set
  12.234 +# CONFIG_FSYNC is not set
  12.235 +CONFIG_HEAD=y
  12.236 +# CONFIG_FEATURE_FANCY_HEAD is not set
  12.237 +# CONFIG_HOSTID is not set
  12.238 +CONFIG_ID=y
  12.239 +# CONFIG_GROUPS is not set
  12.240 +# CONFIG_INSTALL is not set
  12.241 +# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
  12.242 +# CONFIG_LINK is not set
  12.243 +CONFIG_LN=y
  12.244 +# CONFIG_LOGNAME is not set
  12.245 +CONFIG_LS=y
  12.246 +CONFIG_FEATURE_LS_FILETYPES=y
  12.247 +CONFIG_FEATURE_LS_FOLLOWLINKS=y
  12.248 +CONFIG_FEATURE_LS_RECURSIVE=y
  12.249 +# CONFIG_FEATURE_LS_WIDTH is not set
  12.250 +CONFIG_FEATURE_LS_SORTFILES=y
  12.251 +CONFIG_FEATURE_LS_TIMESTAMPS=y
  12.252 +CONFIG_FEATURE_LS_USERNAME=y
  12.253 +CONFIG_FEATURE_LS_COLOR=y
  12.254 +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
  12.255 +CONFIG_MD5SUM=y
  12.256 +# CONFIG_SHA1SUM is not set
  12.257 +# CONFIG_SHA256SUM is not set
  12.258 +# CONFIG_SHA512SUM is not set
  12.259 +# CONFIG_SHA3SUM is not set
  12.260 +
  12.261 +#
  12.262 +# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
  12.263 +#
  12.264 +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
  12.265 +CONFIG_MKDIR=y
  12.266 +CONFIG_MKFIFO=y
  12.267 +CONFIG_MKNOD=y
  12.268 +CONFIG_MKTEMP=y
  12.269 +CONFIG_MV=y
  12.270 +# CONFIG_NICE is not set
  12.271 +# CONFIG_NL is not set
  12.272 +# CONFIG_NOHUP is not set
  12.273 +# CONFIG_NPROC is not set
  12.274 +CONFIG_OD=y
  12.275 +# CONFIG_PASTE is not set
  12.276 +# CONFIG_PRINTENV is not set
  12.277 +# CONFIG_PRINTF is not set
  12.278 +CONFIG_PWD=y
  12.279 +CONFIG_READLINK=y
  12.280 +# CONFIG_FEATURE_READLINK_FOLLOW is not set
  12.281 +# CONFIG_REALPATH is not set
  12.282 +CONFIG_RM=y
  12.283 +CONFIG_RMDIR=y
  12.284 +CONFIG_SEQ=y
  12.285 +# CONFIG_SHRED is not set
  12.286 +# CONFIG_SHUF is not set
  12.287 +CONFIG_SLEEP=y
  12.288 +# CONFIG_FEATURE_FANCY_SLEEP is not set
  12.289 +# CONFIG_FEATURE_FLOAT_SLEEP is not set
  12.290 +CONFIG_SORT=y
  12.291 +# CONFIG_FEATURE_SORT_BIG is not set
  12.292 +CONFIG_SPLIT=y
  12.293 +# CONFIG_FEATURE_SPLIT_FANCY is not set
  12.294 +CONFIG_STAT=y
  12.295 +CONFIG_FEATURE_STAT_FORMAT=y
  12.296 +# CONFIG_FEATURE_STAT_FILESYSTEM is not set
  12.297 +CONFIG_STTY=y
  12.298 +# CONFIG_SUM is not set
  12.299 +CONFIG_SYNC=y
  12.300 +# CONFIG_FEATURE_SYNC_FANCY is not set
  12.301 +# CONFIG_TAC is not set
  12.302 +CONFIG_TAIL=y
  12.303 +# CONFIG_FEATURE_FANCY_TAIL is not set
  12.304 +CONFIG_TEE=y
  12.305 +# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
  12.306 +# CONFIG_TEST is not set
  12.307 +# CONFIG_TEST1 is not set
  12.308 +# CONFIG_TEST2 is not set
  12.309 +# CONFIG_FEATURE_TEST_64 is not set
  12.310 +# CONFIG_TIMEOUT is not set
  12.311 +CONFIG_TOUCH=y
  12.312 +# CONFIG_FEATURE_TOUCH_NODEREF is not set
  12.313 +# CONFIG_FEATURE_TOUCH_SUSV3 is not set
  12.314 +# CONFIG_TR is not set
  12.315 +# CONFIG_FEATURE_TR_CLASSES is not set
  12.316 +# CONFIG_FEATURE_TR_EQUIV is not set
  12.317 +CONFIG_TRUE=y
  12.318 +# CONFIG_TRUNCATE is not set
  12.319 +CONFIG_TTY=y
  12.320 +CONFIG_UNAME=y
  12.321 +CONFIG_UNAME_OSNAME="SliTaz"
  12.322 +# CONFIG_BB_ARCH is not set
  12.323 +CONFIG_UNIQ=y
  12.324 +# CONFIG_UNLINK is not set
  12.325 +# CONFIG_USLEEP is not set
  12.326 +CONFIG_UUDECODE=y
  12.327 +# CONFIG_BASE64 is not set
  12.328 +CONFIG_UUENCODE=y
  12.329 +CONFIG_WC=y
  12.330 +# CONFIG_FEATURE_WC_LARGE is not set
  12.331 +# CONFIG_WHO is not set
  12.332 +# CONFIG_W is not set
  12.333 +# CONFIG_USERS is not set
  12.334 +# CONFIG_WHOAMI is not set
  12.335 +CONFIG_YES=y
  12.336 +
  12.337 +#
  12.338 +# Common options
  12.339 +#
  12.340 +# CONFIG_FEATURE_VERBOSE is not set
  12.341 +
  12.342 +#
  12.343 +# Common options for cp and mv
  12.344 +#
  12.345 +CONFIG_FEATURE_PRESERVE_HARDLINKS=y
  12.346 +
  12.347 +#
  12.348 +# Common options for df, du, ls
  12.349 +#
  12.350 +CONFIG_FEATURE_HUMAN_READABLE=y
  12.351 +
  12.352 +#
  12.353 +# Console Utilities
  12.354 +#
  12.355 +CONFIG_CHVT=y
  12.356 +CONFIG_CLEAR=y
  12.357 +# CONFIG_DEALLOCVT is not set
  12.358 +# CONFIG_DUMPKMAP is not set
  12.359 +# CONFIG_FGCONSOLE is not set
  12.360 +# CONFIG_KBD_MODE is not set
  12.361 +# CONFIG_LOADFONT is not set
  12.362 +# CONFIG_SETFONT is not set
  12.363 +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
  12.364 +CONFIG_DEFAULT_SETFONT_DIR=""
  12.365 +# CONFIG_FEATURE_LOADFONT_PSF2 is not set
  12.366 +# CONFIG_FEATURE_LOADFONT_RAW is not set
  12.367 +CONFIG_LOADKMAP=y
  12.368 +# CONFIG_OPENVT is not set
  12.369 +CONFIG_RESET=y
  12.370 +# CONFIG_RESIZE is not set
  12.371 +# CONFIG_FEATURE_RESIZE_PRINT is not set
  12.372 +# CONFIG_SETCONSOLE is not set
  12.373 +# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
  12.374 +# CONFIG_SETKEYCODES is not set
  12.375 +# CONFIG_SETLOGCONS is not set
  12.376 +# CONFIG_SHOWKEY is not set
  12.377 +
  12.378 +#
  12.379 +# Debian Utilities
  12.380 +#
  12.381 +# CONFIG_PIPE_PROGRESS is not set
  12.382 +# CONFIG_RUN_PARTS is not set
  12.383 +# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
  12.384 +# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
  12.385 +# CONFIG_START_STOP_DAEMON is not set
  12.386 +# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
  12.387 +# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
  12.388 +# CONFIG_WHICH is not set
  12.389 +
  12.390 +#
  12.391 +# klibc-utils
  12.392 +#
  12.393 +# CONFIG_MINIPS is not set
  12.394 +# CONFIG_NUKE is not set
  12.395 +# CONFIG_RESUME is not set
  12.396 +# CONFIG_RUN_INIT is not set
  12.397 +
  12.398 +#
  12.399 +# Editors
  12.400 +#
  12.401 +# CONFIG_AWK is not set
  12.402 +# CONFIG_FEATURE_AWK_LIBM is not set
  12.403 +# CONFIG_FEATURE_AWK_GNU_EXTENSIONS is not set
  12.404 +# CONFIG_CMP is not set
  12.405 +# CONFIG_DIFF is not set
  12.406 +# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
  12.407 +# CONFIG_FEATURE_DIFF_DIR is not set
  12.408 +# CONFIG_ED is not set
  12.409 +# CONFIG_PATCH is not set
  12.410 +CONFIG_SED=y
  12.411 +CONFIG_VI=y
  12.412 +CONFIG_FEATURE_VI_MAX_LEN=1024
  12.413 +# CONFIG_FEATURE_VI_8BIT is not set
  12.414 +CONFIG_FEATURE_VI_COLON=y
  12.415 +CONFIG_FEATURE_VI_YANKMARK=y
  12.416 +CONFIG_FEATURE_VI_SEARCH=y
  12.417 +# CONFIG_FEATURE_VI_REGEX_SEARCH is not set
  12.418 +CONFIG_FEATURE_VI_USE_SIGNALS=y
  12.419 +CONFIG_FEATURE_VI_DOT_CMD=y
  12.420 +CONFIG_FEATURE_VI_READONLY=y
  12.421 +# CONFIG_FEATURE_VI_SETOPTS is not set
  12.422 +# CONFIG_FEATURE_VI_SET is not set
  12.423 +# CONFIG_FEATURE_VI_WIN_RESIZE is not set
  12.424 +CONFIG_FEATURE_VI_ASK_TERMINAL=y
  12.425 +# CONFIG_FEATURE_VI_UNDO is not set
  12.426 +# CONFIG_FEATURE_VI_UNDO_QUEUE is not set
  12.427 +CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0
  12.428 +CONFIG_FEATURE_ALLOW_EXEC=y
  12.429 +
  12.430 +#
  12.431 +# Finding Utilities
  12.432 +#
  12.433 +CONFIG_FIND=y
  12.434 +CONFIG_FEATURE_FIND_PRINT0=y
  12.435 +CONFIG_FEATURE_FIND_MTIME=y
  12.436 +CONFIG_FEATURE_FIND_MMIN=y
  12.437 +CONFIG_FEATURE_FIND_PERM=y
  12.438 +CONFIG_FEATURE_FIND_TYPE=y
  12.439 +CONFIG_FEATURE_FIND_XDEV=y
  12.440 +CONFIG_FEATURE_FIND_MAXDEPTH=y
  12.441 +CONFIG_FEATURE_FIND_NEWER=y
  12.442 +CONFIG_FEATURE_FIND_INUM=y
  12.443 +CONFIG_FEATURE_FIND_EXEC=y
  12.444 +# CONFIG_FEATURE_FIND_EXEC_PLUS is not set
  12.445 +CONFIG_FEATURE_FIND_USER=y
  12.446 +CONFIG_FEATURE_FIND_GROUP=y
  12.447 +CONFIG_FEATURE_FIND_NOT=y
  12.448 +CONFIG_FEATURE_FIND_DEPTH=y
  12.449 +CONFIG_FEATURE_FIND_PAREN=y
  12.450 +CONFIG_FEATURE_FIND_SIZE=y
  12.451 +CONFIG_FEATURE_FIND_PRUNE=y
  12.452 +CONFIG_FEATURE_FIND_DELETE=y
  12.453 +CONFIG_FEATURE_FIND_PATH=y
  12.454 +CONFIG_FEATURE_FIND_REGEX=y
  12.455 +# CONFIG_FEATURE_FIND_CONTEXT is not set
  12.456 +CONFIG_FEATURE_FIND_LINKS=y
  12.457 +CONFIG_GREP=y
  12.458 +CONFIG_EGREP=y
  12.459 +CONFIG_FGREP=y
  12.460 +CONFIG_FEATURE_GREP_CONTEXT=y
  12.461 +CONFIG_XARGS=y
  12.462 +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
  12.463 +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
  12.464 +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
  12.465 +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
  12.466 +# CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR is not set
  12.467 +
  12.468 +#
  12.469 +# Init Utilities
  12.470 +#
  12.471 +# CONFIG_BOOTCHARTD is not set
  12.472 +# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
  12.473 +# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
  12.474 +CONFIG_HALT=y
  12.475 +CONFIG_POWEROFF=y
  12.476 +CONFIG_REBOOT=y
  12.477 +# CONFIG_FEATURE_CALL_TELINIT is not set
  12.478 +CONFIG_TELINIT_PATH=""
  12.479 +CONFIG_INIT=y
  12.480 +# CONFIG_LINUXRC is not set
  12.481 +CONFIG_FEATURE_USE_INITTAB=y
  12.482 +CONFIG_FEATURE_KILL_REMOVED=y
  12.483 +CONFIG_FEATURE_KILL_DELAY=0
  12.484 +CONFIG_FEATURE_INIT_SCTTY=y
  12.485 +# CONFIG_FEATURE_INIT_SYSLOG is not set
  12.486 +CONFIG_FEATURE_INIT_QUIET=y
  12.487 +# CONFIG_FEATURE_INIT_COREDUMPS is not set
  12.488 +CONFIG_INIT_TERMINAL_TYPE=""
  12.489 +# CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set
  12.490 +
  12.491 +#
  12.492 +# Login/Password Management Utilities
  12.493 +#
  12.494 +# CONFIG_FEATURE_SHADOWPASSWDS is not set
  12.495 +# CONFIG_USE_BB_PWD_GRP is not set
  12.496 +# CONFIG_USE_BB_SHADOW is not set
  12.497 +# CONFIG_USE_BB_CRYPT is not set
  12.498 +# CONFIG_USE_BB_CRYPT_SHA is not set
  12.499 +# CONFIG_ADD_SHELL is not set
  12.500 +# CONFIG_REMOVE_SHELL is not set
  12.501 +CONFIG_ADDGROUP=y
  12.502 +CONFIG_FEATURE_ADDUSER_TO_GROUP=y
  12.503 +CONFIG_ADDUSER=y
  12.504 +# CONFIG_FEATURE_CHECK_NAMES is not set
  12.505 +CONFIG_LAST_ID=60000
  12.506 +CONFIG_FIRST_SYSTEM_ID=100
  12.507 +CONFIG_LAST_SYSTEM_ID=999
  12.508 +CONFIG_CHPASSWD=y
  12.509 +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des"
  12.510 +# CONFIG_CRYPTPW is not set
  12.511 +# CONFIG_MKPASSWD is not set
  12.512 +CONFIG_DELUSER=y
  12.513 +CONFIG_DELGROUP=y
  12.514 +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
  12.515 +CONFIG_GETTY=y
  12.516 +CONFIG_LOGIN=y
  12.517 +# CONFIG_LOGIN_SESSION_AS_CHILD is not set
  12.518 +# CONFIG_LOGIN_SCRIPTS is not set
  12.519 +# CONFIG_FEATURE_NOLOGIN is not set
  12.520 +# CONFIG_FEATURE_SECURETTY is not set
  12.521 +CONFIG_PASSWD=y
  12.522 +# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
  12.523 +CONFIG_SU=y
  12.524 +# CONFIG_FEATURE_SU_SYSLOG is not set
  12.525 +# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
  12.526 +# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set
  12.527 +# CONFIG_SULOGIN is not set
  12.528 +# CONFIG_VLOCK is not set
  12.529 +
  12.530 +#
  12.531 +# Linux Ext2 FS Progs
  12.532 +#
  12.533 +# CONFIG_CHATTR is not set
  12.534 +# CONFIG_FSCK is not set
  12.535 +# CONFIG_LSATTR is not set
  12.536 +# CONFIG_TUNE2FS is not set
  12.537 +
  12.538 +#
  12.539 +# Linux Module Utilities
  12.540 +#
  12.541 +CONFIG_MODPROBE_SMALL=y
  12.542 +CONFIG_DEPMOD=y
  12.543 +# CONFIG_INSMOD is not set
  12.544 +# CONFIG_LSMOD is not set
  12.545 +# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
  12.546 +# CONFIG_MODINFO is not set
  12.547 +CONFIG_MODPROBE=y
  12.548 +# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
  12.549 +# CONFIG_RMMOD is not set
  12.550 +
  12.551 +#
  12.552 +# Options common to multiple modutils
  12.553 +#
  12.554 +CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y
  12.555 +CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y
  12.556 +# CONFIG_FEATURE_2_4_MODULES is not set
  12.557 +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
  12.558 +# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
  12.559 +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
  12.560 +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
  12.561 +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
  12.562 +# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
  12.563 +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
  12.564 +# CONFIG_FEATURE_MODUTILS_ALIAS is not set
  12.565 +# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
  12.566 +CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
  12.567 +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
  12.568 +
  12.569 +#
  12.570 +# Linux System Utilities
  12.571 +#
  12.572 +# CONFIG_ACPID is not set
  12.573 +# CONFIG_FEATURE_ACPID_COMPAT is not set
  12.574 +# CONFIG_BLKDISCARD is not set
  12.575 +CONFIG_BLKID=y
  12.576 +# CONFIG_FEATURE_BLKID_TYPE is not set
  12.577 +# CONFIG_BLOCKDEV is not set
  12.578 +# CONFIG_CAL is not set
  12.579 +# CONFIG_CHRT is not set
  12.580 +CONFIG_DMESG=y
  12.581 +CONFIG_FEATURE_DMESG_PRETTY=y
  12.582 +# CONFIG_EJECT is not set
  12.583 +# CONFIG_FEATURE_EJECT_SCSI is not set
  12.584 +# CONFIG_FALLOCATE is not set
  12.585 +# CONFIG_FATATTR is not set
  12.586 +CONFIG_FBSET=y
  12.587 +CONFIG_FEATURE_FBSET_FANCY=y
  12.588 +CONFIG_FEATURE_FBSET_READMODE=y
  12.589 +CONFIG_FBVNC=y
  12.590 +CONFIG_FDFORMAT=y
  12.591 +CONFIG_FDISK=y
  12.592 +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
  12.593 +CONFIG_FEATURE_FDISK_WRITABLE=y
  12.594 +# CONFIG_FEATURE_AIX_LABEL is not set
  12.595 +# CONFIG_FEATURE_SGI_LABEL is not set
  12.596 +# CONFIG_FEATURE_SUN_LABEL is not set
  12.597 +# CONFIG_FEATURE_OSF_LABEL is not set
  12.598 +# CONFIG_FEATURE_GPT_LABEL is not set
  12.599 +# CONFIG_FEATURE_FDISK_ADVANCED is not set
  12.600 +# CONFIG_FINDFS is not set
  12.601 +# CONFIG_FLOCK is not set
  12.602 +# CONFIG_FDFLUSH is not set
  12.603 +# CONFIG_FREERAMDISK is not set
  12.604 +# CONFIG_FSCK_MINIX is not set
  12.605 +# CONFIG_FSFREEZE is not set
  12.606 +# CONFIG_FSTRIM is not set
  12.607 +# CONFIG_GETOPT is not set
  12.608 +# CONFIG_FEATURE_GETOPT_LONG is not set
  12.609 +CONFIG_HEXDUMP=y
  12.610 +CONFIG_FEATURE_HEXDUMP_REVERSE=y
  12.611 +CONFIG_HD=y
  12.612 +# CONFIG_XXD is not set
  12.613 +# CONFIG_HWCLOCK is not set
  12.614 +# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
  12.615 +# CONFIG_IONICE is not set
  12.616 +# CONFIG_IPCRM is not set
  12.617 +# CONFIG_IPCS is not set
  12.618 +# CONFIG_LAST is not set
  12.619 +# CONFIG_FEATURE_LAST_FANCY is not set
  12.620 +# CONFIG_LOSETUP is not set
  12.621 +CONFIG_LSPCI=y
  12.622 +CONFIG_LSUSB=y
  12.623 +CONFIG_MDEV=y
  12.624 +# CONFIG_FEATURE_MDEV_CONF is not set
  12.625 +# CONFIG_FEATURE_MDEV_RENAME is not set
  12.626 +# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
  12.627 +# CONFIG_FEATURE_MDEV_EXEC is not set
  12.628 +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
  12.629 +# CONFIG_MESG is not set
  12.630 +# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set
  12.631 +# CONFIG_MKE2FS is not set
  12.632 +# CONFIG_MKFS_EXT2 is not set
  12.633 +# CONFIG_MKFS_MINIX is not set
  12.634 +# CONFIG_FEATURE_MINIX2 is not set
  12.635 +# CONFIG_MKFS_REISER is not set
  12.636 +# CONFIG_MKDOSFS is not set
  12.637 +# CONFIG_MKFS_VFAT is not set
  12.638 +CONFIG_MKSWAP=y
  12.639 +# CONFIG_FEATURE_MKSWAP_UUID is not set
  12.640 +CONFIG_MORE=y
  12.641 +CONFIG_MOUNT=y
  12.642 +# CONFIG_FEATURE_MOUNT_FAKE is not set
  12.643 +# CONFIG_FEATURE_MOUNT_VERBOSE is not set
  12.644 +# CONFIG_FEATURE_MOUNT_HELPERS is not set
  12.645 +CONFIG_FEATURE_MOUNT_LABEL=y
  12.646 +# CONFIG_FEATURE_MOUNT_NFS is not set
  12.647 +# CONFIG_FEATURE_MOUNT_CIFS is not set
  12.648 +CONFIG_FEATURE_MOUNT_FLAGS=y
  12.649 +CONFIG_FEATURE_MOUNT_FSTAB=y
  12.650 +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set
  12.651 +# CONFIG_MOUNTPOINT is not set
  12.652 +# CONFIG_NSENTER is not set
  12.653 +# CONFIG_PIVOT_ROOT is not set
  12.654 +# CONFIG_RDATE is not set
  12.655 +# CONFIG_RDEV is not set
  12.656 +# CONFIG_READPROFILE is not set
  12.657 +# CONFIG_RENICE is not set
  12.658 +# CONFIG_REV is not set
  12.659 +# CONFIG_RTCWAKE is not set
  12.660 +CONFIG_SCRIPT=y
  12.661 +# CONFIG_SCRIPTREPLAY is not set
  12.662 +# CONFIG_SCRIPTREPLAY_HOTKEYS is not set
  12.663 +# CONFIG_SETARCH is not set
  12.664 +# CONFIG_LINUX32 is not set
  12.665 +# CONFIG_LINUX64 is not set
  12.666 +# CONFIG_SETPRIV is not set
  12.667 +# CONFIG_FEATURE_SETPRIV_DUMP is not set
  12.668 +# CONFIG_FEATURE_SETPRIV_CAPABILITIES is not set
  12.669 +# CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES is not set
  12.670 +# CONFIG_SETSID is not set
  12.671 +CONFIG_SWAPON=y
  12.672 +# CONFIG_FEATURE_SWAPON_DISCARD is not set
  12.673 +# CONFIG_FEATURE_SWAPON_PRI is not set
  12.674 +CONFIG_SWAPOFF=y
  12.675 +CONFIG_FEATURE_SWAPONOFF_LABEL=y
  12.676 +CONFIG_SWITCH_ROOT=y
  12.677 +# CONFIG_TASKSET is not set
  12.678 +# CONFIG_FEATURE_TASKSET_FANCY is not set
  12.679 +# CONFIG_UEVENT is not set
  12.680 +CONFIG_UMOUNT=y
  12.681 +CONFIG_FEATURE_UMOUNT_ALL=y
  12.682 +# CONFIG_UNSHARE is not set
  12.683 +# CONFIG_WALL is not set
  12.684 +
  12.685 +#
  12.686 +# Common options for mount/umount
  12.687 +#
  12.688 +CONFIG_FEATURE_MOUNT_LOOP=y
  12.689 +# CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set
  12.690 +# CONFIG_FEATURE_MTAB_SUPPORT is not set
  12.691 +CONFIG_VOLUMEID=y
  12.692 +
  12.693 +#
  12.694 +# Filesystem/Volume identification
  12.695 +#
  12.696 +# CONFIG_FEATURE_VOLUMEID_BCACHE is not set
  12.697 +# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
  12.698 +# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
  12.699 +# CONFIG_FEATURE_VOLUMEID_EXFAT is not set
  12.700 +CONFIG_FEATURE_VOLUMEID_EXT=y
  12.701 +# CONFIG_FEATURE_VOLUMEID_F2FS is not set
  12.702 +CONFIG_FEATURE_VOLUMEID_FAT=y
  12.703 +# CONFIG_FEATURE_VOLUMEID_HFS is not set
  12.704 +CONFIG_FEATURE_VOLUMEID_ISO9660=y
  12.705 +# CONFIG_FEATURE_VOLUMEID_JFS is not set
  12.706 +# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
  12.707 +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
  12.708 +# CONFIG_FEATURE_VOLUMEID_LUKS is not set
  12.709 +# CONFIG_FEATURE_VOLUMEID_MINIX is not set
  12.710 +# CONFIG_FEATURE_VOLUMEID_NILFS is not set
  12.711 +# CONFIG_FEATURE_VOLUMEID_NTFS is not set
  12.712 +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
  12.713 +# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
  12.714 +# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
  12.715 +# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set
  12.716 +# CONFIG_FEATURE_VOLUMEID_SYSV is not set
  12.717 +# CONFIG_FEATURE_VOLUMEID_UBIFS is not set
  12.718 +# CONFIG_FEATURE_VOLUMEID_UDF is not set
  12.719 +# CONFIG_FEATURE_VOLUMEID_XFS is not set
  12.720 +
  12.721 +#
  12.722 +# Miscellaneous Utilities
  12.723 +#
  12.724 +# CONFIG_ADJTIMEX is not set
  12.725 +# CONFIG_BBCONFIG is not set
  12.726 +# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
  12.727 +CONFIG_BEEP=y
  12.728 +CONFIG_FEATURE_BEEP_FREQ=4000
  12.729 +CONFIG_FEATURE_BEEP_LENGTH_MS=30
  12.730 +# CONFIG_CHAT is not set
  12.731 +# CONFIG_FEATURE_CHAT_NOFAIL is not set
  12.732 +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
  12.733 +# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
  12.734 +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
  12.735 +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
  12.736 +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
  12.737 +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
  12.738 +CONFIG_CONSPY=y
  12.739 +CONFIG_CROND=y
  12.740 +# CONFIG_FEATURE_CROND_D is not set
  12.741 +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
  12.742 +# CONFIG_FEATURE_CROND_SPECIAL_TIMES is not set
  12.743 +CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
  12.744 +# CONFIG_CRONTAB is not set
  12.745 +# CONFIG_DC is not set
  12.746 +# CONFIG_FEATURE_DC_LIBM is not set
  12.747 +# CONFIG_DEVFSD is not set
  12.748 +# CONFIG_DEVFSD_MODLOAD is not set
  12.749 +# CONFIG_DEVFSD_FG_NP is not set
  12.750 +# CONFIG_DEVFSD_VERBOSE is not set
  12.751 +# CONFIG_FEATURE_DEVFS is not set
  12.752 +# CONFIG_DEVMEM is not set
  12.753 +# CONFIG_FBSPLASH is not set
  12.754 +# CONFIG_FLASH_ERASEALL is not set
  12.755 +# CONFIG_FLASH_LOCK is not set
  12.756 +# CONFIG_FLASH_UNLOCK is not set
  12.757 +# CONFIG_FLASHCP is not set
  12.758 +CONFIG_HDPARM=y
  12.759 +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
  12.760 +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
  12.761 +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
  12.762 +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
  12.763 +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
  12.764 +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
  12.765 +# CONFIG_I2CGET is not set
  12.766 +# CONFIG_I2CSET is not set
  12.767 +# CONFIG_I2CDUMP is not set
  12.768 +# CONFIG_I2CDETECT is not set
  12.769 +# CONFIG_INOTIFYD is not set
  12.770 +CONFIG_LESS=y
  12.771 +CONFIG_FEATURE_LESS_MAXLINES=9999999
  12.772 +CONFIG_FEATURE_LESS_BRACKETS=y
  12.773 +# CONFIG_FEATURE_LESS_FLAGS is not set
  12.774 +# CONFIG_FEATURE_LESS_TRUNCATE is not set
  12.775 +# CONFIG_FEATURE_LESS_MARKS is not set
  12.776 +CONFIG_FEATURE_LESS_REGEXP=y
  12.777 +# CONFIG_FEATURE_LESS_WINCH is not set
  12.778 +# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set
  12.779 +# CONFIG_FEATURE_LESS_DASHCMD is not set
  12.780 +# CONFIG_FEATURE_LESS_LINENUMS is not set
  12.781 +# CONFIG_LSSCSI is not set
  12.782 +# CONFIG_MAKEDEVS is not set
  12.783 +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
  12.784 +# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
  12.785 +# CONFIG_MAN is not set
  12.786 +# CONFIG_MICROCOM is not set
  12.787 +# CONFIG_MT is not set
  12.788 +# CONFIG_NANDWRITE is not set
  12.789 +# CONFIG_NANDDUMP is not set
  12.790 +# CONFIG_PARTPROBE is not set
  12.791 +# CONFIG_RAIDAUTORUN is not set
  12.792 +# CONFIG_READAHEAD is not set
  12.793 +# CONFIG_RFKILL is not set
  12.794 +# CONFIG_RUNLEVEL is not set
  12.795 +# CONFIG_RX is not set
  12.796 +# CONFIG_SETSERIAL is not set
  12.797 +# CONFIG_STRINGS is not set
  12.798 +# CONFIG_TIME is not set
  12.799 +# CONFIG_TTYSIZE is not set
  12.800 +# CONFIG_UBIATTACH is not set
  12.801 +# CONFIG_UBIDETACH is not set
  12.802 +# CONFIG_UBIMKVOL is not set
  12.803 +# CONFIG_UBIRMVOL is not set
  12.804 +# CONFIG_UBIRSVOL is not set
  12.805 +# CONFIG_UBIUPDATEVOL is not set
  12.806 +# CONFIG_UBIRENAME is not set
  12.807 +# CONFIG_VOLNAME is not set
  12.808 +# CONFIG_WATCHDOG is not set
  12.809 +
  12.810 +#
  12.811 +# Networking Utilities
  12.812 +#
  12.813 +# CONFIG_FEATURE_IPV6 is not set
  12.814 +# CONFIG_FEATURE_UNIX_LOCAL is not set
  12.815 +# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
  12.816 +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
  12.817 +CONFIG_ARP=y
  12.818 +# CONFIG_ARPING is not set
  12.819 +# CONFIG_BRCTL is not set
  12.820 +# CONFIG_FEATURE_BRCTL_FANCY is not set
  12.821 +# CONFIG_FEATURE_BRCTL_SHOW is not set
  12.822 +# CONFIG_DNSD is not set
  12.823 +CONFIG_ETHER_WAKE=y
  12.824 +CONFIG_FTPD=y
  12.825 +CONFIG_FEATURE_FTPD_WRITE=y
  12.826 +CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
  12.827 +# CONFIG_FEATURE_FTPD_AUTHENTICATION is not set
  12.828 +CONFIG_FTPGET=y
  12.829 +CONFIG_FTPPUT=y
  12.830 +# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
  12.831 +CONFIG_HOSTNAME=y
  12.832 +# CONFIG_DNSDOMAINNAME is not set
  12.833 +CONFIG_HTTPD=y
  12.834 +CONFIG_FEATURE_HTTPD_RANGES=y
  12.835 +CONFIG_FEATURE_HTTPD_SETUID=y
  12.836 +CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
  12.837 +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
  12.838 +CONFIG_FEATURE_HTTPD_CGI=y
  12.839 +CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y
  12.840 +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
  12.841 +CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
  12.842 +CONFIG_FEATURE_HTTPD_ERROR_PAGES=y
  12.843 +CONFIG_FEATURE_HTTPD_PROXY=y
  12.844 +# CONFIG_FEATURE_HTTPD_GZIP is not set
  12.845 +CONFIG_IFCONFIG=y
  12.846 +CONFIG_FEATURE_IFCONFIG_STATUS=y
  12.847 +# CONFIG_FEATURE_IFCONFIG_SLIP is not set
  12.848 +# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
  12.849 +CONFIG_FEATURE_IFCONFIG_HW=y
  12.850 +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
  12.851 +# CONFIG_IFENSLAVE is not set
  12.852 +# CONFIG_IFPLUGD is not set
  12.853 +# CONFIG_IFUP is not set
  12.854 +# CONFIG_IFDOWN is not set
  12.855 +CONFIG_IFUPDOWN_IFSTATE_PATH=""
  12.856 +# CONFIG_FEATURE_IFUPDOWN_IP is not set
  12.857 +# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set
  12.858 +# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
  12.859 +# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
  12.860 +# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
  12.861 +CONFIG_INETD=y
  12.862 +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
  12.863 +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
  12.864 +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
  12.865 +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
  12.866 +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
  12.867 +# CONFIG_FEATURE_INETD_RPC is not set
  12.868 +# CONFIG_IP is not set
  12.869 +# CONFIG_IPADDR is not set
  12.870 +# CONFIG_IPLINK is not set
  12.871 +# CONFIG_IPROUTE is not set
  12.872 +# CONFIG_IPTUNNEL is not set
  12.873 +# CONFIG_IPRULE is not set
  12.874 +# CONFIG_IPNEIGH is not set
  12.875 +# CONFIG_FEATURE_IP_ADDRESS is not set
  12.876 +# CONFIG_FEATURE_IP_LINK is not set
  12.877 +# CONFIG_FEATURE_IP_ROUTE is not set
  12.878 +CONFIG_FEATURE_IP_ROUTE_DIR=""
  12.879 +# CONFIG_FEATURE_IP_TUNNEL is not set
  12.880 +# CONFIG_FEATURE_IP_RULE is not set
  12.881 +# CONFIG_FEATURE_IP_NEIGH is not set
  12.882 +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
  12.883 +# CONFIG_IPCALC is not set
  12.884 +# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
  12.885 +# CONFIG_FEATURE_IPCALC_FANCY is not set
  12.886 +# CONFIG_FAKEIDENTD is not set
  12.887 +# CONFIG_NAMEIF is not set
  12.888 +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
  12.889 +CONFIG_NBDCLIENT=y
  12.890 +CONFIG_NC=y
  12.891 +CONFIG_NC_SERVER=y
  12.892 +CONFIG_NC_EXTRA=y
  12.893 +# CONFIG_NC_110_COMPAT is not set
  12.894 +CONFIG_NETSTAT=y
  12.895 +CONFIG_FEATURE_NETSTAT_WIDE=y
  12.896 +CONFIG_FEATURE_NETSTAT_PRG=y
  12.897 +CONFIG_NSLOOKUP=y
  12.898 +CONFIG_NTPD=y
  12.899 +CONFIG_FEATURE_NTPD_SERVER=y
  12.900 +# CONFIG_FEATURE_NTPD_CONF is not set
  12.901 +CONFIG_PING=y
  12.902 +# CONFIG_PING6 is not set
  12.903 +CONFIG_FEATURE_FANCY_PING=y
  12.904 +# CONFIG_PSCAN is not set
  12.905 +CONFIG_ROUTE=y
  12.906 +# CONFIG_SLATTACH is not set
  12.907 +# CONFIG_SSL_CLIENT is not set
  12.908 +# CONFIG_TCPSVD is not set
  12.909 +# CONFIG_UDPSVD is not set
  12.910 +CONFIG_TELNET=y
  12.911 +CONFIG_FEATURE_TELNET_TTYPE=y
  12.912 +CONFIG_FEATURE_TELNET_AUTOLOGIN=y
  12.913 +# CONFIG_FEATURE_TELNET_WIDTH is not set
  12.914 +CONFIG_TELNETD=y
  12.915 +CONFIG_FEATURE_TELNETD_STANDALONE=y
  12.916 +# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
  12.917 +CONFIG_TFTP=y
  12.918 +# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
  12.919 +CONFIG_TFTPD=y
  12.920 +
  12.921 +#
  12.922 +# Common options for tftp/tftpd
  12.923 +#
  12.924 +CONFIG_FEATURE_TFTPD_RIS=y
  12.925 +CONFIG_FEATURE_TFTP_GET=y
  12.926 +CONFIG_FEATURE_TFTP_PUT=y
  12.927 +CONFIG_FEATURE_TFTP_BLOCKSIZE=y
  12.928 +# CONFIG_TFTP_DEBUG is not set
  12.929 +# CONFIG_TLS is not set
  12.930 +# CONFIG_TRACEROUTE is not set
  12.931 +# CONFIG_TRACEROUTE6 is not set
  12.932 +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
  12.933 +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
  12.934 +# CONFIG_TUNCTL is not set
  12.935 +# CONFIG_FEATURE_TUNCTL_UG is not set
  12.936 +# CONFIG_VCONFIG is not set
  12.937 +CONFIG_WGET=y
  12.938 +# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
  12.939 +# CONFIG_FEATURE_WGET_STATUSBAR is not set
  12.940 +# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
  12.941 +# CONFIG_FEATURE_WGET_TIMEOUT is not set
  12.942 +# CONFIG_FEATURE_WGET_HTTPS is not set
  12.943 +# CONFIG_FEATURE_WGET_OPENSSL is not set
  12.944 +# CONFIG_WHOIS is not set
  12.945 +# CONFIG_ZCIP is not set
  12.946 +CONFIG_UDHCPD=y
  12.947 +# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
  12.948 +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
  12.949 +CONFIG_DHCPD_LEASES_FILE="/var/lib/udhcpd.leases"
  12.950 +CONFIG_DUMPLEASES=y
  12.951 +# CONFIG_DHCPRELAY is not set
  12.952 +CONFIG_UDHCPC=y
  12.953 +CONFIG_FEATURE_UDHCPC_ARPING=y
  12.954 +# CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set
  12.955 +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
  12.956 +# CONFIG_UDHCPC6 is not set
  12.957 +# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set
  12.958 +# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set
  12.959 +# CONFIG_FEATURE_UDHCPC6_RFC4833 is not set
  12.960 +
  12.961 +#
  12.962 +# Common options for DHCP applets
  12.963 +#
  12.964 +# CONFIG_FEATURE_UDHCP_PORT is not set
  12.965 +CONFIG_UDHCP_DEBUG=0
  12.966 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
  12.967 +# CONFIG_FEATURE_UDHCP_RFC3397 is not set
  12.968 +# CONFIG_FEATURE_UDHCP_8021Q is not set
  12.969 +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
  12.970 +
  12.971 +#
  12.972 +# Print Utilities
  12.973 +#
  12.974 +CONFIG_LPD=y
  12.975 +CONFIG_LPR=y
  12.976 +# CONFIG_LPQ is not set
  12.977 +
  12.978 +#
  12.979 +# Mail Utilities
  12.980 +#
  12.981 +# CONFIG_MAKEMIME is not set
  12.982 +# CONFIG_POPMAILDIR is not set
  12.983 +# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
  12.984 +# CONFIG_REFORMIME is not set
  12.985 +# CONFIG_FEATURE_REFORMIME_COMPAT is not set
  12.986 +# CONFIG_SENDMAIL is not set
  12.987 +CONFIG_FEATURE_MIME_CHARSET=""
  12.988 +
  12.989 +#
  12.990 +# Process Utilities
  12.991 +#
  12.992 +CONFIG_FREE=y
  12.993 +# CONFIG_FUSER is not set
  12.994 +# CONFIG_IOSTAT is not set
  12.995 +CONFIG_KILL=y
  12.996 +CONFIG_KILLALL=y
  12.997 +CONFIG_KILLALL5=y
  12.998 +# CONFIG_LSOF is not set
  12.999 +# CONFIG_MPSTAT is not set
 12.1000 +# CONFIG_NMETER is not set
 12.1001 +# CONFIG_PGREP is not set
 12.1002 +# CONFIG_PKILL is not set
 12.1003 +CONFIG_PIDOF=y
 12.1004 +# CONFIG_FEATURE_PIDOF_SINGLE is not set
 12.1005 +# CONFIG_FEATURE_PIDOF_OMIT is not set
 12.1006 +# CONFIG_PMAP is not set
 12.1007 +# CONFIG_POWERTOP is not set
 12.1008 +# CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set
 12.1009 +CONFIG_PS=y
 12.1010 +CONFIG_FEATURE_PS_WIDE=y
 12.1011 +# CONFIG_FEATURE_PS_LONG is not set
 12.1012 +# CONFIG_FEATURE_PS_TIME is not set
 12.1013 +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
 12.1014 +# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
 12.1015 +# CONFIG_PSTREE is not set
 12.1016 +# CONFIG_PWDX is not set
 12.1017 +# CONFIG_SMEMCAP is not set
 12.1018 +# CONFIG_BB_SYSCTL is not set
 12.1019 +CONFIG_TOP=y
 12.1020 +# CONFIG_FEATURE_TOP_INTERACTIVE is not set
 12.1021 +# CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set
 12.1022 +# CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS is not set
 12.1023 +# CONFIG_FEATURE_TOP_SMP_CPU is not set
 12.1024 +# CONFIG_FEATURE_TOP_DECIMALS is not set
 12.1025 +# CONFIG_FEATURE_TOP_SMP_PROCESS is not set
 12.1026 +CONFIG_FEATURE_TOPMEM=y
 12.1027 +CONFIG_UPTIME=y
 12.1028 +# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set
 12.1029 +# CONFIG_WATCH is not set
 12.1030 +# CONFIG_FEATURE_SHOW_THREADS is not set
 12.1031 +
 12.1032 +#
 12.1033 +# Runit Utilities
 12.1034 +#
 12.1035 +# CONFIG_CHPST is not set
 12.1036 +# CONFIG_SETUIDGID is not set
 12.1037 +# CONFIG_ENVUIDGID is not set
 12.1038 +# CONFIG_ENVDIR is not set
 12.1039 +# CONFIG_SOFTLIMIT is not set
 12.1040 +# CONFIG_RUNSV is not set
 12.1041 +# CONFIG_RUNSVDIR is not set
 12.1042 +# CONFIG_FEATURE_RUNSVDIR_LOG is not set
 12.1043 +# CONFIG_SV is not set
 12.1044 +CONFIG_SV_DEFAULT_SERVICE_DIR=""
 12.1045 +# CONFIG_SVC is not set
 12.1046 +# CONFIG_SVLOGD is not set
 12.1047 +# CONFIG_CHCON is not set
 12.1048 +# CONFIG_GETENFORCE is not set
 12.1049 +# CONFIG_GETSEBOOL is not set
 12.1050 +# CONFIG_LOAD_POLICY is not set
 12.1051 +# CONFIG_MATCHPATHCON is not set
 12.1052 +# CONFIG_RUNCON is not set
 12.1053 +# CONFIG_SELINUXENABLED is not set
 12.1054 +# CONFIG_SESTATUS is not set
 12.1055 +# CONFIG_SETENFORCE is not set
 12.1056 +# CONFIG_SETFILES is not set
 12.1057 +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
 12.1058 +# CONFIG_RESTORECON is not set
 12.1059 +# CONFIG_SETSEBOOL is not set
 12.1060 +
 12.1061 +#
 12.1062 +# Shells
 12.1063 +#
 12.1064 +CONFIG_SH_IS_ASH=y
 12.1065 +# CONFIG_SH_IS_HUSH is not set
 12.1066 +# CONFIG_SH_IS_NONE is not set
 12.1067 +# CONFIG_BASH_IS_ASH is not set
 12.1068 +# CONFIG_BASH_IS_HUSH is not set
 12.1069 +CONFIG_BASH_IS_NONE=y
 12.1070 +CONFIG_ASH=y
 12.1071 +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
 12.1072 +CONFIG_ASH_INTERNAL_GLOB=y
 12.1073 +CONFIG_ASH_BASH_COMPAT=y
 12.1074 +CONFIG_ASH_JOB_CONTROL=y
 12.1075 +CONFIG_ASH_ALIAS=y
 12.1076 +CONFIG_ASH_RANDOM_SUPPORT=y
 12.1077 +CONFIG_ASH_EXPAND_PRMT=y
 12.1078 +# CONFIG_ASH_IDLE_TIMEOUT is not set
 12.1079 +# CONFIG_ASH_MAIL is not set
 12.1080 +CONFIG_ASH_ECHO=y
 12.1081 +CONFIG_ASH_PRINTF=y
 12.1082 +CONFIG_ASH_TEST=y
 12.1083 +# CONFIG_ASH_HELP is not set
 12.1084 +CONFIG_ASH_GETOPTS=y
 12.1085 +CONFIG_ASH_CMDCMD=y
 12.1086 +# CONFIG_CTTYHACK is not set
 12.1087 +# CONFIG_HUSH is not set
 12.1088 +# CONFIG_HUSH_BASH_COMPAT is not set
 12.1089 +# CONFIG_HUSH_BRACE_EXPANSION is not set
 12.1090 +# CONFIG_HUSH_INTERACTIVE is not set
 12.1091 +# CONFIG_HUSH_SAVEHISTORY is not set
 12.1092 +# CONFIG_HUSH_JOB is not set
 12.1093 +# CONFIG_HUSH_TICK is not set
 12.1094 +# CONFIG_HUSH_IF is not set
 12.1095 +# CONFIG_HUSH_LOOPS is not set
 12.1096 +# CONFIG_HUSH_CASE is not set
 12.1097 +# CONFIG_HUSH_FUNCTIONS is not set
 12.1098 +# CONFIG_HUSH_LOCAL is not set
 12.1099 +# CONFIG_HUSH_RANDOM_SUPPORT is not set
 12.1100 +# CONFIG_HUSH_MODE_X is not set
 12.1101 +# CONFIG_HUSH_ECHO is not set
 12.1102 +# CONFIG_HUSH_PRINTF is not set
 12.1103 +# CONFIG_HUSH_TEST is not set
 12.1104 +# CONFIG_HUSH_HELP is not set
 12.1105 +# CONFIG_HUSH_EXPORT is not set
 12.1106 +# CONFIG_HUSH_EXPORT_N is not set
 12.1107 +# CONFIG_HUSH_READONLY is not set
 12.1108 +# CONFIG_HUSH_KILL is not set
 12.1109 +# CONFIG_HUSH_WAIT is not set
 12.1110 +# CONFIG_HUSH_TRAP is not set
 12.1111 +# CONFIG_HUSH_TYPE is not set
 12.1112 +# CONFIG_HUSH_TIMES is not set
 12.1113 +# CONFIG_HUSH_READ is not set
 12.1114 +# CONFIG_HUSH_SET is not set
 12.1115 +# CONFIG_HUSH_UNSET is not set
 12.1116 +# CONFIG_HUSH_ULIMIT is not set
 12.1117 +# CONFIG_HUSH_UMASK is not set
 12.1118 +# CONFIG_HUSH_GETOPTS is not set
 12.1119 +# CONFIG_HUSH_MEMLEAK is not set
 12.1120 +
 12.1121 +#
 12.1122 +# Options common to all shells
 12.1123 +#
 12.1124 +CONFIG_FEATURE_SH_MATH=y
 12.1125 +# CONFIG_FEATURE_SH_MATH_64 is not set
 12.1126 +CONFIG_FEATURE_SH_EXTRA_QUIET=y
 12.1127 +CONFIG_FEATURE_SH_STANDALONE=y
 12.1128 +# CONFIG_FEATURE_SH_NOFORK is not set
 12.1129 +# CONFIG_FEATURE_SH_READ_FRAC is not set
 12.1130 +# CONFIG_FEATURE_SH_HISTFILESIZE is not set
 12.1131 +
 12.1132 +#
 12.1133 +# System Logging Utilities
 12.1134 +#
 12.1135 +CONFIG_KLOGD=y
 12.1136 +# CONFIG_FEATURE_KLOGD_KLOGCTL is not set
 12.1137 +# CONFIG_LOGGER is not set
 12.1138 +# CONFIG_LOGREAD is not set
 12.1139 +# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
 12.1140 +CONFIG_SYSLOGD=y
 12.1141 +CONFIG_FEATURE_ROTATE_LOGFILE=y
 12.1142 +# CONFIG_FEATURE_REMOTE_LOG is not set
 12.1143 +CONFIG_FEATURE_SYSLOGD_DUP=y
 12.1144 +# CONFIG_FEATURE_SYSLOGD_CFG is not set
 12.1145 +CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
 12.1146 +# CONFIG_FEATURE_IPC_SYSLOG is not set
 12.1147 +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
 12.1148 +# CONFIG_FEATURE_KMSG_SYSLOG is not set
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/busybox-net/stuff/busybox.conf	Fri Feb 28 16:03:43 2020 +0100
    13.3 @@ -0,0 +1,12 @@
    13.4 +# /etc/busybox.conf: SliTaz GNU/linux Busybox configuration.
    13.5 +#
    13.6 +
    13.7 +[SUID]
    13.8 +# Allow command to be run by anyone.
    13.9 +su = ssx root.root
   13.10 +passwd = ssx root.root
   13.11 +loadkmap = ssx root.root
   13.12 +mount = ssx root.root
   13.13 +reboot = ssx root.root
   13.14 +halt = ssx root.root
   13.15 +poweroff = ssx root.root
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/busybox-net/stuff/daemon	Fri Feb 28 16:03:43 2020 +0100
    14.3 @@ -0,0 +1,88 @@
    14.4 +#!/bin/sh
    14.5 +# Start, stop and restart a busybox deamon on SliTaz, at boot time or 
    14.6 +# with the command line.
    14.7 +#
    14.8 +# To start daemon at boot time, just put the right name in the $RUN_DAEMONS
    14.9 +# variable of /etc/rcS.conf and configure options with /etc/daemons.conf.
   14.10 +#
   14.11 +. /etc/init.d/rc.functions
   14.12 +
   14.13 +NAME=$(basename $0)
   14.14 +DESC="$NAME deamon"
   14.15 +DAEMON=$(which $NAME || echo $NAME)
   14.16 +eval $(grep -i ^${NAME}_OPTIONS /etc/daemons.conf | sed 's/.*_OPT/OPT/')
   14.17 +PIDFILE=/var/run/$NAME.pid
   14.18 +
   14.19 +active_inetd()
   14.20 +{
   14.21 +if grep $DAEMON /etc/inetd.conf | grep -q ^\#; then
   14.22 +    sed -i "s,^#\(.*$DAEMON.*\)$,\1," /etc/inetd.conf
   14.23 +    /etc/init.d/inetd stop > /dev/null
   14.24 +    exec /etc/init.d/inetd start
   14.25 +else
   14.26 +    echo "$NAME is already active."
   14.27 +    exit 1
   14.28 +fi
   14.29 +}
   14.30 +
   14.31 +inactive_inetd()
   14.32 +{
   14.33 +if grep $DAEMON /etc/inetd.conf | grep -q ^\#; then
   14.34 +    echo "$NAME is not active."
   14.35 +    exit 1
   14.36 +else
   14.37 +    sed -i "s,^.*$DAEMON.*$,#&," /etc/inetd.conf
   14.38 +    /etc/init.d/inetd stop > /dev/null
   14.39 +    exec /etc/init.d/inetd start
   14.40 +fi
   14.41 +}
   14.42 +
   14.43 +case "$1" in
   14.44 +  start)
   14.45 +    [ $DAEMON != inetd ] &&
   14.46 +    grep -qs $DAEMON /etc/inetd.conf && active_inetd
   14.47 +    if active_pidfile $PIDFILE $NAME ; then
   14.48 +      echo "$NAME is already running."
   14.49 +      exit 1
   14.50 +    fi
   14.51 +    echo -n "Starting $DESC: $NAME... "
   14.52 +    $DAEMON $OPTIONS 
   14.53 +    [ -f $PIDFILE ] || ps ax | sed "/$NAME/!d;/etc\/init/d;s| .*||" > $PIDFILE
   14.54 +    active_pidfile $PIDFILE $NAME
   14.55 +    status
   14.56 +    ;;
   14.57 +  stop)
   14.58 +    [ $DAEMON != inetd ] &&
   14.59 +    grep -qs $DAEMON /etc/inetd.conf && inactive_inetd
   14.60 +    if ! active_pidfile $PIDFILE $NAME ; then
   14.61 +      echo "$NAME is not running."
   14.62 +      exit 1
   14.63 +    fi
   14.64 +    echo -n "Stopping $DESC: $NAME... "
   14.65 +    kill `cat $PIDFILE`
   14.66 +    status
   14.67 +    ;;
   14.68 +  restart)
   14.69 +    [ $DAEMON != inetd ] &&
   14.70 +    grep -qs $DAEMON /etc/inetd.conf && exit 0
   14.71 +    if ! active_pidfile $PIDFILE $NAME ; then
   14.72 +      echo "$NAME is not running."
   14.73 +      exit 1
   14.74 +    fi
   14.75 +    echo -n "Restarting $DESC: $NAME... "
   14.76 +    kill `cat $PIDFILE`
   14.77 +    sleep 2
   14.78 +    $DAEMON $OPTIONS
   14.79 +    [ -f $PIDFILE ] || ps ax | sed "/$NAME/!d;/etc\/init/d;s| .*||" > $PIDFILE
   14.80 +    active_pidfile $PIDFILE $NAME
   14.81 +    status
   14.82 +    ;;
   14.83 +*)
   14.84 +    echo ""
   14.85 +    echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]"
   14.86 +    echo ""
   14.87 +    exit 1
   14.88 +    ;;
   14.89 +esac
   14.90 +
   14.91 +exit 0
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/busybox-net/stuff/dnsd.conf	Fri Feb 28 16:03:43 2020 +0100
    15.3 @@ -0,0 +1,5 @@
    15.4 +# /etc/dnsd.conf: SliTaz DNS server configuration.
    15.5 +#
    15.6 +
    15.7 +slitaz 192.168.0.6
    15.8 +gateway 192.168.0.1
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/busybox-net/stuff/httpd_helper.sh	Fri Feb 28 16:03:43 2020 +0100
    16.3 @@ -0,0 +1,187 @@
    16.4 +#!/bin/sh
    16.5 +#
    16.6 +# busybox/httpd helper for shell cgi scripts, providing:
    16.7 +#
    16.8 +# GET [var [index]] | POST [var [index]] | COOKIE [var [index]]
    16.9 +# FILE [var {name|tmpname|size|type}]
   16.10 +# header [strings]... | urlencode string | htmlentities string | httpinfo
   16.11 +#
   16.12 +
   16.13 +alias urlencode='httpd -e'
   16.14 +
   16.15 +# Send headers, example :
   16.16 +# header "Content-type: text/html" "Set-Cookie: name=value; HttpOnly"
   16.17 +header()
   16.18 +{
   16.19 +local i
   16.20 +[ -z "$1" ] && set -- "Content-type: text/html"
   16.21 +for i in "$@" "" ; do echo -e "$i\r"; done
   16.22 +}
   16.23 +
   16.24 +htmlentities()
   16.25 +{
   16.26 +echo $1 | sed 's|&|\&amp;|g;s|<|\&lt;|g;s|>|\&gt;|g;s|"|\&quot;|g'
   16.27 +}
   16.28 +
   16.29 +_ARRAY()
   16.30 +{
   16.31 +[ -z "$2" ] && eval echo \$${1}__NAMES ||
   16.32 +	[ -n "$(eval echo \$${1}__NAMES)" ] && eval echo \$${1}_${2}_${3:-1}
   16.33 +}
   16.34 +
   16.35 +GET()		{ _ARRAY GET	"$1" $2; }
   16.36 +POST()		{ _ARRAY POST	"$1" $2; }
   16.37 +FILE()		{ _ARRAY FILE	"$1" $2; }
   16.38 +COOKIE()	{ _ARRAY COOKIE	"$1" $2; }
   16.39 +
   16.40 +httpinfo()
   16.41 +{
   16.42 +local i
   16.43 +local j
   16.44 +local x
   16.45 +for i in SERVER_PROTOCOL SERVER_SOFTWARE SERVER_NAME SERVER_PORT AUTH_TYPE \
   16.46 +	 GATEWAY_INTERFACE REMOTE_HOST REMOTE_ADDR REMOTE_PORT \
   16.47 +	 HTTP_REFERER HTTP_HOST HTTP_USER_AGENT HTTP_ACCEPT \
   16.48 +	 HTTP_ACCEPT_LANGUAGE HTTP_COOKIE AUTH_TYPE REMOTE_USER REMOTE_IDENT \
   16.49 +	 REQUEST_METHOD REQUEST_URI QUERY_STRING CONTENT_LENGTH CONTENT_TYPE \
   16.50 +	 SCRIPT_NAME SCRIPT_FILENAME PATH_INFO PATH_TRANSLATED \
   16.51 +	 USER HOME LOGNAME SHELL PWD ; do
   16.52 +	eval x=\$$i
   16.53 +	[ -n "$x" ] && echo "$i='$x'"
   16.54 +done
   16.55 +for x in GET POST COOKIE ; do
   16.56 +	for i in $($x) ; do
   16.57 +		if [ $($x $i count) -gt 1 ]; then
   16.58 +			for j in $(seq 1 $($x $i count)); do
   16.59 +				echo "$x($i,$j)='$($x $i $j)'"
   16.60 +			done
   16.61 +		else
   16.62 +			echo "$x($i)='$($x $i)'"
   16.63 +		fi
   16.64 +	done
   16.65 +done
   16.66 +for i in $(FILE) ; do
   16.67 +	for j in name size type tmpname ; do
   16.68 +		echo "FILE($i,$j)='$(FILE $i $j)'"
   16.69 +	done
   16.70 +done
   16.71 +}
   16.72 +
   16.73 +read_query_string()
   16.74 +{
   16.75 +local i
   16.76 +local names
   16.77 +local cnt
   16.78 +names=""
   16.79 +IFS="&"
   16.80 +for i in $2 ; do
   16.81 +	var=${i%%[^A-Za-z_0-9]*}
   16.82 +	case " $names " in
   16.83 +	*\ $var\ *)	eval cnt=\$${1}_${var}_count ;;
   16.84 +	*)		cnt=0
   16.85 +			names="$names $var" ;;
   16.86 +	esac
   16.87 +	eval ${1}_${var}_count=$((++cnt))
   16.88 +	eval ${1}_${var}_$cnt=\'$(httpd -d "${i#*=}" | sed "s/'/\'\\\\\'\'/g")\'
   16.89 +done
   16.90 +unset IFS
   16.91 +eval ${1}__NAMES=\'${names# }\'
   16.92 +}
   16.93 +
   16.94 +[ -z "$GET__NAMES" ] && read_query_string GET "$QUERY_STRING"
   16.95 +[ -z "$COOKIE_NAMES" ] &&
   16.96 +	read_query_string COOKIE "$(echo "$HTTP_COOKIE" | sed 's/; /\&/g')"
   16.97 +
   16.98 +ddcut()
   16.99 +{
  16.100 +page=4096
  16.101 +skip=$1
  16.102 +count=$(($2 - $1 -2))
  16.103 +tmp=$(($skip / $page))
  16.104 +[ $tmp -ne 0 ] && dd bs=$page skip=$tmp count=0 
  16.105 +skip=$(($skip - ($tmp * $page) ))
  16.106 +dd bs=1 skip=$skip count=0
  16.107 +tmp=$(( ($page - $skip) % $page ))
  16.108 +if [ $tmp -ne 0 -a $tmp -le $count ]; then
  16.109 +	dd bs=1 count=$tmp
  16.110 +	count=$(($count - $tmp))
  16.111 +fi
  16.112 +tmp=$(($count / $page))
  16.113 +[ $tmp -ne 0 ] && dd bs=$page count=$tmp
  16.114 +dd bs=1 count=$(($count - ($tmp * $page) ))
  16.115 +}
  16.116 +
  16.117 +if [ "$REQUEST_METHOD$POST__NAMES" == "POST" ]; then
  16.118 +	prefix=/tmp/httpd_post
  16.119 +	mkdir $prefix$$
  16.120 +	now=$(stat -c %Y $prefix$$)
  16.121 +	for i in $prefix* ; do
  16.122 +		[ $(stat -c %Y $i) -lt $(($now - 3600)) ] && rm -rf $i
  16.123 +	done
  16.124 +	post=$prefix$$/post
  16.125 +	n=1
  16.126 +	cat > ${post}0
  16.127 +	read delim < ${post}0
  16.128 +	delim=${delim%?}
  16.129 +	case "$delim" in
  16.130 +	-*)	awk "/$delim/ { o+=index(\$0,\"$delim\")-1; print o }
  16.131 +	   		  { o+=1+length() }" < ${post}0 | while read offset; do
  16.132 +		    if [ $offset -ne 0 ]; then
  16.133 +			ddcut $last $offset < ${post}0 > $post$n 2> /dev/null
  16.134 +			n=$(($n+1))
  16.135 +		    fi
  16.136 +		    last=$offset
  16.137 +		done
  16.138 +		rm -f ${post}0
  16.139 +		CR=`printf '\r'`
  16.140 +		for i in $post* ; do
  16.141 +		    head -n 2 $i | grep -q filename= || echo '' >> $i
  16.142 +		    filename=
  16.143 +		    while read line; do
  16.144 +			case "$line" in
  16.145 +			*Content-Disposition*)
  16.146 +			    name=$(echo $line | sed 's/.* name="\([^"]*\)".*$/\1/')
  16.147 +			    name=${name%%[^A-Za-z_0-9]*}
  16.148 +			    case "$line" in
  16.149 +			    *filename=*) filename=$(echo $line | sed 's/.* filename="\([^"]*\)".*$/\1/') ;;
  16.150 +			    esac ;;
  16.151 +			*Content-Type*)
  16.152 +			    type=$(echo $line | sed 's/.*-Type: \(.*\).$/\1/') ;;
  16.153 +			$CR)
  16.154 +			    if [ -n "$filename" ]; then
  16.155 +				tmp=$(mktemp $prefix$$/uploadXXXXXX)
  16.156 +				cat > $tmp
  16.157 +				FILE__NAMES="$FILE__NAMES $name"
  16.158 +				FILE__NAMES="${FILE__NAMES# }"
  16.159 +				eval FILE_${name}_tmpname=$tmp
  16.160 +				eval FILE_${name}_name=$filename
  16.161 +				eval FILE_${name}_size=$(stat -c %s $tmp)
  16.162 +				eval FILE_${name}_type=$type
  16.163 +			    elif [ -n "$name" ]; then
  16.164 +			        eval cnt=\$POST_${name}_count
  16.165 +			        cnt=$(($cnt + 1))
  16.166 +				eval var=\$POST_${name}_$cnt
  16.167 +				while read line; do
  16.168 +					[ -n "$var" ] && var="$var
  16.169 +"
  16.170 +					var="$var$line"
  16.171 +				done
  16.172 +				eval POST_${name}_$cnt="\$var"
  16.173 +				eval POST_${name}_count=$cnt
  16.174 +				case " $POST__NAMES " in
  16.175 +				*\ $name\ *) ;;
  16.176 +				*) POST__NAMES="$POST__NAMES $name"
  16.177 +				   POST__NAMES="${POST__NAMES# }" ;;
  16.178 +				esac
  16.179 +			    fi
  16.180 +			    break ;;
  16.181 +			*)
  16.182 +			esac
  16.183 +		    done < $i
  16.184 +		    rm -f $i
  16.185 +		done
  16.186 +		rmdir $(dirname $post) ;;
  16.187 +	*)	rm -rf $(dirname $post)
  16.188 +		read_query_string POST "$delim" ;;
  16.189 +	esac
  16.190 +fi
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/busybox-net/stuff/inetd.conf	Fri Feb 28 16:03:43 2020 +0100
    17.3 @@ -0,0 +1,31 @@
    17.4 +# Internet server configuration database
    17.5 +#
    17.6 +#
    17.7 +# If you want to disable an entry so it isn't touched during
    17.8 +# package updates just comment it out with a single '#' character.
    17.9 +#
   17.10 +# If you make changes to this file, either reboot your machine or
   17.11 +# send the inetd process a HUP signal:
   17.12 +# Do a "ps x" as root and look up the pid of inetd. Then do a
   17.13 +#     kill -HUP <pid of inetd>
   17.14 +# inetd will re-read this file whenever it gets that signal.
   17.15 +# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
   17.16 +#
   17.17 +#:INTERNAL: Internal services
   17.18 +# It is generally considered safer to keep these off.
   17.19 +echo     stream  tcp	nowait	root	internal
   17.20 +echo     dgram   udp	wait	root	internal
   17.21 +#discard  stream  tcp	nowait	root	internal
   17.22 +#discard  dgram   udp	wait	root	internal
   17.23 +daytime  stream  tcp	nowait	root	internal
   17.24 +daytime  dgram   udp	wait	root	internal
   17.25 +#chargen  stream  tcp	nowait	root	internal
   17.26 +#chargen  dgram   udp	wait	root	internal
   17.27 +time     stream  tcp	nowait	root	internal
   17.28 +time     dgram   udp	wait	root	internal
   17.29 +
   17.30 +# These are standard services.
   17.31 +#
   17.32 +tftp	dgram	udp	wait	root	/usr/bin/tftpd	/usr/bin/tftpd -r /boot
   17.33 +#systat	stream	tcp	nowait	nobody	/bin/ps
   17.34 +#netstat	stream	tcp	nowait	root	/bin/netstat	/bin/netstat	-a
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/busybox-net/stuff/init	Fri Feb 28 16:03:43 2020 +0100
    18.3 @@ -0,0 +1,159 @@
    18.4 +#!/bin/sh
    18.5 +
    18.6 +launch_init()
    18.7 +{
    18.8 +	umount /proc
    18.9 +	echo -e "\\033[70G[ \\033[1;33mOK\\033[0;39m ]"
   18.10 +	exec /sbin/switch_root mnt /sbin/init
   18.11 +}
   18.12 +
   18.13 +failed()
   18.14 +{
   18.15 +	umount /proc
   18.16 +	echo -e "\\033[70G[ \\033[1;31mFailed\\033[0;39m ]"
   18.17 +	conspy -d 1 > /init.log
   18.18 +}
   18.19 +
   18.20 +try_init()
   18.21 +{
   18.22 +	if [ ! -d /mnt/etc ] && grep -q cryptoroot= /proc/cmdline; then
   18.23 +		modprobe dm-mod
   18.24 +		modprobe dm-crypt
   18.25 +		modprobe aes-i586
   18.26 +		root="$(sed 's/.*cryptoroot=\([^ ]*\).*/\1/' < /proc/cmdline)"
   18.27 +		dev=${root#/dev/}
   18.28 +		dmlabel=crypto-$dev
   18.29 +		if cryptsetup isLuks $root 2> /dev/null; then
   18.30 +			cryptsetup luksOpen $root $dmlabel
   18.31 +		else
   18.32 +			read -s -t 60 -p "Pass phrase : " passphrase
   18.33 +			key=$(echo $passphrase | hashalot -x -n 32 sha512)
   18.34 +			blocks=$(cat $(find /sys/block | grep /$dev/size))
   18.35 +			echo 0 $blocks crypt aes-plain $key 0 $root 0 | \
   18.36 +				dmsetup create $dmlabel
   18.37 +		fi
   18.38 +		mount /dev/mapper/$dmlabel /mnt
   18.39 +	fi
   18.40 +	if [ -d /mnt/etc ]; then
   18.41 +		umount /sys
   18.42 +		[ -n "$1" ] && for i in $@ ; do
   18.43 +			cp -a $i /mnt$(dirname $i)
   18.44 +		done
   18.45 +		mount /mnt -o remount,ro
   18.46 +		launch_init
   18.47 +	fi
   18.48 +	failed
   18.49 +}
   18.50 +
   18.51 +mount_mapper()
   18.52 +{
   18.53 +	mount $root /mnt
   18.54 +	try_init /dev/mapper $@
   18.55 +}
   18.56 +
   18.57 +lvmsetup()
   18.58 +{
   18.59 +	grep -q lvmroot= /proc/cmdline || return 1
   18.60 +	modprobe dm-mod
   18.61 +	vgscan --ignorelockingfailure
   18.62 +	vgchange -ay --ignorelockingfailure
   18.63 +	root="/dev/mapper/$(sed 's/.*lvmroot=\([^ ]*\).*/\1/' < /proc/cmdline)"
   18.64 +	return 0
   18.65 +}
   18.66 +
   18.67 +load_raid()
   18.68 +{
   18.69 +while read line; do
   18.70 +	case "$line" in
   18.71 +	*raid10*)	modprobe raid10 ;;
   18.72 +	*raid0*)	modprobe raid0 ;;
   18.73 +	*raid1*)	modprobe raid1 ;;
   18.74 +	*raid[456]*)	modprobe raid456 ;;
   18.75 +	esac
   18.76 +done
   18.77 +}
   18.78 +
   18.79 +mount -t proc proc /proc
   18.80 +mount -t sysfs sysfs /sys
   18.81 +if grep -q dmraid= /proc/cmdline; then
   18.82 +	root="$(sed 's/.*dmraid=\([^ ]*\).*/\1/' < /proc/cmdline)"
   18.83 +	echo -n "Switching / to dmraid $root..."
   18.84 +	dmraid -s | grep ^type | awk '{ print $3 }' | load_raid
   18.85 +	case "$root" in
   18.86 +	/dev/*);;
   18.87 +	*) root=/dev/mapper/$(dmraid -s|grep ^name|awk '{print $3}')p${root#p};;
   18.88 +	esac
   18.89 +	dmraid -ay
   18.90 +	lvmsetup 
   18.91 +	mount_mapper
   18.92 +fi
   18.93 +if grep -q softraid= /proc/cmdline; then
   18.94 +	root="$(sed 's/.*softraid=\([^ ]*\).*/\1/' < /proc/cmdline)"
   18.95 +	echo -n "Switching / to softraid $root..."
   18.96 +	mdadm --examine --scan --config=partitions > /etc/mdadm.conf
   18.97 +	grep -qs " $root " /etc/mdadm.conf ||
   18.98 +		root=$(awk '/dev.md/ { print $2; exit }' < /etc/mdadm.conf)
   18.99 +	grep level=raid /etc/mdadm.conf | load_raid
  18.100 +	mdadm --assemble --scan
  18.101 +	lvmsetup 
  18.102 +	mount_mapper /etc/mdadm.conf
  18.103 +fi
  18.104 +if lvmsetup; then
  18.105 +	echo -n "Switching / to lvm $root..."
  18.106 +	mount_mapper
  18.107 +fi
  18.108 +if grep -q mount= /proc/cmdline; then
  18.109 +	root="$(sed 's/.*mount=\([^ ]*\).*/\1/' < /proc/cmdline)"
  18.110 +	dev=$(blkid | grep $root | sed 's/:.*//;q')
  18.111 +	echo -n "Mounting $dev ($root) ..."
  18.112 +	if ! mount $dev /mnt; then
  18.113 +		if echo $dev | grep -q "/dev/sd"; then
  18.114 +			delay=`cat /sys/module/usb_storage/parameters/delay_use`
  18.115 +			delay=$((1+$delay))
  18.116 +			echo -n "sleep for $delay seconds..."
  18.117 +			sleep $delay
  18.118 +		fi
  18.119 +		mount $dev /mnt
  18.120 +	fi
  18.121 +fi
  18.122 +if grep -q loopfs= /proc/cmdline; then
  18.123 +	loopfs="$(sed 's/.*loopfs=\([^ ]*\).*/\1/' < /proc/cmdline)"
  18.124 +	echo -n "Switching / to loop $loopfs..."
  18.125 +	losetup /dev/loop0 /mnt/$loopfs
  18.126 +	mount /dev/loop0 /mnt 2> /dev/null
  18.127 +fi
  18.128 +grep -q cryptoroot= /proc/cmdline && try_init
  18.129 +umount /sys
  18.130 +if grep -q subroot= /proc/cmdline; then
  18.131 +	subroot="/$(sed 's/.*subroot=\([^ ]*\).*/\1/' < /proc/cmdline)" &&
  18.132 +	if [ -s /usr/share/boot/busybox-static ]; then
  18.133 +		mv /usr/share/boot/busybox-static .
  18.134 +		/busybox-static rm -rf /etc /lib /*bin /usr /var
  18.135 +		exec /busybox-static chroot /mnt$subroot /sbin/init
  18.136 +	else
  18.137 +		exec chroot /mnt$subroot /sbin/init
  18.138 +	fi
  18.139 +fi
  18.140 +echo -n "Switching / to tmpfs..."
  18.141 +size="$(grep rootfssize= < /proc/cmdline | \
  18.142 +	sed 's/.*rootfssize=\([0-9]*[kmg%]\).*/-o size=\1/')"
  18.143 +free=$(busybox free | busybox awk '/Mem:/ { print int(($4*100)/$3) }')
  18.144 +umount /proc
  18.145 +[ -n "$size" ] || size="-o size=90%"
  18.146 +if [ $free -lt 100 ] || ! mount -t tmpfs $size tmpfs /mnt; then
  18.147 +	echo -e "\\033[70G[ \\033[1;33mSkipped\\033[0;39m]"
  18.148 +	umount /proc
  18.149 +	exec /sbin/init
  18.150 +fi
  18.151 +for i in $(ls -a /); do
  18.152 +	case "$i" in
  18.153 +	.|..)	;;
  18.154 +	mnt)	mkdir /mnt/mnt;;
  18.155 +	*)	if ! cp -a /$i /mnt 2> /dev/null; then
  18.156 +			failed
  18.157 +			umount /mnt
  18.158 +			exec /sbin/init
  18.159 +		fi;;
  18.160 +	esac
  18.161 +done
  18.162 +launch_init
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/busybox-net/stuff/udhcp.script	Fri Feb 28 16:03:43 2020 +0100
    19.3 @@ -0,0 +1,41 @@
    19.4 +#!/bin/sh
    19.5 +
    19.6 +[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
    19.7 +
    19.8 +[ "$subnet" == "255.255.255.255" ] && subnet="255.255.0.0" # qemu weirdness
    19.9 +RESOLV_CONF="/etc/resolv.conf"
   19.10 +[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
   19.11 +[ -n "$subnet" ] && NETMASK="netmask $subnet"
   19.12 +
   19.13 +case "$1" in
   19.14 +	deconfig)
   19.15 +		ifconfig $interface 0.0.0.0
   19.16 +		for i in /etc/ipdown.d/*; do
   19.17 +			[ -x $i ] && $i $interface
   19.18 +		done ;;
   19.19 +
   19.20 +	renew|bound)
   19.21 +		ifconfig $interface $ip $BROADCAST $NETMASK
   19.22 +
   19.23 +		if [ "$router" ] ; then
   19.24 +			while route del default gw 0.0.0.0 dev $interface ; do
   19.25 +				:
   19.26 +			done
   19.27 +
   19.28 +			metric=0
   19.29 +			for i in $router ; do
   19.30 +				route add default gw $i dev $interface metric $((metric++))
   19.31 +			done
   19.32 +		fi
   19.33 +
   19.34 +		rm -f $RESOLV_CONF
   19.35 +		[ "$domain" ] && echo search $domain >> $RESOLV_CONF
   19.36 +		for i in $dns ; do
   19.37 +			echo nameserver $i
   19.38 +		done >> $RESOLV_CONF
   19.39 +		[ "$1" == "bound" ] && for i in /etc/ipup.d/*; do
   19.40 +			[ -x $i ] && $i $interface $ip $dns
   19.41 +		done ;;
   19.42 +esac
   19.43 +
   19.44 +exit 0
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/busybox-net/stuff/udhcpd.conf	Fri Feb 28 16:03:43 2020 +0100
    20.3 @@ -0,0 +1,68 @@
    20.4 +# /etc/udhcpd.conf: SliTaz DHCP server configuration.
    20.5 +#
    20.6 +
    20.7 +# The start and end of the IP lease block
    20.8 +start           192.168.0.20    #default: 192.168.0.20
    20.9 +end             192.168.0.254   #default: 192.168.0.254
   20.10 +
   20.11 +# The interface that udhcpd will use
   20.12 +interface       eth0            #default: eth0
   20.13 +
   20.14 +# The maximum number of leases (includes addressesd reserved
   20.15 +# by OFFER's, DECLINE's, and ARP conficts
   20.16 +#max_leases     254             #default: 254
   20.17 +
   20.18 +# The amount of time that an IP will be reserved (leased) for if a
   20.19 +# DHCP decline message is received (seconds).
   20.20 +#decline_time   3600            #default: 3600 (1 hour)
   20.21 +
   20.22 +# The amount of time that an IP will be reserved (leased) for if an
   20.23 +# ARP conflct occurs. (seconds
   20.24 +#conflict_time  3600            #default: 3600 (1 hour)
   20.25 +
   20.26 +# How long an offered address is reserved (leased) in seconds
   20.27 +#offer_time     60              #default: 60 (1 minute)
   20.28 +
   20.29 +# If a lease to be given is below this value, the full lease time is
   20.30 +# instead used (seconds).
   20.31 +#min_lease      60              #defult: 60
   20.32 +
   20.33 +# The location of the leases file
   20.34 +lease_file     /var/lib/udhcpd.leases     #default: /var/lib/misc/udhcpd.leases
   20.35 +
   20.36 +# The location of the pid file
   20.37 +pidfile        /var/run/udhcpd.pid     #default: /var/run/udhcpd.pid
   20.38 +
   20.39 +# The remainer of options are DHCP options and can be specifed with the
   20.40 +# keyword 'opt' or 'option'. If an option can take multiple items, such
   20.41 +# as the dns option, they can be listed on the same line, or multiple
   20.42 +# lines. The only option with a default is 'lease'.
   20.43 +
   20.44 +#Examples
   20.45 +#opt     dns     192.168.10.2 192.168.10.10
   20.46 +option  subnet  255.255.255.0
   20.47 +#option  dns     129.219.13.81   # appened to above DNS servers for a total of 3
   20.48 +option  lease   864000          # 10 days of seconds
   20.49 +
   20.50 +# Currently supported options
   20.51 +#opt subnet
   20.52 +#opt timezone
   20.53 +#opt router
   20.54 +#opt timesrv
   20.55 +#opt namesrv
   20.56 +#opt dns
   20.57 +#opt logsrv
   20.58 +#opt cookiesrv
   20.59 +#opt lprsrv
   20.60 +#opt bootsize
   20.61 +#opt domain
   20.62 +#opt swapsrv
   20.63 +#opt rootpath
   20.64 +#opt ipttl
   20.65 +#opt mtu
   20.66 +#opt broadcast
   20.67 +#opt wins
   20.68 +#opt lease
   20.69 +#opt ntpsrv
   20.70 +#opt tftp
   20.71 +#opt bootfile
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/busybox-net/stuff/zcip.script	Fri Feb 28 16:03:43 2020 +0100
    21.3 @@ -0,0 +1,17 @@
    21.4 +#!/bin/sh
    21.5 +
    21.6 +[ "$1" = "init" ] && exit 0
    21.7 +[ -n "$ip" ] || exit 1
    21.8 +case "$1" in
    21.9 +config)		ifconfig $interface $ip netmask 255.255.0.0 up
   21.10 +		for i in /etc/ipup.d/*; do
   21.11 +			[ -e $i ] && . $i $interface $ip
   21.12 +		done
   21.13 +		;;
   21.14 +deconfig)	ifconfig $interface down
   21.15 +		for i in /etc/ipdown.d/*; do
   21.16 +			[ -e $i ] && . $i $interface
   21.17 +		done
   21.18 +		;;
   21.19 +*)		exit 1;;
   21.20 +esac
    22.1 --- a/busybox/receipt	Fri Nov 15 11:54:42 2019 +0100
    22.2 +++ b/busybox/receipt	Fri Feb 28 16:03:43 2020 +0100
    22.3 @@ -8,13 +8,12 @@
    22.4  MAINTAINER="pascal.bellard@slitaz.org"
    22.5  LICENSE="GPL2"
    22.6  [ -n "$TARGET" ] || TARGET="i486"
    22.7 -DEPENDS="slitaz-base-files"
    22.8 +DEPENDS=""
    22.9  BUILD_DEPENDS="bzip2 uclibc-cross-compiler-$TARGET wget"
   22.10  TARBALL="$PACKAGE-$VERSION.tar.bz2"
   22.11  WEB_SITE="http://www.busybox.net/"
   22.12  WGET_URL="https://git.busybox.net/busybox/snapshot/busybox-$GIT_TAG.tar.bz2"
   22.13 -CONFIG_FILES="/etc/dnsd.conf /etc/inetd.conf /etc/udhcpd.conf /etc/resolv.conf"
   22.14 -AUTO_SELECTION="never"
   22.15 +AUTO_SELECTION="always"
   22.16  
   22.17  apply_bb_patchs()
   22.18  {
   22.19 @@ -52,11 +51,11 @@
   22.20      } || return 1
   22.21      echo "Chmod 4755 on busybox binary..."
   22.22      chmod 4755 _install/bin/busybox
   22.23 -    mkdir -p rootfs/lib
   22.24 +    mkdir -p _install/lib
   22.25      LD_LIBRARY_PATH=/usr/share/uclibc-cross-compiler-$TARGET/lib \
   22.26  	uclibc-$TARGET-ldd busybox 2> /dev/null | \
   22.27  	awk '/=>/ { print $3 }' | while read file ; do
   22.28 -	cp -a $file rootfs/lib
   22.29 +	cp -a $file _install/lib
   22.30  	while [ -L "$file" ]; do
   22.31  		dir="$(dirname $file)/"
   22.32  		file="$(readlink $file)"
   22.33 @@ -64,16 +63,18 @@
   22.34  		/*) ;;
   22.35  		*)  file="$dir$file";;
   22.36  		esac
   22.37 -		cp -a "$file" rootfs/lib
   22.38 +		cp -a "$file" _install/lib
   22.39  	done
   22.40      done
   22.41 -    chown 0.0 rootfs/lib/*
   22.42 +    chown 0.0 _install/lib/*
   22.43  }
   22.44  
   22.45  # Rules to gen a SliTaz package suitable for Tazpkg.
   22.46  genpkg_rules()
   22.47  {
   22.48 +	mkdir $fs/boot $fs/bin
   22.49  	cp -a $WOK/base-tiny/stuff/. $fs/
   22.50 +    cp -a $src/_install/lib $fs/
   22.51      cp -a $src/_install/bin/busybox $fs/bin
   22.52      for i in /bin/sh /bin/login /bin/false ; do
   22.53  	ln $fs/bin/busybox $fs$i
   22.54 @@ -82,94 +83,123 @@
   22.55      # Busybox config files.
   22.56      cp $stuff/busybox.conf $fs/etc
   22.57      chmod 600 $fs/etc/busybox.conf
   22.58 -    #cp $stuff/dnsd.conf $fs/etc
   22.59 -    #cp $stuff/udhcpd.conf $fs/etc
   22.60      touch $fs/etc/resolv.conf
   22.61 -    cp $stuff/inetd.conf $fs/etc
   22.62      cp $stuff/daemon $fs/etc/init.d
   22.63 -    for i in crond dnsd ftpd httpd inetd klogd ntpd syslogd telnetd tftpd \
   22.64 -	     udhcpd zcip ; do
   22.65 +    for i in crond klogd syslogd ; do
   22.66  	grep -qi config_$i=y $src/.config &&
   22.67  	ln -s daemon $fs/etc/init.d/$i
   22.68      done
   22.69 -    #rm $fs/linuxrc
   22.70 -    #mkdir -p $fs/etc/modprobe.d
   22.71 -    # Udhcpc stuff.
   22.72 -    mkdir -p $fs/usr/share/udhcpc
   22.73 -    cp $stuff/udhcp.script $fs/usr/share/udhcpc/default.script
   22.74 -    chmod +x $fs/usr/share/udhcpc/default.script
   22.75 -    # ZeroConf stuff.
   22.76 -    #cp $stuff/zcip.script $fs/etc
   22.77 -    # Httpd stuff.
   22.78 -    #cp $stuff/httpd_helper.sh $fs/usr/bin
   22.79 -    #chmod +x $fs/usr/bin/httpd_helper.sh
   22.80 -    # .desktop stuff
   22.81 -    mkdir -p $fs/usr/share
   22.82 -    #cp -a $stuff/applications $fs/usr/share
   22.83 -    # prepare rootfs.cpio for kernel-* packages
   22.84 -    mkdir -p $src/rootfs/lib
   22.85 -    cp -a $fs/. $src/rootfs/.
   22.86 -    cd $src
   22.87 -    false &&
   22.88 -    for i in slitaz-base-files slitaz-boot-scripts ; do
   22.89 -    	tazpkg get $i
   22.90 -    	tazpkg extract $i*.tazpkg
   22.91 -    	cp -a $i*/fs/. rootfs/.
   22.92 -    	grep -qs ^post_install $i*/receipt || continue
   22.93 -    	( . $i*/receipt ; post_install rootfs )
   22.94 -    done
   22.95 +    sed -i 's|network.sh ||' $fs/etc/rcS.conf
   22.96 +    sed -i 's|Executing all initialization scripts.*|&\
   22.97 +	# Set hostname\
   22.98 +	echo -n "Setting hostname..."\
   22.99 +	hostname -F /etc/hostname\
  22.100 +	status\n|' $fs/etc/rcS.conf
  22.101 +    rm -f $fs/etc/init.d/network.sh $fs/etc/network.conf \
  22.102 +	$fs/etc/services $fs/etc/networks $fs/etc/inetd.conf \
  22.103 +	$fs/etc/host.conf $fs/etc/hosts
  22.104  	
  22.105 -    ln rootfs/bin/busybox rootfs/init
  22.106 -    #ln -s var/tmp rootfs/tmp
  22.107 +    ln -f $fs/bin/busybox $fs/init
  22.108  
  22.109 -    sed -i 's/[ \t]*#.*//;s/[ \t] / /g;s/[ \t]\t/\t/g;/^$/d' rootfs/etc/services
  22.110 -    sed -i '2,$s/^#.*//;/^$/d' rootfs/etc/init.d/rc* rootfs/etc/init.d/daemon \
  22.111 -	rootfs/etc/init.d/*.sh
  22.112 -    sed -i 's/^#.*//;/^$/d' rootfs/etc/*.conf rootfs/etc/*tab \
  22.113 -	rootfs/etc/profile rootfs/etc/securetty rootfs/etc/shells
  22.114 -    find rootfs -exec touch -r rootfs {} \;
  22.115 -    ( cd rootfs ; find | cpio -o -H newc ) > rootfs.cpio
  22.116 -    du -h rootfs.cpio
  22.117 -
  22.118 -	rm -rf $fs/*
  22.119 -	cp rootfs.cpio $fs
  22.120 -	cp $stuff/busybox-git.config $fs/busybox.config.txt
  22.121 +    sed -i '2,$s/^#.*//;/^$/d' $fs/etc/init.d/rc* $fs/etc/init.d/daemon \
  22.122 +	$fs/etc/init.d/*.sh
  22.123 +    sed -i 's/^#.*//;/^$/d' $fs/etc/*.conf $fs/etc/*tab \
  22.124 +	$fs/etc/profile $fs/etc/securetty $fs/etc/shells
  22.125 +    find $fs -exec touch -r $fs {} \;
  22.126 +	cp $stuff/busybox-git.config $fs/boot/config-busybox
  22.127  }
  22.128  
  22.129 -# Force glibc-2.7 reinstall if 2.3.6 still in use.
  22.130 -pre_install()
  22.131 +config_form()
  22.132  {
  22.133 -	local i
  22.134 -	cp -a /etc/resolv.conf /etc/resolv.conf-busybox-install
  22.135 -	answer=""
  22.136 -	for i in $(cat $1$INSTALLED/$PACKAGE/files.list); do
  22.137 -		[ -f $1$i ] || continue
  22.138 -		case "$i" in
  22.139 -		/bin/busybox) continue ;;
  22.140 -		*bin/*) ;;
  22.141 -		*) continue ;;
  22.142 -		esac
  22.143 -		if [ -z "$answer" ]; then
  22.144 -			echo -n "Keep installed GNU utilities ? "
  22.145 -			read -t 30 answer	# by default: keep
  22.146 -			case "$answer" in
  22.147 -			n*|N*) break;;
  22.148 -			*) answer="Y";;
  22.149 -			esac
  22.150 -		fi
  22.151 -		cp -a $1$i $1$i-busybox-install
  22.152 -	done
  22.153 +	if [ -z "$BBCONF" ]; then
  22.154 +		[ -n "$PASSWORD"   ] || PASSWORD=root
  22.155 +		[ -n "$BBHOST"     ] || BBHOST=slitaz
  22.156 +		[ -n "$FSTAB"      ] || FSTAB='/dev/hda1       /mnt         ext3    defaults          0       2'
  22.157 +		[ -n "$RC_LOCAL"   ] || RC_LOCAL='[ -x /mnt/boot/init ] && /mnt/boot/init'
  22.158 +	fi
  22.159 +	cat <<EOT
  22.160 +<input type="hidden" name="BBCONF" value="done" />
  22.161 +<table>
  22.162 +<tr>
  22.163 +<td>Root password (empty=disable)</td>
  22.164 +<td><input type="text" name="PASSWORD" value="$PASSWORD" /></td>
  22.165 +</tr>
  22.166 +<tr>
  22.167 +<td>Host name</td>
  22.168 +<td><input type="text" name="BBHOST" value="$BBHOST" /></td>
  22.169 +</tr>
  22.170 +<tr>
  22.171 +<td>Filesystems</td>
  22.172 +<td><textarea name="FSTAB" cols="60" wrap="off">
  22.173 +$FSTAB
  22.174 +</textarea></td>
  22.175 +</tr>
  22.176 +<tr>
  22.177 +<td>Additional boot commands</td>
  22.178 +<td><textarea name="RC_LOCAL" cols="60" wrap="off">
  22.179 +$RC_LOCAL
  22.180 +</textarea></td>
  22.181 +</tr>
  22.182 +</table>
  22.183 +<input type="checkbox" name="KEEP_MODULES" ${KEEP_MODULES:+checked="checked" }/>
  22.184 +Do not remove the modules files after loading modules.
  22.185 +<p>
  22.186 +<input type="checkbox" name="STUPID" ${STUPID:+ckecked="ckecked" }/>
  22.187 +Read floppy sector by sector instead of track by track (slow, stupid but safe).
  22.188 +EOT
  22.189  }
  22.190  
  22.191  post_install()
  22.192  {
  22.193 -	local i
  22.194 -	[ -f /etc/resolv.conf-busybox-install ] &&
  22.195 -	mv -f /etc/resolv.conf-busybox-install /etc/resolv.conf
  22.196 -	while read i ; do
  22.197 -		[ -f $1$i-busybox-install ] || continue
  22.198 -		mv $1$i-busybox-install $1$i
  22.199 -	done < $1$INSTALLED/$PACKAGE/files.list
  22.200  	chmod 4755 $1/bin/busybox
  22.201 -	sed -i "s@vcsa2txt.*\$@busybox conspy -d | sed 's/ *\$//;/^\$/d;/^Processi\\\\|^.witchi/,\$!d' > /var/log/boot.log@" $1/etc/init.d/rcS
  22.202 +	cat >> $1/boot/mkrootfs.pre_exec <<EOT
  22.203 +if [ -s modules ]; then
  22.204 +	while read mod; do
  22.205 +		sed -i "s/LOAD_MODULES=./&\$mod /" etc/rcS.conf
  22.206 +	done < modules
  22.207 +	grep ^LOAD_MODULES= etc/rcS.conf >> etc/packages.conf
  22.208 +	cp etc/packages.conf boot/packages.conf
  22.209 +	rm -f modules
  22.210 +fi
  22.211 +EOT
  22.212 +	[ "$STUPID" ] && cat >> $1/boot/mkrootfs.pre_exec <<EOT
  22.213 +for i in boot/bzImage boot/memtest boot/ipxe; do
  22.214 +	[ -s \$i ] || continue
  22.215 +	dd if=\$i bs=512 count=1 | \\
  22.216 +	sed "s|\$(echo -en '\x64\x66\x8F\x47\x78')|\$(echo -en '\x5E\x5E\x90\x90\x90')|" | \\
  22.217 +	sed "s|\$(echo -en '\x66\x8F\x47\x78')|\$(echo -en '\x5E\x5E\x90\x90')|" | \\
  22.218 +	sed "s|\$(echo -en '\x77\x02\xB0\x01')|\$(echo -en '\x90\x90\xB0\x01')|" | \\
  22.219 +	sed "s|\$(echo -en '\x98\xCD\x13')|\$(echo -en '\x89\x90\x90')|" | \\
  22.220 +	sed "s|\$(echo -en '\x60\xCD\x13')|\$(echo -en '\x60\x90\x90')|" | \\
  22.221 +	sed "s|\$(echo -en '\xB0\x31\x1C\x03\xB4\x0E')|\$(echo -en '\xB0\x31\x14\xFD\xB4\x0E')|" | \\
  22.222 +	dd of=\$i conv=notrunc
  22.223 +done
  22.224 +EOT
  22.225 +	sed -i	"s/^KEEP_MODULES=\"\"/KEEP_MODULES=\"$KEEP_MODULES\"/" \
  22.226 +			$1/etc/rcS.conf
  22.227 +	if [ -n "$PASSWORD" ]; then
  22.228 +		case "$PASSWORD" in
  22.229 +		\$1\$*)
  22.230 +			sed -i "s|^root:[^:]*|root:$PASSWORD|" $1/etc/shadow ;;
  22.231 +		*)
  22.232 +			mkdir $1/fs
  22.233 +			cp -a $1/bin $1/lib $1/etc $1/fs
  22.234 +			echo "root:$PASSWORD" | chroot $1/fs/ busybox chpasswd -m
  22.235 +			cp $1/fs/etc/passwd $1/etc/
  22.236 +			rm -rf $1/fs
  22.237 +		esac
  22.238 +	else
  22.239 +		sed -i 's/^root:[^:]*:/root::/' $1/etc/passwd
  22.240 +		mkdir $1/root 2> /dev/null
  22.241 +		cat > $1/root/.profile <<EOT
  22.242 +grep -qs ^root:: /etc/passwd /etc/shadow && passwd
  22.243 +EOT
  22.244 +	fi
  22.245 +	[ -n "$HOSTNAME" ] && echo $HOSTNAME > $1/etc/hostname
  22.246 +	[ -n "$FSTAB" ] && dos2unix >> $1/etc/fstab <<EOT
  22.247 +$FSTAB
  22.248 +EOT
  22.249 +	[ -n "$RC_LOCAL" ] && dos2unix >> $1/etc/init.d/local.sh <<EOT
  22.250 +$RC_LOCAL
  22.251 +EOT
  22.252  }
    23.1 --- a/busybox/stuff/busybox-git.config	Fri Nov 15 11:54:42 2019 +0100
    23.2 +++ b/busybox/stuff/busybox-git.config	Fri Feb 28 16:03:43 2020 +0100
    23.3 @@ -1,7 +1,7 @@
    23.4  #
    23.5  # Automatically generated make config: don't edit
    23.6  # Busybox version: 1.28.0.git
    23.7 -# Sat Sep  7 14:42:52 2019
    23.8 +# Thu Feb 27 11:00:06 2020
    23.9  #
   23.10  CONFIG_HAVE_DOT_CONFIG=y
   23.11  
   23.12 @@ -13,16 +13,16 @@
   23.13  # CONFIG_FEDORA_COMPAT is not set
   23.14  # CONFIG_INCLUDE_SUSv2 is not set
   23.15  CONFIG_LONG_OPTS=y
   23.16 -CONFIG_SHOW_USAGE=y
   23.17 +# CONFIG_SHOW_USAGE is not set
   23.18  # CONFIG_FEATURE_VERBOSE_USAGE is not set
   23.19 -CONFIG_FEATURE_COMPRESS_USAGE=y
   23.20 +# CONFIG_FEATURE_COMPRESS_USAGE is not set
   23.21  # CONFIG_LFS is not set
   23.22  # CONFIG_PAM is not set
   23.23  CONFIG_FEATURE_DEVPTS=y
   23.24  # CONFIG_FEATURE_UTMP is not set
   23.25  # CONFIG_FEATURE_WTMP is not set
   23.26 -CONFIG_FEATURE_PIDFILE=y
   23.27 -CONFIG_PID_FILE_PATH="/var/run"
   23.28 +# CONFIG_FEATURE_PIDFILE is not set
   23.29 +CONFIG_PID_FILE_PATH=""
   23.30  CONFIG_BUSYBOX=y
   23.31  # CONFIG_FEATURE_INSTALLER is not set
   23.32  # CONFIG_INSTALL_NO_USR is not set
   23.33 @@ -97,7 +97,7 @@
   23.34  # CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
   23.35  # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
   23.36  # CONFIG_FEATURE_REVERSE_SEARCH is not set
   23.37 -CONFIG_FEATURE_TAB_COMPLETION=y
   23.38 +# CONFIG_FEATURE_TAB_COMPLETION is not set
   23.39  # CONFIG_FEATURE_USERNAME_COMPLETION is not set
   23.40  CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
   23.41  # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
   23.42 @@ -140,16 +140,16 @@
   23.43  CONFIG_GUNZIP=y
   23.44  CONFIG_ZCAT=y
   23.45  # CONFIG_FEATURE_GUNZIP_LONG_OPTIONS is not set
   23.46 -CONFIG_BUNZIP2=y
   23.47 +# CONFIG_BUNZIP2 is not set
   23.48  # CONFIG_BZCAT is not set
   23.49 -CONFIG_UNLZMA=y
   23.50 +# CONFIG_UNLZMA is not set
   23.51  # CONFIG_LZCAT is not set
   23.52  # CONFIG_LZMA is not set
   23.53  # CONFIG_UNXZ is not set
   23.54  # CONFIG_XZCAT is not set
   23.55  # CONFIG_XZ is not set
   23.56  # CONFIG_BZIP2 is not set
   23.57 -CONFIG_FEATURE_BZIP2_DECOMPRESS=y
   23.58 +# CONFIG_FEATURE_BZIP2_DECOMPRESS is not set
   23.59  CONFIG_CPIO=y
   23.60  CONFIG_FEATURE_CPIO_O=y
   23.61  # CONFIG_FEATURE_CPIO_P is not set
   23.62 @@ -166,14 +166,14 @@
   23.63  # CONFIG_LZOP_COMPR_HIGH is not set
   23.64  # CONFIG_RPM is not set
   23.65  # CONFIG_RPM2CPIO is not set
   23.66 -CONFIG_TAR=y
   23.67 +# CONFIG_TAR is not set
   23.68  # CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
   23.69 -CONFIG_FEATURE_TAR_CREATE=y
   23.70 +# CONFIG_FEATURE_TAR_CREATE is not set
   23.71  # CONFIG_FEATURE_TAR_AUTODETECT is not set
   23.72  # CONFIG_FEATURE_TAR_FROM is not set
   23.73  # CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
   23.74  # CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
   23.75 -CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
   23.76 +# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
   23.77  # CONFIG_FEATURE_TAR_TO_COMMAND is not set
   23.78  # CONFIG_FEATURE_TAR_UNAME_GNAME is not set
   23.79  # CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
   23.80 @@ -218,7 +218,7 @@
   23.81  # CONFIG_UNIX2DOS is not set
   23.82  CONFIG_DU=y
   23.83  CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
   23.84 -CONFIG_ECHO=y
   23.85 +# CONFIG_ECHO is not set
   23.86  CONFIG_FEATURE_FANCY_ECHO=y
   23.87  # CONFIG_ENV is not set
   23.88  # CONFIG_EXPAND is not set
   23.89 @@ -271,7 +271,7 @@
   23.90  CONFIG_OD=y
   23.91  # CONFIG_PASTE is not set
   23.92  # CONFIG_PRINTENV is not set
   23.93 -CONFIG_PRINTF=y
   23.94 +# CONFIG_PRINTF is not set
   23.95  CONFIG_PWD=y
   23.96  CONFIG_READLINK=y
   23.97  # CONFIG_FEATURE_READLINK_FOLLOW is not set
   23.98 @@ -300,9 +300,9 @@
   23.99  # CONFIG_FEATURE_FANCY_TAIL is not set
  23.100  CONFIG_TEE=y
  23.101  # CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
  23.102 -CONFIG_TEST=y
  23.103 -CONFIG_TEST1=y
  23.104 -CONFIG_TEST2=y
  23.105 +# CONFIG_TEST is not set
  23.106 +# CONFIG_TEST1 is not set
  23.107 +# CONFIG_TEST2 is not set
  23.108  # CONFIG_FEATURE_TEST_64 is not set
  23.109  # CONFIG_TIMEOUT is not set
  23.110  CONFIG_TOUCH=y
  23.111 @@ -382,7 +382,7 @@
  23.112  # CONFIG_START_STOP_DAEMON is not set
  23.113  # CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
  23.114  # CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
  23.115 -CONFIG_WHICH=y
  23.116 +# CONFIG_WHICH is not set
  23.117  
  23.118  #
  23.119  # klibc-utils
  23.120 @@ -395,7 +395,7 @@
  23.121  #
  23.122  # Editors
  23.123  #
  23.124 -CONFIG_AWK=y
  23.125 +# CONFIG_AWK is not set
  23.126  # CONFIG_FEATURE_AWK_LIBM is not set
  23.127  # CONFIG_FEATURE_AWK_GNU_EXTENSIONS is not set
  23.128  # CONFIG_CMP is not set
  23.129 @@ -404,7 +404,7 @@
  23.130  # CONFIG_FEATURE_DIFF_DIR is not set
  23.131  # CONFIG_ED is not set
  23.132  # CONFIG_PATCH is not set
  23.133 -CONFIG_SED=y
  23.134 +# CONFIG_SED is not set
  23.135  CONFIG_VI=y
  23.136  CONFIG_FEATURE_VI_MAX_LEN=1024
  23.137  # CONFIG_FEATURE_VI_8BIT is not set
  23.138 @@ -572,7 +572,7 @@
  23.139  CONFIG_BLKID=y
  23.140  # CONFIG_FEATURE_BLKID_TYPE is not set
  23.141  # CONFIG_BLOCKDEV is not set
  23.142 -CONFIG_CAL=y
  23.143 +# CONFIG_CAL is not set
  23.144  # CONFIG_CHRT is not set
  23.145  CONFIG_DMESG=y
  23.146  CONFIG_FEATURE_DMESG_PRETTY=y
  23.147 @@ -583,7 +583,7 @@
  23.148  CONFIG_FBSET=y
  23.149  CONFIG_FEATURE_FBSET_FANCY=y
  23.150  CONFIG_FEATURE_FBSET_READMODE=y
  23.151 -CONFIG_FBVNC=y
  23.152 +# CONFIG_FBVNC is not set
  23.153  CONFIG_FDFORMAT=y
  23.154  CONFIG_FDISK=y
  23.155  CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
  23.156 @@ -607,14 +607,14 @@
  23.157  CONFIG_FEATURE_HEXDUMP_REVERSE=y
  23.158  CONFIG_HD=y
  23.159  # CONFIG_XXD is not set
  23.160 -CONFIG_HWCLOCK=y
  23.161 +# CONFIG_HWCLOCK is not set
  23.162  # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
  23.163  # CONFIG_IONICE is not set
  23.164  # CONFIG_IPCRM is not set
  23.165  # CONFIG_IPCS is not set
  23.166  # CONFIG_LAST is not set
  23.167  # CONFIG_FEATURE_LAST_FANCY is not set
  23.168 -CONFIG_LOSETUP=y
  23.169 +# CONFIG_LOSETUP is not set
  23.170  CONFIG_LSPCI=y
  23.171  CONFIG_LSUSB=y
  23.172  CONFIG_MDEV=y
  23.173 @@ -811,40 +811,40 @@
  23.174  # CONFIG_FEATURE_UNIX_LOCAL is not set
  23.175  # CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
  23.176  # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
  23.177 -CONFIG_ARP=y
  23.178 +# CONFIG_ARP is not set
  23.179  # CONFIG_ARPING is not set
  23.180  # CONFIG_BRCTL is not set
  23.181  # CONFIG_FEATURE_BRCTL_FANCY is not set
  23.182  # CONFIG_FEATURE_BRCTL_SHOW is not set
  23.183  # CONFIG_DNSD is not set
  23.184 -CONFIG_ETHER_WAKE=y
  23.185 -CONFIG_FTPD=y
  23.186 -CONFIG_FEATURE_FTPD_WRITE=y
  23.187 -CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
  23.188 +# CONFIG_ETHER_WAKE is not set
  23.189 +# CONFIG_FTPD is not set
  23.190 +# CONFIG_FEATURE_FTPD_WRITE is not set
  23.191 +# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set
  23.192  # CONFIG_FEATURE_FTPD_AUTHENTICATION is not set
  23.193 -CONFIG_FTPGET=y
  23.194 -CONFIG_FTPPUT=y
  23.195 +# CONFIG_FTPGET is not set
  23.196 +# CONFIG_FTPPUT is not set
  23.197  # CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
  23.198  CONFIG_HOSTNAME=y
  23.199  # CONFIG_DNSDOMAINNAME is not set
  23.200 -CONFIG_HTTPD=y
  23.201 -CONFIG_FEATURE_HTTPD_RANGES=y
  23.202 -CONFIG_FEATURE_HTTPD_SETUID=y
  23.203 -CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
  23.204 +# CONFIG_HTTPD is not set
  23.205 +# CONFIG_FEATURE_HTTPD_RANGES is not set
  23.206 +# CONFIG_FEATURE_HTTPD_SETUID is not set
  23.207 +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
  23.208  # CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
  23.209 -CONFIG_FEATURE_HTTPD_CGI=y
  23.210 -CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y
  23.211 +# CONFIG_FEATURE_HTTPD_CGI is not set
  23.212 +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
  23.213  # CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
  23.214 -CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
  23.215 -CONFIG_FEATURE_HTTPD_ERROR_PAGES=y
  23.216 -CONFIG_FEATURE_HTTPD_PROXY=y
  23.217 +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
  23.218 +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
  23.219 +# CONFIG_FEATURE_HTTPD_PROXY is not set
  23.220  # CONFIG_FEATURE_HTTPD_GZIP is not set
  23.221 -CONFIG_IFCONFIG=y
  23.222 -CONFIG_FEATURE_IFCONFIG_STATUS=y
  23.223 +# CONFIG_IFCONFIG is not set
  23.224 +# CONFIG_FEATURE_IFCONFIG_STATUS is not set
  23.225  # CONFIG_FEATURE_IFCONFIG_SLIP is not set
  23.226  # CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
  23.227 -CONFIG_FEATURE_IFCONFIG_HW=y
  23.228 -CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
  23.229 +# CONFIG_FEATURE_IFCONFIG_HW is not set
  23.230 +# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
  23.231  # CONFIG_IFENSLAVE is not set
  23.232  # CONFIG_IFPLUGD is not set
  23.233  # CONFIG_IFUP is not set
  23.234 @@ -855,12 +855,12 @@
  23.235  # CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
  23.236  # CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
  23.237  # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
  23.238 -CONFIG_INETD=y
  23.239 -CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
  23.240 -CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
  23.241 -CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
  23.242 -CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
  23.243 -CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
  23.244 +# CONFIG_INETD is not set
  23.245 +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
  23.246 +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
  23.247 +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
  23.248 +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
  23.249 +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
  23.250  # CONFIG_FEATURE_INETD_RPC is not set
  23.251  # CONFIG_IP is not set
  23.252  # CONFIG_IPADDR is not set
  23.253 @@ -883,55 +883,51 @@
  23.254  # CONFIG_FAKEIDENTD is not set
  23.255  # CONFIG_NAMEIF is not set
  23.256  # CONFIG_FEATURE_NAMEIF_EXTENDED is not set
  23.257 -CONFIG_NBDCLIENT=y
  23.258 -CONFIG_NC=y
  23.259 -CONFIG_NC_SERVER=y
  23.260 -CONFIG_NC_EXTRA=y
  23.261 +# CONFIG_NBDCLIENT is not set
  23.262 +# CONFIG_NC is not set
  23.263 +# CONFIG_NC_SERVER is not set
  23.264 +# CONFIG_NC_EXTRA is not set
  23.265  # CONFIG_NC_110_COMPAT is not set
  23.266 -CONFIG_NETSTAT=y
  23.267 -CONFIG_FEATURE_NETSTAT_WIDE=y
  23.268 -CONFIG_FEATURE_NETSTAT_PRG=y
  23.269 -CONFIG_NSLOOKUP=y
  23.270 -CONFIG_NTPD=y
  23.271 -CONFIG_FEATURE_NTPD_SERVER=y
  23.272 +# CONFIG_NETSTAT is not set
  23.273 +# CONFIG_FEATURE_NETSTAT_WIDE is not set
  23.274 +# CONFIG_FEATURE_NETSTAT_PRG is not set
  23.275 +# CONFIG_NSLOOKUP is not set
  23.276 +# CONFIG_NTPD is not set
  23.277 +# CONFIG_FEATURE_NTPD_SERVER is not set
  23.278  # CONFIG_FEATURE_NTPD_CONF is not set
  23.279 -CONFIG_PING=y
  23.280 +# CONFIG_PING is not set
  23.281  # CONFIG_PING6 is not set
  23.282 -CONFIG_FEATURE_FANCY_PING=y
  23.283 +# CONFIG_FEATURE_FANCY_PING is not set
  23.284  # CONFIG_PSCAN is not set
  23.285  CONFIG_ROUTE=y
  23.286  # CONFIG_SLATTACH is not set
  23.287  # CONFIG_SSL_CLIENT is not set
  23.288  # CONFIG_TCPSVD is not set
  23.289  # CONFIG_UDPSVD is not set
  23.290 -CONFIG_TELNET=y
  23.291 -CONFIG_FEATURE_TELNET_TTYPE=y
  23.292 -CONFIG_FEATURE_TELNET_AUTOLOGIN=y
  23.293 +# CONFIG_TELNET is not set
  23.294 +# CONFIG_FEATURE_TELNET_TTYPE is not set
  23.295 +# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
  23.296  # CONFIG_FEATURE_TELNET_WIDTH is not set
  23.297 -CONFIG_TELNETD=y
  23.298 -CONFIG_FEATURE_TELNETD_STANDALONE=y
  23.299 +# CONFIG_TELNETD is not set
  23.300 +# CONFIG_FEATURE_TELNETD_STANDALONE is not set
  23.301  # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
  23.302 -CONFIG_TFTP=y
  23.303 +# CONFIG_TFTP is not set
  23.304  # CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
  23.305 -CONFIG_TFTPD=y
  23.306 -
  23.307 -#
  23.308 -# Common options for tftp/tftpd
  23.309 -#
  23.310 -CONFIG_FEATURE_TFTPD_RIS=y
  23.311 -CONFIG_FEATURE_TFTP_GET=y
  23.312 -CONFIG_FEATURE_TFTP_PUT=y
  23.313 -CONFIG_FEATURE_TFTP_BLOCKSIZE=y
  23.314 +# CONFIG_TFTPD is not set
  23.315 +# CONFIG_FEATURE_TFTPD_RIS is not set
  23.316 +# CONFIG_FEATURE_TFTP_GET is not set
  23.317 +# CONFIG_FEATURE_TFTP_PUT is not set
  23.318 +# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
  23.319  # CONFIG_TFTP_DEBUG is not set
  23.320  # CONFIG_TLS is not set
  23.321  # CONFIG_TRACEROUTE is not set
  23.322  # CONFIG_TRACEROUTE6 is not set
  23.323  # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
  23.324  # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
  23.325 -CONFIG_TUNCTL=y
  23.326 +# CONFIG_TUNCTL is not set
  23.327  # CONFIG_FEATURE_TUNCTL_UG is not set
  23.328  # CONFIG_VCONFIG is not set
  23.329 -CONFIG_WGET=y
  23.330 +# CONFIG_WGET is not set
  23.331  # CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
  23.332  # CONFIG_FEATURE_WGET_STATUSBAR is not set
  23.333  # CONFIG_FEATURE_WGET_AUTHENTICATION is not set
  23.334 @@ -940,27 +936,23 @@
  23.335  # CONFIG_FEATURE_WGET_OPENSSL is not set
  23.336  # CONFIG_WHOIS is not set
  23.337  # CONFIG_ZCIP is not set
  23.338 -CONFIG_UDHCPD=y
  23.339 +# CONFIG_UDHCPD is not set
  23.340  # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
  23.341  # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
  23.342 -CONFIG_DHCPD_LEASES_FILE="/var/lib/udhcpd.leases"
  23.343 -CONFIG_DUMPLEASES=y
  23.344 +CONFIG_DHCPD_LEASES_FILE=""
  23.345 +# CONFIG_DUMPLEASES is not set
  23.346  # CONFIG_DHCPRELAY is not set
  23.347 -CONFIG_UDHCPC=y
  23.348 -CONFIG_FEATURE_UDHCPC_ARPING=y
  23.349 +# CONFIG_UDHCPC is not set
  23.350 +# CONFIG_FEATURE_UDHCPC_ARPING is not set
  23.351  # CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set
  23.352 -CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
  23.353 +CONFIG_UDHCPC_DEFAULT_SCRIPT=""
  23.354  # CONFIG_UDHCPC6 is not set
  23.355  # CONFIG_FEATURE_UDHCPC6_RFC3646 is not set
  23.356  # CONFIG_FEATURE_UDHCPC6_RFC4704 is not set
  23.357  # CONFIG_FEATURE_UDHCPC6_RFC4833 is not set
  23.358 -
  23.359 -#
  23.360 -# Common options for DHCP applets
  23.361 -#
  23.362  # CONFIG_FEATURE_UDHCP_PORT is not set
  23.363  CONFIG_UDHCP_DEBUG=0
  23.364 -CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
  23.365 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
  23.366  # CONFIG_FEATURE_UDHCP_RFC3397 is not set
  23.367  # CONFIG_FEATURE_UDHCP_8021Q is not set
  23.368  CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
  23.369 @@ -968,8 +960,8 @@
  23.370  #
  23.371  # Print Utilities
  23.372  #
  23.373 -CONFIG_LPD=y
  23.374 -CONFIG_LPR=y
  23.375 +# CONFIG_LPD is not set
  23.376 +# CONFIG_LPR is not set
  23.377  # CONFIG_LPQ is not set
  23.378  
  23.379  #
  23.380 @@ -1131,12 +1123,12 @@
  23.381  #
  23.382  CONFIG_KLOGD=y
  23.383  # CONFIG_FEATURE_KLOGD_KLOGCTL is not set
  23.384 -CONFIG_LOGGER=y
  23.385 +# CONFIG_LOGGER is not set
  23.386  # CONFIG_LOGREAD is not set
  23.387  # CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
  23.388  CONFIG_SYSLOGD=y
  23.389  CONFIG_FEATURE_ROTATE_LOGFILE=y
  23.390 -CONFIG_FEATURE_REMOTE_LOG=y
  23.391 +# CONFIG_FEATURE_REMOTE_LOG is not set
  23.392  CONFIG_FEATURE_SYSLOGD_DUP=y
  23.393  # CONFIG_FEATURE_SYSLOGD_CFG is not set
  23.394  CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
    24.1 --- a/busybox/stuff/daemon	Fri Nov 15 11:54:42 2019 +0100
    24.2 +++ b/busybox/stuff/daemon	Fri Feb 28 16:03:43 2020 +0100
    24.3 @@ -13,47 +13,20 @@
    24.4  eval $(grep -i ^${NAME}_OPTIONS /etc/daemons.conf | sed 's/.*_OPT/OPT/')
    24.5  PIDFILE=/var/run/$NAME.pid
    24.6  
    24.7 -active_inetd()
    24.8 -{
    24.9 -if grep $DAEMON /etc/inetd.conf | grep -q ^\#; then
   24.10 -    sed -i "s,^#\(.*$DAEMON.*\)$,\1," /etc/inetd.conf
   24.11 -    /etc/init.d/inetd stop > /dev/null
   24.12 -    exec /etc/init.d/inetd start
   24.13 -else
   24.14 -    echo "$NAME is already active."
   24.15 -    exit 1
   24.16 -fi
   24.17 -}
   24.18 -
   24.19 -inactive_inetd()
   24.20 -{
   24.21 -if grep $DAEMON /etc/inetd.conf | grep -q ^\#; then
   24.22 -    echo "$NAME is not active."
   24.23 -    exit 1
   24.24 -else
   24.25 -    sed -i "s,^.*$DAEMON.*$,#&," /etc/inetd.conf
   24.26 -    /etc/init.d/inetd stop > /dev/null
   24.27 -    exec /etc/init.d/inetd start
   24.28 -fi
   24.29 -}
   24.30 -
   24.31  case "$1" in
   24.32    start)
   24.33 -    [ $DAEMON != inetd ] &&
   24.34 -    grep -qs $DAEMON /etc/inetd.conf && active_inetd
   24.35      if active_pidfile $PIDFILE $NAME ; then
   24.36        echo "$NAME is already running."
   24.37        exit 1
   24.38      fi
   24.39      echo -n "Starting $DESC: $NAME... "
   24.40      $DAEMON $OPTIONS 
   24.41 -    [ -f $PIDFILE ] || pidof $NAME | awk '{ print $1 }' > $PIDFILE
   24.42 +    [ -f $PIDFILE ] ||
   24.43 +    ps ax | grep $NAME | grep -v etc/init | cut -d ' ' -f1 > $PIDFILE
   24.44      active_pidfile $PIDFILE $NAME
   24.45      status
   24.46      ;;
   24.47    stop)
   24.48 -    [ $DAEMON != inetd ] &&
   24.49 -    grep -qs $DAEMON /etc/inetd.conf && inactive_inetd
   24.50      if ! active_pidfile $PIDFILE $NAME ; then
   24.51        echo "$NAME is not running."
   24.52        exit 1
   24.53 @@ -63,8 +36,6 @@
   24.54      status
   24.55      ;;
   24.56    restart)
   24.57 -    [ $DAEMON != inetd ] &&
   24.58 -    grep -qs $DAEMON /etc/inetd.conf && exit 0
   24.59      if ! active_pidfile $PIDFILE $NAME ; then
   24.60        echo "$NAME is not running."
   24.61        exit 1
   24.62 @@ -73,7 +44,8 @@
   24.63      kill `cat $PIDFILE`
   24.64      sleep 2
   24.65      $DAEMON $OPTIONS
   24.66 -    [ -f $PIDFILE ] || pidof $NAME | awk '{ print $1 }' > $PIDFILE
   24.67 +    [ -f $PIDFILE ] ||
   24.68 +    ps ax | grep $NAME | grep -v etc/init | cut -d ' ' -f1 > $PIDFILE
   24.69      active_pidfile $PIDFILE $NAME
   24.70      status
   24.71      ;;
    25.1 --- a/ctorrent-dnh/receipt	Fri Nov 15 11:54:42 2019 +0100
    25.2 +++ b/ctorrent-dnh/receipt	Fri Feb 28 16:03:43 2020 +0100
    25.3 @@ -7,6 +7,7 @@
    25.4  MAINTAINER="pankso@slitaz.org"
    25.5  LICENSE="GPL2"
    25.6  [ -n "$TARGET" ] || TARGET="i486"
    25.7 +DEPENDS="busybox-net"
    25.8  BUILD_DEPENDS="uclibc-cross-compiler-$TARGET"
    25.9  TARBALL="${PACKAGE}$VERSION.tar.gz"
   25.10  WEB_SITE="http://www.rahul.net/dholmes/ctorrent/"
    26.1 --- a/dropbear-client-without-zlib/receipt	Fri Nov 15 11:54:42 2019 +0100
    26.2 +++ b/dropbear-client-without-zlib/receipt	Fri Feb 28 16:03:43 2020 +0100
    26.3 @@ -8,7 +8,7 @@
    26.4  MAINTAINER="pascal.bellard@slitaz.org"
    26.5  LICENSE="MIT"
    26.6  TARBALL="$SOURCE-$VERSION.tar.gz"
    26.7 -DEPENDS="libutil"
    26.8 +DEPENDS="libutil busybox-net"
    26.9  [ -n "$TARGET" ] || TARGET="i486"
   26.10  BUILD_DEPENDS="dropbear uclibc-cross-compiler-$TARGET"
   26.11  WEB_SITE="http://matt.ucc.asn.au/dropbear/dropbear.html"
    27.1 --- a/dropbear-client/receipt	Fri Nov 15 11:54:42 2019 +0100
    27.2 +++ b/dropbear-client/receipt	Fri Feb 28 16:03:43 2020 +0100
    27.3 @@ -8,7 +8,7 @@
    27.4  MAINTAINER="pascal.bellard@slitaz.org"
    27.5  LICENSE="MIT"
    27.6  TARBALL="$SOURCE-$VERSION.tar.gz"
    27.7 -DEPENDS="libutil zlib"
    27.8 +DEPENDS="libutil zlib busybox-net"
    27.9  [ -n "$TARGET" ] || TARGET="i486"
   27.10  BUILD_DEPENDS="dropbear uclibc-cross-compiler-$TARGET zlib-dev"
   27.11  WEB_SITE="http://matt.ucc.asn.au/dropbear/dropbear.html"
    28.1 --- a/dropbear-without-zlib/receipt	Fri Nov 15 11:54:42 2019 +0100
    28.2 +++ b/dropbear-without-zlib/receipt	Fri Feb 28 16:03:43 2020 +0100
    28.3 @@ -8,7 +8,7 @@
    28.4  MAINTAINER="pascal.bellard@slitaz.org"
    28.5  LICENSE="MIT"
    28.6  TARBALL="$SOURCE-$VERSION.tar.gz"
    28.7 -DEPENDS="libutil"
    28.8 +DEPENDS="libutil busybox-net"
    28.9  [ -n "$TARGET" ] || TARGET="i486"
   28.10  BUILD_DEPENDS="dropbear uclibc-cross-compiler-$TARGET"
   28.11  WEB_SITE="http://matt.ucc.asn.au/dropbear/dropbear.html"
    29.1 --- a/dropbear/receipt	Fri Nov 15 11:54:42 2019 +0100
    29.2 +++ b/dropbear/receipt	Fri Feb 28 16:03:43 2020 +0100
    29.3 @@ -7,7 +7,7 @@
    29.4  MAINTAINER="pascal.bellard@slitaz.org"
    29.5  LICENSE="MIT"
    29.6  TARBALL="$PACKAGE-$VERSION.tar.gz"
    29.7 -DEPENDS="libutil zlib"
    29.8 +DEPENDS="libutil zlib busybox-net"
    29.9  [ -n "$TARGET" ] || TARGET="i486"
   29.10  BUILD_DEPENDS="uclibc-cross-compiler-$TARGET zlib-dev"
   29.11  WEB_SITE="http://matt.ucc.asn.au/dropbear/dropbear.html"
    30.1 --- a/fbvnc-auth/receipt	Fri Nov 15 11:54:42 2019 +0100
    30.2 +++ b/fbvnc-auth/receipt	Fri Feb 28 16:03:43 2020 +0100
    30.3 @@ -10,6 +10,7 @@
    30.4  WEB_SITE="https://github.com/zohead/fbvnc"
    30.5  WGET_URL="git|git://github.com/zohead/fbvnc.git"
    30.6  [ -n "$TARGET" ] || TARGET="i486"
    30.7 +DEPENDS="busybox-net"
    30.8  BUILD_DEPENDS="uclibc-cross-compiler-$TARGET bzip2 git"
    30.9  DEPENDS="fbvnc-config"
   30.10  
    31.1 --- a/fbvnc-ssh/receipt	Fri Nov 15 11:54:42 2019 +0100
    31.2 +++ b/fbvnc-ssh/receipt	Fri Feb 28 16:03:43 2020 +0100
    31.3 @@ -8,7 +8,7 @@
    31.4  MAINTAINER="pascal.bellard@slitaz.org"
    31.5  LICENSE="BSD"
    31.6  WEB_SITE="http://tiny.slitaz.org/"
    31.7 -DEPENDS="base-tiny fbvnc-config dropbear-client"
    31.8 +DEPENDS="base-tiny fbvnc-config dropbear-client busybox-net"
    31.9  
   31.10  # Rules to gen a SliTaz package suitable for Tazpkg.
   31.11  genpkg_rules()
    32.1 --- a/ftp-config/receipt	Fri Nov 15 11:54:42 2019 +0100
    32.2 +++ b/ftp-config/receipt	Fri Feb 28 16:03:43 2020 +0100
    32.3 @@ -9,7 +9,7 @@
    32.4  LICENSE="BSD"
    32.5  WEB_SITE="http://tiny.slitaz.org/"
    32.6  AUTO_SELECTION="CONFIG_FTPD"
    32.7 -DEPENDS="base-tiny"
    32.8 +DEPENDS="base-tiny busybox-net"
    32.9  
   32.10  # Rules to gen a SliTaz package suitable for Tazpkg.
   32.11  genpkg_rules()
    33.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.2 +++ b/geninitramfs/receipt	Fri Feb 28 16:03:43 2020 +0100
    33.3 @@ -0,0 +1,22 @@
    33.4 +# SliTaz package receipt.
    33.5 +
    33.6 +PACKAGE="geninitramfs"
    33.7 +VERSION="1.0"
    33.8 +CATEGORY="misc"
    33.9 +SHORT_DESC="Utility to build /root/rootfs.gz"
   33.10 +MAINTAINER="pascal.bellard@slitaz.org"
   33.11 +LICENSE="BSD"
   33.12 +WEB_SITE="http://tiny.slitaz.org/"
   33.13 +AUTO_SELECTION="CONFIG_MODULES"
   33.14 +
   33.15 +# Rules to gen a SliTaz package suitable for Tazpkg.
   33.16 +genpkg_rules()
   33.17 +{
   33.18 +	mkdir -p $fs/bin
   33.19 +	cp $stuff/geninitramfs $fs/bin
   33.20 +}
   33.21 +
   33.22 +post_install()
   33.23 +{
   33.24 +	sed 's|KEEP_MODULES=.*|KEEP_MODULES="yes"|' -i $1/etc/rcS.conf
   33.25 +}
    34.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    34.2 +++ b/geninitramfs/stuff/geninitramfs	Fri Feb 28 16:03:43 2020 +0100
    34.3 @@ -0,0 +1,29 @@
    34.4 +#!/bin/sh
    34.5 +
    34.6 +mkdir -p /boot/fs$$/bin /boot/fs$$/lib /boot/fs$$/proc /boot/fs$$/mnt
    34.7 +cp -a /lib/modules /boot/fs$$/lib
    34.8 +cp -a /bin/busybox /boot/fs$$/bin
    34.9 +ln /boot/fs$$/bin/busybox /boot/fs$$/bin/sh
   34.10 +cp -a /lib/ld* /lib/libc.so* /lib/libuClibc* /lib/libcrypt* /boot/fs$$/lib
   34.11 +sed -i 's|^LOAD_MODULES=.*|# &|' /etc/rcS.conf
   34.12 +sed '/LOAD_MODULES/!d;s|^# ||' /etc/rcS.conf > /boot/fs$$/vars
   34.13 +. /boot/fs$$/vars
   34.14 +rm -f /boot/fs$$/vars
   34.15 +cat > /boot/fs$$/init <<EOT
   34.16 +#!/bin/sh
   34.17 +
   34.18 +mount -t proc /proc /proc
   34.19 +echo -n "Loading modules..."
   34.20 +for mod in $LOAD_MODULES; do
   34.21 +	echo -n " \${mod%%|*}"
   34.22 +	modprobe \${mod//|/ }
   34.23 +done
   34.24 +echo
   34.25 +mount \$(blkid | sed "/\$root/!d;s|: .*||") /mnt
   34.26 +umount /proc
   34.27 +switch_root /mnt /init
   34.28 +EOT
   34.29 +chmod 755 /boot/fs$$/init
   34.30 +( cd /boot/fs$$ ; find * | cpio -o -H newc ) | gzip -9 > /boot/rootfs.gz
   34.31 +rm -rf /boot/fs$$
   34.32 +ls -l /boot/rootfs.gz
    35.1 --- a/gpxe/receipt	Fri Nov 15 11:54:42 2019 +0100
    35.2 +++ b/gpxe/receipt	Fri Feb 28 16:03:43 2020 +0100
    35.3 @@ -7,7 +7,7 @@
    35.4  MAINTAINER="pascal.bellard@slitaz.org"
    35.5  LICENSE="GPL"
    35.6  WEB_SITE="http://boot.slitaz.org/"
    35.7 -DEPENDS="base-tiny udhcpd-config"
    35.8 +DEPENDS="base-tiny udhcpd-config busybox-net"
    35.9  CONFIG_FILES="/etc/rcS.conf /etc/udhcpd.conf /etc/inetd.conf"
   35.10  
   35.11  # Rules to configure and make the package.
    36.1 --- a/lan-config/receipt	Fri Nov 15 11:54:42 2019 +0100
    36.2 +++ b/lan-config/receipt	Fri Feb 28 16:03:43 2020 +0100
    36.3 @@ -7,6 +7,7 @@
    36.4  MAINTAINER="pascal.bellard@slitaz.org"
    36.5  LICENSE="BSD"
    36.6  WEB_SITE="http://tiny.slitaz.org/"
    36.7 +DEPENDS="busybox-net"
    36.8  WANTED="base-tiny"
    36.9  CONFIG_FILES="/etc/network.conf"
   36.10  
    37.1 --- a/linux/receipt	Fri Nov 15 11:54:42 2019 +0100
    37.2 +++ b/linux/receipt	Fri Feb 28 16:03:43 2020 +0100
    37.3 @@ -44,15 +44,12 @@
    37.4  	echo 'obj-y += kstrdup.o' >> mm/Makefile
    37.5  	sed -i 's|3.1024|11*256|' arch/i386/boot/compressed/misc.c
    37.6  	sed -i 's/O_CREAT/&|O_TRUNC/' init/initramfs.c
    37.7 -	which advdef 2> /dev/null &&
    37.8 +	false && which advdef 2> /dev/null &&
    37.9  	sed -i 's|gzip)|&\n	advdef -z4 $@|' \
   37.10  		usr/Makefile arch/i386/boot/compressed/Makefile
   37.11 -	which zopfli 2> /dev/null &&
   37.12 +	false && which zopfli 2> /dev/null &&
   37.13  	sed -i 's|gzip -f -9 <|time zopfli --i100 -c|' scripts/Makefile.lib
   37.14  
   37.15 -	[ -s $WOK/busybox/source/busybox*/rootfs.cpio ] || tazwok cook busybox
   37.16 -	cp $WOK/busybox/source/busybox*/rootfs.cpio $src
   37.17 -	cp $WOK/busybox/source/busybox*/.config $src/config-busybox
   37.18  	mkdir $src/slitaz
   37.19  	cp $stuff/list_modules.sh $src/slitaz
   37.20  	S2bin bootloader
   37.21 @@ -63,11 +60,13 @@
   37.22  
   37.23  	sed -i '/config %config:/{NNNps/config %config:/%config:/}' Makefile
   37.24  	sed -i 's/^config %config:/config:/' Makefile
   37.25 +	
   37.26  	cp $stuff/linux-$VERSION-slitaz.config .config
   37.27  	yes '' | make ARCH=i386 HOSTCC=gcc-2 config
   37.28  	make ARCH=i386 CC=gcc-2 HOSTCC=gcc-2 -j 4 bzImage
   37.29  	which upx 2> /dev/null &&
   37.30  	upx --ultra-brute arch/i386/boot/bzImage
   37.31 +	
   37.32  	grep -q "CONFIG_MODULES=y" .config &&
   37.33  	make ARCH=i386 CC=gcc-2 HOSTCC=gcc-2 -j 4 modules &&
   37.34  	make ARCH=i386 INSTALL_MOD_PATH=$DESTDIR -j 1 modules_install || true
   37.35 @@ -87,41 +86,13 @@
   37.36  	cp -a $src/pack $fs/boot/
   37.37  	cp -a $src/System.map $fs/boot/
   37.38  	cp -a $src/.config $fs/boot/config
   37.39 -	cp -a $src/config-busybox $fs/boot
   37.40  	cp -a $src/bundle.sh $fs/boot/bundle
   37.41  }
   37.42  
   37.43  # Pre and post install commands for Tazpkg.
   37.44  post_install()
   37.45  {
   37.46 -	echo "Processing post-install commands..."
   37.47  	[ -s $1/boot/cmdline ] && cat $1/boot/cmdline | sed 's/^ *//' | \
   37.48  		dd of=$1/boot/bzImage conv=notrunc bs=1 seek=768 count=3072
   37.49  	$1/boot/pack $1/boot/bzImage
   37.50 -
   37.51 -	# GRUB stuff.
   37.52 -	if [ -f "$1/boot/grub/menu.lst" ]; then
   37.53 -		root_dev=$(sed '/root=/!d;s/.*root=\([^ ]*\).*/\1/' \
   37.54 -				< $1/boot/grub/menu.lst | head -n 1)
   37.55 -		grub_dev=$(grep "root (" < $1/boot/grub/menu.lst | head -n 1)
   37.56 -		# Add new kernel entry in case of upgrade for installed system.
   37.57 -		grep -q $SOURCE-$VERSION-slitaz $1/boot/grub/menu.lst ||
   37.58 -		[ -s $1/boot/cmdline ] && cmdline=" $(cat $1/boot/cmdline)"
   37.59 -		cat >> $1/boot/grub/menu.lst << EOT
   37.60 -
   37.61 -title SliTaz GNU/Linux (Kernel $VERSION-slitaz)
   37.62 -$grub_dev
   37.63 -kernel /boot/vmlinuz-$VERSION-slitaz root=$root_dev$cmdline
   37.64 -EOT
   37.65 -		# Display information message.
   37.66 -		cat <<EOT
   37.67 -----
   37.68 -GRUB is installed, these tree lines must be in your /boot/grub/menu.lst:
   37.69 -
   37.70 -title  SliTaz GNU/Linux (Kernel $VERSION-slitaz)
   37.71 -$grub_dev
   37.72 -kernel /boot/vmlinuz-$VERSION-slitaz root=$root_dev$cmdline
   37.73 -----
   37.74 -EOT
   37.75 -	fi
   37.76  }
    38.1 --- a/linux/stuff/linux-2.6.14-slitaz.config	Fri Nov 15 11:54:42 2019 +0100
    38.2 +++ b/linux/stuff/linux-2.6.14-slitaz.config	Fri Feb 28 16:03:43 2020 +0100
    38.3 @@ -1,7 +1,7 @@
    38.4  #
    38.5  # Automatically generated make config: don't edit
    38.6  # Linux kernel version: 2.6.14-tiny1
    38.7 -# Fri Aug 30 18:42:29 2019
    38.8 +# Sat Nov 23 16:32:23 2019
    38.9  #
   38.10  CONFIG_X86=y
   38.11  CONFIG_SEMAPHORE_SLEEPERS=y
   38.12 @@ -32,7 +32,7 @@
   38.13  CONFIG_HOTPLUG=y
   38.14  CONFIG_KOBJECT_UEVENT=y
   38.15  # CONFIG_IKCONFIG is not set
   38.16 -CONFIG_INITRAMFS_SOURCE="rootfs.cpio"
   38.17 +# CONFIG_INITRAMFS_SOURCE is not set
   38.18  CONFIG_INITRAMFS_ROOT_UID=0
   38.19  CONFIG_INITRAMFS_ROOT_GID=0
   38.20  CONFIG_EMBEDDED=y
   38.21 @@ -44,7 +44,7 @@
   38.22  # CONFIG_DOUBLEFAULT is not set
   38.23  # CONFIG_PANIC is not set
   38.24  # CONFIG_ELF_CORE is not set
   38.25 -CONFIG_BASE_FULL=y
   38.26 +# CONFIG_BASE_FULL is not set
   38.27  CONFIG_NET_SMALL=y
   38.28  # CONFIG_FUTEX is not set
   38.29  # CONFIG_EPOLL is not set
   38.30 @@ -95,7 +95,7 @@
   38.31  # CONFIG_CPU_SUP_UMC is not set
   38.32  CONFIG_CRC32_CALC=y
   38.33  CONFIG_TINY_SHMEM=y
   38.34 -CONFIG_BASE_SMALL=0
   38.35 +CONFIG_BASE_SMALL=1
   38.36  CONFIG_SLOB=y
   38.37  
   38.38  #
   38.39 @@ -180,7 +180,7 @@
   38.40  CONFIG_MATH_EMULATION=y
   38.41  # CONFIG_MTRR is not set
   38.42  # CONFIG_REGPARM is not set
   38.43 -CONFIG_SECCOMP=y
   38.44 +# CONFIG_SECCOMP is not set
   38.45  CONFIG_HZ_100=y
   38.46  # CONFIG_HZ_250 is not set
   38.47  # CONFIG_HZ_1000 is not set
   38.48 @@ -1216,7 +1216,9 @@
   38.49  CONFIG_VFAT_FS=m
   38.50  CONFIG_FAT_DEFAULT_CODEPAGE=437
   38.51  CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
   38.52 -# CONFIG_NTFS_FS is not set
   38.53 +CONFIG_NTFS_FS=m
   38.54 +# CONFIG_NTFS_DEBUG is not set
   38.55 +CONFIG_NTFS_RW=y
   38.56  
   38.57  #
   38.58  # Pseudo filesystems
    39.1 --- a/lpd-config/receipt	Fri Nov 15 11:54:42 2019 +0100
    39.2 +++ b/lpd-config/receipt	Fri Feb 28 16:03:43 2020 +0100
    39.3 @@ -8,7 +8,7 @@
    39.4  LICENSE="BSD"
    39.5  WEB_SITE="http://tiny.slitaz.org/"
    39.6  AUTO_SELECTION="CONFIG_LPD"
    39.7 -DEPENDS="base-tiny"
    39.8 +DEPENDS="base-tiny busybox-net"
    39.9  SUGGESTED="module-lp module-usblp"
   39.10  
   39.11  # Rules to gen a SliTaz package suitable for Tazpkg.
    40.1 --- a/lpd-spooling-config/receipt	Fri Nov 15 11:54:42 2019 +0100
    40.2 +++ b/lpd-spooling-config/receipt	Fri Feb 28 16:03:43 2020 +0100
    40.3 @@ -8,7 +8,7 @@
    40.4  LICENSE="BSD"
    40.5  WEB_SITE="http://tiny.slitaz.org/"
    40.6  AUTO_SELECTION="CONFIG_LPD"
    40.7 -DEPENDS="base-tiny"
    40.8 +DEPENDS="base-tiny busybox-net"
    40.9  SUGGESTED="module-lp module-usblp"
   40.10  
   40.11  # Rules to gen a SliTaz package suitable for Tazpkg.
    41.1 --- a/module-3c509/receipt	Fri Nov 15 11:54:42 2019 +0100
    41.2 +++ b/module-3c509/receipt	Fri Feb 28 16:03:43 2020 +0100
    41.3 @@ -8,6 +8,7 @@
    41.4  MAINTAINER="pascal.bellard@slitaz.org"
    41.5  LICENSE="GPL2"
    41.6  WEB_SITE="http://tiny.slitaz.org/"
    41.7 +DEPENDS="busybox-net"
    41.8  WANTED="linux"
    41.9  
   41.10  # Rules to gen a SliTaz package suitable for Tazpkg.
    42.1 --- a/module-cifs/receipt	Fri Nov 15 11:54:42 2019 +0100
    42.2 +++ b/module-cifs/receipt	Fri Feb 28 16:03:43 2020 +0100
    42.3 @@ -8,6 +8,7 @@
    42.4  MAINTAINER="pascal.bellard@slitaz.org"
    42.5  LICENSE="GPL2"
    42.6  WEB_SITE="http://tiny.slitaz.org/"
    42.7 +DEPENDS="busybox-net"
    42.8  WANTED="linux"
    42.9  CONFIG_FILES="/etc/filesystems"
   42.10  
    43.1 --- a/module-cs89x0/receipt	Fri Nov 15 11:54:42 2019 +0100
    43.2 +++ b/module-cs89x0/receipt	Fri Feb 28 16:03:43 2020 +0100
    43.3 @@ -8,6 +8,7 @@
    43.4  MAINTAINER="pascal.bellard@slitaz.org"
    43.5  LICENSE="GPL2"
    43.6  WEB_SITE="http://tiny.slitaz.org/"
    43.7 +DEPENDS="busybox-net"
    43.8  WANTED="linux"
    43.9  
   43.10  # Rules to gen a SliTaz package suitable for Tazpkg.
    44.1 --- a/module-hp/receipt	Fri Nov 15 11:54:42 2019 +0100
    44.2 +++ b/module-hp/receipt	Fri Feb 28 16:03:43 2020 +0100
    44.3 @@ -8,6 +8,7 @@
    44.4  MAINTAINER="pascal.bellard@slitaz.org"
    44.5  LICENSE="GPL"
    44.6  WEB_SITE="http://tiny.slitaz.org/"
    44.7 +DEPENDS="busybox-net"
    44.8  WANTED="linux"
    44.9  
   44.10  # Rules to gen a SliTaz package suitable for Tazpkg.
    45.1 --- a/module-ne/receipt	Fri Nov 15 11:54:42 2019 +0100
    45.2 +++ b/module-ne/receipt	Fri Feb 28 16:03:43 2020 +0100
    45.3 @@ -8,6 +8,7 @@
    45.4  MAINTAINER="pascal.bellard@slitaz.org"
    45.5  LICENSE="GPL2"
    45.6  WEB_SITE="http://tiny.slitaz.org/"
    45.7 +DEPENDS="busybox-net"
    45.8  WANTED="linux"
    45.9  
   45.10  # Rules to gen a SliTaz package suitable for Tazpkg.
    46.1 --- a/module-nfsd/receipt	Fri Nov 15 11:54:42 2019 +0100
    46.2 +++ b/module-nfsd/receipt	Fri Feb 28 16:03:43 2020 +0100
    46.3 @@ -8,6 +8,7 @@
    46.4  MAINTAINER="pascal.bellard@slitaz.org"
    46.5  LICENSE="GPL2"
    46.6  WEB_SITE="http://tiny.slitaz.org/"
    46.7 +DEPENDS="busybox-net"
    46.8  WANTED="linux"
    46.9  CONFIG_FILES="/etc/filesystems"
   46.10  
    47.1 --- a/module-sg/receipt	Fri Nov 15 11:54:42 2019 +0100
    47.2 +++ b/module-sg/receipt	Fri Feb 28 16:03:43 2020 +0100
    47.3 @@ -1,7 +1,5 @@
    47.4  # SliTaz package receipt.
    47.5  
    47.6 -PACKED_SIZE="60.0K"
    47.7 -UNPACKED_SIZE="176.0K"
    47.8  PACKAGE="module-sg"
    47.9  VERSION="2.6.14"
   47.10  CATEGORY="base-system"
    48.1 --- a/module-tlan/receipt	Fri Nov 15 11:54:42 2019 +0100
    48.2 +++ b/module-tlan/receipt	Fri Feb 28 16:03:43 2020 +0100
    48.3 @@ -8,6 +8,7 @@
    48.4  MAINTAINER="pascal.bellard@slitaz.org"
    48.5  LICENSE="GPL2"
    48.6  WEB_SITE="http://tiny.slitaz.org/"
    48.7 +DEPENDS="busybox-net"
    48.8  WANTED="linux"
    48.9  
   48.10  # Rules to gen a SliTaz package suitable for Tazpkg.
    49.1 --- a/module-tulip/receipt	Fri Nov 15 11:54:42 2019 +0100
    49.2 +++ b/module-tulip/receipt	Fri Feb 28 16:03:43 2020 +0100
    49.3 @@ -8,6 +8,7 @@
    49.4  MAINTAINER="pascal.bellard@slitaz.org"
    49.5  LICENSE="GPL2"
    49.6  WEB_SITE="http://tiny.slitaz.org/"
    49.7 +DEPENDS="busybox-net"
    49.8  WANTED="linux"
    49.9  
   49.10  # Rules to gen a SliTaz package suitable for Tazpkg.
    50.1 --- a/module-tun/receipt	Fri Nov 15 11:54:42 2019 +0100
    50.2 +++ b/module-tun/receipt	Fri Feb 28 16:03:43 2020 +0100
    50.3 @@ -8,6 +8,7 @@
    50.4  MAINTAINER="pascal.bellard@slitaz.org"
    50.5  LICENSE="GPL2"
    50.6  WEB_SITE="http://tiny.slitaz.org/"
    50.7 +DEPENDS="busybox-net"
    50.8  WANTED="linux"
    50.9  
   50.10  # Rules to gen a SliTaz package suitable for Tazpkg.
    51.1 --- a/module-via-rhine/receipt	Fri Nov 15 11:54:42 2019 +0100
    51.2 +++ b/module-via-rhine/receipt	Fri Feb 28 16:03:43 2020 +0100
    51.3 @@ -8,6 +8,7 @@
    51.4  MAINTAINER="pascal.bellard@slitaz.org"
    51.5  LICENSE="GPL2"
    51.6  WEB_SITE="http://tiny.slitaz.org/"
    51.7 +DEPENDS="busybox-net"
    51.8  WANTED="linux"
    51.9  
   51.10  # Rules to gen a SliTaz package suitable for Tazpkg.
    52.1 --- a/ntp-config/receipt	Fri Nov 15 11:54:42 2019 +0100
    52.2 +++ b/ntp-config/receipt	Fri Feb 28 16:03:43 2020 +0100
    52.3 @@ -8,7 +8,7 @@
    52.4  LICENSE="BSD"
    52.5  WEB_SITE="http://tiny.slitaz.org/"
    52.6  AUTO_SELECTION="CONFIG_NTPD"
    52.7 -DEPENDS="base-tiny"
    52.8 +DEPENDS="base-tiny busybox-net"
    52.9  CONFIG_FILES="/etc/daemons.conf /etc/rcS.conf"
   52.10  
   52.11  # Rules to gen a SliTaz package suitable for Tazpkg.
    53.1 --- a/p910nd/receipt	Fri Nov 15 11:54:42 2019 +0100
    53.2 +++ b/p910nd/receipt	Fri Feb 28 16:03:43 2020 +0100
    53.3 @@ -11,7 +11,7 @@
    53.4  WGET_URL="$SF_MIRROR/$PACKAGE/$TARBALL"
    53.5  [ -n "$TARGET" ] || TARGET="i486"
    53.6  BUILD_DEPENDS="uclibc-cross-compiler-$TARGET"
    53.7 -DEPENDS="base-tiny"
    53.8 +DEPENDS="base-tiny busybox-net"
    53.9  SUGGESTED="module-lp module-usblp"
   53.10  CONFIG_FILES="/etc/inetd.conf /etc/rcS.conf"
   53.11  
    54.1 --- a/ppp/receipt	Fri Nov 15 11:54:42 2019 +0100
    54.2 +++ b/ppp/receipt	Fri Feb 28 16:03:43 2020 +0100
    54.3 @@ -11,7 +11,7 @@
    54.4  WGET_URL="https://github.com/paulusmack/ppp/archive/$TARBALL"
    54.5  [ -n "$TARGET" ] || TARGET="i486"
    54.6  BUILD_DEPENDS="wget uclibc-cross-compiler-$TARGET"
    54.7 -DEPENDS="libdl libgcc_s"
    54.8 +DEPENDS="libdl libgcc_s busybox-net"
    54.9  CONFIG_FILES="/etc/ppp/"
   54.10  
   54.11  # Rules to configure and make the package.
    55.1 --- a/rsh/receipt	Fri Nov 15 11:54:42 2019 +0100
    55.2 +++ b/rsh/receipt	Fri Feb 28 16:03:43 2020 +0100
    55.3 @@ -11,7 +11,7 @@
    55.4  WEB_SITE="http://ftp.linux.org.uk/pub/linux/Networking/netkit/"
    55.5  WGET_URL="http://ibiblio.org/pub/linux/system/network/netkit/$TARBALL"
    55.6  
    55.7 -DEPENDS="libcrypt libutil"
    55.8 +DEPENDS="libcrypt libutil busybox-net"
    55.9  BUILD_DEPENDS="ncurses-dev"
   55.10  
   55.11  # Rules to configure and make the package.
    56.1 --- a/telnet-config/receipt	Fri Nov 15 11:54:42 2019 +0100
    56.2 +++ b/telnet-config/receipt	Fri Feb 28 16:03:43 2020 +0100
    56.3 @@ -9,7 +9,7 @@
    56.4  LICENSE="BSD"
    56.5  WEB_SITE="http://tiny.slitaz.org/"
    56.6  AUTO_SELECTION="CONFIG_TELNETD"
    56.7 -DEPENDS="base-tiny"
    56.8 +DEPENDS="base-tiny busybox-net"
    56.9  
   56.10  # Rules to gen a SliTaz package suitable for Tazpkg.
   56.11  genpkg_rules()
    57.1 --- a/udhcpd-config/receipt	Fri Nov 15 11:54:42 2019 +0100
    57.2 +++ b/udhcpd-config/receipt	Fri Feb 28 16:03:43 2020 +0100
    57.3 @@ -8,7 +8,7 @@
    57.4  LICENSE="BSD"
    57.5  WEB_SITE="http://boot.slitaz.org/"
    57.6  AUTO_SELECTION="CONFIG_UDHCPD"
    57.7 -DEPENDS="base-tiny"
    57.8 +DEPENDS="base-tiny busybox-net"
    57.9  WANTED="busybox"
   57.10  CONFIG_FILES="/etc/udhcpd.conf /etc/rcS.conf"
   57.11  
    58.1 --- a/wiki/receipt	Fri Nov 15 11:54:42 2019 +0100
    58.2 +++ b/wiki/receipt	Fri Feb 28 16:03:43 2020 +0100
    58.3 @@ -7,7 +7,7 @@
    58.4  MAINTAINER="pascal.bellard@slitaz.org"
    58.5  LICENSE="BSD"
    58.6  WEB_SITE="http://tiny.slitaz.org/"
    58.7 -DEPENDS="base-tiny"
    58.8 +DEPENDS="base-tiny busybox-net"
    58.9  CONFIG_FILES="/etc/daemons.conf /etc/rcS.conf"
   58.10  
   58.11  # Rules to gen a SliTaz package suitable for Tazpkg.