mirror of
https://github.com/samba-team/samba.git
synced 2025-01-22 22:04:08 +03:00
version: generate RPM version from git
This unifies our RPM version handling, based on tags. 1) Tags are of form ctdb-<version>. 2) The first <version> starts with .1. 3) Devel versions end with .0.<patchnum>.<checksum>.devel to reliably identify them. This means that devel versions will correctly supersede releases and earlier devels, but new releases will correctly supersede older devel RPMs. Making a new release is as simple as creating a new git tag. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (This used to be ctdb commit 44009e02a661d4a1e14246f650974fc4ed7a07c9)
This commit is contained in:
parent
7061ceffd8
commit
145b09c9a8
@ -3,8 +3,8 @@ Name: ctdb
|
||||
Summary: Clustered TDB
|
||||
Vendor: Samba Team
|
||||
Packager: Samba Team <samba@samba.org>
|
||||
Version: 1.9
|
||||
Release: 1GITHASH
|
||||
Version: @VERSION@
|
||||
Release: 1
|
||||
Epoch: 0
|
||||
License: GNU GPL version 3
|
||||
Group: System Environment/Daemons
|
||||
|
@ -44,18 +44,38 @@ SPECFILE="ctdb.spec"
|
||||
SPECFILE_IN="ctdb.spec.in"
|
||||
RPMBUILD="rpmbuild"
|
||||
|
||||
GITHASH=".$(git log --pretty=format:%h -1)"
|
||||
# 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
|
||||
|
||||
if test "x$USE_GITHASH" = "xno" ; then
|
||||
GITHASH=""
|
||||
fi
|
||||
|
||||
sed -e s/GITHASH/${GITHASH}/g \
|
||||
sed -e s/@VERSION@/$VERSION/g \
|
||||
< ${DIRNAME}/${SPECFILE_IN} \
|
||||
> ${DIRNAME}/${SPECFILE}
|
||||
|
||||
VERSION=$(grep ^Version ${DIRNAME}/${SPECFILE} | sed -e 's/^Version:\ \+//')
|
||||
RELEASE=$(grep ^Release ${DIRNAME}/${SPECFILE} | sed -e 's/^Release:\ \+//')
|
||||
|
||||
if echo | gzip -c --rsyncable - > /dev/null 2>&1 ; then
|
||||
GZIP="gzip -9 --rsyncable"
|
||||
|
Loading…
x
Reference in New Issue
Block a user