'cleaner' : '/bin/true',
'packaging-dir' : '',
'packaging-tag' : '%(vendor)s/%(version)s',
+ 'upstream-tag' : 'upstream/%(upstreamversion)s',
'pq-branch' : 'development/%(branch)s',
'spec-file' : 'auto',
'export-dir' : 'rpmbuild',
"""
Get the (downstream) version of the RPM
"""
- version = self.rpmhdr[rpm.RPMTAG_EPOCH] + ":" if self.rpmhdr[rpm.RPMTAG_EPOCH] else ""
- version += self.rpmhdr[rpm.RPMTAG_VERSION]+"-"+self.rpmhdr[rpm.RPMTAG_RELEASE]
+ version = dict(upstreamversion = self.rpmhdr[rpm.RPMTAG_VERSION],
+ release = self.rpmhdr[rpm.RPMTAG_RELEASE])
+ if self.rpmhdr[rpm.RPMTAG_EPOCH] is not None:
+ version['epoch'] = str(self.rpmhdr[rpm.RPMTAG_EPOCH])
return version
-
version = property(_get_version)
def _get_name(self):
Get the upstream version of the package
"""
return self.rpmhdr[rpm.RPMTAG_VERSION]
- upstream_version = property(_get_upstream_version)
+ upstreamversion = property(_get_upstream_version)
def _get_packager(self):
"""
source_header = self.specinfo.packages[0].header
self.name = source_header[rpm.RPMTAG_NAME]
- self.version = source_header[rpm.RPMTAG_VERSION]
+ self.upstreamversion = source_header[rpm.RPMTAG_VERSION]
self.release = source_header[rpm.RPMTAG_RELEASE]
# rpm-python returns epoch as 'long', convert that to string
self.epoch = str(source_header[rpm.RPMTAG_EPOCH]) \
(self.orig_file, self.orig_base, self.orig_archive_fmt, self.orig_comp) = self.guess_orig_file()
+
+ def _get_version(self):
+ """
+ Get the (downstream) version
+ """
+ version = dict(upstreamversion = self.upstreamversion,
+ release = self.release)
+ if self.epoch != None:
+ version['epoch'] = self.epoch
+ return version
+ version = property(_get_version)
+
+
def write_spec_file(self):
"""
Write, possibly updated, spec to disk
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)
# 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)
spec = parse_spec(pkg)
pkgname = spec.name
- pkgver = dict(upstreamversion=spec.version, release=spec.release)
- upstream_version = spec.version
+ pkgver = spec.version
+ upstream_version = spec.upstreamversion
packager = spec.packager
unpacked = True
else:
dirs['src'] = os.path.abspath(os.path.dirname(pkg))
src = parse_srpm(srpm)
pkgname = src.name
- pkgver = dict(upstreamversion=src.version)
- upstream_version = src.upstream_version
+ pkgver = src.version
+ upstream_version = src.upstreamversion
packager = src.packager
unpacked = False
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):
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)
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])