mirror of
https://github.com/systemd/systemd.git
synced 2024-11-27 12:13:33 +08:00
37d35150cb
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.
35 lines
1.3 KiB
Bash
Executable File
35 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
|
|
|
|
cat >> /root/.gdbinit <<EOF
|
|
set debuginfod enabled off
|
|
set build-id-verbose 0
|
|
EOF
|
|
|
|
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
|