The systemd rpms
- Python 57.9%
- Shell 42.1%
We want getty@.service to be enabled through presets, so that the autovt@.service alias is created (or not). See https://fedoraproject.org/wiki/Changes/UseKmsconVTConsole. getty@.service was changed upstream to have a full [Install] section, but we need to handle installation of the unit here. This will now create the autovt@.service alias when enabled. While looking at this, I noticed that the getty units are in the main package. They don't have to be, virtual terminals are only available if we have "hardware", i.e. the -udev subpackage is appropriate. Same for the tpm2 stuff. List of affected files: /etc/systemd/system/getty.target.wants /usr/lib/systemd/system-generators/systemd-getty-generator /usr/lib/systemd/system-generators/systemd-tpm2-generator /usr/lib/systemd/system/console-getty.service /usr/lib/systemd/system/container-getty@.service /usr/lib/systemd/system/getty-pre.target /usr/lib/systemd/system/getty.target /usr/lib/systemd/system/getty@.service /usr/lib/systemd/system/multi-user.target.wants/getty.target /usr/lib/systemd/system/serial-getty@.service /usr/lib/systemd/system/sysinit.target.wants/systemd-tpm2-setup-early.service /usr/lib/systemd/system/sysinit.target.wants/systemd-tpm2-setup.service /usr/lib/systemd/system/systemd-tpm2-clear.service /usr/lib/systemd/system/systemd-tpm2-setup-early.service /usr/lib/systemd/system/systemd-tpm2-setup.service /usr/lib/systemd/system/tpm2.target /usr/lib/systemd/systemd-tpm2-clear /usr/lib/systemd/systemd-tpm2-setup /usr/share/man/man8/systemd-getty-generator.8.gz /usr/share/man/man8/systemd-tpm2-clear.service.8.gz /usr/share/man/man8/systemd-tpm2-generator.8.gz /usr/share/man/man8/systemd-tpm2-setup-early.service.8.gz /usr/share/man/man8/systemd-tpm2-setup.8.gz /usr/share/man/man8/systemd-tpm2-setup.service.8.gz I considered leaving getty.target in the main package, so that foreign units that refer to it don't generate a warning about missing units, but I think that those packages should not be installed on systems without systemd-udev, so it's fine if the warning appears. |
||
|---|---|---|
| .fmf | ||
| plans | ||
| .editorconfig | ||
| .gitignore | ||
| .zuul.yaml | ||
| 0001-Revert-units-drop-runlevel-0-6-.target.patch | ||
| 0002-machined-continue-without-resolve.hook-socket.patch | ||
| 0003-ukify-omit-.osrel-section-when-os-release-is-empty.patch | ||
| 0004-stub-Fix-NULL-pointer-deref-when-there-are-no-initrd.patch | ||
| 10-map-count.conf | ||
| 10-oomd-defaults.conf | ||
| 10-oomd-per-slice-defaults.conf | ||
| 10-timeout-abort.conf | ||
| 20-yama-ptrace.conf | ||
| 60-block-scheduler.rules | ||
| 98-default-mac-none.link | ||
| 26494.patch | ||
| 30846.patch | ||
| 38769.patch | ||
| changelog | ||
| inittab | ||
| libabigail.abignore | ||
| macros.sysusers | ||
| macros.sysusers.compat | ||
| owner-check.sh | ||
| owner-check.template | ||
| README.build-in-place.md | ||
| rpminspect.yaml | ||
| sources | ||
| split-files.py | ||
| sysctl.conf.README | ||
| systemd-journal-gatewayd.xml | ||
| systemd-journal-remote.xml | ||
| systemd-udev-trigger-no-reload.conf | ||
| systemd-user | ||
| systemd.rpmlintrc | ||
| systemd.spec | ||
| sysusers.attr | ||
| sysusers.generate-pre.sh | ||
| sysusers.prov | ||
| test_sysusers_defined.py | ||
| triggers.systemd | ||
Building systemd rpms for local development using rpmbuild --build-in-place
This approach is based on filbranden's git-rpmbuild and his talk during ASG2019.
git clone https://github.com/systemd/systemd
fedpkg clone systemd fedora-systemd
cd systemd
rpmbuild -bb --build-in-place --noprep --define "_sourcedir $PWD/../fedora-systemd" --define "_rpmdir $PWD/rpms" --with upstream ../fedora-systemd/systemd.spec
sudo dnf upgrade --setopt install_weak_deps=False rpms/*/*.rpm
--without lto and --without tests may be useful to speed up the build.