mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-30 00:50:17 +02:00
busybox: Download and patch the dispatcher script from upstream
This commit is contained in:
parent
179b74c216
commit
dcc963bd2d
|
@ -31,6 +31,14 @@ let
|
||||||
CONFIG_FEATURE_UTMP n
|
CONFIG_FEATURE_UTMP n
|
||||||
CONFIG_FEATURE_WTMP n
|
CONFIG_FEATURE_WTMP n
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
debianName = "busybox_1.30.1-5";
|
||||||
|
debianTarball = fetchTarball {
|
||||||
|
url = "http://deb.debian.org/debian/pool/main/b/busybox/${debianName}.debian.tar.xz";
|
||||||
|
sha256 = "03m4rvs2pd0hj0mdkdm3r4m1gh0bgwr0cvnqds297xnkfi5s01nx";
|
||||||
|
};
|
||||||
|
debianDispatcherScript = "${debianTarball}/tree/udhcpc/etc/udhcpc/default.script";
|
||||||
|
outDispatchPath = "$out/default.script";
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
@ -81,7 +89,7 @@ stdenv.mkDerivation rec {
|
||||||
CONFIG_FEATURE_COPYBUF_KB 64
|
CONFIG_FEATURE_COPYBUF_KB 64
|
||||||
|
|
||||||
# Set the path for the udhcpc script
|
# Set the path for the udhcpc script
|
||||||
CONFIG_UDHCPC_DEFAULT_SCRIPT "$out/share/default.script"
|
CONFIG_UDHCPC_DEFAULT_SCRIPT "${outDispatchPath}"
|
||||||
|
|
||||||
${extraConfig}
|
${extraConfig}
|
||||||
CONFIG_CROSS_COMPILER_PREFIX "${stdenv.cc.targetPrefix}"
|
CONFIG_CROSS_COMPILER_PREFIX "${stdenv.cc.targetPrefix}"
|
||||||
|
@ -98,9 +106,12 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir $out/share
|
sed -e '
|
||||||
substituteAll ${./default.script} $out/share/default.script
|
1 a busybox() { '$out'/bin/busybox "$@"; }\
|
||||||
chmod +x $out/share/default.script
|
logger() { '$out'/bin/logger "$@"; }\
|
||||||
|
' ${debianDispatcherScript} > ${outDispatchPath}
|
||||||
|
chmod 555 ${outDispatchPath}
|
||||||
|
PATH=$out/bin patchShebangs ${outDispatchPath}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||||
|
|
|
@ -1,66 +0,0 @@
|
||||||
#!@bash@/bin/sh
|
|
||||||
# Busybox udhcpc dispatcher script.
|
|
||||||
# Copyright (C) 2009 by Axel Beckert.
|
|
||||||
# Copyright (C) 2014 by Michael Tokarev.
|
|
||||||
#
|
|
||||||
# Based on the busybox example scripts and the old udhcp source
|
|
||||||
# package default.* scripts.
|
|
||||||
|
|
||||||
RESOLV_CONF="/etc/resolv.conf"
|
|
||||||
|
|
||||||
log() {
|
|
||||||
@out@/bin/logger -t "udhcpc[$PPID]" -p daemon.$1 "$interface: $2"
|
|
||||||
}
|
|
||||||
|
|
||||||
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, ...
|
|
||||||
@out@/bin/ifconfig $interface ${mtu:+mtu $mtu} \
|
|
||||||
$ip netmask $subnet ${broadcast:+broadcast $broadcast}
|
|
||||||
|
|
||||||
# get current ("old") routes (after setting new IP)
|
|
||||||
crouter=$(@out@/bin/ip -4 route show dev $interface |
|
|
||||||
@out@/bin/awk '$1 == "default" { print $3; }')
|
|
||||||
router="${router%% *}" # linux kernel supports only one (default) route
|
|
||||||
if [ ".$router" != ".$crouter" ]; then
|
|
||||||
# reset just default routes
|
|
||||||
@out@/bin/ip -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=
|
|
||||||
@out@/bin/ip -4 route add default via $router dev $interface $onlink
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Update resolver configuration file
|
|
||||||
[ -n "$domain" ] && R="domain $domain" || R=""
|
|
||||||
for i in $dns; do
|
|
||||||
R="$R
|
|
||||||
nameserver $i"
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "$R" > "$RESOLV_CONF"
|
|
||||||
|
|
||||||
log info "$1: IP=$ip/$subnet router=$router domain=\"$domain\" dns=\"$dns\" lease=$lease"
|
|
||||||
;;
|
|
||||||
|
|
||||||
deconfig)
|
|
||||||
@out@/bin/ip link set $interface up
|
|
||||||
@out@/bin/ip -4 addr flush dev $interface
|
|
||||||
@out@/bin/ip -4 route flush dev $interface
|
|
||||||
log notice "deconfigured"
|
|
||||||
;;
|
|
||||||
|
|
||||||
leasefail | nak)
|
|
||||||
log err "configuration failed: $1: $message"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo "$0: Unknown udhcpc command: $1" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
Loading…
Reference in a new issue