#upstream-branch = upstream
# the default branch for the packaging files:
#packaging-branch = master
+# name of the distribution vendor
+#vendor=myvendor
# the default tag formats used:
#upstream-tag = upstream/%(version)s
-#packaging-tag = packaging/%(version)s
+#packaging-tag = %(vendor)s/%(version)s
# use pristine-tar:
#pristine-tar = True
# don't check if packaging-branch == current branch:
"""
defaults = dict(GbpOptionParser.defaults)
defaults.update( {
+ 'vendor' : 'vendor',
'builder' : 'rpmbuild -ba',
'cleaner' : 'git clean -d',
'packaging-dir' : '',
- 'packaging-tag' : 'packaging/%(version)s',
+ 'packaging-tag' : '%(vendor)s/%(version)s',
'export-dir' : 'rpmbuild',
'rpmbuild-builddir' : 'BUILD',
'rpmbuild-rpmdir' : 'RPMS',
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):
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 = repo.version_to_tag(options.packaging_tag, spec.version)
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)
for group in [import_group, branch_group, tag_group, cmd_group ]:
parser.add_option_group(group)
+ parser.add_config_file_option(option_name="vendor", action="store", dest="vendor")
+
branch_group.add_option("-u", "--upstream-version", dest="version",
help="Upstream Version")
branch_group.add_config_file_option(option_name="packaging-branch",
else:
gbp.log.warn("'%s' not an archive, skipping pristine-tar" % source.path)
- tag = repo.version_to_tag(options.upstream_tag, version)
+ tag = repo.version_to_tag(options.upstream_tag, version, options.vendor)
repo.create_tag(name=tag,
msg="Upstream version %s" % version,
commit=commit,
return srpm
-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], src.upstream_version)
+ format = [(options.upstream_tag, "Upstream"), (options.packaging_tag, options.vendor)][options.native]
+ tag = repo.version_to_tag(format[0], src.upstream_version, options.vendor)
- if repo.find_version(options.packaging_tag, src.version):
+ if repo.find_version(options.packaging_tag, src.version, options.vendor):
gbp.log.warn("Version %s already imported." % src.version)
if options.allow_same_version:
gbp.log.info("Moving tag of version '%s' since import forced" % src.version)
- move_tag_stamp(repo, options.packaging_tag, src.version)
+ move_tag_stamp(repo, options.packaging_tag, src.version, options.vendor)
else:
raise SkipImport
# Import upstream sources
if upstream:
- upstream_commit = repo.find_version(format[0], src.upstream_version)
+ upstream_commit = repo.find_version(format[0], src.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, src.version)
- msg = "Distribution release %s" % src.version
+ tag = repo.version_to_tag(options.packaging_tag, src.version, options.vendor)
+ msg = "%s release %s" % (options.vendor, src.version)
if options.orphan_packaging or not upstream:
parents = []