]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
9 months agoshell-completions: add systemd-analyze transient-settings
Zbigniew Jędrzejewski-Szmek [Mon, 2 Jun 2025 18:42:54 +0000 (20:42 +0200)] 
shell-completions: add systemd-analyze transient-settings

The zsh completions only complete one type argument, even though multiple
args are allowed. But the same issue occurs with other completions, e.g.
for options. I don't know how to solve this.

9 months agodocs/TRANSIENT-SETTINGS: update lists
Zbigniew Jędrzejewski-Szmek [Mon, 2 Jun 2025 13:15:38 +0000 (15:15 +0200)] 
docs/TRANSIENT-SETTINGS: update lists

Those lists were partially wrong and partially outdated. We should generate
this document automatically, but let's revisit this topic after the conversion
to sphinx. For now, as a stop-gap solution, I generated the lists from
the new 'systemd-analyze transient-settings' command.

9 months agoanalyze: add transient-settings verb
Zbigniew Jędrzejewski-Szmek [Fri, 30 May 2025 10:15:13 +0000 (12:15 +0200)] 
analyze: add transient-settings verb

Related to https://github.com/systemd/systemd/pull/37641.

The name "transient settings" was used in docs/TRANSIENT-SETTINGS.md.
Using "setting" helps distinguish this from D-Bus "properties", which are
a much larger set, partially overlapping.

9 months agoshared/bus-unit-util: add bus_dump_transient_settings() helper
Zbigniew Jędrzejewski-Szmek [Thu, 29 May 2025 12:37:30 +0000 (14:37 +0200)] 
shared/bus-unit-util: add bus_dump_transient_settings() helper

bus_append_unit_property() and associated functions accept a long list of
properties. But the specific names are only available through code. But it is
useful to be able to know the specific list of properties that is supported, in
particular for shell completions. Thus, add a way to list the properties that
are supported by the code.

In the future we could also turn this into a test for the documentation. For
various reasons, the list of properties listed in the docs is a partially
overlapping set. E.g. for service type, the pull request
https://github.com/systemd/systemd/pull/37661 creates a list with 212 entries,
and this code generates 7 entries less and 184 more. I didn't check all the
differences, but in the few cases I did, the list generated here was actually
correctly supported by 'systemd-run -p'.

A smoke test is added.

9 months agoshared/bus-unit-util: convert to a table
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 17:29:51 +0000 (19:29 +0200)] 
shared/bus-unit-util: convert to a table

9 months agoshared/bus-unit-util: add helper for TimeoutSec=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 16:11:57 +0000 (18:11 +0200)] 
shared/bus-unit-util: add helper for TimeoutSec=

9 months agoshared/bus-unit-util: add define to shorten common append pattern
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 15:18:28 +0000 (17:18 +0200)] 
shared/bus-unit-util: add define to shorten common append pattern

9 months agoshared/bus-unit-util: add helper for AppArmorProfile=/SmackProcessLabel=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 14:46:32 +0000 (16:46 +0200)] 
shared/bus-unit-util: add helper for AppArmorProfile=/SmackProcessLabel=

9 months agoshared/bus-unit-util: add helper for CPUQuotaPeriodSec=ManagedOOMMemoryPressureDurati...
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 14:44:01 +0000 (16:44 +0200)] 
shared/bus-unit-util: add helper for CPUQuotaPeriodSec=ManagedOOMMemoryPressureDurationSec=

9 months agoshared/bus-unit-util: add helper for unit deps
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 14:41:29 +0000 (16:41 +0200)] 
shared/bus-unit-util: add helper for unit deps

9 months agoshared/bus-unit-util: define helper for conditions and asserts
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 14:37:24 +0000 (16:37 +0200)] 
shared/bus-unit-util: define helper for conditions and asserts

The function has "try" in the name because it dynamically checks
if the field name matches.

9 months agoshared/bus-unit-util: define helper for SuccessActionExitStatus= and friend
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 14:23:31 +0000 (16:23 +0200)] 
shared/bus-unit-util: define helper for SuccessActionExitStatus= and friend

9 months agoshared/bus-unit-util: add helper for TimersCalendar property
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 14:16:04 +0000 (16:16 +0200)] 
shared/bus-unit-util: add helper for TimersCalendar property

9 months agoshared/bus-unit-util: add helper for TimersMonotonic property
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 14:14:44 +0000 (16:14 +0200)] 
shared/bus-unit-util: add helper for TimersMonotonic property

9 months agoshared/bus-unit-util: add helper for Listen property
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 14:13:03 +0000 (16:13 +0200)] 
shared/bus-unit-util: add helper for Listen property

9 months agoshared/bus-unit-util: use common helper for various strv properties
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 14:10:30 +0000 (16:10 +0200)] 
shared/bus-unit-util: use common helper for various strv properties

9 months agoshared/bus-unit-util: define helper for SuccessExitStatus= and friends
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 14:08:52 +0000 (16:08 +0200)] 
shared/bus-unit-util: define helper for SuccessExitStatus= and friends

9 months agoshared/bus-unit-util: define helper for Paths property
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 14:05:33 +0000 (16:05 +0200)] 
shared/bus-unit-util: define helper for Paths property

9 months agotest: drop ProtectHostnameEx, add one test for ProtectHostnameEx
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 11:38:29 +0000 (13:38 +0200)] 
test: drop ProtectHostnameEx, add one test for ProtectHostnameEx

This is a separate commit because the parent commit is supposed to be
backward compatible, i.e. the tests must pass with both the bogus ProtectHostnameEx
name and ProtectHostname.

A test is added for ProtectHostnameEx to verify that it is still accepted
for backward compat.

9 months agoshared/bus-unit-util: add helper for ProtectHostnameEx and fix naming confusion
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 15:58:02 +0000 (17:58 +0200)] 
shared/bus-unit-util: add helper for ProtectHostnameEx and fix naming confusion

As with grandparent commit for ImportCredentialEx=, the whole series of commits
that extended ProtectHostname was confused (6746f288548a240148c7c9643e14996bfe960017,
cf48bde7aea52b18ac3fa218d3f60fd3d533ef66e76fcd0e40a6910f4818a374c6a8d854d644ff93),
because it added ProtectHostnameEx in places where parsing of ProtectHostname
should be have been extended.

Accept ProtectHostname=… with the new extended syntax, keep accepting
ProtectHostnameEx=… for compat with release v257. Prefer sending ProtectHostname.

Partially resolves https://github.com/systemd/systemd/issues/37174.

9 months agoshared/bus-unit-util: add a helper function for directory args
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 15:56:02 +0000 (17:56 +0200)] 
shared/bus-unit-util: add a helper function for directory args

9 months agoshared/bus-unit-util: define helper for ExtensionImages=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:23:26 +0000 (14:23 +0200)] 
shared/bus-unit-util: define helper for ExtensionImages=

9 months agoshared/bus-unit-util: define helper for MountImages=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:23:10 +0000 (14:23 +0200)] 
shared/bus-unit-util: define helper for MountImages=

9 months agoshared/bus-unit-util: define helper for RootImageOptions=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:21:43 +0000 (14:21 +0200)] 
shared/bus-unit-util: define helper for RootImageOptions=

9 months agoshared/bus-unit-util: define helper for RootHashSignature=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:20:51 +0000 (14:20 +0200)] 
shared/bus-unit-util: define helper for RootHashSignature=

9 months agoshared/bus-unit-util: define helper for RootHash=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:19:29 +0000 (14:19 +0200)] 
shared/bus-unit-util: define helper for RootHash=

9 months agoshared/bus-unit-util: define helper for TemporaryFileSystem=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:18:31 +0000 (14:18 +0200)] 
shared/bus-unit-util: define helper for TemporaryFileSystem=

9 months agoshared/bus-unit-util: define helper for BindPaths=/BindReadOnlyPaths=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:17:34 +0000 (14:17 +0200)] 
shared/bus-unit-util: define helper for BindPaths=/BindReadOnlyPaths=

9 months agoshared/bus-unit-util: define helper for RestrictNamespaces=/DelegateNamespaces=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:15:46 +0000 (14:15 +0200)] 
shared/bus-unit-util: define helper for RestrictNamespaces=/DelegateNamespaces=

9 months agoshared/bus-unit-util: add helper for filter lists
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 15:54:06 +0000 (17:54 +0200)] 
shared/bus-unit-util: add helper for filter lists

9 months agoshared/bus-unit-util: add helper for NUMAMask=
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 15:32:20 +0000 (17:32 +0200)] 
shared/bus-unit-util: add helper for NUMAMask=

9 months agoshared/bus-unit-util: use common helper for NUMAPolicy=
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 15:26:54 +0000 (17:26 +0200)] 
shared/bus-unit-util: use common helper for NUMAPolicy=

9 months agoshared/bus-unit-util: define helper for CPUAffinity=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:07:50 +0000 (14:07 +0200)] 
shared/bus-unit-util: define helper for CPUAffinity=

9 months agotree-wide: Add more socket units (#37991)
Lennart Poettering [Thu, 3 Jul 2025 15:43:20 +0000 (17:43 +0200)] 
tree-wide: Add more socket units (#37991)

9 months agotree-wide: Add initrd presets
DaanDeMeyer [Wed, 2 Jul 2025 07:43:30 +0000 (09:43 +0200)] 
tree-wide: Add initrd presets

Currently, when running "systemctl preset-all --root=xxx" in mkosi
to enable/disable units for initrds, the system presets are used.
The problem with this approach is that the system presets are written
for the system, and that is not necessarily ideal for an initrd, but we
still want to use the same packages in the initrd that we install in the
system, so let's introduce a separate directory for initrd presets which
is used to pick up preset files from when we detect that we're configuring
an initrd (by looking for /etc/initrd-release).

We also introduce a systemd preset file for the initrd, which is based on
the system one, except with all the stuff unnecessary for the initrd removed.

9 months agoconf-files: if CONF_FILES_REGULAR|CONF_FILES_DIRECTORY is used together allow either...
Lennart Poettering [Thu, 3 Jul 2025 10:10:55 +0000 (12:10 +0200)] 
conf-files: if CONF_FILES_REGULAR|CONF_FILES_DIRECTORY is used together allow either file or dir

This fixes a a bug introduced by
50c81130b69d04288f50217bede709bac6ca2b1a.

9 months agossh-generator: generate /etc/issue.d/ with VSOCK ssh info data 37819/head
Lennart Poettering [Thu, 12 Jun 2025 09:38:21 +0000 (11:38 +0200)] 
ssh-generator: generate /etc/issue.d/ with VSOCK ssh info data

I find myself trying to log into a fresh ParticleOS VM started via
systemd-vmspawn all the time, but I don't know its CID. Let's show it on
the getty screen, to make it immediately visible.

9 months agogetty: support /run/issue.d/
Lennart Poettering [Thu, 12 Jun 2025 12:34:13 +0000 (14:34 +0200)] 
getty: support /run/issue.d/

By default agetty will not display /run/issue.d/ if /etc/issue exists.
This is quite unfortunate and has actually been fixed upstream in:

https://github.com/util-linux/util-linux/commit/508fb0e7ac103b68531a59db2a4473897853ab52

However, no release has been tagged with this yet, and it doesn't look
like this will happen any time soon. Hence, for now, let's add a
work-around and manually override the issue files to include.

This should be reverted once a new util-linux/agetty release has been
tagged, and found its way into the relevant distributions. Given this is
mostly about cosmetics we do not have to precisely sync the package
updates on this, but only roughly.

9 months agosd-event: extend comment about a flex member 37790/head
Zbigniew Jędrzejewski-Szmek [Mon, 9 Jun 2025 14:11:17 +0000 (16:11 +0200)] 
sd-event: extend comment about a flex member

Follow-up for dbef4dd4f23517abfc73b35f0bdf004d2f8f4805. Everything that that
commit says is true, but — at least for me — it wasn't obvious why the code is
correct and we can do fixed-size allocations like new(struct inotify_data, 1).

9 months agosd-event: typedef struct inotify_data to InotifyData
Zbigniew Jędrzejewski-Szmek [Sun, 8 Jun 2025 12:01:16 +0000 (14:01 +0200)] 
sd-event: typedef struct inotify_data to InotifyData

9 months agosd-event: typedef struct inode_data to InodeData
Zbigniew Jędrzejewski-Szmek [Sun, 8 Jun 2025 11:52:59 +0000 (13:52 +0200)] 
sd-event: typedef struct inode_data to InodeData

This is an internal definition, so use the usual CamelCase typedef.

9 months agosd-event: make some more bools non-bitfield
Zbigniew Jędrzejewski-Szmek [Sun, 8 Jun 2025 11:41:31 +0000 (13:41 +0200)] 
sd-event: make some more bools non-bitfield

In sd_event_source.child, we have 5 bools. If we make them each take one byte,
the structure size increases. So let's do that for the three of them, and leave
the other two (less frequently used) squished into the last byte. This allows
more efficient code to be generated, without changing the size of the struct:

$ diff -u <(objdump -S build/src/shared/libsystemd-shared-258.so.0|awk '/^static void source_io_unregister/,/^\}/') \
          <(objdump -S build/src/shared/libsystemd-shared-258.so|awk '/^static void source_io_unregister/,/^\}/')

         s->io.registered = false;
-  34d46f:      48 8b 45 d8             mov    -0x28(%rbp),%rax
-  34d473:      0f b6 90 a4 00 00 00    movzbl 0xa4(%rax),%edx
-  34d47a:      83 e2 fe                and    $0xfffffffe,%edx
-  34d47d:      88 90 a4 00 00 00       mov    %dl,0xa4(%rax)
-  34d483:      eb 04                   jmp    34d489 <source_io_unregister+0x1ca>
+  34bffe:      48 8b 45 d8             mov    -0x28(%rbp),%rax
+  34c002:      c6 80 a4 00 00 00 00    movb   $0x0,0xa4(%rax)
+  34c009:      eb 04                   jmp    34c00f <source_io_unregister+0x1be>
                 return;

9 months agosd-event: drop some bitfield specifiers from struct sd_event_source
Zbigniew Jędrzejewski-Szmek [Sun, 8 Jun 2025 11:21:28 +0000 (13:21 +0200)] 
sd-event: drop some bitfield specifiers from struct sd_event_source

This does not change the size of the structure, because the size is determined
by .child, which has a 128-byte siginfo_t field. But by dropping the specifiers
we let the compiler generate code that operates on full bytes instead of having
to play with bitmasks, see second diff below.

Also move the bools in .memory_pressure into a gap to save a few bytes on
initialization.

$ diff -U100 <(pahole build/src/shared/libsystemd-shared-258.so.0 | awk '/struct sd_event_source/,/^}/') \
             <(pahole build/src/shared/libsystemd-shared-258.so | awk '/struct sd_event_source/,/^}/')
--- /proc/self/fd/11 2025-06-08 13:16:55.614738334 +0200
+++ /proc/self/fd/12 2025-06-08 13:16:55.615738386 +0200
@@ -1,109 +1,109 @@
 struct sd_event_source {
  WakeupType                 wakeup;               /*     0     4 */
  unsigned int               n_ref;                /*     4     4 */
  sd_event *                 event;                /*     8     8 */
  void *                     userdata;             /*    16     8 */
  sd_event_handler_t         prepare;              /*    24     8 */
  char *                     description;          /*    32     8 */
  EventSourceType            type;                 /*    40     4 */
        signed int                 enabled:3;            /*    44: 0  4 */
  _Bool                      pending:1;            /*    44: 3  1 */
  _Bool                      dispatching:1;        /*    44: 4  1 */
  _Bool                      floating:1;           /*    44: 5  1 */
  _Bool                      exit_on_failure:1;    /*    44: 6  1 */
  _Bool                      ratelimited:1;        /*    44: 7  1 */

  /* XXX 24 bits hole, try to pack */

  int64_t                    priority;             /*    48     8 */
  unsigned int               pending_index;        /*    56     4 */
  unsigned int               prepare_index;        /*    60     4 */
  /* --- cacheline 1 boundary (64 bytes) --- */
  uint64_t                   pending_iteration;    /*    64     8 */
  uint64_t                   prepare_iteration;    /*    72     8 */
  sd_event_destroy_t         destroy_callback;     /*    80     8 */
  sd_event_handler_t         ratelimit_expire_callback; /*    88     8 */
  sd_event_source *          sources_next;         /*    96     8 */
  sd_event_source *          sources_prev;         /*   104     8 */
  RateLimit                  rate_limit;           /*   112    24 */
  /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
  unsigned int               earliest_index;       /*   136     4 */
  unsigned int               latest_index;         /*   140     4 */
  union {
  struct {
  sd_event_io_handler_t callback;  /*   144     8 */
  int        fd;                   /*   152     4 */
  uint32_t   events;               /*   156     4 */
  uint32_t   revents;              /*   160     4 */
- _Bool      registered:1;         /*   164: 0  1 */
- _Bool      owned:1;              /*   164: 1  1 */
+ _Bool      registered;           /*   164     1 */
+ _Bool      owned;                /*   165     1 */
  } io;                                    /*   144    24 */
  struct {
  sd_event_time_handler_t callback; /*   144     8 */
  usec_t     next;                 /*   152     8 */
  usec_t     accuracy;             /*   160     8 */
  } time;                                  /*   144    24 */
  struct {
  sd_event_signal_handler_t callback; /*   144     8 */
  struct signalfd_siginfo siginfo; /*   152   128 */
  /* --- cacheline 4 boundary (256 bytes) was 24 bytes ago --- */
  int        sig;                  /*   280     4 */
  _Bool      unblock;              /*   284     1 */
  } signal;                                /*   144   144 */
  struct {
  sd_event_child_handler_t callback; /*   144     8 */
  siginfo_t  siginfo;              /*   152   128 */
  /* --- cacheline 4 boundary (256 bytes) was 24 bytes ago --- */
  pid_t      pid;                  /*   280     4 */
  int        options;              /*   284     4 */
  int        pidfd;                /*   288     4 */
  _Bool      registered:1;         /*   292: 0  1 */
  _Bool      pidfd_owned:1;        /*   292: 1  1 */
  _Bool      process_owned:1;      /*   292: 2  1 */
  _Bool      exited:1;             /*   292: 3  1 */
  _Bool      waited:1;             /*   292: 4  1 */
  } child;                                 /*   144   152 */
  struct {
  sd_event_handler_t callback;     /*   144     8 */
  } defer;                                 /*   144     8 */
  struct {
  sd_event_handler_t callback;     /*   144     8 */
  } post;                                  /*   144     8 */
  struct {
  sd_event_handler_t callback;     /*   144     8 */
  unsigned int prioq_index;        /*   152     4 */
  } exit;                                  /*   144    16 */
  struct {
  sd_event_inotify_handler_t callback; /*   144     8 */
  uint32_t   mask;                 /*   152     4 */

  /* XXX 4 bytes hole, try to pack */

  struct inode_data * inode_data;  /*   160     8 */
  sd_event_source * by_inode_data_next; /*   168     8 */
  sd_event_source * by_inode_data_prev; /*   176     8 */
  } inotify;                               /*   144    40 */
  struct {
  int        fd;                   /*   144     4 */
+ _Bool      registered;           /*   148     1 */
+ _Bool      locked;               /*   149     1 */
+ _Bool      in_write_list;        /*   150     1 */

- /* XXX 4 bytes hole, try to pack */
+ /* XXX 1 byte hole, try to pack */

  sd_event_handler_t callback;     /*   152     8 */
  void *     write_buffer;         /*   160     8 */
  size_t     write_buffer_size;    /*   168     8 */
  uint32_t   events;               /*   176     4 */
  uint32_t   revents;              /*   180     4 */
  sd_event_source * write_list_next; /*   184     8 */
  /* --- cacheline 3 boundary (192 bytes) --- */
  sd_event_source * write_list_prev; /*   192     8 */
- _Bool      registered:1;         /*   200: 0  1 */
- _Bool      locked:1;             /*   200: 1  1 */
- _Bool      in_write_list:1;      /*   200: 2  1 */
- } memory_pressure;                       /*   144    64 */
+ } memory_pressure;                       /*   144    56 */
  };                                               /*   144   152 */

  /* size: 296, cachelines: 5, members: 26 */
  /* sum members: 292 */
  /* sum bitfield members: 8 bits, bit holes: 1, sum bit holes: 24 bits */
  /* last cacheline: 40 bytes */
 };

Example diff in assembly:

$ diff -u <(objdump -S build/src/shared/libsystemd-shared-258.so.0|awk '/^static void event_source_time_prioq_reshuffle/,/^\}/') \
          <(objdump -S build/src/shared/libsystemd-shared-258.so|awk '/^static void event_source_time_prioq_reshuffle/,/^\}/')

         d->needs_rearm = true;
-  34d80e:      48 8b 45 f8             mov    -0x8(%rbp),%rax
-  34d812:      0f b6 50 20             movzbl 0x20(%rax),%edx
-  34d816:      83 ca 01                or     $0x1,%edx
-  34d819:      88 50 20                mov    %dl,0x20(%rax)
-  34d81c:      eb 01                   jmp    34d81f <event_source_time_prioq_reshuffle+0x12c>
+  34d7c3:      48 8b 45 f8             mov    -0x8(%rbp),%rax
+  34d7c7:      c6 40 20 01             movb   $0x1,0x20(%rax)
+  34d7cb:      eb 01                   jmp    34d7ce <event_source_time_prioq_reshuffle+0x126>
                 return; /* no-op for an event source which is neither a timer nor ratelimited. */
-  34d81e:      90                      nop
+  34d7cd:      90                      nop

9 months agoci: add test case for building without OpenSSL UI support 38041/head
Yu Watanabe [Thu, 3 Jul 2025 05:39:40 +0000 (14:39 +0900)] 
ci: add test case for building without OpenSSL UI support

9 months agoopenssl-util: allow to build with openssl without UI support
Yu Watanabe [Thu, 3 Jul 2025 01:26:41 +0000 (10:26 +0900)] 
openssl-util: allow to build with openssl without UI support

When OpenSSL is built without UI support, OPENSSL_NO_UI_CONSOLE is
defined. Or, even openssl is built with UI support, people may want to
build systemd without using OpenSSL's UI feature by specifying
-Dc_args='-DOPENSSL_NO_UI_CONSOLE=1'. This adds support for such cases.

Not tested, but hopefully, now systemd can be built with other ssl library,
like BoringSSL, which deos not support UIs.

Closes #38024.

9 months agofd-util: Move O_ACCMODE_STRICT to fd-util.h 38051/head
DaanDeMeyer [Thu, 3 Jul 2025 12:23:16 +0000 (14:23 +0200)] 
fd-util: Move O_ACCMODE_STRICT to fd-util.h

We're still discussing whether we want to remove this or not, but
regardless of whether we end up removing it or not, it's something
we add ourselves and as such should not live in our headers that
override glibc headers, so let's move it to fd-util.h.

9 months agofd-util: Move RAW_O_LARGEFILE definition to fd-util.h
DaanDeMeyer [Thu, 3 Jul 2025 12:17:31 +0000 (14:17 +0200)] 
fd-util: Move RAW_O_LARGEFILE definition to fd-util.h

This is not something that comes from glibc, but which we invent
ourselves. As such, it should not be part of our overrides of glibc
headers, but instead should be part of one of our own headers, so
let's move it to fd-util.h.

Follow up for 194a690181c4857542a094d19f5808f8f4032ed9

9 months agoMove missing_xyz.h for glibc headers to src/basic/include/ (#37960)
Daan De Meyer [Thu, 3 Jul 2025 11:47:46 +0000 (13:47 +0200)] 
Move missing_xyz.h for glibc headers to src/basic/include/ (#37960)

9 months agoresolve: add converters for sshfp key types and algs
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jul 2025 08:11:03 +0000 (10:11 +0200)] 
resolve: add converters for sshfp key types and algs

With the data center move in the Fedora project, the ssh keys have changed.
The list with numerical values is hard to read…

$ resolvectl -t sshfp query pkgs.fedoraproject.org
Old:
pkgs.fedoraproject.org IN SSHFP 1 1 18270c9131ef9664861f5aa675a981146573cce0 -- link: wlp0s20f3
pkgs.fedoraproject.org IN SSHFP 1 2 b067e6eb4c3e2d0e8bb37d6799493b762131816fe979940bbe660470abe6efbb -- link: wlp0s20f3
pkgs.fedoraproject.org IN SSHFP 3 1 a1ad871a5eabe3027728d498a89895fb5bf5b290 -- link: wlp0s20f3
pkgs.fedoraproject.org IN SSHFP 3 2 c3dc523f99bb5155ec87f40fd1aa198c68f349d75beeccf60e87b44c9b461907 -- link: wlp0s20f3
pkgs.fedoraproject.org IN SSHFP 4 1 e1265f46012ee40967127e06cf5533b270568428 -- link: wlp0s20f3
pkgs.fedoraproject.org IN SSHFP 4 2 acaa1ee6292d01f1ae7881fdf03aaf7d7b0814e34e94c3558a25e4d1aaab8f94 -- link: wlp0s20f3
New:
pkgs.fedoraproject.org IN SSHFP RSA     SHA-1   18270c9131ef9664861f5aa675a981146573cce0 -- link: wlp0s20f3
pkgs.fedoraproject.org IN SSHFP RSA     SHA-256 b067e6eb4c3e2d0e8bb37d6799493b762131816fe979940bbe660470abe6efbb -- link: wlp0s20f3
pkgs.fedoraproject.org IN SSHFP ECDSA   SHA-1   a1ad871a5eabe3027728d498a89895fb5bf5b290 -- link: wlp0s20f3
pkgs.fedoraproject.org IN SSHFP ECDSA   SHA-256 c3dc523f99bb5155ec87f40fd1aa198c68f349d75beeccf60e87b44c9b461907 -- link: wlp0s20f3
pkgs.fedoraproject.org IN SSHFP Ed25519 SHA-1   e1265f46012ee40967127e06cf5533b270568428 -- link: wlp0s20f3
pkgs.fedoraproject.org IN SSHFP Ed25519 SHA-256 acaa1ee6292d01f1ae7881fdf03aaf7d7b0814e34e94c3558a25e4d1aaab8f94 -- link: wlp0s20f3

9 months agofix: UnsetProperty example in systemd.link.xml
Frede Braendstrup [Thu, 3 Jul 2025 07:05:05 +0000 (09:05 +0200)] 
fix: UnsetProperty example in systemd.link.xml

9 months agotest: Add tests for various varlink socket units 37991/head
Daan De Meyer [Mon, 30 Jun 2025 11:41:04 +0000 (13:41 +0200)] 
test: Add tests for various varlink socket units

Let's make sure these socket units work as expected by stopping the
related services and making sure the services are started as expected
when a client connects to the corresponding socket.

9 months agoudev: Fix initializing varlink server from listen fd
Daan De Meyer [Mon, 30 Jun 2025 11:06:46 +0000 (13:06 +0200)] 
udev: Fix initializing varlink server from listen fd

manager_listen_fds() instructs sd_listen_fds_with_names() to unset
the environment which means that when sd_varlink_server_listen_auto()
is called from manager_start_varlink_server(), when it eventually calls
sd_listen_fds_with_names() it will return zero because the environment
has already been unset in manager_listen_fds().

Fix the issue by not using sd_varlink_server_listen_auto() but instead
keeping track of the varlink socket in manager_listen_fds() and returning
it and passing it to manager_start_varlink_server().

9 months agologin: Add varlink socket unit
Daan De Meyer [Fri, 27 Jun 2025 14:18:23 +0000 (16:18 +0200)] 
login: Add varlink socket unit

9 months agologin: Add missing newline between headers
Daan De Meyer [Fri, 27 Jun 2025 14:14:33 +0000 (16:14 +0200)] 
login: Add missing newline between headers

9 months agonetwork: Add varlink socket unit
Daan De Meyer [Fri, 27 Jun 2025 13:08:44 +0000 (15:08 +0200)] 
network: Add varlink socket unit

9 months agotest: allow to run test-local-addresses with IPv6 disabled by default, and assume...
Luca Boccassi [Thu, 3 Jul 2025 08:58:02 +0000 (09:58 +0100)] 
test: allow to run test-local-addresses with IPv6 disabled by default, and assume RTA_VIA is always supported (#38039)

9 months agofuzz: avoid assertion for ExecContext.private_var_tmp triggered
Yu Watanabe [Thu, 3 Jul 2025 05:29:55 +0000 (14:29 +0900)] 
fuzz: avoid assertion for ExecContext.private_var_tmp triggered

Follow-up for 6156bec7a464815084fa5218fe782ea6cb20ad52.

Fixes #38037 and oss-fuzz#429112745.

9 months agoshared/bus-unit-util: define helper for CapabilityBoundingSet=/AmbientCapabilities=
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 15:24:53 +0000 (17:24 +0200)] 
shared/bus-unit-util: define helper for CapabilityBoundingSet=/AmbientCapabilities=

9 months agoshared/bus-unit-util: define helper function for rlimits
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 15:06:12 +0000 (17:06 +0200)] 
shared/bus-unit-util: define helper function for rlimits

Strictly speaking, we call startswith twice now. This duplication
shall be eliminated later.

9 months agoshared/bus-unit-util: define helper for StandardInputData=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:06:32 +0000 (14:06 +0200)] 
shared/bus-unit-util: define helper for StandardInputData=

9 months agoshared/bus-unit-util: define helper for StandardInputText=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:06:23 +0000 (14:06 +0200)] 
shared/bus-unit-util: define helper for StandardInputText=

9 months agoshared/bus-unit-util: define helper functions for StandardInput/Output/Error=
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 14:55:34 +0000 (16:55 +0200)] 
shared/bus-unit-util: define helper functions for StandardInput/Output/Error=

9 months agoshared/bus-unit-util: define helper for LogFilterPatterns=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:05:04 +0000 (14:05 +0200)] 
shared/bus-unit-util: define helper for LogFilterPatterns=

9 months agoshared/bus-unit-util: define helper for LogExtraFields=
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 14:49:41 +0000 (16:49 +0200)] 
shared/bus-unit-util: define helper for LogExtraFields=

9 months agoTEST-54-CREDS: s/ImportCredentialEx/ImportCredential/ except for one place
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 13:48:55 +0000 (15:48 +0200)] 
TEST-54-CREDS: s/ImportCredentialEx/ImportCredential/ except for one place

This is a separate commit because the tests are supposed to pass with both
the old spelling and the new.

9 months agoshared/bus-unit-util: add helper for ImportCredentialEx= and fix naming confusion
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:03:32 +0000 (14:03 +0200)] 
shared/bus-unit-util: add helper for ImportCredentialEx= and fix naming confusion

We add D-Bus properties like "*Ex" because we cannot change the D-Bus property
type without breaking backward comapatibility. But those names are only for
D-Bus, not for config file stanzas or the command-line parser. There, we can
change the type, or in other words, there is no type, just a free-form string
whose interpretation we can extend or change. Commit
831f208783aeac443e6f2fc2efc3119535a032ef that added ProtectHostnameEx was
confused, because it added ImportCredentialEx in places where parsing of
ImportCredential should be have been extended.

On D-Bus, we send ImportCrednential in preference, and ImportCredentialEx only
when required. This way we send less bytes on the wire and support older
systems that don't understand the new property.

Partially resolves https://github.com/systemd/systemd/issues/37174.

9 months agoshared/bus-unit-util: define helper for LoadCredential=/LoadCredentialEncrypted=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:02:56 +0000 (14:02 +0200)] 
shared/bus-unit-util: define helper for LoadCredential=/LoadCredentialEncrypted=

9 months agoshared/bus-unit-util: define helper for SetCredential=/SetCredentialEncrypted=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 12:02:27 +0000 (14:02 +0200)] 
shared/bus-unit-util: define helper for SetCredential=/SetCredentialEncrypted=

9 months agoshared/bus-unit-util: define helper function for EnvironmentFile=
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 14:45:49 +0000 (16:45 +0200)] 
shared/bus-unit-util: define helper function for EnvironmentFile=

9 months agoshared/bus-unit-util: add helper for SocketBindAllow=/SocketBindDeny=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 11:58:11 +0000 (13:58 +0200)] 
shared/bus-unit-util: add helper for SocketBindAllow=/SocketBindDeny=

9 months agoshared/bus-unit-util: define helper for BPFProgram=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 11:57:29 +0000 (13:57 +0200)] 
shared/bus-unit-util: define helper for BPFProgram=

9 months agoshared/bus-unit-util: add helper for IPIngressFilterPath=/IPEgressFilterPath=
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 14:36:03 +0000 (16:36 +0200)] 
shared/bus-unit-util: add helper for IPIngressFilterPath=/IPEgressFilterPath=

9 months agoshared/bus-unit-util: define helper function for IPAddressAllow=/IPAddressDeny=
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 14:18:50 +0000 (16:18 +0200)] 
shared/bus-unit-util: define helper function for IPAddressAllow=/IPAddressDeny=

9 months agoshared/bus-unit-util: define helper for IODeviceLatencyTargetSec=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 11:54:12 +0000 (13:54 +0200)] 
shared/bus-unit-util: define helper for IODeviceLatencyTargetSec=

9 months agoshared/bus-unit-util: define helper for IODeviceWeight=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 11:53:25 +0000 (13:53 +0200)] 
shared/bus-unit-util: define helper for IODeviceWeight=

9 months agoshared/bus-unit-util: add helper for group io limits
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 11:51:47 +0000 (13:51 +0200)] 
shared/bus-unit-util: add helper for group io limits

9 months agoshared/bus-unit-util: define helper for DeviceAllow=
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 14:17:50 +0000 (16:17 +0200)] 
shared/bus-unit-util: define helper for DeviceAllow=

9 months agobasic/cgroup-util: align tables
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 13:58:22 +0000 (15:58 +0200)] 
basic/cgroup-util: align tables

9 months agoshared/bus-unit-util: define helper function for CPUQuota=
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 13:43:55 +0000 (15:43 +0200)] 
shared/bus-unit-util: define helper function for CPUQuota=

Unfortunately we can't nicely fold it in with the other helpers, because
of the unusual naming mismatch: CPUQuota vs. CPUQuotaPerSecUSec.

9 months agoshared/bus-unit-util: define helper function for resource limits
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 13:28:59 +0000 (15:28 +0200)] 
shared/bus-unit-util: define helper function for resource limits

9 months agoshared/bus-unit-util: define helper for Delegate=
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 11:44:09 +0000 (13:44 +0200)] 
shared/bus-unit-util: define helper for Delegate=

9 months agoshared/bus-unit-util: define helper for StartupAllowedMemoryNodes= and friends
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2025 11:43:09 +0000 (13:43 +0200)] 
shared/bus-unit-util: define helper for StartupAllowedMemoryNodes= and friends

9 months agoshared/bus-unit-util: define helper for ManagedOOMMemoryPressureLimit=
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 13:24:34 +0000 (15:24 +0200)] 
shared/bus-unit-util: define helper for ManagedOOMMemoryPressureLimit=

9 months agoshared/bus-unit-util: fix appending of IODeviceLatencyTargetSec=
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 12:42:02 +0000 (14:42 +0200)] 
shared/bus-unit-util: fix appending of IODeviceLatencyTargetSec=

9 months agoshared/bus-unit-util: use common helper in one more place
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jun 2025 12:31:18 +0000 (14:31 +0200)] 
shared/bus-unit-util: use common helper in one more place

9 months agoRename STRV_MAKE_EMPTY to just STRV_EMPTY
Zbigniew Jędrzejewski-Szmek [Wed, 4 Jun 2025 07:10:12 +0000 (09:10 +0200)] 
Rename STRV_MAKE_EMPTY to just STRV_EMPTY

Even though this creates a stack allocation, it is not a function macro, so
drop the "make" from the name.

9 months agoshared/bus-unit-util: drop spurious parentheses
Zbigniew Jędrzejewski-Szmek [Thu, 29 May 2025 09:39:48 +0000 (11:39 +0200)] 
shared/bus-unit-util: drop spurious parentheses

9 months agologind: Don't match non-leader processes for utmp TTY determination (#38027)
Lennart Poettering [Thu, 3 Jul 2025 07:20:19 +0000 (09:20 +0200)] 
logind: Don't match non-leader processes for utmp TTY determination (#38027)

This ensures we don't erroneously assign pseudoterminals created by
terminal emulators that use utempter to register themselves in utmp when
run under a GUI session that doesn't have a TTY assigned.

9 months agotest: assume RTA_VIA is supported 38039/head
Yu Watanabe [Thu, 3 Jul 2025 03:35:37 +0000 (12:35 +0900)] 
test: assume RTA_VIA is supported

RTA_VIA support was added in kernel v5.2:
https://github.com/torvalds/linux/commit/d15662682db232da77136cd348f4c9df312ca6f9

Our baseline on the kernel is v5.4. Hence, we can assume that the
attribute is supported.

9 months agotest-local-addresses: enable IPv6 on the test interface
Yu Watanabe [Thu, 3 Jul 2025 03:31:55 +0000 (12:31 +0900)] 
test-local-addresses: enable IPv6 on the test interface

If IPv6 is disabled by default, we need to explicitly enable IPv6 on the
interface. Otherwise, adding an IPv6 address or route will fail.

9 months agotest-local-addresses: use ASSERT_OK() and friends
Yu Watanabe [Wed, 2 Jul 2025 23:34:55 +0000 (08:34 +0900)] 
test-local-addresses: use ASSERT_OK() and friends

9 months agoFixes for vscode/intellisense parsing (#38040)
Yu Watanabe [Thu, 3 Jul 2025 03:46:57 +0000 (12:46 +0900)] 
Fixes for vscode/intellisense parsing (#38040)

With these two changes the vscode parser works nicely again. Once the
EDG frontend adds support for this feature I'll fix it to check for the
fixed version like for GCC.

9 months agoudev-builtin-uaccess: open device node with O_PATH
Yu Watanabe [Wed, 2 Jul 2025 23:15:51 +0000 (08:15 +0900)] 
udev-builtin-uaccess: open device node with O_PATH

Some device node refuses to be opened with read-write mode.
Let's not open with O_RDWR, but open with O_PATH, and use
FORMAT_PROC_FD_PATH().

Follow-up for 1abb592f2f886913492e4967cc96816c167177a9.

Fixes #38033.

9 months agocore/transaction: minor tweaks for cyclic dependency logging (#38014)
Yu Watanabe [Thu, 3 Jul 2025 03:45:47 +0000 (12:45 +0900)] 
core/transaction: minor tweaks for cyclic dependency logging (#38014)

9 months agomeson: make -Wsequence-point warning critical
Yu Watanabe [Tue, 1 Jul 2025 04:00:08 +0000 (13:00 +0900)] 
meson: make -Wsequence-point warning critical

It detects e.g. multiple evaluations in macro.

9 months agologind: use manager_get_session_by_leader in manager_get_session_by_pidref 38027/head
Myrrh Periwinkle [Wed, 2 Jul 2025 15:18:33 +0000 (22:18 +0700)] 
logind: use manager_get_session_by_leader in manager_get_session_by_pidref

9 months agobuild(deps): bump meson from 1.8.1 to 1.8.2 in /.github/workflows
dependabot[bot] [Tue, 1 Jul 2025 10:54:38 +0000 (10:54 +0000)] 
build(deps): bump meson from 1.8.1 to 1.8.2 in /.github/workflows

Bumps [meson](https://github.com/mesonbuild/meson) from 1.8.1 to 1.8.2.
- [Release notes](https://github.com/mesonbuild/meson/releases)
- [Commits](https://github.com/mesonbuild/meson/compare/1.8.1...1.8.2)

---
updated-dependencies:
- dependency-name: meson
  dependency-version: 1.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
9 months agobuild(deps): bump redhat-plumbers-in-action/advanced-issue-labeler
dependabot[bot] [Tue, 1 Jul 2025 10:35:53 +0000 (10:35 +0000)] 
build(deps): bump redhat-plumbers-in-action/advanced-issue-labeler

Bumps [redhat-plumbers-in-action/advanced-issue-labeler](https://github.com/redhat-plumbers-in-action/advanced-issue-labeler) from 3.2.0 to 3.2.2.
- [Release notes](https://github.com/redhat-plumbers-in-action/advanced-issue-labeler/releases)
- [Commits](https://github.com/redhat-plumbers-in-action/advanced-issue-labeler/compare/d498805e5c7c0658e336948b3363480bcfd68da6...0db433d412193574252480b4fc22f2e4319a4ea3)

---
updated-dependencies:
- dependency-name: redhat-plumbers-in-action/advanced-issue-labeler
  dependency-version: 3.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
9 months agomacro: EDG compiler frontends doesn't support enum types 38040/head
Luca Boccassi [Thu, 3 Jul 2025 00:23:31 +0000 (01:23 +0100)] 
macro: EDG compiler frontends doesn't support enum types

It declares STDC_VERSION 202311L but still doesn't support this feature:

https://en.cppreference.com/w/c/compiler_support/23

The EDG frontend is used by intellisense, which is the default
engine in VSCode, so parsing is currently broken and tons of
spurious errors are shown. Skip this feature when this
compiler frontend is used.

Follow-up for 92100f14c3b054903053559ed831a1b25033046c

9 months agosd-common: do not fail preprocessor when intellisense is parsing the header
Luca Boccassi [Thu, 3 Jul 2025 00:21:19 +0000 (01:21 +0100)] 
sd-common: do not fail preprocessor when intellisense is parsing the header

Just like coverity or clang analyzer, intellisense will parse _sd-common.h and
fail because of the #error so skip it like the others