mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-03 01:17:45 +03:00
d1785c462f
Explicitly enable all features/components in the mkosi build to
ensure they all get built and we get an error if they can't be built.
We also rework the packages sections of all mkosi configs to reduce
duplication and cover all the dependencies necessary to build/use all
systemd features.
Note that for the final image, since systemd is installed by default
in base images, we rely on that to install the base library dependencies
and we only list extra optional dependencies and tools that aren't already
installed by default into the base image.
We also drop the centos stream 8 mkosi build as dependencies on that
distro are too out-of-date to be able to build all systemd features.
Since centos stream 9 has been out for a while, let's focus on that
and leave it to downstream to keep systemd building on centos stream 8.
Finally, there's a few additions to the mkosi scripts to make sure
services don't start by default on boot.
(cherry picked from commit 37d35150cb
)
30 lines
1.3 KiB
Bash
Executable File
30 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
if [ "$1" = "final" ]; then
|
|
if command -v bootctl > /dev/null && [ -d "/efi" ]; then
|
|
bootctl install
|
|
fi
|
|
|
|
if [ -n "$SANITIZERS" ]; then
|
|
# ASAN and syscall filters aren't compatible with each other.
|
|
find / -name '*.service' -type f -exec sed -i 's/^\(MemoryDeny\|SystemCall\)/# \1/' {} +
|
|
|
|
# `systemd-hwdb update` takes > 50s when built with sanitizers so let's not run it by default.
|
|
systemctl mask systemd-hwdb-update.service
|
|
fi
|
|
|
|
# Make sure dnsmasq.service doesn't start on boot on Debian/Ubuntu.
|
|
rm -f /etc/systemd/system/multi-user.target.wants/dnsmasq.service
|
|
fi
|
|
|
|
# Temporary workaround until https://github.com/openSUSE/suse-module-tools/commit/158643414ddb8d8208016a5f03a4484d58944d7a
|
|
# gets into OpenSUSE repos
|
|
if [ "$1" = "final" ] && grep -q openSUSE /etc/os-release; then
|
|
if [ -e "/usr/lib/systemd/system/boot-sysctl.service" ] && \
|
|
! grep -F -q 'ConditionPathExists=/boot/sysctl.conf' "/usr/lib/systemd/system/boot-sysctl.service"; then
|
|
mkdir -p "/etc/systemd/system/boot-sysctl.service.d/"
|
|
printf '[Unit]\nConditionPathExists=/boot/sysctl.conf-%%v' >"/etc/systemd/system/boot-sysctl.service.d/99-temporary-workaround.conf"
|
|
fi
|
|
fi
|