#! /bin/bash -ex
## @id $Id$
## Resolve RPM Build Dependencies
## Installs all the required packages
## Call: ./resolve-rpmbuilddeps 'name of build schroot'
## e.g. call: ./resolve-rpmbuilddeps opensuse-13.2_x86_64
## 1 2 3 4 5 6 7 8
## 45678901234567890123456789012345678901234567890123456789012345678901234567890
INSTALL_TOOL = ${ INSTALL_TOOL :- $(( test - x / usr/bin/zypper & & echo zypper install - y) | | ( test - x / usr/bin/dnf & & echo dnf install - y) | | ( test - x / usr/bin/yum & & echo yum install - y) | | ( test - x / usr/sbin/urpmi & & echo urpmi - - auto)) }
SCHROOTNAME = " $1 "
PACKAGE_NAME = $( sed -n 's/^ *m4_define(x_package_name, \(.*\)).*/\1/p' configure.ac)
TRAP_CMD =
if test -e ${ PACKAGE_NAME } .spec.in -a ! -e ${ PACKAGE_NAME } .spec; then
TRAP_CMD += " rm ${ PACKAGE_NAME } .spec; "
trap " ${ TRAP_CMD } " INT TERM EXIT
sed 's,@RPM_DEPEND_IFEXISTS@,,g' ${ PACKAGE_NAME } .spec.in | \
sed 's,@[^@]*@, dummytext,g' > ${ PACKAGE_NAME } .spec
fi
TGZFILE = $( sed -n '/^Name: */{s///;h};/^Version: */{s///;H;x;s/\n/-/;s/$/.tar.gz/;p}' ${ PACKAGE_NAME } .spec)
if ! test -e $TGZFILE ; then
TRAP_CMD += " rm ${ TGZFILE } ; "
trap " ${ TRAP_CMD } " INT TERM EXIT
touch $TGZFILE
fi
if test -n " ${ SCHROOTNAME } " ; then
FILES = $( LANG = schroot -c ${ SCHROOTNAME } -- rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${ PACKAGE_NAME } .spec 2>& 1 | sed -n 's, is needed by.*,,p' )
if test -n " ${ FILES } " ; then
schroot -c ${ SCHROOTNAME } -u root -- ${ INSTALL_TOOL } ${ FILES }
fi
else
FILES = $( LANG = rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${ PACKAGE_NAME } .spec 2>& 1 | sed -n 's, is needed by.*,,p' )
if test -n " ${ FILES } " ; then
${ INSTALL_TOOL } ${ FILES }
fi
fi
echo "**** Success: All Dependencies Resolved"