1311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff#!/bin/sh -e
264fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com# Copyright 2005 Google Inc.
364fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com# Author: Craig Silverstein
464fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com#
564fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com# Licensed under the Apache License, Version 2.0 (the "License");
664fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com# you may not use this file except in compliance with the License.
764fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com# You may obtain a copy of the License at
864fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com#
964fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com#      http://www.apache.org/licenses/LICENSE-2.0
1064fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com#
1164fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com# Unless required by applicable law or agreed to in writing, software
1264fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com# distributed under the License is distributed on an "AS IS" BASIS,
1364fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1464fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com# See the License for the specific language governing permissions and
1564fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com# limitations under the License.
1664fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com#
17311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# Run this from the 'packages' directory, just under rootdir
18311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
19311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# We can only build rpm packages, if the rpm build tools are installed
20311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffif [ \! -x /usr/bin/rpmbuild ]
21311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffthen
22311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  echo "Cannot find /usr/bin/rpmbuild. Not building an rpm." 1>&2
23311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  exit 0
24311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifffi
25311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
26311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# Check the commandline flags
27311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffPACKAGE="$1"
28311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffVERSION="$2"
29311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifffullname="${PACKAGE}-${VERSION}"
30311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffarchive=../$fullname.tar.gz
31311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
32311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffif [ -z "$1" -o -z "$2" ]
33311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffthen
34311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  echo "Usage: $0 <package name> <package version>" 1>&2
35311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  exit 0
36311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifffi
37311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
38311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# Double-check we're in the packages directory, just under rootdir
39311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffif [ \! -r ../Makefile -a \! -r ../INSTALL ]
40311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffthen
41311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  echo "Must run $0 in the 'packages' directory, under the root directory." 1>&2
42311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  echo "Also, you must run \"make dist\" before running this script." 1>&2
43311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  exit 0
44311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifffi
45311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
46311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffif [ \! -r "$archive" ]
47311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffthen
48311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  echo "Cannot find $archive. Run \"make dist\" first." 1>&2
49311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  exit 0
50311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifffi
51311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
52311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# Create the directory where the input lives, and where the output should live
53311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffRPM_SOURCE_DIR="/tmp/rpmsource-$fullname"
54311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffRPM_BUILD_DIR="/tmp/rpmbuild-$fullname"
55311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
56311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifftrap 'rm -rf $RPM_SOURCE_DIR $RPM_BUILD_DIR; exit $?' EXIT SIGHUP SIGINT SIGTERM
57311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
58311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffrm -rf "$RPM_SOURCE_DIR" "$RPM_BUILD_DIR"
59311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffmkdir "$RPM_SOURCE_DIR"
60311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffmkdir "$RPM_BUILD_DIR"
61311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
62311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffcp "$archive" "$RPM_SOURCE_DIR"
63311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
64311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffrpmbuild -bb rpm/rpm.spec \
65311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  --define "NAME $PACKAGE" \
66311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  --define "VERSION $VERSION" \
67311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  --define "_sourcedir $RPM_SOURCE_DIR" \
68311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  --define "_builddir $RPM_BUILD_DIR" \
69311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  --define "_rpmdir $RPM_SOURCE_DIR"
70311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
71311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# We put the output in a directory based on what system we've built for
72311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffdestdir=rpm-unknown
73311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffif [ -r /etc/issue ]
74311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffthen
75311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff   grep "Red Hat.*release 7" /etc/issue >/dev/null 2>&1 && destdir=rh7
76311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff   grep "Red Hat.*release 8" /etc/issue >/dev/null 2>&1 && destdir=rh8
77311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff   grep "Red Hat.*release 9" /etc/issue >/dev/null 2>&1 && destdir=rh9
78311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff   if grep Fedora /etc/issue >/dev/null; then 
79311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff	destdir=fc`grep Fedora /etc/issue | cut -d' ' -f 4`;
80311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff   fi
81311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdifffi
82311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
83311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffrm -rf "$destdir"
84311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffmkdir -p "$destdir"
85311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff# We want to get not only the main package but devel etc, hence the middle *
86311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffmv "$RPM_SOURCE_DIR"/*/"${PACKAGE}"-*"${VERSION}"*.rpm "$destdir"
87311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
88311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffecho
89311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiffecho "The rpm package file(s) are located in $PWD/$destdir"
90