systemd/.git
20 months agoDocument new vsock literals
Daan De Meyer [Tue, 19 Mar 2024 11:29:49 +0000 (12:29 +0100)]
Document new vsock literals

Fixes #31849

20 months agoAdd a set of assertion macros to tests.h
Unique-Usman [Fri, 15 Mar 2024 22:34:11 +0000 (04:04 +0530)]
Add a set of assertion macros to tests.h
(ASSERT_OK(), ASSERT_EQ(), ASSERT_GE(), ASSERT_LE()) that log the failed condition before crashing and convert test-gpt.c test file to use them

20 months agoAdd new unittest for shared:recovery-key
Abraham Samuel Adekunle [Mon, 18 Mar 2024 11:12:32 +0000 (12:12 +0100)]
Add new unittest for shared:recovery-key

20 months agoMerge pull request #31841 from AdrianVovk/homed-trivial
Yu Watanabe [Tue, 19 Mar 2024 08:22:34 +0000 (17:22 +0900)]
Merge pull request #31841 from AdrianVovk/homed-trivial

Small homed changes + revert

20 months agoMerge pull request #31772 from yuwata/network-persistent-storage-use-fd
Yu Watanabe [Tue, 19 Mar 2024 07:37:15 +0000 (16:37 +0900)]
Merge pull request #31772 from yuwata/network-persistent-storage-use-fd

network: pass fd of persistent storage, then use ProtectSystem=strict again

20 months agounit/network: use ProtectSystem=strict again
Yu Watanabe [Wed, 13 Mar 2024 17:28:06 +0000 (02:28 +0900)]
unit/network: use ProtectSystem=strict again

Now, networkd accesses the state directory through the file descriptor
passed from systemd-networkd-persistent-storage.service.
Hence, the networkd itself does not need to access the state directory
through its path, and we can use more stronger mode for ProtectSystem=.

20 months agonetwork/varlink: pass file descriptor of state directory with SetPersistentStorage...
Yu Watanabe [Fri, 15 Mar 2024 15:55:10 +0000 (00:55 +0900)]
network/varlink: pass file descriptor of state directory with SetPersistentStorage method

The state directory is owned by systemd-networkd-persistent-storage.service,
at least technically. Let's not directly access the storage through the path,
but through the fd.

Addresses https://github.com/systemd/systemd/pull/31746#issuecomment-1993556966.

Suggested-by: Mike Yuan <me@yhndnzj.com>
20 months agohomed: Minor man page improvements
Adrian Vovk [Sat, 16 Mar 2024 21:54:52 +0000 (17:54 -0400)]
homed: Minor man page improvements

20 months agohomed: Minor function name cleanup
Adrian Vovk [Thu, 14 Mar 2024 21:11:36 +0000 (17:11 -0400)]
homed: Minor function name cleanup

It's not actually a dbus method, just function that all the various dbus
methods end up calling to update the user record. So rename it to
reflect as such

20 months agoRevert "homed: Add InhibitSuspend() method"
Adrian Vovk [Sat, 16 Mar 2024 21:44:25 +0000 (17:44 -0400)]
Revert "homed: Add InhibitSuspend() method"

I'm moving this functionality into logind instead.

This reverts commit 691b99160de4bc856e676dba6e07b33d2fa0908e.

20 months agoMerge pull request #31838 from DaanDeMeyer/opensuse
Daan De Meyer [Mon, 18 Mar 2024 16:20:15 +0000 (17:20 +0100)]
Merge pull request #31838 from DaanDeMeyer/opensuse

mkosi: OpenSUSE fixes

20 months agoFix Positivo N14NPE-N and N15NPE-N key toggle touchpad and search key
Edson Juliano Drosdeck [Mon, 18 Mar 2024 13:25:34 +0000 (10:25 -0300)]
Fix Positivo N14NPE-N and N15NPE-N key toggle touchpad and search key

20 months agomkosi: Install systemd-experimental in OpenSUSE initrd
Daan De Meyer [Mon, 18 Mar 2024 15:20:15 +0000 (16:20 +0100)]
mkosi: Install systemd-experimental in OpenSUSE initrd

systemd-repart is part of systemd-experimental and we need systemd-repart
in the initrd so let's install systemd-experimental in the initrd.

20 months agomkosi: Install python3-pefile in OpenSUSE image
Daan De Meyer [Mon, 18 Mar 2024 15:20:00 +0000 (16:20 +0100)]
mkosi: Install python3-pefile in OpenSUSE image

ukify is part of systemd-experimental on OpenSUSE and not its own
package. Because the OpenSUSE systemd maintainers do not want to
introduce a python dependency for systemd-experimental, we have to
install python3-pefile manually to make sure ukify works properly.

20 months agoMerge pull request #31747 from yuwata/ptyfwd
Luca Boccassi [Mon, 18 Mar 2024 14:10:45 +0000 (14:10 +0000)]
Merge pull request #31747 from yuwata/ptyfwd

ptyfwd: do not erase line after NL

20 months agotest: fix typo
Yu Watanabe [Mon, 18 Mar 2024 13:48:19 +0000 (22:48 +0900)]
test: fix typo

Follow-up for fcf38e2cb33a9bc0c17352f64d47c270075b3cbb.

20 months agodnssd: support service subtypes
Ronan Pigott [Sat, 16 Dec 2023 05:55:54 +0000 (22:55 -0700)]
dnssd: support service subtypes

A service subtype is used for selective enumeration of services.

20 months agoMerge pull request #31778 from yuwata/kbd-util
Luca Boccassi [Mon, 18 Mar 2024 12:20:36 +0000 (12:20 +0000)]
Merge pull request #31778 from yuwata/kbd-util

kbd-util: allow to override the default keymap directories

20 months agoshared/install: correctly install alias for units outside search path
Nick Rosbrook [Fri, 15 Mar 2024 19:14:05 +0000 (15:14 -0400)]
shared/install: correctly install alias for units outside search path

Currently, if a unit file is enabled from outside of the search path,
and that unit has an alias, then the symlink ends up pointing outside of
the search path too. For example:

 $ cat /tmp/a.service
 [Service]
 ExecStart=sleep infinity

 [Install]
 Alias=b.service
 WantedBy=multi-user.target

 $ systemctl enable /tmp/a.service
 Created symlink /etc/systemd/system/a.service → /tmp/a.service.
 Created symlink /etc/systemd/system/b.service → /tmp/a.service.
 Created symlink /etc/systemd/system/multi-user.target.wants/a.service → /tmp/a.service.

This then means the alias is treated as a separate unit:

 $ systemctl start a.service
 $ sudo systemctl status a
 ● a.service
  Loaded: loaded (/etc/systemd/system/a.service; enabled; preset: enabled)
  Active: active (running) since Fri 2024-03-15 15:17:49 EDT; 9s ago
 Main PID: 769593 (sleep)
   Tasks: 1 (limit: 18898)
  Memory: 220.0K
     CPU: 5ms
  CGroup: /system.slice/a.service
          └─769593 sleep infinity

 Mar 15 15:17:49 six systemd[1]: Started a.service.
 $ sudo systemctl status b
 ○ b.service
  Loaded: loaded (/etc/systemd/system/b.service; alias)
  Active: inactive (dead)

To fix this, make sure the alias uses a target that is inside the search
path. Since the unit file itself is outside of the search path, a
symlink inside the search path will have been created already. Hence,
just point the alias symlink to that recently created symlink.

20 months agoresolved: wait to gc transactions if they might still give an answer
Ronan Pigott [Fri, 15 Mar 2024 20:52:30 +0000 (13:52 -0700)]
resolved: wait to gc transactions if they might still give an answer

In some cases when a query completes there are still pending
transactions that are no longer useful to answer the query. But if this
query is repeated in the future and we don't have the answers cached,
we're going to ask and ignore the answer again.

Instead of purging these superfluous transactions, let's wait and see if
they produce an answer, since we already asked the question, and use it
to fill our cache.

20 months agoMerge pull request #31811 from yuwata/network-pin-persistent-storage
Luca Boccassi [Mon, 18 Mar 2024 11:08:21 +0000 (11:08 +0000)]
Merge pull request #31811 from yuwata/network-pin-persistent-storage

network: pin file descriptor of persistent storage

20 months agoAdd unittest file for basic:label
Abraham Samuel Adekunle [Wed, 13 Mar 2024 15:47:28 +0000 (16:47 +0100)]
Add unittest file for basic:label

20 months agoMerge pull request #31829 from keszybz/more-header-checks
Luca Boccassi [Sun, 17 Mar 2024 17:58:59 +0000 (17:58 +0000)]
Merge pull request #31829 from keszybz/more-header-checks

Update c/c++ version checks and add test for -std=c++26

20 months agoMerge pull request #31831 from DaanDeMeyer/opensuse
Daan De Meyer [Sun, 17 Mar 2024 16:03:09 +0000 (17:03 +0100)]
Merge pull request #31831 from DaanDeMeyer/opensuse

Update opensuse packaging specs submodule to latest

20 months agoUpdate arch/debian packaging source URLs
Daan De Meyer [Sun, 17 Mar 2024 15:47:19 +0000 (16:47 +0100)]
Update arch/debian packaging source URLs

Let's use the actual URL to avoid warnings from git about getting
redirected.

20 months agoSwitch opensuse packaging specs source url to src.opensuse.org
Daan De Meyer [Sun, 17 Mar 2024 14:48:25 +0000 (15:48 +0100)]
Switch opensuse packaging specs source url to src.opensuse.org

opensuse's OBS has two git mirrors, code.opensuse.org uses pagure,
src.opensuse.org uses gitea. Let's try src.opensuse.org as pagure
doesn't seem to work properly when more advanced git functionality
is used.

20 months agoMerge pull request #31821 from behrmann/news256
Luca Boccassi [Sun, 17 Mar 2024 13:14:16 +0000 (13:14 +0000)]
Merge pull request #31821 from behrmann/news256

NEWS: more reformulations and fixlets

20 months agotpm2-setup: Add --graceful
Daan De Meyer [Sun, 17 Mar 2024 11:34:50 +0000 (12:34 +0100)]
tpm2-setup: Add --graceful

Currently the associated units fail if full tpm support is not available
on the system. Similar to systemd-pcrextend, let's add a --graceful option
that exits gracefully if no full TPM support is detected and use it in both
units.

20 months agounits: Accept modules_load and rd.modules_load in systemd-modules-load.service
Daan De Meyer [Sat, 16 Mar 2024 16:10:14 +0000 (17:10 +0100)]
units: Accept modules_load and rd.modules_load in systemd-modules-load.service

The service will use either, so let's make sure either of them starts
the service as well.

20 months agomeson: test with c++26 too
Zbigniew Jędrzejewski-Szmek [Sun, 17 Mar 2024 11:20:54 +0000 (12:20 +0100)]
meson: test with c++26 too

The docs say that support is experimental, but it's better for us if we know
about any problems early.

Header tests pass without any issue with gcc-14.0.1-0.8.fc40.x86_64.

20 months agomeson: gcc docs say that name "c2x" is deprecated
Zbigniew Jędrzejewski-Szmek [Sun, 17 Mar 2024 11:19:52 +0000 (12:19 +0100)]
meson: gcc docs say that name "c2x" is deprecated

20 months agomeson: use loops to unify repeated checks
Zbigniew Jędrzejewski-Szmek [Sun, 17 Mar 2024 11:09:21 +0000 (12:09 +0100)]
meson: use loops to unify repeated checks

20 months agoNEWS: style fixes and a few reformulations
Jörg Behrmann [Sat, 16 Mar 2024 11:53:29 +0000 (12:53 +0100)]
NEWS: style fixes and a few reformulations

- mention the version format spec for sytsemd-vpick
- say what "systemd-creds --user" can be used by unprivileged users as well
- say what importctl does
- use en dash instead of em dash
- add a missing article

20 months agoUpdate _udevadm
samuelvw01 [Sat, 16 Mar 2024 12:43:23 +0000 (13:43 +0100)]
Update _udevadm

20 months agoman: add missing "and" to importctl description
Jörg Behrmann [Sat, 16 Mar 2024 11:52:48 +0000 (12:52 +0100)]
man: add missing "and" to importctl description

20 months agounits: use relative path
Yu Watanabe [Fri, 8 Mar 2024 17:08:50 +0000 (02:08 +0900)]
units: use relative path

20 months agomkosi: Do disk space cleanup asynchronously
Daan De Meyer [Fri, 15 Mar 2024 19:25:01 +0000 (20:25 +0100)]
mkosi: Do disk space cleanup asynchronously

This can actually take a rather long time (multiple minutes) so
make sure we do it asynchronously.

20 months agodocs: update footer to 2024
Tycho Andersen [Fri, 15 Mar 2024 15:13:50 +0000 (09:13 -0600)]
docs: update footer to 2024

20 months agoMerge pull request #31808 from keszybz/sundry-cleanups
Yu Watanabe [Fri, 15 Mar 2024 16:40:56 +0000 (01:40 +0900)]
Merge pull request #31808 from keszybz/sundry-cleanups

Sundry cleanups

20 months agomeson: Rename add-git-hook.sh to git-setup.sh and configure git in it
Daan De Meyer [Thu, 14 Mar 2024 09:29:55 +0000 (10:29 +0100)]
meson: Rename add-git-hook.sh to git-setup.sh and configure git in it

Let's automatically apply the recommended git config with meson.

20 months agodocs: Update HACKING guide with recommended git config
Daan De Meyer [Thu, 14 Mar 2024 09:18:27 +0000 (10:18 +0100)]
docs: Update HACKING guide with recommended git config

20 months agonetwork/dhcp-server: use the pinned fd of persistent storge
Yu Watanabe [Fri, 15 Mar 2024 15:49:25 +0000 (00:49 +0900)]
network/dhcp-server: use the pinned fd of persistent storge

20 months agonetwork/varlink: return earlier from SetPersistentStorage method if nothing changed
Yu Watanabe [Fri, 15 Mar 2024 15:46:11 +0000 (00:46 +0900)]
network/varlink: return earlier from SetPersistentStorage method if nothing changed

20 months agonetwork: pin file descriptor of persistent storage
Yu Watanabe [Fri, 15 Mar 2024 15:38:06 +0000 (00:38 +0900)]
network: pin file descriptor of persistent storage

This also drop the support of /run/systemd/netif/persistent-storage-ready,
as the file is anyway removed when networkd is stopped.
Let's use $SYSTEMD_NETWORK_PERSISTENT_STORAGE_READY=1 instead on testing.

20 months agoNEWS: mention portablectl --copy=mixed
Luca Boccassi [Fri, 15 Mar 2024 15:16:12 +0000 (15:16 +0000)]
NEWS: mention portablectl --copy=mixed

20 months agoshell completion: add --copy=mixed in portablectl
Luca Boccassi [Fri, 15 Mar 2024 15:07:31 +0000 (15:07 +0000)]
shell completion: add --copy=mixed in portablectl

Follow-up for 82047a6aa7230031d2a579e81d5f8871c23e0616

20 months agotest/TEST-46: drop whitespace after redirection operators
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2024 09:54:56 +0000 (10:54 +0100)]
test/TEST-46: drop whitespace after redirection operators

20 months agoportablectl: add forgotten value to --help
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2024 08:18:06 +0000 (09:18 +0100)]
portablectl: add forgotten value to --help

Followup for 82047a6aa7230031d2a579e81d5f8871c23e0616.

20 months agojournal: use empty_to_null() in one more place
Zbigniew Jędrzejewski-Szmek [Thu, 14 Mar 2024 11:37:31 +0000 (12:37 +0100)]
journal: use empty_to_null() in one more place

Follow-up for 45bcab66a9c23a74107118d310e09a46f28494fd.

20 months agoportable: when logging about attaching, include the used profile
Luca Boccassi [Thu, 14 Mar 2024 16:52:21 +0000 (16:52 +0000)]
portable: when logging about attaching, include the used profile

Useful information to have in the logs.

Mar 14 16:45:27 H systemd-portabled[510]: Successfully attached ephemeral '/usr/share/minimal_0.raw' and its extension(s) '/usr/share/app0.raw' using profile 'default'

20 months agoMerge pull request #31791 from yuwata/sd-dhcp-server-several-preparations
Luca Boccassi [Fri, 15 Mar 2024 15:04:04 +0000 (15:04 +0000)]
Merge pull request #31791 from yuwata/sd-dhcp-server-several-preparations

sd-dhcp-server: several cleanups and extension

20 months agoMerge pull request #31777 from keszybz/unit-retitling-and-comments
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2024 14:57:10 +0000 (15:57 +0100)]
Merge pull request #31777 from keszybz/unit-retitling-and-comments

Unit retitling and comments

20 months agonetwork/address: acquire address in address_process_request()
Yu Watanabe [Tue, 12 Mar 2024 08:35:51 +0000 (17:35 +0900)]
network/address: acquire address in address_process_request()

Previously, if an [Address] section is configured with a null address,
e.g. Address=0.0.0.0/24, then we acquired a free address in
link_request_address().

With this commit, we queue a request with the null address as is, and
acquire a free address later in address_process_request(). Similary,
now IPv4ACD daemon is configured in address_process_request().

With this change, we can make the address acquisition depend on other
conditions, e.g. if the persistent storage is ready or not.

20 months agoNEWS: fix typo and reword a couple of entries
Luca Boccassi [Fri, 15 Mar 2024 14:46:45 +0000 (14:46 +0000)]
NEWS: fix typo and reword a couple of entries

20 months agoNEWS: fix typos
Jörg Behrmann [Fri, 15 Mar 2024 14:35:53 +0000 (15:35 +0100)]
NEWS: fix typos

20 months agoNEWS: fix typo
Mike Yuan [Fri, 15 Mar 2024 14:35:05 +0000 (22:35 +0800)]
NEWS: fix typo

20 months agoTODO: various things noticed while writing NEWS
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2024 14:22:21 +0000 (15:22 +0100)]
TODO: various things noticed while writing NEWS

20 months agoNEWS: add initial version of changes in v256
Zbigniew Jędrzejewski-Szmek [Fri, 15 Mar 2024 14:21:59 +0000 (15:21 +0100)]
NEWS: add initial version of changes in v256

20 months agodocumentation: fix inconsistency
Max Gautier [Fri, 15 Mar 2024 13:24:23 +0000 (14:24 +0100)]
documentation: fix inconsistency

Since this sentence is in the same section it refers to, it does not
make much sense to mention the "section below".

20 months agocifuzz,cflite: set mmap_rnd_bits to 28
Evgeny Vereshchagin [Fri, 15 Mar 2024 10:03:20 +0000 (10:03 +0000)]
cifuzz,cflite: set mmap_rnd_bits to 28

to get MSan jobs to work with the latest Ubuntu images.

https://github.com/google/sanitizers/issues/1614
https://github.com/actions/runner-images/issues/9491

20 months agoAdded a test file for the dirent-util.c
Unique-Usman [Sun, 10 Mar 2024 11:58:58 +0000 (17:28 +0530)]
Added a test file for the dirent-util.c

20 months agosd-dhcp-server: also save the server address and netmask to the leases file
Yu Watanabe [Thu, 14 Mar 2024 10:35:46 +0000 (19:35 +0900)]
sd-dhcp-server: also save the server address and netmask to the leases file

And introduce a tiny helper to retrieve these information.
The function is not used at this time, but will be used later.

20 months agosd-dhcp-server: rearrange the parser of the leases file
Yu Watanabe [Tue, 12 Mar 2024 05:07:54 +0000 (14:07 +0900)]
sd-dhcp-server: rearrange the parser of the leases file

No functional changes, just refactoring and preparation for later
commits.

20 months agosd-dhcp-server: make sd_dhcp_server_set_lease_file() optionally take directory fd
Yu Watanabe [Wed, 13 Mar 2024 17:05:30 +0000 (02:05 +0900)]
sd-dhcp-server: make sd_dhcp_server_set_lease_file() optionally take directory fd

Currently, though, no valid directory fd is passed to the function call.
Preparation for later commits.

20 months agodocs: fix typo
Yu Watanabe [Thu, 14 Mar 2024 19:03:57 +0000 (04:03 +0900)]
docs: fix typo

Follow-up for 34c6b7d9de64e357071005ec49e88d2354cc4e8a.

20 months agoptyfwd: drop redundant brackets
Yu Watanabe [Wed, 13 Mar 2024 05:46:49 +0000 (14:46 +0900)]
ptyfwd: drop redundant brackets

20 months agoptyfwd: do not erase line after NL
Yu Watanabe [Wed, 13 Mar 2024 04:23:15 +0000 (13:23 +0900)]
ptyfwd: do not erase line after NL

Otherwise, moving upwards in 'less' does not work.

Follow-up for d0aa368c85adf2efa29c363a6671927fe7e8e76f.

20 months agokbd-util: allow to override the default keymap directories
Yu Watanabe [Thu, 14 Mar 2024 09:40:14 +0000 (18:40 +0900)]
kbd-util: allow to override the default keymap directories

This introduces $SYSTEMD_KEYMAP_DIRECTORIES environment variable to
override the hardcoded keymap directories.

I think it is not necessary to provide the first class configuration
option for controlling the keymap directories, but it is not good to
hardcode the paths. So, let's introduce an environment variable to
override that.

Prompted by #31759.

Closes #31759.

20 months agolocale: use O_PATH directory fd and faccessat() in find_converted_keymap()
Yu Watanabe [Thu, 14 Mar 2024 18:12:07 +0000 (03:12 +0900)]
locale: use O_PATH directory fd and faccessat() in find_converted_keymap()

Previously, it is assumed that the paths in KBD_KEYMAP_DIRS are ended
with a slash. But, in the next commit, paths will become controllable by
users, and each path may not be ended with a slash.

This should not change any effective behaviors.
Just refactoring and preparation.

20 months agoupdate TODO
Lennart Poettering [Thu, 14 Mar 2024 18:09:22 +0000 (19:09 +0100)]
update TODO

20 months agoMerge pull request #31739 from poettering/pid1-sd-notify-tweaks
Lennart Poettering [Thu, 14 Mar 2024 17:43:57 +0000 (18:43 +0100)]
Merge pull request #31739 from poettering/pid1-sd-notify-tweaks

pid1: send various notifications via sd_notify() reporting boot progress

20 months agonetwork: introduce link_requeue_request()
Yu Watanabe [Tue, 12 Mar 2024 08:28:43 +0000 (17:28 +0900)]
network: introduce link_requeue_request()

20 months agonetwork: use link_start_dhcp4_server() at one more place
Yu Watanabe [Wed, 13 Mar 2024 17:01:15 +0000 (02:01 +0900)]
network: use link_start_dhcp4_server() at one more place

Otherwise, even if the persistent storage is not ready, the DHCP server
may be started e.g. by unplugging and plugging cable.

Follow-up for 5582b36c384fc522c23ef1ac032001882d033aff.

20 months agoman: fix efi var vendor uuid for systemd-bless-boot.service
Adrian Wannenmacher [Thu, 14 Mar 2024 16:15:19 +0000 (17:15 +0100)]
man: fix efi var vendor uuid for systemd-bless-boot.service

The specified vendor UUID is not actually a UUID. This changes it to an actual UUID.

The new value matches the ones from the systemd-boot man page and [The Boot Loader Interface](https://systemd.io/BOOT_LOADER_INTERFACE/).

20 months agodocs: add a new document describing the VM interface of systemd
Lennart Poettering [Wed, 13 Mar 2024 09:33:26 +0000 (10:33 +0100)]
docs: add a new document describing the VM interface of systemd

This mirrors the existing CONTAINER_INTERFACE.md document, but describes
extension points of systemd running in a VM with a machine manager
supervising it.

20 months agodocs: update various links
Lennart Poettering [Wed, 13 Mar 2024 09:08:53 +0000 (10:08 +0100)]
docs: update various links

20 months agodocs: properly line break WRITING_VM_AND_CONTAINER_MANAGERS.md
Lennart Poettering [Wed, 13 Mar 2024 09:05:14 +0000 (10:05 +0100)]
docs: properly line break WRITING_VM_AND_CONTAINER_MANAGERS.md

20 months agodocs: document new sd_notify() extensions
Lennart Poettering [Wed, 13 Mar 2024 09:04:42 +0000 (10:04 +0100)]
docs: document new sd_notify() extensions

20 months agonspawn: add some debug logging for sd_notify() messages received by the container...
Lennart Poettering [Tue, 12 Mar 2024 17:51:23 +0000 (18:51 +0100)]
nspawn: add some debug logging for sd_notify() messages received by the container manager

20 months agomanager: send an sd_notify() message informing the container manager when systemd...
Lennart Poettering [Tue, 12 Mar 2024 17:48:28 +0000 (18:48 +0100)]
manager: send an sd_notify() message informing the container manager when systemd's special UNIX signals become available

From the outside it's difficult to determine whether (and when) the PID1
inside a container supports systemd's more complete set of UNIX process
signals or not. Let's make this easier, and simply send a notification
message when we are ready.

20 months agomanager: modernize code that enables special signal delivery to PID 1
Lennart Poettering [Tue, 12 Mar 2024 17:48:04 +0000 (18:48 +0100)]
manager: modernize code that enables special signal delivery to PID 1

20 months agossh-generator: introduce ssh-access.target
Lennart Poettering [Tue, 12 Mar 2024 17:44:33 +0000 (18:44 +0100)]
ssh-generator: introduce ssh-access.target

This new passive target is supposed to be pulled in by SSH
implementations and should be reached when remote SSH access is
possible. The idea is that this target can be used as indicator for
other components to determine if and when SSH access is possible.

One specific usecase for this is the new sd_notify() logic in PID 1 that
sends its own supervisor notifications whenever target units are
reached. This can be used to precisely schedule SSH connections from
host to VM/container, or just to identify systems where SSH is even
available.

20 months agocore: notify supervisor over targets we reach, as we reach them
Lennart Poettering [Tue, 12 Mar 2024 15:08:13 +0000 (16:08 +0100)]
core: notify supervisor over targets we reach, as we reach them

Let's inform the the supervisor about various happenings of our service
manager, specifically the boot milestones we reach.

We so far have only a singular READY=1 message, to inform about bootup
completion. But sometimes it is interesting to have something for
finegrained, in particular something that indicates optional components
that have been activated.

Usecase for this: in a later PR I intend to introduce a generic
"ssh.target" that is supposed to be activated when SSH becomes available
on a host. A supervisor (i.e. a VMM/hypervisor/container mgr/…) can
watch for that, and know two things:

1. that SSH is generally available in the system
2. when it is available

In order to not flood the supervisor with events I only send these out
for target units. We could open this up later, in theory, but I think it
makes sense to tell people instead to define clear milestone target
units if they want a supervisor to be able to track system state.

20 months agomanager: clean up audit/plymouth code a bit
Lennart Poettering [Tue, 12 Mar 2024 15:06:43 +0000 (16:06 +0100)]
manager: clean up audit/plymouth code a bit

Let's add assert()s, and let's put checks in similar order to emphasize
the symmetry. Also let's do cheap checks first.

20 months agomachine-id-setup: inform supervisor about chosen machine ID
Lennart Poettering [Tue, 12 Mar 2024 15:05:35 +0000 (16:05 +0100)]
machine-id-setup: inform supervisor about chosen machine ID

Similar as the previous commit, it's useful for a supervisor to know
what machine ID we settlted on, in particular as various other things
are deterministically derived from it, for example MAC addresses and
such.

20 months agohostname-setup: send chosen hostname to supervisor via sd_notify()
Lennart Poettering [Tue, 12 Mar 2024 15:03:59 +0000 (16:03 +0100)]
hostname-setup: send chosen hostname to supervisor via sd_notify()

once we decided on a hostname, let's tell the supervisor about it. This
is useful for example in order to recognize the system via mDNS/LLMNR or
in a DHCP lease.

20 months agohostname-setup: various modernizations
Lennart Poettering [Tue, 12 Mar 2024 15:05:23 +0000 (16:05 +0100)]
hostname-setup: various modernizations

20 months agomanager: make manager_send_ready() more symmetric regarding per-user/per-service...
Lennart Poettering [Tue, 12 Mar 2024 13:35:46 +0000 (14:35 +0100)]
manager: make manager_send_ready() more symmetric regarding per-user/per-service scope

Always check the scope explicitly, always assert(m), and name the two
functions in a symmetric way.

20 months agocore: normalize how we issue sd_notify() from PID 1
Lennart Poettering [Tue, 12 Mar 2024 13:33:33 +0000 (14:33 +0100)]
core: normalize how we issue sd_notify() from PID 1

Always cast to (void) if we ignore the return value.

Always pass the first arg as boolean.

Always prefix the first arg with /* unset_environment= */.

20 months agojson: introduce json_dispatch_int8() and json_dispatch_uint8()
Yu Watanabe [Tue, 12 Mar 2024 05:06:04 +0000 (14:06 +0900)]
json: introduce json_dispatch_int8() and json_dispatch_uint8()

20 months agostat-util: expose fd_is_read_only_fs()
Yu Watanabe [Wed, 13 Mar 2024 16:59:03 +0000 (01:59 +0900)]
stat-util: expose fd_is_read_only_fs()

Currently it is not used, but the fucntion is already quite generic and
useful.

20 months agopo: add pkg/debian to POTFILES.skip
Piotr Drąg [Thu, 14 Mar 2024 12:50:12 +0000 (13:50 +0100)]
po: add pkg/debian to POTFILES.skip

Debian packaging includes the exploded tarball, so 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 its
files as needed to be translated. Avoid this behavior by putting
the whole submodule in POTFILES.skip.

20 months agoshell-completion: add systemd-cat --namespace=
Mike Yuan [Thu, 14 Mar 2024 12:15:10 +0000 (20:15 +0800)]
shell-completion: add systemd-cat --namespace=

Follow-up for 45bcab66a9c23a74107118d310e09a46f28494fd

Addresses https://github.com/systemd/systemd/pull/31754#discussion_r1524715062

20 months agoMerge pull request #31754 from YHNdnzj/journal-fd-namespace
Yu Watanabe [Thu, 14 Mar 2024 10:59:19 +0000 (19:59 +0900)]
Merge pull request #31754 from YHNdnzj/journal-fd-namespace

journal/cat: allow connecting output to specific journal namespace

20 months agosrc/partition: remove unnecessary uses of "make sure"
Zbigniew Jędrzejewski-Szmek [Thu, 14 Mar 2024 07:53:55 +0000 (08:53 +0100)]
src/partition: remove unnecessary uses of "make sure"

20 months agounits: retitle systemd-bootctl*.{service,socket}
Zbigniew Jędrzejewski-Szmek [Thu, 14 Mar 2024 09:18:58 +0000 (10:18 +0100)]
units: retitle systemd-bootctl*.{service,socket}

"Starting Boot Control…" would be a fairly confusing message in the boot logs.
Use "… Service" to mirror what we have in other services like
systemd-{hostnamed,timedated,portabled,machined,…}.service.

20 months agounits: drop "(Varlink)"
Zbigniew Jędrzejewski-Szmek [Thu, 14 Mar 2024 09:16:25 +0000 (10:16 +0100)]
units: drop "(Varlink)"

We generally don't specify the protocol implementation in unit descriptions.

For journald, we have:
  $ git grep Description 'units/*journald*'
  units/systemd-journald-audit.socket:Description=Journal Audit Socket
  units/systemd-journald-dev-log.socket:Description=Journal Socket (/dev/log)
  units/systemd-journald-varlink@.socket:Description=Journal Varlink Socket for Namespace %i
  units/systemd-journald.service.in:Description=Journal Service
  units/systemd-journald.socket:Description=Journal Sockets
  units/systemd-journald@.service.in:Description=Journal Service for Namespace %i
  units/systemd-journald@.socket:Description=Journal Sockets for Namespace %i
so we need to keep "Varlink" in the name. But also use "Sockets" (plural)
for the "main" socket unit, since it opens multiple sockets.

20 months agoman: shorten unnecessarily long example
Lennart Poettering [Thu, 14 Mar 2024 08:57:44 +0000 (09:57 +0100)]
man: shorten unnecessarily long example

20 months agoMerge pull request #31770 from poettering/linkat-replace
Lennart Poettering [Thu, 14 Mar 2024 10:03:59 +0000 (11:03 +0100)]
Merge pull request #31770 from poettering/linkat-replace

introduce linkat_replace() helper, and port various things over to it

20 months agounits/systemd-machine-id-commit: retitle
Zbigniew Jędrzejewski-Szmek [Wed, 13 Mar 2024 21:34:49 +0000 (22:34 +0100)]
units/systemd-machine-id-commit: retitle

Our docs say that the Description should be capitalized.
Also, change "commit" to "save" to make this more accessible.