rpm -V systemd-udev would report that /var/lib/systemd/timesync/ has
wrong ownership. This happens because create the directory via %ghost
and it ends up with the default root:root ownership in the rpm %files
list. We _could_ fix the owernship in the listing, but it's actually OK
if the directory is owned by root or even some other account, as long as
the service is not running. Systemd will change owernship to the
systemd-timesync user:group when starting the service. Disabling of the
ownership verification makes it easier to precreate the timestamp (c.f.
https://src.fedoraproject.org/rpms/systemd/pull-request/238). So let's
just disable the owernship check.
- Various smaller and larger fixes
- A hint is emitted if init is called with the legacy
telinit args (rhbz#2479961)
- Various messages for missing dlopened libraries have been
downgraded (rhbz#2463540)
This reverts commit ee6d0b9d27.
The approach with dlopen-notes is not fully cooked yet. In particular,
the case where the note is present in a shared library, but we'd like to
declare the dependency for a binary which is a different package, is
not supported by rpm. Let's revert for now and come back to this later.
The idn feature is in libsystemd-shared, and systemd-resolved doesn't
contain any files that'd tie it to that shared library, so the
genarator doesn't generate this dependency. This is a fundamental
limitation of the rpm interface. Let's add a manual listing for now.
Similarly, systemd-udev would miss many relevant Requires.
It seems that the headers are gone on openssl-4.0.0~beta1. But already
we're seeing build failurs on i686 because openssl-devel-engine is not
available. Most likely multilib setup was borked. So let's drop this
now and hope that the providers in f45 will be good enough.
This was first attempted in ec5e1b1ed7,
but then was reset. After the upgrade to v260-rc1 which includes the patch
to add [Install] to getty@.service, we need to do this, or we don't get a
autovt@.service symlink at all and gettys are not active.
This time, a scriptlet to keep the service enabled after upgrades is
added.
This was first attempted in ec5e1b1ed7, together
with some other changes. Moving of getty@.service was wrong, because it is
needed in containers. But moving of the tpm2 stuff should be fine.
List of affected files:
/usr/lib/systemd/system-generators/systemd-tpm2-generator
/usr/lib/systemd/system/sysinit.target.wants/systemd-tpm2-setup-early.service
/usr/lib/systemd/system/sysinit.target.wants/systemd-tpm2-setup.service
/usr/lib/systemd/system/systemd-tpm2-clear.service
/usr/lib/systemd/system/systemd-tpm2-setup-early.service
/usr/lib/systemd/system/systemd-tpm2-setup.service
/usr/lib/systemd/system/tpm2.target
/usr/lib/systemd/systemd-tpm2-clear
/usr/lib/systemd/systemd-tpm2-setup
/usr/share/man/man8/systemd-tpm2-clear.service.8.gz
/usr/share/man/man8/systemd-tpm2-generator.8.gz
/usr/share/man/man8/systemd-tpm2-setup-early.service.8.gz
/usr/share/man/man8/systemd-tpm2-setup.8.gz
/usr/share/man/man8/systemd-tpm2-setup.service.8.gz
The previous commit fixed a lot of the test, but the '64bit cloud' and
'aarch64 cloud' tests still fail, there is no login prompt on the tty.
Also, make sure that the autovt@.service symlink is in -udev subpackage.
OpenQA still fails. Now we get a graphical console on tty1 when the
needles expect a text login. And in other cases we get nothing, when
the tests expect a text login. Let's just manually recreate the
previous state. When kmsconvt@.service has an [Install] section with
Alias= and DefaultInstance=, then 'systemctl enable kmsconvt@' creates
the enablement symlinks as expected, hiding our symlink in
/usr/lib/systemd/, so we could proceed with the changes in kmscon if
systemd passes the tests.
1. Revert "Stop enabling getty@tty1.service"
This reverts commit e301db0151.
My assessment was wrong. We *did* create the symlink, probably through
the preset-all call. Also, this change didn't cause any change to the
OpenQA results.
2. Move the autovt@.service symlink to /usr/lib/ to make an
Lorax/Anaconda hack work again. If this works, kmscon will need to do
the same thing.
Before the recent changes to fix scriptlets and do presets, we didn't
create this symlink, so let's drop it again to see if this fixes the
OpenQA failures.
One level of escaping was consumed by rpm, one level was consumed by
the shell, we need one more for systemd. I saw the failure previously,
but didn't consider it important because we didn't need to do anything
for the affected units. But it turns out that the whole operation
failed, so we weren't presetting any of the units. This caused
getty@.service to not be enabled, even though presets specified that
it should. This code is being more robust in
https://github.com/systemd/systemd/pull/40504, but adding one more
level of escaping should resolve the issue too.
We want getty@.service to be enabled through presets, so that the
autovt@.service alias is created (or not). See
https://fedoraproject.org/wiki/Changes/UseKmsconVTConsole.
getty@.service was changed upstream to have a full [Install] section,
but we need to handle installation of the unit here. This will now
create the autovt@.service alias when enabled.
While looking at this, I noticed that the getty units are in the main
package. They don't have to be, virtual terminals are only available
if we have "hardware", i.e. the -udev subpackage is appropriate.
Same for the tpm2 stuff.
List of affected files:
/etc/systemd/system/getty.target.wants
/usr/lib/systemd/system-generators/systemd-getty-generator
/usr/lib/systemd/system-generators/systemd-tpm2-generator
/usr/lib/systemd/system/console-getty.service
/usr/lib/systemd/system/container-getty@.service
/usr/lib/systemd/system/getty-pre.target
/usr/lib/systemd/system/getty.target
/usr/lib/systemd/system/getty@.service
/usr/lib/systemd/system/multi-user.target.wants/getty.target
/usr/lib/systemd/system/serial-getty@.service
/usr/lib/systemd/system/sysinit.target.wants/systemd-tpm2-setup-early.service
/usr/lib/systemd/system/sysinit.target.wants/systemd-tpm2-setup.service
/usr/lib/systemd/system/systemd-tpm2-clear.service
/usr/lib/systemd/system/systemd-tpm2-setup-early.service
/usr/lib/systemd/system/systemd-tpm2-setup.service
/usr/lib/systemd/system/tpm2.target
/usr/lib/systemd/systemd-tpm2-clear
/usr/lib/systemd/systemd-tpm2-setup
/usr/share/man/man8/systemd-getty-generator.8.gz
/usr/share/man/man8/systemd-tpm2-clear.service.8.gz
/usr/share/man/man8/systemd-tpm2-generator.8.gz
/usr/share/man/man8/systemd-tpm2-setup-early.service.8.gz
/usr/share/man/man8/systemd-tpm2-setup.8.gz
/usr/share/man/man8/systemd-tpm2-setup.service.8.gz
I considered leaving getty.target in the main package, so that
foreign units that refer to it don't generate a warning about missing
units, but I think that those packages should not be installed on
systems without systemd-udev, so it's fine if the warning appears.
This reverts commit 56377438ba. Dropping
of the option currently doesn't disable anything, it just moves the
file. I don't think we gain anything by moving the file and actually
this causes problems [1], so let's just return to status quo ante.
[1] file /etc/init.d conflicts between attempted installs of systemd-259.999+69+g6ceb76bfc-2548.1.x86_64 and chkconfig-1.33-3.fc44.x86_64
[skip changelog]
Neither dbus nor pam are required in the initrd so
let's make both recommended dependencies instead
of required dependencies so that we can build
initrds without either of them getting pulled in.