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:]
|