]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
4 years agocore: do not set nosuid mount option when SELinux is enabled 20023/head
Yu Watanabe [Fri, 25 Jun 2021 06:30:13 +0000 (15:30 +0900)] 
core: do not set nosuid mount option when SELinux is enabled

The mount option has special meaning when SELinux is enabled. To make
NoNewPrivileges=yes not break SELinux enabled systems, let's not set the
mount flag on such systems.

4 years agoRevert "Revert "Mount all fs nosuid when NoNewPrivileges=yes""
Yu Watanabe [Fri, 25 Jun 2021 06:16:34 +0000 (15:16 +0900)] 
Revert "Revert "Mount all fs nosuid when NoNewPrivileges=yes""

This reverts commit 1753d3021564671fba3d3196a84da657d15fb632.

Let's re-enable that feature now. As reported when the original commit
was merged, this causes some trouble on SELinux enabled systems. So,
in the subsequent commit, the feature will be disabled when SELinux is enabled.
But, anyway, this commit just re-enable that feature unconditionally.

4 years agotree-wide: make specifier expansion --root= aware
Lennart Poettering [Thu, 24 Jun 2021 16:06:02 +0000 (18:06 +0200)] 
tree-wide: make specifier expansion --root= aware

This fixes repart's, systemctl's, sysusers' and tmpfiles' specifier
expansion to honour the root dir specified with --root=. This is
relevant for specifiers such as %m, %o, … which are directly sourced
from files on disk.

This doesn't try to be overly smart: specifiers referring to runtime
concepts (i.e. boot ID, architecture, hostname) rather than files on the
medium are left as is. There's certainly a point to be made that they
should fail in case --root= is specified, but I am not entirely convinced
about that, and it's certainly something we can look into later if
there's reason to.

I wondered for a while how to hook this up best, but given that quite a
large number of specifiers resolve to data from files on disks, and most
of our tools needs this, I ultimately decided to make the root dir a
first class parameter to specifier_printf().

Replaces: #16187
Fixes: #16183
4 years agodocs: update autofs Kconfig name
Andrea Pappacoda [Thu, 24 Jun 2021 15:30:51 +0000 (17:30 +0200)] 
docs: update autofs Kconfig name

4 years agodocs: EFI separator needs to be backslash-escaped in markdown
Juergen Hoetzel [Thu, 24 Jun 2021 17:42:57 +0000 (19:42 +0200)] 
docs: EFI separator needs to be backslash-escaped in markdown

4 years agotest: correctly mask supporting services in tests, take #2
Frantisek Sumsal [Thu, 24 Jun 2021 10:13:52 +0000 (12:13 +0200)] 
test: correctly mask supporting services in tests, take #2

Due to a little misunderstanding the last patch doesn't work as
expected, since test_create_image() is called only for the first image
(usually TEST-01-BASIC), and all subsequent images are then (possibly)
modified with test_append_files().

Follow-up to 179ca4d2b1b5579014773a128462475f99b7a91b.

4 years agoMerge pull request #20001 from keszybz/test-path-simplify-less
Lennart Poettering [Thu, 24 Jun 2021 13:33:09 +0000 (15:33 +0200)] 
Merge pull request #20001 from keszybz/test-path-simplify-less

Do not call path_simplify() when not needed

4 years agosd-journal: add missing bracket in journal verify log message
Lennart Poettering [Thu, 24 Jun 2021 11:13:39 +0000 (13:13 +0200)] 
sd-journal: add missing bracket in journal verify log message

4 years agoMerge pull request #20000 from dtardon/replace-strtoul
Luca Boccassi [Thu, 24 Jun 2021 13:18:58 +0000 (14:18 +0100)] 
Merge pull request #20000 from dtardon/replace-strtoul

replace strtoul by safe_ato*

4 years agoudev-builtin-keyboard: drop unnecessary {} 20000/head
David Tardon [Wed, 23 Jun 2021 15:15:47 +0000 (17:15 +0200)] 
udev-builtin-keyboard: drop unnecessary {}

4 years agoudev: replace strtoul by safe_ato*
David Tardon [Tue, 22 Jun 2021 14:41:23 +0000 (16:41 +0200)] 
udev: replace strtoul by safe_ato*

4 years agoMerge pull request #20004 from yuwata/readdir-ensure-type
Zbigniew Jędrzejewski-Szmek [Thu, 24 Jun 2021 13:11:06 +0000 (15:11 +0200)] 
Merge pull request #20004 from yuwata/readdir-ensure-type

dirent-util: introduce readdir_ensure_type()

4 years agoopenssl-util: include the headers the file actually uses definitions from
Lennart Poettering [Tue, 22 Jun 2021 21:15:46 +0000 (23:15 +0200)] 
openssl-util: include the headers the file actually uses definitions from

4 years agoMerge pull request #19997 from keszybz/selinux-opt
Zbigniew Jędrzejewski-Szmek [Thu, 24 Jun 2021 13:07:29 +0000 (15:07 +0200)] 
Merge pull request #19997 from keszybz/selinux-opt

Drop libselinux dependency from libsystemd

4 years agoask-password: add "-n" switch for disabling trailing newline
Lennart Poettering [Wed, 23 Jun 2021 11:45:31 +0000 (13:45 +0200)] 
ask-password: add "-n" switch for disabling trailing newline

This is similar to the "-n" switch of the "echo" command.

4 years agoMerge pull request #20002 from yuwata/sd-dhcp-client-ignore-forcerenew
Luca Boccassi [Thu, 24 Jun 2021 09:01:10 +0000 (10:01 +0100)] 
Merge pull request #20002 from yuwata/sd-dhcp-client-ignore-forcerenew

sd-dhcp-client: ignore FORCERENEW

4 years agocore: avoid calling path_simplify() unnecessarilly for u.requires_mounts_for keys 20001/head
Zbigniew Jędrzejewski-Szmek [Wed, 23 Jun 2021 15:32:15 +0000 (17:32 +0200)] 
core: avoid calling path_simplify() unnecessarilly for u.requires_mounts_for keys

We would always call path_simplify() before doing a lookup, which requires the
path key to be duplicated first. But the hashmap lookup doesn't require this…
So let's opportunistically skip the allocation if the key is already present.

Inspired by https://github.com/systemd/systemd/pull/19973.

4 years agotest-hash-funcs: add new file to test that path set ignores dot components
Zbigniew Jędrzejewski-Szmek [Wed, 23 Jun 2021 14:22:53 +0000 (16:22 +0200)] 
test-hash-funcs: add new file to test that path set ignores dot components

4 years agogitignore: add jekyll cache directory 19997/head
Zbigniew Jędrzejewski-Szmek [Tue, 22 Jun 2021 14:17:01 +0000 (16:17 +0200)] 
gitignore: add jekyll cache directory

Follow-up for 2d4efd1dba568e59b149fbb82b51201951e8e178.

4 years agoshared/selinux-util: rework switching of the getenforce() function
Zbigniew Jędrzejewski-Szmek [Tue, 22 Jun 2021 08:32:30 +0000 (10:32 +0200)] 
shared/selinux-util: rework switching of the getenforce() function

The approach with function pointer was neat, but it gets in the way
when we want to resolve the symbol dynamically: static initialization
is not possible. It also makes the code more complicated than necessary.
In this case, a simple boolean is sufficient.

4 years agoshared/dlfcn-util: add sentinel helper or for dlsym_many_or_warn()
Zbigniew Jędrzejewski-Szmek [Tue, 22 Jun 2021 07:26:09 +0000 (09:26 +0200)] 
shared/dlfcn-util: add sentinel helper or for dlsym_many_or_warn()

I didn't do this before to avoid churn in all the users.

4 years agoshared/tpm2-util: simplify and convert to the new helper
Zbigniew Jędrzejewski-Szmek [Tue, 22 Jun 2021 07:25:12 +0000 (09:25 +0200)] 
shared/tpm2-util: simplify and convert to the new helper

The function would return 0 or 3. I don't think the return code was
used for anything, so let's avoid the explicit calculation and return
0 or 1.

4 years agovarious: convert to the new dlopen_or_warn() helper
Zbigniew Jędrzejewski-Szmek [Tue, 22 Jun 2021 07:24:02 +0000 (09:24 +0200)] 
various: convert to the new dlopen_or_warn() helper

4 years agodlfcn-util: invert function naming and add helper that does the whole job
Zbigniew Jędrzejewski-Szmek [Tue, 22 Jun 2021 06:48:41 +0000 (08:48 +0200)] 
dlfcn-util: invert function naming and add helper that does the whole job

We warn when the operation fails, not when it succeeds. Hence this should be
"<do>_or_<handle failure>", not "<do>_and_<handle failure>". We *could* use
whatever convention we want, but rust and perl are rather consistent in using
the logical convention. We don't care about perl that much, but having a naming
convention inverted wrt. rust would be rather confusing.

Also, pretty much every implementation does similar steps, so add a nice
wrapper which combines opening of the library and loading of the symbols.

Also add missing sentinel attribute in dlopen_or_warn().

4 years agomeson: drop libseccomp and libselinux from libbasic linkage
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 21:31:52 +0000 (23:31 +0200)] 
meson: drop libseccomp and libselinux from libbasic linkage

This means libsystemd.so is without them now. This is important
because countless programs link to libsystemd.so, and do not need
to pull in selinux now. And libselinux.so pulls in libpcre2, so
we trim a nice dependency tree.

I'm not sure why libseccomp was listed there. No code seems to
refer to it.

$ diff -u <(ldd ../systemd/build/libsystemd.so|sed 's/0x.*/0x…/') <(ldd build/libsystemd.so|sed 's/0x.*/0x…/')
@@ -4,11 +4,9 @@
  libzstd.so.1 => /lib64/libzstd.so.1 (0x…
  liblz4.so.1 => /lib64/liblz4.so.1 (0x…
  libcap.so.2 => /lib64/libcap.so.2 (0x…
- libselinux.so.1 => /lib64/libselinux.so.1 (0x…
  libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x…
  libpthread.so.0 => /lib64/libpthread.so.0 (0x…
  libc.so.6 => /lib64/libc.so.6 (0x…
  /lib64/ld-linux-x86-64.so.2 (0x…
- libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x…
  libdl.so.2 => /lib64/libdl.so.2 (0x…
  libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x…

$ diff -u <(ldd ../systemd/build/libudev.so|sed 's/0x.*/0x…/') <(ldd build/libudev.so|sed 's/0x.*/0x…/')
@@ -1,8 +1,5 @@
  linux-vdso.so.1 (0x…
  librt.so.1 => /lib64/librt.so.1 (0x…
- libselinux.so.1 => /lib64/libselinux.so.1 (0x…
  libpthread.so.0 => /lib64/libpthread.so.0 (0x…
  libc.so.6 => /lib64/libc.so.6 (0x…
  /lib64/ld-linux-x86-64.so.2 (0x…
- libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x…
- libdl.so.2 => /lib64/libdl.so.2 (0x…

4 years agobasic,shared: move a bunch of files to src/shared/
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 21:13:10 +0000 (23:13 +0200)] 
basic,shared: move a bunch of files to src/shared/

The goal is to move everything that requires selinux or smack
away from src/basic/. This means that src/basic/label.[ch] must move,
which implies btrfs-util.[ch], copy.[ch], and a bunch of other files
which form a cluster of internal use.

This is just moving text around, so there should be no functional difference.

test-blockdev-util is new, because path_is_encrypted() is moved to
blockdev-util.c, and so far we didn't have any tests for code there.

4 years agobasic,shared: move dlopen helpers to shared/
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 21:28:46 +0000 (23:28 +0200)] 
basic,shared: move dlopen helpers to shared/

This was added in 88d775b734644f26fb490836769c2bc275498fde,
with the apparent intent of using in shared/ and the rest of our code.
It doesn't matter much for our code, since libdl is part of glibc anyway,
but moving it removes one linkage from libsystemd. (libshared was already
linking to libdl explicitly).

4 years agobasic: move acquire_data_fd() and fd_duplicate_data_fd() to new data-fd-util.c
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 20:54:12 +0000 (22:54 +0200)] 
basic: move acquire_data_fd() and fd_duplicate_data_fd() to new data-fd-util.c

fd_duplicate_data_fd() is renamed to copy_data_fd(). This makes
the two functions have nicely similar names.

Now fd-util.[ch] is again about low-level file descriptor manipulations.
copy_data_fd() is a complex function that internally wraps the other
functions in copy.c. I want to move copy.c and the whole cluster of
related code from basic/ to shared/ later on, and this is a preparatory
step for that.

4 years agoMove hwdb creation code to src/shared/
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 20:10:37 +0000 (22:10 +0200)] 
Move hwdb creation code to src/shared/

hwdb_update() is the main entry point, and it is called from
"udevadm hwdb" and "systemd-hwdb", so it belongs in shared/.

4 years agobasic,shared: move quota-util.[ch] to src/shared/
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 19:27:21 +0000 (21:27 +0200)] 
basic,shared: move quota-util.[ch] to src/shared/

No need for this to in basic/.

4 years agobasic: drop one btrfs-related function and move another
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 18:24:00 +0000 (20:24 +0200)] 
basic: drop one btrfs-related function and move another

This will become useful later, it is the first step to moving btrfs-util.[ch]
out of src/basic/.

4 years agosd-dhcp-client: tentatively ignore FORCERENEW command 20002/head
Yu Watanabe [Wed, 23 Jun 2021 16:22:07 +0000 (01:22 +0900)] 
sd-dhcp-client: tentatively ignore FORCERENEW command

This makes DHCP client ignore FORCERENEW requests, as unauthenticated
FORCERENEW requests causes a security issue (TALOS-2020-1142, CVE-2020-13529).

Let's re-enable this after RFC3118 (Authentication for DHCP Messages)
and/or RFC6704 (Forcerenew Nonce Authentication) are implemented.

Fixes #16774.

4 years agosd-dhcp-client: logs when dhcp client unexpectedly gains a new lease
Yu Watanabe [Wed, 23 Jun 2021 16:14:12 +0000 (01:14 +0900)] 
sd-dhcp-client: logs when dhcp client unexpectedly gains a new lease

Previously, such situation is handled silently.

4 years agosd-dhcp-client: shorten code a bit
Yu Watanabe [Wed, 23 Jun 2021 15:51:52 +0000 (00:51 +0900)] 
sd-dhcp-client: shorten code a bit

4 years agosd-dhcp-client: check error earlier and reduce indentation
Yu Watanabe [Wed, 23 Jun 2021 15:48:23 +0000 (00:48 +0900)] 
sd-dhcp-client: check error earlier and reduce indentation

4 years agodocs: add coding style example
Anders Wenhaug [Wed, 23 Jun 2021 21:39:56 +0000 (23:39 +0200)] 
docs: add coding style example

Add example of how to structure else-blocks following a multiline block.

4 years agodirent-util: use readdir_ensure_type() in readdir_no_dot() and FOREACH_DIRENT() 20004/head
Yu Watanabe [Wed, 23 Jun 2021 19:29:40 +0000 (04:29 +0900)] 
dirent-util: use readdir_ensure_type() in readdir_no_dot() and FOREACH_DIRENT()

4 years agodirent-util: introduce readdir_ensure_type()
Yu Watanabe [Wed, 23 Jun 2021 19:00:42 +0000 (04:00 +0900)] 
dirent-util: introduce readdir_ensure_type()

4 years agotest-path-util: check that dot components are irrelevant for path comparisons
Zbigniew Jędrzejewski-Szmek [Wed, 23 Jun 2021 14:05:47 +0000 (16:05 +0200)] 
test-path-util: check that dot components are irrelevant for path comparisons

4 years agoTODO: elide initrd-parse-etc.service if possible
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jun 2021 09:27:55 +0000 (11:27 +0200)] 
TODO: elide initrd-parse-etc.service if possible

4 years agoman/50-xdg-data-dirs: add quotes as suggested by shellcheck
Zbigniew Jędrzejewski-Szmek [Tue, 8 Jun 2021 07:06:11 +0000 (09:06 +0200)] 
man/50-xdg-data-dirs: add quotes as suggested by shellcheck

4 years agobasic,shared: move make_mount_point_inode_*() to shared/
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 17:44:35 +0000 (19:44 +0200)] 
basic,shared: move make_mount_point_inode_*() to shared/

Those pull in selinux for labelling, and we should avoid selinux in basic/.

4 years agomeson: sort file list
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 20:56:58 +0000 (22:56 +0200)] 
meson: sort file list

At least emacs thinks this is the right way.

4 years agoMerge pull request #19990 from mrc0mmand/test-tweaks
Yu Watanabe [Tue, 22 Jun 2021 16:45:04 +0000 (01:45 +0900)] 
Merge pull request #19990 from mrc0mmand/test-tweaks

A couple of stability-related test tweaks

4 years agoMerge pull request #19991 from bluca/bash_compl_unbound_vars
Yu Watanabe [Tue, 22 Jun 2021 16:44:30 +0000 (01:44 +0900)] 
Merge pull request #19991 from bluca/bash_compl_unbound_vars

completion: fix 'unbound variables' errors

4 years agocompletion: fix 'unbound variables' errors 19991/head
Luca Boccassi [Tue, 22 Jun 2021 13:56:19 +0000 (14:56 +0100)] 
completion: fix 'unbound variables' errors

Fixes https://github.com/systemd/systemd/issues/19987

4 years agocompletion/systemd-delta,-resolve: autocomplete with parameters
Luca Boccassi [Tue, 22 Jun 2021 13:55:22 +0000 (14:55 +0100)] 
completion/systemd-delta,-resolve: autocomplete with parameters

4 years agocompletion/hostnamectl: do not dereference non-existing OPTS[ARGUNKNOWN]
Luca Boccassi [Tue, 22 Jun 2021 13:54:08 +0000 (14:54 +0100)] 
completion/hostnamectl: do not dereference non-existing OPTS[ARGUNKNOWN]

4 years agoMerge pull request #19986 from keszybz/test-mount-util-more
Lennart Poettering [Tue, 22 Jun 2021 13:03:57 +0000 (15:03 +0200)] 
Merge pull request #19986 from keszybz/test-mount-util-more

Add smoke test for mount_flags_to_string()

4 years agonetworkd: Permit all-zero RoutingPolicyRule prefixes
Hristo Venev [Tue, 22 Jun 2021 09:29:03 +0000 (12:29 +0300)] 
networkd: Permit all-zero RoutingPolicyRule prefixes

For example this `From` address range is no longer ignored:

    [RoutingPolicyRule]
    From=0.0.0.0/8

4 years agoMerge pull request #19969 from bluca/test_02_qemu
Frantisek Sumsal [Tue, 22 Jun 2021 10:58:07 +0000 (12:58 +0200)] 
Merge pull request #19969 from bluca/test_02_qemu

test-loop-block: run in qemu

4 years agotest: correctly mask supporting services in tests 19990/head
Frantisek Sumsal [Tue, 22 Jun 2021 10:30:24 +0000 (12:30 +0200)] 
test: correctly mask supporting services in tests

It turns out the "supporting services" were run in _all_ tests if
TEST-01-BASIC was run as the first test (which is usually the case),
since with the original condition in test_create_image() we would skip
the masking and then propagate the change to the default image used by
other tests. This has been causing multiple bogus test timeouts
(especially when the hwdb was being rebuilt in tests with short
timeouts, like TEST-52-HONORFIRSTSHUTDOWN).

Let's "fix" this by making the call to mask_supporting_services()
uncoditional and override the test_create_image() function in
TEST-01-BASIC to avoid the masking in this single case.

4 years agopo: Translated using Weblate (Korean)
simmon [Tue, 22 Jun 2021 10:04:18 +0000 (12:04 +0200)] 
po: Translated using Weblate (Korean)

Currently translated at 100.0% (189 of 189 strings)

Co-authored-by: simmon <simmon@nplob.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/ko/
Translation: systemd/main

4 years agotest: ignore the "freezing" & "thawing" intermediate states
Frantisek Sumsal [Tue, 22 Jun 2021 10:12:34 +0000 (12:12 +0200)] 
test: ignore the "freezing" & "thawing" intermediate states

When checking the unit state after `systemctl freeze|thaw` we can be
"too fast" and get the intermediate state (freezing/thawing) which we're
not interested in. Let's wait a bit and try to get the state again in
such cases to avoid unnecessary flakiness.

```
[   29.390203] testsuite-38.sh[218]: + state=thawing
[   29.390203] testsuite-38.sh[218]: + '[' thawing = running ']'
[   29.390203] testsuite-38.sh[218]: + echo 'error: unexpected freezer state, expected: running, actual: thawing'
[   29.390203] testsuite-38.sh[218]: error: unexpected freezer state, expected: running, actual: thawing
[   29.390203] testsuite-38.sh[218]: + exit 1
```

4 years agotest-mount-util: add output test for mount_flags_to_string() 19986/head
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 17:21:10 +0000 (19:21 +0200)] 
test-mount-util: add output test for mount_flags_to_string()

4 years agotest-mount-util: add usual print headers
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 17:20:41 +0000 (19:20 +0200)] 
test-mount-util: add usual print headers

4 years agomount-util: add one more assertion
Yu Watanabe [Tue, 22 Jun 2021 05:41:45 +0000 (14:41 +0900)] 
mount-util: add one more assertion

4 years agotest-loop-block: run in qemu 19969/head
Luca Boccassi [Thu, 17 Jun 2021 21:53:16 +0000 (22:53 +0100)] 
test-loop-block: run in qemu

test-loop-block needs to run in qemu, so we are currently not
testing it in the CI. Run it by itself in a separate job from
TEST-02-UNITTESTS to avoid slowing that suite down.

Fixes https://github.com/systemd/systemd/issues/19966

Disable it in the bionic-* CI for now, as it's affected by
the same uevent ordering issue as TEST-50-DISSECT which makes
it flaky.

4 years agotest: move custom result checks from TEST-02-UNITTESTS to test-functions
Luca Boccassi [Mon, 21 Jun 2021 19:05:47 +0000 (20:05 +0100)] 
test: move custom result checks from TEST-02-UNITTESTS to test-functions

4 years agotest: allow to call units/testsuite-02.sh from other scripts
Luca Boccassi [Mon, 21 Jun 2021 18:46:44 +0000 (19:46 +0100)] 
test: allow to call units/testsuite-02.sh from other scripts

4 years agotest: do not fail TEST-02-UNITTESTS if they are all skipped
Luca Boccassi [Mon, 21 Jun 2021 13:15:56 +0000 (14:15 +0100)] 
test: do not fail TEST-02-UNITTESTS if they are all skipped

The return code is initialized to fail if /testok is not found, but
that also covers the case where all tests are skipped.

4 years agotest: do not lose logs of late failures in TEST-02-UNITTESTS
Luca Boccassi [Mon, 21 Jun 2021 11:34:07 +0000 (12:34 +0100)] 
test: do not lose logs of late failures in TEST-02-UNITTESTS

Due to set -e, if the wait() fails (eg: because of an assert in the
waited task), report_result() never runs and logs are lost

4 years agotest: install nls modules, required by vfat
Luca Boccassi [Fri, 18 Jun 2021 15:10:30 +0000 (16:10 +0100)] 
test: install nls modules, required by vfat

kernel: FAT-fs (loop0p2): codepage cp437 not found
kernel: FAT-fs (loop0p2): IO charset ascii not found

4 years agoMerge pull request #19977 from yuwata/nspawn-fix-strextend
Zbigniew Jędrzejewski-Szmek [Mon, 21 Jun 2021 17:24:39 +0000 (19:24 +0200)] 
Merge pull request #19977 from yuwata/nspawn-fix-strextend

nspawn: replace strextend_with_separator() -> strextendf_with_separator()

4 years agocryptenroll: fix minor typo in --help (#19985)
Lennart Poettering [Mon, 21 Jun 2021 15:56:52 +0000 (17:56 +0200)] 
cryptenroll: fix minor typo in --help (#19985)

We use "+" as separator for PCR indexes now, but we forgot to replace
one "," by "+"

4 years agomount-util: use EXTRACT_KEEP_QUOTE to handle mount options 19977/head
Yu Watanabe [Mon, 21 Jun 2021 12:12:49 +0000 (21:12 +0900)] 
mount-util: use EXTRACT_KEEP_QUOTE to handle mount options

Otherwise, the quotes which wrap SELinux options are dropped.

4 years agomount-util: reduce scope of variable
Yu Watanabe [Mon, 21 Jun 2021 11:19:26 +0000 (20:19 +0900)] 
mount-util: reduce scope of variable

4 years agotest: add test cases for EXTRACT_KEEP_QUOTE and EXTRACT_UNQUOTE
Yu Watanabe [Mon, 21 Jun 2021 12:11:23 +0000 (21:11 +0900)] 
test: add test cases for EXTRACT_KEEP_QUOTE and EXTRACT_UNQUOTE

4 years agoextract-word: introduce EXTRACT_KEEP_QUOTE flag
Yu Watanabe [Mon, 21 Jun 2021 12:01:54 +0000 (21:01 +0900)] 
extract-word: introduce EXTRACT_KEEP_QUOTE flag

4 years agomount-util: make mount_flags_to_string() show flag name instead of number
Yu Watanabe [Mon, 21 Jun 2021 05:52:55 +0000 (14:52 +0900)] 
mount-util: make mount_flags_to_string() show flag name instead of number

This also adds missing MS_NOSYMFOLLOW flag. Moreover, this makes the
function always add unhandled flags in number.

4 years agonspawn: replace strextend_with_separator() -> strextendf_with_separator()
Yu Watanabe [Sun, 20 Jun 2021 10:40:55 +0000 (19:40 +0900)] 
nspawn: replace strextend_with_separator() -> strextendf_with_separator()

Fixes a bug introduced by cfea7618f28562c053a1ee194108feaa502081ff.

Before this commit:
mode=1777,size=10%,nr_inodes=400k,uid=496107520,gid=496107520,context=,sys.id:sys.role:systemd.nspawn.container.fs:s0,
After this commit:
mode=1777,size=10%,nr_inodes=400k,uid=496107520,gid=496107520,context=sys.id:sys.role:systemd.nspawn.container.fs:s0

Fixes #19976.

4 years agotime-util: coding style fixes
Yu Watanabe [Mon, 21 Jun 2021 08:54:05 +0000 (17:54 +0900)] 
time-util: coding style fixes

Follow-ups for 45eb4d2261ed0d943fd503a6d79ee3b7b7558c09.

4 years agovirt: improve log message when we cannot read /sys/firmware/dmi/entries/0-0/raw
Yu Watanabe [Sun, 20 Jun 2021 15:09:07 +0000 (00:09 +0900)] 
virt: improve log message when we cannot read /sys/firmware/dmi/entries/0-0/raw

As the file is usually readable by only root.

Prompted by https://github.com/systemd/systemd/issues/19978#issuecomment-864561357.

4 years agoMerge pull request #19981 from gablank/relative-time-unit-singular
Yu Watanabe [Mon, 21 Jun 2021 05:04:31 +0000 (14:04 +0900)] 
Merge pull request #19981 from gablank/relative-time-unit-singular

time-util: don't use plural units indiscriminately

4 years agotime-util: don't use plural units indiscriminately 19981/head
Anders Wenhaug [Sun, 20 Jun 2021 19:43:07 +0000 (21:43 +0200)] 
time-util: don't use plural units indiscriminately

format_timestamp_relative currently returns the plural form of
years and months no matter the quantity, and in many cases (for
durations > 1 week) this is the same with days.

This patch changes this so that the function takes the quantity into account,
returning "1 month 1 week ago" instead of "1 months 1 weeks ago".

4 years agohwdb: add rules for Lenovo U41-70 (80JV)
Jesse Stricker [Fri, 18 Jun 2021 14:21:14 +0000 (16:21 +0200)] 
hwdb: add rules for Lenovo U41-70 (80JV)

4 years agoRevert "ci: work around #19442 to make CI happy again"
Frantisek Sumsal [Thu, 17 Jun 2021 17:45:23 +0000 (19:45 +0200)] 
Revert "ci: work around #19442 to make CI happy again"

The fix/workaround from #18851 should, hopefully, make this redundant.

This reverts commit 48a3cf58d5ad9cf2a4a4e6167171070b88c25369.

4 years agorepart: make No-Auto GPT partition flag configurable too
Lennart Poettering [Thu, 17 Jun 2021 10:57:26 +0000 (12:57 +0200)] 
repart: make No-Auto GPT partition flag configurable too

This is useful for provisioning initially empty secondary A/B root file
systems. We don't want those to ever be considered for automatic
mounting, for example in "systemd-nspawn --image=", hence we should
create them with the No-Auto flag turned on. Once a file system image is
dropped into the partition the flag may be turned off by the updater
tool, so that it is considered from then on.

Thew new option for this is called NoAuto. I dislike negated options
like this, but this is taken from the naming in the spec, which in turn
inherited the name from the same flag for Microsoft Data Partitions. To
minimize confusion, let's stick to the name hence.

4 years agopath-util: make path_equal() an inline wrapper around path_compare()
Lennart Poettering [Thu, 17 Jun 2021 09:04:31 +0000 (11:04 +0200)] 
path-util: make path_equal() an inline wrapper around path_compare()

The two are completely identical, only the return code is inverted.
let's hence make it easy for the compiler to make it the same function
call even in lowest optimization modes.

4 years agotest: wait until the unit leaves the 'inactive' state as well
Frantisek Sumsal [Thu, 17 Jun 2021 18:17:25 +0000 (20:17 +0200)] 
test: wait until the unit leaves the 'inactive' state as well

In many CI runs I noticed a race where we check the "active" state a bit
too early where the unit is still in the "inactive" state, causing the
`is-failed` check to fail. Mitigate this by waiting even if the unit is
in the inactive state and introduce a "safe net" which checks whether
the unit is not restarting indefinitely or more than it should (as
described in the original issue #3166).

Example:
```
[    5.757784] testsuite-11.sh[216]: + systemctl --no-block start fail-on-restart.service
[    5.853657] testsuite-11.sh[222]: ++ systemctl show --value --property ActiveState fail-on-restart.service
[    5.946044] testsuite-11.sh[216]: + active_state=inactive
[    5.946044] testsuite-11.sh[216]: + [[ inactive == \a\c\t\i\v\a\t\i\n\g ]]
[    5.946044] testsuite-11.sh[216]: + [[ inactive == \a\c\t\i\v\e ]]
[    5.946044] testsuite-11.sh[216]: + systemctl is-failed fail-on-restart.service
[    5.946816] systemd[1]: fail-on-restart.service: Passing 0 fds to service
[    5.946913] systemd[1]: fail-on-restart.service: About to execute false
[    5.947011] systemd[1]: fail-on-restart.service: Forked false as 228
[    5.947093] systemd[1]: fail-on-restart.service: Changed dead -> start
[    5.947172] systemd[1]: Starting Fail on restart...
[    5.947272] systemd[228]: fail-on-restart.service: Executing: false
[    5.960553] testsuite-11.sh[227]: activating
[    5.965188] testsuite-11.sh[216]: + exit 1
[    6.011838] systemd[1]: Received SIGCHLD from PID 228 (4).
[    6.012510] systemd[1]: fail-on-restart.service: Main process exited, code=exited, status=1/FAILURE
[    6.012638] systemd[1]: fail-on-restart.service: Failed with result 'exit-code'.
[    6.012834] systemd[1]: fail-on-restart.service: Service will restart (restart setting)
[    6.012963] systemd[1]: fail-on-restart.service: Changed running -> failed
[    6.013081] systemd[1]: fail-on-restart.service: Unit entered failed state.
```

4 years agoUpdate systemd-resolved.service.8 help
plattrap [Fri, 18 Jun 2021 00:32:02 +0000 (12:32 +1200)] 
Update systemd-resolved.service.8 help

Text currently refers to `/etc/nsswitch.conf` where it should refer to `/etc/resolv.conf`.
This is in the context of defining a nameserver IP and search domains.

4 years agotest: drop the mawk-incompatible expression
Frantisek Sumsal [Thu, 17 Jun 2021 12:38:21 +0000 (14:38 +0200)] 
test: drop the mawk-incompatible expression

The three-argument match() is a GNU AWK extension, thus breaking the
compatibility with mawk (used on Ubuntu/Debian, for example). Let's
replace it with a (hopefully) more portable sed expression to drop the
inadvertently introduced gawk dependency.

Fixes: #19957
4 years agohwdb: Add mic mute key mapping for HP Elite Dragonfly
Jeremy Szu [Thu, 17 Jun 2021 11:00:38 +0000 (19:00 +0800)] 
hwdb: Add mic mute key mapping for HP Elite Dragonfly

 * HP confirmed there are two marketing name
   * HP Elite Dragonfly G2 Notebook PC
   * HP Elite Dragonfly Max Notebook PC

4 years agoupdate TODO
Lennart Poettering [Thu, 17 Jun 2021 13:11:37 +0000 (15:11 +0200)] 
update TODO

4 years agoshell-completion: revert c1072f6473bafa063cbf700c86524083d2857031
Eric Cook [Wed, 16 Jun 2021 19:35:12 +0000 (15:35 -0400)] 
shell-completion: revert c1072f6473bafa063cbf700c86524083d2857031
fixing https://github.com/systemd/systemd/issues/19689

4 years agocore: Hide "Deactivated successfully" message
Jan Macku [Thu, 27 May 2021 10:25:51 +0000 (12:25 +0200)] 
core: Hide "Deactivated successfully" message

Show message "Deactivated successfully" in debug mode (when manager is
user) rather than in info mode. This message has low information value
for regular users and it might be a bit overwhelming on a system with
a lot of devices.

4 years agotest: do not run 'meson configure' if NO_BUILD is set
Luca Boccassi [Wed, 16 Jun 2021 20:50:23 +0000 (21:50 +0100)] 
test: do not run 'meson configure' if NO_BUILD is set

There is no build tree and packages are used, so it cannot work. Unlikely
that static linking has been set for those builds anyway.

Fixes https://github.com/systemd/systemd/issues/19955

4 years agoNEWS: fix typos
Joerg Behrmann [Thu, 17 Jun 2021 07:32:32 +0000 (09:32 +0200)] 
NEWS: fix typos

4 years agomeson: allow "soft-static" allocations for uids and gids in the initrd
Zbigniew Jędrzejewski-Szmek [Sun, 23 May 2021 20:00:22 +0000 (22:00 +0200)] 
meson: allow "soft-static" allocations for uids and gids in the initrd

The general idea with users and groups created through sysusers is that an
appropriate number is picked when the allocation is made. The number that is
selected will be different on each system based on the order of creation of
users, installed packages, etc. Since system users and groups are not shared
between installations, this generally is not an issue. But it becomes a problem
for initrd: some file systems are shared between the initrd and the host (/run
and /dev are probably the only ones that matter). If the allocations are
different in the host and the initrd, and files survive switch-root, they will
have wrong ownership.

This makes the gids build-time-configurable for all groups and users where
state may survive the switch from initrd to the host.

In particular, all "hardware access" groups are like this: files in /dev will
be owned by them.  Eventually the new udev would change ownership, but there
would be a momemnt where the files were owned by the wrong group. The
allocations are "soft-static" in the language of Fedora packaging guidelines:
the uid/gid will be used if possible, but we'll fall back to a different
one. TTY_GID is the exception, because the number is used directly.

Similarly, the possibility to configure "soft-static" uids is added for daemons
which may usefully run in the initramfs: systemd-network (lease information and
interface state is serialized to /run), systemd-resolve (stub files and
interface state), systemd-timesync (/run/systemd/timesync).

Journal files are owned by the group systemd-journal, and acls are granted
for wheel and adm.

systemd-oom and systemd-coredump are excluded from this patch: I assume that
oomd is not useful in the initrd, and coredump leaves no state (it only creates
a pipe in /run?).

The defaults are not changed: if nothing is configured, dynamic allocation will
be used. I looked at a Debian system, and the numbers are all different than
on Fedora.

For Fedora, see the list of uids and gids at https://pagure.io/setup/blob/master/f/uidgid.
In particular, systemd-network and systemd-resolve got soft-static numbers to
make it easy to transition from a non-host-specific initrd to a host system
already a few years back (https://bugzilla.redhat.com/show_bug.cgi?id=1102002).

I also requested static allocations for sgx, input, render in
https://pagure.io/packaging-committee/issue/1078,
https://pagure.io/setup/pull-request/27.

4 years agoMerge pull request #19948 from keszybz/set-driver-refactoring
Luca Boccassi [Wed, 16 Jun 2021 12:48:18 +0000 (13:48 +0100)] 
Merge pull request #19948 from keszybz/set-driver-refactoring

A minor refactoring to sd-device internals

4 years agoMerge pull request #19947 from yuwata/network-dad-tiny-fixes
Luca Boccassi [Wed, 16 Jun 2021 08:45:42 +0000 (09:45 +0100)] 
Merge pull request #19947 from yuwata/network-dad-tiny-fixes

network: tiny fixes about IPv4ACD

4 years agosd-device: let device_set_driver() accept NULL too 19948/head
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jun 2021 16:47:05 +0000 (18:47 +0200)] 
sd-device: let device_set_driver() accept NULL too

Like previous commit, but for driver not subsystem.

4 years agosd-device: let device_set_subsystem() accept NULL
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jun 2021 16:37:26 +0000 (18:37 +0200)] 
sd-device: let device_set_subsystem() accept NULL

This makes device_shallow_clone() simpler.

Follow-up for 2255e8adee37c490bf8cf2daab791b6f746bb0a0.

4 years agonetwork: always enable IPv4 ACD for statically configured IPv4LL address 19947/head
Yu Watanabe [Tue, 15 Jun 2021 21:54:47 +0000 (06:54 +0900)] 
network: always enable IPv4 ACD for statically configured IPv4LL address

4 years agoman: fix RFC number and its title
Yu Watanabe [Wed, 16 Jun 2021 01:32:28 +0000 (10:32 +0900)] 
man: fix RFC number and its title

4 years agonetwork: IFA_F_NODAD flag is only for IPv6 addresses
Yu Watanabe [Tue, 15 Jun 2021 23:33:04 +0000 (08:33 +0900)] 
network: IFA_F_NODAD flag is only for IPv6 addresses

4 years agoMerge pull request #19942 from wat-ze-hex/socket-bind-ip-proto-2021-06-10 v249-rc1
Lennart Poettering [Tue, 15 Jun 2021 22:24:54 +0000 (00:24 +0200)] 
Merge pull request #19942 from wat-ze-hex/socket-bind-ip-proto-2021-06-10

dbus: extend SocktBind{Allow|Deny}= with ip proto

4 years agotest: add a testcase for issue #19895
Frantisek Sumsal [Tue, 15 Jun 2021 06:34:41 +0000 (15:34 +0900)] 
test: add a testcase for issue #19895

4 years agoMerge pull request #19896 from keszybz/systemd-efi-options-hint
Lennart Poettering [Tue, 15 Jun 2021 22:03:08 +0000 (00:03 +0200)] 
Merge pull request #19896 from keszybz/systemd-efi-options-hint

Print hint in bootctl when systemd-efi-options output is out-of-date

4 years agoMerge pull request #19943 from poettering/v249rc1-rep
Lennart Poettering [Tue, 15 Jun 2021 22:02:31 +0000 (00:02 +0200)] 
Merge pull request #19943 from poettering/v249rc1-rep

prepare v249-rc1