1#!/bin/sh -e 2 3# Run this from the 'packages' directory, just under rootdir 4 5# We can only build rpm packages, if the rpm build tools are installed 6if [ \! -x /usr/bin/rpmbuild ] 7then 8 echo "Cannot find /usr/bin/rpmbuild. Not building an rpm." 1>&2 9 exit 0 10fi 11 12# Check the commandline flags 13PACKAGE="$1" 14VERSION="$2" 15fullname="${PACKAGE}-${VERSION}" 16archive=../$fullname.tar.gz 17 18if [ -z "$1" -o -z "$2" ] 19then 20 echo "Usage: $0 <package name> <package version>" 1>&2 21 exit 0 22fi 23 24# Double-check we're in the packages directory, just under rootdir 25if [ \! -r ../Makefile -a \! -r ../INSTALL ] 26then 27 echo "Must run $0 in the 'packages' directory, under the root directory." 1>&2 28 echo "Also, you must run \"make dist\" before running this script." 1>&2 29 exit 0 30fi 31 32if [ \! -r "$archive" ] 33then 34 echo "Cannot find $archive. Run \"make dist\" first." 1>&2 35 exit 0 36fi 37 38# Create the directory where the input lives, and where the output should live 39RPM_SOURCE_DIR="/tmp/rpmsource-$fullname" 40RPM_BUILD_DIR="/tmp/rpmbuild-$fullname" 41 42trap 'rm -rf $RPM_SOURCE_DIR $RPM_BUILD_DIR; exit $?' EXIT SIGHUP SIGINT SIGTERM 43 44rm -rf "$RPM_SOURCE_DIR" "$RPM_BUILD_DIR" 45mkdir "$RPM_SOURCE_DIR" 46mkdir "$RPM_BUILD_DIR" 47 48cp "$archive" "$RPM_SOURCE_DIR" 49 50rpmbuild -bb rpm/rpm.spec \ 51 --define "NAME $PACKAGE" \ 52 --define "VERSION $VERSION" \ 53 --define "_sourcedir $RPM_SOURCE_DIR" \ 54 --define "_builddir $RPM_BUILD_DIR" \ 55 --define "_rpmdir $RPM_SOURCE_DIR" 56 57# We put the output in a directory based on what system we've built for 58destdir=rpm-unknown 59if [ -r /etc/issue ] 60then 61 grep "Red Hat.*release 7" /etc/issue >/dev/null 2>&1 && destdir=rh7 62 grep "Red Hat.*release 8" /etc/issue >/dev/null 2>&1 && destdir=rh8 63 grep "Red Hat.*release 9" /etc/issue >/dev/null 2>&1 && destdir=rh9 64 if grep Fedora /etc/issue >/dev/null; then 65 destdir=fc`grep Fedora /etc/issue | cut -d' ' -f 4`; 66 fi 67fi 68 69rm -rf "$destdir" 70mkdir -p "$destdir" 71# We want to get not only the main package but devel etc, hence the middle * 72mv "$RPM_SOURCE_DIR"/*/"${PACKAGE}"-*"${VERSION}"*.rpm "$destdir" 73 74echo 75echo "The rpm package file(s) are located in $PWD/$destdir" 76