Yu Watanabe [Sun, 10 Dec 2023 07:03:52 +0000 (16:03 +0900)]
network/neighbor: add missing OOM check
JmbFountain [Sun, 10 Dec 2023 22:37:44 +0000 (23:37 +0100)]
Adding Trekstor Primebook C13 rotation to 60-sensor.hwdb (#30415)
* Adding Trekstor Primebook C13 rotation to 60-sensor.hwdb
Daan De Meyer [Sun, 10 Dec 2023 17:13:01 +0000 (18:13 +0100)]
mkosi: Copy /boot into the ESP as well
Newer mkosi will start installing UKIs to /boot so prepare for that
by making sure we also copy /boot into the ESP.
Luca Boccassi [Sun, 10 Dec 2023 18:42:24 +0000 (18:42 +0000)]
Merge pull request #30406 from yuwata/resolve-clean-exit
resolve: make resolved exit cleanly
Luca Boccassi [Sun, 10 Dec 2023 14:13:37 +0000 (14:13 +0000)]
Merge pull request #30404 from yuwata/network-peer
network/route: fix reachability check when peer address is specified
Luca Boccassi [Sun, 10 Dec 2023 12:54:17 +0000 (12:54 +0000)]
Merge pull request #30407 from yuwata/network-clean-exit
network: make networkd exit cleanly
Yu Watanabe [Wed, 6 Dec 2023 05:41:42 +0000 (14:41 +0900)]
test: update log message and use SYNTHETIC_ERRNO()
Follow-up for
ce5a6d5307568671cec7c253e984ffc0eafa726b.
Addresses https://github.com/systemd/systemd/pull/30049#discussion_r1395453408.
Mike Yuan [Sun, 10 Dec 2023 11:05:27 +0000 (19:05 +0800)]
elf2efi: remove outdated comment mentioning linker script
Follow-up for
142f0c61a37091e233b80f02375cff1114dab24a
Yu Watanabe [Sun, 10 Dec 2023 05:33:48 +0000 (14:33 +0900)]
resolve: fix wrong error cause assignment to log_debug_errno()
Fixes #30392.
Mike Yuan [Fri, 8 Dec 2023 18:22:04 +0000 (02:22 +0800)]
core/exec-invoke: sigwait() returns positive errno and never EINTR
Follow-up for
5b6319dceedd81f3f1ce7eb70ea5defaef43bcec (gosh this is
ancient), and effectively reverts
3dead8d925ea9db1fbd65b702b6b807e49ddeacf.
sigwait() is documented to "suspend execution of the calling thread
until one of the signals specified in the signal set becomes pending".
And the only error it returns is EINVAL, when "set contains an invalid
signal number". Therefore, there's no need to run it in a loop or
to check for runtime error.
Yu Watanabe [Thu, 7 Dec 2023 05:57:29 +0000 (14:57 +0900)]
test-network: check if networkd exits cleanly
Yu Watanabe [Thu, 7 Dec 2023 05:45:07 +0000 (14:45 +0900)]
network/ipv4ll: do not start sd-ipv4ll on exit
When assert_return() is critical, the following assertion is triggered
on exit:
---
#0 0x00007f8b1f6b0884 in __pthread_kill_implementation () from target:/lib64/libc.so.6
#1 0x00007f8b1f65fafe in raise () from target:/lib64/libc.so.6
#2 0x00007f8b1f64887f in abort () from target:/lib64/libc.so.6
#3 0x00007f8b208d02d6 in log_assert_failed (text=0x7f8b210009e0 "e->state != SD_EVENT_FINISHED", file=0x7f8b20fff403 "src/libsystemd/sd-event/sd-event.c",
line=1252, func=0x7f8b21004400 <__func__.154> "sd_event_add_io") at ../src/basic/log.c:948
#4 0x00007f8b208d0457 in log_assert_failed_return (text=0x7f8b210009e0 "e->state != SD_EVENT_FINISHED",
file=0x7f8b20fff403 "src/libsystemd/sd-event/sd-event.c", line=1252, func=0x7f8b21004400 <__func__.154> "sd_event_add_io") at ../src/basic/log.c:967
#5 0x00007f8b20c7d102 in sd_event_add_io (e=0x617000000080, ret=0x60c000000a20, fd=11, events=1, callback=0x7dfd85 <ipv4acd_on_packet>,
userdata=0x60c000000a00) at ../src/libsystemd/sd-event/sd-event.c:1252
#6 0x00000000007e3934 in sd_ipv4acd_start (acd=0x60c000000a00, reset_conflicts=true) at ../src/libsystemd-network/sd-ipv4acd.c:597
#7 0x00000000007e72b9 in ipv4ll_start_internal (ll=0x6080000006a0, reset_generation=true) at ../src/libsystemd-network/sd-ipv4ll.c:278
#8 0x00000000007e7462 in sd_ipv4ll_start (ll=0x6080000006a0) at ../src/libsystemd-network/sd-ipv4ll.c:298
#9 0x00000000006047a1 in dhcp4_handler (client=0x617000000400, event=0, userdata=0x61a000000680) at ../src/network/networkd-dhcp4.c:1183
#10 0x000000000075b1ed in client_notify (client=0x617000000400, event=0) at ../src/libsystemd-network/sd-dhcp-client.c:783
#11 0x000000000075bf8d in client_stop (client=0x617000000400, error=0) at ../src/libsystemd-network/sd-dhcp-client.c:821
#12 0x000000000077710f in sd_dhcp_client_stop (client=0x617000000400) at ../src/libsystemd-network/sd-dhcp-client.c:2388
#13 0x000000000065cdd1 in link_stop_engines (link=0x61a000000680, may_keep_dhcp=true) at ../src/network/networkd-link.c:336
#14 0x000000000041f214 in manager_free (m=0x618000000080) at ../src/network/networkd-manager.c:613
#15 0x00000000004124e3 in manager_freep (p=0x7f8b1c800040) at ../src/network/networkd-manager.h:128
#16 0x00000000004139f6 in run (argc=1, argv=0x7ffffe4522e8) at ../src/network/networkd.c:24
#17 0x0000000000413b20 in main (argc=1, argv=0x7ffffe4522e8) at ../src/network/networkd.c:119
---
Prompted by https://github.com/systemd/systemd/pull/30049#issuecomment-
1844087965.
Yu Watanabe [Thu, 7 Dec 2023 06:19:10 +0000 (15:19 +0900)]
test: check if resolved exits cleanly
Yu Watanabe [Thu, 7 Dec 2023 05:28:12 +0000 (14:28 +0900)]
resolve: do not trigger assertion on exit
By making assert_return() critical, we observe the following:
---
Program received signal SIGABRT, Aborted.
0x00007f01320b0884 in __pthread_kill_implementation () from /lib64/libc.so.6
(gdb) bt
#0 0x00007f01320b0884 in __pthread_kill_implementation ()
from /lib64/libc.so.6
#1 0x00007f013205fafe in raise () from /lib64/libc.so.6
#2 0x00007f013204887f in abort () from /lib64/libc.so.6
#3 0x00007f01338d02d6 in log_assert_failed (
text=0x7f01340009e0 "e->state != SD_EVENT_FINISHED",
file=0x7f0133fff403 "src/libsystemd/sd-event/sd-event.c", line=1399,
func=0x7f01340045a0 <__func__.148> "sd_event_add_time")
at ../src/basic/log.c:948
#4 0x00007f01338d0457 in log_assert_failed_return (
text=0x7f01340009e0 "e->state != SD_EVENT_FINISHED",
file=0x7f0133fff403 "src/libsystemd/sd-event/sd-event.c", line=1399,
func=0x7f01340045a0 <__func__.148> "sd_event_add_time")
at ../src/basic/log.c:967
#5 0x00007f0133c7ed83 in sd_event_add_time (e=0x617000022280,
ret=0x610000007e98, clock=7, usec=
24054941030, accuracy=0,
callback=0x4625b4 <on_announcement_timeout>, userdata=0x610000007e40)
at ../src/libsystemd/sd-event/sd-event.c:1399
#6 0x00007f0133c7f725 in sd_event_add_time_relative (e=0x617000022280,
ret=0x610000007e98, clock=7, usec=
1000000, accuracy=0,
callback=0x4625b4 <on_announcement_timeout>, userdata=0x610000007e40)
at ../src/libsystemd/sd-event/sd-event.c:1462
#7 0x0000000000464cac in dns_scope_announce (scope=0x610000007e40, goodbye=true) at ../src/resolve/resolved-dns-scope.c:1530
#8 0x0000000000504d08 in link_free (l=0x612000023d40) at ../src/resolve/resolved-link.c:83
#9 0x000000000052dbbd in manager_free (m=0x619000000a80) at ../src/resolve/resolved-manager.c:697
#10 0x0000000000562328 in manager_freep (p=0x7f012f800040) at ../src/resolve/resolved-manager.h:198
#11 0x000000000056315a in run (argc=1, argv=0x7fff22b06468) at ../src/resolve/resolved.c:25
#12 0x0000000000563284 in main (argc=1, argv=0x7fff22b06468) at ../src/resolve/resolved.c:99
---
Prompted by https://github.com/systemd/systemd/pull/30049#issuecomment-
1844087965.
Yu Watanabe [Sun, 10 Dec 2023 05:26:30 +0000 (14:26 +0900)]
Yu Watanabe [Sun, 10 Dec 2023 05:25:31 +0000 (14:25 +0900)]
Mike Yuan [Fri, 8 Dec 2023 16:06:16 +0000 (00:06 +0800)]
core/executor: do destruct static variables and selinux before exiting
I was wondering why I couldn't trigger the assertion in safe_fclose()
when submitting #30251. It turned out that the static destructor was
not run at all :/
Replace main() with a minimized version of main-func.h. This also
prevents emitting negative exit codes.
Yu Watanabe [Sun, 10 Dec 2023 05:11:05 +0000 (14:11 +0900)]
Merge pull request #30399 from YHNdnzj/memory-accounting-always-peak
systemctl-show: always show memory peak if available
Mike Yuan [Sat, 9 Dec 2023 14:34:43 +0000 (22:34 +0800)]
hibernate-util: de-duplicate clear_efi_hibernate_location
Yu Watanabe [Sun, 10 Dec 2023 05:07:37 +0000 (14:07 +0900)]
Merge pull request #30400 from bluca/coverity
Assorted coverity fixes
Yu Watanabe [Sun, 10 Dec 2023 05:04:28 +0000 (14:04 +0900)]
test-network: add test case for issue #30403
Yu Watanabe [Sun, 10 Dec 2023 04:56:46 +0000 (13:56 +0900)]
network/route: fix reachability check when peer address is specified
When an address with peer address is specified, the kernel by default
adds the prefix route for the peer address. When ManageForeignRoute=no
is set, then we also needs to check the prefix for the peer address.
Fixes #30403.
Luca Boccassi [Sat, 9 Dec 2023 13:10:18 +0000 (13:10 +0000)]
test-login: remove dead code
HANDLE_SLEEP is == _HANDLE_ACTION_SLEEP_LAST and the loop is bounded
by < _HANDLE_ACTION_SLEEP_LAST, so no need to check for it
CID#
1529414
Luca Boccassi [Sat, 9 Dec 2023 13:04:51 +0000 (13:04 +0000)]
logind: use ASSERT_PTR to validate result before use
handle_action_lookup() in general can return NULL, but not
here as the handle is checked before, so add an assert.
CID#
1529415
CID#
1529416
Luca Boccassi [Sat, 9 Dec 2023 12:58:48 +0000 (12:58 +0000)]
systemctl: fix copy/paste
on_circle is set twice to the same value
CID#
1529418
Luca Boccassi [Sat, 9 Dec 2023 12:09:42 +0000 (12:09 +0000)]
journal-remote: set upper length bound when parsing incoming headers
CID#
1529420
Mike Yuan [Sat, 9 Dec 2023 12:19:57 +0000 (20:19 +0800)]
systemctl-show: always show memory peak if available
Mike Yuan [Sat, 9 Dec 2023 12:10:31 +0000 (20:10 +0800)]
core/cgroup: cache the last memory usage values before destroying cgroup
Currently, memory accounting values are only cached if it was queued
at least once before destroying cgroup. Let's always cache it like
what we already do for CPU usage.
Preparation for later changes.
Luca Boccassi [Sat, 9 Dec 2023 11:56:50 +0000 (11:56 +0000)]
mount: check that MountParameters is valid before use
Follow-up for
6c75eff6afd90
CID#
1530430
Florian Schmaus [Sat, 9 Dec 2023 11:42:17 +0000 (12:42 +0100)]
NEWS: fix typo s/show/shown/
Luca Boccassi [Sat, 9 Dec 2023 11:06:37 +0000 (11:06 +0000)]
Merge pull request #30387 from mrc0mmand/TEST-17-tweaks
test: a couple of tweaks for TEST-17-UDEV
Mike Yuan [Sat, 9 Dec 2023 11:04:07 +0000 (19:04 +0800)]
Merge pull request #30384 from YHNdnzj/rename-process
core/executor: save argv for later use by rename_process()
Yu Watanabe [Sat, 9 Dec 2023 09:54:46 +0000 (18:54 +0900)]
Merge pull request #30362 from mrc0mmand/cat-highlight-directives
shared: highlight directives when dumping configs
Zbigniew Jędrzejewski-Szmek [Fri, 8 Dec 2023 17:40:15 +0000 (18:40 +0100)]
Revert "packit: don't take ownership of /etc/ssh/sshd_config.d/"
This reverts commit
9f7d1899235a237ba7a6000479cbf3965b224fd9.
systemd.spec was updated in [1], so we don't need this here anymore.
[1] https://src.fedoraproject.org/rpms/systemd/c/
245a2587e095a08a61af4e48f7daa57dee3629e6
Frantisek Sumsal [Fri, 8 Dec 2023 17:38:41 +0000 (18:38 +0100)]
test: backup /etc/udev/udev.conf only if it exists
On Fedora systemd recently moved all of its configuration files to
/usr/lib/ [0], so make sure we account for this case as well.
[ 42.450325] testsuite-17.sh[800]: + mkdir -p /run/udev/rules.d
[ 42.466504] testsuite-17.sh[800]: + cp -f /etc/udev/udev.conf /etc/udev/udev.conf.bckp
[ 42.503348] testsuite-17.sh[802]: cp: cannot stat '/etc/udev/udev.conf': No such file or directory
[0] https://src.fedoraproject.org/rpms/systemd/c/
29eb35530b29232eed65718d0cd96d67cd7ffd6b?branch=rawhide
Frantisek Sumsal [Fri, 8 Dec 2023 17:01:42 +0000 (18:01 +0100)]
test: reset systemd-udevd.service restart counter
Since we restart systemd-udevd here a couple of times, we might hit the
rate limit in later tests:
[ 26.028355] testsuite-17.sh[2074]: + udevadm control -e
[ 26.028355] testsuite-17.sh[2074]: + udevadm control -l emerg
[ 26.126160] systemd[1]: systemd-udevd.service: Start request repeated too quickly.
[ 26.126213] systemd[1]: systemd-udevd.service: Failed with result 'start-limit-hit'.
[ 26.140310] systemd[1]: Failed to start systemd-udevd.service.
[ 26.140897] systemd[1]: systemd-udevd-control.socket: Failed with result 'service-start-limit-hit'.
[ 26.141286] systemd[1]: systemd-udevd-kernel.socket: Failed with result 'service-start-limit-hit'.
[ 26.142225] testsuite-17.sh[2074]: + udevadm control -l alert
[ 26.149206] udevadm[2088]: Failed to send request to set log level: No such file or directory
Follow-up to:
6ef512c0bb
Mike Yuan [Fri, 8 Dec 2023 13:14:11 +0000 (21:14 +0800)]
core/executor: save argv for later use by rename_process()
Partially fixes #30352
Mike Yuan [Fri, 8 Dec 2023 11:46:53 +0000 (19:46 +0800)]
core/exec-invoke: voidify one rename_process call
Daan De Meyer [Thu, 7 Dec 2023 13:26:10 +0000 (14:26 +0100)]
repart: Don't look for --make-ddi= definitions inside --root=
It doesn't really make sense to go looking for these inside the
given root directory. While we should resolve specifiers and such
based on the given root directory, let's look up the image definitions
on the host system as there's a good chance they're coupled to the
repart version we're using so there's all kinds of chances for problems
if we use the definitions from the image we're building instead of those
from the host.
Luca Boccassi [Thu, 7 Dec 2023 23:19:36 +0000 (23:19 +0000)]
core: create workdir/upperdir when mounting a Type=overlay mount unit
So far we created the target directory, and the source for bind mounts,
but not workdir/upperdir for overlays, so it has to be done separately
and strictly before the unit is started, which is annoying. Check the
options when creating directories, and if upper/work directories are
specified, create them.
Frantisek Sumsal [Wed, 6 Dec 2023 15:24:21 +0000 (16:24 +0100)]
install: don't translate unit instances to paths when reenabling them
For unit instances install_info_discover() returns path to the template,
which then generates confusing errors when passed to
do_unit_file_enable():
~# build/systemctl --root=/tmp/systemctl-test.N9ysbz reenable templ1@two.service
Unit name: templ1@two.service; p: /etc/systemd/system/templ1@.service
Removed "/tmp/systemctl-test.N9ysbz/etc/systemd/system/services.target.wants/templ1@two.service".
Failed to reenable templ1@.service, destination unit services.target is a non-template unit.
This can also be seen with a different reproducer using getty@.service
and a simple bind mount to / - there's no error this time, but it tries
to create a symlink for the default instance (from DefaultInstance=tty1),
which is also incorrect:
~# SYSTEMD_LOG_LEVEL=debug systemctl --root /mnt/bindroot/ reenable getty@test.service
Symlink /mnt/bindroot/etc/systemd/system/getty.target.wants/getty@tty1.service → /usr/lib/systemd/system/getty@.service already exists
Follow-up to:
29a7c59abbe
Resolves: #24740
Luca Boccassi [Mon, 27 Nov 2023 23:32:31 +0000 (23:32 +0000)]
core: relax dependency on RootImage= storage from Requires= to Wants=
If a unit is running in an image and wants to survive a soft-reboot,
then it can't be deactivated by the storage of the image going away.
Relax the dependency to a Wants=. Access to the image is not needed
when the unit is running anyway, so downgrade to Wants=.
Luca Boccassi [Thu, 7 Dec 2023 22:19:11 +0000 (22:19 +0000)]
core: do not make private /dev/ read-only too soon
The read-only bit is flipped after setting up all the mounts, so that
bind mounts can be added. Remove the early config, and add a unit
test.
Fixes https://github.com/systemd/systemd/issues/30372
Daan De Meyer [Tue, 5 Dec 2023 13:56:00 +0000 (14:56 +0100)]
repart: Re-open file descriptor to partition target after mkfs
The mkfs binary might unlink the path we give it and replace it with
a new file so let's make sure that our fd points to any new file rather
than the old deleted file.
Specifically this fixes erofs partition generation.
Mike Yuan [Thu, 7 Dec 2023 15:14:35 +0000 (23:14 +0800)]
tmpfiles.d/systemd-nologin.conf: use f+ instead of F (deprecated)
Fixes #30368
Nick Rosbrook [Thu, 7 Dec 2023 21:21:51 +0000 (16:21 -0500)]
firstboot: remove /etc/localtime on --reset
The --reset option is supposed to remove all files configured by
firstboot, but currently it does not remove /etc/localtime.
aslepykh [Fri, 8 Dec 2023 01:54:52 +0000 (04:54 +0300)]
test: avoid NO_CAST.INTEGER_OVERFLOW in test-oomd-util (#30365)
The `.mem_total` variable has `uint64_t` type, therefore, when multiplying the number
`
20971512` by the number `1024` with the suffix `U`, we will not get the expected result of
`21,474,828,288`, since the number `
20971512` without an explicit type indication has
`uint32_t` type.
First, multiplication will occur in accordance with the `uint32_t` type; this operation will
cause a **type overflow**, and only then will this result be assigned to a `uint64_t` type
variable.
It's worth adding the `UL` suffix to the number `
20971512` to avoid **overflow**.
Found by Linux Verification Center (portal.linuxtesting.ru) with SVACE.
Author A. Slepykh.
Mike Yuan [Thu, 7 Dec 2023 16:49:17 +0000 (00:49 +0800)]
various: don't log synthetic EIO for fwrite
Follow-up for
f9568765d4d3d57de1ec01d85f0a0682920f4d10
Shulhan [Thu, 7 Dec 2023 13:58:58 +0000 (20:58 +0700)]
man: correct the path for location of "machinectl edit" setting file
The correct path where setting file located should be
"under /etc/systemd/nspawn", not "under /etc".
Frantisek Sumsal [Thu, 7 Dec 2023 13:44:21 +0000 (14:44 +0100)]
analyze: dump system config files with highlighted sections/directives
Frantisek Sumsal [Thu, 7 Dec 2023 09:52:40 +0000 (10:52 +0100)]
shared: highlight directives when dumping configs
We already highlight sections and "de-highlight" comments, so let's add
the last piece of the puzzle and highlight the configuration directives
to visually distinguish them from the values.
Closes: #13416
Frantisek Sumsal [Thu, 7 Dec 2023 08:36:52 +0000 (09:36 +0100)]
packit: don't take ownership of /etc/ssh/sshd_config.d/
7e3607996a creates a symlink under /etc/ssh/sshd_config.d/ and with
current Rawhide RPM stuff the systemd RPM tries to take ownership of
that directory which conflicts with the openssh-server package. Let's
temporarily tweak the regex in split-files.py until this changes makes
it to Rawhide.
Yu Watanabe [Thu, 7 Dec 2023 06:47:30 +0000 (15:47 +0900)]
Merge pull request #30060 from poettering/analyze-archs
analyze: add "archs" verb that lists all known architectures
Frantisek Sumsal [Tue, 5 Dec 2023 16:38:25 +0000 (17:38 +0100)]
journalctl: don't skip over messages not matching the cursor
When --after-cursor=/--cursor-file= is used together with a journal
filter, we still skipped over the first matching entry even if it wasn't
the entry the cursor points at, thus missing one "valid" entry
completely. Let's fix this by checking if the entry cursor after seeking
matches the user provided cursor, and skip to the next entry only when
the cursors match.
Resolves: #30288
Yu Watanabe [Thu, 7 Dec 2023 04:23:06 +0000 (13:23 +0900)]
Merge pull request #30312 from yuwata/journal-cleanups
journal: several cleanups
Daan De Meyer [Tue, 5 Dec 2023 09:24:13 +0000 (10:24 +0100)]
nspawn: Check later whether to keep/drop CAP_NET_BIND_SERVICE
Currently the check doesn't take any settings from nspawn settings
files into account, so let's delay the check until after we've
loaded any settings file.
Daan De Meyer [Sun, 3 Dec 2023 19:19:08 +0000 (20:19 +0100)]
gpt-auto-generator: Pass cryptsetup credentials to cryptsetup
cryptsetup reads a bunch of credentials now but we don't pass import
those in any service units yet. Let's pass through all cryptsetup
prefixed credentials to the systemd-cryptsetup@root instance.
Zbigniew Jędrzejewski-Szmek [Wed, 6 Dec 2023 21:29:43 +0000 (22:29 +0100)]
Merge pull request #30322 from YHNdnzj/hibernate-improvements
A few improvements for hibernate-util/hibernate-resume
Zbigniew Jędrzejewski-Szmek [Wed, 6 Dec 2023 21:28:34 +0000 (22:28 +0100)]
Merge pull request #30316 from mrc0mmand/revert-journal-upload-user
Revert "sysusers.d: create the user for systemd-journal-upload.service"
Zbigniew Jędrzejewski-Szmek [Wed, 6 Dec 2023 21:28:02 +0000 (22:28 +0100)]
Merge pull request #30302 from keszybz/systemd-edit-stdin
systemctl edit --stdin
Zbigniew Jędrzejewski-Szmek [Wed, 6 Dec 2023 21:27:01 +0000 (22:27 +0100)]
Merge pull request #30085 from YHNdnzj/networkctl-edit-runtime
networkctl: introduce --runtime for editing network config under /run/
Lennart Poettering [Wed, 6 Dec 2023 21:26:40 +0000 (22:26 +0100)]
Merge pull request #30271 from YHNdnzj/executor-cloexec
fdset,core/executor: ocloexecification ™️
Zbigniew Jędrzejewski-Szmek [Wed, 6 Dec 2023 21:25:42 +0000 (22:25 +0100)]
Merge pull request #29987 from yuwata/network-bridge-vlan
network: remove unnecessary bridge vlan IDs
Zbigniew Jędrzejewski-Szmek [Wed, 6 Dec 2023 21:25:13 +0000 (22:25 +0100)]
Merge pull request #29853 from YHNdnzj/sleep-automated
logind: support Sleep() that automatically choose a sleep operation
Lennart Poettering [Wed, 6 Dec 2023 21:24:28 +0000 (22:24 +0100)]
Merge pull request #30338 from keszybz/fwrite-error-handling
Fix fwrite() error handling
Luca Boccassi [Wed, 6 Dec 2023 18:33:03 +0000 (18:33 +0000)]
README.md: irc:// URLs are not rendered as links by markdown on Github
Use the webchat link and spell out the channel and server instead
Samuel BF [Thu, 5 Oct 2023 19:39:45 +0000 (21:39 +0200)]
journal-gatewayd: add since/until parameters for /entries
Request with Range header like 'entries=<cursor>:' (with a colon at the end,
invalid syntax per the doc), is now rejected with error 400 Bad Request.
fix #4883
Roland Hieber [Mon, 18 Sep 2023 09:52:06 +0000 (11:52 +0200)]
udev: generate system-unique storage symlinks using device path
When the same disk image is written to multiple storage units, for
example an external SD card and an internal eMMC, the symlinks in
/dev/disk/by-{label,uuid,partlabel,partuuid}/ are no longer unique, and
will point to the device that is probed last.
Adressing partitions via labels and UUIDs is nice to work with, and
depending on the use case, it might also be more robust than using the
symlinks in /dev/disk/by-path/ containing the partition number. Combine
the two approaches to create unique symlinks containing both the device
path as well as the respective UUIDs or labels, and throw in a symlink
using the devpath and the partition number for the sake of completeness.
For an exemplary GPT-partitioned disk at "platform-
2198000.mmc" with a
partition containing an ext4 file system, this might create symlinks of
the following form:
/dev/disk/by-path/platform-
2198000.mmc-part/by-partnum/1
/dev/disk/by-path/platform-
2198000.mmc-part/by-partuuid/
e5a75233-3b90-4aec-8075-
b4dd7132b48d
/dev/disk/by-path/platform-
2198000.mmc-part/by-partlabel/rootfs
/dev/disk/by-path/platform-
2198000.mmc-part/by-uuid/
b2c92f24-8215-4680-b931-
f423aae5f1c9
/dev/disk/by-path/platform-
2198000.mmc-part/by-label/rootfs
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
Zbigniew Jędrzejewski-Szmek [Wed, 6 Dec 2023 21:20:13 +0000 (22:20 +0100)]
Merge pull request #30353 from bluca/news
Version bumps
Lennart Poettering [Mon, 20 Nov 2023 13:52:31 +0000 (14:52 +0100)]
analyze: teach "exit-status" verb json output too
Lennart Poettering [Mon, 20 Nov 2023 13:50:56 +0000 (14:50 +0100)]
analyze: teach "capability" verb JSON output too
Lennart Poettering [Thu, 16 Nov 2023 15:08:15 +0000 (16:08 +0100)]
analyze: add "architectures" verb that lists all known architectures
Mike Yuan [Sat, 25 Nov 2023 14:10:16 +0000 (22:10 +0800)]
systemctl-whoami: use pidfd to refer to processes
While at it, rephrase the output a bit. Before this commit, if
the pid doesn't exist, we output something hard to interpret -
"Failed to get unit for ourselves".
Lennart Poettering [Wed, 6 Dec 2023 21:13:12 +0000 (22:13 +0100)]
Merge pull request #30101 from poettering/underline-rework
systemctl: "list-units" table tweaks
Lennart Poettering [Wed, 22 Nov 2023 09:55:20 +0000 (10:55 +0100)]
recurse-dir: add new readdir_all_at() helper
This new helper combines open() with readdir_all() to simplify a few
callers.
Luca Boccassi [Wed, 6 Dec 2023 21:12:36 +0000 (21:12 +0000)]
Merge pull request #30295 from yuwata/hostnamectl-machine-id
hostnamectl: read machine ID and boot ID through DBus
Lennart Poettering [Wed, 6 Dec 2023 21:12:17 +0000 (22:12 +0100)]
Merge pull request #30183 from poettering/nlcr
NL → CRNL conversion fixes when logging at the same time as ptyfwd runs
Lennart Poettering [Fri, 24 Nov 2023 15:41:47 +0000 (16:41 +0100)]
show-status: suffix output ith CRNL rather than just NL
This is similar to #30183 but focusses on the status output rather than
the log output.
Since the status output always goes to a TTY we don't have to
conditionalize things on isatty().
Fixes: #30184
Lennart Poettering [Wed, 29 Nov 2023 16:45:06 +0000 (17:45 +0100)]
user-util: add new helper fully_set_uid_gid()
Usually when we do setresuid() we also do setesgid() and setgroups().
Let's add a common helper that does all three, and use it everywhere.
Lennart Poettering [Mon, 20 Nov 2023 10:51:47 +0000 (11:51 +0100)]
mime: register confext/sysext images in shared-mime-info
This make them recognized by file managers and stuff. Maybe one day we
should properly register mime types in the "vnd." namespace with IANA,
but I am too lazy to deal with the bureaucracy for that, hence let's
stick with the x. namespace for now.
This defines confext/sysext DDIs as subtype of:
https://www.iana.org/assignments/media-types/application/vnd.efi.img
Which is what everyone appears to use for raw disk images, in particular
if they contain a GPT partition table.
Lennart Poettering [Thu, 16 Nov 2023 17:47:52 +0000 (18:47 +0100)]
userdbctl: enable ssh-authorized-keys logic by default
sshd now supports config file drop-ins, hence let's install one to hook
up "userdb ssh-authorized-keys", so that things just work.
We put the drop-in relatively early, so that other drop-ins generally
will override this.
Ideally sshd would support such drop-ins in /usr/ rather than /etc/, but
let's take what we can get. It's not that sshd's upstream was
particularly open to weird ideas from Linux people.
Lennart Poettering [Wed, 29 Nov 2023 17:52:28 +0000 (18:52 +0100)]
pid1: add ProtectSystem= as system-wide configuration, and default it to true in the initrd
This adds a new ProtectSystem= setting that mirrors the option of the
same of services, but in a more restrictive way. If enabled will remount
/usr/ to read-only, very early at boot. Takes a special value "auto"
(which is the default) which is equivalent to true in the initrd, and
false otherwise.
Unlike the per-service option we don't support full/strict modes, but
the door is open to eventually support that too if it makes sense. It's
not entirely trivial though as we have very little mounted this early,
and hence the mechanism might not apply 1:1. Hence in this PR is a
conservative first step.
My primary goal with this is to lock down initrds a bit, since they
conceptually are mostly immutable, but they are unpacked into a mutable
tmpfs. let's tighten the screws a bit on that, and at least make /usr/
immutable.
This is particularly nice on USIs (i.e. Unified System Images, that pack
a whole OS into a UKI without transitioning out of it), such as
diskomator.
Luca Boccassi [Wed, 6 Dec 2023 21:07:42 +0000 (21:07 +0000)]
RELEASE: mark a few items for the final step
Doesn't make much sense to push RCs to the stable repository, just
do that in the final tag push
Daan De Meyer [Wed, 6 Dec 2023 21:07:41 +0000 (22:07 +0100)]
Merge pull request #30241 from poettering/journalctl-short-file-switch
journalctl: add short option "-i" for "--file="
Luca Boccassi [Wed, 6 Dec 2023 21:07:16 +0000 (21:07 +0000)]
NEWS: open for v256
Zbigniew Jędrzejewski-Szmek [Tue, 5 Dec 2023 14:56:54 +0000 (15:56 +0100)]
coredump: keep core files for two weeks
We have two mechanisms that remove old coredumps: systemd-coredump has
parameters based on disk use / remaining disk free, and systemd-tmpfiles does
cleanup based on time. The first mechanism should prevent us from using too much
disk space in case something is crashing continuously or there are very large
core files.
The limit of 3 days makes it likely that the core file will be gone by the time
the admin looks at the issue. E.g. if something crashes on Friday, the coredump
would likely be gone before people are back on Monday to look at it.
Alan Liang [Sun, 3 Dec 2023 05:49:06 +0000 (13:49 +0800)]
core: add specifier expansion to AllowedCPUs= and friends
Topi Miettinen [Mon, 4 Dec 2023 19:49:12 +0000 (21:49 +0200)]
network/networkd-address: don't set up firewall rules here
Don't set up firewall rules when we're just initializing the firewall context
for NFT sets.
Fixes: #30257
Mike Yuan [Sat, 2 Dec 2023 07:23:51 +0000 (15:23 +0800)]
shared/killall: correctly warn about rootfs daemon's root
Follow-up for
9e615117dab5ede72eec22bf6369e0138f9dace5
We'll typically send signals to all remaining processes in the following
cases:
1. pid1 (in initrd) when transitioning from initrd to sysroot: SIGTERM
2. pid1 (in sysroot) before transitioning back to initrd (exitrd): SIGTERM + SIGKILL
3. systemd-shutdown (in exitrd): SIGTERM + SIGKILL
'warn_rootfs' is set to true only when we're not in initrd and we're
sending SIGKILL, which means the second case. So, we want to emit the
warning when the root of the storage daemon IS the same as that of pid1,
rather than the other way around.
The condition is spuriously reversed in the offending commit.
Frantisek Sumsal [Wed, 6 Dec 2023 10:03:06 +0000 (11:03 +0100)]
loginctl: show a nicer error message when no session/seat is available
When calling loginctl {seat,session}-status without arguments, show a nicer
error message in case there's no suitable session/seat attached to the calling
tty.
Before:
~# loginctl seat-status
Could not get properties: Unknown object '/org/freedesktop/login1/seat/auto'.
~# systemd-run -q -t loginctl seat-status
Could not get properties: Unknown object '/org/freedesktop/login1/seat/auto'.
~# systemd-run -q -t loginctl session-status
Could not get properties: Unknown object '/org/freedesktop/login1/session/auto'.
After:
~# build/loginctl seat-status
Failed to get path for seat 'auto': Session '1' has no seat.
~# systemd-run -q -t build/loginctl seat-status
Failed to get path for seat 'auto': Caller does not belong to any known session and doesn't own any suitable session.
~# systemd-run -q -t build/loginctl session-status
Failed to get path for session 'auto': Caller does not belong to any known session and doesn't own any suitable session.
Resolves: #25199
Daan De Meyer [Wed, 6 Dec 2023 21:02:01 +0000 (22:02 +0100)]
Merge pull request #30340 from yuwata/repart-error-handling-ftruncate
repart: fix coding style of error handling
Daan De Meyer [Wed, 6 Dec 2023 21:01:41 +0000 (22:01 +0100)]
Merge pull request #30343 from keszybz/ukify-genkey
Raise error if 'ukify genkey' is called with no output arguments
Luca Boccassi [Wed, 6 Dec 2023 21:01:13 +0000 (21:01 +0000)]
Merge pull request #30332 from bluca/softreboot_pivot_in_place
switch-root: also check that mount IDs are the same, not just inodes
Luca Boccassi [Wed, 6 Dec 2023 21:00:37 +0000 (21:00 +0000)]
Merge pull request #30214 from bluca/wants_mounts_for
Add WantsMountsFor= and use it in the cryptsetup generator
Luca Boccassi [Wed, 6 Dec 2023 20:32:40 +0000 (20:32 +0000)]
NEWS: finalize for v255
Luca Boccassi [Wed, 6 Dec 2023 20:29:04 +0000 (20:29 +0000)]
Merge pull request #30334 from DaanDeMeyer/repart-fixes
repart: Add Minimize=best to --make-ddi= partition definitions
Lennart Poettering [Wed, 6 Dec 2023 18:20:35 +0000 (19:20 +0100)]
README: mention Matrix channel
Luca Boccassi [Wed, 6 Dec 2023 16:57:29 +0000 (16:57 +0000)]
Merge pull request #30341 from bluca/news
Update hwdb and NEWS
Yu Watanabe [Sat, 2 Dec 2023 10:26:29 +0000 (19:26 +0900)]
hostname: expose machine ID and boot ID through DBus
Fixes #30293.
Yu Watanabe [Sat, 2 Dec 2023 10:14:35 +0000 (19:14 +0900)]
hostnamectl: do not show local machine ID and boot ID when requested to show information about remote host
Prompted by #30293.