Commit Graph
81337 Commits
Author SHA1 Message Date
Mike Yuan 60997a87ef blockdev-util: don't use mixed style of retval in block_device_get_originating
We have two typical styles of 'ret' param assignment + retval:

1) < 0 on actual error, 0 on nothing (ret == NULL), > 0 on something
2) recognizable errno on nothing, < 0 on other errors, >= 0 on something

but never use both at the same time.
2025-05-05 18:39:05 +02:00
Mike Yuan ab2f5407a0 core/cgroup: block_get_originating() doesn't return > 0
Follow-up for 612fc70fc0
2025-05-05 18:39:05 +02:00
Debarshi Ray ab46feb3e2 meson: Ensure that distribution packages own systemenvgeneratordir
Currently, Fedora's systemd RPM doesn't own systemenvgeneratordir
(ie., /usr/lib/systemd/system-environment-generators) [1] because it's
not created when systemd is installed.  In contrast, userenvgeneratordir
(ie., /usr/lib/systemd/user-environment-generators) is created, unless
the environment-d Meson option is explicitly disabled.

While this can be worked around elsewhere, it's better if the upstream
build system created the directories consistently.  It will avoid
repetition, and prevent silly bugs or deviations from creeping in.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=2284085
2025-05-06 00:12:02 +09:00
Daan De Meyer b75c6c3c3f meson: Make sure check-filesystems.sh runs from the build directory
run_command()'s working directory is documented as undefined but it
seems to be the current source directory as when the -ftime-trace
clang option is enabled, -.json is written to src/basic/meson.build
every time meson is run.

Let's make sure the command is executed in the build directory so that
any auxiliary files are written there as well.
2025-05-05 17:09:18 +02:00
Mike Yuan 0777e64ea2 units: two tweaks for socket units (#37309) 2025-05-05 15:13:00 +02:00
Yu Watanabe 11c5eff1cb udev/net: update log message 2025-05-05 22:07:04 +09:00
Yu Watanabe f4282e6a06 udev/net: mention which SR-IOV setting could not be applied in log message 2025-05-05 22:07:04 +09:00
Yu Watanabe fed4da3a19 network/sriov: mention which setting could not be applied in log message 2025-05-05 22:07:04 +09:00
Yu Watanabe d28746ef55 network: make log_link_message_full_errno() take format string 2025-05-05 22:07:04 +09:00
Yu Watanabe 3d026764f1 network/nexthop: split out nexthop_to_string() 2025-05-05 22:07:00 +09:00
Yu Watanabe c6f53cde20 network/route: split out route_to_string() from log_route_debug() 2025-05-05 22:06:19 +09:00
madroach a2bd93c2e8 hwdb: add HP 150 Wired Mouse (#37341) 2025-05-05 21:34:33 +09:00
Alexander Stepchenko 0cf03a36f2 man/systemctl: add preposition for clarity 2025-05-05 13:01:05 +02:00
Tim Small a50fa2a40f man/network: Note .link early boot caveat, and .network .netdev usage.
Document .link .network and .netdev file type distinctions in early
introductory text, and document distro-specific need to sync link files
with early-boot copies, see Debian bug 1005282:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1005282 for an
example.
2025-05-04 12:27:50 +09:00
Yu Watanabe a6619f9678 Vmspawn fixes (#37320)
Fixes
https://github.com/systemd/systemd/pull/36618#issuecomment-2844694845

and 

```
qemu-kvm: -device vmgenid,guid=5f303a47-6fae-4dd7-969c-6c1ea61e816e: 'vmgenid' is not a valid device model name
```
2025-05-04 12:24:04 +09:00
Mike Yuan bad578b145 core: rename core-varlink -> varlink
To make things consistent with dbus.[ch]
2025-05-04 12:22:38 +09:00
Daan De Meyer 5e6dd20a6e Various changes to prepare for running IWYU on the repository (#37319)
These are various commits that were required to get things compiling
after running IWYU. I think all of them make sense on their own, hence
this split PR to merge them ahead of time.
2025-05-02 13:41:31 +02:00
Arian van Putten 10819eb0d5 vmspawn: fix grow_image: Assertion `path' failed.
arg_image might be NULL (e.g. when booting a USI, or when passing -D)
2025-05-02 11:05:06 +02:00
Arian van Putten f17247c701 vmspawn: don't use vmgenid on aarch64 as it's not supported
fixes:

```
qemu-kvm: -device vmgenid,guid=5f303a47-6fae-4dd7-969c-6c1ea61e816e: 'vmgenid' is not a valid device model name
```
2025-05-02 11:05:06 +02:00
Daan De Meyer 7e674d22d3 test: Remove unused sources from tests 2025-05-02 09:41:43 +02:00
Daan De Meyer a0233fcd86 socket-util: Replace sockaddr length macros with functions
There's no need for these to be macros, let's just make them regular
functions instead.
2025-05-02 09:41:41 +02:00
Daan De Meyer 256c4203f9 networkd-network-gperf.gperf: Add various missing includes
We currently include these transitively but to allow using IWYU to
remove headers later, let's add these as direct includes so the IWYU
changes don't break compilation.
2025-05-01 16:58:12 +02:00
Daan De Meyer 95f87834f5 shared: Make sure ip-protocol-xxx.h headers include <netinet/in.h>
These headers use macros from <netinet/in.h> so let's make sure they
include the header.
2025-05-01 16:58:10 +02:00
Daan De Meyer 228e93c5c5 shared: Add blkid-util.c
IWYU analyzes source files and their corresponding header file so
let's add a source file blkid-util.c so blkid-util.h is analyzed as
well.
2025-05-01 14:02:17 +02:00
Daan De Meyer d30d1ed00a basic: Add our own net/if_arp.h header
To avoid conflicts with <linux/if_arp.h>.
2025-05-01 14:02:17 +02:00
Daan De Meyer 792a8bfb8a daemon-util: Rename starting/stopping message constants
Currently, NOTIFY_READY from daemon-util.h conflicts with NOTIFY_READY
from NotifyState from service.h so let's rename the constants to avoid
the conflict.
2025-05-01 14:02:17 +02:00
Daan De Meyer a40f6dd4d8 sd-id128: Use static instead of _SD_ARRAY_STATIC in source files
When compiling the source files, we know static is going to be available
so there's no need to use the macro from _sd-common.h and we can just use
static instead.
2025-05-01 14:02:17 +02:00
Daan De Meyer 194373f313 fundamental: Insert some missing conditional includes
IWYU can't insert these inside the correct condition itself so we
add these manually in a separate commit.
2025-05-01 14:02:17 +02:00
dependabot[bot] 776f8112dc build(deps): bump softprops/action-gh-release from 2.2.1 to 2.2.2
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda...da05d552573ad5aba039eaac05058a918a7bf631)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-01 19:34:28 +09:00
dependabot[bot] 4f0d2d2f9a build(deps): bump redhat-plumbers-in-action/gather-pull-request-metadata
Bumps [redhat-plumbers-in-action/gather-pull-request-metadata](https://github.com/redhat-plumbers-in-action/gather-pull-request-metadata) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/redhat-plumbers-in-action/gather-pull-request-metadata/releases)
- [Commits](https://github.com/redhat-plumbers-in-action/gather-pull-request-metadata/compare/17821d3bc27c1efed339595898c2e622accc5a1b...5da2967931dd7c4b9ccd22f49b045e2c1f05165b)

---
updated-dependencies:
- dependency-name: redhat-plumbers-in-action/gather-pull-request-metadata
  dependency-version: 1.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-01 19:34:12 +09:00
Yu Watanabe 58096d7338 various: convert more readers of /proc/ to plain read_full_file() (#37299)
Continuation of #36734

Apparently I was wrong about everything under `/proc/` being seq_file,
but at least there're some more to convert and we can leverage our
helper func while doing so.
2025-05-01 15:28:34 +09:00
Mike Yuan e0c4b80fb0 audit-util: use read_full_virtual_file()
Conversely this one is "raw" file, but let's switch to
static inline helper for it.
2025-05-01 13:10:26 +09:00
Mike Yuan 42dbe9d6b9 rlimit-util: use read_full_file() for /proc/PID/limits
This one uses "seq_file", i.e. normal FILE stream just works.
2025-05-01 13:10:26 +09:00
Mike Yuan 36b159ab3f sd-bus/bus-creds: use plain read_full_file() for process cmdline
This one uses "seq_file", i.e. normal FILE stream just works.
2025-05-01 13:10:26 +09:00
Mike Yuan d6c8e0ce95 process-util: use procfs_file_get_field() where appropriate 2025-05-01 13:10:26 +09:00
Mike Yuan 5fd63a5a5e process-util: introduce procfs_file_get_field() wrapper
which combines procfs_file_alloca() and get_proc_field()
2025-05-01 13:10:26 +09:00
Mike Yuan 3589d6c01f process-util: assert on pid in procfs_file_alloca(), use strjoina() 2025-05-01 13:10:26 +09:00
Mike Yuan d1313fea9b mountpoint-util: use get_proc_field() 2025-05-01 13:10:26 +09:00
Mike Yuan d2c4df9e48 pidfd-util: use get_proc_field() for pidfd_get_pid_fdinfo() 2025-05-01 13:10:26 +09:00
Mike Yuan 15036f8555 fileio: modernize get_proc_field()
- Drop effectively unused "terminator" param, imply whitespace
- Make ret param optional
- Return ENODATA if the requested key is not found, rather than
  ENOENT
- Turn ENOENT -> ENOSYS if /proc/ is not mounted
- Don't skip whitespaces before ':', nothing needs this handling
  anyways
- Remove the special treatment for all "0"s. We don't actually
  use this for capabilities given pidref_get_capability() exists
- Switch away from read_full_virtual_file() - files using "field"
  scheme under /proc/ seem all to be "seq_file"s (refer to
  da65941c3e for details on file types)
2025-05-01 13:10:26 +09:00
Mike Yuan 2a2531b6c7 socket-activate: drop unused accept param for open_sockets() 2025-05-01 13:10:26 +09:00
Luca Boccassi 2044454548 sd-stub: fix assertion failure when cleaning up initrd pages
When linux_exec() fails, the initrd pages cleanup attempts to run,
and an assertion is triggered:

../src/boot/linux.c:125@linux_exec: Error loading kernel image: Security violation
../src/boot/util.h:81@cleanup_pages: Error freeing pages: Not found
../src/boot/log.c:30@efi_assert: systemd-boot: Assertion 'r == EFI_SUCCESS' failed at ../src/boot/util.h:82@cleanup_pages, halting.

(log message is new)

This was introduced by https://github.com/systemd/systemd/pull/36715

Before that change, given the argument to xmalloc_pages() was passed as EFI_SIZE_TO_PAGES(n_pages), that's
what ended up in Pages.n_pages. After this change, n_pages gets assigned without being transformed by
EFI_SIZE_TO_PAGES, so the cleanup can find them again. That change causes the assertion failure to trigger.
Changing this to .n_pages = EFI_SIZE_TO_PAGES(n_pages) fixes the assertion.

Follow-up for c5a5046792
2025-05-01 13:09:21 +09:00
Daan De Meyer 40e0342e60 resolve: Simplify and optimize meson file
We were compiling the same resolved sources over and over again (up to
10 times) which had a substantial effect on build times. Let's make sure
we only compile the resolved sources once by having one static library
containing the objects for all the resolved sources.

While we're at it, get rid of unnecessary variables and includes in the
resolve meson file and generally clean things up a bit.

Before (recorded with ClangBuildAnalyzer):

**** Time summary:
Compilation (1823 times):
  Parsing (frontend):          675.5 s
  Codegen & opts (backend):     81.6 s

After:

**** Time summary:
Compilation (1585 times):
  Parsing (frontend):          553.6 s
  Codegen & opts (backend):     70.7 s
2025-05-01 12:23:43 +09:00
Luca Boccassi df48013586 mkosi: update debian commit reference to 9c54c974f07038bf6737fa02d78f20d340107f5c
* 9c54c974f0 d/systemd-resolved.install: install new socket units for upstream profile
2025-05-01 12:22:50 +09:00
Nick Rosbrook 0e0d3ed93a networkd-test: stop resolved socket units in setUpModule()
Avoid warnings about the socket units when stopping systemd-resolved.
2025-05-01 01:52:28 +01:00
Mike Yuan fd66dc60a0 units: enable RemoveOnStop= for oomd and userdbd sockets
We usually don't care, but here the existence of socket
is public API to a certain degree and signals availability
of the service (userdbd in particular, oomd is checked in
core-varlink.c). Hence let's be more careful and remove them
if stopped.
2025-04-30 21:30:53 +02:00
Mike Yuan e803ec1e25 units: unify deps between service and socket units
The current arrangement of service and socket units is
sort of all over the place. Let's clean it up a little,
roughly following the principles below:

- socket units have implicit ordering deps (not to be confused
  with default ones which are subject to DefaultDependencies=)
  before associated service, so drop any explicit After=

- If socket can be enabled, remember to link to it in service
  via Also= and Sockets= (the latter replaces Wants=).
  If the service Requires= socket however, Sockets= is omitted.

- If socket is statically enabled, no need for service
  to pull it in - machined
2025-04-30 21:27:37 +02:00
Yu Watanabe 366dd4a662 wait-online: handle varlink connection errors while waiting for DNS (#37283)
Currently, if systemd-networkd-wait-online is started with --dns, and
systemd-resolved is not running, it will exit with an error right away.
Similarly, if systemd-resolved is restarted while waiting for DNS
configuration, systemd-networkd-wait-online will not attempt to
re-connect, and will potentially never see subsequent DNS
configurations.

Improve this by adding socket units for the systemd-resolved varlink
servers, and re-establish the connection in systemd-networkd-wait-online
when we receive `SD_VARLINK_ERROR_DISCONNECTED`.
2025-05-01 01:55:04 +09:00
Luca Boccassi b16e6fd767 busctl: validate argvs on get-property/set-property too
Otherwise passing invalid data means asserts get hit instead of
handling it gracefully. Other verbs already do the same checks.

busctl get-property org.freedesktop.systemd1 '*' org.freedesktop.systemd1.Manager Version
Assertion 'object_path_is_valid(path)' failed at src/libsystemd/sd-bus/bus-message.c:562, function sd_bus_message_new_method_call(). Aborting.
Aborted (core dumped)
2025-05-01 01:53:08 +09:00
Yu Watanabe da9d75e0c6 TEST-17: drop unnecessary $PATH setting
My local setting was unintentionally inserted by the commit
7cb4508c5a.
2025-05-01 00:27:51 +09:00