summaryrefslogtreecommitdiff
path: root/mkosi.presets
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2023-05-08 14:24:20 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2023-05-08 15:04:02 +0200
commitdede53943fe8480984445057c363fe9f9fbedcbd (patch)
tree040edd1e366da5f0d25537f952c6ae40e7129a2c /mkosi.presets
parent210cb8d690cf585b7cd162efbdc563a5ae6921ff (diff)
downloadsystemd-dede53943fe8480984445057c363fe9f9fbedcbd.tar.gz
mkosi.build: use bash, use array for configuration options, shellcheckify
With bash, we can use an array for options. This is nice because we can construct the commandline more easily. The file is now shellcheck-clean.
Diffstat (limited to 'mkosi.presets')
-rwxr-xr-xmkosi.presets/00-base/mkosi.build193
1 files changed, 97 insertions, 96 deletions
diff --git a/mkosi.presets/00-base/mkosi.build b/mkosi.presets/00-base/mkosi.build
index e19251157d..dc1940ae29 100755
--- a/mkosi.presets/00-base/mkosi.build
+++ b/mkosi.presets/00-base/mkosi.build
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -e
@@ -37,119 +37,120 @@ EOF
chmod +x "$BUILDDIR"/bpftool
fi
-if [ ! -f "$BUILDDIR"/build.ninja ] ; then
+if [ ! -f "$BUILDDIR"/build.ninja ]; then
sysvinit_path=$(realpath /etc/init.d)
init_path=$(realpath /sbin/init 2>/dev/null)
- if [ -z "$init_path" ] ; then
+ if [ -z "$init_path" ]; then
rootprefix=""
else
rootprefix=${init_path%/lib/systemd/systemd}
rootprefix=/${rootprefix#/}
fi
+ CONFIGURE_OPTS=(
+ -D sysvinit-path="$sysvinit_path"
+ -D rootprefix="$rootprefix"
+ -D default-timeout-sec="${DEFAULT_TIMEOUT_SEC:-10}"
+ -D default-user-timeout-sec="${DEFAULT_TIMEOUT_SEC:-10}"
+ -D man=false
+ -D translations=false
+ -D version-tag="${VERSION_TAG}"
+ -D mode=developer
+ -D b_sanitize="${SANITIZERS:-none}"
+ -D install-tests=true
+ -D tests=unsafe
+ -D slow-tests=true
+ -D utmp=true
+ -D hibernate=true
+ -D ldconfig=true
+ -D resolve=true
+ -D efi=true
+ -D tpm=true
+ -D environment-d=true
+ -D binfmt=true
+ -D repart=true
+ -D sysupdate=true
+ -D coredump=true
+ -D pstore=true
+ -D oomd=true
+ -D logind=true
+ -D hostnamed=true
+ -D localed=true
+ -D machined=true
+ -D portabled=true
+ -D sysext=true
+ -D userdb=true
+ -D homed=true
+ -D networkd=true
+ -D timedated=true
+ -D timesyncd=true
+ -D remote=true
+ -D nss-myhostname=true
+ -D nss-mymachines=true
+ -D nss-resolve=true
+ -D nss-systemd=true
+ -D firstboot=true
+ -D randomseed=true
+ -D backlight=true
+ -D vconsole=true
+ -D quotacheck=true
+ -D sysusers=true
+ -D tmpfiles=true
+ -D importd=true
+ -D hwdb=true
+ -D rfkill=true
+ -D xdg-autostart=true
+ -D translations=true
+ -D polkit=true
+ -D acl=true
+ -D audit=true
+ -D blkid=true
+ -D fdisk=true
+ -D kmod=true
+ -D pam=true
+ -D pwquality=true
+ -D microhttpd=true
+ -D libcryptsetup=true
+ -D libcurl=true
+ -D idn=true
+ -D libidn2=true
+ -D qrencode=true
+ -D gcrypt=true
+ -D gnutls=true
+ -D openssl=true
+ -D cryptolib=openssl
+ -D p11kit=true
+ -D libfido2=true
+ -D tpm2=true
+ -D elfutils=true
+ -D zstd=true
+ -D xkbcommon=true
+ -D pcre2=true
+ -D glib=true
+ -D dbus=true
+ -D bootloader=true
+ -D kernel-install=true
+ -D analyze=true
+ -D bpf-framework=true
+ -D ukify=true
+ )
+
# On debian-like systems the library directory is not /usr/lib64 but /usr/lib/<arch-triplet>/.
# It is important to use the right one especially for cryptsetup plugins, otherwise they will be
# installed in the wrong directory and not be found by cryptsetup. Assume native build.
if grep -q -e "ID=debian" -e "ID_LIKE=debian" /etc/os-release && command -v dpkg 2>/dev/null; then
- LIBDIR="-Drootlibdir=/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)"
- PAMDIR="-Dpamlibdir=/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/security"
+ CONFIGURE_OPTS+=(
+ -D rootlibdir="/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)"
+ -D pamlibdir="/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/security"
+ )
fi
- # Cannot quote $LIBDIR and $PAMDIR, because they may be empty, and meson will fail.
- # shellcheck disable=SC2086
- meson setup "$BUILDDIR" \
- ${LIBDIR:-} \
- ${PAMDIR:-} \
- -D "sysvinit-path=$sysvinit_path" \
- -D "rootprefix=$rootprefix" \
- -D default-timeout-sec=${DEFAULT_TIMEOUT_SEC:-10} \
- -D default-user-timeout-sec=${DEFAULT_TIMEOUT_SEC:-10} \
- -D man=false \
- -D translations=false \
- -D version-tag="${VERSION_TAG}" \
- -D mode=developer \
- -D b_sanitize="${SANITIZERS:-none}" \
- -D install-tests=true \
- -D tests=unsafe \
- -D slow-tests=true \
- -D utmp=true \
- -D hibernate=true \
- -D ldconfig=true \
- -D resolve=true \
- -D efi=true \
- -D tpm=true \
- -D environment-d=true \
- -D binfmt=true \
- -D repart=true \
- -D sysupdate=true \
- -D coredump=true \
- -D pstore=true \
- -D oomd=true \
- -D logind=true \
- -D hostnamed=true \
- -D localed=true \
- -D machined=true \
- -D portabled=true \
- -D sysext=true \
- -D userdb=true \
- -D homed=true \
- -D networkd=true \
- -D timedated=true \
- -D timesyncd=true \
- -D remote=true \
- -D nss-myhostname=true \
- -D nss-mymachines=true \
- -D nss-resolve=true \
- -D nss-systemd=true \
- -D firstboot=true \
- -D randomseed=true \
- -D backlight=true \
- -D vconsole=true \
- -D quotacheck=true \
- -D sysusers=true \
- -D tmpfiles=true \
- -D importd=true \
- -D hwdb=true \
- -D rfkill=true \
- -D xdg-autostart=true \
- -D translations=true \
- -D polkit=true \
- -D acl=true \
- -D audit=true \
- -D blkid=true \
- -D fdisk=true \
- -D kmod=true \
- -D pam=true \
- -D pwquality=true \
- -D microhttpd=true \
- -D libcryptsetup=true \
- -D libcurl=true \
- -D idn=true \
- -D libidn2=true \
- -D qrencode=true \
- -D gcrypt=true \
- -D gnutls=true \
- -D openssl=true \
- -D cryptolib=openssl \
- -D p11kit=true \
- -D libfido2=true \
- -D tpm2=true \
- -D elfutils=true \
- -D zstd=true \
- -D xkbcommon=true \
- -D pcre2=true \
- -D glib=true \
- -D dbus=true \
- -D bootloader=true \
- -D kernel-install=true \
- -D analyze=true \
- -D bpf-framework=true \
- -D ukify=true
+ meson setup "$BUILDDIR" "${CONFIGURE_OPTS[@]}"
fi
ninja -C "$BUILDDIR" "$@"
-if [ "$WITH_TESTS" = 1 ] ; then
+if [ "$WITH_TESTS" = 1 ]; then
if [ -n "$SANITIZERS" ]; then
export ASAN_OPTIONS="$MKOSI_ASAN_OPTIONS"
export UBSAN_OPTIONS="$MKOSI_UBSAN_OPTIONS"