Commit Graph
100 Commits
Author SHA1 Message Date
Yu Watanabe c195fdba12 test: Add CHID matching test (#35532) 2024-12-17 13:21:04 +09:00
Yu Watanabe 47f58740aa core: make ProtectHostname= optionally take a hostname (#35626)
Closes #35623.
2024-12-17 13:20:08 +09:00
Yu Watanabe b58b00e4c3 systemctl-edit: ignore ENOENT from unit_is_masked()
If a specified unit does not exist, then it is definitely not masked.

Fixes #35632.
2024-12-17 13:19:35 +09:00
Yu Watanabe a4d1891475 meson: allow to customize the access mode for tty/pts devices
Then, switch the default value to "0600", due to general security
concerns about terminals being written to by other users.

Closing #35599.
2024-12-16 21:36:07 +00:00
Yu Watanabe 7c4e351861 boot: introduce smbios_raw_info_get_cached() to cache populated SMBIOS raw info
Then, drop cache in smbios_info_populate().
No functional change, just refactoring and preparation for later commit.
2024-12-16 21:02:54 +03:00
Yu Watanabe e76fcd0e40 core: make ProtectHostname= optionally take a hostname
Closes #35623.
2024-12-16 23:55:44 +09:00
Yu Watanabe 0d298a771a core/exec-invoke: fix ProtectHostname= value in log message
Follow-up for cf48bde7ae.
2024-12-16 23:55:44 +09:00
Yu Watanabe d0a63cf041 TEST-50-DISSECT: add test case with systemd-notify
This also merges the previous test cases into one.

Follow-up for 284dd31e9d and
498c20fad6.
2024-12-16 11:22:39 +00:00
Yu Watanabe a763364cc9 ptyfwd: fix logic of OSC sequence termination
Previously, when an OSC sequence is terminated with \x1b\x5c, configured
OSC sequence would be inserted between the two characters, rather
than after the two.

Fixes a bug introduced by d848a94998.
Fixes #35631.
2024-12-16 19:21:43 +09:00
Yu Watanabe 9bc2acad8f ptyfwd: clean up logic of color state transition in pty_forward_ansi_process()
Drop all 'continue', to make the logic easy to understand.
No functional change, just refactoring and preparation for later commit.
2024-12-16 16:36:56 +09:00
Yu Watanabe 78ef395947 test/README: Environment= setting for mkosi should be in [Build] section
Otherwise, we get the following warning:

mkosi.local.conf: Setting Environment should be configured in [Build], not [Content].
2024-12-16 02:03:50 +09:00
Yu Watanabe 26f65dc0c7 TEST-35-LOGIN: check only tty session
For some reasons, another session logind-test-user may be started.
===
Dec 13 07:04:16 systemd-logind[2140]: Got message type=method_call ... member=CreateSessionWithPIDFD ...
(snip)
Dec 13 07:04:16 systemd-logind[2140]: New session 15 of user logind-test-user.
Dec 13 07:04:16 systemd-logind[2140]: VT changed to 2
Dec 13 07:04:16 systemd-logind[2140]: rfkill: Found udev node /dev/rfkill for seat seat0
Dec 13 07:04:16 systemd-logind[2140]: udmabuf: Found udev node /dev/udmabuf for seat seat0
Dec 13 07:04:16 systemd-logind[2140]: Found static node /dev/snd/timer for seat seat0
Dec 13 07:04:16 systemd-logind[2140]: Found static node /dev/snd/seq for seat seat0
Dec 13 07:04:16 systemd-logind[2140]: Changing ACLs at /dev/snd/timer for seat seat0 (uid 0→4712 add)
Dec 13 07:04:16 systemd-logind[2140]: Changing ACLs at /dev/rfkill for seat seat0 (uid 0→4712 add)
Dec 13 07:04:16 systemd-logind[2140]: Changing ACLs at /dev/udmabuf for seat seat0 (uid 0→4712 add)
Dec 13 07:04:16 systemd-logind[2140]: Changing ACLs at /dev/snd/seq for seat seat0 (uid 0→4712 add)
Dec 13 07:04:16 systemd[1]: user-4712.slice: Changed dead -> active
Dec 13 07:04:16 systemd[1]: user-4712.slice: Job 5951 user-4712.slice/start finished, result=done
Dec 13 07:04:16 systemd[1]: Created slice user-4712.slice.
Dec 13 07:04:16 systemd-logind[2140]: Electing new display for user logind-test-user
Dec 13 07:04:16 systemd-logind[2140]: Choosing session 15 in preference to -
(snip)
Dec 13 07:04:16 systemd-logind[2140]: Got message type=method_call ... member=CreateSessionWithPIDFD ...
(snip)
Dec 13 07:04:16 systemd-logind[2140]: New session 16 of user logind-test-user.
Dec 13 07:04:16 systemd-logind[2140]: Electing new display for user logind-test-user
Dec 13 07:04:16 systemd-logind[2140]: Ignoring session 16
===
Let's track only session for the user with tty, which we explicitly created.

Fixes #35597.
2024-12-15 21:10:03 +09:00
Yu Watanabe 3f1d499964 test-time-util: fix truncation of usec to sec
Also
- use ASSERT_XYZ() macros,
- log tzname[] on failure.
2024-12-14 15:23:52 +00:00
Yu Watanabe b8f49003d3 TEST-07-PID1: skip test cases that invokes unshare when running with sanitizers
Fixes #35546.
2024-12-14 19:47:47 +09:00
Yu Watanabe 7f14902cc2 mkosi: drop wrapper for unshare
This effectively reverts ef9a3241b3,
as it does not work.
2024-12-14 17:30:01 +09:00
Yu Watanabe 0bdcca5aee udev: move enums to udev-def.h
No functional change, just refactoring and preparation for later
commits.
2024-12-14 16:19:57 +09:00
Yu Watanabe a2840b9599 udev: move listen_fds() to udev-manager.c
Also
- drop redundant error message when manager_init() failed,
- close unexpected fds.

No functional change, just refactoring.
2024-12-14 16:19:57 +09:00
Yu Watanabe 7ab25935f3 udev: several coding style fixes
- use 'type* func()' rather than 'type *func()',
- merge variable declarations,
- etc.
2024-12-14 06:50:59 +00:00
Yu Watanabe 7edb1b42fc test-udev-spawn: migrate to use ASSERT_XYZ() 2024-12-14 06:47:14 +00:00
Yu Watanabe 46d9f19465 udev-builtin-kmod: log about unloading only when already loaded 2024-12-14 11:29:05 +09:00
Yu Watanabe 9c6c4ad173 udev-builtin: drop unnecessary 'initialized' flag
All builtin _init() functions can be called multiple times gracefully,
and _exit() can be called without _init() called.
2024-12-14 11:29:05 +09:00
Yu Watanabe 975115321f udev-builtin: use FOREACH_ELEMENT() macro 2024-12-14 11:29:05 +09:00
Yu Watanabe db09f8ad1b Replace array with magic indices with normal variables in vconsole-setup (#35181) 2024-12-14 10:49:01 +09:00
Yu Watanabe 3fbc35bf9a core: log disconnect on api and system busses, and dump list of subscribers (#35603)
Split out of #35406.
2024-12-14 10:20:35 +09:00
Yu Watanabe beed1447b9 log: raise log level to LOG_DEBUG if $DEBUG_INVOCATION=1 is set (#35606)
Let's implement our own protocols, and raise the log level to debug if
DEBUG_INVOCATION=1 is set.

Follow-up for: 7d8bbfbe08
2024-12-14 10:16:53 +09:00
Yu Watanabe 8746c17e15 network: add MPLSRouting= setting to enable MPLS routing (#35495)
Closing #35487.
2024-12-14 09:35:19 +09:00
Yu Watanabe af44a16ec7 test-network: add test case for MPLSRouting=yes 2024-12-13 15:36:45 +00:00
Yu Watanabe 10a768443a network: introduce MPLSRouting= to enable MPLS routing
Closing #35487.
2024-12-13 15:36:45 +00:00
Yu Watanabe dcd333168e sysctl-util: support AF_MPLS
To support writing/reading e.g. /proc/sys/net/mpls/conf/eth0/input .
2024-12-13 15:36:45 +00:00
Yu Watanabe ef9a3241b3 mkosi: wrap unshare command when running with sanitizers
Follow-up for 219a6dbbf3.
Fixes #35546.
2024-12-12 19:34:07 +09:00
Yu Watanabe 2e6025b1b1 core/namespace: use ProtectHostname in NamespaceParameters
To make the type of NamespaceParameters.protect_hostname consistent
with the one in ExecContext.

Addresses https://github.com/systemd/systemd/pull/35447#discussion_r1880372452.
Fixes #35566.
2024-12-12 19:33:34 +09:00
Yu Watanabe 54944339e5 bash-completion/creds: generate suggestions by systemd-creds itself
Follow-ups for 783f794e89.
2024-12-12 15:25:38 +09:00
Yu Watanabe 831bbaf5cd creds: support --transcode=help and --with-key=help 2024-12-12 15:25:34 +09:00
Yu Watanabe 2a92e0bc6c string-table: make DUMP_STRING_TABLE() returns 0
Then, we can use it as
===
  return DUMP_STRING_TABLE(...);
===
2024-12-12 15:21:16 +09:00
Yu Watanabe 66d2c693ac tpm2-util: allow to control if legend and/or footer shown by tpm2_list_devices() 2024-12-12 15:21:16 +09:00
Yu Watanabe 945d1e5189 ci: enable linter for generate-sym-test.py 2024-12-12 15:04:29 +09:00
Yu Watanabe 0b39dc23ba test: also generate list of symbols from header files
To make the generated tests able to detect issues like #35554.
2024-12-12 15:04:28 +09:00
Yu Watanabe 6e399ece1f test: modernize generate-sym-test.py 2024-12-12 15:03:36 +09:00
Yu Watanabe 5fcabde35b sd-json: properly export sd_json_variant_type_from_string() and _to_string()
These exist in the header file, but were not exporeted.

Continuation of e11f5aa722.
2024-12-12 13:08:35 +09:00
Yu Watanabe 9d8cb69e7f test: rename README.testsuite -> README.md 2024-12-12 12:02:19 +09:00
Yu Watanabe 1fe583861f README: drop CentOS CI badges
CentOS CIs are disabled after ead814a0b0.
2024-12-12 11:58:52 +09:00
Yu Watanabe fac5a5b747 polkit-agent: allow to invoke polkit agent even if STDIN is not a tty (#35431)
Closes #35018.
2024-12-12 10:32:02 +09:00
Yu Watanabe 46c26454bd exec-util: use strv_from_stdarg_alloca()
No functional change, just refactoring.
2024-12-12 08:35:16 +09:00
Yu Watanabe f0ace1655d exec-util: use open_terminal() in fork_agent() for safety 2024-12-12 08:35:16 +09:00
Yu Watanabe 90579fd0b3 exec-util: drop handling of ENXIO in opening /dev/tty
This effectively reverts 0bcf167900.

The handling is not necessary anymore after 61242b1f0f.
2024-12-12 08:35:16 +09:00
Yu Watanabe fc3691a70a exec-util: split out common checks before fork_agent() to can_fork_agent()
No functional change, just refactoring.
2024-12-12 08:32:42 +09:00
Yu Watanabe 388d6c5f37 polkit-agent: modernize code a bit
- Use _cleanup_close_pair_ attribute for the pipe FDs,
- Return earlier on failure in forking polkit agent.
2024-12-12 08:30:55 +09:00
Yu Watanabe 0f81c8406f exec-util: allow to invoke polkit/ask-password agent even if STDIN is not a tty
Closes #35018.
2024-12-12 08:30:55 +09:00
Yu Watanabe 4899255aa2 format-table: trivial cleanups (#35572) 2024-12-12 06:12:07 +09:00
Yu Watanabe 7e438055a6 pretty-print: don't use OSC 8 for incompatible URLs (#35223) 2024-12-12 05:43:36 +09:00
Yu Watanabe ab5de638e9 process-util: modernize is_main_thread(); make sure get_process_ppid() won't return ppid == 0 (#35561)
Split out from #35242
2024-12-12 05:16:04 +09:00
Yu Watanabe e53be91e5d libfido2-util: show also verity features when listing FIDO2 devices (#35295)
This way, users don't have to check those features using an external
program, or wait for later failure when trying to enroll using an
unsupported feature.

E.g.:

```
# systemd-cryptenroll --fido2-device list
PATH         MANUFACTURER PRODUCT               RK  CLIENTPIN UP  UV
/dev/hidraw2 Yubico       YubiKey OTP+FIDO+CCID yes no        yes no
```
2024-12-12 05:11:46 +09:00
Yu Watanabe bfff0f5ac8 Add credential support for mount units (#34732)
Add `EXEC_SETUP_CREDENTIALS` flag to allow using credentials with mount units.
Fixes: #23535
2024-12-12 05:07:35 +09:00
Yu Watanabe c9011f170b journalctl: also mangle unit name when --invocation= or --list-invocations is specified (#35542)
Fixes #35538.
2024-12-12 05:01:54 +09:00
Yu Watanabe 7bb1c8f2a3 journalctl: make --invocation and --list-invocations accept unit name with glob
Previously, journalctl -I -u GLOB was not supported, while
journalctl -u GLOB works fine. Let's make them consistent.
2024-12-11 16:32:22 +00:00
Yu Watanabe 48b22321af journalctl: move get_possible_units() to journalctl-util.c
No functional change. Preparation for the next commit.
2024-12-11 16:32:22 +00:00
Yu Watanabe e8823b5e35 journalctl: make --invocation and --list-invocations accept unit name without suffix
Fixes #35538.
2024-12-11 16:32:22 +00:00
Yu Watanabe b83847eb13 network: optionally bring up interface before joining bridge (#34438)
Closes #34247.
2024-12-11 18:16:34 +09:00
Yu Watanabe f8bfe16b06 journalctl: do not override explicitly specified -b or -n with -e or -k
Fixes #35248.
2024-12-11 18:12:13 +09:00
Yu Watanabe c577fe65f3 systemctl: downgrade log level of ECONNREFUSED from system dbus.service
To suppress log message when 'systemctl poweroff' or friends invoked in
rescue shell, which does not have dbus.service.
2024-12-11 18:08:26 +09:00
Yu Watanabe 2dfde4b8f8 network: optionally bring up interface before joining bridge
Closes #34247.
2024-12-11 11:23:48 +09:00
Yu Watanabe 2bb7fe554f network: introduce link_up_now()
This is currently not used. Preparation for later commit.
2024-12-11 11:23:48 +09:00
Yu Watanabe bfe63cb00c network: add missing template to networkd.conf 2024-12-11 11:21:15 +09:00
Yu Watanabe 246b0a4d26 network/nexthop: replace unreachable condition with assertion 2024-12-11 11:21:15 +09:00
Yu Watanabe d49312307e network/nexthop: fix argument name
Fixes copy-and-paste error in b5b42b516e.
2024-12-11 11:21:15 +09:00
Yu Watanabe a4feabd85d network: introduce address_forget() and friends and use it where applicable
No functional change, just refactoring.
2024-12-11 11:21:14 +09:00
Yu Watanabe 290a507f7c network/nexthop: ignore foreign nexthops when ManageForeignNextHops=no 2024-12-11 11:21:14 +09:00
Yu Watanabe 724a296b4f network/nexthop: drop outdated comment and add one debugging log
All NextHop objects are managed by Manager since
352eba2e49.
2024-12-11 11:21:14 +09:00
Yu Watanabe 96fef18ca6 network/ndisc: unref Route objects that depend on the nexthop
No functional change, as when this function is called, the set will be
freed and contained Route objects will be unref()ed anyway soon later
by nexthop_detach() -> nexthop_free().
Even though, when the routes are forgotten from the Manager, then it is
not necessary to keep them by the nexthop. Let's unref earlier.
2024-12-11 11:21:14 +09:00
Yu Watanabe 1168489cd4 network/ndisc: constify several arguments and add several assertions
Follow-up for 0f8afaf94d.

No functional change, just for safety.
2024-12-11 11:21:14 +09:00
Yu Watanabe b5f2d7a1ec network/nexthop: do not share NextHop.nexthops and NextHop.routes with duplicated object
Otherwise, these may be freed twice.
But, fortunately, when this function is called, both are NULL.
So, this should not change any behavior. But for safety.
2024-12-11 11:21:14 +09:00
Yu Watanabe 00b363bb81 network: drop outdated comment
All Route objects are managed by Manager since
8d01e44c1f.
2024-12-11 11:21:14 +09:00
Yu Watanabe 5c9da83004 journalctl: allow to dump generated key in json format
Closes #35503.
2024-12-11 11:18:06 +09:00
Yu Watanabe a5b2973850 journalctl: honor --quiet with --setup-keys
Closes #35504.
2024-12-11 11:18:05 +09:00
Yu Watanabe 77064620d7 Revert "coredumpctl: Don't treat no coredumps as failure"
This reverts commit dfe79b9ed2.
2024-12-11 11:14:37 +09:00
Yu Watanabe 94930ff674 bus-creds/time-util: use first_word() and skip_leading_chars() more (#35421)
Prompted by
https://github.com/systemd/systemd/pull/35403#discussion_r1863855098
2024-12-11 10:42:34 +09:00
Yu Watanabe 627d1a9ac1 core: Add ProtectHostname=private (#35447)
This PR allows an option for systemd exec units to enable UTS namespaces
but not restrict changing hostname via seccomp. Thus, units can change
hostname without affecting the host. This is useful for OS-like
containers running as units where they should have freedom to change
their container hostname if they want, but not the host's hostname.

Fixes: #30348
2024-12-11 10:17:25 +09:00
Yu Watanabe 17e6e4d6b6 tree-wide: replace ANSI_XYZ with ansi_xyz()
Continuation of f0484e096c.
2024-12-11 10:11:53 +09:00
Yu Watanabe c576ba7182 journald: extend STDOUT_STREAMS_MAX to 64k
Closes #35390.
2024-12-10 20:49:42 +01:00
Yu Watanabe edd0a3c5e9 copy: do not try to copy zero size data
Hopefully fixes the following sanitizer issue:
===
[ 3754.797377] systemd-journald[776]: ../src/src/shared/copy.c:463:37: runtime error: variable length array bound evaluates to non-positive value 0
[ 3755.101713] systemd-journald[776]: Received SIGTERM from PID 1 (systemd).
[ 3755.124580] systemd-journald[776]: Journal stopped
Found 1 sanitizer issues (0 internal, 0 asan, 0 ubsan, 0 msan).
===
2024-12-10 19:20:50 +00:00
Yu Watanabe a33813e9e9 TEST-07-PID: wait for sleep command being executed by sd-executor
Hopefully fixes #35528.
2024-12-10 19:19:54 +00:00
Yu Watanabe 053cbabce7 mkosi: several improvements for running with sanitizers (#35480) 2024-12-10 13:35:22 +09:00
Yu Watanabe fb35d775a7 seccomp-util: add getxattrat and friends
The new syscalls are added in kernel-6.13:
https://github.com/torvalds/linux/commit/6140be90ec70c39fa844741ca3cc807dd0866394
2024-12-10 11:16:44 +09:00
Yu Watanabe 896b53ef4e basic: update syscall tables 2024-12-10 11:15:48 +09:00
Yu Watanabe d2d006cc8c test: use systemd-asan-env environment file at more places 2024-12-10 11:01:53 +09:00
Yu Watanabe 456727b5d4 test-network: check status of networkd after everything cleared on tear down
Otherwise, if networkd is failed, e.g. .network files that triggered the
failure will remain, and the next test case will start with previous
.network files. So, most subsequent test will fail.
2024-12-10 11:01:53 +09:00
Yu Watanabe 91ef65784e mkosi/sanitizers: add more ASAN options
This adds the following three options:
- detect_invalid_pointer_pairs=2
- handle_ioctl=1
- print_cmdline=1

Note, these options were used in the CentOS CI job.
2024-12-10 11:01:53 +09:00
Yu Watanabe 1bdb9e808f test: extract sanitizer reports from journal 2024-12-10 11:01:48 +09:00
Yu Watanabe 41b6486c9b mkosi: move drop-in config for sanitizers 2024-12-10 09:46:29 +09:00
Yu Watanabe dbf83c6613 Revert "test: tentatively disable SELinux tests"
This reverts commit 261a3d191e.
2024-12-09 21:52:06 +01:00
Yu Watanabe fbee22c237 journalctl: show coredumps again when --unit= is specified
This is a revised version of cbd5f5d7d6,
which is reverted by 560412148f.

The filter condition for _UID= field was added by
fdcd37df3b. However, after
888e378da2, coredumps for system services are
stored by systemd-coredump user. Hence, _UID=0 does not match anything anymore.

When we are reading the system journal, let's set _UID=<systemd-coredump>,
then we can show coredumps for system services again. When we are reading
an external journal, then the uid of systemd-coredump may be different
from the one on the current system, so let's drop the filter condition
for _UID= in that case.
2024-12-09 15:18:55 +01:00
Yu Watanabe 261a3d191e test: tentatively disable SELinux tests
Currently, mkosi GitHub action complains the following:
===
Could not find 'setfiles' which is required to relabel files.
===
Let's tentatively disable SELinux test.
2024-12-08 12:59:08 +09:00
Yu Watanabe cbd5f5d7d6 journalctl: show coredumps again when --unit= is specified
This effectively reverts fdcd37df3b.

After 888e378da2, coredumps for system
services are stored by systemd-coredump user. Henve, _UID=0 does not
match anything anymore.

Before:
```
$ build/journalctl -u systemd-networkd.service -p2 -n1
-- No entries --
```

After:
```
$ build/journalctl -u systemd-networkd.service -p2 -n1
Dec 06 05:39:55 H systemd-coredump[4187]: [🡕] Process 4145 (systemd-network) of user 192 dumped core.
(snip)
```
2024-12-06 09:56:09 +00:00
Yu Watanabe 157d5b5c30 mkosi: disable Fedora specific drop-in config when running with sanitizers
Hopefully fixes #35335.
2024-12-04 09:22:26 +09:00
Yu Watanabe 552e5db9ac Revert "mkosi: extend DefaultTimeoutStopSec= when running on sanitizers"
This reverts commit b75befc3c9.

Unfortunately, it does not work. Let's revert.
2024-12-04 09:13:18 +09:00
Yu Watanabe 472e3cce6e TEST-13-NSPAWN: enable debugging logs by nspawn run by systemd-run
Otherwise, it is hard to debug issue #35209.
2024-12-01 15:40:19 +01:00
Yu Watanabe 1072618023 NEWS: metion changes for networkd 2024-12-01 23:37:32 +09:00
Yu Watanabe a1417e5563 systemctl: skip checking inhibitors when dbus.service is not running
Fixes a bug introduced by 804874d26a.

Fixes #35416.
2024-12-01 14:00:55 +09:00
Yu Watanabe 9c4670db3c mkosi: move setting for journald to mkosi.extra 2024-11-30 04:31:45 +09:00
Yu Watanabe b75befc3c9 mkosi: extend DefaultTimeoutStopSec= when running on sanitizers
Hopefully fixes #35335.
2024-11-30 04:28:24 +09:00