]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
19 months agoMerge pull request #24654 from fbuihuu/mount_followup_for_pr_19983
Yu Watanabe [Mon, 10 Oct 2022 10:13:22 +0000 (19:13 +0900)] 
Merge pull request #24654 from fbuihuu/mount_followup_for_pr_19983

Mount followup for pr 23367

19 months agoMerge pull request #24595 from rphibel/support-image-option-in-systemctl-and-coredumpctl
Daan De Meyer [Mon, 10 Oct 2022 09:35:20 +0000 (11:35 +0200)] 
Merge pull request #24595 from rphibel/support-image-option-in-systemctl-and-coredumpctl

systemctl/coredumpctl: add support for --root and --image options

19 months agoudev: drop assertion which is always false
Yu Watanabe [Mon, 10 Oct 2022 05:20:33 +0000 (14:20 +0900)] 
udev: drop assertion which is always false

Fixes a bug introduced by 67c3e1f63a5221b47a8fea85ae421671f29f3b7e.

Fixes #24945.

19 months agomeson: Fix build with --optimization=plain
Jan Janssen [Sun, 9 Oct 2022 15:16:12 +0000 (17:16 +0200)] 
meson: Fix build with --optimization=plain

Note that -O0 is deliberately filtered out as we have to compile with at
least -O1 due to #24202.

Fixes: #24323
19 months agoNEWS: fix typos and reword things
Zbigniew Jędrzejewski-Szmek [Sun, 9 Oct 2022 15:16:42 +0000 (17:16 +0200)] 
NEWS: fix typos and reword things

In particular, 'system/service credentials' are now described as simply
'credentials'. The selling point of credentials is that they are transparently
propagated from the system to services, so distinguishing between system and
service credentials is not important.

The description of ordering against initrd-switch-root.target is completely
rewritten. The old description was confused.

I think the description of systemd-measure should be reworked to clearly
describe what new functionality is provided and what policy changes are
built on top. But I don't qrok the details, so I left this part unchanged.

19 months agoman: use a list for description of ConditionFirmware=
Zbigniew Jędrzejewski-Szmek [Sun, 9 Oct 2022 14:18:30 +0000 (16:18 +0200)] 
man: use a list for description of ConditionFirmware=

Also reduce confusion of <replaceable> and <literal> and reword things for
legibility a bit.

19 months agoTODO: fix typo
Yu Watanabe [Sat, 8 Oct 2022 06:09:53 +0000 (15:09 +0900)] 
TODO: fix typo

19 months agoNEWS: fix typo
Yu Watanabe [Sat, 8 Oct 2022 06:09:47 +0000 (15:09 +0900)] 
NEWS: fix typo

19 months agoNEWS: drop reverted feature for networkd
Yu Watanabe [Sat, 8 Oct 2022 06:09:33 +0000 (15:09 +0900)] 
NEWS: drop reverted feature for networkd

19 months agoRevert "journal: Add --convert= command to journalctl"
Daan De Meyer [Fri, 7 Oct 2022 16:14:16 +0000 (18:14 +0200)] 
Revert "journal: Add --convert= command to journalctl"

This reverts commit 721620e8a32907ffe546a582c5ac7136b6367510.

This commit was accidentally merged as part of #22998

19 months agofuzz: shorten name of fuzz test case
Zbigniew Jędrzejewski-Szmek [Fri, 7 Oct 2022 16:32:08 +0000 (18:32 +0200)] 
fuzz: shorten name of fuzz test case

Wide fuzzer case names make meson test output very wide…

19 months agoupdate NEWS for v250-rc1
Lennart Poettering [Fri, 7 Oct 2022 16:10:24 +0000 (18:10 +0200)] 
update NEWS for v250-rc1

19 months agoman/shutdown: document how to switch to single-user mode
anarcat [Thu, 6 Oct 2022 14:20:39 +0000 (10:20 -0400)] 
man/shutdown: document how to switch to single-user mode

Before Debian switched to systemd, `shutdown now` would reset the system into
single user mode, doing roughly the equivalent of `telinit 1`.

Now, systemd's `shutdown` command does not behave that way; it defaults to
`poweroff` which might be confusing for users (like me) used to the previous
method.

Because I don't use the command often, I keep being stumped by this behavior,
and every time I look at the `shutdown(1)` manpage, I don't understand why I
can't find what I am looking for. This patch should make sure that people like
me find their way back to some sort of reason.

Maybe the *proper* way to fix this would be to restore the more classic
behavior, but I'm definitely not going to climb that hill. Besides, I clearly
remember the time I found out about the `shutdown` command and was *really*
confused when it brought me back to a command-line prompt. That was really
counter-intuitive and I find that change to actually be a good thing. So I'm
not proposing to change this behavior, merely document it better.

I originally added this to the `-P` option but it was suggested adding a new
`COMPATIBILITY` section instead, where other such issues could be added.

The `COMPATIBILITY` section is not actually officially documented. `man(1)`
talks about a `CONFORMING TO` section, but `shutdown(1)` is not
POSIX (`shutdown(2)` is, of course), so there's no actual standard on how this
should work.

The other option I considered was to add a `BUGS` section, but that seemed to
inflammatory, and definitely counter-productive.

19 months agoFinalize changelog for v252-rc2 v252-rc1
Luca Boccassi [Fri, 7 Oct 2022 15:09:32 +0000 (17:09 +0200)] 
Finalize changelog for v252-rc2

19 months agomeson: bump numbers for v252-rc1
Luca Boccassi [Fri, 7 Oct 2022 12:08:16 +0000 (14:08 +0200)] 
meson: bump numbers for v252-rc1

19 months agoEnable PR template for RC phase
Luca Boccassi [Fri, 7 Oct 2022 12:09:07 +0000 (14:09 +0200)] 
Enable PR template for RC phase

19 months agoImplement --luks-sector-size for homed
Aidan Dang [Sun, 25 Sep 2022 14:12:10 +0000 (00:12 +1000)] 
Implement --luks-sector-size for homed

19 months agoMerge pull request #22998 from DaanDeMeyer/journal-compact-split
Luca Boccassi [Fri, 7 Oct 2022 14:19:03 +0000 (16:19 +0200)] 
Merge pull request #22998 from DaanDeMeyer/journal-compact-split

journal: Add compact mode

19 months agojournal: Add --convert= command to journalctl 22998/head
Daan De Meyer [Thu, 29 Sep 2022 10:07:54 +0000 (12:07 +0200)] 
journal: Add --convert= command to journalctl

--convert writes the journal files read by journalctl to the given
location. The location should be specified as a full journal file
path (e.g. /a/b/c/converted.journal). The directory specifies where
the converted journal files will be stored. The filename specifies
the naming convention the converted journal files will follow.

19 months agojournal: Store offsets to tail entry array objects in chain
Daan De Meyer [Fri, 21 Jan 2022 18:29:41 +0000 (18:29 +0000)] 
journal: Store offsets to tail entry array objects in chain

Previously, we'd iterate an entry array from start to end every time
we added an entry offset to it. To speed up this operation, we cache
the last entry array in the chain and how many items it contains.
This allows the addition of an entry to the chain to be done in
constant time instead of linear time as we don't have to iterate
the entire chain anymore every time we add an entry.

19 months agojournal: Introduce journal_file_data_payload()
Daan De Meyer [Thu, 29 Sep 2022 10:09:09 +0000 (12:09 +0200)] 
journal: Introduce journal_file_data_payload()

journal_file_data_payload() retrieves the payload of a Data object,
optionally decompressing it and checking to see if matches a given
field. This function replaces all the decompression code in the sd-journal
codebase with a single function.

This commit should not introduce any changes in sd-journal behavior.

19 months agojournal: Use 32-bit entry item object offsets in compact mode
Daan De Meyer [Tue, 2 Nov 2021 20:50:39 +0000 (20:50 +0000)] 
journal: Use 32-bit entry item object offsets in compact mode

To do this, we move EntryItem out of journal-def.h and turn it into
a host only struct in native endian mode so we can still use it to
ship the necessary info around.

Aside from that, the changes are pretty simple, we introduce some
extra functions to access the right field depending on the mode and
convert all the other code to use those functions instead of
accessing the raw fields.

We also drop the unused entry item hash field in compact mode. We
already stopped doing anything with this field a while ago, now we
actually drop it from the format in compact mode.

19 months agojournal: Use 32-bit entry array offsets in compact mode
Daan De Meyer [Sat, 23 Oct 2021 21:36:47 +0000 (22:36 +0100)] 
journal: Use 32-bit entry array offsets in compact mode

Before:

OBJECT TYPE      ENTRIES SIZE
Unused           0       0B
Data             3610336 595.7M
Field            5310    285.2K
Entry            3498326 1.2G
Data Hash Table  29  103.1M
Field Hash Table 29      151.3K
Entry Array      605991  1011.6M
Tag              0  0B
Total            7720021 2.9G

After:

OBJECT TYPE      ENTRIES SIZE
Unused           0  0B
Data             3562667 591.0M
Field            3971    213.6K
Entry            3498566 1.2G
Data Hash Table  20  71.1M
Field Hash Table 20  104.3K
Entry Array  582647  505.0M
Tag              0  0B
Total            7647891 2.4G

19 months agojournal: Don't allocate objects above UINT32_MAX in compact mode
Daan De Meyer [Wed, 3 Nov 2021 14:37:55 +0000 (14:37 +0000)] 
journal: Don't allocate objects above UINT32_MAX in compact mode

To allow storing offsets as 32-bit, we should never allocate objects
outside of the 32-bit range.

19 months agojournal: Run unit tests with and without compact mode enabled
Daan De Meyer [Fri, 21 Jan 2022 15:19:26 +0000 (15:19 +0000)] 
journal: Run unit tests with and without compact mode enabled

19 months agoMerge pull request #24930 from yuwata/network-drop-ndisc-vacuum
Yu Watanabe [Fri, 7 Oct 2022 09:38:34 +0000 (18:38 +0900)] 
Merge pull request #24930 from yuwata/network-drop-ndisc-vacuum

network: further follow-ups for recent NDisc PRs

19 months agoMerge pull request #24931 from bluca/news
Yu Watanabe [Fri, 7 Oct 2022 09:38:18 +0000 (18:38 +0900)] 
Merge pull request #24931 from bluca/news

hwdb and NEWS

19 months agojournal: Enable compact mode
Daan De Meyer [Sat, 23 Oct 2021 21:43:00 +0000 (22:43 +0100)] 
journal: Enable compact mode

We also add an environment variable $SYSTEMD_JOURNAL_COMPACT that
can be used to disable compact mode if needed (similar to
$SYSTEMD_JOURNAL_KEYED_HASH).

19 months agojournal: Add compact mode
Daan De Meyer [Sat, 23 Oct 2021 21:24:56 +0000 (22:24 +0100)] 
journal: Add compact mode

This adds a new flag in preparation for incompatible journal changes
which will be gated behind this flag. The max file size of journal
files in compact mode is limited to 4 GiB.

19 months agoUpdate hwdb 24931/head
Luca Boccassi [Fri, 7 Oct 2022 08:29:27 +0000 (10:29 +0200)] 
Update hwdb

ninja -C build update-hwdb

19 months agoNEWS: list contributors
Luca Boccassi [Fri, 7 Oct 2022 08:14:50 +0000 (10:14 +0200)] 
NEWS: list contributors

19 months agoNEWS: typos
Luca Boccassi [Fri, 7 Oct 2022 08:13:39 +0000 (10:13 +0200)] 
NEWS: typos

19 months agonetwork: free timer event source for NDisc when link is freed 24930/head
Yu Watanabe [Fri, 7 Oct 2022 05:32:10 +0000 (14:32 +0900)] 
network: free timer event source for NDisc when link is freed

Though, it should be already freed already freed in link_stop_engines()
-> ndisc_stop(). Just for safety.

19 months agonetwork: drop unnecessary call of ndisc_vacuum()
Yu Watanabe [Fri, 7 Oct 2022 05:17:13 +0000 (14:17 +0900)] 
network: drop unnecessary call of ndisc_vacuum()

After the commit 773024685b37170395a11716f8e4ad99d3580455, DNS servers
or domains are dropped when their lifefime become zero. Hence, it is not
necessary to try to them when writing state file.

Of course, because of the accuracy of the timer event source or priority
of event sources, a possibility is introduced that a DNS server or domain
with zero lifetime is stored in the state file. However, such entry will
be dropped soon when the timer event source is triggered. Hence, that
should not cause any real issues.

19 months agoMerge pull request #24511 from martinetd/bpf1
Zbigniew Jędrzejewski-Szmek [Thu, 6 Oct 2022 17:01:33 +0000 (19:01 +0200)] 
Merge pull request #24511 from martinetd/bpf1

libbpf: Add libbpf 1.0.0 compat

19 months agorepart: always honour `--discard=no`
Arnaud Ferraris [Tue, 4 Oct 2022 16:52:33 +0000 (18:52 +0200)] 
repart: always honour `--discard=no`

Currently, even if `--discard=no` is passed to `systemd-repart`, the
`context_discard_gap_after()` function still runs normally, discarding
e.g. all blocks between the GPT and the start of the first partition.

This can lead to issues on some embedded devices, where this space
holds the bootloader and shouldn't be modified (creating a protective
partition there is not always possible due to the specifics of the boot
process of some ARM-based SoC's).

This commit ensures passing `--discard=no` would be enough to ensure
the bootloader isn't wiped in such cases.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@gmail.com>
19 months agomeson: Require TPM2 for measuring utilities
Michal Koutný [Thu, 6 Oct 2022 09:59:58 +0000 (11:59 +0200)] 
meson: Require TPM2 for measuring utilities

I happened to run build with openssl but no tpm2 and ran into issues
like:

        [313/1382] Compiling C object systemd-measure.p/src_boot_measure.c.o
        FAILED: systemd-measure.p/src_boot_measure.c.o
        cc -Isystemd-measure.p -I. -I.. -Isrc/basic -I../src/basic -Isrc/fundamental -I../src/fundamental -Isrc/systemd -I../src/systemd -I../src/libsystemd/sd-bus -I../src/libsystemd/sd-device -I../src/libsystemd/sd-event -I../src/libsystemd/sd-hwdb -I../src/libsystemd/sd-id128 -I../src/libsystemd/sd-journal -I../src/libsystemd/sd-netlink -I../src/libsystemd/sd-network -I../src/libsystemd/sd-resolve -Isrc/shared -I../src/shared -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=gnu11 -O0 -g -Wno-missing-field-initializers -Wno-unused-parameter -Wdate-time -Wendif-labels -Werror=format=2 -Werror=format-signedness -Werror=implicit-function-declaration -Werror=incompatible-pointer-types -Werror=int-conversion -Werror=overflow -Werror=override-init -Werror=return-type -Werror=shift-count-overflow -Werror=shift-overflow=2 -Werror=undef -Wfloat-equal -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wmissing-noreturn -Wnested-externs -Wold-style-definition -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-aliasing=2 -Wstrict-prototypes -Wsuggest-attribute=noreturn -Wunused-function -Wwrite-strings -Wno-unused-result -Werror=missing-declarations -Werror=missing-prototypes -fdiagnostics-show-option -fno-common -fno-strict-aliasing -fstack-protector -fstack-protector-strong -fvisibility=hidden --param=ssp-buffer-size=4 -fno-omit-frame-pointer -Werror=shadow -include config.h -DOPENSSL_LOAD_CONF -MD -MQ systemd-measure.p/src_boot_measure.c.o -MF systemd-measure.p/src_boot_measure.c.o.d -o systemd-measure.p/src_boot_measure.c.o -c ../src/boot/measure.c
        ../src/boot/measure.c: In function ‘verb_sign’:
        ../src/boot/measure.c:710:48: error: variable ‘c’ has initializer but incomplete type
          710 |         _cleanup_(tpm2_context_destroy) struct tpm2_context c = {};

        [308/1382] Compiling C object systemd-pcrphase.p/src_boot_pcrphase.c.o
        FAILED: systemd-pcrphase.p/src_boot_pcrphase.c.o
        cc -Isystemd-pcrphase.p -I. -I.. -Isrc/basic -I../src/basic -Isrc/fundamental -I../src/fundamental -Isrc/systemd -I../src/systemd -I../src/libsystemd/sd-bus -I../src/libsystemd/sd-device -I../src/libsystemd/sd-event -I../src/libsystemd/sd-hwdb -I../src/libsystemd/sd-id128 -I../src/libsystemd/sd-journal -I../src/libsystemd/sd-netlink -I../src/libsystemd/sd-network -I../src/libsystemd/sd-resolve -Isrc/shared -I../src/shared -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=gnu11 -O0 -g -Wno-missing-field-initializers -Wno-unused-parameter -Wdate-time -Wendif-labels -Werror=format=2 -Werror=format-signedness -Werror=implicit-function-declaration -Werror=incompatible-pointer-types -Werror=int-conversion -Werror=overflow -Werror=override-init -Werror=return-type -Werror=shift-count-overflow -Werror=shift-overflow=2 -Werror=undef -Wfloat-equal -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wmissing-noreturn -Wnested-externs -Wold-style-definition -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-aliasing=2 -Wstrict-prototypes -Wsuggest-attribute=noreturn -Wunused-function -Wwrite-strings -Wno-unused-result -Werror=missing-declarations -Werror=missing-prototypes -fdiagnostics-show-option -fno-common -fno-strict-aliasing -fstack-protector -fstack-protector-strong -fvisibility=hidden --param=ssp-buffer-size=4 -fno-omit-frame-pointer -Werror=shadow -include config.h -DOPENSSL_LOAD_CONF -MD -MQ systemd-pcrphase.p/src_boot_pcrphase.c.o -MF systemd-pcrphase.p/src_boot_pcrphase.c.o.d -o systemd-pcrphase.p/src_boot_pcrphase.c.o -c ../src/boot/pcrphase.c
        ../src/boot/pcrphase.c: In function ‘determine_banks’:
        ../src/boot/pcrphase.c:117:24: error: unknown type name ‘TPMI_ALG_HASH’
          117 |         _cleanup_free_ TPMI_ALG_HASH *algs = NULL;

Guarding the utilites with HAVE_TPM2 fixes the issue for me.

This complements #24811.

19 months agolibbpf: add compat helpers for libbpf down to 0.1.0 24511/head
Dominique Martinet [Fri, 30 Sep 2022 10:25:18 +0000 (19:25 +0900)] 
libbpf: add compat helpers for libbpf down to 0.1.0

- new symbols are available from libbpf 0.6.0 so could be used with
libbpf.so.0, but we're sure the old symbols will be there and this
simplifies code
- detection at runtime should always work, regardless of whether systemd
has been compiled with older or newer libbpf and runs with older or newer
libbpf

19 months agoFix key toggle touchpad and programmable buttom for Positivo N14
drosdeck [Wed, 5 Oct 2022 19:48:32 +0000 (15:48 -0400)] 
Fix key toggle touchpad and programmable buttom for Positivo N14

19 months agoata_id: Fixed getting Response Code from SCSI Sense Data (#24921)
Aleksey Vasenev [Wed, 5 Oct 2022 19:33:53 +0000 (22:33 +0300)] 
ata_id: Fixed getting Response Code from SCSI Sense Data (#24921)

The Response Code is contained in the first byte of the SCSI Sense Data.
Bit number 7 is reserved or has a different meaning for some Response Codes
and is set to 1 for some drives.

19 months agoTry to load libbpf.so.1 as well
Daan De Meyer [Fri, 9 Sep 2022 08:38:03 +0000 (10:38 +0200)] 
Try to load libbpf.so.1 as well

libbpf had a soname bump. Our usage of libbpf is compatible with
both libbpf.so.0 and libbpf.so.1, so let's try to load from both.

19 months agolibbpf: Remove use of deprecated APIs
Daan De Meyer [Wed, 31 Aug 2022 09:59:52 +0000 (11:59 +0200)] 
libbpf: Remove use of deprecated APIs

19 months agoBump libbpf version to 0.7
Daan De Meyer [Fri, 9 Sep 2022 08:27:57 +0000 (10:27 +0200)] 
Bump libbpf version to 0.7

We already depend on the skeleton APIs introduced in libbpf 0.7 so
let's bump our minimum version to reflect that.

We don't enforce bpf compilation on mkosi anymore since not all
distros have sufficiently up-to-date libbpf available.

19 months agotest: configure ldconfig's cache in the minimal verity images
Frantisek Sumsal [Wed, 5 Oct 2022 13:26:16 +0000 (15:26 +0200)] 
test: configure ldconfig's cache in the minimal verity images

The glibc stuff on ppc64le C8S is a little bit wild, as there are two
versions:

```
$ ldconfig -p | grep libc.so
        libc.so.6 (libc6,64bit, hwcap: "power9", OS ABI: Linux 3.10.0) => /lib64/glibc-hwcaps/power9/libc-2.28.so
        libc.so.6 (libc6,64bit, OS ABI: Linux 3.10.0) => /lib64/libc.so.6
```

and with `/etc/ld.so.cache` present all binaries use the first one:

```
$ ldd /bin/cat
        linux-vdso64.so.1 (0x00007fffa8070000)
        libc.so.6 => /lib64/glibc-hwcaps/power9/libc-2.28.so (0x00007fffa7e20000)
        /lib64/ld64.so.2 (0x00007fffa8090000)
```

However, without the cache the binaries will fall back to `/lib64/libc.so.6`
which breaks tests that use the minimal verity images (like TEST-29),
because we install only the first version (that's shown by `ldd` at
the time the images are created):

```
[   91.595343] testsuite-29.sh[747]: + portablectl --profile=trusted attach --now --runtime /usr/share/minimal_0.raw minimal-app0
         Starting systemd-portabled.service...
[  OK  ] Started systemd-portabled.service.
         Starting minimal-app0-foo.service...
         Starting minimal-app0.service...
[  104.432217] cat[858]: cat: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
[  104.435080] cat[857]: cat: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
[FAILED] Failed to start minimal-app0.service.
See 'systemctl status minimal-app0.service' for details.
```

```
$ chroot /var/tmp/systemd-test.nMHPfc/minimal/
/bin/bash: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
```

With the ldconfig's cache it seems to work as expected:
```
$ chroot /var/tmp/systemd-test.gVtYLg/minimal
bash-4.4# cat --version
cat (GNU coreutils) 8.30
...
```

19 months agomount: replace UNIT_DEPENDENCY_MOUNTINFO_OR_FILE with UNIT_DEPENDENCY_MOUNTINFO/UNIT_... 24654/head
Franck Bui [Mon, 12 Sep 2022 15:54:22 +0000 (17:54 +0200)] 
mount: replace UNIT_DEPENDENCY_MOUNTINFO_OR_FILE with UNIT_DEPENDENCY_MOUNTINFO/UNIT_DEPENDENCY_MOUNT_FILE

UNIT_DEPENDENCY_MOUNTINFO_OR_FILE was a bit strange as unlike the other flags
we don't know where the dependency came from exactly. Indeed its origin could
have been from the mount unit file or from /proc/self/mountinfo.

Instead this patch replaces UNIT_DEPENDENCY_MOUNTINFO_OR_FILE with 2 new
dependency flags: UNIT_DEPENDENCY_MOUNT_FILE and UNIT_DEPENDENCY_MOUNTINFO. The
former indicates that the dep is created from the unit file but unlike
UNIT_DEPENDENCY_FILE, it will be replaced by a dep with the
UNIT_DEPENDENCY_MOUNTINFO flag as soon as the kernel will make the mount
available in /proc/self/mountinfo.

19 months agomount: drop UNIT_DEPENDENCY_MOUNTINFO_IMPLICIT and UNIT_DEPENDENCY_MOUNTINFO_DEFAULT
Franck Bui [Mon, 12 Sep 2022 15:50:51 +0000 (17:50 +0200)] 
mount: drop UNIT_DEPENDENCY_MOUNTINFO_IMPLICIT and UNIT_DEPENDENCY_MOUNTINFO_DEFAULT

They're not used anymore.

19 months agomount: always use UNIT_DEPENDENCY_FILE in mount_add_quota_dependencies()
Franck Bui [Wed, 5 Oct 2022 08:26:59 +0000 (10:26 +0200)] 
mount: always use UNIT_DEPENDENCY_FILE in mount_add_quota_dependencies()

The quota options have always been read from the unit file and ignored if only
present in /proc/self/mountinfo. IOW the quota services are not (automagically)
pulled in for mounts initiated by the user running mount(8).

19 months agoMerge pull request #24877 from brauner/namespace_utils
Luca Boccassi [Tue, 4 Oct 2022 20:59:48 +0000 (21:59 +0100)] 
Merge pull request #24877 from brauner/namespace_utils

namespace-util: add an initial set of tweaks

19 months agorepart: Drop usage of CHASE_WARN
Daan De Meyer [Tue, 4 Oct 2022 11:35:36 +0000 (13:35 +0200)] 
repart: Drop usage of CHASE_WARN

CHASE_WARN only makes sense when CHASE_SAFE or CHASE_NO_AUTOFS are
used. repart uses neither so let's drop usage of CHASE_WARN.

20 months agoNEWS: even more news
Luca Boccassi [Tue, 4 Oct 2022 18:12:50 +0000 (20:12 +0200)] 
NEWS: even more news

20 months agomount-util: use in_same_namespace() 24877/head
Christian Brauner [Sat, 1 Oct 2022 10:03:25 +0000 (12:03 +0200)] 
mount-util: use in_same_namespace()

Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
20 months agonspawn: use in_same_namespace() helper
Christian Brauner [Fri, 30 Sep 2022 13:05:02 +0000 (15:05 +0200)] 
nspawn: use in_same_namespace() helper

20 months agonamespace-util: add in_same_namespace()
Christian Brauner [Fri, 30 Sep 2022 13:02:52 +0000 (15:02 +0200)] 
namespace-util: add in_same_namespace()

Add a helper for the canonical way to determine whether two namespaces
are identical.

20 months agonsflags: replace namespace_flag_map with general namespace_info introduced earlier
Christian Brauner [Fri, 30 Sep 2022 13:02:18 +0000 (15:02 +0200)] 
nsflags: replace namespace_flag_map with general namespace_info introduced earlier

20 months agonamespace-util: add namespace_info
Christian Brauner [Fri, 30 Sep 2022 12:21:01 +0000 (14:21 +0200)] 
namespace-util: add namespace_info

20 months agoMerge pull request #24900 from yuwata/network-ndisc-drop-outdated
Lennart Poettering [Tue, 4 Oct 2022 16:03:25 +0000 (18:03 +0200)] 
Merge pull request #24900 from yuwata/network-ndisc-drop-outdated

network: ndisc: fix zero lifetime handling

20 months agobus: Process authentication after write
Marius Vollmer [Fri, 30 Sep 2022 08:11:04 +0000 (11:11 +0300)] 
bus: Process authentication after write

Once everything has been written, a server bus might now process a
pending "BEGIN" and start the bus.

20 months agoNEWS: more news
Luca Boccassi [Tue, 4 Oct 2022 12:53:44 +0000 (13:53 +0100)] 
NEWS: more news

20 months agoNEWS: typos
Luca Boccassi [Tue, 4 Oct 2022 12:04:35 +0000 (13:04 +0100)] 
NEWS: typos

20 months agoMerge pull request #24913 from keszybz/hwdb-252-2
Lennart Poettering [Tue, 4 Oct 2022 11:43:48 +0000 (13:43 +0200)] 
Merge pull request #24913 from keszybz/hwdb-252-2

hwdb update

20 months agoudev-builtin-net_id: reading phys_port_name may be refused with EOPNOTSUPP
Yu Watanabe [Tue, 4 Oct 2022 06:29:25 +0000 (15:29 +0900)] 
udev-builtin-net_id: reading phys_port_name may be refused with EOPNOTSUPP

If reading the sysattr failed with such error, the whole operation in
net_id builtin command will fail, and the interface will not be renamed.

Fixes a bug introduced by 5bbcfbaa11a92732f9bbc8d5f77e9311e6ac3d56.

20 months agoUpdate NEWS
Luca Boccassi [Tue, 4 Oct 2022 10:33:50 +0000 (11:33 +0100)] 
Update NEWS

20 months agoupdate TODO
Lennart Poettering [Tue, 4 Oct 2022 09:55:33 +0000 (11:55 +0200)] 
update TODO

20 months agohwdb: run "update-hwdb-autosuspend" 24913/head
Zbigniew Jędrzejewski-Szmek [Tue, 4 Oct 2022 08:43:47 +0000 (10:43 +0200)] 
hwdb: run "update-hwdb-autosuspend"

20 months agohwdb: run "update-hwdb"
Zbigniew Jędrzejewski-Szmek [Tue, 4 Oct 2022 08:43:12 +0000 (10:43 +0200)] 
hwdb: run "update-hwdb"

As usual, it seems to be mostly additions and corrections.

20 months agoFix key toggle touchpad and programmable buttom for Positivo Motion CW14Q01P #24909
drosdeck [Mon, 3 Oct 2022 18:52:24 +0000 (14:52 -0400)] 
Fix key toggle touchpad and programmable buttom for Positivo Motion CW14Q01P #24909

20 months agotmpfiles: fix assert
Topi Miettinen [Mon, 3 Oct 2022 15:13:42 +0000 (18:13 +0300)] 
tmpfiles: fix assert

Oct 03 17:33:20 systemd-tmpfiles[872]: Assertion 'IN_SET(i->type, CREATE_BLOCK_DEVICE|CREATE_CHAR_DEVICE)' failed at src/tmpfiles/tmpfiles.c:1837, function create_device(). Aborting.

I think this is caused by the line:
b! /dev/private/smartmontools-dev/sda 0660 root disk - 8:0

20 months agonetwork: ndisc: do not accept too many DNS servers or domains 24900/head
Yu Watanabe [Mon, 3 Oct 2022 15:06:46 +0000 (00:06 +0900)] 
network: ndisc: do not accept too many DNS servers or domains

If there exists multiple routers, then the previous logic may introduce
too many DNS servers or domains.

20 months agonetwork: ndisc: drop addresses and friends when RA with zero lifetime is received
Yu Watanabe [Mon, 3 Oct 2022 02:54:20 +0000 (11:54 +0900)] 
network: ndisc: drop addresses and friends when RA with zero lifetime is received

Routers may send options with zero lifetime if previously announced
information is outdated. Hence, if we receive such messages, then we
need to drop relevant addresses or friends.

See e.g. https://www.rfc-editor.org/rfc/rfc4861#section-12.

Follow-up for 2ccada8dc4a3571468a335808fd6fe49b8c6c6dd.

20 months agonetwork: make sec_to_usec() map 0sec -> 0usec
Yu Watanabe [Mon, 3 Oct 2022 03:42:40 +0000 (12:42 +0900)] 
network: make sec_to_usec() map 0sec -> 0usec

Zero lifetime in RA is special, and we should not assign possibly very
short lifetime addresses or friends.

This should not change anything at least now, preparation for later
commits. Note, DHCPv4 and v6 code also uses it, but sd-dhcp-client and
sd-dhcp6-client already filtered messages with zero lifetime. Hence,
the change should not affect DHCP code.

20 months agonetwork: ndisc: also introduce timer event source to drop outdated settings
Yu Watanabe [Mon, 3 Oct 2022 15:19:13 +0000 (00:19 +0900)] 
network: ndisc: also introduce timer event source to drop outdated settings

Otherwise, settings based on previously received RA messages will never
removed without receiving a new RA message.

20 months agonetwork: ndisc: drop outdated settings before processing RA message
Yu Watanabe [Mon, 3 Oct 2022 03:18:49 +0000 (12:18 +0900)] 
network: ndisc: drop outdated settings before processing RA message

Otherwise, e.g. if a router is replaced, then the previously received
settings may never dropped.

Follow-up for 2ccada8dc4a3571468a335808fd6fe49b8c6c6dd.

20 months agonetwork: ndisc: address_get() returns 0 on success
Yu Watanabe [Mon, 3 Oct 2022 14:57:48 +0000 (23:57 +0900)] 
network: ndisc: address_get() returns 0 on success

After the commit 3b6a3bdebfb555754fdc6ee507e3f6964de7b61c, address_get()
does not return 1.

20 months agonetwork: introduce {address,route}_remove_and_drop()
Yu Watanabe [Mon, 3 Oct 2022 03:39:56 +0000 (12:39 +0900)] 
network: introduce {address,route}_remove_and_drop()

Preparation for later commits.

20 months agonetwork: ndisc: ignore prefix option with link-local prefix
Yu Watanabe [Mon, 3 Oct 2022 01:12:23 +0000 (10:12 +0900)] 
network: ndisc: ignore prefix option with link-local prefix

See https://www.rfc-editor.org/rfc/rfc4861#section-4.6.2.

20 months agonetwork: ndisc: read prefix earlier
Yu Watanabe [Mon, 3 Oct 2022 03:28:41 +0000 (12:28 +0900)] 
network: ndisc: read prefix earlier

No functional changes.

20 months agoTODO: tmpfiles.d m/M
Luca Boccassi [Mon, 3 Oct 2022 14:28:11 +0000 (15:28 +0100)] 
TODO: tmpfiles.d m/M

20 months agorepart: Use chase_symlinks() instead of path_join()
Daan De Meyer [Mon, 3 Oct 2022 08:09:24 +0000 (10:09 +0200)] 
repart: Use chase_symlinks() instead of path_join()

Let's properly resolve symlinks and check if the source actually
exists.

20 months agoMerge pull request #23213 from bluca/jammy
Luca Boccassi [Mon, 3 Oct 2022 12:58:09 +0000 (13:58 +0100)] 
Merge pull request #23213 from bluca/jammy

Fixes for Jammy CI

20 months agocoredumpctl: Add support for the --image option 24595/head
Richard Phibel [Thu, 22 Sep 2022 15:23:01 +0000 (17:23 +0200)] 
coredumpctl: Add support for the --image option

20 months agocoredumpctl: Add support for the --root option
Richard Phibel [Thu, 8 Sep 2022 16:36:35 +0000 (09:36 -0700)] 
coredumpctl: Add support for the --root option

With this option, coredumpctl looks for journal files under the
specified root directory

20 months agotest-70: check if LUKS2 plugins are actually installed, not just supported 23213/head
Luca Boccassi [Sun, 2 Oct 2022 19:12:02 +0000 (20:12 +0100)] 
test-70: check if LUKS2 plugins are actually installed, not just supported

We don't build them in Debian/Ubuntu yet, even though cryptsetup supports them

20 months agorepart: workaround spurious maybe-uninitialized warning
Luca Boccassi [Sun, 2 Oct 2022 19:11:21 +0000 (20:11 +0100)] 
repart: workaround spurious maybe-uninitialized warning

Build fails on Ubuntu Jammy

20 months agonetwork: fix use-after-free
Yu Watanabe [Mon, 3 Oct 2022 03:35:29 +0000 (12:35 +0900)] 
network: fix use-after-free

If the lifetime of the route is already expired, do not try to
configure it.

Fixes a use-after-free, as the Request object is already freed, thus, we
cannot use Route or Link stored in Request object.

20 months agoresolve: drop remaining references for Monitor=
Yu Watanabe [Mon, 3 Oct 2022 00:29:45 +0000 (09:29 +0900)] 
resolve: drop remaining references for Monitor=

Follow-up for b25d819aee10b79a1c972d25be81a238448134dd.

20 months agonetwork: don't forget old RAs when a new one arrives
Thomas Hebb [Thu, 29 Sep 2022 06:40:35 +0000 (23:40 -0700)] 
network: don't forget old RAs when a new one arrives

IPv6 Neighbor Discovery lets us autoconfigure a link's IPv6 addresses,
routes, DNS servers, and DNS search domains by listening for Router
Advertisement (RA) packets broadcast by one or more routers on the link.
Each RA can contain zero or more "options," each describing one piece of
configuration (e.g. a single route).

Currently, when we receive an RA from a router, we delete any addresses,
routes, etc. that originated from that router's previous RAs unless
they're also present as options in the new RA.

That behavior is a violation of RFC 4861[1]. In Section 9, the RFC
states that

    Senders MAY send a subset of options in different packets. ... Thus,
    a receiver MUST NOT associate any action with the absence of an
    option in a particular packet. This protocol specifies that
    receivers should only act on the expiration of timers and on the
    information that is received in the packets.

Several other passages in the RFC reiterate this. Section 6.2.3:

    A router MAY choose not to include some or all options when sending
    unsolicited Router Advertisements.

Section 6.3.4:

    Hosts accept the union of all received information; the receipt of a
    Router Advertisement MUST NOT invalidate all information received in
    a previous advertisement or from another source.

At least one consumer router in production today, the Google Nest Wifi,
often sends RAs that omit its global IPv6 prefix. When current versions
of systemd-networkd receive those RAs, they immediately delete the
interface's global IPv6 address, which breaks IPv6 connectivity.

Fix the issue by removing the invalidation logic entirely. It's not
needed at all, since we already invalidate addresses, routes, and DNS
configuration when the interface goes down or their lifetimes expire.

This fix does have the side effect of preventing changes to the .network
file (e.g. denylisted prefixes, whether to add routes from RAs) from
taking effect as soon as a new RA arrives. Instead, a full interface
reconfiguration is needed. But triggering those changes on RA receipt
was already rather arbitrary and out of the administrator's control, so
I think this change is fine.

commit 69203fba700e ("network: ndisc: remove old addresses and routes
after at least one SLAAC address becomes ready") introduced this
behavior. commit 50550722e3ba fixed it partially, by preventing one
router's RAs from invalidating another router's configuration.

[1] https://www.rfc-editor.org/rfc/rfc4861

Fixes: 69203fba700e ("network: ndisc: remove old addresses and routes after at least one SLAAC address becomes ready")
20 months agoresolve: fix typo
Yu Watanabe [Mon, 3 Oct 2022 00:23:37 +0000 (09:23 +0900)] 
resolve: fix typo

20 months agorepart: Take --root into account in read only filesystems shortcut
Daan De Meyer [Sun, 2 Oct 2022 19:37:31 +0000 (21:37 +0200)] 
repart: Take --root into account in read only filesystems shortcut

20 months agoMerge pull request #24897 from mrc0mmand/TEST-64-sanitiers-open-scsi
Yu Watanabe [Sun, 2 Oct 2022 22:51:50 +0000 (07:51 +0900)] 
Merge pull request #24897 from mrc0mmand/TEST-64-sanitiers-open-scsi

test: pre-load ASan's DSO for iscsi-init.service

20 months agotest: pre-load ASan's DSO for iscsi-init.service 24897/head
Frantisek Sumsal [Sun, 2 Oct 2022 20:51:56 +0000 (22:51 +0200)] 
test: pre-load ASan's DSO for iscsi-init.service

The iscsi-init.service calls `sh` which might, in certain circumstances,
pull in instrumented systemd NSS modules causing `sh` to fail. Let's mitigate
this by pulling in an env file crafted by `create_asan_wrapper()` that
(among others) pre-loads ASan's DSO.

20 months agotest: introduce a simple environment file for test service
Frantisek Sumsal [Fri, 23 Sep 2022 22:00:36 +0000 (07:00 +0900)] 
test: introduce a simple environment file for test service

20 months agorepart: Don't fail on missing verity sig partition
Daan De Meyer [Sun, 2 Oct 2022 08:51:53 +0000 (10:51 +0200)] 
repart: Don't fail on missing verity sig partition

Also, provide a proper error message when we fail to find a verity
sibling partition.

20 months agotest: expand the expression in `cleanup_initdir()`
Frantisek Sumsal [Sat, 1 Oct 2022 19:56:08 +0000 (21:56 +0200)] 
test: expand the expression in `cleanup_initdir()`

Otherwise we might unexpectedly return 1 if the `get_bool` call fails.

If the `get_bool` part in `get_bool "$TEST_SETUP_CLEANUP_ROOTDIR" &&  _umount_dir "${initdir:?}"`
fails, the whole expression will short-circuit evaluate to 1, and since it's
the last expression in the function it's also it's return value, which doesn't
reflect the original intent of the expression:

```
# BUILD_DIR=$PWD/build make -C test/TEST-64-UDEV-STORAGE/ setup run TESTCASES=testcase_always_skip
make: Entering directory '/home/fsumsal/repos/@systemd/systemd/test/TEST-64-UDEV-STORAGE'
TEST-64-UDEV-STORAGE SETUP: systemd-udev storage tests
Reusing existing image /var/tmp/systemd-test.uPbJZ9/default.img → /var/tmp/systemd-test.uPbJZ9/default.img
TEST-64-UDEV-STORAGE RUN: systemd-udev storage tests
------ testcase_always_skip: BEGIN ------
Skipping...
------ testcase_always_skip: END (SKIP) ------
Passed tests: 0
    *
Skipped tests: 1
    * testcase_always_skip
Failed tests: 0
    *
TEST-64-UDEV-STORAGE RUN: systemd-udev storage tests [OK]
make: Leaving directory '/home/fsumsal/repos/@systemd/systemd/test/TEST-64-UDEV-STORAGE'

# BUILD_DIR=$PWD/build make -C test/TEST-64-UDEV-STORAGE/ setup run TESTCASES=testcase_always_skip
make: Entering directory '/home/fsumsal/repos/@systemd/systemd/test/TEST-64-UDEV-STORAGE'
TEST-64-UDEV-STORAGE SETUP: systemd-udev storage tests
Reusing existing image /var/tmp/systemd-test.uPbJZ9/default.img → /var/tmp/systemd-test.uPbJZ9/default.img
make: *** [Makefile:4: setup] Error 1
make: Leaving directory '/home/fsumsal/repos/@systemd/systemd/test/TEST-64-UDEV-STORAGE'
```

20 months agotest: drop the explicit bus assignment for the pci-bridge
Frantisek Sumsal [Sat, 1 Oct 2022 18:56:01 +0000 (20:56 +0200)] 
test: drop the explicit bus assignment for the pci-bridge

as it doesn't work with the Q35 chipset due to a different topology.
Auto-assignment seems to work with both Q35 and i440FX chipsets.

20 months agoMerge pull request #24878 from keszybz/condition-first-boot
Luca Boccassi [Sat, 1 Oct 2022 18:30:21 +0000 (19:30 +0100)] 
Merge pull request #24878 from keszybz/condition-first-boot

Tweak condition first boot to use the same logic in pid1 and units

20 months agohwdb: Add Fn+F12 on HP Dragonfly G2 and mute extra rfkill keys
Maxim Mikityanskiy [Sat, 1 Oct 2022 11:28:44 +0000 (14:28 +0300)] 
hwdb: Add Fn+F12 on HP Dragonfly G2 and mute extra rfkill keys

Add new key mappings for the HP Elite Dragonfly G2 laptop:

1. Map Fn+F12 (HP Programmable Key) to prog1.

2. Unmap Fn+F11 (Airplane mode) from atkbd and Intel HID events, as this
   key is also reported by HP Wireless hotkeys.

20 months agoman: Update systemd.killMode docs
Clyde Byrd III [Tue, 8 Mar 2022 23:26:33 +0000 (15:26 -0800)] 
man: Update systemd.killMode docs

20 months agobuild(deps): bump ninja from 1.10.2.3 to 1.10.2.4 in /.github/workflows
dependabot[bot] [Sat, 1 Oct 2022 11:01:11 +0000 (11:01 +0000)] 
build(deps): bump ninja from 1.10.2.3 to 1.10.2.4 in /.github/workflows

Bumps [ninja](https://github.com/ninja-build/ninja) from 1.10.2.3 to 1.10.2.4.
- [Release notes](https://github.com/ninja-build/ninja/releases)
- [Commits](https://github.com/ninja-build/ninja/commits)

---
updated-dependencies:
- dependency-name: ninja
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
20 months agoci: pin stefanbuck/github-issue-parser to a tagged release
Frantisek Sumsal [Sat, 1 Oct 2022 11:09:28 +0000 (13:09 +0200)] 
ci: pin stefanbuck/github-issue-parser to a tagged release

Since [0] got resolved ([1]) we can finally pin the action to a tagged
release (v2.0.4 ATTOW) and let Dependabot to do its job by updating it
to the latest tagged release when it becomes available.

Replaces: #24886

[0] https://github.com/stefanbuck/github-issue-parser/issues/23
[1] https://github.com/stefanbuck/github-issue-parser/pull/39

20 months agobuild(deps): bump actions/labeler from 4.0.0 to 4.0.1
dependabot[bot] [Sat, 1 Oct 2022 09:02:58 +0000 (09:02 +0000)] 
build(deps): bump actions/labeler from 4.0.0 to 4.0.1

Bumps [actions/labeler](https://github.com/actions/labeler) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/9fd24f1f9d6ceb64ba34d181b329ee72f99978a0...e54e5b338fbd6e6cdb5d60f51c22335fc57c401e)

---
updated-dependencies:
- dependency-name: actions/labeler
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>