1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-21 22:04:01 +03:00

72190 Commits

Author SHA1 Message Date
Mike Yuan
f61e4e5380
core/socket: validate service unit load state before continuing
Fixes #31915
2024-03-24 01:08:40 +08:00
Mike Yuan
dc4c587163
core: introduce UNIT_IS_LOAD_ERROR helper 2024-03-24 01:08:40 +08:00
Zbigniew Jędrzejewski-Szmek
acb27fba43 shared/install: use PATH_IN_SET() 2024-03-23 13:30:24 +01:00
Zbigniew Jędrzejewski-Szmek
1934242b72 Drop unnecessary path_equal_ptr() wrapper
path_equal already works with NULL pointers.
2024-03-23 13:21:06 +01:00
Mike Yuan
abef0ec308
core/swap: another try on memory mgmt
Follow-up for ba31a5018f99864c22dd4e0f10712456c7abc934

Another stupid mistake... Shouldn't have
written anything when I was tired.
2024-03-23 19:48:28 +08:00
Michael Biebl
1df021927f Fix bpf-framework build failure with gcc-bpf
The -mkernel option was dropped in
da445a5858

We also need to ensure that the include paths are properly set for the
linux kernel headers.

Fixes: #31869
2024-03-23 12:06:22 +01:00
Zbigniew Jędrzejewski-Szmek
da867fa3c3
Merge pull request #31907 from mrc0mmand/efi-shenanigans
efi: check if all sections of our EFI binaries are properly aligned
2024-03-23 12:04:14 +01:00
Zbigniew Jędrzejewski-Szmek
9a50330476
Merge pull request #31779 from keszybz/elf2efi-clang-18
Make elf2efi work with clang-18
2024-03-23 12:02:34 +01:00
Adrian Vovk
269a3fe245 TEST-46-HOMED: Disable auth rate-limiting
Rate limiting authentication attempts in the test can cause somewhat
sporadic test failures: adding a test case might suddenly cause future
test cases to fail because of too many authentication attempts too
quickly

We're not trying to test the rate-limiting, we're trying to test the
functionality of homed. So we effectively disable rate-limiting on all
the home areas we create
2024-03-23 01:05:13 +00:00
Adrian Vovk
44aaff689b update TODO 2024-03-23 01:05:13 +00:00
Adrian Vovk
d94c7eef12 homework: Implement offline updates
This makes it possible to update a home record (and blob directory) of a
home area that's either completely absent (i.e. on a USB stick that's
unplugged) or just inaccessible due to lack of authentication
2024-03-23 01:05:13 +00:00
Adrian Vovk
5ec87d577f homework: Accept volume key from keyring
This bypasses authentication (i.e. user_record_authenticate) if the
volume key was loaded from the keyring and no secret section is
provided.

This also changes Update() and Resize() to always try and load the
volume key from the keyring. This makes the secret section optional for
these methods while still letting them function (as long as the home
area is active)
2024-03-23 01:05:13 +00:00
Adrian Vovk
d0eff7a12d homework: Always upload volume key to keyring
This commit makes homework always upload the LUKS volume key into the
kernel keyring. This is different from previous behavior in three
notable ways:

- Previously, we'd only upload if auto-resize was on. In preparation for
upcoming changes, now we always upload

- Previously, we'd upload the user's actual password (or a password
obtained from a FIDO key or similar). Now, we upload the LUKS volume key
itself, to remove a layer of unnecessary indirection.

- Previously, Lock() wouldn't remove the key from the kernel keyring.
This, of course, defeats the purpose of Lock(), so now it removes the
key

This commit also allows the LUKS volume to be unlocked using the volume
key we obtained from the keyring.
2024-03-23 01:05:13 +00:00
Adrian Vovk
9a077230a4 homed: Ensure closed FD is handled before bus req
Before this fix, the following sequence of events was possible:
1. A client holding a Ref() FD closes their FD
2. kernel sends notification that all clients closed their FDs
3. Another client obtains its own Ref() FD from homed
4. homed handles the notification that all clients have closed their
   Ref() FDs. Thus it loses track of the fact that the session is
   actually still being held open by the client from step 3

This change makes sure that homed won't respond to bus messages (and
thus won't open more Ref() FDs) until it has handled all notifications
about the existing FDs being closed.

logind has had a very similar fix applied to it in
e11544a8305ab9dea097c74bb16e296150c9cc10

Fixes https://github.com/systemd/systemd/issues/31518
2024-03-23 01:04:51 +00:00
Mike Yuan
f2859ba52f
core/dynamic-user: trivial modernization 2024-03-23 03:43:30 +08:00
Mike Yuan
8f0646da09
core/execute: use STR_IN_SET where appropriate 2024-03-23 01:27:09 +08:00
Luca Boccassi
1b5f3f5662
Merge pull request #31670 from CodethinkLabs/vmspawn/generate_ssh_keys
vmspawn: generate ssh keys
2024-03-22 16:28:03 +00:00
Luca Boccassi
5bd9a430f7
Merge pull request #31908 from DaanDeMeyer/mkosi
Various mkosi fixes
2024-03-22 16:22:42 +00:00
Daan De Meyer
66b574b0a2 tree-wide: Add allow_pidfd argument to bus_append_scope_pidref() 2024-03-22 17:03:35 +01:00
Daan De Meyer
d0327823d8 mkosi: Switch to Arch Linux packaging sources main branch
https://gitlab.archlinux.org/archlinux/packaging/packages/systemd/-/merge_requests/8
was merged so let's switch branches to the main branch.
2024-03-22 16:51:37 +01:00
Daan De Meyer
97b191c49b mkosi: Disable debug package generation on Arch Linux
This is extremely slow since the latest pacman release, and since
we don't strip binaries, not really needed either.
2024-03-22 16:49:10 +01:00
Zbigniew Jędrzejewski-Szmek
125f06dd1c tools/elf2efi: elif→if to make pylint happy 2024-03-22 15:44:17 +01:00
Zbigniew Jędrzejewski-Szmek
6d03e5523c tools/elf2efi: skip empty .got section and its .relro_padding
Resolves https://github.com/systemd/systemd/issues/31637.

lld-18 does the section setup differently than older versions. There is a bunch
of ordering chagnes, but it also inserts the following:

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
...
  9 .got          00000000  00000000000283c0  00000000000283c0  000283c0  2**3
                  CONTENTS, ALLOC, LOAD, DATA
 10 .relro_padding 00000c40  00000000000283c0  00000000000283c0  000283c0  2**0
                  ALLOC
 11 .data         00000024  00000000000293c0  00000000000293c0  000283c0  2**4
                  CONTENTS, ALLOC, LOAD, DATA
...

This causes a problem for us, because we try to map the .got to .rodata,
and the subsequent .data to .data, and round down the VMA to the nearest
page, which causes the PE sections to overlap.

https://github.com/llvm/llvm-project/pull/66042 adds .relro_padding to make
sure that the RELRO segment is properly write protected and allocated. For our
binaries, the .got section is empty, so we can skip it safely, and the
.relro_padding section is not useful once .got has been dropped.

We don't expect .got sections, but they are apparently inserted on i386 and
aarch64 builds. Emit a warning until we figure out why they are there.
2024-03-22 15:42:57 +01:00
Daan De Meyer
1bee93c4c7 mkosi: Enable log context 2024-03-22 15:15:01 +01:00
Daan De Meyer
2d0b8e9fb6 mkosi: Make sure man and man-db are installed everywhere 2024-03-22 15:12:20 +01:00
Daan De Meyer
27add528d7 test: Install test journals
Let's package these just like we package other test data.
2024-03-22 15:11:39 +01:00
Daan De Meyer
16f182e59a
Merge pull request #31839 from DaanDeMeyer/log
log: Add per target log levels
2024-03-22 15:11:11 +01:00
Frantisek Sumsal
7ff3b88396 efi: check if all sections of our EFI binaries are properly aligned 2024-03-22 14:02:03 +01:00
Unique-Usman
5f0e4d2fb4 Added more ASSERT macro and also make some test file to use them 2024-03-22 12:31:14 +00:00
Luca Boccassi
3be1ebcb4d
Merge pull request #31902 from YHNdnzj/swap-followup
core: some follow-ups
2024-03-22 12:08:53 +00:00
Daan De Meyer
e8815abff6 log: Add per target log levels
For CI in mkosi, I want to configure systemd to log at debug level
to the journal, but not to the console. While we already have max
level settings for journald's forwarding settings, not every log line
goes to the journal, specifically during early boot and when units
are connected directly to the console (think systemd-firstboot), so
let's extend the log level options we already have to allow specifying
a comma separated list of values and lets allow prefixing values with
the log target they apply to to make this possible.
2024-03-22 12:46:32 +01:00
Frantisek Sumsal
a00dedf802 efi: fix mixed indent 2024-03-22 12:11:49 +01:00
Yu Watanabe
1aa6af6bcc
Merge pull request #31900 from DaanDeMeyer/dissect
nspawn logging fix
2024-03-22 20:07:34 +09:00
Mike Yuan
f1dfc20a4a
core/mount: use ASSERT_PTR in mount_setup_new_unit 2024-03-22 18:36:01 +08:00
Mike Yuan
ba31a5018f
core/swap: fix memory management in swap_setup_unit
Follow-up for e9fa1bf704ad2f0a7e257e29889315118b0df459
2024-03-22 18:30:39 +08:00
Daan De Meyer
50814ebede nspawn: Use dissect_image_mount_and_warn() 2024-03-22 10:48:46 +01:00
Daan De Meyer
12473f3a4a dissect-image: Improve error messages 2024-03-22 10:48:35 +01:00
Yu Watanabe
e21ad9c136 sd-journal: introduce two helper functions for adding filter 2024-03-22 17:54:13 +09:00
Luca Boccassi
9773f5860f
Merge pull request #31868 from bluca/test_cleanup
test: delete private images on clean-again
2024-03-21 23:45:49 +00:00
Yu Watanabe
431f2ffbea
Merge pull request #31892 from YHNdnzj/machinectl-minor-cleanup
machinectl: minor modernization, use FOREACH_ARRAY
2024-03-22 08:10:39 +09:00
Gerd Hoffmann
57ea8012d6 sd-boot: add support for support enrolling dbx
usage:
  (1) get latest revocation list for your architecture
      from https://uefi.org/revocationlistfile
  (2) copy the file to $ESP/loader/keys/$name/dbx.auth
2024-03-21 23:03:42 +00:00
Daan De Meyer
e33d43b059 docs: Add one more git submodule setting to configure 2024-03-21 23:02:52 +00:00
Mike Yuan
66d826026e cgroup-util: use path_find_first_component where appropriate
Prompted by 8922a728f732a716ecd17dd67cd39bc1a0fc4aa5
2024-03-22 08:00:55 +09:00
Yu Watanabe
d3aa0af31a
Merge pull request #31890 from YHNdnzj/ASSERT_PTR
core: use ASSERT_PTR and RET_GATHER more
2024-03-22 07:57:46 +09:00
Daan De Meyer
f680c4c95e dbus-exporter: Set explicit mode on output directory
Otherwise the created directory might have the sticky bit or the setgid
bit set as these are inherited from the parent directory.
2024-03-22 07:54:25 +09:00
Mike Yuan
7312b0397c
machinectl: minor modernization, use FOREACH_ARRAY
Prompted by 237bbec1173b41c0e0f2eaf9c30e19ab82073b8d
2024-03-22 01:54:31 +08:00
Mike Yuan
51e0149173
nulstr-util: minor cleanup 2024-03-22 01:44:45 +08:00
Mike Yuan
4ecb673e6f
core: use RET_GATHER more 2024-03-22 01:36:37 +08:00
Mike Yuan
e9fa1bf704
core: use ASSERT_PTR(CAST(u)) everywhere 2024-03-22 01:36:37 +08:00
Daan De Meyer
8ba3efed86 logind: Add fallback for when the PIDFDs= property is not available
logind is not zero-downtime restartable yet, specifically it's not yet
restarted in the Fedora spec, so we can end up in situations where we're
running newer logind with older pid1 which doesn't know about the PIDFDs=
property, so let's make sure we have a fallback in place for when that
happens.
2024-03-21 16:17:15 +01:00