]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
2 years agorepart: Ignore copy failures for unsupported file types 25579/head
Daan De Meyer [Wed, 30 Nov 2022 16:04:14 +0000 (17:04 +0100)] 
repart: Ignore copy failures for unsupported file types

e.g. vfat doesn't support symlinks, sockets, fifos, etc so let's ignore
any copy failures related to unsupported file types when populating
filesystems.

2 years agocopy: Add COPY_GRACEFUL_WARN
Daan De Meyer [Wed, 30 Nov 2022 16:01:09 +0000 (17:01 +0100)] 
copy: Add COPY_GRACEFUL_WARN

When copying between filesystems, sometimes the target filesystem
might not support symlinks/fifos/sockets/... and we want to log and
ignore  any failures to copy such files when copying. Let's introduce
a new flag to enable this behavior.

2 years agoMerge pull request #25574 from bluca/gh_wf
Daan De Meyer [Wed, 30 Nov 2022 13:28:05 +0000 (14:28 +0100)] 
Merge pull request #25574 from bluca/gh_wf

actions: restrict development_freeze to main repo and disable codeql on security repo

2 years agoGA: do not run codeql on systemd-security 25574/head
Luca Boccassi [Wed, 30 Nov 2022 10:28:34 +0000 (10:28 +0000)] 
GA: do not run codeql on systemd-security

Scanning is not available on private repositories

2 years agoGA: run development_freeze only on main repository
Luca Boccassi [Wed, 30 Nov 2022 10:28:13 +0000 (10:28 +0000)] 
GA: run development_freeze only on main repository

No point in running this checker on other forks

2 years agosd-netlink: fix assertion triggered by message_get_serial()
Yu Watanabe [Wed, 30 Nov 2022 00:20:12 +0000 (09:20 +0900)] 
sd-netlink: fix assertion triggered by message_get_serial()

This fixes an issue introduced by 7b34bae3b1a8726e241a56600a6edf9b3733a4f4.

Fixes https://github.com/systemd/systemd/pull/25565#issuecomment-1331353945.

2 years agomkfs-util: fix memleak
Yu Watanabe [Wed, 30 Nov 2022 00:26:13 +0000 (09:26 +0900)] 
mkfs-util: fix memleak

Fixes an issure introduced by c75cf0164cbd69104f13cbe7be42ab639953bd7d.

Fixes CID#1501073.

2 years agocgtop: Update code comments
Michal Koutný [Tue, 29 Nov 2022 12:23:51 +0000 (13:23 +0100)] 
cgtop: Update code comments

2 years agoMerge pull request #25561 from poettering/btrfs-quota-opath-fix
Yu Watanabe [Wed, 30 Nov 2022 00:30:13 +0000 (09:30 +0900)] 
Merge pull request #25561 from poettering/btrfs-quota-opath-fix

tmpfiles: fix btrfs quota logic

2 years agoMerge pull request #25565 from poettering/dissect-optimizations
Yu Watanabe [Wed, 30 Nov 2022 00:28:42 +0000 (09:28 +0900)] 
Merge pull request #25565 from poettering/dissect-optimizations

two dissect-image.c optimizations/tweaks

2 years agodissect-image: merge handlers for 4 different partition designators into one 25565/head
Lennart Poettering [Tue, 29 Nov 2022 17:30:18 +0000 (18:30 +0100)] 
dissect-image: merge handlers for 4 different partition designators into one

These four branches execute the exact same code these days, hence merge
them into one.

2 years agodissect-image: don't probe swap partitions needlessly
Lennart Poettering [Tue, 29 Nov 2022 17:24:32 +0000 (18:24 +0100)] 
dissect-image: don't probe swap partitions needlessly

We already know it's swap, we can assume it's also fstype swap, and
don#t need to probe things later again.

2 years agohwdb: add Clevo touchpad toggle key quirks
Michał Kotyla [Thu, 24 Nov 2022 12:10:08 +0000 (13:10 +0100)] 
hwdb: add Clevo touchpad toggle key quirks

2 years agoupdate TODO
Lennart Poettering [Tue, 29 Nov 2022 15:55:48 +0000 (16:55 +0100)] 
update TODO

2 years agounits: change Requires=systemd-networkd.service → BindsTo= one more time
Lennart Poettering [Tue, 29 Nov 2022 10:18:51 +0000 (11:18 +0100)] 
units: change Requires=systemd-networkd.service → BindsTo= one more time

Follow-up for da15f8406e9aeb7908e1d92c02d2ff5147c7788a which did the
change for systemd-networkd-wait-online.service, let's also do this for
systemd-networkd-wait-online@.service

2 years agoMerge pull request #25558 from poettering/fdisk-id128
Lennart Poettering [Tue, 29 Nov 2022 15:06:10 +0000 (16:06 +0100)] 
Merge pull request #25558 from poettering/fdisk-id128

add generic uuid/id128 helpers for libfdisk too

2 years agoblkid: add helpers that get gpt partition uuid as sd_id128_t
Lennart Poettering [Tue, 25 Oct 2022 15:32:01 +0000 (17:32 +0200)] 
blkid: add helpers that get gpt partition uuid as sd_id128_t

just some refactoring to make things simpler.

2 years agobtrfs-util: convert O_PATH if necessary, in btrfs quota call 25561/head
Lennart Poettering [Tue, 29 Nov 2022 14:31:50 +0000 (15:31 +0100)] 
btrfs-util: convert O_PATH if necessary, in btrfs quota call

Fixes: #25468
2 years agoblockdev-util: move O_PATH fd conversion into btrfs_get_block_device_fd() to shorten...
Lennart Poettering [Tue, 29 Nov 2022 14:31:31 +0000 (15:31 +0100)] 
blockdev-util: move O_PATH fd conversion into btrfs_get_block_device_fd() to shorten things

And let's use a simple call to the new fd_reopen_condition() helper
there.

2 years agobtrfs-util: convert to fd_reopen_condition()
Lennart Poettering [Tue, 29 Nov 2022 14:30:55 +0000 (15:30 +0100)] 
btrfs-util: convert to fd_reopen_condition()

2 years agofd-util: add new helper fd_reopen_conditional()
Lennart Poettering [Tue, 29 Nov 2022 14:29:25 +0000 (15:29 +0100)] 
fd-util: add new helper fd_reopen_conditional()

This is a wrapper around fd_reopen() that will reopen an fd if the
F_GETFL flags indicate this is necessary, and otherwise not.

This is useful for various utility calls that shall be able to operate
on O_PATH and without it, and might need to convert between the two
depending on what's passed in.

2 years agoMerge pull request #25385 from drvink/main
Lennart Poettering [Tue, 29 Nov 2022 13:40:18 +0000 (14:40 +0100)] 
Merge pull request #25385 from drvink/main

systemd: Support OOMPolicy in scope units

2 years agofdisk-util: add fdisk_partition_get_type_as_id128() helper 25558/head
Lennart Poettering [Tue, 29 Nov 2022 11:06:35 +0000 (12:06 +0100)] 
fdisk-util: add fdisk_partition_get_type_as_id128() helper

Let's also add an easy accessor for the other per-partition UUID.

2 years agofdisk-util: add fdisk_partition_get_uuid_as_id128() helper
Lennart Poettering [Tue, 29 Nov 2022 10:54:22 +0000 (11:54 +0100)] 
fdisk-util: add fdisk_partition_get_uuid_as_id128() helper

Inspired by: #25534

2 years agokernel-install: Add uki layout
Joerg Behrmann [Wed, 23 Nov 2022 15:43:19 +0000 (16:43 +0100)] 
kernel-install: Add uki layout

Currently the kernel-install man page only documents the bls layout for use
with the boot loader spec type #1. 90-loaderentry.install uses this layout to
generate loader entries and copy the kernel image and initrd to $BOOT.

This commit documents a second layout "uki" and adds 90-uki-copy.install,
which copies a UKI "uki.efi" from the staging area or any file with the .efi
extension given on the command line to
$BOOT/EFI/Linux/$ENTRY_TOKEN-$KERNEl_VERSION(+$TRIES).efi

This allows for both locally generated and distro-provided UKIs to be handled
by kernel-install.

2 years agoupdate TODO
Lennart Poettering [Tue, 29 Nov 2022 09:47:39 +0000 (10:47 +0100)] 
update TODO

2 years agoMerge pull request #25132 from yuwata/core-device-inactivate-removed-device-on-switch...
Daan De Meyer [Tue, 29 Nov 2022 09:27:34 +0000 (10:27 +0100)] 
Merge pull request #25132 from yuwata/core-device-inactivate-removed-device-on-switching-root

core/device: inactivate removed device on switching root

2 years agoMerge pull request #25508 from enr0n/test-various-fixes
Yu Watanabe [Tue, 29 Nov 2022 04:46:39 +0000 (13:46 +0900)] 
Merge pull request #25508 from enr0n/test-various-fixes

Fix test failures found in Ubuntu autopkgtest

2 years agoMerge pull request #25536 from yuwata/sd-netlink-several-fixes
Yu Watanabe [Tue, 29 Nov 2022 01:35:07 +0000 (10:35 +0900)] 
Merge pull request #25536 from yuwata/sd-netlink-several-fixes

sd-netlink: several fixes

2 years agoMerge pull request #25552 from yuwata/network-ndisc-trivial-fixes
Yu Watanabe [Tue, 29 Nov 2022 01:33:33 +0000 (10:33 +0900)] 
Merge pull request #25552 from yuwata/network-ndisc-trivial-fixes

network: NDisc: trivial fixes

2 years agoMerge pull request #25532 from Werkov/fix-cgtop-args
Luca Boccassi [Mon, 28 Nov 2022 21:20:47 +0000 (22:20 +0100)] 
Merge pull request #25532 from Werkov/fix-cgtop-args

cgtop: Do not rewrite -P or -k options

2 years agohwdb: Add support for Elgato Stream Pedal (#25550)
Tonći Galić [Mon, 28 Nov 2022 20:15:25 +0000 (21:15 +0100)] 
hwdb: Add support for Elgato Stream Pedal (#25550)

This adds the [Elgato Stream Pedal](https://www.elgato.com/en/stream-deck-pedal)
as part of the supported family

2 years agonetwork: drop invalid and unused flag 25552/head
Yu Watanabe [Mon, 28 Nov 2022 19:30:38 +0000 (04:30 +0900)] 
network: drop invalid and unused flag

Route.flags can only take RTNH_F_ONLINK, and other flags are silently
dropped.

2 years agonetwork: fix indentation
Yu Watanabe [Mon, 28 Nov 2022 19:30:12 +0000 (04:30 +0900)] 
network: fix indentation

2 years agotest: handle Debian's /etc/default/locale in testsuite-74.firstboot.sh 25508/head
Nick Rosbrook [Tue, 22 Nov 2022 17:50:33 +0000 (12:50 -0500)] 
test: handle Debian's /etc/default/locale in testsuite-74.firstboot.sh

This handles a Debian-specific quirk where /etc/default/locale is used
instead of /etc/locale.conf. There is currently special handling for
this in testsuite-73.sh, so the quirk should be handled here too for
consistency.

2 years agotest: make sure mount point exists in testsuite-64.sh
Nick Rosbrook [Tue, 22 Nov 2022 17:43:51 +0000 (12:43 -0500)] 
test: make sure mount point exists in testsuite-64.sh

2 years agoMerge pull request #25496 from DaanDeMeyer/repart-optimize
Luca Boccassi [Mon, 28 Nov 2022 14:51:32 +0000 (15:51 +0100)] 
Merge pull request #25496 from DaanDeMeyer/repart-optimize

repart: Prefer using loop devices to populate filesystems when available

2 years agoMerge pull request #25222 from medhefgo/stub-cmdline
Luca Boccassi [Mon, 28 Nov 2022 14:49:17 +0000 (15:49 +0100)] 
Merge pull request #25222 from medhefgo/stub-cmdline

stub: Fix cmdline handling

2 years agotest: Add tests for systemd-cgtop args parsing 25532/head
Michal Koutný [Fri, 25 Nov 2022 17:14:22 +0000 (18:14 +0100)] 
test: Add tests for systemd-cgtop args parsing

2 years agocgtop: Do not rewrite -P or -k options
Michal Koutný [Fri, 25 Nov 2022 16:50:27 +0000 (17:50 +0100)] 
cgtop: Do not rewrite -P or -k options

--recursive=no will overwrite possible -P or -k option hence making the
recursive disabling impossible.

Check what counting types the system supports (encoded in the ordering
of our enum) of and pick whatever user requests but is also supported.

Fixes: #25248
2 years agorepart: Prefer using loop devices to populate filesystems when available 25496/head
Daan De Meyer [Wed, 23 Nov 2022 11:00:01 +0000 (12:00 +0100)] 
repart: Prefer using loop devices to populate filesystems when available

Let's make sure we use loop devices if we have access to them and
only fall back to regular files if we can't use loop devices. We
prefer loop devices because when using mkfs --root options, we have
to populate a temporary staging tree which means we're copying every
file twice instead of once when using loop devices.

2 years agorepart: Make sure all files in the image are owned by root
Daan De Meyer [Wed, 23 Nov 2022 11:07:27 +0000 (12:07 +0100)] 
repart: Make sure all files in the image are owned by root

2 years agorepart: Move comment
Daan De Meyer [Wed, 23 Nov 2022 09:26:33 +0000 (10:26 +0100)] 
repart: Move comment

2 years agostub: Detect empty LoadOptions when run from EFI shell 25222/head
Jan Janssen [Wed, 2 Nov 2022 09:25:32 +0000 (10:25 +0100)] 
stub: Detect empty LoadOptions when run from EFI shell

The EFI shell will pass the entire command line to the application it
starts, which includes the file path of the stub binary. This prevents
us from using the built-in cmdline if the command line is otherwise
empty.

Fortunately, the EFI shell registers a protocol on any images it starts
this way. The protocol even lets us access the args individually, making
it easy to strip the stub path off.

Fixes: #25201
2 years agosystemctl: deprecate passing positional argument to reboot completely
Mike Yuan [Wed, 23 Nov 2022 18:39:15 +0000 (02:39 +0800)] 
systemctl: deprecate passing positional argument to reboot completely
(follow-up of #15958)

In #15958 we deprecated passing positional argument to reboot by
generate a warning. It's been two years now and I believe it can
be dropped completely, as per requested in #15773.

2 years agosd-netlink: append instead of prepend multipart message 25536/head
Yu Watanabe [Sat, 26 Nov 2022 00:46:40 +0000 (09:46 +0900)] 
sd-netlink: append instead of prepend multipart message

Previously, e.g., networkd enumerated network interfaces with ifindex
in a decreasing order, as sd-netlink inverses the order of the received
multipart messages.
Let's keep the order of the multipart messages. Hopefully this changes
no behavior, as our code do not depend on the order of the received
multipart messages.

Before:
===
Nov 26 09:35:10 systemd[1]: Starting Network Configuration...
Nov 26 09:35:11 systemd-networkd[36185]: wlp59s0: Saved new link: ifindex=3, iftype=ETHER(1), kind=n/a
Nov 26 09:35:12 systemd-networkd[36185]: enp0s31f6: Saved new link: ifindex=2, iftype=ETHER(1), kind=n/a
Nov 26 09:35:12 systemd-networkd[36185]: lo: Saved new link: ifindex=1, iftype=LOOPBACK(772), kind=n/a

After:
===
Nov 26 09:45:18 systemd[1]: Starting Network Configuration...
Nov 26 09:45:19 systemd-networkd[38372]: lo: Saved new link: ifindex=1, iftype=LOOPBACK(772), kind=n/a
Nov 26 09:45:19 systemd-networkd[38372]: enp0s31f6: Saved new link: ifindex=2, iftype=ETHER(1), kind=n/a
Nov 26 09:45:19 systemd-networkd[38372]: wlp59s0: Saved new link: ifindex=3, iftype=ETHER(1), kind=n/a

2 years agosd-netlink: do not link non-multipart messages
Yu Watanabe [Sat, 26 Nov 2022 00:35:53 +0000 (09:35 +0900)] 
sd-netlink: do not link non-multipart messages

Previously, if a single packet contains multiple non-multipart messages,
then the messages were linked and saved as a single entry, especially
even if the messages has different serial numbers. Though, not sure if
the kernel sends such packet. But at least for safety, let's link only
multipart messages.

2 years agosd-netlink: split out parse_message_one() from socket_read_message()
Yu Watanabe [Sat, 26 Nov 2022 00:17:14 +0000 (09:17 +0900)] 
sd-netlink: split out parse_message_one() from socket_read_message()

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

2 years agosd-netlink: do not use serials currently queued
Yu Watanabe [Sat, 26 Nov 2022 01:14:00 +0000 (10:14 +0900)] 
sd-netlink: do not use serials currently queued

2 years agosd-netlink: also manage received messages by serial
Yu Watanabe [Sat, 26 Nov 2022 02:17:36 +0000 (11:17 +0900)] 
sd-netlink: also manage received messages by serial

Then, we can easily find the received message matching with requested
serial.

2 years agosd-netlink: reimplement received message queue
Yu Watanabe [Sat, 26 Nov 2022 01:10:58 +0000 (10:10 +0900)] 
sd-netlink: reimplement received message queue

By using OrderedSet and Hashmap, we can drop all memmove() calls.
No functional changes, just refactoring.

2 years agosd-netlink: introduce netlink_queue_received_message() and friend
Yu Watanabe [Sat, 26 Nov 2022 01:06:05 +0000 (10:06 +0900)] 
sd-netlink: introduce netlink_queue_received_message() and friend

No functional change, just refactoring.

2 years agosd-netlink: fix segfault
Yu Watanabe [Sat, 26 Nov 2022 00:57:16 +0000 (09:57 +0900)] 
sd-netlink: fix segfault

2 years agosd-netlink: fix possible use-after-free
Yu Watanabe [Thu, 24 Nov 2022 18:36:39 +0000 (03:36 +0900)] 
sd-netlink: fix possible use-after-free

When we receive a multi-part message and fail to parse it, then
the prviously received message is freed with the _cleanup_ attribute,
but still referenced by sd_netlink.rqueue_partial. That causes
use-after-free when we receive another multi-part message.

2 years agosd-netlink: return earlier when received invalid message
Yu Watanabe [Thu, 24 Nov 2022 18:33:52 +0000 (03:33 +0900)] 
sd-netlink: return earlier when received invalid message

2 years agosd-netlink: allocate read buffer when necessary
Yu Watanabe [Thu, 24 Nov 2022 17:56:42 +0000 (02:56 +0900)] 
sd-netlink: allocate read buffer when necessary

2 years agosd-netlink: check received size in socket_recv_message()
Yu Watanabe [Thu, 24 Nov 2022 17:55:32 +0000 (02:55 +0900)] 
sd-netlink: check received size in socket_recv_message()

No functional change, just refactoring and slightly shorten
socket_read_message().

2 years agosd-netlink: drop redundant 'else'
Yu Watanabe [Thu, 24 Nov 2022 17:41:57 +0000 (02:41 +0900)] 
sd-netlink: drop redundant 'else'

2 years agosd-netlink: always initialize return variable on success
Yu Watanabe [Thu, 24 Nov 2022 17:34:57 +0000 (02:34 +0900)] 
sd-netlink: always initialize return variable on success

2 years agofdisk: introduce common fdisk_new_context_fd() helper
Lennart Poettering [Wed, 23 Nov 2022 15:23:35 +0000 (16:23 +0100)] 
fdisk: introduce common fdisk_new_context_fd() helper

We do the same thing over and over again and it's a bit ugly, hence
let's unify the code for it at one common place.

2 years agoMerge pull request #25533 from keszybz/meson-fixups
Yu Watanabe [Sat, 26 Nov 2022 02:27:34 +0000 (11:27 +0900)] 
Merge pull request #25533 from keszybz/meson-fixups

Meson fixups

2 years agodissect: don't pre-open swap devices, we are not going to use them
Lennart Poettering [Tue, 25 Oct 2022 15:39:00 +0000 (17:39 +0200)] 
dissect: don't pre-open swap devices, we are not going to use them

2 years agorepart: Remove bogus check
Daan De Meyer [Fri, 25 Nov 2022 14:09:53 +0000 (15:09 +0100)] 
repart: Remove bogus check

The --empty option applies to the partition table of the block
device, not the number of definition files we've read. Also, even
if we don't find any definition files, let's not shortcut execution
so we can run repart on a device/loopback file to get information
on the partition table.

2 years agologind: Properly unescape names of lingering users
Michal Koutný [Fri, 25 Nov 2022 16:25:36 +0000 (17:25 +0100)] 
logind: Properly unescape names of lingering users

Filenames to store user linger requests are created with C-escaping.
When we enumerate the files to acquire ligering users, we use the
filenames verbatim. In the case C-escaping is not an identity map (such
as "DOMAIN\User"), we won't be able to start user instances of
such mangled users.

Unescape filenames when we treat them as usernames again.

Fixes: #25448
2 years agoMerge pull request #25530 from poettering/resolved-stub-name
Yu Watanabe [Fri, 25 Nov 2022 23:26:28 +0000 (08:26 +0900)] 
Merge pull request #25530 from poettering/resolved-stub-name

resolved: make _localdnsstub and _localdnsproxy resolve to 127.0.0.{53,54}

2 years agoFix typo
jcg [Sun, 20 Nov 2022 06:59:36 +0000 (14:59 +0800)] 
Fix typo

2 years agounits: Use BindsTo=systemd-networkd in systemd-networkd-wait-online.service
Daan De Meyer [Fri, 25 Nov 2022 13:32:20 +0000 (14:32 +0100)] 
units: Use BindsTo=systemd-networkd in systemd-networkd-wait-online.service

We don't want systemd-networkd-wait-online to start if systemd-networkd
is skipped due to condition failures. This is only guaranteed by BindsTo=
and not Requires=, so let's use BindsTo=

2 years agoMerge pull request #25498 from medhefgo/stub-splash
Luca Boccassi [Fri, 25 Nov 2022 18:38:47 +0000 (19:38 +0100)] 
Merge pull request #25498 from medhefgo/stub-splash

stub: Fix splash alpha blending

2 years agopo: Translated using Weblate (Indonesian)
Andika Triwidada [Fri, 25 Nov 2022 08:19:58 +0000 (09:19 +0100)] 
po: Translated using Weblate (Indonesian)

Currently translated at 100.0% (193 of 193 strings)

Co-authored-by: Andika Triwidada <andika@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/id/
Translation: systemd/main

2 years agomeson: regenerate meson rules 25533/head
Zbigniew Jędrzejewski-Szmek [Fri, 25 Nov 2022 15:26:29 +0000 (16:26 +0100)] 
meson: regenerate meson rules

Forgotten in 85bc6b05491fb4c9f40f8a0e8615ac5321efbea0.

2 years agomeson: resort imports
Zbigniew Jędrzejewski-Szmek [Wed, 16 Nov 2022 14:52:15 +0000 (15:52 +0100)] 
meson: resort imports

2 years agoresolved: introduce common macro for 127.0.0.2 IP address 25530/head
Lennart Poettering [Fri, 25 Nov 2022 13:50:59 +0000 (14:50 +0100)] 
resolved: introduce common macro for 127.0.0.2 IP address

2 years agoresolved: introduce the _localdnsstub and _localdnsproxy special hostnames for 127...
Lennart Poettering [Fri, 25 Nov 2022 11:15:56 +0000 (12:15 +0100)] 
resolved: introduce the _localdnsstub and _localdnsproxy special hostnames for 127.0.0.54 + 127.0.0.53

Let's give these special IP addresses names. After all name resolution
is our job here.

Fixes: #23623
2 years agoresolved: don't filter _gateway/_outbound twice
Lennart Poettering [Fri, 25 Nov 2022 11:13:20 +0000 (12:13 +0100)] 
resolved: don't filter _gateway/_outbound twice

We already denied being responsible for these names further up, no need
to test for them again.

2 years agoresolved: in dns stub always report "lo" as interface for "localhost"
Lennart Poettering [Fri, 25 Nov 2022 11:09:33 +0000 (12:09 +0100)] 
resolved: in dns stub always report "lo" as interface for "localhost"

Previously, we'd return the ifindex the user asked on, and if none was
specified "lo". Let's always return "lo".

This should be a better choice usually, since localhost addresses are
typically not reachable over arbitrary interfaces once SO_BINDTODEVICE
or so is used. Hence, let's report the interface that is always right
for these addresses.

2 years agoupdate TODO
Lennart Poettering [Fri, 25 Nov 2022 16:33:56 +0000 (17:33 +0100)] 
update TODO

2 years agomkfs-util: Drop batch (b) and n flags from mcopy
Daan De Meyer [Fri, 25 Nov 2022 11:54:33 +0000 (12:54 +0100)] 
mkfs-util: Drop batch (b) and n flags from mcopy

The batch flag is bugged on older versions of mcopy causing failures
such as:

```
Internal error, size too big
Streamcache allocation problem:: 5
```

It's also a little unclear what the batch flag actually does, so since
everything still works without it, it doesn't hurt to remove it.

The n flag only applies when copying from fat to unix which we don't do
so it doesn't make sense in this scenario.

2 years agoMerge pull request #25482 from DaanDeMeyer/repart-skip-partitions
Daan De Meyer [Fri, 25 Nov 2022 12:31:09 +0000 (13:31 +0100)] 
Merge pull request #25482 from DaanDeMeyer/repart-skip-partitions

repart: Add --skip-partitions=

2 years agorepart: Add --skip-partitions= 25482/head
Daan De Meyer [Tue, 22 Nov 2022 13:27:30 +0000 (14:27 +0100)] 
repart: Add --skip-partitions=

--include-partitions and --exclude-partitions now fully exclude
partitions from repart. Whenever a partition type is excluded, we
don't take any partitions of that type into account at all when
running systemd-repart.

--skip-partitions= is introduced to do what --exclude-partitions did
previously. Any skipped partitions are taken into acount when doing
size calculations, but are not yet populated.

Why do we need both concepts? Exclusion is needed so that we can
use shared repart definitions to generate bootable and non-bootable
images. When generating a non-bootable image, we use --exclude-partitions
to exclude the ESP partition. Skipping is needed so that we can
populate the root partition while skipping the ESP partition, get
the roothash of the root partition, use that to generate a UKI, and
finally populate the ESP partition with the UKI included.

2 years agoresolved: remove inappropriate assert()
Lennart Poettering [Thu, 24 Nov 2022 17:42:08 +0000 (18:42 +0100)] 
resolved: remove inappropriate assert()

A NULL Bitmap object is by all our code considered identical to an empty
bitmap. Hence let's remove the entirely unnecessary assert().

The assert() can be triggered if debug monitoring is used an an empty
NSEC or NSEC3 RR is included in an answer resolved returns.

it's not really a security issue since enabling debug monitoring is a
manual step requiring root privileges, that is off by default. Moreover,
it's a "clean" assert(), i.e. the worst that happens is tha a coredump
is generated and resolved restarted.

Fixes: #25449
2 years agoMerge pull request #25473 from yuwata/mount-tool-cleanups
Luca Boccassi [Thu, 24 Nov 2022 19:40:37 +0000 (20:40 +0100)] 
Merge pull request #25473 from yuwata/mount-tool-cleanups

mount-tool: several cleanups

2 years agounits: fix typo in Condition in systemd-boot-system-token
Luca Boccassi [Thu, 24 Nov 2022 10:01:59 +0000 (10:01 +0000)] 
units: fix typo in Condition in systemd-boot-system-token

/lib/systemd/system/systemd-boot-system-token.service:20: Unknown key name 'ConditionPathExists|' in section 'Unit', ignoring

Follow-up for 0a1d8ac77a21ae0741bdf4af08f3a71354805ff1

2 years agoMerge pull request #25500 from DaanDeMeyer/mcopy-skip-symlinks
Daan De Meyer [Thu, 24 Nov 2022 15:28:01 +0000 (16:28 +0100)] 
Merge pull request #25500 from DaanDeMeyer/mcopy-skip-symlinks

mkfs-util: Skip symlinks when calling mcopy

2 years agostub: Small code style changes 25498/head
Jan Janssen [Thu, 24 Nov 2022 13:03:01 +0000 (14:03 +0100)] 
stub: Small code style changes

No actual changes in behavior.

2 years agomkfs-util: Skip non files/directories when calling mcopy 25500/head
Daan De Meyer [Wed, 23 Nov 2022 13:12:38 +0000 (14:12 +0100)] 
mkfs-util: Skip non files/directories when calling mcopy

Only files and directories are supported by vfat. When we pass a
symlink to mcopy, it will try to dereference them and copy what the
symlink points at into the vfat partition instead. Let's avoid this
by skipping all unsupported file types when establishing the list of
top level targets that mcopy should copy.

We also use RECURSE_DIR_SORT everywhere when iterating directories
to make things more reproducible.

2 years agorecurse-dir: Handle RECURSE_DIR_ENSURE_TYPE in readdir_all()
Daan De Meyer [Thu, 24 Nov 2022 12:13:21 +0000 (13:13 +0100)] 
recurse-dir: Handle RECURSE_DIR_ENSURE_TYPE in readdir_all()

2 years agostub: Fix splash alpha blending
Jan Janssen [Wed, 23 Nov 2022 12:57:34 +0000 (13:57 +0100)] 
stub: Fix splash alpha blending

How to interpret the pixel format depends on the masks in the DIB header
(if present). Also, 16bpp (unlike 24bpp) can carry an alpha channel.
This was previously not accounted for.

2 years agodirent-util: Expose dirent_ensure_type()
Daan De Meyer [Thu, 24 Nov 2022 12:13:05 +0000 (13:13 +0100)] 
dirent-util: Expose dirent_ensure_type()

2 years agomkfs-util: Check if mcopy is installed
Daan De Meyer [Wed, 23 Nov 2022 09:05:23 +0000 (10:05 +0100)] 
mkfs-util: Check if mcopy is installed

2 years agosystemd: Default to OOMPolicy=continue for login session scopes 25385/head
Mark Laws [Thu, 24 Nov 2022 05:56:29 +0000 (14:56 +0900)] 
systemd: Default to OOMPolicy=continue for login session scopes

If the kernel OOM kills a process under a login session scope, we don't want to
kill the user's other processes for no good reason.

2 years agosystemd: Support OOMPolicy in scope units
Mark Laws [Mon, 14 Nov 2022 12:48:09 +0000 (21:48 +0900)] 
systemd: Support OOMPolicy in scope units

Closes #25376.

2 years agoMerge pull request #25509 from enr0n/oomd-unpriv-container-fix
Luca Boccassi [Thu, 24 Nov 2022 10:21:16 +0000 (11:21 +0100)] 
Merge pull request #25509 from enr0n/oomd-unpriv-container-fix

Fix `oomd_fetch_cgroup_oom_preference()` for unprivileged LXD containers

2 years agoshared: use move_pivot_root() for services
Christian Brauner [Wed, 23 Nov 2022 15:15:20 +0000 (16:15 +0100)] 
shared: use move_pivot_root() for services

Currently, services use mount_move_root() in order to setup the root
directory of services using a mount namespace. This relies on MS_MOVE
and chroot(). However, this has serious drawbacks even for relatively
simple mount propagation scenarios.

What systemd currently does is roughly equivalent to the following shell
code:

  unshare --mount --propagation=shared
  cd /
  mount --make-rslave /
  mkdir /new-root
  mount --rbind / /new-root
  cd /new-root
  mount --move /new-root /
  chroot .

This looks simple enough but has the consequence that two separate mount
trees exist for the lifetime of the service. The first one was created
when the mount namespace was created, and the second one when a new
mount for the rootfs was created. The first mount tree sticks around as
a shadow mount tree. Both mount trees are dependent mounts with the host
rootfs as their dominating mount.

Now, when mount propagation is triggered by the host by e.g.,

   mount --bind /opt /mnt

it means that two propagation events are generated. I'm skipping over
the exact kernel details as they aren't that important. The gist is that
for every propagation event that is generated a second one is generated
for the shadow mount tree. In other words, the kernel creates two copies
for each mount that is propagated instead of one.

This isn't necessary. We can simply change the sequence above to:

  unshare --mount --propagation=shared
  cd /
  mount --make-rslave /
  mkdir /new-root
  # stash fd to old rootfs
  # stash fd to new rootfs
  mount --rbind / /new-root
  mkdir /new-root
  cd /new-root
  pivot_root . .
  # new root is tucked under old root
  # chdir into old rootfs via stashed fd
  umount -l /old-root

The pivot_root allows us to get rid of the old mount tree that was
created when the mount namespace was created. So after this sequence
only one mount tree is alive. Plus, it's safer and nicer. Moving mounts
isn't pleasnt.

This patch doesn't convert nspawn yet as the requirements are more
tricky given that it wants to preserve the rootfs as a shared mount
which goes against pivot_root() requirements.

Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
2 years agomount: use device enumerator to find matching loopback block device 25473/head
Yu Watanabe [Tue, 22 Nov 2022 02:22:20 +0000 (11:22 +0900)] 
mount: use device enumerator to find matching loopback block device

No functional change, just refactoring.

2 years agomount: split umount_by_device() into two
Yu Watanabe [Tue, 22 Nov 2022 02:04:33 +0000 (11:04 +0900)] 
mount: split umount_by_device() into two

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

2 years agomount: make acquire_mount_where_for_loop_dev() take sd-device object
Yu Watanabe [Tue, 22 Nov 2022 02:43:57 +0000 (11:43 +0900)] 
mount: make acquire_mount_where_for_loop_dev() take sd-device object

No functional change, just refactoring.

2 years agoMerge pull request #25483 from poettering/ppoll-usec-eintr
Yu Watanabe [Thu, 24 Nov 2022 00:42:48 +0000 (09:42 +0900)] 
Merge pull request #25483 from poettering/ppoll-usec-eintr

ppoll() + EINTR fixes

2 years agocore: add possibility to not track certain unit types
Michal Sekletar [Wed, 7 Sep 2022 15:37:34 +0000 (17:37 +0200)] 
core: add possibility to not track certain unit types

2 years agoportable: add a few more useful debug log messages
Luca Boccassi [Wed, 23 Nov 2022 16:06:48 +0000 (16:06 +0000)] 
portable: add a few more useful debug log messages

When attaching and /etc/systemd/system.attached can't be created or used
(eg: dead symlink) the logs are pretty much useless as even at debug
level there's no indication of what is going wrong.
Add some debug logs, and return a more specific error string over D-Bus.

2 years agooomd: fix unreachable test case in test-oomd-util 25509/head
Nick Rosbrook [Tue, 22 Nov 2022 16:30:03 +0000 (11:30 -0500)] 
oomd: fix unreachable test case in test-oomd-util

This conditional with !empty_or_root(ctx->path) always returns false
because the most recent oomd_cgroup_context_acquire() call was with the
root cgroup. Make sure this test case can be reached by checking cgroup
instead of ctx->path.

While here, use an unused uid (61183) instead of the nobody uid so the
test case does not fail in unprivileged LXD containers.