Package: systemd / 247.3-5

Metadata

Package Version Patches format
systemd 247.3-5 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
Add helper for case independent string equality checks.patch | (download)

src/basic/string-util.h | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

 add helper for case-independent string equality checks

(cherry picked from commit bd47b0dac4a1ff6e686c99b9958693e86d44007b)

localed Run locale gen if available to generate missing l.patch | (download)

meson.build | 8 8 + 0 - 0 !
meson_options.txt | 2 2 + 0 - 0 !
src/locale/keymap-util.c | 211 211 + 0 - 0 !
src/locale/keymap-util.h | 4 4 + 0 - 0 !
src/locale/localectl.c | 6 5 + 1 - 0 !
src/locale/localed.c | 59 56 + 3 - 0 !
6 files changed, 286 insertions(+), 4 deletions(-)

 localed: run locale-gen if available to generate missing locale

This change improves integration with distributions using locale-gen to
generate missing locale on-demand, like Debian-based distributions
(Debian/Ubuntu/PureOS/Tanglu/...) and Arch Linux.
We only ever enable new locales for generation, and never disable them.
Furthermore, we only generate UTF-8 locale.

This feature is only used if explicitly enabled at compile-time, and
will also be inert at runtime if the locale-gen binary is missing.

(cherry picked from commit 8f20232fcb52dbe6255f3df6101fc057af90bcfa)

core fix mtime calculation of dropin files.patch | (download)

src/core/load-dropin.c | 1 1 + 0 - 0 !
src/shared/conf-parser.c | 15 7 + 8 - 0 !
src/shared/conf-parser.h | 2 1 + 1 - 0 !
3 files changed, 9 insertions(+), 9 deletions(-)

 core: fix mtime calculation of dropin files

Nominally, the bug was in unit_load_dropin(), which just took the last mtime
instead of calculating the maximum. But instead of adding code to wrap the
loop, this patch goes in the other direction.

All (correct) callers of config_parse() followed a very similar pattern to
calculate the maximum mtime. So let's simplify things by making config_parse()
assume that mtime is initialized and update it to the maximum. This makes all
the callers that care about mtime simpler and also fixes the issue in
unit_load_dropin().

analyze slightly reword PrivateTmp message.patch | (download)

src/analyze/analyze-security.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 analyze: slightly reword privatetmp= message

Apparently there way confusion about "does not apply". Let's say "is not
appropriate".

Fixes: #13095
(cherry picked from commit 77552b9520ba0d47cbf33cdbe1ddedb9ce9b5bf3)

rules Move ID_SMARTCARD_READER definition to a 70 configu.patch | (download)

rules.d/60-fido-id.rules | 3 2 + 1 - 0 !
rules.d/99-systemd.rules.in | 1 0 + 1 - 0 !
2 files changed, 2 insertions(+), 2 deletions(-)

 rules: move id_smartcard_reader definition to a <70 configuration.

70-uaccess.rules sets the uaccess tag on devices with ID_SMARTCARD_READER
set, but it is set in 99-systemd.rules .
Move this to a 60-*.rules which already matches USB CCID class, factorising
the matching, so 70-uaccess.rules sets up these devices as expected.

(cherry picked from commit dbdcd51f78bde5e9033d98d61bbb750c868bde9d)

table drop trailing white spaces of the last cell in row.patch | (download)

src/shared/format-table.c | 6 6 + 0 - 0 !
src/test/test-format-table.c | 40 20 + 20 - 0 !
2 files changed, 26 insertions(+), 20 deletions(-)

 table: drop trailing white spaces of the last cell in row

Fixes #18415.

(cherry picked from commit 71894e18313e41a72cecdc77fea5037f95d6903f)

pkg config make prefix overridable again.patch | (download)

src/core/systemd.pc.in | 10 5 + 5 - 0 !
1 file changed, 5 insertions(+), 5 deletions(-)

 pkg-config: make prefix overridable again

While we don't support prefix being != /usr, and this is hardcoded
all over the place, variables in pkg-config file are expected
to have overridable base directory.

This is important for at least the following two use cases:

- Installing projects to non-FHS package-specific prefixes for Nix-style
  package managers. Of course, it is then their responsibility
  to ensure systemd can find the service files.
- Installing to local path for development purposes.
  This is a compromise between running a program from a build directory,
  and running it fully installed to system prefix.

You will not want to write to system prefix in either case.

For more information, see also
https://www.bassi.io/articles/2018/03/15/pkg-config-and-paths/

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

Partially reverts 6e65df89c348242dbd10036abc7dd5e8181cf733

(cherry picked from commit 60bce7c6d9606185114df1bdcd5ea100407688b8)

LoadCredentials do not assert on invalid syntax.patch | (download)

src/core/load-fragment.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 loadcredentials: do not assert on invalid syntax

LoadCredentials=foo causes an assertion to be triggered, as we
are not checking that the rvalue's right hand side part is non-empty
before using it in unit_full_printf.

Fixes #19178

# printf [Service]nLoadCredential=passwd.hashed-password.rootn > hello.service
# systemd-analyze verify ./hello.service
...
Assertion 'format' failed at src/core/unit-printf.c:232, function unit_full_printf(). Aborting.
Aborted (core dumped)

(cherry picked from commit f7a6f1226e800f7695c2073675523062ea697aa4)

network Delay addition of IPv6 Proxy NDP addresses.patch | (download)

src/network/networkd-address.c | 11 11 + 0 - 0 !
src/network/networkd-link.c | 5 0 + 5 - 0 !
2 files changed, 11 insertions(+), 5 deletions(-)

 network: delay addition of ipv6 proxy ndp addresses

Setting of IPv6 Proxy NDP addresses must be done at the same
time as static addresses, static routes, and other link attributes
that must be configured when the link is up. Doing this ensures
that they are reconfigured on the link if the link goes down
and returns to service.

(cherry picked from commit 12f7469bbe0142d7f360a29ca2b407ce7f5ff096)

Fixes https://github.com/systemd/systemd-stable/issues/89

(cherry picked from commit d5ea028e46673ef627843e90c3d01ebac8fe0e62)

debian/Use Debian specific config files.patch | (download)

src/basic/time-util.c | 34 29 + 5 - 0 !
src/core/locale-setup.c | 21 21 + 0 - 0 !
src/locale/keymap-util.c | 208 105 + 103 - 0 !
src/timedate/timedated.c | 21 18 + 3 - 0 !
4 files changed, 173 insertions(+), 111 deletions(-)

 use debian specific config files

Use /etc/default/locale instead of /etc/locale.conf for locale settings.

Use /etc/default/keyboard instead of /etc/X11/xorg.conf.d/00-keyboard.conf for
keyboard configuration.

Read/write /etc/timezone if /etc/localtime does not exist.

debian/Bring tmpfiles.d tmp.conf in line with Debian defaul.patch | (download)

tmpfiles.d/tmp.conf | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 bring tmpfiles.d/tmp.conf in line with debian defaults

Closes: #675422

debian/Make run lock tmpfs an API fs.patch | (download)

src/core/mount-setup.c | 2 2 + 0 - 0 !
tmpfiles.d/legacy.conf | 1 0 + 1 - 0 !
2 files changed, 2 insertions(+), 1 deletion(-)

 make /run/lock tmpfs an api fs

The /run/lock directory is world-writable in Debian due to historic
reasons. To avoid user processes filling up /run, we mount a separate
tmpfs for /run/lock. As this directory needs to be available during
early boot, we make it an API fs.

Drop it from tmpfiles.d/legacy.conf to not clobber the permissions.

Closes: #751392

debian/Add support for TuxOnIce hibernation.patch | (download)

src/shared/sleep-config.c | 6 6 + 0 - 0 !
1 file changed, 6 insertions(+)

 add support for tuxonice hibernation

systemd does not support non-mainline kernel features so upstream rejected this
patch.
It is however required for systemd integration by tuxonice-userui package.

debian/Re enable journal forwarding to syslog.patch | (download)

man/journald.conf.xml | 2 1 + 1 - 0 !
src/journal/journald-server.c | 1 1 + 0 - 0 !
src/journal/journald.conf | 2 1 + 1 - 0 !
3 files changed, 3 insertions(+), 2 deletions(-)

 re-enable journal forwarding to syslog

Revert upstream commit 46b131574fdd7d77 for now, until Debian's sysloggers
can/do all read from the journal directly. See

  http://lists.freedesktop.org/archives/systemd-devel/2014-November/025550.html

for details. Once we grow a journal.conf.d/ directory, sysloggers can be moved
to pulling from the journal one by one and disable forwarding again in such a
conf.d snippet.

debian/Don t enable audit by default.patch | (download)

man/journald.conf.xml | 2 1 + 1 - 0 !
src/journal/journald-server.c | 2 1 + 1 - 0 !
src/journal/journald.conf | 2 1 + 1 - 0 !
3 files changed, 3 insertions(+), 3 deletions(-)

 don't enable audit by default

It causes flooding of dmesg and syslog, suppressing actually important
messages.

Don't enable it for now, until a better solution is found:
http://lists.freedesktop.org/archives/systemd-devel/2014-December/026591.html

Bug-Debian: https://bugs.debian.org/773528

debian/Only start logind if dbus is installed.patch | (download)

units/systemd-logind.service.in | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 only start logind if dbus is installed

logind fails to start in environments without dbus, such as LXC containers or
servers. Add a startup condition to avoid the very noisy startup failure.

Part of #772700

debian/fsckd daemon for inter fsckd communication.patch | (download)

man/rules/meson.build | 1 1 + 0 - 0 !
man/systemd-fsckd.service.xml | 162 162 + 0 - 0 !
meson.build | 9 9 + 0 - 0 !
po/POTFILES.in | 1 1 + 0 - 0 !
src/fsckd/fsckd.c | 699 699 + 0 - 0 !
units/meson.build | 2 2 + 0 - 0 !
units/systemd-fsck-root.service.in | 2 2 + 0 - 0 !
units/systemd-fsck@.service.in | 3 2 + 1 - 0 !
units/systemd-fsckd.service.in | 17 17 + 0 - 0 !
units/systemd-fsckd.socket | 15 15 + 0 - 0 !
10 files changed, 910 insertions(+), 1 deletion(-)

 fsckd daemon for inter-fsckd communication

Global logic:
Add systemd-fsckd multiplexer which accepts multiple (via systemd-fsck's
/run/systemd/fsck.progress socket) fsck instances to connect to it and sends
progress report. systemd-fsckd then computes and writes to /dev/console the
number of devices currently being checked and the minimum fsck progress.

Plymouth and user interaction:
Forward the progress to plymouth and support canellation of in progress fsck.
Try to connect and send to plymouth (if running) some checked report progress,
using direct plymouth protocole.

Update message is the following:
fsckd:<num_devices>:<progress>:<string>
* num_devices corresponds to the current number of devices being checked (int)
* progress corresponds to the current minimum percentage of all devices being
  checked (float, from 0 to 100)
* string is a translated message ready to be displayed by the plymouth theme
  displaying the information above. It can be overridden by plymouth themes
  supporting i18n.

Grab in fsckd plymouth watch key Control+C, and propagate this cancel request
to systemd-fsck which will terminate fsck.

Send a message to signal to user what key we are grabbing for fsck cancel.

Message is: fsckd-cancel-msg:<string>
Where string is a translated string ready to be displayed by the plymouth theme
indicating that Control+C can be used to cancel current checks. It can be
overridden (matching only fsckd-cancel-msg prefix) for themes supporting i18n.

Misc:
systemd-fsckd stops on idle when no fsck is connected.
Add man page explaining the plymouth theme protocol, usage of the daemon
as well as the socket activation part. Adapt existing fsck man page.

Note that fsckd had lived in the upstream tree for a while, but was removed.
More information at
http://lists.freedesktop.org/archives/systemd-devel/2015-April/030175.html
-

debian/Skip filesystem check if already done by the initram.patch | (download)

src/fstab-generator/fstab-generator.c | 11 8 + 3 - 0 !
units/systemd-fsck-root.service.in | 1 1 + 0 - 0 !
2 files changed, 9 insertions(+), 3 deletions(-)

 skip filesystem check if already done by the initramfs

Newer versions of initramfs-tools already fsck and mount / and /usr in
the initramfs. Skip the filesystem check in this case.

Based on a previous patch by Michael Biebl <biebl@debian.org>.

Closes: #782522
Closes: #810748

debian/Revert core one step back again for nspawn we actual.patch | (download)

src/core/unit.c | 11 1 + 10 - 0 !
1 file changed, 1 insertion(+), 10 deletions(-)

 revert "core: one step back again,
 for nspawn we actually can't wait for cgroups running empty since systemd
 will get exactly zero notifications about it"

This reverts commit 743970d2ea6d08aa7c7bff8220f6b7702f2b1db7.

Bug-Debian: https://bugs.debian.org/784720
Bug-Ubuntu: https://launchpad.net/bugs/1448259
Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1141137

debian/Revert core set RLIMIT_CORE to unlimited by default.patch | (download)

src/core/main.c | 2 0 + 2 - 0 !
sysctl.d/50-coredump.conf.in | 2 1 + 1 - 0 !
2 files changed, 1 insertion(+), 3 deletions(-)

 revert "core: set rlimit_core to unlimited by default"

Partially revert commit 15a900327ab as this completely breaks core dumps
without systemd-coredump. It's also contradicting core(8), and it's not
systemd's place to redefine the kernel definitions of core files.

Commit bdfd7b2c now honours the process' RLIMIT_CORE for systemd-coredump. This
isn't what RLIMIT_CORE is supposed to do (it limits the size of the core
*file*, but the kernel deliberately ignores it for piping), so set a static
2^63 core size limit for systemd-coredump to go back to the previous behaviour
(otherwise the change above would break systemd-coredump).

Bug-Debian: https://bugs.debian.org/815020

debian/Let graphical session pre.target be manually started.patch | (download)

units/user/graphical-session-pre.target | 1 0 + 1 - 0 !
1 file changed, 1 deletion(-)

 let graphical-session-pre.target be manually started

This is needed until https://github.com/systemd/systemd/issues/3750 is fixed.

debian/Add env variable for machine ID path.patch | (download)

src/libsystemd/sd-id128/sd-id128.c | 2 1 + 1 - 0 !
src/test/test-fs-util.c | 11 7 + 4 - 0 !
2 files changed, 8 insertions(+), 5 deletions(-)

 add env variable for machine id path

During package build, in minimal chroots, or other systems which do not already
have an /etc/machine-id we get six test failures. Introduce a
$SYSTEMD_MACHINE_ID_PATH environment variable which can specify a location
other than /etc/machine-id, so that the unit tests are independent from the
environment.

Also adjust test-fs-util to not assume that /etc/machine-id exists. Use
/etc/passwd instead which is created by base-files.

Closes: #851445

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=62344

debian/Drop seccomp system call filter for udev.patch | (download)

units/systemd-udevd.service.in | 2 0 + 2 - 0 !
1 file changed, 2 deletions(-)

 drop seccomp system call filter for udev

The seccomp based system call whitelist requires at least systemd 239 to
be the active init and during a dist-upgrade we can't guarantee that
systemd has been fully configured before udev is restarted.

This partially reverts upstream commit
ee8f26180d01e3ddd4e5f20b03b81e5e737657ae.

Once buster is released, this patch can be dropped.

Closes: #903224

debian/deny list upstream test 25.patch | (download)

test/TEST-25-IMPORT/deny-list-upstream-ci | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 deny-list-upstream-test-25

Bug: https://github.com/systemd/systemd/issues/13973

debian/deny list upstream test 02 ppc64el.patch | (download)

test/TEST-02-UNITTESTS/deny-list-upstream-ci-ppc64el | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 deny-list-upstream-test-02-ppc64el

Bug: https://github.com/systemd/systemd/issues/11612

debian/udev drop SystemCallArchitectures native from systemd ude.patch | (download)

units/systemd-udevd.service.in | 1 0 + 1 - 0 !
1 file changed, 1 deletion(-)

 udev: drop systemcallarchitectures=native from systemd-udevd.service

We can't really control what helper programs are run from other udev
rules. E.g. running i386 binaries under amd64 is a valid use case and
should not trigger a SIGSYS failure.

Closes: #869719

debian/Keep journal files compatible with older versions.patch | (download)

src/journal/compress.h | 10 5 + 5 - 0 !
src/journal/journal-file.c | 8 4 + 4 - 0 !
2 files changed, 9 insertions(+), 9 deletions(-)

 keep journal files compatible with older versions

Disable the KEYED-HASH journal feature by default and keep LZ4 (instead
of ZSTD) as default compression for new journal files. Otherwise journal
files are incompatible and can't be read by older journalctl
implementations.

This patch can be dropped in bullseye+1, as journalctl from bullseye
will then be able to read journal files with those features.

Closes: #968055

debian/Move sysusers.d sysctl.d binfmt.d modules load.d back to .patch | (download)

src/core/systemd.pc.in | 8 4 + 4 - 0 !
src/libsystemd/sd-path/sd-path.c | 8 4 + 4 - 0 !
2 files changed, 8 insertions(+), 8 deletions(-)

 move sysusers.d/sysctl.d/binfmt.d/modules-load.d back to /usr

In Debian, late mounting of /usr is no longer supported, so it is safe
to install those files in /usr.
We want those facilities in /usr, not /, as this will make an eventual
switch to a merged-usr setup easier.

Closes: #971282

debian/systemctl do not shutdown immediately on scheduled shutdo.patch | (download)

src/systemctl/systemctl-compat-halt.c | 8 4 + 4 - 0 !
src/systemctl/systemctl-logind.c | 3 2 + 1 - 0 !
2 files changed, 6 insertions(+), 5 deletions(-)

 systemctl: do not shutdown immediately on scheduled shutdown

When, for whatever reason, a scheduled shutdown fails to be set, systemd
will proceed with immediate shutdown without allowing the user to react.
This is counterintuitive because when a scheduled shutdown is issued,
it means the user wants to shutdown at a specified time in the future,
not immediately. This patch prevents the immediate shutdown and informs
the user that no action will be taken.

Fixes: #17575

debian/test disable DnsmasqClientTest.test_resolved_etc_hosts in.patch | (download)

test/networkd-test.py | 108 54 + 54 - 0 !
1 file changed, 54 insertions(+), 54 deletions(-)

 test: disable dnsmasqclienttest.test_resolved_etc_hosts in
 networkd-test.py

This test appears to be flaky.

See: #979716

debian/Downgrade a couple of warnings to debug.patch | (download)

src/core/load-fragment.c | 4 3 + 1 - 0 !
src/sysv-generator/sysv-generator.c | 2 1 + 1 - 0 !
src/tmpfiles/tmpfiles.c | 4 3 + 1 - 0 !
3 files changed, 7 insertions(+), 3 deletions(-)

 downgrade a couple of warnings to debug

If a package still ships only a SysV init script or if a service file or
tmpfile uses /var/run, downgrade those messages to debug. We can use
lintian to detect those issues.
For service files and tmpfiles in /etc, keep the warning, as those files
are typically added locally and aren't checked by lintian.

Closes: #981407