OLD | NEW |
| (Empty) |
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 | |
6 if [ \! -x /usr/bin/rpmbuild ] | |
7 then | |
8 echo "Cannot find /usr/bin/rpmbuild. Not building an rpm." 1>&2 | |
9 exit 0 | |
10 fi | |
11 | |
12 # Check the commandline flags | |
13 PACKAGE="$1" | |
14 VERSION="$2" | |
15 fullname="${PACKAGE}-${VERSION}" | |
16 archive=../$fullname.tar.gz | |
17 | |
18 if [ -z "$1" -o -z "$2" ] | |
19 then | |
20 echo "Usage: $0 <package name> <package version>" 1>&2 | |
21 exit 0 | |
22 fi | |
23 | |
24 # Double-check we're in the packages directory, just under rootdir | |
25 if [ \! -r ../Makefile -a \! -r ../INSTALL ] | |
26 then | |
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 | |
30 fi | |
31 | |
32 if [ \! -r "$archive" ] | |
33 then | |
34 echo "Cannot find $archive. Run \"make dist\" first." 1>&2 | |
35 exit 0 | |
36 fi | |
37 | |
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" | |
41 | |
42 trap 'rm -rf $RPM_SOURCE_DIR $RPM_BUILD_DIR; exit $?' EXIT SIGHUP SIGINT SIGTERM | |
43 | |
44 rm -rf "$RPM_SOURCE_DIR" "$RPM_BUILD_DIR" | |
45 mkdir "$RPM_SOURCE_DIR" | |
46 mkdir "$RPM_BUILD_DIR" | |
47 | |
48 cp "$archive" "$RPM_SOURCE_DIR" | |
49 | |
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 | |
54 # default. | |
55 target=`dpkg --print-architecture 2>/dev/null || echo ""` | |
56 if [ -n "$target" ] | |
57 then | |
58 target=" --target $target" | |
59 fi | |
60 | |
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" | |
67 | |
68 # We put the output in a directory based on what system we've built for | |
69 destdir=rpm-unknown | |
70 if [ -r /etc/issue ] | |
71 then | |
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 | |
78 fi | |
79 | |
80 rm -rf "$destdir" | |
81 mkdir -p "$destdir" | |
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" | |
84 | |
85 echo | |
86 echo "The rpm package file(s) are located in $PWD/$destdir" | |
OLD | NEW |