]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
3 years agoman: document new initrd-usr-fs.target 19372/head
Lennart Poettering [Wed, 31 Mar 2021 15:18:25 +0000 (17:18 +0200)] 
man: document new initrd-usr-fs.target

3 years agounits: change order of settings to match order in other similar unit
Lennart Poettering [Sat, 27 Mar 2021 12:47:25 +0000 (13:47 +0100)] 
units: change order of settings to match order in other similar unit

3 years agofstab-generator: properly order generated mount units before "post" target units
Lennart Poettering [Wed, 7 Apr 2021 09:12:39 +0000 (11:12 +0200)] 
fstab-generator: properly order generated mount units before "post" target units

Let's make sure, that our mount unit are properly ordered before the
"post" target unit even if DefaultDependencies= is used on the target
unit.

3 years agofstab-generator: extend logging a bit
Lennart Poettering [Sat, 27 Mar 2021 12:47:04 +0000 (13:47 +0100)] 
fstab-generator: extend logging a bit

3 years agofstab-generator: if usr= is specified, mount it to /sysusr/usr/ first
Lennart Poettering [Fri, 26 Mar 2021 21:40:40 +0000 (22:40 +0100)] 
fstab-generator: if usr= is specified, mount it to /sysusr/usr/ first

This changes the fstab-generator to handle mounting of /usr/ a bit
differently than before. Instead of immediately mounting the fs to
/sysroot/usr/ we'll first mount it to /sysusr/usr/ and then add a
separate bind mount that mounts it from /sysusr/usr/ to /sysroot/usr/.

This way we can access /usr independently of the root fs, without for
waiting to be mounted via the /sysusr/ hierarchy. This is useful for
invoking systemd-repart while a root fs doesn't exist yet and for
creating it, with partition data read from the /usr/ hierarchy.

This introduces a new generic target initrd-usr-fs.target that may be
used to generically order services against /sysusr/ to become available.

3 years agoupdate TODO
Lennart Poettering [Tue, 20 Apr 2021 13:33:15 +0000 (15:33 +0200)] 
update TODO

3 years agorelay role implementation
Yegor Alexeyev [Mon, 15 Mar 2021 20:19:52 +0000 (21:19 +0100)] 
relay role implementation

3 years agoman: fix typo
Yu Watanabe [Tue, 20 Apr 2021 09:59:24 +0000 (18:59 +0900)] 
man: fix typo

Follow-up for e73309c532999cb15490a78575dd882b24bbe96f.

3 years agodocument DefaultOOMPolicy
Miroslav Suchý [Tue, 20 Apr 2021 08:23:01 +0000 (10:23 +0200)] 
document DefaultOOMPolicy

the `man systemd.service` say:
   Defaults to the setting DefaultOOMPolicy= in systemd-system.conf(5) is set to
but there is no such line in this config.
This is the default value I extracted from
   systemctl show --property=DefaultOOMPolicy

3 years agowifi-util: do not set zero errno to log_debug_errno()
Yu Watanabe [Tue, 20 Apr 2021 00:23:33 +0000 (09:23 +0900)] 
wifi-util: do not set zero errno to log_debug_errno()

3 years agotest: make the test entrypoint scripts shellcheck-compliant
Frantisek Sumsal [Mon, 19 Apr 2021 11:01:59 +0000 (13:01 +0200)] 
test: make the test entrypoint scripts shellcheck-compliant

3 years agomount-util: make umount_and_rmdir_and_freep() cleanup handler deal with NULL
Lennart Poettering [Mon, 19 Apr 2021 20:50:32 +0000 (22:50 +0200)] 
mount-util: make umount_and_rmdir_and_freep() cleanup handler deal with NULL

3 years agoMerge pull request #19096 from poettering/repart-features
Lennart Poettering [Tue, 20 Apr 2021 08:20:22 +0000 (10:20 +0200)] 
Merge pull request #19096 from poettering/repart-features

repart: four new features: CopyBlocks=auto + --image= + ReadOnly=/Flags= + MakeDirectories=

3 years agoshell-completion: use base.lst, not xorg.lst
Peter Hutterer [Tue, 20 Apr 2021 07:09:48 +0000 (17:09 +1000)] 
shell-completion: use base.lst, not xorg.lst

Since 2005 xorg.lst has been the legacy symlink to the real file base.lst.

3 years agoMerge pull request #19356 from zxzax/sd-login-typos
Luca Boccassi [Mon, 19 Apr 2021 21:26:36 +0000 (22:26 +0100)] 
Merge pull request #19356 from zxzax/sd-login-typos

Fix some typos in sd-login header, docs

3 years agoupdate TODO 19096/head
Lennart Poettering [Tue, 23 Mar 2021 18:00:32 +0000 (19:00 +0100)] 
update TODO

3 years agotest: add test for new repart features
Lennart Poettering [Mon, 19 Apr 2021 15:30:33 +0000 (17:30 +0200)] 
test: add test for new repart features

3 years agodissect: ext4 and loopback files are unimpressed by read-only access
Lennart Poettering [Mon, 19 Apr 2021 20:47:33 +0000 (22:47 +0200)] 
dissect: ext4 and loopback files are unimpressed by read-only access

Even if we set up a loopback device read-only and mount it read-only
this means nothing, ext4 will still write through to the backing storage
file.

Yes, I lost 6h debugging time on this.

Apparently, we have to specify "norecovery" when mounting such file
systems, to force them into truly read-only mode. Let's do so.

3 years agorepart: add new ReadOnly= and Flags= settings for repart dropins
Lennart Poettering [Tue, 23 Mar 2021 15:16:42 +0000 (16:16 +0100)] 
repart: add new ReadOnly= and Flags= settings for repart dropins

Let's make the GPT partition flags configurable when creating new
partitions. This is primarily useful for the read-only flag (which we
want to set for verity enabled partitions).

This adds two settings for this: Flags= and ReadOnly=, which strictly
speaking are redundant. The main reason to have both is that usually the
ReadOnly= setting is the one wants to control, and it' more generic.
Moreover we might later on introduce inherting of flags from CopyBlocks=
partitions, where one might want to control most flags as is except for
the RO flag and similar, hence let's keep them separate.

3 years agorepart: add CopyBlocks=auto support
Lennart Poettering [Tue, 23 Mar 2021 13:12:38 +0000 (14:12 +0100)] 
repart: add CopyBlocks=auto support

When using systemd-repart as an installer that replicates the install
medium on another medium it is useful to reference the root
partition/usr partition or verity data that is currently booted, in
particular in A/B scenarios where we have two copies and want to
reference the one we currently use. Let's add a CopyBlocks=auto for this
case: for a partition that uses that we'll copy a suitable partition
from the host.

CopyBlocks=auto finds the partition to copy like this: based on the
configured partition type uuid we determine the usual mount point (i.e.
for the /usr partition type we determine /usr/, and so on). We then
figure out the block device behind that path, through dm-verity and
dm-crypt if necessary. Finally, we compare the partition type uuid of
the partition found that way with the one we are supposed to fill and
only use it if it matches (the latter is primarily important on
dm-verity setups where a volume is likely backed by two partitions and
we need to find the right one).

This is particularly fun to use in conjunction with --image= (where
we'll restrict the device search onto the specify device, for security
reasons), as this allows "duplicating" an image like this:

    # systemd-repart --image=source.raw --empty=create --size=auto target.raw

If the right repart data is embedded into "source.raw" this will be able
to create and initialize a partition table on target.raw that carrries
all needed partitions, and will stream the source's file systems onto it
as configured.

3 years agogpt: add some simple helpers for categorizing GPT partition types
Lennart Poettering [Mon, 22 Mar 2021 20:23:40 +0000 (21:23 +0100)] 
gpt: add some simple helpers for categorizing GPT partition types

3 years agoloop-util: store device major/minor in LoopDevice object
Lennart Poettering [Mon, 22 Mar 2021 20:22:22 +0000 (21:22 +0100)] 
loop-util: store device major/minor in LoopDevice object

Let's store this away. It's useful when matching up mounts (i.e.  struct
stat's .st_dev field) with loopback devices.

3 years agorepart: add high-level setting for creating dirs in formatted file systems
Lennart Poettering [Sat, 20 Mar 2021 13:05:28 +0000 (14:05 +0100)] 
repart: add high-level setting for creating dirs in formatted file systems

So far we already had the CopyFiles= option in systemd-repart drop-in
files, as a mechanism for populating freshly formatted file systems with
files and directories. This adds MakeDirectories= in similar style, and
creates simple directories as listed. The option is of course entirely
redundant, since the same can be done with CopyFiles= simply by copying
in a directory. It's kinda nice to encode the dirs to create directly in
the drop-in files however, instead of providing a directory subtree to
copy in somehere, to make the files more self-contained — since often
just creating dirs is entirely sufficient.

The main usecase for this are GPT OS images that carry only a /usr/
tree, and for which a root file system is only formatted on first boot
via repart.  Without any additional CopyFiles=/MakeDirectories=
configuration these root file systems are entirely empty of course
initially. To mount in the /usr/ tree, a directory inode for /usr/ to
mount over needs to be created.  systemd-nspawn will do so automatically
when booting up the image, as will the initrd during boot. However, this
requires the image to be writable – which is OK for npawn and
initrd-based boots, but there are plenty tools where read-only operation
is desirable after repart ran, before the image was booted for the first
time. Specifically, "systemd-dissect" opens the image in read-only to
inspect its contents, and this will only work of /usr/ can be properly
mounted. Moreover systemd-dissect --mount --read-only won't succeed
either if the fs is read-only.

Via MakeDirectories= we now provide a way that ensures that the image
can be mounted/inspected in a fully read-only way immediately after
systemd-repart completed. Specifically, let's consider a GPT disk image
shipping with a file usr/lib/repart.d/50-root.conf:

       [Partition]
       Type=root
       Format=btrfs
       MakeDirectories=/usr
       MakeDirectories=/efi

With this in place systemd-repart will create a root partition when run,
and add /usr and /efi into it as directory inods. This ensures that the
whole image can then be mounted truly read-only anf /usr and /efi can be
overmounted by the /usr partition and the ESP.

3 years agorepart: use free_and_strdup_warn() where appropriate
Lennart Poettering [Fri, 19 Mar 2021 21:45:28 +0000 (22:45 +0100)] 
repart: use free_and_strdup_warn() where appropriate

3 years agorepart: deal with empty partition label sensibly
Lennart Poettering [Fri, 19 Mar 2021 21:45:15 +0000 (22:45 +0100)] 
repart: deal with empty partition label sensibly

libfdisk appears to return NULL when encountering an empty partition
label, let's handle this sanely, and treat NULL and "" for the current
label as the same, but for the new label as distinct: there NULL means
nothing is set, and "" means an actual empty label.

3 years agorepart: handle DISCARD failing with EBUSY gracefully
Lennart Poettering [Fri, 19 Mar 2021 21:25:09 +0000 (22:25 +0100)] 
repart: handle DISCARD failing with EBUSY gracefully

3 years agorepart: add one more overflow check
Lennart Poettering [Fri, 19 Mar 2021 21:24:48 +0000 (22:24 +0100)] 
repart: add one more overflow check

3 years agorepart: when we can't fit in all partitions explain how large the image would have...
Lennart Poettering [Fri, 19 Mar 2021 19:31:29 +0000 (20:31 +0100)] 
repart: when we can't fit in all partitions explain how large the image would have to be

3 years agorepart: add --image= switch
Lennart Poettering [Fri, 19 Mar 2021 10:19:00 +0000 (11:19 +0100)] 
repart: add --image= switch

This is similar to the --image= switch in the other tools, like
systemd-sysusers or systemd-tmpfiles, i.e. it apply the configuration
from the image to the image.

This is particularly useful for downloading minimized GPT image, and
then extending it to the desired size via:

   # systemd-repart --image=foo.image --size=5G

3 years agorepart: slightly improve error message if partition is not on dm-crypt/dm-verity
Lennart Poettering [Fri, 19 Mar 2021 10:16:22 +0000 (11:16 +0100)] 
repart: slightly improve error message if partition is not on dm-crypt/dm-verity

3 years agorepart: move NOP destructors into shared code
Lennart Poettering [Thu, 18 Mar 2021 21:47:24 +0000 (22:47 +0100)] 
repart: move NOP destructors into shared code

3 years agodissect: split read-only flag into two
Lennart Poettering [Fri, 19 Mar 2021 21:19:08 +0000 (22:19 +0100)] 
dissect: split read-only flag into two

Let's have one flag to request that when dissecting an image the
loopback device is made read-only, and another one to request that when
it is mounted to make it read-only. Previously both concepts were always
done read-only together.

(Of course, making the loopback device read-only but mounting it
read-write doesn't make too much sense, but the kernel should catch that
for us, no need to make restrictions from our side there)

Use-case for this: in systemd-repart we'd like to operate on images for
adding partitions. Thus we'd like to have the loopback device writable,
but if we read repart.d/ snippets from it, we want to do that read-only.

3 years agorepart: port more code to generic path_simplify_and_warn()
Lennart Poettering [Mon, 19 Apr 2021 15:50:02 +0000 (17:50 +0200)] 
repart: port more code to generic path_simplify_and_warn()

We have this nice helper, hence use it when parsing paths and logging
about it.

3 years agorepart: fix incorrect error code propagation
Lennart Poettering [Mon, 19 Apr 2021 15:35:54 +0000 (17:35 +0200)] 
repart: fix incorrect error code propagation

3 years agoudev/cdrom_id: add forgotten return and fix typo
Zbigniew Jędrzejewski-Szmek [Mon, 19 Apr 2021 14:00:05 +0000 (16:00 +0200)] 
udev/cdrom_id: add forgotten return and fix typo

Fixup for 092c05717c.

3 years agosd-login: fix wrong constructor used in sd_login_monitor manpage example 19356/head
Jason Francis [Mon, 19 Apr 2021 16:16:26 +0000 (12:16 -0400)] 
sd-login: fix wrong constructor used in sd_login_monitor manpage example

3 years agosd-login: correct prototype of sd_peer_get_cgroup
Jason Francis [Mon, 19 Apr 2021 16:13:03 +0000 (12:13 -0400)] 
sd-login: correct prototype of sd_peer_get_cgroup

3 years agocore: add RestrictAddressFamilies=none to deny all address families
Yu Watanabe [Sat, 17 Apr 2021 04:04:28 +0000 (13:04 +0900)] 
core: add RestrictAddressFamilies=none to deny all address families

Closes #15753.

3 years agoMerge pull request #19351 from keszybz/log-message-tweaks
Luca Boccassi [Mon, 19 Apr 2021 10:44:35 +0000 (11:44 +0100)] 
Merge pull request #19351 from keszybz/log-message-tweaks

Log message tweaks

3 years agohwdb: Add accel orientation quirk for the Teclast Tbook 11 tablet
Hans de Goede [Sat, 17 Apr 2021 17:55:47 +0000 (19:55 +0200)] 
hwdb: Add accel orientation quirk for the Teclast Tbook 11 tablet

Add a quirk to fix the accelerometer orientation on the
Teclast Tbook 11 tablet.

3 years ago60-autosuspend.hwdb: Add Sierra Wireless EM7345-LTE modem to autosuspend list
Hans de Goede [Sat, 17 Apr 2021 17:48:50 +0000 (19:48 +0200)] 
60-autosuspend.hwdb: Add Sierra Wireless EM7345-LTE modem to autosuspend list

Add the Sierra Wireless EM7345-LTE modem to the list of USB devices which
can safely autosuspend. This helps the processor reach deaper PC# states
when idle.

This was tested on a ThinkPad8 tablet with such a modem builtin.

3 years agoMerge pull request #19330 from mrc0mmand/shellcheck-pt2
Zbigniew Jędrzejewski-Szmek [Mon, 19 Apr 2021 07:04:19 +0000 (09:04 +0200)] 
Merge pull request #19330 from mrc0mmand/shellcheck-pt2

test: make test-functions shellcheck-compliant

3 years agobasic/log: change error for unset errno to ESTRPIPE 19351/head
Zbigniew Jędrzejewski-Szmek [Mon, 19 Apr 2021 06:43:36 +0000 (08:43 +0200)] 
basic/log: change error for unset errno to ESTRPIPE

EIO is used in other contexts, so change ot something otherwise unused.
ENOTRECOVERABLE was also suggested, but it's used in various other places
in the code.

https://github.com/systemd/systemd/pull/19317#discussion_r614887661

3 years agologind: tweak log message
Zbigniew Jędrzejewski-Szmek [Mon, 19 Apr 2021 06:37:57 +0000 (08:37 +0200)] 
logind: tweak log message

https://github.com/systemd/systemd/pull/19317#pullrequestreview-637765222

3 years agoudev/cdrom_id: use random_u64_range() and tweak log messages
Zbigniew Jędrzejewski-Szmek [Mon, 19 Apr 2021 06:37:39 +0000 (08:37 +0200)] 
udev/cdrom_id: use random_u64_range() and tweak log messages

https://github.com/systemd/systemd/pull/19317#pullrequestreview-637765222

3 years agosystemd-networkd.socket: Add conflict with shutdown.target (#19348)
sverdlin [Mon, 19 Apr 2021 02:25:33 +0000 (04:25 +0200)] 
systemd-networkd.socket: Add conflict with shutdown.target (#19348)

systemd-networkd.socket can re-start systemd-networkd.service in
shutdown and by doing this even stop shutdown.target leaving the
system in halfway-down state.

Fixes #4955.

3 years agotest: rewrite kernel module handling 19330/head
Frantisek Sumsal [Fri, 16 Apr 2021 16:42:00 +0000 (18:42 +0200)] 
test: rewrite kernel module handling

This code was partially broken, since the firmware directory was
undefined. Also, some of the parts were a dead code, since they relied
on code from the original dracut test suite.

3 years agotest: use arrays when applicable
Frantisek Sumsal [Fri, 16 Apr 2021 16:40:30 +0000 (18:40 +0200)] 
test: use arrays when applicable

3 years agotest: avoid using pipes in certain cases
Frantisek Sumsal [Fri, 16 Apr 2021 16:37:49 +0000 (18:37 +0200)] 
test: avoid using pipes in certain cases

`command -v <bin> | grep ...` can under certain conditions cause the
`command` to exit with SIGPIPE, which in combination with `set -o
pipefail` means that the tests sometimes randomly die during setup.
Let's avoid using pipes in such cases.

3 years agotest: use set -o pipefail
Frantisek Sumsal [Fri, 16 Apr 2021 16:36:27 +0000 (18:36 +0200)] 
test: use set -o pipefail

This breaks some existing loops which previously ignored if the piped
program exited with EC >0. Rewrite them to mitigate this (and also make
them more robust in some cases).

3 years agotest: shell code cleanup
Frantisek Sumsal [Fri, 16 Apr 2021 16:33:44 +0000 (18:33 +0200)] 
test: shell code cleanup

Just some basic stuff, like double quotes around strings, using
predictable values for possibly unset variables, formatting, etc.

3 years agofileio: use take_fdopen_unlocked()
Yu Watanabe [Fri, 16 Apr 2021 01:08:36 +0000 (10:08 +0900)] 
fileio: use take_fdopen_unlocked()

This fixes maybe-uninitialized warning:
```
../src/basic/fileio.c: In function ‘chase_symlinks_and_fopen_unlocked’:
../src/basic/fileio.c:1026:19: warning: ‘f’ may be used uninitialized in this function [-Wmaybe-uninitialized]
 1026 |         *ret_file = f;
      |         ~~~~~~~~~~^~~

```

3 years agoMerge pull request #19332 from yuwata/log_xxx_yyy_errno-follow-ups-19317
Yu Watanabe [Fri, 16 Apr 2021 14:44:32 +0000 (23:44 +0900)] 
Merge pull request #19332 from yuwata/log_xxx_yyy_errno-follow-ups-19317

core,timedate,network: make log_unit_error_errno() or friends refuse zero errno

3 years agoMerge pull request #19325 from sainAk/patch-1
Yu Watanabe [Fri, 16 Apr 2021 11:01:10 +0000 (20:01 +0900)] 
Merge pull request #19325 from sainAk/patch-1

hwdb: 60-keyboard:: merge Micro Star in MSI and  merge MSI Prestige And MSI Modern FnKeys and Special keys definitions

3 years agonetwork: update log message 19332/head
Yu Watanabe [Fri, 16 Apr 2021 00:54:52 +0000 (09:54 +0900)] 
network: update log message

In some optimization level with gcc, including netdev->ifname in log
message causes error.

3 years agoMerge pull request #19290 from yuwata/network-dhcp-do-not-configure-twice
Zbigniew Jędrzejewski-Szmek [Fri, 16 Apr 2021 10:36:23 +0000 (12:36 +0200)] 
Merge pull request #19290 from yuwata/network-dhcp-do-not-configure-twice

network: refuse to configure DHCP client more than once

3 years agoMerge pull request #19310 from yuwata/network-dhcp-anonymize
Zbigniew Jędrzejewski-Szmek [Fri, 16 Apr 2021 09:12:22 +0000 (11:12 +0200)] 
Merge pull request #19310 from yuwata/network-dhcp-anonymize

network: dhcp4: several fixes and cleanups for Anonymize=

3 years agoman: correct requirements for systemd-oomd.service
Anita Zhang [Fri, 16 Apr 2021 07:42:44 +0000 (00:42 -0700)] 
man: correct requirements for systemd-oomd.service

Fixes: #19331
3 years agohwdb: merge MSI Prestige And MSI Modern FnKeys and Special keys definitions 19325/head
Aakash Singh [Thu, 15 Apr 2021 06:25:57 +0000 (11:55 +0530)] 
hwdb: merge MSI Prestige And MSI Modern FnKeys and Special keys definitions

'A10' was the model name for prestige series with 10th gen intel processors and 'SC' was the gpu config for a specific model
but now msi has refreshed these series with 11th gen intel processors so the model name becomes 'A11X' where x is gpu config name more info [here](https://www.msi.com/Business-Productivity/Prestige-14-A11X/Specification) and [here](https://www.msi.com/Business-Productivity/Prestige-15-A11X/Specification)
[this was the link for model comparison of 10th gen cpus](https://www.msi.com/Business-Productivity/Prestige-15-A10X/Specification) (Dead link now)
complete list of Prestige series laptops [here](https://www.msi.com/Business-Productivity/Products#?tag=Prestige-Series)

And modern series follows the same naming convention, full list of laptops [here](https://www.msi.com/Business-Productivity/Products#?tag=Modern-Series).

examples

Prestige series
Prestige 14 A10x ( 14inch Intel 10th gen )
Prestige 15 A11x ( 15inch Intel 11th gen )

First gen Modern Series
Modern 15 A10x  ( 15inch Intel 10th gen)
Modern 15 A4x ( 15inch AMD 4000 series)

Second gen Modern Series
Modern 15 B10x  ( 15inch Intel first gen modern laptop)
Modern 14 B4x ( 14inch AMD second gen modern laptop)

all these laptops have the same keyboard layouts with same functionality on windows (can be reviewed from their support manuals).

3 years agohwdb: merge Micro Star in MSI
Aakash Singh [Thu, 15 Apr 2021 05:30:34 +0000 (11:00 +0530)] 
hwdb: merge Micro Star in MSI

3 years agonetwork: make log_netdev_xxx_errno() refuse zero errno
Yu Watanabe [Thu, 15 Apr 2021 23:44:56 +0000 (08:44 +0900)] 
network: make log_netdev_xxx_errno() refuse zero errno

3 years agotimedate: make log_unit_xxx_errno() refuse zero errno
Yu Watanabe [Thu, 15 Apr 2021 23:45:28 +0000 (08:45 +0900)] 
timedate: make log_unit_xxx_errno() refuse zero errno

3 years agocore: make log_unit_xxx_errno() refuse zero errno
Yu Watanabe [Thu, 15 Apr 2021 23:43:59 +0000 (08:43 +0900)] 
core: make log_unit_xxx_errno() refuse zero errno

3 years agocore: use UNIT_TRIGGER at more places
Lennart Poettering [Thu, 15 Apr 2021 09:18:31 +0000 (11:18 +0200)] 
core: use UNIT_TRIGGER at more places

Just some minor simplification.

3 years agoMerge pull request #19326 from keszybz/reorder-meson-status-output
Luca Boccassi [Thu, 15 Apr 2021 19:37:29 +0000 (20:37 +0100)] 
Merge pull request #19326 from keszybz/reorder-meson-status-output

Reorder meson status output

3 years agoMerge pull request #19318 from yuwata/udev-ignore-additional-newline-on-verify-19314
Luca Boccassi [Thu, 15 Apr 2021 19:36:55 +0000 (20:36 +0100)] 
Merge pull request #19318 from yuwata/udev-ignore-additional-newline-on-verify-19314

udev: ignore additional newline at the end on verify

3 years agoMerge pull request #19317 from keszybz/check-return-values-from-log_errno-functions
Luca Boccassi [Thu, 15 Apr 2021 19:33:54 +0000 (20:33 +0100)] 
Merge pull request #19317 from keszybz/check-return-values-from-log_errno-functions

Check return values from log_errno functions

3 years agopo: Translated using Weblate (Korean)
simmon [Thu, 15 Apr 2021 10:02:00 +0000 (12:02 +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

3 years agoAssert zero is not passed to log_{device,rule,token}_*_errno() 19317/head
Zbigniew Jędrzejewski-Szmek [Thu, 15 Apr 2021 09:56:22 +0000 (11:56 +0200)] 
Assert zero is not passed to log_{device,rule,token}_*_errno()

3 years agoVoidify log_{device,token,rule}_debug()
Zbigniew Jędrzejewski-Szmek [Thu, 15 Apr 2021 09:22:22 +0000 (11:22 +0200)] 
Voidify log_{device,token,rule}_debug()

See analogous change for log_debug() for discussion.

3 years agocore: drop pointless assert()
Lennart Poettering [Wed, 14 Apr 2021 14:02:35 +0000 (16:02 +0200)] 
core: drop pointless assert()

We checked this literally two lines earlier, no point in checking so
quickly again.

3 years agoupdate TODO
Lennart Poettering [Thu, 15 Apr 2021 09:24:28 +0000 (11:24 +0200)] 
update TODO

3 years agocore/selinux: fix wrong assertion when 0 is passed to log_debug
Zbigniew Jędrzejewski-Szmek [Thu, 15 Apr 2021 09:18:32 +0000 (11:18 +0200)] 
core/selinux: fix wrong assertion when 0 is passed to log_debug

https://github.com/systemd/systemd/pull/19317#issuecomment-820245680

3 years agomeson: output one "item" for DNS-over-TLS 19326/head
Zbigniew Jędrzejewski-Szmek [Thu, 15 Apr 2021 09:04:14 +0000 (11:04 +0200)] 
meson: output one "item" for DNS-over-TLS

3 years agomeson: reorder the "features" list
Zbigniew Jędrzejewski-Szmek [Thu, 15 Apr 2021 08:59:03 +0000 (10:59 +0200)] 
meson: reorder the "features" list

Try to make this more manageable by reording:
- dependencies / inputs
  (with subcategory of compression libraries)
- major components / outputs
- optional features / conditionals that don't fit into the two above categories

The division isn't well defined, because libraries often correspond one-to-one
to feature, but not always.

3 years agomeson: fold static libsystemd and libudev into the generic status line
Zbigniew Jędrzejewski-Szmek [Thu, 15 Apr 2021 07:56:06 +0000 (09:56 +0200)] 
meson: fold static libsystemd and libudev into the generic status line

It's a very specialized feature and we don't need to devote a separate line to it.

3 years agomeson: reindent
Zbigniew Jędrzejewski-Szmek [Thu, 15 Apr 2021 07:45:48 +0000 (09:45 +0200)] 
meson: reindent

3 years agotest: use systemd-run --wait in TEST-44-LOG-NAMESPACE
Luca Boccassi [Wed, 14 Apr 2021 20:26:50 +0000 (21:26 +0100)] 
test: use systemd-run --wait in TEST-44-LOG-NAMESPACE

The test appears to be occasionally failing. It uses systemd-run to echo
'hello world' into a namespaced journal and then uses journalctl to look for it,
but it doesn't wait.
In the failed runs it can't find it, but the automated journal dump shows
the message at the end.

Use --wait to avoid races.

3 years agoudev/cdrom_id: drop unnecessary cleanup and simplify loop
Zbigniew Jędrzejewski-Szmek [Thu, 15 Apr 2021 05:51:58 +0000 (07:51 +0200)] 
udev/cdrom_id: drop unnecessary cleanup and simplify loop

3 years agoudev/cdrom_id: do not pass ioctl return value to log_debug_errno()
Zbigniew Jędrzejewski-Szmek [Thu, 15 Apr 2021 05:49:31 +0000 (07:49 +0200)] 
udev/cdrom_id: do not pass ioctl return value to log_debug_errno()

While at it, let's print the tray status in human readable form.

3 years agolibsystemd-network: fix dhcp option buffer confusion
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 08:55:09 +0000 (04:55 -0400)] 
libsystemd-network: fix dhcp option buffer confusion

We were writing to the wrong buffer with a wrong offset :(
Bug present since the original introduction of the code in
04b28be1a306fd2ba454d3ee333d63df71aa3873.

3 years agomeson.build: typo
Sevan Janiyan [Wed, 14 Apr 2021 23:01:53 +0000 (00:01 +0100)] 
meson.build: typo

3 years agolibsystemd-network: check that errno==0 is not passed to log functions
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 21:30:27 +0000 (23:30 +0200)] 
libsystemd-network: check that errno==0 is not passed to log functions

3 years agolibsystemd-network: use macro for definitions of log_{lldp,dhcp,…}_errno
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 21:12:50 +0000 (23:12 +0200)] 
libsystemd-network: use macro for definitions of log_{lldp,dhcp,…}_errno

No functional change.

3 years agoCheck that errno passed log_{interface,link}_*_errno() is non-zero
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 20:53:49 +0000 (22:53 +0200)] 
Check that errno passed log_{interface,link}_*_errno() is non-zero

3 years agosd-dhcp-client: introduce sd_dhcp_client_is_running()
Yu Watanabe [Sat, 10 Apr 2021 02:10:31 +0000 (11:10 +0900)] 
sd-dhcp-client: introduce sd_dhcp_client_is_running()

3 years agoVoidify log_link_debug
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 20:19:58 +0000 (22:19 +0200)] 
Voidify log_link_debug

See analogous change for log_debug() for discussion.

3 years agoMerge pull request #19315 from yuwata/network-wait-online-address-family-follow-ups
Luca Boccassi [Wed, 14 Apr 2021 20:17:00 +0000 (21:17 +0100)] 
Merge pull request #19315 from yuwata/network-wait-online-address-family-follow-ups

network: several follow-ups for #19069

3 years agojournald: fix %m usage
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 20:06:02 +0000 (22:06 +0200)] 
journald: fix %m usage

3 years agoudev: ignore additional newline in sysfs attribute on verify 19318/head
Yu Watanabe [Wed, 14 Apr 2021 16:44:48 +0000 (01:44 +0900)] 
udev: ignore additional newline in sysfs attribute on verify

Some driver may automatically add additional newline at the end.
E.g., portno attribute for qeth driver.

Fixes #19314.

3 years agofileio: introduce a new flag to make write_string_file() ignore trailing newline
Yu Watanabe [Wed, 14 Apr 2021 16:40:49 +0000 (01:40 +0900)] 
fileio: introduce a new flag to make write_string_file() ignore trailing newline

When writing a sysfs attribute, kernel may automatically append newline
at the end, e.g., 'portno' attribute for qeth driver.

3 years agoDo not try to return 0 from log_debug()
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 15:44:47 +0000 (17:44 +0200)] 
Do not try to return 0 from log_debug()

As @yuwata correctly points out, this became broken when log_debug()
started returning -EIO. I wanted to preserve this pattern, but it turns
out it is not very widely used, and preserving it would make the whole
thing, already quite complicated, even more complex.

log_debug() is made like log_info() and friends, and returns void.

3 years agoshared/module-util: fix errno value passed to log function
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 15:10:36 +0000 (17:10 +0200)] 
shared/module-util: fix errno value passed to log function

If r == 0, no harm done. But if r > 0, this would be interpreted as an
errno value, wrongly.

3 years agobasic/log: assert that 0 is not passed as errno, except in test code
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 13:55:16 +0000 (15:55 +0200)] 
basic/log: assert that 0 is not passed as errno, except in test code

Let's assert if we ever happen to pass 0 to one of the log functions.
With the preceding commit to return -EIO from log_*(), passing 0 wouldn't
affect the return value any more, but it is still most likely an error.
The unit test code is an exception: we fairly often pass the return value
to print it, before checking what it is. So let's assert that we're not
passing 0 in non-test code. As with the previous check for %m, this is only
done in developer mode. We are depending on external code setting
errno correctly for us, which might not always be true, and which we can't
test, so we shouldn't assert, but just handle this gracefully.

I did a bunch of greps to try to figure out if there are any places where
we're passing 0 on purpose, and couldn't find any.
The one place that failed in tests is adjusted.

About "zerook" in the name: I wanted the suffix to be unambiguous. It's a
single "word" because each of the words in log_full_errno is also meaningful,
and having one term use two words would be confusing.

3 years agoMerge pull request #19302 from bluca/uninit
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 14:25:35 +0000 (16:25 +0200)] 
Merge pull request #19302 from bluca/uninit

tree-wide: avoid uninitialized warning on _cleanup_ variables

3 years agobasic/log: assert that %m is not used when error is not set
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 11:39:14 +0000 (13:39 +0200)] 
basic/log: assert that %m is not used when error is not set

This is only done in developer mode. It is a pretty rare occurence that we
make this kind of mistake. And even if it happens, the result is just a misleading
error message. So let's only do the check in non-release builds.

3 years agobasic/log: force log_*_errno() to return negative
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 10:05:47 +0000 (06:05 -0400)] 
basic/log: force log_*_errno() to return negative

This silences some warnigns where gcc thinks that some variables are
unitialized. One particular case:

../src/journal/journald-server.c: In function 'ache_space_refresh':
../src/journal/journald-server.c:136:28: error: 'vfs_avail' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  136 |         uint64_t vfs_used, vfs_avail, avail;
      |                            ^~~~~~~~~
../src/journal/journald-server.c:136:18: error: 'vfs_used' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  136 |         uint64_t vfs_used, vfs_avail, avail;
      |                  ^~~~~~~~
cc1: all warnings being treated as errors

which is caused by

   d = opendir(path);
   if (!d)
           return log_full_errno(errno == ENOENT ? LOG_DEBUG : LOG_ERR,
                                 errno, "Failed to open %s: %m", path);
   if (fstatvfs(dirfd(d), &ss) < 0)
           return log_error_errno(errno, "Failed to fstatvfs(%s): %m", path);

For some reason on aarch64 gcc thinks we might return non-negative here. In
principle errno must be set in both cases, but it's hard to say for certain.
So let's make sure that our code flow is correct, even if somebody forgot to
set the global variable somewhere.

3 years agopartition, random-seed, logind: fix log messages with %m
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 10:14:01 +0000 (06:14 -0400)] 
partition, random-seed, logind: fix log messages with %m

We would print "...: Success", which is not too terrible, but not pretty
either.

3 years agosd-device: improve log message and tweak style
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 09:54:17 +0000 (05:54 -0400)] 
sd-device: improve log message and tweak style

We shouldn't say the attribute is missing right after ruling out ENOENT.

3 years agolibsystemd-network: fix dhcp option buffer confusion
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 08:55:09 +0000 (04:55 -0400)] 
libsystemd-network: fix dhcp option buffer confusion

We were writing to the wrong buffer with a wrong offset :(
Bug present since the original introduction of the code in
04b28be1a306fd2ba454d3ee333d63df71aa3873.