Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Please unblock package grml-debootstrap v0.89, which fixes two major
issues:
1) The generated /etc/network/interfaces file might contain wrong
interface names, e.g. for virtio drivers that have properties like
ID_NET_NAME_PATH=enp0s18 and ID_NET_NAME_SLOT=ens18. If we check
only for ID_NET_NAME_PATH, then we end up with a network
configuration for enp0s18, while the actual network interface name
will be ens18 on next boot.
This fixes #929810
2) When installing with debootstrap/mmdebstrap variants
essential/minbase, the directory /etc/network doesn't exist yet (due
to absense of ifupdown/netbase packages) and setting up
/etc/network/interfaces fails.
This fixes #930468
I just uploaded grml-debootstrap/0.89 towards unstable,
related debdiff is at the end of the mail.
Thanks for consideration!
unblock grml-debootstrap/0.89
regards
-mika-
diff -Nru grml-debootstrap-0.88/debian/changelog grml-debootstrap-0.89/debian/changelog
--- grml-debootstrap-0.88/debian/changelog 2019-03-02 11:27:00.000000000 +0100
+++ grml-debootstrap-0.89/debian/changelog 2019-06-14 14:47:02.000000000 +0200
@@ -1,3 +1,12 @@
+grml-debootstrap (0.89) unstable; urgency=medium
+
+ * [2860f13] Fix detection of predictable network interface names
+ (Closes: #929810)
+ * [7a11723] Ensure /etc/network exists before setting up
+ /etc/network/interfaces (Closes: #930468)
+
+ -- Michael Prokop <mika@grml.org> Fri, 14 Jun 2019 14:47:02 +0200
+
grml-debootstrap (0.88) unstable; urgency=medium
[ Michael Prokop ]
diff -Nru grml-debootstrap-0.88/grml-debootstrap grml-debootstrap-0.89/grml-debootstrap
--- grml-debootstrap-0.88/grml-debootstrap 2019-03-02 11:27:00.000000000 +0100
+++ grml-debootstrap-0.89/grml-debootstrap 2019-06-14 14:47:02.000000000 +0200
@@ -1730,37 +1730,58 @@
# add dhcp setting for Predictable Network Interface Names
if [ -x /bin/udevadm ]; then
- for interface in $(udevadm info -e | sed -n -e 's/E: ID_NET_NAME_PATH=\([^$*]\)/\1/p'); do
- DEFAULT_INTERFACES="${DEFAULT_INTERFACES}
+ tmpfile=$(mktemp)
+ for interface in /sys/class/net/*; do
+ udevadm info --query=all --path="${interface}" > "${tmpfile}"
+ # skip virtual devices, like bridges, vboxnet,...
+ if grep -q 'P: /devices/virtual/net/' "${tmpfile}" ; then
+ continue
+ fi
+
+ # iterate over possible naming policies by precedence (see udev/net/link-config.c),
+ # use and stop on first match to have same behavior as udev's link_config_apply()
+ for property in ID_NET_NAME_FROM_DATABASE ID_NET_NAME_ONBOARD ID_NET_NAME_SLOT ID_NET_NAME_PATH ID_NET_NAME_MAC ; do
+ if grep -q "${property}" "${tmpfile}" ; then
+ interface=$(grep "${property}" "${tmpfile}" | sed -n -e "s/E: ${property}=\([^\$*]\)/\1/p")
+ DEFAULT_INTERFACES="${DEFAULT_INTERFACES}
allow-hotplug ${interface}
iface ${interface} inet dhcp
"
+ break
+ fi
+ done
done
+ rm -f "${tmpfile}"
fi
if [ -n "$NOINTERFACES" ] ; then
einfo "Not installing /etc/network/interfaces as requested via --nointerfaces option" ; eend 0
elif [ -n "$USE_DEFAULT_INTERFACES" ] ; then
einfo "Installing default /etc/network/interfaces as requested via --defaultinterfaces options."
+ mkdir -p "${MNTPOINT}/etc/network"
echo "$DEFAULT_INTERFACES" > "${MNTPOINT}/etc/network/interfaces"
eend $?
elif [ -n "$VIRTUAL" ] ; then
einfo "Setting up Virtual Machine, installing default /etc/network/interfaces"
+ mkdir -p "${MNTPOINT}/etc/network"
echo "$DEFAULT_INTERFACES" > "${MNTPOINT}/etc/network/interfaces"
eend $?
elif [ -r /etc/network/interfaces ] ; then
einfo "Copying /etc/network/interfaces from host to target system"
+ mkdir -p "${MNTPOINT}/etc/network"
cp $VERBOSE /etc/network/interfaces "${MNTPOINT}/etc/network/interfaces"
eend $?
else
ewarn "Couldn't read /etc/network/interfaces, installing default /etc/network/interfaces"
+ mkdir -p "${MNTPOINT}/etc/network"
echo "$DEFAULT_INTERFACES" > "${MNTPOINT}/etc/network/interfaces"
eend $?
fi
# install config file providing some example entries
if [ -r /etc/network/interfaces.examples ] && [ ! -r "$MNTPOINT/etc/network/interfaces.examples" ] ; then
- cp /etc/network/interfaces.examples "$MNTPOINT/etc/network/interfaces.examples"
+ mkdir -p "${MNTPOINT}/etc/network"
+ cp /etc/network/interfaces.examples "$MNTPOINT/etc/network/interfaces.examples"
fi
if [ -n "${SSHCOPYID}" ] ; then
Attachment:
signature.asc
Description: Digital signature