3 # Run this from the 'packages' directory, just under rootdir
5 # We can only build rpm packages, if the rpm build tools are installed
6 if [ \
! -x /usr
/bin
/rpmbuild
]
8 echo "Cannot find /usr/bin/rpmbuild. Not building an rpm." 1>&2
12 # Check the commandline flags
15 fullname
="${PACKAGE}-${VERSION}"
16 archive
=..
/$fullname.
tar.gz
18 if [ -z "$1" -o -z "$2" ]
20 echo "Usage: $0 <package name> <package version>" 1>&2
24 # Double-check we're in the packages directory, just under rootdir
25 if [ \
! -r ..
/Makefile
-a \
! -r ..
/INSTALL
]
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
32 if [ \
! -r "$archive" ]
34 echo "Cannot find $archive. Run \"make dist\" first." 1>&2
38 # Create the directory where the input lives, and where the output should live
39 RPM_SOURCE_DIR
="/tmp/rpmsource-$fullname"
40 RPM_BUILD_DIR
="/tmp/rpmbuild-$fullname"
42 trap 'rm -rf $RPM_SOURCE_DIR $RPM_BUILD_DIR; exit $?' EXIT SIGHUP SIGINT SIGTERM
44 rm -rf "$RPM_SOURCE_DIR" "$RPM_BUILD_DIR"
45 mkdir
"$RPM_SOURCE_DIR"
46 mkdir
"$RPM_BUILD_DIR"
48 cp "$archive" "$RPM_SOURCE_DIR"
50 # rpmbuild -- as far as I can tell -- asks the OS what CPU it has.
51 # This may differ from what kind of binaries gcc produces. dpkg
52 # does a better job of this, so if we can run 'dpkg --print-architecture'
53 # to get the build CPU, we use that in preference of the rpmbuild
55 target
=`dpkg --print-architecture 2>/dev/null || echo ""`
58 target
=" --target $target"
61 rpmbuild
-bb rpm
/rpm.spec
$target \
62 --define "NAME $PACKAGE" \
63 --define "VERSION $VERSION" \
64 --define "_sourcedir $RPM_SOURCE_DIR" \
65 --define "_builddir $RPM_BUILD_DIR" \
66 --define "_rpmdir $RPM_SOURCE_DIR"
68 # We put the output in a directory based on what system we've built for
72 grep "Red Hat.*release 7" /etc
/issue
>/dev
/null
2>&1 && destdir
=rh7
73 grep "Red Hat.*release 8" /etc
/issue
>/dev
/null
2>&1 && destdir
=rh8
74 grep "Red Hat.*release 9" /etc
/issue
>/dev
/null
2>&1 && destdir
=rh9
75 grep "Fedora Core.*release 1" /etc
/issue
>/dev
/null
2>&1 && destdir
=fc1
76 grep "Fedora Core.*release 2" /etc
/issue
>/dev
/null
2>&1 && destdir
=fc2
77 grep "Fedora Core.*release 3" /etc
/issue
>/dev
/null
2>&1 && destdir
=fc3
82 # We want to get not only the main package but devel etc, hence the middle *
83 mv "$RPM_SOURCE_DIR"/*/"${PACKAGE}"-*"${VERSION}"*.rpm
"$destdir"
86 echo "The rpm package file(s) are located in $PWD/$destdir"