Yu Watanabe
85e38da2ec
sd-journal: make journal_file_copy_entry() return earlier
2023-04-26 20:54:08 +09:00
Yu Watanabe
bf9b7728e6
sd-journal: copy boot ID
...
The pointer to boot ID may be invalidate by journal_file_move_to_object()
calls in the later loop.
2023-04-26 20:51:12 +09:00
Yu Watanabe
265b1dc048
sd-journal: tighten variable scope
2023-04-26 20:50:53 +09:00
Yu Watanabe
fc73d97182
udev/iocost: invert DEVTYPE match
...
No functional change, just refactoring.
Addresses https://github.com/systemd/systemd/pull/23325#discussion_r1171006967 .
2023-04-26 14:50:25 +09:00
Yu Watanabe
c413ae18b5
udev/iocost: use ID_MODEL_FROM_DATABASE if exists
...
To make the rule consistent with 'iocost query'.
2023-04-26 14:50:25 +09:00
Yu Watanabe
ede5e271b1
udev/iocost: fix log message
2023-04-26 14:50:25 +09:00
Yu Watanabe
b2fccd0729
udev/iocost: query_named_solution() provides non-NULL model and qos on success
2023-04-26 14:50:25 +09:00
Yu Watanabe
934613bb88
udev/iocost: call get_known_solutions() in apply_solution_for_path()
...
Then, the solution name can be logged.
2023-04-26 14:50:09 +09:00
Yu Watanabe
22148897cf
udev: use version()
...
Fixes #27382 .
2023-04-26 07:44:39 +02:00
Yu Watanabe
9c271f4509
udev/iocost: merge get_known_solutions() and choose_solution()
...
As these are always called sequentially.
No functional change, just refactoring.
2023-04-26 11:49:58 +09:00
Yu Watanabe
dcb379619f
udev/iocost: drop unnecessary initializations
2023-04-26 11:36:28 +09:00
Yu Watanabe
878f3a4f09
udev/iocost: arg_target_solution is always non-NULL
2023-04-26 11:19:53 +09:00
Yu Watanabe
5cfe9715f5
udev/iocost: set default target in parse_config()
...
And make the failure in parsing config critical.
2023-04-26 11:18:46 +09:00
Yu Watanabe
a101d91988
test: add test case of negative match for SYMLINK and TAG
2023-04-26 09:51:12 +09:00
Yu Watanabe
2b43ab00b0
udev-rules: fix negative match rule for SYMLINK and TAG
...
Fixes #27396 .
2023-04-26 09:51:08 +09:00
Yu Watanabe
ff2da67b9a
Merge pull request #27409 from mrc0mmand/more-tests
...
test: add a couple of sanity tests for systemd-creds
2023-04-26 08:24:52 +09:00
Yu Watanabe
3d008416d6
Merge pull request #27380 from poettering/bpf-meson-tweaks
...
two bpf build system changes
2023-04-25 18:37:36 +09:00
Yu Watanabe
114e85d28e
core/device: rewrite how device unit is removed from Manager.devices_by_sysfs
...
If the device unit is not the head of the list saved in
Manager.devices_by_sysfs, then it is not necessary to replace the
existing hashmap entry. This should not change any behavior, just
refactoring.
2023-04-20 09:22:25 +02:00
Yu Watanabe
24a5370bbc
list: fix double evaluation
2023-04-20 09:20:08 +02:00
Yu Watanabe
47041a2b91
hwdb: disable entry for Logitech USB receiver used by G502 X
...
Fixes a bug introduced by dede07d3d0 .
Fixes #27118 .
2023-04-19 21:14:03 +01:00
Yu Watanabe
cb3c6aec3a
core: add one missing assertion for release_resource_queue
...
Follow-up for 6ac62d61db .
2023-04-19 21:12:08 +01:00
Yu Watanabe
c19f1cc9a5
test: add regression tests for find_esp() and friend
2023-04-19 04:04:57 +09:00
Yu Watanabe
60e761d8f3
chase: replace path_prefix_root_cwd() with chaseat_prefix_root()
...
The function path_prefix_root_cwd() was introduced for prefixing the
result from chaseat() with root, but
- it is named slightly generic,
- the logic is different from what chase() does.
This makes the name more explanative and specific for the result of the
chaseat(), and make the logic consistent with chase().
Fixes https://github.com/systemd/systemd/pull/27199#issuecomment-1511387731 .
Follow-up for #27199 .
2023-04-19 03:38:59 +09:00
Yu Watanabe
8d3c49b168
fd-util: skip to check mount ID if kernel is too old and /proc is not mounted
...
Now, dir_fd_is_root() is heavily used in chaseat(), which is used at
various places. If the kernel is too old and /proc is not mounted, then
there is no way to get the mount ID of a directory. In that case, let's
silently skip the mount ID check.
Fixes https://github.com/systemd/systemd/pull/27299#issuecomment-1511403680 .
2023-04-19 03:38:47 +09:00
Yu Watanabe
4b1e461c49
mountpoint-util: check /proc is mounted on failure
2023-04-19 03:28:34 +09:00
Yu Watanabe
9a0dcf03fa
chase: prefix with the root directory only when it is not "/"
2023-04-19 03:28:34 +09:00
Yu Watanabe
237bf933de
chase: drop repeated call of empty_to_root()
2023-04-19 03:28:34 +09:00
Yu Watanabe
b3ef56bc8e
chase: update outdated comment about result path
2023-04-19 03:28:34 +09:00
Yu Watanabe
24be89ebd8
chase: make the result absolute when a symlink is absolute
...
As the path may be outside of the specified dir_fd.
2023-04-19 03:28:34 +09:00
Yu Watanabe
c0552b359c
chase: make chaseat() provides absolute path also when dir_fd points to the root directory
...
Usually, we pass the file descriptor of the root directory to chaseat()
when `--root=` is not specified. Previously, even in such case, the
result was relative, and we need to prefix the path with "/" when we
want to pass the path to other functions that do not support dir_fd, or
log or show the path. That's inconvenient.
2023-04-19 03:28:34 +09:00
Yu Watanabe
ee0e6e476e
gpt-auto: do not fail when no suitable partitions found
...
Follow-up for 598fd4da1c .
2023-04-18 17:37:56 +09:00
Yu Watanabe
2cd04086ee
process-util: make safe_fork() unset $NOTIFY_SOCKET
...
Propagating $NOTIFY_SOCKET is typically dangerous. Let's unset it unless
explicitly requested to keep it.
Fixes #27288 .
Replaces #27291 .
2023-04-17 05:46:32 +08:00
Yu Watanabe
8521338f95
exec-util: make execute_strv() optionally take root directory
...
Preparation for rewriting kernel-install in C.
2023-04-16 19:40:12 +09:00
Yu Watanabe
f384ce1187
Merge pull request #27283 from mrc0mmand/assorted-test-tweaks
...
test: a bunch of assorted tweaks, Saturday edition
2023-04-16 19:39:58 +09:00
Yu Watanabe
d8e75260e9
Merge pull request #27253 from yuwata/cmsg-find-and-copy-data
...
socket-util: introduce CMSG_FIND_AND_COPY_DATA()
2023-04-16 16:28:26 +09:00
Yu Watanabe
b5d39bb3ca
tree-wide: also use CMSG_TYPED_DATA() on writing message header
2023-04-16 13:26:58 +09:00
Yu Watanabe
1ebb0953f0
sd-dhcp-server: use CMSG_FIND_DATA() at one more place
2023-04-16 13:26:58 +09:00
Yu Watanabe
789f5c6f70
tree-wide: copy timestamp data from cmsg
...
On RISCV32, time_t is 64bit and size_t is 32bit, hence the timestamp
data in message header may not be aligned.
Fixes #27241 .
2023-04-16 13:26:58 +09:00
Yu Watanabe
4836f4c67d
socket-util: introduce CMSG_FIND_AND_COPY_DATA()
...
The cmd(3) man page says about CMSG_DATA():
> The pointer returned cannot be assumed to be suitably aligned for
> accessing arbitrary payload data types. Applications should not cast
> it to a pointer type matching the payload, but should instead use
> memcpy(3) to copy data to or from a suitably declared object.
Hence, if we want to use unaligned data in cmsg, we need to copy it
before use. That's typically important for reading timestamps in
RISCV32, as the time_t is 64bit and size_t is 32bit on the system.
2023-04-16 13:26:55 +09:00
Yu Watanabe
4ea0bcb922
chase: CHASE_MKDIR_0755 requires CHASE_NONEXISTENT and/or CHASE_PARENT
...
When CHASE_MKDIR_0755 is specified without CHASE_NONEXISTENT and
CHASE_PARENT, then chase() succeeds only when the file specified by
the path already exists, and in that case, chase() does not create
any parent directories, and CHASE_MKDIR_0755 is meaningless.
Let's mention that CHASE_MKDIR_0755 needs to be specified with
CHASE_NONEXISTENT or CHASE_PARENT, and adds a assertion about that.
2023-04-14 16:36:13 +09:00
Yu Watanabe
5a2f674a00
chase: use FLAGS_SET() macro
2023-04-14 16:28:54 +09:00
Yu Watanabe
1113e50796
tree-wide: replace __alignof__() with alignof()
...
Addresses https://github.com/systemd/systemd/pull/27254#discussion_r1165267046 .
2023-04-14 14:39:06 +09:00
Yu Watanabe
4db752e4aa
socket-util: add one missing paren
...
Follow-up for b6256af75e .
2023-04-14 13:49:35 +09:00
Yu Watanabe
924937cbc0
timesync: drop unnecessary initialization
2023-04-14 13:49:35 +09:00
Yu Watanabe
13524b29a2
Merge pull request #27254 from poettering/cmsg-align-check
...
socket-util: tighten CMSG_TYPED_DATA() alignment checks
2023-04-14 13:49:04 +09:00
Yu Watanabe
85ba4ca8f6
test: add several assertions
...
Follow-up for 7947dbe322 .
Fixes CID#1508781 and CID#1508783.
2023-04-13 11:57:29 +01:00
Yu Watanabe
06e78680e3
image-policy: introduce parse_image_policy_argument() helper
...
Addresses
https://github.com/systemd/systemd/pull/25608/commits/84be0c710d9d562f6d2cf986cc2a8ff4c98a138b#r1060130312 ,
https://github.com/systemd/systemd/pull/25608/commits/84be0c710d9d562f6d2cf986cc2a8ff4c98a138b#r1067927293 , and
https://github.com/systemd/systemd/pull/25608/commits/84be0c710d9d562f6d2cf986cc2a8ff4c98a138b#r1067926416 .
Follow-up for 84be0c710d .
2023-04-13 11:17:28 +02:00
Yu Watanabe
37734dc677
repart: always take BSD lock when whole block device is opened
...
Fixes #27236 .
2023-04-13 09:07:00 +02:00
Yu Watanabe
8e1d6003fb
Merge pull request #27217 from yuwata/boot-entry-at
...
boot-entry: introduce _at() variant
2023-04-12 22:59:54 +09:00
Yu Watanabe
d2d969bb45
boot-entry: introduce boot_entry_token_ensure_at()
2023-04-12 19:47:34 +09:00
Yu Watanabe
e61ab091b7
Merge pull request #27223 from dtardon/install-changes
...
Simplify use of bus_deserialize_and_dump_unit_file_changes()
2023-04-12 19:30:51 +09:00
Yu Watanabe
f643ca1767
Merge pull request #27033 from dtardon/array-cleanup
...
Use CLEANUP_ARRAY more
2023-04-12 16:43:39 +09:00
Yu Watanabe
fda18ce2b6
boot-entry: use chase_and_fopen_unlocked() to open /etc/kernel/entry-token
...
Otherwise, when 'root' is specified, the file may be a symlink to a host
file, and we may read wrong entry.
2023-04-12 16:23:03 +09:00
Yu Watanabe
7e430500d2
udev-test: add more testcases for SYMLINK
2023-04-12 10:52:14 +09:00
Yu Watanabe
70e4510805
sd-device: absolute devlink must start with /dev/
...
This also makes device node path is handled with the same logic.
Addresses https://github.com/systemd/systemd/pull/27169#discussion_r1162739511 .
Follow-up for 2c5f119c3c .
2023-04-12 09:20:11 +09:00
Yu Watanabe
3b5fc5fb1b
boot-entry: prioritize machine ID only when it is not randomly generated
...
Preparation for later commits. The parameter will be used in
kernel-install later.
2023-04-12 08:31:50 +09:00
Yu Watanabe
19db450f3a
hwdb: fix ambiguous glob pattern for Lenovo machines
...
Fixes #27195 .
Follow-up for a5c0ad9a9a .
2023-04-11 13:21:34 +02:00
Yu Watanabe
538d878dbd
os-util: introduce several _at() variants of os-release parsers
2023-04-11 18:49:45 +09:00
Yu Watanabe
5cf69e709e
os-util: make $SYSTEMD_OS_RELEASE prefixed with the root directory
...
To make it consistent with other env vars, e.g. $SYSTEMD_ESP_PATH or
$SYSTEMD_XBOOTLDR_PATH.
This is useful when the root is specified by a file descriptor, instead
of a path.
2023-04-11 18:49:23 +09:00
Yu Watanabe
f4a1d32c82
os-util: merge parse_{extension,os}_release()
2023-04-11 18:49:23 +09:00
Yu Watanabe
7ef43c78df
os-util: invert order of arguments in extension release parser
...
For consistency with other functions.
Unfortunately, va_start() requires that the previous argument is a
pointer, hence the order of the arguments in the internal function
cannot be changed.
2023-04-11 18:49:23 +09:00
Yu Watanabe
61acfd8311
os-util: shorten temporal variable names
...
No functional change, just refactoring.
2023-04-11 18:49:20 +09:00
Yu Watanabe
59c4707594
os-util: log one more error cause
2023-04-11 18:48:58 +09:00
Yu Watanabe
c9d64f8a2c
os-util: do not use 'r' for storing loop status
...
The variable 'r' is usually used for storing return value of functional
call. Let's introduce another boolean to store the current loop status.
No functional change, just refactoring.
2023-04-11 18:48:58 +09:00
Yu Watanabe
7421f20c7e
os-util: return earlier when unsupported image class is specified
2023-04-11 18:47:15 +09:00
Yu Watanabe
7213c75045
os-util: return earlier when extension release file is found
...
No functional change, just refactoring.
2023-04-11 18:44:50 +09:00
Yu Watanabe
a84677e0f4
os-util: split-out open_os_release() from open_extension_release()
...
The logics of opening os-release and extension-release are completely
different.
No functional change, just refactoring.
2023-04-11 18:44:50 +09:00
Yu Watanabe
6f0f4d1488
os-util: fix fd leak on failure
2023-04-11 18:44:50 +09:00
Yu Watanabe
396ec9587c
os-util: make open_extension_release() return O_PATH fd
2023-04-11 18:44:50 +09:00
Yu Watanabe
53cbf5f9a6
os-util: drop fopen_extension_release()
2023-04-11 18:44:50 +09:00
Yu Watanabe
bfeaa62dbc
compress: replace compress_blob() with compress_blob_explicit()
...
And make compress_xyz() return 0 on success, as we know which compression
algorithm is used when calling compress_blob().
Follow-up for 2360352ef0 .
2023-04-11 09:14:34 +02:00
Yu Watanabe
0d68cd72b6
chase: drop redundant call of delete_trailing_chars()
...
In that branch, 'root' is a non-root and absolute path.
Hence, delete_trailing_chars() does not make the path empty.
And, if the path contains redundant slashes at the end, that will be
dropped by path_simplify().
2023-04-11 09:06:05 +02:00
Yu Watanabe
0f9aca9a98
Merge pull request #27207 from masatake/busctl--help-msg
...
busctl: add --xml-interface to the help message
2023-04-11 14:42:27 +09:00
Yu Watanabe
c689c541a1
Merge pull request #27201 from yuwata/o-path-support
...
Support O_PATH more
2023-04-11 12:37:37 +09:00
Yu Watanabe
2653ded4d1
Merge pull request #27199 from yuwata/find-esp
...
path-util: introduce path_prefix_root_cwd(), and use it in find_esp() and friends
2023-04-11 12:36:13 +09:00
Yu Watanabe
562f22dbfc
Merge pull request #27202 from yuwata/os-release-tiny-cleanups
...
os-util: tiny cleanups
2023-04-11 12:35:34 +09:00
Yu Watanabe
06692fdb5b
env-file: introduce parse_env_file_fdv()
2023-04-11 12:33:14 +09:00
Yu Watanabe
fb4d9bf47f
find-esp: use path_prefix_root_cwd()
...
Unlikely, but even if find_esp() or friends called with unnormalized or
relative 'root', let's make the result path normalized and absolute.
Note, before 63105f33ed , these functions
returned an absolute and normalized path. But the commit made the result
path simply concatenated with root.
Follow-up for 63105f33ed .
2023-04-11 06:27:11 +09:00
Yu Watanabe
75cc8d7c42
path-util: introduce path_prefix_root_cwd()
2023-04-11 06:27:05 +09:00
Yu Watanabe
adc5b9823c
test: update description
2023-04-11 06:07:15 +09:00
Yu Watanabe
6fdc9fbc0f
udev/scsi_id: rename positional arguments
2023-04-11 06:07:03 +09:00
Yu Watanabe
8352a29b6d
device-nodes: rename argument
2023-04-11 05:53:58 +09:00
Yu Watanabe
8c14d828d4
os-util: drop redundant declaration of load_os_release_pairs()
2023-04-11 05:20:15 +09:00
Yu Watanabe
d67071d2f6
os-util: use _IMAGE_CLASS_INVALID
...
When extension is not specified, image class is not necessary to be
specified. Let's use _IMAGE_CLASS_INVALID as an indicator that no
extension is specified.
2023-04-11 05:20:15 +09:00
Yu Watanabe
c2cd950817
os-util: move declaration of string table lookup for image class
2023-04-11 05:20:15 +09:00
Yu Watanabe
fe008489f7
portable: always reopen fd of release file
...
To make it support the case that the fd is O_PATH.
2023-04-11 05:17:52 +09:00
Yu Watanabe
e63d070373
copy: make copy_bytes() support O_PATH fds
2023-04-11 05:17:10 +09:00
Yu Watanabe
b4cb4c5cc6
fd-util: slightly optimize dir_fd_is_root()
...
When STATX_MNT_ID is not supported, we need to manually obtain mount id.
Let's compare inodes earlier.
2023-04-10 10:04:46 +09:00
Yu Watanabe
a6ef5ef707
chase: use dir_fd_is_root() to check if fd points to the root directory
...
As commented in dir_fd_is_root(), comparing inode is not enough to
determine if we are at the root directory.
2023-04-10 09:55:29 +09:00
Yu Watanabe
4443e3003a
chase: use stat_inode_same() at one more place
2023-04-10 09:45:21 +09:00
Yu Watanabe
de68bf7896
test: add tests about iterator position for path_find_{first,last}_component()
...
When path_find_first_component() returns the last component, the iterator
must be an empty string. The fact is heavily used in chaseat(). Let's
explicitly test it.
2023-04-10 09:39:14 +09:00
Yu Watanabe
3a7ba9f6b9
path-util: make iterator for path_find_last_component() always finish with the beginning of the buffer
2023-04-10 09:30:14 +09:00
Yu Watanabe
a0d3e0ec79
chase: extend comment about CHASE_PARENT
2023-04-10 08:57:01 +09:00
Yu Watanabe
75adfc3b17
chase: drop one redundant call of fstat()
...
Now, 'st' is always synced with 'fd'. Hence, we can use
stat_verify_directory().
2023-04-10 08:43:31 +09:00
Yu Watanabe
ad66c7f1d3
chase: make struct stat always sync with the opened fd
...
Previously, struct stat may not be correctly synced with the currently
opened fd, e.g. when a path contains symlink which points to an absolute
path.
This also rename variables for struct stat, to make them consistent with
the corresponding fd.
2023-04-10 08:40:14 +09:00
Yu Watanabe
db0096f2ad
chase: drop unnecessary conditions for buffer
2023-04-10 08:17:07 +09:00
Yu Watanabe
32cc2cfac9
test: add another regression test
...
For #27187 , which should be also caused by #26956 .
2023-04-10 05:43:09 +09:00
Yu Watanabe
1538136911
test: systemd-analyze blame should succeed now
2023-04-10 05:34:30 +09:00
Yu Watanabe
63d7632d87
analyze: make blame command work even the default target not reached
2023-04-10 03:41:15 +09:00
Yu Watanabe
b98afb23bf
kernel-image: make inspect_kernel() optionally take directory fd
2023-04-09 07:10:20 +02:00