Commit Graph
100 Commits
Author SHA1 Message Date
Yu Watanabe a0344b17dd bootctl-status: several follow-ups for unlink command
Follow-ups for 8702496bfb.

- add missing error cause in logging,
- add several missing assertions,
- drop an unnecessary initialization,
- make boot_config_find_in() return negative errno if nothing found,
- and several coding style fixlets.
2023-01-25 10:51:50 +00:00
Yu Watanabe 1b7586df97 bootctl-uki: several follow-ups for inspect_osrel()
Follow-ups for #26124 and #26158.

- use os_release_pretty_name(),
- constify the buffer passed to inspect_osrel(),
- propagate errors in inspect_osrele(), and ignore them in the caller
  side,
- and several coding style fixlets.
2023-01-25 10:51:38 +00:00
Yu Watanabe 5b532e14e3 bootctl-uki: several coding style fixlets
Mostly follow-ups for #26082.
2023-01-24 16:32:34 +01:00
Yu Watanabe 8589823f9d locale: also save XKB settings to vconsole.conf
Closes #24228.
Replaces #25412.
2023-01-23 11:30:03 +00:00
Yu Watanabe 50ec824570 locale: make errors in writing files not critical
Suggested at https://github.com/systemd/systemd/pull/25805#discussion_r1054871210

> we now write multiple files and we cannot possibly guarantee that
> either both updates worked or neither. unix fs apis simply have
> no concept that would allow us to implement that. hence I think
> we should update what we can, log about what we cannot, but return
> success as long as our in-memory state was updated.
2023-01-23 11:30:03 +00:00
Yu Watanabe 4f34fd5d40 locale: merge vconsole_convert_to_x11_and_emit() with method_set_vc_keyboard()
Similary, this also merges x11_convert_to_vconsole_and_emit() with
method_set_x11_keyboard().

No functional changes, preparation for later commits.
2023-01-23 11:30:03 +00:00
Yu Watanabe b41ec10ae4 locale: split out XKB settings to X11Context
No functional changes, just refactoring and preparation for later
commits.
2023-01-23 11:30:03 +00:00
Yu Watanabe c2ddaed483 locale: rename context_free_vconsole() -> context_clear_vconsole()
Similary, this also renames context_free_x11() -> context_clear_x11(),
to make it clear that these functions do not free Context.

Also, this makes context_clear() support to be called more than once.
2023-01-23 11:29:11 +00:00
Yu Watanabe 6f4514e84a locale: do not use alloca() for strings which can be potentially arbitrary 2023-01-23 11:29:11 +00:00
Yu Watanabe 76400a623f locale: several coding style fixlets
- add missing assertions,
- rename arguments for storing results,
- always initialize results on success,
- use _cleanup_ attribute at more places, etc.
2023-01-23 11:29:11 +00:00
Yu Watanabe 1dcfbc514c systemctl,test: -EBADF instead of -EBADFD
Follow-up for da20baaecc.
2023-01-21 10:47:54 +01:00
Yu Watanabe 93d0cf7a37 test-load-fragment: shorten code a bit 2023-01-21 15:11:43 +09:00
Yu Watanabe c9b733265f test-load-fragment: fix memleak
Fixes a leak reported at https://github.com/systemd/systemd/pull/26115#issuecomment-1398026085.
2023-01-21 15:11:29 +09:00
Yu Watanabe d09df6b94e tree-wide: fix typo 2023-01-20 15:32:16 +09:00
Yu Watanabe 36f73b6c67 test-unit-name: fix fd leak
Fixes an issue reported at https://github.com/systemd/systemd/issues/22576#issuecomment-1396774385.
2023-01-20 14:55:46 +09:00
Yu Watanabe 86d82cb888 test-ndisc: fix memleak and fd leak
Fixes issues reported at #22576.
2023-01-20 14:54:53 +09:00
Yu Watanabe 580586291f NEWS: mention that Address= assumes /32 or /128 prefix length if not specified 2023-01-19 22:09:24 +09:00
Yu Watanabe 3402357063 in-addr-util: drop unused mode to parse prefix length 2023-01-19 22:09:24 +09:00
Yu Watanabe e5e0743189 network: assume prefix length is full address size
The commit 0f707207b9 enables strong
warning about missing prefix length in Address= setting.
The change was done in v241, and was about 4 years ago.
Let's drop the legacy assumption and make the parser consistent with
'ip address' command.

C.f. #11307.
Closes #26102.
2023-01-19 22:09:10 +09:00
Yu Watanabe 5908d86425 network: do not enter failed state when received an invalid RA
Fixes the issue reported at https://github.com/systemd/systemd/issues/25891#issuecomment-1368509262.
2023-01-19 12:36:26 +00:00
Yu Watanabe a93cc5d911 test-network: drop unused file 2023-01-19 21:22:22 +09:00
Yu Watanabe ff4d2a09fd test: use 'udevadm trigger --settle' even if device is renamed 2023-01-19 17:58:05 +09:00
Yu Watanabe 1193448cb6 udevadm-trigger: also check with the original syspath if device is renamed
For older kernels that synthetic UUID is not supported, we need to also
check the original device name, as udevd broadcasts uevent with new
sysname.

Fixes #25115.
2023-01-19 17:58:05 +09:00
Yu Watanabe dfbd824a0b udevadm-trigger: settle with synthetic UUID if the kernel support it
If the kernel support synthetic UUID in uevent, then let's assume that
the UUID is unique, and check only if the received UUID matches we
specified.

Partially fixes #25115.
2023-01-19 17:57:56 +09:00
Yu Watanabe b15039425f udevadm-trigger: allow to fallback without synthetic UUID only first time
If a device is successfully triggered with synthetic UUID, then that means
the kernel support it. Hence, it is not necessary to fallback without UUID
for later devices.
2023-01-19 17:55:21 +09:00
Yu Watanabe 3e61656fab sd-id128: introduce id128_hash_ops_free 2023-01-19 17:55:21 +09:00
Yu Watanabe df0a741cdd test-network: reprocess the loopback network interface
Fixes the issue reported at https://github.com/systemd/systemd-centos-ci/pull/585#issuecomment-1385537641.
2023-01-18 14:08:14 +00:00
Yu Watanabe d314345a34 test-udev: add a brief test for -= operator for SYMLINK 2023-01-17 14:39:42 +09:00
Yu Watanabe ab250890c0 Merge pull request #26004 from poettering/cleanuo-erase-moar
tree-wide: use CLEANUP_ERASE() at many places
2023-01-17 14:04:02 +09:00
Yu Watanabe 841dfd3dc0 sd-dhcp-client: gracefully handle invalid ether type client ID
Currently, sd-dhcp-server accepts spurious client IDs, then the leases
exposed by networkd may be invalid. Let's make networkctl gracefully
show such leases.

Fixes #25984.
2023-01-16 20:00:08 +00:00
Yu Watanabe ea9dbf51c6 sd-dhcp6: always append the default status message generated from status code
Fixes #25988.
2023-01-16 19:46:05 +00:00
Yu Watanabe 303dfa73b3 network: fix memleak
Fixes a bug introduced by af2aea8bb6.

Fixes #25883 and #25891.
2023-01-16 19:42:59 +00:00
Yu Watanabe 1d00da3755 NEWS: mention QuickAck= 2023-01-16 14:40:26 +09:00
Yu Watanabe c972026888 NEWS: move one entry to the correct section 2023-01-16 14:40:25 +09:00
Yu Watanabe f95fb19922 network: introduce QuickAck= for [DHCPv4] and [IPv6AcceptRA]
Closes #25906.
2023-01-16 14:40:22 +09:00
Yu Watanabe 2cbb171d20 busctl: fix introspecting DBus properties
Follow-up for f2f7785d7a.

Fixes #26033.
2023-01-15 15:39:46 +00:00
Yu Watanabe d59ce37c28 Merge pull request #26047 from yuwata/udev-node-cleanups
udev: several cleanups
2023-01-13 14:46:58 +09:00
Yu Watanabe 93b0ec8bc5 shell-completion: systemctl: add --no-warn 2023-01-12 11:51:19 +09:00
Yu Watanabe 91dfb74ef5 systemctl: suppress warning about missing /proc/ when --no-warn
Follow-up for 0f958c8d4f.

systemctl is called many times by dnf or so, and missing /proc/ is not
a user's fault, but package manager's issue.
With this commit, we can suppress the warning by updating rpm macros if
necessary.
2023-01-12 11:50:41 +09:00
Yu Watanabe bf4a5ac804 network/l2tp: parse address or address type from correct string
Fixes a bug introduced by 8b49ee2dcd.

Fixes #26011.
2023-01-11 13:20:14 +09:00
Yu Watanabe 4da53043a6 network/l2tp: fix error code in log message 2023-01-11 13:11:00 +09:00
Yu Watanabe 5ccbe7fb19 test-netlink: use dummy interface to test assigning new interface name
Fixes #25981.
2023-01-10 21:01:59 +09:00
Yu Watanabe 5afaf40712 shutdown: propagate the original errno
Follow-up for b293bb2316.
2023-01-10 12:06:49 +01:00
Yu Watanabe 2d0d75b279 test: add tests for failure in renaming network interface 2023-01-10 14:25:20 +09:00
Yu Watanabe e9336d6ac3 core/device: ignore failed uevents
When udevd failed to process the device, SYSTEMD_ALIAS or any other
properties may contain invalid values. Let's refuse to handle the uevent.
2023-01-10 14:25:20 +09:00
Yu Watanabe 58b0a3e511 core/device: downgrade log level for ignored errors 2023-01-10 14:25:20 +09:00
Yu Watanabe eedfef0f0d sd-device: introduce device_get_property_int() 2023-01-10 14:25:20 +09:00
Yu Watanabe 210033847c udev: restore syspath and properties on failure
Otherwise, invalid sysname or properties may be broadcast to udev
listeners.
2023-01-10 14:25:16 +09:00
Yu Watanabe eafff21da2 test: modernize test-netlink.c 2023-01-09 20:33:35 +09:00
Yu Watanabe ff88b94953 udev: move device_rename() from device-private.c
The function is used only by udevd.
2023-01-09 15:02:55 +09:00
Yu Watanabe 1de6a49721 sd-device: do not directly access entry in sd-device object
No functional change, just refactoring.
2023-01-09 15:00:56 +09:00
Yu Watanabe 9a26098e90 sd-device: make device_set_syspath() clear sysname and sysnum
Otherwise, when a new syspath is assigned to the sd-device object,
sd_device_get_sysname() or _sysnum() will provide an outdated device
name or number.
2023-01-09 14:00:20 +09:00
Yu Watanabe bb1234d1d6 udev: align table 2023-01-09 11:20:35 +09:00
Yu Watanabe 3d5af17045 bootctl: 'tmp' is always non-NULL
Fixes CID#1502330.
2023-01-09 11:00:56 +09:00
Yu Watanabe a42909e60c bootctl: fix indentation 2023-01-09 10:58:10 +09:00
Yu Watanabe da8f9c4661 tmpfile: make failure in path_extract_filename() non-critical 2023-01-09 10:57:50 +09:00
Yu Watanabe 8a555dcbf7 tmpfile: fix resource leak
Fixes CID#1501687.
2023-01-09 10:52:33 +09:00
Yu Watanabe 01a33cf7e8 dissect: reduce indent in mtree_print_item() 2022-12-26 16:42:29 +09:00
Yu Watanabe 5ffa6a0af4 dissect: do not trigger assertion on error
recurse_dir() does not provide 'sx' on error.

Fixes #25862.
2022-12-26 16:42:29 +09:00
Yu Watanabe 167f2c1a2b dissect: use assert() when no side effect 2022-12-26 16:42:29 +09:00
Yu Watanabe 20ada51464 Merge pull request #25828 from poettering/no-more-basename
convert a number of basename() invocations to path_extract_filename()
2022-12-24 08:13:00 +09:00
Yu Watanabe 2b22355075 Merge pull request #25823 from poettering/dissect-diskseq
gpt-auto: reference dissected partitions to mount via diskseq block device symlinks
2022-12-23 22:11:59 +09:00
Yu Watanabe 26c45a6c1d tree-wide: have_effective_cap() may return negative errno 2022-12-23 22:11:00 +09:00
Yu Watanabe d7301331e8 Merge pull request #25830 from yuwata/wait-online-unmanaged
wait-online: exit with success when all interfaces are ready or unmanaged
2022-12-23 22:10:38 +09:00
Yu Watanabe 9c29d87bee macro: check existence of cleanup function before call it
The free function specified in the macro may be provided by a
dynamically loaded library.

Replaces #25781.
2022-12-22 10:59:26 +01:00
Yu Watanabe 56dfde0d54 test-network: add testcase for no managed interface 2022-12-22 16:42:55 +09:00
Yu Watanabe b09ec84700 test-network: split out wait-online related test case 2022-12-22 16:29:20 +09:00
Yu Watanabe 5432adae82 test-network: move one test case 2022-12-22 16:27:58 +09:00
Yu Watanabe e20bae24d1 Merge pull request #25829 from poettering/empty-to-null-const-fix
string-util: don't add `const` to return pointer of empty_to_null() if input didn't have it
2022-12-22 10:29:59 +09:00
Yu Watanabe ab3aed4a03 wait-online: exit with success when all interfaces are ready or unmanaged
Previously, when neither '--any' nor '--interface' options specified,
at least one of the interfaces must be in configured state.
This patch makes wait-online exit with success even if all interfaces
are in unmanaged state.

This may break backward compatibility in a rare situation. But in most
cases, this typically not change anything, as at least one interface
is managed by networkd.service when it is enabled.

This is mostly for making wait-online gracefully handle the case that
networkd.service and wait-online.service are enabled by mistake. In such
situation, all interfaces are typically not managed.

Fixes #25813.
2022-12-22 09:40:46 +09:00
Yu Watanabe de8409ac43 rules: add missing line continuation
Fixes a bug introduced by 953c928c24.

Fixes #25811.
2022-12-21 09:52:07 +01:00
Yu Watanabe 5bb1d7fbab tree-wide: use -EBADF more 2022-12-21 01:50:33 +09:00
Yu Watanabe 19ee48a6c2 tree-wide: introduce PIPE_EBADF macro 2022-12-20 11:12:58 +09:00
Yu Watanabe f26c38edfa fuzz: sort headers 2022-12-20 11:12:58 +09:00
Yu Watanabe 57e7af551e Merge pull request #25786 from keszybz/ebadf
Use -EBADF for fd initialization
2022-12-20 10:02:10 +09:00
Yu Watanabe 8d8d4b092a Merge pull request #25787 from msekletar/rename-process-cap
units: allow systemd-userdbd to change process name
2022-12-20 09:58:47 +09:00
Yu Watanabe 8f1359bf85 unit: use underbar for module name
For consistency with src/core/unit.c.
2022-12-19 12:12:02 +01:00
Yu Watanabe cc3254c446 Merge pull request #25779 from bluca/journa_remote_vacuum
journal-remote: follow-ups for #25076
2022-12-19 09:44:04 +09:00
Yu Watanabe ea4b8f4cbf test: systemd-mount --list and systemd-umount requires the device is initialized by udevd
Fixes #25674.
2022-12-16 15:14:42 +09:00
Yu Watanabe ad48ff12bd test: show and check almost all journal entries since the relevant command being invoked
For some reasons, journal timestamps from other sources sometimes
inconsistent. For example,
```
$ journalctl --file system.journal -o short-monotonic -u resmontest.service
[ 1112.168109] ns1.unsigned.test resolvectl[419]: → Q: ns1.unsigned.test IN AAAA
[ 1112.168109] ns1.unsigned.test resolvectl[419]: ← S: success
[ 1112.168109] ns1.unsigned.test resolvectl[419]: → Q: ns1.unsigned.test IN A
[ 1112.168109] ns1.unsigned.test resolvectl[419]: ← S: success
[ 1112.168109] ns1.unsigned.test resolvectl[419]: ← A: ns1.unsigned.test IN A 10.0.0.1
[ 1112.171961] ns1.unsigned.test systemd[1]: resmontest.service: Failed to load configuration: No such file or directory
[ 1112.172223] ns1.unsigned.test systemd[1]: resmontest.service: Trying to enqueue job resmontest.service/start/fail
[ 1112.179866] ns1.unsigned.test systemd[1]: resmontest.service: Installed new job resmontest.service/start as 312
[ 1112.179894] ns1.unsigned.test systemd[1]: resmontest.service: Enqueued job resmontest.service/start as 312
[ 1112.180389] ns1.unsigned.test systemd[1]: resmontest.service: Will spawn child (service_enter_start): /usr/bin/resolvectl
[ 1112.180418] ns1.unsigned.test systemd[1]: resmontest.service: Passing 0 fds to service
[ 1112.180447] ns1.unsigned.test systemd[1]: resmontest.service: About to execute /usr/bin/resolvectl monitor
[ 1112.180477] ns1.unsigned.test systemd[1]: resmontest.service: Forked /usr/bin/resolvectl as 419
[ 1112.180619] ns1.unsigned.test systemd[1]: resmontest.service: Changed dead -> start
[ 1112.180651] ns1.unsigned.test systemd[1]: Starting resmontest.service...
[ 1112.180799] ns1.unsigned.test systemd[419]: resmontest.service: Kernel keyring access prohibited, ignoring.
[ 1112.180895] ns1.unsigned.test systemd[419]: resmontest.service: Executing: /usr/bin/resolvectl monitor
[ 1112.181383] ns1.unsigned.test systemd[1]: resmontest.service: Got notification message from PID 419 (READY=1)
[ 1112.181413] ns1.unsigned.test systemd[1]: resmontest.service: Changed start -> running
[ 1112.181441] ns1.unsigned.test systemd[1]: resmontest.service: Job 312 resmontest.service/start finished, result=done
[ 1112.181469] ns1.unsigned.test systemd[1]: Started resmontest.service.
```
In such case, `journalctl -f` may not show the entries what we are interested in.

Fixes #25749. (At least, workarond for the issue.)
2022-12-16 03:43:38 +09:00
Yu Watanabe ed9911630e core/unit: fix log message
As you can see in the below, the dropped dependency Before=issue-24990.service
is not logged, but the dependency Before=test1.service which is not owned by
the units generated by the TEST-26 is logged.

Before:
systemd[1]: issue-24990.service: Dependency After=test1.service dropped, merged into issue-24990.service
systemd[1]: issue-24990.service: Dependency Before=test1.service dropped, merged into issue-24990.service

After:
systemd[1]: issue-24990.service: Dependency After=test1.service is dropped, as test1.service is merged into issue-24990.service.
systemd[1]: issue-24990.service: Dependency Before=issue-24990.service in test1.service is dropped, as test1.service is merged into issue-24990.service.
2022-12-16 03:15:51 +09:00
Yu Watanabe 0b92fbbaee test: fix typo 2022-12-16 01:38:08 +09:00
Yu Watanabe 9b8eb412ca Merge pull request #25756 from yuwata/test-resolve-1
test: several cleanups for TEST-75-RESOLVE
2022-12-16 00:53:52 +09:00
Yu Watanabe 6f3473ca03 Merge pull request #25718 from yuwata/locale-cleanups
locale: avoid TOCTOU in reading config files
2022-12-16 00:51:13 +09:00
Yu Watanabe b3f1afc089 Merge pull request #24058 from qdeslandes/journald_regex_filtering
Allow for journald logs filtering on a per-unit basis
2022-12-15 22:03:33 +09:00
Yu Watanabe 133708b879 Revert "test: wait for the monitoring service to become active"
This reverts commit 5dd34c2604.

`resolvectl monitor` sends notify event, and systemd-run wait for the
service being in active state. Hence, the loop is not necessary.
2022-12-15 21:50:13 +09:00
Yu Watanabe ef09861a0b test: suppress echo in monitor_check_rr() 2022-12-15 21:50:13 +09:00
Yu Watanabe cd07f6e8e9 Merge pull request #25224 from poettering/measure-append
add --append= switch to systemd-measure
2022-12-15 21:47:29 +09:00
Yu Watanabe f4128c8d51 Merge pull request #25735 from yuwata/switch-root-follow-ups
mount-util: several follow-ups for recent mount_switch_root() changes
2022-12-15 21:39:40 +09:00
Yu Watanabe 62650f4258 Merge pull request #25602 from fbuihuu/fix-TEST-73-LOCALE
localed: reload PID1 configuration after modifying /etc/locale.conf
2022-12-15 17:47:05 +09:00
Yu Watanabe 9d50f8508b mount-util: make mount_switch_root() take a mount propagation flag 2022-12-15 14:17:22 +09:00
Yu Watanabe edac5c4636 mountpoint-util: introduce mount_propagation_flag_is_valid() 2022-12-15 14:15:59 +09:00
Yu Watanabe b205e59ad4 mountpoint-util: rename mount_propagation_flags_to_string() and friends as singular 2022-12-15 14:15:55 +09:00
Yu Watanabe 6c6eb219d5 mount-util: mount flag is unsigned long 2022-12-15 14:15:09 +09:00
Yu Watanabe b8b4f80a8a mount-util: drop unnecessary inline attributes 2022-12-15 14:15:09 +09:00
Yu Watanabe 993681def8 Merge pull request #25743 from yuwata/timesync-ipv6
timesync: ignore IPv6 addresses when the kernel does not support it
2022-12-15 12:57:54 +09:00
Yu Watanabe 60e84f0205 Merge pull request #25732 from enr0n/unit-test-machine-id-initialized
unit tests: do not fail when `/etc/machine-id` is empty
2022-12-15 12:55:04 +09:00
Yu Watanabe a6e16d949c Merge pull request #25723 from keszybz/generators-tmp
Run generators with / ro and /tmp mounted
2022-12-15 12:53:49 +09:00
Yu Watanabe 1af1c95e30 Merge pull request #25693 from yuwata/binfmt
binfmt: several cleanups
2022-12-15 12:52:30 +09:00
Yu Watanabe f74a7cb45c unit: check more specific path to be written by systemd-binfmt
Follow-up for 41807efb15.
Replaces #25690.
2022-12-15 03:36:27 +09:00