]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
2 years agotest-time-util: do not fail on DST change 26772/head
Yu Watanabe [Sun, 12 Mar 2023 18:47:45 +0000 (03:47 +0900)] 
test-time-util: do not fail on DST change

2 years agotime-util: add note about on DST change
Yu Watanabe [Sun, 12 Mar 2023 18:47:15 +0000 (03:47 +0900)] 
time-util: add note about on DST change

2 years agotest: add more testcases for formatting/parsing timestamp
Yu Watanabe [Sun, 12 Mar 2023 11:59:38 +0000 (20:59 +0900)] 
test: add more testcases for formatting/parsing timestamp

2 years agotime-util: make USEC_TIMESTAMP_FORMATTABLE_MAX for 32bit system off by one day
Yu Watanabe [Sun, 12 Mar 2023 11:57:16 +0000 (20:57 +0900)] 
time-util: make USEC_TIMESTAMP_FORMATTABLE_MAX for 32bit system off by one day

As the same reason why we take one day off for 64bit case.

This also makes both upper bounds always defined for testing.

2 years agoMerge pull request #26756 from yuwata/edit-util-cleanups
Mike Yuan [Sun, 12 Mar 2023 11:23:19 +0000 (19:23 +0800)] 
Merge pull request #26756 from yuwata/edit-util-cleanups

edit-util: several cleanups

2 years agosd-boot: fix incompatible type
Yu Watanabe [Sun, 12 Mar 2023 07:40:18 +0000 (16:40 +0900)] 
sd-boot: fix incompatible type

Fixes the following build error:
```
../src/boot/efi/vmm.c: In function ‘get_smbios_table’:
../src/boot/efi/vmm.c:217:24: error: incompatible types when returning type ‘_Bool’ but ‘const SmbiosHeader *’ was expected
  217 |                 return false;
      |                        ^~~~~
```

2 years agoedit-util: unlink temporary file on failure 26756/head
Yu Watanabe [Sat, 11 Mar 2023 13:20:51 +0000 (22:20 +0900)] 
edit-util: unlink temporary file on failure

Addresses the suggestion
https://github.com/systemd/systemd/pull/26756#discussion_r1133078705.

2 years agoedit-util: fix potentical crash when no edit markers
Yu Watanabe [Sat, 11 Mar 2023 08:38:03 +0000 (17:38 +0900)] 
edit-util: fix potentical crash when no edit markers

This also makes trim_edit_markers() take EditFile as the argument.

2 years agoedit-util: make create_edit_temp_file() take EditFile as the argument
Yu Watanabe [Sat, 11 Mar 2023 08:35:55 +0000 (17:35 +0900)] 
edit-util: make create_edit_temp_file() take EditFile as the argument

No functional changes, just refactoring.

2 years agoedit-util: make EditFile take reference of EditFileContext
Yu Watanabe [Sat, 11 Mar 2023 08:42:34 +0000 (17:42 +0900)] 
edit-util: make EditFile take reference of EditFileContext

No functional change, just preparation for later commits.

2 years agosystemctl-edit: invert one error check
Yu Watanabe [Sat, 11 Mar 2023 08:19:35 +0000 (17:19 +0900)] 
systemctl-edit: invert one error check

2 years agosystemctl-edit: shorten code a bit
Yu Watanabe [Sat, 11 Mar 2023 08:18:29 +0000 (17:18 +0900)] 
systemctl-edit: shorten code a bit

2 years agomkosi: Update to latest
Daan De Meyer [Sat, 11 Mar 2023 12:32:29 +0000 (13:32 +0100)] 
mkosi: Update to latest

2 years agoMerge pull request #26641 from medhefgo/boot-elf2efi
Yu Watanabe [Sat, 11 Mar 2023 08:15:01 +0000 (17:15 +0900)] 
Merge pull request #26641 from medhefgo/boot-elf2efi

boot: Drop gnu-efi / Add elf2efi.py

2 years agoMerge pull request #26303 from YHNdnzj/edit-util
Yu Watanabe [Sat, 11 Mar 2023 08:13:27 +0000 (17:13 +0900)] 
Merge pull request #26303 from YHNdnzj/edit-util

shared: add edit-util (part of which extracted from systemctl-edit)

2 years agoMerge pull request #26739 from ldv-alt/udevadm-verify
Yu Watanabe [Sat, 11 Mar 2023 08:12:57 +0000 (17:12 +0900)] 
Merge pull request #26739 from ldv-alt/udevadm-verify

udevadm verify: introduce --root option

2 years agoMerge pull request #26752 from Foxboron/morten/fix-manpage
Yu Watanabe [Sat, 11 Mar 2023 08:12:47 +0000 (17:12 +0900)] 
Merge pull request #26752 from Foxboron/morten/fix-manpage

src: Fixup copy-paste error for terminal_urlify_man

2 years agoman: Fix pcrphase.service manvolnum from 1 to 8 26752/head
Morten Linderud [Fri, 10 Mar 2023 19:29:56 +0000 (20:29 +0100)] 
man: Fix pcrphase.service manvolnum from 1 to 8

2 years agosrc: Fixup copy-paste error for terminal_urlify_man
Morten Linderud [Fri, 10 Mar 2023 19:20:44 +0000 (20:20 +0100)] 
src: Fixup copy-paste error for terminal_urlify_man

Signed-off-by: Morten Linderud <morten@linderud.pw>
2 years agogenerator: fix comment 26750/head
Yu Watanabe [Fri, 10 Mar 2023 18:32:23 +0000 (03:32 +0900)] 
generator: fix comment

2 years agoedit-util: several cleanups for run_editor 26303/head
Mike Yuan [Sat, 25 Feb 2023 18:09:24 +0000 (02:09 +0800)] 
edit-util: several cleanups for run_editor

run_editor is now switched to heap allocation
for simplicity. The code for child is made into
an individual function for simpler error handling.

2 years agosystemctl: edit: several cleanups
Mike Yuan [Sat, 25 Feb 2023 17:54:10 +0000 (01:54 +0800)] 
systemctl: edit: several cleanups

2 years agoedit-util: introduce EditFileContext
Mike Yuan [Sat, 25 Feb 2023 13:02:17 +0000 (21:02 +0800)] 
edit-util: introduce EditFileContext

This is a rather large change which moves
the add and install logic into edit-util.

We store an EditFile array and the number of
elements, along with the edit markers used in
temporary files and whether to remove the parent
directories of the target files if they're empty
in an EditFileContext object.

Call edit_files_add() to add an file to edit,
and do_edit_files_and_install() to do the actual
editing (through create_edit_temp_file(),
run_editor() and trim_edit_markers()).
After that, edit_file_context_done() can be used
to destroy the object.

2 years agoedit-util: several cleanups to create_edit_temp_file
Mike Yuan [Sat, 25 Feb 2023 13:11:02 +0000 (21:11 +0800)] 
edit-util: several cleanups to create_edit_temp_file

original_path and comment_paths can now be used
together.

Removes reference to "unit"

2 years agoshared: extract edit-util from systemctl-edit
Mike Yuan [Sat, 25 Feb 2023 12:47:13 +0000 (20:47 +0800)] 
shared: extract edit-util from systemctl-edit

2 years agoudev_rules_parse_file: issue diagnostics about duplicate LABEL tokens 26739/head
Dmitry V. Levin [Fri, 10 Mar 2023 08:00:00 +0000 (08:00 +0000)] 
udev_rules_parse_file: issue diagnostics about duplicate LABEL tokens

When a rules contains several LABEL tokens, the parser used to silently
discard all of them besides the last one without any diagnostics at all.
It's time to break the vow of silence and let the parser issue a warning.

2 years agomount: Include After=local-fs-pre.target by default in initrd
Will Fancher [Wed, 8 Feb 2023 03:00:38 +0000 (22:00 -0500)] 
mount: Include After=local-fs-pre.target by default in initrd

Although it may be true that /sysroot and its children don't belong in
local-fs.target, that doesn't mean they shouldn't come after
local-fs-pre.target. For instance, systemd-hibernate-resume@.service needs to
come before /sysroot and its children, but currently that only happens
coincidentally because of the ordering between systemd-fsck@.service and
local-fs-pre.target. As a result, mount units can be mistakenly started
simultaneously with systemd-hibernate-resume@.service, which can cause
corruption and data loss in the worst of cases.

2 years agotestsuite-17.11.sh: check udevadm verify --root
Dmitry V. Levin [Thu, 9 Mar 2023 08:00:00 +0000 (08:00 +0000)] 
testsuite-17.11.sh: check udevadm verify --root

2 years agoudevadm verify: introduce --root option
Dmitry V. Levin [Thu, 9 Mar 2023 08:00:00 +0000 (08:00 +0000)] 
udevadm verify: introduce --root option

When udevadm verify is invoked without positional arguments and loads
all rules files from the system like the udev daemon does, this option
can be used to operate on files underneath the specified root path.

2 years agoudevadm verify: load all rules from the system if no rules were given
Dmitry V. Levin [Thu, 9 Mar 2023 08:00:00 +0000 (08:00 +0000)] 
udevadm verify: load all rules from the system if no rules were given

When udevadm verify is invoked without positional arguments, that is,
when no udev rules files are specified, load all rules files from the system
like the udev daemon does, and verify them.

2 years agotestsuite-17.11.sh: prepare to test udevadm verify --root
Dmitry V. Levin [Thu, 9 Mar 2023 08:00:00 +0000 (08:00 +0000)] 
testsuite-17.11.sh: prepare to test udevadm verify --root

2 years agotestsuite-17.11.sh: create all files in a temporary directory
Dmitry V. Levin [Thu, 9 Mar 2023 08:00:00 +0000 (08:00 +0000)] 
testsuite-17.11.sh: create all files in a temporary directory

Make sure the test would not collide with anything else by moving
all files it created into a temporary directory.

2 years agotestsuite-17.11.sh: robustify unknown user/group checks
Dmitry V. Levin [Thu, 9 Mar 2023 08:00:00 +0000 (08:00 +0000)] 
testsuite-17.11.sh: robustify unknown user/group checks

Use certainly invalid user/group names in the tests that check
unknown user/group diagnostics.

2 years agoMerge pull request #26726 from DaanDeMeyer/cleanups
Daan De Meyer [Fri, 10 Mar 2023 13:22:53 +0000 (14:22 +0100)] 
Merge pull request #26726 from DaanDeMeyer/cleanups

Various small cleanups

2 years agoMerge pull request #26737 from poettering/runtime-scope
Lennart Poettering [Fri, 10 Mar 2023 12:09:40 +0000 (13:09 +0100)] 
Merge pull request #26737 from poettering/runtime-scope

add RuntimeScope enum, replacing LookupScope and various booleans indicating whether we are called in a per-system or per-user context

2 years agoMerge pull request #26747 from poettering/dissect-common-decrypt
Lennart Poettering [Fri, 10 Mar 2023 12:07:22 +0000 (13:07 +0100)] 
Merge pull request #26747 from poettering/dissect-common-decrypt

minor clean-ups for src/dissect/dissect.c

2 years agotest: run script from /tmp, not /run
Luca Boccassi [Thu, 9 Mar 2023 17:08:01 +0000 (17:08 +0000)] 
test: run script from /tmp, not /run

On Debian the test fails because /run is noexec. Simply create the
script in /tmp (and use a BindPath=), as other tests are doing.

Follow-up for 3b7101183cac4b35a8bd6ea2c1de9260c33f977f

2 years agolock-util: Use unposix_lock() in make_lock_file() and release_lock_file() 26726/head
Daan De Meyer [Fri, 10 Mar 2023 10:08:57 +0000 (11:08 +0100)] 
lock-util: Use unposix_lock() in make_lock_file() and release_lock_file()

2 years agouser-util: Use unposix_lock() in take_etc_passwd_lock()
Daan De Meyer [Thu, 9 Mar 2023 11:28:31 +0000 (12:28 +0100)] 
user-util: Use unposix_lock() in take_etc_passwd_lock()

2 years agolock-util: Move to src/basic
Daan De Meyer [Thu, 9 Mar 2023 11:26:25 +0000 (12:26 +0100)] 
lock-util: Move to src/basic

2 years agolock-util: Add CLEANUP_UNPOSIX_UNLOCK()
Daan De Meyer [Wed, 8 Mar 2023 12:00:40 +0000 (13:00 +0100)] 
lock-util: Add CLEANUP_UNPOSIX_UNLOCK()

Also migrate the logic in dynamic-user.c to use the new cleanup
macro.

2 years agolock-util: Add unposix_lock()
Daan De Meyer [Thu, 9 Mar 2023 11:16:54 +0000 (12:16 +0100)] 
lock-util: Add unposix_lock()

Let's add an interface to UNPOSIX locks that mimicks the flock()
interface for BSD locks.

2 years agomeson: Use static library for EFI tests 26641/head
Jan Janssen [Sat, 4 Mar 2023 13:10:35 +0000 (14:10 +0100)] 
meson: Use static library for EFI tests

This also moves them so that fuzz builds do not need pyelftools around.

2 years agoboot: Fix unused function warning
Jan Janssen [Thu, 2 Mar 2023 16:11:52 +0000 (17:11 +0100)] 
boot: Fix unused function warning

2 years agoci: Adjust for new EFI build
Jan Janssen [Thu, 2 Mar 2023 14:41:17 +0000 (15:41 +0100)] 
ci: Adjust for new EFI build

2 years agoboot: Add RISCV32 and LoongArch support
Jan Janssen [Tue, 28 Feb 2023 17:05:18 +0000 (18:05 +0100)] 
boot: Add RISCV32 and LoongArch support

This is completely untested, but should work in theory, as it's just
adding a couple defines according to the specs.

2 years agoboot: Fix debug experience
Jan Janssen [Tue, 28 Feb 2023 16:44:05 +0000 (17:44 +0100)] 
boot: Fix debug experience

2 years agoboot: Bring back bootloader builds
Jan Janssen [Mon, 27 Feb 2023 15:54:48 +0000 (16:54 +0100)] 
boot: Bring back bootloader builds

This adds back sd-boot builds by using meson compile targets directly.
We can do this now, because userspace binaries use the special
dependency that allows us to easily separate flags, so that we don't
pass anything to EFI builds that shouldn't be passed.

Additionally, we pass a bunch of flags to hopefully disable/override any
distro provided flags that should not be used for EFI binaries.

Fixes: #12275
2 years agotree-wide: Drop gnu-efi
Jan Janssen [Sun, 26 Feb 2023 13:09:44 +0000 (14:09 +0100)] 
tree-wide: Drop gnu-efi

This drops all mentions of gnu-efi and its manual build machinery. A
future commit will bring bootloader builds back. A new bootloader meson
option is now used to control whether to build sd-boot and its userspace
tooling.

2 years agomeson: Introduce userspace dep
Jan Janssen [Sun, 26 Feb 2023 10:07:24 +0000 (11:07 +0100)] 
meson: Introduce userspace dep

This will help in a later commit to separate userspace from EFI builds.

2 years agodissect: use a switch statements where appropriate 26747/head
Lennart Poettering [Fri, 10 Mar 2023 10:33:23 +0000 (11:33 +0100)] 
dissect: use a switch statements where appropriate

2 years agodissect: share dissected_image_decrypt_interactively() invocation between actions
Lennart Poettering [Fri, 10 Mar 2023 10:32:20 +0000 (11:32 +0100)] 
dissect: share dissected_image_decrypt_interactively() invocation between actions

Let's invoke dissected_image_decrypt_interactively() at once place only,
instead of in each function separately.

No actual changes, just some minor refactoring.

2 years agoMerge pull request #26331 from ddstreet/tpm2_pcr_read
Lennart Poettering [Fri, 10 Mar 2023 09:24:39 +0000 (10:24 +0100)] 
Merge pull request #26331 from ddstreet/tpm2_pcr_read

Tpm2 pcr read

2 years agolockfile-util: Rename to lock-util
Daan De Meyer [Wed, 8 Mar 2023 11:57:39 +0000 (12:57 +0100)] 
lockfile-util: Rename to lock-util

2 years agolockfile-util: Drop flock() fallback
Daan De Meyer [Thu, 9 Mar 2023 10:44:13 +0000 (11:44 +0100)] 
lockfile-util: Drop flock() fallback

UNPOSIX locks were added in 3.15 which is now our minimal kernel
version, so let's drop the fallback.

2 years agoruntime-scope: add helper that turns RuntimeScope enum into --system/--user string 26737/head
Lennart Poettering [Thu, 9 Mar 2023 16:41:25 +0000 (17:41 +0100)] 
runtime-scope: add helper that turns RuntimeScope enum into --system/--user string

2 years agobasic: add RuntimeScope enum
Lennart Poettering [Fri, 10 Mar 2023 08:47:10 +0000 (09:47 +0100)] 
basic: add RuntimeScope enum

In various tools and services we have a per-system and per-user concept.
So far we sometimes used a boolean indicating whether we are in system
mode, or a reversed boolean indicating whether we are in user mode, or
the LookupScope enum used by the lookup path logic.

Let's address that, in introduce a common enum for this, we can use all
across the board.

This is mostly just search/replace, no actual code changes.

2 years agosocket-util: fix socket_get_family()
Lennart Poettering [Tue, 7 Mar 2023 21:50:41 +0000 (22:50 +0100)] 
socket-util: fix socket_get_family()

Function didn't actually return anything useful. Quite a shame.

2 years agoMerge pull request #26693 from poettering/udev-loop-links
Lennart Poettering [Fri, 10 Mar 2023 08:34:31 +0000 (09:34 +0100)] 
Merge pull request #26693 from poettering/udev-loop-links

udev: add /dev/loop/by-inode/… + /dev/loop/by-ref/… loopback block device symlinks

2 years agoMerge pull request #26704 from poettering/mnt-nosymlinks
Lennart Poettering [Fri, 10 Mar 2023 08:34:04 +0000 (09:34 +0100)] 
Merge pull request #26704 from poettering/mnt-nosymlinks

Set MS_NOSYMFOLLOW for ESP + XBOOTLDR and many mount option clean-ups

2 years agorepart: Add support for reading mkfs options from environment
Daan De Meyer [Thu, 9 Mar 2023 19:33:04 +0000 (20:33 +0100)] 
repart: Add support for reading mkfs options from environment

2 years agoMerge pull request #26741 from poettering/acquire-fd-fixes
Lennart Poettering [Fri, 10 Mar 2023 08:33:20 +0000 (09:33 +0100)] 
Merge pull request #26741 from poettering/acquire-fd-fixes

trivial fixes to acquire_data_fd()

2 years agoload-fragment: add user credential specifiers to user.conf
Ronan Pigott [Tue, 28 Feb 2023 05:57:06 +0000 (22:57 -0700)] 
load-fragment: add user credential specifiers to user.conf

This enables the ManagerEnvironment= settings in the user's user.conf to
reference some user data like $HOME for the purpose of setting
environment variables derived from these values.

2 years agoMerge pull request #26734 from mrc0mmand/test-followups
Luca Boccassi [Fri, 10 Mar 2023 00:03:48 +0000 (00:03 +0000)] 
Merge pull request #26734 from mrc0mmand/test-followups

Assorted test tweaks

2 years agoMerge pull request #26731 from yuwata/mempressure-follow-ups
Luca Boccassi [Thu, 9 Mar 2023 22:35:29 +0000 (22:35 +0000)] 
Merge pull request #26731 from yuwata/mempressure-follow-ups

Mempressure follow ups

2 years agodata-fd-util: use fd_reopen() a bit more 26741/head
Lennart Poettering [Thu, 9 Mar 2023 21:56:53 +0000 (22:56 +0100)] 
data-fd-util: use fd_reopen() a bit more

2 years agofd-util: move ACQUIRE_NO_XYZ flags to the header the function using them is in
Lennart Poettering [Tue, 7 Mar 2023 21:50:02 +0000 (22:50 +0100)] 
fd-util: move ACQUIRE_NO_XYZ flags to the header the function using them is in

Follow-up for: b25a930f0e2ebe77bc8b0f0acfac8a3b27ef1f0a

2 years agomempress: change default PSI window duration to 2s
Lennart Poettering [Thu, 9 Mar 2023 11:34:23 +0000 (12:34 +0100)] 
mempress: change default PSI window duration to 2s

This changes the PSI window duration we default to for watching memory
pressure events from 1s to 2s. This is because apparently the kernel
will soon disallow window durations other than 2s for unprivileged
processes.

Hence, we'll bump the threshold from 100m to 200ms, and the window from
1s to 2s.

2 years agoupdate TODO 26693/head
Lennart Poettering [Mon, 6 Mar 2023 11:13:57 +0000 (12:13 +0100)] 
update TODO

2 years agotest: test new systemd-dissect --attach/--detach/--loop-ref= and /dev/loop/* symlinks
Lennart Poettering [Mon, 6 Mar 2023 12:23:48 +0000 (13:23 +0100)] 
test: test new systemd-dissect --attach/--detach/--loop-ref= and /dev/loop/* symlinks

Let's test that everything we just added works in combination.

2 years agomountpoint-util: add comment explaining why fstype_can_discard() can't use mount_opti... 26704/head
Lennart Poettering [Tue, 7 Mar 2023 11:21:10 +0000 (12:21 +0100)] 
mountpoint-util: add comment explaining why fstype_can_discard() can't use mount_option_supported()

2 years agomountpoint-util: add new fstype_can_umask() helper
Lennart Poettering [Tue, 7 Mar 2023 10:29:38 +0000 (11:29 +0100)] 
mountpoint-util: add new fstype_can_umask() helper

2 years agomountpoint-util: move 'norecovery' detection into its own helper call
Lennart Poettering [Tue, 7 Mar 2023 10:24:00 +0000 (11:24 +0100)] 
mountpoint-util: move 'norecovery' detection into its own helper call

And let's also ask the kernel explicitly for support.

2 years agomountpoint-util: use mount_option_supported() to detect if 'discard' is support for...
Lennart Poettering [Tue, 7 Mar 2023 10:19:56 +0000 (11:19 +0100)] 
mountpoint-util: use mount_option_supported() to detect if 'discard' is support for an fs

2 years agomountpoint-util: generalize mount_option_supported()
Lennart Poettering [Tue, 7 Mar 2023 10:19:35 +0000 (11:19 +0100)] 
mountpoint-util: generalize mount_option_supported()

2 years agogpt-auto-generator: port to partition_pick_mount_options() too
Lennart Poettering [Tue, 7 Mar 2023 09:52:01 +0000 (10:52 +0100)] 
gpt-auto-generator: port to partition_pick_mount_options() too

This way we'll have the same mount options in place if we boot via the
gpt generator, or if we mount a DDI locally.

Note that this will also enable MS_NOSYMFOLLOW on ESP and XBOOTLDR now,
if booted via gpt-auto-generator.

2 years agodissect-image: set MS_NOSYMFOLLOW for ESP/XBOOTLDR
Lennart Poettering [Tue, 7 Mar 2023 09:18:09 +0000 (10:18 +0100)] 
dissect-image: set MS_NOSYMFOLLOW for ESP/XBOOTLDR

When we mount a DDI, let's set MS_NOSYMFOLLOW for ESP/XBOOTLDR. They are
generally untrusted territory, (i.e. outside of
encryption/authentication via dm-crypt/dm-verity). Moreover they are
generally FAT, where symlinks don't exist anyway. Let's hence disable
symlinks for them.

This slightly refactors how we put together mount options for mounts,
splitting this out into a new helper call
dissected_partition_pick_options(), which we should be able to reuse
later in gpt-auto-generator, to ensure mounts via loopback as DDI and
those on bare metal get the same options.

2 years agotpm2: add tpm2_pcr_read() 26331/head
Dan Streetman [Tue, 21 Feb 2023 21:31:59 +0000 (16:31 -0500)] 
tpm2: add tpm2_pcr_read()

2 years agotest/test-tpm2: add tests for pcr selection functions
Dan Streetman [Tue, 28 Feb 2023 22:16:43 +0000 (17:16 -0500)] 
test/test-tpm2: add tests for pcr selection functions

2 years agotpm2: add/rename functions to manage pcr selections
Dan Streetman [Mon, 6 Feb 2023 16:31:59 +0000 (11:31 -0500)] 
tpm2: add/rename functions to manage pcr selections

This renames some functions to match other to/from_string() naming,
and allows better management of TPML_PCR_SELECTION and TPMS_PCR_SELECTION
structs.

2 years agotpm2: add TPM2_PCR_VALID()
Dan Streetman [Mon, 27 Feb 2023 11:44:13 +0000 (06:44 -0500)] 
tpm2: add TPM2_PCR_VALID()

2 years agotpm2: add tpm2_get_policy_digest()
Dan Streetman [Fri, 16 Dec 2022 21:33:08 +0000 (16:33 -0500)] 
tpm2: add tpm2_get_policy_digest()

2 years agotest/test-bitfield: add tests for bitfield macros
Dan Streetman [Thu, 2 Feb 2023 21:00:11 +0000 (16:00 -0500)] 
test/test-bitfield: add tests for bitfield macros

2 years agoudev: add /dev/loop/ symlinks
Lennart Poettering [Mon, 6 Mar 2023 11:55:59 +0000 (12:55 +0100)] 
udev: add /dev/loop/ symlinks

This adds symlinks that allow accessing loopback block devices via stable
names that reference their backing block devices, make the unpredictable
naming of loopback devices less of an issue.

Example:

1. Create a loopback block device for a file $F

   losetup --find $F

2. Reference the backing block device via its inode:

   L="$(stat -c '/dev/loop/by-inode/%Hd:%Ld-%i' $F)"
   fdisk $L

In the above the loop device name (which might be /dev/loop47 or any
other name) is not used at all.

2 years agodissect: shorten code a bit
Lennart Poettering [Mon, 6 Mar 2023 11:04:44 +0000 (12:04 +0100)] 
dissect: shorten code a bit

2 years agodissect: allow setting "lo_file_name" field of loopback block devices
Lennart Poettering [Mon, 6 Mar 2023 11:00:45 +0000 (12:00 +0100)] 
dissect: allow setting "lo_file_name" field of loopback block devices

When attaching a loopback file this allows us to set an explicit name
for it. This is useful since it allows a caller to pre-select a string
that is directly attached to the loopback file. Via udev rules we'l
later make the device accessible through this name.

Note that "lo_file_name" is supposed to carry a file name of the backing
file, but the kernel actually does not care or enforce any of that, it
just stores the filename and returns it later. This makes it so useful,
as userspace has total control of that field.

"lo_file_name" should not be confused with the sysattr
"loop/backing_file" which is actually maintained by the kernel itself,
and always shows the file to the backing inode without userspace having
direct control over the returned string. Because the sysattr is
generated by the kernel it is subject to file system namespacing and
everything, while "lo_file_name" is not, it's really just a string
passed through the kernel.

2 years agodissect: add commands for attaching/detaching loopback devices
Lennart Poettering [Mon, 6 Mar 2023 10:59:16 +0000 (11:59 +0100)] 
dissect: add commands for attaching/detaching loopback devices

Sometimes it is useful attaching DDIs without mounting them. We could
use "losetup" for that, but doing this in systemd-dissect has various
benefits:

1. we superficially validate the DDI first
2. we set the sector size depending on what we determine
3. we synchronously create the per-partition block devices

2 years agoloop-util: add API for selecting "lo_file_name" field for a loopback device
Lennart Poettering [Mon, 6 Mar 2023 11:07:57 +0000 (12:07 +0100)] 
loop-util: add API for selecting "lo_file_name" field for a loopback device

2 years agoloop-util: add call for setting the autoclear flag at arbitrary times
Lennart Poettering [Mon, 6 Mar 2023 11:07:18 +0000 (12:07 +0100)] 
loop-util: add call for setting the autoclear flag at arbitrary times

2 years agoloop-util: keep track of inode/devnum of backing file
Lennart Poettering [Mon, 6 Mar 2023 11:06:21 +0000 (12:06 +0100)] 
loop-util: keep track of inode/devnum of backing file

2 years agoudev-builtin-blkid: pick up info of backing file
Lennart Poettering [Mon, 6 Mar 2023 10:53:26 +0000 (11:53 +0100)] 
udev-builtin-blkid: pick up info of backing file

This adds support for retrieving info about the inode backing a loopback
file to udev-builtin-blkid. It will pick up the inode number and device
of the backing inode, as well as the lo_file_name[] array that the
loopback device maintains.

A later patch uses this information to create block device symlinks in
/dev/ that allow refering block devices by their backing inodes. This is
useful when separate tools set up a loopback device from those which
ultimately shall mount them, and there shall be a stable reference be
passed along. For example, we can add a new kernel option setuploop= or
so which allows setting up a block device via a generator, and still
have a way to safely reference later.

And yes, this doesn't directly have anything to do with the probing
libblkid does, but it's close enough, and we have the device open anyway
here, so the additional ioctl() here should not hurt.

2 years agoudev: add new udev_builtin_add_propertyf() helper
Lennart Poettering [Mon, 6 Mar 2023 10:52:33 +0000 (11:52 +0100)] 
udev: add new udev_builtin_add_propertyf() helper

2 years agodissect: add new helper dissected_partition_fstype()
Lennart Poettering [Tue, 7 Mar 2023 13:39:47 +0000 (14:39 +0100)] 
dissect: add new helper dissected_partition_fstype()

Initially we only have one user, but following patches will add more.

2 years agomountpoint-util: add helper that checks if MS_NOSYMFOLLOW is supported
Lennart Poettering [Mon, 6 Mar 2023 21:49:30 +0000 (22:49 +0100)] 
mountpoint-util: add helper that checks if MS_NOSYMFOLLOW is supported

2 years agomissing: add more defines to fsopen() definitions
Lennart Poettering [Tue, 7 Mar 2023 13:36:22 +0000 (14:36 +0100)] 
missing: add more defines to fsopen() definitions

2 years agomissing: add fsmount() syscall fallback definition
Lennart Poettering [Tue, 7 Mar 2023 13:36:03 +0000 (14:36 +0100)] 
missing: add fsmount() syscall fallback definition

2 years agobasic/bitfield: add bitfield operations
Dan Streetman [Thu, 2 Feb 2023 20:58:10 +0000 (15:58 -0500)] 
basic/bitfield: add bitfield operations

Add macros to manage bits in a bitfield (e.g. uint32_t, uint64_t, etc),
such as setting, clearing, checking bits, and iterating all set bits.

These are similiar to the bitmap operations, but operate on basic types
instead of requiring a Bitmap object.

2 years agosystem.conf: add default for memory pressure settings 26731/head
Yu Watanabe [Thu, 9 Mar 2023 12:58:42 +0000 (21:58 +0900)] 
system.conf: add default for memory pressure settings

Follow-up for #26393.

2 years agocore: add missing MemoryPressureWatch= and MemoryPressureThresholdSec= setting
Yu Watanabe [Thu, 9 Mar 2023 12:49:32 +0000 (21:49 +0900)] 
core: add missing MemoryPressureWatch= and MemoryPressureThresholdSec= setting

Follow-up for #26393.

Addresses https://github.com/systemd/systemd/pull/26393#issuecomment-1458655798.

2 years agotest: fall back to /sys/fs/cgroup/systemd if necessary 26734/head
Frantisek Sumsal [Thu, 9 Mar 2023 14:27:48 +0000 (15:27 +0100)] 
test: fall back to /sys/fs/cgroup/systemd if necessary

Necessary for some CI setups where we boot an nspawn container on a host
with older systemd with legacy hierarchy, so systemd mounts its stuff
under /sys/fs/cgroup/systemd.