Package: release.debian.org Severity: normal User: release.debian....@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 <m...@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
signature.asc
Description: Digital signature