]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
mkosi: Switch back to PKG_SUBDIR instead of symlinks
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 22 Jul 2024 08:22:48 +0000 (10:22 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 22 Jul 2024 08:22:48 +0000 (10:22 +0200)
Previously I thought it would make sense to allow running the build
scripts from within the VM/container to rebuild the packages. Instead
we ended up making it possible to rerun mkosi outside of the container/VM
to rebuild the packages, so let's switch back to $PKG_SUBDIR to tell the
build scripts where to look for the packaging sources.

15 files changed:
mkosi.images/build/mkosi.conf.d/arch/mkosi.build.chroot
mkosi.images/build/mkosi.conf.d/arch/mkosi.conf
mkosi.images/build/mkosi.conf.d/arch/mkosi.prepare
mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.build.chroot
mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.prepare
mkosi.images/build/mkosi.conf.d/centos/mkosi.conf
mkosi.images/build/mkosi.conf.d/debian-ubuntu/mkosi.build.chroot
mkosi.images/build/mkosi.conf.d/debian-ubuntu/mkosi.conf
mkosi.images/build/mkosi.conf.d/debian-ubuntu/mkosi.prepare
mkosi.images/build/mkosi.conf.d/fedora/mkosi.conf
mkosi.images/build/mkosi.conf.d/opensuse/mkosi.build.chroot
mkosi.images/build/mkosi.conf.d/opensuse/mkosi.conf
mkosi.images/build/mkosi.conf.d/opensuse/mkosi.prepare
mkosi.images/build/mkosi.sync
pkg/ubuntu [deleted symlink]

index dcdb7584dae924dd895af0e4715f374d6f078103..3ffde85f35faf43c823ae5ade0ace9ce5be0cc36 100755 (executable)
@@ -2,11 +2,8 @@
 # SPDX-License-Identifier: LGPL-2.1-or-later
 set -e
 
-# 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
+if [[ ! -f "pkg/$PKG_SUBDIR/PKGBUILD" ]]; then
+    echo "PKGBUILD not found at pkg/$PKG_SUBDIR/PKGBUILD, run mkosi once with -ff to make sure the PKGBUILD is cloned" >&2
     exit 1
 fi
 
@@ -14,11 +11,11 @@ fi
 # 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
 # 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
-# "pkg/$ID" to "pkg/$ID/src".
-ln --symbolic "$SRCDIR" "pkg/$ID/systemd"
-ln --symbolic "$BUILDDIR" "pkg/$ID/build"
-ln --symbolic . "pkg/$ID/src"
+# sources and build directory directly into "pkg/$PKG_SUBDIR/src", we symlink them into "pkg/$PKG_SUBDIR" and
+# then symlink "pkg/$PKG_SUBDIR" to "pkg/$PKG_SUBDIR/src".
+ln --symbolic "$SRCDIR" "pkg/$PKG_SUBDIR/systemd"
+ln --symbolic "$BUILDDIR" "pkg/$PKG_SUBDIR/build"
+ln --symbolic . "pkg/$PKG_SUBDIR/src"
 
 MKOSI_CFLAGS="-O0 -Wp,-U_FORTIFY_SOURCE"
 if ((LLVM)); then
@@ -70,13 +67,13 @@ else
     TS="${SOURCE_DATE_EPOCH:-$(date +%s)}"
 fi
 
-sed --in-place "pkg/$ID/PKGBUILD" \
+sed --in-place "pkg/$PKG_SUBDIR/PKGBUILD" \
     --expression "s/^_tag=.*/_tag=$(cat meson.version)/" \
     --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.
 # shellcheck disable=SC2046
-env --chdir="pkg/$ID" \
+env --chdir="pkg/$PKG_SUBDIR" \
     EUID=123 \
     makepkg \
     --noextract \
@@ -84,7 +81,7 @@ env --chdir="pkg/$ID" \
     --force \
     _systemd_UPSTREAM=1 \
     _systemd_QUIET=$( ((MESON_VERBOSE)); echo $? ) \
-    BUILDDIR="$PWD/pkg/$ID" \
+    BUILDDIR="$PWD/pkg/$PKG_SUBDIR" \
     PKGDEST="$OUTPUTDIR" \
     PKGEXT=".pkg.tar" \
     MESON_EXTRA_CONFIGURE_OPTIONS="$MKOSI_MESON_OPTIONS $MESON_OPTIONS"
index 610c76585e069b34a0b7867b5e2332798f63f2f4..5502f53d6de4719300830dbb7af6f3516d5f8813 100644 (file)
@@ -8,6 +8,7 @@ Environment=
         GIT_URL=https://gitlab.archlinux.org/archlinux/packaging/packages/systemd.git
         GIT_BRANCH=main
         GIT_COMMIT=d74b24c7c6077740c35a876445febe6d26bf013c
+        PKG_SUBDIR=arch
 
 Packages=
         base
index e880449b72b7457bf30cfc105dd064fc17798fa9..d9e3221d313c0611fd29ebe9627c2578db092d18 100755 (executable)
@@ -6,16 +6,13 @@ if [[ "$1" == "build" ]]; then
     exit 0
 fi
 
-# shellcheck source=/dev/null
-. "$BUILDROOT/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
+if [[ ! -f "pkg/$PKG_SUBDIR/PKGBUILD" ]]; then
+    echo "PKGBUILD not found at pkg/$PKG_SUBDIR/PKGBUILD, run mkosi once with -ff to make sure the PKGBUILD is cloned" >&2
     exit 1
 fi
 
 # shellcheck source=/dev/null
-_systemd_UPSTREAM=1 . "pkg/$ID/PKGBUILD"
+_systemd_UPSTREAM=1 . "pkg/$PKG_SUBDIR/PKGBUILD"
 
 # shellcheck disable=SC2154
 mkosi-install "${makedepends[@]}"
index ce1e162ebfa6fbd27a21d7161f8af4ad761d4946..466699c4fdc6cd464a6e434341d5b445d2b2be42 100755 (executable)
@@ -4,11 +4,8 @@ set -e
 
 . mkosi.functions
 
-# shellcheck source=/dev/null
-. /usr/lib/os-release
-
-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
+if [[ ! -f "pkg/$PKG_SUBDIR/systemd.spec" ]]; then
+    echo "spec not found at pkg/$PKG_SUBDIR/systemd.spec, run mkosi once with -ff to make sure the spec is cloned" >&2
     exit 1
 fi
 
@@ -78,7 +75,7 @@ CXX_LD="$( ((LLVM)) && echo lld)" \
     $( ((WITH_TESTS)) || echo "--nocheck") \
     $( ((WITH_DOCS))  || echo "--without=docs") \
     --define "_topdir /var/tmp" \
-    --define "_sourcedir pkg/$ID" \
+    --define "_sourcedir pkg/$PKG_SUBDIR" \
     --define "_rpmdir $OUTPUTDIR" \
     ${BUILDDIR:+"--define=_vpath_builddir $BUILDDIR"} \
     --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \
@@ -106,7 +103,7 @@ CXX_LD="$( ((LLVM)) && echo lld)" \
     --define "_fixperms true" \
     --undefine _package_note_flags \
     --noclean \
-    "pkg/$ID/systemd.spec"
+    "pkg/$PKG_SUBDIR/systemd.spec"
 
 (
     shopt -s nullglob
index fe3c14eede6c3f03392815cffdfca0206ddbd950..6028dc355b680173a25ebe8d8e814e50484c1188 100755 (executable)
@@ -6,11 +6,8 @@ if [[ "$1" == "build" ]]; then
     exit 0
 fi
 
-# shellcheck source=/dev/null
-. "$BUILDROOT/usr/lib/os-release"
-
-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
+if [[ ! -f "pkg/$PKG_SUBDIR/systemd.spec" ]]; then
+    echo "spec not found at pkg/$PKG_SUBDIR/systemd.spec, run mkosi with -ff to make sure the spec is cloned" >&2
     exit 1
 fi
 
@@ -20,8 +17,8 @@ mkosi-chroot \
     --query \
     --buildrequires \
     --define "_topdir /var/tmp" \
-    --define "_sourcedir pkg/$ID" \
-    "pkg/$ID/systemd.spec" |
+    --define "_sourcedir pkg/$PKG_SUBDIR" \
+    "pkg/$PKG_SUBDIR/systemd.spec" |
         grep --invert-match --regexp systemd --regexp /bin/sh --regexp "rpmlib(" --regexp udev --regexp grubby --regexp sdubby |
         sort --unique |
         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
 # 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.
-sed '/Source0/d' --in-place "pkg/$ID/systemd.spec"
+sed '/Source0/d' --in-place "pkg/$PKG_SUBDIR/systemd.spec"
 
 until mkosi-chroot \
     rpmbuild \
@@ -38,9 +35,9 @@ until mkosi-chroot \
     --build-in-place \
     --with upstream \
     --define "_topdir /var/tmp" \
-    --define "_sourcedir pkg/$ID" \
+    --define "_sourcedir pkg/$PKG_SUBDIR" \
     --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \
-    "pkg/$ID/systemd.spec"
+    "pkg/$PKG_SUBDIR/systemd.spec"
 do
     EXIT_STATUS=$?
     if [[ $EXIT_STATUS -ne 11 ]]; then
index cbb7ed2d296f3d4cf1a328955c493869db5fce34..140aae804b2b0ca63af18c6e4ed829b7066dab56 100644 (file)
@@ -12,3 +12,4 @@ Environment=
         GIT_URL=https://git.centos.org/rpms/systemd.git
         GIT_BRANCH=c10s-sig-hyperscale
         GIT_COMMIT=46480aaa9e0ea63a85b6ca676554ce2aae10ce36
+        PKG_SUBDIR=centos
index fc9c796ad27858f12fe80b9adf830db6ff13b746..2d50afbbb43fa9de222ff691dc6087d0a670b610 100755 (executable)
@@ -2,16 +2,13 @@
 # SPDX-License-Identifier: LGPL-2.1-or-later
 set -e
 
-# 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
+if [[ ! -d "pkg/$PKG_SUBDIR/debian" ]]; then
+    echo "deb rules not found at pkg/$PKG_SUBDIR/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
+mount --mkdir --bind "$SRCDIR/pkg/$PKG_SUBDIR/debian" "$SRCDIR"/debian
 
 # We remove the patches so they don't get applied.
 rm -rf "$SRCDIR"/debian/patches/*
index 68bb32adf200637bd8a7cb7557bdf4f1939cbd5d..830137b13f353a0614a9ec8fecdad88d36086e1c 100644 (file)
@@ -10,6 +10,7 @@ Environment=
         GIT_SUBDIR=debian
         GIT_BRANCH=debian/master
         GIT_COMMIT=2d10c12bd55efac8d7b1414601087f98674e2195
+        PKG_SUBDIR=debian
 
 Packages=
         apt
index d9021fd65b24d663e5abe492fcb3b16583fbcb5f..cec81ec1d5fadc73c50958fccd68726bb107963a 100755 (executable)
@@ -6,13 +6,10 @@ if [[ "$1" == "build" ]]; then
     exit 0
 fi
 
-# shellcheck source=/dev/null
-. "$BUILDROOT/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
+if [[ ! -d "pkg/$PKG_SUBDIR/debian" ]]; then
+    echo "deb rules not found at pkg/$PKG_SUBDIR/debian, run mkosi once with -ff to make sure the rules are cloned" >&2
     exit 1
 fi
 
-cd "pkg/$ID"
+cd "pkg/$PKG_SUBDIR"
 DEB_BUILD_PROFILES="pkg.systemd.upstream" apt-get build-dep .
index 74a951ed2a78db7c7d2b9b0eea1bdc40cc4b7f8a..0e1a1cd7ef3689025e18ff41fe78632c21f7e45c 100644 (file)
@@ -8,6 +8,7 @@ Environment=
         GIT_URL=https://src.fedoraproject.org/rpms/systemd.git
         GIT_BRANCH=rawhide
         GIT_COMMIT=a3524fc837f5e7b68f86b3e0a9d470a94a04c4c8
+        PKG_SUBDIR=fedora
 
 Packages=
         erofs-utils
index 95d747cd9371b26a93d39af933ea2ff99f390abf..a1fb83cdd9320a5ebfd8938488d025db63567710 100755 (executable)
@@ -4,12 +4,8 @@ set -e
 
 . mkosi.functions
 
-# shellcheck source=/dev/null
-. /usr/lib/os-release
-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
+if [[ ! -f "pkg/$PKG_SUBDIR/systemd.spec" ]]; then
+    echo "spec not found at pkg/$PKG_SUBDIR/systemd.spec, run mkosi once with -ff to make sure the spec is cloned" >&2
     exit 1
 fi
 
@@ -22,7 +18,7 @@ fi
 # 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
 # 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
     # Fix the %install override so debuginfo packages are generated.
@@ -62,7 +58,7 @@ if ((WIPE)) && [[ -d "$BUILDDIR/meson-private" ]]; then
 fi
 
 # 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() {
     IFS=
@@ -81,7 +77,7 @@ build() {
         --with upstream \
         $( ((WITH_TESTS)) || echo "--nocheck") \
         --define "_topdir /var/tmp" \
-        --define "_sourcedir pkg/$ID" \
+        --define "_sourcedir pkg/$PKG_SUBDIR" \
         --define "_rpmdir $OUTPUTDIR" \
         ${BUILDDIR:+"--define=_vpath_builddir $BUILDDIR"} \
         --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \
@@ -104,7 +100,7 @@ build() {
         --define "_fixperms true" \
         --noclean \
         "$@" \
-        "pkg/$ID/systemd.spec"
+        "pkg/$PKG_SUBDIR/systemd.spec"
 
     EXIT_STATUS=$?
 
@@ -123,7 +119,7 @@ if ! build; then
     # warnings.
     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
 fi
 
index 770a78bc2a797c0a4ab75a9f1dce29b3fb918adc..1d55a919f05d51287c86ec67d73db6e11abadb79 100644 (file)
@@ -8,6 +8,7 @@ Environment=
         GIT_URL=https://code.opensuse.org/package/systemd
         GIT_BRANCH=master
         GIT_COMMIT=6812406e52a474568744c267e7bade1496bb26a5
+        PKG_SUBDIR=opensuse
 
 Packages=
         gcc-c++
index 3c398593b59fb0dcaaacbdd617b45c110431ea09..24f07fd459bb5aa09910e0f23f580f9881905177 100755 (executable)
@@ -6,17 +6,13 @@ if [[ "$1" == "build" ]]; then
     exit 0
 fi
 
-# shellcheck source=/dev/null
-. "$BUILDROOT/usr/lib/os-release"
-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
+if [[ ! -f "pkg/$PKG_SUBDIR/systemd.spec" ]]; then
+    echo "spec not found at pkg/$PKG_SUBDIR/systemd.spec, run mkosi once with -ff to make sure the spec is cloned" >&2
     exit 1
 fi
 
 # 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 \
     rpmspec \
@@ -24,8 +20,8 @@ mkosi-chroot \
     --query \
     --buildrequires \
     --define "_topdir /var/tmp" \
-    --define "_sourcedir pkg/$ID" \
-    "pkg/$ID/systemd.spec" |
+    --define "_sourcedir pkg/$PKG_SUBDIR" \
+    "pkg/$PKG_SUBDIR/systemd.spec" |
         grep --invert-match --regexp systemd --regexp /bin/sh --regexp "rpmlib(" --regexp udev |
         sort --unique |
         tee /tmp/buildrequires |
@@ -37,9 +33,9 @@ until mkosi-chroot \
     --build-in-place \
     --with upstream \
     --define "_topdir /var/tmp" \
-    --define "_sourcedir pkg/$ID" \
+    --define "_sourcedir pkg/$PKG_SUBDIR" \
     --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \
-    "pkg/$ID/systemd.spec"
+    "pkg/$PKG_SUBDIR/systemd.spec"
 do
     EXIT_STATUS=$?
     if [[ $EXIT_STATUS -ne 11 ]]; then
index a545d49867003ffacd9f9576e114451778f6c3e9..febe893c41f3f8d6d4cea537fd34043a9199fd21 100755 (executable)
@@ -7,20 +7,18 @@ if ((${NO_SYNC:-0})) || ((${NO_BUILD:-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
+if [[ -d "pkg/$PKG_SUBDIR/.git" ]]; then
+    if [[ "$(git -C "pkg/$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"
+    if ! git -C "pkg/$PKG_SUBDIR" show-ref --quiet "origin/$GIT_BRANCH"; then
+        git -C "pkg/$PKG_SUBDIR" remote set-url origin "$GIT_URL"
+        git -C "pkg/$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
+    if ! git -C "pkg/$PKG_SUBDIR" merge-base --is-ancestor HEAD "origin/$GIT_BRANCH"; then
         EXIT_STATUS=$?
         if [[ $EXIT_STATUS -eq 1 ]]; then
             exit 0
@@ -30,7 +28,7 @@ if [[ -d "$PKG_SUBDIR/.git" ]]; then
     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
     # space to redownload and duplicate everything, so do a sparse checkout as
     # we only need the packaging directory anyway.
@@ -40,14 +38,14 @@ if [[ ! -e "$PKG_SUBDIR" ]] || [[ -z "$(ls --almost-all "$PKG_SUBDIR")" ]]; then
         sparse=()
     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
         # --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
 else
-    git -C "$PKG_SUBDIR" remote set-url origin "$GIT_URL"
-    git -C "$PKG_SUBDIR" fetch origin "$GIT_BRANCH"
+    git -C "pkg/$PKG_SUBDIR" remote set-url origin "$GIT_URL"
+    git -C "pkg/$PKG_SUBDIR" fetch origin "$GIT_BRANCH"
 fi
 
-git -C "$PKG_SUBDIR" -c advice.detachedHead=false checkout "$GIT_COMMIT"
+git -C "pkg/$PKG_SUBDIR" -c advice.detachedHead=false checkout "$GIT_COMMIT"
diff --git a/pkg/ubuntu b/pkg/ubuntu
deleted file mode 120000 (symlink)
index b2f7fd3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-debian
\ No newline at end of file