#!/bin/bash # SPDX-License-Identifier: LGPL-2.1-or-later set -e if ((NO_BUILD)); then exit 0 fi # shellcheck source=/dev/null . /usr/lib/os-release if [ ! -f "pkg/$ID/PKGBUILD" ]; then echo "PKGBUILD not found at pkg/$ID/PKGBUILD, run mkosi once with -ff to make sure the PKGBUILD is cloned" >&2 exit 1 fi # We can't configure the source or build directory so we use symlinks instead to make sure they are in the # expected locations. ln --symbolic "$SRCDIR" "pkg/$ID/systemd-stable" ln --symbolic "$BUILDDIR" "pkg/$ID/build" # Because we run with --noextract we are responsible for making sure the source files appear in src/. ln --symbolic . "pkg/$ID/src" MKOSI_CFLAGS="-O0 -Wp,-U_FORTIFY_SOURCE" if ((LLVM)); then # TODO: Remove -fno-sanitize-function when https://github.com/systemd/systemd/issues/29972 is fixed. MKOSI_CFLAGS="$MKOSI_CFLAGS -shared-libasan -fno-sanitize=function" fi MKOSI_LDFLAGS="" if ((LLVM)) && [[ -n "$SANITIZERS" ]]; then MKOSI_LDFLAGS="$MKOSI_LDFLAGS -Wl,-rpath=$(clang --print-file-name="")lib/linux" fi MKOSI_MESON_OPTIONS="-D mode=developer -D b_sanitize=${SANITIZERS:-none}" if ((WIPE)); then MKOSI_MESON_OPTIONS="$MKOSI_MESON_OPTIONS --wipe" fi # Override the default options. We specifically disable "strip", "zipman" and "lto" as they slow down builds # significantly. OPTIONS= cannot be overridden on the makepkg command line so we append to /etc/makepkg.conf # instead. The rootfs is overlaid with a writable tmpfs during the build script so these changes don't end up # in the image itself. tee --append /etc/makepkg.conf >/dev/null <