2007-05-28 00:48:18 +04:00
#!/bin/sh
2009-05-13 00:59:08 +04:00
#
# makerpms.sh - build RPM packages from the git sources
#
2007-05-28 00:48:18 +04:00
# Copyright (C) John H Terpstra 1998-2002
2009-05-13 00:59:08 +04:00
# Copyright (C) Gerald (Jerry) Carter 2003
# Copyright (C) Jim McDonough 2007
# Copyright (C) Andrew Tridgell 2007
# Copyright (C) Michael Adam 2008-2009
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
2007-05-28 00:48:18 +04:00
2009-05-13 00:59:08 +04:00
#
2007-05-28 00:48:18 +04:00
# The following allows environment variables to override the target directories
# the alternative is to have a file in your home directory calles .rpmmacros
# containing the following:
# %_topdir /home/mylogin/redhat
#
# Note: Under this directory rpm expects to find the same directories that are under the
# /usr/src/redhat directory
#
EXTRA_OPTIONS = " $1 "
2008-12-17 14:13:42 +03:00
DIRNAME = $( dirname $0 )
TOPDIR = ${ DIRNAME } /../..
2007-05-29 09:52:03 +04:00
2007-05-28 00:48:18 +04:00
SPECDIR = ` rpm --eval %_specdir`
SRCDIR = ` rpm --eval %_sourcedir`
2008-07-09 07:14:47 +04:00
SPECFILE = "ctdb.spec"
2009-11-02 03:37:07 +03:00
SPECFILE_IN = "ctdb.spec.in"
2007-05-29 09:52:03 +04:00
RPMBUILD = "rpmbuild"
2007-05-28 00:48:18 +04:00
2010-07-02 07:21:08 +04:00
# We use tags and determine the version, as follows:
# ctdb-0.9.1 (First release of 0.9).
# ctdb-0.9.23 (23rd minor release of the 112 version)
#
# If we're not directly on a tag, this is a devel release; we append
# .0.<patchnum>.<checksum>.devel to the release.
TAG = ` git describe`
case " $TAG " in
ctdb-*)
TAG = ${ TAG ##ctdb- }
case " $TAG " in
*-*-g*) # 0.9-168-ge6cf0e8
# Not exactly on tag: devel version.
VERSION = ` echo " $TAG " | sed 's/\([^-]\+\)-\([0-9]\+\)-\(g[0-9a-f]\+\)/\1.0.\2.\3.devel/' `
; ;
*)
# An actual release version
VERSION = $TAG
; ;
esac
; ;
*)
echo Invalid tag " $TAG " >& 2
exit 1
; ;
esac
sed -e s/@VERSION@/$VERSION /g \
2009-11-02 03:37:07 +03:00
< ${ DIRNAME } /${ SPECFILE_IN } \
> ${ DIRNAME } /${ SPECFILE }
2008-12-17 14:15:34 +03:00
VERSION = $( grep ^Version ${ DIRNAME } /${ SPECFILE } | sed -e 's/^Version:\ \+//' )
2009-01-17 18:18:02 +03:00
if echo | gzip -c --rsyncable - > /dev/null 2>& 1 ; then
2008-12-17 18:01:49 +03:00
GZIP = "gzip -9 --rsyncable"
else
GZIP = "gzip -9"
fi
2008-12-17 14:13:42 +03:00
pushd ${ TOPDIR }
2007-06-11 06:30:32 +04:00
echo -n " Creating ctdb- ${ VERSION } .tar.gz ... "
2008-12-17 18:01:49 +03:00
git archive --prefix= ctdb-${ VERSION } / HEAD | ${ GZIP } > ${ SRCDIR } /ctdb-${ VERSION } .tar.gz
2008-12-17 14:09:13 +03:00
RC = $?
2008-12-17 14:13:42 +03:00
popd
2007-05-28 00:48:18 +04:00
echo "Done."
2008-12-17 14:09:13 +03:00
if [ $RC -ne 0 ] ; then
2007-05-28 00:48:18 +04:00
echo "Build failed!"
exit 1
fi
2008-12-17 14:06:25 +03:00
# At this point the SPECDIR and SRCDIR vaiables must have a value!
2007-05-28 00:48:18 +04:00
##
## copy additional source files
##
2008-12-17 14:13:42 +03:00
cp -p ${ DIRNAME } /${ SPECFILE } ${ SPECDIR }
2007-05-28 00:48:18 +04:00
##
## Build
##
2008-07-09 07:14:47 +04:00
echo " $( basename $0 ) : Getting Ready to build release package "
2011-07-22 12:27:40 +04:00
case ${ EXTRA_OPTIONS } in
*-b*)
BUILD_TARGET = ""
; ;
*)
BUILD_TARGET = "-ba"
; ;
esac
${ RPMBUILD } ${ BUILD_TARGET } --clean --rmsource ${ EXTRA_OPTIONS } ${ SPECDIR } /${ SPECFILE } || exit 1
2007-05-28 00:48:18 +04:00
echo " $( basename $0 ) : Done. "
2007-06-01 17:25:33 +04:00
exit 0