Package: systemd-resolved
Version: 251.3-2~exp1
Severity: critical

(filing the bug as critical since it "makes unrelated software on the system (or the whole system) break", feel free to downgrade)

Dear developers,

The new systemd-resolved package takes over /etc/resolv.conf, and unconditionally makes it a symlink it to /run/systemd/resolve/stub-resolv.conf. Moreover, after the package is removed, the symlink is also removed, leaving the system with no /etc/resolv.conf, and thus, a broken DNS resolution.

/etc/resolv.conf is not considered as a conffile since technically, it doesn't belong to any package (and is not listed as a conffile by systemd-resolved, which treats it as a normal file), but if it's considered as a configuration file (it's located in /etc after all), I believe this behavior severely transgresses Debian Policy 10.7.3 on both points ("local changes must be preserved during a package upgrade" and "configuration files must be preserved when the package is removed").

One (conservative) solution would be to not touch /etc/resolv.conf at all, leaving the users create the symlink to /run/systemd/resolve/stub-resolv.conf (or /run/systemd/resolve/resolv.conf) themselves. This would solve both transgressions at once. One could argue that it wouldn't make sense to install systemd-resolved and not use it in /etc/resolv.conf, but the service would still provide the bus and glibc APIs.

If /etc/resolv.conf is not considered a configuration file, and this new behavior does not transgresses the Debian Policy, then the package should at least leave the system with a working /etc/resolv.conf file after removal, for example by copying the contents of /run/systemd/resolve/resolv.conf (optionally stripping comments and empty lines) in maintainers scripts.

Regards,

--
Raphaël Halimi

Reply via email to