diff contrib/packagelib.sh @ 26833:6474b64045fb stable

packaging: rework version detection and declaration (issue4912) Previously the -rc in our rc tags got dropped, meaning that those packages looked newer to the packaging system than the later release build. This rectifies the issue, though some damage may already have been done on 3.6-rc builds. I'm mostly cargo-culting the RPM version format - there don't appear to be rules for RPM about how to handle this. Hopefully an RPM enthusiast can fix up what I've done as a followup.
author Augie Fackler <augie@google.com>
date Mon, 26 Oct 2015 14:19:37 -0400
parents 56c64c91b429
children 13f90dde8f8c
line wrap: on
line diff
--- a/contrib/packagelib.sh	Tue Oct 27 12:34:05 2015 +0800
+++ b/contrib/packagelib.sh	Mon Oct 26 14:19:37 2015 -0400
@@ -1,3 +1,12 @@
+# Extract version number into 4 parts, some of which may be empty:
+#
+# version: the numeric part of the most recent tag. Will always look like 1.3.
+#
+# type: if an rc build, "rc", otherwise empty
+#
+# distance: the distance from the nearest tag, or empty if built from a tag
+#
+# node: the node|short hg was built from, or empty if built from a tag
 gethgversion() {
     make clean
     make local || make local PURE=--pure
@@ -7,13 +16,20 @@
 
     hgversion=`$HG version | sed -ne 's/.*(version \(.*\))$/\1/p'`
 
+    if echo $hgversion | grep + > /dev/null 2>&1 ; then
+        tmp=`echo $hgversion | cut -d+ -f 2`
+        hgversion=`echo $hgversion | cut -d+ -f 1`
+        distance=`echo $tmp | cut -d- -f 1`
+        node=`echo $tmp | cut -d- -f 2`
+    else
+        distance=''
+        node=''
+    fi
     if echo $hgversion | grep -- '-' > /dev/null 2>&1; then
-        # nightly build case, version is like 1.3.1+250-20b91f91f9ca
         version=`echo $hgversion | cut -d- -f1`
-        release=`echo $hgversion | cut -d- -f2 | sed -e 's/+.*//'`
+        type=`echo $hgversion | cut -d- -f2`
     else
-        # official tag, version is like 1.3.1
-        version=`echo $hgversion | sed -e 's/+.*//'`
-        release='0'
+        version=$hgversion
+        type=''
     fi
 }