From Fedora Project Wiki

Systemd package split

Summary

Two new subpackages will be split out from the main systemd package. systemd-container will contain stuff for launching and managing VMs and containers. system-udev will contain udevd and other hardware-related bits.

Owner

Current status

Detailed Description

  • systemd-container.rpm will consist of systemd-nspawn, systemd-machined, machinectl, systemd-importd, systemd-pull.
  • systemd-udev.rpm will consist of systemd-udevd, udevadm, udev rules, and the hardware database.

Both new subpackages will be optional. systemd-container.rpm is useful only for people creating containers or VMs. systemd-udev.rpm should be generally installed, but can be skipped in containers.

Benefit to Fedora

systemd-container.rpm is 3.5MB on disk, and also pulls in libmicrohttpd, which pulls in a bunch of other dependencies. It can be skipped to save space.

systemd-udev.rpm is 6.5MB on disk, but installing it recompiles the hwdb. The recompiled hwdb is another 6.5MB. Leaving this package out thus saves 13MB and some processing time. It can be skipped in containers which do not interact with hardware.

Scope

  • Proposal owners:

Update packaging to create the new subpackages.

  • Other developers: add dependencies on systemd-udev and systemd-container as necessary for other packages, modify comps. Make sure anaconda installs systemd-udev by default.
  • Release engineering: N/A
  • Policies and guidelines: N/A
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

Proper Obsoletes will be provided so that both new subpackages are installed on upgrades. The effect on upgrades should be minimal.

How To Test

Verify that udev functionality works as expected (systemd-udev package is installed, /dev/disk/by-id is present).

User Experience

N/A (not user visible)

Dependencies

Contingency Plan

  • Contingency mechanism: Add Requires: systemd-udev systemd-container to the systemd package to return to status quo ante.
  • Contingency deadline: anytime
  • Blocks release? No
  • Blocks product? No

Documentation

Why make this into a Change at all?

Mostly because of the potential for breakage if people lose systemd-udevd on real hardware and because of the need to add dependencies to other packages.

Release Notes