Zbigniew Jędrzejewski-Szmek [Mon, 9 May 2022 13:10:36 +0000 (15:10 +0200)]
shared/json: add helper to ref first, unref second
This normally wouldn't happen, but if some of those places were called
with lhs and rhs being the same object, we could unref the last ref first,
and then try to take the ref again. It's easier to be safe, and with the
helper we save some lines too.
Zbigniew Jędrzejewski-Szmek [Mon, 9 May 2022 12:28:36 +0000 (14:28 +0200)]
shared/json: fix memory leak on failed normalization
We need to increase the counter immediately after taking the ref,
otherwise we may not unref it properly if we fail before incrementing.
Zbigniew Jędrzejewski-Szmek [Mon, 9 May 2022 11:37:35 +0000 (13:37 +0200)]
shared/json: wrap long comments
Zbigniew Jędrzejewski-Szmek [Mon, 9 May 2022 09:07:06 +0000 (11:07 +0200)]
fuzz-json: also do sorting and normalizing and other easy calls
Zbigniew Jędrzejewski-Szmek [Mon, 9 May 2022 09:01:32 +0000 (11:01 +0200)]
shared/json: reduce scope of variables
Zbigniew Jędrzejewski-Szmek [Mon, 9 May 2022 08:41:36 +0000 (10:41 +0200)]
fuzz-json: optionally allow logging and output
Similarly to other fuzzers… this makes development easier.
Zbigniew Jędrzejewski-Szmek [Mon, 9 May 2022 08:24:36 +0000 (10:24 +0200)]
json: align table
Yu Watanabe [Sun, 8 May 2022 05:50:39 +0000 (14:50 +0900)]
resolve: reallocate DNS scope when DNSSEC and/or DNS-over-TLS settings are changed
Fixes #23227.
Yu Watanabe [Tue, 10 May 2022 05:29:35 +0000 (14:29 +0900)]
Merge pull request #23300 from DaanDeMeyer/device-debug
core/device: Add more logging
Frantisek Sumsal [Mon, 9 May 2022 21:43:40 +0000 (23:43 +0200)]
core: annotate Reexecute() as NoReply
So we're able to tell from the introspection data that the method
doesn't reply.
Yutsuten [Mon, 9 May 2022 15:01:20 +0000 (00:01 +0900)]
Add HUION Inspiroy H420X to hwdb
Yu Watanabe [Mon, 9 May 2022 14:44:01 +0000 (23:44 +0900)]
Merge pull request #23321 from poettering/sockaddr-no-cast
tests: avoid sockaddr casts
Yu Watanabe [Fri, 6 May 2022 05:01:22 +0000 (14:01 +0900)]
core/slice: make slice_freezer_action() return 0 if freezing state is unchanged
Fixes #23278.
Luca Boccassi [Mon, 9 May 2022 13:37:20 +0000 (14:37 +0100)]
mkosi: add shadow package to SUSE Tumbleweed
[1958/1958] Generating export-dbus-interfaces with a custom command
/root/mkosi.build: line 70: groupadd: command not found
Lennart Poettering [Mon, 9 May 2022 10:07:54 +0000 (12:07 +0200)]
test: JSON_BUILD_REAL nowadays expects 'double', not 'long double'
Follow-up for
337712e777bff389f53e26d5b378d2ceba7d98a8, aka "the great
un-long-double-ification of 2021".
Lennart Poettering [Mon, 9 May 2022 11:56:39 +0000 (13:56 +0200)]
tests: avoid (struct sockaddr*) casts
We prefer using using union sockaddr_union instead of casting sockaddr
to the correct types.
Coding style, nothing else.
Follow-up for
0dd5ec58faa329410f1f363769209e95b058b7c3.
Lennart Poettering [Mon, 9 May 2022 11:55:28 +0000 (13:55 +0200)]
socket-util: don't reference field by macro parameter name
Let's avoid ambigituies here. (Interesting that the current users
compiled at all, in fact)
Lennart Poettering [Mon, 9 May 2022 10:17:08 +0000 (12:17 +0200)]
update TODO
Yu Watanabe [Mon, 9 May 2022 07:30:36 +0000 (16:30 +0900)]
network: set/unset enumerating flag before/after loop
Daan De Meyer [Mon, 9 May 2022 07:50:32 +0000 (09:50 +0200)]
shared: Fix memory leak in bus_append_execute_property()
Fixes #23317
Yu Watanabe [Mon, 9 May 2022 06:50:29 +0000 (15:50 +0900)]
Merge pull request #23310 from keszybz/suppress-fuzzer-timeouts-and-errors
Suppress fuzzer timeouts and errors
Yu Watanabe [Mon, 9 May 2022 06:46:49 +0000 (15:46 +0900)]
Merge pull request #23311 from keszybz/bootspec-fuzzer
Fuzzer for bootspec.c and associated fixes
Zbigniew Jędrzejewski-Szmek [Sun, 8 May 2022 14:21:10 +0000 (16:21 +0200)]
shared/calendarspec: reduce scope of variables
Zbigniew Jędrzejewski-Szmek [Sun, 8 May 2022 14:20:04 +0000 (16:20 +0200)]
shared/dissect-image: apply standard indentation
Zbigniew Jędrzejewski-Szmek [Sun, 8 May 2022 10:49:19 +0000 (12:49 +0200)]
basic/virt: use STRV_FOREACH instead of iteration with ELEMENTSOF
I think it's a bit simpler, we don't have two indexes.
Zbigniew Jędrzejewski-Szmek [Sun, 8 May 2022 10:39:15 +0000 (12:39 +0200)]
libsystemd-network: constify casts
It is better to not drop the const-ness from the argument.
Zbigniew Jędrzejewski-Szmek [Sun, 8 May 2022 10:30:51 +0000 (12:30 +0200)]
tree-wide: drop de-constifying casts for strv iteration
When the the iterator variable is declared automatically, it "inherits" the
const/non-const status from the argument. We don't need to cast a const
table to non-const. If we had a programming error and tried to modify the
string, the compiler could now catch this.
Zbigniew Jędrzejewski-Szmek [Sun, 8 May 2022 09:18:14 +0000 (11:18 +0200)]
fuzz-journal-remote: allow -ENODATA too
It seems that we try to create a new file, which fails with -ENOSPC, and we
later fail when reading a file with ENODATA. journal_file_open() will return
-ENODATA if the file is too short or if journal_file_verify_header() fails.
We'll unlink a file we newly created if we fail to initialize it immediately
after creation. I'm not sure if the file we fail to open is the one we newly
created and e.g. failed to create the arena and such, or if it's the file we
were trying to rotate away from. Either way, I think we should be OK with
with a non-fully-initialized journal file.
Failed to create rotated journal: No space left on device
Failed to write entry of 2 bytes: No space left on device
sd_journal_open_files(["/tmp/fuzz-journal-remote.vELRpI.journal"]) failed: No data available
Assertion 'IN_SET(r, -ENOMEM, -EMFILE, -ENFILE)' failed at src/journal-remote/fuzz-journal-remote.c:70, function int LLVMFuzzerTestOneInput(const uint8_t *, size_t)(). Aborting.
oss-fuzz-39238: https://oss-fuzz.com/issue/
4609851129462784
Zbigniew Jędrzejewski-Szmek [Sun, 8 May 2022 07:41:32 +0000 (09:41 +0200)]
fuzz-systemctl-parse-argv: refuse commandlines above 1k entries
oss-fuzz reports timeouts which are created by appending to a very long strv.
The code is indeed not very efficient, but it's designed for normal
command-line use, where we don't expect more than a dozen of entries. The fact
that it is slow with ~100k entries is not particularly interesting.
In the future we could rework the code to have better algorithmic complexity.
But let's at least stop oss-fuzz from wasting more time on such examples.
(My first approach was to set max_len in .options, but apparently this doesn't
work for hongfuzz and and AFL.)
oss-fuzz-34527: https://oss-fuzz.com/issue/
5722283944574976
Yu Watanabe [Sun, 8 May 2022 15:56:05 +0000 (00:56 +0900)]
core/unit: fix use-after-free
Fixes #23312.
Zbigniew Jędrzejewski-Szmek [Sat, 7 May 2022 20:36:06 +0000 (22:36 +0200)]
shared/bootspec: add missing terminator to table
Zbigniew Jędrzejewski-Szmek [Sat, 7 May 2022 09:08:04 +0000 (11:08 +0200)]
fuzz-bootspec: also add loader autoentries
Zbigniew Jędrzejewski-Szmek [Fri, 6 May 2022 16:31:09 +0000 (18:31 +0200)]
fuzz-bootspec: one more test case that was fixed in strv code
Zbigniew Jędrzejewski-Szmek [Fri, 6 May 2022 15:36:47 +0000 (17:36 +0200)]
shared/bootspec: avoid crashing on config without a value
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 17:04:01 +0000 (19:04 +0200)]
Add fuzzer for the bootspec parser
Zbigniew Jędrzejewski-Szmek [Fri, 6 May 2022 12:44:05 +0000 (14:44 +0200)]
shared/bootspec: also export boot_config_load_type1()
The reallocation of memory and counter incrementation is moved from
the only caller to the function. This way the callers can remain oblivious
of the BootConfig internals.
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 20:44:35 +0000 (22:44 +0200)]
shared/bootspec: expose more parts of the config parsing
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 14:22:45 +0000 (16:22 +0200)]
Move printing of boot entries from bootctl.c to shared/
I want to use this for fuzzing, but also later to return jsonified
list of entries from logind.
Zbigniew Jędrzejewski-Szmek [Fri, 6 May 2022 12:38:16 +0000 (14:38 +0200)]
shared/bootspec: add one more assert
All callers assume that boot_entry_title() always returns something.
It will, as long as it's not called on an uninitialized entry.
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 16:51:12 +0000 (18:51 +0200)]
meson: sort list of fuzzers
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 16:35:10 +0000 (18:35 +0200)]
docs/ARCHITECTURE: describe fuzzer locations and use
Zbigniew Jędrzejewski-Szmek [Sat, 7 May 2022 20:36:23 +0000 (22:36 +0200)]
dissect: drop unnecessary {}
Yu Watanabe [Sun, 8 May 2022 04:34:11 +0000 (13:34 +0900)]
bash-completion: resolvectl: add missing options and verb
Daan De Meyer [Sat, 7 May 2022 15:52:44 +0000 (17:52 +0200)]
core/device: Add logging to device_is_ready()
Daan De Meyer [Sat, 7 May 2022 14:20:20 +0000 (16:20 +0200)]
core/device: Improve device_dispatch_io() logging messages
Daan De Meyer [Sat, 7 May 2022 13:56:34 +0000 (15:56 +0200)]
core/device: Log when we can't retrieve SYSTEMD_ALIAS property
Daan De Meyer [Sat, 7 May 2022 13:53:52 +0000 (15:53 +0200)]
core/device: Log when we skip device unit creation for symlink
Daan De Meyer [Sat, 7 May 2022 13:18:32 +0000 (15:18 +0200)]
core/device: Log if we fail to open a device
We also shorten the logic by getting rid of the validate_node()
function. An extra check is added to verify we're dealing with
a device before calling sd_device_new_from_devname() since that
will return -EINVAL if anything other than a device is passed.
Daan De Meyer [Sat, 7 May 2022 14:15:00 +0000 (16:15 +0200)]
core/device: Log on every event received from udev
We already debug log on device unit state changes but additionally,
let's debug log for every event received from udev as well.
lucagoc [Sat, 7 May 2022 16:30:22 +0000 (18:30 +0200)]
hwdb: add rammus accelerometer support
Daan De Meyer [Sat, 7 May 2022 12:57:52 +0000 (14:57 +0200)]
core/device: Add sysfs argument to device_process_new()
Instead of retrieving the new sysfs path in device_process_new(),
let's pass the syspath we retrieved earlier to device_process_new()
similar to how we do for other functions in core/device.c.
Daan De Meyer [Sat, 7 May 2022 12:19:40 +0000 (14:19 +0200)]
core/device: Use DEVICE_NOT_FOUND instead of 0.
Use the enum name instead of the value zero. This is a noop change
as DEVICE_NOT_FOUND == 0.
Jan Janssen [Sat, 7 May 2022 09:15:33 +0000 (11:15 +0200)]
boot: Fix null pointer dereference
Yu Watanabe [Sat, 7 May 2022 06:17:56 +0000 (15:17 +0900)]
man: fix typo
Yu Watanabe [Sat, 7 May 2022 02:42:45 +0000 (11:42 +0900)]
Merge pull request #23292 from alexhenrie/dhcpv6
network: clarify relationship between RA flags and DHCPv6 modes
Zbigniew Jędrzejewski-Szmek [Fri, 6 May 2022 12:37:01 +0000 (14:37 +0200)]
shared/json: disentangle flag mixup
_DEBUG and _RELAX had the same value… I'm not sure what the effect
of this is.
Alex Henrie [Fri, 6 May 2022 20:01:53 +0000 (14:01 -0600)]
network: clarify the relationship between DHCP= and WithoutRA=
Just setting DHCP=ipv6 is not enough to get DHCPv6 working without RA.
The WithoutRA option must also be changed from its default of "no".
Alex Henrie [Fri, 6 May 2022 20:01:53 +0000 (14:01 -0600)]
network: clarify the relationship between RA flags and DHCPv6 modes
In the documentation, using the term "managed" for both the RA flag and
the DHCPv6 mode is confusing because the mode is referred to as
"solicit" both in the official DHCPv6 documentation (see RFC 8415) and
in the WithoutRA option.
Furthermore, calling the other RA flag "other information" or "other
address configuration" is confusing because its official name is simply
"other configuration" (see RFC 4861 and RFC 5175) and it isn't used to
assign IP addresses.
Rewrite the documentation for DHCPv6Client and WithoutRA to make it
clear that getting the "managed" RA flag triggers the same kind of DHCP
request as WithoutRA=solicit, whereas getting the "other configuration"
RA flag triggers the same kind of DHCP request as
WithoutRA=information-request.
Yu Watanabe [Fri, 6 May 2022 19:58:20 +0000 (04:58 +0900)]
Merge pull request #23291 from yuwata/udev-rule-fix-regression
udev: fix parent token handling
Yu Watanabe [Fri, 6 May 2022 19:57:36 +0000 (04:57 +0900)]
Merge pull request #23290 from keszybz/three-fixes
Three fixes
Yu Watanabe [Fri, 6 May 2022 19:23:02 +0000 (04:23 +0900)]
Merge pull request #23272 from keszybz/logind-man-and-rules
Logind man and rules
Yu Watanabe [Fri, 6 May 2022 17:37:48 +0000 (02:37 +0900)]
test: add testcase for #23288
Yu Watanabe [Fri, 6 May 2022 17:29:39 +0000 (02:29 +0900)]
udev: fix parent token handling
This fixes a bug introduced by
03677889f0ef42cdc534bf3b31265a054b20a354.
Fixes #23288.
Zbigniew Jędrzejewski-Szmek [Fri, 6 May 2022 16:23:06 +0000 (18:23 +0200)]
basic/strv: fix splitting of strings with escape characters
Plain strv_split() should not care if the strings contains backslashes
or quote characters. But extract_first_word() interprets backslashes
unless EXTRACT_RETAIN_ESCAPE is given.
I wonder how it's possible that nobody noticed this before. I think this
code was introduced in
0645b83a40d1c782f173c4d8440ab2fc82a75006.
Zbigniew Jędrzejewski-Szmek [Fri, 6 May 2022 16:19:21 +0000 (18:19 +0200)]
shared/terminal-util: don't use $COLORTERM to force colors
Fixup for
a5efbf468c96190c9562bc8121eda32310dfd112: if $COLORTERM was set, we'd
unconditionally turn on colors, which is unexpected and wrong. It even breaks
our own tests when executed in gnome-terminal.
Yu Watanabe [Fri, 6 May 2022 05:08:45 +0000 (14:08 +0900)]
README: mention kernel requirement for ambient capabilities
Closes #23231.
Khem Raj [Fri, 6 May 2022 03:25:37 +0000 (20:25 -0700)]
resolve: Use sockaddr pointer type for bind()
bind() expects sockaddr* but SERVER_ADDRESS is sockaddr_in type struct
Fixes errors with clang e.g.
../git/src/resolve/test-resolved-stream.c:112:32: error: incompatible pointer types passing 'struct sockaddr_in *' to parameter of type 'const struct sockaddr *' [-Werror,-Wincompatible-pointer-types]
assert_se(bind(bindfd, &SERVER_ADDRESS, sizeof(SERVER_ADDRESS)) >= 0);
^~~~~~~~~~~~~~~
../git/src/resolve/test-resolved-stream.c:251:39: error: incompatible pointer types passing 'struct sockaddr_in *' to parameter of type 'const struct sockaddr *' [-Werror,-Wincompatible-pointer-types]
r = connect(clientfd, &SERVER_ADDRESS, sizeof(SERVER_ADDRESS));
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Thomas Weißschuh [Thu, 5 May 2022 23:06:08 +0000 (01:06 +0200)]
userdbctl: initialize parameter `n` for uid_range_load_userns()
uid_range_load_userns() dereferences the n parameter.
Passing unitialized memory may lead to crashes, for example with version
251rc2-1 on ArchLinux.
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 17:49:26 +0000 (19:49 +0200)]
docs/RELEASE: typo in target name
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 17:02:49 +0000 (19:02 +0200)]
Merge pull request #23277 from keszybz/news-and-hwdb-update
News and hwdb update
Zbigniew Jędrzejewski-Szmek [Tue, 12 Apr 2022 20:01:10 +0000 (22:01 +0200)]
Revert "shared/install: create relative symlinks for enablement and aliasing"
This reverts commit
d6c9411072901556176ac130f2ce71a33107aa93.
I still think this is something that needs to be done, but we're hitting some
unexplained failures, e.g. https://github.com/systemd/systemd/issues/22920.
So let's revert this for now, so -rc2 can be released, with a plan to return
to this after a release.
Closes #22920.
Jakob Lell [Sun, 1 May 2022 20:52:39 +0000 (22:52 +0200)]
Amend documentation for LimitNPROC=
Daan De Meyer [Thu, 5 May 2022 13:40:27 +0000 (15:40 +0200)]
journal: Make journal_default_metrics() static
Only caller resides in the same file as were it's defined so no
need to have it be public.
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 14:30:53 +0000 (16:30 +0200)]
Merge pull request #23273 from keszybz/bootctl-quiet
bootctl --quiet and --graceful
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 14:22:42 +0000 (16:22 +0200)]
hwdb: run "update-hwdb"
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 14:19:02 +0000 (16:19 +0200)]
NEWS: update with final changes
Andreas Rammhold [Wed, 18 Aug 2021 17:10:08 +0000 (19:10 +0200)]
core: handle lookup paths being symlinks
With a recent change paths leaving the statically known lookup paths would be
treated differently then those that remained within those. That was done
(AFAIK) to consistently handle alias names. Unfortunately that means that on
some distributions, especially those where /etc/ consists mostly of symlinks,
would trigger that new detection for every single unit in /etc/systemd/system.
The reason for that is that the units directory itself is already a symlink.
Rebased-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 10:28:32 +0000 (12:28 +0200)]
bootctl: add --quiet
It's useful for installation scripts and suchlike.
Raised in https://bugzilla.redhat.com/show_bug.cgi?id=
2079784#c9.
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 10:15:46 +0000 (12:15 +0200)]
bootctl: support --graceful in is-installed
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 09:45:42 +0000 (11:45 +0200)]
meson: move vconsole rules to rules.d/
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 09:42:24 +0000 (11:42 +0200)]
meson: move udev rules to rules.d/
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 09:02:24 +0000 (11:02 +0200)]
TODO: add entry about boot entries on the bus
Something like this is needed to allow integration with graphical envs and
fully unprivileged operation.
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 08:53:29 +0000 (10:53 +0200)]
man: deduplicate dbus versioning ref
Zbigniew Jędrzejewski-Szmek [Thu, 5 May 2022 08:50:26 +0000 (10:50 +0200)]
man: beef up o.fd.login1 page a bit and recommend busctl too
gdbus is an external program, so it makes sense to recommend busctl.
Lennart Poettering [Thu, 5 May 2022 08:33:51 +0000 (10:33 +0200)]
update TODO
Sonali Srivastava [Wed, 20 Apr 2022 19:28:02 +0000 (00:58 +0530)]
terminal-util: get_color_mode checks COLORTERM
Evgeny Vereshchagin [Wed, 4 May 2022 22:53:28 +0000 (01:53 +0300)]
Merge pull request #23246 from medhefgo/check-compilation
meson: Improve public header tests
Daan De Meyer [Wed, 4 May 2022 14:15:06 +0000 (16:15 +0200)]
basic: Add some missing headers to compress.h
Matthijs van Duin [Wed, 4 May 2022 13:18:55 +0000 (15:18 +0200)]
Fix placement of TTL TLV in LLDP transmit
The LLDP spec (IEEE 802.1AB) requires the three mandatory TLVs (Chassis
ID, Port ID, and TTL) to be the first three TLVs in the packet, in that
specific order, whereas systemd put the TTL near the end of the packet.
This violation caused the ethernet switch in our office to discard these
packets as malformed, and Wireshark's packet parser also chokes on them.
Evgeny Vereshchagin [Wed, 4 May 2022 11:35:19 +0000 (11:35 +0000)]
timedatectl: fix a memory leak
```
timedatectl list-timezones --no-pager
...
==164329==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 8192 byte(s) in 1 object(s) allocated from:
#0 0x7fe8a74b6f8c in reallocarray (/lib64/libasan.so.6+0xaef8c)
#1 0x7fe8a63485dc in strv_push ../src/basic/strv.c:419
#2 0x7fe8a6349419 in strv_consume ../src/basic/strv.c:490
#3 0x7fe8a634958d in strv_extend ../src/basic/strv.c:542
#4 0x7fe8a643d787 in bus_message_read_strv_extend ../src/libsystemd/sd-bus/bus-message.c:5606
#5 0x7fe8a643db9d in sd_bus_message_read_strv ../src/libsystemd/sd-bus/bus-message.c:5628
#6 0x4085fb in list_timezones ../src/timedate/timedatectl.c:314
#7 0x7fe8a61ef3e1 in dispatch_verb ../src/shared/verbs.c:103
#8 0x410f91 in timedatectl_main ../src/timedate/timedatectl.c:1025
#9 0x41111c in run ../src/timedate/timedatectl.c:1043
#10 0x411242 in main ../src/timedate/timedatectl.c:1046
#11 0x7fe8a489df1f in __libc_start_call_main (/lib64/libc.so.6+0x40f1f)
```
Lennart Poettering [Wed, 4 May 2022 14:36:34 +0000 (16:36 +0200)]
Merge pull request #23261 from poettering/dir-is-empty
dir_is_empty() fixes
Yu Watanabe [Wed, 4 May 2022 14:25:47 +0000 (23:25 +0900)]
Merge pull request #23264 from keszybz/shorten-test-names
Shorten test names
Jan Janssen [Mon, 2 May 2022 09:26:43 +0000 (11:26 +0200)]
meson: Add -Wall and -Wextra to header checks
This should ensure public headers are free from any warnings.
Jan Janssen [Mon, 2 May 2022 09:12:34 +0000 (11:12 +0200)]
meson: Use meson test suite feature
This makes it easier to only test a subset of tests without having
to specify them all on the command line:
meson test -C build --suite headers
Jan Janssen [Mon, 2 May 2022 08:55:53 +0000 (10:55 +0200)]
meson: Remove check-compilation.sh
No need to involve a trivial shell script for this.
We could call the compiler directly, but test() expects arguments
to be passed separately and cc.cmd_array() can contain arguments
itself. Using env is easier than manually slicing the array because
meson has no builtins for that.
Jan Janssen [Mon, 2 May 2022 08:37:31 +0000 (10:37 +0200)]
meson: Exit early with subdir_done()
Yu Watanabe [Wed, 4 May 2022 12:22:56 +0000 (21:22 +0900)]
man/networkctl: mention initialized state
Closes #23262.
Zbigniew Jędrzejewski-Szmek [Wed, 4 May 2022 06:24:06 +0000 (08:24 +0200)]
tree-wide: drop manually-crafted message for missing variables
Bash will generate a very nice message for us:
/tmp/ff.sh: line 1: SOMEVAR: parameter null or not set
Let's save some keystrokes by not replacing this with our own inferior
messages.
Lennart Poettering [Wed, 4 May 2022 09:00:58 +0000 (11:00 +0200)]
stat-util: drop dir_is_populated() which is apparently not used
Lennart Poettering [Wed, 4 May 2022 08:53:00 +0000 (10:53 +0200)]
stat-util: fix dir_is_empty() with hidden/backup files
This is a follow-up for
f470cb6d13558fc06131dc677d54a089a0b07359 which in
turn is a follow-up for
a068aceafbffcba85398cce636c25d659265087a.
The latter started to honour hidden files when deciding whether a
directory is empty. The former reverted to the old behaviour to fix
issue #23220.
It introduced a bug though: when a directory contains a larger number of
hidden entries the getdents64() buffer will not suffice to read them,
since we just allocate three entries for it (which is definitely enough
if we just ignore the . + .. entries, but not ig we ignore more).
I think it's a bit confusing that dir_is_empty() can return true even if
rmdir() on the dir would return ENOTEMPTY. Hence, let's rework the
function to make it optional whether hidden files are ignored or not.
After all, I looking at the users of this function I am pretty sure in
more cases we want to honour hidden files.