Commit Graph
75293 Commits
Author SHA1 Message Date
Daan De Meyer 5319be5f0c mkosi: Stop setting apparmor=0
It doesn't get pulled in as a dependency anyway and kernel command
line space is precious so let's remove apparmor=0 as it's a noop
anyway.
2024-07-17 18:55:24 +02:00
Mike Yuan b1ed7e6749 sleep,home: always initialize UnitFreezer if used
Previously, unit_freezer_new_freeze() would only return
UnitFreezer object if FreezeUnit() succeeds. This is not
ideal though, as a failed bus call doesn't mean the action
actually failed. E.g. a timeout might occur because pid1
is waiting for cgroup event from kernel, while the bus call
timeout was exceeded (#33269). In such a case, ThawUnit()
will never be called, resulting in frozen units remain that
way after resuming from sleep.

Therefore, let's get rid of unit_freezer_new_freeze(),
and make sure as long as unit freezer is involved, we'll
call ThawUnit() when we're done. This should make things
a lot more robust.
2024-07-17 18:14:33 +02:00
Mike Yuan 1b5caddfee sleep: also log about errno when getenv_bool fails 2024-07-17 18:14:33 +02:00
Mike Yuan a99935557a sleep: explicitly list valid sleep operations in switch
To follow our usual coding style.
2024-07-17 18:14:32 +02:00
Mike Yuan 6798fa11d2 core/dbus-unit: add an explicit bus error when unit is frozen by parent
While at it, use more accurate errno (EDEADLK) instead of ECHILD.
2024-07-17 18:14:32 +02:00
Mike Yuan e1ac52594d core/unit: introduce unit_freezer_complete, correctly report end state 2024-07-17 18:14:32 +02:00
Mike Yuan 0064290a54 core/unit: introduce unit_set_freezer_state, make logging consistent
Also, emit PropertiesChanged signal for FreezerState too.

Fixes #31115
2024-07-17 18:14:32 +02:00
Mike Yuan a9dc196179 core/cgroup: skip freezer action wholly if current == objective 2024-07-17 18:14:31 +02:00
Mike Yuan 27344f9acf core/cgroup: replace hardcoded state set with freezer_state_finish()
This makes code simpler and more readable.
2024-07-17 18:14:31 +02:00
Mike Yuan 54e1f676a2 core/unit: rename a few more vars for unit_next_freezer_state() 2024-07-17 18:14:31 +02:00
Luca Boccassi 09edabe96a id128: add 'var-partition-uuid' verb
As per DPS the UUID for /var/ should be keyed by the local machine-id,
which is non-trivial to do in a script. Enhance 'systemd-id128' to
take 'var-partition-uuid' as a verb, and if so perform the
calculation.
2024-07-17 18:05:40 +02:00
Mike Yuan aba5e4660f core/unit: use switch for unit_next_freezer_state 2024-07-17 17:25:23 +02:00
Mike Yuan f27f461b01 core/unit: rename freezer "target" to "objective" 2024-07-17 17:25:23 +02:00
Mike Yuan f375a9686f core/slice: simplify slice_freezer_action a bit 2024-07-17 17:25:23 +02:00
Mike Yuan b21bebbe70 core: make unit_can_freeze take const Unit* 2024-07-17 17:25:22 +02:00
Mike Yuan 21fed6eaec core,unit-def: use our usual way of asserting enums 2024-07-17 17:25:22 +02:00
Mike Yuan e2f81f8d40 core/unit: drop pointless unit_freezer_state wrapper 2024-07-17 17:25:22 +02:00
Mike Yuan 4e8b11ca16 core/dbus-unit: use UNIT_IS_LOAD_ERROR where appropriate 2024-07-17 17:25:20 +02:00
Daan De Meyer d9b1ec27f7 Merge pull request #33714 from poettering/make-varlink-public
varlink: make API public as "sd-varlink.h"
2024-07-17 12:58:50 +02:00
migleeson cb2d6214ca docs: update mkosi version mentioned in HACKING.md (#33723)
* fix: update docs since the default config uses a setting only available in v23

* fix: update docs to only refer to installing from the mkosi repo
2024-07-17 09:45:26 +02:00
Hans de Goede fd820e76e4 rules: Add uaccess tag to /dev/udmabuf
In some cases userspace may need to create dmabuffers from userspace
on such example is the software ISP part of libcamera which needs to
allocate dma-buffers for the output of the software ISP.

At first the plan was to allow console users access to /dev/dma_heap/*,
this was discussed with various kernel folks here:
https://lore.kernel.org/all/bb372250-e8b8-4458-bc99-dd8365b06991@redhat.com/

Giving console users access to the dma_heap's was deemed a bad idea
because memory allocated this way is not accounted in cgroup limits.

Giving access to /dev/udmabuf OTOH was deemed acceptable so that
is what this patch adds.

Resolves: #32662
2024-07-17 09:36:45 +02:00
Mike Yuan fa96c55b7b id128: refuse --app-specific= if we're listing GPT types
Prompted by #33737

The intention of b37e8184a5
is to expose sd_id128_get_app_specific() on command line.
But combining that with GPT type list makes little sense.
2024-07-17 09:35:58 +02:00
Luca Boccassi f0b151ce86 gpt: add more architecture aliases
Same as the other aliases. Allows chaining commands like:

$ systemd-id128 show -P root-$(dpkg-architecture --query DEB_HOST_ARCH)
4f68bce3e8cd4db196e7fbcaf984b709
2024-07-16 23:12:48 +02:00
Matteo Croce cfa477b615 homed: open blob dir with O_PATH
`sys_base_dfd` is only used as dirfd argument to *_at functions,
open it with O_PATH.
2024-07-16 15:03:37 +02:00
Matteo Croce 2bae668311 homed: use O_PATH for FDs
`Home->pin_fd` is used only for pinning, open it with O_PATH.
2024-07-16 15:03:37 +02:00
Matteo Croce e51d8e0aa4 use O_PATH to get the root fds
`switch_root()` opens two file descriptors to do the switch but never
reads from them. Open them with O_PATH.
2024-07-16 15:03:37 +02:00
Matteo Croce b22befa9f5 use O_PATH to obtain cgroupfs fd
We get a fd to cgroupfs just to avoid it being umounted, O_PATH
is enough, use it instead of O_RDONLY.
2024-07-16 15:03:37 +02:00
Matteo Croce 572e163ef5 use O_PATH when getting cgroup fd
O_PATH mode is enough to attach a bpf program to a cgroup, use it
instead of O_RDONLY
2024-07-16 15:03:37 +02:00
Daan De Meyer b209fff3a5 mkosi: List library packages explicitly in VolatilePackages=
These should already get pulled in as dependencies, but it doesn't
hurt to be explicit.
2024-07-16 14:53:55 +02:00
Daan De Meyer 68ee977114 mkosi: Build initrd as a subimage
Let's make things a little more consistent and build the initrd
explicitly as a subimage as well instead of relying on mkosi building
it as part of the main image build.

We drop the opensuse initrd postinst script as we don't use erofs by
default anymore. We can always reintroduce it again later if needed.
2024-07-16 13:59:47 +02:00
Daan De Meyer 244952b1ea mkosi: Drop CacheOnly=always from two subimages
This is a universal setting and can only be configured in the main
image so let's drop it from the subimages.
2024-07-16 12:14:32 +02:00
Lennart Poettering 2abad25b41 update TODO 2024-07-16 11:57:32 +02:00
Lennart Poettering 15d19cf86f sd-json/sd-varlink: downgrade assert() → assert_ret()
Our usual rule is that we are more lenient towards misuse for public
users of our code than for ourselves. Or in other words: when validating
parameters of our public functions (those starting with sd_…) we prefer
assert_ret() over assert().
2024-07-16 11:57:32 +02:00
Lennart Poettering 92100f14c3 libsystemd: use C23 explicit enum types where available
In C23 we can explicitly choose the integer type for an enum. Let's do
so to make our requirements for 64bit integers explicitly. Previously,
we'd rely on a GNU extension that would size the enum to 64bit if at
least one value outside the 32bit range is in the enum. Let's keep that
too, for compat with older compilers.

(Also, add the support for older compilers to the definition of
sd_json_dispatch_flags_t, where it was forgotten so far)
2024-07-16 11:57:32 +02:00
Lennart Poettering 25ff515b39 sd-varlink: make our internal Varlink API public as sd-varlink.[ch]
It's time. sd-json was already done earlier in this cycle, let's now
make sd-varlink public too.

This is mostly just a search/replace job of epical proportions.

I left some functions internal (mostly IDL handling), and I turned some
static inline calls into regular calls.
2024-07-16 11:57:32 +02:00
Daan De Meyer 923eeb38fb Merge pull request #33695 from DaanDeMeyer/epel
mkosi: Add CI for CentOS Stream 10
2024-07-16 11:43:49 +02:00
Daan De Meyer 5ac0dc70ff TEST-13-NSPAWN: make sure we don't load libnss_systemd
Let's make sure we don't load libnss_systemd.so from bash as the
necessary environment variables aren't set to make that work when
we're running with sanitizers enabled.

We can't add a sanitizer wrapper for bash as the wrapper runs using
bash so you end up in a loop.
2024-07-16 09:42:17 +02:00
Daan De Meyer 88221219a3 mkosi: Disable unique debug source names
We use -fdebug-prefix-map= because debugedit doesn't work for us (for
a currently unknown reason since it's the most obtuse code I've ever
had the pleasure of reading). With all the unique macros enabled, the
destination directory we pass to -fdebug-prefix-map= includes the package
release. The release is either the timestamp of the current commit or
the current time if the working tree is dirty. This means it generally
changes every time we rerun the build script. However, meson only reads
compiler arguments the first time it is invoked or if --wipe is specified.
This means that on a rerun -fdebug-prefix-map= will be configured wrong
and the build will fail.

Let's prevent this from happening by disabling the unique debug source
names by overriding the --unique-debug-src-base option that is passed to
find-debuginfo.sh by rpm via the _find_debuginfo_opts macro.
2024-07-16 09:41:22 +02:00
Daan De Meyer 985d5b4bc2 systemd-networkd-tests: Skip tests requiring dhcpd if it is not available
dhcpd is not available on CentOS Stream 10

See https://github.com/systemd/systemd/issues/33717
2024-07-15 16:17:33 +02:00
Daan De Meyer f65ec2e904 TEST-55-OOMD: Remove the opensuse user@ dropin
Required to make TEST-55-OOMD pass on OpenSUSE.
2024-07-15 16:17:33 +02:00
Daan De Meyer a1071c1249 mkosi: Install binutils 2024-07-15 16:17:33 +02:00
Daan De Meyer d97b48176b TEST-64-UDEV-STORAGE: Use max_ioqpairs instead of num_queues
Fixes a deprecation warning from qemu.
2024-07-15 16:17:33 +02:00
Daan De Meyer 6e212a6db9 mkosi: Use clang --print-runtime-dir 2024-07-15 16:17:33 +02:00
Daan De Meyer 54ab97e59d mkosi: Extend arch build script comment about symlinks 2024-07-15 16:17:33 +02:00
Daan De Meyer ff8c89aa5a test: do not attempt to set xattr on tmpfs
This is only possible since a recent kernel version, and fails otherwise,
like on CentOS 9
2024-07-15 16:17:33 +02:00
Daan De Meyer 8b32cc79ec mkosi: Add CI for CentOS Stream 10
We switch to the c10s-sig-hyperscale branch of the spec repository
as it will receive all the latest changes the earliest before they
end up in the c9s-sig-hyperscale branch.
2024-07-15 16:17:33 +02:00
Daan De Meyer 3cfb020cb9 mkosi: Use squashfs for sysext if mkfs.erofs is not available
CentOS Stream 10 does not have erofs-utils so let's add a fallback
to squashfs when building the sysext.
2024-07-15 16:17:33 +02:00
Daan De Meyer 0e4a7ab6d5 mkosi: Make epel repositories optional for CentOS Stream 9
This allows us to add CI for CentOS Stream 10 as EPEL 10 doesn't
exist yet and won't exist for quite some time.

CentOS Stream 10 will be enabled later as soon as
https://issues.redhat.com/browse/RHEL-46604 is resolved.
2024-07-15 16:17:33 +02:00
Daan De Meyer 7205fc7dc3 mkosi: Introduce build image
We want the exitrd image to be built with the latest systemd as well.
As the exitrd image is built as part of mkosi.images, and all subimages
are built before the main image, this implies the packages must be built
as a subimage in mkosi.images/ as well. So we introduce the build image and
move all logic related to building distribution packages there.

This also has the nice side effect of slimming down the main image as the
build dependencies are not installed into the main image anymore. It also
makes sure the packages are built in a "clean" chroot without any of the
other packages which we install in the main image available.
2024-07-15 16:17:33 +02:00
Daan De Meyer 72a8f508e5 mkosi: update fedora commit reference
* a3524fc837 Use a more precise Recommends for libkxbcommon
* 980ede8c0f Drop machined revert
* d569018a92 Rebuilt for the bin-sbin merge
* 8881fa94ee Version 256.2
* 1cc4f83002 Link systemd-executor statically
* 0319e62d9c Update dracut workaround
* c96f54de22 Fix ELN build
* 3f68c5d802 Only exclude dracut conflicts on non-fedora on upstream builds
* 7db154308b Conditionalize dracut Conflicts more
2024-07-15 16:17:33 +02:00