diff --git a/mkosi.functions b/mkosi.functions index 993f2e8a394..c1a4a1dee53 100644 --- a/mkosi.functions +++ b/mkosi.functions @@ -52,6 +52,4 @@ EOF --copy-source="$1" \ --pretty=no \ "$BUILDDIR"/systemd.raw - - cp "$BUILDDIR"/systemd.raw "$OUTPUTDIR" } diff --git a/mkosi.images/build/mkosi.conf.d/arch/mkosi.build.chroot b/mkosi.images/build/mkosi.conf.d/arch/mkosi.build.chroot index 1e3a74f9533..0267b3c876a 100755 --- a/mkosi.images/build/mkosi.conf.d/arch/mkosi.build.chroot +++ b/mkosi.images/build/mkosi.conf.d/arch/mkosi.build.chroot @@ -68,6 +68,11 @@ 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")/" +( + shopt -s nullglob + rm -f "$BUILDDIR"/*.pkg.tar +) + # We get around makepkg's root check by setting EUID to something else. # Linting the PKGBUILD takes multiple seconds every build so avoid that by nuking all the linting functions. # shellcheck disable=SC2046 @@ -82,14 +87,8 @@ env --chdir="pkg/$PKG_SUBDIR" \ _systemd_UPSTREAM=1 \ _systemd_QUIET=$( ((MESON_VERBOSE)); echo $? ) \ BUILDDIR="$PWD/pkg/$PKG_SUBDIR" \ - PKGDEST="$OUTPUTDIR" \ + PKGDEST="$BUILDDIR" \ PKGEXT=".pkg.tar" \ MESON_EXTRA_CONFIGURE_OPTIONS="$MKOSI_MESON_OPTIONS $MESON_OPTIONS" -( - shopt -s nullglob - rm -f "$BUILDDIR"/*.pkg.tar -) - -cp "$OUTPUTDIR"/*.pkg.tar "$PACKAGEDIR" -cp "$OUTPUTDIR"/*.pkg.tar "$BUILDDIR" +cp "$BUILDDIR"/*.pkg.tar "$PACKAGEDIR" diff --git a/mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.build.chroot b/mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.build.chroot index fa2672d2a28..8ad3f328c47 100755 --- a/mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.build.chroot +++ b/mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.build.chroot @@ -53,6 +53,11 @@ if ((WIPE)) && [[ -d "$BUILDDIR/meson-private" ]]; then MKOSI_MESON_OPTIONS="$MKOSI_MESON_OPTIONS --wipe" fi +( + shopt -s nullglob + rm -f "$BUILDDIR"/*.rpm +) + IFS= # TODO: Replace meson_build and meson_install overrides with "--undefine __meson_verbose" once # https://github.com/mesonbuild/meson/pull/12835 is available. @@ -73,7 +78,7 @@ CXX_LD="$( ((LLVM)) && echo lld)" \ $( ((WITH_DOCS)) || echo "--without=docs") \ --define "_topdir /var/tmp" \ --define "_sourcedir $PWD/pkg/$PKG_SUBDIR" \ - --define "_rpmdir $OUTPUTDIR" \ + --define "_rpmdir $BUILDDIR" \ ${BUILDDIR:+"--define=_vpath_builddir $BUILDDIR"} \ --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \ --define "_binary_payload w.ufdio" \ @@ -101,12 +106,6 @@ CXX_LD="$( ((LLVM)) && echo lld)" \ --noclean \ "pkg/$PKG_SUBDIR/systemd.spec" -( - shopt -s nullglob - rm -f "$BUILDDIR"/*.rpm -) - -cp "$OUTPUTDIR"/*.rpm "$PACKAGEDIR" -cp "$OUTPUTDIR"/*.rpm "$BUILDDIR" +cp "$BUILDDIR"/*.rpm "$PACKAGEDIR" make_sysext_unsigned /var/tmp/BUILD/*/BUILDROOT diff --git a/mkosi.images/build/mkosi.conf.d/debian-ubuntu/mkosi.build.chroot b/mkosi.images/build/mkosi.conf.d/debian-ubuntu/mkosi.build.chroot index 0d33b10d6f0..fe8a49748ad 100755 --- a/mkosi.images/build/mkosi.conf.d/debian-ubuntu/mkosi.build.chroot +++ b/mkosi.images/build/mkosi.conf.d/debian-ubuntu/mkosi.build.chroot @@ -133,8 +133,8 @@ fi 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 ) diff --git a/mkosi.images/build/mkosi.conf.d/opensuse/mkosi.build.chroot b/mkosi.images/build/mkosi.conf.d/opensuse/mkosi.build.chroot index 0a5b47b0315..9043ef6746c 100755 --- a/mkosi.images/build/mkosi.conf.d/opensuse/mkosi.build.chroot +++ b/mkosi.images/build/mkosi.conf.d/opensuse/mkosi.build.chroot @@ -75,7 +75,7 @@ build() { $( ((WITH_TESTS)) || echo "--nocheck") \ --define "_topdir /var/tmp" \ --define "_sourcedir $PWD/pkg/$PKG_SUBDIR" \ - --define "_rpmdir $OUTPUTDIR" \ + --define "_rpmdir $BUILDDIR" \ ${BUILDDIR:+"--define=_vpath_builddir $BUILDDIR"} \ --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \ --define "_binary_payload w.ufdio" \ @@ -106,6 +106,11 @@ build() { return $EXIT_STATUS } +( + shopt -s nullglob + rm -f "$BUILDDIR"/*.rpm +) + if ! build; then if [[ ! -s /tmp/unpackaged-files ]]; then exit 1 @@ -119,12 +124,6 @@ if ! build; then build --noprep --nocheck fi -( - shopt -s nullglob - rm -f "$BUILDDIR"/*.rpm -) - -cp "$OUTPUTDIR"/*.rpm "$PACKAGEDIR" -cp "$OUTPUTDIR"/*.rpm "$BUILDDIR" +cp "$BUILDDIR"/*.rpm "$PACKAGEDIR" make_sysext_unsigned /var/tmp/BUILD/*/BUILDROOT diff --git a/mkosi.postinst.chroot b/mkosi.postinst.chroot index 0d0eab93d25..a35f824176b 100755 --- a/mkosi.postinst.chroot +++ b/mkosi.postinst.chroot @@ -3,6 +3,8 @@ set -e set -o nounset +find "$BUILDDIR" \( -name "*.rpm" -o -name "*.deb" -o -name "*.pkg.tar" -o -name systemd.raw \) -exec cp -t "$OUTPUTDIR" {} \; + useradd \ --uid 4711 \ --user-group \