Lennart Poettering [Wed, 7 Dec 2022 17:32:38 +0000 (18:32 +0100)]
sha256: external headers should be included with <>
Lennart Poettering [Thu, 8 Dec 2022 14:11:18 +0000 (15:11 +0100)]
Merge pull request #25180 from keszybz/ukify
ukify: add helper to create UKIs
Antonio Alvarez Feijoo [Wed, 7 Dec 2022 15:52:27 +0000 (16:52 +0100)]
cryptsetup: retry TPM2 unseal operation if it fails with TPM2_RC_PCR_CHANGED
Quoting "Trusted Platform Module Library - Part 3: Commands (Rev. 01.59)":
"pcrUpdateCounter – this parameter is updated by TPM2_PolicyPCR(). This value
may only be set once during a policy. Each time TPM2_PolicyPCR() executes, it
checks to see if policySession->pcrUpdateCounter has its default state,
indicating that this is the first TPM2_PolicyPCR(). If it has its default value,
then policySession->pcrUpdateCounter is set to the current value of
pcrUpdateCounter. If policySession->pcrUpdateCounter does not have its default
value and its value is not the same as pcrUpdateCounter, the TPM shall return
TPM_RC_PCR_CHANGED.
If this parameter and pcrUpdateCounter are not the same, it indicates that PCR
have changed since checked by the previous TPM2_PolicyPCR(). Since they have
changed, the previous PCR validation is no longer valid."
The TPM will return TPM_RC_PCR_CHANGED if any PCR value changes (no matter
which) between validating the PCRs binded to the enrollment and unsealing the
HMAC key, so this patch adds a retry mechanism in this case.
Fixes #24906
Yu Watanabe [Thu, 8 Dec 2022 04:17:15 +0000 (13:17 +0900)]
man: mention that DefaultRouteOnDevice= create the IPv4 default route
And add an example setting for creating an IPv6 default route.
Closes #25440.
Yu Watanabe [Thu, 8 Dec 2022 07:04:36 +0000 (16:04 +0900)]
Merge pull request #25672 from jelly/FirwmwareName
Extend hostnamed DMI firmware properties
Yu Watanabe [Thu, 8 Dec 2022 03:29:07 +0000 (12:29 +0900)]
Merge pull request #25564 from poettering/dissect-discover
systemd-dissect: add simple "--discover" command
Yu Watanabe [Thu, 8 Dec 2022 03:23:29 +0000 (12:23 +0900)]
Merge pull request #25666 from poettering/selinux-getconf-fixup
selinux getXYZcon() NULL return fixes
Jade Lovelace [Wed, 7 Dec 2022 19:14:30 +0000 (11:14 -0800)]
oomd: print dry run output at INFO level
Otherwise, the dry run isn't much use since it would be logged at debug
and not seen.
Frantisek Sumsal [Wed, 7 Dec 2022 19:44:07 +0000 (20:44 +0100)]
test: wait for the monitoring service to become active
Otherwise we might start querying resolved too early, causing the
monitoring service to miss stuff:
```
[ 1103.149474] testsuite-75.sh[35]: + systemd-run -u resmontest.service -p Type=notify resolvectl monitor
[ 1103.353803] testsuite-75.sh[423]: Running as unit: resmontest.service
[ 1103.353989] testsuite-75.sh[35]: + knotc zone-begin test.
[ 1103.354160] testsuite-75.sh[425]: OK
...
[ 1103.355298] testsuite-75.sh[35]: + knotc reload
[ 1103.355363] testsuite-75.sh[438]: Reloaded
[ 1103.355536] testsuite-75.sh[35]: + : '--- nss-resolve/nss-myhostname tests'
[ 1103.355536] testsuite-75.sh[35]: + run getent -s resolve hosts ns1.unsigned.test
[ 1103.356127] testsuite-75.sh[443]: + getent -s resolve hosts ns1.unsigned.test
[ 1103.356505] testsuite-75.sh[444]: + tee /tmp/tmp.bXg5Uj5Jkk
[ 1103.359591] resolvectl[424]: → Q: ns1.unsigned.test IN AAAA
[ 1103.359591] resolvectl[424]: ← S: success
[ 1103.359850] testsuite-75.sh[444]: 10.0.0.1 ns1.unsigned.test
[ 1103.359939] resolvectl[424]: → Q: ns1.unsigned.test IN A
[ 1103.359939] resolvectl[424]: ← S: success
[ 1103.359939] resolvectl[424]: ← A: ns1.unsigned.test IN A 10.0.0.1
[ 1103.360149] testsuite-75.sh[35]: + grep -qE '^10\.0\.0\.1\s+ns1\.unsigned\.test' /tmp/tmp.bXg5Uj5Jkk
[ 1103.362119] systemd[1]: Starting resmontest.service...
[ 1103.362633] systemd[1]: Started resmontest.service.
[ 1103.363263] testsuite-75.sh[35]: + monitor_check_rr 'ns1.unsigned.test IN A 10.0.0.1'
[ 1103.363263] testsuite-75.sh[35]: + local 'match=ns1.unsigned.test IN A 10.0.0.1'
[ 1103.363377] testsuite-75.sh[35]: + set +o pipefail
[ 1103.363836] testsuite-75.sh[458]: + journalctl -u resmontest.service -f --full
[ 1103.364042] testsuite-75.sh[459]: + grep -m1 'ns1.unsigned.test IN A 10.0.0.1'
...
Trying to halt container. Send SIGTERM again to trigger immediate termination.
Container TEST-75 terminated by signal KILL.
```
Space Meyer [Wed, 7 Dec 2022 13:11:30 +0000 (14:11 +0100)]
journald: prevent segfault on empty attr/current
getpidcon() might set con to NULL, even when it returned a 0 return
code[0]. The subsequent strlen(con) will then cause a segfault.
Alternatively the behaviour could also be changed in getpidcon. I
don't know whether the libselinux folks are comitted to the current
behaviour, but the getpidcon man page doesn't really make it obvious
this case could happen.
[0] https://github.com/SELinuxProject/selinux/blob/
fb7f35495fbad468d6efa76c5fed727659903038/libselinux/src/procattr.c#L155-L158
Luca Boccassi [Wed, 7 Dec 2022 19:51:47 +0000 (20:51 +0100)]
Merge pull request #25632 from keszybz/chroot-fix
Add trivial check for preset operation in chroot
Luca Boccassi [Wed, 7 Dec 2022 19:45:23 +0000 (20:45 +0100)]
Merge pull request #25465 from DaanDeMeyer/repart-workspace
repart: Cleanup created files on failure
Jelle van der Waa [Wed, 7 Dec 2022 16:33:50 +0000 (17:33 +0100)]
hostnamed: expose FirmwareDate dbus property
Expose /sys/class/dmi/id/bios_date as dbus property in hostnamed.
Jelle van der Waa [Tue, 6 Dec 2022 17:23:18 +0000 (18:23 +0100)]
hostnamed: expose FirmwareVendor as dbus property
Expose /sys/class/dmi/id/bios_vendor as dbus property in hostnamed.
Lennart Poettering [Tue, 29 Nov 2022 15:39:06 +0000 (16:39 +0100)]
dissect: add simple --discover command
Lennart Poettering [Tue, 29 Nov 2022 15:40:15 +0000 (16:40 +0100)]
discover-image: store image class in Image object too, if known
Lennart Poettering [Tue, 29 Nov 2022 15:38:48 +0000 (16:38 +0100)]
discover-image: add stringification helpers for ImageClass
Zbigniew Jędrzejewski-Szmek [Sat, 26 Nov 2022 13:31:57 +0000 (14:31 +0100)]
ukify: allow multiple initrds
If given, multiple initrds are concatenated into a temporary file which then
becomes the .initrd section.
It is also possible to give no initrd. After all, some machines boot without an
initrd, and it should be possible to use the stub without requiring an initrd.
(The stub might not like this, but this is something to fix there.)
Zbigniew Jędrzejewski-Szmek [Fri, 25 Nov 2022 18:14:42 +0000 (19:14 +0100)]
ci: install pefile
Zbigniew Jędrzejewski-Szmek [Fri, 25 Nov 2022 15:25:23 +0000 (16:25 +0100)]
man: add man page for ukify
Zbigniew Jędrzejewski-Szmek [Wed, 16 Nov 2022 16:44:28 +0000 (17:44 +0100)]
ukify: try to find the uname string in the linux image if not specified
The approach is based on mkinicpio's autodetection.
This is hacky as hell. Some cases are actually fairly nice: ppc64el images have
a note that contains 'uname -r'. (The note is not uniquely labeled at all, and
only contains the release part instead of the full version-hostname-release
string, and we don't actually care about ppc, and it's very hard to read the
note from Python, but in general that'd be the approach I'd like.)
I opted to simply read and decompress the full linux binary in some cases.
Python doesn't make it easy to do streaming decompression with regexp matching,
and it doesn't seem to matter much: the image decompresses in a fraction of a
second.
Zbigniew Jędrzejewski-Szmek [Fri, 25 Nov 2022 16:21:40 +0000 (17:21 +0100)]
tests: add pytest tests for ukify
Some gymnastics were needed to import ukify as a module. Before the file
was templated, this was trivial: insert the directory in sys.path, call import.
But it's a real pain to import the unsuffixed file after processing. Instead,
the untemplated file is imported, which works well enough for tests and is
very simple.
The tests can be called via pytest:
PATH=build/:$PATH pytest -v src/ukify/test/test_ukify.py
or directly:
PATH=build/:$PATH src/ukify/test/test_ukify.py
or via the meson test machinery output:
meson test -C build test-ukify -v
or without verbose output:
meson test -C build test-ukify
Zekret files are obfuscated using base64.
Luca Boccassi [Wed, 7 Dec 2022 14:49:30 +0000 (15:49 +0100)]
Merge pull request #25651 from keszybz/man-halt
Deemphasize 'halt' subcommand
Zbigniew Jędrzejewski-Szmek [Wed, 16 Nov 2022 14:52:47 +0000 (15:52 +0100)]
meson,ukify: hook up ukify, add --version option
The option is added because we have a similar one for kernel-install. This
program requires python, and some people might want to skip it because of this.
The tool is installed in /usr/lib/systemd for now, since the interface might
change.
A template file is used, but there is no .in suffix.
The problem is that we'll later want to import the file as a module
for tests, but recent Python versions make it annoyingly hard to import
a module from a file without a .py suffix. imp.load_sources() works, but it
is deprecated and throws warnings.
importlib.machinery.SourceFileLoader().load_module() works, but is also
deprecated. And the documented replacements are a maze of twisted little
callbacks that result in an empty module.
So let's take the easy way out, and skip the suffix which makes it easy
to import the template as a module after adding the directory to sys.path.
Zbigniew Jędrzejewski-Szmek [Sat, 29 Oct 2022 18:07:46 +0000 (20:07 +0200)]
ukify: add helper to create UKIs
Features:
- adds sections .linux, .initrd, .uname, .osrel, .pcrpkey, .pcrsig, .cmdline, .splash
- multiple initrds can be concatenated
- section flags are set properly (READONLY, DATA or CODE)
- uses systemd-measure to precalculate pcr measurements and create a signed json policy
- the inner linux image will be signed automatically with sbsign if unsigned
- uses sbsign to sign the output image
- offsets are calculated so that sections are placed adjacent, with .linux last
- custom sections are possible
- multiple pcr signing keys can be specified and different boot phase paths can be
signed with different keys
- most things can be overriden (path to tools, stub file, signing keys, pcr banks,
boot phase paths, whether to sign things)
- superficial verification of slash bmp is done
- kernel uname "scraping" from the kernel if not specified (in a later patch)
TODO:
- change systemd-measure to not require a functional TPM2. W/o this, we'd need
to support all banks in the build machine, which is hard to guarantee.
- load signing keys from /etc/kernel/
- supress exceptions, so if something external fails, the user will not see a traceback
- conversion to BMP from other formats
$ sudo /usr/lib/systemd/ukify \
--tools=build/ \
--measure \
/lib/modules/6.0.5-300.fc37.x86_64/vmlinuz \
/boot/
08a5690a2eed47cf92ac0a5d2e3cf6b0/6.0.5-300.fc37.x86_64/initrd \
--secureboot-private-key=server.key --secureboot-certificate=server.crt \
--pcr-private-key=tpm2-pcr-private.pem --pcr-public-key=tpm2-pcr-public.pem \
--cmdline='rw quiet' \
--section test:TESTTESTTEST \
--section test2:TESTTESTTEST2 \
--pcr-banks=sha1 \
--uname="$(uname -rv)"
Host arch 'x86_64', efi arch 'x64'
+ sbverify --list /lib/modules/6.0.5-300.fc37.x86_64/vmlinuz
+ build/systemd-measure calculate --linux=/lib/modules/6.0.5-300.fc37.x86_64/vmlinuz --osrel=/etc/os-release --cmdline=/tmp/tmpcmdline_5aufjir --pcrpkey=tpm2-pcr-public.pem --initrd=/boot/
08a5690a2eed47cf92ac0a5d2e3cf6b0/6.0.5-300.fc37.x86_64/initrd --bank=sha1
11:sha1=
03df5e5243bc002b959d52359fe04e266d0b5ebf
11:sha1=
54949b82bae32e80343ff0f01eeeeb75f4c07d3f
11:sha1=
0fc62be88aa9c5ad7282aa8adb504f451bcec9df
11:sha1=
b71155e7fcd467f7c1696f675e37887032e2eafa
+ build/systemd-measure sign --linux=/lib/modules/6.0.5-300.fc37.x86_64/vmlinuz --osrel=/etc/os-release --cmdline=/tmp/tmpcmdline_5aufjir --pcrpkey=tpm2-pcr-public.pem --initrd=/boot/
08a5690a2eed47cf92ac0a5d2e3cf6b0/6.0.5-300.fc37.x86_64/initrd --bank=sha1 --private-key=tpm2-pcr-private.pem --public-key=tpm2-pcr-public.pem
+ objcopy /usr/lib/systemd/boot/efi/linuxx64.efi.stub --add-section .osrel=/etc/os-release --change-section-vma .osrel=0x22000 --add-section .cmdline=/tmp/tmpcmdline_5aufjir --change-section-vma .cmdline=0x23000 --add-section .pcrpkey=tpm2-pcr-public.pem --change-section-vma .pcrpkey=0x24000 --add-section .initrd=/boot/
08a5690a2eed47cf92ac0a5d2e3cf6b0/6.0.5-300.fc37.x86_64/initrd --change-section-vma .initrd=0x25000 --add-section .uname=/tmp/tmpuname0v3uzh5r --change-section-vma .uname=0x4009000 --add-section .test=/tmp/tmptestuxve59c8 --change-section-vma .test=0x400a000 --add-section .test2=/tmp/tmptest2_i143p9i --change-section-vma .test2=0x400b000 --add-section .pcrsig=/tmp/tmppcrsigdtcqxz_w --change-section-vma .pcrsig=0x400c000 --add-section .linux=/lib/modules/6.0.5-300.fc37.x86_64/vmlinuz --change-section-vma .linux=0x400d000 /tmp/uki4vsbf7y8
+ sbsign --key server.key --cert server.crt /tmp/uki4vsbf7y8 --output vmlinuz.efi
warning: data remaining[
79849520 vs
79866644]: gaps between PE/COFF sections?
warning: data remaining[
79849520 vs
79866648]: gaps between PE/COFF sections?
Signing Unsigned original image
Wrote signed vmlinuz.efi
Lennart Poettering [Wed, 7 Dec 2022 14:23:02 +0000 (15:23 +0100)]
selinux-setup: minor modernizations
Lennart Poettering [Wed, 7 Dec 2022 14:20:15 +0000 (15:20 +0100)]
selinux: accept the fact that getxyzcon() can return success and NULL
Inspired by #25664: let's check explicitly for NULL everywhere we do one
of those getXYZcon() calls.
We usually turn this into EOPNOTSUPP, as when selinux is off (which is
supposed to be the only case this can happen according to selinux docs)
we otherwise return EOPNOTSUPP in that case.
Note that in most cases we have an explicit mac_selinux_use() call
beforehand, hence this should mostly not be triggerable codepaths.
Yu Watanabe [Mon, 28 Nov 2022 18:20:33 +0000 (03:20 +0900)]
network: manage addresses in the way the kernel does
This effectively reverts
5d0030310c134a016321ad8cf0b4ede8b1800d84.
With the commit
5d0030310c134a016321ad8cf0b4ede8b1800d84, networkd manages
addresses with the detailed hash and compare functions. But that causes
networkd cannot detect address update by the kernel or an external tool.
See issue
https://github.com/systemd/systemd/issues/481#issuecomment-
1328132401.
With this commit, networkd (again) manages addresses in the way that the
kernel does. Hence, we can correctly detect address update.
Yu Watanabe [Wed, 7 Dec 2022 04:53:37 +0000 (13:53 +0900)]
test-network: try to change MAC address more
Follow-up for
23b6bf274fc1a46d8778bfc979d3c803d61a1f5c.
Frantisek Sumsal [Wed, 7 Dec 2022 12:04:44 +0000 (13:04 +0100)]
packit: ignore unpackaged files
It may take a bit for newly introduced binaries/other files to get
properly integrated into the Rawhide specfile, so don't choke up in the
meantime when rpmbuild detects unpackaged files.
Lennart Poettering [Wed, 7 Dec 2022 13:28:36 +0000 (14:28 +0100)]
update TODO
Luca Boccassi [Wed, 7 Dec 2022 12:01:50 +0000 (13:01 +0100)]
Merge pull request #25502 from keszybz/pam-namespace-add
Add pam_namespace to user@.service pam stack
Yu Watanabe [Wed, 7 Dec 2022 03:01:59 +0000 (12:01 +0900)]
core: use correct scope of looking up units
Fixes a bug introduced by
3b3557c410c7910fae0990599dcb82711cf5fbb7.
Fixes #25625.
Zbigniew Jędrzejewski-Szmek [Wed, 7 Dec 2022 08:52:35 +0000 (09:52 +0100)]
TEST-65: use [[ -v ]] more
It's a bashism, but we use other bash features anyway, and it's cleaner
and much less verbose.
Zbigniew Jędrzejewski-Szmek [Mon, 5 Dec 2022 12:52:28 +0000 (13:52 +0100)]
TEST-65: check cat-config operation in chroot
This verifies the fix in
2075b6dd394e09a0f203b9cc7e3253908397f933.
Lennart Poettering [Wed, 7 Dec 2022 10:34:54 +0000 (11:34 +0100)]
Merge pull request #25648 from keszybz/exitrd
Build systemd-shutdown.standalone
Zbigniew Jędrzejewski-Szmek [Tue, 6 Dec 2022 10:27:31 +0000 (11:27 +0100)]
man: deemphasize "halt"
Systemd documents "halt" as the primary shutdown mechanism, redirecting
"reboot" and "shutdown" to the halt(8), but halt is a really strange and
obsolete concept. Who would want to really keep their machine running after
shutdown? I expect that halting is almost unused. Let's at least make it less
prominent in the docs.
While at it, use "power off" for a verb and "power-off" for noun (but "poweroff"
of the actual command name).
Yu Watanabe [Wed, 7 Dec 2022 02:18:07 +0000 (11:18 +0900)]
fuzz-systemctl: adjust size limit
Follow-up for
719b7d4dc2bde3a9257e9f6fdcf03239ee2324b6.
The size of the current reproducer is 250KB. Hence, 16KB should be
enough, but still we can test most arguments within the size.
Hopefully fixes oss-fuzz#53552.
Yu Watanabe [Wed, 7 Dec 2022 04:34:39 +0000 (13:34 +0900)]
Merge pull request #25628 from zhangjian3032/dev/fix-set-bond-mac-failed
network: Fix set bond device MAC address failed
Daan De Meyer [Mon, 5 Dec 2022 10:15:58 +0000 (11:15 +0100)]
test-fs-util: Add relative path chase_symlinks() tests
Zbigniew Jędrzejewski-Szmek [Tue, 6 Dec 2022 16:10:54 +0000 (17:10 +0100)]
Merge pull request #25616 from poettering/chase-symlinks-opendir
chase-symlinks/systemctl: let's handle cases without /proc/ better
Lennart Poettering [Wed, 30 Nov 2022 17:55:40 +0000 (18:55 +0100)]
gpt: add helpers for deriving data partition from verity or verity sig designator
let's add the inverse of the existing partition_verity_of() and
partition_verity_sig_of()
Frantisek Sumsal [Tue, 6 Dec 2022 15:22:08 +0000 (15:22 +0000)]
Merge pull request #25644 from yuwata/escape-fix-octescape
escape: fix octescape()
Yu Watanabe [Tue, 22 Nov 2022 04:03:55 +0000 (13:03 +0900)]
network: drop REMOVING flag when a netlink message is sent to kernel
When an interface goes to down, the kernel drops several routes
automatically, and at the same time networkd requests to remove
them, but the kernel sometimes does not respond the requests. Hence,
the routes cannot drop the REMOVING flag, and networkd will never try
to configure other routes which depend on the previously removed
routes even if they are already reconfigured.
With this patch, when networkd sends a request to configure a route
(or any other network settings), REMOVING flag for the route is dropped
without waiting for the reply about the previous remove request, as we
can expect it will appear even if it is already removed or under removing.
Fixes #24999.
Luca Boccassi [Tue, 6 Dec 2022 15:00:10 +0000 (16:00 +0100)]
Merge pull request #25645 from yuwata/boot-fix-false-maybe-uninitialized
boot: fix false maybe-uninitialized warning
Aidan Dang [Sat, 3 Dec 2022 15:26:13 +0000 (02:26 +1100)]
Implement --luks-pbkdf-force-iterations for homed
Zbigniew Jędrzejewski-Szmek [Tue, 6 Dec 2022 10:16:57 +0000 (11:16 +0100)]
man: reword sentence
"Such as … suchlike" repeats too much.
Zbigniew Jędrzejewski-Szmek [Wed, 30 Nov 2022 08:25:49 +0000 (09:25 +0100)]
meson: build a standalone version of systemd-shutdown
I'd like to use this as a basis for an exitrd:
When compiled with -Dstandalone-binaries=true -Db_lto=true -Dbuildtype=release,
the new file is 800k. It's more than I'd like, but still quite a bit less
than libsystemd-shared.so, which is 3800k.
Zbigniew Jędrzejewski-Szmek [Wed, 30 Nov 2022 07:41:13 +0000 (08:41 +0100)]
test: do the --help/--version checks for repart.standalone too
Jian Zhang [Mon, 5 Dec 2022 10:38:00 +0000 (18:38 +0800)]
test-network: add test for bond mac address config
Signed-off-by: Jian Zhang <zhangjian.3032@bytedance.com>
Yu Watanabe [Tue, 6 Dec 2022 05:05:35 +0000 (14:05 +0900)]
Merge pull request #25559 from intelfx/work/systemd-importd-quotas
import: wire up SYSTEMD_IMPORT_BTRFS_{SUBVOL,QUOTA} to importd
Yu Watanabe [Tue, 6 Dec 2022 03:57:43 +0000 (12:57 +0900)]
boot: fix false maybe-uninitialized warning
Fixes #25641.
Yu Watanabe [Tue, 6 Dec 2022 04:06:57 +0000 (13:06 +0900)]
boot: cleanups for efivar_get() and friends
- rename function arguments for storing results, and support the case
that they are NULL,
- return earlier on error,
- always validate read size in efivar_get_uint32_le() and efivar_get_uint64_le().
Lennart Poettering [Fri, 2 Dec 2022 14:02:44 +0000 (15:02 +0100)]
dissect: show color in log output
Yu Watanabe [Tue, 6 Dec 2022 03:00:45 +0000 (12:00 +0900)]
test: add basic tests for octescape()
Yu Watanabe [Tue, 6 Dec 2022 03:00:41 +0000 (12:00 +0900)]
escape: fix wrong octescape of bad character
Fixes a bug introduced by
95052df3760523e1f3bb9705c918d85aae7fb431.
This also makes octescape() support NULL or zero length string.
Fixes [oss-fuzz#54059](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54059).
Fixes #25643.
Luca Boccassi [Tue, 6 Dec 2022 01:06:19 +0000 (01:06 +0000)]
journald: fix build error
Follow-up for:
379864f89079a92ff09917e25b3aea0fadd228ac
Two PRs clashed with each other and were merged before we noticed
Luca Boccassi [Tue, 6 Dec 2022 01:07:47 +0000 (02:07 +0100)]
Merge pull request #25638 from bluca/rate_limit_config
pid1: add env var to override default mount rate limit burst
Luca Boccassi [Tue, 6 Dec 2022 00:51:51 +0000 (01:51 +0100)]
Merge pull request #25513 from brauner/pivot_root.nspawn
nspawn: support pivot_root()
Richard Phibel [Mon, 5 Dec 2022 12:40:41 +0000 (13:40 +0100)]
log: Switch logging to runtime when FS becomes read-only
The journal has a mechanism to log to the runtime journal if it fails to
log to the system journal. This mechanism is not triggered when the file
system becomes read-only. We enable it here.
When appending an entry fails if shall_try_append_again returns true,
the journal is rotated. If the FS is read-only, rotation will fail and
s->system_journal will be set to NULL. After that, when find_journal
will try to open the journal since s->system_journal will be NULL, it
will open the runtime journal.
Luca Boccassi [Mon, 5 Dec 2022 21:08:25 +0000 (22:08 +0100)]
Merge pull request #25633 from DaanDeMeyer/journald-another-ratelimit
journald: Ratelimit a few more log messages
Luca Boccassi [Mon, 5 Dec 2022 21:05:54 +0000 (21:05 +0000)]
pid1: add env var to override default mount rate limit burst
I am hitting the rate limit on a busy system with low resources, and
it stalls the boot process which is Very Bad (TM).
Jan Macku [Mon, 5 Dec 2022 17:19:27 +0000 (18:19 +0100)]
doc: CentOS is EOL use CentOS stream
Christian Brauner [Mon, 5 Dec 2022 17:34:00 +0000 (18:34 +0100)]
nspawn: split mount tunnel setup
Before we supported pivot_root() nspawn used to make the rootfs shared
before setting up the mount tunnel. So it was safe for it to just turn
it into a dependent mount during setup.
However, we cannot do this anymore because of the requirements
pivot_root() has. After the pivot_root() we will make the rootfs shared
recursively. If we turned the mount tunnel into dependent mount before
mount_switch_root() this will have the consequence that it becomes a
shared mount within the same peer group as the rootfs. So no mounts will
propagate into the container from the host anymore.
To fix this we split setting up the mount tunnel and making it active
into two steps. Setting up the mount tunnel is performed before
mount_switch_root() and activating it afterwards. Note that this works
because turning a shared mount into a shared mount is a nop. IOW, no new
peer group will be allocated.
Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
Christian Brauner [Mon, 28 Nov 2022 11:36:47 +0000 (12:36 +0100)]
nspawn: mount temporary visible procfs and sysfs instance
In order to mount procfs and sysfs in an unprivileged container the
kernel requires that a fully visible instance is already present in the
target mount namespace. Mount one here so the inner child can mount its
own instances. Later we umount the temporary instances created here
before we actually exec the payload. Since the rootfs is shared the
umount will propagate into the container. Note, the inner child wouldn't
be able to unmount the instances on its own since it doesn't own the
originating mount namespace. IOW, the outer child needs to do this.
So far nspawn didn't run into this issue because it used MS_MOVE which
meant that the shadow mount tree pinned a procfs and sysfs instance
which the kernel would find. The shadow mount tree is gone with proper
pivot_root() semantics.
Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
Christian Brauner [Thu, 24 Nov 2022 09:45:24 +0000 (10:45 +0100)]
nspawn: support pivot_root()
In order to support pivot_root() we need to move mount propagation
changes after the pivot_root(). While MS_MOVE requires the source mount
to not be a shared mount pivot_root() also requires the target mount to
not be a shared mount. This guarantees that pivot_root() doesn't leak
any mounts.
Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
Luca Boccassi [Mon, 5 Dec 2022 16:53:14 +0000 (17:53 +0100)]
Merge pull request #25639 from jamacku/update-contributing
doc: update link to systemd-rhel GitHub repository - `CONTRIBUTING.md`
Jan Macku [Mon, 5 Dec 2022 15:31:45 +0000 (16:31 +0100)]
doc: fix markdown-lint issues in `CONTRIBUTING.md`
Jan Macku [Mon, 5 Dec 2022 15:29:13 +0000 (16:29 +0100)]
doc: update link to systemd-rhel GitHub repo
systemd-rhel GitHub repository has been moved to new location:
- https://github.com/redhat-plumbers
Luca Boccassi [Mon, 5 Dec 2022 12:52:19 +0000 (12:52 +0000)]
test: double default image size
I am now hitting the 500MB limit on Debian stable.
Daan De Meyer [Mon, 5 Dec 2022 13:30:44 +0000 (14:30 +0100)]
journal: Ratelimit more log messages
Followup for
8522691d4da.
Daan De Meyer [Mon, 5 Dec 2022 13:29:29 +0000 (14:29 +0100)]
journal: Use shared log ratelimit constant
Instead of maintaining two different constants, move the constant
to journal-internal.h and share it between files.
Zbigniew Jędrzejewski-Szmek [Mon, 5 Dec 2022 12:41:38 +0000 (13:41 +0100)]
Merge pull request #25537 from evverx/fuzz-resource-records
tests: fuzz dns resource records
Jian Zhang [Fri, 2 Dec 2022 12:08:38 +0000 (20:08 +0800)]
network: Fix set bond device MAC address failed
Issue:
When device is in bond mode and booting up, there is a probability of
set bond MAC address failed due to `Device or resource busy` error.
In systemd-networkd, set MAC address steps are:
1. Try to set MAC address to device.
2. If failed with `Device or resource busy`, then `Down` the device.
3. Try to set MAC address to device again.
Currently, Even down the bond device, the bond device is still return
`Device or resource busy` error. So the MAC address set failed.
The root cause is that this not enough to down the bond device. We need
to down all the slaves of the bond device.
About this descprition, we could use those commands to check:
```shell
We have two network devices: eth0, bond1, eth0 is slave of bond1.
They are all up.
1. Down bond1, and set MAC address to bond1.
~# ip link set bond1 down
~# ip link set bond1 address 00:11:22:33:44:55
ip: SIOCSIFHWADDR: Device or resource busy
2. Down eth0, and set MAC address to bond1.
~# ip link set eth0 down
~# ip link set bond1 address 00:11:22:33:44:55
Set okay.
```
Fix:
When setting the mac for the second time, if the device kind is bond,
then we need to down the slave devices of bond device.
Tested: Verified in a long time test( reboot cycles ).
Fixes: #25627
Signed-off-by: Jian Zhang <zhangjian.3032@bytedance.com>
Yu Watanabe [Mon, 5 Dec 2022 06:32:32 +0000 (15:32 +0900)]
acl-util: several cleanups
- add missing assertions,
- rename function arguments for storing result,
- rename variables which conflict our macros,
- always initialize function arguments for results on success.
Zbigniew Jędrzejewski-Szmek [Mon, 5 Dec 2022 09:27:24 +0000 (10:27 +0100)]
Merge pull request #25437 from YHNdnzj/systemctl-disable-warn-statically-enabled-services
systemctl: warn if trying to disable a unit with no install info
Daan De Meyer [Wed, 30 Nov 2022 10:37:31 +0000 (11:37 +0100)]
chase-symlinks: Fix regression from
5bc244aaa90211ccd8370535274c266cdff6a1cb
Previously, chase_symlinks() always returned an absolute path, which
changed after
5bc244aaa90211ccd8370535274c266cdff6a1cb. This commit
fixes chase_symlinks() so it returns absolute paths all the time again.
Eric DeVolder [Mon, 21 Nov 2022 16:27:27 +0000 (11:27 -0500)]
pstore: fixes for dmesg.txt reconstruction
This patch fixes problems with the re-assembly of the dmesg
from the records stored in pstore.
The current code simply ignores the last 6 characters of the
file name to form a base record id, which then groups any
pstore files with this base id into the reconstructed dmesg.txt.
This approach fails when the following oops generated the
following in pstore:
-rw-------. 1 root root 1808 Oct 27 22:07 dmesg-efi-
166692286101001
-rw-------. 1 root root 1341 Oct 27 22:07 dmesg-efi-
166692286101002
-rw-------. 1 root root 1812 Oct 27 22:07 dmesg-efi-
166692286102001
-rw-------. 1 root root 1820 Oct 27 22:07 dmesg-efi-
166692286102002
-rw-------. 1 root root 1807 Oct 27 22:07 dmesg-efi-
166692286103001
-rw-------. 1 root root 1791 Oct 27 22:07 dmesg-efi-
166692286103002
-rw-------. 1 root root 1773 Oct 27 22:07 dmesg-efi-
166692286104001
-rw-------. 1 root root 1801 Oct 27 22:07 dmesg-efi-
166692286104002
-rw-------. 1 root root 1821 Oct 27 22:07 dmesg-efi-
166692286105001
-rw-------. 1 root root 1809 Oct 27 22:07 dmesg-efi-
166692286105002
-rw-------. 1 root root 1804 Oct 27 22:07 dmesg-efi-
166692286106001
-rw-------. 1 root root 1817 Oct 27 22:07 dmesg-efi-
166692286106002
-rw-------. 1 root root 1792 Oct 27 22:07 dmesg-efi-
166692286107001
-rw-------. 1 root root 1810 Oct 27 22:07 dmesg-efi-
166692286107002
-rw-------. 1 root root 1717 Oct 27 22:07 dmesg-efi-
166692286108001
-rw-------. 1 root root 1808 Oct 27 22:07 dmesg-efi-
166692286108002
-rw-------. 1 root root 1764 Oct 27 22:07 dmesg-efi-
166692286109001
-rw-------. 1 root root 1765 Oct 27 22:07 dmesg-efi-
166692286109002
-rw-------. 1 root root 1796 Oct 27 22:07 dmesg-efi-
166692286110001
-rw-------. 1 root root 1816 Oct 27 22:07 dmesg-efi-
166692286110002
-rw-------. 1 root root 1793 Oct 27 22:07 dmesg-efi-
166692286111001
-rw-------. 1 root root 1751 Oct 27 22:07 dmesg-efi-
166692286111002
-rw-------. 1 root root 1813 Oct 27 22:07 dmesg-efi-
166692286112001
-rw-------. 1 root root 1786 Oct 27 22:07 dmesg-efi-
166692286112002
-rw-------. 1 root root 1754 Oct 27 22:07 dmesg-efi-
166692286113001
-rw-------. 1 root root 1752 Oct 27 22:07 dmesg-efi-
166692286113002
-rw-------. 1 root root 1803 Oct 27 22:07 dmesg-efi-
166692286114001
-rw-------. 1 root root 1759 Oct 27 22:07 dmesg-efi-
166692286114002
-rw-------. 1 root root 1805 Oct 27 22:07 dmesg-efi-
166692286115001
-rw-------. 1 root root 1787 Oct 27 22:07 dmesg-efi-
166692286115002
-rw-------. 1 root root 1815 Oct 27 22:07 dmesg-efi-
166692286116001
-rw-------. 1 root root 1771 Oct 27 22:07 dmesg-efi-
166692286116002
-rw-------. 1 root root 1816 Oct 27 22:07 dmesg-efi-
166692286117002
-rw-------. 1 root root 1388 Oct 27 22:07 dmesg-efi-
166692286701003
-rw-------. 1 root root 1824 Oct 27 22:07 dmesg-efi-
166692286702003
-rw-------. 1 root root 1795 Oct 27 22:07 dmesg-efi-
166692286703003
-rw-------. 1 root root 1805 Oct 27 22:07 dmesg-efi-
166692286704003
-rw-------. 1 root root 1813 Oct 27 22:07 dmesg-efi-
166692286705003
-rw-------. 1 root root 1821 Oct 27 22:07 dmesg-efi-
166692286706003
-rw-------. 1 root root 1814 Oct 27 22:07 dmesg-efi-
166692286707003
-rw-------. 1 root root 1812 Oct 27 22:07 dmesg-efi-
166692286708003
-rw-------. 1 root root 1769 Oct 27 22:07 dmesg-efi-
166692286709003
-rw-------. 1 root root 1820 Oct 27 22:07 dmesg-efi-
166692286710003
-rw-------. 1 root root 1755 Oct 27 22:07 dmesg-efi-
166692286711003
-rw-------. 1 root root 1790 Oct 27 22:07 dmesg-efi-
166692286712003
-rw-------. 1 root root 1756 Oct 27 22:07 dmesg-efi-
166692286713003
-rw-------. 1 root root 1763 Oct 27 22:07 dmesg-efi-
166692286714003
-rw-------. 1 root root 1791 Oct 27 22:07 dmesg-efi-
166692286715003
-rw-------. 1 root root 1775 Oct 27 22:07 dmesg-efi-
166692286716003
-rw-------. 1 root root 1820 Oct 27 22:07 dmesg-efi-
166692286717003
The "reconstructed" dmesg.txt that resulted from the above contained
the following (ignoring actual contents, just providing the Part info):
Emergency#3 Part17
Emergency#3 Part16
Emergency#3 Part15
Emergency#3 Part14
Emergency#3 Part13
Emergency#3 Part12
Emergency#3 Part11
Emergency#3 Part10
Emergency#3 Part9
Emergency#3 Part8
Emergency#3 Part7
Emergency#3 Part6
Emergency#3 Part5
Emergency#3 Part4
Emergency#3 Part3
Emergency#3 Part2
Emergency#3 Part1
Panic#2 Part17
Panic#2 Part16
Oops#1 Part16
Panic#2 Part15
Oops#1 Part15
Panic#2 Part14
Oops#1 Part14
Panic#2 Part13
Oops#1 Part13
Panic#2 Part12
Oops#1 Part12
Panic#2 Part11
Oops#1 Part11
Panic#2 Part10
Oops#1 Part10
Panic#2 Part9
Oops#1 Part9
Panic#2 Part8
Oops#1 Part8
Panic#2 Part7
Oops#1 Part7
Panic#2 Part6
Oops#1 Part6
Panic#2 Part5
Oops#1 Part5
Panic#2 Part4
Oops#1 Part4
Panic#2 Part3
Oops#1 Part3
Panic#2 Part2
Oops#1 Part2
Panic#2 Part1
Oops#1 Part1
The above is a interleaved mess of three dmesg dumps.
This patch fixes the above problems, and simplifies the dmesg
reconstruction process. The code now distinguishes between
records on EFI vs ERST, which have differently formatted
record identifiers. Using knowledge of the format of the
record ids allows vastly improved reconstruction process.
With this change in place, the above pstore records now
result in the following:
# ls -alR /var/lib/systemd/pstore
1666922861:
total 8
drwxr-xr-x. 4 root root 28 Nov 18 14:58 .
drwxr-xr-x. 7 root root 144 Nov 18 14:58 ..
drwxr-xr-x. 2 root root 4096 Nov 18 14:58 001
drwxr-xr-x. 2 root root 4096 Nov 18 14:58 002
1666922861/001:
total 100
drwxr-xr-x. 2 root root 4096 Nov 18 14:58 .
drwxr-xr-x. 4 root root 28 Nov 18 14:58 ..
-rw-------. 1 root root 1808 Oct 27 22:07 dmesg-efi-
166692286101001
-rw-------. 1 root root 1812 Oct 27 22:07 dmesg-efi-
166692286102001
-rw-------. 1 root root 1807 Oct 27 22:07 dmesg-efi-
166692286103001
-rw-------. 1 root root 1773 Oct 27 22:07 dmesg-efi-
166692286104001
-rw-------. 1 root root 1821 Oct 27 22:07 dmesg-efi-
166692286105001
-rw-------. 1 root root 1804 Oct 27 22:07 dmesg-efi-
166692286106001
-rw-------. 1 root root 1792 Oct 27 22:07 dmesg-efi-
166692286107001
-rw-------. 1 root root 1717 Oct 27 22:07 dmesg-efi-
166692286108001
-rw-------. 1 root root 1764 Oct 27 22:07 dmesg-efi-
166692286109001
-rw-------. 1 root root 1796 Oct 27 22:07 dmesg-efi-
166692286110001
-rw-------. 1 root root 1793 Oct 27 22:07 dmesg-efi-
166692286111001
-rw-------. 1 root root 1813 Oct 27 22:07 dmesg-efi-
166692286112001
-rw-------. 1 root root 1754 Oct 27 22:07 dmesg-efi-
166692286113001
-rw-------. 1 root root 1803 Oct 27 22:07 dmesg-efi-
166692286114001
-rw-------. 1 root root 1805 Oct 27 22:07 dmesg-efi-
166692286115001
-rw-------. 1 root root 1815 Oct 27 22:07 dmesg-efi-
166692286116001
-rw-r-----. 1 root root 28677 Nov 18 14:58 dmesg.txt
1666922861/002:
total 104
drwxr-xr-x. 2 root root 4096 Nov 18 14:58 .
drwxr-xr-x. 4 root root 28 Nov 18 14:58 ..
-rw-------. 1 root root 1341 Oct 27 22:07 dmesg-efi-
166692286101002
-rw-------. 1 root root 1820 Oct 27 22:07 dmesg-efi-
166692286102002
-rw-------. 1 root root 1791 Oct 27 22:07 dmesg-efi-
166692286103002
-rw-------. 1 root root 1801 Oct 27 22:07 dmesg-efi-
166692286104002
-rw-------. 1 root root 1809 Oct 27 22:07 dmesg-efi-
166692286105002
-rw-------. 1 root root 1817 Oct 27 22:07 dmesg-efi-
166692286106002
-rw-------. 1 root root 1810 Oct 27 22:07 dmesg-efi-
166692286107002
-rw-------. 1 root root 1808 Oct 27 22:07 dmesg-efi-
166692286108002
-rw-------. 1 root root 1765 Oct 27 22:07 dmesg-efi-
166692286109002
-rw-------. 1 root root 1816 Oct 27 22:07 dmesg-efi-
166692286110002
-rw-------. 1 root root 1751 Oct 27 22:07 dmesg-efi-
166692286111002
-rw-------. 1 root root 1786 Oct 27 22:07 dmesg-efi-
166692286112002
-rw-------. 1 root root 1752 Oct 27 22:07 dmesg-efi-
166692286113002
-rw-------. 1 root root 1759 Oct 27 22:07 dmesg-efi-
166692286114002
-rw-------. 1 root root 1787 Oct 27 22:07 dmesg-efi-
166692286115002
-rw-------. 1 root root 1771 Oct 27 22:07 dmesg-efi-
166692286116002
-rw-------. 1 root root 1816 Oct 27 22:07 dmesg-efi-
166692286117002
-rw-r-----. 1 root root 30000 Nov 18 14:58 dmesg.txt
1666922867:
total 4
drwxr-xr-x. 3 root root 17 Nov 18 14:58 .
drwxr-xr-x. 7 root root 144 Nov 18 14:58 ..
drwxr-xr-x. 2 root root 4096 Nov 18 14:58 003
1666922867/003:
total 104
drwxr-xr-x. 2 root root 4096 Nov 18 14:58 .
drwxr-xr-x. 3 root root 17 Nov 18 14:58 ..
-rw-------. 1 root root 1388 Oct 27 22:07 dmesg-efi-
166692286701003
-rw-------. 1 root root 1824 Oct 27 22:07 dmesg-efi-
166692286702003
-rw-------. 1 root root 1795 Oct 27 22:07 dmesg-efi-
166692286703003
-rw-------. 1 root root 1805 Oct 27 22:07 dmesg-efi-
166692286704003
-rw-------. 1 root root 1813 Oct 27 22:07 dmesg-efi-
166692286705003
-rw-------. 1 root root 1821 Oct 27 22:07 dmesg-efi-
166692286706003
-rw-------. 1 root root 1814 Oct 27 22:07 dmesg-efi-
166692286707003
-rw-------. 1 root root 1812 Oct 27 22:07 dmesg-efi-
166692286708003
-rw-------. 1 root root 1769 Oct 27 22:07 dmesg-efi-
166692286709003
-rw-------. 1 root root 1820 Oct 27 22:07 dmesg-efi-
166692286710003
-rw-------. 1 root root 1755 Oct 27 22:07 dmesg-efi-
166692286711003
-rw-------. 1 root root 1790 Oct 27 22:07 dmesg-efi-
166692286712003
-rw-------. 1 root root 1756 Oct 27 22:07 dmesg-efi-
166692286713003
-rw-------. 1 root root 1763 Oct 27 22:07 dmesg-efi-
166692286714003
-rw-------. 1 root root 1791 Oct 27 22:07 dmesg-efi-
166692286715003
-rw-------. 1 root root 1775 Oct 27 22:07 dmesg-efi-
166692286716003
-rw-------. 1 root root 1820 Oct 27 22:07 dmesg-efi-
166692286717003
-rw-r-----. 1 root root 30111 Nov 18 14:58 dmesg.txt
Furthemore, pstore records on ERST are now able to accurately
identify the change in timestamp sequence in order to start a
new dmesg.txt, as needed.
Lennart Poettering [Wed, 2 Nov 2022 15:02:33 +0000 (16:02 +0100)]
Revert "update credentials when reloading a service"
This reverts commit
16a42b84cf88745e6b2b93f111f99179117b9610.
Zbigniew Jędrzejewski-Szmek [Thu, 24 Nov 2022 12:45:11 +0000 (13:45 +0100)]
gpt-auto-generator: do not write "noauto" in unit options
"auto"/"noauto" only make sense in the fstab. Putting them in Options= in the
generated unit has no effect and is confusing.
Zbigniew Jędrzejewski-Szmek [Mon, 5 Dec 2022 07:41:00 +0000 (08:41 +0100)]
Merge pull request #25618 from keszybz/sysctl-simplify-writing
Write sysctl values without newlines and as fixed strings
Ivan Shapovalov [Tue, 29 Nov 2022 12:20:48 +0000 (16:20 +0400)]
import: wire up SYSTEMD_IMPORT_BTRFS_{SUBVOL,QUOTA} to importd
Btrfs quotas are actually being enabled in systemd-importd via
setup_machine_directory(), not in systemd-{import,pull} where those
environment variables are checked. Therefore, also check them in
systemd-importd and avoid enabling quotas if requested by the user.
Fixes: #18421
Fixes: #15903
Fixes: #24387
Ivan Shapovalov [Sat, 3 Dec 2022 16:31:36 +0000 (20:31 +0400)]
machine-pool: simplify return values from setup_machine_directory()
Non-negative return values of setup_machine_directory() were never used
and never had clear meaning, so do not distinguish between various
non-error conditions and just return 0 in all cases.
Mike Yuan [Sat, 3 Dec 2022 12:27:47 +0000 (20:27 +0800)]
rpm/systemd-update-helper: use --no-warn when disabling units
Suppress the "empty [Install] section" warning (see #25437).
Mike Yuan [Sun, 27 Nov 2022 13:18:44 +0000 (21:18 +0800)]
systemctl: allow suppress the warning of no install info using --no-warn
In cases like packaging scripts, it might be desired to use
enable/disable on units without install info. So, adding an
option '--no-warn' to suppress the warning.
Mike Yuan [Fri, 18 Nov 2022 07:43:34 +0000 (15:43 +0800)]
systemctl: warn if trying to disable a unit with no install info
Trying to disable a unit with no install info is mostly useless, so
adding a warning like we do for enable (with the new dbus method
'DisableUnitFilesWithFlagsAndInstallInfo()'). Note that it would
still find and remove symlinks to the unit in /etc, regardless of
whether it has install info or not, just like before. And if there are
actually files to remove, we suppress the warning.
Fixes #17689
Luca Boccassi [Sat, 3 Dec 2022 11:23:00 +0000 (11:23 +0000)]
Update TODO
Zbigniew Jędrzejewski-Szmek [Sat, 3 Dec 2022 10:57:17 +0000 (11:57 +0100)]
manager: write net/unix/max_dgram_qlen sysctl as fixed string
Zbigniew Jędrzejewski-Szmek [Sat, 3 Dec 2022 10:55:55 +0000 (11:55 +0100)]
manager: define a string constant for LONG_MAX and use that for sysctl
This moves the formatting of the constant to compilation time and let's us
avoid asprintf() in the very hot path of initial boot.
Zbigniew Jędrzejewski-Szmek [Sat, 3 Dec 2022 10:27:40 +0000 (11:27 +0100)]
manager: do not append '\n' when writing sysctl settings
When booting with debug logs, we print:
Setting '/proc/sys/fs/file-max' to '
9223372036854775807
'
Setting '/proc/sys/fs/nr_open' to '
2147483640
'
Couldn't write fs.nr_open as
2147483640, halving it.
Setting '/proc/sys/fs/nr_open' to '
1073741816
'
Successfully bumped fs.nr_open to
1073741816
The strange formatting is because we explicitly appended a newline in those two
places. It seems that the kernel doesn't care. In fact, we have a few dozen other
writes to sysctl where we don't append a newline. So let's just drop those here
too, to make the code a bit simpler and avoid strange output in the logs.
Lennart Poettering [Wed, 30 Nov 2022 17:44:06 +0000 (18:44 +0100)]
dissect: add new helper verity_settings_data_covers()
This function checks if the external verity data referenced in
VeritySettings covers the specified partition (indicated via
designator).
Right now, we'll use that at one place, but in a later commit in more.
Lennart Poettering [Fri, 2 Dec 2022 22:52:12 +0000 (23:52 +0100)]
systemctl: print a clear warning if people invoke systemctl without /proc/
Lennart Poettering [Fri, 2 Dec 2022 22:50:57 +0000 (23:50 +0100)]
chase-symlink: when converting directory O_PATH fd to real fd, don't bother with /proc/
Replaces: #25581
Lennart Poettering [Fri, 2 Dec 2022 22:50:48 +0000 (23:50 +0100)]
glyph-util: add warning sign special glyph
Lennart Poettering [Wed, 30 Nov 2022 17:55:05 +0000 (18:55 +0100)]
dissect: pick up gpt partition flags
Let's store the GPT partition flags in the dissected partition info.
Right now we won't actually use them for anything yet, but later we'll
add that, when enforcing policy on dissection.
Lennart Poettering [Fri, 2 Dec 2022 17:25:53 +0000 (18:25 +0100)]
Merge pull request #25570 from yuwata/dissect-rootless-image
dissect: support to unmount image without root partition
Lennart Poettering [Fri, 2 Dec 2022 16:53:27 +0000 (17:53 +0100)]
Revert "basic: add fallback in chase_symlinks_and_opendir() for cases when /proc is not mounted"
This reverts commit
3e22dfc2352bb5c4f058e23a82f424655b599b18.
Michal Sekletar [Wed, 30 Nov 2022 17:01:01 +0000 (18:01 +0100)]
basic: add fallback in chase_symlinks_and_opendir() for cases when /proc is not mounted
https://bugzilla.redhat.com/show_bug.cgi?id=
2136916
Zbigniew Jędrzejewski-Szmek [Fri, 2 Dec 2022 13:37:17 +0000 (14:37 +0100)]
Merge pull request #25541 from medhefgo/boot-reconnect
boot: Fix huge boot delay
Frantisek Sumsal [Fri, 2 Dec 2022 11:48:26 +0000 (12:48 +0100)]
test: check if we can use SHA1 MD for signing before using it
Some distributions have started phasing out SHA1, which breaks
the systemd-measure test case in its current form. Let's make sure we
can use SHA1 for signing beforehand to mitigate this.
Spotted on RHEL 9, where SHA1 signatures are disallowed by [0]:
```
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out "/tmp/pcrsign-private.pem"
...
openssl rsa -pubout -in "/tmp/pcrsign-private.pem" -out "/tmp/pcrsign-public.pem"
writing RSA key
/usr/lib/systemd/systemd-measure sign --current --bank=sha1 --private-key="/tmp/pcrsign-private.pem" --public-key="/tmp/pcrsign-public.pem"
Failed to initialize signature context.
```
[0] https://gitlab.com/redhat/centos-stream/rpms/openssl/-/blob/c9s/0049-Selectively-disallow-SHA1-signatures.patch