blob: 724799915531960246443089a2280554832e350a [file] [log] [blame]
#!/bin/sh -ex
if ! [ -d /home/$BUILDUSER/rpmbuild/SOURCES ]; then
set +x
echo "ERROR: rpmdev-setuptree did not run"
echo "If this is an rpm based system and you want to build the package"
echo "here, run rpmdev-setuptree. Otherwise consider building the"
echo "package in docker (-d)."
exit 1
fi
yum_builddep="yum-builddep"
if [ -n "$INSIDE_DOCKER" ]; then
yum_builddep="yum-builddep -y"
fi
spec="$(basename "$(find _temp/srcpkgs/"$PACKAGE" -name '*.spec')")"
su "$BUILDUSER" -c "cp _temp/srcpkgs/$PACKAGE/$spec ~/rpmbuild/SPECS"
su "$BUILDUSER" -c "cp _temp/srcpkgs/$PACKAGE/*.tar.* ~/rpmbuild/SOURCES"
su "$BUILDUSER" -c "cp _temp/srcpkgs/$PACKAGE/rpmlintrc ~/rpmbuild/SOURCES"
su "$BUILDUSER" -c "cp /obs/data/rpmmacros ~/.rpmmacros"
# Force refresh of package index data (OS#6038)
if command -v dnf; then
dnf makecache --refresh
else
yum clean expire-cache
fi
case "$DISTRO" in
centos:7)
# HACK: remove pkg-config as centos7 has pkgconfig instead
# (which will get pulled in automatically). This could be
# solved more elegantly, but we only build very few centos7
# packages, so let's not spend too much time on this. In OBS
# this is handled in the centos7 prjconf:
# https://build.opensuse.org/projects/CentOS:CentOS-7/prjconf
sed -i '/^BuildRequires:.*pkg-config/d' "/home/$BUILDUSER/rpmbuild/SPECS/$spec"
;;
esac
$yum_builddep "/home/$BUILDUSER/rpmbuild/SPECS/$spec"
if [ -n "$INSIDE_DOCKER" ]; then
ip link set eth0 down
fi
su "$BUILDUSER" -c "rpmbuild -bb ~/rpmbuild/SPECS/$spec"
# Make built rpms available outside of docker
if [ -n "$INSIDE_DOCKER" ]; then
su "$BUILDUSER" -c "mv ~/rpmbuild/RPMS/*/*.rpm _temp/binpkgs/"
fi
# Show contents
cd _temp/binpkgs
for i in *.rpm; do
rpm -qlp "$i"
done