1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #!/bin/sh -e
- # Run this from the 'packages' directory, just under rootdir
- # We can only build rpm packages, if the rpm build tools are installed
- if [ \! -x /usr/bin/rpmbuild ]
- then
- echo "Cannot find /usr/bin/rpmbuild. Not building an rpm." 1>&2
- exit 0
- fi
- # Check the commandline flags
- PACKAGE="$1"
- VERSION="$2"
- fullname="${PACKAGE}-${VERSION}"
- archive=../$fullname.tar.gz
- if [ -z "$1" -o -z "$2" ]
- then
- echo "Usage: $0 <package name> <package version>" 1>&2
- exit 0
- fi
- # Double-check we're in the packages directory, just under rootdir
- if [ \! -r ../Makefile -a \! -r ../INSTALL ]
- then
- echo "Must run $0 in the 'packages' directory, under the root directory." 1>&2
- echo "Also, you must run \"make dist\" before running this script." 1>&2
- exit 0
- fi
- if [ \! -r "$archive" ]
- then
- echo "Cannot find $archive. Run \"make dist\" first." 1>&2
- exit 0
- fi
- # Create the directory where the input lives, and where the output should live
- RPM_SOURCE_DIR="/tmp/rpmsource-$fullname"
- RPM_BUILD_DIR="/tmp/rpmbuild-$fullname"
- trap 'rm -rf $RPM_SOURCE_DIR $RPM_BUILD_DIR; exit $?' EXIT SIGHUP SIGINT SIGTERM
- rm -rf "$RPM_SOURCE_DIR" "$RPM_BUILD_DIR"
- mkdir "$RPM_SOURCE_DIR"
- mkdir "$RPM_BUILD_DIR"
- cp "$archive" "$RPM_SOURCE_DIR"
- # rpmbuild -- as far as I can tell -- asks the OS what CPU it has.
- # This may differ from what kind of binaries gcc produces. dpkg
- # does a better job of this, so if we can run 'dpkg --print-architecture'
- # to get the build CPU, we use that in preference of the rpmbuild
- # default.
- target=`dpkg --print-architecture 2>/dev/null || echo ""`
- if [ -n "$target" ]
- then
- target=" --target $target"
- fi
- rpmbuild -bb rpm/rpm.spec $target \
- --define "NAME $PACKAGE" \
- --define "VERSION $VERSION" \
- --define "_sourcedir $RPM_SOURCE_DIR" \
- --define "_builddir $RPM_BUILD_DIR" \
- --define "_rpmdir $RPM_SOURCE_DIR"
- # We put the output in a directory based on what system we've built for
- destdir=rpm-unknown
- if [ -r /etc/issue ]
- then
- grep "Red Hat.*release 7" /etc/issue >/dev/null 2>&1 && destdir=rh7
- grep "Red Hat.*release 8" /etc/issue >/dev/null 2>&1 && destdir=rh8
- grep "Red Hat.*release 9" /etc/issue >/dev/null 2>&1 && destdir=rh9
- grep "Fedora Core.*release 1" /etc/issue >/dev/null 2>&1 && destdir=fc1
- grep "Fedora Core.*release 2" /etc/issue >/dev/null 2>&1 && destdir=fc2
- grep "Fedora Core.*release 3" /etc/issue >/dev/null 2>&1 && destdir=fc3
- fi
- rm -rf "$destdir"
- mkdir -p "$destdir"
- # We want to get not only the main package but devel etc, hence the middle *
- mv "$RPM_SOURCE_DIR"/*/"${PACKAGE}"-*"${VERSION}"*.rpm "$destdir"
- echo
- echo "The rpm package file(s) are located in $PWD/$destdir"
|