** Description changed: + [impact] + + If the /{etc,lib}/systemd/network directory itself is a symlink, the find + command will not actually find any of the files in the dir it links to. + + [test case] + + $ sudo touch /etc/systemd/network/lp1868892.link + $ sudo update-initramfs -u + update-initramfs: Generating /boot/initrd.img-5.4.0-21-generic + ... + $ sudo lsinitramfs /boot/initrd.img-5.4.0-21-generic | grep lp1868892 + usr/lib/systemd/network/lp1868892.link + $ sudo mv /etc/systemd/network /etc/systemd/network.abc + $ sudo ln -s network.abc /etc/systemd/network + $ sudo update-initramfs -u + $ sudo lsinitramfs /boot/initrd.img-5.4.0-21-generic | grep lp1868892 + $ + + [regression potential] + + this adjusts how link files are included in the initramfs, so + regressions would likely occur when creating new initramfs, such as + failure to create initramfs at all, or failure to properly copy link + files into the initramfs, causing network setup failure. + + [scope] + + this is a Debian/Ubuntu specific file, and the Debian MR was just + opened, so this is needed for Debian and all releases of Ubuntu. + + [other info] + + This bug likely has a very limited impact, as it is uncommon to symlink + either the /lib/systemd/network or /etc/systemd/network dirs. + + [original description] + If one creates e.g. /etc/systemd/network.cu and /etc/systemd/network.fc and symlinks /etc/systemd/network to one of them, network setup will fail on reboot, because /usr/share/initramfs-tools/hooks/udev does a very poor job: it simply checks for a directory instead of the link files and therefore skips copying required files to the ram image. Another poor job is done when copying the files to the ram image: instead of following symlinks it copies them as which in turn makes them useless, because it does not copy the related dirs and thus the symlinks point to nothing. So keeping the system in an consistent state which such poor scripts is very hard, asking for trouble. Suggested fix is attached.
** Tags added: ddstreet -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/1868892 Title: initramfs-tools/hooks/udev for network *.link really sucks Status in systemd package in Ubuntu: In Progress Status in systemd source package in Xenial: In Progress Status in systemd source package in Bionic: In Progress Status in systemd source package in Eoan: In Progress Status in systemd source package in Focal: In Progress Bug description: [impact] If the /{etc,lib}/systemd/network directory itself is a symlink, the find command will not actually find any of the files in the dir it links to. [test case] $ sudo touch /etc/systemd/network/lp1868892.link $ sudo update-initramfs -u update-initramfs: Generating /boot/initrd.img-5.4.0-21-generic ... $ sudo lsinitramfs /boot/initrd.img-5.4.0-21-generic | grep lp1868892 usr/lib/systemd/network/lp1868892.link $ sudo mv /etc/systemd/network /etc/systemd/network.abc $ sudo ln -s network.abc /etc/systemd/network $ sudo update-initramfs -u $ sudo lsinitramfs /boot/initrd.img-5.4.0-21-generic | grep lp1868892 $ [regression potential] this adjusts how link files are included in the initramfs, so regressions would likely occur when creating new initramfs, such as failure to create initramfs at all, or failure to properly copy link files into the initramfs, causing network setup failure. [scope] this is a Debian/Ubuntu specific file, and the Debian MR was just opened, so this is needed for Debian and all releases of Ubuntu. [other info] This bug likely has a very limited impact, as it is uncommon to symlink either the /lib/systemd/network or /etc/systemd/network dirs. [original description] If one creates e.g. /etc/systemd/network.cu and /etc/systemd/network.fc and symlinks /etc/systemd/network to one of them, network setup will fail on reboot, because /usr/share/initramfs- tools/hooks/udev does a very poor job: it simply checks for a directory instead of the link files and therefore skips copying required files to the ram image. Another poor job is done when copying the files to the ram image: instead of following symlinks it copies them as which in turn makes them useless, because it does not copy the related dirs and thus the symlinks point to nothing. So keeping the system in an consistent state which such poor scripts is very hard, asking for trouble. Suggested fix is attached. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1868892/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp