Bochs/bochs/build/redhat/make-rpm
Jonathan S. Shapiro 5d46a86614 Patched the make-rpm script to work when rpmbuild exists.
I am somewhat unhappy about the fact that this patch relies (at the
top) on finding rpmbuild in /usr/bin/. A better patch would search the
user's path properly, or perhaps be generated via configure to know
the correct rpmbuild path.
2002-11-07 16:00:14 +00:00

101 lines
2.8 KiB
Bash
Executable File

#!/bin/bash -x
#########################################################################
# $Id: make-rpm,v 1.4 2002-11-07 16:00:14 shap Exp $
#########################################################################
# build/redhat/make-rpm
#
# This script creates an RPM from the bochs directory. You must run
# it as root from the top of the source directory (where the configure
# scripts are). Then just run:
# ./build/redhat/make-rpm
#
#########################################################################
CAT=cat
RM=rm
CP=cp
MV=mv
MKDIR=mkdir
GREP=grep
ECHO=echo
RPM=rpm
RPMBUILD=/usr/bin/rpmbuild
SED=sed
TAR=tar
RPMSRCPATH=_rpm_top
SOURCES=${RPMSRCPATH}/SOURCES
SPECS=${RPMSRCPATH}/SPECS
RPMSPEC="build/redhat/bochs.rpmspec.template"
TMPDIR=/tmp
echo Reading version from configure.in script.
VERSION='unknown'
eval `${GREP} '^VERSION="' configure.in`
if test $? != 0 -o "$VERSION" = unknown; then
echo Could not get version number from configure.in script.
echo Exiting.
exit 1
fi
# clean up previous rpm builds
${RM} -rf *.rpm ${RPMSRCPATH}
if test -f Makefile; then
make dist-clean
fi
# make a TAR.GZ of the entire source directory, exactly as it is. The
# tar is placed in $SOURCES/bochs-$VERSION.tar.gz. Because the current
# directory could be named nearly anything, I copy all the contents into
# $SOURCES/bochs-$VERSION and then build a tar in $SOURCES.
${RM} -rf ${TMPDIR}/bochs-${VERSION}
test $? = 0 || exit 1
${MKDIR} ${TMPDIR}/bochs-${VERSION}
test $? = 0 || exit 1
${TAR} cf - * .??* | (cd ${TMPDIR}/bochs-${VERSION} && tar xf -)
test $? = 0 || exit 1
(cd ${TMPDIR}; tar czf bochs-${VERSION}.tar.gz bochs-${VERSION} --exclude=CVS)
test $? = 0 || exit 1
${RM} -rf ${TMPDIR}/bochs-${VERSION}
test $? = 0 || exit 1
# create RPM build area
rm -rf ${RPMSRCPATH}
mkdir ${RPMSRCPATH} ${RPMSRCPATH}/SOURCES ${RPMSRCPATH}/SPECS ${RPMSRCPATH}/BUILD ${RPMSRCPATH}/RPMS ${RPMSRCPATH}/SRPMS
test $? = 0 || exit 1 # test that mkdir succeeded
# copy source into sources
${MV} ${TMPDIR}/bochs-${VERSION}.tar.gz ${SOURCES}
test $? = 0 || exit 1
# copy the spec into SPECS. The template is in $RPMSPEC, and we use
# SED to substitute in the version number.
${RM} -f ${SPECS}/bochs.spec
test $? = 0 || exit 1
${CAT} ${RPMSPEC} | ${SED} "s/@SEDVERSION@/${VERSION}/g" > ${SPECS}/bochs.spec
test $? = 0 || exit 1
# finally, start the rpm build.
if [ -x ${RPMBUILD} ]
then
${RPMBUILD} -ba --define "_topdir `pwd`/${RPMSRCPATH}" ${SPECS}/bochs.spec
else
${RPM} -ba --define "_topdir `pwd`/${RPMSRCPATH}" ${SPECS}/bochs.spec
fi
# test status
if test $? = 0; then
echo RPM build succeeded
else
echo RPM build failed.
exit 1
fi
# copy all rpms out into main directory
ALLRPMS=`find ${RPMSRCPATH} -name '*.rpm'`
if test "$ALLRPMS" != ""; then
echo Moving .rpm files into the main directory.
mv ${ALLRPMS} .
ls -l *.rpm
fi