]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
rpms: Use git version information
authorSimon Wilkinson <sxw@inf.ed.ac.uk>
Tue, 12 Jul 2011 16:58:16 +0000 (17:58 +0100)
committerDerrick Brashear <shadow@dementia.org>
Thu, 14 Jul 2011 14:32:35 +0000 (07:32 -0700)
Use the git version information when building RPMS, rather than hard
coding it into configure.ac.

(cherry picked from commit 6a27e228bac196abada96f34ca9cd57f32e31f5c)
Reviewed-on: http://gerrit.openafs.org/4983
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Change-Id: Ibfe38e924eb53e279aaeff77882957a32ebb279b
Reviewed-on: http://gerrit.openafs.org/5008
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
configure-libafs.ac
configure.ac
src/packaging/RedHat/makesrpm.pl

index bfdf88e86c0ea9db193c94809d93cec2df23d58c..d6ec0491ab0d8e0af883d0c56ccb164722c1957b 100644 (file)
@@ -6,13 +6,8 @@ AM_INIT_AUTOMAKE
 
 AC_CONFIG_HEADER(src/config/afsconfig.h)
 MACOS_VERSION=1.6.0fc6
-LINUX_PKGVER=1.6.0
-LINUX_PKGREL=0.pre6
-#LINUX_PKGREL=1.1
 
 AC_SUBST(MACOS_VERSION)
-AC_SUBST(LINUX_PKGVER)
-AC_SUBST(LINUX_PKGREL)
 
 dnl If the user hasn't specified CFLAGS don't let configure pick -g -O2
 AS_IF([test -z "$CFLAGS"], [CFLAGS=" "], [])
index 9f923b71201b652a5786ccd0927e4a922ca40612..de0d66bf453659d2eded18115f1f0c333b966df8 100644 (file)
@@ -6,9 +6,7 @@ AM_INIT_AUTOMAKE
 
 AC_CONFIG_HEADER(src/config/afsconfig.h)
 MACOS_VERSION=1.6.0fc6
-LINUX_PKGVER=1.6.0
-LINUX_PKGREL=0.pre6
-#LINUX_PKGREL=1.1
+LINUX_PKGVER=1.6.0pre6
 
 dnl Debian wants the release candidate version in the main upstream version,
 dnl and wants ~ before it.
@@ -18,8 +16,6 @@ if echo "$LINUX_PKGREL" | grep pre >/dev/null 2>/dev/null ; then
 fi
 
 AC_SUBST(MACOS_VERSION)
-AC_SUBST(LINUX_PKGVER)
-AC_SUBST(LINUX_PKGREL)
 AC_SUBST(DEB_PKGVER)
 
 dnl If the user hasn't specified CFLAGS don't let configure pick -g -O2
@@ -182,7 +178,6 @@ src/packaging/MacOS/OpenAFS.Description.plist \
 src/packaging/MacOS/OpenAFS.Info.plist \
 src/packaging/MacOS/OpenAFS.info \
 src/packaging/MacOS/buildpkg.sh \
-src/packaging/RedHat/openafs.spec \
 src/pam/Makefile \
 src/platform/Makefile \
 src/platform/${MKAFS_OSTYPE}/Makefile \
index 9da2de2ce114e5624b2f0fe4206b8d2884133057..52bd88e6d3c3bbe6b6c7942b223ea6092b86fc39 100755 (executable)
@@ -56,14 +56,6 @@ while(<$fh>) {
     $afsversion = $1;
     next;
   }
-  if (/LINUX_PKGVER=(.*)/) {
-    $linuxver = $1;
-    next;
-  }
-  if (/LINUX_PKGREL=(.*)/) {
-    $linuxrel = $1;
-    next;
-  }
 }
 undef $fh;
 
@@ -71,9 +63,32 @@ if (not defined($afsversion)) {
   $afsversion = `"$srcdir/build-tools/git-version" "$srcdir"`;
 }
 
+# Build the Linux version and release information from the package version
+# We need to handle a number of varieties of package version -
+# Normal: 1.7.0
+# Prereleases: 1.7.0pre1
+# Development trees: 1.7.0dev
+# and RPMS which are built from trees midway between heads, such as 
+# 1.7.0-45-gabcdef or 1.7.0pre1-37-g12345 or 1.7.0dev-56-g98765
+
+if ($afsversion=~m/(.*)(pre[0-9]+)/) {
+    $linuxver=$1;
+    $linuxrel="0.$2";
+} elsif ($afsversion=~m/(.*)dev/) {
+    $linuxver=$1;
+    $linuxrel="0.dev";
+} else {
+    $linuxver=$afsversion;
+    $linuxrel=1;
+}
+
+if ($afsversion=~m/-([0-9]+)-(g[a-f0-9]+)$/) {
+    $linuxrel.=".$1.$2";
+}
+
 # Figure out a major, minor and release so that we know which version we're
 # building, and therefore what the srpm is going to be called
-$afsversion=~/([0-9]+)\.([0-9]+)\.([0-9]+)/;
+$linuxver=~/([0-9]+)\.([0-9]+)\.([0-9]+)/;
 my $major = $1;
 my $minor = $2;
 my $patchlevel = $3;
@@ -156,7 +171,7 @@ system("rpmbuild -bs --define \"dist %undefined\" ".
   or die "rpmbuild failed : $!\n";
 
 # Copy it out to somewhere useful
-if ($major > 1 || ($major == 1 && $minor >= 6)) {
+if (!defined($major) || $major > 1 || ($major == 1 && $minor >= 6)) {
   File::Copy::copy("$tmpdir/rpmdir/SRPMS/openafs-$linuxver-$linuxrel.src.rpm",
                   "openafs-$linuxver-$linuxrel.src.rpm")
     or die "Unable to copy output RPM : $!\n";