]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
11 months agoMerge pull request #29493 from YHNdnzj/unit-always-set-user-home
Lennart Poettering [Tue, 10 Oct 2023 08:16:07 +0000 (10:16 +0200)] 
Merge pull request #29493 from YHNdnzj/unit-always-set-user-home

core/execute: always set $USER and introduce SetLoginEnvironment=

11 months agoMerge pull request #29507 from abderrahim/doc-sync-improvement
Luca Boccassi [Tue, 10 Oct 2023 07:59:33 +0000 (08:59 +0100)] 
Merge pull request #29507 from abderrahim/doc-sync-improvement

Improvements to the doc-sync target

11 months agoMerge pull request #28699 from bluca/dtb_addon
Luca Boccassi [Tue, 10 Oct 2023 07:58:54 +0000 (08:58 +0100)] 
Merge pull request #28699 from bluca/dtb_addon

stub: add support for dtb addons

11 months agoUpdate TODO 28699/head
Luca Boccassi [Fri, 6 Oct 2023 22:42:27 +0000 (23:42 +0100)] 
Update TODO

11 months agoboot: measure loader.conf in PCR5
Luca Boccassi [Fri, 6 Oct 2023 22:41:10 +0000 (23:41 +0100)] 
boot: measure loader.conf in PCR5

Results in:

- EventNum: 26
  PCRIndex: 5
  EventType: EV_EVENT_TAG
  DigestCount: 4
  Digests:
  - AlgorithmId: sha1
    Digest: 155fb999ca61ba8c7b1f1d87cee821f772ef084a
  - AlgorithmId: sha256
    Digest: 4c26adf231603613afc00bb3d5cad046aec6a525ca01262417c7085caab452b5
  - AlgorithmId: sha384
    Digest: 3e0758cb6605ac274e55d747bf29ee3474fc4413cd5e7a451d1375219cd7f08a30fc915a8df7131657ca78b82b9ccec8
  - AlgorithmId: sha512
    Digest: e32d905b9092c543802f386db9a397d9b6593bdb8360fb747a6d23e491a09595fec8699184cc790d0873a3d52ed16d045538f0c73ece48278fae0fb6ed9b4ed6
  EventSize: 32
  Event: 2a58bcf5180000006c006f0061006400650072002e0063006f006e0066000000

11 months agostub: measure all cmdline addons together
Luca Boccassi [Sat, 23 Sep 2023 23:34:58 +0000 (00:34 +0100)] 
stub: measure all cmdline addons together

11 months agostub: add support for dtb addons
Luca Boccassi [Mon, 7 Aug 2023 00:05:18 +0000 (01:05 +0100)] 
stub: add support for dtb addons

Same as kernel command line addons.

11 months agoMove CLEANUP_ARRAY to src/fundamental
Luca Boccassi [Sat, 23 Sep 2023 17:29:32 +0000 (18:29 +0100)] 
Move CLEANUP_ARRAY to src/fundamental

11 months agoefi: add xmemdup
Luca Boccassi [Sat, 12 Aug 2023 22:14:13 +0000 (23:14 +0100)] 
efi: add xmemdup

11 months agoefi: add EFI_TCG2_TAGGED_EVENT and helpers
Luca Boccassi [Mon, 2 Oct 2023 00:17:58 +0000 (01:17 +0100)] 
efi: add EFI_TCG2_TAGGED_EVENT and helpers

11 months agomkosi: use different configs for Debian kernel package list
Luca Boccassi [Thu, 28 Sep 2023 10:56:27 +0000 (11:56 +0100)] 
mkosi: use different configs for Debian kernel package list

The kernel package is named after the architecture, so builds will
fail if mkosi --architecture arm64 is used

11 months agotest: make the DDI tests work with older openssl
Frantisek Sumsal [Mon, 9 Oct 2023 08:35:08 +0000 (10:35 +0200)] 
test: make the DDI tests work with older openssl

Older openssl unfortunately insists on having a config file with certain
fields, so let's reuse the one we already create in previous tests.

Should address following error on C8S:

[  407.812039] testsuite-50.sh[654]: + openssl req -config /dev/null -subj=/CN=waldo -x509 -sha256 -nodes -days 365 -newkey rsa:4096 -keyout /tmp/test-50-privkey.key -out /tmp/test-50-cert.crt
[  407.849089] testsuite-50.sh[2325]: Generating a RSA private key
[  408.947853] testsuite-50.sh[2325]: ..................................++++
[  423.100903] testsuite-50.sh[2325]: ..........++++
[  423.111036] testsuite-50.sh[2325]: writing new private key to '/tmp/test-50-privkey.key'
[  423.115036] testsuite-50.sh[2325]: -----
[  423.117842] testsuite-50.sh[2325]: unable to find 'distinguished_name' in config
[  423.120863] testsuite-50.sh[2325]: problems making Certificate Request
[  423.123448] testsuite-50.sh[2325]: 140737354091984:error:0E06D06C:configuration file routines:NCONF_get_string:no value:crypto/conf/conf_lib.c:273:group=req name=distinguished_name

Follow-up to 99d9edf0bde.

11 months agodissect: avoid clobbering device-mapper error when activating verity
Luca Boccassi [Mon, 9 Oct 2023 14:56:37 +0000 (15:56 +0100)] 
dissect: avoid clobbering device-mapper error when activating verity

The device-mapper driver can return a wild variety of errors when trying
to activate the same dm-verity volume concurrently, as it might happen
with an image. There is a fallback logic in place, but the original
return code was clobbered when userspace signature check was added.
Add it back.

Follow-up for c2fa92e7e8907d9

11 months agodoc-sync: automatically detect whether we're updating the latest version 29507/head
Abderrahim Kitouni [Mon, 9 Oct 2023 16:43:31 +0000 (17:43 +0100)] 
doc-sync: automatically detect whether we're updating the latest version

also update the release instructions to push release candidates to -stable

11 months agodoc-sync: add man/ to the passed directory
Abderrahim Kitouni [Mon, 9 Oct 2023 16:41:49 +0000 (17:41 +0100)] 
doc-sync: add man/ to the passed directory

This mirrors the behaviour before multiple version support

11 months agocore/execute: always set $USER and introduce SetLoginEnvironment= 29493/head
Mike Yuan [Sat, 7 Oct 2023 12:08:21 +0000 (20:08 +0800)] 
core/execute: always set $USER and introduce SetLoginEnvironment=

Before this commit, $USER, $HOME, $LOGNAME and $SHELL are only
set when User= is set for the unit. For system service, this
results in different behaviors depending on whether User=root is set.

$USER always makes sense on its own, so let's set it unconditionally.
Ideally $HOME should be set too, but it causes trouble when e.g. getty
passes '-p' to login(1), which then doesn't override $HOME. $LOGNAME and
$SHELL are more like "login environments", and are generally not
suitable for system services. Therefore, a new option SetLoginEnvironment=
is also added to control the latter three variables.

Fixes #23438

Replaces #8227

11 months agocore/execute: modernize get_fixed_{user,group}
Mike Yuan [Sun, 8 Oct 2023 05:44:37 +0000 (13:44 +0800)] 
core/execute: modernize get_fixed_{user,group}

No functional change, preparation for later commit.

11 months agocore/execute: use FOREACH_ARRAY in one more place
Mike Yuan [Sun, 8 Oct 2023 05:35:30 +0000 (13:35 +0800)] 
core/execute: use FOREACH_ARRAY in one more place

11 months agoman: support multiple versions of the documentation on the website
Abderrahim Kitouni [Tue, 3 Oct 2023 19:00:19 +0000 (20:00 +0100)] 
man: support multiple versions of the documentation on the website

This changes the doc-sync meson target from a simple rsync command to a
script that:

* puts the documentation in a subdirectory according to the version
* injects a bit of javascript to add a drop-down to switch between versions
* updates an index.json file with the newly uploaded version
* keeps the latest/ directory up to date with the latest version
* supports a --no-latest switch to be used when uploading older versions

11 months agoMerge pull request #29495 from yuwata/network-manager-state-file
Luca Boccassi [Sun, 8 Oct 2023 21:46:44 +0000 (22:46 +0100)] 
Merge pull request #29495 from yuwata/network-manager-state-file

network: fixlets for manager state file

11 months agoMerge pull request #29490 from yuwata/network-tc-fixes
Luca Boccassi [Sun, 8 Oct 2023 21:31:26 +0000 (22:31 +0100)] 
Merge pull request #29490 from yuwata/network-tc-fixes

network: several fixes for traffic control support

11 months agoadd udev rule for micmute (f20)
Martin Beneš [Sun, 8 Oct 2023 13:29:14 +0000 (22:29 +0900)] 
add udev rule for micmute (f20)

11 months agotest-network: add test for DHCPv6 information requesting mode 29495/head
Yu Watanabe [Sun, 8 Oct 2023 07:30:48 +0000 (16:30 +0900)] 
test-network: add test for DHCPv6 information requesting mode

For issue #28566.

11 months agonetwork/dhcp6: keep lease when running in information request mode
Yu Watanabe [Sun, 8 Oct 2023 07:20:15 +0000 (16:20 +0900)] 
network/dhcp6: keep lease when running in information request mode

Fixes #28566.

11 months agonetwork/dhcp6: shorten dhcp6_handler()
Yu Watanabe [Sun, 8 Oct 2023 07:18:26 +0000 (16:18 +0900)] 
network/dhcp6: shorten dhcp6_handler()

Note, currently dhcp6_lease_information_acquired() do nothing, so this
does not change any behavior.

11 months agotest-network: test for NTP servers by DHCPv6 protocol
Yu Watanabe [Sun, 8 Oct 2023 04:28:32 +0000 (13:28 +0900)] 
test-network: test for NTP servers by DHCPv6 protocol

For issue #29148.

11 months agonetwork: also save NTP servers and friends obtained by other protocols
Yu Watanabe [Sun, 8 Oct 2023 04:06:25 +0000 (13:06 +0900)] 
network: also save NTP servers and friends obtained by other protocols

Previously, only servers that statically configursd or obtained by
DHCPv4 protocol are saved in the manager state file.

NTP servers obtained by DHCPv6 could not be used by timesyncd.

Fixes #29148.

11 months agopo: add a false positive to POTFILES.skip
Piotr Drąg [Sat, 7 Oct 2023 14:54:04 +0000 (16:54 +0200)] 
po: add a false positive to POTFILES.skip

Scripts used to detect files that should be in POTFILES.in, like
intltool-update -m used on https://l10n.gnome.org/module/systemd/,
falsely detect this file as containing translations. Avoid this
behavior by putting the file in POTFILES.skip.

11 months agocore: refactor compare_job_priority()
Lennart Poettering [Fri, 6 Oct 2023 17:04:00 +0000 (19:04 +0200)] 
core: refactor compare_job_priority()

Let's move it out of cgroup.[ch]. The function primarily compares the
priority values for units, hence let's move the core of it into a new
function unit_compare_priority() in unit.[ch], and then make
compare_job_priority() a local wrapper for it in manager.[ch]

Shorten the code a bit while we are at it.

11 months agoMerge pull request #29482 from poettering/cgroup-func-rename
Yu Watanabe [Sat, 7 Oct 2023 13:18:14 +0000 (22:18 +0900)] 
Merge pull request #29482 from poettering/cgroup-func-rename

core: various clean-ups in cgroup.[ch] and around

11 months agotest-network: extend testcase for tbf 29490/head
Yu Watanabe [Sat, 7 Oct 2023 06:06:37 +0000 (15:06 +0900)] 
test-network: extend testcase for tbf

For issue #29485.

11 months agonetwork/tc: support Parent=X:0 for qdiscs
Yu Watanabe [Sat, 7 Oct 2023 06:09:13 +0000 (15:09 +0900)] 
network/tc: support Parent=X:0 for qdiscs

When the minor part of the parent handle is zero, let's check if the
corresponding qdisc exists, rather than tc class.

11 months agonetwork/tc: allow to configure class or qdisc under foreign one
Yu Watanabe [Sat, 7 Oct 2023 05:37:31 +0000 (14:37 +0900)] 
network/tc: allow to configure class or qdisc under foreign one

Some qdiscs (e.g. tbf) implicitly create class(es) on create.
Previously, we could not create any child qdisc under the class, as the
implicit class is tagged as foreign.

11 months agonetwork/tc: re-enumerate traffic control classes when a qdisc created
Yu Watanabe [Sat, 7 Oct 2023 05:25:50 +0000 (14:25 +0900)] 
network/tc: re-enumerate traffic control classes when a qdisc created

Some kind of qdisc implicitly creates a class for the qdisc, but the
created class is not notified by the kernel. So, we need to explicitly
enumerate classes after a qdisc is created.

11 months agonetwork/tc: fix enumeration logic of traffic control classes
Yu Watanabe [Sat, 7 Oct 2023 05:24:34 +0000 (14:24 +0900)] 
network/tc: fix enumeration logic of traffic control classes

TC class can be enumerated only per link.

11 months agonetwork/tc: drop child tree of traffic control nodes on remove
Yu Watanabe [Sat, 7 Oct 2023 05:20:38 +0000 (14:20 +0900)] 
network/tc: drop child tree of traffic control nodes on remove

When a node of traffic control tree is removed, all child nodes are also
removed but their removal are not notified by the kernel.
So, previously, removed TC classes or qdiscs under the removed node were
kept in the memory of networkd, and may cause failure on reconfigure.

11 months agonetwork/tc: align vtables
Yu Watanabe [Sat, 7 Oct 2023 12:34:43 +0000 (21:34 +0900)] 
network/tc: align vtables

11 months agoMerge pull request #29491 from yuwata/varlink-follow-ups
Daan De Meyer [Sat, 7 Oct 2023 09:15:02 +0000 (11:15 +0200)] 
Merge pull request #29491 from yuwata/varlink-follow-ups

varlink: several follow-ups

11 months agotree-wide: add missing sigbus handling
Yu Watanabe [Sat, 7 Oct 2023 07:11:32 +0000 (16:11 +0900)] 
tree-wide: add missing sigbus handling

11 months agotree-wide: use path_simplify_alloc() more 29491/head
Yu Watanabe [Sat, 7 Oct 2023 06:53:44 +0000 (15:53 +0900)] 
tree-wide: use path_simplify_alloc() more

11 months agovarlink: drop unnecessary condition
Yu Watanabe [Sat, 7 Oct 2023 06:51:02 +0000 (15:51 +0900)] 
varlink: drop unnecessary condition

When 'exec' is true, 'c' is always non-NULL.

Fixes CID#1522384.

11 months agovarlink: fix typo
Yu Watanabe [Sat, 7 Oct 2023 06:48:19 +0000 (15:48 +0900)] 
varlink: fix typo

Follow-ups for #29325.

11 months agoMerge pull request #29475 from keszybz/remove-wrapper-functions
Luca Boccassi [Fri, 6 Oct 2023 21:02:09 +0000 (22:02 +0100)] 
Merge pull request #29475 from keszybz/remove-wrapper-functions

Remove unnecessary wrapper functions

11 months agoMerge pull request #29440 from evelikov/more-auto-entries
Zbigniew Jędrzejewski-Szmek [Fri, 6 Oct 2023 16:54:03 +0000 (18:54 +0200)] 
Merge pull request #29440 from evelikov/more-auto-entries

sd-boot: add auto-reboot and auto-poweroff entries

11 months agocgroup: rename cgroup_modify_nft_set() → unit_modify_nft_set() 29482/head
Lennart Poettering [Fri, 6 Oct 2023 16:38:22 +0000 (18:38 +0200)] 
cgroup: rename cgroup_modify_nft_set() → unit_modify_nft_set()

This is the only function that cgroup.h exports that is prefixed with
cgroup_ where this does not refer to some type such as CGroupContext or
CGroupTasksMax or so. It simply operates on a unit. And it doesn't even
modify a cgroup, but just modifies an nft set.

Hence, to make the naming scheme systematic, change prefix from cgroup_
to unit_, matching the majority of the functions that operate on Unit*
in the file.

11 months agocgroup: un-export two functions
Lennart Poettering [Fri, 6 Oct 2023 16:36:03 +0000 (18:36 +0200)] 
cgroup: un-export two functions

11 months agocgroup: refactor cgroup_xattr_apply()
Lennart Poettering [Fri, 6 Oct 2023 16:24:46 +0000 (18:24 +0200)] 
cgroup: refactor cgroup_xattr_apply()

Split the function up, so that each set of xattrs is applied separately.

11 months agocgroup: drop cgroup path parameter from xattr calls
Lennart Poettering [Fri, 6 Oct 2023 16:20:08 +0000 (18:20 +0200)] 
cgroup: drop cgroup path parameter from xattr calls

We only pass the same thing there: u->cgroup_path or NULL (which is
ultimately the same as u->cgroup_path). Hence let's simplify things, and
simply drop the whole parameter, and imply u->cgroup_pat.

11 months agocgroup: rename cgroup_add_* to cgroup_context_*
Lennart Poettering [Fri, 6 Oct 2023 16:15:56 +0000 (18:15 +0200)] 
cgroup: rename cgroup_add_* to cgroup_context_*

They add settings to a CGroupContext, hence give them the expected
context, to make clear they do not operate on anything else than the
structure (i.e. not on a kernel cgroup or so).

11 months agocgroup: rename TasksMax structure to CGroupTasksMax
Lennart Poettering [Fri, 6 Oct 2023 16:13:16 +0000 (18:13 +0200)] 
cgroup: rename TasksMax structure to CGroupTasksMax

Almost all our enums/structs/funcs carry the CGroup prefix if they are
defined in cgroup.h, TasksMax so far does not, even though it is
exclusively used in cgroup context.

Change that.

11 months agosd-boot: add auto-reboot and auto-poweroff entries 29440/head
Emil Velikov [Wed, 4 Oct 2023 10:51:47 +0000 (11:51 +0100)] 
sd-boot: add auto-reboot and auto-poweroff entries

Currently only an auto-reboot-to-firmware entry is available. For other
features - like reboot and power off - one needs to press the uppercase
B and O respectively.

Embedded devices may be missing a full fledged keyboard, so allow for
sd-boot to generate those entries.

v2:
 - add to the config parser/man/bootctl/sd-boot info screen
 - keep them off by default
 - add the (O)ff and re(B)oot help text if boot entries are not shown
 - drop irrelevant get_os_indications_supported() comment
 - s/ShutDown/Shutdown/

v3:
 - cast shutdown_system() reboot_system() to void

v4:
 - shutdown -> poweroff
 - add trailing ",ignoring" in parser message
 - drop explicit default state assignment to "false"

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11 months agosd-boot: sprinkle some ", ignoring" trailing messages
Emil Velikov [Fri, 6 Oct 2023 15:16:23 +0000 (16:16 +0100)] 
sd-boot: sprinkle some ", ignoring" trailing messages

As mentioned by Lennart:

  ... we typically suffix such messages with ", ignoring", to indicate
  that we don't consider this fatal for anything.

Update config_defaults_load_from_file() to follow that pattern.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11 months agosd-boot: remove unneeded false assignment
Emil Velikov [Fri, 6 Oct 2023 15:12:43 +0000 (16:12 +0100)] 
sd-boot: remove unneeded false assignment

When the assignment is missing, the default 0/NULL/false value is used.
So drop the explicit piece in config_load_defaults()

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11 months agosd-boot: cast away reboot_into_firmware() return type
Emil Velikov [Fri, 6 Oct 2023 15:19:21 +0000 (16:19 +0100)] 
sd-boot: cast away reboot_into_firmware() return type

As mentioned by Lennart, in a commit where I was adding similar piece of
code:

  maybe cast this call to void, to tell static analyzers that we are
  ignoring the return value on purpose, not by accident

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11 months agobasic/macro: add comment explaining DEFINE_TRIVIAL_DESTRUCTOR() 29475/head
Zbigniew Jędrzejewski-Szmek [Fri, 6 Oct 2023 14:45:30 +0000 (16:45 +0200)] 
basic/macro: add comment explaining DEFINE_TRIVIAL_DESTRUCTOR()

11 months agofuzz-bus-match: drop unnecessary wrapper function
Zbigniew Jędrzejewski-Szmek [Thu, 5 Oct 2023 16:38:31 +0000 (18:38 +0200)] 
fuzz-bus-match: drop unnecessary wrapper function

Same confusion as in previous commit.

11 months agonspawn: drop unnecessary wrapper functions
Zbigniew Jędrzejewski-Szmek [Thu, 5 Oct 2023 16:58:55 +0000 (18:58 +0200)] 
nspawn: drop unnecessary wrapper functions

The naming was confused: suffix 'p' means that the function takes a pointer to
the type that the wrapped function takes. (E.g., a char**, for a wrapped function
taking a char*.)  But DEFINE_TRIVIAL_DESTRUCTOR() just changes the return type.

Also add one more assert for consistency.

11 months agocore: improve debug logs when failing to create symlinks in namespaces
Luca Boccassi [Fri, 6 Oct 2023 11:08:42 +0000 (12:08 +0100)] 
core: improve debug logs when failing to create symlinks in namespaces

I am seeing some failures and I don't know what is failing and why even
with debug logs, so add more details

11 months agoMerge pull request #29325 from poettering/varlink-introspect
Yu Watanabe [Fri, 6 Oct 2023 12:58:17 +0000 (21:58 +0900)] 
Merge pull request #29325 from poettering/varlink-introspect

varlink: add introspection support + varlinkctl + varlinkify one first command line tool (systemd-pcrextend)

11 months agoMerge pull request #29470 from yuwata/network-test-mode
Luca Boccassi [Fri, 6 Oct 2023 12:41:34 +0000 (13:41 +0100)] 
Merge pull request #29470 from yuwata/network-test-mode

network: introduce test mode

11 months agoupdate TODO 29325/head
Lennart Poettering [Fri, 22 Sep 2023 20:47:45 +0000 (22:47 +0200)] 
update TODO

11 months agotest: extend some existing tests with varlinkctl lines, to test varlinkctl + new...
Lennart Poettering [Tue, 26 Sep 2023 09:44:28 +0000 (11:44 +0200)] 
test: extend some existing tests with varlinkctl lines, to test varlinkctl + new PCRExtend service

11 months agopcrextend: make pcrextend tool acccessible via varlink
Lennart Poettering [Mon, 25 Sep 2023 14:28:24 +0000 (16:28 +0200)] 
pcrextend: make pcrextend tool acccessible via varlink

This is primarily supposed to be a 1st step with varlinkifying our
various command line tools, and excercise in how this might look like
across our codebase one day. However, at AllSystemsGo! 2023 it was
requested that we provide an API to do a PCR measurement along with a
matching event log record, and this provides that.

11 months agovarlinkctl: add new varlinkctl tool
Lennart Poettering [Fri, 22 Sep 2023 20:44:28 +0000 (22:44 +0200)] 
varlinkctl: add new varlinkctl tool

11 months agovarlink: add varlink_invocation() call
Lennart Poettering [Mon, 25 Sep 2023 14:00:00 +0000 (16:00 +0200)] 
varlink: add varlink_invocation() call

This call checks if we are invoked in a socket-activation Varlink server
context. It's useful for commands that can be run from the command line
or as Varlink service and then either serve commands from the cmdline or
those from Varlink.

11 months agovarlink: add new call varlink_server_loop_auto()
Lennart Poettering [Mon, 25 Sep 2023 13:57:39 +0000 (15:57 +0200)] 
varlink: add new call varlink_server_loop_auto()

This is a helper call that runs the specified VarlinkServer object in an
event loop, and exits once no more connections exist.

This is useful for pure varlink servers (i.e. those which only server
varlink requests and do nothing else), to run as long as there's
something to do and exit right after.

11 months agovarlink: add varlink_server_listen_auto() helper
Lennart Poettering [Mon, 25 Sep 2023 13:51:26 +0000 (15:51 +0200)] 
varlink: add varlink_server_listen_auto() helper

This new helper will automatically take listening fds passed in from the
service manager and processes varlink on them. It's useful for Varlink
services that shall be socket activatable.

11 months agovarlink: add exit-on-idle logic for Varlink server
Lennart Poettering [Mon, 25 Sep 2023 13:49:06 +0000 (15:49 +0200)] 
varlink: add exit-on-idle logic for Varlink server

This adds a logic that if enabled ensures sd_event_exit() is called
whenever the varlink connection count hits zero.

This is useful for implementing pure Varlink services (i.e. services
whose only job is to serve Varlink requests), that shall run only as
long as needed, i.e. as long as at least one request is being served.

11 months agotest: add test for varlink introspection logic
Lennart Poettering [Fri, 22 Sep 2023 20:44:09 +0000 (22:44 +0200)] 
test: add test for varlink introspection logic

11 months agooomd: move SubscriptionTaken Varlink error out of generic Varlink code
Lennart Poettering [Mon, 25 Sep 2023 09:49:38 +0000 (11:49 +0200)] 
oomd: move SubscriptionTaken Varlink error out of generic Varlink code

This error is a private error returned by PID 1 to oomd. It's internal,
and very specific to the use-case. Hence it should not be part of the
org.varlink.service interface (which isn't really our namespace anyway).

Hence, let's clean this up and move it over to the ManagedOOM varlink
interface of PID, where it belongs.

Since this is a private protocol of our two daemons, and the client
(i.e. oomd) doesn't explicitly test for this error anyway we can just
move it over without ill effects.

11 months agotree-wide: make all our Varlink APIs introspectable
Lennart Poettering [Fri, 22 Sep 2023 20:41:56 +0000 (22:41 +0200)] 
tree-wide: make all our Varlink APIs introspectable

11 months agovarlink: add varlink_connect_url() and varlink_connect_exec() calls
Lennart Poettering [Fri, 22 Sep 2023 20:40:35 +0000 (22:40 +0200)] 
varlink: add varlink_connect_url() and varlink_connect_exec() calls

11 months agovarlink: implement the org.varlink.service introspection interface by default + hook...
Lennart Poettering [Fri, 22 Sep 2023 20:39:25 +0000 (22:39 +0200)] 
varlink: implement the org.varlink.service introspection interface by default + hook up validator

Fixes: #23874
11 months agovarlink: add introspection data for the org.varlink.service and io.systemd interfaces
Lennart Poettering [Fri, 22 Sep 2023 20:35:18 +0000 (22:35 +0200)] 
varlink: add introspection data for the org.varlink.service and io.systemd interfaces

The official org.varlink.service interface definition, as per:

https://varlink.org/Service

And the io.systemd service where we carry some super generic errors our
Varlink implementation generates.

11 months agovarlink: allow associating Varlink IDL information with a VarlinkServer
Lennart Poettering [Fri, 22 Sep 2023 20:31:01 +0000 (22:31 +0200)] 
varlink: allow associating Varlink IDL information with a VarlinkServer

The data is not used for anything yet, but this will be added in later
commits.

11 months agovarlink: add IDL/introspection logic
Lennart Poettering [Fri, 22 Sep 2023 20:29:41 +0000 (22:29 +0200)] 
varlink: add IDL/introspection logic

11 months agotest-network: move get_dbus_dhcp_client_state() and friends to global
Yu Watanabe [Fri, 6 Oct 2023 05:10:18 +0000 (14:10 +0900)] 
test-network: move get_dbus_dhcp_client_state() and friends to global

11 months agoMerge pull request #29456 from yuwata/journal-replace-truncating-with-punching-holes
Daan De Meyer [Fri, 6 Oct 2023 07:18:06 +0000 (09:18 +0200)] 
Merge pull request #29456 from yuwata/journal-replace-truncating-with-punching-holes

journal: replace truncating with punching holes

11 months agoUpdate HACKING instructions
Daan De Meyer [Thu, 5 Oct 2023 15:04:53 +0000 (17:04 +0200)] 
Update HACKING instructions

Let's mention that we just need the latest stable release of mkosi,
not the latest git commit. We also split the instructions for building
on the host and the instructions for building with mkosi into two blocks,
as it's not required to build on the host anymore to build with mkosi.

11 months agoFix a typo in `systemctl-enable.c`
G2-Games [Fri, 6 Oct 2023 06:03:18 +0000 (01:03 -0500)] 
Fix a typo in `systemctl-enable.c`

11 months agovarlink: add new helper that reports whether connection is idle
Lennart Poettering [Fri, 22 Sep 2023 20:23:58 +0000 (22:23 +0200)] 
varlink: add new helper that reports whether connection is idle

This is useful to allow event loops to run exactly as long as there's
something to do but not longer.

11 months agoalloc-util: add realloc0() helper than is like realloc() but zero-initializes appende...
Lennart Poettering [Fri, 22 Sep 2023 20:22:12 +0000 (22:22 +0200)] 
alloc-util: add realloc0() helper than is like realloc() but zero-initializes appended space

11 months agofuzz: suppress log messages 29470/head
Yu Watanabe [Fri, 6 Oct 2023 04:26:16 +0000 (13:26 +0900)] 
fuzz: suppress log messages

11 months agolibsystemd-network: introduce $SYSTEMD_NETWORK_TEST_MODE environment variable
Yu Watanabe [Fri, 6 Oct 2023 04:22:04 +0000 (13:22 +0900)] 
libsystemd-network: introduce $SYSTEMD_NETWORK_TEST_MODE environment variable

Then, drop dhcp_client_set_test_mode() and friends.

11 months agojournalctl: verify that old entries are not sealed with too recent key (#28885)
felixdoerre [Fri, 6 Oct 2023 03:18:21 +0000 (05:18 +0200)] 
journalctl: verify that old entries are not sealed with too recent key (#28885)

When verifying seals produced with forward secure sealing, the verification
currently does not check that old entries are only sealed with the key for
their epoch and not a more recent one. This missing check allows an attacker
to remove seals, and create new ones with the currently available key, and
verify will claim everything is in order, although all entries could have
been modified.

This resolves CVE-2023-31439.

Co-authored-by: Felix Dörre <felix.doerre@kit.edu>
11 months agobacklight: support to specify percentage of minimum brightness
Yu Watanabe [Wed, 4 Oct 2023 12:46:26 +0000 (21:46 +0900)] 
backlight: support to specify percentage of minimum brightness

Closes #29328.

11 months agoman: fix typo
Yu Watanabe [Fri, 6 Oct 2023 02:18:07 +0000 (11:18 +0900)] 
man: fix typo

Follow-up for a121b331e37682341152b51269cf8ce00e68d755.

11 months agocore: fix typo
Yu Watanabe [Fri, 6 Oct 2023 02:15:30 +0000 (11:15 +0900)] 
core: fix typo

11 months agoMerge pull request #29417 from yuwata/sd-journal-cleanups-for-generic-array-bisect...
Yu Watanabe [Fri, 6 Oct 2023 02:04:07 +0000 (11:04 +0900)] 
Merge pull request #29417 from yuwata/sd-journal-cleanups-for-generic-array-bisect-plus-one

sd-journal: cleanups for generic_array_bisect_plus_one()

11 months agosd-journal: make journal_file_next_entry() always return the nearest entry object 29417/head
Yu Watanabe [Wed, 27 Sep 2023 19:55:21 +0000 (04:55 +0900)] 
sd-journal: make journal_file_next_entry() always return the nearest entry object

Previously, if the input offset 'p' does not point to an entry object,
the function returns the next of the nearest entry object on
DIRECTION_DOWN, as generic_array_bisect() already returns the nearest
entry object.

11 months agosd-journal: reduce number of calls generic_array_bisect_plus_one()
Yu Watanabe [Wed, 27 Sep 2023 19:15:04 +0000 (04:15 +0900)] 
sd-journal: reduce number of calls generic_array_bisect_plus_one()

If the first call of generic_array_bisect_plus_one() provides the same
offset, then it is not necessary to call the next one, as we already
know the entry object is also liked to the input data object.

Also, this make the function reuse the object returned by
generic_array_bisect_plus_one().

No functional change, just optimization.

11 months agosd-journal: drop unnecessary re-read of data object
Yu Watanabe [Wed, 27 Sep 2023 17:42:00 +0000 (02:42 +0900)] 
sd-journal: drop unnecessary re-read of data object

Follow-up for ec50313d4e329de276240883d86d05168a4cf09f.

The function generic_array_bisect_plus_one() does not read any new data
objects, so the data object is still valid, and not necessary to re-read it.

11 months agosd-journal: rewrite conditions for test result and direction
Yu Watanabe [Wed, 27 Sep 2023 03:47:35 +0000 (12:47 +0900)] 
sd-journal: rewrite conditions for test result and direction

No functional change, just refactoring. Hopefully the condition is more
descriptive now.

11 months agotest: add reproducer for SIGBUS issue caused by journal truncation 29456/head
Yu Watanabe [Thu, 5 Oct 2023 09:02:24 +0000 (18:02 +0900)] 
test: add reproducer for SIGBUS issue caused by journal truncation

The added code fails without the previous commit.

For issue #24320.

11 months agoMerge pull request #29438 from evelikov/document-rm-extra-uefi-vars
Luca Boccassi [Thu, 5 Oct 2023 23:12:49 +0000 (00:12 +0100)] 
Merge pull request #29438 from evelikov/document-rm-extra-uefi-vars

Document and purge LoaderConfigConsoleMode and LoaderEntryLastBooted

11 months agomachinectl: align UID shift status field properly
Lennart Poettering [Thu, 5 Oct 2023 20:44:23 +0000 (22:44 +0200)] 
machinectl: align UID shift status field properly

11 months agoimage-discover: skip properly over files that cannot be recognized as image files
Lennart Poettering [Thu, 5 Oct 2023 20:44:50 +0000 (22:44 +0200)] 
image-discover: skip properly over files that cannot be recognized as image files

Follow-up for: #29364

11 months agoMerge pull request #29364 from poettering/make-ddi-easy
Lennart Poettering [Thu, 5 Oct 2023 19:13:13 +0000 (21:13 +0200)] 
Merge pull request #29364 from poettering/make-ddi-easy

repart: make building DDIs easier (and other fixes)

11 months agosystemctl-show: align "Cntrl PID" correctly
Mike Yuan [Thu, 5 Oct 2023 16:49:45 +0000 (00:49 +0800)] 
systemctl-show: align "Cntrl PID" correctly

11 months agorepart: make arg_empty a proper enum with a string table 29364/head
Lennart Poettering [Wed, 4 Oct 2023 15:10:31 +0000 (17:10 +0200)] 
repart: make arg_empty a proper enum with a string table

Now that we translate in both directions (from enum to string, and
string to enum) let's just make the thing a proper enum with a proper
string table, like we generally do.