diff options
Diffstat (limited to 'scripts/obs/data/build_rpm.sh')
-rwxr-xr-x | scripts/obs/data/build_rpm.sh | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/scripts/obs/data/build_rpm.sh b/scripts/obs/data/build_rpm.sh new file mode 100755 index 0000000..7247999 --- /dev/null +++ b/scripts/obs/data/build_rpm.sh @@ -0,0 +1,60 @@ +#!/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 |