Bug#989412: unblock: ifupdown-extra/0.32
Package: release.debian.org
Severity: normal
User: release.debian.org@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 <jfs@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
Reply to: