summaryrefslogtreecommitdiffstats
path: root/mkosi.conf.d/10-debian-ubuntu/mkosi.build.chroot
diff options
context:
space:
mode:
Diffstat (limited to 'mkosi.conf.d/10-debian-ubuntu/mkosi.build.chroot')
-rwxr-xr-xmkosi.conf.d/10-debian-ubuntu/mkosi.build.chroot147
1 files changed, 0 insertions, 147 deletions
diff --git a/mkosi.conf.d/10-debian-ubuntu/mkosi.build.chroot b/mkosi.conf.d/10-debian-ubuntu/mkosi.build.chroot
deleted file mode 100755
index 1a03dcd956..0000000000
--- a/mkosi.conf.d/10-debian-ubuntu/mkosi.build.chroot
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/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 [ ! -d "pkg/$ID/debian" ]; then
- echo "deb rules not found at pkg/$ID/debian, run mkosi once with -ff to make sure the rules are cloned" >&2
- exit 1
-fi
-
-# We transplant the debian/ folder from the deb package sources into the upstream sources.
-mount --mkdir --bind "$SRCDIR/pkg/$ID/debian" "$SRCDIR"/debian
-
-# We remove the patches so they don't get applied.
-rm -rf "$SRCDIR"/debian/patches/*
-
-# While the build directory can be specified through DH_OPTIONS, the default one is hardcoded everywhere so
-# we have to use that. Because it is architecture dependent, we query it using dpkg-architecture first.
-DEB_HOST_GNU_TYPE="$(dpkg-architecture --query DEB_HOST_GNU_TYPE)"
-mount --mkdir --bind "$BUILDDIR" "$SRCDIR/obj-$DEB_HOST_GNU_TYPE"
-
-if [ -d .git/ ] && [ -z "$(git status --porcelain)" ]; then
- TS="$(git show --no-patch --format=%ct HEAD)"
-else
- TS="${SOURCE_DATE_EPOCH:-$(date +%s)}"
-fi
-
-# Add a new changelog entry to update the version. We use a fixed date since a dynamic one causes a full
-# rebuild every time.
-cat >debian/changelog.new <<EOF
-systemd ($(cat meson.version)-$(date "+%Y%m%d%H%M%S" --date "@$TS")) UNRELEASED; urgency=low
-
- * Automatic build from mkosi
-
- -- systemd test <systemd-devel@lists.freedesktop.org> $(date --rfc-email --date "@$TS")
-
-EOF
-cat debian/changelog >>debian/changelog.new
-mv debian/changelog.new debian/changelog
-
-MKOSI_CFLAGS="-O0"
-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)) && [[ -d "$BUILDDIR/meson-private" ]]; then
- MKOSI_MESON_OPTIONS="$MKOSI_MESON_OPTIONS --wipe"
-fi
-
-# TODO: Drop GENSYMBOLS_LEVEL once https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=986746 is fixed.
-build() {
- env \
- CC="$( ((LLVM)) && echo clang || echo gcc)" \
- CXX="$( ((LLVM)) && echo clang++ || echo g++)" \
- CC_LD="$( ((LLVM)) && echo lld)" \
- CXX_LD="$( ((LLVM)) && echo lld)" \
- DEB_BUILD_OPTIONS="$(awk '$1=$1' <<<"\
- $( ((WITH_TESTS)) || echo nocheck) \
- $( ((WITH_DOCS)) || echo nodoc) \
- $( ((WITH_DEBUG)) && echo debug || echo nostrip) \
- $( ! ((MESON_VERBOSE)) && echo terse) \
- optimize=-lto \
- hardening=-fortify \
- ")" \
- DEB_BUILD_PROFILES="$(awk '$1=$1' <<<"\
- $( ((WITH_TESTS)) || echo nocheck) \
- $( ((WITH_DOCS)) || echo nodoc) \
- pkg.systemd.upstream \
- ")" \
- DEB_CFLAGS_APPEND="$MKOSI_CFLAGS $CFLAGS" \
- DEB_CXXFLAGS_APPEND="$MKOSI_CFLAGS $CFLAGS" \
- DEB_LDFLAGS_APPEND="$MKOSI_LDFLAGS $LDFLAGS" \
- DPKG_FORCE="unsafe-io" \
- DPKG_DEB_COMPRESSOR_TYPE="none" \
- DH_MISSING="--fail-missing" \
- CONFFLAGS_UPSTREAM="$MKOSI_MESON_OPTIONS $MESON_OPTIONS" \
- GENSYMBOLS_LEVEL="$( ((LLVM)) && echo 0 || echo 1)" \
- dpkg-buildpackage \
- --no-pre-clean \
- --unsigned-changes \
- --build=binary
-
- EXIT_STATUS=$?
-
- # Make sure we don't reconfigure twice.
- MKOSI_MESON_OPTIONS="${MKOSI_MESON_OPTIONS//"--wipe"/}"
-
- return $EXIT_STATUS
-}
-
-if ! build; then
- # debhelper installs files for each package to debian/<package> so we figure out which files were
- # packaged by querying all the package names from debian/control and running find on each of the
- # corresponding package directory in debian/.
- grep "Package:" debian/control |
- sed "s/Package: //" |
- xargs -d '\n' -I {} sh -c "[ -d debian/{} ] && (cd debian/{} && find . ! -type d ! -path "*dh-exec*" -printf '%P\n')" |
- # Remove compression suffix from compressed manpages as the manpages in debian/tmp will be uncompressed.
- sed --regexp-extended 's/([0-9])\.gz$/\1/' |
- sort --unique >/tmp/packaged-files
-
- # We figure out the installed files by running find on debian/tmp/ which contains the files installed
- # by meson install.
- (cd debian/tmp/ && find . ! -type d ! -path "*dh-exec*" -printf '%P\n') >/tmp/installed-files
-
- if [ -f debian/not-installed ]; then
- grep --invert-match "^#" debian/not-installed >>/tmp/installed-files
- fi
-
- sort --unique --output /tmp/installed-files /tmp/installed-files
-
- # We get all the installed files that were not packaged by finding entries in the installed file that are
- # not in the packaged file.
- comm -23 /tmp/installed-files /tmp/packaged-files > /tmp/unpackaged-files
- # If there are no unpackaged files something else went wrong.
- if [ ! -s /tmp/unpackaged-files ]; then
- exit 1
- fi
-
- # Otherwise, we append the unpackaged files to the filelist for the systemd package and retry the build.
- cat /tmp/unpackaged-files >>debian/systemd.install
- build
-fi
-
-(
- shopt -s nullglob
- rm -f "$BUILDDIR"/*.deb "$BUILDDIR"/*.ddeb
-
- cp ../*.deb ../*.ddeb "$PACKAGEDIR"
- cp ../*.deb ../*.ddeb "$OUTPUTDIR"
- cp ../*.deb ../*.ddeb "$BUILDDIR"
- # These conflict with the packages that we actually want to install, so remove them
- rm -f "$BUILDDIR"/systemd-standalone-*.deb "$BUILDDIR"/systemd-standalone-*.ddeb
-)