1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-11 09:18:07 +03:00

Merge pull request #33802 from DaanDeMeyer/packages

mkosi: Various packaging improvements
This commit is contained in:
Daan De Meyer 2024-07-22 11:23:22 +02:00 committed by GitHub
commit 6d9d14e516
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 66 additions and 96 deletions

View File

@ -2,11 +2,8 @@
# SPDX-License-Identifier: LGPL-2.1-or-later # SPDX-License-Identifier: LGPL-2.1-or-later
set -e set -e
# shellcheck source=/dev/null if [[ ! -f "pkg/$PKG_SUBDIR/PKGBUILD" ]]; then
. /usr/lib/os-release echo "PKGBUILD not found at pkg/$PKG_SUBDIR/PKGBUILD, run mkosi once with -ff to make sure the PKGBUILD is cloned" >&2
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 exit 1
fi fi
@ -14,11 +11,11 @@ fi
# expected locations. Because we run with --noextract we are responsible for making sure the source files # expected locations. Because we run with --noextract we are responsible for making sure the source files
# appear in src/. This means not only the systemd source directory, but also the patches and configuration # appear in src/. This means not only the systemd source directory, but also the patches and configuration
# files that are shipped in the packaging repository. To achieve this, instead of symlinking the systemd # files that are shipped in the packaging repository. To achieve this, instead of symlinking the systemd
# sources and build directory directly into "pkg/$ID/src", we symlink them into "pkg/$ID" and then symlink # sources and build directory directly into "pkg/$PKG_SUBDIR/src", we symlink them into "pkg/$PKG_SUBDIR" and
# "pkg/$ID" to "pkg/$ID/src". # then symlink "pkg/$PKG_SUBDIR" to "pkg/$PKG_SUBDIR/src".
ln --symbolic "$SRCDIR" "pkg/$ID/systemd" ln --symbolic "$SRCDIR" "pkg/$PKG_SUBDIR/systemd"
ln --symbolic "$BUILDDIR" "pkg/$ID/build" ln --symbolic "$BUILDDIR" "pkg/$PKG_SUBDIR/build"
ln --symbolic . "pkg/$ID/src" ln --symbolic . "pkg/$PKG_SUBDIR/src"
MKOSI_CFLAGS="-O0 -Wp,-U_FORTIFY_SOURCE" MKOSI_CFLAGS="-O0 -Wp,-U_FORTIFY_SOURCE"
if ((LLVM)); then if ((LLVM)); then
@ -70,13 +67,13 @@ else
TS="${SOURCE_DATE_EPOCH:-$(date +%s)}" TS="${SOURCE_DATE_EPOCH:-$(date +%s)}"
fi fi
sed --in-place "pkg/$ID/PKGBUILD" \ sed --in-place "pkg/$PKG_SUBDIR/PKGBUILD" \
--expression "s/^_tag=.*/_tag=$(cat meson.version)/" \ --expression "s/^_tag=.*/_tag=$(cat meson.version)/" \
--expression "s/^pkgrel=.*/pkgrel=$(date "+%Y%m%d%H%M%S" --date "@$TS")/" --expression "s/^pkgrel=.*/pkgrel=$(date "+%Y%m%d%H%M%S" --date "@$TS")/"
# We get around makepkg's root check by setting EUID to something else. # We get around makepkg's root check by setting EUID to something else.
# shellcheck disable=SC2046 # shellcheck disable=SC2046
env --chdir="pkg/$ID" \ env --chdir="pkg/$PKG_SUBDIR" \
EUID=123 \ EUID=123 \
makepkg \ makepkg \
--noextract \ --noextract \
@ -84,7 +81,7 @@ env --chdir="pkg/$ID" \
--force \ --force \
_systemd_UPSTREAM=1 \ _systemd_UPSTREAM=1 \
_systemd_QUIET=$( ((MESON_VERBOSE)); echo $? ) \ _systemd_QUIET=$( ((MESON_VERBOSE)); echo $? ) \
BUILDDIR="$PWD/pkg/$ID" \ BUILDDIR="$PWD/pkg/$PKG_SUBDIR" \
PKGDEST="$OUTPUTDIR" \ PKGDEST="$OUTPUTDIR" \
PKGEXT=".pkg.tar" \ PKGEXT=".pkg.tar" \
MESON_EXTRA_CONFIGURE_OPTIONS="$MKOSI_MESON_OPTIONS $MESON_OPTIONS" MESON_EXTRA_CONFIGURE_OPTIONS="$MKOSI_MESON_OPTIONS $MESON_OPTIONS"

View File

@ -7,7 +7,8 @@ Distribution=arch
Environment= Environment=
GIT_URL=https://gitlab.archlinux.org/archlinux/packaging/packages/systemd.git GIT_URL=https://gitlab.archlinux.org/archlinux/packaging/packages/systemd.git
GIT_BRANCH=main GIT_BRANCH=main
GIT_COMMIT=d74b24c7c6077740c35a876445febe6d26bf013c GIT_COMMIT=1d577a62688419ee4af01b847e55845cd9780301
PKG_SUBDIR=arch
Packages= Packages=
base base

View File

@ -6,16 +6,13 @@ if [[ "$1" == "build" ]]; then
exit 0 exit 0
fi fi
# shellcheck source=/dev/null if [[ ! -f "pkg/$PKG_SUBDIR/PKGBUILD" ]]; then
. "$BUILDROOT/usr/lib/os-release" echo "PKGBUILD not found at pkg/$PKG_SUBDIR/PKGBUILD, run mkosi once with -ff to make sure the PKGBUILD is cloned" >&2
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 exit 1
fi fi
# shellcheck source=/dev/null # shellcheck source=/dev/null
_systemd_UPSTREAM=1 . "pkg/$ID/PKGBUILD" _systemd_UPSTREAM=1 . "pkg/$PKG_SUBDIR/PKGBUILD"
# shellcheck disable=SC2154 # shellcheck disable=SC2154
mkosi-install "${makedepends[@]}" mkosi-install "${makedepends[@]}"

View File

@ -4,11 +4,8 @@ set -e
. mkosi.functions . mkosi.functions
# shellcheck source=/dev/null if [[ ! -f "pkg/$PKG_SUBDIR/systemd.spec" ]]; then
. /usr/lib/os-release echo "spec not found at pkg/$PKG_SUBDIR/systemd.spec, run mkosi once with -ff to make sure the spec is cloned" >&2
if [[ ! -f "pkg/$ID/systemd.spec" ]]; then
echo "spec not found at pkg/$ID/systemd.spec, run mkosi once with -ff to make sure the spec is cloned" >&2
exit 1 exit 1
fi fi
@ -78,7 +75,7 @@ CXX_LD="$( ((LLVM)) && echo lld)" \
$( ((WITH_TESTS)) || echo "--nocheck") \ $( ((WITH_TESTS)) || echo "--nocheck") \
$( ((WITH_DOCS)) || echo "--without=docs") \ $( ((WITH_DOCS)) || echo "--without=docs") \
--define "_topdir /var/tmp" \ --define "_topdir /var/tmp" \
--define "_sourcedir pkg/$ID" \ --define "_sourcedir pkg/$PKG_SUBDIR" \
--define "_rpmdir $OUTPUTDIR" \ --define "_rpmdir $OUTPUTDIR" \
${BUILDDIR:+"--define=_vpath_builddir $BUILDDIR"} \ ${BUILDDIR:+"--define=_vpath_builddir $BUILDDIR"} \
--define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \ --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \
@ -106,7 +103,7 @@ CXX_LD="$( ((LLVM)) && echo lld)" \
--define "_fixperms true" \ --define "_fixperms true" \
--undefine _package_note_flags \ --undefine _package_note_flags \
--noclean \ --noclean \
"pkg/$ID/systemd.spec" "pkg/$PKG_SUBDIR/systemd.spec"
( (
shopt -s nullglob shopt -s nullglob

View File

@ -5,6 +5,12 @@ Distribution=|centos
Distribution=|fedora Distribution=|fedora
[Content] [Content]
Environment=
GIT_URL=https://src.fedoraproject.org/rpms/systemd.git
GIT_BRANCH=rawhide
GIT_COMMIT=00babccdea1576d96edfdb7ab12958564cc4f1b6
PKG_SUBDIR=fedora
Packages= Packages=
compiler-rt compiler-rt
git-core git-core

View File

@ -6,11 +6,8 @@ if [[ "$1" == "build" ]]; then
exit 0 exit 0
fi fi
# shellcheck source=/dev/null if [[ ! -f "pkg/$PKG_SUBDIR/systemd.spec" ]]; then
. "$BUILDROOT/usr/lib/os-release" echo "spec not found at pkg/$PKG_SUBDIR/systemd.spec, run mkosi with -ff to make sure the spec is cloned" >&2
if [[ ! -f "pkg/$ID/systemd.spec" ]]; then
echo "spec not found at pkg/$ID/systemd.spec, run mkosi with -ff to make sure the spec is cloned" >&2
exit 1 exit 1
fi fi
@ -20,8 +17,8 @@ mkosi-chroot \
--query \ --query \
--buildrequires \ --buildrequires \
--define "_topdir /var/tmp" \ --define "_topdir /var/tmp" \
--define "_sourcedir pkg/$ID" \ --define "_sourcedir pkg/$PKG_SUBDIR" \
"pkg/$ID/systemd.spec" | "pkg/$PKG_SUBDIR/systemd.spec" |
grep --invert-match --regexp systemd --regexp /bin/sh --regexp "rpmlib(" --regexp udev --regexp grubby --regexp sdubby | grep --invert-match --regexp systemd --regexp /bin/sh --regexp "rpmlib(" --regexp udev --regexp grubby --regexp sdubby |
sort --unique | sort --unique |
tee /tmp/buildrequires | tee /tmp/buildrequires |
@ -30,7 +27,7 @@ mkosi-chroot \
# rpmbuild -br tries to build a source package which means all source files have to exist which isn't the # rpmbuild -br tries to build a source package which means all source files have to exist which isn't the
# case when using --build-in-place so we get rid of the source file that doesn't exist to make it happy. # case when using --build-in-place so we get rid of the source file that doesn't exist to make it happy.
# TODO: Use -bd instead of -br and get rid of this once we don't need to build on CentOS Stream 9 anymore. # TODO: Use -bd instead of -br and get rid of this once we don't need to build on CentOS Stream 9 anymore.
sed '/Source0/d' --in-place "pkg/$ID/systemd.spec" sed '/Source0/d' --in-place "pkg/$PKG_SUBDIR/systemd.spec"
until mkosi-chroot \ until mkosi-chroot \
rpmbuild \ rpmbuild \
@ -38,9 +35,9 @@ until mkosi-chroot \
--build-in-place \ --build-in-place \
--with upstream \ --with upstream \
--define "_topdir /var/tmp" \ --define "_topdir /var/tmp" \
--define "_sourcedir pkg/$ID" \ --define "_sourcedir pkg/$PKG_SUBDIR" \
--define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \ --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \
"pkg/$ID/systemd.spec" "pkg/$PKG_SUBDIR/systemd.spec"
do do
EXIT_STATUS=$? EXIT_STATUS=$?
if [[ $EXIT_STATUS -ne 11 ]]; then if [[ $EXIT_STATUS -ne 11 ]]; then

View File

@ -7,8 +7,3 @@ Distribution=centos
Packages= Packages=
rsync # TODO: Drop when CentOS Stream 9 CI is removed. rsync # TODO: Drop when CentOS Stream 9 CI is removed.
squashfs-tools squashfs-tools
Environment=
GIT_URL=https://git.centos.org/rpms/systemd.git
GIT_BRANCH=c10s-sig-hyperscale
GIT_COMMIT=46480aaa9e0ea63a85b6ca676554ce2aae10ce36

View File

@ -2,16 +2,13 @@
# SPDX-License-Identifier: LGPL-2.1-or-later # SPDX-License-Identifier: LGPL-2.1-or-later
set -e set -e
# shellcheck source=/dev/null if [[ ! -d "pkg/$PKG_SUBDIR/debian" ]]; then
. /usr/lib/os-release echo "deb rules not found at pkg/$PKG_SUBDIR/debian, run mkosi once with -ff to make sure the rules are cloned" >&2
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 exit 1
fi fi
# We transplant the debian/ folder from the deb package sources into the upstream sources. # We transplant the debian/ folder from the deb package sources into the upstream sources.
mount --mkdir --bind "$SRCDIR/pkg/$ID/debian" "$SRCDIR"/debian mount --mkdir --bind "$SRCDIR/pkg/$PKG_SUBDIR/debian" "$SRCDIR"/debian
# We remove the patches so they don't get applied. # We remove the patches so they don't get applied.
rm -rf "$SRCDIR"/debian/patches/* rm -rf "$SRCDIR"/debian/patches/*

View File

@ -10,6 +10,7 @@ Environment=
GIT_SUBDIR=debian GIT_SUBDIR=debian
GIT_BRANCH=debian/master GIT_BRANCH=debian/master
GIT_COMMIT=2d10c12bd55efac8d7b1414601087f98674e2195 GIT_COMMIT=2d10c12bd55efac8d7b1414601087f98674e2195
PKG_SUBDIR=debian
Packages= Packages=
apt apt

View File

@ -6,13 +6,10 @@ if [[ "$1" == "build" ]]; then
exit 0 exit 0
fi fi
# shellcheck source=/dev/null if [[ ! -d "pkg/$PKG_SUBDIR/debian" ]]; then
. "$BUILDROOT/usr/lib/os-release" echo "deb rules not found at pkg/$PKG_SUBDIR/debian, run mkosi once with -ff to make sure the rules are cloned" >&2
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 exit 1
fi fi
cd "pkg/$ID" cd "pkg/$PKG_SUBDIR"
DEB_BUILD_PROFILES="pkg.systemd.upstream" apt-get build-dep . DEB_BUILD_PROFILES="pkg.systemd.upstream" apt-get build-dep .

View File

@ -4,11 +4,6 @@
Distribution=fedora Distribution=fedora
[Content] [Content]
Environment=
GIT_URL=https://src.fedoraproject.org/rpms/systemd.git
GIT_BRANCH=rawhide
GIT_COMMIT=a3524fc837f5e7b68f86b3e0a9d470a94a04c4c8
Packages= Packages=
erofs-utils erofs-utils
rpmautospec rpmautospec

View File

@ -4,12 +4,8 @@ set -e
. mkosi.functions . mkosi.functions
# shellcheck source=/dev/null if [[ ! -f "pkg/$PKG_SUBDIR/systemd.spec" ]]; then
. /usr/lib/os-release echo "spec not found at pkg/$PKG_SUBDIR/systemd.spec, run mkosi once with -ff to make sure the spec is cloned" >&2
ID="${ID%-*}"
if [[ ! -f "pkg/$ID/systemd.spec" ]]; then
echo "spec not found at pkg/$ID/systemd.spec, run mkosi once with -ff to make sure the spec is cloned" >&2
exit 1 exit 1
fi fi
@ -22,7 +18,7 @@ fi
# The openSUSE filelists hardcode the manpage compression extension. This causes rpmbuild errors since we # The openSUSE filelists hardcode the manpage compression extension. This causes rpmbuild errors since we
# disable manpage compression as the files cannot be found. Fix the issue by removing the compression # disable manpage compression as the files cannot be found. Fix the issue by removing the compression
# extension. # extension.
find "pkg/$ID" -name "files.*" -exec sed --in-place 's/\.gz$//' {} \; find "pkg/$PKG_SUBDIR" -name "files.*" -exec sed --in-place 's/\.gz$//' {} \;
if [[ "$(rpm --eval "%{lua:print(rpm.vercmp('$(rpm --version | cut -d ' ' -f3)', '4.20'))}")" == "-1" ]]; then if [[ "$(rpm --eval "%{lua:print(rpm.vercmp('$(rpm --version | cut -d ' ' -f3)', '4.20'))}")" == "-1" ]]; then
# Fix the %install override so debuginfo packages are generated. # Fix the %install override so debuginfo packages are generated.
@ -62,7 +58,7 @@ if ((WIPE)) && [[ -d "$BUILDDIR/meson-private" ]]; then
fi fi
# TODO: Drop when the spec is fixed (either the patch is adapted or not applied when building for upstream). # TODO: Drop when the spec is fixed (either the patch is adapted or not applied when building for upstream).
sed --in-place '/0009-pid1-handle-console-specificities-weirdness-for-s390.patch/d' "pkg/$ID/systemd.spec" sed --in-place '/0009-pid1-handle-console-specificities-weirdness-for-s390.patch/d' "pkg/$PKG_SUBDIR/systemd.spec"
build() { build() {
IFS= IFS=
@ -81,7 +77,7 @@ build() {
--with upstream \ --with upstream \
$( ((WITH_TESTS)) || echo "--nocheck") \ $( ((WITH_TESTS)) || echo "--nocheck") \
--define "_topdir /var/tmp" \ --define "_topdir /var/tmp" \
--define "_sourcedir pkg/$ID" \ --define "_sourcedir pkg/$PKG_SUBDIR" \
--define "_rpmdir $OUTPUTDIR" \ --define "_rpmdir $OUTPUTDIR" \
${BUILDDIR:+"--define=_vpath_builddir $BUILDDIR"} \ ${BUILDDIR:+"--define=_vpath_builddir $BUILDDIR"} \
--define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \ --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \
@ -104,7 +100,7 @@ build() {
--define "_fixperms true" \ --define "_fixperms true" \
--noclean \ --noclean \
"$@" \ "$@" \
"pkg/$ID/systemd.spec" "pkg/$PKG_SUBDIR/systemd.spec"
EXIT_STATUS=$? EXIT_STATUS=$?
@ -123,7 +119,7 @@ if ! build; then
# warnings. # warnings.
rm systemd.lang rm systemd.lang
grep -v ".debug" /tmp/unpackaged-files >>"pkg/$ID/files.systemd" grep -v ".debug" /tmp/unpackaged-files >>"pkg/$PKG_SUBDIR/files.systemd"
build --noprep --nocheck build --noprep --nocheck
fi fi

View File

@ -8,6 +8,7 @@ Environment=
GIT_URL=https://code.opensuse.org/package/systemd GIT_URL=https://code.opensuse.org/package/systemd
GIT_BRANCH=master GIT_BRANCH=master
GIT_COMMIT=6812406e52a474568744c267e7bade1496bb26a5 GIT_COMMIT=6812406e52a474568744c267e7bade1496bb26a5
PKG_SUBDIR=opensuse
Packages= Packages=
gcc-c++ gcc-c++

View File

@ -6,17 +6,13 @@ if [[ "$1" == "build" ]]; then
exit 0 exit 0
fi fi
# shellcheck source=/dev/null if [[ ! -f "pkg/$PKG_SUBDIR/systemd.spec" ]]; then
. "$BUILDROOT/usr/lib/os-release" echo "spec not found at pkg/$PKG_SUBDIR/systemd.spec, run mkosi once with -ff to make sure the spec is cloned" >&2
ID="${ID%-*}"
if [[ ! -f "pkg/$ID/systemd.spec" ]]; then
echo "spec not found at pkg/$ID/systemd.spec, run mkosi once with -ff to make sure the spec is cloned" >&2
exit 1 exit 1
fi fi
# TODO: Drop when the spec is fixed (either the patch is adapted or not applied when building for upstream). # TODO: Drop when the spec is fixed (either the patch is adapted or not applied when building for upstream).
sed --in-place '/0009-pid1-handle-console-specificities-weirdness-for-s390.patch/d' "pkg/$ID/systemd.spec" sed --in-place '/0009-pid1-handle-console-specificities-weirdness-for-s390.patch/d' "pkg/$PKG_SUBDIR/systemd.spec"
mkosi-chroot \ mkosi-chroot \
rpmspec \ rpmspec \
@ -24,8 +20,8 @@ mkosi-chroot \
--query \ --query \
--buildrequires \ --buildrequires \
--define "_topdir /var/tmp" \ --define "_topdir /var/tmp" \
--define "_sourcedir pkg/$ID" \ --define "_sourcedir pkg/$PKG_SUBDIR" \
"pkg/$ID/systemd.spec" | "pkg/$PKG_SUBDIR/systemd.spec" |
grep --invert-match --regexp systemd --regexp /bin/sh --regexp "rpmlib(" --regexp udev | grep --invert-match --regexp systemd --regexp /bin/sh --regexp "rpmlib(" --regexp udev |
sort --unique | sort --unique |
tee /tmp/buildrequires | tee /tmp/buildrequires |
@ -37,9 +33,9 @@ until mkosi-chroot \
--build-in-place \ --build-in-place \
--with upstream \ --with upstream \
--define "_topdir /var/tmp" \ --define "_topdir /var/tmp" \
--define "_sourcedir pkg/$ID" \ --define "_sourcedir pkg/$PKG_SUBDIR" \
--define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \ --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \
"pkg/$ID/systemd.spec" "pkg/$PKG_SUBDIR/systemd.spec"
do do
EXIT_STATUS=$? EXIT_STATUS=$?
if [[ $EXIT_STATUS -ne 11 ]]; then if [[ $EXIT_STATUS -ne 11 ]]; then

View File

@ -7,20 +7,18 @@ if ((${NO_SYNC:-0})) || ((${NO_BUILD:-0})); then
exit 0 exit 0
fi fi
PKG_SUBDIR="$(realpath --canonicalize-missing "pkg/$DISTRIBUTION" --relative-to "$PWD")" if [[ -d "pkg/$PKG_SUBDIR/.git" ]]; then
if [[ "$(git -C "pkg/$PKG_SUBDIR" rev-parse HEAD)" == "$GIT_COMMIT" ]]; then
if [[ -d "$PKG_SUBDIR/.git" ]]; then
if [[ "$(git -C "$PKG_SUBDIR" rev-parse HEAD)" == "$GIT_COMMIT" ]]; then
exit 0 exit 0
fi fi
if ! git -C "$PKG_SUBDIR" show-ref --quiet "origin/$GIT_BRANCH"; then if ! git -C "pkg/$PKG_SUBDIR" show-ref --quiet "origin/$GIT_BRANCH"; then
git -C "$PKG_SUBDIR" remote set-url origin "$GIT_URL" git -C "pkg/$PKG_SUBDIR" remote set-url origin "$GIT_URL"
git -C "$PKG_SUBDIR" fetch origin "$GIT_BRANCH" git -C "pkg/$PKG_SUBDIR" fetch origin "$GIT_BRANCH"
fi fi
# If work is being done on the packaging rules in a separate branch, don't touch the checkout. # 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 if ! git -C "pkg/$PKG_SUBDIR" merge-base --is-ancestor HEAD "origin/$GIT_BRANCH"; then
EXIT_STATUS=$? EXIT_STATUS=$?
if [[ $EXIT_STATUS -eq 1 ]]; then if [[ $EXIT_STATUS -eq 1 ]]; then
exit 0 exit 0
@ -30,7 +28,7 @@ if [[ -d "$PKG_SUBDIR/.git" ]]; then
fi fi
fi fi
if [[ ! -e "$PKG_SUBDIR" ]] || [[ -z "$(ls --almost-all "$PKG_SUBDIR")" ]]; then if [[ ! -e "pkg/$PKG_SUBDIR" ]] || [[ -z "$(ls --almost-all "pkg/$PKG_SUBDIR")" ]]; then
# The repository on Salsa has the full upstream sources, so it's a waste of # 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 # space to redownload and duplicate everything, so do a sparse checkout as
# we only need the packaging directory anyway. # we only need the packaging directory anyway.
@ -40,14 +38,14 @@ if [[ ! -e "$PKG_SUBDIR" ]] || [[ -z "$(ls --almost-all "$PKG_SUBDIR")" ]]; then
sparse=() sparse=()
fi fi
git clone "$GIT_URL" --branch "$GIT_BRANCH" "${sparse[@]}" "$PKG_SUBDIR" git clone "$GIT_URL" --branch "$GIT_BRANCH" "${sparse[@]}" "pkg/$PKG_SUBDIR"
if [[ -n "${GIT_SUBDIR:-}" ]]; then if [[ -n "${GIT_SUBDIR:-}" ]]; then
# --no-cone is needed to check out only one top-level directory # --no-cone is needed to check out only one top-level directory
git -C "$PKG_SUBDIR" sparse-checkout set --no-cone "${GIT_SUBDIR:-}" git -C "pkg/$PKG_SUBDIR" sparse-checkout set --no-cone "${GIT_SUBDIR:-}"
fi fi
else else
git -C "$PKG_SUBDIR" remote set-url origin "$GIT_URL" git -C "pkg/$PKG_SUBDIR" remote set-url origin "$GIT_URL"
git -C "$PKG_SUBDIR" fetch origin "$GIT_BRANCH" git -C "pkg/$PKG_SUBDIR" fetch origin "$GIT_BRANCH"
fi fi
git -C "$PKG_SUBDIR" -c advice.detachedHead=false checkout "$GIT_COMMIT" git -C "pkg/$PKG_SUBDIR" -c advice.detachedHead=false checkout "$GIT_COMMIT"

View File

@ -1 +0,0 @@
debian