Luca Boccassi [Wed, 30 Aug 2023 11:57:49 +0000 (12:57 +0100)]
mkosi: pin CentOS9 kernel to working version
Newer kernels are affected by a regression that causes a kernel panic
on shutdown, so pin them for now. Can be reverted once that problem is
fixed.
https://bugzilla.redhat.com/show_bug.cgi?id=
2234390
Luca Boccassi [Wed, 30 Aug 2023 10:51:39 +0000 (11:51 +0100)]
Merge pull request #29013 from yuwata/sd-dhcp-client-ensure-iaid-and-duid
sd-dhcp-client: set IAID and DUID earlier
Yu Watanabe [Wed, 30 Aug 2023 08:26:57 +0000 (17:26 +0900)]
Revert "test-dhcp-client: add temporary workaround for assertion failure"
This reverts commit
1686c884bfa846f8da87621e87870eb18dd8107c.
The issue should be fixed by the previous commit. Let's drop the
workaround.
Yu Watanabe [Wed, 30 Aug 2023 08:33:01 +0000 (17:33 +0900)]
sd-dhcp-client: ensure IAID and DUID being set on start
After
b2851e8d6287ab9bb3cd6e42395271c45ce0e377, if IAID and DUID are not
set on start, calling sd_dhcp_client_set_iaid_duid_en() in
client_message_init() triggers assertion, as the client is already
running at the stage. Let's set IAID and DUID earlier.
Fixes #28990.
Mike Yuan [Tue, 29 Aug 2023 16:39:30 +0000 (00:39 +0800)]
Merge pull request #29007 from tormath1/tormath1/reload
sysext: fix around `--root` support
Luca Boccassi [Tue, 29 Aug 2023 15:09:54 +0000 (16:09 +0100)]
Merge pull request #28955 from poettering/generic-pe
unify two disparate PE executable parsers we currently have into one
Luca Boccassi [Tue, 29 Aug 2023 15:08:49 +0000 (16:08 +0100)]
Merge pull request #28999 from keszybz/two-man-ukify-fixe
Make ukify non-experimental
Zbigniew Jędrzejewski-Szmek [Tue, 29 Aug 2023 13:59:48 +0000 (16:59 +0300)]
Merge pull request #28900 from abderrahim/version-info
man: add version info
Malte Poll [Mon, 28 Aug 2023 15:20:36 +0000 (17:20 +0200)]
mkfs-util: propagate SOURCE_DATE_EPOCH to mcopy
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
Abderrahim Kitouni [Tue, 22 Aug 2023 16:52:36 +0000 (17:52 +0100)]
man: add version info
This tries to add information about when each option was added. It goes
back to version 183.
The version info is included from a separate file to allow generating it,
which would allow more control on the formatting of the final output.
Zbigniew Jędrzejewski-Szmek [Mon, 28 Aug 2023 15:44:42 +0000 (18:44 +0300)]
ukify: fail if the config file was not read
Inspired by https://github.com/systemd/systemd/pull/28997.
Noticed by Alvin Alvarado <alvin@striczkof.io>.
Zbigniew Jędrzejewski-Szmek [Mon, 28 Aug 2023 15:22:43 +0000 (18:22 +0300)]
ukify: move to /usr/bin and mark as non non-experimental
The notice in the man page is removed and the tool is moved into the $PATH.
A compat symlink is provided.
It is fairly widely used now, and realistically we need to keep backwards
compat or people will be very unhappy.
Zbigniew Jędrzejewski-Szmek [Mon, 28 Aug 2023 15:20:56 +0000 (18:20 +0300)]
Mathieu Tortuyaux [Tue, 29 Aug 2023 08:52:38 +0000 (10:52 +0200)]
sysext: skip the reload if `--root=` is provided
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Mathieu Tortuyaux [Tue, 29 Aug 2023 11:42:16 +0000 (13:42 +0200)]
sysext: fix `--root=` support
when provided `--root=` was failing for `status`:
```
$ systemd-sysext --root=/mnt status
Failed to open '/usr/.systemd-sysext/extensions': No such file or directory
```
path was not relative to the given `--root` - same goes for the `need_reload`
as it was inspired from the `verb_status` section.
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Lennart Poettering [Thu, 24 Aug 2023 13:42:06 +0000 (15:42 +0200)]
shared: remove now unused pe-header.h
Lennart Poettering [Thu, 24 Aug 2023 13:41:32 +0000 (15:41 +0200)]
shared: port kernel-image.c over to new common PE parser
Lennart Poettering [Thu, 24 Aug 2023 13:41:09 +0000 (15:41 +0200)]
shared: port bootspec.c over to new common PE parser
Lennart Poettering [Thu, 24 Aug 2023 13:40:41 +0000 (15:40 +0200)]
shared: add common implementation of PE parser
Luca Boccassi [Tue, 29 Aug 2023 00:09:10 +0000 (01:09 +0100)]
Merge pull request #28998 from YHNdnzj/logind-vt-handling
logind: several cleanups
Jan Janssen [Mon, 28 Aug 2023 17:18:37 +0000 (19:18 +0200)]
meson: Fix version script
Apparently, the `|` has a higher priority…
Frantisek Sumsal [Mon, 28 Aug 2023 20:42:36 +0000 (22:42 +0200)]
test: fix debugging of nspawn tests
The pipe stuff introduced in
701e0c2660 causes nspawn to switch the
console from 'interactive' into 'read-only' which is a bit useless when
debugging. Let's set --console=interactive explicitly in such case.
Follow-up to
701e0c2660.
Abderrahim Kitouni [Tue, 22 Aug 2023 16:52:02 +0000 (17:52 +0100)]
man: Add xinclude namespace
This will be used by the next commit to add version information to the
nodes.
Luca Boccassi [Mon, 28 Aug 2023 16:45:22 +0000 (17:45 +0100)]
Merge pull request #28328 from yuwata/network-ndisc-limit-captive-portal
network: limit number of captive portals by RA
Mike Yuan [Mon, 28 Aug 2023 09:29:31 +0000 (17:29 +0800)]
Revert "Revert "test: add test case for systemd-update-utmp vs daemon-reexec""
This reverts commit
837773add465bd0a0d1f598203d297cf0129468b.
The original issue #27287 is fixed by #28123. Let's
reintroduce the test for systemd-update-utmp.
Luca Boccassi [Mon, 28 Aug 2023 16:43:10 +0000 (17:43 +0100)]
Merge pull request #28948 from poettering/tpm2-duplicate-pcr-names
tpm2: unify tpm2 PCR symbolic identifiers
Luca Boccassi [Mon, 28 Aug 2023 16:42:48 +0000 (17:42 +0100)]
Merge pull request #28916 from ddstreet/tpm2_pcr_value_post_merge
Tpm2 pcr value post merge
Mike Yuan [Mon, 28 Aug 2023 14:33:33 +0000 (22:33 +0800)]
logind-session: generalize EIO handling for {restore,leave}_vt
Replaces #28949
Mike Yuan [Mon, 28 Aug 2023 13:21:06 +0000 (21:21 +0800)]
logind: add missing asserts
Mike Yuan [Mon, 28 Aug 2023 13:20:44 +0000 (21:20 +0800)]
logind: use hashmap value destructors
Mike Yuan [Mon, 28 Aug 2023 12:44:19 +0000 (20:44 +0800)]
logind: rephrase log messages
msizanoen [Thu, 24 Aug 2023 09:42:37 +0000 (16:42 +0700)]
login: Properly handle -EIO in session_leave_vt
session_leave_vt may be called after the VT device was hung up, which
will cause vt_release to fail with -EIO. This is known to cause an issue
with GNOME 44 on Fedora where gdm-session-worker sometimes freezes when
trying to switch to VT 1 after a `loginctl terminate-user` operation.
Fix this by reopening the VT in session_leave_vt if we get an -EIO.
Susant Sahani [Mon, 28 Aug 2023 10:21:22 +0000 (15:51 +0530)]
sd-radv: fix memory leak
Zbigniew Jędrzejewski-Szmek [Mon, 28 Aug 2023 11:46:24 +0000 (14:46 +0300)]
meson: restore specifications of dependency on version_h
This partially reverts
3c1eee5beda642707037b189481c3c30d1668da7.
I thought that it is not necessary, but
https://mesonbuild.com/Reference-manual_functions.html#vcs_tag says:
> This method returns a custom_tgt should be used to signal dependencies if
> other targets use the file outputted by this.
>
> For example, if you generate a header with this and want to use that in a
> build target, you must add the return value to the sources of that build
> target. Without that, Meson will not know the order in which to build the
> targets.
We can use version_h directly, since we already have it.
Hopefully fixes https://github.com/systemd/systemd/issues/28994.
Luca Boccassi [Mon, 28 Aug 2023 10:03:45 +0000 (11:03 +0100)]
test-dhcp-client: add temporary workaround for assertion failure
Workaround for https://github.com/systemd/systemd/issues/28990
Introduced by https://github.com/systemd/systemd/pull/28932 but CI was
green there. Add a workaround to get the CI back in shape while it is
being investigated.
Lennart Poettering [Mon, 21 Aug 2023 16:18:41 +0000 (18:18 +0200)]
boot: don't pass kernel cmdline option to UKIs which have the very same line built-in
There's really no point in first extracting a command line from an UKI
to just pass it unmodified to the UKI. In particular as this is
systematically ignored in SecureBoot is enabled.
Let's drop this, so that unless the user actually edits the cmdline we
pass nothing to the invoked kernel.
Note that this low-key is a compat break, since the passed cmdline gets
measured. However, in the interest of minimized the difference between
systems with and without sd-boot to behave the same i think we should
suppress the command line anyway.
Chris Patterson [Fri, 25 Aug 2023 21:23:40 +0000 (17:23 -0400)]
99-systemd.rules.in: tag PTP devices with systemd
Chronyd and similar time services, when using PTP devices, may need
the BindsTo/After directives to ensure the devices are available
before starting. Tag PTP devices with systemd to allow for wider
adoption.
Signed-off-by: Chris Patterson <cpatterson@microsoft.com>
Yu Watanabe [Wed, 23 Aug 2023 04:25:35 +0000 (13:25 +0900)]
sd-dhcp-client: make client initially in stopped state
Previously, DHCP_STATE_STOPPED and DHCP_STATE_INIT are both handled as
not-running. Moreover, previously after sd_dhcp_client_start() is
called, the client still in INIT state (and thus handled as not-running)
even if its internal timer event sources are initialized.
Let's make only STOPPED state handled as not-running, and make the
client initially in STOPPED state.
Prompted by #28896.
Michael Vasseur [Thu, 24 Aug 2023 19:47:05 +0000 (21:47 +0200)]
pkg.m4 macro needs brackets
See documentation at: https://manpages.debian.org/testing/pkgconf/pkg.m4.7.en.html
Without this the macro was not always correctly resolved so the correct command was not used in the rest of the snippet.
Luca Boccassi [Mon, 28 Aug 2023 09:02:01 +0000 (10:02 +0100)]
Merge pull request #28977 from keszybz/drop-versiondep
meson: simplify handling of the version tag
Zbigniew Jędrzejewski-Szmek [Sun, 27 Aug 2023 14:10:38 +0000 (17:10 +0300)]
man/gpt-auto-generator: avoid saying "negative" for boolean
Fixes #28928.
Zbigniew Jędrzejewski-Szmek [Sun, 27 Aug 2023 14:06:58 +0000 (16:06 +0200)]
Merge pull request #28968 from DaanDeMeyer/rlimit
Limit rlim_max in rlimit_nofile_safe() to nr_open
Alvin Alvarado [Sat, 26 Aug 2023 13:25:46 +0000 (23:25 +1000)]
man: Fix typo in config file example for ukify
or else it would output 'Unknown config setting [UKI] SecureBootCerificate=' or just an error outright if not overrode.
Zbigniew Jędrzejewski-Szmek [Sat, 26 Aug 2023 09:36:02 +0000 (11:36 +0200)]
meson: drop "versiondep" object
It was added to make sure that the version tag was built early
enough. Now that we use vcs_tag, meson should take care of building
it early enough.
Zbigniew Jędrzejewski-Szmek [Sat, 26 Aug 2023 07:17:44 +0000 (09:17 +0200)]
meson: simplify version_tag handling
Let's also use vcs_tag() when we're doing a non-git build. In those scenarios,
the build would normally be done just once in a given copy, so doing an extra
call does not matter. We can save a few lines of meson config.
The special path was added in
064b8e2c99ceb348c515353cc5c7d7bd05c49fcb, with
the justifaction that vcs_tag() is slow and -Dversion-tag=foo can be used to
fix the version tag and speed up partial rebuilds. I think the justification
for this is weak: having an accurate version tag is particularly useful when
developing the code. Shaving of a fraction of a second at the cost of having to
manually update the version seems iffy.
Secondly, with vcs_tag() we can be pretty sure that meson will build the
version file first and that it'll be available to all build steps. Because we
didn't use version tag, we had to manually specify the dependency on version.h
in various places. It seems nicer to use vcs_tag() and not have to deal with
this problem at all.
Finally, the savings in time seem much smaller than back when
064b8e2c99ceb348c515353cc5c7d7bd05c49fcb was made. It reported a change
from 94 ms to 521 ms. But now the difference seems to be about 50 ms:
Before this patch:
$ time ninja -C build
ninja: Entering directory `build'
ninja: no work to do.
ninja -C build 0.04s user 0.02s system 97% cpu 0.057 total
ninja -C build 0.03s user 0.01s system 97% cpu 0.049 total
ninja -C build 0.03s user 0.02s system 96% cpu 0.051 total
ninja -C build 0.03s user 0.01s system 96% cpu 0.049 total
ninja -C build 0.03s user 0.01s system 97% cpu 0.046 total
With the two patches in this PR:
systemd-stable [drop-versiondep] time ninja -C build
ninja: Entering directory `build'
[1/669] Generating version.h with a custom command
ninja -C build 0.08s user 0.03s system 98% cpu 0.106 total
ninja -C build 0.08s user 0.03s system 98% cpu 0.104 total
ninja -C build 0.09s user 0.02s system 98% cpu 0.116 total
ninja -C build 0.08s user 0.02s system 97% cpu 0.108 total
Overall, I think the tiny time savings are not worth the complexity.
Juno Computers [Sat, 26 Aug 2023 13:35:57 +0000 (09:35 -0400)]
Update 60-sensor.hwdb (#28804)
Updated T11/Juno Tab 2.
Jan Janssen [Fri, 25 Aug 2023 11:07:55 +0000 (13:07 +0200)]
meson: Bring back use of vcs_tag
The use of vcs_tag was dropped in #28567, which results in builds having
stale version information once new commit are made.
This also fixes a case where CI builds would have no version information
because they are checked out without any tags for git-describe to use.
Additionally, use `--git-dir` now, as that particular issues seems to
have been fixed by now.
Mike Yuan [Fri, 25 Aug 2023 17:11:55 +0000 (01:11 +0800)]
mount/mount-tool: return correct errno
Follow-up for
9269296df05a724c6b121bcbb0b420c8b4088f2f
Zbigniew Jędrzejewski-Szmek [Fri, 25 Aug 2023 16:36:30 +0000 (18:36 +0200)]
Merge pull request #28913 from keszybz/tmpfs-top-level-dir-mode
systemd-mount: do not create tmpfs mounts with sticky permission bit
Susant Sahani [Fri, 28 Jul 2023 17:21:50 +0000 (22:51 +0530)]
network: sd-radv - Introduce pref64 support (RFC8781)
Implements: https://datatracker.ietf.org/doc/html/rfc8781
```
[IPv6PREF64Prefix]
Prefix=2003:da8:1:0::/64
ValidLifetimeSec=30m
Frame 16: 126 bytes on wire (1008 bits), 126 bytes captured (1008 bits) on interface veth99, id 0
Ethernet II, Src: 06:c7:41:95:1d:7f (06:c7:41:95:1d:7f), Dst: IPv6mcast_01 (33:33:00:00:00:01)
Internet Protocol Version 6, Src: fe80::4c7:41ff:fe95:1d7f, Dst: ff02::1
Internet Control Message Protocol v6
Type: Router Advertisement (134)
Code: 0
Checksum: 0x0ca0 [correct]
[Checksum Status: Good]
Cur hop limit: 0
Flags: 0x00, Prf (Default Router Preference): Medium
Router lifetime (s): 1800
Reachable time (ms): 0
Retrans timer (ms): 0
ICMPv6 Option (Source link-layer address : 06:c7:41:95:1d:7f)
ICMPv6 Option (Prefix information : 2002:da8:1::/64)
ICMPv6 Option (PREF64 Option)
Type: PREF64 Option (38)
Length: 2 (16 bytes)
0000 0111 0000 1... = Scaled Lifetime: 225
.... .... .... .001 = PLC (Prefix Length Code): 64 bits prefix length (0x1)
Prefix: 64:ff9b::
```
Daan De Meyer [Fri, 25 Aug 2023 11:55:36 +0000 (13:55 +0200)]
Limit rlim_max in rlimit_nofile_safe() to nr_open
We might inherit a max rlim value that's larger than the kernel's
maximum (nr_open). This will cause setrlimit() to fail as the given
maximum is larger than the kernel's maximum. To get around this,
let's limit the max rlim we pass to rlimit() to the value of nr_open.
Should fix #28965
Daan De Meyer [Fri, 25 Aug 2023 12:25:33 +0000 (14:25 +0200)]
mkfs-util: Set FORK_REOPEN_LOG
We set FORK_CLOSE_ALL_FDS, so we should also set FORK_REOPEN_LOG to
reopen the log in the child process so we don't miss any logging
messages.
Dan Streetman [Mon, 21 Aug 2023 23:25:49 +0000 (19:25 -0400)]
cryptenroll: change man page example to remove leading 0x and lowercase hex
Dan Streetman [Mon, 21 Aug 2023 23:21:21 +0000 (19:21 -0400)]
tpm2: wrap (7) in UINT32_C()
Dan Streetman [Mon, 21 Aug 2023 23:18:40 +0000 (19:18 -0400)]
tpm2: add tpm2_pcr_values_has_(any|all)_values() functions
Dan Streetman [Mon, 21 Aug 2023 23:07:38 +0000 (19:07 -0400)]
tpm2: remove unnecessary void* cast
Dan Streetman [Mon, 21 Aug 2023 23:06:38 +0000 (19:06 -0400)]
tpm2: make logging level consistent at debug for some functions
Dan Streetman [Mon, 21 Aug 2023 23:02:18 +0000 (19:02 -0400)]
tpm2: use switch() instead of if-else
Dan Streetman [Mon, 21 Aug 2023 22:40:13 +0000 (18:40 -0400)]
tpm2: use table for openssl<->tpm2 ecc curve id mappings
Dan Streetman [Mon, 21 Aug 2023 22:14:07 +0000 (18:14 -0400)]
openssl: use new(char, size) instead of malloc(size)
Dan Streetman [Mon, 21 Aug 2023 22:10:56 +0000 (18:10 -0400)]
tpm2: use memcpy_safe() instead of memcpy()
Dan Streetman [Mon, 21 Aug 2023 22:09:52 +0000 (18:09 -0400)]
tpm2: remove ret_ prefix from input/output params
Dan Streetman [Mon, 21 Aug 2023 21:42:39 +0000 (17:42 -0400)]
tpm2: split TPM2_PCR_VALUE_MAKE() over multiple lines
Dan Streetman [Mon, 21 Aug 2023 21:39:20 +0000 (17:39 -0400)]
tpm2: use strempty()
Dan Streetman [Mon, 21 Aug 2023 21:37:40 +0000 (17:37 -0400)]
tpm2: check pcr value hash != 0 before looking up hash algorithm name
Dan Streetman [Mon, 21 Aug 2023 21:31:56 +0000 (17:31 -0400)]
tpm2: simplify call to asprintf()
Dan Streetman [Mon, 21 Aug 2023 21:29:28 +0000 (17:29 -0400)]
tpm2: put !isempty() check inside previous !isempty() check
Dan Streetman [Mon, 21 Aug 2023 20:29:44 +0000 (16:29 -0400)]
tpm2: use SIZE_MAX instead of strlen() for unhexmem()
Dan Streetman [Mon, 21 Aug 2023 15:02:55 +0000 (11:02 -0400)]
tpm2: in tpm2_pcr_values_valid() use FOREACH_ARRAY()
Dan Streetman [Mon, 21 Aug 2023 14:48:20 +0000 (10:48 -0400)]
tpm2: in validator functions, return false instead of assert failure
Dan Streetman [Mon, 21 Aug 2023 14:42:35 +0000 (10:42 -0400)]
tpm2: move cast from lhs to rhs in uint16_t/int comparison
Dan Streetman [Mon, 21 Aug 2023 14:38:48 +0000 (10:38 -0400)]
tpm2: lowercase TPM2_PCR_VALUE[S]_VALID functions
As these are not macros, they should be lowercase.
Dan Streetman [Mon, 21 Aug 2023 14:34:57 +0000 (10:34 -0400)]
tpm2: change *alg_to_* functions to use switch()
Zbigniew Jędrzejewski-Szmek [Thu, 24 Aug 2023 13:58:31 +0000 (15:58 +0200)]
Merge pull request #28917 from yuwata/network-address-pool
undefined
Yu Watanabe [Wed, 23 Aug 2023 03:13:44 +0000 (12:13 +0900)]
nspawn: check validity of the internal interface name only explicitly specified
Follow-up for
2f091b1b49543aade4aad9ec3b35b3665abac3e7.
Fixes #28844.
Zbigniew Jędrzejewski-Szmek [Thu, 24 Aug 2023 11:43:42 +0000 (13:43 +0200)]
man/repart: use <filename> and add missing <para>
Zbigniew Jędrzejewski-Szmek [Thu, 24 Aug 2023 13:45:07 +0000 (15:45 +0200)]
Merge pull request #28918 from yuwata/network-dhcp-custom-duid
network/dhcp: allow to specify custom duid type
Lennart Poettering [Tue, 15 Aug 2023 07:52:38 +0000 (09:52 +0200)]
gpt: move basic header/partition structure of GPT into common code
This way we can use it at other places too, not just when dissecting
images.
Lennart Poettering [Wed, 23 Aug 2023 12:29:40 +0000 (14:29 +0200)]
alloc-util: add free_many() helper
We often free an array of things. Let's create a common helper for this,
and port some potential users over. (Not all, too lazy for that for
now).
Lennart Poettering [Thu, 24 Aug 2023 09:24:02 +0000 (11:24 +0200)]
fundamental: rename tpm-pcr.h → tpm2-pcr.h
I always found it confusing that most of our TPM related definitions are
in tpm2-util.h, but the PCR names in tpm-pcr.h, without the "2". Let's
fix that and make this systematic, in particular as the definitions in
the file all start with TPM2_ already.
No code flow changes, just some renaming.
Lennart Poettering [Thu, 24 Aug 2023 09:22:01 +0000 (11:22 +0200)]
fundemental: split out UKI defines into its own header
The UKI sections have little to do with the PCRs, hence give them their
own header.
Lennart Poettering [Thu, 24 Aug 2023 09:16:14 +0000 (11:16 +0200)]
tpm2: unify symbolic name infra for PCRs
We so far maintained two places for symboic names for PCRs. One in
tpm2-util.h and one in tpm-pcr.h.
Let's unify this into one, i.e. move the full list from tpm2-util.h into
tpm-pcr.h, replacing the short list placed so far there.
Systematically prefix the definitions with TPM2_ or tpm2_, to follow how
we do this for all other defines in this context.
No change in behaviour, just unification of tables.
Lennart Poettering [Thu, 24 Aug 2023 11:37:10 +0000 (13:37 +0200)]
Merge pull request #28946 from poettering/json-variant-append-arrayb
add json_variant_append_arrayb() helper + more related
Lennart Poettering [Thu, 24 Aug 2023 07:55:48 +0000 (09:55 +0200)]
json: add json_variant_set_fieldb() helper
Let's a "b" helper for json_variant_set_field() that combines
json_build() with json_variant_set_field(), similar to the
json_variant_merge_objectb(), json_variant_append_arrayb().
Lennart Poettering [Thu, 24 Aug 2023 07:41:48 +0000 (09:41 +0200)]
json: rename json_append() → json_variant_merge_objectb()
json_append() is a useful wrapper around json_variant_merge(). However,
I think the naming sould be cleaned up a bit of both functions.
I thinker "merge" is the better word than "append", since it does
decidedly more than just append: it replaces existing fields of the same
name, hence "merge" sounds more appropriate. This is as opposed to the
similar operations for arrays, where no such override logic is applied
and we really just append, hence those functions are called "append"
already.
To make clearer that "merge" is about objects, and "append" about
arrays, also include "object" in the name.
Also, include "json_variant" in the name, like we do for almost all
other functions in the JSON API that take a JSON object as primary
input, and hence are kinda object methods.
Finally, let's follow the logic that helpers that combine json_build()
with some other operation get suffixed with "b" like we already have in
some cases.
Hence:
json_variant_merge() → json_variant_merge_object()
json_append() → json_variant_merge_objectb()
This mirrors nicely the existing:
json_variant_append_array()
json_vairant_append_arrayb()
This also drops the variant of json_append() that takes a va_arg
parameter (i.e. json_appendv()). We have no user of that so far, and
given the nature as a helper function only I don#t see that happening,
and if it happens after all it's trivial to bring back.
Lennart Poettering [Thu, 24 Aug 2023 07:28:42 +0000 (09:28 +0200)]
tree-wide: use json_variant_append_arrayb() at many places
Lennart Poettering [Wed, 16 Aug 2023 07:35:07 +0000 (09:35 +0200)]
json: add json_variant_append_arrayb() helper
Lennart Poettering [Mon, 14 Aug 2023 11:15:52 +0000 (13:15 +0200)]
utf8: automatically determine length of string if SIZE_MAX is specified
Let's make utf8_to_utf16() and utf16_to_utf8() a bit nicer to use by
adding shortcuts for common cases.
This is particularly relevant for utf16_to_utf8() since the
multiplication with 2 is easy to forget.
Yu Watanabe [Mon, 10 Jul 2023 04:37:46 +0000 (13:37 +0900)]
network/ndisc: use the first captive portal in each RA
To handle malicious RA packets gracefully.
Also prompted by https://github.com/systemd/systemd/pull/28285#issuecomment-
1627585140.
Yu Watanabe [Mon, 10 Jul 2023 04:28:59 +0000 (13:28 +0900)]
network/ndisc: do not store too many captive portals provided through RA
Prompted by https://github.com/systemd/systemd/pull/28285#issuecomment-
1627585140.
Susant Sahani [Tue, 22 Aug 2023 06:00:29 +0000 (15:00 +0900)]
test-network: re-add test for custom client identifier
Yu Watanabe [Tue, 22 Aug 2023 05:32:07 +0000 (14:32 +0900)]
network/dhcp: make DUIDType= take an arbitrary integer
Closes #26745.
Yu Watanabe [Tue, 22 Aug 2023 05:44:13 +0000 (14:44 +0900)]
dhcp: DUID-EN identifier has variable length
Also make `array[0]` -> `array[]`.
See RFC 8415, section 11.3.
Yu Watanabe [Tue, 22 Aug 2023 05:26:06 +0000 (14:26 +0900)]
network/dhcp: fix maximal DUID data size
The maximum DUID size is 128, but that includes type specified.
Hence, the maximal data size is 126.
Yu Watanabe [Tue, 22 Aug 2023 05:22:03 +0000 (14:22 +0900)]
network: introduce per DUID type setters
No functional change, just refactoring.
Yu Watanabe [Tue, 22 Aug 2023 05:12:10 +0000 (14:12 +0900)]
Revert "network: DHCP6 client- Allow to send manual DUID"
This reverts commits
89e73ce86fb115c2e319bf9f28b63efad2975495 and
543d2a4d45ba199a62c87b3bf69dfd4ff55abf0c.
The commit assign "custom" to fixed DUID type 5. When making DUID fully
configurable, the type number should be also configurable. Also, the
fully custom DUID should be acceptable for DHCPv4.
Daan De Meyer [Thu, 24 Aug 2023 07:00:04 +0000 (09:00 +0200)]
hostname: Make sure we pass error to bus_verify_polkit_async()
Fixes #28943
Zbigniew Jędrzejewski-Szmek [Thu, 24 Aug 2023 09:19:55 +0000 (11:19 +0200)]
Merge pull request #24175 from medhefgo/meson-feature
meson: Use feature options
Zbigniew Jędrzejewski-Szmek [Wed, 23 Aug 2023 10:23:50 +0000 (12:23 +0200)]
meson: use 'sh' variable everywhere
We went back-and-forth a bit on this. Very old meson would print a message
about detecting the program if a quoted argument was used, leading to a lot of
noise. So we started to convert various places to use the variable, but then it
turned out that meson < 0.56.2 doesn't handle this correctly and we reverted to
using strings everywhere in
7c22f07cbd86b39e78990057687e5509fa299672. Then at
some point we stopped supporting old meson and over time we started using the
variable in various places again, somewhat inconsistently. Then most calls to
'sh' were removed in
9289e093ae6fd5484f9119e1ee07d1dffe37cd10 when
install_emptydir() builtin started being used.
Now meson allows either the string or variable to be used, and doesn't print a
message if the string is used. Let's use the variable everywhere. For 'sh', we
could do either, but for other variables, we _do_ want the detection to happen,
for example for git, find, awk, which might not be installed and we want to
detect that early, before we start the build. It would be ugly to use quotes
for some programs, but not for others. Also, a string is still refused for
test(), so we couldn't use the string version even if we didn't care about
detection.
Daan De Meyer [Wed, 23 Aug 2023 19:53:40 +0000 (21:53 +0200)]
repart: Make verity example more useful
Add Minimize= so the size gets calculated correctly and add a verity
signature partition as well for completeness.