Ubuntu Pastebin

Paste from smoser at Mon, 8 Aug 2016 21:52:50 +0000

Download as text
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
commit 48ec60ae19c749223cb58dcbdbf0ecb7343f2a31 (HEAD -> master)
Author: Scott Moser <smoser@brickies.net>
Date:   Mon Aug 8 13:24:59 2016 -0400

    For upstream snapshot versions do not modify git-describe output.
    
    For upstream version directly use the output of git-describe
    (X.Y.Z-number.gHASH) rather than rather than changing it to
    (X.Y.Z+number.gHASH).
    
    The rpm version does not allow '-' in Version, so we create and use
    rpm_upstream_version in the rpm spec file.  That is of format:
    X.Y.Z+number.gHASH

diff --git a/packages/brpm b/packages/brpm
index 14d75f2..89696ab 100755
--- a/packages/brpm
+++ b/packages/brpm
@@ -90,6 +90,15 @@ def generate_spec_contents(args, version_data, tmpl_fn, top_dir, arc_fn):
     subs['source_name'] = os.path.basename(arc_fn).replace('.tar.gz', '')
     subs.update(version_data)
 
+    # rpm does not like '-' in the Version, so change
+    #   X.Y.Z-N-gHASH to X.Y.Z+N.gHASH
+    if "-" in version_data.get('version'):
+        ver, commits, ghash = version_data['version'].split("-")
+        rpm_upstream_version = "%s+%s.%s" % (ver, commits, ghash)
+    else:
+        rpm_upstream_version = version_data['version']
+    subs['rpm_upstream_version'] = rpm_upstream_version
+
     # Map to known packages
     python_deps = read_dependencies()
     package_deps = translate_dependencies(python_deps, args.distro)
diff --git a/packages/redhat/cloud-init.spec.in b/packages/redhat/cloud-init.spec.in
index 2f02f01..d0ae048 100644
--- a/packages/redhat/cloud-init.spec.in
+++ b/packages/redhat/cloud-init.spec.in
@@ -6,7 +6,7 @@
 # Or: http://www.rpm.org/max-rpm/ch-rpm-inside.html
 
 Name:           cloud-init
-Version:        ${version_long}
+Version:        ${rpm_upstream_version}
 Release:        1${subrelease}%{?dist}
 Summary:        Cloud instance init scripts
 
diff --git a/tools/make-tarball b/tools/make-tarball
index 5735844..d870589 100755
--- a/tools/make-tarball
+++ b/tools/make-tarball
@@ -35,14 +35,7 @@ while [ $# -ne 0 ]; do
 done
 
 rev=${1:-HEAD}
-git_describe=$(git describe ${long_opt} $rev)
-
-# git_describe could be 0.7.5 or 0.7.5-NNN-gHASH
-# turn that into 0.7.5 or 0.7.5+NNN.gHASH
-case "$git_describe" in
-   *-*) version=$(echo "$git_describe" | sed -e 's/-/+/' -e 's/-/./');;
-   *) version=${git_describe};;
-esac
+version=$(git describe ${long_opt} $rev)
 
 archive_base="cloud-init-$version"
 if [ -z "$output" ]; then
diff --git a/tools/read-version b/tools/read-version
index 78e3415..85c6234 100755
--- a/tools/read-version
+++ b/tools/read-version
@@ -34,26 +34,19 @@ src_version = ci_version.version_string()
 version_long = None
 
 if os.path.isdir(os.path.join(_tdir, ".git")):
-    def fix_git_version(ver):
-        ver = ver.strip()
-        if "-" in ver:
-            # change X.Y.Z-1023-gHASH to X.Y.Z+1023.ghash
-            return "{0}+{1}.{2}".format(*ver.split("-"))
-        return ver
-
     flags = []
     if use_tags:
         flags = ['--tags']
     cmd = ['git', 'describe'] + flags
 
-    version = fix_git_version(tiny_p(cmd))
+    version = tiny_p(cmd).strip()
 
     if not version.startswith(src_version):
         sys.stderr.write("git describe version (%s) differs from "
                          "cloudinit.version (%s)\n" % (version, src_version))
         sys.exit(1)
 
-    version_long = fix_git_version(tiny_p(cmd + ["--long"]))
+    version_long = tiny_p(cmd + ["--long"]).strip()
 else:
     version = src_version
     version_long = None
@@ -66,9 +59,9 @@ commit = None
 distance = None
 
 if version_long:
-    info = version_long.partition("+")[2]
-    extra = "+" + info
-    distance, commit = info.split(".")
+    info = version_long.partition("-")[2]
+    extra = "-" + info
+    distance, commit = info.split("-")
     # remove the 'g' from gHASH
     commit = commit[1:]
 
Download as text