rpm helpers: make SpecFile and SrcRpmFile give (full) version as dict.
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Wed, 30 May 2012 17:02:39 +0000 (20:02 +0300)
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Fri, 14 Nov 2014 12:45:07 +0000 (14:45 +0200)
The Dictionary contains different "version components", such as
upstreamversion, release and epoch. Makes e.g. tag creation consistent,
now.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
gbp/config.py
gbp/scripts/buildpackage_rpm.py
gbp/scripts/pq_rpm.py

index db92037..8c3a256 100644 (file)
@@ -596,6 +596,7 @@ class GbpOptionParserRpm(GbpOptionParser):
             'packaging-branch'          : 'master',
             'packaging-dir'             : '',
             'packaging-tag'             : 'packaging/%(version)s',
+            'upstream-tag'              : 'upstream/%(upstreamversion)s',
             'pq-branch'                 : 'development/%(branch)s',
             'spec-file'                 : 'auto',
             'builder'                   : 'rpmbuild',
index 028f612..8cfe1e1 100755 (executable)
@@ -147,7 +147,7 @@ def pristine_tar_build_orig(repo, orig_file, output_dir, options):
 def get_upstream_tree(repo, spec, options):
     """Determine the upstream tree from the given options"""
     if options.upstream_tree.upper() == 'TAG':
-        upstream_tree = repo.version_to_tag(options.upstream_tag, dict(upstreamversion=spec.version), "Upstream")
+        upstream_tree = repo.version_to_tag(options.upstream_tag, dict(upstreamversion=spec.upstreamversion), "Upstream")
     elif options.upstream_tree.upper() == 'BRANCH':
         if not repo.has_branch(options.upstream_branch):
             raise GbpError("%s is not a valid branch" % options.upstream_branch)
@@ -469,11 +469,12 @@ def main(argv):
 
         # Tag (note: tags the exported version)
         if options.tag or options.tag_only:
-            gbp.log.info("Tagging %s" % spec.version)
-            tag = repo.version_to_tag(options.packaging_tag, dict(upstreamversion=spec.version), options.vendor)
+            gbp.log.info("Tagging %s" % rpm.RpmPkgPolicy.compose_full_version(spec.version))
+            tag = repo.version_to_tag(options.packaging_tag, spec.version, options.vendor)
             if options.retag and repo.has_tag(tag):
                 repo.delete_tag(tag)
-            repo.create_tag(name=tag, msg="%s release %s" % (options.vendor, spec.version),
+            repo.create_tag(name=tag, msg="%s release %s" % (options.vendor,
+                                rpm.RpmPkgPolicy.compose_full_version(spec.version)),
                             sign=options.sign_tags, keyid=options.keyid, commit=tree)
             if options.posttag:
                 sha = repo.rev_parse("%s^{}" % tag)
@@ -503,9 +504,8 @@ def main(argv):
     if not options.tag_only:
         if spec and options.notify:
             summary = "Gbp-rpm %s" % ["failed", "successful"][not retval]
-            pkg_evr = {'upstreamversion': spec.version}
             message = ("Build of %s %s %s" % (spec.name,
-                            RpmPkgPolicy.compose_full_version(pkg_evr),
+                            RpmPkgPolicy.compose_full_version(spec.version),
                             ["failed", "succeeded"][not retval]))
             if not gbp.notifications.notify(summary, message, options.notify):
                 gbp.log.err("Failed to send notification")
index 0e5ac6d..e09eb62 100755 (executable)
@@ -143,9 +143,9 @@ def export_patches(repo, branch, options):
         raise GbpError, "Can't parse spec"
 
     # Find upstream version
-    upstream_commit = repo.find_version(options.upstream_tag, dict(upstreamversion=spec.version), "Upstream")
+    upstream_commit = repo.find_version(options.upstream_tag, dict(upstreamversion=spec.upstreamversion), "Upstream")
     if not upstream_commit:
-        raise GbpError, ("Couldn't find upstream version %s. Don't know on what base to import." % spec.version)
+        raise GbpError, ("Couldn't find upstream version %s. Don't know on what base to import." % spec.upstreamversion)
 
     export_treeish = options.export_rev if options.export_rev else pq_branch
     if not repo.has_treeish(export_treeish):
@@ -234,11 +234,11 @@ def import_spec_patches(repo, branch, options):
         raise GbpError, "Can't parse spec"
 
     # Find upstream version
-    commit = repo.find_version(options.upstream_tag, dict(upstreamversion=spec.version), "Upstream")
+    commit = repo.find_version(options.upstream_tag, dict(upstreamversion=spec.upstreamversion), "Upstream")
     if commit:
         commits=[commit]
     else:
-        raise GbpError, ("Couldn't find upstream version %s. Don't know on what base to import." % spec.version)
+        raise GbpError, ("Couldn't find upstream version %s. Don't know on what base to import." % spec.upstreamversion)
 
     queue = spec.patchseries()
     packager = get_packager(spec)
@@ -296,9 +296,9 @@ def rebase_pq(repo, branch, options):
         raise GbpError, "Can't parse spec"
 
     # Find upstream version
-    upstream_commit = repo.find_version(options.upstream_tag, dict(upstreamversion=spec.version), "Upstream")
+    upstream_commit = repo.find_version(options.upstream_tag, dict(upstreamversion=spec.upstreamversion), "Upstream")
     if not upstream_commit:
-        raise GbpError, ("Couldn't find upstream version %s. Don't know on what base to import." % spec.version)
+        raise GbpError, ("Couldn't find upstream version %s. Don't know on what base to import." % spec.upstreamversion)
 
     switch_to_pq_branch(repo, branch, options)
     GitCommand("rebase")([upstream_commit])