mirror of
https://github.com/systemd/systemd
synced 2024-10-01 22:05:33 +00:00
7205fc7dc3
We want the exitrd image to be built with the latest systemd as well. As the exitrd image is built as part of mkosi.images, and all subimages are built before the main image, this implies the packages must be built as a subimage in mkosi.images/ as well. So we introduce the build image and move all logic related to building distribution packages there. This also has the nice side effect of slimming down the main image as the build dependencies are not installed into the main image anymore. It also makes sure the packages are built in a "clean" chroot without any of the other packages which we install in the main image available.
54 lines
1.7 KiB
Bash
Executable file
54 lines
1.7 KiB
Bash
Executable file
#!/bin/bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -e
|
|
set -o nounset
|
|
|
|
if ((${NO_SYNC:-0})); then
|
|
exit 0
|
|
fi
|
|
|
|
PKG_SUBDIR="$(realpath --canonicalize-missing "pkg/$DISTRIBUTION" --relative-to "$PWD")"
|
|
|
|
if [[ -d "$PKG_SUBDIR/.git" ]]; then
|
|
if [[ "$(git -C "$PKG_SUBDIR" rev-parse HEAD)" == "$GIT_COMMIT" ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
if ! git -C "$PKG_SUBDIR" show-ref --quiet "origin/$GIT_BRANCH"; then
|
|
git -C "$PKG_SUBDIR" remote set-url origin "$GIT_URL"
|
|
git -C "$PKG_SUBDIR" fetch origin "$GIT_BRANCH"
|
|
fi
|
|
|
|
# If work is being done on the packaging rules in a separate branch, don't touch the checkout.
|
|
if ! git -C "$PKG_SUBDIR" merge-base --is-ancestor HEAD "origin/$GIT_BRANCH"; then
|
|
EXIT_STATUS=$?
|
|
if [[ $EXIT_STATUS -eq 1 ]]; then
|
|
exit 0
|
|
else
|
|
exit $EXIT_STATUS
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [[ ! -e "$PKG_SUBDIR" ]] || [[ -z "$(ls --almost-all "$PKG_SUBDIR")" ]]; then
|
|
# The repository on Salsa has the full upstream sources, so it's a waste of
|
|
# space to redownload and duplicate everything, so do a sparse checkout as
|
|
# we only need the packaging directory anyway.
|
|
if [[ -n "${GIT_SUBDIR:-}" ]]; then
|
|
sparse=(--no-checkout --filter=tree:0)
|
|
else
|
|
sparse=()
|
|
fi
|
|
|
|
git clone "$GIT_URL" --branch "$GIT_BRANCH" "${sparse[@]}" "$PKG_SUBDIR"
|
|
if [[ -n "${GIT_SUBDIR:-}" ]]; then
|
|
# --no-cone is needed to check out only one top-level directory
|
|
git -C "$PKG_SUBDIR" sparse-checkout set --no-cone "${GIT_SUBDIR:-}"
|
|
fi
|
|
else
|
|
git -C "$PKG_SUBDIR" remote set-url origin "$GIT_URL"
|
|
git -C "$PKG_SUBDIR" fetch origin "$GIT_BRANCH"
|
|
fi
|
|
|
|
git -C "$PKG_SUBDIR" -c advice.detachedHead=false checkout "$GIT_COMMIT"
|