]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
2 years agoshared/firewall-util: promote failure to init ipv6 NAT to error 24570/head
Topi Miettinen [Wed, 9 Aug 2023 19:53:29 +0000 (22:53 +0300)] 
shared/firewall-util: promote failure to init ipv6 NAT to error

2 years agotest: testing for networkd NFTSet feature
Topi Miettinen [Wed, 9 Aug 2023 20:16:24 +0000 (23:16 +0300)] 
test: testing for networkd NFTSet feature

2 years agonetwork: firewall integration with NFT sets
Topi Miettinen [Wed, 9 Aug 2023 20:07:21 +0000 (23:07 +0300)] 
network: firewall integration with NFT sets

New directive `NFTSet=` provides a method for integrating network configuration
into firewall rules with NFT sets. The benefit of using this setting is that
static network configuration or dynamically obtained network addresses can be
used in firewall rules with the indirection of NFT set types. For example,
access could be granted for hosts in the local subnetwork only. Firewall rules
using IP address of an interface are also instantly updated when the network
configuration changes, for example via DHCP.

This option expects a whitespace separated list of NFT set definitions. Each
definition consists of a colon-separated tuple of source type (one of
"address", "prefix", or "ifindex"), NFT address family (one of "arp", "bridge",
"inet", "ip", "ip6", or "netdev"), table name and set name. The names of tables
and sets must conform to lexical restrictions of NFT table names. The type of
the element used in the NFT filter must match the type implied by the
directive ("address", "prefix" or "ifindex") and address type (IPv4 or IPv6)
as shown type implied by the directive ("address", "prefix" or "ifindex") and
address type (IPv4 or IPv6) must also match the set definition.

When an interface is configured with IP addresses, the addresses, subnetwork
masks or interface index will be appended to the NFT sets. The information will
be removed when the interface is deconfigured. systemd-networkd only inserts
elements to (or removes from) the sets, so the related NFT rules, tables and
sets must be prepared elsewhere in advance. Failures to manage the sets will be
ignored.

/etc/systemd/network/eth.network
```
[DHCPv4]
...
NFTSet=prefix:netdev:filter:eth_ipv4_prefix
```

Example NFT rules:
```
table netdev filter {
        set eth_ipv4_prefix {
                type ipv4_addr
                flags interval
        }
        chain eth_ingress {
                type filter hook ingress device "eth0" priority filter; policy drop;
                ip saddr != @eth_ipv4_prefix drop
                accept
        }
}
```
```
$ sudo nft list set netdev filter eth_ipv4_prefix
table netdev filter {
        set eth_ipv4_prefix {
                type ipv4_addr
                flags interval
                elements = { 10.0.0.0/24 }
        }
}
```

2 years agoshared/firewall-util: make NFT table init optional
Topi Miettinen [Sat, 10 Sep 2022 12:38:43 +0000 (15:38 +0300)] 
shared/firewall-util: make NFT table init optional

2 years agoshared/firewall-util: parametrize table name
Topi Miettinen [Sat, 3 Sep 2022 08:59:03 +0000 (11:59 +0300)] 
shared/firewall-util: parametrize table name

Parametrize table name for nft_{add,del}_element.

2 years agoshared/firewall-util: parametrize table and set names
Topi Miettinen [Sat, 3 Sep 2022 09:14:24 +0000 (12:14 +0300)] 
shared/firewall-util: parametrize table and set names

Parametrize table and set names for fw_nftables_add_masquerade_internal, rename
to nft_set_element_op_iprange to reflect more general usage. Export and use
nfproto_is_valid().

Remove also unused and obsolete NFPROTO_DECNET.

2 years agoman/systemd: avoid duplicate variable name
Mike Yuan [Sat, 5 Aug 2023 04:35:17 +0000 (12:35 +0800)] 
man/systemd: avoid duplicate variable name

2 years agotest: ignore missing libudev when creating the test image
Frantisek Sumsal [Fri, 4 Aug 2023 16:02:01 +0000 (18:02 +0200)] 
test: ignore missing libudev when creating the test image

Same scenario as with libsystemd - ldd might use unprefixed RPATH, and
we install our own stuff into the image unconditionally anyway.

Also, bail out early if we hit a missing DSO with a possibly helpful
message.

2 years agotpm2: use ELEMENTSOF() instead of sizeof() for TPML_PCR_SELECTION pcrSelections field
Dan Streetman [Fri, 4 Aug 2023 20:12:05 +0000 (16:12 -0400)] 
tpm2: use ELEMENTSOF() instead of sizeof() for TPML_PCR_SELECTION pcrSelections field

The count field indicates the number of elements in the pcrSelections field,
and the size of each elements is greater than 1 byte, so using sizeof() is
incorrect when verifying the count field is valid; instead ELEMENTSOF() should
be used.

Caught by coverity check: https://github.com/systemd/systemd/pull/26331#pullrequestreview-1556629586

2 years agoMerge pull request #28681 from yuwata/udev-vs-tmpfiles
Yu Watanabe [Sat, 5 Aug 2023 04:30:49 +0000 (13:30 +0900)] 
Merge pull request #28681 from yuwata/udev-vs-tmpfiles

Udev vs tmpfiles

2 years agoMerge pull request #28398 from ddstreet/tpm2_specify_pcr_value
Luca Boccassi [Fri, 4 Aug 2023 20:04:03 +0000 (21:04 +0100)] 
Merge pull request #28398 from ddstreet/tpm2_specify_pcr_value

Tpm2 specify pcr value

2 years agotest: shorten timeout for 'udevadm monitor' 28681/head
Yu Watanabe [Fri, 4 Aug 2023 20:03:16 +0000 (05:03 +0900)] 
test: shorten timeout for 'udevadm monitor'

The command should never finish, it is not necessary to wait so long.

2 years agotest: add short test for device node permission
Yu Watanabe [Fri, 4 Aug 2023 19:52:16 +0000 (04:52 +0900)] 
test: add short test for device node permission

2 years agounit: make udev rules take precesence over tmpfiles
Yu Watanabe [Fri, 4 Aug 2023 19:37:19 +0000 (04:37 +0900)] 
unit: make udev rules take precesence over tmpfiles

Without this change, there are no ordering between udevd and tmpfiles,
and if tmpfiles is invoked later it may discard the permission set by
udevd.

Fixes an issue introduced by b42482af904ae0b94a6e4501ec595448f0ba1c06.

Fixes #28588 and #28653.

2 years agoRevert "tmpfiles.d: adjust /dev/vfio/vfio access mode"
Yu Watanabe [Fri, 4 Aug 2023 19:32:01 +0000 (04:32 +0900)] 
Revert "tmpfiles.d: adjust /dev/vfio/vfio access mode"

The issue needs to be fixed by setting proper ordering between the
tmpfiles and udevd.

See issue #28653, especially
https://github.com/systemd/systemd/issues/28653#issuecomment-1665181625.

This reverts commit a3d610998ad3b4c88224fe89a048a84dbceb652b.

2 years agojournalctl: fix loggging invocation
Zbigniew Jędrzejewski-Szmek [Fri, 4 Aug 2023 17:08:43 +0000 (18:08 +0100)] 
journalctl: fix loggging invocation

Fixup for f882a986c271c3de1c622df0f1586946b4a09fef.

2 years agoMerge pull request #28679 from keszybz/two-new-news-tweaks
Luca Boccassi [Fri, 4 Aug 2023 18:24:46 +0000 (19:24 +0100)] 
Merge pull request #28679 from keszybz/two-new-news-tweaks

Two news tweaks

2 years agoMerge pull request #28669 from DaanDeMeyer/mkosi-fix
Daan De Meyer [Fri, 4 Aug 2023 18:16:55 +0000 (20:16 +0200)] 
Merge pull request #28669 from DaanDeMeyer/mkosi-fix

mkosi: Make sure our systemd build always overrides the distros

2 years agotmpfiles: Consider ENOPKG as information not available
Daan De Meyer [Fri, 4 Aug 2023 14:12:35 +0000 (16:12 +0200)] 
tmpfiles: Consider ENOPKG as information not available

We already handle the case where /etc/machine-id is empty. Let's make
sure we also handle the case where /etc/machine-id is "uninitialized".

2 years agoportablectl: fix regression when using --force without extension parameters
Luca Boccassi [Fri, 4 Aug 2023 12:34:00 +0000 (13:34 +0100)] 
portablectl: fix regression when using --force without extension parameters

c18f4eb9e96836a made it possible to use --force with various verbs, by
going through the newer D-Bus methods. Except it didn't, as it regressed
during PR review refactorings, and nobody noticed because there were no
tests for it. Fix it, and add tests.

Follow-up for c18f4eb9e96836a6a8285ec42fd8a34c8909f6d9

2 years agoMerge pull request #28673 from YHNdnzj/hibernate-resume-escape-node
Luca Boccassi [Fri, 4 Aug 2023 15:46:56 +0000 (16:46 +0100)] 
Merge pull request #28673 from YHNdnzj/hibernate-resume-escape-node

hibernate-resume-generator: escape device path passed to hibernate-resume

2 years agotpm2: update TEST-70-TPM2 to test passing PCR value to systemd-cryptenroll 28398/head
Dan Streetman [Thu, 13 Jul 2023 20:02:37 +0000 (16:02 -0400)] 
tpm2: update TEST-70-TPM2 to test passing PCR value to systemd-cryptenroll

Add tests to use expected, not current, PCR values during sealing.

2 years agoman: update systemd-cryptenroll man page with details on --tpm2-pcrs format change
Dan Streetman [Fri, 14 Jul 2023 22:36:20 +0000 (18:36 -0400)] 
man: update systemd-cryptenroll man page with details on --tpm2-pcrs format change

The previous commit extended the accepted format of --tpm2-pcrs to allow
specifying the hash algorithm (i.e. PCR bank) and hash digest value, this
updates the man page with those changes.

2 years agotpm2: move policy calculation out of tpm2_seal()
Dan Streetman [Wed, 12 Jul 2023 21:35:54 +0000 (17:35 -0400)] 
tpm2: move policy calculation out of tpm2_seal()

Move the calculation of the sealed object policy hash out of the tpm2_seal()
function. Instead, callers of tpm2_seal() can directly call
tpm2_calculate_sealing_policy() and then provide the policy hash to
tpm2_seal().

2 years agotpm2: add functions to convert TPM2B_PUBLIC to/from openssl pkey or PEM
Dan Streetman [Tue, 27 Jun 2023 19:03:08 +0000 (15:03 -0400)] 
tpm2: add functions to convert TPM2B_PUBLIC to/from openssl pkey or PEM

Add functions to convert a PEM or pkey to TPM2B_PUBLIC, and functions to
convert TPM2B_PUBLIC to pkey or fingerprint.

Supports both RSA and ECC keys.

Add ECC support to some test-tpm2 tests, and tests to cover the newly added functions.

2 years agoopenssl: add test-openssl
Dan Streetman [Thu, 6 Jul 2023 15:21:29 +0000 (11:21 -0400)] 
openssl: add test-openssl

Add openssl unit tests.

2 years agotest: add DEFINE_HEX_PTR() helper function
Dan Streetman [Thu, 6 Jul 2023 15:21:29 +0000 (11:21 -0400)] 
test: add DEFINE_HEX_PTR() helper function

Use function in test-tpm2 to convert hex strings to void* and len vars.

2 years agoopenssl: add ecc_pkey_new(), ecc_pkey_from_curve_x_y(), ecc_pkey_to_curve_x_y()
Dan Streetman [Tue, 4 Jul 2023 22:52:59 +0000 (18:52 -0400)] 
openssl: add ecc_pkey_new(), ecc_pkey_from_curve_x_y(), ecc_pkey_to_curve_x_y()

Add function to create openssl pkey from ECC curve and point, and function to
get curve id and x/y point from existing ECC pkey. Also add function to create
new ECC key for specified curve.

Also add DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_MACRO() to handle case when func() is
a macro, not a function symbol; specifically in this case it is used for
OPENSSL_free() which is a macro.

2 years agoopenssl: add rsa_pkey_new(), rsa_pkey_from_n_e(), rsa_pkey_to_n_e()
Dan Streetman [Tue, 27 Jun 2023 18:53:46 +0000 (14:53 -0400)] 
openssl: add rsa_pkey_new(), rsa_pkey_from_n_e(), rsa_pkey_to_n_e()

Add function to generate an EVP_PKEY for a specific 'n' and 'e', and function
to get 'n' and 'e' values from existing RSA public key. Also add a function to
generate a new RSA key with a specified number of bits.

2 years agoopenssl: add openssl_pkey_from_pem()
Dan Streetman [Wed, 19 Jul 2023 02:48:34 +0000 (22:48 -0400)] 
openssl: add openssl_pkey_from_pem()

Add function to create EVP_PKEY from PEM buffer.

2 years agotpm2: add tpm2_pcr_read_missing_values()
Dan Streetman [Tue, 18 Jul 2023 16:56:25 +0000 (12:56 -0400)] 
tpm2: add tpm2_pcr_read_missing_values()

Add function to read all unset values in an array of Tpm2PCRValue entries.

Also publish tpm2_pcr_read() in header.

2 years agotpm2: add TPM2B_*_MAKE(), TPM2B_*_CHECK_SIZE() macros
Dan Streetman [Wed, 19 Jul 2023 11:49:07 +0000 (07:49 -0400)] 
tpm2: add TPM2B_*_MAKE(), TPM2B_*_CHECK_SIZE() macros

The tpm2-tss library has many structs with only an array and size; these macros
make it easy to assign to these structs.

2 years agotpm2: change tpm2_parse_pcr_argument() parameters to parse to Tpm2PCRValue array
Dan Streetman [Thu, 13 Jul 2023 02:36:37 +0000 (22:36 -0400)] 
tpm2: change tpm2_parse_pcr_argument() parameters to parse to Tpm2PCRValue array

In order to allow users to specify expected PCR values, change the
tpm2_parse_pcr_argument() to parse the text argument into an array of
Tpm2PCRValue objects, which provide not only the selected PCR indexes, but also
(optionally) the hash algorithm and hash value for each PCR index.

2 years agotpm2: change tpm2_calculate_policy_pcr(), tpm2_calculate_sealing_policy() to use...
Dan Streetman [Thu, 13 Jul 2023 02:14:18 +0000 (22:14 -0400)] 
tpm2: change tpm2_calculate_policy_pcr(), tpm2_calculate_sealing_policy() to use Tpm2PCRValue array

An array of Tpm2PCRValue objects effectively replaces a TPML_PCR_SELECTION
object combined with an array of (properly ordered) TPM2B_DIGEST objects.

Also update tpm2_calculate_sealing_policy() pin parameter to boolean use_pin,
since the function does not need to know the pin value, only if a pin is being
used.

2 years agotpm2: declare tpm2_log_debug_*() functions in tpm2_util.h
Dan Streetman [Fri, 14 Jul 2023 11:23:55 +0000 (07:23 -0400)] 
tpm2: declare tpm2_log_debug_*() functions in tpm2_util.h

Allow other code to use the log debug functions; e.g. they are useful in test
code.

2 years agotpm2: move declared functions in header lower down
Dan Streetman [Fri, 14 Jul 2023 15:38:11 +0000 (11:38 -0400)] 
tpm2: move declared functions in header lower down

Move some function declarations lower down, below the Tpm2Context and
Tpm2Handle typedefs; later commits will reference the typedefs in some of the
functions, so the typedefs need to come first in the header.

This only moves the declarations, none of the declarations are modified.

2 years agotpm2: add Tpm2PCRValue struct and associated functions
Dan Streetman [Wed, 12 Jul 2023 01:23:36 +0000 (21:23 -0400)] 
tpm2: add Tpm2PCRValue struct and associated functions

Add a new struct that can represent a PCR index, hash, and value all
together. This replaces code (e.g. the tpm2_pcr_read() parameters) that
required using both a TPML_PCR_SELECTION as well as array of TPM2B_DIGEST
entries, which was difficult to correlate the selection hash/index to each
digest.

2 years agotpm2: add more helper functions for managing TPML_PCR_SELECTION and TPMS_PCR_SELECTION
Dan Streetman [Wed, 19 Jul 2023 12:50:06 +0000 (08:50 -0400)] 
tpm2: add more helper functions for managing TPML_PCR_SELECTION and TPMS_PCR_SELECTION

Add more functions to help manage these objects.

2 years agotpm2: change tpm2_tpm*_pcr_selection_to_mask() to return mask
Dan Streetman [Tue, 1 Aug 2023 16:55:17 +0000 (12:55 -0400)] 
tpm2: change tpm2_tpm*_pcr_selection_to_mask() to return mask

This simplifies use of the functions, as well as avoiding the use of -ENOENT
from tpm2_tpml_pcr_selection_to_mask().

2 years agotpm2: add tpm2_hash_alg_to_size()
Dan Streetman [Tue, 11 Jul 2023 15:11:59 +0000 (11:11 -0400)] 
tpm2: add tpm2_hash_alg_to_size()

Add function to get the hash size for a hash algorithm

2 years agotpm2: add debug logging to functions converting hash or asym algs to/from strings...
Dan Streetman [Tue, 1 Aug 2023 18:09:04 +0000 (14:09 -0400)] 
tpm2: add debug logging to functions converting hash or asym algs to/from strings or ids

Add debug log message if the algorithm name or id is not known.

2 years agomkosi: Use SuccessActionExitStatus= in mkosi-check-and-shutdown.service 28669/head
Daan De Meyer [Fri, 4 Aug 2023 14:27:11 +0000 (16:27 +0200)] 
mkosi: Use SuccessActionExitStatus= in mkosi-check-and-shutdown.service

2 years agomkosi: Make sure our systemd build always overrides the distros
Daan De Meyer [Fri, 4 Aug 2023 08:40:30 +0000 (10:40 +0200)] 
mkosi: Make sure our systemd build always overrides the distros

Currently, we install the systemd install tree in the base image and
then build the initrd and final images from the base image. This means
if that any systemd package is pulled in during the initrd or final
image builds, it will override our version.

To fix this, we stop installing our build of systemd in the base image,
and store it in the output directory instead. That allows us to refer to
it using ExtraTrees= in the final and initrd image builds to install it
after all the distro packages have been installed, ensuring our version
always takes priority.

2 years agomkosi: Update to latest
Daan De Meyer [Fri, 4 Aug 2023 14:48:58 +0000 (16:48 +0200)] 
mkosi: Update to latest

2 years agotest-user-util: Drop tty check in gid_to_name() test
Daan De Meyer [Fri, 4 Aug 2023 13:23:16 +0000 (15:23 +0200)] 
test-user-util: Drop tty check in gid_to_name() test

The tty user is not guaranteed to exist, so let's remove the dependency
from the test.

2 years agoNEWS: adjust grammar 28679/head
Zbigniew Jędrzejewski-Szmek [Wed, 2 Aug 2023 14:01:50 +0000 (15:01 +0100)] 
NEWS: adjust grammar

2 years agoNEWS: expand list of new Startup* settings
Zbigniew Jędrzejewski-Szmek [Wed, 2 Aug 2023 14:01:40 +0000 (15:01 +0100)] 
NEWS: expand list of new Startup* settings

This way users can grep/search the NEWS file for when a given setting was
added.

2 years agotimesyncd: emit signal when timesyncd NTPServers property changes
Kingbom Dou [Wed, 7 Jun 2023 06:57:21 +0000 (14:57 +0800)] 
timesyncd: emit signal when timesyncd NTPServers property changes

Emit signal when timesyncd LinkNTPServers property changes

Tested:
```
 Monitoring bus message stream.
```
```
> Type=signal  Endian=l  Flags=1  Version=1 Cookie=21  Timestamp="Fri 2023-05-19 07:50:47.427051 UT"
  Sender=:1.623  Path=/org/freedesktop/timesync1  Interface=org.freedesktop.DBus.Properties  Memberd
  UniqueName=:1.623
  MESSAGE "sa{sv}as" {
          STRING "org.freedesktop.timesync1.Manager";
          ARRAY "{sv}" {
                  DICT_ENTRY "sv" {
                          STRING "LinkNTPServers";
                          VARIANT "as" {
                                  ARRAY "s" {
                                          STRING "10.8.8.18";
                                          STRING "10.8.8.19";
                                  };
                          };
                  };
          };
          ARRAY "s" {
          };
  };
```
```
> Type=signal  Endian=l  Flags=1  Version=1 Cookie=28  Timestamp="Fri 2023-05-19 07:53:22.609416 UT"
  Sender=:1.623  Path=/org/freedesktop/timesync1  Interface=org.freedesktop.DBus.Properties  Memberd
  UniqueName=:1.623
  MESSAGE "sa{sv}as" {
          STRING "org.freedesktop.timesync1.Manager";
          ARRAY "{sv}" {
                  DICT_ENTRY "sv" {
                          STRING "LinkNTPServers";
                          VARIANT "as" {
                                  ARRAY "s" {
                                          STRING "10.8.8.18";
                                          STRING "10.8.8.20";
                                  };
                          };
                  };
          };
          ARRAY "s" {
          };
  };
```
```
> Type=signal  Endian=l  Flags=1  Version=1 Cookie=6  Timestamp="Fri 2023-05-19 08:12:26.964666 UTC"
  Sender=:1.627  Path=/org/freedesktop/timesync1  Interface=org.freedesktop.DBus.Properties  Memberd
  UniqueName=:1.627
  MESSAGE "sa{sv}as" {
          STRING "org.freedesktop.timesync1.Manager";
          ARRAY "{sv}" {
                  DICT_ENTRY "sv" {
                          STRING "LinkNTPServers";
                          VARIANT "as" {
                                  ARRAY "s" {
                                          STRING "10.8.8.18";
                                  };
                          };
                  };
          };
          ARRAY "s" {
          };
  };
```
```
> Type=signal  Endian=l  Flags=1  Version=1 Cookie=162  Timestamp="Mon 2023-07-10 09:06:18.865654 UTC"
  Sender=:1.1  Path=/org/freedesktop/timesync1  Interface=org.freedesktop.DBus.Properties  Member=PropertiesChanged
  UniqueName=:1.1
  MESSAGE "sa{sv}as" {
          STRING "org.freedesktop.timesync1.Manager";
          ARRAY "{sv}" {
                  DICT_ENTRY "sv" {
                          STRING "RuntimeNTPServers";
                          VARIANT "as" {
                                  ARRAY "s" {
                                          STRING "10.2.16.10";
                                  };
                          };
                  };
          };
          ARRAY "s" {
          };
  };
```

Signed-off-by: Kingbom Dou <doujinbao@bytedance.com>
2 years agohibernate-resume-generator: escape device path passed to hibernate-resume 28673/head
Mike Yuan [Fri, 4 Aug 2023 12:41:46 +0000 (20:41 +0800)] 
hibernate-resume-generator: escape device path passed to hibernate-resume

Follow-up for #27330

Fixes #28668

2 years agoman/systemd.unit: DefaultTimeoutStartSec= -> DefaultDeviceTimeoutSec=
Mike Yuan [Fri, 4 Aug 2023 12:49:15 +0000 (20:49 +0800)] 
man/systemd.unit: DefaultTimeoutStartSec= -> DefaultDeviceTimeoutSec=
for device unit job timeouts

Follow-up for #24044

2 years agoman/systemd-fsck@.service: clarify passno and noauto combination in /etc/fstab
Antonio Alvarez Feijoo [Fri, 4 Aug 2023 09:16:02 +0000 (11:16 +0200)] 
man/systemd-fsck@.service: clarify passno and noauto combination in /etc/fstab

Fixes #28657

2 years agodebug-generator: Use generator_add_symlink()
Daan De Meyer [Fri, 4 Aug 2023 06:25:53 +0000 (08:25 +0200)] 
debug-generator: Use generator_add_symlink()

2 years agotpm2: use CreatePrimary() to create primary keys instead of Create()
Dan Streetman [Thu, 3 Aug 2023 18:44:57 +0000 (14:44 -0400)] 
tpm2: use CreatePrimary() to create primary keys instead of Create()

Older versions used CreatePrimary() to create a transient primary key to use
when creating a sealed data object. That was changed in v254 to use Create()
instead, which should result in the same transient key, but it seems some
hardware TPMs refuse to allow using Create() to generate primary keys.

This reverts to using CreatePrimary() to create primary key.

Fixes: #28654
2 years agoMerge pull request #28648 from yuwata/shutdown-skip-recursive-mount-run
Mike Yuan [Fri, 4 Aug 2023 04:45:32 +0000 (12:45 +0800)] 
Merge pull request #28648 from yuwata/shutdown-skip-recursive-mount-run

shutdown: several fixlets

2 years agotree-wide: Fix -Wmaybe-uninitialized compilation warnings
Daan De Meyer [Thu, 3 Aug 2023 20:38:10 +0000 (22:38 +0200)] 
tree-wide: Fix -Wmaybe-uninitialized compilation warnings

2 years agoAdd tool to display emergency log message full-screen on boot failure.
OMOJOLA JOSHUA [Mon, 19 Jun 2023 14:16:23 +0000 (15:16 +0100)] 
Add tool to display emergency log message full-screen on boot failure.

2 years agoswitch-root: reopen target directory after it is mounted 28648/head
Yu Watanabe [Thu, 3 Aug 2023 19:03:29 +0000 (04:03 +0900)] 
switch-root: reopen target directory after it is mounted

Fixes a bug introduced by f717d7a40a696b351415976f22a4f498c401de41.

2 years agoshutdown: do not umount recursively before MS_MOVE
Yu Watanabe [Wed, 2 Aug 2023 19:19:14 +0000 (04:19 +0900)] 
shutdown: do not umount recursively before MS_MOVE

Unmounting filesystem will be done gracefully by shutdown itself.

Follow-up for f2c1d491a539035d6cc1fa53a7cef0cbc8d52902 and
268d1244e87a35ff8dff56c92ef375ebf69d462e.

2 years agoshutdown: disable recursive mount of /run/ on switching root
Yu Watanabe [Wed, 2 Aug 2023 17:50:09 +0000 (02:50 +0900)] 
shutdown: disable recursive mount of /run/ on switching root

Mounting /run/ recursively may be harmless, but not necessary on
shutdown as the new root is /run/initramfs.

Follow-up for b12d41a8bb7c99f7d7a1c7821a886d98b42d9ce0.

2 years agopo: Translated using Weblate (Turkish)
Oğuz Ersen [Thu, 3 Aug 2023 17:21:04 +0000 (19:21 +0200)] 
po: Translated using Weblate (Turkish)

Currently translated at 88.1% (200 of 227 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/tr/
Translation: systemd/main

2 years agovconsole: support KEYMAP=kernel for preserving kernel keymap
Mike Yuan [Thu, 3 Aug 2023 13:42:00 +0000 (21:42 +0800)] 
vconsole: support KEYMAP=kernel for preserving kernel keymap

Follow-up for #26089 and #28505

Currently, if default-keymap is not empty, there's no way
to ask vconsole-setup to retain the kernel keymap. Let's
accept a special value "kernel" for that purpose.

Addresses the problem mentioned in https://github.com/systemd/systemd/pull/28505#issuecomment-1663681665

2 years agohwdb: Mute SW rfkill keys on MSI Wind U100
Maxim Mikityanskiy [Thu, 3 Aug 2023 14:40:15 +0000 (17:40 +0300)] 
hwdb: Mute SW rfkill keys on MSI Wind U100

Kernel patch [1] fixed bugs in rfkill handling on MSI Wind U100. Now
that the HW rfkill reports the correct state, and the SW rfkill is
controllable from userspace, it's necessary to mute KEY_WLAN and
KEY_BLUETOOTH generated on HW rfkill state changes. Otherwise, the
userspace will react to these keys and toggle the SW rfkill as well,
which is not desired, because the user may end up with non-functional
radios if HW and SW rfkills are out of sync.

Blocking these keycodes doesn't impair user experience, because the
desktop environment can still react to HW rfkill events and act
accordingly (for example, show notifications).

While at it, use "unknown" instead of "reserved" to mute keys, to avoid
the "atkbd serio0: Unknown key pressed" flood in dmesg.

[1]: https://lore.kernel.org/all/20230721145423.161057-1-maxtram95@gmail.com/

2 years agoMerge pull request #28628 from yuwata/meson-use-template-part6
Yu Watanabe [Thu, 3 Aug 2023 17:16:07 +0000 (02:16 +0900)] 
Merge pull request #28628 from yuwata/meson-use-template-part6

meson: use template to declare executables (part 6)

2 years agomkosi: Update to latest
Daan De Meyer [Thu, 3 Aug 2023 13:33:40 +0000 (15:33 +0200)] 
mkosi: Update to latest

We modify all our scripts to execute in the image instead of on the
hosts. In the future we can adapt them to run on the host.

2 years agoMerge pull request #28632 from DaanDeMeyer/repart-synthesize
Daan De Meyer [Thu, 3 Aug 2023 11:49:31 +0000 (13:49 +0200)] 
Merge pull request #28632 from DaanDeMeyer/repart-synthesize

repart: Add --copy-from option

2 years agomeson: set suite for all tests, and adjust suite for some tests 28628/head
Yu Watanabe [Mon, 26 Jun 2023 16:28:32 +0000 (01:28 +0900)] 
meson: set suite for all tests, and adjust suite for some tests

2 years agomeson: also merge declarations of fuzzers with other executables
Yu Watanabe [Mon, 26 Jun 2023 16:07:25 +0000 (01:07 +0900)] 
meson: also merge declarations of fuzzers with other executables

2 years agomeson: merge declarations of normal and test executables
Yu Watanabe [Sun, 25 Jun 2023 23:52:26 +0000 (08:52 +0900)] 
meson: merge declarations of normal and test executables

2 years agotest: rename udev-rule-runner -> test-udev-rule-runner
Yu Watanabe [Thu, 3 Aug 2023 10:57:41 +0000 (19:57 +0900)] 
test: rename udev-rule-runner -> test-udev-rule-runner

This partially revert 0454cf05d38d289474ca65c1917d414b2958f6b5.
The executable actually does not work with itself, but needs to be
combined with test-udev.py. But, even so, the executable is for testing.

In the next commit, test and normal executables are declared in the same
way, and naming of the executable becomes essential to classify them.
Let's rename the executable and prefix with 'test-'.

2 years agomeson: use template to declare udev plugins
Yu Watanabe [Sun, 25 Jun 2023 20:01:03 +0000 (05:01 +0900)] 
meson: use template to declare udev plugins

2 years agomeson: introduce HAVE_DMI flag
Yu Watanabe [Sat, 29 Jul 2023 21:32:53 +0000 (06:32 +0900)] 
meson: introduce HAVE_DMI flag

The condition is used at several places. Let's introduce a simple flag
for that.

2 years agotest: fix test executable name
Yu Watanabe [Thu, 3 Aug 2023 11:36:51 +0000 (20:36 +0900)] 
test: fix test executable name

Follow-up for 82a1d6d09625b656c991f25e82b5651c74a55945.

2 years agomeson: move several test declarations
Yu Watanabe [Sun, 25 Jun 2023 18:46:05 +0000 (03:46 +0900)] 
meson: move several test declarations

One of the notable change is that previously test-sysusers.sh was installed
unconditionally, but now it is installed only when sysusers is enabled.

Another change is that test-sysv-generator is now re-introduced which
was mistakenly dropped by 6c713961ab0831fe744a2df9c4e9e258b6ba3105.

2 years agorepart: Add --copy-from option 28632/head
Daan De Meyer [Tue, 1 Aug 2023 19:38:39 +0000 (21:38 +0200)] 
repart: Add --copy-from option

--copy-from synthesizes partition definitions from the given image
which are then applied to the repart algorithm. In its most basic
form, this allows copying an image to another device but it can
also be combined with --definitions to copy + add partitions in the
same call to repart.

2 years agoMerge pull request #28651 from kraj/kraj/include-fixes
Luca Boccassi [Wed, 2 Aug 2023 23:12:05 +0000 (00:12 +0100)] 
Merge pull request #28651 from kraj/kraj/include-fixes

Add missing system includes for `LOCK_EX` and `struct timex`

2 years agoinclude missing sys/file.h for LOCK_EX 28651/head
Khem Raj [Wed, 2 Aug 2023 19:18:24 +0000 (12:18 -0700)] 
include missing sys/file.h for LOCK_EX

2 years agotest/test-sizeof: Include sys/timex.h for struct timex
Khem Raj [Wed, 2 Aug 2023 19:14:56 +0000 (12:14 -0700)] 
test/test-sizeof: Include sys/timex.h for struct timex

Fixes

../git/src/test/test-sizeof.c:64:41: error: incomplete definition of type 'struct timex'
   64 |         check(typeof(((struct timex *)0)->freq), SIZEOF_TIMEX_MEMBER);
      |                      ~~~~~~~~~~~~~~~~~~~^

2 years agoMerge pull request #28640 from medhefgo/boot-count
Yu Watanabe [Wed, 2 Aug 2023 21:45:09 +0000 (06:45 +0900)] 
Merge pull request #28640 from medhefgo/boot-count

bless-boot: Actually return successfully

2 years agojournalctl: do not add io event source for stdout if it is a file
Yu Watanabe [Wed, 2 Aug 2023 15:53:48 +0000 (00:53 +0900)] 
journalctl: do not add io event source for stdout if it is a file

Fixes a bug introduced by 713342d9b09d717e9942ed08bd620c9159a98fb8.

Fixes #28636.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2228089.

2 years agovarlink: allocate the buffer for varlink FDs on the heap
Frantisek Sumsal [Wed, 2 Aug 2023 12:55:50 +0000 (14:55 +0200)] 
varlink: allocate the buffer for varlink FDs on the heap

Since it's ~16K, which might cause issues in environments with limited
stack space.

Resolves: #28635

2 years agoudev: decrease devlink priority for encrypted partitions
Yu Watanabe [Wed, 2 Aug 2023 14:33:14 +0000 (23:33 +0900)] 
udev: decrease devlink priority for encrypted partitions

Decrease devlink priority for encrypted partitions, and make the priority for
decrypted DM devices relatively higher. This is for the case that an encrypted
partition and its decrypted DM device have the same label.

2 years agoMerge pull request #28646 from yuwata/network-generator-ip-dhcp
Yu Watanabe [Wed, 2 Aug 2023 20:48:58 +0000 (05:48 +0900)] 
Merge pull request #28646 from yuwata/network-generator-ip-dhcp

network-generator: make ip=dhcp works with container manager

2 years agoinclude sys/file.h for LOCK_EX
Khem Raj [Wed, 2 Aug 2023 17:33:48 +0000 (10:33 -0700)] 
include sys/file.h for LOCK_EX

Fixes
| ../git/src/basic/user-util.c:708:30: error: use of undeclared identifier 'LOCK_EX'; did you mean 'LOCK_BSD'?
|   708 |         r = unposix_lock(fd, LOCK_EX);
|       |                              ^~~~~~~
|       |                              LOCK_BSD

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 years agoNEWS: PrivateNetwork implies PrivateMounts
Etienne Dechamps [Wed, 2 Aug 2023 17:52:41 +0000 (18:52 +0100)] 
NEWS: PrivateNetwork implies PrivateMounts

This is clearly a change that can break existing units, and broke my
system in at least two different ways. For this reason this should have
been added to NEWS in #26458, specifically c2da3bf, but wasn't.

2 years agonetwork-generator: make network file generated from ip=dhcp matches only physical... 28646/head
Yu Watanabe [Wed, 2 Aug 2023 17:12:10 +0000 (02:12 +0900)] 
network-generator: make network file generated from ip=dhcp matches only physical interfaces

Otherwise, it also matches later created virtual devices, and that
breaks networks generated and managed by container management services,
like docker.

Closes #28626.

2 years agomeson: fix name of test-network-generator
Yu Watanabe [Wed, 2 Aug 2023 17:20:57 +0000 (02:20 +0900)] 
meson: fix name of test-network-generator

As the test executable is named based on the first source file.

2 years agoboot: Make file info size a constant 28640/head
Jan Janssen [Wed, 2 Aug 2023 14:21:51 +0000 (16:21 +0200)] 
boot: Make file info size a constant

2 years agoboot: Fix boot counting for XBOOTLDR entries
Jan Janssen [Wed, 2 Aug 2023 14:00:07 +0000 (16:00 +0200)] 
boot: Fix boot counting for XBOOTLDR entries

We were passing the dir handle for the ESP to
config_entry_bump_counters(), which will obviously fail if the entry
actually resides on the XBOOTLDR partition.

Fixes: #28637
2 years agobless-boot: Actually return successfully
Jan Janssen [Wed, 2 Aug 2023 13:16:33 +0000 (15:16 +0200)] 
bless-boot: Actually return successfully

$ journalctl -u systemd-bless-boot.service
systemd[1]: Starting Mark the Current Boot Loader Entry as Good...
systemd-bless-boot[536]: Marked boot as 'good'. (Boot attempt counter is at 2.)
systemd-bless-boot[536]: Can't find boot counter source file for '/loader/entries/arch.conf': Device or resource busy
systemd[1]: Finished Mark the Current Boot Loader Entry as Good.

2 years agoMerge pull request #28623 from yuwata/udev-builtin-net_id-cleanups
Luca Boccassi [Tue, 1 Aug 2023 21:09:32 +0000 (22:09 +0100)] 
Merge pull request #28623 from yuwata/udev-builtin-net_id-cleanups

udev: several cleanups for net_id builtin (part 4)

2 years agoMerge pull request #28630 from fbuihuu/update-testsuite-for-opensuse
Luca Boccassi [Tue, 1 Aug 2023 21:08:52 +0000 (22:08 +0100)] 
Merge pull request #28630 from fbuihuu/update-testsuite-for-opensuse

Update testsuite for opensuse

2 years agosysupdate: Move fdisk partition flags helpers to fdisk-util.c
Daan De Meyer [Tue, 1 Aug 2023 19:38:11 +0000 (21:38 +0200)] 
sysupdate: Move fdisk partition flags helpers to fdisk-util.c

2 years agorepart: Rename partition_exclude/defer() to partition_type_exclude/defer()
Daan De Meyer [Tue, 1 Aug 2023 19:20:05 +0000 (21:20 +0200)] 
repart: Rename partition_exclude/defer() to partition_type_exclude/defer()

2 years agobuild(deps): bump systemd/mkosi
dependabot[bot] [Tue, 1 Aug 2023 09:03:17 +0000 (09:03 +0000)] 
build(deps): bump systemd/mkosi

Bumps [systemd/mkosi](https://github.com/systemd/mkosi) from 5866c0ff3b36d350c943016e5a3b115f7a95d37f to c6dd95b6eae0386579071cbf44fd838ce28b7237.
- [Release notes](https://github.com/systemd/mkosi/releases)
- [Changelog](https://github.com/systemd/mkosi/blob/main/NEWS.md)
- [Commits](https://github.com/systemd/mkosi/compare/5866c0ff3b36d350c943016e5a3b115f7a95d37f...c6dd95b6eae0386579071cbf44fd838ce28b7237)

---
updated-dependencies:
- dependency-name: systemd/mkosi
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2 years agoukify: Only run systemd-measure after adding all sections
Daan De Meyer [Mon, 31 Jul 2023 19:35:02 +0000 (21:35 +0200)] 
ukify: Only run systemd-measure after adding all sections

We were running systemd-measure before adding the sbat section,
let's fix that.

Also make sure we only pass --linux to systemd-measure once instead
of twice.

2 years agotest: install systemd-homed for openSUSE 28630/head
Franck Bui [Tue, 1 Aug 2023 17:40:34 +0000 (19:40 +0200)] 
test: install systemd-homed for openSUSE

This new sub-package has been recently introduced.

2 years agotest: console fonts are located in /usr/share on openSUSE
Franck Bui [Tue, 1 Aug 2023 17:38:13 +0000 (19:38 +0200)] 
test: console fonts are located in /usr/share on openSUSE

2 years agotest: skip tests earlier when we do not have enough privileges
Yu Watanabe [Tue, 1 Aug 2023 15:44:51 +0000 (00:44 +0900)] 
test: skip tests earlier when we do not have enough privileges

Hopefully fixes #28624.

2 years agoMerge pull request #28620 from yuwata/meson-use-template-part5
Daan De Meyer [Tue, 1 Aug 2023 16:10:52 +0000 (18:10 +0200)] 
Merge pull request #28620 from yuwata/meson-use-template-part5

meson: use template to declare executables (part 5)

2 years agoudev-builtin-net_id: first parse USB or BCMA identifier, then parse PCI properties 28623/head
Yu Watanabe [Tue, 1 Aug 2023 13:30:57 +0000 (22:30 +0900)] 
udev-builtin-net_id: first parse USB or BCMA identifier, then parse PCI properties

Previously, we first generate names based on the PCI slot and ACPI
onboard index, and then append an identifier based on USB or BCMA bus
if it exists in between the PCI bus and the interface.

However, if there exists USB or BCMA bus, the name based on the
ACPI onboard index is not used.

So, let's invert the order; first generate USB or BCMA identifier if the
bus exists, then prepend the name with the PCI slot identifier.

With this change, we can drop Names struct, and each naming logic
becomes self-consistent.