#upstream-branch = upstream
# Default branch for the packaging files
#packaging-branch = master
+# Name of the distribution vendor
+#vendor=myvendor
# Default tag formats to be used
#upstream-tag = upstream/%(version)s
#packaging-tag = packaging/%(version)s
"""
defaults = dict(GbpOptionParser.defaults)
defaults.update( {
+ 'vendor' : 'vendor',
'builder' : 'rpmbuild',
'cleaner' : '/bin/true',
'packaging-dir' : '',
- 'packaging-tag' : 'packaging/%(version)s',
+ 'packaging-tag' : '%(vendor)s/%(version)s',
'pq-branch' : 'development/%(branch)s',
'spec-file' : 'auto',
'export-dir' : 'rpmbuild',
help = dict(GbpOptionParser.help)
help.update( {
+ 'vendor':
+ "Distribution vendor name",
'packaging-dir':
"subdir where packaging files are stored, default is '%(packaging-dir)s'",
'packaging-tag':
super(RpmGitRepository, self).__init__(path)
self.pristine_tar = PristineTar(self)
- def find_version(self, format, version):
+ def find_version(self, format, version, vendor="vendor"):
"""
Check if a certain version is stored in this repo and return the SHA1
of the related commit. That is, an annotated tag is dereferenced to the
@type version: C{str}
@return: sha1 of the commit the tag references to
"""
- tag = self.version_to_tag(format, version)
+ tag = self.version_to_tag(format, version, vendor)
if self.has_tag(tag): # new tags are injective
# dereference to a commit object
return self.rev_parse("%s^0" % tag)
return None
@staticmethod
- def version_to_tag(format, version):
+ def version_to_tag(format, version, vendor="vendor"):
"""Generate a tag from a given format and a version
>>> RpmGitRepository.version_to_tag("packaging/%(version)s", "0:0~0")
'packaging/0%0_0'
+ >>> RpmGitRepository.version_to_tag("%(vendor)s/v%(version)s", "1.0", "myvendor")
+ 'myvendor/v1.0'
"""
- return format % dict(version=RpmGitRepository._sanitize_version(version))
+ return format % dict(version=RpmGitRepository._sanitize_version(version),
+ vendor=vendor)
@staticmethod
def _sanitize_version(version):
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, spec.version)
+ upstream_tree = repo.version_to_tag(options.upstream_tag, spec.version, vendor="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)
help="verbose command execution")
parser.add_config_file_option(option_name="color", dest="color", type='tristate')
parser.add_config_file_option(option_name="notify", dest="notify", type='tristate')
+ parser.add_config_file_option(option_name="vendor", action="store", dest="vendor")
tag_group.add_option("--git-tag", action="store_true", dest="tag", default=False,
help="create a tag after a successful build")
tag_group.add_option("--git-tag-only", action="store_true", dest="tag_only", default=False,
# 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, spec.version)
+ tag = repo.version_to_tag(options.packaging_tag, spec.version, vendor=options.vendor)
if options.retag and repo.has_tag(tag):
repo.delete_tag(tag)
- repo.create_tag(name=tag, msg="Distribution release %s" % spec.version,
+ repo.create_tag(name=tag, msg="%s release %s" % (options.vendor, spec.version),
sign=options.sign_tags, keyid=options.keyid, commit=tree)
if options.posttag:
sha = repo.rev_parse("%s^{}" % tag)
gbp.log.info("Pristine-tar: commiting %s" % pristine_orig)
repo.pristine_tar.commit(pristine_orig, options.upstream_branch)
- tag = repo.version_to_tag(options.upstream_tag, version)
+ tag = repo.version_to_tag(options.upstream_tag, version, vendor="Upstream")
repo.create_tag(name=tag,
msg="Upstream version %s" % version,
commit=commit,
return committer
-def move_tag_stamp(repo, format, version):
+def move_tag_stamp(repo, format, version, vendor):
"Move tag out of the way appending the current timestamp"
- old = repo.version_to_tag(format, version)
+ old = repo.version_to_tag(format, version, vendor)
timestamped = "%s~%s" % (version, int(time.time()))
- new = repo.version_to_tag(format, timestamped)
+ new = repo.version_to_tag(format, timestamped, vendor)
repo.move_tag(old, new)
parser.add_config_file_option(option_name="color", dest="color", type='tristate')
parser.add_option("--download", action="store_true", dest="download", default=False,
help="download source package")
+ parser.add_config_file_option(option_name="vendor", action="store", dest="vendor")
branch_group.add_config_file_option(option_name="packaging-branch",
dest="packaging_branch")
branch_group.add_config_file_option(option_name="upstream-branch",
else:
upstream = None
- format = [(options.upstream_tag, "Upstream"), (options.packaging_tag, "Distribution")][options.native]
- tag = repo.version_to_tag(format[0], upstream_version)
+ format = [(options.upstream_tag, "Upstream"), (options.packaging_tag, options.vendor)][options.native]
+ tag = repo.version_to_tag(format[0], upstream_version, options.vendor)
- if repo.find_version(options.packaging_tag, pkgver):
+ if repo.find_version(options.packaging_tag, pkgver, options.vendor):
gbp.log.warn("Version %s already imported." % pkgver)
if options.allow_same_version:
gbp.log.info("Moving tag of version '%s' since import forced" % pkgver)
- move_tag_stamp(repo, options.packaging_tag, pkgver)
+ move_tag_stamp(repo, options.packaging_tag, pkgver, options.vendor)
else:
raise SkipImport
# Import upstream sources
if upstream:
- upstream_commit = repo.find_version(format[0], upstream_version)
+ upstream_commit = repo.find_version(format[0], upstream_version, options.vendor)
if not upstream_commit:
gbp.log.info("Tag %s not found, importing %s tarball" % (tag, format[1]))
"\nAlso check the --create-missing-branches option.")
raise GbpError
- tag = repo.version_to_tag(options.packaging_tag, pkgver)
- msg = "Distribution release %s" % pkgver
+ tag = repo.version_to_tag(options.packaging_tag, pkgver, options.vendor)
+ msg = "%s release %s" % (options.vendor, pkgver)
if options.orphan_packaging or not upstream:
parents = []
raise GbpError, "Can't parse spec"
# Find upstream version
- upstream_commit = repo.find_version(options.upstream_tag, spec.version)
+ upstream_commit = repo.find_version(options.upstream_tag, spec.version, vendor="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, "Can't parse spec"
# Find upstream version
- commit = repo.find_version(options.upstream_tag, spec.version)
+ commit = repo.find_version(options.upstream_tag, spec.version, vendor="Upstream")
if commit:
commits=[commit]
else:
raise GbpError, "Can't parse spec"
# Find upstream version
- upstream_commit = repo.find_version(options.upstream_tag, spec.version)
+ upstream_commit = repo.find_version(options.upstream_tag, spec.version, vendor="Upstream")
if not upstream_commit:
raise GbpError, ("Couldn't find upstream version %s. Don't know on what base to import." % spec.version)
help="Verbose command execution")
parser.add_option("--force", dest="force", action="store_true", default=False,
help="In case of import even import if the branch already exists")
+ parser.add_config_file_option(option_name="vendor", action="store", dest="vendor")
parser.add_config_file_option(option_name="color", dest="color", type='tristate')
parser.add_config_file_option(option_name="upstream-tag", dest="upstream_tag")
parser.add_config_file_option(option_name="spec-file", dest="spec_file")