diff options
author | Daan De Meyer <daan.j.demeyer@gmail.com> | 2024-03-08 12:57:31 +0100 |
---|---|---|
committer | Daan De Meyer <daan.j.demeyer@gmail.com> | 2024-03-13 12:07:09 +0100 |
commit | 4cc17467a1254a09b15657aa0288fae168bd3f7e (patch) | |
tree | 6cfa0ee011d65869994ac99d8d6898ae58559326 /mkosi.images | |
parent | update TODO (diff) | |
download | systemd-4cc17467a1254a09b15657aa0288fae168bd3f7e.tar.xz systemd-4cc17467a1254a09b15657aa0288fae168bd3f7e.zip |
mkosi: Use same pkg/ subdirectory for debian and ubuntu
Instead of cloning the same repository twice, let's make sure we
use the same directory for both debian/ubuntu.
Diffstat (limited to 'mkosi.images')
14 files changed, 49 insertions, 44 deletions
diff --git a/mkosi.images/base/mkosi.conf.d/10-arch/mkosi.build.chroot b/mkosi.images/base/mkosi.conf.d/10-arch/mkosi.build.chroot index 9acfde1635..aff566f94c 100755 --- a/mkosi.images/base/mkosi.conf.d/10-arch/mkosi.build.chroot +++ b/mkosi.images/base/mkosi.conf.d/10-arch/mkosi.build.chroot @@ -2,17 +2,17 @@ # SPDX-License-Identifier: LGPL-2.1-or-later set -ex -if [ ! -f "pkg/$DISTRIBUTION/PKGBUILD" ]; then - echo "PKGBUILD not found at pkg/$DISTRIBUTION/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 # We can't configure the source or build directory so we use bind mounts instead to make sure they are in the # expected locations. -mount --mkdir --bind "$SRCDIR" "pkg/$DISTRIBUTION/systemd-stable/" -mount --mkdir --bind "$BUILDDIR" "pkg/$DISTRIBUTION/build/" +mount --mkdir --bind "$SRCDIR" "pkg/$PKG_SUBDIR/systemd-stable/" +mount --mkdir --bind "$BUILDDIR" "pkg/$PKG_SUBDIR/build/" # Because we run with --noextract we are responsible for making sure the source files appear in src/. -mount --mkdir --rbind "$PWD/pkg/$DISTRIBUTION" "pkg/$DISTRIBUTION/src/" +mount --mkdir --rbind "$PWD/pkg/$PKG_SUBDIR" "pkg/$PKG_SUBDIR/src/" # shellcheck source=/dev/null . /etc/makepkg.conf @@ -37,7 +37,7 @@ fi # We get around makepkg's root check by setting EUID to something else. # shellcheck disable=SC2046 -env --chdir="pkg/$DISTRIBUTION" \ +env --chdir="pkg/$PKG_SUBDIR" \ EUID=123 \ makepkg \ --noextract \ @@ -45,7 +45,7 @@ env --chdir="pkg/$DISTRIBUTION" \ --force \ UPSTREAM=1 \ QUIET=1 \ - BUILDDIR="$PWD/pkg/$DISTRIBUTION" \ + BUILDDIR="$PWD/pkg/$PKG_SUBDIR" \ PKGDEST="$PACKAGEDIR" \ PKGEXT=".pkg.tar" \ PKGVER="$(cat meson.version)" \ diff --git a/mkosi.images/base/mkosi.conf.d/10-arch/mkosi.conf b/mkosi.images/base/mkosi.conf.d/10-arch/mkosi.conf index 58a57d0283..75dbbb2dde 100644 --- a/mkosi.images/base/mkosi.conf.d/10-arch/mkosi.conf +++ b/mkosi.images/base/mkosi.conf.d/10-arch/mkosi.conf @@ -12,6 +12,7 @@ InitrdInclude=initrd/ Environment= PKG_URL="https://gitlab.archlinux.org/daandemeyer/systemd" PKG_BRANCH="strip" + PKG_SUBDIR="arch" SYSTEMD_PACKAGES="systemd systemd-ukify systemd-sysvcompat systemd-resolvconf" Packages= diff --git a/mkosi.images/base/mkosi.conf.d/10-arch/mkosi.prepare b/mkosi.images/base/mkosi.conf.d/10-arch/mkosi.prepare index d6e2d4eb3d..24c91e5665 100755 --- a/mkosi.images/base/mkosi.conf.d/10-arch/mkosi.prepare +++ b/mkosi.images/base/mkosi.conf.d/10-arch/mkosi.prepare @@ -2,14 +2,14 @@ # SPDX-License-Identifier: LGPL-2.1-or-later set -e -if [ ! -f "pkg/$DISTRIBUTION/PKGBUILD" ]; then - echo "PKGBUILD not found at pkg/$DISTRIBUTION/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 if [ "$1" = "final" ]; then # We get depends and optdepends from .SRCINFO as getting them from the PKGBUILD is rather complex. - sed --expression 's/^[ \t]*//' "pkg/$DISTRIBUTION/.SRCINFO" | + sed --expression 's/^[ \t]*//' "pkg/$PKG_SUBDIR/.SRCINFO" | grep --regexp '^depends =' --regexp '^optdepends =' | sed --expression 's/^depends = //' --expression 's/^optdepends = //' --expression 's/:.*//' | xargs --delimiter '\n' mkosi-install @@ -17,7 +17,7 @@ else # We get makedepends from the PKGBUILD as .SRCINFO can't encode conditional dependencies depending on # whether some environment variable is set or not. # shellcheck source=/dev/null - UPSTREAM=1 . "pkg/$DISTRIBUTION/PKGBUILD" + UPSTREAM=1 . "pkg/$PKG_SUBDIR/PKGBUILD" # shellcheck disable=SC2154 mkosi-install "${makedepends[@]}" diff --git a/mkosi.images/base/mkosi.conf.d/10-centos-fedora/mkosi.build.chroot b/mkosi.images/base/mkosi.conf.d/10-centos-fedora/mkosi.build.chroot index cf3be64538..3ee0900175 100755 --- a/mkosi.images/base/mkosi.conf.d/10-centos-fedora/mkosi.build.chroot +++ b/mkosi.images/base/mkosi.conf.d/10-centos-fedora/mkosi.build.chroot @@ -2,8 +2,8 @@ # SPDX-License-Identifier: LGPL-2.1-or-later set -ex -if [ ! -f "pkg/$DISTRIBUTION/systemd.spec" ]; then - echo "spec not found at pkg/$DISTRIBUTION/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 +22,7 @@ rpmbuild \ --with upstream \ $( ((WITH_TESTS)) || echo --nocheck) \ --define "_topdir /var/tmp" \ - --define "_sourcedir pkg/$DISTRIBUTION" \ + --define "_sourcedir pkg/$PKG_SUBDIR" \ --define "_rpmdir $PACKAGEDIR" \ ${BUILDDIR:+--define} \ ${BUILDDIR:+"_vpath_builddir $BUILDDIR"} \ @@ -44,4 +44,4 @@ rpmbuild \ --define "__elf_exclude_path ^/usr/lib/systemd/tests/unit-tests/.*$" \ --define "__script_requires %{nil}" \ --undefine _lto_cflags \ - "pkg/$DISTRIBUTION/systemd.spec" + "pkg/$PKG_SUBDIR/systemd.spec" diff --git a/mkosi.images/base/mkosi.conf.d/10-centos-fedora/mkosi.prepare b/mkosi.images/base/mkosi.conf.d/10-centos-fedora/mkosi.prepare index c07251a7e1..0b48e1e474 100755 --- a/mkosi.images/base/mkosi.conf.d/10-centos-fedora/mkosi.prepare +++ b/mkosi.images/base/mkosi.conf.d/10-centos-fedora/mkosi.prepare @@ -2,8 +2,8 @@ # SPDX-License-Identifier: LGPL-2.1-or-later set -ex -if [ ! -f "pkg/$DISTRIBUTION/systemd.spec" ]; then - echo "spec not found at pkg/$DISTRIBUTION/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 @@ -19,8 +19,8 @@ mkosi-chroot \ --query \ "$DEPS" \ --define "_topdir /var/tmp" \ - --define "_sourcedir pkg/$DISTRIBUTION" \ - "pkg/$DISTRIBUTION/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 | @@ -33,7 +33,7 @@ fi # 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/$DISTRIBUTION/systemd.spec" +sed '/Source0/d' --in-place "pkg/$PKG_SUBDIR/systemd.spec" until mkosi-chroot \ rpmbuild \ @@ -41,9 +41,9 @@ until mkosi-chroot \ --build-in-place \ --with upstream \ --define "_topdir /var/tmp" \ - --define "_sourcedir pkg/$DISTRIBUTION" \ + --define "_sourcedir pkg/$PKG_SUBDIR" \ --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \ - "pkg/$DISTRIBUTION/systemd.spec" + "pkg/$PKG_SUBDIR/systemd.spec" do EXIT_STATUS=$? if [ $EXIT_STATUS -ne 11 ]; then diff --git a/mkosi.images/base/mkosi.conf.d/10-centos/mkosi.conf b/mkosi.images/base/mkosi.conf.d/10-centos/mkosi.conf index dd08467aaf..607c2d2daf 100644 --- a/mkosi.images/base/mkosi.conf.d/10-centos/mkosi.conf +++ b/mkosi.images/base/mkosi.conf.d/10-centos/mkosi.conf @@ -7,6 +7,7 @@ Distribution=centos Environment= PKG_URL="https://git.centos.org/rpms/systemd" PKG_BRANCH="c9s-sig-hyperscale" + PKG_SUBDIR="centos" Packages= kernel-modules # For squashfs support diff --git a/mkosi.images/base/mkosi.conf.d/10-debian-ubuntu/mkosi.build.chroot b/mkosi.images/base/mkosi.conf.d/10-debian-ubuntu/mkosi.build.chroot index d1ec8c1894..7fb650f501 100755 --- a/mkosi.images/base/mkosi.conf.d/10-debian-ubuntu/mkosi.build.chroot +++ b/mkosi.images/base/mkosi.conf.d/10-debian-ubuntu/mkosi.build.chroot @@ -2,13 +2,13 @@ # SPDX-License-Identifier: LGPL-2.1-or-later set -e -if [ ! -d "pkg/$DISTRIBUTION/debian" ]; then - echo "deb rules not found at pkg/$DISTRIBUTION/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/$DISTRIBUTION/debian" "$SRCDIR"/debian +mount --mkdir --bind "$SRCDIR/pkg/$PKG_SUBDIR/debian" "$SRCDIR"/debian # We hide the patches/ directory by mounting an empty directory on top so they don't get applied. TMP=$(mktemp -d) diff --git a/mkosi.images/base/mkosi.conf.d/10-debian-ubuntu/mkosi.conf b/mkosi.images/base/mkosi.conf.d/10-debian-ubuntu/mkosi.conf index c2a9c399e1..f6fc43a848 100644 --- a/mkosi.images/base/mkosi.conf.d/10-debian-ubuntu/mkosi.conf +++ b/mkosi.images/base/mkosi.conf.d/10-debian-ubuntu/mkosi.conf @@ -11,6 +11,7 @@ InitrdInclude=initrd/ Environment= PKG_URL="https://salsa.debian.org/systemd-team/systemd" PKG_BRANCH="debian/master" + PKG_SUBDIR="debian" SYSTEMD_PACKAGES="systemd systemd-userdbd systemd-oomd diff --git a/mkosi.images/base/mkosi.conf.d/10-debian-ubuntu/mkosi.prepare b/mkosi.images/base/mkosi.conf.d/10-debian-ubuntu/mkosi.prepare index 32c60feb7e..ae0d6fd92f 100755 --- a/mkosi.images/base/mkosi.conf.d/10-debian-ubuntu/mkosi.prepare +++ b/mkosi.images/base/mkosi.conf.d/10-debian-ubuntu/mkosi.prepare @@ -6,10 +6,10 @@ if [ "$1" = "final" ]; then exit 0 fi -if [ ! -d "pkg/$DISTRIBUTION/debian" ]; then - echo "deb rules not found at pkg/$DISTRIBUTION/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/$DISTRIBUTION" +cd "pkg/$PKG_SUBDIR" DEB_BUILD_PROFILES="pkg.systemd.upstream" apt-get build-dep . diff --git a/mkosi.images/base/mkosi.conf.d/10-fedora/mkosi.conf b/mkosi.images/base/mkosi.conf.d/10-fedora/mkosi.conf index cea31ed697..1424709cef 100644 --- a/mkosi.images/base/mkosi.conf.d/10-fedora/mkosi.conf +++ b/mkosi.images/base/mkosi.conf.d/10-fedora/mkosi.conf @@ -7,6 +7,7 @@ Distribution=fedora Environment= PKG_URL="https://src.fedoraproject.org/rpms/systemd" PKG_BRANCH="rawhide" + PKG_SUBDIR="fedora" Packages= btrfs-progs diff --git a/mkosi.images/base/mkosi.conf.d/10-opensuse/mkosi.build.chroot b/mkosi.images/base/mkosi.conf.d/10-opensuse/mkosi.build.chroot index e1abe0b135..e6246e52d5 100755 --- a/mkosi.images/base/mkosi.conf.d/10-opensuse/mkosi.build.chroot +++ b/mkosi.images/base/mkosi.conf.d/10-opensuse/mkosi.build.chroot @@ -2,8 +2,8 @@ # SPDX-License-Identifier: LGPL-2.1-or-later set -ex -if [ ! -f "pkg/$DISTRIBUTION/systemd.spec" ]; then - echo "spec not found at pkg/$DISTRIBUTION/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 @@ -16,7 +16,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/$DISTRIBUTION" -name "files.*" -exec sed --in-place 's/\.gz$//' {} \; +find "pkg/$PKG_SUBDIR" -name "files.*" -exec sed --in-place 's/\.gz$//' {} \; build() { # TODO: Replace meson_build and meson_install overrides with "--undefine __meson_verbose" once @@ -28,7 +28,7 @@ build() { --with upstream \ $( ((WITH_TESTS)) || echo --nocheck) \ --define "_topdir /var/tmp" \ - --define "_sourcedir pkg/$DISTRIBUTION" \ + --define "_sourcedir pkg/$PKG_SUBDIR" \ --define "_rpmdir $PACKAGEDIR" \ ${BUILDDIR:+--define} \ ${BUILDDIR:+"_vpath_builddir $BUILDDIR"} \ @@ -46,7 +46,7 @@ build() { --define "__elf_exclude_path ^/usr/lib/systemd/tests/unit-tests/.*$" \ --define "__script_requires %{nil}" \ "$@" \ - "pkg/$DISTRIBUTION/systemd.spec" + "pkg/$PKG_SUBDIR/systemd.spec" } if ! build; then @@ -58,6 +58,6 @@ if ! build; then # warnings. rm systemd.lang - cat /tmp/unpackaged-files >>"pkg/$DISTRIBUTION/files.systemd" + cat /tmp/unpackaged-files >>"pkg/$PKG_SUBDIR/files.systemd" build --noprep --nocheck fi diff --git a/mkosi.images/base/mkosi.conf.d/10-opensuse/mkosi.conf b/mkosi.images/base/mkosi.conf.d/10-opensuse/mkosi.conf index 4ef13b6ca5..1fca47b7cb 100644 --- a/mkosi.images/base/mkosi.conf.d/10-opensuse/mkosi.conf +++ b/mkosi.images/base/mkosi.conf.d/10-opensuse/mkosi.conf @@ -10,6 +10,7 @@ InitrdInclude=initrd/ Environment= PKG_URL="https://code.opensuse.org/package/systemd" PKG_BRANCH="master" + PKG_SUBDIR="opensuse" SYSTEMD_PACKAGES="systemd udev systemd-experimental diff --git a/mkosi.images/base/mkosi.conf.d/10-opensuse/mkosi.prepare b/mkosi.images/base/mkosi.conf.d/10-opensuse/mkosi.prepare index dd01a3f20e..a35a8f3bba 100755 --- a/mkosi.images/base/mkosi.conf.d/10-opensuse/mkosi.prepare +++ b/mkosi.images/base/mkosi.conf.d/10-opensuse/mkosi.prepare @@ -2,8 +2,8 @@ # SPDX-License-Identifier: LGPL-2.1-or-later set -e -if [ ! -f "pkg/$DISTRIBUTION/systemd.spec" ]; then - echo "spec not found at pkg/$DISTRIBUTION/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 @@ -19,8 +19,8 @@ mkosi-chroot \ --query \ "$DEPS" \ --define "_topdir /var/tmp" \ - --define "_sourcedir pkg/$DISTRIBUTION" \ - "pkg/$DISTRIBUTION/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 | @@ -36,9 +36,9 @@ until mkosi-chroot \ --build-in-place \ --with upstream \ --define "_topdir /var/tmp" \ - --define "_sourcedir pkg/$DISTRIBUTION" \ + --define "_sourcedir pkg/$PKG_SUBDIR" \ --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \ - "pkg/$DISTRIBUTION/systemd.spec" + "pkg/$PKG_SUBDIR/systemd.spec" do EXIT_STATUS=$? if [ $EXIT_STATUS -ne 11 ]; then diff --git a/mkosi.images/base/mkosi.sync b/mkosi.images/base/mkosi.sync index 5ab43befc1..b95a73bc08 100755 --- a/mkosi.images/base/mkosi.sync +++ b/mkosi.images/base/mkosi.sync @@ -6,8 +6,8 @@ if ((CACHED)); then exit 0 fi -if [ -z "$(ls --almost-all "pkg/$DISTRIBUTION")" ]; then - git clone "$PKG_URL" --branch "$PKG_BRANCH" "pkg/$DISTRIBUTION" -elif [ -d "pkg/$DISTRIBUTION/.git" ] && [ "$(git -C "pkg/$DISTRIBUTION" rev-parse --abbrev-ref HEAD)" = "$PKG_BRANCH" ]; then - git -C "pkg/$DISTRIBUTION" pull +if [ -z "$(ls --almost-all "pkg/$PKG_SUBDIR")" ]; then + git clone "$PKG_URL" --branch "$PKG_BRANCH" "pkg/$PKG_SUBDIR" +elif [ -d "pkg/$PKG_SUBDIR/.git" ] && [ "$(git -C "pkg/$PKG_SUBDIR" rev-parse --abbrev-ref HEAD)" = "$PKG_BRANCH" ]; then + git -C "pkg/$PKG_SUBDIR" pull fi |