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:
commit
6d9d14e516
@ -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"
|
||||||
|
@ -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
|
||||||
|
@ -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[@]}"
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
|
||||||
|
@ -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/*
|
||||||
|
@ -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
|
||||||
|
@ -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 .
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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++
|
||||||
|
@ -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
|
||||||
|
@ -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"
|
||||||
|
@ -1 +0,0 @@
|
|||||||
debian
|
|
Loading…
Reference in New Issue
Block a user