Commit Graph
76563 Commits
Author SHA1 Message Date
Lukas Nykryn 67b6404b80 man: using WantedBy=default.target is not a good idea
We had several users, that wrote their unit files with
WantedBy=default.target because it should be started "every time".
But for example in Fedora/CentOS/RHEL, this often breaks for
example selinux relabels (where we just want to do a relabel and reboot).
2024-10-02 18:25:03 +02:00
Daan De Meyer 5f44675120 homectl: Acquire bus connection after querying for user input
Otherwise when the user takes a long time to enter input the operation
to create the user's home will fail with "transport endpoint not connected".
2024-10-02 15:08:50 +02:00
Daan De Meyer 84edd52121 home: Prompt for shell in homectl firstboot 2024-10-02 15:08:35 +02:00
Daan De Meyer 164ca24d74 home: Prompt for auxiliary groups in homectl firstboot 2024-10-02 15:07:59 +02:00
Daan De Meyer ec75a254d2 Move show_menu() to terminal-util.h 2024-10-02 15:05:24 +02:00
Daan De Meyer 70bc8b3f0c Merge pull request #34616 from DaanDeMeyer/mkosi
Various mkosi fixes
2024-10-02 13:44:12 +02:00
Daan De Meyer d98b6c66ff mkosi: Stop installing bpftrace
bpftrace nudges the Fedora Rawhide images towards compiler-rt18 while the
sanitizer builds pull in clang19, leading to the sanitizer libraries
not being found at runtime. Let's drop bpftrace for now so that compiler-rt19
is pulled in in the main image.
2024-10-02 11:29:34 +02:00
Daan De Meyer 345a4fcbb6 mkosi: Pass ASAN_OPTIONS to subimages
systemd built with sanitizers is installed in subimages and tools
might get invoked in postinstall scripts so we have to disable ASAN
in the subimages as well during the image build.
2024-10-02 11:29:34 +02:00
Daan De Meyer 9c7762c943 mkosi: Don't sync if the packaging specs repo is dirty 2024-10-02 11:29:34 +02:00
Daan De Meyer c73d14c43e tree-wide: Fix Wformat warnings
The latest clang has started catching more integer promotions which
cause us to pass the wrong type to printf() format specifiers so let's
fix those.
2024-10-02 11:26:58 +02:00
Lennart Poettering f39e66b85a man: drop reference to /bin/ from docs regarding binary search path
We don't support "split /usr" systems anymore, hence no point in
mentioning /bin/ anymore as being part of the binary search path.
2024-10-02 10:57:25 +02:00
Lennart Poettering 225f18b9a9 man: soft deprecate use of ";" for separating multiple command lines in ExecStart=
So far we supported this syntax:

    ExecStart=foo ; bar

as equivalent to:

    ExecStart=foo
    ExecStart=bar

With this change we'll "soft" deprecate the first syntax. i.e. it's
still supported in code, but not documented anymore.

The concept was originally added to make things easier for 3rd party
.ini readers, as it allowed writing unit files with a .ini framework
that doesn't allow multiple assignments for the same key. But frankly,
this is kinda pointless, as so many other of our knobs require the
double assignment.

Hence, let's just stop advertising the concept, let's simplify the docs,
by removing one entirely redundant feature from it.

Replaces: #34570
2024-10-02 10:57:25 +02:00
Daan De Meyer f02f8b3ca7 Merge pull request #34546 from ikruglov/ikruglov/refactor-GetMachineAddresses
machine: generalise logic of GetMachineAddresses/GetOsRelease to later use it in corresponding varlink interfaces
2024-10-02 10:24:59 +02:00
Lennart Poettering ca8ad43e5c update TODO 2024-10-02 09:22:52 +02:00
Lennart Poettering da01f7c246 sd-varlink: mark functions that can take 'more' flag in IDL structures with an explicit flag
Let's mark functions that accept the 'more' flag explicitly for that,
and validate for this explicitly.

This is preparation for
https://github.com/varlink/varlink.github.io/issues/26, if we get that
one day. Let's make sure that from day #1 we have this info available
even if we don't generate this in the IDL for now.

Also enables the two flags for all interfaces we export that use the
logic.
2024-10-02 09:22:52 +02:00
Lennart Poettering 1989737276 sd-varlink-idl: add some room for flags everywhere
Given this is supposed to be a public API now, let's add some concept
for extensions of these open-coded structures: let's make sure we have
flags fields on all structures (which we can use for extensions later).
Right now we only have this for varlink "fields" structures, this adds
the same for "symbols" and the "interface" as a whole.

There are no actual flags defined in either for now, this is just
future-safety preparation.

(But a later commit will add two flags to symbols)
2024-10-02 09:22:52 +02:00
Lennart Poettering 96c9e4a2de test: add --more flag when enumerating via List varlink method
The call returns multiple entries, hence should be called with `--more`.
2024-10-02 09:22:52 +02:00
Lennart Poettering bd4beaa2eb tree-wide: always do dlopen() with RTLD_NOW + RTLD_NODELETE
Let's systematically use RTL_NOW|RLTD_NODELETE as flags passed to
dlopen(), across our codebase.

Various distros build with "-z now" anyway, hence it's weird to specify
RTLD_LAZY trying to override that (which it doesn't). Hence, let's
follow suit, and just do what everybody else does.

Also set RTLD_NODELETE, which is apparently what distros will probably
end up implying sooner or later anyway. Given that for pretty much all
our dlopen() calls we never call dlclose() anyway, let's just set this
everywhere too, to make things systematic.

This way, the flags we use by default match what distros such as fedora
do, there are no surprises, and read-only relocations can be a thing.

Fixes: #34537
2024-10-02 07:13:21 +02:00
Lennart Poettering b19e2431d7 Merge pull request #34612 from poettering/hwdb-micmutify-subset
hwdb: various fixes to mm kbd hwdb files
2024-10-02 07:12:51 +02:00
dependabot[bot] 6aed4876e8 build(deps): bump systemd/mkosi
Bumps [systemd/mkosi](https://github.com/systemd/mkosi) from 2c9954fa51a3a995bbdc02db6ef51f5bd27bc1ba to 3454f7bd4ef0336ec80a117d593baaef0fe53398.
- [Release notes](https://github.com/systemd/mkosi/releases)
- [Commits](https://github.com/systemd/mkosi/compare/2c9954fa51a3a995bbdc02db6ef51f5bd27bc1ba...3454f7bd4ef0336ec80a117d593baaef0fe53398)

---
updated-dependencies:
- dependency-name: systemd/mkosi
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-01 22:49:03 +02:00
Helmut Grohne 608009dc62 bpf: fix cross build failure on Debian
For compiling bpf code, the system include directory needs to be
constructed. On Debian-like systems, this requires passing a multiarch
directory. Since clang's -dump-machine prints something other that the
multiarch triplet, gcc was interrogated earlier, but that also yields a
wrong result for cross compilation and was thus skipped resulting in
clang not finding asm/types.h.

Rather than, -dump-machine we should ask for -print-multiarch (which
rarely differs). Whenever gcc is in use, this is right (even for cross
building). Since clang does not support -print-multiarch and its
-dump-machine never matches Debian's multiarch, we resort to asking gcc
when building natively. For cross builds using clang, we are out of
luck.
2024-10-01 22:08:06 +02:00
Ivan Kruglov 31f9f589a8 machine: generalise logic GetOSRelease to later use it in varlink interface 2024-10-01 19:00:25 +02:00
Ivan Kruglov f1daf9fb74 machine: generalise logic GetMachineAddresses to later use it in varlink interface 2024-10-01 19:00:25 +02:00
Lennart Poettering ca5f27037b hwbd: use newer KEY_PICKUP_PHONE, KEY_HANGUP_PHONE, KEY_SELECTIVE_SCREENSHOT, KEY_NOTIFICATION_CENTER keycodes where appropriate
According to kernel commit cd80ec795156346236e9b1cd9f5cbff5a9bbd212
these were added expressly for these thinkpads, hence use them now.
2024-10-01 18:46:55 +02:00
Lennart Poettering 427403baa6 hwdb: use KEY_ROTATE_DISPLAY for various cases of display rotation keys
The keycode is reletively new. Let's fix some "FIXMEs" and actually make
use of the keycode wherever it appears appropriate according to
commentary.
2024-10-01 18:46:55 +02:00
Lennart Poettering 81f1aad8ce hwdb: there's KEY_BRIGHTNESS_AUTO these days, hence hook it up where a FIXME suggests that 2024-10-01 18:46:49 +02:00
Lennart Poettering d8b1d43758 hwdb: make key map match comment for one laptop
No idea what the right fix is here, the commnt says "touchpad off" but
uses "f22" which is touchpad "on".

let's trust the comment, because it's more literal, and assume this was
a mistake.
2024-10-01 18:36:15 +02:00
Lennart Poettering 0a73c8e7b8 linux: import input.h and friends
The CIs apparently have rally old headers, where KEY_BRIGHTNESS_AUTO is
missing, let's hence ship our own copies from a current kernel.
2024-10-01 18:35:00 +02:00
Lennart Poettering 5b80cef69f Revert "Preset user units on first boot as well"
This reverts commit 0a40325573.
2024-10-01 17:33:44 +02:00
Lennart Poettering 19b5853f82 update TODO 2024-10-01 16:50:36 +02:00
Marcel Hellwig fec09ff094 Update sd_bus_message_append_array.xml
fix pointer constness in documentation
2024-10-01 15:55:28 +02:00
dependabot[bot] 086b94d8e2 build(deps): bump actions/checkout from 4.1.7 to 4.2.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/692973e3d937129bcbf40652eb9f2f61becf3332...d632683dd7b4114ad314bca15554477dd762a938)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-01 14:53:35 +02:00
dependabot[bot] 169e500b42 build(deps): bump github/codeql-action from 3.25.15 to 3.26.10
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.15 to 3.26.10.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/afb54ba388a7dca6ecae48f608c4ff05ff4cc77a...e2b3eafc8d227b0241d48be5f425d47c2d750a13)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-01 14:53:24 +02:00
dependabot[bot] 156111e6c9 build(deps): bump meson from 1.5.1 to 1.5.2 in /.github/workflows
Bumps [meson](https://github.com/mesonbuild/meson) from 1.5.1 to 1.5.2.
- [Release notes](https://github.com/mesonbuild/meson/releases)
- [Commits](https://github.com/mesonbuild/meson/compare/1.5.1...1.5.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-01 14:53:05 +02:00
Daan De Meyer 9fd8a9dffe Add %posttrans versions of the systemd %postun scriptlets
On upgrades, only the %postun scriptlets of the old package version
run. This means that any changes related to restarting daemons require
two releases before they're actually used.

%postun is used because it runs after the old package has been removed,
which is important as it means any lingering dropins from the old package
will have been removed as well.

To allow deploying fixes in just a single release while still running after
the old package has been removed, let's introduce %posttrans versions of these
scriptlets as %posttrans of the new package runs on upgrade and install after
the old package has been removed.
2024-10-01 12:12:40 +02:00
Daniel Dawson 0c96911afb systemd-integritysetup: accept integrity-algorithm=xxhash64
Signed-off-by: Daniel Dawson <danielcdawson@gmail.com>
2024-10-01 11:16:14 +02:00
Daan De Meyer bfc48578eb Merge pull request #34582 from DaanDeMeyer/repart
repart: copy denylist fixes
2024-10-01 08:51:01 +02:00
Lennart Poettering 0376ef36a1 json: add json_dispatch_const_user_group_name()
This is the same as json_dispatch_user_group_name() but fills in the
string as "const char*" to the JSON field. Or in other words, it's what
sd_json_dispatch_const_string() is to sd_json_dispatch_string().

Note this drops the SD_JSON_STRICT flags from various dispatch tables
for these fields, and replaces this by SD_JSON_RELAX, i.e. the opposite
behaviour. As #34558 correctly suggests we should validate user names
in lookup functions using the lax rules, rather than the strict ones,
since clients not knowing the rules might ask us for arbitrary
resolution.

(SD_JSON_RELAX internally translates to valid_user_group_name() with the
VALID_USER_RELAX flag).

See: #34558
2024-10-01 08:32:00 +02:00
Mike Yuan 468c6265a2 Merge pull request #34534 from keszybz/man-exitrd
Formally document exitrds
2024-09-30 21:02:04 +02:00
Daan De Meyer 86c4a000c4 Merge pull request #34583 from DaanDeMeyer/ukify
ukify: Use SizeOfImage from linux image as virtual size of .linux section
2024-09-30 19:54:37 +02:00
Lennart Poettering 5b53894123 man: add a comment that inode type policy might be enforces via an LSM or similar
Just to tighten the language a bit, why people should care about where
they place their inodes.
2024-09-30 18:28:27 +02:00
Lennart Poettering fd6e079e7b man: clarify that the defined file hiearchy is just a skeleton
(And specifically mention /usr/include + /var/spool as not covered here,
but being OK to add downstream)
2024-09-30 18:19:33 +02:00
Lennart Poettering b0201b36d2 man: drop /var/spool/ mention from file-hierarchy(7) man page
Today it seems this is mostly used by mail and printer servers, and it's
not clear to me at all what the property is that makes
/var/spool/<package> the better place for the relevant data than
/var/lib/<package>.

Hence, in the interest of shortening the spec, let's not mention the dir
anymore. In particular as the dir really isn't used by us much, for
example we do not have a counterpart for RuntimeDirectory=,
StateDirectory=, … that would cover the spool.

Since most systems these days we care about probably come *without* a
printer or mail server, let's maybe no mention this in the man page that
is supposed to discuss the rough skeleton how things are set up. After
all, people are supposed to exend the skeleton with their stuff, and
this sounds more like a case for an extension of the skeleton instead of
being considered part of the skeleton itself.
2024-09-30 18:06:02 +02:00
Lennart Poettering 9e7b691073 man: drop mention of /usr/include/ from file-hierarchy(7) man page
The man page is supposed to provide a "generalized, though minimal and
modernized subset" (as per introductory pargapraghs), from a systemd
perspective. But the thing is that /usr/include/ really doesn't matter
to us. It's a development thing, and slightly weird (because it arguably
would be better places in /usr/share/include/ or so). It's not going to
be there on 95% of deployed systems, and we really don't want people to
bother with it on such systems.

We only define the skeleton of directories in this document, and it's
expected that people extend it, and I think this really should be one of
those dirs that is an extension of our skeleton, but not part of the
skeleton, if that makes any sense.
2024-09-30 18:01:12 +02:00
Lennart Poettering 26e6986527 update TODO 2024-09-30 17:44:25 +02:00
Mike Yuan a48c1699eb Merge pull request #34564 from YHNdnzj/systemctl-status-job-id
systemctl: also show job id in status output
2024-09-30 17:39:19 +02:00
Mike Yuan c52b2b6518 Merge pull request #34508 from intelfx/work/fix-io-reporting
core/cgroup: cache IO accounting data when pruning a cgroup
2024-09-30 17:38:00 +02:00
Daan De Meyer 7af304d3b6 ukify: Remove special casing for .linux section
Now that we properly leave sufficient space for inline execution of
the .linux section, let's remove the special casing of the .linux
section as it doesn't need to be the last section anymore now.
2024-09-30 16:15:16 +02:00
Daan De Meyer 2188c759f9 ukify: Use SizeOfImage from linux image as virtual size of .linux section
The SizeOfImage is bigger than the image itself so that space is
guaranteed to be available for in place execution of the linux image. Let's
make sure we take this into account and use SizeOfImage as the section's virtual
size instead of the size of the image itself.

Fixes #34578
2024-09-30 15:52:59 +02:00
Yu Watanabe 82f2c33db5 tpm2-util: show loaded libraries in 'systemd-analyze has-tpm2'
After 3b16e9f419, even the libraries are
documented in the man page, it is useful to mention which libraries are
checked in the command output.

Of course, the dependencies are kind of implementation detail, and may
be changed in the future version, but that's especially why I think
showing the library deps in the output is useful.

systemd-analyze is a debugging tool, and already shows many internal
states. I think there is nothing to prevent from showing the deps.

Prompted by #34477.
2024-09-30 15:40:14 +02:00