#1406 F22 System Wide Change: Systemd Package Split - https://fedoraproject.org/wiki/Changes/SystemdPackageSplit
Closed None Opened 4 years ago by jreznik.

For the 2015-01-28 meeting as the Change Proposal was announced on devel-announce list on 2015-01-21.

Split systemd-units out of the main systemd package


I wont be able to attend today's meeting due to traveling to FOSDEM, so voting here.

I'm not in favor of splitting just the systemd-units. Sure, it can make the buildroot smaller, but it will not make the minimal install smaller since it has to contain systemd already. Also since all packages requiring systemd macros already BuildRequire systemd, I'm afraid very few packages will actually adopt this change.

-1 from me

We will revist this next week.

== Mock, current rawhide ==
tl;dr

systemd-units over minimal buildroot: 2.1M
systemd-units + systemd over minimal buildroot: 29M
systemd-219 over minimal buildroot: 34M

{{{
$ mock --init && mock --dnf-cmd upgrade x86_64/systemd-libs-218-5.fc22.x86_64.rpm

systemd-libs are required by util-linux, so they are always present in the build root

$ mock -i x86_64/systemd-units-218-5.fc22.x86_64.rpm

Package Arch Version Repository Size

Installing:
kmod-libs x86_64 19-1.fc22 fedora 60 k
qrencode-libs x86_64 3.4.2-4.fc22 fedora 55 k
systemd-units x86_64 218-5.fc22 @commandline 680 k

Transaction Summary

Install 3 Packages

Total size: 795 k
Installed size: 2.1 M
}}}

Main systemd part in addition to systemd-units:
{{{
$ mock -i x86_64/systemd-218-5.fc22.x86_64.rpm
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
acl x86_64 2.2.52-7.fc22 fedora 76 k
cryptsetup-libs x86_64 1.6.6-1.fc22 fedora 184 k
dbus x86_64 1:1.8.14-1.fc22 fedora 352 k
dbus-libs x86_64 1:1.8.14-1.fc22 fedora 167 k
device-mapper x86_64 1.02.93-1.fc22 fedora 234 k
device-mapper-libs x86_64 1.02.93-1.fc22 fedora 297 k
fipscheck x86_64 1.4.1-7.fc22 fedora 26 k
fipscheck-lib x86_64 1.4.1-7.fc22 fedora 15 k
kmod x86_64 19-1.fc22 fedora 108 k
libseccomp x86_64 2.1.1-6.fc22 fedora 44 k
libxkbcommon x86_64 0.5.0-1.fc22 fedora 112 k
systemd x86_64 218-5.fc22 @commandline 4.4 M
xkeyboard-config noarch 2.14-1.fc22 fedora 752 k

Transaction Summary

Install 13 Packages

Total size: 6.7 M
Total download size: 864 k
Installed size: 27 M
}}}

When systemd-219 is released (soonish, will be in F22):
{{{
$ mock --init && mock --dnf-cmd upgrade x86_64/systemd-libs-219-1.fc22.x86_64.rpm
$ mock --dnf-cmd install x86_64/systemd-219-1.fc22.x86_64.rpm
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
acl x86_64 2.2.52-7.fc22 fedora 76 k
cryptsetup-libs x86_64 1.6.6-1.fc22 fedora 184 k
dbus x86_64 1:1.8.14-1.fc22 fedora 352 k
dbus-libs x86_64 1:1.8.14-1.fc22 fedora 167 k
device-mapper x86_64 1.02.93-1.fc22 fedora 234 k
device-mapper-libs x86_64 1.02.93-1.fc22 fedora 297 k
fipscheck x86_64 1.4.1-7.fc22 fedora 26 k
fipscheck-lib x86_64 1.4.1-7.fc22 fedora 15 k
iptables x86_64 1.4.21-14.fc22 fedora 425 k
kmod x86_64 19-1.fc22 fedora 108 k
kmod-libs x86_64 19-1.fc22 fedora 60 k
libmnl x86_64 1.0.3-9.fc22 fedora 28 k
libnetfilter_conntrack x86_64 1.0.4-4.fc22 fedora 57 k
libnfnetlink x86_64 1.0.1-6.fc22 fedora 30 k
libseccomp x86_64 2.1.1-6.fc22 fedora 44 k
libxkbcommon x86_64 0.5.0-1.fc22 fedora 112 k
qrencode-libs x86_64 3.4.2-4.fc22 fedora 55 k
systemd x86_64 219-1.fc22 @commandline 5.8 M
xkeyboard-config noarch 2.14-1.fc22 fedora 752 k

Transaction Summary

Install 19 Packages

Total size: 8.8 M
Total download size: 539 k
Installed size: 34 M
}}}

Docker: TBD.

So, I looked at various docker images... Some require systemd, some don't, depending on the purpose. Space savings for those images which do not require full systemd should be similar to the ones in mock above, about 30MB after unpacking.

https://git.fedorahosted.org/cgit/spin-kickstarts.git/tree/fedora-docker-base.ks mentions fakesystemd [1], so I assume it could use systemd-units instead of the full systemd. systemd-units seems to be a cleaner solution.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1118740

fakesystemd [http://pkgs.fedoraproject.org/cgit/fakesystemd.git/tree/fakesystemd.spec fakes Provides: of quite a few more dependencies], it’s not clear to me that systemd-units could be a replacement.

OTOH, I can’t see how the fake libudev.so* Provides: could work at all, any ELF object actually needing them AFAICS wouldn’t load.

Václav, would a split systemd-units alleviate the need for fakesystemd? (And what are the libudev.so* Provides: for?)

I should have removed fakesystemd long ago..sorry. It's not used anywhere and blocked from buildroot as it caused more problems then solved. I've retired it in Rawhide.

systemd-units should solve most cases where systemd was pulled in the image.

This ticket will be discussed in the FESCo meeting on Wednesday at 18:00UTC in #fedora-meeting on irc.freenode.net.

From today’s FESCo meeting: No conclusion reached (+3 -1 1×0), will discuss next week.

I will probably not be able to make today’s meeting, reiterating my +1.

From today's FESCo meeting: FESCo denies this Change request (+1:1, -1:6, 0:0)

Login to comment on this ticket.

Metadata