This is analogous to a change in mkosi[1] with the same motivation: some scripts are run to bootstrap the distribution tree and are thus running directly on the host system which may not have `/bin/bash` (e.g. NixOS). As with the `mkosi` change, do that for each shebang for consistency reasons. [1] https://github.com/systemd/mkosi/commit/8d2cd50e5192cada7211724ecff3514f0c85cf0f
63 lines
2.0 KiB
Bash
Executable File
63 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -e
|
|
|
|
if [[ "$1" == "build" ]] || ((NO_BUILD)); then
|
|
exit 0
|
|
fi
|
|
|
|
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
|
|
|
|
mkosi-chroot \
|
|
rpmspec \
|
|
--with upstream \
|
|
--query \
|
|
--buildrequires \
|
|
--define "_topdir /var/tmp" \
|
|
--define "_sourcedir $PWD/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 |
|
|
xargs --delimiter '\n' mkosi-install
|
|
|
|
# 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' "pkg/$PKG_SUBDIR/systemd.spec" >/tmp/systemd.spec
|
|
mount --bind /tmp/systemd.spec "pkg/$PKG_SUBDIR/systemd.spec"
|
|
|
|
until mkosi-chroot \
|
|
rpmbuild \
|
|
-br \
|
|
--noprep \
|
|
--build-in-place \
|
|
--with upstream \
|
|
--define "_topdir /var/tmp" \
|
|
--define "_sourcedir $PWD/pkg/$PKG_SUBDIR" \
|
|
--define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \
|
|
"pkg/$PKG_SUBDIR/systemd.spec"
|
|
do
|
|
EXIT_STATUS=$?
|
|
if [[ $EXIT_STATUS -ne 11 ]]; then
|
|
exit $EXIT_STATUS
|
|
fi
|
|
|
|
mkosi-chroot \
|
|
rpm \
|
|
--query \
|
|
--package \
|
|
--requires \
|
|
/var/tmp/SRPMS/systemd-*.buildreqs.nosrc.rpm |
|
|
grep --invert-match '^rpmlib(' |
|
|
sort --unique >/tmp/dynamic-buildrequires
|
|
|
|
sort /tmp/buildrequires /tmp/dynamic-buildrequires |
|
|
uniq --unique |
|
|
tee --append /tmp/buildrequires |
|
|
xargs --delimiter '\n' mkosi-install
|
|
done
|