Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v254 batch #371

Merged
merged 90 commits into from
Feb 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
7efc100
test: don't check for -Dinstall-tests=true with NO_BUILD=1
mrc0mmand Dec 14, 2023
8e2dd43
test: tell delv to load anchors from /etc/bind.keys explicitly
mrc0mmand Dec 14, 2023
6677f2c
test: use the default nsec3-iterations value
mrc0mmand Jan 24, 2024
2f4fba9
id128-util: Attempt to read UUID from /sys/hypervisor/uuid
RA-Kooi Jan 22, 2024
4ee24fd
machine-id-setup: Generate stable machine IDs based on Xen hypervisor…
RA-Kooi Jan 22, 2024
146bc77
man: Describe how machine ID is initialized on Xen
RA-Kooi Jan 24, 2024
7b940f4
test: explicitly set nsec3-iterations to 0
mrc0mmand Jan 30, 2024
ce727af
test: use a dropin for the journald snippet
mrc0mmand Jan 31, 2024
295bc89
test: unset TZ before timezone-sensitive unit tests are run
bluca Jan 26, 2024
af09131
CI: set TZ= in a unit test run to ensure tests don't break
bluca Jan 26, 2024
9741035
Sort input file list
bmwiedemann Jan 25, 2024
9ab3b4e
meson: drop arch filtering in syscall list
keszybz Jan 25, 2024
ff55d42
test_ukify: use raw string for the regex
mrc0mmand Feb 3, 2024
a201d7a
test: use lstat() instead of stat(follow_symlinks=False)
mrc0mmand Jan 26, 2024
b90fc89
network: fix typo
yuwata Feb 9, 2024
c020720
network: do not bring down a bonding port interface when it is alread…
yuwata Feb 2, 2024
1fcf648
test-network: add test case for issue #31165
yuwata Feb 2, 2024
05408b6
wait-online: by default not all interface need to be online
yuwata Feb 2, 2024
c6b0f00
login/user-runtime-dir: properly check for mount point
YHNdnzj Feb 4, 2024
9c0cb99
copy: do not ignore chattr_flags and friends passed to copy_file_atom…
yuwata Feb 8, 2024
366edb7
core/exec: do not crash with UtmpMode=user without User= setting
yuwata Feb 19, 2024
3b8ad2d
test: add a test for #31384
dtardon Feb 16, 2024
192066e
gpt-auto-generator: fix argument passed to `parse_image_policy_argument`
aafeijoo-suse Feb 19, 2024
a10f52a
Fallback from pidfd_open on permission errors too
bluca Feb 23, 2024
dc0e6a2
efi: de-inline xmalloc to fix build failure with gcc 12.2 and -O2
bluca Feb 22, 2024
61e18d9
resolved: limit the number of signature validations in a transaction
rpigott Feb 25, 2024
9fd8dfb
resolved: reduce the maximum nsec3 iterations to 100
rpigott Feb 25, 2024
2ef5c80
test: skip TEST-43-PRIVATEUSER-UNPRIV if unprivileged userns is restr…
enr0n Jan 12, 2024
f1dc9e3
bus-socket: Clarify that inotify is supposed to watch all components
DaanDeMeyer Jan 15, 2024
02b71ef
udev: even if a device is a zac device, scsi-$ID_SERIAL will be reser…
YoruStar Jan 16, 2024
6ec0a09
ci: install python3-pytest for ukify tests
mrc0mmand Jan 16, 2024
69855d8
man: add more suggestions on how to use StartUnit and JobRemoved
bluca Jan 17, 2024
183f34e
man: explicitly say that portable1's Attach/Detach are synchronous
bluca Jan 17, 2024
296e99e
boot: don't print error if device tree fixup protocol isn't supported
craftyguy Jan 19, 2024
e65d1be
bash-completion: add missing options to systemd-dissect
aafeijoo-suse Jan 19, 2024
f8ca661
test: skip a systemd-run test if unprivileged userns is restricted
enr0n Jan 18, 2024
e0a69e3
portable: log structured message when attach/detach succeeds
bluca Jan 18, 2024
1ddbadf
user-util: validate the right field
poettering Jan 19, 2024
f9170a3
bootctl: return earlier with `--print-esp-path`
aafeijoo-suse Jan 23, 2024
5d4e93a
test-execute: skip tests that are broken without unprivileged userns
enr0n Jan 18, 2024
518eba1
docs/UID-GIDS: mention that ranges are actually configurable
keszybz Jan 9, 2024
8019874
docs/UID-GIDS: use the modern spellings of pkg-config variables
keszybz Jan 9, 2024
9a7c1ac
cgroup: don't enable bpf pseudo-controllers when doing a wildcard del…
poettering Jan 24, 2024
3fd221e
sd-bus: fix exiting event loop when sd_bus_set_exit_on_disconnect is …
bluca Jan 25, 2024
c493763
test: set -ex separately
mrc0mmand Jan 26, 2024
7eed33f
test: fix the container ID check
mrc0mmand Jan 26, 2024
defef83
timesyncd: make the transmit timestamp in requests fully random
davidv1992 Jan 26, 2024
8caeb2d
Fix bug where systemd-tmpfiles gets stuck on fifos in tmp.
r-vdp Jan 29, 2024
c4cf367
conf-parser: fix OOM check
aafeijoo-suse Jan 30, 2024
4e791d3
mkosi: Stop using file provides with CentOS/Fedora
DaanDeMeyer Jan 30, 2024
d231d3b
namespace: don't invoke loopback_setup() unless we allocate a CLONE_N…
poettering Jan 31, 2024
169508e
test-namespace: SOCK_CLOEXEC'ify all the things
poettering Jan 31, 2024
eb3189e
pam: do not warn closing bus connection which is opened after the fork
yuwata Jan 21, 2024
9d3d63f
nspawn: permit --ephemeral with --link-journal=try-* (treat as =no)
intelfx Jan 20, 2024
7b5fdec
cryptenroll: Fix reading keyfile from socket
Feb 2, 2024
a2c8c5e
detect-virt: fix Google Compute Engine support
anthisfan Feb 8, 2024
37bd9d5
Install pacman in Arch Linux image
DaanDeMeyer Feb 9, 2024
bef351a
sysusers,tmpfiles: clarify error message for --replace
keszybz Dec 3, 2023
62ac458
test-69: send SIGTERM to ask systemd-nspawn to properly stop the cont…
fbuihuu Feb 8, 2024
c3b9df1
test: clean up the code a bit
mrc0mmand Feb 9, 2024
3b91838
core/service: make error msg match with conditions
YHNdnzj Jan 31, 2024
ec2efbb
man/systemd.service: document that Restart=always/on-success are refused
YHNdnzj Jan 31, 2024
13fe8ea
firstboot: validate keymap entry
Feb 9, 2024
6db53b9
missing: change our close_range() syscall wrapper to map glibc's
poettering Feb 12, 2024
dadf153
test: install systemd-boot in openSUSE test images
fbuihuu Feb 13, 2024
17113b5
test: make sure that sd-boot is installed before testing bootctl
fbuihuu Feb 13, 2024
c049fff
test: make sure to install the filesystem package in the test image o…
fbuihuu Feb 14, 2024
5b1cf1d
journald: when getting journal data via memfd, check flags are valid
poettering Feb 14, 2024
8ddc1c1
meson: do not attempt to install tests when they are disabled
bluca Feb 13, 2024
f0501b3
efi-loader: make efi_loader_get_entries() handling missing NUL termin…
poettering Feb 12, 2024
69ff85d
Improve IgnoreSIGPIPE description
Winterhuman Feb 14, 2024
7db4528
keyring-util: Use reported key size to resize buf
AdrianVovk Feb 1, 2024
27766d1
fs-util: readlinkat() supports an empty string
yuwata Feb 14, 2024
5b20e33
chase: do not wrap xopenat() with RET_NERRNO()
yuwata Feb 15, 2024
27274fd
chattr-util: fix error code
yuwata Feb 15, 2024
605d18c
loop-util: fix error handling
yuwata Feb 15, 2024
0ea70d0
test: always try to install the ext4 module
mrc0mmand Feb 14, 2024
4d00c49
test: use btrfs' mkswapfile on btrfs
mrc0mmand Feb 14, 2024
7513320
test: "modernize" TEST-55-OOMD's init
mrc0mmand Feb 16, 2024
1bffb2f
Set SYSTEMD_LOG_LEVEL=info explicitly in test-sysusers
DaanDeMeyer Feb 19, 2024
22a2050
udev: String substitutions can be done in ENV, too
runiq Feb 19, 2024
6326a97
test: support TEST_MATCH_* stuff in TEST-23-UNIT-FILE as well
mrc0mmand Feb 19, 2024
ca76eee
missing_fcntl: Fix RAW_O_LARGEFILE
AdrianVovk Feb 20, 2024
f043e0c
test: temporarily enable session lingering for the test user #2
mrc0mmand Feb 21, 2024
2fb55b7
tree-wide: be more careful when passing literal integers to "t" bus m…
poettering Feb 21, 2024
c9fd64d
test-ukify: skip signing in tests when slow tests are disabled
keszybz Feb 22, 2024
c7f7c43
test-nss-hosts: treat negative host lookup as slow
keszybz Feb 22, 2024
907eb79
LoongArch: Replace __loongarch64 with __loongarch_lp64
yetist Aug 9, 2023
1b3758e
detect-virt: allow detection via device-tree on RISC-V
xypron Feb 23, 2024
9d66fb8
detect-virt: allow detection via SMBIOS on RISC-V
xypron Feb 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/unit_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ ADDITIONAL_DEPS=(
python3-pefile
python3-pyelftools
python3-pyparsing
python3-pytest
rpm
zstd
)
Expand Down Expand Up @@ -73,7 +74,8 @@ for phase in "${PHASES[@]}"; do
MESON_ARGS+=(--fatal-meson-warnings)
run_meson -Dnobody-group=nogroup --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true "${MESON_ARGS[@]}" build
ninja -C build -v
meson test -C build --print-errorlogs
# Ensure setting a timezone (like the reproducible build tests do) does not break time/date unit tests
TZ=GMT+12 meson test -C build --print-errorlogs
;;
RUN_ASAN_UBSAN|RUN_GCC_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN_NO_DEPS)
MESON_ARGS=(--optimization=1)
Expand Down
20 changes: 20 additions & 0 deletions catalog/systemd.catalog.in
Original file line number Diff line number Diff line change
Expand Up @@ -584,3 +584,23 @@ Compatibility support for System V services in systemd is deprecated. Please
make sure to update the package in question to provide proper, native systemd
unit files. Contact vendor if necesssary. Compatibility support for System V
services is deprecated and will be removed soon.

-- 187c62eb1e7f463bb530394f52cb090f
Subject: A Portable Service has been attached
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://systemd.io/PORTABLE_SERVICES/

A new Portable Service @PORTABLE_ROOT@ (with extensions: @PORTABLE_EXTENSION@) has
been attached to the system and is now available for use. The list of attached
Portable Services can be queried with 'portablectl list'.

-- 76c5c754d628490d8ecba4c9d042112b
Subject: A Portable Service has been detached
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://systemd.io/PORTABLE_SERVICES/

A Portable Service @PORTABLE_ROOT@ (with extensions: @PORTABLE_EXTENSION@) has been
detached from the system and is no longer available for use. The list of attached
Portable Services can be queried with 'portablectl list'.
32 changes: 16 additions & 16 deletions docs/UIDS-GIDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ validity for GIDs too.
In theory, the range of the C type `uid_t` is 32-bit wide on Linux,
i.e. 0…4294967295. However, four UIDs are special on Linux:

1. 0 → The `root` super-user
1. 0 → The `root` super-user.

2. 65534 → The `nobody` UID, also called the "overflow" UID or similar. It's
where various subsystems map unmappable users to, for example file systems
Expand Down Expand Up @@ -57,20 +57,20 @@ Distributions generally split the available UID range in two:

2. 1000…65533 and 65536…4294967294 → Everything else, i.e. regular (human) users.

Note that most distributions allow changing the boundary between system and
regular users, even during runtime as user configuration. Moreover, some older
systems placed the boundary at 499/500, or even 99/100. In `systemd`, the
boundary is configurable only during compilation time, as this should be a
decision for distribution builders, not for users. Moreover, we strongly
discourage downstreams to change the boundary from the upstream default of
999/1000.
Some older systems placed the boundary at 499/500, or even 99/100,
and some distributions allow the boundary between system and regular users to be changed
via local configuration.
In `systemd`, the boundary is configurable during compilation time
and is also queried from `/etc/login.defs` at runtime,
if the `-Dcompat-mutable-uid-boundaries=true` compile-time setting is used.
We strongly discourage downstreams from changing the boundary from the upstream default of 999/1000.

Also note that programs such as `adduser` tend to allocate from a subset of the
available regular user range only, usually 1000..60000. And it's also usually
user-configurable, too.
available regular user range only, usually 1000..60000.
This range can also be configured using `/etc/login.defs`.

Note that systemd requires that system users and groups are resolvable without
networking available — a requirement that is not made for regular users. This
network — a requirement that is not made for regular users. This
means regular users may be stored in remote LDAP or NIS databases, but system
users may not (except when there's a consistent local cache kept, that is
available during earliest boot, including in the initrd).
Expand Down Expand Up @@ -155,15 +155,15 @@ The most important boundaries of the local system may be queried with
`pkg-config`:

```
$ pkg-config --variable=systemuidmax systemd
$ pkg-config --variable=system_uid_max systemd
999
$ pkg-config --variable=dynamicuidmin systemd
$ pkg-config --variable=dynamic_uid_min systemd
61184
$ pkg-config --variable=dynamicuidmax systemd
$ pkg-config --variable=dynamic_uid_max systemd
65519
$ pkg-config --variable=containeruidbasemin systemd
$ pkg-config --variable=container_uid_base_min systemd
524288
$ pkg-config --variable=containeruidbasemax systemd
$ pkg-config --variable=container_uid_base_max systemd
1878982656
```

Expand Down
3 changes: 2 additions & 1 deletion man/machine-id.xml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@
to use the D-Bus machine ID from <filename>/var/lib/dbus/machine-id</filename>, the
value of the kernel command line option <varname>container_uuid</varname>, the KVM DMI
<filename>product_uuid</filename> or the devicetree <filename>vm,uuid</filename>
(on KVM systems), and finally a randomly generated UUID.</para>
(on KVM systems), the Xen hypervisor <filename>uuid</filename>, and finally a randomly
generated UUID.</para>

<para>After the machine ID is established,
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
Expand Down
7 changes: 5 additions & 2 deletions man/org.freedesktop.portable1.xml
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,8 @@ node /org/freedesktop/portable1 {
<listitem><para>mkdir</para></listitem>
</itemizedlist>
Note that an image cannot be attached if a unit that it contains is already present
on the system.</para>
on the system. Note that this method returns only after all the listed operations are completed,
and due to the I/O involved it might take some time.</para>

<para><function>AttachImageWithExtensions()</function> attaches a portable image to the system.
This method is a superset of <function>AttachImage()</function> with the addition of
Expand All @@ -271,7 +272,9 @@ node /org/freedesktop/portable1 {
<itemizedlist>
<listitem><para>unlink</para></listitem>
</itemizedlist>
Note that an image cannot be detached if a unit that it contains is running.</para>
Note that an image cannot be detached if a unit that it contains is running. Note that this method
returns only after all the listed operations are completed, and due to the I/O involved it might take
some time.</para>

<para><function>DetachImageWithExtensions()</function> detaches a portable image from the system.
This method is a superset of <function>DetachImage()</function> with the addition of
Expand Down
8 changes: 7 additions & 1 deletion man/org.freedesktop.systemd1.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1286,7 +1286,13 @@ node /org/freedesktop/systemd1 {
and terminate all units that aren't dependencies of it. If <literal>ignore-dependencies</literal>, it
will start a unit but ignore all its dependencies. If <literal>ignore-requirements</literal>, it will
start a unit but only ignore the requirement dependencies. It is not recommended to make use of the
latter two options. On completion, this method returns the newly created job object.</para>
latter two options. On reply, if successful, this method returns the newly created job object
which has been enqueued for asynchronous activation. Callers that want to track the outcome of the
actual start operation need to monitor the result of this job. This can be achieved in a race-free
manner by first subscribing to the <function>JobRemoved()</function> signal, then calling
<function>StartUnit()</function> and using the returned job object to filter out unrelated
<function>JobRemoved()</function> signals, until the desired one is received, which will then carry
the result of the start operation.</para>

<para><function>StartUnitReplace()</function> is similar to <function>StartUnit()</function> but
replaces a job that is queued for one unit by a job for another unit.</para>
Expand Down
3 changes: 2 additions & 1 deletion man/systemd-nspawn.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1337,7 +1337,8 @@ After=sys-subsystem-net-devices-ens1.device</programlisting>
and the subdirectory is symlinked into the host at the same
location. <literal>try-host</literal> and
<literal>try-guest</literal> do the same but do not fail if
the host does not have persistent journaling enabled. If
the host does not have persistent journaling enabled, or if
the container is in the <option>--ephemeral</option> mode. If
<literal>auto</literal> (the default), and the right
subdirectory of <filename>/var/log/journal</filename> exists,
it will be bind mounted into the container. If the
Expand Down
6 changes: 3 additions & 3 deletions man/systemd.exec.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1167,9 +1167,9 @@ CapabilityBoundingSet=~CAP_B CAP_C</programlisting>
<varlistentry>
<term><varname>IgnoreSIGPIPE=</varname></term>

<listitem><para>Takes a boolean argument. If true, causes <constant>SIGPIPE</constant> to be ignored in the
executed process. Defaults to true because <constant>SIGPIPE</constant> generally is useful only in shell
pipelines.</para></listitem>
<listitem><para>Takes a boolean argument. If true, <constant>SIGPIPE</constant> is ignored in the
executed process. Defaults to true since <constant>SIGPIPE</constant> is generally only useful in
shell pipelines.</para></listitem>
</varlistentry>

</variablelist>
Expand Down
79 changes: 29 additions & 50 deletions man/systemd.service.xml
Original file line number Diff line number Diff line change
Expand Up @@ -770,62 +770,41 @@

<varlistentry>
<term><varname>Restart=</varname></term>
<listitem><para>Configures whether the service shall be
restarted when the service process exits, is killed, or a
timeout is reached. The service process may be the main
service process, but it may also be one of the processes
specified with <varname>ExecStartPre=</varname>,
<varname>ExecStartPost=</varname>,
<varname>ExecStop=</varname>,
<varname>ExecStopPost=</varname>, or
<varname>ExecReload=</varname>. When the death of the process
is a result of systemd operation (e.g. service stop or
restart), the service will not be restarted. Timeouts include
missing the watchdog "keep-alive ping" deadline and a service
start, reload, and stop operation timeouts.</para>

<para>Takes one of
<option>no</option>,
<option>on-success</option>,
<option>on-failure</option>,
<option>on-abnormal</option>,
<option>on-watchdog</option>,
<option>on-abort</option>, or
<option>always</option>.
If set to <option>no</option> (the default), the service will
not be restarted. If set to <option>on-success</option>, it
will be restarted only when the service process exits cleanly.
<listitem><para>Configures whether the service shall be restarted when the service process exits,
is killed, or a timeout is reached. The service process may be the main service process, but it may
also be one of the processes specified with <varname>ExecStartPre=</varname>,
<varname>ExecStartPost=</varname>, <varname>ExecStop=</varname>, <varname>ExecStopPost=</varname>,
or <varname>ExecReload=</varname>. When the death of the process is a result of systemd operation
(e.g. service stop or restart), the service will not be restarted. Timeouts include missing the watchdog
"keep-alive ping" deadline and a service start, reload, and stop operation timeouts.</para>

<para>Takes one of <option>no</option>, <option>on-success</option>, <option>on-failure</option>,
<option>on-abnormal</option>, <option>on-watchdog</option>, <option>on-abort</option>, or
<option>always</option>. If set to <option>no</option> (the default), the service will not be restarted.
If set to <option>on-success</option>, it will be restarted only when the service process exits cleanly.
In this context, a clean exit means any of the following:
<itemizedlist>
<listitem><simpara>exit code of 0;</simpara></listitem>
<listitem><simpara>for types other than
<varname>Type=oneshot</varname>, one of the signals
<constant>SIGHUP</constant>,
<constant>SIGINT</constant>,
<constant>SIGTERM</constant>, or
<constant>SIGPIPE</constant>;</simpara></listitem>
<listitem><simpara>for types other than <varname>Type=oneshot</varname>, one of the signals
<constant>SIGHUP</constant>, <constant>SIGINT</constant>,
<constant>SIGTERM</constant>, or <constant>SIGPIPE</constant>;
</simpara></listitem>
<listitem><simpara>exit statuses and signals specified in
<varname>SuccessExitStatus=</varname>.</simpara></listitem>
</itemizedlist>
If set to
<option>on-failure</option>, the service will be restarted
when the process exits with a non-zero exit code, is
terminated by a signal (including on core dump, but excluding
the aforementioned four signals), when an operation (such as
service reload) times out, and when the configured watchdog
timeout is triggered. If set to <option>on-abnormal</option>,
the service will be restarted when the process is terminated
by a signal (including on core dump, excluding the
aforementioned four signals), when an operation times out, or
when the watchdog timeout is triggered. If set to
<option>on-abort</option>, the service will be restarted only
if the service process exits due to an uncaught signal not
specified as a clean exit status. If set to
<option>on-watchdog</option>, the service will be restarted
only if the watchdog timeout for the service expires. If set
to <option>always</option>, the service will be restarted
regardless of whether it exited cleanly or not, got terminated
abnormally by a signal, or hit a timeout.</para>
If set to <option>on-failure</option>, the service will be restarted when the process exits with
a non-zero exit code, is terminated by a signal (including on core dump, but excluding the aforementioned
four signals), when an operation (such as service reload) times out, and when the configured watchdog
timeout is triggered. If set to <option>on-abnormal</option>, the service will be restarted when
the process is terminated by a signal (including on core dump, excluding the aforementioned four signals),
when an operation times out, or when the watchdog timeout is triggered. If set to <option>on-abort</option>,
the service will be restarted only if the service process exits due to an uncaught signal not specified
as a clean exit status. If set to <option>on-watchdog</option>, the service will be restarted
only if the watchdog timeout for the service expires. If set to <option>always</option>, the service
will be restarted regardless of whether it exited cleanly or not, got terminated abnormally by
a signal, or hit a timeout. Note that <varname>Type=oneshot</varname> services will never be restarted
on a clean exit status, i.e. <option>always</option> and <option>on-success</option> are rejected
for them.</para>

<table>
<title>Exit causes and the effect of the <varname>Restart=</varname> settings</title>
Expand Down
15 changes: 8 additions & 7 deletions man/udev.xml
Original file line number Diff line number Diff line change
Expand Up @@ -688,15 +688,16 @@ SUBSYSTEM=="net", OPTIONS="log_level=debug"</programlisting></para>
</varlistentry>
</variablelist>

<para>The <varname>NAME</varname>, <varname>SYMLINK</varname>,
<varname>PROGRAM</varname>, <varname>OWNER</varname>,
<varname>GROUP</varname>, <varname>MODE</varname>, <varname>SECLABEL</varname>,
and <varname>RUN</varname> fields support simple string substitutions.
<para>The <varname>ENV</varname>, <varname>GROUP</varname>,
<varname>MODE</varname>, <varname>NAME</varname>,
<varname>OWNER</varname>, <varname>PROGRAM</varname>,
<varname>RUN</varname>, <varname>SECLABEL</varname>, and
<varname>SYMLINK</varname> fields support simple string substitutions.
The <varname>RUN</varname> substitutions are performed after all rules
have been processed, right before the program is executed, allowing for
the use of device properties set by earlier matching rules. For all other
fields, substitutions are performed while the individual rule is being
processed. The available substitutions are:</para>
the use of device properties set by earlier matching rules. For all
other fields, substitutions are performed while the individual rule is
being processed. The available substitutions are:</para>
<variablelist class='udev-directives'>
<varlistentry>
<term><option>$kernel</option>, <option>%k</option></term>
Expand Down
2 changes: 1 addition & 1 deletion meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ meson_build_sh = find_program('tools/meson-build.sh')
want_tests = get_option('tests')
slow_tests = want_tests != 'false' and get_option('slow-tests')
fuzz_tests = want_tests != 'false' and get_option('fuzz-tests')
install_tests = get_option('install-tests')
install_tests = want_tests != 'false' and get_option('install-tests')

if add_languages('cpp', native : false, required : fuzzer_build)
# Used only for tests
Expand Down
2 changes: 1 addition & 1 deletion mkosi.presets/00-base/mkosi.conf.d/10-centos-fedora.conf
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Packages=
util-linux

BuildPackages=
/usr/bin/pkg-config
pkgconf
bpftool
docbook-xsl
findutils
Expand Down
1 change: 1 addition & 0 deletions mkosi.presets/20-final/mkosi.conf.d/10-arch.conf
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Packages=
man-db
openbsd-netcat
openssh
pacman
polkit
python-pefile
python-psutil
Expand Down
2 changes: 2 additions & 0 deletions rules.d/60-persistent-storage.rules.in
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ KERNEL=="vd*", ATTRS{serial}=="?*", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="di

# ATA
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", IMPORT{program}="ata_id --export $devnode"
KERNEL=="sd*[!0-9]|sr*", ENV{ID_BUS}=="ata", ENV{ID_ATA_PERIPHERAL_DEVICE_TYPE}=="20", PROGRAM="scsi_id -u -g $devnode", \
SYMLINK+="disk/by-id/scsi-$result$env{.PART_SUFFIX}"

# ATAPI devices (SPC-3 or later)
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{type}=="5", ATTRS{scsi_level}=="[6-9]*", IMPORT{program}="ata_id --export $devnode"
Expand Down
4 changes: 3 additions & 1 deletion shell-completion/bash/systemd-dissect
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ _systemd_dissect() {
--in-memory'
[ARG]='-m --mount -M
-u --umount -U
--attach
--detach
-l --list
--mtree
--with
Expand Down Expand Up @@ -72,7 +74,7 @@ _systemd_dissect() {

if __contains_word "$prev_1" ${OPTS[ARG]}; then
case $prev_1 in
-l|--list|--mtree|-m|--mount|-M|-x|--copy-from|-a|--copy-to|--verity-data|--validate|--with)
-l|--list|--mtree|-m|--mount|-M|--attach|--detach|-x|--copy-from|-a|--copy-to|--verity-data|--validate|--with)
comps=$(compgen -A file -- "$cur")
compopt -o filenames
;;
Expand Down
2 changes: 1 addition & 1 deletion src/basic/architecture.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ Architecture uname_architecture(void) {
{ "parisc64", ARCHITECTURE_PARISC64 },
{ "parisc", ARCHITECTURE_PARISC },

#elif defined(__loongarch64)
#elif defined(__loongarch_lp64)
{ "loongarch64", ARCHITECTURE_LOONGARCH64 },

#elif defined(__m68k__)
Expand Down
Loading
Loading