FS#64071 - [base] Please remove systemd-sysvcompat or have it as optional dependency at max

Attached to Project: Arch Linux
Opened by Dirk (dsohler) - Wednesday, 09 October 2019, 15:56 GMT
Last edited by Dave Reisner (falconindy) - Sunday, 08 December 2019, 11:17 GMT
Task Type Feature Request
Category Packages: Core
Status Closed
Assigned To Dave Reisner (falconindy)
Christian Hesse (eworm)
Levente Polyak (anthraxx)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 5
Private No

Details

Since systemd-sysvcompat is a package that is needed for outdated systems to provide backwards compatibility with the initscripts that were discontinued and removed 7 years ago it should not be a hard dependency of the base package.

Instead of "forcing" the installation of an extremely old and technically not needed package the official installation documentation should be altered in a way that it describes how to add "init=/usr/lib/systemd/systemd" as a kernel parameter and how to shutdown/reboot/ etc. the system with systemctl.

(Yes, I know how to "force" packages not being installed, but that is not the point of this issue.)
This task depends upon

Closed by  Dave Reisner (falconindy)
Sunday, 08 December 2019, 11:17 GMT
Reason for closing:  Won't fix
Additional comments about closing:  These are considered canonical command names and won't be going anywhere.
Comment by Doug Newgard (Scimmia) - Wednesday, 09 October 2019, 16:05 GMT
It was a transitional package in the first place, only separate because of initscripts. The symlinks should probably just be moved to the systemd package now.
Comment by Dirk (dsohler) - Wednesday, 09 October 2019, 19:14 GMT
Yes, that seems like a good idea. If it’s really only symlinks then moving them to the package they’re used with seems to be the easiest and best solution.
Comment by Giancarlo Razzolini (grazzolini) - Tuesday, 15 October 2019, 01:25 GMT
@dsohler

They are all links to either systemctl or systemd. We've still haven't decided on the final version for this, but I think it all points in the direction of having those links residing on the systemd package itself.

Telling users they should set init= by hand is insane. And, we only support systemd. Also, I don't get why you're complaining about a 5KiB package.
Comment by Dave Reisner (falconindy) - Tuesday, 15 October 2019, 01:25 GMT
Curious: do you type "reboot" or "systemctl reboot"?

Merging the symlinks into the systemd package will simply result in other bugs being filed. The systemd package has the nice feature right now of being able to co-exist with other init systems. it's not easy to uninstall systemd, in part because the packaging has changed numerous times and we've not enforced rebuilds to keep up with the various provides, etc. So, having the symlinks in a separate package to make you "commit" to systemd is a nice feature for everyone.
Comment by Doug Newgard (Scimmia) - Tuesday, 15 October 2019, 01:30 GMT
Yes, it's nice that it can coexist with other init systems, but those systems require a lot of other things in the repos to be rebuilt, they can do the same with systemd. Arch only supports systemd, other systems shouldn't be part of the decision IMO.
Comment by Dave Reisner (falconindy) - Tuesday, 15 October 2019, 01:38 GMT
I'm not doubting you, but can you provide some examples of things that depend on systemd (not systemd-libs) and don't work without systemd as pid 1?
Comment by Giancarlo Razzolini (grazzolini) - Tuesday, 15 October 2019, 01:41 GMT
Either we decide we are going to go through extra lengths to not be actively hostile against derivatives not using systemd and/or people trying to replace systemd on Arch, or we support one init system, and do it well. I don't think having 7 symlinks inside the systemd package will change the big picture.

btw: I only use systemctl reboot and counterparts, so, in theory I could get away without a systemd-sysvcompat package.
Comment by Doug Newgard (Scimmia) - Tuesday, 15 October 2019, 01:44 GMT
I would have to look at the AUR history, but I remember a dozen or so packages that had to be replaced, besides systemd itself, when switching to openrc. I never looked into it that far, though, so I don't know exactly how many or which ones.
Comment by Giancarlo Razzolini (grazzolini) - Tuesday, 15 October 2019, 01:57 GMT
From the artix pacman one-liner, it seems to be a lot of packages:

sysvinit openrc eudev udev-openrc eudev-systemd dbus-openrc procps-ng-nosystemd syslog-ng-nosystemd udisks2-nosystemd consolekit polkit-consolekit upower-pm-utils udisks2-nosystemd desktop-privileges xorg-xwrapper acpid-openrc alsa-utils-openrc autofs-openrc consolekit consolekit-openrc cronie-openrc dbus-openrc cups-openrc displaymanager-openrc fuse-openrc haveged-openrc hdparm-openrc openssh-openrc samba-openrc syslog-ng-openrc avahi-openrc

Not sure about parabola or hyperbola, couldn't find links regarding migrating from Arch to them, as artix does.
Comment by Dirk (dsohler) - Tuesday, 15 October 2019, 08:15 GMT
@falconindy: I type `systemctl reboot` since systemd was introduced as init system several years ago.
Comment by nl6720 (nl6720) - Tuesday, 15 October 2019, 08:55 GMT
FWIW systemd developers consider the "halt", "poweroff" and "reboot" symlinks the primary interfaces, https://github.com/systemd/systemd/issues/13254#issuecomment-517921244 .
Comment by Dirk (dsohler) - Thursday, 17 October 2019, 07:57 GMT
@nl6720

One statement in an accessory sentence by one individual in one single issue not even related to "`systemctl xyz` vs. `xyz`" ... It's a bit of a stretch to say that systemd developers see this as primary interfaces. And according to the issue creator it is written in the manpage for `reboot` that those are "legacy commands available for compatibility only". I doubt that systemd devs see legacy commands that only exists for compatibility reasons as primary interface.

If those symlinks are really the primary interface (is this documented somewhere in official systemd documentation?) why are they not part of the systemd package? Were they moved into an own package by Arch devs and are actually part of upstream? And if so: Is this still needed in reality?
Comment by Giancarlo Razzolini (grazzolini) - Thursday, 17 October 2019, 14:11 GMT
I think this will be handled soon. There has been some discussion around this already. We only support systemd on Arch, but we'll try to not be actively hostile against other PID 1. Not sure what the final solution will look like though.
Comment by Daniel M. Capella (polyzen) - Saturday, 19 October 2019, 20:40 GMT
> And according to the issue creator it is written in the manpage for `reboot` that those are "legacy commands available for compatibility only". I doubt that systemd devs see legacy commands that only exists for compatibility reasons as primary interface.

The man pages now state "These commands are implemented in a way that preserves compatibility with the original SysV commands."

Loading...