On Fri, Sep 27, 2019 at 03:39:43PM +0200, Julien Cristau wrote: > On Fri, Sep 27, 2019 at 09:19:10AM -0400, Sam Hartman wrote: > So one thing I think we should ensure is we don't end up uninstalling > systemd without an explicit user choice.
Julien, I appreciate that you are suggesting some additional protection is required against this. However, it appears that the way APT handles the current dependencies already require explicit user choice to be made. Testing on a basic sid desktop install with systemd as pid 1 I get the following behaviour: - apt install libelogind0 Generates the apt "You are about to do something potentially harmful. To continue type in the phrase 'Yes, do as I say!'" warning. - apt install elogind - apt install libpam-elogind For both of these APT fails to find a solution. The only way make it find an solution is to explicitly request installation of sysvinit-core such as 'apt install libpam-elogind sysvinit-core' So I am not sure any changes are required in order to enforce explicit instruction before attempting removal of systemd. Is this sufficient? Mark
test@DebianUnstable: ~test@DebianUnstable:~$ dpkg -l systemd* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=================-============-============-======================================= ii systemd 242-7 amd64 system and service manager un systemd-container <none> <none> (no description available) un systemd-shim <none> <none> (no description available) ii systemd-sysv 242-7 amd64 system and service manager - SysV links test@DebianUnstable: ~test@DebianUnstable:~$ sudo apt-get install libelogind0 Reading package lists... Done Building dependency tree... Reading state information... Done The following packages were automatically installed and are no longer required: acl avahi-daemon colord-data gir1.2-matemenu-2.0 gnome-accessibility-themes gnome-themes-extra gnome-themes-extra-data gtk2-engines-pixbuf libargon2-1 libavahi-core7 libayatana-appindicator3-1 libayatana-ido3-0.4-0 libayatana-indicator3-7 libcolorhug2 libcryptsetup12 libdaemon0 libdbusmenu-glib4 libdbusmenu-gtk3-4 libgd3 libgphoto2-6 libgphoto2-l10n libgphoto2-port12 libgusb2 libieee1284-3 libindicator3-7 liblightdm-gobject-1-0 libmate-menu2 libmate-panel-applet-4-1 libmateweather-common libmateweather1 libnss-mdns libplymouth4 librda-common librda0 libsane libsane-common libsnmp-base libsnmp30 lightdm-gtk-greeter mate-menus mate-panel-common mate-polkit-common menu menu-xdg sane-utils update-inetd Use 'sudo apt autoremove' to remove them. The following packages will be REMOVED: colord init libnss-systemd libpam-systemd libsystemd0 lightdm mate-panel mate-polkit plymouth plymouth-label policykit-1 policykit-1-gnome systemd systemd-sysv xiccd The following NEW packages will be installed: libelogind0 WARNING: The following essential packages will be removed. This should NOT be done unless you know exactly what you are doing! init systemd-sysv (due to init) 0 upgraded, 1 newly installed, 15 to remove and 0 not upgraded. Need to get 224 kB of archives. After this operation, 20.1 MB disk space will be freed. You are about to do something potentially harmful. To continue type in the phrase 'Yes, do as I say!' ?] n Abort. test@DebianUnstable: ~test@DebianUnstable:~$ sudo apt-get install elogind Reading package lists... Done Building dependency tree... Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: elogind : Depends: libelogind0 (= 241.3-1+debian1) but it is not going to be installed E: Unable to correct problems, you have held broken packages.