Merge ~enr0n/ubuntu/+source/systemd:ubuntu-lunar into ~ubuntu-core-dev/ubuntu/+source/systemd:ubuntu-lunar

Proposed by Nick Rosbrook
Status: Merged
Merged at revision: 3cfeaef362871e8f4719fca62dc6ff97f2d9c4e9
Proposed branch: ~enr0n/ubuntu/+source/systemd:ubuntu-lunar
Merge into: ~ubuntu-core-dev/ubuntu/+source/systemd:ubuntu-lunar
Diff against target: 225649 lines (+82865/-39726)
1751 files modified
.clang-format (+10/-8)
.github/ISSUE_TEMPLATE/bug_report.yml (+183/-0)
.github/ISSUE_TEMPLATE/feature_request.yml (+124/-0)
.github/advanced-issue-labeler.yml (+146/-0)
.github/codeql-config.yml (+1/-1)
.github/codeql-custom.qls (+8/-0)
.github/codeql-queries/PotentiallyDangerousFunction.ql (+4/-1)
.github/codeql-queries/UninitializedVariableWithCleanup.ql (+8/-8)
.github/pull_request_template.md.disabled (+5/-0)
.github/workflows/build_test.sh (+24/-19)
.github/workflows/build_test.yml (+6/-6)
.github/workflows/cifuzz.yml (+8/-3)
.github/workflows/codeql.yml (+17/-16)
.github/workflows/coverity.yml (+5/-18)
.github/workflows/differential-shellcheck.yml (+31/-0)
.github/workflows/issue_labeler.yml (+36/-0)
.github/workflows/labeler.yml (+2/-1)
.github/workflows/linter.yml (+3/-3)
.github/workflows/mkosi.yml (+16/-19)
.github/workflows/requirements.txt (+18/-18)
.github/workflows/scorecards.yml (+70/-0)
.github/workflows/unit_tests.sh (+16/-4)
.github/workflows/unit_tests.yml (+10/-4)
.gitignore (+1/-0)
.semaphore/semaphore-runner.sh (+6/-13)
LICENSES/MIT-0.txt (+7/-0)
LICENSES/README.md (+2/-1)
NEWS (+632/-27)
README (+17/-16)
README.md (+2/-4)
TODO (+591/-145)
catalog/systemd.bg.catalog.in (+273/-53)
catalog/systemd.catalog.in (+13/-8)
catalog/systemd.de.catalog.in (+7/-0)
coccinelle/in_set.cocci (+17/-5)
coccinelle/macros.h (+0/-2)
debian/changelog (+284/-0)
debian/control (+8/-10)
debian/extra/kernel-install.d/85-initrd.install (+5/-17)
debian/gbp.conf (+1/-1)
debian/libsystemd-shared.lintian-overrides (+1/-1)
debian/libsystemd0.symbols (+17/-8)
debian/patches/0001-Revert-tests-add-test-case-for-UMask-BindPaths-combi.patch (+2/-2)
debian/patches/Revert-network-if-sys-is-rw-then-udev-should-be-around.patch (+4/-4)
debian/patches/debian/Bring-tmpfiles.d-tmp.conf-in-line-with-Debian-defaul.patch (+0/-2)
debian/patches/debian/Don-t-enable-audit-by-default.patch (+2/-8)
debian/patches/debian/Downgrade-a-couple-of-warnings-to-debug.patch (+5/-11)
debian/patches/debian/Let-graphical-session-pre.target-be-manually-started.patch (+1/-3)
debian/patches/debian/Make-run-lock-tmpfs-an-API-fs.patch (+1/-5)
debian/patches/debian/Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-back-to-.patch (+2/-6)
debian/patches/debian/Only-start-logind-if-dbus-is-installed.patch (+1/-3)
debian/patches/debian/Re-enable-journal-forwarding-to-syslog.patch (+2/-8)
debian/patches/debian/Revert-core-one-step-back-again-for-nspawn-we-actual.patch (+1/-3)
debian/patches/debian/Revert-core-set-RLIMIT_CORE-to-unlimited-by-default.patch (+3/-7)
debian/patches/debian/Skip-filesystem-check-if-already-done-by-the-initram.patch (+4/-8)
debian/patches/debian/UBUNTU-Add-AssumedApparmorLabel-unconfined-to-timedate1-dbus.patch (+1/-3)
debian/patches/debian/UBUNTU-Don-t-override-Ubuntu-s-default-sysctl-values-LP-1962038.patch (+2/-4)
debian/patches/debian/UBUNTU-Fix-timezone-setting-on-read-only-etc.patch (+1/-1)
debian/patches/debian/UBUNTU-Revert-cgroup-Continue-unit-reset-if-cgroup-is-busy.patch (+1/-3)
debian/patches/debian/UBUNTU-Revert-namespace-be-more-careful-when-handling-namespacin.patch (+1/-3)
debian/patches/debian/UBUNTU-journald.service-set-Nice-1-to-dodge-watchdog-on-soft-loc.patch (+1/-3)
debian/patches/debian/UBUNTU-resolved-default-no-negative-caching.patch (+3/-11)
debian/patches/debian/UBUNTU-test-sleep-skip-test_fiemap-upon-inapproriate-ioctl-.patch (+1/-3)
debian/patches/debian/UBUNTU-test-test-functions-launch-qemu-with-vga-none.patch (+3/-5)
debian/patches/debian/UBUNTU-units-block-CAP_SYS_MODULE-units-in-containers-too.patch (+2/-6)
debian/patches/debian/UBUNTU-wait-online-exit-if-no-links-are-managed.patch (+2/-2)
debian/patches/debian/Ubuntu-UseDomains-by-default.patch (+16/-16)
debian/patches/debian/Ubuntu-units-set-ConditionVirtualization-private-users-on-j.patch (+1/-3)
debian/patches/debian/Use-Debian-specific-config-files.patch (+163/-168)
debian/patches/debian/fsckd-daemon-for-inter-fsckd-communication.patch (+10/-34)
debian/patches/debian/systemctl-do-not-shutdown-immediately-on-scheduled-shutdo.patch (+1/-3)
debian/patches/debian/timedatectl-lp1650688.patch (+2/-4)
debian/patches/debian/udev-drop-SystemCallArchitectures-native-from-systemd-ude.patch (+2/-4)
debian/patches/deny-list-TEST-55-OOMD-on-ppc64el.patch (+0/-3)
debian/patches/lp1861941-dont-generate-disk-byuuid-for-bcache-uuid.patch (+2/-4)
debian/patches/lp1981042-core-firstboot-workaround-timezone-issues-caused-by-Ubunt.patch (+10/-13)
debian/patches/oomd-always-allow-root-owned-cgroups-to-set-ManagedOOMPre.patch (+36/-0)
debian/patches/oomd-fix-unreachable-test-case-in-test-oomd-util.patch (+35/-0)
debian/patches/series (+6/-15)
debian/patches/test-denylist-TEST-29-PORTABLE-again.patch (+0/-3)
debian/patches/test-handle-Debian-s-etc-default-locale-in-testsuite-74.f.patch (+107/-0)
debian/patches/test-increase-QEMU_MEM-for-some-tests.patch (+42/-86)
debian/patches/test-make-sure-mount-point-exists-in-testsuite-64.sh.patch (+22/-0)
debian/patches/test-remove-no-longer-needed-quirk-for-set-locale-on-Debi.patch (+23/-0)
debian/patches/test-skip-some-tests-when-machine-id-is-not-initialized.patch (+119/-0)
debian/rules (+7/-6)
debian/salsa-ci.yml (+0/-3)
debian/systemd-boot.maintscript (+2/-0)
debian/systemd-coredump.lintian-overrides (+0/-1)
debian/systemd-coredump.postinst (+0/-3)
debian/systemd-journal-remote.lintian-overrides (+1/-1)
debian/systemd-oomd.postinst (+1/-4)
debian/systemd-resolved.postinst (+12/-14)
debian/systemd-resolved.postrm (+8/-8)
debian/systemd-standalone-sysusers.manpages (+1/-0)
debian/systemd-standalone-tmpfiles.manpages (+1/-0)
debian/systemd-sysv.postinst (+1/-1)
debian/systemd-tests.lintian-overrides (+2/-2)
debian/systemd-timesyncd.postinst (+0/-3)
debian/systemd.install (+2/-0)
debian/systemd.lintian-overrides (+11/-11)
debian/systemd.postinst (+21/-41)
debian/systemd.postrm (+1/-0)
debian/tests/boot-and-services (+0/-1)
debian/tests/control (+2/-0)
debian/tests/localed-x11-keymap (+1/-1)
debian/tests/tests-in-lxd (+8/-13)
debian/udev.lintian-overrides (+1/-1)
dev/null (+0/-40)
docs/ARCHITECTURE.md (+47/-17)
docs/AUTOMATIC_BOOT_ASSESSMENT.md (+93/-83)
docs/BLOCK_DEVICE_LOCKING.md (+2/-2)
docs/BOOT_LOADER_INTERFACE.md (+5/-1)
docs/BOOT_LOADER_SPECIFICATION.md (+1/-445)
docs/CGROUP_DELEGATION.md (+3/-3)
docs/CODE_QUALITY.md (+8/-5)
docs/CODING_STYLE.md (+48/-5)
docs/CONTRIBUTING.md (+30/-15)
docs/CONVERTING_TO_HOMED.md (+2/-2)
docs/COREDUMP_PACKAGE_METADATA.md (+2/-147)
docs/CREDENTIALS.md (+51/-14)
docs/DISCOVERABLE_PARTITIONS.md (+1/-417)
docs/ELF_PACKAGE_METADATA.md (+149/-0)
docs/ENVIRONMENT.md (+28/-0)
docs/HACKING.md (+84/-20)
docs/INITRD_INTERFACE.md (+15/-14)
docs/JOURNAL_FILE_FORMAT.md (+43/-9)
docs/NETWORK_ONLINE.md (+7/-7)
docs/PASSWORD_AGENTS.md (+1/-1)
docs/PORTABILITY_AND_STABILITY.md (+5/-5)
docs/PORTABLE_SERVICES.md (+5/-5)
docs/PREDICTABLE_INTERFACE_NAMES.md (+1/-1)
docs/RANDOM_SEEDS.md (+10/-10)
docs/RELEASE.md (+13/-10)
docs/ROOT_STORAGE_DAEMONS.md (+10/-10)
docs/TEMPORARY_DIRECTORIES.md (+8/-8)
docs/TESTING_WITH_SANITIZERS.md (+16/-0)
docs/UIDS-GIDS.md (+1/-1)
docs/USER_GROUP_API.md (+1/-1)
docs/USER_RECORD.md (+9/-5)
docs/_layouts/default.html (+1/-1)
docs/_layouts/forward.html (+26/-0)
docs/style.css (+57/-4)
hwdb.d/20-OUI.hwdb (+3845/-98)
hwdb.d/20-acpi-vendor.hwdb (+78/-0)
hwdb.d/20-acpi-vendor.hwdb.patch (+52/-68)
hwdb.d/20-dmi-id.hwdb (+23/-0)
hwdb.d/20-pci-vendor-model.hwdb (+1615/-145)
hwdb.d/60-autosuspend-fingerprint-reader.hwdb (+38/-0)
hwdb.d/60-autosuspend.hwdb (+1/-1)
hwdb.d/60-evdev.hwdb (+21/-1)
hwdb.d/60-keyboard.hwdb (+71/-4)
hwdb.d/60-sensor.hwdb (+48/-15)
hwdb.d/70-analyzers.hwdb (+10/-2)
hwdb.d/70-av-production.hwdb (+4/-0)
hwdb.d/80-ieee1394-unit-function.hwdb (+22/-6)
hwdb.d/acpi_id_registry.html (+3/-0)
hwdb.d/ma-large.txt (+8408/-3485)
hwdb.d/ma-medium.txt (+1476/-114)
hwdb.d/ma-small.txt (+1888/-493)
hwdb.d/parse_hwdb.py (+35/-16)
hwdb.d/pci.ids (+598/-94)
hwdb.d/pnp_id_registry.html (+21/-0)
man/50-xdg-data-dirs.sh (+1/-1)
man/90-rearrange-path.py (+1/-1)
man/binfmt.d.xml (+1/-1)
man/bootctl.xml (+58/-9)
man/bootup.xml (+132/-131)
man/busctl.xml (+1/-1)
man/check-os-release-simple.py (+1/-1)
man/check-os-release.py (+3/-2)
man/check-os-release.sh (+1/-1)
man/coredumpctl.xml (+24/-4)
man/crypttab.xml (+39/-23)
man/custom-html.xsl (+2/-2)
man/event-quick-child.c (+1/-1)
man/fido2-crypttab.sh (+1/-1)
man/file-hierarchy.xml (+5/-5)
man/glib-event-glue.c (+1/-1)
man/halt.xml (+9/-4)
man/homectl.xml (+1/-0)
man/hostnamectl.xml (+2/-2)
man/hwdb-usb-device.c (+1/-1)
man/id128-app-specific.c (+1/-1)
man/inotify-watch-tmp.c (+1/-1)
man/journal-enumerate-fields.c (+22/-0)
man/journal-iterate-foreach.c (+31/-0)
man/journal-iterate-poll.c (+1/-1)
man/journal-iterate-unique.c (+6/-4)
man/journal-iterate-wait.c (+10/-6)
man/journal-stream-fd.c (+29/-0)
man/journalctl.xml (+660/-790)
man/journald.conf.xml (+18/-15)
man/kernel-command-line.xml (+16/-7)
man/kernel-install.xml (+131/-87)
man/loader.conf.xml (+71/-1)
man/localectl.xml (+6/-4)
man/loginctl.xml (+2/-2)
man/logind.conf.xml (+11/-0)
man/machine-id.xml (+16/-9)
man/machine-info.xml (+1/-1)
man/machinectl.xml (+37/-45)
man/oomctl.xml (+1/-1)
man/org.freedesktop.import1.xml (+2/-2)
man/org.freedesktop.login1.xml (+22/-7)
man/org.freedesktop.machine1.xml (+33/-3)
man/org.freedesktop.oom1.xml (+30/-1)
man/org.freedesktop.portable1.xml (+8/-2)
man/org.freedesktop.resolve1.xml (+1/-1)
man/org.freedesktop.systemd1.xml (+180/-27)
man/os-release.xml (+32/-8)
man/pam_systemd.xml (+2/-2)
man/path-documents.c (+1/-1)
man/portablectl.xml (+15/-6)
man/print-unit-path.c (+4/-3)
man/pstore.conf.xml (+1/-1)
man/repart.d.xml (+158/-152)
man/resolvectl.xml (+23/-2)
man/rules/meson.build (+20/-4)
man/sd-bus-container-append.c (+1/-1)
man/sd-bus-container-read.c (+1/-1)
man/sd-bus-errors.xml (+1/-1)
man/sd-id128.xml (+119/-45)
man/sd_bus_add_match.xml (+1/-1)
man/sd_bus_creds_get_pid.xml (+4/-5)
man/sd_bus_enqueue_for_read.xml (+1/-1)
man/sd_bus_error-example.c (+1/-1)
man/sd_bus_error.xml (+29/-18)
man/sd_bus_error_add_map.xml (+1/-1)
man/sd_bus_message_append.xml (+1/-1)
man/sd_bus_message_append_array.xml (+2/-2)
man/sd_bus_message_append_basic.xml (+2/-2)
man/sd_bus_message_append_string_memfd.xml (+1/-1)
man/sd_bus_message_append_strv.xml (+1/-1)
man/sd_bus_message_dump.xml (+4/-3)
man/sd_bus_message_read_strv.xml (+18/-4)
man/sd_bus_new.xml (+4/-2)
man/sd_device_ref.xml (+4/-2)
man/sd_event_add_signal.xml (+22/-19)
man/sd_event_new.xml (+4/-2)
man/sd_event_set_signal_exit.xml (+101/-0)
man/sd_event_source_set_enabled.xml (+18/-17)
man/sd_hwdb_new.xml (+12/-2)
man/sd_journal_enumerate_fields.xml (+1/-20)
man/sd_journal_next.xml (+1/-28)
man/sd_journal_stream_fd.xml (+1/-27)
man/sd_login_monitor_new.xml (+4/-2)
man/sd_notify.xml (+2/-2)
man/sd_pid_get_owner_uid.xml (+4/-6)
man/sd_session_is_active.xml (+1/-1)
man/send-unit-files-changed.c (+1/-1)
man/shutdown.xml (+8/-0)
man/systemctl.xml (+84/-57)
man/systemd-analyze.xml (+75/-14)
man/systemd-ask-password.xml (+4/-4)
man/systemd-boot.xml (+16/-2)
man/systemd-cat.xml (+7/-10)
man/systemd-cgtop.xml (+10/-17)
man/systemd-creds.xml (+44/-10)
man/systemd-cryptenroll.xml (+66/-10)
man/systemd-cryptsetup-generator.xml (+27/-40)
man/systemd-debug-generator.xml (+1/-1)
man/systemd-detect-virt.xml (+6/-1)
man/systemd-dissect.xml (+34/-6)
man/systemd-fsck@.service.xml (+6/-9)
man/systemd-fstab-generator.xml (+13/-16)
man/systemd-getty-generator.xml (+3/-3)
man/systemd-gpt-auto-generator.xml (+32/-65)
man/systemd-hibernate-resume@.service.xml (+2/-2)
man/systemd-integritysetup@.service.xml (+1/-1)
man/systemd-machined.service.xml (+1/-1)
man/systemd-measure.xml (+284/-0)
man/systemd-modules-load.service.xml (+2/-4)
man/systemd-network-generator.service.xml (+9/-2)
man/systemd-networkd.service.xml (+5/-7)
man/systemd-nspawn.xml (+69/-59)
man/systemd-pcrphase.service.xml (+149/-0)
man/systemd-random-seed.service.xml (+5/-5)
man/systemd-remount-fs.service.xml (+1/-1)
man/systemd-repart.xml (+74/-30)
man/systemd-resolved.service.xml (+5/-5)
man/systemd-run.xml (+27/-28)
man/systemd-sleep.conf.xml (+25/-7)
man/systemd-stub.xml (+162/-20)
man/systemd-sysctl.service.xml (+32/-0)
man/systemd-sysext.xml (+17/-9)
man/systemd-system.conf.xml (+44/-7)
man/systemd-sysusers.xml (+27/-19)
man/systemd-tmpfiles.xml (+25/-0)
man/systemd-veritysetup-generator.xml (+4/-4)
man/systemd-veritysetup@.service.xml (+1/-1)
man/systemd-volatile-root.service.xml (+4/-3)
man/systemd.automount.xml (+7/-7)
man/systemd.exec.xml (+112/-85)
man/systemd.generator.xml (+14/-14)
man/systemd.journal-fields.xml (+8/-0)
man/systemd.kill.xml (+10/-3)
man/systemd.link.xml (+40/-15)
man/systemd.mount.xml (+9/-9)
man/systemd.net-naming-scheme.xml (+35/-2)
man/systemd.netdev.xml (+39/-7)
man/systemd.network.xml (+156/-27)
man/systemd.path.xml (+6/-2)
man/systemd.preset.xml (+10/-6)
man/systemd.resource-control.xml (+82/-262)
man/systemd.scope.xml (+2/-2)
man/systemd.service.xml (+7/-7)
man/systemd.slice.xml (+1/-1)
man/systemd.socket.xml (+2/-2)
man/systemd.special.xml (+18/-24)
man/systemd.syntax.xml (+1/-1)
man/systemd.system-credentials.xml (+192/-0)
man/systemd.time.xml (+2/-3)
man/systemd.timer.xml (+4/-0)
man/systemd.unit.xml (+89/-55)
man/systemd.xml (+41/-65)
man/tmpfiles.d.xml (+63/-26)
man/tpm2-crypttab.sh (+1/-1)
man/udev.xml (+5/-7)
man/udevadm.xml (+6/-5)
man/veritytab.xml (+3/-3)
man/vtable-example.c (+1/-1)
man/vtable-example.xml (+1/-1)
man/yubikey-crypttab.sh (+1/-1)
meson.build (+381/-247)
meson_options.txt (+52/-42)
mkosi.build (+215/-22)
mkosi.default.d/10-systemd.conf (+54/-3)
mkosi.default.d/arch/10-mkosi.arch (+21/-55)
mkosi.default.d/centos_epel/10-mkosi.centos_epel (+34/-41)
mkosi.default.d/debian/10-mkosi.debian (+31/-43)
mkosi.default.d/fedora/10-mkosi.fedora (+31/-44)
mkosi.default.d/opensuse/10-mkosi.opensuse (+44/-36)
mkosi.default.d/ubuntu/10-mkosi.ubuntu (+35/-44)
mkosi.postinst (+20/-2)
network/80-6rd-tunnel.network (+2/-2)
network/80-container-host0.network (+2/-2)
network/80-container-vb.network (+2/-2)
network/80-container-ve.network (+2/-2)
network/80-container-vz.network (+2/-2)
network/80-ethernet.network.example (+2/-2)
network/80-vm-vt.network (+2/-2)
network/80-wifi-adhoc.network (+2/-2)
network/80-wifi-ap.network.example (+2/-2)
network/80-wifi-station.network.example (+2/-2)
network/99-default.link (+2/-2)
po/LINGUAS (+2/-1)
po/POTFILES.skip (+1/-0)
po/be.po (+25/-6)
po/be@latin.po (+26/-64)
po/bg.po (+164/-248)
po/ca.po (+25/-56)
po/cs.po (+27/-9)
po/da.po (+25/-6)
po/de.po (+25/-52)
po/el.po (+25/-37)
po/es.po (+25/-34)
po/et.po (+899/-0)
po/fi.po (+25/-9)
po/fr.po (+25/-6)
po/gl.po (+25/-26)
po/hr.po (+25/-9)
po/hu.po (+165/-231)
po/id.po (+25/-6)
po/it.po (+10/-10)
po/ja.po (+10/-10)
po/ka.po (+24/-8)
po/kab.po (+22/-6)
po/ko.po (+27/-11)
po/lt.po (+25/-44)
po/meson.build (+1/-1)
po/nl.po (+26/-6)
po/pa.po (+24/-7)
po/pl.po (+10/-10)
po/pt.po (+25/-6)
po/pt_BR.po (+25/-6)
po/ro.po (+25/-6)
po/ru.po (+26/-9)
po/si.po (+23/-6)
po/sk.po (+25/-55)
po/sr.po (+26/-48)
po/sv.po (+27/-10)
po/systemd.pot (+23/-6)
po/tr.po (+26/-9)
po/uk.po (+25/-9)
po/zh_CN.po (+25/-9)
po/zh_TW.po (+25/-6)
rules.d/50-udev-default.rules.in (+3/-2)
rules.d/60-infiniband.rules (+12/-0)
rules.d/60-persistent-storage.rules (+14/-2)
rules.d/60-sensor.rules (+16/-0)
rules.d/60-serial.rules (+4/-4)
rules.d/70-uaccess.rules.in (+1/-0)
rules.d/80-drivers.rules (+1/-1)
rules.d/99-systemd.rules.in (+6/-0)
shell-completion/bash/bootctl (+9/-2)
shell-completion/bash/busctl (+4/-3)
shell-completion/bash/coredumpctl (+1/-1)
shell-completion/bash/homectl (+3/-2)
shell-completion/bash/hostnamectl (+1/-1)
shell-completion/bash/journalctl (+4/-3)
shell-completion/bash/kernel-install (+1/-1)
shell-completion/bash/localectl (+1/-1)
shell-completion/bash/loginctl (+6/-5)
shell-completion/bash/machinectl (+6/-5)
shell-completion/bash/meson.build (+1/-0)
shell-completion/bash/networkctl (+1/-1)
shell-completion/bash/oomctl (+1/-1)
shell-completion/bash/portablectl (+4/-3)
shell-completion/bash/resolvectl (+1/-1)
shell-completion/bash/systemctl.in (+6/-5)
shell-completion/bash/systemd-analyze (+13/-3)
shell-completion/bash/systemd-cat (+1/-1)
shell-completion/bash/systemd-cgls (+4/-2)
shell-completion/bash/systemd-cgtop (+9/-2)
shell-completion/bash/systemd-cryptenroll (+110/-0)
shell-completion/bash/systemd-delta (+1/-1)
shell-completion/bash/systemd-detect-virt (+1/-1)
shell-completion/bash/systemd-dissect (+104/-0)
shell-completion/bash/systemd-id128 (+2/-2)
shell-completion/bash/systemd-nspawn (+4/-2)
shell-completion/bash/systemd-path (+1/-1)
shell-completion/bash/systemd-resolve (+1/-1)
shell-completion/bash/systemd-run (+4/-2)
shell-completion/bash/systemd-sysext (+85/-0)
shell-completion/bash/timedatectl (+4/-2)
shell-completion/bash/udevadm (+1/-1)
shell-completion/zsh/_bootctl (+3/-0)
shell-completion/zsh/_busctl (+1/-1)
shell-completion/zsh/_loginctl (+1/-1)
shell-completion/zsh/_machinectl (+8/-8)
shell-completion/zsh/_oomctl (+1/-1)
shell-completion/zsh/_resolvectl (+1/-1)
shell-completion/zsh/_sd_machines (+4/-1)
shell-completion/zsh/_sd_outputmodes (+1/-1)
shell-completion/zsh/_systemctl.in (+8/-7)
shell-completion/zsh/_systemd-analyze (+2/-2)
src/activate/activate.c (+9/-12)
src/analyze/analyze-blame.c (+5/-1)
src/analyze/analyze-calendar.c (+8/-6)
src/analyze/analyze-capability.c (+5/-1)
src/analyze/analyze-cat-config.c (+1/-1)
src/analyze/analyze-compare-versions.c (+42/-0)
src/analyze/analyze-compare-versions.h (+3/-0)
src/analyze/analyze-condition.c (+8/-4)
src/analyze/analyze-critical-chain.c (+13/-18)
src/analyze/analyze-dot.c (+1/-1)
src/analyze/analyze-dump.c (+116/-20)
src/analyze/analyze-exit-status.c (+5/-1)
src/analyze/analyze-filesystems.c (+1/-1)
src/analyze/analyze-log-control.c (+5/-1)
src/analyze/analyze-plot.c (+1/-1)
src/analyze/analyze-security.c (+7/-12)
src/analyze/analyze-service-watchdogs.c (+1/-1)
src/analyze/analyze-syscall-filter.c (+1/-1)
src/analyze/analyze-time-data.h (+2/-0)
src/analyze/analyze-time.c (+1/-1)
src/analyze/analyze-timestamp.c (+8/-6)
src/analyze/analyze-unit-files.c (+1/-1)
src/analyze/analyze-unit-paths.c (+1/-1)
src/analyze/analyze-verify-util.c (+21/-15)
src/analyze/analyze.c (+10/-6)
src/analyze/meson.build (+2/-0)
src/backlight/backlight.c (+120/-36)
src/basic/alloc-util.h (+19/-15)
src/basic/bus-label.c (+3/-5)
src/basic/cgroup-util.h (+1/-0)
src/basic/chase-symlinks.c (+55/-16)
src/basic/chase-symlinks.h (+3/-2)
src/basic/conf-files.c (+7/-10)
src/basic/coverage.h (+1/-1)
src/basic/def.h (+5/-0)
src/basic/devnum-util.c (+20/-17)
src/basic/devnum-util.h (+1/-0)
src/basic/env-file.c (+1/-3)
src/basic/env-util.c (+13/-1)
src/basic/env-util.h (+2/-0)
src/basic/errno-util.h (+26/-5)
src/basic/ether-addr-util.c (+9/-0)
src/basic/ether-addr-util.h (+2/-0)
src/basic/fd-util.c (+1/-16)
src/basic/fd-util.h (+1/-2)
src/basic/fileio.c (+6/-21)
src/basic/fs-util.c (+27/-50)
src/basic/fs-util.h (+18/-4)
src/basic/glob-util.c (+13/-2)
src/basic/glob-util.h (+3/-1)
src/basic/glyph-util.c (+2/-0)
src/basic/glyph-util.h (+1/-0)
src/basic/hash-funcs.c (+4/-0)
src/basic/hash-funcs.h (+1/-0)
src/basic/hashmap.c (+7/-7)
src/basic/hashmap.h (+1/-6)
src/basic/hmac.c (+1/-3)
src/basic/hostname-util.c (+2/-4)
src/basic/in-addr-util.c (+76/-31)
src/basic/in-addr-util.h (+55/-3)
src/basic/io-util.c (+2/-4)
src/basic/linux/btrfs.h (+133/-0)
src/basic/linux/btrfs_tree.h (+6/-14)
src/basic/linux/can/netlink.h (+13/-0)
src/basic/linux/if_addr.h (+8/-1)
src/basic/linux/if_bridge.h (+18/-0)
src/basic/linux/if_ether.h (+2/-0)
src/basic/linux/if_link.h (+100/-0)
src/basic/linux/if_tunnel.h (+3/-1)
src/basic/linux/netlink.h (+1/-0)
src/basic/linux/nl80211.h (+151/-11)
src/basic/linux/rtnetlink.h (+16/-0)
src/basic/list.h (+0/-3)
src/basic/locale-util.c (+38/-15)
src/basic/locale-util.h (+1/-0)
src/basic/log.c (+20/-54)
src/basic/log.h (+39/-0)
src/basic/macro.h (+1/-42)
src/basic/math-util.h (+14/-0)
src/basic/mempool.c (+0/-17)
src/basic/mempool.h (+1/-2)
src/basic/meson.build (+6/-5)
src/basic/missing_loop.h (+6/-1)
src/basic/missing_network.h (+32/-0)
src/basic/missing_sched.h (+5/-0)
src/basic/missing_syscall.h (+40/-0)
src/basic/missing_syscall_def.h (+35/-0)
src/basic/missing_syscalls.py (+2/-0)
src/basic/mkdir.c (+29/-22)
src/basic/mountpoint-util.c (+50/-8)
src/basic/mountpoint-util.h (+1/-0)
src/basic/namespace-util.c (+46/-4)
src/basic/namespace-util.h (+20/-0)
src/basic/os-util.c (+93/-38)
src/basic/os-util.h (+11/-9)
src/basic/parse-util.c (+17/-55)
src/basic/parse-util.h (+5/-1)
src/basic/path-lookup.c (+1/-1)
src/basic/path-util.c (+106/-33)
src/basic/path-util.h (+13/-6)
src/basic/process-util.c (+33/-3)
src/basic/process-util.h (+2/-0)
src/basic/random-util.c (+113/-159)
src/basic/random-util.h (+2/-9)
src/basic/ratelimit.c (+7/-0)
src/basic/ratelimit.h (+2/-1)
src/basic/recurse-dir.c (+2/-2)
src/basic/set.h (+1/-6)
src/basic/sigbus.c (+24/-10)
src/basic/siphash24.c (+1/-2)
src/basic/socket-util.c (+70/-24)
src/basic/socket-util.h (+3/-1)
src/basic/stat-util.c (+26/-0)
src/basic/stat-util.h (+3/-0)
src/basic/static-destruct.h (+2/-2)
src/basic/stdio-util.h (+7/-7)
src/basic/string-util.c (+13/-0)
src/basic/string-util.h (+7/-13)
src/basic/strv.c (+38/-19)
src/basic/strv.h (+23/-18)
src/basic/syscalls-loongarch64.txt (+2/-2)
src/basic/syscalls-parisc.txt (+601/-0)
src/basic/syscalls-riscv32.txt (+1/-1)
src/basic/syscalls-riscv64.txt (+1/-1)
src/basic/terminal-util.c (+1/-1)
src/basic/time-util.c (+3/-5)
src/basic/time-util.h (+7/-2)
src/basic/tmpfile-util.c (+65/-64)
src/basic/uid-range.c (+237/-0)
src/basic/uid-range.h (+34/-0)
src/basic/unit-def.c (+126/-125)
src/basic/unit-def.h (+1/-0)
src/basic/unit-file.c (+8/-6)
src/basic/user-util.c (+62/-86)
src/basic/user-util.h (+9/-8)
src/basic/virt.c (+87/-85)
src/basic/virt.h (+1/-0)
src/binfmt/binfmt.c (+1/-1)
src/boot/bless-boot-generator.c (+17/-33)
src/boot/bless-boot.c (+9/-13)
src/boot/bootctl.c (+423/-148)
src/boot/efi/bcd.c (+73/-102)
src/boot/efi/bcd.h (+3/-2)
src/boot/efi/boot.c (+802/-683)
src/boot/efi/console.c (+42/-37)
src/boot/efi/console.h (+6/-6)
src/boot/efi/cpio.c (+232/-115)
src/boot/efi/cpio.h (+26/-9)
src/boot/efi/devicetree.c (+28/-21)
src/boot/efi/devicetree.h (+4/-1)
src/boot/efi/disk.c (+18/-16)
src/boot/efi/disk.h (+2/-1)
src/boot/efi/drivers.c (+23/-28)
src/boot/efi/drivers.h (+2/-1)
src/boot/efi/efi-string.c (+384/-0)
src/boot/efi/efi-string.h (+127/-0)
src/boot/efi/fuzz-bcd.c (+3/-8)
src/boot/efi/fuzz-efi-string.c (+40/-0)
src/boot/efi/graphics.c (+5/-5)
src/boot/efi/graphics.h (+2/-1)
src/boot/efi/initrd.c (+7/-7)
src/boot/efi/initrd.h (+5/-0)
src/boot/efi/linux.c (+122/-124)
src/boot/efi/linux.h (+7/-2)
src/boot/efi/linux_x86.c (+156/-149)
src/boot/efi/measure.c (+81/-42)
src/boot/efi/measure.h (+20/-21)
src/boot/efi/meson.build (+51/-35)
src/boot/efi/missing_efi.h (+28/-28)
src/boot/efi/pe.c (+202/-145)
src/boot/efi/pe.h (+6/-9)
src/boot/efi/random-seed.c (+52/-42)
src/boot/efi/random-seed.h (+2/-1)
src/boot/efi/secure-boot.c (+166/-6)
src/boot/efi/secure-boot.h (+32/-1)
src/boot/efi/shim.c (+72/-105)
src/boot/efi/shim.h (+3/-3)
src/boot/efi/splash.c (+46/-49)
src/boot/efi/splash.h (+1/-1)
src/boot/efi/stub.c (+234/-157)
src/boot/efi/test-bcd.c (+1/-0)
src/boot/efi/test-efi-string.c (+496/-0)
src/boot/efi/ticks.c (+17/-34)
src/boot/efi/ticks.h (+2/-3)
src/boot/efi/util.c (+250/-205)
src/boot/efi/util.h (+116/-70)
src/boot/efi/xbootldr.c (+78/-62)
src/boot/measure.c (+1164/-0)
src/boot/pcrphase.c (+262/-0)
src/busctl/busctl-introspect.c (+1/-2)
src/busctl/busctl.c (+23/-17)
src/busctl/test-busctl-introspect.c (+7/-7)
src/cgtop/cgtop.c (+5/-3)
src/core/automount.c (+7/-6)
src/core/bpf-lsm.c (+6/-5)
src/core/bpf-socket-bind.c (+5/-5)
src/core/bpf-util.c (+2/-1)
src/core/bpf/meson.build (+35/-11)
src/core/bpf/restrict_fs/restrict-fs.bpf.c (+1/-1)
src/core/bpf/restrict_ifaces/restrict-ifaces.bpf.c (+2/-2)
src/core/bpf/socket_bind/socket-bind.bpf.c (+1/-1)
src/core/cgroup.c (+61/-52)
src/core/core-varlink.c (+52/-28)
src/core/core-varlink.h (+4/-0)
src/core/dbus-cgroup.c (+47/-42)
src/core/dbus-execute.c (+55/-94)
src/core/dbus-job.c (+9/-14)
src/core/dbus-kill.c (+1/-3)
src/core/dbus-manager.c (+183/-159)
src/core/dbus-path.c (+1/-2)
src/core/dbus-scope.c (+7/-2)
src/core/dbus-service.c (+4/-5)
src/core/dbus-timer.c (+3/-6)
src/core/dbus-unit.c (+36/-67)
src/core/dbus-unit.h (+0/-1)
src/core/dbus-util.c (+33/-1)
src/core/dbus-util.h (+2/-0)
src/core/dbus.c (+10/-20)
src/core/device.c (+352/-209)
src/core/device.h (+1/-0)
src/core/dynamic-user.c (+9/-8)
src/core/efi-random.c (+1/-1)
src/core/execute.c (+112/-53)
src/core/execute.h (+3/-1)
src/core/fuzz-unit-file.c (+1/-1)
src/core/import-creds.c (+162/-4)
src/core/job.c (+59/-21)
src/core/job.h (+7/-2)
src/core/kmod-setup.c (+3/-0)
src/core/load-fragment-gperf.gperf.in (+4/-2)
src/core/load-fragment.c (+150/-216)
src/core/load-fragment.h (+1/-1)
src/core/main.c (+92/-52)
src/core/manager-dump.c (+38/-15)
src/core/manager-dump.h (+4/-4)
src/core/manager-serialize.c (+37/-15)
src/core/manager.c (+121/-113)
src/core/manager.h (+13/-4)
src/core/meson.build (+133/-135)
src/core/mount.c (+129/-102)
src/core/namespace.c (+60/-35)
src/core/namespace.h (+1/-12)
src/core/org.freedesktop.systemd1.conf (+9/-1)
src/core/org.freedesktop.systemd1.policy.in (+1/-1)
src/core/path.c (+134/-12)
src/core/path.h (+8/-0)
src/core/restrict-ifaces.c (+2/-2)
src/core/scope.c (+142/-17)
src/core/scope.h (+4/-0)
src/core/selinux-access.c (+30/-44)
src/core/selinux-access.h (+3/-7)
src/core/service.c (+23/-17)
src/core/socket.c (+37/-40)
src/core/swap.c (+5/-11)
src/core/system.conf.in (+3/-2)
src/core/timer.c (+107/-2)
src/core/timer.h (+8/-0)
src/core/unit-serialize.c (+9/-4)
src/core/unit.c (+275/-122)
src/core/unit.h (+101/-14)
src/core/user.conf.in (+2/-1)
src/coredump/coredump.c (+29/-15)
src/coredump/coredumpctl.c (+113/-13)
src/creds/creds.c (+71/-30)
src/cryptenroll/cryptenroll-list.c (+1/-1)
src/cryptenroll/cryptenroll-pkcs11.c (+1/-1)
src/cryptenroll/cryptenroll-tpm2.c (+73/-15)
src/cryptenroll/cryptenroll-tpm2.h (+2/-2)
src/cryptenroll/cryptenroll.c (+102/-30)
src/cryptsetup/cryptsetup-generator.c (+19/-6)
src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-fido2.c (+6/-12)
src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-pkcs11.c (+2/-1)
src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-tpm2.c (+119/-70)
src/cryptsetup/cryptsetup-tokens/cryptsetup-token-util.c (+26/-0)
src/cryptsetup/cryptsetup-tokens/cryptsetup-token-util.h (+2/-0)
src/cryptsetup/cryptsetup-tokens/luks2-pkcs11.c (+1/-2)
src/cryptsetup/cryptsetup-tokens/luks2-tpm2.c (+22/-127)
src/cryptsetup/cryptsetup-tokens/luks2-tpm2.h (+6/-11)
src/cryptsetup/cryptsetup-tpm2.c (+72/-140)
src/cryptsetup/cryptsetup-tpm2.h (+22/-8)
src/cryptsetup/cryptsetup.c (+226/-47)
src/debug-generator/debug-generator.c (+0/-6)
src/delta/delta.c (+5/-3)
src/dissect/dissect.c (+110/-38)
src/environment-d-generator/environment-d-generator.c (+10/-9)
src/firstboot/firstboot.c (+73/-47)
src/fsck/fsck.c (+16/-11)
src/fstab-generator/fstab-generator.c (+170/-50)
src/fundamental/bootspec-fundamental.c (+4/-4)
src/fundamental/bootspec-fundamental.h (+2/-2)
src/fundamental/efivars-fundamental.c (+1/-6)
src/fundamental/efivars-fundamental.h (+11/-9)
src/fundamental/macro-fundamental.h (+105/-79)
src/fundamental/meson.build (+2/-1)
src/fundamental/sha256.c (+19/-19)
src/fundamental/sha256.h (+6/-7)
src/fundamental/string-util-fundamental.c (+37/-41)
src/fundamental/string-util-fundamental.h (+51/-19)
src/fundamental/tpm-pcr.c (+17/-0)
src/fundamental/tpm-pcr.h (+48/-0)
src/fuzz/fuzz-bootspec.c (+1/-1)
src/fuzz/fuzz-varlink.c (+1/-2)
src/fuzz/fuzz.h (+4/-1)
src/gpt-auto-generator/gpt-auto-generator.c (+48/-95)
src/hibernate-resume/hibernate-resume-generator.c (+5/-12)
src/home/homectl-pkcs11.c (+1/-1)
src/home/homectl.c (+54/-4)
src/home/homed-conf.c (+1/-2)
src/home/homed-home-bus.c (+19/-39)
src/home/homed-home.c (+20/-15)
src/home/homed-manager-bus.c (+13/-30)
src/home/homed-manager.c (+14/-17)
src/home/homed-varlink.c (+3/-6)
src/home/homework-fscrypt.c (+2/-2)
src/home/homework-luks.c (+33/-35)
src/home/homework-mount.c (+5/-3)
src/home/homework-pkcs11.c (+1/-2)
src/home/homework.c (+3/-3)
src/home/org.freedesktop.home1.conf (+1/-1)
src/home/org.freedesktop.home1.policy (+1/-1)
src/home/pam_systemd_home.c (+141/-219)
src/home/user-record-util.c (+1/-1)
src/hostname/hostnamectl.c (+1/-3)
src/hostname/hostnamed.c (+10/-17)
src/hostname/org.freedesktop.hostname1.conf (+1/-1)
src/hostname/org.freedesktop.hostname1.policy (+1/-1)
src/hwdb/hwdb.c (+1/-1)
src/import/curl-util.c (+4/-8)
src/import/export-raw.c (+0/-6)
src/import/import-fs.c (+2/-5)
src/import/import-raw.c (+2/-3)
src/import/importd.c (+11/-22)
src/import/org.freedesktop.import1.conf (+1/-1)
src/import/org.freedesktop.import1.policy (+1/-1)
src/import/pull-job.c (+4/-9)
src/import/pull-raw.c (+1/-1)
src/initctl/initctl.c (+1/-1)
src/journal-remote/journal-gatewayd.c (+11/-16)
src/journal-remote/journal-remote-main.c (+1/-3)
src/journal-remote/journal-remote-parse.c (+1/-1)
src/journal-remote/journal-upload-journal.c (+2/-5)
src/journal-remote/journal-upload.c (+5/-12)
src/journal/journalctl.c (+62/-157)
src/journal/journald-audit.c (+2/-3)
src/journal/journald-kmsg.c (+1/-2)
src/journal/journald-server.c (+32/-59)
src/journal/journald-server.h (+2/-2)
src/journal/journald-stream.c (+2/-6)
src/journal/journald-syslog.c (+2/-3)
src/journal/managed-journal-file.c (+66/-31)
src/journal/test-journal-flush.c (+9/-1)
src/journal/test-journal-interleaving.c (+14/-2)
src/journal/test-journal-stream.c (+9/-2)
src/journal/test-journal-verify.c (+12/-2)
src/journal/test-journal.c (+27/-3)
src/kernel-install/50-depmod.install (+7/-3)
src/kernel-install/90-loaderentry.install (+25/-15)
src/kernel-install/kernel-install.in (+86/-60)
src/kernel-install/meson.build (+3/-1)
src/kernel-install/test-kernel-install.sh (+84/-0)
src/libsystemd-network/dhcp-identifier.c (+35/-23)
src/libsystemd-network/dhcp-identifier.h (+3/-4)
src/libsystemd-network/dhcp-internal.h (+9/-4)
src/libsystemd-network/dhcp-network.c (+71/-57)
src/libsystemd-network/dhcp-packet.c (+2/-2)
src/libsystemd-network/dhcp-protocol.h (+4/-3)
src/libsystemd-network/dhcp6-internal.h (+1/-0)
src/libsystemd-network/dhcp6-option.c (+84/-114)
src/libsystemd-network/dhcp6-option.h (+6/-6)
src/libsystemd-network/dhcp6-protocol.c (+11/-0)
src/libsystemd-network/dhcp6-protocol.h (+1/-0)
src/libsystemd-network/fuzz-dhcp-client.c (+2/-2)
src/libsystemd-network/fuzz-dhcp6-client.c (+1/-1)
src/libsystemd-network/network-internal.c (+6/-9)
src/libsystemd-network/sd-dhcp-client.c (+53/-109)
src/libsystemd-network/sd-dhcp-lease.c (+10/-13)
src/libsystemd-network/sd-dhcp-server.c (+2/-6)
src/libsystemd-network/sd-dhcp6-client.c (+109/-86)
src/libsystemd-network/sd-dhcp6-lease.c (+1/-1)
src/libsystemd-network/sd-ipv4acd.c (+3/-6)
src/libsystemd-network/sd-ipv4ll.c (+4/-18)
src/libsystemd-network/sd-lldp-rx.c (+1/-2)
src/libsystemd-network/sd-lldp-tx.c (+1/-3)
src/libsystemd-network/sd-ndisc.c (+11/-16)
src/libsystemd-network/sd-radv.c (+22/-34)
src/libsystemd-network/test-acd.c (+0/-1)
src/libsystemd-network/test-dhcp-client.c (+18/-13)
src/libsystemd-network/test-dhcp-option.c (+2/-2)
src/libsystemd-network/test-dhcp6-client.c (+8/-18)
src/libsystemd-network/test-ipv4ll-manual.c (+23/-17)
src/libsystemd-network/test-ipv4ll.c (+17/-2)
src/libsystemd-network/test-ndisc-ra.c (+2/-2)
src/libsystemd-network/test-ndisc-rs.c (+3/-6)
src/libsystemd/libsystemd.sym (+18/-0)
src/libsystemd/meson.build (+3/-11)
src/libsystemd/sd-bus/bus-common-errors.h (+1/-0)
src/libsystemd/sd-bus/bus-convenience.c (+1/-1)
src/libsystemd/sd-bus/bus-dump.c (+3/-2)
src/libsystemd/sd-bus/bus-error.c (+14/-17)
src/libsystemd/sd-bus/bus-error.h (+6/-3)
src/libsystemd/sd-bus/bus-internal.c (+10/-16)
src/libsystemd/sd-bus/bus-introspect.c (+2/-3)
src/libsystemd/sd-bus/bus-kernel.c (+0/-6)
src/libsystemd/sd-bus/bus-match.c (+1/-1)
src/libsystemd/sd-bus/bus-message.c (+415/-1757)
src/libsystemd/sd-bus/bus-message.h (+4/-41)
src/libsystemd/sd-bus/bus-objects.c (+43/-20)
src/libsystemd/sd-bus/bus-protocol.h (+5/-22)
src/libsystemd/sd-bus/bus-socket.c (+99/-85)
src/libsystemd/sd-bus/bus-track.c (+1/-2)
src/libsystemd/sd-bus/sd-bus.c (+18/-24)
src/libsystemd/sd-bus/test-bus-address.c (+5/-7)
src/libsystemd/sd-bus/test-bus-chat.c (+1/-1)
src/libsystemd/sd-bus/test-bus-error.c (+3/-3)
src/libsystemd/sd-bus/test-bus-objects.c (+102/-0)
src/libsystemd/sd-bus/test-bus-watch-bind.c (+1/-2)
src/libsystemd/sd-daemon/sd-daemon.c (+5/-5)
src/libsystemd/sd-device/device-enumerator.c (+132/-140)
src/libsystemd/sd-device/device-filter.c (+115/-0)
src/libsystemd/sd-device/device-filter.h (+13/-0)
src/libsystemd/sd-device/device-internal.h (+4/-2)
src/libsystemd/sd-device/device-monitor.c (+159/-72)
src/libsystemd/sd-device/device-private.c (+3/-169)
src/libsystemd/sd-device/device-private.h (+8/-8)
src/libsystemd/sd-device/device-util.c (+46/-44)
src/libsystemd/sd-device/device-util.h (+22/-4)
src/libsystemd/sd-device/sd-device.c (+329/-71)
src/libsystemd/sd-device/test-sd-device-monitor.c (+42/-34)
src/libsystemd/sd-device/test-sd-device.c (+301/-6)
src/libsystemd/sd-event/event-source.h (+1/-0)
src/libsystemd/sd-event/event-util.c (+0/-14)
src/libsystemd/sd-event/event-util.h (+3/-2)
src/libsystemd/sd-event/sd-event.c (+172/-49)
src/libsystemd/sd-event/test-event.c (+3/-3)
src/libsystemd/sd-hwdb/sd-hwdb.c (+35/-22)
src/libsystemd/sd-id128/id128-util.c (+2/-18)
src/libsystemd/sd-id128/id128-util.h (+0/-2)
src/libsystemd/sd-id128/sd-id128.c (+21/-5)
src/libsystemd/sd-journal/journal-authenticate.c (+3/-3)
src/libsystemd/sd-journal/journal-def.h (+41/-21)
src/libsystemd/sd-journal/journal-file.c (+595/-360)
src/libsystemd/sd-journal/journal-file.h (+75/-20)
src/libsystemd/sd-journal/journal-send.c (+15/-8)
src/libsystemd/sd-journal/journal-send.h (+4/-0)
src/libsystemd/sd-journal/journal-verify.c (+28/-31)
src/libsystemd/sd-journal/sd-journal.c (+111/-209)
src/libsystemd/sd-journal/test-journal-send.c (+2/-2)
src/libsystemd/sd-netlink/netlink-genl.c (+28/-28)
src/libsystemd/sd-netlink/netlink-internal.h (+47/-5)
src/libsystemd/sd-netlink/netlink-message-nfnl.c (+203/-114)
src/libsystemd/sd-netlink/netlink-message-rtnl.c (+93/-24)
src/libsystemd/sd-netlink/netlink-message.c (+261/-250)
src/libsystemd/sd-netlink/netlink-socket.c (+1/-38)
src/libsystemd/sd-netlink/netlink-types-genl.c (+185/-174)
src/libsystemd/sd-netlink/netlink-types-internal.h (+45/-28)
src/libsystemd/sd-netlink/netlink-types-nfnl.c (+121/-124)
src/libsystemd/sd-netlink/netlink-types-rtnl.c (+1009/-1013)
src/libsystemd/sd-netlink/netlink-types.c (+70/-79)
src/libsystemd/sd-netlink/netlink-types.h (+36/-37)
src/libsystemd/sd-netlink/netlink-util.c (+136/-6)
src/libsystemd/sd-netlink/netlink-util.h (+8/-43)
src/libsystemd/sd-netlink/sd-netlink.c (+21/-136)
src/libsystemd/sd-netlink/test-netlink.c (+6/-5)
src/libsystemd/sd-network/sd-network.c (+70/-163)
src/libsystemd/sd-resolve/sd-resolve.c (+3/-5)
src/libudev/meson.build (+1/-1)
src/libudev/test-libudev.c (+2/-1)
src/locale/kbd-model-map (+1/-0)
src/locale/localectl.c (+91/-69)
src/locale/localed-util.c (+4/-101)
src/locale/localed-util.h (+2/-5)
src/locale/localed.c (+20/-82)
src/locale/meson.build (+5/-5)
src/locale/org.freedesktop.locale1.conf (+1/-1)
src/locale/org.freedesktop.locale1.policy (+1/-1)
src/locale/test-localed-util.c (+1/-1)
src/login/loginctl.c (+48/-50)
src/login/logind-action.c (+34/-18)
src/login/logind-action.h (+2/-0)
src/login/logind-brightness.c (+1/-2)
src/login/logind-button.c (+6/-12)
src/login/logind-core.c (+4/-5)
src/login/logind-dbus.c (+67/-107)
src/login/logind-gperf.gperf (+1/-0)
src/login/logind-inhibit.c (+1/-2)
src/login/logind-seat-dbus.c (+10/-20)
src/login/logind-seat.c (+6/-7)
src/login/logind-session-dbus.c (+49/-40)
src/login/logind-session-device.c (+7/-21)
src/login/logind-session.c (+106/-20)
src/login/logind-session.h (+3/-0)
src/login/logind-user-dbus.c (+11/-22)
src/login/logind-user.c (+3/-6)
src/login/logind-utmp.c (+30/-30)
src/login/logind.c (+34/-32)
src/login/logind.conf.in (+1/-0)
src/login/logind.h (+3/-0)
src/login/meson.build (+3/-0)
src/login/org.freedesktop.login1.conf (+5/-1)
src/login/org.freedesktop.login1.policy (+1/-1)
src/login/pam_systemd.c (+83/-126)
src/login/test-session-properties.c (+110/-0)
src/machine-id-setup/machine-id-setup-main.c (+1/-3)
src/machine/image-dbus.c (+5/-10)
src/machine/machine-dbus.c (+50/-46)
src/machine/machine-dbus.h (+5/-0)
src/machine/machine.c (+3/-4)
src/machine/machinectl.c (+78/-138)
src/machine/machined-dbus.c (+21/-22)
src/machine/machined-varlink.c (+2/-4)
src/machine/operation.c (+1/-2)
src/machine/org.freedesktop.machine1.conf (+1/-1)
src/machine/org.freedesktop.machine1.policy (+1/-1)
src/mount/mount-tool.c (+1/-1)
src/network/generator/network-generator.c (+10/-36)
src/network/meson.build (+4/-2)
src/network/netdev/bridge.h (+2/-2)
src/network/netdev/fou-tunnel.c (+2/-4)
src/network/netdev/ipoib.c (+1/-2)
src/network/netdev/l2tp-tunnel.c (+8/-14)
src/network/netdev/macsec.c (+1/-1)
src/network/netdev/macvlan.c (+1/-2)
src/network/netdev/netdev-gperf.gperf (+7/-1)
src/network/netdev/netdev-util.c (+1/-1)
src/network/netdev/netdev.c (+35/-17)
src/network/netdev/netdev.h (+3/-0)
src/network/netdev/tunnel.c (+168/-8)
src/network/netdev/tunnel.h (+9/-1)
src/network/netdev/tuntap.c (+134/-52)
src/network/netdev/tuntap.h (+5/-0)
src/network/netdev/vlan.c (+1/-2)
src/network/netdev/vxlan.c (+1/-2)
src/network/netdev/wireguard.c (+12/-21)
src/network/netdev/wlan.c (+2/-4)
src/network/networkctl.c (+116/-147)
src/network/networkd-address-generation.c (+1/-2)
src/network/networkd-address-pool.c (+1/-6)
src/network/networkd-address.c (+116/-49)
src/network/networkd-address.h (+5/-8)
src/network/networkd-bridge-mdb.c (+2/-6)
src/network/networkd-can.c (+8/-12)
src/network/networkd-dhcp-common.c (+18/-35)
src/network/networkd-dhcp-prefix-delegation.c (+41/-57)
src/network/networkd-dhcp-server-bus.c (+2/-5)
src/network/networkd-dhcp-server-static-lease.c (+2/-4)
src/network/networkd-dhcp-server.c (+3/-12)
src/network/networkd-dhcp4.c (+50/-59)
src/network/networkd-dhcp6.c (+24/-21)
src/network/networkd-ipv4acd.c (+90/-40)
src/network/networkd-ipv4acd.h (+2/-0)
src/network/networkd-ipv4ll.c (+63/-8)
src/network/networkd-ipv4ll.h (+3/-0)
src/network/networkd-ipv6-proxy-ndp.c (+1/-2)
src/network/networkd-ipv6ll.c (+6/-7)
src/network/networkd-ipv6ll.h (+1/-1)
src/network/networkd-json.c (+2/-2)
src/network/networkd-link-bus.c (+18/-38)
src/network/networkd-link.c (+74/-100)
src/network/networkd-link.h (+6/-6)
src/network/networkd-lldp-rx.c (+1/-3)
src/network/networkd-lldp-tx.c (+1/-2)
src/network/networkd-manager-bus.c (+1/-2)
src/network/networkd-manager.c (+107/-44)
src/network/networkd-manager.h (+2/-4)
src/network/networkd-ndisc.c (+216/-212)
src/network/networkd-ndisc.h (+1/-5)
src/network/networkd-neighbor.c (+5/-7)
src/network/networkd-netlabel.c (+128/-0)
src/network/networkd-netlabel.h (+2/-1)
src/network/networkd-network-bus.c (+2/-4)
src/network/networkd-network-gperf.gperf (+11/-2)
src/network/networkd-network.c (+63/-53)
src/network/networkd-network.h (+6/-0)
src/network/networkd-nexthop.c (+5/-4)
src/network/networkd-radv.c (+16/-29)
src/network/networkd-route-util.c (+3/-4)
src/network/networkd-route.c (+118/-25)
src/network/networkd-route.h (+4/-1)
src/network/networkd-routing-policy-rule.c (+5/-5)
src/network/networkd-setlink.c (+43/-21)
src/network/networkd-speed-meter.c (+2/-3)
src/network/networkd-sriov.c (+249/-0)
src/network/networkd-sriov.h (+8/-0)
src/network/networkd-state-file.c (+1/-4)
src/network/networkd-sysctl.c (+2/-3)
src/network/networkd-util.c (+1/-3)
src/network/networkd-util.h (+20/-6)
src/network/networkd-wifi.c (+2/-2)
src/network/networkd-wiphy.c (+313/-18)
src/network/networkd-wiphy.h (+19/-0)
src/network/org.freedesktop.network1.conf (+1/-1)
src/network/org.freedesktop.network1.policy (+1/-1)
src/network/tc/cake.c (+8/-16)
src/network/tc/codel.c (+3/-6)
src/network/tc/drr.c (+1/-2)
src/network/tc/ets.c (+3/-6)
src/network/tc/fifo.c (+2/-4)
src/network/tc/fq-codel.c (+4/-8)
src/network/tc/fq-pie.c (+1/-2)
src/network/tc/fq.c (+5/-10)
src/network/tc/gred.c (+2/-4)
src/network/tc/hhf.c (+1/-2)
src/network/tc/htb.c (+5/-10)
src/network/tc/netem.c (+3/-6)
src/network/tc/pie.c (+1/-2)
src/network/tc/qdisc.c (+12/-7)
src/network/tc/qdisc.h (+1/-0)
src/network/tc/qfq.c (+2/-4)
src/network/tc/sfb.c (+1/-2)
src/network/tc/sfq.c (+1/-2)
src/network/tc/tbf.c (+3/-6)
src/network/tc/tclass.c (+2/-4)
src/network/tc/teql.c (+17/-2)
src/network/test-network.c (+0/-2)
src/network/wait-online/link.c (+9/-8)
src/network/wait-online/manager.c (+3/-6)
src/nspawn/nspawn-expose-ports.c (+1/-6)
src/nspawn/nspawn-mount.c (+81/-41)
src/nspawn/nspawn-network.c (+1/-1)
src/nspawn/nspawn-oci.c (+43/-110)
src/nspawn/nspawn-settings.c (+5/-10)
src/nspawn/nspawn-util.c (+4/-1)
src/nspawn/nspawn.c (+24/-50)
src/nss-resolve/nss-resolve.c (+7/-7)
src/nss-systemd/nss-systemd.c (+34/-28)
src/oom/meson.build (+3/-1)
src/oom/oomd-manager-bus.c (+6/-2)
src/oom/oomd-manager.c (+29/-15)
src/oom/oomd-util.c (+56/-22)
src/oom/oomd-util.h (+9/-0)
src/oom/oomd.c (+3/-2)
src/oom/org.freedesktop.oom1.conf (+1/-1)
src/oom/test-oomd-util.c (+83/-45)
src/partition/growfs.c (+35/-28)
src/partition/makefs.c (+1/-1)
src/partition/meson.build (+0/-2)
src/partition/repart.c (+1327/-360)
src/portable/org.freedesktop.portable1.conf (+1/-1)
src/portable/org.freedesktop.portable1.policy (+1/-1)
src/portable/portable.c (+89/-55)
src/portable/portable.h (+7/-5)
src/portable/portablectl.c (+20/-11)
src/portable/portabled-bus.c (+3/-6)
src/portable/portabled-image-bus.c (+6/-6)
src/portable/portabled-image.c (+1/-2)
src/portable/portabled-operation.c (+1/-2)
src/random-seed/random-seed.c (+3/-3)
src/resolve/org.freedesktop.resolve1.conf (+1/-1)
src/resolve/org.freedesktop.resolve1.policy (+1/-1)
src/resolve/resolvectl.c (+336/-95)
src/resolve/resolvectl.h (+7/-2)
src/resolve/resolved-bus.c (+25/-47)
src/resolve/resolved-conf.c (+7/-12)
src/resolve/resolved-dns-answer.h (+2/-2)
src/resolve/resolved-dns-cache.c (+19/-19)
src/resolve/resolved-dns-cache.h (+1/-0)
src/resolve/resolved-dns-packet.c (+6/-2)
src/resolve/resolved-dns-query.c (+41/-4)
src/resolve/resolved-dns-query.h (+5/-0)
src/resolve/resolved-dns-question.c (+58/-0)
src/resolve/resolved-dns-question.h (+2/-0)
src/resolve/resolved-dns-rr.c (+266/-14)
src/resolve/resolved-dns-rr.h (+6/-0)
src/resolve/resolved-dns-scope.c (+1/-2)
src/resolve/resolved-dns-server.c (+1/-1)
src/resolve/resolved-dns-stream.c (+1/-3)
src/resolve/resolved-dns-stub.c (+3/-6)
src/resolve/resolved-dns-synthesize.c (+6/-0)
src/resolve/resolved-dns-transaction.c (+24/-17)
src/resolve/resolved-dns-transaction.h (+5/-5)
src/resolve/resolved-dns-trust-anchor.c (+1/-1)
src/resolve/resolved-dnssd-bus.c (+3/-6)
src/resolve/resolved-dnssd.c (+6/-5)
src/resolve/resolved-dnssd.h (+2/-2)
src/resolve/resolved-etc-hosts.c (+2/-2)
src/resolve/resolved-etc-hosts.h (+1/-0)
src/resolve/resolved-link-bus.c (+17/-34)
src/resolve/resolved-link.c (+10/-1)
src/resolve/resolved-llmnr.c (+1/-2)
src/resolve/resolved-manager.c (+114/-39)
src/resolve/resolved-manager.h (+5/-0)
src/resolve/resolved-mdns.c (+13/-1)
src/resolve/resolved-socket-graveyard.c (+1/-3)
src/resolve/resolved-varlink.c (+106/-5)
src/resolve/test-resolved-stream.c (+5/-5)
src/rfkill/rfkill.c (+7/-7)
src/rpm/triggers.systemd.in (+6/-33)
src/run-generator/run-generator.c (+3/-1)
src/run/run.c (+6/-8)
src/shared/base-filesystem.c (+1/-1)
src/shared/blockdev-util.c (+490/-79)
src/shared/blockdev-util.h (+27/-0)
src/shared/bootspec.c (+369/-141)
src/shared/bootspec.h (+12/-1)
src/shared/bpf-compat.h (+54/-0)
src/shared/bpf-dlopen.c (+34/-10)
src/shared/bpf-dlopen.h (+3/-3)
src/shared/btrfs-util.c (+12/-0)
src/shared/btrfs-util.h (+1/-0)
src/shared/bus-get-properties.h (+1/-2)
src/shared/bus-locator.c (+6/-0)
src/shared/bus-locator.h (+1/-0)
src/shared/bus-map-properties.c (+2/-2)
src/shared/bus-polkit.c (+1/-2)
src/shared/bus-print-properties.c (+4/-1)
src/shared/bus-unit-procs.c (+4/-5)
src/shared/bus-unit-util.c (+23/-15)
src/shared/bus-unit-util.h (+1/-1)
src/shared/bus-util.c (+20/-31)
src/shared/bus-util.h (+2/-2)
src/shared/bus-wait-for-jobs.c (+1/-2)
src/shared/bus-wait-for-units.c (+4/-11)
src/shared/calendarspec.c (+1/-1)
src/shared/cgroup-setup.c (+8/-0)
src/shared/cgroup-setup.h (+1/-0)
src/shared/cgroup-show.c (+4/-4)
src/shared/chown-recursive.c (+1/-1)
src/shared/clock-util.c (+1/-1)
src/shared/compare-operator.c (+119/-0)
src/shared/compare-operator.h (+62/-0)
src/shared/condition.c (+189/-155)
src/shared/condition.h (+1/-0)
src/shared/conf-parser.c (+58/-61)
src/shared/conf-parser.h (+7/-5)
src/shared/copy.c (+83/-23)
src/shared/cpu-set-util.c (+5/-7)
src/shared/creds-util.c (+148/-27)
src/shared/creds-util.h (+7/-2)
src/shared/cryptsetup-util.c (+84/-80)
src/shared/cryptsetup-util.h (+9/-3)
src/shared/daemon-util.c (+76/-0)
src/shared/daemon-util.h (+6/-0)
src/shared/data-fd-util.c (+1/-1)
src/shared/device-nodes.c (+3/-3)
src/shared/devnode-acl.c (+6/-9)
src/shared/discover-image.c (+4/-13)
src/shared/dissect-image.c (+586/-349)
src/shared/dissect-image.h (+58/-32)
src/shared/dns-domain.c (+49/-57)
src/shared/dns-domain.h (+3/-3)
src/shared/efi-api.c (+0/-3)
src/shared/efi-loader.c (+50/-1)
src/shared/efi-loader.h (+5/-0)
src/shared/elf-util.c (+114/-34)
src/shared/enable-mempool.c (+15/-1)
src/shared/ethtool-util.c (+3/-5)
src/shared/exec-util.c (+3/-9)
src/shared/extension-release.c (+20/-2)
src/shared/find-esp.c (+249/-148)
src/shared/find-esp.h (+2/-2)
src/shared/firewall-util-nft.c (+337/-321)
src/shared/format-table.c (+33/-17)
src/shared/format-table.h (+10/-2)
src/shared/generator.c (+52/-27)
src/shared/generator.h (+6/-5)
src/shared/gpt.c (+47/-46)
src/shared/gpt.h (+4/-283)
src/shared/hwdb-util.c (+17/-4)
src/shared/hwdb-util.h (+2/-2)
src/shared/in-addr-prefix-util.c (+1/-2)
src/shared/install-printf.c (+5/-5)
src/shared/install-printf.h (+1/-1)
src/shared/install.c (+418/-367)
src/shared/install.h (+63/-57)
src/shared/journal-importer.c (+4/-5)
src/shared/journal-importer.h (+1/-1)
src/shared/json.c (+140/-88)
src/shared/json.h (+12/-1)
src/shared/label.c (+22/-5)
src/shared/label.h (+7/-3)
src/shared/libcrypt-util.c (+1/-1)
src/shared/libfido2-util.c (+3/-4)
src/shared/linux/bpf.h (+443/-12)
src/shared/linux/dm-ioctl.h (+1/-1)
src/shared/linux/ethtool.h (+2/-0)
src/shared/local-addresses.c (+3/-4)
src/shared/locale-setup.c (+256/-0)
src/shared/locale-setup.h (+28/-0)
src/shared/logs-show.c (+214/-97)
src/shared/logs-show.h (+3/-1)
src/shared/loop-util.c (+457/-426)
src/shared/loop-util.h (+17/-4)
src/shared/loopback-setup.c (+3/-4)
src/shared/meson.build (+11/-5)
src/shared/mkdir-label.c (+3/-2)
src/shared/mkfs-util.c (+30/-0)
src/shared/mkfs-util.h (+3/-1)
src/shared/mount-util.c (+44/-36)
src/shared/mount-util.h (+21/-8)
src/shared/net-condition.c (+6/-12)
src/shared/netif-naming-scheme.c (+1/-0)
src/shared/netif-naming-scheme.h (+2/-0)
src/shared/netif-sriov.c (+8/-14)
src/shared/nscd-flush.c (+9/-11)
src/shared/nsflags.c (+10/-22)
src/shared/nsflags.h (+0/-7)
src/shared/openssl-util.c (+78/-2)
src/shared/openssl-util.h (+34/-2)
src/shared/output-mode.c (+1/-0)
src/shared/output-mode.h (+1/-0)
src/shared/pager.c (+17/-18)
src/shared/pam-util.c (+43/-27)
src/shared/pam-util.h (+18/-3)
src/shared/parse-helpers.c (+1/-2)
src/shared/pcre2-util.c (+157/-0)
src/shared/pcre2-util.h (+23/-0)
src/shared/pkcs11-util.c (+2/-4)
src/shared/ptyfwd.c (+4/-8)
src/shared/qrcode-util.c (+11/-2)
src/shared/quota-util.c (+2/-2)
src/shared/recovery-key.c (+1/-1)
src/shared/seccomp-util.c (+44/-13)
src/shared/seccomp-util.h (+4/-1)
src/shared/selinux-util.c (+79/-72)
src/shared/selinux-util.h (+1/-9)
src/shared/sleep-config.c (+487/-0)
src/shared/sleep-config.h (+12/-0)
src/shared/smack-util.c (+46/-61)
src/shared/smack-util.h (+2/-4)
src/shared/spawn-polkit-agent.c (+1/-1)
src/shared/specifier.c (+32/-14)
src/shared/specifier.h (+3/-0)
src/shared/tests.h (+2/-2)
src/shared/tpm2-util.c (+1079/-269)
src/shared/tpm2-util.h (+64/-12)
src/shared/udev-util.c (+77/-80)
src/shared/udev-util.h (+4/-2)
src/shared/user-record-show.c (+5/-1)
src/shared/user-record.c (+31/-8)
src/shared/user-record.h (+2/-0)
src/shared/userdb.c (+1/-3)
src/shared/utmp-wtmp.c (+1/-1)
src/shared/varlink-internal.h (+10/-0)
src/shared/varlink.c (+168/-34)
src/shared/varlink.h (+1/-0)
src/shared/verb-log-control.c (+10/-15)
src/shared/vlan-util.c (+2/-4)
src/shared/watchdog.c (+35/-17)
src/shared/watchdog.h (+3/-0)
src/shared/wifi-util.c (+2/-2)
src/shutdown/shutdown.c (+35/-41)
src/shutdown/umount.c (+150/-74)
src/shutdown/umount.h (+6/-9)
src/sleep/sleep.c (+141/-22)
src/socket-proxy/socket-proxyd.c (+4/-7)
src/sulogin-shell/sulogin-shell.c (+15/-20)
src/sysctl/sysctl.c (+141/-72)
src/sysext/sysext.c (+9/-22)
src/systemctl/systemctl-add-dependency.c (+3/-3)
src/systemctl/systemctl-daemon-reload.c (+2/-6)
src/systemctl/systemctl-edit.c (+4/-4)
src/systemctl/systemctl-enable.c (+6/-5)
src/systemctl/systemctl-is-enabled.c (+2/-2)
src/systemctl/systemctl-is-system-running.c (+1/-3)
src/systemctl/systemctl-kill.c (+5/-5)
src/systemctl/systemctl-list-jobs.c (+1/-1)
src/systemctl/systemctl-list-machines.c (+1/-1)
src/systemctl/systemctl-list-unit-files.c (+1/-1)
src/systemctl/systemctl-list-units.c (+245/-73)
src/systemctl/systemctl-list-units.h (+1/-0)
src/systemctl/systemctl-logind.c (+23/-31)
src/systemctl/systemctl-logind.h (+0/-2)
src/systemctl/systemctl-preset-all.c (+3/-3)
src/systemctl/systemctl-set-default.c (+10/-12)
src/systemctl/systemctl-show.c (+40/-29)
src/systemctl/systemctl-start-special.c (+1/-1)
src/systemctl/systemctl-util.c (+6/-7)
src/systemctl/systemctl.c (+54/-14)
src/systemctl/systemctl.h (+1/-1)
src/systemctl/systemd-sysv-install.SKELETON (+1/-1)
src/systemd/_sd-common.h (+1/-1)
src/systemd/meson.build (+4/-1)
src/systemd/sd-bus-protocol.h (+1/-1)
src/systemd/sd-bus-vtable.h (+5/-5)
src/systemd/sd-bus.h (+8/-4)
src/systemd/sd-daemon.h (+3/-3)
src/systemd/sd-device.h (+11/-5)
src/systemd/sd-dhcp-client.h (+8/-8)
src/systemd/sd-dhcp-lease.h (+3/-3)
src/systemd/sd-dhcp-option.h (+1/-1)
src/systemd/sd-dhcp-server.h (+2/-2)
src/systemd/sd-dhcp6-client.h (+4/-3)
src/systemd/sd-dhcp6-lease.h (+1/-1)
src/systemd/sd-dhcp6-option.h (+1/-1)
src/systemd/sd-event.h (+4/-1)
src/systemd/sd-gpt.h (+319/-0)
src/systemd/sd-hwdb.h (+2/-1)
src/systemd/sd-id128.h (+4/-2)
src/systemd/sd-ipv4acd.h (+3/-3)
src/systemd/sd-ipv4ll.h (+2/-2)
src/systemd/sd-journal.h (+1/-1)
src/systemd/sd-lldp-rx.h (+3/-3)
src/systemd/sd-lldp-tx.h (+3/-3)
src/systemd/sd-lldp.h (+7/-7)
src/systemd/sd-login.h (+1/-1)
src/systemd/sd-messages.h (+167/-178)
src/systemd/sd-ndisc.h (+5/-5)
src/systemd/sd-netlink.h (+58/-79)
src/systemd/sd-network.h (+34/-34)
src/systemd/sd-path.h (+2/-2)
src/systemd/sd-radv.h (+1/-1)
src/systemd/sd-resolve.h (+2/-2)
src/systemd/sd-utf8.h (+1/-1)
src/sysupdate/sysupdate-partition.c (+12/-12)
src/sysupdate/sysupdate-pattern.c (+4/-1)
src/sysupdate/sysupdate-resource.c (+4/-3)
src/sysupdate/sysupdate-transfer.c (+14/-18)
src/sysupdate/sysupdate.c (+15/-25)
src/sysusers/sysusers.c (+248/-191)
src/sysv-generator/sysv-generator.c (+9/-8)
src/test/generate-sym-test.py (+13/-8)
src/test/meson.build (+10/-0)
src/test/test-alloc-util.c (+1/-1)
src/test/test-blockdev-util.c (+8/-8)
src/test/test-bootspec.c (+56/-0)
src/test/test-bpf-devices.c (+1/-1)
src/test/test-bpf-firewall.c (+2/-5)
src/test/test-bpf-foreign-programs.c (+1/-1)
src/test/test-bpf-lsm.c (+1/-4)
src/test/test-calendarspec.c (+4/-4)
src/test/test-chown-rec.c (+2/-4)
src/test/test-condition.c (+306/-11)
src/test/test-conf-parser.c (+1/-1)
src/test/test-copy.c (+69/-0)
src/test/test-coredump-util.c (+1/-1)
src/test/test-date.c (+1/-1)
src/test/test-dlopen-so.c (+1/-1)
src/test/test-dns-domain.c (+10/-10)
src/test/test-engine.c (+18/-18)
src/test/test-errno-util.c (+50/-0)
src/test/test-escape.c (+2/-2)
src/test/test-exec-util.c (+3/-5)
src/test/test-execute.c (+2/-2)
src/test/test-execve.c (+40/-0)
src/test/test-fileio.c (+16/-11)
src/test/test-firewall-util.c (+1/-1)
src/test/test-format-util.c (+14/-2)
src/test/test-fs-util.c (+1/-1)
src/test/test-fstab-util.c (+3/-3)
src/test/test-glob-util.c (+21/-0)
src/test/test-hmac.c (+45/-45)
src/test/test-id128.c (+11/-6)
src/test/test-in-addr-prefix-util.c (+31/-2)
src/test/test-in-addr-util.c (+61/-8)
src/test/test-install-root.c (+109/-109)
src/test/test-install.c (+19/-19)
src/test/test-json.c (+51/-12)
src/test/test-libmount.c (+1/-1)
src/test/test-list.c (+164/-164)
src/test/test-load-fragment.c (+10/-8)
src/test/test-local-addresses.c (+2/-10)
src/test/test-locale-util.c (+1/-0)
src/test/test-loop-block.c (+73/-73)
src/test/test-macro.c (+56/-0)
src/test/test-math-util.c (+110/-0)
src/test/test-mkdir.c (+96/-5)
src/test/test-mountpoint-util.c (+40/-13)
src/test/test-nss-hosts.c (+2/-2)
src/test/test-os-util.c (+14/-0)
src/test/test-path-util.c (+76/-11)
src/test/test-path.c (+8/-8)
src/test/test-pretty-print.c (+1/-1)
src/test/test-process-util.c (+7/-6)
src/test/test-random-util.c (+5/-12)
src/test/test-ratelimit.c (+17/-0)
src/test/test-sd-hwdb.c (+20/-0)
src/test/test-seccomp.c (+29/-9)
src/test/test-set-disable-mempool.c (+7/-0)
src/test/test-sleep.c (+8/-8)
src/test/test-socket-bind.c (+3/-6)
src/test/test-specifier.c (+7/-2)
src/test/test-string-util.c (+227/-38)
src/test/test-strv.c (+43/-0)
src/test/test-tables.c (+2/-2)
src/test/test-time-util.c (+18/-2)
src/test/test-tmpfile-util.c (+147/-2)
src/test/test-udev-util.c (+21/-8)
src/test/test-uid-alloc-range.c (+4/-4)
src/test/test-uid-range.c (+124/-87)
src/test/test-unit-name.c (+14/-8)
src/test/test-user-util.c (+2/-2)
src/test/test-utmp.c (+58/-0)
src/test/test-web-util.c (+2/-2)
src/test/test-xattr-util.c (+1/-1)
src/timedate/org.freedesktop.timedate1.conf (+1/-1)
src/timedate/org.freedesktop.timedate1.policy (+1/-1)
src/timedate/timedatectl.c (+7/-21)
src/timedate/timedated.c (+7/-14)
src/timesync/org.freedesktop.timesync1.conf (+1/-1)
src/timesync/org.freedesktop.timesync1.policy (+1/-1)
src/timesync/timesyncd-bus.c (+4/-8)
src/timesync/timesyncd-manager.c (+12/-24)
src/timesync/wait-sync.c (+1/-1)
src/tmpfiles/tmpfiles.c (+737/-402)
src/tty-ask-password-agent/tty-ask-password-agent.c (+1/-2)
src/udev/ata_id/ata_id.c (+4/-4)
src/udev/cdrom_id/cdrom_id.c (+6/-6)
src/udev/dmi_memory_id/dmi_memory_id.c (+2/-2)
src/udev/fido_id/fido_id.c (+1/-1)
src/udev/meson.build (+1/-7)
src/udev/mtd_probe/mtd_probe.c (+1/-1)
src/udev/net/link-config-gperf.gperf (+1/-0)
src/udev/net/link-config.c (+7/-12)
src/udev/scsi_id/scsi_id.c (+1/-1)
src/udev/scsi_id/scsi_serial.c (+15/-13)
src/udev/udev-builtin-blkid.c (+13/-5)
src/udev/udev-builtin-btrfs.c (+1/-1)
src/udev/udev-builtin-hwdb.c (+8/-3)
src/udev/udev-builtin-input_id.c (+2/-2)
src/udev/udev-builtin-keyboard.c (+2/-2)
src/udev/udev-builtin-kmod.c (+32/-11)
src/udev/udev-builtin-net_id.c (+241/-118)
src/udev/udev-builtin-net_setup_link.c (+8/-4)
src/udev/udev-builtin-path_id.c (+56/-12)
src/udev/udev-builtin-usb_id.c (+45/-14)
src/udev/udev-builtin.c (+2/-2)
src/udev/udev-builtin.h (+2/-2)
src/udev/udev-ctrl.c (+1/-3)
src/udev/udev-event.c (+26/-31)
src/udev/udev-event.h (+1/-1)
src/udev/udev-node.c (+255/-330)
src/udev/udev-node.h (+1/-0)
src/udev/udev-rules.c (+37/-18)
src/udev/udev-rules.h (+3/-1)
src/udev/udev-watch.c (+173/-78)
src/udev/udev-watch.h (+5/-0)
src/udev/udevadm-hwdb.c (+1/-1)
src/udev/udevadm-info.c (+13/-3)
src/udev/udevadm-lock.c (+13/-46)
src/udev/udevadm-monitor.c (+1/-2)
src/udev/udevadm-settle.c (+77/-50)
src/udev/udevadm-trigger.c (+1/-2)
src/udev/udevadm-util.c (+7/-19)
src/udev/udevadm-wait.c (+96/-20)
src/udev/udevd.c (+186/-277)
src/userdb/userdbctl.c (+30/-48)
src/userdb/userdbd-manager.c (+2/-4)
src/userdb/userwork.c (+1/-1)
src/vconsole/vconsole-setup.c (+1/-1)
src/xdg-autostart-generator/test-xdg-autostart.c (+17/-1)
src/xdg-autostart-generator/xdg-autostart-generator.c (+2/-1)
src/xdg-autostart-generator/xdg-autostart-service.c (+37/-20)
sysctl.d/50-default.conf (+1/-1)
sysusers.d/basic.conf.in (+1/-1)
test/README.testsuite (+6/-6)
test/TEST-01-BASIC/test.sh (+1/-0)
test/TEST-03-JOBS/test.sh (+0/-1)
test/TEST-08-ISSUE-2730/test.sh (+0/-1)
test/TEST-09-ISSUE-2691/test.sh (+0/-2)
test/TEST-11-ISSUE-3166/test.sh (+0/-2)
test/TEST-13-NSPAWN-SMOKE/test.sh (+1/-1)
test/TEST-17-UDEV/test.sh (+0/-2)
test/TEST-18-FAILUREACTION/test.sh (+0/-2)
test/TEST-19-DELEGATE/test.sh (+0/-1)
test/TEST-21-DFUZZER/Makefile (+1/-0)
test/TEST-21-DFUZZER/test.sh (+37/-0)
test/TEST-26-SYSTEMCTL/Makefile (+1/-0)
test/TEST-26-SYSTEMCTL/test.sh (+1/-1)
test/TEST-31-DEVICE-ENUMERATION/test.sh (+0/-1)
test/TEST-34-DYNAMICUSERMIGRATE/test.sh (+5/-0)
test/TEST-35-LOGIN/Makefile (+1/-0)
test/TEST-35-LOGIN/test.sh (+2/-11)
test/TEST-36-NUMAPOLICY/test.sh (+2/-2)
test/TEST-45-TIMEDATE/Makefile (+1/-0)
test/TEST-45-TIMEDATE/test.sh (+10/-0)
test/TEST-50-DISSECT/test.sh (+0/-1)
test/TEST-52-HONORFIRSTSHUTDOWN/test.sh (+4/-9)
test/TEST-53-ISSUE-16347/test.sh (+1/-1)
test/TEST-54-CREDS/test.sh (+23/-3)
test/TEST-58-REPART/test.sh (+11/-1)
test/TEST-63-PATH/Makefile (+1/-0)
test/TEST-63-PATH/test.sh (+10/-0)
test/TEST-64-UDEV-STORAGE/deny-list-ubuntu-ci (+0/-0)
test/TEST-64-UDEV-STORAGE/test.sh (+63/-28)
test/TEST-67-INTEGRITY/test.sh (+0/-1)
test/TEST-70-TPM2/test.sh (+14/-10)
test/TEST-71-HOSTNAME/Makefile (+1/-0)
test/TEST-71-HOSTNAME/test.sh (+10/-0)
test/TEST-73-LOCALE/Makefile (+1/-0)
test/TEST-73-LOCALE/test.sh (+10/-0)
test/TEST-74-AUX-UTILS/Makefile (+1/-0)
test/TEST-74-AUX-UTILS/test.sh (+10/-0)
test/TEST-75-RESOLVED/Makefile (+6/-0)
test/TEST-75-RESOLVED/test.sh (+44/-0)
test/TEST-76-SYSCTL/Makefile (+6/-0)
test/TEST-76-SYSCTL/test.sh (+10/-0)
test/create-busybox-container (+2/-0)
test/fuzz/fuzz-bootspec/sanitizer-overload (+1/-0)
test/fuzz/fuzz-etc-hosts/timeout-strv (+1000/-0)
test/fuzz/fuzz-link-parser/directives.link (+10/-9)
test/fuzz/fuzz-netdev-parser/directives.netdev (+7/-1)
test/fuzz/fuzz-network-parser/directives (+20/-12)
test/fuzz/fuzz-udev-rules/99-systemd.rules (+6/-0)
test/fuzz/fuzz-unit-file/directives-all.service (+4/-1)
test/fuzz/fuzz-unit-file/directives.service (+2/-0)
test/fuzz/fuzz-unit-file/proc-sys-fs-binfmt_misc.automount (+1/-1)
test/fuzz/fuzz-unit-file/systemd-machined.service (+1/-1)
test/fuzz/fuzz-unit-file/systemd-resolved.service (+1/-1)
test/hwdb-test.sh (+3/-3)
test/knot-data/knot.conf (+116/-0)
test/knot-data/zones/onlinesign.test.zone (+22/-0)
test/knot-data/zones/root.zone (+14/-0)
test/knot-data/zones/signed.test.zone (+42/-0)
test/knot-data/zones/test.zone (+19/-0)
test/knot-data/zones/unsigned.test.zone (+20/-0)
test/knot-data/zones/untrusted.test.zone (+21/-0)
test/meson.build (+11/-0)
test/mkosi.default.networkd-test (+1/-1)
test/networkd-test.py (+2/-2)
test/rule-syntax-check.py (+0/-2)
test/sd-script.py (+6/-0)
test/test-compare-versions.sh (+35/-0)
test/test-exec-deserialization.py (+67/-62)
test/test-execute/exec-dynamicuser-fixeduser-one-supplementarygroup.service (+1/-1)
test/test-execute/exec-dynamicuser-fixeduser.service (+1/-1)
test/test-execute/exec-dynamicuser-statedir.service (+65/-10)
test/test-execute/exec-dynamicuser-supplementarygroups.service (+3/-4)
test/test-execute/exec-specifier.service (+1/-2)
test/test-execute/exec-specifier@.service (+1/-2)
test/test-execute/exec-supplementarygroups-multiple-groups-default-group-user.service (+4/-5)
test/test-execute/exec-supplementarygroups-multiple-groups-withgid.service (+3/-4)
test/test-execute/exec-supplementarygroups-multiple-groups-withuid.service (+3/-4)
test/test-execute/exec-supplementarygroups-single-group-user.service (+1/-1)
test/test-execute/exec-supplementarygroups-single-group.service (+1/-1)
test/test-execute/exec-supplementarygroups.service (+2/-2)
test/test-fstab-generator.sh (+3/-0)
test/test-functions (+338/-134)
test/test-network/conf/12-dummy-no-address.network (+1/-3)
test/test-network/conf/21-bond-802.3ad.netdev (+8/-0)
test/test-network/conf/21-bond-802.3ad.network (+8/-0)
test/test-network/conf/21-dummy-bond-slave.network (+3/-3)
test/test-network/conf/21-vlan-on-bond.netdev (+7/-0)
test/test-network/conf/21-vlan-on-bond.network (+3/-5)
test/test-network/conf/25-address-static.network (+5/-0)
test/test-network/conf/25-bridge99.network (+3/-0)
test/test-network/conf/25-dhcp-client-ipv4-only.network (+38/-0)
test/test-network/conf/25-dhcp-client-ipv6-only.network (+4/-0)
test/test-network/conf/25-dhcp-client-with-ipv4ll.network (+1/-0)
test/test-network/conf/25-dhcp-pd-downstream-dummy98.network (+2/-0)
test/test-network/conf/25-dhcp4-6rd-upstream.network (+1/-0)
test/test-network/conf/25-erspan0-tunnel-local-any.netdev (+4/-0)
test/test-network/conf/25-erspan0-tunnel.netdev (+4/-0)
test/test-network/conf/25-erspan1-tunnel-local-any.netdev (+15/-0)
test/test-network/conf/25-erspan1-tunnel.netdev (+15/-0)
test/test-network/conf/25-erspan2-tunnel-local-any.netdev (+15/-0)
test/test-network/conf/25-erspan2-tunnel.netdev (+15/-0)
test/test-network/conf/25-ipv6-prefix-veth.network (+2/-0)
test/test-network/conf/25-qdisc-clsact.network (+4/-4)
test/test-network/conf/25-qdisc-codel.network (+16/-0)
test/test-network/conf/25-qdisc-fq.network (+20/-0)
test/test-network/conf/25-qdisc-fq_codel.network (+19/-0)
test/test-network/conf/25-qdisc-gred.network (+14/-0)
test/test-network/conf/25-qdisc-htb-fifo.network (+65/-0)
test/test-network/conf/25-qdisc-ingress.network (+4/-4)
test/test-network/conf/25-qdisc-netem-compat.network (+0/-3)
test/test-network/conf/25-qdisc-netem.network (+15/-0)
test/test-network/conf/25-qdisc-qfq.network (+2/-2)
test/test-network/conf/25-qdisc-sfb.network (+12/-0)
test/test-network/conf/25-qdisc-sfq.network (+12/-0)
test/test-network/conf/25-qdisc-tbf.network (+16/-0)
test/test-network/conf/25-qdisc-teql.network (+12/-0)
test/test-network/conf/25-route-congctl.network (+16/-0)
test/test-network/conf/25-tap.netdev (+2/-1)
test/test-network/conf/25-tun.netdev (+2/-1)
test/test-network/conf/25-wireguard.network (+2/-0)
test/test-network/conf/26-bridge-slave-interface-1.network (+3/-0)
test/test-network/conf/26-bridge-slave-interface-2.network (+3/-0)
test/test-network/conf/26-netdev-link-local-addressing-yes.network (+2/-0)
test/test-network/systemd-networkd-tests.py (+1975/-2314)
test/test-shutdown.py (+14/-11)
test/test-systemd-tmpfiles.py (+11/-1)
test/test-sysusers.sh.in (+1/-1)
test/test-sysusers/unhappy-1.expected-err (+1/-1)
test/testsuite-03.units/always-activating.service (+8/-0)
test/testsuite-03.units/always-activating.socket (+5/-0)
test/testsuite-63.units/test63-glob.path (+3/-0)
test/testsuite-63.units/test63-glob.service (+7/-0)
test/testsuite-63.units/test63.path (+3/-0)
test/testsuite-63.units/test63.service (+2/-0)
test/udev-test.pl (+2/-2)
test/units/assert.sh (+58/-0)
test/units/sched_rr_bad.service (+2/-2)
test/units/sched_rr_change.service (+1/-1)
test/units/testsuite-02.sh (+7/-2)
test/units/testsuite-03.sh (+14/-1)
test/units/testsuite-04.sh (+38/-0)
test/units/testsuite-07.sh (+3/-0)
test/units/testsuite-13.sh (+40/-1)
test/units/testsuite-15.sh (+203/-33)
test/units/testsuite-17.02.sh (+85/-39)
test/units/testsuite-17.06.sh (+3/-3)
test/units/testsuite-17.07.sh (+205/-0)
test/units/testsuite-17.08.sh (+72/-0)
test/units/testsuite-17.09.sh (+70/-0)
test/units/testsuite-19.sh (+14/-0)
test/units/testsuite-20.sh (+0/-1)
test/units/testsuite-21.service (+10/-0)
test/units/testsuite-21.sh (+102/-0)
test/units/testsuite-22.02.sh (+2/-0)
test/units/testsuite-22.14.sh (+37/-0)
test/units/testsuite-22.service (+0/-2)
test/units/testsuite-23.sh (+0/-1)
test/units/testsuite-26.service (+1/-1)
test/units/testsuite-26.sh (+261/-7)
test/units/testsuite-27.sh (+0/-1)
test/units/testsuite-29.sh (+57/-10)
test/units/testsuite-30.sh (+0/-1)
test/units/testsuite-32.sh (+0/-1)
test/units/testsuite-34.sh (+84/-16)
test/units/testsuite-35.service (+8/-0)
test/units/testsuite-35.sh (+592/-0)
test/units/testsuite-36.sh (+3/-3)
test/units/testsuite-38.sh (+4/-5)
test/units/testsuite-39.sh (+0/-1)
test/units/testsuite-40.sh (+0/-1)
test/units/testsuite-41.sh (+0/-1)
test/units/testsuite-45.service (+8/-0)
test/units/testsuite-45.sh (+264/-0)
test/units/testsuite-46.sh (+1/-2)
test/units/testsuite-47.sh (+0/-1)
test/units/testsuite-50.sh (+61/-14)
test/units/testsuite-52.sh (+0/-1)
test/units/testsuite-54.sh (+21/-0)
test/units/testsuite-55.sh (+0/-1)
test/units/testsuite-57-binds-to.service (+1/-0)
test/units/testsuite-57-prop-stop-one.service (+1/-1)
test/units/testsuite-57-short-lived.sh (+1/-1)
test/units/testsuite-58.sh (+721/-107)
test/units/testsuite-59.sh (+0/-1)
test/units/testsuite-60.service (+1/-0)
test/units/testsuite-60.sh (+257/-40)
test/units/testsuite-62-4.service (+1/-1)
test/units/testsuite-62-5.service (+1/-1)
test/units/testsuite-62.sh (+0/-1)
test/units/testsuite-63.service (+2/-24)
test/units/testsuite-63.sh (+46/-0)
test/units/testsuite-64.service (+0/-2)
test/units/testsuite-64.sh (+302/-34)
test/units/testsuite-65.sh (+191/-1)
test/units/testsuite-66.sh (+0/-1)
test/units/testsuite-70.sh (+106/-3)
test/units/testsuite-71.service (+8/-0)
test/units/testsuite-71.sh (+98/-0)
test/units/testsuite-73.service (+8/-0)
test/units/testsuite-73.sh (+391/-0)
test/units/testsuite-74.cgls.sh (+26/-0)
test/units/testsuite-74.cgtop.sh (+32/-0)
test/units/testsuite-74.delta.sh (+59/-0)
test/units/testsuite-74.firstboot.sh (+145/-0)
test/units/testsuite-74.service (+8/-0)
test/units/testsuite-74.sh (+14/-0)
test/units/testsuite-75.service (+10/-0)
test/units/testsuite-75.sh (+311/-0)
test/units/testsuite-76.service (+8/-0)
test/units/testsuite-76.sh (+39/-0)
tmpfiles.d/meson.build (+1/-0)
tmpfiles.d/provision.conf (+22/-0)
tmpfiles.d/systemd-pstore.conf (+1/-1)
tmpfiles.d/systemd.conf.in (+6/-0)
tools/coverity.sh (+40/-206)
tools/list-discoverable-partitions.py (+14/-13)
tools/meson-build.sh (+1/-1)
tools/meson-vcs-tag.sh (+3/-1)
tools/oss-fuzz.sh (+21/-1)
units/console-getty.service.in (+2/-3)
units/container-getty@.service.in (+3/-4)
units/dev-hugepages.mount (+1/-1)
units/initrd-parse-etc.service.in (+14/-5)
units/initrd-switch-root.service (+5/-2)
units/ldconfig.service (+7/-4)
units/meson.build (+12/-1)
units/network-online.target (+1/-1)
units/network-pre.target (+1/-1)
units/network.target (+1/-1)
units/proc-sys-fs-binfmt_misc.automount (+1/-1)
units/proc-sys-fs-binfmt_misc.mount (+1/-1)
units/sys-fs-fuse-connections.mount (+1/-1)
units/sys-kernel-config.mount (+1/-1)
units/sys-kernel-debug.mount (+1/-1)
units/sys-kernel-tracing.mount (+1/-1)
units/sysinit.target (+4/-2)
units/system-update-cleanup.service (+1/-1)
units/systemd-ask-password-console.path (+8/-3)
units/systemd-ask-password-console.service (+7/-3)
units/systemd-ask-password-wall.path (+6/-2)
units/systemd-binfmt.service.in (+1/-1)
units/systemd-boot-system-token.service (+3/-2)
units/systemd-homed.service.in (+1/-0)
units/systemd-journald-dev-log.socket (+3/-3)
units/systemd-journald.service.in (+5/-0)
units/systemd-journald.socket (+3/-3)
units/systemd-machined.service.in (+1/-1)
units/systemd-network-generator.service.in (+3/-0)
units/systemd-networkd.service.in (+1/-0)
units/systemd-pcrphase-initrd.service.in (+24/-0)
units/systemd-pcrphase-sysinit.service.in (+25/-0)
units/systemd-pcrphase.service.in (+23/-0)
units/systemd-pstore.service.in (+2/-0)
units/systemd-sysctl.service.in (+1/-0)
units/systemd-sysext.service (+7/-4)
units/systemd-sysusers.service (+10/-3)
units/systemd-tmpfiles-clean.service (+4/-2)
units/systemd-tmpfiles-setup-dev.service (+5/-2)
units/systemd-tmpfiles-setup.service (+9/-2)
units/systemd-udev-trigger.service (+1/-1)
units/systemd-udevd.service.in (+2/-3)
units/user-.slice.d/10-defaults.conf (+0/-1)
units/user-runtime-dir@.service.in (+1/-1)
units/user/app.slice (+3/-0)
units/user/background.slice (+3/-0)
units/user/session.slice (+3/-0)
units/user@.service.d/10-login-barrier.conf (+14/-0)
units/user@.service.in (+2/-2)
units/user@0.service.d/10-login-barrier.conf (+12/-0)
Reviewer Review Type Date Requested Status
Lukas Märdian Approve
Review via email: mp+433823@code.launchpad.net

Description of the change

Merge 252.1-1 from Debian unstable. The package is built in my PPA: https://launchpad.net/~enr0n/+archive/ubuntu/systemd. I will post autopkgtest results here when they are ready.

To post a comment you must log in.
Revision history for this message
Lukas Märdian (slyon) wrote :

Hi Nick! Thank you very much, this is looking good at first glance, skimming through it.

Here are my initial comments (more to come in a 2nd round review), let's also try to get those PPA autopkgtests fixed (upstream-2 & tests-in-lxd).

=== git diff pkg/import/252.1-1 -- . ':(exclude)debian/changelog' ':(exclude)debian/patches/*'

d/control:
+ systemd-sysv package => do we really need "Depends: systemd" if we have the pre-depends already? (well.. there's a versioned dependency..)

d/rules:
+ do we have any reference for that "CET on ubuntu amd64" enablement compiler issue/fix? we should add it to the comment

d/systemd.postinst:
+ I feel like we can drop all of that v234 delta, as we don't support upgrading from < Bionic to Lunar

d/systemd.prerm:
+ I don't think we support removing systemd at all... so I wonder why this file was dropped? Couldn't we just keep it, to reduce delta?

d/t/boot-and-services:
+ We should be able to unskip "test_service", as https://github.com/systemd/systemd/issues/20989 seems to be fixed in v251+

d/t/control:
+ boot-and-services: the "gdm3 [amd64]" dependency looks suspicious, why do we need to diverge from Debian here?
+ upstream-1, upstream-2: do we still need this libgcc-s1 test-dependency? Why isn't it needed in Debian? (maybe we should add a comment)

d/t/systemd-fsckd:
+ what's wrong with this test after all?? We're basically skipping/ignoring it, still we have a huge delta on it. This should probably be investigated in the future and we should drop the delta if we don't actually use it.

=== git diff pkg/ubuntu/devel -- debian/ ':(exclude)debian/patches/*'

d/t/control:
+ unit-tests: libqrencode-dev dependency on i386 (well.. I guess i386 adt tests are failing anyways...)
+ upstream-{1,2}: libqrencode-dev dependency on i386 (well.. I guess i386 adt tests are failing anyways...)

review: Needs Fixing
Revision history for this message
Nick Rosbrook (enr0n) wrote :
Download full text (3.1 KiB)

Thanks for taking a first pass!

> === git diff pkg/import/252.1-1 -- . ':(exclude)debian/changelog' ':(exclude)debian/patches/*'
>
> d/control:
> + systemd-sysv package => do we really need "Depends: systemd" if we have the pre-depends already? (well.. there's a versioned dependency..)

Please see https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=d1ecf0c372f5212129c85ae60fddf26b2271a1fe.

>
> d/rules:
> + do we have any reference for that "CET on ubuntu amd64" enablement compiler issue/fix? we should add it to the comment

I am not sure, the commit does not explain much: https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=cc42a377e7e8c372124bcf43d9f4fb9c169f4292.

>
> d/systemd.postinst:
> + I feel like we can drop all of that v234 delta, as we don't support upgrading from < Bionic to Lunar

Good idea, thanks.

>
> d/systemd.prerm:
> + I don't think we support removing systemd at all... so I wonder why this file was dropped? Couldn't we just keep it, to reduce delta?

Please see https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=0244c4d56556317f14eecc2f51871969ef02ba7b and bug 1758438.

> d/t/boot-and-services:
> + We should be able to unskip "test_service", as https://github.com/systemd/systemd/issues/20989 seems to be fixed in v251+

Good catch, thanks.

>
> d/t/control:
> + boot-and-services: the "gdm3 [amd64]" dependency looks suspicious, why do we need to diverge from Debian here?

Please see https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=97cb13685dfb353045c449ec5d6d1df60f661079. It does not contain a lot of information or an LP, but I don't feel very strongly about removing that delta.

> + upstream-1, upstream-2: do we still need this libgcc-s1 test-dependency? Why isn't it needed in Debian? (maybe we should add a comment)

Yes, the package is definitely still needed, and I believe it is best to be explicit since pthread calls dlopen() on it. See https://github.com/systemd/systemd/pull/23858 and https://github.com/systemd/systemd/pull/24178 for background. I think Debian does not hit this because their autopkgtest does not run upstream tests AFAICT.

>
> d/t/systemd-fsckd:
> + what's wrong with this test after all?? We're basically skipping/ignoring it, still we have a huge delta on it. This should probably be investigated in the future and we should drop the delta if we don't actually use it.

As far as why it's always skipped, it's because:

 autopkgtest [11:22:51]: test systemd-fsckd: [-----------------------
 SKIP: root file system is being checked by initramfs already
 autopkgtest [11:22:52]: test systemd-fsckd: -----------------------]

If it's always skipped in effect, maybe we can just drop the test entirely (and suggest that Debian does the same).

>
> === git diff pkg/ubuntu/devel -- debian/ ':(exclude)debian/patches/*'
>
> d/t/control:
> + unit-tests: libqrencode-dev dependency on i386 (well.. I guess i386 adt tests are failing anyways...)
> + upstream-{1,2}: libqrencode-dev dependency on i386 (well.. I guess i386 adt tests are failing anyways...)

Oh, yeah I didn't even notice. I will fix that for completenes...

Read more...

Revision history for this message
Nick Rosbrook (enr0n) wrote :

I have addressed your comments so far in the latest push, and fixed the autopkgtests. Still waiting on a couple arches, but amd64 and ppc64el are passing:

systemd 252.1-1ubuntu1~ppa20 (amd64) -- Pass: https://autopkgtest.ubuntu.com/results/autopkgtest-lunar-enr0n-systemd/lunar/amd64/s/systemd/20221202_003224_d61ab@/log.gz
systemd 252.1-1ubuntu1~ppa20 (ppc64el) -- Pass: https://autopkgtest.ubuntu.com/results/autopkgtest-lunar-enr0n-systemd/lunar/ppc64el/s/systemd/20221201_232934_005ac@/log.gz

Revision history for this message
Nick Rosbrook (enr0n) wrote :
Revision history for this message
Lukas Märdian (slyon) wrote :
Download full text (4.1 KiB)

Thank you, autopkgtests are looking good now! I agree the s390x failure seems flaky.

The package LGTM mostly, now. I've added 3 small TODOs (see below), which I'd like you to have a look at before we upload and a bunch of "FUTURE WORK", which we should track somewhere for future investigations in our mission to reduce the delta.

> > d/control:
> > + systemd-sysv package => do we really need "Depends: systemd" if we have
> the pre-depends already? (well.. there's a versioned dependency..)
>
> Please see https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/c
> ommit/?id=d1ecf0c372f5212129c85ae60fddf26b2271a1fe.

ACK. Sorry for me not digging deep enough on some of my earlier comments (it was all a bit rushed) and thanks for providing the relevant links to git commits!

=== TODO ===

d/systemd-resolved.postinst:
+ Should we adapt to DPKG_ROOT now? (see 5664be0)

d/t/tests-in-lxd:
+ Please add a comment about not testing in privileged LXD containers anymore + reference to
bug #1950787 (especially @stgraber's comment) – I'm fine with only staging this for the next upload if we want to get the current version uploaded now.
+ How can we make sure systems still at least boot OK inside a privileged LXD container? IMO we should be adding a simple smoke test for privileged containers.

=== FUTURE WORK ===

(see some additional new comments for future work at the very bottom)

> > d/rules:
> > + do we have any reference for that "CET on ubuntu amd64" enablement
> compiler issue/fix? we should add it to the comment
>
> I am not sure, the commit does not explain much:
> https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=c
> c42a377e7e8c372124bcf43d9f4fb9c169f4292.

I feel like we should be creating a JIRA card about that, to investigate the situation in the future, would you mind creating such card? For now we'll keep the packaging as-is.

> > d/systemd.prerm:
> > + I don't think we support removing systemd at all... so I wonder why this
> file was dropped? Couldn't we just keep it, to reduce delta?
>
> Please see https://git.launchpad.net/~ubuntu-core-
> dev/ubuntu/+source/systemd/commit/?id=0244c4d56556317f14eecc2f51871969ef02ba7b
> and bug 1758438.

Thanks for providing the context (bug #1758438)! I feel like this is a workaround and we should rather try to get the chroot usecase properly fixed. Ideally in cooperation with Debian, as it might affect them as well. But let's but that burden on future-us (should we create a card about it, too? Maybe some "systemd technical-debt" card with a bunch of subtasks?).
We'll keep packaging as-is for now.

> > d/t/control:
> > + boot-and-services: the "gdm3 [amd64]" dependency looks suspicious, why do
> we need to diverge from Debian here?
>
> Please see https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/c
> ommit/?id=97cb13685dfb353045c449ec5d6d1df60f661079. It does not contain a lot
> of information or an LP, but I don't feel very strongly about removing that
> delta.

We should be striving to reduce delta whenever possible, so this is something for future investigation ("systemd technical-debt" card), too. Keeping it as-is for now.

> > d/t/systemd...

Read more...

Revision history for this message
Nick Rosbrook (enr0n) wrote :
Download full text (4.0 KiB)

> d/systemd-resolved.postinst:
> + Should we adapt to DPKG_ROOT now? (see 5664be0)
>

Yes, good catch.

>
> d/t/tests-in-lxd:
> + Please add a comment about not testing in privileged LXD containers anymore + reference to
> bug #1950787 (especially @stgraber's comment) – I'm fine with only staging this for the next upload if we want to get the current version uploaded now.

I'll fix this (and the DPKG_ROOT in systemd-resolved.postinst) for this upload.

> + How can we make sure systems still at least boot OK inside a privileged LXD container? IMO we should be adding a simple smoke test for privileged containers.
>

The problem with that currently is that systemd-tmpfiles-*.service fail now in privileged LXD containers. One effect of this is that /var/run/utmp never gets created, and the runlevel command always returns "unknown". This breaks autopkgtest's logic for determining a test bed has "rebooted", which causes tests that run in privileged LXD containers to timeout "waiting for the test bed to reboot". I definitely don't want to override systemd-tmpfiles-*.service to remove the LoadCredential entries, so before we can add a smoke test like that back, I need to patch autopkgtest to use a non-sysvinit interface for accepting the reboot.

>
> === FUTURE WORK ===
>
> (see some additional new comments for future work at the very bottom)
>
> > > d/rules:
> > > + do we have any reference for that "CET on ubuntu amd64" enablement
> > compiler issue/fix? we should add it to the comment
> >
> > I am not sure, the commit does not explain much:
> > https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=c
> > c42a377e7e8c372124bcf43d9f4fb9c169f4292.
>
> I feel like we should be creating a JIRA card about that, to investigate the situation in the future, would you mind creating such card? For now we'll keep the packaging as-is.

Yes, I will create the JIRA card.

>
> > > d/systemd.prerm:
> > > + I don't think we support removing systemd at all... so I wonder why this
> > file was dropped? Couldn't we just keep it, to reduce delta?
> >
> > Please see https://git.launchpad.net/~ubuntu-core-
> > dev/ubuntu/+source/systemd/commit/?id=0244c4d56556317f14eecc2f51871969ef02ba7b
> > and bug 1758438.
>
> Thanks for providing the context (bug #1758438)! I feel like this is a workaround and we should rather try to get the chroot usecase properly fixed. Ideally in cooperation with Debian, as it might affect them as well. But let's but that burden on future-us (should we create a card about it, too? Maybe some "systemd technical-debt" card with a bunch of subtasks?).
> We'll keep packaging as-is for now.

Yes, I'll add this to JIRA as well.

>
> > > d/t/control:
> > > + boot-and-services: the "gdm3 [amd64]" dependency looks suspicious, why do
> > we need to diverge from Debian here?
> >
> > Please see https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/c
> > ommit/?id=97cb13685dfb353045c449ec5d6d1df60f661079. It does not contain a lot
> > of information or an LP, but I don't feel very strongly about removing that
> > delta.
>
> We should be striving to reduce delta whenever possible, so this is something for future inve...

Read more...

Revision history for this message
Lukas Märdian (slyon) wrote :

Thank you LGTM! Let's get this uploaded.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/.clang-format b/.clang-format
2index 6aa4e6a..fe360a6 100644
3--- a/.clang-format
4+++ b/.clang-format
5@@ -27,22 +27,22 @@
6 AccessModifierOffset: -4
7 AlignAfterOpenBracket: AlwaysBreak
8 AlignEscapedNewlines: Left
9-AlignOperands: false
10+AlignOperands: false
11 AllowShortFunctionsOnASingleLine: None
12 AlwaysBreakBeforeMultilineStrings: true
13 AlwaysBreakTemplateDeclarations: Yes
14 BinPackArguments: false
15 BinPackParameters: false
16 BraceWrapping:
17- AfterEnum: false
18+ AfterEnum: false
19 SplitEmptyFunction: false
20 SplitEmptyRecord: false
21 SplitEmptyNamespace: false
22 BreakBeforeBraces: Custom
23-BreakInheritanceList: BeforeComma
24 BreakBeforeTernaryOperators: false
25+BreakInheritanceList: BeforeComma
26 BreakStringLiterals: false
27-ColumnLimit: 109
28+ColumnLimit: 109
29 CompactNamespaces: true
30 ConstructorInitializerAllOnOneLineOrOnePerLine: true
31 ConstructorInitializerIndentWidth: 8
32@@ -107,7 +107,7 @@ ForEachMacros:
33 - STRV_FOREACH_BACKWARDS
34 - STRV_FOREACH_PAIR
35 IndentPPDirectives: AfterHash
36-IndentWidth: 8
37+IndentWidth: 8
38 IndentWrappedFunctionNames: true
39 MaxEmptyLinesToKeep: 2
40 PenaltyBreakAssignment: 65
41@@ -117,8 +117,10 @@ PenaltyBreakFirstLessLess: 50
42 PenaltyBreakString: 0
43 PenaltyExcessCharacter: 10
44 PenaltyReturnTypeOnItsOwnLine: 100
45+PointerAlignment: Right
46 SpaceAfterCStyleCast: true
47+SpaceAroundPointerQualifiers: Both
48 SpaceBeforeParens: ControlStatementsExceptForEachMacros
49-SpacesInAngles: true
50-TabWidth: 8
51-UseCRLF: false
52+SpacesInAngles: true
53+TabWidth: 8
54+UseCRLF: false
55diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md
56deleted file mode 100644
57index 592833e..0000000
58--- a/.github/ISSUE_TEMPLATE/Bug_report.md
59+++ /dev/null
60@@ -1,47 +0,0 @@
61----
62-name: Bug report
63-about: A report of an error in a recent systemd version
64-SPDX-License-Identifier: LGPL-2.1-or-later
65----
66-
67-**systemd version the issue has been seen with**
68- > …
69-
70-<!-- **NOTE:** Do not submit bug reports about anything but the two most recently released *major* systemd versions upstream! -->
71-<!-- If there have been multiple stable releases for that major version, please consider updating to a recent one before reporting an issue. -->
72-<!-- When using a distro package, please make sure that the version reported is meaningful for upstream. -->
73-<!-- See https://github.com/systemd/systemd-stable/tags for the list of most recent releases. -->
74-<!-- For older version please use distribution trackers (see https://systemd.io/CONTRIBUTING#filing-issues). -->
75-
76-**Used distribution**
77- > …
78-
79-**Linux kernel version used** (`uname -a`)
80-<!-- Make sure to enclose the pasted kernel version in `backticks`, so that
81- GitHub doesn't convert the `#` character typically included in it into a
82- reference to old GitHub issues. -->
83- > `…`
84-
85-**CPU architecture issue was seen on**
86- > …
87-
88-**Expected behaviour you didn't see**
89- > …
90-
91-**Unexpected behaviour you saw**
92- > …
93-
94-**Steps to reproduce the problem**
95- > …
96-
97-**Additional program output to the terminal or log subsystem illustrating the issue**
98-
99-<!-- Please paste relevant program terminal or journal output here, ideally
100- when generated in debug mode (try setting the SYSTEMD_LOG_LEVEL=debug
101- environment variable). For very long copy/pasted data consider using a
102- service like https://gist.github.com/. Where copy/paste is not possible
103- (for example early boot or late shutdown), a photo of the screen might do
104- too, but text is always much preferred. -->
105-```text
106-…
107-```
108diff --git a/.github/ISSUE_TEMPLATE/Feature_request.md b/.github/ISSUE_TEMPLATE/Feature_request.md
109deleted file mode 100644
110index ad9f447..0000000
111--- a/.github/ISSUE_TEMPLATE/Feature_request.md
112+++ /dev/null
113@@ -1,17 +0,0 @@
114----
115-name: Feature request
116-about: Suggest an improvement
117-SPDX-License-Identifier: LGPL-2.1-or-later
118----
119-
120-**Is your feature request related to a problem? Please describe.**
121-A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
122-
123-**Describe the solution you'd like**
124-A clear and concise description of what you want to happen.
125-
126-**Describe alternatives you've considered**
127-A clear and concise description of any alternative solutions or features you've considered.
128-
129-**The systemd version you checked that didn't have the feature you are asking for**
130-<!-- If this is not the most recently released upstream version, then please check first if it has that feature already. -->
131diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
132new file mode 100644
133index 0000000..d25f5ea
134--- /dev/null
135+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
136@@ -0,0 +1,183 @@
137+name: Bug Report
138+description: A report of an error in a recent systemd version
139+labels: ["bug 🐛"]
140+
141+body:
142+ - type: markdown
143+ attributes:
144+ value: Thanks for taking the time to fill out this bug report!
145+
146+ - type: input
147+ id: version
148+ attributes:
149+ label: systemd version the issue has been seen with
150+ description: |
151+ Do not submit bug reports about anything but the two most recently released *major* systemd versions upstream!
152+ If there have been multiple stable releases for that major version, please consider updating to a recent one before reporting an issue.
153+ When using a distro package, please make sure that the version reported is meaningful for upstream.
154+ If a distro build is used, please just paste the package version, e.g. `systemd-250.7-1.fc36.x86_64`.
155+ See https://github.com/systemd/systemd-stable/tags for the list of most recent releases.
156+ For older version please use distribution trackers (see https://systemd.io/CONTRIBUTING#filing-issues).
157+ placeholder: '251'
158+ validations:
159+ required: true
160+
161+ - type: input
162+ id: distro
163+ attributes:
164+ label: Used distribution
165+ description: Used distribution and it's version
166+ placeholder: Fedora 36
167+ validations:
168+ required: false
169+
170+ - type: input
171+ id: kernel
172+ attributes:
173+ label: Linux kernel version used
174+ description: |
175+ Please use `uname -r` to get linux kernel version.
176+ placeholder: 5.17.12-300.fc36.ppc64le
177+ validations:
178+ required: false
179+
180+ - type: dropdown
181+ id: architecture
182+ attributes:
183+ label: CPU architectures issue was seen on
184+ options:
185+ - aarch64
186+ - alpha
187+ - arm
188+ - i686
189+ - ia64
190+ - loongarch
191+ - mips
192+ - parisc
193+ - ppc (big endian)
194+ - ppc64 (big endian)
195+ - ppc64le
196+ - riscv64
197+ - s390x
198+ - sparc
199+ - sparc64
200+ - x86_64
201+ - other
202+ validations:
203+ required: false
204+
205+ - type: dropdown
206+ id: component
207+ attributes:
208+ label: Component
209+ description: Please chose components related to this issue.
210+ multiple: true
211+ # When updating list of components please also update labeling policy
212+ # policy: `.github/advanced-issue-labeler.yml`
213+ options:
214+ - 'bootctl'
215+ - 'coredumpctl'
216+ - 'homectl'
217+ - 'hostnamectl'
218+ - 'hardware database files'
219+ - 'journalctl'
220+ - 'kernel-install'
221+ - 'loginctl'
222+ - 'machinectl'
223+ - 'networkctl'
224+ - 'nss-resolve'
225+ - 'oomctl'
226+ - 'pam_systemd'
227+ - 'pam_systemd_home'
228+ - 'portablectl'
229+ - 'resolvectl'
230+ - 'rpm scriptlets'
231+ - 'systemctl'
232+ - 'systemd'
233+ - 'systemd-analyze'
234+ - 'systemd-ask-password'
235+ - 'systemd-binfmt'
236+ - 'systemd-boot'
237+ - 'systemd-cgtop'
238+ - 'systemd-coredump'
239+ - 'systemd-cryptsetup'
240+ - 'systemd-delta'
241+ - 'systemd-env-generator'
242+ - 'systemd-fsck'
243+ - 'systemd-gpt-auto-generator'
244+ - 'systemd-growfs'
245+ - 'systemd-homed'
246+ - 'systemd-hostnamed'
247+ - 'systemd-hwdb'
248+ - 'systemd-import'
249+ - 'systemd-journal-gatewayd'
250+ - 'systemd-journal-remote'
251+ - 'systemd-journal-upload'
252+ - 'systemd-journald'
253+ - 'systemd-logind'
254+ - 'systemd-machined'
255+ - 'systemd-modules-load'
256+ - 'systemd-network-generator'
257+ - 'systemd-networkd'
258+ - 'systemd-networkd-wait-online'
259+ - 'systemd-nspawn'
260+ - 'systemd-oomd'
261+ - 'systemd-portabled'
262+ - 'systemd-pstore'
263+ - 'systemd-repart'
264+ - 'systemd-resolved'
265+ - 'systemd-rfkill'
266+ - 'systemd-run'
267+ - 'systemd-stub'
268+ - 'systemd-sysctl'
269+ - 'systemd-sysext'
270+ - 'systemd-sysusers'
271+ - 'systemd-sysv-generator'
272+ - 'systemd-timedate'
273+ - 'systemd-timesync'
274+ - 'systemd-tmpfiles'
275+ - 'systemd-udevd'
276+ - 'systemd-userdb'
277+ - 'systemd-veritysetup'
278+ - 'systemd-xdg-autostart-generator'
279+ - 'timedatectl'
280+ - 'udevadm'
281+ - 'udev rule files'
282+ - 'userdbctl'
283+ - 'tests'
284+ - 'other'
285+ validations:
286+ required: false
287+
288+ - type: textarea
289+ id: expected-behaviour
290+ attributes:
291+ label: Expected behaviour you didn't see
292+ validations:
293+ required: false
294+
295+ - type: textarea
296+ id: unexpected-behaviour
297+ attributes:
298+ label: Unexpected behaviour you saw
299+ validations:
300+ required: false
301+
302+ - type: textarea
303+ id: steps-to-reproduce
304+ attributes:
305+ label: Steps to reproduce the problem
306+ validations:
307+ required: false
308+
309+ - type: textarea
310+ id: additional-information
311+ attributes:
312+ label: Additional program output to the terminal or log subsystem illustrating the issue
313+ description: |
314+ Please paste relevant program terminal or journal output here, ideally when generated in debug mode (try setting the `SYSTEMD_LOG_LEVEL=debug` environment variable).
315+ For very long copy/pasted data consider using a service like https://gist.github.com/. Where copy/paste is not possible (for example early boot or late shutdown), a photo of the screen might do too, but text is always much preferred.
316+ placeholder: This will be automatically formatted into code, so no need for backticks.
317+ render: sh
318+ validations:
319+ required: false
320diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
321new file mode 100644
322index 0000000..1f24851
323--- /dev/null
324+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
325@@ -0,0 +1,124 @@
326+name: Feature request
327+description: Suggest an improvement
328+labels: ["RFE 🎁"]
329+
330+body:
331+ - type: markdown
332+ attributes:
333+ value: Thanks for taking the time to fill out this feature request!
334+
335+ - type: dropdown
336+ id: component
337+ attributes:
338+ label: Component
339+ description: Please chose components related to this feature request.
340+ multiple: true
341+ # When updating list of components please also update labeling policy
342+ # policy: `.github/advanced-issue-labeler.yml`
343+ options:
344+ - 'bootctl'
345+ - 'coredumpctl'
346+ - 'homectl'
347+ - 'hostnamectl'
348+ - 'hardware database files'
349+ - 'journalctl'
350+ - 'kernel-install'
351+ - 'loginctl'
352+ - 'machinectl'
353+ - 'networkctl'
354+ - 'nss-resolve'
355+ - 'oomctl'
356+ - 'pam_systemd'
357+ - 'pam_systemd_home'
358+ - 'portablectl'
359+ - 'resolvectl'
360+ - 'rpm scriptlets'
361+ - 'systemctl'
362+ - 'systemd'
363+ - 'systemd-analyze'
364+ - 'systemd-ask-password'
365+ - 'systemd-binfmt'
366+ - 'systemd-boot'
367+ - 'systemd-cgtop'
368+ - 'systemd-coredump'
369+ - 'systemd-cryptsetup'
370+ - 'systemd-delta'
371+ - 'systemd-env-generator'
372+ - 'systemd-fsck'
373+ - 'systemd-gpt-auto-generator'
374+ - 'systemd-growfs'
375+ - 'systemd-homed'
376+ - 'systemd-hostnamed'
377+ - 'systemd-hwdb'
378+ - 'systemd-import'
379+ - 'systemd-journal-gatewayd'
380+ - 'systemd-journal-remote'
381+ - 'systemd-journal-upload'
382+ - 'systemd-journald'
383+ - 'systemd-logind'
384+ - 'systemd-machined'
385+ - 'systemd-modules-load'
386+ - 'systemd-network-generator'
387+ - 'systemd-networkd'
388+ - 'systemd-networkd-wait-online'
389+ - 'systemd-nspawn'
390+ - 'systemd-oomd'
391+ - 'systemd-portabled'
392+ - 'systemd-pstore'
393+ - 'systemd-repart'
394+ - 'systemd-resolved'
395+ - 'systemd-rfkill'
396+ - 'systemd-run'
397+ - 'systemd-stub'
398+ - 'systemd-sysctl'
399+ - 'systemd-sysext'
400+ - 'systemd-sysusers'
401+ - 'systemd-sysv-generator'
402+ - 'systemd-timedate'
403+ - 'systemd-timesync'
404+ - 'systemd-tmpfiles'
405+ - 'systemd-udevd'
406+ - 'systemd-userdb'
407+ - 'systemd-veritysetup'
408+ - 'systemd-xdg-autostart-generator'
409+ - 'timedatectl'
410+ - 'udevadm'
411+ - 'udev rule files'
412+ - 'userdbctl'
413+ - 'tests'
414+ - 'other'
415+ validations:
416+ required: false
417+
418+ - type: textarea
419+ id: description
420+ attributes:
421+ label: Is your feature request related to a problem? Please describe
422+ description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
423+ validations:
424+ required: false
425+
426+ - type: textarea
427+ id: solution
428+ attributes:
429+ label: Describe the solution you'd like
430+ description: A clear and concise description of what you want to happen.
431+ validations:
432+ required: false
433+
434+ - type: textarea
435+ id: alternatives
436+ attributes:
437+ label: Describe alternatives you've considered
438+ description: A clear and concise description of any alternative solutions or features you've considered.
439+ validations:
440+ required: false
441+
442+ - type: input
443+ id: version
444+ attributes:
445+ label: The systemd version you checked that didn't have the feature you are asking for
446+ description: If this is not the most recently released upstream version, then please check first if it has that feature already.
447+ placeholder: '251'
448+ validations:
449+ required: false
450diff --git a/.github/advanced-issue-labeler.yml b/.github/advanced-issue-labeler.yml
451new file mode 100644
452index 0000000..38388fb
453--- /dev/null
454+++ b/.github/advanced-issue-labeler.yml
455@@ -0,0 +1,146 @@
456+---
457+# syntax - https://github.com/redhat-plumbers-in-action/advanced-issue-labeler#policy
458+
459+policy:
460+ - template: [bug_report.yml, feature_request.yml]
461+ section:
462+ - id: [component]
463+ block-list: [other]
464+ label:
465+ - name: analyze
466+ keys: ['systemd-analyze']
467+
468+ - name: ask-password
469+ keys: ['systemd-ask-password']
470+
471+ - name: binfmt
472+ keys: ['systemd-binfmt']
473+
474+ - name: cgtop
475+ keys: ['systemd-cgtop']
476+
477+ - name: coredump
478+ keys: ['coredumpctl', 'systemd-coredump']
479+
480+ - name: cryptsetup
481+ keys: ['systemd-cryptsetup']
482+
483+ - name: delta
484+ keys: ['systemd-delta']
485+
486+ - name: env
487+ keys: ['systemd-env-generator']
488+
489+ - name: fsck
490+ keys: ['systemd-fsck']
491+
492+ - name: gpt-auto
493+ keys: ['systemd-gpt-auto-generator']
494+
495+ - name: growfs
496+ keys: ['systemd-growfs']
497+
498+ - name: homed
499+ keys: ['systemd-homed', 'homectl', 'pam_systemd_home']
500+
501+ - name: hostname
502+ keys: ['systemd-hostnamed', 'hostnamectl']
503+
504+ - name: hwdb
505+ keys: ['systemd-hwdb', 'hardware database files']
506+
507+ - name: import
508+ keys: ['systemd-import']
509+
510+ - name: journal
511+ keys: ['systemd-journald', 'journalctl']
512+
513+ - name: journal-remote
514+ keys: ['systemd-journal-remote', 'systemd-journal-upload', 'systemd-journal-gatewayd']
515+
516+ - name: kernel-install
517+ keys: ['kernel-install']
518+
519+ - name: logind
520+ keys: ['systemd-logind', 'loginctl', 'pam_systemd']
521+
522+ - name: machined
523+ keys: ['systemd-machined', 'machinectl']
524+
525+ - name: modules-load
526+ keys: ['systemd-modules-load']
527+
528+ - name: network
529+ keys: ['systemd-networkd', 'networkctl', 'systemd-networkd-wait-online', 'systemd-network-generator']
530+
531+ - name: nspawn
532+ keys: ['systemd-nspawn']
533+
534+ - name: oomd
535+ keys: ['systemd-oomd', 'oomctl']
536+
537+ - name: pid1
538+ keys: ['systemd']
539+
540+ - name: portabled
541+ keys: ['systemd-portabled', 'portablectl']
542+
543+ - name: pstore
544+ keys: ['systemd-pstore']
545+
546+ - name: repart
547+ keys: ['systemd-repart']
548+
549+ - name: resolve
550+ keys: ['systemd-resolved', 'resolvectl', 'nss-resolve']
551+
552+ - name: rfkill
553+ keys: ['systemd-rfkill']
554+
555+ - name: rpm
556+ keys: ['rpm scriptlets']
557+
558+ - name: run
559+ keys: ['systemd-run']
560+
561+ - name: sd-boot/sd-stub/bootctl
562+ keys: ['bootctl', 'systemd-boot', 'systemd-stub']
563+
564+ - name: sysctl
565+ keys: ['systemd-sysctl']
566+
567+ - name: sysext
568+ keys: ['systemd-sysext']
569+
570+ - name: systemctl
571+ keys: ['systemctl']
572+
573+ - name: sysusers
574+ keys: ['systemd-sysusers']
575+
576+ - name: sysv
577+ keys: ['systemd-sysv-generator']
578+
579+ - name: tests
580+ keys: ['tests']
581+
582+ - name: timedate
583+ keys: ['systemd-timedate', 'timedatectl']
584+
585+ - name: timesync
586+ keys: ['systemd-timesync']
587+
588+ - name: tmpfiles
589+ keys: ['systemd-tmpfiles']
590+
591+ - name: udev
592+ keys: ['systemd-udevd', 'udevadm', 'udev rule files']
593+
594+ - name: userdb
595+ keys: ['systemd-userdb', 'userdbctl']
596+
597+ - name: veritysetup
598+ keys: ['systemd-veritysetup']
599+
600+ - name: xdg-autostart
601+ keys: ['systemd-xdg-autostart-generator']
602diff --git a/.github/codeql-config.yml b/.github/codeql-config.yml
603index 447e53b..7c01d32 100644
604--- a/.github/codeql-config.yml
605+++ b/.github/codeql-config.yml
606@@ -9,4 +9,4 @@ queries:
607 - name: Enable possibly useful queries which are disabled by default
608 uses: ./.github/codeql-custom.qls
609 - name: systemd-specific CodeQL queries
610- uses: ./.lgtm/cpp-queries/
611+ uses: ./.github/codeql-queries/
612diff --git a/.github/codeql-custom.qls b/.github/codeql-custom.qls
613index 28a22d3..d35fbe3 100644
614--- a/.github/codeql-custom.qls
615+++ b/.github/codeql-custom.qls
616@@ -10,12 +10,20 @@
617 # - https://github.com/github/codeql-action/issues/430#issuecomment-806092120
618 # - https://codeql.github.com/docs/codeql-cli/creating-codeql-query-suites/
619
620+# Note: the codeql/<lang>-queries pack name can be found in the CodeQL repo[0]
621+# in <lang>/ql/src/qlpack.yml. The respective codeql-suites are then
622+# under <lang>/ql/src/codeql-suites/.
623+#
624+# [0] https://github.com/github/codeql
625 - import: codeql-suites/cpp-lgtm.qls
626 from: codeql/cpp-queries
627+- import: codeql-suites/python-lgtm.qls
628+ from: codeql/python-queries
629 - include:
630 id:
631 - cpp/bad-strncpy-size
632 - cpp/declaration-hides-variable
633+ - cpp/include-non-header
634 - cpp/inconsistent-null-check
635 - cpp/mistyped-function-arguments
636 - cpp/nested-loops-with-same-variable
637diff --git a/.lgtm/cpp-queries/PotentiallyDangerousFunction.ql b/.github/codeql-queries/PotentiallyDangerousFunction.ql
638similarity index 94%
639rename from .lgtm/cpp-queries/PotentiallyDangerousFunction.ql
640rename to .github/codeql-queries/PotentiallyDangerousFunction.ql
641index 39e8ddd..d5a5635 100644
642--- a/.lgtm/cpp-queries/PotentiallyDangerousFunction.ql
643+++ b/.github/codeql-queries/PotentiallyDangerousFunction.ql
644@@ -42,10 +42,13 @@ predicate potentiallyDangerousFunction(Function f, string message) {
645 message = "Call to ntohs() is confusing. Use be16toh() instead."
646 ) or (
647 f.getQualifiedName() = "strerror" and
648- message = "Call to strerror() is not thread-safe. Use strerror_r() or printf()'s %m format string instead."
649+ message = "Call to strerror() is not thread-safe. Use printf()'s %m format string or STRERROR() instead."
650 ) or (
651 f.getQualifiedName() = "accept" and
652 message = "Call to accept() is not O_CLOEXEC-safe. Use accept4() instead."
653+ ) or (
654+ f.getQualifiedName() = "dirname" and
655+ message = "Call dirname() is icky. Use path_extract_directory() instead."
656 )
657 }
658
659diff --git a/.lgtm/cpp-queries/UninitializedVariableWithCleanup.ql b/.github/codeql-queries/UninitializedVariableWithCleanup.ql
660similarity index 92%
661rename from .lgtm/cpp-queries/UninitializedVariableWithCleanup.ql
662rename to .github/codeql-queries/UninitializedVariableWithCleanup.ql
663index 6b3b62f..e514111 100644
664--- a/.lgtm/cpp-queries/UninitializedVariableWithCleanup.ql
665+++ b/.github/codeql-queries/UninitializedVariableWithCleanup.ql
666@@ -50,16 +50,16 @@ class UninitialisedLocalReachability extends StackVariableReachability {
667 * fun(&x);
668 * puts(x);
669 *
670- * `useOfVarActual()` won't treat this an an uninitialized read even if the callee
671+ * `useOfVarActual()` won't treat this as an uninitialized read even if the callee
672 * doesn't modify the argument, however, `useOfVar()` will
673 */
674 override predicate isSink(ControlFlowNode node, StackVariable v) { useOfVar(v, node) }
675
676 override predicate isBarrier(ControlFlowNode node, StackVariable v) {
677- // only report the _first_ possibly uninitialized use
678+ /* only report the _first_ possibly uninitialized use */
679 useOfVar(v, node) or
680 (
681- /* If there's an return statement somewhere between the variable declaration
682+ /* If there's a return statement somewhere between the variable declaration
683 * and a possible definition, don't accept is as a valid initialization.
684 *
685 * E.g.:
686@@ -71,7 +71,7 @@ class UninitialisedLocalReachability extends StackVariableReachability {
687 * x = malloc(...);
688 *
689 * is not a valid initialization, since we might return from the function
690- * _before_ the actual iniitialization (emphasis on _might_, since we
691+ * _before_ the actual initialization (emphasis on _might_, since we
692 * don't know if the return statement might ever evaluate to true).
693 */
694 definitionBarrier(v, node) and
695@@ -92,14 +92,14 @@ predicate containsInlineAssembly(Function f) { exists(AsmStmt s | s.getEnclosing
696 * for this check to exclude them.
697 */
698 VariableAccess commonException() {
699- // If the uninitialized use we've found is in a macro expansion, it's
700- // typically something like va_start(), and we don't want to complain.
701+ /* If the uninitialized use we've found is in a macro expansion, it's
702+ * typically something like va_start(), and we don't want to complain. */
703 result.getParent().isInMacroExpansion()
704 or
705 result.getParent() instanceof BuiltInOperation
706 or
707- // Finally, exclude functions that contain assembly blocks. It's
708- // anyone's guess what happens in those.
709+ /* Finally, exclude functions that contain assembly blocks. It's
710+ * anyone's guess what happens in those. */
711 containsInlineAssembly(result.getEnclosingFunction())
712 }
713
714diff --git a/.lgtm/cpp-queries/qlpack.yml b/.github/codeql-queries/qlpack.yml
715similarity index 100%
716rename from .lgtm/cpp-queries/qlpack.yml
717rename to .github/codeql-queries/qlpack.yml
718diff --git a/.github/pull_request_template.md.disabled b/.github/pull_request_template.md.disabled
719new file mode 100644
720index 0000000..a133346
721--- /dev/null
722+++ b/.github/pull_request_template.md.disabled
723@@ -0,0 +1,5 @@
724+# CODE FREEZE NOTICE
725+
726+An -rc1 tag has been created and a release is being prepared, so please note that
727+PRs introducing new features and APIs will be held back until the new version
728+has been released.
729diff --git a/.github/workflows/build_test.sh b/.github/workflows/build_test.sh
730index a43c343..b60db29 100755
731--- a/.github/workflows/build_test.sh
732+++ b/.github/workflows/build_test.sh
733@@ -45,6 +45,7 @@ PACKAGES=(
734 libxkbcommon-dev
735 libxtables-dev
736 libzstd-dev
737+ mold
738 mount
739 net-tools
740 perl
741@@ -76,24 +77,27 @@ if [[ "$COMPILER" == clang ]]; then
742 CXX="clang++-$COMPILER_VERSION"
743 AR="llvm-ar-$COMPILER_VERSION"
744
745- # ATTOW llvm-11 got into focal-updates, which conflicts with llvm-11
746- # provided by the apt.llvm.org repositories. Let's use the system
747- # llvm package if available in such cases to avoid that.
748+ # Prefer the distro version if available
749 if ! apt install --dry-run "llvm-$COMPILER_VERSION" >/dev/null; then
750 # Latest LLVM stack deb packages provided by https://apt.llvm.org/
751 # Following snippet was partly borrowed from https://apt.llvm.org/llvm.sh
752 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --yes --dearmor --output /usr/share/keyrings/apt-llvm-org.gpg
753 printf "deb [signed-by=/usr/share/keyrings/apt-llvm-org.gpg] http://apt.llvm.org/%s/ llvm-toolchain-%s-%s main\n" \
754 "$RELEASE" "$RELEASE" "$COMPILER_VERSION" >/etc/apt/sources.list.d/llvm-toolchain.list
755- PACKAGES+=("clang-$COMPILER_VERSION" "lldb-$COMPILER_VERSION" "lld-$COMPILER_VERSION" "clangd-$COMPILER_VERSION")
756 fi
757+
758+ PACKAGES+=("clang-$COMPILER_VERSION" "lldb-$COMPILER_VERSION" "lld-$COMPILER_VERSION" "clangd-$COMPILER_VERSION")
759 elif [[ "$COMPILER" == gcc ]]; then
760 CC="gcc-$COMPILER_VERSION"
761 CXX="g++-$COMPILER_VERSION"
762 AR="gcc-ar-$COMPILER_VERSION"
763- # Latest gcc stack deb packages provided by
764- # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test
765- add-apt-repository -y ppa:ubuntu-toolchain-r/test
766+
767+ if ! apt install --dry-run "gcc-$COMPILER_VERSION" >/dev/null; then
768+ # Latest gcc stack deb packages provided by
769+ # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test
770+ add-apt-repository -y ppa:ubuntu-toolchain-r/test
771+ fi
772+
773 PACKAGES+=("gcc-$COMPILER_VERSION" "gcc-$COMPILER_VERSION-multilib")
774 else
775 fatal "Unknown compiler: $COMPILER"
776@@ -118,27 +122,28 @@ ninja --version
777 for args in "${ARGS[@]}"; do
778 SECONDS=0
779
780- # meson fails with
781- # src/boot/efi/meson.build:52: WARNING: Not using lld as efi-ld, falling back to bfd
782- # src/boot/efi/meson.build:52:16: ERROR: Fatal warnings enabled, aborting
783- # when LINKER is set to lld so let's just not turn meson warnings into errors with lld
784- # to make sure that the build systemd can pick up the correct efi-ld linker automatically.
785-
786 # The install_tag feature introduced in 0.60 causes meson to fail with fatal-meson-warnings
787 # "Project targeting '>= 0.53.2' but tried to use feature introduced in '0.60.0': install_tag arg in custom_target"
788 # It can be safely removed from the CI since it isn't actually used anywhere to test anything.
789 find . -type f -name meson.build -exec sed -i '/install_tag/d' '{}' '+'
790- if [[ "$LINKER" != lld ]]; then
791- additional_meson_args="--fatal-meson-warnings"
792+
793+ # mold < 1.1 does not support LTO.
794+ if dpkg --compare-versions "$(dpkg-query --showformat='${Version}' --show mold)" ge 1.1; then
795+ fatal "Newer mold version detected, please remove this workaround."
796+ elif [[ "$args" == *"-Db_lto=true"* ]]; then
797+ LD="gold"
798+ else
799+ LD="$LINKER"
800 fi
801+
802 info "Checking build with $args"
803 # shellcheck disable=SC2086
804 if ! AR="$AR" \
805- CC="$CC" CC_LD="$LINKER" CFLAGS="-Werror" \
806- CXX="$CXX" CXX_LD="$LINKER" CXXFLAGS="-Werror" \
807+ CC="$CC" CC_LD="$LD" CFLAGS="-Werror" \
808+ CXX="$CXX" CXX_LD="$LD" CXXFLAGS="-Werror" \
809 meson -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true --werror \
810- -Dnobody-group=nogroup $additional_meson_args \
811- -Dcryptolib="${CRYPTOLIB:?}" $args build; then
812+ -Dnobody-group=nogroup -Dcryptolib="${CRYPTOLIB:?}" \
813+ $args build; then
814
815 cat build/meson-logs/meson-log.txt
816 fatal "meson failed with $args"
817diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml
818index 94fb677..cd6937e 100644
819--- a/.github/workflows/build_test.yml
820+++ b/.github/workflows/build_test.yml
821@@ -17,7 +17,7 @@ permissions:
822
823 jobs:
824 build:
825- runs-on: ubuntu-20.04
826+ runs-on: ubuntu-22.04
827 concurrency:
828 group: ${{ github.workflow }}-${{ toJSON(matrix.env) }}-${{ github.ref }}
829 cancel-in-progress: true
830@@ -25,11 +25,11 @@ jobs:
831 fail-fast: false
832 matrix:
833 env:
834- - { COMPILER: "gcc", COMPILER_VERSION: "10", LINKER: "bfd", CRYPTOLIB: "gcrypt" }
835- - { COMPILER: "gcc", COMPILER_VERSION: "11", LINKER: "gold", CRYPTOLIB: "openssl" }
836- - { COMPILER: "clang", COMPILER_VERSION: "12", LINKER: "gold", CRYPTOLIB: "gcrypt" }
837- - { COMPILER: "clang", COMPILER_VERSION: "13", LINKER: "lld", CRYPTOLIB: "openssl" }
838- - { COMPILER: "clang", COMPILER_VERSION: "14", LINKER: "bfd", CRYPTOLIB: "auto" }
839+ - { COMPILER: "gcc", COMPILER_VERSION: "11", LINKER: "bfd", CRYPTOLIB: "gcrypt" }
840+ - { COMPILER: "gcc", COMPILER_VERSION: "12", LINKER: "gold", CRYPTOLIB: "openssl" }
841+ - { COMPILER: "clang", COMPILER_VERSION: "13", LINKER: "mold", CRYPTOLIB: "gcrypt" }
842+ - { COMPILER: "clang", COMPILER_VERSION: "14", LINKER: "lld", CRYPTOLIB: "openssl" }
843+ - { COMPILER: "clang", COMPILER_VERSION: "15", LINKER: "bfd", CRYPTOLIB: "auto" }
844 env: ${{ matrix.env }}
845 steps:
846 - name: Repository checkout
847diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml
848index f674d43..25731ab 100644
849--- a/.github/workflows/cifuzz.yml
850+++ b/.github/workflows/cifuzz.yml
851@@ -25,12 +25,16 @@ jobs:
852 runs-on: ubuntu-latest
853 if: github.repository == 'systemd/systemd'
854 concurrency:
855- group: ${{ github.workflow }}-${{ matrix.sanitizer }}-${{ github.ref }}
856+ group: ${{ github.workflow }}-${{ matrix.sanitizer }}-${{ matrix.architecture }}-${{ github.ref }}
857 cancel-in-progress: true
858 strategy:
859 fail-fast: false
860 matrix:
861 sanitizer: [address, undefined, memory]
862+ architecture: [x86_64]
863+ include:
864+ - sanitizer: address
865+ architecture: i386
866 steps:
867 - name: Build Fuzzers (${{ matrix.sanitizer }})
868 id: build
869@@ -42,6 +46,7 @@ jobs:
870 # keep-unaffected-fuzz-targets should be removed once https://github.com/google/oss-fuzz/issues/7011 is fixed
871 keep-unaffected-fuzz-targets: true
872 sanitizer: ${{ matrix.sanitizer }}
873+ architecture: ${{ matrix.architecture }}
874 - name: Run Fuzzers (${{ matrix.sanitizer }})
875 uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
876 with:
877@@ -50,8 +55,8 @@ jobs:
878 dry-run: false
879 sanitizer: ${{ matrix.sanitizer }}
880 - name: Upload Crash
881- uses: actions/upload-artifact@82c141cc518b40d92cc801eee768e7aafc9c2fa2
882+ uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8
883 if: failure() && steps.build.outcome == 'success'
884 with:
885- name: ${{ matrix.sanitizer }}-artifacts
886+ name: ${{ matrix.sanitizer }}-${{ matrix.architecture }}-artifacts
887 path: ./out/artifacts
888diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql.yml
889similarity index 65%
890rename from .github/workflows/codeql-analysis.yml
891rename to .github/workflows/codeql.yml
892index 4ee50ac..b531753 100644
893--- a/.github/workflows/codeql-analysis.yml
894+++ b/.github/workflows/codeql.yml
895@@ -6,18 +6,19 @@ name: "CodeQL"
896
897 on:
898 pull_request:
899- branches: [main]
900+ branches:
901+ - main
902+ - v[0-9]+-stable
903 paths:
904- - .github/codeql-config.yml
905- - .github/codeql-custom.qls
906- - .github/workflows/codeql-analysis.yml
907- - .github/workflows/requirements.txt
908- - .github/workflows/unit_tests.sh
909- # It takes the workflow approximately 30 minutes to analyze the code base
910- # so it doesn't seem to make much sense to trigger it on every PR or commit.
911- # It runs daily at 01:00 to avoid colliding with the Coverity workflow.
912- schedule:
913- - cron: '0 1 * * *'
914+ - '**/meson.build'
915+ - '.github/**/codeql*'
916+ - 'src/**'
917+ - 'test/**'
918+ - 'tools/**'
919+ push:
920+ branches:
921+ - main
922+ - v[0-9]+-stable
923
924 permissions:
925 contents: read
926@@ -25,7 +26,7 @@ permissions:
927 jobs:
928 analyze:
929 name: Analyze
930- runs-on: ubuntu-latest
931+ runs-on: ubuntu-22.04
932 concurrency:
933 group: ${{ github.workflow }}-${{ matrix.language }}-${{ github.ref }}
934 cancel-in-progress: true
935@@ -36,14 +37,14 @@ jobs:
936 strategy:
937 fail-fast: false
938 matrix:
939- language: [ 'cpp', 'python' ]
940+ language: ['cpp', 'python']
941
942 steps:
943 - name: Checkout repository
944 uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
945
946 - name: Initialize CodeQL
947- uses: github/codeql-action/init@28eead240834b314f7def40f6fcba65d100d99b1
948+ uses: github/codeql-action/init@0c670bbf0414f39666df6ce8e718ec5662c21e03
949 with:
950 languages: ${{ matrix.language }}
951 config-file: ./.github/codeql-config.yml
952@@ -51,7 +52,7 @@ jobs:
953 - run: sudo -E .github/workflows/unit_tests.sh SETUP
954
955 - name: Autobuild
956- uses: github/codeql-action/autobuild@28eead240834b314f7def40f6fcba65d100d99b1
957+ uses: github/codeql-action/autobuild@0c670bbf0414f39666df6ce8e718ec5662c21e03
958
959 - name: Perform CodeQL Analysis
960- uses: github/codeql-action/analyze@28eead240834b314f7def40f6fcba65d100d99b1
961+ uses: github/codeql-action/analyze@0c670bbf0414f39666df6ce8e718ec5662c21e03
962diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml
963index 1c29c8b..3fbebc6 100644
964--- a/.github/workflows/coverity.yml
965+++ b/.github/workflows/coverity.yml
966@@ -14,30 +14,17 @@ permissions:
967
968 jobs:
969 build:
970- runs-on: ubuntu-20.04
971+ runs-on: ubuntu-22.04
972 if: github.repository == 'systemd/systemd'
973 env:
974- COVERITY_SCAN_BRANCH_PATTERN: "${{ github.ref}}"
975- COVERITY_SCAN_NOTIFICATION_EMAIL: ""
976- COVERITY_SCAN_PROJECT_NAME: "${{ github.repository }}"
977- # Set in repo settings -> secrets -> repository secrets
978+ # Set in repo settings -> secrets -> actions
979 COVERITY_SCAN_TOKEN: "${{ secrets.COVERITY_SCAN_TOKEN }}"
980- CURRENT_REF: "${{ github.ref }}"
981+ COVERITY_SCAN_NOTIFICATION_EMAIL: "${{ secrets.COVERITY_SCAN_NOTIFICATION_EMAIL }}"
982 steps:
983 - name: Repository checkout
984 uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
985- # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable
986- - name: Set the $COVERITY_SCAN_NOTIFICATION_EMAIL env variable
987- run: echo "COVERITY_SCAN_NOTIFICATION_EMAIL=$(git log -1 ${{ github.sha }} --pretty=\"%aE\")" >> "$GITHUB_ENV"
988- - name: Install Coverity tools
989- run: tools/get-coverity.sh
990 # Reuse the setup phase of the unit test script to avoid code duplication
991 - name: Install build dependencies
992 run: sudo -E .github/workflows/unit_tests.sh SETUP
993- # Preconfigure with meson to prevent Coverity from capturing meson metadata
994- - name: Preconfigure the build directory
995- run: meson cov-build -Dman=false
996- - name: Build
997- run: tools/coverity.sh build
998- - name: Upload the results
999- run: tools/coverity.sh upload
1000+ - name: Build & upload the results
1001+ run: tools/coverity.sh
1002diff --git a/.github/workflows/differential-shellcheck.yml b/.github/workflows/differential-shellcheck.yml
1003new file mode 100644
1004index 0000000..20ce681
1005--- /dev/null
1006+++ b/.github/workflows/differential-shellcheck.yml
1007@@ -0,0 +1,31 @@
1008+---
1009+# https://github.com/redhat-plumbers-in-action/differential-shellcheck#readme
1010+
1011+name: Differential ShellCheck
1012+on:
1013+ pull_request:
1014+ branches:
1015+ - main
1016+
1017+permissions:
1018+ contents: read
1019+
1020+jobs:
1021+ lint:
1022+ if: github.event.repository.name != 'systemd-security'
1023+ runs-on: ubuntu-latest
1024+
1025+ permissions:
1026+ security-events: write
1027+ pull-requests: write
1028+
1029+ steps:
1030+ - name: Repository checkout
1031+ uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
1032+ with:
1033+ fetch-depth: 0
1034+
1035+ - name: Differential ShellCheck
1036+ uses: redhat-plumbers-in-action/differential-shellcheck@1b1b75e42f0694c1012228513b21617a748c866e
1037+ with:
1038+ token: ${{ secrets.GITHUB_TOKEN }}
1039diff --git a/.github/workflows/issue_labeler.yml b/.github/workflows/issue_labeler.yml
1040new file mode 100644
1041index 0000000..0a97bf4
1042--- /dev/null
1043+++ b/.github/workflows/issue_labeler.yml
1044@@ -0,0 +1,36 @@
1045+---
1046+
1047+name: Issue labeler
1048+on:
1049+ issues:
1050+ types: [ opened ]
1051+
1052+permissions:
1053+ contents: read
1054+
1055+jobs:
1056+ label-component:
1057+ runs-on: ubuntu-22.04
1058+
1059+ permissions:
1060+ issues: write
1061+
1062+ strategy:
1063+ matrix:
1064+ template: [ bug_report.yml, feature_request.yml ]
1065+
1066+ steps:
1067+ - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
1068+
1069+ - name: Parse issue form
1070+ uses: stefanbuck/github-issue-parser@f80b14f78892a66d7a35bba44f0a7d63bee03602
1071+ id: issue-parser
1072+ with:
1073+ template-path: .github/ISSUE_TEMPLATE/${{ matrix.template }}
1074+
1075+ - name: Set labels based on component field
1076+ uses: redhat-plumbers-in-action/advanced-issue-labeler@fe9c43b7d77bd8bd7fbe86c2c217e74ebeea71f2
1077+ with:
1078+ issue-form: ${{ steps.issue-parser.outputs.jsonString }}
1079+ template: ${{ matrix.template }}
1080+ token: ${{ secrets.GITHUB_TOKEN }}
1081diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml
1082index 680a2c1..35766df 100644
1083--- a/.github/workflows/labeler.yml
1084+++ b/.github/workflows/labeler.yml
1085@@ -12,11 +12,12 @@ permissions:
1086
1087 jobs:
1088 triage:
1089+ if: github.event.repository.name != 'systemd-security'
1090 runs-on: ubuntu-latest
1091 permissions:
1092 pull-requests: write
1093 steps:
1094- - uses: actions/labeler@9fd24f1f9d6ceb64ba34d181b329ee72f99978a0
1095+ - uses: actions/labeler@e54e5b338fbd6e6cdb5d60f51c22335fc57c401e
1096 with:
1097 repo-token: "${{ secrets.GITHUB_TOKEN }}"
1098 configuration-path: .github/labeler.yml
1099diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml
1100index ecdd797..180cfbf 100644
1101--- a/.github/workflows/linter.yml
1102+++ b/.github/workflows/linter.yml
1103@@ -29,7 +29,7 @@ jobs:
1104 fetch-depth: 0
1105
1106 - name: Lint Code Base
1107- uses: github/super-linter/slim@ae4e373c56efad95924d9cc6b89624fdb2333007
1108+ uses: github/super-linter/slim@01d3218744765b55c3b5ffbb27e50961e50c33c5
1109 env:
1110 DEFAULT_BRANCH: main
1111 MULTI_STATUS: false
1112@@ -37,8 +37,8 @@ jobs:
1113 # - man/.* - all snippets in man pages (false positives due to
1114 # missing shebangs)
1115 # - .*\.(in|SKELETON) - all template/skeleton files
1116- # - tools/coverity\.sh - external file (with some modifications)
1117- FILTER_REGEX_EXCLUDE: .*/(man/.*|.*\.(in|SKELETON)|tools/coverity\.sh)$
1118+ # except kernel-install
1119+ FILTER_REGEX_EXCLUDE: .*/(man/.*|([^k]|k(k|ek)*([^ek]|e[^kr]))*(k(k|ek)*e?)?\.(in|SKELETON))$
1120 VALIDATE_ALL_CODEBASE: false
1121 VALIDATE_BASH: true
1122 VALIDATE_GITHUB_ACTIONS: true
1123diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml
1124index 50dd50b..2a1163a 100644
1125--- a/.github/workflows/mkosi.yml
1126+++ b/.github/workflows/mkosi.yml
1127@@ -20,11 +20,12 @@ permissions:
1128 env:
1129 # Enable debug logging in systemd, but keep udev's log level to info,
1130 # since it's _very_ verbose in the QEMU task
1131- KERNEL_CMDLINE: "systemd.unit=mkosi-check-and-shutdown.service !quiet systemd.log_level=debug systemd.log_target=console udev.log_level=info systemd.default_standard_output=journal+console"
1132+ # Disable the ISC DHCP servers, as they are failing in Ubuntu
1133+ KERNEL_CMDLINE: "systemd.unit=mkosi-check-and-shutdown.service !quiet systemd.log_level=debug systemd.log_target=console udev.log_level=info systemd.default_standard_output=journal+console systemd.mask=isc-dhcp-server6.service systemd.mask=isc-dhcp-server.service"
1134
1135 jobs:
1136 ci:
1137- runs-on: ubuntu-20.04
1138+ runs-on: ubuntu-22.04
1139 concurrency:
1140 group: ${{ github.workflow }}-${{ matrix.distro }}-${{ matrix.release }}-${{ github.ref }}
1141 cancel-in-progress: true
1142@@ -37,19 +38,21 @@ jobs:
1143 - distro: debian
1144 release: testing
1145 - distro: ubuntu
1146- release: focal
1147+ release: jammy
1148 - distro: fedora
1149- release: "36"
1150+ release: "37"
1151+ - distro: fedora
1152+ release: rawhide
1153 - distro: opensuse
1154 release: tumbleweed
1155 - distro: centos_epel
1156- release: 8-stream
1157- - distro: centos_epel
1158 release: 9-stream
1159+ - distro: centos_epel
1160+ release: 8-stream
1161
1162 steps:
1163 - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
1164- - uses: systemd/mkosi@93098e2406e12ea7f06f962d4808952b8a06d345
1165+ - uses: systemd/mkosi@792cbc60eb2dc4a58d66bb3c212bf92f8d50f6ea
1166
1167 - name: Install
1168 run: sudo apt-get update && sudo apt-get install --no-install-recommends python3-pexpect python3-jinja2
1169@@ -69,25 +72,19 @@ jobs:
1170 EOF
1171
1172 - name: Build ${{ matrix.distro }}
1173- run: ./.github/workflows/run_mkosi.sh build
1174+ run: sudo python3 -m mkosi build
1175
1176 - name: Show ${{ matrix.distro }} image summary
1177- run: ./.github/workflows/run_mkosi.sh summary
1178+ run: sudo python3 -m mkosi summary
1179
1180 - name: Boot ${{ matrix.distro }} systemd-nspawn
1181- run: ./.github/workflows/run_mkosi.sh boot ${{ env.KERNEL_CMDLINE }}
1182+ run: sudo python3 -m mkosi boot ${{ env.KERNEL_CMDLINE }}
1183
1184 - name: Check ${{ matrix.distro }} systemd-nspawn
1185- run: ./.github/workflows/run_mkosi.sh shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }"
1186-
1187- # TODO: Remove CentOS exclusion once Ubuntu 22.04 is available in GA.
1188- # See https://github.com/systemd/systemd/pull/22417 and https://github.com/systemd/mkosi/pull/907 for
1189- # more information.
1190+ run: sudo python3 -m mkosi shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }"
1191
1192 - name: Boot ${{ matrix.distro }} QEMU
1193- if: ${{ matrix.distro != 'centos_epel' }}
1194- run: ./.github/workflows/run_mkosi.sh qemu
1195+ run: sudo timeout -k 30 10m python3 -m mkosi qemu
1196
1197 - name: Check ${{ matrix.distro }} QEMU
1198- if: ${{ matrix.distro != 'centos_epel' }}
1199- run: ./.github/workflows/run_mkosi.sh shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }"
1200+ run: sudo python3 -m mkosi shell bash -c "[[ -e /testok ]] || { cat /failed-services; exit 1; }"
1201diff --git a/.github/workflows/requirements.txt b/.github/workflows/requirements.txt
1202index d7b1365..edb1748 100644
1203--- a/.github/workflows/requirements.txt
1204+++ b/.github/workflows/requirements.txt
1205@@ -1,18 +1,18 @@
1206-meson==0.62.0 \
1207- --hash=sha256:00e06dccac7d3b0568b5da82e70c2028c80c359aab6dc517bcbd1825511898c3 \
1208- --hash=sha256:06f8c1cfa51bfdb533c82623ffa524cacdbea02ace6d709145e33aabdad6adcb
1209-ninja==1.10.2.3 \
1210- --hash=sha256:0560eea57199e41e86ac2c1af0108b63ae77c3ca4d05a9425a750e908135935a \
1211- --hash=sha256:21a1d84d4c7df5881bfd86c25cce4cf7af44ba2b8b255c57bc1c434ec30a2dfc \
1212- --hash=sha256:279836285975e3519392c93c26e75755e8a8a7fafec9f4ecbb0293119ee0f9c6 \
1213- --hash=sha256:29570a18d697fc84d361e7e6330f0021f34603ae0fcb0ef67ae781e9814aae8d \
1214- --hash=sha256:5ea785bf6a15727040835256577239fa3cf5da0d60e618c307aa5efc31a1f0ce \
1215- --hash=sha256:688167841b088b6802e006f911d911ffa925e078c73e8ef2f88286107d3204f8 \
1216- --hash=sha256:6bd76a025f26b9ae507cf8b2b01bb25bb0031df54ed685d85fc559c411c86cf4 \
1217- --hash=sha256:740d61fefb4ca13573704ee8fe89b973d40b8dc2a51aaa4e9e68367233743bb6 \
1218- --hash=sha256:840a0b042d43a8552c4004966e18271ec726e5996578f28345d9ce78e225b67e \
1219- --hash=sha256:84be6f9ec49f635dc40d4b871319a49fa49b8d55f1d9eae7cd50d8e57ddf7a85 \
1220- --hash=sha256:9ca8dbece144366d5f575ffc657af03eb11c58251268405bc8519d11cf42f113 \
1221- --hash=sha256:cc8b31b5509a2129e4d12a35fc21238c157038022560aaf22e49ef0a77039086 \
1222- --hash=sha256:d5e0275d28997a750a4f445c00bdd357b35cc334c13cdff13edf30e544704fbd \
1223- --hash=sha256:e1b86ad50d4e681a7dbdff05fc23bb52cb773edb90bc428efba33fa027738408
1224+meson==0.63.2 \
1225+ --hash=sha256:16222f17ef76be0542c91c07994f9676ae879f46fc21c0c786a21ef2cb518bbf \
1226+ --hash=sha256:64a83ef257b2962b52c8b07ad9ec536c2de1b72fd9f14bcd9c21fe45730edd46
1227+ninja==1.10.2.4 \
1228+ --hash=sha256:24e3bc4713667a9a1d15484ad2bb77bbaedb1e6d45254cb03f7964b8b497231a \
1229+ --hash=sha256:251fb21cd6691accd0d95e28721ad8a50a6ec0ace97f9a8de3976f39301686f6 \
1230+ --hash=sha256:327c319176c5a4af21908b727b776e9f5caf275680403da632821ba071fd6296 \
1231+ --hash=sha256:3300f3f37d62dcc7bdd19284dff9eaed7d629f4ed2725019a6ce3291c655fb83 \
1232+ --hash=sha256:34c8e44f6e2e35ff9444994bfc7bf451c8d4bf15e31ad1e3ef7b06f78647b35b \
1233+ --hash=sha256:3fa6e69838613815c80abcaca34681c5b7cf15bf921543e518f5c918d7098bb7 \
1234+ --hash=sha256:5b973b1ce7075e9091db290adbbf93ba9066a94f97c369d0ff631251c633e81b \
1235+ --hash=sha256:685daebd1bc21480256351000a01dfb520636832fa65efc9f121474ff640e3df \
1236+ --hash=sha256:b0350784b37c5080223ec1bedc507153cc714b502c17dd5a64552e930b0dca25 \
1237+ --hash=sha256:b12cfed6382e510a597b3d08d7eec96664f7c8b8ee436eef645736c453d1c135 \
1238+ --hash=sha256:b264085e409533aecb57040c5e90fbfb64db91a61575c7e637411780446412fa \
1239+ --hash=sha256:b86a4e4ba2ed999d8b10f2b3f2ed56d7457ff647268f4098dd0b63dd145ede32 \
1240+ --hash=sha256:da7a6d9b2ed2018165fbf90068e2c64da08f2568c700fdb8abea07a245dc4664 \
1241+ --hash=sha256:ea245943a9849e5b1ebd74c1a4c1edd2c9801b62c0386165c7ac47623e353627
1242diff --git a/.github/workflows/run_mkosi.sh b/.github/workflows/run_mkosi.sh
1243deleted file mode 100755
1244index 153ebe3..0000000
1245--- a/.github/workflows/run_mkosi.sh
1246+++ /dev/null
1247@@ -1,39 +0,0 @@
1248-#!/usr/bin/env bash
1249-# SPDX-License-Identifier: LGPL-2.1-or-later
1250-# shellcheck disable=SC2064
1251-
1252-set -eu
1253-set -o pipefail
1254-
1255-EC=0
1256-TEMPFILE="$(mktemp)"
1257-TEMP_EXTRA_TREE="$(mktemp --directory)"
1258-trap "rm -rf '$TEMPFILE' '$TEMP_EXTRA_TREE'" EXIT
1259-
1260-# We need isc-dhcp-server to be installed for the networkd unit tests, but we don't want to
1261-# run it by default. mktemp creates the directory as 700, so change it, otherwise it will
1262-# affect the image's root folder permissions.
1263-chmod 755 "$TEMP_EXTRA_TREE"
1264-mkdir -p "$TEMP_EXTRA_TREE/etc/systemd/system/"
1265-ln -s /dev/null "$TEMP_EXTRA_TREE/etc/systemd/system/isc-dhcp-server.service"
1266-ln -s /dev/null "$TEMP_EXTRA_TREE/etc/systemd/system/isc-dhcp-server6.service"
1267-
1268-for ((i = 0; i < 5; i++)); do
1269- EC=0
1270- (sudo python3 -m mkosi --extra-tree="$TEMP_EXTRA_TREE" "$@") |& tee "$TEMPFILE" || EC=$?
1271- if [[ $EC -eq 0 ]]; then
1272- # The command passed — let's return immediately
1273- break
1274- fi
1275-
1276- if ! grep -E "Failed to dissect image .+: Connection timed out" "$TEMPFILE"; then
1277- # The command failed for other reason than the dissect-related timeout -
1278- # let's exit with the same EC
1279- exit $EC
1280- fi
1281-
1282- # The command failed due to the dissect-related timeout — let's try again
1283- sleep 1
1284-done
1285-
1286-exit $EC
1287diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml
1288new file mode 100644
1289index 0000000..911ac5a
1290--- /dev/null
1291+++ b/.github/workflows/scorecards.yml
1292@@ -0,0 +1,70 @@
1293+---
1294+# vi: ts=2 sw=2 et:
1295+# SPDX-License-Identifier: LGPL-2.1-or-later
1296+name: Scorecards supply-chain security
1297+on:
1298+ # Only the default branch is supported.
1299+ branch_protection_rule:
1300+ schedule:
1301+ - cron: '15 21 * * 6'
1302+ push:
1303+ branches:
1304+ - main
1305+ pull_request:
1306+ branches:
1307+ - main
1308+ paths:
1309+ - '.github/workflows/scorecards.yml'
1310+
1311+# Declare default permissions as read only.
1312+permissions: read-all
1313+
1314+jobs:
1315+ analysis:
1316+ name: Scorecards analysis
1317+ if: github.repository == 'systemd/systemd'
1318+ runs-on: ubuntu-latest
1319+ permissions:
1320+ # Needed to upload the results to code-scanning dashboard.
1321+ security-events: write
1322+ # Used to receive a badge.
1323+ id-token: write
1324+
1325+ steps:
1326+ - name: Checkout code
1327+ uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # tag=v3.0.0
1328+ with:
1329+ persist-credentials: false
1330+
1331+ - name: Run analysis
1332+ uses: ossf/scorecard-action@e363bfca00e752f91de7b7d2a77340e2e523cb18 # tag=v2.0.4
1333+ with:
1334+ results_file: results.sarif
1335+ results_format: sarif
1336+ # (Optional) Read-only PAT token. Uncomment the `repo_token` line below if:
1337+ # - you want to enable the Branch-Protection check on a *public* repository, or
1338+ # - you are installing Scorecards on a *private* repository
1339+ # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
1340+ # repo_token: ${{ secrets.SCORECARD_READ_TOKEN }}
1341+
1342+ # Publish the results for public repositories to enable scorecard badges. For more details, see
1343+ # https://github.com/ossf/scorecard-action#publishing-results.
1344+ # For private repositories, `publish_results` will automatically be set to `false`, regardless
1345+ # of the value entered here.
1346+ publish_results: ${{ github.event_name != 'pull_request' }}
1347+
1348+ # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
1349+ # format to the repository Actions tab.
1350+ - name: Upload artifact
1351+ uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # tag=v3.0.0
1352+ with:
1353+ name: SARIF file
1354+ path: results.sarif
1355+ retention-days: 5
1356+
1357+ # Upload the results to GitHub's code scanning dashboard.
1358+ - name: Upload to code-scanning
1359+ if: github.event_name != 'pull_request'
1360+ uses: github/codeql-action/upload-sarif@5f532563584d71fdef14ee64d17bafb34f751ce5 # tag=v1.0.26
1361+ with:
1362+ sarif_file: results.sarif
1363diff --git a/.github/workflows/unit_tests.sh b/.github/workflows/unit_tests.sh
1364index 442202f..9a9fbb3 100755
1365--- a/.github/workflows/unit_tests.sh
1366+++ b/.github/workflows/unit_tests.sh
1367@@ -53,12 +53,21 @@ for phase in "${PHASES[@]}"; do
1368 apt-get -y install "${ADDITIONAL_DEPS[@]}"
1369 pip3 install -r .github/workflows/requirements.txt --require-hashes
1370 ;;
1371- RUN|RUN_GCC|RUN_CLANG)
1372- if [[ "$phase" = "RUN_CLANG" ]]; then
1373+ RUN|RUN_GCC|RUN_CLANG|RUN_CLANG_RELEASE)
1374+ if [[ "$phase" =~ ^RUN_CLANG ]]; then
1375 export CC=clang
1376 export CXX=clang++
1377- # The docs build is slow and is not affected by compiler/flags, so do it just once
1378- MESON_ARGS+=(-Dman=true)
1379+ if [[ "$phase" == RUN_CLANG ]]; then
1380+ # The docs build is slow and is not affected by compiler/flags, so do it just once
1381+ MESON_ARGS+=(-Dman=true)
1382+ else
1383+ MESON_ARGS+=(-Dmode=release --optimization=2)
1384+ fi
1385+
1386+ # Some variation: remove machine-id, like on Debian builders to ensure unit tests still work.
1387+ if [ -w /etc/machine-id ]; then
1388+ mv /etc/machine-id /etc/machine-id.bak
1389+ fi
1390 fi
1391 # The install_tag feature introduced in 0.60 causes meson to fail with fatal-meson-warnings
1392 # "Project targeting '>= 0.53.2' but tried to use feature introduced in '0.60.0': install_tag arg in custom_target"
1393@@ -109,6 +118,9 @@ for phase in "${PHASES[@]}"; do
1394 ;;
1395 CLEANUP)
1396 info "Cleanup phase"
1397+ if [ ! -f /etc/machine-id ] && [ -w /etc/machine-id.bak ]; then
1398+ mv /etc/machine-id.bak /etc/machine-id
1399+ fi
1400 ;;
1401 *)
1402 echo >&2 "Unknown phase '$phase'"
1403diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml
1404index 7226a77..cd6c33e 100644
1405--- a/.github/workflows/unit_tests.yml
1406+++ b/.github/workflows/unit_tests.yml
1407@@ -14,14 +14,14 @@ permissions:
1408
1409 jobs:
1410 build:
1411- runs-on: ubuntu-20.04
1412+ runs-on: ubuntu-22.04
1413 concurrency:
1414 group: ${{ github.workflow }}-${{ matrix.run_phase }}-${{ matrix.cryptolib }}-${{ github.ref }}
1415 cancel-in-progress: true
1416 strategy:
1417 fail-fast: false
1418 matrix:
1419- run_phase: [GCC, GCC_ASAN_UBSAN, CLANG, CLANG_ASAN_UBSAN, CLANG_ASAN_UBSAN_NO_DEPS]
1420+ run_phase: [GCC, GCC_ASAN_UBSAN, CLANG, CLANG_RELEASE, CLANG_ASAN_UBSAN, CLANG_ASAN_UBSAN_NO_DEPS]
1421 cryptolib: [auto]
1422 include:
1423 - run_phase: GCC
1424@@ -32,8 +32,14 @@ jobs:
1425 - name: Repository checkout
1426 uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
1427 - name: Install build dependencies
1428- run: sudo -E .github/workflows/unit_tests.sh SETUP
1429+ run: |
1430+ # Drop XDG_* stuff from /etc/environment, so we don't get the user
1431+ # XDG_* variables when running under sudo
1432+ sudo sed -i '/^XDG_/d' /etc/environment
1433+ # Pass only specific env variables through sudo, to avoid having
1434+ # the already existing XDG_* stuff on the "other side"
1435+ sudo --preserve-env=CRYPTOLIB,GITHUB_ACTIONS,CI .github/workflows/unit_tests.sh SETUP
1436 - name: Build & test (${{ matrix.run_phase }}-${{ matrix.cryptolib }})
1437- run: sudo -E .github/workflows/unit_tests.sh RUN_${{ matrix.run_phase }}
1438+ run: sudo --preserve-env=CRYPTOLIB,GITHUB_ACTIONS,CI .github/workflows/unit_tests.sh RUN_${{ matrix.run_phase }}
1439 env:
1440 CRYPTOLIB: ${{ matrix.cryptolib }}
1441diff --git a/.gitignore b/.gitignore
1442index 7b6d0a3..8aa363e 100644
1443--- a/.gitignore
1444+++ b/.gitignore
1445@@ -37,3 +37,4 @@ __pycache__/
1446 /mkosi.default.d/**/*local*.conf
1447 /tags
1448 .dir-locals-2.el
1449+.vscode/
1450diff --git a/.lgtm.yml b/.lgtm.yml
1451deleted file mode 100644
1452index 86fd0e7..0000000
1453--- a/.lgtm.yml
1454+++ /dev/null
1455@@ -1,40 +0,0 @@
1456----
1457-# vi: ts=2 sw=2 et:
1458-# SPDX-License-Identifier: LGPL-2.1-or-later
1459-
1460-# Explicitly enable certain checks which are hidden by default
1461-queries:
1462- - include: cpp/bad-strncpy-size
1463- - include: cpp/declaration-hides-variable
1464- - include: cpp/inconsistent-null-check
1465- - include: cpp/mistyped-function-arguments
1466- - include: cpp/nested-loops-with-same-variable
1467- - include: cpp/sizeof-side-effect
1468- - include: cpp/suspicious-pointer-scaling
1469- - include: cpp/suspicious-pointer-scaling-void
1470- - include: cpp/suspicious-sizeof
1471- - include: cpp/unsafe-strcat
1472- - include: cpp/unsafe-strncat
1473- - include: cpp/unsigned-difference-expression-compared-zero
1474- - include: cpp/unused-local-variable
1475- - include:
1476- tags:
1477- - "security"
1478- - "correctness"
1479- severity: "error"
1480-
1481-extraction:
1482- cpp:
1483- prepare:
1484- packages:
1485- - libpwquality-dev
1486- - libfdisk-dev
1487- - libp11-kit-dev
1488- - libssl-dev
1489- - python3-jinja2
1490- after_prepare:
1491- - pip3 install -r .github/workflows/requirements.txt --require-hashes
1492- - export PATH="/opt/work/.local/bin:$PATH"
1493- python:
1494- python_setup:
1495- version: 3
1496diff --git a/.semaphore/semaphore-runner.sh b/.semaphore/semaphore-runner.sh
1497index ba21811..b0d32bd 100755
1498--- a/.semaphore/semaphore-runner.sh
1499+++ b/.semaphore/semaphore-runner.sh
1500@@ -19,14 +19,7 @@ PHASES=(${@:-SETUP RUN})
1501 UBUNTU_RELEASE="$(lsb_release -cs)"
1502
1503 create_container() {
1504- # Create autopkgtest LXC image; this sometimes fails with "Unable to fetch
1505- # GPG key from keyserver", so retry a few times with different keyservers.
1506- for keyserver in "keys.openpgp.org" "" "keyserver.ubuntu.com" "keys.gnupg.net"; do
1507- for retry in {1..5}; do
1508- sudo lxc-create -n "$CONTAINER" -t download -- -d "$DISTRO" -r "$RELEASE" -a "$ARCH" ${keyserver:+--keyserver "$keyserver"} && break 2
1509- sleep $((retry*retry))
1510- done
1511- done
1512+ sudo lxc-create -n "$CONTAINER" -t download -- -d "$DISTRO" -r "$RELEASE" -a "$ARCH"
1513
1514 # unconfine the container, otherwise some tests fail
1515 echo 'lxc.apparmor.profile = unconfined' | sudo tee -a "/var/lib/lxc/$CONTAINER/config"
1516@@ -62,7 +55,7 @@ for phase in "${PHASES[@]}"; do
1517 case "$phase" in
1518 SETUP)
1519 # remove semaphore repos, some of them don't work and cause error messages
1520- sudo rm -f /etc/apt/sources.list.d/*
1521+ sudo rm -rf /etc/apt/sources.list.d/*
1522
1523 # enable backports for latest LXC
1524 echo "deb http://archive.ubuntu.com/ubuntu $UBUNTU_RELEASE-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/backports.list
1525@@ -107,10 +100,10 @@ EOF
1526 # now build the package and run the tests
1527 rm -rf "$ARTIFACTS_DIR"
1528 # autopkgtest exits with 2 for "some tests skipped", accept that
1529- "$AUTOPKGTEST_DIR/runner/autopkgtest" --env DEB_BUILD_OPTIONS=noudeb \
1530- --env TEST_UPSTREAM=1 ../systemd_*.dsc \
1531- -o "$ARTIFACTS_DIR" \
1532- -- lxc -s "$CONTAINER" \
1533+ sudo "$AUTOPKGTEST_DIR/runner/autopkgtest" --env DEB_BUILD_OPTIONS=noudeb \
1534+ --env TEST_UPSTREAM=1 ../systemd_*.dsc \
1535+ -o "$ARTIFACTS_DIR" \
1536+ -- lxc -s "$CONTAINER" \
1537 || [ $? -eq 2 ]
1538 ;;
1539 *)
1540diff --git a/LICENSES/MIT-0.txt b/LICENSES/MIT-0.txt
1541new file mode 100644
1542index 0000000..396fc00
1543--- /dev/null
1544+++ b/LICENSES/MIT-0.txt
1545@@ -0,0 +1,7 @@
1546+MIT No Attribution
1547+
1548+Copyright <YEAR> <COPYRIGHT HOLDER>
1549+
1550+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.
1551+
1552+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1553diff --git a/LICENSES/README.md b/LICENSES/README.md
1554index 69ef2d6..d235b31 100644
1555--- a/LICENSES/README.md
1556+++ b/LICENSES/README.md
1557@@ -45,9 +45,10 @@ The following exceptions apply:
1558 * the following sources are licensed under the **CC0-1.0** license:
1559 - src/basic/siphash24.c
1560 - src/basic/siphash24.h
1561- - src/systemctl/systemd-sysv-install.SKELETON
1562 - tools/check-includes.pl
1563+ * the following sources are licensed under the **MIT-0** license:
1564 - all examples under man/
1565+ - src/systemctl/systemd-sysv-install.SKELETON
1566 - config files and examples under /network
1567 * the following sources are under **Public Domain** (LicenseRef-murmurhash2-public-domain):
1568 - src/basic/MurmurHash2.c
1569diff --git a/NEWS b/NEWS
1570index 5fc0033..86a9938 100644
1571--- a/NEWS
1572+++ b/NEWS
1573@@ -1,5 +1,611 @@
1574 systemd System and Service Manager
1575
1576+CHANGES WITH 252 🎃:
1577+
1578+ Announcements of Future Feature Removals:
1579+
1580+ * We intend to remove cgroup v1 support from systemd release after the
1581+ end of 2023. If you run services that make explicit use of cgroup v1
1582+ features (i.e. the "legacy hierarchy" with separate hierarchies for
1583+ each controller), please implement compatibility with cgroup v2 (i.e.
1584+ the "unified hierarchy") sooner rather than later. Most of Linux
1585+ userspace has been ported over already.
1586+
1587+ * We intend to remove support for split-usr (/usr mounted separately
1588+ during boot) and unmerged-usr (parallel directories /bin and
1589+ /usr/bin, /lib and /usr/lib, etc). This will happen in the second
1590+ half of 2023, in the first release that falls into that time window.
1591+ For more details, see:
1592+ https://lists.freedesktop.org/archives/systemd-devel/2022-September/048352.html
1593+
1594+ Compatibility Breaks:
1595+
1596+ * ConditionKernelVersion= checks that use the '=' or '!=' operators
1597+ will now do simple string comparisons (instead of version comparisons
1598+ á la stverscmp()). Version comparisons are still done for the
1599+ ordering operators '<', '>', '<=', '>='. Moreover, if no operator is
1600+ specified, a shell-style glob match is now done. This creates a minor
1601+ incompatibility compared to older systemd versions when the '*', '?',
1602+ '[', ']' characters are used, as these will now match as shell globs
1603+ instead of literally. Given that kernel version strings typically do
1604+ not include these characters we expect little breakage through this
1605+ change.
1606+
1607+ * The service manager will now read the SELinux label used for SELinux
1608+ access checks from the unit file at the time it loads the file.
1609+ Previously, the label would be read at the moment of the access
1610+ check, which was problematic since at that time the unit file might
1611+ already have been updated or removed.
1612+
1613+ New Features:
1614+
1615+ * systemd-measure is a new tool for calculating and signing expected
1616+ TPM2 PCR values for a given unified kernel image (UKI) booted via
1617+ sd-stub. The public key used for the signature and the signed
1618+ expected PCR information can be embedded inside the UKI. This
1619+ information can be extracted from the UKI by external tools and code
1620+ in the image itself and is made available to userspace in the booted
1621+ kernel.
1622+
1623+ systemd-cryptsetup, systemd-cryptenroll, and systemd-creds have been
1624+ updated to make use of this information if available in the booted
1625+ kernel: when locking an encrypted volume/credential to the TPM
1626+ systemd-cryptenroll/systemd-creds will use the public key to bind the
1627+ volume/credential to any kernel that carries PCR information signed
1628+ by the same key pair. When unlocking such volumes/credentials
1629+ systemd-cryptsetup/systemd-creds will use the signature embedded in
1630+ the booted UKI to gain access.
1631+
1632+ Binding TPM-based disk encryption to public keys/signatures of PCR
1633+ values — instead of literal PCR values — addresses the inherent
1634+ "brittleness" of traditional PCR-bound TPM disk encryption schemes:
1635+ disks remain accessible even if the UKI is updated, without any TPM
1636+ specific preparation during the OS update — as long as each UKI
1637+ carries the necessary PCR signature information.
1638+
1639+ Net effect: if you boot a properly prepared kernel, TPM-bound disk
1640+ encryption now defaults to be locked to kernels which carry PCR
1641+ signatures from the same key pair. Example: if a hypothetical distro
1642+ FooOS prepares its UKIs like this, TPM-based disk encryption is now –
1643+ by default – bound to only FooOS kernels, and encrypted volumes bound
1644+ to the TPM cannot be unlocked on kernels from other sources. (But do
1645+ note this behaviour requires preparation/enabling in the UKI, and of
1646+ course users can always enroll non-TPM ways to unlock the volume.)
1647+
1648+ * systemd-pcrphase is a new tool that is invoked at six places during
1649+ system runtime, and measures additional words into TPM2 PCR 11, to
1650+ mark milestones of the boot process. This allows binding access to
1651+ specific TPM2-encrypted secrets to specific phases of the boot
1652+ process. (Example: LUKS2 disk encryption key only accessible in the
1653+ initrd, but not later.)
1654+
1655+ Changes in systemd itself, i.e. the manager and units
1656+
1657+ * The cpu controller is delegated to user manager units by default, and
1658+ CPUWeight= settings are applied to the top-level user slice units
1659+ (app.slice, background.slice, session.slice). This provides a degree
1660+ of resource isolation between different user services competing for
1661+ the CPU.
1662+
1663+ * Systemd can optionally do a full preset in the "first boot" condition
1664+ (instead of just enable-only). This behaviour is controlled by the
1665+ compile-time option -Dfirst-boot-full-preset. Right now it defaults
1666+ to 'false', but the plan is to switch it to 'true' for the subsequent
1667+ release.
1668+
1669+ * Drop-ins are now allowed for transient units too.
1670+
1671+ * Systemd will set the taint flag 'support-ended' if it detects that
1672+ the OS image is past its end-of-support date. This date is declared
1673+ in a new /etc/os-release field SUPPORT_END= described below.
1674+
1675+ * Two new settings ConditionCredential= and AssertCredential= can be
1676+ used to skip or fail units if a certain system credential is not
1677+ provided.
1678+
1679+ * ConditionMemory= accepts size suffixes (K, M, G, T, …).
1680+
1681+ * DefaultSmackProcessLabel= can be used in system.conf and user.conf to
1682+ specify the SMACK security label to use when not specified in a unit
1683+ file.
1684+
1685+ * DefaultDeviceTimeoutSec= can be used in system.conf and user.conf to
1686+ specify the default timeout when waiting for device units to
1687+ activate.
1688+
1689+ * C.UTF-8 is used as the default locale if nothing else has been
1690+ configured.
1691+
1692+ * [Condition|Assert]Firmware= have been extended to support certain
1693+ SMBIOS fields. For example
1694+
1695+ ConditionFirmware=smbios-field(board_name = "Custom Board")
1696+
1697+ conditionalizes the unit to run only when
1698+ /sys/class/dmi/id/board_name contains "Custom Board" (without the
1699+ quotes).
1700+
1701+ * ConditionFirstBoot= now correctly evaluates as true only during the
1702+ boot phase of the first boot. A unit executed later, after booting
1703+ has completed, will no longer evaluate this condition as true.
1704+
1705+ * Socket units will now create sockets in the SELinuxContext= of the
1706+ associated service unit, if any.
1707+
1708+ * Boot phase transitions (start initrd → exit initrd → boot complete →
1709+ shutdown) will be measured into TPM2 PCR 11, so that secrets can be
1710+ bound to a specific runtime phase. E.g.: a LUKS encryption key can be
1711+ unsealed only in the initrd.
1712+
1713+ * Service credentials (i.e. SetCredential=/LoadCredential=/…) will now
1714+ also be provided to ExecStartPre= processes.
1715+
1716+ * Various units are now correctly ordered against
1717+ initrd-switch-root.target where previously a conflict without
1718+ ordering was configured. A stop job for those units would be queued,
1719+ but without the ordering it could be executed only after
1720+ initrd-switch-root.service, leading to units not being restarted in
1721+ the host system as expected.
1722+
1723+ * In order to fully support the IPMI watchdog driver, which has not yet
1724+ been ported to the new common watchdog device interface,
1725+ /dev/watchdog0 will be tried first and systemd will silently fallback
1726+ to /dev/watchdog if it is not found.
1727+
1728+ * New watchdog-related D-Bus properties are now published by systemd:
1729+ WatchdogDevice, WatchdogLastPingTimestamp,
1730+ WatchdogLastPingTimestampMonotonic.
1731+
1732+ * At shutdown, API virtual files systems (proc, sys, etc.) will be
1733+ unmounted lazily.
1734+
1735+ * At shutdown, systemd will now log about processes blocking unmounting
1736+ of file systems.
1737+
1738+ * A new meson build option 'clock-valid-range-usec-max' was added to
1739+ allow disabling system time correction if RTC returns a timestamp far
1740+ in the future.
1741+
1742+ * Propagated restart jobs will no longer be discarded while a unit is
1743+ activating.
1744+
1745+ * PID 1 will now import system credentials from SMBIOS Type 11 fields
1746+ ("OEM vendor strings"), in addition to qemu_fwcfg. This provides a
1747+ simple, fast and generic path for supplying credentials to a VM,
1748+ without involving external tools such as cloud-init/ignition.
1749+
1750+ * The CPUWeight= setting of unit files now accepts a new special value
1751+ "idle", which configures "idle" level scheduling for the unit.
1752+
1753+ * Service processes that are activated due to a .timer or .path unit
1754+ triggering will now receive information about this via environment
1755+ variables. Note that this is information is lossy, as activation
1756+ might be coalesced and only one of the activating triggers will be
1757+ reported. This is hence more suited for debugging or tracing rather
1758+ than for behaviour decisions.
1759+
1760+ * The riscv_flush_icache(2) system call has been added to the list of
1761+ system calls allowed by default when SystemCallFilter= is used.
1762+
1763+ * The selinux context derived from the target executable, instead of
1764+ 'init_t' used for the manager itself, is now used when creating
1765+ listening sockets for units that specify SELinuxContextFromNet=yes.
1766+
1767+ Changes in sd-boot, bootctl, and the Boot Loader Specification:
1768+
1769+ * The Boot Loader Specification has been cleaned up and clarified.
1770+ Various corner cases in version string comparisons have been fixed
1771+ (e.g. comparisons for empty strings). Boot counting is now part of
1772+ the main specification.
1773+
1774+ * New PCRs measurements are performed during boot: PCR 11 for the the
1775+ kernel+initrd combo, PCR 13 for any sysext images. If a measurement
1776+ took place this is now reported to userspace via the new
1777+ StubPcrKernelImage and StubPcrInitRDSysExts EFI variables.
1778+
1779+ * As before, systemd-stub will measure kernel parameters and system
1780+ credentials into PCR 12. It will now report this fact via the
1781+ StubPcrKernelParameters EFI variable to userspace.
1782+
1783+ * The UEFI monotonic boot counter is now included in the updated random
1784+ seed file maintained by sd-boot, providing some additional entropy.
1785+
1786+ * sd-stub will use LoadImage/StartImage to execute the kernel, instead
1787+ of arranging the image manually and jumping to the kernel entry
1788+ point. sd-stub also installs a temporary UEFI SecurityOverride to
1789+ allow the (unsigned) nested image to be booted. This is safe because
1790+ the outer (signed) stub+kernel binary must have been verified before
1791+ the stub was executed.
1792+
1793+ * Booting in EFI mixed mode (a 64-bit kernel over 32-bit UEFI firmware)
1794+ is now supported by sd-boot.
1795+
1796+ * bootctl gained a bunch of new options: --all-architectures to install
1797+ binaries for all supported EFI architectures, --root= and --image=
1798+ options to operate on a directory or disk image, and
1799+ --install-source= to specify the source for binaries to install,
1800+ --efi-boot-option-description= to control the name of the boot entry.
1801+
1802+ * The sd-boot stub exports a StubFeatures flag, which is used by
1803+ bootctl to show features supported by the stub that was used to boot.
1804+
1805+ * The PE section offsets that are used by tools that assemble unified
1806+ kernel images have historically been hard-coded. This may lead to
1807+ overlapping PE sections which may break on boot. The UKI will now try
1808+ to detect and warn about this.
1809+
1810+ Any tools that assemble UKIs must update to calculate these offsets
1811+ dynamically. Future sd-stub versions may use offsets that will not
1812+ work with the currently used set of hard-coded offsets!
1813+
1814+ * sd-stub now accepts (and passes to the initrd and then to the full
1815+ OS) new PE sections '.pcrsig' and '.pcrkey' that can be used to embed
1816+ signatures of expected PCR values, to allow sealing secrets via the
1817+ TPM2 against pre-calculated PCR measurements.
1818+
1819+ Changes in the hardware database:
1820+
1821+ * 'systemd-hwdb query' now supports the --root= option.
1822+
1823+ Changes in systemctl:
1824+
1825+ * systemctl now supports --state= and --type= options for the 'show'
1826+ and 'status' verbs.
1827+
1828+ * systemctl gained a new verb 'list-automounts' to list automount
1829+ points.
1830+
1831+ * systemctl gained support for a new --image= switch to be able to
1832+ operate on the specified disk image (similar to the existing --root=
1833+ which operates relative to some directory).
1834+
1835+ Changes in systemd-networkd:
1836+
1837+ * networkd can set Linux NetLabel labels for integration with the
1838+ network control in security modules via a new NetLabel= option.
1839+
1840+ * The RapidCommit= is (re-)introduced to enable faster configuration
1841+ via DHCPv6 (RFC 3315).
1842+
1843+ * networkd gained a new option TCPCongestionControlAlgorithm= that
1844+ allows setting a per-route TCP algorithm.
1845+
1846+ * networkd gained a new option KeepFileDescriptor= to allow keeping a
1847+ reference (file descriptor) open on TUN/TAP interfaces, which is
1848+ useful to avoid link flaps while the underlying service providing the
1849+ interface is being serviced.
1850+
1851+ * RouteTable= now also accepts route table names.
1852+
1853+ Changes in systemd-nspawn:
1854+
1855+ * The --bind= and --overlay= options now support relative paths.
1856+
1857+ * The --bind= option now supports a 'rootidmap' value, which will
1858+ use id-mapped mounts to map the root user inside the container to the
1859+ owner of the mounted directory on the host.
1860+
1861+ Changes in systemd-resolved:
1862+
1863+ * systemd-resolved now persists DNSOverTLS in its state file too. This
1864+ fixes a problem when used in combination with NetworkManager, which
1865+ sends the setting only once, causing it to be lost if resolved was
1866+ restarted at any point.
1867+
1868+ * systemd-resolved now exposes a varlink socket at
1869+ /run/systemd/resolve/io.systemd.Resolve.Monitor, accessible only for
1870+ root. Processed DNS requests in a JSON format will be published to
1871+ any clients connected to this socket.
1872+
1873+ resolvectl gained a 'monitor' verb to make use of this.
1874+
1875+ * systemd-resolved now treats unsupported DNSSEC algorithms as INSECURE
1876+ instead of returning SERVFAIL, as per RFC:
1877+ https://datatracker.ietf.org/doc/html/rfc6840#section-5.2
1878+
1879+ * OpenSSL is the default crypto backend for systemd-resolved. (gnutls
1880+ is still supported.)
1881+
1882+ Changes in libsystemd and other libraries:
1883+
1884+ * libsystemd now exports sd_bus_error_setfv() (a convenience function
1885+ for setting bus errors), sd_id128_string_equal (a convenience
1886+ function for 128bit ID string comparisons), and
1887+ sd_bus_message_read_strv_extend() (a function to incrementally read
1888+ string arrays).
1889+
1890+ * libsystemd now exports sd_device_get_child_first()/_next() as a
1891+ high-level interface for enumerating child devices. It also supports
1892+ sd_device_new_child() for opening a child device given a device
1893+ object.
1894+
1895+ * libsystemd now exports sd_device_monitor_set()/get_description()
1896+ which allow setting a custom description that will be used in log
1897+ messages by sd_device_monitor*.
1898+
1899+ * Private shared libraries (libsystemd-shared-nnn.so,
1900+ libsystemd-core-nnn.so) are now installed into arch-specific
1901+ directories to allow multi-arch installs.
1902+
1903+ * A new sd-gpt.h header is now published, listing GUIDs from the
1904+ Discoverable Partitions specification. For more details see:
1905+ https://systemd.io/DISCOVERABLE_PARTITIONS/
1906+
1907+ * A new function sd_hwdb_new_from_path() has been added to open a hwdb
1908+ database given an explicit path to the file.
1909+
1910+ * The signal number argument to sd_event_add_signal() now can now be
1911+ ORed with the SD_EVENT_SIGNAL_PROCMASK flag, causing sigprocmask() to
1912+ be automatically invoked to block the specified signal. This is
1913+ useful to simplify invocations as the caller doesn't have to do this
1914+ manually.
1915+
1916+ * A new convenience call sd_event_set_signal_exit() has been added to
1917+ sd-event to set up signal handling so that the event loop
1918+ automatically terminates cleanly on SIGTERM/SIGINT.
1919+
1920+ Changes in other components:
1921+
1922+ * systemd-sysusers, systemd-tmpfiles, and systemd-sysctl configuration
1923+ can now be provided via the credential mechanism.
1924+
1925+ * systemd-analyze gained a new verb 'compare-versions' that implements
1926+ comparisons for versions strings (similarly to 'rpmdev-vercmp' and
1927+ 'dpkg --compare-versions').
1928+
1929+ * 'systemd-analyze dump' is extended to accept glob patterns for unit
1930+ names to limit the output to matching units.
1931+
1932+ * tmpfiles.d/ lines can read file contents to write from a credential.
1933+ The new modifier char '^' is used to specify that the argument is a
1934+ credential name. This mechanism is used to automatically populate
1935+ /etc/motd, /etc/issue, and /etc/hosts from credentials.
1936+
1937+ * tmpfiles.d/ may now be configured to avoid changing uid/gid/mode of
1938+ an inode if the specification is prefixed with ':' and the inode
1939+ already exists.
1940+
1941+ * Default tmpfiles.d/ configuration now carries a line to automatically
1942+ use an 'ssh.authorized_keys.root' credential if provided to set up
1943+ the SSH authorized_keys file for the root user.
1944+
1945+ * systemd-tmpfiles will now gracefully handle absent source of "C" copy
1946+ lines.
1947+
1948+ * tmpfiles.d/ F/w lines now optionally permit encoding of the payload
1949+ in base64. This is useful to write arbitrary binary data into files.
1950+
1951+ * The pkgconfig and rpm macros files now export the directory for user
1952+ units as 'user_tmpfiles_dir' and '%_user_tmpfilesdir'.
1953+
1954+ * Detection of Apple Virtualization and detection of Parallels and
1955+ KubeVirt virtualization on non-x86 archs have been added.
1956+
1957+ * os-release gained a new field SUPPORT_END=YYYY-MM-DD to inform the
1958+ user when their system will become unsupported.
1959+
1960+ * When performing suspend-then-hibernate, the system will estimate the
1961+ discharge rate and use that to set the delay until hibernation and
1962+ hibernate immediately instead of suspending when running from a
1963+ battery and the capacity is below 5%.
1964+
1965+ * systemd-sysctl gained a --strict option to fail when a sysctl
1966+ setting is unknown to the kernel.
1967+
1968+ * machinectl supports --force for the 'copy-to' and 'copy-from'
1969+ verbs.
1970+
1971+ * coredumpctl gained the --root and --image options to look for journal
1972+ files under the specified root directory, image, or block device.
1973+
1974+ * 'journalctl -o' and similar commands now implement a new output mode
1975+ "short-delta". It is similar to "short-monotonic", but also shows the
1976+ time delta between subsequent messages.
1977+
1978+ * journalctl now respects the --quiet flag when verifying consistency
1979+ of journal files.
1980+
1981+ * Journal log messages gained a new implicit field _RUNTIME_SCOPE= that
1982+ will indicate whether a message was logged in the 'initrd' phase or
1983+ in the 'system' phase of the boot process.
1984+
1985+ * Journal files gained a new compatibility flag
1986+ 'HEADER_INCOMPATIBLE_COMPACT'. Files with this flag implement changes
1987+ to the storage format that allow reducing size on disk. As with other
1988+ compatibility flags, older journalctl versions will not be able to
1989+ read journal files using this new format. The environment variable
1990+ 'SYSTEMD_JOURNAL_COMPACT=0' can be passed to systemd-journald to
1991+ disable this functionality. It is enabled by default.
1992+
1993+ * systemd-run's --working-directory= switch now works when used in
1994+ combination with --scope.
1995+
1996+ * portablectl gained a --force flag to skip certain sanity checks. This
1997+ is implemented using new flags accepted by systemd-portabled for the
1998+ *WithExtensions() D-Bus methods: SD_SYSTEMD_PORTABLE_FORCE_ATTACH
1999+ flag now means that the attach/detach checks whether the units are
2000+ already present and running will be skipped. Similarly,
2001+ SD_SYSTEMD_PORTABLE_FORCE_SYSEXT flag means that the check whether
2002+ image name matches the name declared inside of the image will be
2003+ skipped. Callers must be sure to do those checks themselves if
2004+ appropriate.
2005+
2006+ * systemd-portabled will now use the original filename to check
2007+ extension-release.NAME for correctness, in case it is passed a
2008+ symlink.
2009+
2010+ * systemd-portabled now uses PrivateTmp=yes in the 'trusted' profile
2011+ too.
2012+
2013+ * sysext's extension-release files now support '_any' as a special
2014+ value for the ID= field, to allow distribution-independent extensions
2015+ (e.g.: fully statically compiled binaries, scripts). It also gained
2016+ support for a new ARCHITECTURE= field that may be used to explicitly
2017+ restrict an image to hosts of a specific architecture.
2018+
2019+ * systemd-repart now supports creating squashfs partitions. This
2020+ requires mksquashfs from squashfs-tools.
2021+
2022+ * systemd-repart gained a --split flag to also generate split
2023+ artifacts, i.e. a separate file for each partition. This is useful in
2024+ conjunction with systemd-sysupdate or other tools, or to generate
2025+ split dm-verity artifacts.
2026+
2027+ * systemd-repart is now able to generate dm-verity partitions, including
2028+ signatures.
2029+
2030+ * systemd-repart can now set a partition UUID to zero, allowing it to
2031+ be filled in later, such as when using verity partitions.
2032+
2033+ * systemd-repart now supports drop-ins for its configuration files.
2034+
2035+ * Package metadata logged by systemd-coredump in the system journal is
2036+ now more compact.
2037+
2038+ * xdg-autostart-service now expands 'tilde' characters in Exec lines.
2039+
2040+ * systemd-oomd now automatically links against libatomic, if available.
2041+
2042+ * systemd-oomd now sends out a 'Killed' D-Bus signal when a cgroup is
2043+ killed.
2044+
2045+ * scope units now also provide oom-kill status.
2046+
2047+ * systemd-pstore will now try to load only the efi_pstore kernel module
2048+ before running, ensuring that pstore can be used.
2049+
2050+ * systemd-logind gained a new StopIdleSessionSec= option to stop an idle
2051+ session after a preconfigure timeout.
2052+
2053+ * systemd-homed will now wait up to 30 seconds for workers to terminate,
2054+ rather than indefinitely.
2055+
2056+ * homectl gained a new '--luks-sector-size=' flag that allows users to
2057+ select the preferred LUKS sector size. Must be a power of 2 between 512
2058+ and 4096. systemd-userdbd records gained a corresponding field.
2059+
2060+ * systemd-sysusers will now respect the 'SOURCE_DATE_EPOCH' environment
2061+ variable when generating the 'sp_lstchg' field, to ensure an image
2062+ build can be reproducible.
2063+
2064+ * 'udevadm wait' will now listen to kernel uevents too when called with
2065+ --initialized=no.
2066+
2067+ * When naming network devices udev will now consult the Devicetree
2068+ "alias" fields for the device.
2069+
2070+ * systemd-udev will now create infiniband/by-path and
2071+ infiniband/by-ibdev links for Infiniband verbs devices.
2072+
2073+ * systemd-udev-trigger.service will now also prioritize input devices.
2074+
2075+ * ConditionACPower= and systemd-ac-power will now assume the system is
2076+ running on AC power if no battery can be found.
2077+
2078+ * All features and tools using the TPM2 will now communicate with it
2079+ using a bind key. Beforehand, the tpm2 support used encrypted sessions
2080+ by creating a primary key that was used to encrypt traffic. This
2081+ creates a problem as the key created for encrypting the traffic could
2082+ be faked by an active interposer on the bus. In cases when a pin is
2083+ used, a bind key will be used. The pin is used as the auth value for
2084+ the seal key, aka the disk encryption key, and that auth value will be
2085+ used in the session establishment. An attacker would need the pin
2086+ value to create the secure session and thus an active interposer
2087+ without the pin cannot interpose on TPM2 traffic.
2088+
2089+ * systemd-growfs no longer requires udev to run.
2090+
2091+ * systemd-backlight now will better support systems with multiple
2092+ graphic cards.
2093+
2094+ * systemd-cryptsetup's keyfile-timeout= option now also works when a
2095+ device is used as a keyfile.
2096+
2097+ * systemd-cryptenroll gained a new --unlock-key-file= option to get the
2098+ unlocking key from a key file (instead of prompting the user). Note
2099+ that this is the key for unlocking the volume in order to be able to
2100+ enroll a new key, but it is not the key that is enrolled.
2101+
2102+ * systemd-dissect gained a new --umount switch that will safely and
2103+ synchronously unmount all partitions of an image previously mounted
2104+ with 'systemd-dissect --mount'.
2105+
2106+ * When using gcrypt, all systemd tools and services will now configure
2107+ it to prefer the OS random number generator if present.
2108+
2109+ * All example code shipped with documentation has been relicensed from CC0
2110+ to MIT-0.
2111+
2112+ * Unit tests will no longer fail when running on a system without
2113+ /etc/machine-id.
2114+
2115+ Experimental features:
2116+
2117+ * BPF programs can now be compiled with bpf-gcc (requires libbpf >= 1.0
2118+ and bpftool >= 7.0).
2119+
2120+ * sd-boot can automatically enroll SecureBoot keys from files found on
2121+ the ESP. This enrollment can be either automatic ('force' mode) or
2122+ controlled by the user ('manual' mode). It is sufficient to place the
2123+ SecureBoot keys in the right place in the ESP and they will be picked
2124+ up by sd-boot and shown in the boot menu.
2125+
2126+ * The mkosi config in systemd gained support for automatically
2127+ compiling a kernel with the configuration appropriate for testing
2128+ systemd. This may be useful when developing or testing systemd in
2129+ tandem with the kernel.
2130+
2131+ Contributions from: 김인수, Adam Williamson, adrian5, Aidan Dang,
2132+ Akihiko Odaki, Alban Bedel, Albert Mikaelyan, Aleksey Vasenev,
2133+ Alexander Graf, Alexander Shopov, Alexander Wilson,
2134+ Alper Nebi Yasak, anarcat, Anders Jonsson, Andre Kalb,
2135+ Andrew Stone, Andrey Albershteyn, Anita Zhang, Ansgar Burchardt,
2136+ Antonio Alvarez Feijoo, Arnaud Ferraris, Aryan singh, asavah,
2137+ Avamander, Avram Lubkin, Balázs Meskó, Bastien Nocera,
2138+ Benjamin Franzke, BerndAdameit, bin456789, Celeste Liu,
2139+ Chih-Hsuan Yen, Christian Brauner, Christian Göttsche,
2140+ Christian Hesse, Clyde Byrd III, codefiles, Colin Walters,
2141+ Cristian Rodríguez, Daan De Meyer, Daniel Braunwarth,
2142+ Daniel Rusek, Dan Streetman, Darsey Litzenberger, David Edmundson,
2143+ David Jaša, David Rheinsberg, David Seifert, David Tardon,
2144+ dependabot[bot], Devendra Tewari, Dominique Martinet, drosdeck,
2145+ Edson Juliano Drosdeck, Eduard Tolosa, eggfly, Einsler Lee,
2146+ Elias Probst, Eli Schwartz, Evgeny Vereshchagin, exploide, Fei Li,
2147+ Foster Snowhill, Franck Bui, Frank Dana, Frantisek Sumsal,
2148+ Gerd Hoffmann, Gio, Goffredo Baroncelli, gtwang01,
2149+ Guillaume W. Bres, H A, Hans de Goede, Heinrich Schuchardt,
2150+ Hugo Carvalho, i-do-cpp, igo95862, j00512545, Jacek Migacz,
2151+ Jade Bilkey, James Hilliard, Jan B, Janis Goldschmidt,
2152+ Jan Janssen, Jan Kuparinen, Jan Luebbe, Jan Macku,
2153+ Jason A. Donenfeld, Javkhlanbayar Khongorzul, Jeremy Soller,
2154+ JeroenHD, jiangchuangang, João Loureiro,
2155+ Joaquín Ignacio Aramendía, Jochen Sprickerhof,
2156+ Johannes Schauer Marin Rodrigues, Jonas Kümmerlin,
2157+ Jonas Witschel, Jonathan Kang, Jonathan Lebon, Joost Heitbrink,
2158+ Jörg Thalheim, josh-gordon-fb, Joyce, Kai Lueke, lastkrick,
2159+ Lennart Poettering, Leon M. George, licunlong, Li kunyu,
2160+ LockBlock-dev, Loïc Collignon, Lubomir Rintel, Luca Boccassi,
2161+ Luca BRUNO, Ludwig Nussel, Łukasz Stelmach, Maccraft123,
2162+ Marc Kleine-Budde, Marius Vollmer, Martin Wilck, matoro,
2163+ Matthias Lisin, Max Gautier, Maxim Mikityanskiy, Michael Biebl,
2164+ Michal Koutný, Michal Sekletár, Michal Stanke, Mike Gilbert,
2165+ Mitchell Freiderich, msizanoen1, Nick Rosbrook, nl6720, Oğuz Ersen,
2166+ Oleg Solovyov, Olga Smirnova, Pablo Ceballos, Pavel Zhukov,
2167+ Phaedrus Leeds, Philipp Gortan, Piotr Drąg, Pyfisch,
2168+ Quentin Deslandes, Rahil Bhimjiani, Rene Hollander, Richard Huang,
2169+ Richard Phibel, Rudi Heitbaum, Sam James, Sarah Brofeldt,
2170+ Sean Anderson, Sebastian Scheibner, Shreenidhi Shedi,
2171+ Sonali Srivastava, Steve Ramage, Suraj Krishnan, Swapnil Devesh,
2172+ Takashi Sakamoto, Ted X. Toth, Temuri Doghonadze, Thomas Blume,
2173+ Thomas Haller, Thomas Hebb, Tomáš Hnyk, Tomasz Paweł Gajc,
2174+ Topi Miettinen, Ulrich Ölmann, undef, Uriel Corfa,
2175+ Victor Westerhuis, Vincent Dagonneau, Vishal Chillara Srinivas,
2176+ Vito Caputo, Weblate, Wenchao Hao, William Roberts, williamsumendap,
2177+ wineway, xiaoyang, Yuri Chornoivan, Yu Watanabe,
2178+ Zbigniew Jędrzejewski-Szmek, Zhaofeng Li, наб
2179+
2180+ – The Great Beyond, 2022-10-31 👻
2181+
2182 CHANGES WITH 251:
2183
2184 Backwards-incompatible changes:
2185@@ -29,19 +635,19 @@ CHANGES WITH 251:
2186 and backward compatibility broken instead on the assumption that
2187 nobody can be affected given the current state of this interface.
2188
2189- * All kernels supported by systemd mix RDRAND (or similar) into the
2190- entropy pool at early boot. This means that on those systems, even if
2191- /dev/urandom is not yet initialized, it still returns bytes that that
2192- are at least as high quality as RDRAND. For that reason, we no longer
2193- have reason to invoke RDRAND from systemd itself, which has
2194- historically been a source of bugs. Furthermore, kernels ≥5.6 provide
2195- the getrandom(GRND_INSECURE) interface for returning random bytes
2196- before the entropy pool is initialized without warning into kmsg,
2197- which is what we attempt to use if available. systemd's direct usage
2198- of RDRAND has been removed. x86 systems ≥Broadwell that are running
2199- an older kernel may experience kmsg warnings that were not seen with
2200- 250. For newer kernels, non-x86 systems, or older x86 systems, there
2201- should be no visible changes.
2202+ * All kernels supported by systemd mix bytes returned by RDRAND (or
2203+ similar) into the entropy pool at early boot. This means that on
2204+ those systems, even if /dev/urandom is not yet initialized, it still
2205+ returns bytes that are of at least RDRAND quality. For that reason,
2206+ we no longer have reason to invoke RDRAND from systemd itself, which
2207+ has historically been a source of bugs. Furthermore, kernels ≥5.6
2208+ provide the getrandom(GRND_INSECURE) interface for returning random
2209+ bytes before the entropy pool is initialized without warning into
2210+ kmsg, which is what we attempt to use if available. systemd's direct
2211+ usage of RDRAND has been removed. x86 systems ≥Broadwell that are
2212+ running an older kernel may experience kmsg warnings that were not
2213+ seen with 250. For newer kernels, non-x86 systems, or older x86
2214+ systems, there should be no visible changes.
2215
2216 * sd-boot will now measure the kernel command line into TPM PCR 12
2217 rather than PCR 8. This improves usefulness of the measurements on
2218@@ -54,16 +660,15 @@ CHANGES WITH 251:
2219 If enabled, the measurement is done twice: into the new-style PCR 12
2220 *and* the old-style PCR 8. It's strongly advised to migrate all users
2221 to PCR 12 for this purpose in the long run, as we intend to remove
2222- this compatibility feature in two year's time.
2223+ this compatibility feature in two years' time.
2224
2225 * busctl capture now writes output in the newer pcapng format instead
2226 of pcap.
2227
2228- * An udev rule that imported hwdb matches for USB devices with
2229- lowercase hexadecimal vendor/product ID digits was added in systemd
2230- 250. This has been reverted, since uppercase hexadecimal digits are
2231- supposed to be used, and we already had a rule that with the
2232- appropriate match.
2233+ * A udev rule that imported hwdb matches for USB devices with lowercase
2234+ hexadecimal vendor/product ID digits was added in systemd 250. This
2235+ has been reverted, since uppercase hexadecimal digits are supposed to
2236+ be used, and we already had a rule with the appropriate match.
2237
2238 Users might need to adjust their local hwdb entries.
2239
2240@@ -216,7 +821,7 @@ CHANGES WITH 251:
2241
2242 * The sd-id128 API gained a new call sd_id128_to_uuid_string() that is
2243 similar to sd_id128_to_string() but formats the ID in RFC 4122 UUID
2244- format instead of simple series of hex characters.
2245+ format instead of as a simple series of hex characters.
2246
2247 * The sd-device API gained two new calls sd_device_new_from_devname()
2248 and sd_device_new_from_path() which permit allocating an sd_device
2249@@ -311,8 +916,8 @@ CHANGES WITH 251:
2250
2251 * A new "unmerged-usr" taint flag has been added that is set whenever
2252 running on systems where /bin/ + /sbin/ are *not* symlinks to their
2253- counterparts in /usr/, i.e. on systems where the /usr/-merge has been
2254- completed.
2255+ counterparts in /usr/, i.e. on systems where the /usr/-merge has not
2256+ been completed.
2257
2258 * Generators invoked by PID 1 will now have a couple of useful
2259 environment variables set describing the execution context a
2260@@ -738,7 +1343,7 @@ CHANGES WITH 250:
2261 unit skip/fail activation if the system's (or a slice's) memory/cpu/io
2262 pressure is above the configured threshold, using the kernel PSI
2263 feature. For more details see systemd.unit(5) and
2264- https://www.kernel.org/doc/html/latest/accounting/psi.html
2265+ https://docs.kernel.org/accounting/psi.html
2266
2267 * The combination of ProcSubset=pid and ProtectKernelTunables=yes and/or
2268 ProtectKernelLogs=yes can now be used.
2269@@ -1929,9 +2534,9 @@ CHANGES WITH 249:
2270 unit, which will be instantiated using the same instance name.
2271
2272 * A new MemoryAvailable property is available for units. If the unit,
2273- or the slice(s) it is part of, have a memory limit set via MemoryMax=/
2274+ or the slices it is part of, have a memory limit set via MemoryMax=/
2275 MemoryHigh=, MemoryAvailable will indicate how much more memory the
2276- unit can claim before hitting the limit(s).
2277+ unit can claim before hitting the limits.
2278
2279 * systemd-coredump will now try to stay below the cgroup memory limit
2280 placed on itself or one of the slices it runs under, if the storage
2281@@ -2332,7 +2937,7 @@ CHANGES WITH 248:
2282 units.
2283
2284 systemd-oomd is now considered fully supported (the usual
2285- backwards-compatiblity promises apply). Swap is not required for
2286+ backwards-compatibility promises apply). Swap is not required for
2287 operation, but it is still recommended.
2288
2289 * systemd-timesyncd gained a new ConnectionRetrySec= setting which
2290@@ -5333,7 +5938,7 @@ CHANGES WITH 240:
2291 a client with a Wi-Fi and Ethernet both connected to the internet).
2292
2293 Consult the kernel documentation for details on this sysctl:
2294- https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
2295+ https://docs.kernel.org/networking/ip-sysctl.html
2296
2297 * The v239 change to turn on "net.ipv4.tcp_ecn" by default has been
2298 reverted.
2299diff --git a/README b/README
2300index 3b104c2..92e3ca0 100644
2301--- a/README
2302+++ b/README
2303@@ -17,7 +17,6 @@ BUG REPORTS:
2304 https://github.com/systemd/systemd/issues
2305
2306 OLDER DOCUMENTATION:
2307-
2308 http://0pointer.de/blog/projects/systemd.html
2309 https://www.freedesktop.org/wiki/Software/systemd
2310
2311@@ -43,10 +42,15 @@ REQUIREMENTS:
2312 ≥ 5.4 for signed Verity images
2313 ≥ 5.7 for BPF links and the BPF LSM hook
2314
2315- Kernel versions below 4.15 have significant gaps in functionality and
2316- are not recommended for use with this version of systemd. Taint flag
2317- 'old-kernel' will be set. Systemd will most likely still function, but
2318- upstream support and testing are limited.
2319+ ⛔ Kernel versions below 3.15 ("minimum baseline") are not supported at
2320+ all, and are missing required functionality (e.g. CLOCK_BOOTTIME
2321+ support for timerfd_create()).
2322+
2323+ ⚠️ Kernel versions below 4.15 ("recommended baseline") have significant
2324+ gaps in functionality and are not recommended for use with this version
2325+ of systemd (e.g. lack sufficiently comprehensive and working cgroupv2
2326+ support). Taint flag 'old-kernel' will be set. systemd will most likely
2327+ still function, but upstream support and testing are limited.
2328
2329 Kernel Config Options:
2330 CONFIG_DEVTMPFS
2331@@ -60,11 +64,6 @@ REQUIREMENTS:
2332 CONFIG_PROC_FS
2333 CONFIG_FHANDLE (libudev, mount and bind mount handling)
2334
2335- Kernel crypto/hash API:
2336- CONFIG_CRYPTO_USER_API_HASH
2337- CONFIG_CRYPTO_HMAC
2338- CONFIG_CRYPTO_SHA256
2339-
2340 udev will fail to work with the legacy sysfs layout:
2341 CONFIG_SYSFS_DEPRECATED=n
2342
2343@@ -182,7 +181,7 @@ REQUIREMENTS:
2344 libcryptsetup (optional), >= 2.3.0 required for signed Verity images support
2345 libaudit (optional)
2346 libacl (optional)
2347- libbpf >= 0.2.0 (optional)
2348+ libbpf >= 0.1.0 (optional)
2349 libfdisk >= 2.32 (from util-linux) (optional)
2350 libselinux (optional)
2351 liblzma (optional)
2352@@ -207,7 +206,8 @@ REQUIREMENTS:
2353 python >= 3.5
2354 meson >= 0.53.2
2355 ninja
2356- gcc, awk, sed, grep, and similar tools
2357+ gcc >= 4.7
2358+ awk, sed, grep, and similar tools
2359 clang >= 10.0, llvm >= 10.0 (optional, required to build BPF programs
2360 from source code in C)
2361 gnu-efi >= 3.0.5 (optional, required for systemd-boot)
2362@@ -268,7 +268,6 @@ REQUIREMENTS:
2363 - capsh (optional, used by test-execute)
2364
2365 POLICY FOR SUPPORT OF DISTRIBUTIONS AND ARCHITECTURES:
2366-
2367 systemd main branch and latest major or stable releases are generally
2368 expected to compile on current versions of popular distributions (at
2369 least all non-EOL versions of Fedora, Debian unstable/testing/stable,
2370@@ -313,7 +312,7 @@ USERS AND GROUPS:
2371 Similarly, the coredump support requires the "systemd-coredump" system
2372 user and group to exist.
2373
2374-NSS:
2375+GLIBC NSS:
2376 systemd ships with four glibc NSS modules:
2377
2378 nss-myhostname resolves the local hostname to locally configured IP
2379@@ -359,7 +358,7 @@ WARNINGS and TAINT FLAGS:
2380 will break if /usr is on a separate late-mounted partition, many of its
2381 dependencies very likely will break sooner or later in one form or
2382 another. For example, udev rules tend to refer to binaries in /usr,
2383- binaries that link to libraries in /usr or binaries that refer to data
2384+ binaries that link to libraries in /usr, or binaries that refer to data
2385 files in /usr. Since these breakages are not always directly visible,
2386 systemd will warn about this. Such setups are not really supported by
2387 the basic set of Linux OS components. Taint flag 'split-usr' will be
2388@@ -393,6 +392,8 @@ WARNINGS and TAINT FLAGS:
2389
2390 busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Tainted
2391
2392+ See org.freedesktop.systemd1(5) for more information.
2393+
2394 VALGRIND:
2395 To run systemd under valgrind, compile with meson option
2396 -Dvalgrind=true and have valgrind development headers installed
2397@@ -408,5 +409,5 @@ STABLE BRANCHES AND BACKPORTS:
2398 Stable branches are started for certain releases of systemd and named
2399 after them, e.g. v238-stable. Stable branches are managed by
2400 distribution maintainers on an as needed basis. See
2401- https://www.freedesktop.org/wiki/Software/systemd/Backports/ for some
2402+ https://www.freedesktop.org/wiki/Software/systemd/Backports for some
2403 more information and examples.
2404diff --git a/README.md b/README.md
2405index f0ed551..e507c4c 100644
2406--- a/README.md
2407+++ b/README.md
2408@@ -2,21 +2,19 @@
2409
2410 System and Service Manager
2411
2412-<a href="http://in.waw.pl/systemd-github-state/systemd-systemd-issues.svg"><img align="right" src="http://in.waw.pl/systemd-github-state/systemd-systemd-issues-small.svg" alt="Count of open issues over time"></a>
2413-<a href="http://in.waw.pl/systemd-github-state/systemd-systemd-pull-requests.svg"><img align="right" src="http://in.waw.pl/systemd-github-state/systemd-systemd-pull-requests-small.svg" alt="Count of open pull requests over time"></a>
2414 [![Semaphore CI 2.0 Build Status](https://the-real-systemd.semaphoreci.com/badges/systemd/branches/main.svg?style=shields)](https://the-real-systemd.semaphoreci.com/projects/systemd)<br/>
2415 [![Coverity Scan Status](https://scan.coverity.com/projects/350/badge.svg)](https://scan.coverity.com/projects/350)<br/>
2416 [![OSS-Fuzz Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/systemd.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#systemd)<br/>
2417 [![CIFuzz](https://github.com/systemd/systemd/workflows/CIFuzz/badge.svg)](https://github.com/systemd/systemd/actions)<br/>
2418 [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1369/badge)](https://bestpractices.coreinfrastructure.org/projects/1369)<br/>
2419-[![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/systemd/systemd.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/systemd/systemd/context:cpp)<br/>
2420 [![CentOS CI - CentOS 8](https://jenkins-systemd.apps.ocp.ci.centos.org/buildStatus/icon?subject=CentOS%20CI%20-%20CentOS%208&job=upstream-centos8)](https://jenkins-systemd.apps.ocp.ci.centos.org/job/upstream-centos8/)<br/>
2421 [![CentOS CI - Arch](https://jenkins-systemd.apps.ocp.ci.centos.org/buildStatus/icon?subject=CentOS%20CI%20-%20Arch&job=upstream-vagrant-archlinux)](https://jenkins-systemd.apps.ocp.ci.centos.org/job/upstream-vagrant-archlinux/)<br/>
2422 [![CentOS CI - Arch (sanitizers)](https://jenkins-systemd.apps.ocp.ci.centos.org/buildStatus/icon?subject=CentOS%20CI%20-%20Arch%20(sanitizers)&job=upstream-vagrant-archlinux-sanitizers)](https://jenkins-systemd.apps.ocp.ci.centos.org/job/upstream-vagrant-archlinux-sanitizers/)<br/>
2423 [![CentOS CI - Rawhide (SELinux)](https://jenkins-systemd.apps.ocp.ci.centos.org/buildStatus/icon?subject=CentOS%20CI%20-%20Rawhide%20(SELinux)&job=upstream-vagrant-rawhide-selinux)](https://jenkins-systemd.apps.ocp.ci.centos.org/view/Upstream/job/upstream-vagrant-rawhide-selinux/)<br/>
2424 [![Fossies codespell report](https://fossies.org/linux/test/systemd-main.tar.gz/codespell.svg)](https://fossies.org/linux/test/systemd-main.tar.gz/codespell.html)</br>
2425 [![Coverage Status](https://coveralls.io/repos/github/systemd/systemd/badge.svg?branch=main)](https://coveralls.io/github/systemd/systemd?branch=main)</br>
2426-[![Packaging status](https://repology.org/badge/tiny-repos/systemd.svg)](https://repology.org/project/systemd/versions)
2427+[![Packaging status](https://repology.org/badge/tiny-repos/systemd.svg)](https://repology.org/project/systemd/versions)</br>
2428+[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/systemd/systemd/badge)](https://api.securityscorecards.dev/projects/github.com/systemd/systemd)
2429
2430 ## Details
2431
2432diff --git a/TODO b/TODO
2433index 2ae9aae..560ec4b 100644
2434--- a/TODO
2435+++ b/TODO
2436@@ -77,8 +77,546 @@ Janitorial Clean-ups:
2437 * rework mount.c and swap.c to follow proper state enumeration/deserialization
2438 semantics, like we do for device.c now
2439
2440+* get rid of prefix_roota() and similar, only use chase_symlinks() and related
2441+ calls instead.
2442+
2443+* get rid of basename() and replace by path_extract_filename()
2444+
2445+Deprecations and removals:
2446+
2447+* Remove any support for booting without /usr pre-mounted in the initrd entirely.
2448+ Update INITRD_INTERFACE.md accordingly.
2449+
2450+* 2019-10 – Remove POINTINGSTICK_CONST_ACCEL references from the hwdb, see #9573
2451+
2452+* remove cgrouspv1 support EOY 2023. As per
2453+ https://lists.freedesktop.org/archives/systemd-devel/2022-July/048120.html
2454+ and then rework cgroupsv2 support around fds, i.e. keep one fd per active
2455+ unit around, and always operate on that, instead of cgroup fs paths.
2456+
2457+* drop support for kernels that lack ambient capabilities support (i.e. make
2458+ 4.3 new baseline). Then drop support for "!!" modifier for ExecStart= which
2459+ is only supported for such old kernels.
2460+
2461+* drop support for getrandom()-less kernels. (GRND_INSECURE means once kernel
2462+ 5.6 becomes our baseline). See
2463+ https://github.com/systemd/systemd/pull/24101#issuecomment-1193966468 for
2464+ details. Maybe before that: at taint-flags/warn about kernels that lack
2465+ getrandom()/environments where it is blocked.
2466+
2467+* drop support for LOOP_CONFIGURE-less loopback block devices, once kernel
2468+ baseline is 5.8.
2469+
2470+* drop fd_is_mount_point() fallback mess once we can rely on
2471+ STATX_ATTR_MOUNT_ROOT to exist i.e. kernel baseline 5.8
2472+
2473+* rework our PID tracking in services and so on, to be strictly based on pidfd,
2474+ once kernel baseline is 5.13.
2475+
2476+* ~2023: remove support for TPM_PCR_INDEX_KERNEL_PARAMETERS_COMPAT
2477+
2478+* H2 2023: remove support for unmerged-usr
2479+
2480 Features:
2481
2482+* sd-stub: add ".bootcfg" section for kernel bootconfig data (as per
2483+
2484+* tpm2: add (optional) support for generating a local signing key from PCR 15
2485+ state. use private key part to sign PCR 7+14 policies. stash signatures for
2486+ expected PCR7+14 policies in EFI var. use public key part in disk encryption.
2487+ generate new sigs whenever db/dbx/mok/mokx gets updated. that way we can
2488+ securely bind against SecureBoot/shim state, without having to renroll
2489+ everything on each update (but we still have to generate one sig on each
2490+ update, but that should be robust/idempotent). needs rollback protection, as
2491+ usual.
2492+
2493+* Lennart: big blog story about DDIs
2494+
2495+* Lennart: big blog story about building initrds
2496+
2497+* Lennart: big blog story about "why systemd-boot"
2498+
2499+* bpf: see if we can use BPF to solve the syslog message cgroup source problem:
2500+ one idea would be to patch source sockaddr of all AF_UNIX/SOCK_DGRAM to
2501+ implicitly contain the source cgroup id. Another idea would be to patch
2502+ sendto()/connect()/sendmsg() sockaddr on-the-fly to use a different target
2503+ sockaddr.
2504+
2505+* bpf: see if we can address opportunistic inode sharing of immutable fs images
2506+ with BPF. i.e. if bpf gives us power to hook into openat() and return a
2507+ different inode than is requested for which we however it has same contents
2508+ then we can use that to implement opportunistic inode sharing among DDIs:
2509+ make all DDIs ship xattr on all reg files with a SHA256 hash. Then, also
2510+ dictate that DDIs should come with a top-level subdir where all reg files are
2511+ linked into by their SHA256 sum. Then, whenever an inode is opened with the
2512+ xattr set, check bpf table to find dirs with hashes for other prior DDIs and
2513+ try to use inode from there.
2514+
2515+* dissect too: add --with switch that will invoke a command with the image
2516+ mounted, and as current working directory. Terminate once done.
2517+
2518+* extend the verity signature partition to permit multiple signatures for the
2519+ same root hash, so that people can sign a single image with multiple keys.
2520+
2521+* consider adding a new partition type, just for /opt/ for usage in system
2522+ extensions
2523+
2524+* gpt-auto-discovery: also use the pkcs7 signature stuff, and pass signature to
2525+ kernel. So far we only did this for the various --image= switches, but not
2526+ for the root fs or /usr/.
2527+
2528+* extend systemd-measure with an --append= mode when signing expected PCR
2529+ measurements. In this mode the tool should read an existing signature JSON
2530+ object (which primarily contains an array with the actual signature data),
2531+ and then append the new signature to it instead of writing out an entirely
2532+ JSON object. Usecase: it might make sense to to sign a UKI's expected PCRs
2533+ with different keys for different boot phases. i.e. use keypair X for signing
2534+ the expected PCR in the initrd boot phase and keypair Y for signing the
2535+ expected PCR in the main boot phase. Via the --append logic we could merge
2536+ these signatures into one object, and then include the result in the UKI.
2537+ Then, if you bind a LUKS volume to public key X it really only can be
2538+ unlocked during early boot, and you bind a LUKS volume to public key Y it
2539+ really only can be unlocked during later boot, and so on.
2540+
2541+* dissection policy should enforce that unlocking can only take place by
2542+ certain means, i.e. only via pw, only via tpm2, or only via fido, or a
2543+ combination thereof.
2544+
2545+* make the systemd-repart "seed" value provisionable via credentials, so that
2546+ confidential computing environments can set it and deterministically
2547+ enforce the uuids for partitions created, so that they can calculate PCR 15
2548+ ahead of time.
2549+
2550+* systemd-repart: also derive the volume key from the seed value, for the
2551+ aforementioned purpose.
2552+
2553+* in the initrd: derive the default machine ID to pass to the host PID 1 via
2554+ $machine_id from the same seed credential.
2555+
2556+* Add systemd-sysupdate-initrd.service or so that runs systemd-sysupdate in the
2557+ initrd to bootstrap the initrd to populate the initial partitions. Some things
2558+ to figure out:
2559+ - Should it run on firstboot or on every boot?
2560+ - If run on every boot, should it use the sysupdate config from the host on
2561+ subsequent boots?
2562+
2563+* hook up journald with TPMs? measure new journal records to the TPM in regular
2564+ intervals, validate the journal against current TPM state with that. (taking
2565+ inspiration from IMA log)
2566+
2567+* provide an API to apps to encrypt/decrypt credentials. usecase: allow
2568+ bluez bluetooth daemon to pass pairings to initrd that way, without shelling
2569+ out to our tools.
2570+
2571+* revisit default PCR bindings in cryptenroll and systemd-creds. Currently they
2572+ use PCR 7 which should contain secureboot state db/dbx. Which sounded like a
2573+ safe bet, given that it should change only on policy changes, and not
2574+ software updates. But that's wrong. Recent fwupd (rightfully) contains code
2575+ for updating the dbx denylist. This means even without any active policy
2576+ change PCR 7 might change. Hence, better idea might be in systemd-creds to
2577+ default to PCR 15 at least if sd-stub is used (i.e. bind to system identity),
2578+ and in cryptsetup simply the empty list? Also, PCR 14 almost certainly should
2579+ be included as much as PCR 7 (as it contains shim's policy, which is
2580+ certainly as relevant as PCR 7 on many systems)
2581+
2582+* move discoverable partition spec and boot loader spec over to uapi group
2583+
2584+* maybe measure UUIDs of important mounted file systems (after mount, via the
2585+ new ioctls to query them) into PCR 15? Add "x-systemd.measure-pcr=" or so for
2586+ this that pulls in a per mount service?
2587+
2588+* measure /etc/machine-id during early boot into PCR 15?
2589+
2590+* To mimic the new tpm2-measure-pcr= crypttab option add the same to veritytab
2591+ (measuring the root hash) and integritytab (measuring the HMAC key if one is
2592+ used)
2593+
2594+* We should start measuring all services, containers, and system extensions we
2595+ activate. probably into PCR 13. i.e. add --tpm2-measure-pcr= or so to
2596+ systemd-nspawn, and MeasurePCR= to unit files. Should contain a measurement
2597+ of the activated configuration and the image that is being activated (in case
2598+ verity is used, hash of the root hash).
2599+
2600+* whenever we measure something into a TPM PCR from userspace, write a record in
2601+ TCG's "Canonical Event Log" format to some file, so that we can reason about
2602+ how PCR values we manage came to
2603+ be. https://trustedcomputinggroup.org/resource/canonical-event-log-format/
2604+
2605+* bootspec: permit graceful "update" from type #2 to type #1. If both a type #1
2606+ and a type #2 entry exist under otherwise the exact same name, then use the
2607+ type #1 entry, and ignore the type #2 entry. This way, people can "upgrade"
2608+ from the UKI with all parameters baked in to a Type #1 .conf file with manual
2609+ parametrization, if needed. This matches our usual rule that admin config
2610+ should win over vendor defaults.
2611+
2612+* sd-stub: optionally allow users to configure manual kernel command line even
2613+ in SecureBoot by authenticating it via shim's APIs, integrating with MOK and
2614+ similar: instead of authenticating just PE code shim should be capable of
2615+ authenticating any kind of data for us, including files containing kernel
2616+ command lines.
2617+
2618+* write a "search path" spec, that documents the prefixes to search in
2619+ (i.e. the usual /etc/, /run/, /usr/lib/ dance, potentially /usr/etc/), how to
2620+ sort found entries, how masking works and overriding.
2621+
2622+* automatic boot assessment: add one more default success check that just waits
2623+ for a bit after boot, and blesses the boot if the system stayed up that long.
2624+
2625+* implement concept of "versioned" resources inside a dir, and write a spec for
2626+ it. Make all tools in systemd, in particular
2627+ RootImage=/RootDirectory=/--image=/--directory= implement this. Idea:
2628+ directories ending in ".v/" indicate a directory with versioned resources in
2629+ them. Versioned resources inside a .v dir are always named in the pattern
2630+ <prefix>_<version>[+<tries-left>[-<tries-done>]].<suffix>
2631+
2632+* add support for using this .v/ logic on the root fs itself: in the initrd,
2633+ after mounting the rootfs, look for root-<arch>.v/ in the root fs, and then
2634+ apply the logic, moving the switch root logic there.
2635+
2636+* systemd-repart: add support for generating ISO9660 images
2637+
2638+* systemd-repart: in addition to the existing "factory reset" mode (which
2639+ simply empties existing partitions marked for that). add a mode where
2640+ partitions marked for it are entirely removed. Usecase: remove secondary OS
2641+ copy, and redundant partitions entirely, and recreate them anew.
2642+
2643+* systemd-boot: maybe add support for collapsing menu entries of the same OS
2644+ into one item that can be opened (like in a "tree view" UI element) or
2645+ collapsed. If only a single OS is installed, disable this mode, but if
2646+ multiple OSes are installed might make sense to default to it, so that user
2647+ is not immediately bombarded with a multitude of Linux kernel versions but
2648+ only one for each OS.
2649+
2650+* systemd-repart: if the GPT *disk* UUID (i.e. the one global for the entire
2651+ disk) is set to all FFFFF then use this as trigger for factory reset, in
2652+ addition to the existing mechanisms via EFI variables and kernel command
2653+ line. Benefit: works also on non-EFI systems, and can be requested on one
2654+ boot, for the next.
2655+
2656+* figure out a sane way when building UKIs how to extract SBAT data from inner
2657+ kernel, extend it with component info, and add to outer kernel.
2658+
2659+* systemd-sysupdate: make transport pluggable, so people can plug casync or
2660+ similar behind it, instead of http.
2661+
2662+* systemd-tmpfiles: add concept for conditionalizing lines on factory reset
2663+ boot, or on first boot.
2664+
2665+* in UKIs: add way to define allowlist of additional words that can be added to
2666+ the kernel cmdline even in SecureBoot mode
2667+
2668+* we probably needs .pcrpkeyrd or so as additional PE section in UKIs,
2669+ which contains a separate public key for PCR values that only apply in the
2670+ initrd, i.e. in the boot phase "enter-initrd". Then, consumers in userspace
2671+ can easily bind resources to just the initrd. Similar, maybe one more for
2672+ "enter-initrd:leave-initrd" for resources that shall be accessible only
2673+ before unprivileged user code is allowed. (we only need this for .pcrpkey,
2674+ not for .pcrsig, since the latter is a list of signatures anyway). With that,
2675+ when you enroll a LUKS volume or similar, pick either the .pcrkey (for
2676+ coverage through all phases of the boot, but excluding shutdown), the
2677+ .pcrpkeyrd (for coverage in the initrd only) and .pcrpkeybt (for coverage
2678+ until users are allowed to log in).
2679+
2680+* Once the root fs LUKS volume key is measured into PCR 15, default to binding
2681+ credentials to PCR 15 in "systemd-creds"
2682+
2683+* add support for asymmetric LUKS2 TPM based encryption. i.e. allow preparing
2684+ an encrypted image on some host given a public key belonging to a specific
2685+ other host, so that only hosts possessing the private key in the TPM2 chip
2686+ can decrypt the volume key and activate the volume. Usecase: systemd-syscfg
2687+ for a central orchestrator to generate syscfg images securely that can only
2688+ be activated on one specific host (which can be used for installing a bunch
2689+ of creds in /etc/credstore/ for example). Extending on this: allow binding
2690+ LUKS2 TPM based encryption also to the TPM2 internal clock. Net result:
2691+ prepare a syscfg image that can only be activated on a specific host that
2692+ runs a specific software in a specific time window. syscfg would be
2693+ automatically invalidated outside of it.
2694+
2695+* maybe add a "systemd-report" tool, that generates a TPM2-backed "report" of
2696+ current system state, i.e. a combination of PCR information, local system
2697+ time and TPM clock, running services, recent high-priority log
2698+ messages/coredumps, system load/PSI, signed by the local TPM chip, to form an
2699+ enhanced remote attestation quote. Usecase: a simple orchestrator could use
2700+ this: have the report tool upload these reports every 3min somewhere. Then
2701+ have the orchestrator collect these reports centrally over a 3min time
2702+ window, and use them to determine what which node should now start/stop what,
2703+ and generate a small syscfg for each node, that uses Uphold= to pin services
2704+ on each node. The syscfg would be encrypted using the asymmetric encryption
2705+ proposed above, so that it can only be activated on the specific host, if the
2706+ software is in a good state, and within a specific time frame. Then run a
2707+ loop on each node that sends report to orchestrator and then sysupdate to
2708+ update syscfg. Orchestrator would be stateless, i.e. operate on desired
2709+ config and collected reports in the last 3min time window only, and thus can
2710+ be trivially scaled up since all instances of the orchestrator should come to
2711+ the same conclusions given the same inputs of reports/desired workload info.
2712+ Could also be used to deliver Wireguard secrets and thus to clients, thus
2713+ permitting zero-trust networking: secrets are rolled over via syscfg updates,
2714+ and via the time window TPM logic invalidated if node doesn't keep itself
2715+ updated, or becomes corrupted in some way.
2716+
2717+* Always measure the LUKS rootfs volume key into PCR 15, and derive the machine
2718+ ID from it securely. This would then allow us to bind secrets a specific
2719+ system securely.
2720+
2721+* nspawn: maybe allow TPM passthrough, backed by swtpm, and measure --image=
2722+ hash into its PCR 11, so that nspawn instances can be TPM enabled, and
2723+ partake in measurements/remote attestation and such. swtpm would run outside
2724+ of control of container, and ideally would itself bind its encryption keys to
2725+ host TPM.
2726+
2727+* tree-wide: convert as much as possible over to use sd_event_set_signal_exit(), instead
2728+ of manually hooking into SIGINT/SIGTERM
2729+
2730+* tree-wide: convert as much as possible over to SD_EVENT_SIGNAL_PROCMASK
2731+ instead of manual blocking.
2732+
2733+* sd-boot: for each installed OS, grey out older entries (i.e. all but the
2734+ newest), to indicate they are obsolete
2735+
2736+* automatically propagate LUKS password credential into cryptsetup from host
2737+ (i.e. SMBIOS type #11, …), so that one can unlock LUKS via VM hypervisor
2738+ supplied password.
2739+
2740+* add ability to path_is_valid() to classify paths that refer to a dir from
2741+ those which may refer to anything, and use that in various places to filter
2742+ early. i.e. stuff ending in "/", "/." and "/.." definitely refers to a
2743+ directory, and paths ending that way can be refused early in many contexts.
2744+
2745+* systemd-measure: allow operating with PEM certificates in addition to PEM
2746+ public keys when signing PCR values. SecureBoot and our Verity signatures
2747+ operate with certificates already, hence I guess we should also just deal for
2748+ convencience with certificates for the PCR stuff too.
2749+
2750+* systemd-measure: add --pcrpkey-auto as an alternative to --pcrpkey=, where it
2751+ would just use the same public key specified with --public-key= (or the one
2752+ automatically derived from --private-key=).
2753+
2754+* tmpfiles: add new line type for setting btrfs subvolume attributes (i.e. rw/ro)
2755+
2756+* tmpfiles: add new line type for setting fcaps
2757+
2758+* push people to use ".sysext.raw" as suffix for sysext DDIs (DDI =
2759+ discoverable disk images, i.e. the new name for gpt disk images following the
2760+ discoverable disk spec). [Also: just ".sysext/" for directory-based sysext]
2761+
2762+* Add "purpose" flag to partition flags in discoverable partition spec that
2763+ indicate if partition is intended for sysext, for portable service, for
2764+ booting and so on. Then, when dissecting DDI allow specifying a purpose to
2765+ use as additional search condition. Usecase: images that combined a sysext
2766+ partition with a portable service partition in one.
2767+
2768+* On boot, auto-generate an asymmetric key pair from the TPM,
2769+ and use it for validating DDIs and credentials. Maybe upload it to the kernel
2770+ keyring, so that the kernel does this validation for us for verity and kernel
2771+ modules
2772+
2773+* for systemd-syscfg: add a tool that can generate suitable DDIs with verity +
2774+ sig using squashfs-tools-ng's library. Maybe just systemd-repart called under
2775+ a new name with a built-in config?
2776+
2777+* gpt-auto: generate mount units that reference partitions via
2778+ /dev/disk/by-diskseq/… so that they can't be swapped out behind our back.
2779+
2780+* lock down acceptable encrypted credentials at boot, via simple allowlist,
2781+ maybe on kernel command line:
2782+ systemd.import_encrypted_creds=foobar.waldo,tmpfiles.extra to protect locked
2783+ down kernels from credentials generated on the host with a weak kernel
2784+
2785+* Add support for extra verity configuration options to systemd-repart (FEC,
2786+ hash type, etc)
2787+
2788+* chase_symlinks(): take inspiraton from path_extract_filename() and return
2789+ O_DIRECTORY if input path contains trailing slash.
2790+
2791+* chase_symlinks(): refuse resolution if trailing slash is specified on input,
2792+ but final node is not a directory
2793+
2794+* chase_symlinks(): add new flag that simply refuses all symlink use in a path,
2795+ then use that for accessing XBOOTLDR/ESP
2796+
2797+* document in boot loader spec that symlinks in XBOOTLDR/ESP are not OK even if
2798+ non-VFAT fs is used.
2799+
2800+* measure credentials picked up from SMBIOS to some suitable PCR
2801+
2802+* measure GPT and LUKS headers somewhere when we use them (i.e. in
2803+ systemd-gpt-auto-generator/systemd-repart and in systemd-cryptsetup?)
2804+
2805+* pick up creds from EFI vars
2806+
2807+* sd-stub/sd-boot: write RNG seed to LINUX_EFI_RANDOM_SEED_TABLE_GUID config
2808+ table as well. (and possibly drop our efi var). Current kernels will pick up
2809+ the seed from there already, if EFI_RNG_PROTOCOL is not implemented by
2810+ firmware.
2811+
2812+* sd-boot: include domain specific hash string in hash function for random seed
2813+ plus sizes of everything. also include DMI/SMBIOS blob
2814+
2815+* sd-stub: invoke random seed logic the same way as in sd-boot, except if
2816+ random seed EFI variable is already set. That way, the variable set will be
2817+ set in all cases: if you just use sd-stub, or just sd-boot, or both.
2818+
2819+* sd-boot: we probably should include all BootXY EFI variable defined boot
2820+ entries in our menu, and then suppress ourselves. Benefit: instant
2821+ compatibility with all other OSes which register things there, in particular
2822+ on other disks. Always boot into them via NextBoot EFI variable, to not
2823+ affect PCR values.
2824+
2825+* systemd-measure tool:
2826+ - pre-calculate PCR 12 (command line) + PCR 13 (sysext) the same way we can precalculate PCR 11
2827+
2828+* in sd-boot: load EFI drivers from a new PE section. That way, one can have a
2829+ "supercharged" sd-boot binary, that could carry ext4 drivers built-in.
2830+
2831+* sd-bus: document that sd_bus_process() only returns messages that non of the
2832+ filters/handlers installed on the connection took possession of.
2833+
2834+* sd-device: add an API for acquiring list of child devices, given a device
2835+ objects (i.e. all child dirents that dirs or symlinks to dirs)
2836+
2837+* sd-device: maybe pin the sysfs dir with an fd, during the entire runtime of
2838+ an sd_device, then always work based on that.
2839+
2840+* add small wrapper around qemu that implements sd_notify/AF_VSOCK + machined and
2841+ maybe some other stuff and boots it
2842+
2843+* maybe add new flags to gpt partition tables for rootfs and usrfs indicating
2844+ purpose, i.e. whether something is supposed to be bootable in a VM, on
2845+ baremetal, on an nspawn-style container, if it is a portable service image,
2846+ or a sysext for initrd, for host os, or for portable container. Then hook
2847+ portabled/… up to udev to watch block devices coming up with the flags set, and
2848+ use it.
2849+
2850+* sd-boot should look for information what to boot in SMBIOS, too, so that VM
2851+ managers can tell sd-boot what to boot into and suchlike
2852+
2853+* PID 1 should look for an SMBIOS variable that encodes an AF_VSOCK address it
2854+ should send sd_notify() ready notifications to. That way a VMM can boot up a
2855+ system, and generically know when it finished booting.
2856+
2857+* add "systemd-sysext identify" verb, that you can point on any file in /usr/
2858+ and that determines from which overlayfs layer it originates, which image, and with
2859+ what it was signed.
2860+
2861+* journald: generate recognizable log events whenever we shutdown journald
2862+ cleanly, and when we migrate run → var. This way tools can verify that a
2863+ previous boot terminated cleanly, because either of these two messages must
2864+ be safely written to disk, then.
2865+
2866+* systemd-creds: extend encryption logic to support asymmetric
2867+ encryption/authentication. Idea: add new verb "systemd-creds public-key"
2868+ which generates a priv/pub key pair on the TPM2 and stores the priv key
2869+ locally in /var. It then outputs a certificate for the pub part to stdout.
2870+ This can then be copied/taken elsewhere, and can be used for encrypting creds
2871+ that only the host on its specific hw can decrypt. Then, support a drop-in
2872+ dir with certificates that can be used to authenticate credentials. Flow of
2873+ operations is then this: build image with owner certificate, then after
2874+ boot up issue "systemd-creds public-key" to acquire pubkey of the machine.
2875+ Then, when passing data to the machine, sign with privkey belonging to one of
2876+ the dropped in certs and encrypted with machine pubkey, and pass to machine.
2877+ Machine is then able to authenticate you, and confidentiality is guaranteed.
2878+
2879+* building on top of the above, the pub/priv key pair generated on the TPM2
2880+ should probably also one you can use to get a remote attestation quote.
2881+
2882+* bootctl: add "gc" verb that loads all type #1 .conf files, and then removes
2883+ all files from the set of files from the ESP/XBOOTLDR matching the entry
2884+ token that are not referenced by any. Then, change kernel-install to use only
2885+ this to remove auxiliary files, and never remove them explicitly. Benefit:
2886+ resources such as initrds/kernels/dtb can be shared between entries.
2887+
2888+* Process credentials in:
2889+ • networkd/udevd: add a way to define additional .link, .network, .netdev files
2890+ via the credentials logic.
2891+ • fstab-generator: allow defining additional fstab-like mounts via
2892+ credentials (similar: crypttab-generator, verity-generator,
2893+ integrity-generator)
2894+ • getty-generator: allow defining additional getty instances via a credential
2895+ • run-generator: allow defining additional commands to run via a credential
2896+ • resolved: allow defining additional /etc/hosts entries via a credential (it
2897+ might make sense to then synthesize a new combined /etc/hosts file in /run
2898+ and bind mount it on /etc/hosts for other clients that want to read it.
2899+ Similar, allow picking up DNS server IP addresses from credential.
2900+ • repart: allow defining additional partitions via credential
2901+ • timesyncd: pick NTP server info from credential
2902+ • portabled: read a credential "portable.extra" or so, that takes a list of
2903+ file system paths to enable on start.
2904+ • make systemd-fstab-generator look for a system credential encoding root= or
2905+ usr=
2906+ • systemd-homed: when initializing, look for a credential
2907+ systemd.homed.register or so with JSON user records to automatically
2908+ register if not registered yet. Usecase: deploy a system, and add an
2909+ account one can directly log into.
2910+ • initialize machine ID from systemd credential picked up from the ESP via
2911+ sd-stub, so that machine ID is stable even on systems where unified kernels
2912+ are used, and hence kernel cmdline cannot be modified locally
2913+ • in gpt-auto-generator: check partition uuids against such uuids supplied via
2914+ sd-stub credentials. That way, we can support parallel OS installations with
2915+ pre-built kernels.
2916+
2917+* define a JSON format for units, separating out unit definitions from unit
2918+ runtime state. Then, expose it:
2919+
2920+ 1. Add Describe() method to Unit D-Bus object that returns a JSON object
2921+ about the unit.
2922+ 2. Expose this natively via Varlink, in similar style
2923+ 3. Use it when invoking binaries (i.e. make PID 1 fork off systemd-executor
2924+ binary which reads the JSON definition and runs it), to address the cow
2925+ trap issue and the fact that NSS is actually forbidden in
2926+ forked-but-not-exec'ed children
2927+ 4. Add varlink API to run transient units based on provided JSON definitions
2928+
2929+* show SUPPORT_END= data in "hostnamectl" output (and thus also expose a prop
2930+ for this on dbus)
2931+
2932+* Add SUPPORT_END_URL= field to os-release with more *actionable* information
2933+ what to do if support ended
2934+
2935+* pam_systemd: on interactive logins, maybe show SUPPORT_END information at
2936+ login time, á la motd
2937+
2938+* sd-boot: instead of unconditionally deriving the ESP to search boot loader
2939+ spec entries in from the paths of sd-boot binary, let's optionally allow it
2940+ to be configured on sd-boot cmdline + efi var. Usecase: embed sd-boot in the
2941+ UEFI firmware (for example, ovmf supports that via qemu cmdline option), and
2942+ use it to load stuff from the ESP.
2943+
2944+* mount /var/ from initrd, so that we can apply sysext and stuff before the
2945+ initrd transition. Specifically:
2946+ 1. There should be a var= kernel cmdline option, matching root= and usr=
2947+ 2. systemd-gpt-auto-generator should auto-mount /var if it finds it on disk
2948+ 3. mount.x-initrd mount option in fstab should be implied for /var
2949+
2950+* implement varlink introspection
2951+
2952+* we should probably drop all use of prefix_roota() and friends, and use
2953+ chase_symlinks() instead
2954+
2955+* make persistent restarts easier by adding a new setting OpenPersistentFile=
2956+ or so, which allows opening one or more files that is "persistent" across
2957+ service restarts, hot reboot, cold reboots (depending on configuration): the
2958+ files are created empty on first invocation, and on subsequent invocations
2959+ the files are reboot. The files would be backed by tmpfs, pmem or /var
2960+ depending on desired level of persistency.
2961+
2962+* sd-event: add ability to "chain" event sources. Specifically, add a call
2963+ sd_event_source_chain(x, y), which will automatically enable event source y
2964+ in oneshit mode once x is triggered. Use case: in src/core/mount.c implement
2965+ the /proc/self/mountinfo rescan on SIGCHLD with this: whenever a SIGCHLD is
2966+ seen, trigger the rescan defer event source automatically, and allow it to be
2967+ dispatched *before* the SIGCHLD is handled (based on priorities). Benefit:
2968+ dispatch order is strictly controlled by priorities again. (next step: chain
2969+ event sources to the ratelimit being over)
2970+
2971+* if we fork of a service with StandardOutput=journal, and it forks off a
2972+ subprocess that quickly dies, we might not be able to identify the cgroup it
2973+ comes from, but we can still derive that from the stdin socket its output
2974+ came from. We apparently don't do that right now.
2975+
2976+* add ability to set hostname with suffix derived from machine id at boot
2977+
2978+* add PR_SET_DUMPABLE service setting
2979+
2980 * homed/userdb: maybe define a "companion" dir for home directories where apps
2981 can safely put privileged stuff in. Would not be writable by the user, but
2982 still conceptually belong to the user. Would be included in user's quota if
2983@@ -96,54 +634,11 @@ Features:
2984 * given that /etc/ssh/ssh_config.d/ is a thing now, ship a drop-in for that
2985 that hooks up userbdctl ssh-key stuff.
2986
2987-* allow embedding a signature blob for PCR hashes into separate section in
2988- unified kernel binaries. This section should be picked up by sd-stub, and
2989- passed in a file to the booted kernel (via initrd cpio, as usual). Usecase:
2990- this way we can implement disk encryption policies that bind to specific
2991- kernel PCR state, without breaking things on every kernel update. As long as
2992- the kernel includes the PCR signature blob we should be good, as disk
2993- encryption can then pass the signature to the TPM to unlock their secrets.
2994- Why do this via a separate PE section? That's because the PCR state depends
2995- on the measured kernel/initrd of course, thus we cannot put the signature
2996- into the kernel/initrd itself, because that would require a time machine.
2997- Hence we have to find a separate place. A simple solution is a PE section
2998- of its own, because then it is next to the kernel and initrd which after all
2999- are stored in PE sections of their own too. Building a unified kernel would
3000- thus mean, calculating PCR values for the raw kernel image, and raw initrd
3001- image, then signing those PCR values with a vendor key, and then combining
3002- sd-stub, raw kernel image, raw initrd, and PCR signature into a unified
3003- kernel image.
3004-
3005-* a new tool "systemd-trust" or so, that can calculate PCR hashes offline, and
3006- optionally sign them. for that we should extend our syntax for specifying pcr
3007- policies (e.g. the string like "4+7+9") so that it can also include explicit
3008- hash values, i.e.
3009- 4=sha256:0ef149998289474e4bb31813edda6ad7f3c991b2d8dec6e8fe4db7a1f039f2d1+7=sha256:87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7+9=sha256:0263829989b6fd954f72baaf2fc64bc2e2f01d692d4de72986ea808f6e99813f
3010- and file names to calculate hashes from, i.e.
3011- 4=file:/boot/vmlinuz+7=file:/boot/initrd/+9=file:/etc/fstab"
3012- The systemd-trust tool should then be able to resolve any "underspecifed"
3013- form into the form with explicit hash values.
3014-
3015 * maybe add support for binding and connecting AF_UNIX sockets in the file
3016 system outside of the 108ch limit. When connecting, open O_PATH fd to socket
3017 inode first, then connect to /proc/self/fd/XYZ. When binding, create symlink
3018 to target dir in /tmp, and bind through it.
3019
3020-* tmpfiles: for f/F/w lines, if the argument columns is left unspecified, look
3021- for a service credential named after the file path to write to, and load
3022- contents to write from there. Usecase: provision arbitrary files from
3023- credentials. Example use: with a line like "f /root/.ssh/authorized-keys
3024- 0644 root root" in a tmpfiles.d/ snippet add
3025- LoadCredential=root.ssh.authorized-keys via drop-in to
3026- systemd-tmpfiles.service, and then provision an SSH access key through
3027- nspawn's --load-credential=, through qemu's fw_cfg, or via systemd-stub's
3028- credntial pick-up. The latter is particularly interesting to implement SSH
3029- access to an initrd.
3030-
3031-* systemd-homed: when initializing, look for a credential sysemd.homed.register
3032- or so with JSON user records to automatically register if not registered yet.
3033- Usecase: deploy a system, and add an account one can directly log into.
3034-
3035 * add a proper concept of a "developer" mode, i.e. where cryptographic
3036 protections of the root OS are weakened after interactive confirmation, to
3037 allow hackers to allow their own stuff. idea: allow entering developer mode
3038@@ -159,14 +654,11 @@ Features:
3039 set up the directory so that it can only be accessed if host and app are in
3040 order.
3041
3042-* TPM2: add auth policy for signed PCR values to make updates easy. i.e. do
3043- what tpm2_policyauthorize tool does. To be truly useful scheme needs to be a
3044- bit more elaborate though: policy probably must take some nvram based
3045- generation counter into account that can only monotonically increase and can
3046- be used to invalidate old PCR signatures. Otherwise people could downgrade to
3047- old signed PCR sets whenever they want. Usecase: encrypt the rootfs with LUKS
3048- with a key that can only be unlocked via a pristine pre-built Fedora
3049- kernel+initrd.
3050+* TPM2: extend unlock policy to protect against version downgrades in signed
3051+ policies: policy probably must take some nvram based generation counter into
3052+ account that can only monotonically increase and can be used to invalidate
3053+ old PCR signatures. Otherwise people could downgrade to old signed PCR sets
3054+ whenever they want.
3055
3056 * update HACKING.md to suggest developing systemd with the ideas from:
3057 https://0pointer.net/blog/testing-my-system-code-in-usr-without-modifying-usr.html
3058@@ -177,15 +669,6 @@ Features:
3059 cloud-init/ignitation and similar can parameterize the host with data they
3060 acquire.
3061
3062-* Add ConditionCredentialExists= or so, that allows conditionalizing services
3063- depending on whether a specific system credential is set. Usecase: a service
3064- similar to the ssh keygen service that installs any SSH host key supplied via
3065- system credentials into /etc/ssh.
3066-
3067-* drop support for kernels that lack ambient capabilities support (i.e. make
3068- 4.3 new baseline). Then drop support for "!!" modifier for ExecStart= which
3069- is only supported for such old kernels
3070-
3071 * sd-event: compat wd reuse in inotify code: keep a set of removed watch
3072 descriptors, and clear this set piecemeal when we see the IN_IGNORED event
3073 for it, or when read() returns EAGAIN or on IN_Q_OVERFLOW. Then, whenever we
3074@@ -194,12 +677,6 @@ Features:
3075 case the same wd is reused multiple times before we start processing
3076 IN_IGNORED again)
3077
3078-* sd-stub: set efi var indicating stub features, i.e. whether they pick up
3079- creds, sysexts and so on. similar to existing variable of sd-boot
3080-
3081-* sd-stub: set efi vars declaring TPM PCRs we measured creds/cmdline + sysext
3082- into (even if we hardcode them)
3083-
3084 * systemd-fstab-generator: support addition mount specifications via kernel
3085 cmdline. Usecase: invoke a VM, and mount a host homedir into it via
3086 virtio-fs.
3087@@ -222,10 +699,6 @@ Features:
3088 - sd-stub: automatically pick up microcode from ESP (/loader/microcode/*)
3089 and synthesize initrd from it, and measure it. Signing is not necessary, as
3090 microcode does that on its own. Pass as first initrd to kernel.
3091- - sd-stub should measure the kernel/initrd/… into a separate PCR, so that we
3092- have one PCR we can bind the encrypted creds to that is not effected by
3093- anything else but what we drop in via kernel-install, i.e. by earlier EFI
3094- code running (i.e. like PCR 4)
3095
3096 * Add a new service type very similar to Type=notify, that goes one step
3097 further and extends the protocol to cover reloads. Specifically, SIGHUP will
3098@@ -263,10 +736,6 @@ Features:
3099 * sd-boot: rework random seed handling following recent kernel changes: always
3100 pass seed to kernel, but credit only if secure boot is used
3101
3102-* sd-boot: hash data from GetNextHighMonotonicCount() into updated random seed,
3103- so that we might even open up up the random seed logic to non-SecureBoot
3104- systems?
3105-
3106 * sd-boot: also include the hyperv "vm generation id" in the random seed hash,
3107 to cover nicely for machine clones. It's found in the ACPI tables, which
3108 should be easily accessible from UEFI.
3109@@ -314,14 +783,6 @@ Features:
3110 the real kernel. benefit: downloading these stubs would be tiny and quick,
3111 hence cheap for enumeration.
3112
3113-* initialize machine ID from systemd credential picked up from the ESP via
3114- sd-stub, so that machine ID is stable even on systems where unified kernels
3115- are used, and hence kernel cmdline cannot be modified locally
3116-
3117-* in gpt-auto-generator: check partition uuids against such uuids supplied via
3118- sd-stub credentials. That way, we can support parallel OS installations with
3119- pre-built kernels.
3120-
3121 * sysext: measure all activated sysext into a TPM PCR
3122
3123 * maybe add a "syscfg" concept, that is almost entirely identical to "sysext",
3124@@ -386,10 +847,9 @@ Features:
3125 * doc: prep a document explaining PID 1's internal logic, i.e. transactions,
3126 jobs, units
3127
3128-* bootspec: remove tries counter from boot entry ids
3129-
3130 * bootspec: bring UEFI and userspace enumeration of bootspec entries back into
3131- sync, i.e. parse out tries in both
3132+ sync, i.e. parse out architecture field in sd-boot (currently only done in
3133+ userspace)
3134
3135 * automatically ignore threaded cgroups in cg_xyz().
3136
3137@@ -398,7 +858,7 @@ Features:
3138
3139 * systemd-dissect: show GPT disk UUID in output
3140
3141-* Enable RestricFileSystems= for all our long-running services (similar:
3142+* Enable RestrictFileSystems= for all our long-running services (similar:
3143 RestrictNetworkInterfaces=)
3144
3145 * Add systemd-analyze security checks for RestrictFileSystems= and
3146@@ -418,9 +878,6 @@ Features:
3147 such as masking out /usr/lib/ or so. We should probably refuse if existing
3148 inodes are replaced by other types of inodes or so.
3149
3150-* sysext: ensure one can build a sysext that can safely apply to *any* system
3151- (because it contains only static go binaries in /opt/ or so)
3152-
3153 * userdb: when synthesizing NSS records, pick "best" password from defined
3154 passwords, not just the first. i.e. if there are multiple defined, prefer
3155 unlocked over locked and prefer non-empty over empty.
3156@@ -473,7 +930,7 @@ Features:
3157 dep in the base OS image)
3158
3159 * sysext: automatically activate sysext images dropped in via new sd-stub
3160- sysext pickup logic.
3161+ sysext pickup logic. (must insist on verity + signature on those though)
3162
3163 * add concept for "exitrd" as inverse of "initrd", that we can transition to at
3164 shutdown, and has similar security semantics. This should then take the place
3165@@ -509,21 +966,36 @@ Features:
3166 images, to configure this. Also, add a kernel cmdline option for this, to be
3167 honoured by the gpt auto generator.
3168
3169+ Alternative idea: add "systemd.gpt_auto_policy=rhvs" to allow gpt-auto to
3170+ only mount root dir, /home/ dir, /var/ and /srv/, but nothing else. And then
3171+ minor extension to this, insisting on encryption, for example
3172+ "systemd.gpt_auto_policy=r+v+h" to require encryption for root and var but not
3173+ for /home/, and similar. Similar add --image-dissect-policy= to tools that
3174+ take --image= that take the same short string.
3175+
3176 * nspawn: maybe optionally insert .nspawn file as GPT partition into images, so
3177 that such container images are entirely stand-alone and can be updated as
3178 one.
3179
3180 * we probably should extend the root verity hash of the root fs into some PCR
3181- on boot. (i.e. maybe add a crypttab option tpm2-measure=8 or so to measure it
3182- into PCR 8)
3183+ on boot. (i.e. maybe add a veritytab option tpm2-measure=12 or so to measure
3184+ it into PCR 12); Similar: we probably should extend the LUKS volume key of
3185+ the root fs into some PCR on boot. (i.e. maybe add a crypttab option
3186+ tpm2-measure=15 or so to measure it into PCR 15); once both are in place
3187+ update gpt-auto-discovery to generate these by default for the partitions it
3188+ discovers. Static vendor stuff should probably end up in PCR 12 (i.e. the
3189+ verity hash), with local keys in PCR 15 (i.e. the encryption volume
3190+ key). That way, we nicely distinguish resources supplied by the OS vendor
3191+ (i.e. sysext, root verity) from those inherently local (i.e. encryption key),
3192+ which is useful if they shall be signed separately.
3193
3194 * add a "policy" to the dissection logic. i.e. a bit mask what is OK to mount,
3195 what must be read-only, what requires encryption, and what requires
3196 authentication.
3197
3198-* in uefi stub: query firmware regarding which PCRs are being used, store that
3199- in EFI var. then use this when enrolling TPM2 in cryptsetup to verify that
3200- the selected PCRs actually are used by firmware.
3201+* in uefi stub: query firmware regarding which PCR banks are being used, store
3202+ that in EFI var. then use this when enrolling TPM2 in cryptsetup to verify
3203+ that the selected PCRs actually are used by firmware.
3204
3205 * rework recursive read-only remount to use new mount API
3206
3207@@ -542,7 +1014,6 @@ Features:
3208 * sysupdate:
3209 - add fuzzing to the pattern parser
3210 - support casync as download mechanism
3211- - direct TPM2 PCR change handling, possible renrolling LUKS2 media if needed.
3212 - "systemd-sysupdate update --all" support, that iterates through all components
3213 defined on the host, plus all images installed into /var/lib/machines/,
3214 /var/lib/portable/ and so on.
3215@@ -624,18 +1095,11 @@ Features:
3216 * add tpm.target or so which is delayed until TPM2 device showed up in case
3217 firmware indicates there is one.
3218
3219-* Add concept for upgrading TPM2 enrollments, maybe a new switch
3220- --pcrs=4:<hash> or so, i.e. select a PCR to include in the hash, and then
3221- override its hash
3222-
3223 * TPM2: auto-reenroll in cryptsetup, as fallback for hosed firmware upgrades
3224 and such
3225
3226 * introduce a new group to own TPM devices
3227
3228-* cryptsetup: if only recovery keys are registered and no regular passphrases,
3229- ask user for "recovery key", not "passphrase"
3230-
3231 * cyptsetup: add option for automatically removing empty password slot on boot
3232
3233 * cryptsetup: optionally, when run during boot-up and password is never
3234@@ -690,9 +1154,6 @@ Features:
3235
3236 * if /usr/bin/swapoff fails due to OOM, log a friendly explanatory message about it
3237
3238-* Remove any support for booting without /usr pre-mounted in the initrd entirely.
3239- Update INITRD_INTERFACE.md accordingly.
3240-
3241 * pid1: Move to tracking of main pid/control pid of units per pidfd
3242
3243 * pid1: support new clone3() fork-into-cgroup feature
3244@@ -719,8 +1180,8 @@ Features:
3245 mapping to $RUNTIME_DIRECTORY, $STATE_DIRECTORY and such
3246
3247 * All tools that support --root= should also learn --image= so that they can
3248- operate on disk images directly. Specifically: bootctl, systemctl,
3249- coredumpctl. (Already done: systemd-nspawn, systemd-firstboot,
3250+ operate on disk images directly. Specifically: systemctl, coredumpctl.
3251+ (Already done: bootctl, systemd-nspawn, systemd-firstboot,
3252 systemd-repart, systemd-tmpfiles, systemd-sysusers, journalctl)
3253
3254 * seccomp: by default mask x32 ABI system wide on x86-64. it's on its way out
3255@@ -1040,7 +1501,8 @@ Features:
3256 "systemd-gdb" for attaching to the start-up of any system service in its
3257 natural habitat.
3258
3259-* gpt-auto logic: support encrypted swap, add kernel cmdline option to force it, and honour a gpt bit about it, plus maybe a configuration file
3260+* gpt-auto logic: support encrypted swap, add kernel cmdline option to force
3261+ it, and honour a gpt bit about it, plus maybe a configuration file
3262
3263 * add a percentage syntax for TimeoutStopSec=, e.g. TimeoutStopSec=150%, and
3264 then use that for the setting used in user@.service. It should be understood
3265@@ -1106,20 +1568,16 @@ Features:
3266 * there's probably something wrong with having user mounts below /sys,
3267 as we have for debugfs. for example, src/core/mount.c handles mounts
3268 prefixed with /sys generally special.
3269- http://lists.freedesktop.org/archives/systemd-devel/2015-June/032962.html
3270+ https://lists.freedesktop.org/archives/systemd-devel/2015-June/032962.html
3271
3272 * fstab-generator: default to tmpfs-as-root if only usr= is specified on the kernel cmdline
3273
3274-* initrd-parse-etc.service: can we skip daemon-reload if /sysroot/etc/fstab is missing?
3275- Note that we start initrd-fs.target and initrd-cleanup.target there, so a straightforward
3276- ConditionPathExists= is not enough.
3277-
3278 * docs: bring https://www.freedesktop.org/wiki/Software/systemd/MyServiceCantGetRealtime up to date
3279
3280 * add a job mode that will fail if a transaction would mean stopping
3281 running units. Use this in timedated to manage the NTP service
3282 state.
3283- http://lists.freedesktop.org/archives/systemd-devel/2015-April/030229.html
3284+ https://lists.freedesktop.org/archives/systemd-devel/2015-April/030229.html
3285
3286 * The udev blkid built-in should expose a property that reflects
3287 whether media was sensed in USB CF/SD card readers. This should then
3288@@ -1130,13 +1588,13 @@ Features:
3289 * hostnamectl: show root image uuid
3290
3291 * Find a solution for SMACK capabilities stuff:
3292- http://lists.freedesktop.org/archives/systemd-devel/2014-December/026188.html
3293+ https://lists.freedesktop.org/archives/systemd-devel/2014-December/026188.html
3294
3295 * synchronize console access with BSD locks:
3296- http://lists.freedesktop.org/archives/systemd-devel/2014-October/024582.html
3297+ https://lists.freedesktop.org/archives/systemd-devel/2014-October/024582.html
3298
3299 * as soon as we have sender timestamps, revisit coalescing multiple parallel daemon reloads:
3300- http://lists.freedesktop.org/archives/systemd-devel/2014-December/025862.html
3301+ https://lists.freedesktop.org/archives/systemd-devel/2014-December/025862.html
3302
3303 * figure out when we can use the coarse timers
3304
3305@@ -1204,6 +1662,8 @@ Features:
3306 - when reloading configuration, apply new cgroup configuration
3307 - when recursively showing the cgroup hierarchy, optionally also show
3308 the hierarchies of child processes
3309+- add settings for cgroup.max.descendants and cgroup.max.depth,
3310+ maybe use them for user@.service
3311
3312 * transient units:
3313 - add field to transient units that indicate whether systemd or somebody else saves/restores its settings, for integration with libvirt
3314@@ -1255,9 +1715,9 @@ Features:
3315 log both units as UNIT=, so that journalctl -u triggers on both.
3316 - generate better errors when people try to set transient properties
3317 that are not supported...
3318- http://lists.freedesktop.org/archives/systemd-devel/2015-February/028076.html
3319+ https://lists.freedesktop.org/archives/systemd-devel/2015-February/028076.html
3320 - maybe introduce WantsMountsFor=? Usecase:
3321- http://lists.freedesktop.org/archives/systemd-devel/2015-January/027729.html
3322+ https://lists.freedesktop.org/archives/systemd-devel/2015-January/027729.html
3323 - recreate systemd's D-Bus private socket file on SIGUSR2
3324 - move PAM code into its own binary
3325 - when we automatically restart a service, ensure we restart its rdeps, too.
3326@@ -1360,7 +1820,6 @@ Features:
3327 - longer term: priority inheritance
3328 - dbus spec updates:
3329 - NameLost/NameAcquired obsolete
3330- - GVariant
3331 - path escaping
3332 - update systemd.special(7) to mention that dbus.socket is only about the compatibility socket now
3333
3334@@ -1382,32 +1841,11 @@ Features:
3335
3336 * mount: turn dependency information from /proc/self/mountinfo into dependency information between systemd units.
3337
3338-* firstboot: allow provisioning of /etc/hosts entries, so that we can via the
3339- credentials logic insert host name to resolve into containers/hosts. Usecase:
3340- fork a container, and make it ping some specific address which is defined by
3341- the host on invocation
3342-
3343 * systemd-firstboot: make sure to always use chase_symlinks() before
3344 reading/writing files
3345
3346 * firstboot: make it useful to be run immediately after yum --installroot to set up a machine. (most specifically, make --copy-root-password work even if /etc/passwd already exists
3347
3348-* sd-boot: define a drop-in dir in the ESP that may contain X.509
3349- certificates. If the firmware is detected to be in setup mode, automatically
3350- enroll them as PK/KEK/db, turn off setup mode and proceed. Optionally,
3351- instead of auto-enrolling them add them to the sd-boot menu, giving the user
3352- the option to manually enroll them, after selecting the menu entry. This way,
3353- installer images can just drop the certfiicates in the ESP, and on first boot
3354- can easily enroll the keys without ever booting up.
3355-
3356-* efi stub: optionally, load initrd from disk as a separate file, HMAC check it
3357- with key from TPM, bound to PCR, refusing if failing. This would then allow
3358- traditional distros that generate initrds locally to secure them with TPM:
3359- after generating the initrd, do the HMAC calculation, put result in initrd
3360- filename, done. This would then bind the validity of the initrd to the local
3361- host, and used kernel, and means people cannot change initrd or kernel
3362- without booting the kernel + initrd.
3363-
3364 * EFI:
3365 - honor language efi variables for default language selection (if there are any?)
3366 - honor timezone efi variables for default timezone selection (if there are any?)
3367@@ -1421,9 +1859,6 @@ Features:
3368 - show whether UEFI audit mode is available
3369 - teach it to prepare an ESP wholesale, i.e. with mkfs.vfat invocation
3370 - teach it to copy in unified kernel images and maybe type #1 boot loader spec entries from host
3371- - make it operate on loopback files, dissecting enough to find ESP to operate on
3372- - bootspec: properly support boot attempt counters when parsing entry file names
3373- - support --quiet in is-installed, update
3374
3375 * kernel-install:
3376 - optionally, support generating type #2 entries instead of type #1, including signing them
3377@@ -1668,10 +2103,17 @@ Features:
3378
3379 * systemd-repart: allow disabling growing of specific partitions, or making
3380 them (think ESP: we don't ever want to grow it, since we cannot resize vfat)
3381+ Also add option to disable operation via kernel command line.
3382
3383 * systemd-repart: make it a static checker during early boot for existence and
3384 absence of other partitions for trusted boot environments
3385
3386+* systemd-repart: add support for SD_GPT_FLAG_GROWFS also on real systems, i.e.
3387+ generate some unit to actually enlarge the fs after growing the partition
3388+ during boot.
3389+
3390+* systemd-repart: do not print "Successfully resized …" when no change was done.
3391+
3392 * document:
3393 - document that deps in [Unit] sections ignore Alias= fields in
3394 [Install] units of other units, unless those units are disabled
3395@@ -1802,10 +2244,13 @@ Features:
3396 - kill scsi_id
3397 - add trigger --subsystem-match=usb/usb_device device
3398 - reimport udev db after MOVE events for devices without dev_t
3399+ - re-enable ProtectClock= once only cgroupsv2 is supported.
3400+ See f562abe2963bad241d34e0b308e48cf114672c84.
3401
3402 * coredump:
3403 - save coredump in Windows/Mozilla minidump format
3404 - when truncating coredumps, also log the full size that the process had, and make a metadata field so we can report truncated coredumps
3405+ - add examples for other distros in ELF_PACKAGE_METADATA
3406
3407 * support crash reporting operation modes (https://live.gnome.org/GnomeOS/Design/Whiteboards/ProblemReporting)
3408
3409@@ -1818,6 +2263,7 @@ Features:
3410 - add --test mode
3411 - teach tmpfiles.d q/Q logic something sensible in the context of XFS/ext4
3412 project quota
3413+ - teach tmpfiles.d m/M to move / atomic move + symlink old -> new
3414
3415 * udev-link-config:
3416 - Make sure ID_PATH is always exported and complete for
3417diff --git a/catalog/systemd.bg.catalog.in b/catalog/systemd.bg.catalog.in
3418index 65e0833..34645dc 100644
3419--- a/catalog/systemd.bg.catalog.in
3420+++ b/catalog/systemd.bg.catalog.in
3421@@ -1,6 +1,6 @@
3422 # SPDX-License-Identifier: LGPL-2.1-or-later
3423 #
3424-# Copyright © 2016 Alexander Shopov <ash@kambanaria.org>
3425+# Copyright © 2016, 2022 Alexander Shopov <ash@kambanaria.org>
3426
3427 # Message catalog for systemd's own messages
3428
3429@@ -26,7 +26,7 @@ Support: %SUPPORT_URL%
3430 журнални файлове.
3431
3432 -- ec387f577b844b8fa948f33cad9a75e6
3433-Subject: Пространството върху диска заето от журналните файлове
3434+Subject: Пространство върху диска заето от журналните файлове
3435 Defined-By: systemd
3436 Support: %SUPPORT_URL%
3437
3438@@ -42,13 +42,13 @@ Support: %SUPPORT_URL%
3439 За повече информация прегледайте „journald.conf(5)“ от ръководството.
3440
3441 -- a596d6fe7bfa4994828e72309e95d61e
3442-Subject: Съобщенията от някоя услуга не са допуснати
3443+Subject: Съобщенията от някоя услуга са отхвърлени
3444 Defined-By: systemd
3445 Support: %SUPPORT_URL%
3446 Documentation: man:journald.conf(5)
3447
3448 Някоя услуга генерира прекалено много съобщения за кратък период.
3449-Част само от нейните съобщения са отхвърляни.
3450+Част от нейните съобщения са отхвърляни.
3451
3452 Съобщенията от другите услуги не са засегнати.
3453
3454@@ -66,50 +66,62 @@ Support: %SUPPORT_URL%
3455 смогваше да ги обработи достатъчно бързо.
3456
3457 -- fc2e22bc6ee647b6b90729ab34a250b1
3458-Subject: Процес № @COREDUMP_PID@ (@COREDUMP_COMM@) запази освободената памет
3459+Subject: Процес @COREDUMP_PID@ (@COREDUMP_COMM@) запази освободената памет
3460 Defined-By: systemd
3461 Support: %SUPPORT_URL%
3462 Documentation: man:core(5)
3463
3464-Процес № @COREDUMP_PID@ (@COREDUMP_COMM@) заби, представянето му в паметта
3465+Процес @COREDUMP_PID@ (@COREDUMP_COMM@) заби, представянето му в паметта
3466 бе запазено.
3467
3468 Най-често това се дължи на грешка в забилата програма и следва да я
3469 докладвате на създателите на програмата.
3470
3471+-- 5aadd8e954dc4b1a8c954d63fd9e1137
3472+Subject: Файлът с представяне в паметта е отрязан до @SIZE_LIMIT@ байта
3473+Defined-By: systemd
3474+Support: %SUPPORT_URL%
3475+Documentation: man:coredump.conf(5)
3476+
3477+Заделената памет за процеса надвишава настроения максимум за обработка и
3478+съхранение от systemd-coredump(8). Запазени са само първите @SIZE_LIMIT@ байта.
3479+Този файл (core) може да се окаже полезен, въпреки че е отсечен. Част от
3480+инструментите за работа като gdb(1) може да изведат предупреждение за
3481+отсичането.
3482+
3483 -- 8d45620c1a4348dbb17410da57c60c66
3484-Subject: Създадена е нова сесия № @SESSION_ID@ за потребителя „@USER_ID@“
3485+Subject: Създадена е нова сесия @SESSION_ID@ за потребителя @USER_ID@
3486 Defined-By: systemd
3487 Support: %SUPPORT_URL%
3488 Documentation: sd-login(3)
3489
3490-За потребителя „@USER_ID@“ е създадена нова сесия № @SESSION_ID@.
3491+За потребителя „@USER_ID@“ е създадена нова сесия @SESSION_ID@.
3492
3493-Водещият процес на сесията е: @LEADER@
3494+Водещият процес на сесията е @LEADER@
3495
3496 -- 3354939424b4456d9802ca8333ed424a
3497-Subject: Сесия № @SESSION_ID@ приключи
3498+Subject: Сесия @SESSION_ID@ приключи
3499 Defined-By: systemd
3500 Support: %SUPPORT_URL%
3501 Documentation: sd-login(3)
3502
3503-Сесия № @SESSION_ID@ приключи работа.
3504+Сесия @SESSION_ID@ приключи работа.
3505
3506 -- fcbefc5da23d428093f97c82a9290f7b
3507-Subject: Налично е ново работно място № @SEAT_ID@
3508+Subject: Налично е ново работно място @SEAT_ID@
3509 Defined-By: systemd
3510 Support: %SUPPORT_URL%
3511 Documentation: sd-login(3)
3512
3513-Новото работно място № @SEAT_ID@ е настроено и готово за работа.
3514+Новото работно място @SEAT_ID@ е настроено и готово за работа.
3515
3516 -- e7852bfe46784ed0accde04bc864c2d5
3517-Subject: Работното място № @SEAT_ID@ е премахнато
3518+Subject: Работното място @SEAT_ID@ е премахнато
3519 Defined-By: systemd
3520 Support: %SUPPORT_URL%
3521 Documentation: sd-login(3)
3522
3523-Работното място № @SEAT_ID@ вече не е налично.
3524+Работното място @SEAT_ID@ вече не е налично.
3525
3526 -- c7a787079b354eaaa9e77b371893cd27
3527 Subject: Смяна на системното време
3528@@ -120,7 +132,7 @@ Support: %SUPPORT_URL%
3529 1 януари 1970.
3530
3531 -- 45f82f4aef7a4bbf942ce861d1f20990
3532-Subject: Смяна на часовия пояс да е „@TIMEZONE@“
3533+Subject: Смяна на часовия пояс да е @TIMEZONE@
3534 Defined-By: systemd
3535 Support: %SUPPORT_URL%
3536
3537@@ -142,15 +154,26 @@ Support: %SUPPORT_URL%
3538
3539 Стартирането на потребителските програми отне @USERSPACE_USEC@ микросекунди.
3540
3541+-- eed00a68ffd84e31882105fd973abdd1
3542+Subject: Стартирането на управлението на потребител завърши
3543+Defined-By: systemd
3544+Support: %SUPPORT_URL%
3545+
3546+Процесът за управлението на потребител @_UID@ завърши. Всички услуги насрочени
3547+за това са стартиране, но може да има други услуги, които да предстои да се
3548+стартират.
3549+
3550+Стартирането на управлението на потребител отне @USERSPACE_USEC@ микросекунди.
3551+
3552 -- 6bbd95ee977941e497c48be27c254128
3553-Subject: Системата е приспана на ниво „@SLEEP@“
3554+Subject: Системата е приспана на ниво @SLEEP@
3555 Defined-By: systemd
3556 Support: %SUPPORT_URL%
3557
3558 Системата премина в състояние на приспиване „@SLEEP@“.
3559
3560 -- 8811e6df2a8e40f58a94cea26f8ebf14
3561-Subject: Системата се събуди след приспиване на ниво„@SLEEP@“
3562+Subject: Системата се събуди след приспиване на ниво @SLEEP@
3563 Defined-By: systemd
3564 Support: %SUPPORT_URL%
3565
3566@@ -164,54 +187,71 @@ Support: %SUPPORT_URL%
3567 Започна процедурата на Systemd за спиране на системата. Всички процеси и
3568 услуги се спират, всички файлови системи се демонтират.
3569
3570+-- c14aaf76ec284a5fa1f105f88dfb061c
3571+Subject: Започна процедура за връщане на заводските настройки на системата
3572+Defined-By: systemd
3573+Support: %SUPPORT_URL%
3574+
3575+Започна процедура за връщане на заводските настройки на системата. Самото
3576+действие е изцяло определено от имплементацията. Типично се връщат заводското
3577+състояние и настройки от производителя.
3578+
3579 -- 7d4958e842da4a758f6c1cdc7b36dcc5
3580-Subject: Модул „@UNIT@“ се стартира
3581+Subject: Модул @UNIT@ се стартира
3582 Defined-By: systemd
3583 Support: %SUPPORT_URL%
3584
3585-Модулът „@UNIT@“ се стартира в момента
3586+Модулът „@UNIT@“ се стартира в момента.
3587+
3588+Идентификаторът на задача е @JOB_ID@.
3589
3590 -- 39f53479d3a045ac8e11786248231fbf
3591-Subject: Модул „@UNIT@“ вече е стартиран
3592+Subject: Модул @UNIT@ вече е стартиран
3593 Defined-By: systemd
3594 Support: %SUPPORT_URL%
3595
3596 Стартирането на модул „@UNIT@“ завърши.
3597
3598-Резултатът е: @JOB_RESULT@
3599+Идентификаторът на задача е @JOB_ID@.
3600
3601--- de5b426a63be47a7b6ac3eaac82e2f6f
3602-Subject: Модул „@UNIT@“ се спира
3603+-- be02cf6855d2428ba40df7e9d022f03d
3604+Subject: Модул @UNIT@ не успя да стартира
3605 Defined-By: systemd
3606 Support: %SUPPORT_URL%
3607
3608-Модулът „@UNIT@“ се спира в момента.
3609+Модулът „@UNIT@“ не успя да стартира.
3610
3611--- 9d1aaa27d60140bd96365438aad20286
3612-Subject: Модул „@UNIT@“ вече е спрян
3613+Идентификаторът на задача е @JOB_ID@, а резултатът от нея е @JOB_RESULT@.
3614+
3615+-- de5b426a63be47a7b6ac3eaac82e2f6f
3616+Subject: Модул @UNIT@ се спира
3617 Defined-By: systemd
3618 Support: %SUPPORT_URL%
3619
3620-Спирането на модул „@UNIT@“ завърши.
3621+Модулът „@UNIT@“ се спира в момента.
3622
3623--- be02cf6855d2428ba40df7e9d022f03d
3624-Subject: Модулът „@UNIT@“ не успя да стартира
3625+Идентификаторът на задача е @JOB_ID@.
3626+
3627+-- 9d1aaa27d60140bd96365438aad20286
3628+Subject: Модул @UNIT@ вече е спрян
3629 Defined-By: systemd
3630 Support: %SUPPORT_URL%
3631
3632-Модулът „@UNIT@“ не успя да стартира.
3633+Спирането на модул „@UNIT@“ завърши.
3634
3635-Резултатът е: @JOB_RESULT@
3636+Идентификаторът на задача е @JOB_ID@, а резултатът от нея е @JOB_RESULT@.
3637
3638 -- d34d037fff1847e6ae669a370e694725
3639-Subject: Модулът „@UNIT@“ започна презареждане на настройките си
3640+Subject: Модул @UNIT@ започна презареждане на настройките си
3641 Defined-By: systemd
3642 Support: %SUPPORT_URL%
3643
3644-Модулът „@UNIT@“ започна презареждане на настройките си.
3645+Модулът „@UNIT@“ започна презареждане на настройките си.(
3646+
3647+Идентификаторът на задача е @JOB_ID@.)
3648
3649 -- 7b05ebc668384222baa8881179cfda54
3650-Subject: Модулът „@UNIT@“ завърши презареждането на настройките си
3651+Subject: Модулът @UNIT@ завърши презареждането на настройките си
3652 Defined-By: systemd
3653 Support: %SUPPORT_URL%
3654
3655@@ -220,13 +260,13 @@ Support: %SUPPORT_URL%
3656 Резултатът e: @JOB_RESULT@
3657
3658 -- 641257651c1b4ec9a8624d7a40a9e1e7
3659-Subject: Програмата „@EXECUTABLE@“ не успя да се стартира
3660+Subject: Програмата @EXECUTABLE@ не успя да се стартира
3661 Defined-By: systemd
3662 Support: %SUPPORT_URL%
3663
3664 Програмата „@EXECUTABLE@“ не успя да се стартира.
3665
3666-Върнатият номер на грешка е: @ERRNO@
3667+Върнатият номер на грешка е: @ERRNO@.
3668
3669 -- 0027229ca0644181a76c4e92458afa2e
3670 Subject: Поне едно съобщение не бе препратено към syslog
3671@@ -234,22 +274,17 @@ Defined-By: systemd
3672 Support: %SUPPORT_URL%
3673
3674 Поне едно съобщение не бе препратено към журналната услуга syslog, която
3675-работи успоредно с journald.
3676-
3677-Най-често това указва, че тази реализация на syslog не може да поеме текущия
3678-обем съобщения.
3679+работи успоредно с journald. Най-често това указва, че тази реализация на
3680+syslog не може да поеме текущия обем съобщения.
3681
3682 -- 1dee0369c7fc4736b7099b38ecb46ee7
3683 Subject: Точката за монтиране не е празна
3684 Defined-By: systemd
3685 Support: %SUPPORT_URL%
3686
3687-Директорията „@WHERE@“ не е празна.
3688-
3689-Тя е указана като точка за монтиране — или като второ поле във файла
3690-„/etc/fstab“, или чрез директивата „Where=“ в някой от файловете за
3691-модул на Systemd.
3692-
3693+Директорията „@WHERE@“ не е празна. Тя е указана като точка
3694+за монтиране — или като второ поле във файла „/etc/fstab“, или чрез
3695+директивата „Where=“ в някой от файловете за модул на Systemd.
3696 Това не пречи на самото монтиране, но вече съществуващите там файлове и
3697 директории няма да се виждат повече, освен ако ръчно не монтирате тази
3698 непразна директория някъде другаде.
3699@@ -274,14 +309,14 @@ Support: %SUPPORT_URL%
3700 Subject: Режимът DNSSEC е изключен, защото сървърът не го поддържа
3701 Defined-By: systemd
3702 Support: %SUPPORT_URL%
3703-Documentation: man:systemd-resolved.service(8) resolved.conf(5)
3704+Documentation: man:systemd-resolved.service(8)
3705+Documentation: man:resolved.conf(5)
3706
3707 Локалната услуга за имена (systemd-resolved.service) установи, че
3708-настроения сървър за DNS не поддържа DNSSEC, затова този режим е изключен.
3709+настроеният сървър за DNS не поддържа DNSSEC, затова този режим е изключен.
3710
3711 Това се случва, когато директивата „DNSSEC=allow-downgrade“ е включена във
3712 файла „resolved.conf“ и зададеният сървър за DNS не е съвместим с DNSSEC.
3713-
3714 Внимавайте, защото това може да позволи атака, при която трета страна ви
3715 връща отговори, които да предизвикат понижаването на сигурността от DNSSEC
3716 до DNS.
3717@@ -295,8 +330,7 @@ Defined-By: systemd
3718 Support: %SUPPORT_URL%
3719 Documentation: man:systemd-resolved.service(8)
3720
3721-Заявка или запис в DNS не издържа проверка с DNSSEC.
3722-
3723+Заявка или запис в DNS не издържа̀ проверка с DNSSEC.
3724 Това обикновено показва вмешателство на трета страна в канала ви за връзка.
3725
3726 -- 4d4408cfd0d144859184d1e65d7c8a65
3727@@ -306,5 +340,191 @@ Support: %SUPPORT_URL%
3728 Documentation: man:systemd-resolved.service(8)
3729
3730 Анулирана е доверена котва за DNSSEC и трябва да настроите нова.
3731-
3732 Понякога новата идва с обновяване на системата.
3733+
3734+-- 5eb03494b6584870a536b337290809b3
3735+Subject: Насрочено е автоматично рестартиране на модул
3736+Defined-By: systemd
3737+Support: %SUPPORT_URL%
3738+
3739+Насрочено е автоматично рестартиране на модула „@UNIT@“
3740+в следствие на директивата „Restart=“.
3741+
3742+-- ae8f7b866b0347b9af31fe1c80b127c0
3743+Subject: Модулът консумира ресурсите
3744+Defined-By: systemd
3745+Support: %SUPPORT_URL%
3746+
3747+Модулът „@UNIT@“ завърши работа и изконсумира указаните ресурси.
3748+
3749+-- 7ad2d189f7e94e70a38c781354912448
3750+Subject: Успешен модул
3751+Defined-By: systemd
3752+Support: %SUPPORT_URL%
3753+
3754+Модулът „@UNIT@“ успешно премина в „мъртво“ състояние (dead).
3755+
3756+-- 0e4284a0caca4bfc81c0bb6786972673
3757+Subject: Прескочен модул
3758+Defined-By: systemd
3759+Support: %SUPPORT_URL%
3760+
3761+Модулът „@UNIT@“ е прескочен поради неуспешно изпълнение на командата в
3762+директивата „ExecCondition=“ и премина в „мъртво“ състояние (dead) с резултат
3763+„@UNIT_RESULT@“.
3764+
3765+-- d9b373ed55a64feb8242e02dbe79a49c
3766+Subject: Неуспешен модул
3767+Defined-By: systemd
3768+Support: %SUPPORT_URL%
3769+
3770+Модулът „@UNIT@“ премина в състояние за неуспех „failed“ с резултат „@UNIT_RESULT@“.
3771+
3772+-- 98e322203f7a4ed290d09fe03c09fe15
3773+Subject: Завършил модул
3774+Defined-By: systemd
3775+Support: %SUPPORT_URL%
3776+
3777+Процесът, настроен за „@COMMAND@=“ към модула „@UNIT@“ завърши работа.
3778+
3779+Изходният код е „@EXIT_CODE@“, а изходното състояние — „@EXIT_STATUS@“.
3780+
3781+-- 50876a9db00f4c40bde1a2ad381c3a1b
3782+Subject: Настройките на системата може да доведат до проблеми
3783+Defined-By: systemd
3784+Support: %SUPPORT_URL%
3785+
3786+Възможни са следните етикети:
3787+⁃ „split-usr“ — „/usr“ е отделна файлова система, която не е била монтирана при
3788+ стартирането на systemd
3789+⁃ „cgroups-missing“ — ядрото е компилирано без поддръжка на „cgroup“ или е
3790+ ограничен достъпът до тази подсистема
3791+⁃ „var-run-bad“ — „/var/run“ не е символна връзка към „/run“
3792+⁃ "overflowuid-not-65534“ — идентификаторът на непознатия потребител („unknown“)
3793+ за NFS или пространство за имена на потребители не е е 65534
3794+⁃ „overflowgid-not-65534“ — идентификаторът на непознатата група („unknown“)
3795+ за NFS или пространство за имена на групи не е е 65534
3796+Текущо системата е отбелязана като „@TAINT@“.
3797+
3798+-- fe6faa94e7774663a0da52717891d8ef
3799+Subject: Процес от модула „@UNIT@“ е убит поради липса на памет
3800+Defined-By: systemd
3801+Support: %SUPPORT_URL%
3802+
3803+Процес от модула „@UNIT@“ е убит от подсистемата на Linux за
3804+работа при недостиг на памет (OOM killer). Това обикновено означава, че
3805+системата е имала малко памет и се е наложило аварийното ѝ освобождаване.
3806+Някой процес от модула „@UNIT@“ е бил набелязан като най-добрия
3807+кандидат и е бил убит от ядрото.
3808+
3809+Note that the memory pressure might or might not have been caused by @UNIT@.
3810+
3811+-- b61fdac612e94b9182285b998843061f
3812+Subject: Позволено име на потребител/група @USER_GROUP_NAME@ не съответства на строгите правила за именоване
3813+Defined-By: systemd
3814+Support: %SUPPORT_URL%
3815+Documentation: https://systemd.io/USER_NAMES
3816+
3817+Указано е име на потребител/група „@USER_GROUP_NAME@“. То е прието, защото
3818+отговаря на облекчените. Въпреки това то не отговаря на строгите правила.
3819+
3820+Те съответстват на регулярния израз:
3821+
3822+^[a-zA-Z_][a-zA-Z0-9_-]{0,30}$
3823+
3824+Облекчените правила приемат всички имена без празния низ; имената съдържащи
3825+нулев байт, контролни знаци, „:“ или „/“; имена, които не са в UTF-8;
3826+имена които почват или завършват с празни знаци; които са „.“ или „..“;
3827+които съдържат само цифри; които започват с „-“ и продължават само с цифри.
3828+
3829+-- 1b3bb94037f04bbf81028e135a12d293
3830+Subject: Не може да се избере име за модул на базата на пътя @MOUNT_POINT@
3831+Defined-By: systemd
3832+Support: %SUPPORT_URL%
3833+
3834+Следната точка за монтиране не може да се преобразува в име на монтиращ модул
3835+(.mount):
3836+
3837+ @MOUNT_POINT@
3838+
3839+Най-често това се дължи на факта, че пътят за монтиране е по-дълъг от максимума
3840+за име на модул.
3841+
3842+systemd динамично задава модули „.mount“ за всички монтирани ресурси в системата.
3843+Затова се ползва прост алгоритъм за екраниране на знаци — взема се абсолютния
3844+път, всички знаци „/“ се заменят с „-“ (с изключение на водещия, който се
3845+пропуска). Всички знаци извън буквите и числата (вкл. „:“, „-“, „_“, „.“, „\“)
3846+се заменят с „\xNN“, където NN е шестнадесетичният код на знака. Добавя се и
3847+суфиксът „.mount“. Полученият низ трябва да е по-къс от 256 знака, за да се
3848+ползва за име на модул. Ограничението цели всички имена на модули да може да са
3849+и имена на файлове. Ако низът за име е по-дълъг, той не може да се ползва за име
3850+на модул. В такъв случай systemd няма да създаде модул и няма да може да се ползва
3851+за управление на точката на монтиране. Тя няма да се появява в таблицата с модули
3852+на мениджъра на системата и съответно няма да се извършва безопасно изключване
3853+при изключването на системата.
3854+
3855+Препоръчваме да не ползвате толкова дълги имена като точки за монтиране. Ако все
3856+пак ги ползвате, ще трябва да ги управлявате независимо от systemd, т.е. сами
3857+администрирайте монтирането и изключването.
3858+
3859+-- b480325f9c394a7b802c231e51a2752c
3860+Subject: Настроен е специален потребител @OFFENDING_USER@ — това е опасно!
3861+Defined-By: systemd
3862+Support: %SUPPORT_URL%
3863+Documentation: https://systemd.io/UIDS-GIDS
3864+
3865+Модулът „@UNIT@“ е настроен да ползва директивата „User=@OFFENDING_USER@“.
3866+
3867+Това е опасно. Основното предназначение на „@OFFENDING_USER@“ на системите на
3868+база Linux е да е собственик на файловете със собственик, който не е известен
3869+на локалната система. Този потребител се ползва най-вече от клиента за NFS и
3870+пространствата за имена за потребители. Ако този модул стартира процеси от
3871+името на този потребител, те може да получат достъп до файловете, които са с
3872+неизвестен собственик.
3873+
3874+Силно препоръчване да стартирате процеси с този потребител, особено на системи
3875+ползващи NFS или контейнери. Вместо това създайте потребител и негов идентификатор
3876+специфичен за тази услуга или статично с „systemd-sysusers“, или динамично чрез
3877+директивата на модула „DynamicUser=“.
3878+
3879+-- 1c0454c1bd2241e0ac6fefb4bc631433
3880+Subject: Модулът systemd-udev-settle.service е остарял
3881+Defined-By: systemd
3882+Support: %SUPPORT_URL%
3883+
3884+Препоръчва се да не ползвате остарелия модул на systemd —
3885+„systemd-udev-settle.service“. Той нарочно забавя процеса на стартиране, но
3886+всъщност не предоставя гаранциите, които другите системи очакват от него.
3887+Като цяло е грешка да го ползвате или разчитате на него поради проблеми с
3888+паралелността.
3889+
3890+Традиционно задачата на този модул е да изчака проверката и инициализацията на
3891+всички устройства на системата, като завършването на стартирането се отлага до
3892+приключването на тази фаза. Днешните системи не работят така — хардуерните
3893+устройства се появяват в произволен момент, а проверката и инициализацията им
3894+може да отнеме много време. В общия случай стартирането не може да се забави
3895+до инициализацията на всички устройства, защото не е добре дефинирано кои са
3896+всички устройства и кога се открити. Това се отнася с особено значение за
3897+устройствата през USB или тези, които се ползват през мрежата.
3898+
3899+Програмите, които изискват определен хардуер (напр. мрежово или блоково
3900+устройство), трябва изрично да чакат конкретния хардуер да стартира, а останалата
3901+работа трябва да е асинхронна, така че инициализацията на всяко устройство да
3902+позволява на модулите, зависещи от него, да продължат работа, без да се забавя
3903+процеса на стартиране.
3904+
3905+Ако въпросният софтуер не работи така, а изрично изчаква
3906+„systemd-udev-settle.service“, това е грешка и трябва да се поправи.
3907+
3908+Изпратете доклад на грешка до авторите на следните модули, като поискате да не
3909+зависят от „systemd-udev-settle.service“, а само от съответното устройство:
3910+
3911+ @OFFENDING_UNITS@
3912+
3913+-- 7c8a41f37b764941a0e1780b1be2f037
3914+Subject: Първоначална синхронизация на часовника
3915+Defined-By: systemd
3916+Support: %SUPPORT_URL%
3917+
3918+За първи път след текущото стартиране е извършена синхронизация
3919+със сървър за NTP — системният часовник е настроен.
3920diff --git a/catalog/systemd.catalog.in b/catalog/systemd.catalog.in
3921index a3f05c0..4c29128 100644
3922--- a/catalog/systemd.catalog.in
3923+++ b/catalog/systemd.catalog.in
3924@@ -126,13 +126,6 @@ Support: %SUPPORT_URL%
3925
3926 The system clock has been changed to @REALTIME@ microseconds after January 1st, 1970.
3927
3928--- c7a787079b354eaaa9e77b371893cd27 de
3929-Subject: Zeitänderung
3930-Defined-By: systemd
3931-Support: %SUPPORT_URL%
3932-
3933-Die System-Zeit wurde geändert auf @REALTIME@ Mikrosekunden nach dem 1. Januar 1970.
3934-
3935 -- 45f82f4aef7a4bbf942ce861d1f20990
3936 Subject: Time zone change to @TIMEZONE@
3937 Defined-By: systemd
3938@@ -151,7 +144,7 @@ might still be busy with completing start-up.
3939
3940 Kernel start-up required @KERNEL_USEC@ microseconds.
3941
3942-Initial RAM disk start-up required @INITRD_USEC@ microseconds.
3943+Initrd start-up required @INITRD_USEC@ microseconds.
3944
3945 Userspace start-up required @USERSPACE_USEC@ microseconds.
3946
3947@@ -534,3 +527,15 @@ Support: %SUPPORT_URL%
3948
3949 For the first time during the current boot an NTP synchronization has been
3950 acquired and the local system clock adjustment has been initiated.
3951+
3952+-- 3f7d5ef3e54f4302b4f0b143bb270cab
3953+Subject: TPM PCR Extended
3954+Defined-By: systemd
3955+Support: %SUPPORT_URL%
3956+
3957+The string '@MEASURING@' has been extended into Trusted Platform Module's (TPM)
3958+Platform Configuration Register (PCR) @PCR@, on banks @BANKS@.
3959+
3960+Whenever the system transitions to a new runtime phase, a different string is
3961+extended into the specified PCR, to ensure that security policies for TPM-bound
3962+secrets and other resources are limited to specific phases of the runtime.
3963diff --git a/catalog/systemd.de.catalog.in b/catalog/systemd.de.catalog.in
3964index 97b16d0..17c8b78 100644
3965--- a/catalog/systemd.de.catalog.in
3966+++ b/catalog/systemd.de.catalog.in
3967@@ -11,3 +11,10 @@ ein Speicherabbild wurde generiert.
3968
3969 Üblicherweise ist dies ein Hinweis auf einen Programmfehler und sollte
3970 als Fehler dem jeweiligen Hersteller gemeldet werden.
3971+
3972+-- c7a787079b354eaaa9e77b371893cd27
3973+Subject: Zeitänderung
3974+Defined-By: systemd
3975+Support: %SUPPORT_URL%
3976+
3977+Die System-Zeit wurde geändert auf @REALTIME@ Mikrosekunden nach dem 1. Januar 1970.
3978diff --git a/coccinelle/in_set.cocci b/coccinelle/in_set.cocci
3979index 8be786d..a3b02f9 100644
3980--- a/coccinelle/in_set.cocci
3981+++ b/coccinelle/in_set.cocci
3982@@ -1,26 +1,38 @@
3983 /* SPDX-License-Identifier: LGPL-2.1-or-later */
3984 /* Limit the number of expressions to 6 for performance reasons */
3985+
3986+@ is_in_assert_cc @
3987+identifier id = assert_cc;
3988+position p1;
3989+expression e;
3990+constant n0;
3991+@@
3992+
3993+ id(e@p1 == n0 || ...);
3994+
3995 @@
3996 expression e;
3997+position p2 != is_in_assert_cc.p1;
3998 /* Exclude JsonVariant * from the transformation, as it can't work with the
3999 * current version of the IN_SET macro */
4000 typedef JsonVariant;
4001 type T != JsonVariant*;
4002 constant T n0, n1, n2, n3, n4, n5;
4003 @@
4004+
4005 (
4006-- e == n0 || e == n1 || e == n2 || e == n3 || e == n4 || e == n5
4007+- e@p2 == n0 || e == n1 || e == n2 || e == n3 || e == n4 || e == n5
4008 + IN_SET(e, n0, n1, n2, n3, n4, n5)
4009 |
4010-- e == n0 || e == n1 || e == n2 || e == n3 || e == n4
4011+- e@p2 == n0 || e == n1 || e == n2 || e == n3 || e == n4
4012 + IN_SET(e, n0, n1, n2, n3, n4)
4013 |
4014-- e == n0 || e == n1 || e == n2 || e == n3
4015+- e@p2 == n0 || e == n1 || e == n2 || e == n3
4016 + IN_SET(e, n0, n1, n2, n3)
4017 |
4018-- e == n0 || e == n1 || e == n2
4019+- e@p2 == n0 || e == n1 || e == n2
4020 + IN_SET(e, n0, n1, n2)
4021 |
4022-- e == n0 || e == n1
4023+- e@p2 == n0 || e == n1
4024 + IN_SET(e, n0, n1)
4025 )
4026diff --git a/coccinelle/macros.h b/coccinelle/macros.h
4027index 6a0a64b..f44b3f2 100644
4028--- a/coccinelle/macros.h
4029+++ b/coccinelle/macros.h
4030@@ -189,8 +189,6 @@
4031 (i) != (p); \
4032 (i) = (i)->name##_next ? (i)->name##_next : (head))
4033
4034-#define LIST_IS_EMPTY(head) \
4035- (!(head))
4036 #define LIST_JOIN(name,a,b) \
4037 do { \
4038 assert(b); \
4039diff --git a/debian/systemd.NEWS b/debian/NEWS
4040similarity index 100%
4041rename from debian/systemd.NEWS
4042rename to debian/NEWS
4043diff --git a/debian/changelog b/debian/changelog
4044index c7ddcfc..de27414 100644
4045--- a/debian/changelog
4046+++ b/debian/changelog
4047@@ -1,3 +1,287 @@
4048+systemd (252.1-1ubuntu1) lunar; urgency=medium
4049+
4050+ [ Nick Rosbrook ]
4051+ * Merge 252.1-1 from Debian unstable
4052+ - Resolve merge conflicts:
4053+ + debian/patches: Do not take back Add-support-for-TuxOnIce-hibernation.patch.
4054+ + debian/libsystemd0.symbols: Increment sd_hwdb_new_from_path min version
4055+ to reduce delta with Debian.
4056+ + debian/control: Keep Ubuntu systemd-repart delta for now.
4057+ + debian/rules: Keep our diff for TPM2 build on i386
4058+ + debian/systemd-resolved.postrm: Take Debian DPKG_ROOT changes, removing
4059+ the Ubuntu delta.
4060+ - Drop patches:
4061+ + Drop sd-hwdb-add-sd_hwdb_new_from_path.patch:
4062+ Applied upstream: https://github.com/systemd/systemd-stable/commit/60f0ba7556
4063+ + Drop test-copy-libgcc_s.so.1-to-TPM2-test-image-on-Debian-like.patch:
4064+ Applied upstream: https://github.com/systemd/systemd-stable/commit/ddbc88188c
4065+ + Drop lp1991829-add-CAP_LINUX_IMMUTABLE-to-systemd-machined-so-it-ca.patch:
4066+ Applied upstream: https://github.com/systemd/systemd-stable/commit/137d162c42
4067+ + Drop hwdb-implement-root-option-for-systemd-hwdb-query.patch:
4068+ Applied upstream: https://github.com/systemd/systemd-stable/commit/beff73f94e
4069+ + Drop lp1978079-pstore-Run-after-modules-are-loaded.patch:
4070+ Applied upstream: https://github.com/systemd/systemd-stable/commit/70e74a5997
4071+ + Drop debian/UBUNTU-deny-list-TEST-10-ISSUE-2467.patch:
4072+ It looks like this has not been a problem upstream. Let's try it again
4073+ in autopkgtest.
4074+ + Drop debian/deny-list-upstream-test-02-ppc64el.patch:
4075+ There was never any movement on the upstream issue. Since it has been a
4076+ while, let's re-enable for now to see if it is still a problem.
4077+ + Drop debian/deny-list-upstream-test-25.patch:
4078+ It's been a while, let's see if this still presents a problem.
4079+ + Drop lp1989969-test-deny-list-TEST-36-NUMAPOLICY-on-ppc64el.patch:
4080+ This is likely due to [1], and is not specific to TEST-36-NUMAPOLICY.
4081+ [1] https://github.com/systemd/systemd/issues/25091
4082+ + Drop lp1950794-Revert-sd-dhcp-do-not-use-detect_container-to-guess-.patch:
4083+ This patch no longer applies, see:
4084+ https://github.com/systemd/systemd/commit/14805b1468
4085+ - Refresh patches
4086+ - debian/gbp.conf: Update debian-branch to ubuntu-lunar
4087+ File: debian/gbp.conf
4088+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=aa7b7c457ce90478b38fc73e628f8b5a4874614f
4089+ - debian/rules: do not enable libqrencode on i386
4090+ Files:
4091+ - debian/control
4092+ - debian/rules
4093+ - debian/tests/control
4094+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=3ed5e1433e2ee05e2941f0e16ebc482933a382fd
4095+ - Add handling for /etc/default/locale to firstboot.
4096+ The TEST-74-AUX-UTILS upstream test revealed that firstboot does not
4097+ currently handle Debian's /etc/default/locale.
4098+ File: debian/patches/debian/Use-Debian-specific-config-files.patch
4099+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=9dc07337354155b100ea0423ed090f3dc6040a7a
4100+ - test: remove no-longer-needed quirk for set-locale on Debian/Ubuntu
4101+ File: debian/patches/test-remove-no-longer-needed-quirk-for-set-locale-on-Debi.patch
4102+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=e14e582fe158c7e63d6146386ec901fededa2e78
4103+ - oomd: always allow root-owned cgroups to set ManagedOOMPreference
4104+ File: debian/patches/oomd-always-allow-root-owned-cgroups-to-set-ManagedOOMPre.patch
4105+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=e2fc04c5a6dfbe4bada17f117b957febcc5356d7
4106+ - oomd: fix unreachable test case in test-oomd-util
4107+ File: debian/patches/oomd-fix-unreachable-test-case-in-test-oomd-util.patch
4108+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=a9ad5284e2730c777fbc4dd7919be1631b788c44
4109+ - test: make sure mount point exists in testsuite-64.sh
4110+ File: debian/patches/test-make-sure-mount-point-exists-in-testsuite-64.sh.patch
4111+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=1a6bae6133ebe11108b1b8515da7371e5567a189
4112+ - test: handle Debian's /etc/default/locale in testsuite-74.firstboot.sh
4113+ File: debian/patches/test-handle-Debian-s-etc-default-locale-in-testsuite-74.f.patch
4114+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=5e80690a112fb579070d99d6cbd3623f3cea790c
4115+ - test: skip some tests when machine-id is not initialized
4116+ File: debian/patches/test-skip-some-tests-when-machine-id-is-not-initialized.patch
4117+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=362c58ae565eefc172f085dc22f5058c5d3adb85
4118+ - debian/tests: stop testing in privileged LXD containers
4119+ File: debian/tests/tests-in-lxd
4120+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=a74c46945722f9bb8d925543a0fabe64d38f7c8f
4121+ - debian/systemd.postinst: drop our v234-specific delta.
4122+ Upgrades from systems this old are not supported to Lunar and newer.
4123+ File: debian/systemd.postinst
4124+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=a3f79c2d259da6d0537cb4a31e0eb7bf0c2aaeff
4125+ - debian/tests: stop skipping test_service in boot-and-services.
4126+ The linked github issue has been resolved and is included in this
4127+ release.
4128+ File: debian/tests/boot-and-services
4129+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=bdb12cb08e0f959ff875713a78cb2a3beadae87e
4130+ - debian/systemd-resolved.postinst: consolidate Ubuntu delta
4131+ File: debian/systemd-resolved.postinst
4132+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=7f6c0a62320ce5670ba9a0648ae54af24ae3dc1c
4133+
4134+ [ Luca Boccassi ]
4135+ * Build depend on dh-package-notes, sequence was removed.
4136+ Only the makefile is in use now, no files are generated at build time
4137+ as --package-metadata from the linkers is used now
4138+ Author: Luca Boccassi
4139+ File: debian/control
4140+ https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=5501f9d2629d4e22dc45e6569946aefd9c78d3c6
4141+
4142+ -- Nick Rosbrook <nick.rosbrook@canonical.com> Tue, 06 Dec 2022 11:00:38 -0500
4143+
4144+systemd (252.1-1) unstable; urgency=medium
4145+
4146+ * d/watch: switch back to stable repository
4147+ * New upstream version 252.1 (Closes: #1023607 #1023515)
4148+ * Drop patches merged upstream
4149+ * Refresh patches
4150+ * Suggest polkitd instead of policykit-1 (deprecated)
4151+
4152+ -- Luca Boccassi <bluca@debian.org> Tue, 08 Nov 2022 14:23:22 +0000
4153+
4154+systemd (252-3) unstable; urgency=medium
4155+
4156+ * Backport patches to fix tmpfiles error and missing /dev/serial/by-
4157+ id/usb-* (Closes: #1023311)
4158+ * Drop :native suffix from python3-pyparsing build dependency (Closes:
4159+ #1023442)
4160+ * Enable support for libqrencode. dlopen() feature so no additional cost.
4161+ Allows printing out recovery keys in QR format.
4162+
4163+ -- Luca Boccassi <bluca@debian.org> Sun, 06 Nov 2022 14:16:52 +0000
4164+
4165+systemd (252-2) unstable; urgency=medium
4166+
4167+ [ Jochen Sprickerhof ]
4168+ * Let dh_installsysusers fix the /var/log/journal permissions.
4169+ dh_installsysusers adds a systemd-sysusers in #DEBHELPER#. Otherwise
4170+ it fails with: /usr/lib/tmpfiles.d/systemd.conf:28: Failed to resolve
4171+ group 'systemd-journal'. Regression of fa0aade329. (Closes: #1023248)
4172+ * Move restarting units after #DEBHELPER#. This makes sure that systemd-
4173+ sysusers was executed as well as systemd-tmpfiles to setup proper
4174+ permissions for /var/log/journal before systemd-journald is being
4175+ restarted.
4176+
4177+ -- Luca Boccassi <bluca@debian.org> Tue, 01 Nov 2022 12:06:18 +0000
4178+
4179+systemd (252-1) unstable; urgency=medium
4180+
4181+ * Use systemd-sysusers to setup systemd users and groups
4182+ * New upstream version 252
4183+ * Drop patches merged upstream
4184+ * libsystemd0: set symbols version to 252
4185+ * Drop unused lintian override
4186+
4187+ -- Luca Boccassi <bluca@debian.org> Mon, 31 Oct 2022 22:02:43 +0000
4188+
4189+systemd (252~rc3-2) unstable; urgency=medium
4190+
4191+ * Upload to unstable.
4192+
4193+ -- Luca Boccassi <bluca@debian.org> Thu, 27 Oct 2022 15:24:32 +0100
4194+
4195+systemd (252~rc3-1) experimental; urgency=medium
4196+
4197+ * New upstream version 252~rc3
4198+ * Refresh patches
4199+ * Backport patches to fix tests without machine-id. Drop out-of-tree
4200+ patch and backport upstream fixes.
4201+
4202+ -- Luca Boccassi <bluca@debian.org> Tue, 25 Oct 2022 01:30:02 +0100
4203+
4204+systemd (252~rc2-1) experimental; urgency=medium
4205+
4206+ [ Jan Kiszka ]
4207+ * Enable systemd-boot for riscv64. Tested against U-Boot 2022.10 as UEFI
4208+ provider on the RZ/Five. Signed-off-by: Jan Kiszka
4209+ <jan.kiszka@siemens.com>
4210+
4211+ [ Helmut Grohne ]
4212+ * Conditionalize installation of cryptsetup plugins in stage1 using dh-
4213+ exec (Closes: #1021821)
4214+
4215+ [ Michael Biebl ]
4216+ * Install sysusers.d and tmpfiles.d man pages in standalone packages
4217+ (Closes: #1021933)
4218+
4219+ [ Luca Boccassi ]
4220+ * d/watch: switch to non-stable repo
4221+ * New upstream version 252~rc2
4222+ * Drop patches merged upstream
4223+ * Refresh patches
4224+ * Update symbols file
4225+ * Update Lintian overrides
4226+ * autopkgtest: update expected output of localectl
4227+
4228+ -- Luca Boccassi <bluca@debian.org> Sat, 22 Oct 2022 01:10:00 +0100
4229+
4230+systemd (251.6-1) unstable; urgency=medium
4231+
4232+ * New upstream version 251.6
4233+ * Rebase patches
4234+ * Use dh_installsystemd to enable machines.target in systemd-container
4235+
4236+ -- Michael Biebl <biebl@debian.org> Fri, 14 Oct 2022 16:34:00 +0200
4237+
4238+systemd (251.5-3) unstable; urgency=medium
4239+
4240+ * Update symbol versions for the v251 release
4241+ * ata_id: fix getting Response Code from SCSI Sense Data (Closes: #1021579)
4242+ * logind: do not emit beep in wall messages (Closes: #1019510)
4243+ * logind: remember our idle state and use it to detect idle level
4244+ transitions (Closes: #963135)
4245+ * logind: fix getting property OnExternalPower via D-Bus (Closes: #1021644)
4246+
4247+ -- Michael Biebl <biebl@debian.org> Wed, 12 Oct 2022 17:01:05 +0200
4248+
4249+systemd (251.5-2) unstable; urgency=medium
4250+
4251+ [ Luca Boccassi ]
4252+ * Build and install libcryptsetup token plugins.
4253+ The interfaces are now mature and enabled in Debian/Ubuntu in
4254+ libcryptsetup, so enable and ship the plugins
4255+
4256+ [ Michael Biebl ]
4257+ * salsa-ci: drop no longer needed workaround for lintian false positives
4258+ * udev: fix regression in udev-builtin path_id when processing NVME devices
4259+ (Closes: #1021547)
4260+
4261+ [ наб ]
4262+ * systemd-sysv.postinst: which -> command -v
4263+
4264+ -- Michael Biebl <biebl@debian.org> Tue, 11 Oct 2022 00:51:55 +0200
4265+
4266+systemd (251.5-1) unstable; urgency=medium
4267+
4268+ [ Michael Biebl ]
4269+ * New upstream version 251.5
4270+ * Install NEWS.Debian file into all binary packages.
4271+ While it increases the disk footprint a little, it ensures that NEWS
4272+ entries are reliably shown by apt-listchanges.
4273+ * Handle removal of /var/log/README.
4274+ Remove /var/log/README symlink when the systemd package is purged.
4275+ This symlink is created via tmpfiles and documents that /var/log no
4276+ longer contains the traditional syslog text files. (Closes: #877414)
4277+ * Rebase patches
4278+
4279+ [ наб ]
4280+ * debian/extra/kernel/postinst.d/systemd-boot: prefix with zz-
4281+ Since we explicitly (though this is hidden by indirection through
4282+ 85-initrd.install) depend on /boot/initrd.img-$1 existing or not existing,
4283+ hard-order ourselves at the end. The zz- prefix matches grub.
4284+ * debian/extra/kernel-install.d/85-initrd.install: install default initrd
4285+ with versioned basename.
4286+ This fixes #1020396 in a superior way by using
4287+ $KERNEL_INSTALL_STAGING_AREA, available since systemd v251.
4288+ By just copying the file we both simplify our code, but defer to
4289+ 90-loaderentry to correctly permission it, and simply never generate an
4290+ unversioned initrd in the first place! (Closes: #1020396)
4291+ * debian/extra/kernel-install.d/85-initrd.install: explicitly ignore unknown
4292+ verbs
4293+ * debian/extra/kernel/postrm.d/systemd-boot: prefix with zz-
4294+ Doesn't actually matter, but the kernel handbook says we must and we
4295+ already renamed postinst. (Closes: #1014581)
4296+
4297+ [ Luca Boccassi ]
4298+ * Enable firstboot, disabled by default on Debian.
4299+ Currently the first-boot conditions are not met by any Debian
4300+ image (/etc/machine-id with content uninitialized, so we can
4301+ just enable the build and ship it in the main package.
4302+ This lets image builders (eg: cloud images) tinker with it.
4303+ https://www.freedesktop.org/software/systemd/man/machine-id.html#First%20Boot%20Semantics
4304+ (Closes: #844528)
4305+
4306+ -- Michael Biebl <biebl@debian.org> Sun, 02 Oct 2022 21:23:49 +0200
4307+
4308+systemd (251.4-3) unstable; urgency=medium
4309+
4310+ * resolv.conf: take backup as a fallback in case resolved/resolv.conf
4311+ is not available, and restore on uninstall, which is necessary for
4312+ piuparts checks.
4313+
4314+ -- Luca Boccassi <bluca@debian.org> Sat, 27 Aug 2022 22:39:04 +0100
4315+
4316+systemd (251.4-2) unstable; urgency=medium
4317+
4318+ [ Johannes Schauer Marin Rodrigues ]
4319+ * use systemd-sysusers instead of adduser. This allows dropping the
4320+ dependency on adduser (reducing the dependency set) and in turn allows
4321+ for DPKG_ROOT support of systemd.
4322+ * debian/systemd.postinst: add --root argument to systemctl and
4323+ systemd-* calls for DPKG_ROOT support
4324+
4325+ [ Luca Boccassi ]
4326+ * resolved: use DPKG_ROOT and make postinst shellcheck-happy
4327+ * resolved: switch from .links to postinst/rm
4328+ * Update Lintian overrides for new incompatible syntax
4329+
4330+ -- Luca Boccassi <bluca@debian.org> Fri, 26 Aug 2022 23:16:23 +0100
4331+
4332 systemd (251.4-1ubuntu7) kinetic; urgency=medium
4333
4334 [ Nick Rosbrook ]
4335diff --git a/debian/control b/debian/control
4336index 43ded98..d78dfb8 100644
4337--- a/debian/control
4338+++ b/debian/control
4339@@ -15,8 +15,10 @@ Vcs-Git: https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd
4340 Vcs-Browser: https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd
4341 Homepage: https://www.freedesktop.org/wiki/Software/systemd
4342 Build-Depends: debhelper-compat (= 13),
4343+ dh-exec,
4344+ dh-package-notes,
4345 dh-sequence-installnss,
4346- dh-sequence-package-notes,
4347+ dh-sequence-installsysusers,
4348 pkg-config,
4349 xsltproc <!nodoc>,
4350 docbook-xsl <!nodoc>,
4351@@ -32,7 +34,7 @@ Build-Depends: debhelper-compat (= 13),
4352 libiptc-dev <!stage1>,
4353 libaudit-dev <!stage1>,
4354 libdbus-1-dev (>= 1.3.2) <!nocheck> <!noinsttest>,
4355- libcryptsetup-dev (>= 2:1.6.0) <!stage1>,
4356+ libcryptsetup-dev (>= 2:2.4) <!stage1>,
4357 libselinux1-dev (>= 2.1.9),
4358 libacl1-dev,
4359 liblzma-dev,
4360@@ -55,12 +57,13 @@ Build-Depends: debhelper-compat (= 13),
4361 libtss2-dev [!i386] <!stage1>,
4362 libfido2-dev <!stage1>,
4363 libssl-dev <!stage1>,
4364+ libqrencode-dev [!i386] <!stage1>,
4365 linux-base <!nocheck>,
4366 acl <!nocheck>,
4367 python3:native,
4368 python3-jinja2:native,
4369 python3-lxml:native,
4370- python3-pyparsing:native <!nocheck>,
4371+ python3-pyparsing <!nocheck>,
4372 python3-evdev:native <!nocheck>,
4373 tzdata <!nocheck>,
4374 libcap2-bin <!nocheck>,
4375@@ -82,17 +85,17 @@ Suggests: systemd-container,
4376 systemd-userdbd,
4377 systemd-boot,
4378 libfido2-1,
4379+ libqrencode4,
4380 libtss2-esys-3.0.2-0,
4381 libtss2-mu0,
4382 libtss2-rc0,
4383- policykit-1
4384+ polkitd,
4385 Pre-Depends: ${shlibs:Pre-Depends},
4386 ${misc:Pre-Depends}
4387 Depends: ${shlibs:Depends},
4388 ${misc:Depends},
4389 libsystemd0 (= ${binary:Version}),
4390 mount,
4391- adduser,
4392 Replaces: systemd-repart (<< 250.2-3~)
4393 Conflicts: consolekit,
4394 libpam-ck-connector,
4395@@ -168,7 +171,6 @@ Multi-Arch: foreign
4396 Depends: ${shlibs:Depends},
4397 ${misc:Depends},
4398 systemd,
4399- adduser
4400 Description: tools for sending and receiving remote journal logs
4401 This package provides tools for sending and receiving remote journal logs:
4402 * systemd-journal-remote
4403@@ -181,7 +183,6 @@ Architecture: linux-any
4404 Multi-Arch: foreign
4405 Depends: ${shlibs:Depends},
4406 ${misc:Depends},
4407- adduser,
4408 systemd
4409 Recommends: libdw1
4410 Conflicts: core-dump-handler
4411@@ -198,7 +199,6 @@ Multi-Arch: foreign
4412 Priority: standard
4413 Depends: ${shlibs:Depends},
4414 ${misc:Depends},
4415- adduser,
4416 systemd
4417 Breaks: systemd (<< 245.4-2~),
4418 Conflicts: time-daemon
4419@@ -440,7 +440,6 @@ Package: systemd-oomd
4420 Architecture: linux-any
4421 Depends: ${shlibs:Depends},
4422 ${misc:Depends},
4423- adduser,
4424 Breaks: systemd (<< 250.2-2~)
4425 Replaces: systemd (<< 250.2-2~)
4426 Description: userspace out-of-memory (OOM) killer
4427@@ -515,7 +514,6 @@ Architecture: linux-any
4428 Pre-Depends: ${misc:Pre-Depends}
4429 Depends: ${shlibs:Depends},
4430 ${misc:Depends},
4431- adduser,
4432 systemd (= ${binary:Version}),
4433 default-dbus-system-bus | dbus-system-bus
4434 Suggests: policykit-1,
4435diff --git a/debian/extra/kernel-install.d/85-initrd.install b/debian/extra/kernel-install.d/85-initrd.install
4436index 4f8b101..ecbed87 100755
4437--- a/debian/extra/kernel-install.d/85-initrd.install
4438+++ b/debian/extra/kernel-install.d/85-initrd.install
4439@@ -5,32 +5,20 @@ set -eu
4440
4441 COMMAND="$1"
4442 KERNEL_VERSION="$2"
4443-BOOT_DIR_ABS="$3"
4444
4445 INITRD_SRC="/boot/initrd.img-$KERNEL_VERSION"
4446-INITRD_DEST="$BOOT_DIR_ABS/initrd"
4447
4448-if [ "$COMMAND" = remove ]; then
4449- exec rm -f "$INITRD_DEST"
4450-fi
4451-
4452-if [ "$COMMAND" != add ]; then
4453- echo "Invalid command $COMMAND" >&2
4454- exit 1
4455-fi
4456+[ "$COMMAND" = add ] || exit 0
4457
4458 if [ "$#" -ge 5 ]; then
4459- # An explicit initrd path was passed, 90-loaderentry.install knows how to handle this;
4460- # copying here would just duplicate the file, since the basename is very likely different
4461+ # Explicit initrd paths were passed, fall through to default 90-loaderentry.install handling;
4462+ # we'd be either injecting an unwanted image or, worse, overriding a user-provided one
4463 exit 0
4464 fi
4465
4466 if [ -e "$INITRD_SRC" ]; then
4467- [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && echo "Installing '$INITRD_SRC' as '$INITRD_DEST'"
4468- install -m 0644 -o root -g root "$INITRD_SRC" "$INITRD_DEST" || {
4469- echo "Could not copy '$INITRD_SRC' to '$INITRD_DEST'." >&2
4470- exit 1
4471- }
4472+ [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && echo "Installing '$INITRD_SRC'"
4473+ ln -fs "$INITRD_SRC" "$KERNEL_INSTALL_STAGING_AREA"
4474 else
4475 echo "$INITRD_SRC does not exist, not installing an initrd"
4476 fi
4477diff --git a/debian/extra/kernel/postinst.d/systemd-boot b/debian/extra/kernel/postinst.d/zz-systemd-boot
4478similarity index 100%
4479rename from debian/extra/kernel/postinst.d/systemd-boot
4480rename to debian/extra/kernel/postinst.d/zz-systemd-boot
4481diff --git a/debian/extra/kernel/postrm.d/systemd-boot b/debian/extra/kernel/postrm.d/zz-systemd-boot
4482similarity index 100%
4483rename from debian/extra/kernel/postrm.d/systemd-boot
4484rename to debian/extra/kernel/postrm.d/zz-systemd-boot
4485diff --git a/debian/gbp.conf b/debian/gbp.conf
4486index 2b16095..aeb0817 100644
4487--- a/debian/gbp.conf
4488+++ b/debian/gbp.conf
4489@@ -1,7 +1,7 @@
4490 [DEFAULT]
4491 pristine-tar = True
4492 patch-numbers = False
4493-debian-branch = ubuntu-kinetic
4494+debian-branch = ubuntu-lunar
4495 debian-tag = ubuntu/%(version)s
4496 upstream-branch = upstream/latest
4497
4498diff --git a/debian/libsystemd-shared.lintian-overrides b/debian/libsystemd-shared.lintian-overrides
4499index 065ba9b..0b9cfd3 100644
4500--- a/debian/libsystemd-shared.lintian-overrides
4501+++ b/debian/libsystemd-shared.lintian-overrides
4502@@ -1,2 +1,2 @@
4503 # Intentional: value of config got in a release by mistake, needs to be kept
4504-libsystemd-shared: spelling-error-in-binary usr/lib/*/systemd/libsystemd-shared-251.so anually annually
4505+libsystemd-shared: spelling-error-in-binary anually annually [usr/lib/*/systemd/libsystemd-shared-252.so]
4506diff --git a/debian/libsystemd0.symbols b/debian/libsystemd0.symbols
4507index fd63168..5a6b959 100644
4508--- a/debian/libsystemd0.symbols
4509+++ b/debian/libsystemd0.symbols
4510@@ -31,8 +31,8 @@ libsystemd.so.0 libsystemd0 #MINVER#
4511 LIBSYSTEMD_248@LIBSYSTEMD_248 248
4512 LIBSYSTEMD_249@LIBSYSTEMD_249 249
4513 LIBSYSTEMD_250@LIBSYSTEMD_250 250
4514- LIBSYSTEMD_251@LIBSYSTEMD_251 251~rc1
4515- LIBSYSTEMD_252@LIBSYSTEMD_252 251.4-1ubuntu3~
4516+ LIBSYSTEMD_251@LIBSYSTEMD_251 251
4517+ LIBSYSTEMD_252@LIBSYSTEMD_252 252
4518 sd_booted@LIBSYSTEMD_209 0
4519 sd_bus_add_fallback@LIBSYSTEMD_221 221
4520 sd_bus_add_fallback_vtable@LIBSYSTEMD_221 221
4521@@ -122,6 +122,7 @@ libsystemd.so.0 libsystemd0 #MINVER#
4522 sd_bus_error_set_errnof@LIBSYSTEMD_221 221
4523 sd_bus_error_set_errnofv@LIBSYSTEMD_221 221
4524 sd_bus_error_setf@LIBSYSTEMD_221 221
4525+ sd_bus_error_setfv@LIBSYSTEMD_252 252
4526 sd_bus_flush@LIBSYSTEMD_221 221
4527 sd_bus_flush_close_unref@LIBSYSTEMD_222 222
4528 sd_bus_get_address@LIBSYSTEMD_221 221
4529@@ -223,6 +224,7 @@ libsystemd.so.0 libsystemd0 #MINVER#
4530 sd_bus_message_read_array@LIBSYSTEMD_221 221
4531 sd_bus_message_read_basic@LIBSYSTEMD_221 221
4532 sd_bus_message_read_strv@LIBSYSTEMD_221 221
4533+ sd_bus_message_read_strv_extend@LIBSYSTEMD_252 252
4534 sd_bus_message_readv@LIBSYSTEMD_240 240
4535 sd_bus_message_ref@LIBSYSTEMD_221 221
4536 sd_bus_message_rewind@LIBSYSTEMD_221 221
4537@@ -339,7 +341,7 @@ libsystemd.so.0 libsystemd0 #MINVER#
4538 sd_device_enumerator_add_match_sysattr@LIBSYSTEMD_240 240
4539 sd_device_enumerator_add_match_sysname@LIBSYSTEMD_240 240
4540 sd_device_enumerator_add_match_tag@LIBSYSTEMD_240 240
4541- sd_device_enumerator_add_nomatch_sysname@LIBSYSTEMD_251 251~rc2
4542+ sd_device_enumerator_add_nomatch_sysname@LIBSYSTEMD_251 251
4543 sd_device_enumerator_allow_uninitialized@LIBSYSTEMD_240 240
4544 sd_device_enumerator_get_device_first@LIBSYSTEMD_240 240
4545 sd_device_enumerator_get_device_next@LIBSYSTEMD_240 240
4546@@ -349,6 +351,8 @@ libsystemd.so.0 libsystemd0 #MINVER#
4547 sd_device_enumerator_ref@LIBSYSTEMD_240 240
4548 sd_device_enumerator_unref@LIBSYSTEMD_240 240
4549 sd_device_get_action@LIBSYSTEMD_248 248
4550+ sd_device_get_child_first@LIBSYSTEMD_252 252
4551+ sd_device_get_child_next@LIBSYSTEMD_252 252
4552 sd_device_get_current_tag_first@LIBSYSTEMD_247 247
4553 sd_device_get_current_tag_next@LIBSYSTEMD_247 247
4554 sd_device_get_devlink_first@LIBSYSTEMD_240 240
4555@@ -389,24 +393,27 @@ libsystemd.so.0 libsystemd0 #MINVER#
4556 sd_device_monitor_filter_add_match_tag@LIBSYSTEMD_240 240
4557 sd_device_monitor_filter_remove@LIBSYSTEMD_240 240
4558 sd_device_monitor_filter_update@LIBSYSTEMD_240 240
4559+ sd_device_monitor_get_description@LIBSYSTEMD_252 252
4560 sd_device_monitor_get_event@LIBSYSTEMD_240 240
4561 sd_device_monitor_get_event_source@LIBSYSTEMD_240 240
4562 sd_device_monitor_new@LIBSYSTEMD_240 240
4563 sd_device_monitor_ref@LIBSYSTEMD_240 240
4564+ sd_device_monitor_set_description@LIBSYSTEMD_252 252
4565 sd_device_monitor_set_receive_buffer_size@LIBSYSTEMD_240 240
4566 sd_device_monitor_start@LIBSYSTEMD_240 240
4567 sd_device_monitor_stop@LIBSYSTEMD_240 240
4568 sd_device_monitor_unref@LIBSYSTEMD_240 240
4569+ sd_device_new_child@LIBSYSTEMD_252 252
4570 sd_device_new_from_device_id@LIBSYSTEMD_240 240
4571- sd_device_new_from_devname@LIBSYSTEMD_251 251~rc2
4572+ sd_device_new_from_devname@LIBSYSTEMD_251 251
4573 sd_device_new_from_devnum@LIBSYSTEMD_240 240
4574 sd_device_new_from_ifindex@LIBSYSTEMD_249 249
4575 sd_device_new_from_ifname@LIBSYSTEMD_249 249
4576- sd_device_new_from_path@LIBSYSTEMD_251 251~rc2
4577+ sd_device_new_from_path@LIBSYSTEMD_251 251
4578 sd_device_new_from_stat_rdev@LIBSYSTEMD_248 248
4579 sd_device_new_from_subsystem_sysname@LIBSYSTEMD_240 240
4580 sd_device_new_from_syspath@LIBSYSTEMD_240 240
4581- sd_device_open@LIBSYSTEMD_251 251~rc2
4582+ sd_device_open@LIBSYSTEMD_251 251
4583 sd_device_ref@LIBSYSTEMD_240 240
4584 sd_device_set_sysattr_value@LIBSYSTEMD_240 240
4585 sd_device_set_sysattr_valuef@LIBSYSTEMD_247 247
4586@@ -439,6 +446,7 @@ libsystemd.so.0 libsystemd0 #MINVER#
4587 sd_event_prepare@LIBSYSTEMD_221 221
4588 sd_event_ref@LIBSYSTEMD_221 221
4589 sd_event_run@LIBSYSTEMD_221 221
4590+ sd_event_set_signal_exit@LIBSYSTEMD_252 252
4591 sd_event_set_watchdog@LIBSYSTEMD_221 221
4592 sd_event_source_disable_unref@LIBSYSTEMD_243 243
4593 sd_event_source_get_child_pid@LIBSYSTEMD_221 221
4594@@ -495,7 +503,7 @@ libsystemd.so.0 libsystemd0 #MINVER#
4595 sd_hwdb_enumerate@LIBSYSTEMD_240 240
4596 sd_hwdb_get@LIBSYSTEMD_240 240
4597 sd_hwdb_new@LIBSYSTEMD_240 240
4598- sd_hwdb_new_from_path@LIBSYSTEMD_252 251.4-1ubuntu3~
4599+ sd_hwdb_new_from_path@LIBSYSTEMD_252 252
4600 sd_hwdb_ref@LIBSYSTEMD_240 240
4601 sd_hwdb_seek@LIBSYSTEMD_240 240
4602 sd_hwdb_unref@LIBSYSTEMD_240 240
4603@@ -506,8 +514,9 @@ libsystemd.so.0 libsystemd0 #MINVER#
4604 sd_id128_get_machine@LIBSYSTEMD_209 0
4605 sd_id128_get_machine_app_specific@LIBSYSTEMD_233 233
4606 sd_id128_randomize@LIBSYSTEMD_209 0
4607+ sd_id128_string_equal@LIBSYSTEMD_252 252
4608 sd_id128_to_string@LIBSYSTEMD_209 0
4609- sd_id128_to_uuid_string@LIBSYSTEMD_251 251~rc1
4610+ sd_id128_to_uuid_string@LIBSYSTEMD_251 251
4611 sd_is_fifo@LIBSYSTEMD_209 0
4612 sd_is_mq@LIBSYSTEMD_209 0
4613 sd_is_socket@LIBSYSTEMD_209 0
4614diff --git a/debian/patches/0001-Revert-tests-add-test-case-for-UMask-BindPaths-combi.patch b/debian/patches/0001-Revert-tests-add-test-case-for-UMask-BindPaths-combi.patch
4615index e085ebc..6076be4 100644
4616--- a/debian/patches/0001-Revert-tests-add-test-case-for-UMask-BindPaths-combi.patch
4617+++ b/debian/patches/0001-Revert-tests-add-test-case-for-UMask-BindPaths-combi.patch
4618@@ -15,7 +15,7 @@ This reverts commit ae53f4b5e48860b473c4d05958486a77f84ecc6d.
4619
4620 --- a/src/test/test-execute.c
4621 +++ b/src/test/test-execute.c
4622-@@ -1142,16 +1142,6 @@
4623+@@ -1147,16 +1147,6 @@
4624 test_service(m, "exec-condition-skip.service", SERVICE_SKIP_CONDITION);
4625 }
4626
4627@@ -32,7 +32,7 @@ This reverts commit ae53f4b5e48860b473c4d05958486a77f84ecc6d.
4628 typedef struct test_entry {
4629 test_function_t f;
4630 const char *name;
4631-@@ -1234,7 +1224,6 @@
4632+@@ -1239,7 +1229,6 @@
4633 entry(test_exec_specifier),
4634 entry(test_exec_execsearchpath_specifier),
4635 entry(test_exec_systemcallfilter_system),
4636diff --git a/debian/patches/Do-not-require-a-valid-version-when-parsing-sd-boot-loade.patch b/debian/patches/Do-not-require-a-valid-version-when-parsing-sd-boot-loade.patch
4637deleted file mode 100644
4638index 7e128f4..0000000
4639--- a/debian/patches/Do-not-require-a-valid-version-when-parsing-sd-boot-loade.patch
4640+++ /dev/null
4641@@ -1,44 +0,0 @@
4642-From: Victor Westerhuis <victor@westerhu.is>
4643-Date: Sun, 14 Nov 2021 16:26:03 +0100
4644-Subject: Do not require a valid version when parsing sd-boot loader entries
4645-
4646-This fixes #20820
4647-
4648-(cherry picked from commit 87c7779599ade84df7934c563adb7fe550c871f7)
4649----
4650- src/fundamental/bootspec-fundamental.c | 2 +-
4651- src/shared/bootspec.c | 8 +++++---
4652- 2 files changed, 6 insertions(+), 4 deletions(-)
4653-
4654-diff --git a/src/fundamental/bootspec-fundamental.c b/src/fundamental/bootspec-fundamental.c
4655-index 89e29f5..c013892 100644
4656---- a/src/fundamental/bootspec-fundamental.c
4657-+++ b/src/fundamental/bootspec-fundamental.c
4658-@@ -46,7 +46,7 @@ sd_bool bootspec_pick_name_version_sort_key(
4659- good_version = os_image_version ?: (os_version ?: (os_version_id ? : os_build_id));
4660- good_sort_key = os_image_id ?: os_id;
4661-
4662-- if (!good_name || !good_version)
4663-+ if (!good_name)
4664- return sd_false;
4665-
4666- if (ret_name)
4667-diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c
4668-index 09eb36e..123db59 100644
4669---- a/src/shared/bootspec.c
4670-+++ b/src/shared/bootspec.c
4671-@@ -530,9 +530,11 @@ static int boot_entry_load_unified(
4672- if (!tmp.sort_key)
4673- return log_oom();
4674-
4675-- tmp.version = strdup(good_version);
4676-- if (!tmp.version)
4677-- return log_oom();
4678-+ if (good_version) {
4679-+ tmp.version = strdup(good_version);
4680-+ if (!tmp.version)
4681-+ return log_oom();
4682-+ }
4683-
4684- *ret = tmp;
4685- tmp = (BootEntry) {};
4686diff --git a/debian/patches/Move-homectl-and-userdbctl-to-bindir.patch b/debian/patches/Move-homectl-and-userdbctl-to-bindir.patch
4687deleted file mode 100644
4688index a07e5cd..0000000
4689--- a/debian/patches/Move-homectl-and-userdbctl-to-bindir.patch
4690+++ /dev/null
4691@@ -1,35 +0,0 @@
4692-From: Michael Biebl <biebl@debian.org>
4693-Date: Sat, 28 May 2022 12:00:08 +0200
4694-Subject: Move homectl and userdbctl to bindir
4695-
4696-Those binaries aren't needed during early boot.
4697-
4698-(cherry picked from commit 003a67616148a8c2b94aa0c87595465f5dcac508)
4699----
4700- meson.build | 6 ++----
4701- 1 file changed, 2 insertions(+), 4 deletions(-)
4702-
4703-diff --git a/meson.build b/meson.build
4704-index dbba108..ecc5533 100644
4705---- a/meson.build
4706-+++ b/meson.build
4707-@@ -2577,8 +2577,7 @@ if conf.get('ENABLE_USERDB') == 1
4708- link_with : [libshared],
4709- dependencies : [threads],
4710- install_rpath : rootlibexecdir,
4711-- install : true,
4712-- install_dir : rootbindir)
4713-+ install : true)
4714- endif
4715-
4716- if conf.get('ENABLE_HOMED') == 1
4717-@@ -2621,8 +2620,7 @@ if conf.get('ENABLE_HOMED') == 1
4718- libp11kit,
4719- libdl],
4720- install_rpath : rootlibexecdir,
4721-- install : true,
4722-- install_dir : rootbindir)
4723-+ install : true)
4724-
4725- if conf.get('HAVE_PAM') == 1
4726- version_script_arg = project_source_root / pam_systemd_home_sym
4727diff --git a/debian/patches/Revert-network-if-sys-is-rw-then-udev-should-be-around.patch b/debian/patches/Revert-network-if-sys-is-rw-then-udev-should-be-around.patch
4728index d2b9eff..10cc082 100644
4729--- a/debian/patches/Revert-network-if-sys-is-rw-then-udev-should-be-around.patch
4730+++ b/debian/patches/Revert-network-if-sys-is-rw-then-udev-should-be-around.patch
4731@@ -13,15 +13,15 @@ LP: #1857123
4732
4733 --- a/src/network/networkd-link.c
4734 +++ b/src/network/networkd-link.c
4735-@@ -66,6 +66,7 @@
4736- #include "tmpfile-util.h"
4737+@@ -67,6 +67,7 @@
4738+ #include "tuntap.h"
4739 #include "udev-util.h"
4740 #include "util.h"
4741 +#include "virt.h"
4742 #include "vrf.h"
4743
4744- bool link_ipv4ll_enabled(Link *link) {
4745-@@ -1456,7 +1457,7 @@
4746+ bool link_ipv6_enabled(Link *link) {
4747+@@ -1437,7 +1438,7 @@
4748
4749 assert(link);
4750
4751diff --git a/debian/patches/debian/Add-env-variable-for-machine-ID-path.patch b/debian/patches/debian/Add-env-variable-for-machine-ID-path.patch
4752deleted file mode 100644
4753index d5e3fa4..0000000
4754--- a/debian/patches/debian/Add-env-variable-for-machine-ID-path.patch
4755+++ /dev/null
4756@@ -1,77 +0,0 @@
4757-From: Martin Pitt <mpitt@debian.org>
4758-Date: Wed, 18 Jan 2017 11:21:35 +0100
4759-Subject: Add env variable for machine ID path
4760-
4761-During package build, in minimal chroots, or other systems which do not already
4762-have an /etc/machine-id we get six test failures. Introduce a
4763-$SYSTEMD_MACHINE_ID_PATH environment variable which can specify a location
4764-other than /etc/machine-id, so that the unit tests are independent from the
4765-environment.
4766-
4767-Also adjust test-fs-util to not assume that /etc/machine-id exists. Use
4768-/etc/passwd instead which is created by base-files.
4769-
4770-Closes: #851445
4771-
4772-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=62344
4773----
4774- src/libsystemd/sd-id128/sd-id128.c | 2 +-
4775- src/test/test-fs-util.c | 11 +++++++----
4776- 2 files changed, 8 insertions(+), 5 deletions(-)
4777-
4778-diff --git a/src/libsystemd/sd-id128/sd-id128.c b/src/libsystemd/sd-id128/sd-id128.c
4779-index 09c3401..2d4b117 100644
4780---- a/src/libsystemd/sd-id128/sd-id128.c
4781-+++ b/src/libsystemd/sd-id128/sd-id128.c
4782-@@ -108,7 +108,7 @@ _public_ int sd_id128_get_machine(sd_id128_t *ret) {
4783- assert_return(ret, -EINVAL);
4784-
4785- if (sd_id128_is_null(saved_machine_id)) {
4786-- r = id128_read("/etc/machine-id", ID128_PLAIN, &saved_machine_id);
4787-+ r = id128_read(getenv("SYSTEMD_MACHINE_ID_PATH") ?: "/etc/machine-id", ID128_PLAIN, &saved_machine_id);
4788- if (r < 0)
4789- return r;
4790-
4791-diff --git a/src/test/test-fs-util.c b/src/test/test-fs-util.c
4792-index 5d9d99e..9466db6 100644
4793---- a/src/test/test-fs-util.c
4794-+++ b/src/test/test-fs-util.c
4795-@@ -215,7 +215,7 @@ TEST(chase_symlinks) {
4796- assert_se(streq(result, "/test-chase.fsldajfl"));
4797- result = mfree(result);
4798-
4799-- r = chase_symlinks("/etc/machine-id/foo", NULL, 0, &result, NULL);
4800-+ r = chase_symlinks("/etc/passwd/foo", NULL, 0, &result, NULL);
4801- assert_se(r == -ENOTDIR);
4802- result = mfree(result);
4803-
4804-@@ -288,23 +288,26 @@ TEST(chase_symlinks) {
4805- assert_se(chase_symlinks(q, NULL, CHASE_SAFE, NULL, NULL) >= 0);
4806- }
4807-
4808-- p = strjoina(temp, "/machine-id-test");
4809-- assert_se(symlink("/usr/../etc/./machine-id", p) >= 0);
4810-+ p = strjoina(temp, "/passwd-test");
4811-+ assert_se(symlink("/usr/../etc/./passwd", p) >= 0);
4812-
4813- r = chase_symlinks(p, NULL, 0, NULL, &pfd);
4814- if (r != -ENOENT) {
4815- _cleanup_close_ int fd = -1;
4816-+/*
4817- sd_id128_t a, b;
4818-+*/
4819-
4820- assert_se(pfd >= 0);
4821-
4822- fd = fd_reopen(pfd, O_RDONLY|O_CLOEXEC);
4823- assert_se(fd >= 0);
4824- safe_close(pfd);
4825--
4826-+/*
4827- assert_se(id128_read_fd(fd, ID128_PLAIN, &a) >= 0);
4828- assert_se(sd_id128_get_machine(&b) >= 0);
4829- assert_se(sd_id128_equal(a, b));
4830-+*/
4831- }
4832-
4833- /* Test CHASE_NOFOLLOW */
4834diff --git a/debian/patches/debian/Bring-tmpfiles.d-tmp.conf-in-line-with-Debian-defaul.patch b/debian/patches/debian/Bring-tmpfiles.d-tmp.conf-in-line-with-Debian-defaul.patch
4835index d99ea42..5fd678f 100644
4836--- a/debian/patches/debian/Bring-tmpfiles.d-tmp.conf-in-line-with-Debian-defaul.patch
4837+++ b/debian/patches/debian/Bring-tmpfiles.d-tmp.conf-in-line-with-Debian-defaul.patch
4838@@ -7,8 +7,6 @@ Closes: #675422
4839 tmpfiles.d/tmp.conf | 4 ++--
4840 1 file changed, 2 insertions(+), 2 deletions(-)
4841
4842-diff --git a/tmpfiles.d/tmp.conf b/tmpfiles.d/tmp.conf
4843-index fe5225d..39cb5cc 100644
4844 --- a/tmpfiles.d/tmp.conf
4845 +++ b/tmpfiles.d/tmp.conf
4846 @@ -8,5 +8,5 @@
4847diff --git a/debian/patches/debian/Don-t-enable-audit-by-default.patch b/debian/patches/debian/Don-t-enable-audit-by-default.patch
4848index b2b88f1..9bae8a2 100644
4849--- a/debian/patches/debian/Don-t-enable-audit-by-default.patch
4850+++ b/debian/patches/debian/Don-t-enable-audit-by-default.patch
4851@@ -15,11 +15,9 @@ Bug-Debian: https://bugs.debian.org/773528
4852 src/journal/journald.conf | 2 +-
4853 3 files changed, 3 insertions(+), 3 deletions(-)
4854
4855-diff --git a/man/journald.conf.xml b/man/journald.conf.xml
4856-index ed7e428..0abed9c 100644
4857 --- a/man/journald.conf.xml
4858 +++ b/man/journald.conf.xml
4859-@@ -426,7 +426,7 @@
4860+@@ -429,7 +429,7 @@
4861 <command>systemd-journald</command> collects generated audit records, it just controls whether it
4862 tells the kernel to generate them. This means if another tool turns on auditing even if
4863 <command>systemd-journald</command> left it off, it will still collect the generated
4864@@ -28,11 +26,9 @@ index ed7e428..0abed9c 100644
4865 </varlistentry>
4866
4867 <varlistentry>
4868-diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
4869-index 3ed8b80..5d373f4 100644
4870 --- a/src/journal/journald-server.c
4871 +++ b/src/journal/journald-server.c
4872-@@ -2293,7 +2293,7 @@ int server_init(Server *s, const char *namespace) {
4873+@@ -2267,7 +2267,7 @@
4874 .compress.threshold_bytes = UINT64_MAX,
4875 .seal = true,
4876
4877@@ -41,8 +37,6 @@ index 3ed8b80..5d373f4 100644
4878
4879 .watchdog_usec = USEC_INFINITY,
4880
4881-diff --git a/src/journal/journald.conf b/src/journal/journald.conf
4882-index 64f4d4b..a690681 100644
4883 --- a/src/journal/journald.conf
4884 +++ b/src/journal/journald.conf
4885 @@ -44,4 +44,4 @@
4886diff --git a/debian/patches/debian/Downgrade-a-couple-of-warnings-to-debug.patch b/debian/patches/debian/Downgrade-a-couple-of-warnings-to-debug.patch
4887index 1c4762c..9cd11ab 100644
4888--- a/debian/patches/debian/Downgrade-a-couple-of-warnings-to-debug.patch
4889+++ b/debian/patches/debian/Downgrade-a-couple-of-warnings-to-debug.patch
4890@@ -15,11 +15,9 @@ Closes: #981407
4891 src/tmpfiles/tmpfiles.c | 4 +++-
4892 3 files changed, 7 insertions(+), 3 deletions(-)
4893
4894-diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
4895-index 11991ec..76893db 100644
4896 --- a/src/core/load-fragment.c
4897 +++ b/src/core/load-fragment.c
4898-@@ -522,6 +522,7 @@ static int patch_var_run(
4899+@@ -543,6 +543,7 @@
4900
4901 const char *e;
4902 char *z;
4903@@ -27,7 +25,7 @@ index 11991ec..76893db 100644
4904
4905 e = path_startswith(*path, "/var/run/");
4906 if (!e)
4907-@@ -531,7 +532,8 @@ static int patch_var_run(
4908+@@ -552,7 +553,8 @@
4909 if (!z)
4910 return log_oom();
4911
4912@@ -37,11 +35,9 @@ index 11991ec..76893db 100644
4913 "%s= references a path below legacy directory /var/run/, updating %s → %s; "
4914 "please update the unit file accordingly.", lvalue, *path, z);
4915
4916-diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
4917-index 14ae873..aa9e94b 100644
4918 --- a/src/sysv-generator/sysv-generator.c
4919 +++ b/src/sysv-generator/sysv-generator.c
4920-@@ -760,7 +760,7 @@ static int enumerate_sysv(const LookupPaths *lp, Hashmap *all_services) {
4921+@@ -761,7 +761,7 @@
4922 if (!fpath)
4923 return log_oom();
4924
4925@@ -50,11 +46,9 @@ index 14ae873..aa9e94b 100644
4926 "Automatically generating a unit file for compatibility. "
4927 "Please update package to include a native systemd unit file, in order to make it more safe and robust.", fpath);
4928
4929-diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
4930-index 53cd570..7d71edd 100644
4931 --- a/src/tmpfiles/tmpfiles.c
4932 +++ b/src/tmpfiles/tmpfiles.c
4933-@@ -2757,6 +2757,7 @@ static int specifier_expansion_from_arg(const Specifier *specifier_table, Item *
4934+@@ -2970,6 +2970,7 @@
4935 static int patch_var_run(const char *fname, unsigned line, char **path) {
4936 const char *k;
4937 char *n;
4938@@ -62,7 +56,7 @@ index 53cd570..7d71edd 100644
4939
4940 assert(path);
4941 assert(*path);
4942-@@ -2782,7 +2783,8 @@ static int patch_var_run(const char *fname, unsigned line, char **path) {
4943+@@ -2995,7 +2996,8 @@
4944 /* Also log about this briefly. We do so at LOG_NOTICE level, as we fixed up the situation automatically, hence
4945 * there's no immediate need for action by the user. However, in the interest of making things less confusing
4946 * to the user, let's still inform the user that these snippets should really be updated. */
4947diff --git a/debian/patches/debian/Let-graphical-session-pre.target-be-manually-started.patch b/debian/patches/debian/Let-graphical-session-pre.target-be-manually-started.patch
4948index cf8db56..8b07a18 100644
4949--- a/debian/patches/debian/Let-graphical-session-pre.target-be-manually-started.patch
4950+++ b/debian/patches/debian/Let-graphical-session-pre.target-be-manually-started.patch
4951@@ -10,11 +10,9 @@ Bug-Ubuntu: https://launchpad.net/bugs/1615341
4952 units/user/graphical-session-pre.target | 1 -
4953 1 file changed, 1 deletion(-)
4954
4955-diff --git a/units/user/graphical-session-pre.target b/units/user/graphical-session-pre.target
4956-index 4b9e3dc..dffaf85 100644
4957 --- a/units/user/graphical-session-pre.target
4958 +++ b/units/user/graphical-session-pre.target
4959-@@ -12,5 +12,4 @@ Description=Session services which should run early before the graphical session
4960+@@ -12,5 +12,4 @@
4961 Documentation=man:systemd.special(7)
4962 Requires=basic.target
4963 Before=graphical-session.target
4964diff --git a/debian/patches/debian/Make-run-lock-tmpfs-an-API-fs.patch b/debian/patches/debian/Make-run-lock-tmpfs-an-API-fs.patch
4965index c65a253..6f4d2ac 100644
4966--- a/debian/patches/debian/Make-run-lock-tmpfs-an-API-fs.patch
4967+++ b/debian/patches/debian/Make-run-lock-tmpfs-an-API-fs.patch
4968@@ -15,11 +15,9 @@ Closes: #751392
4969 tmpfiles.d/legacy.conf.in | 1 -
4970 2 files changed, 2 insertions(+), 1 deletion(-)
4971
4972-diff --git a/src/shared/mount-setup.c b/src/shared/mount-setup.c
4973-index 975c027..cb975e3 100644
4974 --- a/src/shared/mount-setup.c
4975 +++ b/src/shared/mount-setup.c
4976-@@ -86,6 +86,8 @@ static const MountPoint mount_table[] = {
4977+@@ -86,6 +86,8 @@
4978 #endif
4979 { "tmpfs", "/run", "tmpfs", "mode=755" TMPFS_LIMITS_RUN, MS_NOSUID|MS_NODEV|MS_STRICTATIME,
4980 NULL, MNT_FATAL|MNT_IN_CONTAINER },
4981@@ -28,8 +26,6 @@ index 975c027..cb975e3 100644
4982 { "cgroup2", "/sys/fs/cgroup", "cgroup2", "nsdelegate,memory_recursiveprot", MS_NOSUID|MS_NOEXEC|MS_NODEV,
4983 cg_is_unified_wanted, MNT_IN_CONTAINER|MNT_CHECK_WRITABLE },
4984 { "cgroup2", "/sys/fs/cgroup", "cgroup2", "nsdelegate", MS_NOSUID|MS_NOEXEC|MS_NODEV,
4985-diff --git a/tmpfiles.d/legacy.conf.in b/tmpfiles.d/legacy.conf.in
4986-index 4f2c0d7..fb1d6bf 100644
4987 --- a/tmpfiles.d/legacy.conf.in
4988 +++ b/tmpfiles.d/legacy.conf.in
4989 @@ -10,7 +10,6 @@
4990diff --git a/debian/patches/debian/Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-back-to-.patch b/debian/patches/debian/Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-back-to-.patch
4991index 9a39629..137ffd4 100644
4992--- a/debian/patches/debian/Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-back-to-.patch
4993+++ b/debian/patches/debian/Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-back-to-.patch
4994@@ -13,11 +13,9 @@ Closes: #971282
4995 src/libsystemd/sd-path/sd-path.c | 8 ++++----
4996 2 files changed, 8 insertions(+), 8 deletions(-)
4997
4998-diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in
4999-index 693433b..8368a3f 100644
5000 --- a/src/core/systemd.pc.in
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches