| #!/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 |