Commit Graph
67462 Commits
Author SHA1 Message Date
Jan Janssen df48b430a4 shutdown: Lazy unmount /oldroot/{dev,proc,sys}
These should not prevent us from cleaning up the remainders of /oldroot
if something in the kernel is blocking these from being unmounted.
2022-06-09 17:02:50 +02:00
Jan Janssen 20596876e3 shutdown: Log processes that block umount 2022-06-09 17:00:46 +02:00
Jan Janssen 5125b67742 shutdown: Rename umount_log_level and make it a bool
This was already effectively a bool because only ever two states were
valid. To make the meaning of it more clear, also rename it to last_try.
2022-06-09 16:50:54 +02:00
Luca Boccassi 136f1754f9 Merge pull request #23680 from keszybz/boot-loader-counting
Move boot counting into BLS proper
2022-06-09 13:16:14 +01:00
Zbigniew Jędrzejewski-Szmek c4da8e90fa systemctl: simplify code a bit
gcc insists that bus may be used unitialized here, but I don't see any
possibility of that.
2022-06-09 13:25:17 +02:00
Zbigniew Jędrzejewski-Szmek c90821aa49 shared/bus-util: rename variables to follow newer style 2022-06-09 13:25:17 +02:00
Zbigniew Jędrzejewski-Szmek 73e910926e shared/bus-util: simplification 2022-06-09 13:25:17 +02:00
Zbigniew Jędrzejewski-Szmek 482dac9431 test-udev-util: do not pass NULL to printf, style fixes 2022-06-09 13:25:17 +02:00
Zbigniew Jędrzejewski-Szmek fa1aa468b9 test-process-util: do not pass NULL to printf, simplify tests
We don't need to fork to test that the function returns -EINVAL
on null input. So let's simplify things a bit.
2022-06-09 13:25:17 +02:00
Zbigniew Jędrzejewski-Szmek e9edf285db test-dns-domain: a few more "NULL in printf %s"s 2022-06-09 13:25:17 +02:00
Zbigniew Jędrzejewski-Szmek d10cee5e90 test-fstab-util: one more "NULL in printf %s" 2022-06-09 13:25:17 +02:00
Zbigniew Jędrzejewski-Szmek 8b98cfb7dd various: indentation 2022-06-09 13:25:17 +02:00
Zbigniew Jędrzejewski-Szmek 82a0ffe585 docs/AUTOMATIC_BOOT_ASSESSMENT: describe how to integrate a DE viability check
I reordered the component list to match chronological order: we first install
an entry, then boot it, then the checks happen, etc. Before it was
ordered by "importance", but that is harder to follow.
2022-06-09 13:22:48 +02:00
Zbigniew Jędrzejewski-Szmek db82e667c7 docs/BLS: move "boot counting" into the main spec
The boot-counting file-renaming entry-sorting part that the boot
loader implements is moved to the main document. The second document
describes a specific implementation that is provided through systemd
units.

The sorting algorithm is extended to say that bad entries should
be sorted later.

I also added a note that bad entries should be available for booting.

For some reason, the second document said that it applies only to EFI systems.
AFAIK there are no implementations for non-EFI, but the specification should
work just fine, if somebody were to implement it. So that part is dropped.

Fixes #23345.

Sadly, bootctl doesn't implement sorting of boot entries with counting :((((
But I'm leaving that for another PR.
2022-06-09 13:22:48 +02:00
Zbigniew Jędrzejewski-Szmek a78af10ae7 Merge pull request #23654 from keszybz/gcc-warnings
Fixes for NULL-pointer arguments based on gcc warnings
2022-06-09 12:55:47 +02:00
Zbigniew Jędrzejewski-Szmek de566170c2 Merge pull request #23678 from aafeijoo-suse/shell-completion-cryptenroll
bash-completion: add systemd-cryptenroll support
2022-06-09 12:54:06 +02:00
Jan Janssen 55233913c8 boot: Drop use of DuplicateDevicePath 2022-06-09 12:50:13 +02:00
Jan Janssen e17fd5538f boot: Don't copy device path
BS->LocateDevicePath only advances the passed device path pointer.
It does not actually modify it, so there is no need to make a copy.
2022-06-09 12:50:13 +02:00
Jan Janssen b05d69ed72 boot: Drop use of LibLocateHandle 2022-06-09 12:50:13 +02:00
Jan Janssen b04f818417 boot: Drop use of UnpackDevicePath
Device paths are a packed data structure and the UEFI spec is clear that
members may be misaligned.

In this case all accesses are aligned except for the signature. We can
simply memcpy it instead of making a whole (aligned) copy of the device
path.
2022-06-09 12:50:13 +02:00
Jan Janssen 79a2b916a0 boot: Drop use of FileDevicePath 2022-06-09 12:50:13 +02:00
Jan Janssen 0af26643d0 boot: Use xmalloc
This drops the unused xnew0 and xallocate_zero_pool as there is only two
users of it. _cleanup_freepool_ will be phased out once the types in the
declarations are changed/renamed.
2022-06-09 12:50:13 +02:00
Jan Janssen 9148312fab boot: Add xmalloc 2022-06-09 12:50:13 +02:00
Jan Janssen 5594ebee99 boot: Drop use of DevicePathFromHandle 2022-06-09 12:50:13 +02:00
Jan Janssen 6a261332bc boot: Drop use of LibLocateProtocol 2022-06-09 12:50:13 +02:00
Jan Janssen f747ca3ec3 boot: Drop use of LibOpenRoot 2022-06-09 12:50:13 +02:00
Jan Janssen 7ebce8145e boot: Drop use of LibGetSystemConfigurationTable 2022-06-09 12:50:13 +02:00
Jan Janssen 23742af522 boot: Drop use of MetaiMatch
A future commit will add support for unicode collation protocol that
allows case folding and comparing strings with locale awareness. But it
only operates on whole strings, so fnmatch cannot use those without a
heavy cost. Instead we just case fold the patterns instead (the IDs we
try to match are already lower case).
2022-06-09 12:50:13 +02:00
Jan Janssen 0e8ecba96e boot: Add efi_fnmatch
Unlike MetaiMatch from the UEFI spec/EDK2 this implementation is
intended to be compatible with POSIX fnmatch.
2022-06-09 12:50:08 +02:00
Antonio Alvarez Feijoo 9a2d94dd27 bash-completion: add systemd-cryptenroll support 2022-06-09 11:47:10 +02:00
Antonio Alvarez Feijoo 36f186a9e0 bash-completion: fix typos in comments 2022-06-09 11:46:50 +02:00
Zbigniew Jędrzejewski-Szmek 2299b1cae3 Resolve conflicts between #23616 and the recent NFT additions 2022-06-09 10:06:30 +02:00
Yu Watanabe 377157e6bd Merge pull request #23616 from keszybz/in-addr-to-string-formatting
Add macros that allocate a fixed buffer for in_addr_to_string(), in_addr_prefix+to_string()
2022-06-09 15:21:57 +09:00
Zbigniew Jędrzejewski-Szmek e0d537950b test-load-fragment: don't print NULLs 2022-06-09 07:53:06 +02:00
Zbigniew Jędrzejewski-Szmek 817d19402f test-bus-address: silence gcc warning about NULL arg to strcmp()
The code was overly complicated… We know what value we expect, we can test it
directly.
2022-06-09 07:53:06 +02:00
Zbigniew Jędrzejewski-Szmek 1b3502b072 test-mountpoint-util: fix NULL arg to %s 2022-06-09 07:53:06 +02:00
Zbigniew Jędrzejewski-Szmek abcdc02cd0 sd-journal: inline variable declarations 2022-06-09 07:53:06 +02:00
Zbigniew Jędrzejewski-Szmek 70f50a4731 sd-journal: use _cleanup_ 2022-06-09 07:53:06 +02:00
Jeremy Soller 295e0291bf hwdb: Add HP Dev One
This enables the microphone mute and programmable hotkey for the HP Dev
One.
2022-06-09 13:48:19 +09:00
Daan De Meyer a22f518676 meson: Add nspawn-locale meson option
https://github.com/systemd/systemd/pull/23192 caused breakage in
Arch Linux's build tooling. Let's give users an opt-out aside from
reverting the patch. It's hardly any maintenance work on our side
and gives users an easy way to revert the locale change if needed.

Of course, by default we still pick C.UTF-8 if the option is not
specified.
2022-06-09 13:08:27 +09:00
Yu Watanabe adf59bffe5 Merge pull request #23675 from enr0n/udev-available-cleanup
Use udev_available() where appropriate
2022-06-09 12:12:01 +09:00
Nick Rosbrook c76b8751b3 nspawn: use udev_available() 2022-06-08 18:32:37 -04:00
Nick Rosbrook bfe2e67f25 libsystemd-network: use udev_available() 2022-06-08 18:32:37 -04:00
Evgeny Vereshchagin 4f62dc3e92 cifuzz: build fuzzers on i386 as well
It's a follow-up to https://github.com/systemd/systemd/pull/23550.
2022-06-08 21:32:38 +00:00
H A 3c3d28088f po: Added translation using Weblate (Estonian)
Co-authored-by: H A <contact+fedora@hen.ee>
2022-06-08 21:30:53 +00:00
Topi Miettinen 46c3b1ff88 core: firewall integration with DynamicUserNFTSet=
New directive `DynamicUserNFTSet=` provides a method for integrating
configuration of dynamic users into firewall rules with NFT sets.

Example:
```
table inet filter {
        set u {
                typeof meta skuid
        }

        chain service_output {
                meta skuid != @u drop
                accept
        }
}
```

```
/etc/systemd/system/dunft.service
[Service]
DynamicUser=yes
DynamicUserNFTSet=inet:filter:u
ExecStart=/bin/sleep 1000

[Install]
WantedBy=multi-user.target
```

```
$ sudo nft list set inet filter u
table inet filter {
        set u {
                typeof meta skuid
                elements = { 64864 }
        }
}
$ ps -n --format user,group,pid,command -p `pgrep sleep`
    USER    GROUP     PID COMMAND
   64864    64864   55158 /bin/sleep 1000
```
2022-06-08 16:12:25 +00:00
Topi Miettinen c0548df0a2 core: firewall integration with ControlGroupNFTSet=
New directive `ControlGroupNFTSet=` provides a method for integrating services
into firewall rules with NFT sets.

Example:

```
table inet filter {
...
        set timesyncd {
                type cgroupsv2
        }

        chain ntp_output {
                socket cgroupv2 != @timesyncd counter drop
                accept
        }
...
}
```

/etc/systemd/system/systemd-timesyncd.service.d/override.conf
```
[Service]
ControlGroupNFTSet=inet:filter:timesyncd
```

```
$ sudo nft list set inet filter timesyncd
table inet filter {
        set timesyncd {
                type cgroupsv2
                elements = { "system.slice/systemd-timesyncd.service" }
        }
}
```
2022-06-08 16:12:25 +00:00
Topi Miettinen ab51fd9dbd network: firewall integration with NFT sets
New directives `NFTSet=`, `IPv4NFTSet=` and `IPv6NFTSet=` provide a method for
integrating configuration of dynamic networks into firewall rules with NFT
sets.

/etc/systemd/network/eth.network
```
[DHCPv4]
...
NFTSet=netdev:filter:eth_ipv4_address
```

```
table netdev filter {
        set eth_ipv4_address {
                type ipv4_addr
                flags interval
        }
        chain eth_ingress {
                type filter hook ingress device "eth0" priority filter; policy drop;
                ip saddr != @eth_ipv4_address drop
                accept
        }
}
```
```
sudo nft list set netdev filter eth_ipv4_address
table netdev filter {
        set eth_ipv4_address {
                type ipv4_addr
                flags interval
                elements = { 10.0.0.0/24 }
        }
}
```
2022-06-08 16:12:25 +00:00
Luca Boccassi e8f1b50f27 Merge pull request #23641 from keszybz/janitorials
Janitorial cleanups
2022-06-08 17:08:13 +01:00
Daan De Meyer 647475c7df basic: Propagate SIGBUS signal info when re-raising signals
raise() won't propagate the siginfo information of the signal that's
re-raised. rt_sigqueueinfo() allows us to provide the original siginfo
struct which makes sure it is propagated to the next signal handler
(or to the coredump).
2022-06-07 19:10:34 +01:00