Bug 980389 - Excessive dependencies on systemd
Summary: Excessive dependencies on systemd
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Basesystem (show other bugs)
Version: Current
Hardware: All Linux
: P5 - None : Enhancement (vote)
Target Milestone: ---
Assignee: Jan Engelhardt
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-05-17 16:23 UTC by Jan Engelhardt
Modified: 2018-07-10 17:39 UTC (History)
3 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Engelhardt 2016-05-17 16:23:01 UTC
Not all programs require systemd to run, in particular, within containers. One of them for example is boinc-client. Consider:

mkdir /c/etc
cp /etc/{passwd,group,shadow} /c/etc/
zypper -R /c in boinc-client
systemd-nspawn -D /c -u jengelh /bin/sh -c 'cd ~; exec /usr/bin/boinc-client'

This pulled in systemd not too long ago, but boinc does not actually use systemd itself in any way. Therefore, boinc-client.rpm is not to have requirements on systemd in its specfile, and in fact already had this removed earlier in 2015 already.

A number of packages remain in openSUSE which still have these requirements on systemd though they should not. These need to be audited and, as time and joy permits, be edited to live without systemd where possible.

Points to note:
1. 17:48 < DimStar> I think the main issue of dropping the systemd_requires all over the place is the fact that on a fresh system install, an rpm that might be triggered for install CAN be installed before systemd - then having some fun bugs to fix
17:51 < va> somehow we also manage to install aaa_base first, so if systemd really had this "needs to be there" thing, it should not be a big deal.
Comment 1 Jan Engelhardt 2016-05-17 16:38:55 UTC
%service_add_* and %service_del_* can already deal with the absence of systemctl; they use [ -x ... ] to test for its existence so that there are no error messages in case of its willful absence.

Not all calls to /usr/bin/systemd-tmpfiles are yet protected by [-x].

Some programs may require the presence of tmpfiles. For a container where systemd is not used as pid 1, this is solved on the host side already (like everything else, including package installation), by invoking tmpfiles before nspawn:

0. systemd-tmpfiles --root /c --create
1. systemd-nspawn -D /c ... as above
Comment 2 Martin Pluskal 2016-05-24 14:16:52 UTC
See boo#976922 - lack of systemd dependencies is causing issues during installation. Furthermore you were notified of this in https://build.opensuse.org/request/show/394097 - please stop with this activity.