Zbigniew Jędrzejewski-Szmek [Wed, 8 Feb 2023 10:30:13 +0000 (11:30 +0100)]
manager: "downgrade" message about command vanishing from the unit file
We would print "Current command vanished from the unit file, execution of
the command list won't be resumed." as a warning, but most of the time there
is nothing to resume, because a unit has just one command. So let's detect
the case where the command that was active is the last command in the sequence
and skip the warning.
I was considering how to store the information that the command is last. An
important consideration is not to use a format that would confuse older versions
of systemd. (It wouldn't be a big problem if older systemd just refused the
new serialization, since we require systemd to be newer, but we should avoid
the case where the deserialization is "successful", but actually incorrect.)
Similarly, the deserialization from the old systemd must not confuse new systemd.
For this command, we have a list of arguments at the end, so just adding a
new field either in the middle or at the end is problematic because it's hard
to ensure that we don't mix up the positional and variable arguments.
We actually need to store just one bit of information, so '+' is prefixed on
the index of the last command and used by new systemd to skip the warning.
When deserializing from older systemd, '+' is not present, so we detect all
commands as "not last", and still emit the warning, so we err on the side of
caution. If the user were to deserialize from newer to older systemd, nothing
untoward would happen, because the '+' is ignored. (Users shouldn't do this,
but we know that this occasionally happens with initrds or exitrds and package
downgrades.)
Zbigniew Jędrzejewski-Szmek [Wed, 8 Feb 2023 09:54:49 +0000 (10:54 +0100)]
test-parse-util: add tests with explicit plus character
I expected this to work, but our tests did not cover this
explicitly.
Zbigniew Jędrzejewski-Szmek [Wed, 8 Feb 2023 08:40:24 +0000 (09:40 +0100)]
core/service: constify ExecCommand* in two functions
Yu Watanabe [Tue, 7 Feb 2023 03:08:07 +0000 (12:08 +0900)]
Merge pull request #26324 from yuwata/argv-util-update-short-name
argv-util: also update short invocation name
Yu Watanabe [Tue, 7 Feb 2023 03:07:45 +0000 (12:07 +0900)]
Merge pull request #26322 from keszybz/log-errno-fix
Log errno fix
Yu Watanabe [Tue, 7 Feb 2023 03:07:21 +0000 (12:07 +0900)]
Merge pull request #26321 from keszybz/flex-arrays
Enable new compiler diagnostics for invalid array accesses
Yu Watanabe [Tue, 7 Feb 2023 03:06:49 +0000 (12:06 +0900)]
Merge pull request #26320 from keszybz/operator-whitespace
Drop whitespace after shell redirection operators
Topi Miettinen [Mon, 6 Feb 2023 20:29:50 +0000 (20:29 +0000)]
NEWS: fix typo
Lennart Poettering [Mon, 6 Feb 2023 10:53:05 +0000 (11:53 +0100)]
update TODO
Yu Watanabe [Fri, 3 Feb 2023 09:29:36 +0000 (18:29 +0900)]
argv-util: also update program_invocation_short_name
Our logging uses program_invocation_short_name. Without this patch,
logs from forked client may become broken; spuriously truncated or
the short invocation name is not completely shown in the log.
Yu Watanabe [Mon, 6 Feb 2023 13:49:35 +0000 (22:49 +0900)]
test: use notice log level to make easily filter out logs from PID1
Zbigniew Jędrzejewski-Szmek [Mon, 6 Feb 2023 08:46:55 +0000 (09:46 +0100)]
meson: enable -Wzero-length-bounds
This will warn if fake flexible arrays are re-introduced. I'm not using
-Werror=… because we may still get warnings when compiling against old kernel
headers. We can crank this up to error later.
Zbigniew Jędrzejewski-Szmek [Sun, 5 Feb 2023 19:44:19 +0000 (20:44 +0100)]
meson: enable -Warray-bounds and -fstrict-flex-arrays
-fstrict-flex-arrays means that the compiler doesn't have to assume that any
trailing array is a flex array. I.e. unless the array is declared without a
specified size, only indices in the declared range are valid.
-Warray-bounds turns on the warnings about out-of-bounds array accesses.
-Warray-bounds=2 does some more warnings, with higher false positive rate. But
it doesn't seem to yield any false positives in our codebase, so enable it.
clang supports -Warray-bounds, but not -Warray-bounds=2.
gcc supports both.
gcc-13 supports -fstrict-flex-arrays.
See https://people.kernel.org/kees/bounded-flexible-arrays-in-c for a long
discussion of use in the kernel.
Zbigniew Jędrzejewski-Szmek [Mon, 6 Feb 2023 11:03:09 +0000 (12:03 +0100)]
shared/json: avoid use of fake flex array
Zbigniew Jędrzejewski-Szmek [Sun, 5 Feb 2023 20:15:52 +0000 (21:15 +0100)]
sd-journal: avoid use of fake flex arrays
I tried to use DECLARE_FLEX_ARRAY like the kernel does, but it does not work
for anonymous structs (they cannot be declared inline), so an open-coded
version is used.
Zbigniew Jędrzejewski-Szmek [Mon, 6 Feb 2023 09:08:44 +0000 (10:08 +0100)]
repart: silence bogus gcc warning
[2/3] Compiling C object systemd-repart.p/src_partition_repart.c.o
../src/partition/repart.c: In function ‘context_open_copy_block_paths’:
../src/partition/repart.c:5194:41: warning: ‘devno’ may be used uninitialized [-Wmaybe-uninitialized]
5194 | source_fd = r = device_open_from_devnum(S_IFBLK, devno, O_RDONLY|O_CLOEXEC|O_NONBLOCK, &opened);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/partition/repart.c:5188:31: note: ‘devno’ was declared here
5188 | dev_t devno;
| ^~~~~
This is with gcc-13.0.1-0.2.fc38.x86_64, -O2. I'm pretty sure the code
is correct. I also tried adding some asserts where errno is used for the return
value, but that didn't help. I think resolve_copy_blocks_auto() is just too long
for gcc to understand.
Zbigniew Jędrzejewski-Szmek [Mon, 6 Feb 2023 09:00:50 +0000 (10:00 +0100)]
repart: fix invalid errno in log
Zbigniew Jędrzejewski-Szmek [Sun, 5 Feb 2023 19:22:08 +0000 (20:22 +0100)]
shared/linux: fix fake flexible array in struct autofs_dev_ioctl
The kernel still hasn't fixed this in kernel-headers-6.2.0-0.rc6.git0.1.fc38.x86_64.
Zbigniew Jędrzejewski-Szmek [Sun, 5 Feb 2023 19:17:21 +0000 (20:17 +0100)]
sd-network: stop using fake flexible array
Zbigniew Jędrzejewski-Szmek [Sun, 5 Feb 2023 19:11:56 +0000 (20:11 +0100)]
shared/linux: update kernel headers
The kernel was updated to not use fake flex arrays with zero size.
Updating should allow -fstrict-flex-arrays to be used.
Headers pulled from kernel-headers-6.2.0-0.rc6.git0.1.fc38.x86_64.
Note that this is not a straighforward copy: our files have local modifications
(listed in README) that need to be preserved.
Zbigniew Jędrzejewski-Szmek [Sun, 5 Feb 2023 21:04:45 +0000 (22:04 +0100)]
docs/CODING_STYLE: add sentence about redirection operators
Zbigniew Jędrzejewski-Szmek [Sun, 5 Feb 2023 21:02:15 +0000 (22:02 +0100)]
tools: replace multi-line echo by <<EOF
Zbigniew Jędrzejewski-Szmek [Sun, 5 Feb 2023 20:41:24 +0000 (21:41 +0100)]
test: drop whitespace after shell redirection operators
(The one case that is left unchanged is '< <(subcommand)'.)
This way, the style with no gap was already dominant. This way, the reader
immediately knows that ' < ' is a comparison operator and ' << ' is a shift.
In a few cases, replace custom EOF replacement by just EOF. There is no point
in using someting like "_EOL" unless "EOF" appears in the text.
Zbigniew Jędrzejewski-Szmek [Sun, 5 Feb 2023 20:20:15 +0000 (21:20 +0100)]
NEWS: adjust commas, avoid double negative
Also adjust text wrapping in a few spots.
Darrell Kavanagh [Sun, 5 Feb 2023 20:57:12 +0000 (20:57 +0000)]
Add hwdb sensor entry for Lenovo IdeaPad Duet 3 10IGL5 (82AT).
Takashi Sakamoto [Mon, 6 Feb 2023 00:59:02 +0000 (09:59 +0900)]
hwdb: ieee1394-unit-function: add MOTU 896 mk3 Hybrid
This commit adds hwdb entry for MOTU 896 mk3 Hybrid.
Reference: https://lore.kernel.org/alsa-devel/
63DF98FE.
2060604@gmx.de/
Jan Macku [Fri, 3 Feb 2023 09:25:51 +0000 (10:25 +0100)]
ci: Fix Development Freeze Automation
Due to the limitation of `GITHUB_TOKEN` when running workflows from forks,
it's required to split the `development_freeze` workflow in two.
* First workflow will run on the `pull_request` trigger and save the PR
number in the artifact. This workflow is running with read-only permissions
on `GITHUB_TOKEN`.
* Second workflow will get triggered on `workflow_run`. It will be run
directly in the `systemd/systemd` context and can get permission to be
able to create comments on PR.
GITHUB_TOKEN limitations:
* https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token
GitHub Security Labs Article - How to correctly and safely overcome GITHUB_TOKEN limitations:
* https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
Simon Brand [Fri, 3 Feb 2023 02:52:31 +0000 (02:52 +0000)]
man: correct path for systemd-pcrphase
Yu Watanabe [Thu, 2 Feb 2023 17:07:17 +0000 (02:07 +0900)]
NEWS: fix typo
Lennart Poettering [Thu, 2 Feb 2023 16:44:03 +0000 (17:44 +0100)]
update NEWS
Luca Boccassi [Thu, 2 Feb 2023 16:30:13 +0000 (16:30 +0000)]
Merge pull request #26302 from bluca/rc2
Update hwdb for rc2
Luca Boccassi [Thu, 2 Feb 2023 14:51:02 +0000 (14:51 +0000)]
NEWS: fix typo
Lennart Poettering [Thu, 2 Feb 2023 14:45:09 +0000 (15:45 +0100)]
NEWS: various fixes
Luca Boccassi [Thu, 2 Feb 2023 14:20:40 +0000 (14:20 +0000)]
NEWS: update date
Luca Boccassi [Thu, 2 Feb 2023 14:16:51 +0000 (14:16 +0000)]
NEWS: update contributors list
Luca Boccassi [Thu, 2 Feb 2023 14:19:45 +0000 (14:19 +0000)]
hwdb: update autosuspend db
Luca Boccassi [Thu, 2 Feb 2023 14:18:56 +0000 (14:18 +0000)]
hwdb: update
Luca Boccassi [Thu, 2 Feb 2023 12:25:18 +0000 (12:25 +0000)]
NEWS: update for v253-rc2
Yu Watanabe [Thu, 2 Feb 2023 11:00:37 +0000 (20:00 +0900)]
NEWS: fix typo
Zbigniew Jędrzejewski-Szmek [Thu, 2 Feb 2023 10:01:56 +0000 (11:01 +0100)]
Merge pull request #26292 from yuwata/locale-fix-enoent-handling
locale: fix ENOENT handling for vconsole.conf or xorg.conf
Yu Watanabe [Wed, 1 Feb 2023 19:36:29 +0000 (04:36 +0900)]
test-time-util: skip test for TIMESTAMP_DATE if the timestamp is too old
Follow-up for
64f3419ec1f56a93b6dd48137ca40c945fc06c59.
If the input timestamp is too old (say, 1min since 1970-01-01), then
parse_timestamp() may fail on a timezone with positive shift e.g.
JST (UTC+9). Moreover, even if parse_timestamp() succeeds, its result
'y' and 'usec_sub_unsigned(x, 2 * USEC_PER_DAY)' are both zero, and
the assertion will be triggered.
Fixes #26172.
Yu Watanabe [Wed, 1 Feb 2023 14:39:43 +0000 (23:39 +0900)]
udev: make get_virtfn_info() provide physical PCI device
Fixes a bug introduced by
78463c6c4fdcb703bc0dc694c3ea77df3c5624e0.
Fixes #25545.
Luca Boccassi [Wed, 1 Feb 2023 23:40:52 +0000 (23:40 +0000)]
Merge pull request #26180 from ddstreet/tpm2_cleanup
Add struct tpm2_handle and use _cleanup_ instead of goto
Luca Boccassi [Wed, 1 Feb 2023 23:14:59 +0000 (23:14 +0000)]
Merge pull request #26269 from keszybz/sysusers-empty-etc-and-improved-messages
sysusers: improve messages and autocreate /etc
Luca Boccassi [Wed, 1 Feb 2023 19:29:11 +0000 (19:29 +0000)]
man: add page for systemd-ac-power
It is now a supported executable, so add manpage.
Fixes https://github.com/systemd/systemd/issues/26289
Luca Boccassi [Wed, 1 Feb 2023 21:51:04 +0000 (21:51 +0000)]
Merge pull request #26287 from medhefgo/mkosi-auto-enroll
ci: Test with secure boot enabled under mkosi
Frantisek Sumsal [Wed, 1 Feb 2023 20:59:04 +0000 (20:59 +0000)]
Merge pull request #26285 from yuwata/test-lvextend
test: add a testcase for lvextend
wouter bolsterlee [Wed, 1 Feb 2023 20:15:22 +0000 (21:15 +0100)]
docs: tweak rsync flags for moving existing home dir to systemd-homed
The documentation on moving an existing homedir into a systemd-homed managed
one suggests using rsync(1) with a bunch of flags to preserve as much metadata
as possible: permissions, xattrs, timestamps, etc. The previously suggested
flags were:
rsync -aHAXv --remove-source-files …
… which does include mtimes, but not ctimes and atimes, because -a does not
include those:
--archive, -a archive mode is -rlptgoD (no -A,-X,-U,-N,-H)
This change adds the -N and -U flags to preserve even more file timestamps,
turning the command into:
rsync -aHANUXv --remove-source-files …
The new flags are:
--crtimes, -N preserve create times (newness)
--atimes, -U preserve access (use) times
Yu Watanabe [Wed, 1 Feb 2023 18:17:53 +0000 (03:17 +0900)]
locale: drop context_clear_x11()
It is used at only place, and mostly trivial.
No functional change, just refactoring.
Yu Watanabe [Wed, 1 Feb 2023 18:17:06 +0000 (03:17 +0900)]
locale: fix ENOENT handling for vconsole.conf or xorg.conf
Dan Streetman [Tue, 24 Jan 2023 15:19:03 +0000 (10:19 -0500)]
tpm2: add Tpm2Handle with automatic cleanup
This allows using _cleanup_ with the handles, which then allows removing the
use of goto in all functions that use the handles.
Dan Streetman [Tue, 6 Dec 2022 18:07:34 +0000 (13:07 -0500)]
tpm2: use Tpm2Context* instead of ESYS_CONTEXT*
This is needed for later patches that use Tpm2Handle, which requires access
to the Tpm2Context.
Dan Streetman [Tue, 24 Jan 2023 00:52:56 +0000 (19:52 -0500)]
tpm2: use ref counter for Tpm2Context
This will be used by Tpm2Handle instances, which is added in later patches.
The refcounting allows the context to be retained until all Tpm2Handles have
been cleaned up, and the initial ref is released, before cleaning the context.
Dan Streetman [Tue, 24 Jan 2023 00:52:56 +0000 (19:52 -0500)]
tpm2: rename struct tpm2_context to Tpm2Context
This aligns with systemd coding guidelines for struct naming
Dan Streetman [Fri, 9 Dec 2022 22:20:24 +0000 (17:20 -0500)]
tpm2: rename tpm2 alg id<->string functions
The 'pcr_bank' functions operate on hash algs, and are not specific to the PCR
banks, while the 'primary_alg' functions operate on asymmetric algs, and are
not specific to primary keys.
Zbigniew Jędrzejewski-Szmek [Wed, 1 Feb 2023 16:18:35 +0000 (17:18 +0100)]
Merge pull request #26219 from yuwata/localed-follow-ups
locale: check conversion before polkit
Jan Janssen [Tue, 31 Jan 2023 17:53:28 +0000 (18:53 +0100)]
ci: Test with secure boot enabled under mkosi
This gives us some nice test coverage for secure boot enrolling and the
stub secure boot workound. The authenticated EFI variables are already
created by mkosi, all we need to do is request secure boot to be used.
Zbigniew Jędrzejewski-Szmek [Wed, 1 Feb 2023 16:03:46 +0000 (17:03 +0100)]
Merge pull request #26286 from keszybz/two-doc-updates
Two doc updates
Jan Janssen [Wed, 1 Feb 2023 14:27:45 +0000 (15:27 +0100)]
git: Ignore mkosi secure boot keys
Jan Janssen [Wed, 1 Feb 2023 14:23:25 +0000 (15:23 +0100)]
boot: Add if-safe mode for secure boot enrollment
Jan Janssen [Wed, 1 Feb 2023 13:43:59 +0000 (14:43 +0100)]
man: Use sbsigntools for secure boot key generation example
This way, people do not need efitools installed to generate these as
sbsigntools has everything needed to produce signed EFI variables.
Yu Watanabe [Wed, 1 Feb 2023 12:25:40 +0000 (21:25 +0900)]
test: add a testcase for lvextend
For RHBZ#
2158628 (https://bugzilla.redhat.com/show_bug.cgi?id=
2158628)
Zbigniew Jędrzejewski-Szmek [Wed, 1 Feb 2023 14:34:38 +0000 (15:34 +0100)]
man: strengthen language about generator output
Inspired by https://bugzilla.redhat.com/show_bug.cgi?id=
2165433.
Zbigniew Jędrzejewski-Szmek [Thu, 26 Jan 2023 15:33:42 +0000 (16:33 +0100)]
NEWS: extend entry for systemd-journald-audit.socket
I knew about the change but forgot to update the packaging scriptlets…
Let's add this to make it easier for other distros to notice.
Lennart Poettering [Mon, 30 Jan 2023 17:39:20 +0000 (18:39 +0100)]
test-journal-flush: minor modernizations
let's automatically destroy test dirs, instead of manually.
Lennart Poettering [Wed, 1 Feb 2023 11:08:25 +0000 (12:08 +0100)]
id128: introduce ERRNO_IS_MACHINE_ID_UNSET() helper macro
Yu Watanabe [Wed, 1 Feb 2023 14:03:54 +0000 (23:03 +0900)]
test: make helper_check_device_units() log unit name
Robin Humble [Wed, 1 Feb 2023 12:36:48 +0000 (23:36 +1100)]
pid1: fix segv triggered by status query (#26279)
If any query makes it to the end of install_info_follow() then I think symlink_target is set to NULL.
If that is followed by -EXDEV from unit_file_load_or_readlink(), then that causes basename(NULL)
which segfaults pid 1.
This is triggered by eg. "systemctl status crond" in RHEL9 if
/etc/systemd/system/crond.service
-> /ram/etc/systemd/system/crond.service
-> /usr/lib/systemd/system/.crond.service.blah.blah
-> /usr/lib/systemd/system/crond.service
Zbigniew Jędrzejewski-Szmek [Tue, 26 Jan 2021 19:23:12 +0000 (20:23 +0100)]
core: split system/user job timeouts and make them configurable
Config options are -Ddefault-timeout-sec= and -Ddefault-user-timeout-sec=.
Existing -Dupdate-helper-user-timeout= is renamed to -Dupdate-helper-user-timeout-sec=
for consistency. All three options take an integer value in seconds. The
renaming and type-change of the option is a small compat break, but it's just
at compile time and result in a clear error message. I also doubt that anyone was
actually using the option.
This commit separates the user manager timeouts, but keeps them unchanged at 90 s.
The timeout for the user manager is set to 4/3*user-timeout, which means that it
is still 120 s.
Fedora wants to experiment with lower timeouts, but doing this via a patch would
be annoying and more work than necessary. Let's make this easy to configure.
Zbigniew Jędrzejewski-Szmek [Tue, 31 Jan 2023 15:41:16 +0000 (16:41 +0100)]
test-sysusers: check that sysusers creates /etc when missing
Zbigniew Jędrzejewski-Szmek [Tue, 31 Jan 2023 15:24:50 +0000 (16:24 +0100)]
basic/user-util: create /etc from take_etc_passwd_lock
This allows sysusers to operate with --root that is an empty directory.
It may be useful to, for example, populate the user database before installing
anything else.
firstboot was already doing this, so drop the duplicated call there.
Zbigniew Jędrzejewski-Szmek [Tue, 31 Jan 2023 15:17:12 +0000 (16:17 +0100)]
basic/user-util: convert prefix_roota→path_join and use _cleanup_ more
Zbigniew Jędrzejewski-Szmek [Tue, 31 Jan 2023 15:16:55 +0000 (16:16 +0100)]
basic: reword some comments
Without commas, the sentences can be hard to parse.
Zbigniew Jędrzejewski-Szmek [Tue, 31 Jan 2023 14:10:03 +0000 (15:10 +0100)]
sysusers: when comparing items, log debug the difference
Zbigniew Jędrzejewski-Szmek [Tue, 31 Jan 2023 13:16:48 +0000 (14:16 +0100)]
sysusers: add helper to create new Item
dependabot[bot] [Wed, 1 Feb 2023 09:01:53 +0000 (09:01 +0000)]
build(deps): bump systemd/mkosi
Bumps [systemd/mkosi](https://github.com/systemd/mkosi) from
f36983f552a197faf9e36361cc68a297e68bee73 to
500f93a36cc3d5bf1d06848a0a8870bf1424625f.
- [Release notes](https://github.com/systemd/mkosi/releases)
- [Changelog](https://github.com/systemd/mkosi/blob/main/NEWS.md)
- [Commits](https://github.com/systemd/mkosi/compare/
f36983f552a197faf9e36361cc68a297e68bee73...
500f93a36cc3d5bf1d06848a0a8870bf1424625f)
---
updated-dependencies:
- dependency-name: systemd/mkosi
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Wed, 1 Feb 2023 09:01:43 +0000 (09:01 +0000)]
build(deps): bump actions/github-script from 6.3.3 to 6.4.0
Bumps [actions/github-script](https://github.com/actions/github-script) from 6.3.3 to 6.4.0.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/
d556feaca394842dc55e4734bf3bb9f685482fa0...
98814c53be79b1d30f795b907e553d8679345975)
---
updated-dependencies:
- dependency-name: actions/github-script
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Wed, 1 Feb 2023 09:01:40 +0000 (09:01 +0000)]
build(deps): bump redhat-plumbers-in-action/advanced-issue-labeler
Bumps [redhat-plumbers-in-action/advanced-issue-labeler](https://github.com/redhat-plumbers-in-action/advanced-issue-labeler) from 2.0.1 to 2.0.4.
- [Release notes](https://github.com/redhat-plumbers-in-action/advanced-issue-labeler/releases)
- [Commits](https://github.com/redhat-plumbers-in-action/advanced-issue-labeler/compare/
88209aef583c66312529c515d41ea6a710a4baba...
25a1e41826424cdf577c71b58c852df4347f13b8)
---
updated-dependencies:
- dependency-name: redhat-plumbers-in-action/advanced-issue-labeler
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Zbigniew Jędrzejewski-Szmek [Wed, 1 Feb 2023 09:05:36 +0000 (10:05 +0100)]
Merge pull request #26236 from medhefgo/meson-fixes
meson: Fixes
Lennart Poettering [Tue, 31 Jan 2023 15:21:54 +0000 (16:21 +0100)]
journald: some minor modernizations
Lennart Poettering [Tue, 31 Jan 2023 12:40:23 +0000 (13:40 +0100)]
journal: generate a clean message when we try to write to a journal file from a different host
Lennart Poettering [Tue, 31 Jan 2023 22:00:07 +0000 (23:00 +0100)]
journal-file: refuse writing to journal files where the header size is different then expected
We keep adding fields to the header, and it's fine reading files with
different header sizes, as we check via the size if the fields we need
are included. However, let's be stricter when writing journal files than
when reading, and insist that the header structure in the file actually
matches our expectations. Refuse otherwise, so that a new file is
created after rotation that then matches our expectations.
This makes sure that mismatch in header size is treated exactly as
unknown "compatible" flags, which is our other mechanism to allow
extending the journal file format in a non-breaking way.
Rudi Heitbaum [Tue, 31 Jan 2023 12:06:56 +0000 (12:06 +0000)]
glibc: Conditionally #include <linux/fs.h> to resolve fsconfig_command/mount_attr conflict with glibc 2.36
Co-authored-by: Frantisek Sumsal <frantisek@sumsal.cz>
Zbigniew Jędrzejewski-Szmek [Tue, 31 Jan 2023 16:04:10 +0000 (17:04 +0100)]
sysusers: insist that root group is 0
In https://bugzilla.redhat.com/show_bug.cgi?id=
2156900 sysusers was reporting a
conflict between the following lines:
u root 0:0 "Super User" /root /bin/bash
u root 0 "Super User" /root
The problem is that those configurations are indeed not equivalent. If group 0
exists with a different name, the first line would just create the user, but the
second line would create a 'root' group with a different GID. The second
behaviour seems definitely wrong. (Or at least more confusing in practice than
the first one. The system is in a strange shape, but the second approach takes
an additional step than is worse than doing nothing.)
When this line was initially added, we didn't have the uid:gid functionality for
'u', so we didn't think about this too much. But now we do, so we should use it.
$ build/systemd-sysusers --root=/var/tmp/inst7 --inline 'g foobar 0'
Creating group 'foobar' with GID 0.
$ build/systemd-sysusers --root=/var/tmp/inst7 --inline 'u root 0 "Zuper zuper"'
src/sysusers/sysusers.c:1365: Creating group 'root' with GID 999.
src/sysusers/sysusers.c:1115: Suggested user ID 0 for root already used.
src/sysusers/sysusers.c:1183: Creating user 'root' (Zuper zuper) with UID 999 and GID 999.
vs.
$ build/systemd-sysusers --root=/var/tmp/inst7 --inline 'u root 0:0 "Zuper zuper"'
src/sysusers/sysusers.c:1183: Creating user 'root' (Zuper zuper) with UID 0 and GID 0.
Zbigniew Jędrzejewski-Szmek [Tue, 31 Jan 2023 15:12:09 +0000 (16:12 +0100)]
meson: fail build on implicit int warnings
Yu Watanabe [Mon, 30 Jan 2023 09:55:10 +0000 (18:55 +0900)]
network: dhcp-server: do not create DHCPServer object when the DHCP server is running in relaying mode
Follow-up for
c95df5879eeb2cec8bc8eec2cfa7e741e1d9469f.
Fixes #26196.
Tuetuopay [Fri, 27 Jan 2023 14:10:49 +0000 (15:10 +0100)]
network/dhcp4: accept local subnet routes from DHCP
RFC3442 specifies option 121 (Classless Static Routes) that allow a DHCP
server to push arbitrary routes to a client. It has a Local Subnet
Routes section expliciting the behavior of routes with a null (0.0.0.0)
gateway.
Such routes are to be installed on the interface with a Link scope, to
mark them as directly available on the link without any gateway.
Networkd currently drops those routes, which is against the RFC, as
Linux has proper support for such routes.
Fixes:
7f20627 ("network: dhcp4: ignore gateway in static routes if destination is link-local or in the same network")
Frantisek Sumsal [Tue, 31 Jan 2023 20:43:53 +0000 (21:43 +0100)]
ukify: don't install ukify man page if ukify is not enabled
Checking for gnu-efi is not enough, since ukify can be explicitly
disabled.
Resolves: #26274
Zbigniew Jędrzejewski-Szmek [Tue, 31 Jan 2023 13:21:49 +0000 (14:21 +0100)]
pid1,sysusers: drop unused SYNTHETIC_ERRNO
The only function of SYNTHETIC_ERRNO is to set the return value.
If we're ignoring the return value, it shouldn't be used.
Zbigniew Jędrzejewski-Szmek [Tue, 31 Jan 2023 12:47:17 +0000 (13:47 +0100)]
sysusers: drop counterproductive bitfield annotations
The usual story:
$ diff -u <(pahole build/systemd-sysusers.0) <(pahole build/systemd-sysusers)
/* size: 80, cachelines: 2, members: 15 */
- /* sum members: 68, holes: 1, sum holes: 4 */
- /* sum bitfield members: 5 bits (0 bytes) */
- /* padding: 7 */
- /* bit_padding: 3 bits */
+ /* sum members: 73, holes: 1, sum holes: 4 */
+ /* padding: 3 */
/* last cacheline: 16 bytes */
Effectively, because of padding, we were not saving anything. We're not putting
struct Item in arrays, but when allocating on the heap, we're going to round up to
normal alignment too.
The code becomes shorter (and quicker):
$ size build/systemd-sysusers{,.0}
text data bss dec hex filename
79967 2040 264 82271 1415f build/systemd-sysusers.0
79726 2040 264 82030 1406e build/systemd-sysusers
(In case you're wondering, I wrote this long commit message for a very simple
change on purpose: I want to deflate the bitfield cargo cult a bit.)
Ilya Leoshkevich [Mon, 30 Jan 2023 20:21:48 +0000 (21:21 +0100)]
bpf: fix restrict_fs on s390x
Linux kernel's bpf-next contains BPF LSM support for s390x. systemd's
test-bpf-lsm currently fails with this kernel.
This is an endianness issue: in the restrict_fs bpf program,
magic_number has type unsigned long (64 bits on s390x), but magic_map
keys are uint32_t (32 bits). Accessing magic_map using 64-bit keys may
work by accident on little-endian systems, but fails hard on big-endian
ones.
Fix by casting magic_number to uint32_t.
Arsen Arsenović [Sat, 28 Jan 2023 21:32:41 +0000 (22:32 +0100)]
importd: Always specify file unpacked by tar
Despite popular belief, the default file extracted by GNU tar is not stdin. It
is the value of the TAPE environment variable, falling back on a compile-time
constant. On my system, the default value is /dev/full, which causes tar to
just spin forever due to --ignore-zeros. Always specifying this flag is the
safe thing to do.
~$ tar --show-defaults
--format=gnu -f/dev/full -b20 --quoting-style=escape
--rmt-command=/usr/sbin/grmt
See also: ``(tar)defaults'', available via Info viewers, and in HTML form at:
https://www.gnu.org/s/tar/manual/html_node/defaults.html
Lennart Poettering [Tue, 31 Jan 2023 11:21:09 +0000 (12:21 +0100)]
Merge pull request #26249 from DaanDeMeyer/nspawn-uid-fix
nspawn: Make sure we create bind mount points as the correct UID/GID
Lennart Poettering [Mon, 30 Jan 2023 16:14:03 +0000 (17:14 +0100)]
Merge pull request #26245 from ldv-alt/tmpfiles-fixes
tmpfiles: fix specifier expansion in arguments of C and L lines
Yu Watanabe [Mon, 30 Jan 2023 10:21:19 +0000 (19:21 +0900)]
Merge pull request #23956 from mrc0mmand/resolved-ipv6
test: cover (not only) IPv6 in the resolved test suite
Luca Boccassi [Mon, 30 Jan 2023 09:51:21 +0000 (09:51 +0000)]
Merge pull request #25374 from yuwata/sleep-fixlets
sleep: several fixlets
Daan De Meyer [Sun, 29 Jan 2023 18:31:15 +0000 (19:31 +0100)]
Merge pull request #26252 from DaanDeMeyer/mkosi-drop-workaround
mkosi fixes
Daan De Meyer [Sat, 28 Jan 2023 14:09:25 +0000 (15:09 +0100)]
test-systemd-tmpfiles: Fix execution when user is not in /etc/passwd
We might be running in a chroot as a uid that doesn't exist in /etc/passwd.
Let's make sure we don't fail in this scenario.
We pass $HOME when resetting the env so that we can find a home directory
and skip tests that depend on user name/group.
Daan De Meyer [Sun, 29 Jan 2023 16:34:21 +0000 (17:34 +0100)]
mkosi: Disable auditd when running with nspawn in CI
auditd fails to start in CentOS Stream 9 causing CI failures so let's
disable it when running with nspawn in CI.
Daan De Meyer [Sun, 29 Jan 2023 14:17:06 +0000 (15:17 +0100)]
mkosi: Add back CentOS Stream 8 to CI
It's still useful to test the EFI handover logic in systemd-boot.
We use a mkosi.prepare script to install a newer python and update
the system to use it.