Package: systemd Version: 226-1 Severity: normal [Filing this as "normal" only because systemd-networkd is not yet normally used in Debian, and is not packaged separately; this is release-critical for systemd-networkd.]
>From the changelog of 226-1: * Make networkd call if-up.d/ scripts when it brings up interfaces, to become compatible with ifupdown and NetworkManager for packages shipping hooks. (LP: #1492129) (Along with various other changes related to these hooks.) This is an *extremely* bad idea; please revert it before any package incorrectly starts to rely on it. And this should have been discussed on at least pkg-systemd-maintainers, if not systemd-devel, before being implemented. Several reasons why this is a bad idea: - networkd is intended to bring up interfaces *quickly*, on the order of microseconds (not milliseconds) even with DHCP, let alone without. Spawning arbitrary processes, and especially shell scripts, is not and will never be compatible with networkd's performance requirements. - These hooks don't exist upstream. Packages shipping if-up.d hooks are thus still broken anywhere other than Debian, and even *in* Debian they're broken with dynamic network configuration. Those package need fixing (upstream) to handle dynamic network configuration, and once they do, the Debian-specific hooks become obsolete. Allowing these hooks makes it less obvious that the packages themselves need fixing. - Network configuration can change at any time, and networkd is not stateful; state lives in the kernel, not in networkd. These hooks break that assumption. (This will also likely break with future changes to networkd and other packages integrating with it, as well as with other types of interfaces or virtual networks networkd can configure.) Among other things, as the systemd-networkd manpage documents, "Network configurations applied before networkd is started are not removed, and static configuration applied by networkd is not removed when networkd exits. Dynamic configuration applied by networkd may also optionally be left in place on shutdown. This ensures restarting networkd does not cut the network connection, and, in particular, that it is safe to transition between the initrd and the real root, and back." - Several of the existing if-up.d and if-post-down.d hooks should not run under networkd. Among others: wpasupplicant's hooks shouldn't run at all under anything but ifupdown, mountnfs's hooks shouldn't run (because they conflict with several other approaches to nfs handling that integrate properly with systemd), avahi-daemon's hook is responsible for numerous problems and slowdowns even under ifupdown, and wireless-tools' hook shouldn't run under anything but ifupdown. - Calling if-up.d and if-post-down.d, but not calling if-down.d or if-pre-up.d, may well break assumptions that a family of scripts in those directories have about when they'll be called and what state machine they'll go through. Packages shipping if-up.d or if-post-down.d scripts are not compatible with networkd. Primarily because they aren't compatible with dynamically changing network configurations, and secondarily because they tend to do the kind of really silly things that happen with arbitrary shell-script hooks available. This is not the right way to fix that problem. What specific problem is this trying to solve? If there are specific packages you're trying to fix or integrate with, perhaps we could talk about other solutions to work with those packages (including the possibility of writing patches to either those packages or networkd to improve such integration). - Josh Triplett -- Package-specific info: -- System Information: Debian Release: stretch/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 4.1.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages systemd depends on: ii adduser 3.113+nmu3 ii libacl1 2.2.52-2 ii libapparmor1 2.9.2-3 ii libaudit1 1:2.4.4-1 ii libblkid1 2.27-1 ii libc6 2.19-19 ii libcap2 1:2.24-11 ii libcap2-bin 1:2.24-11 ii libcryptsetup4 2:1.6.6-5 ii libgcrypt20 1.6.3-2 ii libkmod2 21-1 ii liblzma5 5.1.1alpha+20120614-2.1 ii libmount1 2.27-1 ii libpam0g 1.1.8-3.1 ii libseccomp2 2.2.3-2 ii libselinux1 2.3-2+b1 ii libsystemd0 226-1 ii mount 2.27-1 ii sysv-rc 2.88dsf-59.2 ii udev 226-1 ii util-linux 2.27-1 Versions of packages systemd recommends: ii dbus 1.8.20-1 ii libpam-systemd 226-1 Versions of packages systemd suggests: pn systemd-container <none> pn systemd-ui <none> -- Configuration Files: /etc/X11/xinit/xinitrc.d/50-systemd-user.sh changed [not included] /etc/dbus-1/system.d/org.freedesktop.machine1.conf f739cc6d353cc7fea0d14b8f01ee9851 [Errno 2] No such file or directory: u'/etc/dbus-1/system.d/org.freedesktop.machine1.conf f739cc6d353cc7fea0d14b8f01ee9851' /etc/systemd/logind.conf changed [not included] -- no debconf information