Source: busybox Version: 1:1.30.1-7 Severity: wishlist Tags: patch Hi Aurelien,
would it be possible to avoid the udhcpc -> busybox dependency? It may seem strange to remove busybox in a quest to reduce file system usage at first, but if you need iproute2 for other reasons, it should be fine at providing what udhcpc needs. I'm attaching a patch so you can judge the impact. If that's not a reasonable move forward, how about demoting the dependency to Recommends? Admittedly, the case of using udhcpc without using its default script is rare, so I wasn't convinced about that approach yet. What do you think? Helmut
diff --minimal -Nru busybox-1.30.1/debian/changelog busybox-1.30.1/debian/changelog --- busybox-1.30.1/debian/changelog 2021-08-22 16:39:45.000000000 +0200 +++ busybox-1.30.1/debian/changelog 2022-04-11 13:59:07.000000000 +0200 @@ -1,3 +1,10 @@ +busybox (1:1.30.1-7.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Allow using udhcpc without busybox. (Closes: #-1) + + -- Helmut Grohne <helmut.gro...@intenta.de> Mon, 11 Apr 2022 13:59:07 +0200 + busybox (1:1.30.1-7) unstable; urgency=medium [ Debian Janitor ] diff --minimal -Nru busybox-1.30.1/debian/control busybox-1.30.1/debian/control --- busybox-1.30.1/debian/control 2021-08-22 11:37:14.000000000 +0200 +++ busybox-1.30.1/debian/control 2022-04-11 13:59:04.000000000 +0200 @@ -104,7 +104,7 @@ Section: net Architecture: linux-any Depends: - busybox (>> ${source:Upstream-Version}) | busybox-static (>> ${source:Upstream-Version}), + busybox (>> ${source:Upstream-Version}) | busybox-static (>> ${source:Upstream-Version}) | iproute2, ${misc:Depends}, Description: Provides the busybox DHCP client implementation Busybox contains a very small yet fully functional RFC compliant DHCP diff --minimal -Nru busybox-1.30.1/debian/tree/udhcpc/etc/udhcpc/default.script busybox-1.30.1/debian/tree/udhcpc/etc/udhcpc/default.script --- busybox-1.30.1/debian/tree/udhcpc/etc/udhcpc/default.script 2019-08-07 23:12:03.000000000 +0200 +++ busybox-1.30.1/debian/tree/udhcpc/etc/udhcpc/default.script 2022-04-11 13:58:08.000000000 +0200 @@ -12,28 +12,33 @@ logger -t "udhcpc[$PPID]" -p daemon.$1 "$interface: $2" } +command -v ip >/dev/null && ip_exe=ip || ip_exe="busybox ip" +command -v awk >/dev/null && awk_exe=awk || awk_exe="busybox awk" + case $1 in bound|renew) # Configure new IP address. # Do it unconditionally even if the address hasn't changed, # to also set subnet, broadcast, mtu, ... - busybox ifconfig $interface ${mtu:+mtu $mtu} \ - $ip netmask $subnet ${broadcast:+broadcast $broadcast} + [ -n "$mtu" ] && $ip_exe link set dev $interface mtu $mtu + $ip_exe -4 addr flush dev $interface + $ip_exe -4 addr add $ip/$subnet ${broadcast:+broadcast $broadcast} \ + dev $interface # get current ("old") routes (after setting new IP) - crouter=$(busybox ip -4 route show dev $interface | - busybox awk '$1 == "default" { print $3; }') + crouter=$($ip_exe -4 route show dev $interface | + $awk_exe '$1 == "default" { print $3; }') router="${router%% *}" # linux kernel supports only one (default) route if [ ".$router" != ".$crouter" ]; then # reset just default routes - busybox ip -4 route flush exact 0.0.0.0/0 dev $interface + $ip_exe -4 route flush exact 0.0.0.0/0 dev $interface fi if [ -n "$router" ]; then # special case for /32 subnets: use onlink keyword [ ".$subnet" = .255.255.255.255 ] \ && onlink=onlink || onlink= - busybox ip -4 route add default via $router dev $interface $onlink + $ip_exe -4 route add default via $router dev $interface $onlink fi # Update resolver configuration file @@ -53,9 +58,9 @@ ;; deconfig) - busybox ip link set $interface up - busybox ip -4 addr flush dev $interface - busybox ip -4 route flush dev $interface + $ip_exe link set $interface up + $ip_exe -4 addr flush dev $interface + $ip_exe -4 route flush dev $interface [ -x /sbin/resolvconf ] && resolvconf -d "$interface.udhcpc" log notice "deconfigured"