Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package ifupdown-extra [ Reason ] There is a bug (#987310) in the package in testing which prevents the static-routes script (/etc/network/if-up.d/20static-routes) from working properly when the package is configured to include them. I have also taken the opportunity to: - fix the script so it exits gracefully if called directly (i.e. when the interface to act on is not set) - fix the script so that the 'status' check works properly when the gateways have a defined name in the /etc/hosts - update the documentation (README) to warn users about the behaviour of one script. [ Impact ] If the package is not unblocked users installing this package and trying to set static routes will have their routes added to the 'blackhole' configuration instead. [ Tests ] Tested locally in developer's machine with different configuration variations. The script runs as expected (adding, removing and checking the status of routes added in /etc/network/routes [ Risks ] Changes in the package are trivial, there is very low risk [ Checklist ] [x] all changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in testing unblock ifupdown-extra/0.32 -- System Information: Debian Release: bullseye/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 5.10.0-1-686-pae (SMP w/4 CPU threads) Locale: LANG=es_ES.utf8, LC_CTYPE=es_ES.utf8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
diff -Nru ifupdown-extra-0.31/debian/changelog ifupdown-extra-0.32/debian/changelog --- ifupdown-extra-0.31/debian/changelog 2020-09-19 09:09:41.000000000 +0200 +++ ifupdown-extra-0.32/debian/changelog 2021-06-03 08:13:30.000000000 +0200 @@ -1,3 +1,16 @@ +ifupdown-extra (0.32) unstable; urgency=high + + * if-up-scripts/static-routes: + - Fix syntax error in script which causes routes added to be converted + into "blackhole" routes (Closes: 987310) + - Fail properly if the inteface (IFACE) is not defined when the script + is called + - Use route -n instead of 'route' to properly identify status of routes + when the gateways are in the hosts file + * debian/README: Describe caveats related to network link tests + + -- Javier Fernández-Sanguino Peña <j...@debian.org> Thu, 03 Jun 2021 08:13:30 +0200 + ifupdown-extra (0.31) unstable; urgency=medium * Fix some network scripts to adapt to the naming scheme introduced diff -Nru ifupdown-extra-0.31/debian/README ifupdown-extra-0.32/debian/README --- ifupdown-extra-0.31/debian/README 2020-09-19 09:09:37.000000000 +0200 +++ ifupdown-extra-0.32/debian/README 2021-06-03 08:13:30.000000000 +0200 @@ -16,8 +16,12 @@ submit it as a bug report to the package. -Known limitations ----------------- +Known limitations: +------------------ + +--------------- +Interface names +--------------- Starting with v197, systemd/udev creates predictable network interface names for all local Ethernet, WLAN and WWAN interfaces. However, system @@ -42,6 +46,22 @@ systemd.net-naming scheme: https://www.freedesktop.org/software/systemd/man/systemd.net-naming-scheme.html +------------------ +Network link checks +------------------ + +The script that tests the network link is run inmediately after an interface is +administratively configured up. However, the underlying hardware sometime it +takes some time to establish and negotiate a link. This is heavily dependant on +the hardware itself and the system it is connected to (e.g. if auto negotiation +of an interface is enabled or the duplex/mode are forced in the interface). + +Due to this time interval for the link to fully stablise it is possible that +the check-network-cable might generate false negative error messages on +systems. + +If this is your case, you are encourage to disable the script by editing +/etc/default/network-test and changing the variable DO_CABLETEST to 'no' ---------- Javier Fernández-Sanguino diff -Nru ifupdown-extra-0.31/if-up-scripts/static-routes ifupdown-extra-0.32/if-up-scripts/static-routes --- ifupdown-extra-0.31/if-up-scripts/static-routes 2020-08-15 01:30:37.000000000 +0200 +++ ifupdown-extra-0.32/if-up-scripts/static-routes 2021-06-03 08:13:30.000000000 +0200 @@ -51,6 +51,11 @@ # Default value VERBOSITY=${VERBOSITY:-0} +[ "$IFACE" ] || { + $OUTPUT "ERROR: Variable IFACE not set in environment" + exit 1 +} + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901612 if [ ${IFACE} = "--all" ]; then IFACE="[[:alnum:]]+"; fi @@ -80,7 +85,7 @@ cat $ROUTEFILE | egrep "^[^#].*[[:space:]]${IFACE}[[:space:]]*$" | while read network netmask gateway interface ; do if [ -n "$interface" ] && [ -n "$network" ] && [ -n "$netmask" ] && [ -n "$gateway" ] ; then - if [ "$gateway" != "reject" ] && [ "$gateway" != "blackhole" ; then + if [ "$gateway" != "reject" ] && [ "$gateway" != "blackhole" ] ; then [ "$VERBOSITY" -eq 1 ] && echo "DEBUG: Adding route for $network / $netmask through gateway $gateway at $interface" route add -net $network netmask $netmask gw $gateway dev $interface else @@ -99,7 +104,7 @@ while read network netmask gateway interface ; do if [ -n "$interface" ] && [ -n "$network" ] && [ -n "$netmask" ] && [ -n "$gateway" ] ; then if [ "$gateway" != "reject" ] ; then - if ! route | egrep -q "${network}\s+${gateway}\s+${netmask}.*${interface}"; then + if ! route -n | egrep -q "${network}\s+${gateway}\s+${netmask}.*${interface}"; then echo "ERROR: Route '$network $netmask $gateway $interface' defined in $ROUTEFILE is not configured" fi fi