summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gbp/config.py4
-rwxr-xr-xgbp/scripts/buildpackage_rpm.py17
-rwxr-xr-xgbp/scripts/import_orig_rpm.py4
3 files changed, 21 insertions, 4 deletions
diff --git a/gbp/config.py b/gbp/config.py
index 6ae16e02..cbc33a59 100644
--- a/gbp/config.py
+++ b/gbp/config.py
@@ -613,6 +613,7 @@ class GbpOptionParserRpm(GbpOptionParser):
'patch-export-compress' : '0',
'merge' : 'False',
'pristine-tarball-name' : 'auto',
+ 'orig-prefix' : 'auto',
})
help = dict(GbpOptionParser.help)
@@ -652,6 +653,9 @@ class GbpOptionParserRpm(GbpOptionParser):
'pristine-tarball-name':
"Filename to record to pristine-tar, set to 'auto' to not "
"mangle the file name, default is '%(pristine-tarball-name)s'",
+ 'orig-prefix':
+ "Prefix (dir) to be used when generating/importing tarballs, "
+ "default is '%(orig-prefix)s'",
})
# vim:et:ts=4:sw=4:et:sts=4:ai:set list listchars=tab\:»·,trail\:·:
diff --git a/gbp/scripts/buildpackage_rpm.py b/gbp/scripts/buildpackage_rpm.py
index 3fff4e95..5e71caa4 100755
--- a/gbp/scripts/buildpackage_rpm.py
+++ b/gbp/scripts/buildpackage_rpm.py
@@ -46,15 +46,16 @@ from gbp.pkg import (compressor_opts, compressor_aliases)
from gbp.scripts.pq_rpm import update_patch_series
-def git_archive(repo, spec, output_dir, treeish, comp_level, with_submodules):
+def git_archive(repo, spec, output_dir, treeish, prefix, comp_level, with_submodules):
"create a compressed orig tarball in output_dir using git_archive"
comp_opts = ''
if spec.orig_src['compression']:
comp_opts = compressor_opts[spec.orig_src['compression']][0]
output = os.path.join(output_dir, spec.orig_src['filename'])
- prefix = spec.orig_src['prefix']
+ # Remove extra slashes from prefix, will be added by git_archive_x funcs
+ prefix = prefix.strip('/')
try:
if repo.has_submodules() and with_submodules:
repo.update_submodules()
@@ -184,6 +185,7 @@ def git_archive_build_orig(repo, spec, output_dir, options):
gbp.log.debug("Building upstream source archive with compression '%s -%s'" %
(spec.orig_src['compression'], options.comp_level))
if not git_archive(repo, spec, output_dir, upstream_tree,
+ options.orig_prefix,
options.comp_level,
options.with_submodules):
raise GbpError("Cannot create upstream tarball at '%s'" % output_dir)
@@ -326,6 +328,7 @@ def parse_args(argv, prefix):
help="location to look for external tarballs")
orig_group.add_config_file_option(option_name="compression-level", dest="comp_level",
help="Compression level, default is '%(compression-level)s'")
+ orig_group.add_config_file_option(option_name="orig-prefix", dest="orig_prefix")
branch_group.add_config_file_option(option_name="upstream-branch", dest="upstream_branch")
branch_group.add_config_file_option(option_name="packaging-branch", dest="packaging_branch")
branch_group.add_boolean_config_file_option(option_name = "ignore-branch", dest="ignore_branch")
@@ -482,6 +485,14 @@ def main(argv):
raise GbpError, "Error exporting files: %s" % err
spec.specdir = spec_dir
+ if options.orig_prefix != 'auto':
+ options.orig_prefix = options.orig_prefix % dict(spec.version,
+ version=RpmPkgPolicy.compose_full_version(spec.version),
+ name=spec.name,
+ vendor=options.vendor)
+ elif spec.orig_src:
+ options.orig_prefix = spec.orig_src['prefix']
+
# Get/build the orig tarball
if is_native(repo, options):
if spec.orig_src:
@@ -489,7 +500,7 @@ def main(argv):
gbp.log.info("Creating (native) source archive %s from '%s'" % (spec.orig_src['filename'], tree))
if spec.orig_src['compression']:
gbp.log.debug("Building source archive with compression '%s -%s'" % (spec.orig_src['compression'], options.comp_level))
- if not git_archive(repo, spec, source_dir, tree,
+ if not git_archive(repo, spec, source_dir, tree, options.orig_prefix,
options.comp_level, options.with_submodules):
raise GbpError, "Cannot create source tarball at '%s'" % export_dir
# Non-native packages: create orig tarball from upstream
diff --git a/gbp/scripts/import_orig_rpm.py b/gbp/scripts/import_orig_rpm.py
index 3d204b2c..1653fa68 100755
--- a/gbp/scripts/import_orig_rpm.py
+++ b/gbp/scripts/import_orig_rpm.py
@@ -174,6 +174,8 @@ def parse_args(argv):
dest="filter_pristine_tar")
import_group.add_config_file_option(option_name="pristine-tarball-name",
dest="pristine_tarball_name")
+ import_group.add_config_file_option(option_name="orig-prefix",
+ dest="orig_prefix")
import_group.add_config_file_option(option_name="import-msg",
dest="import_msg")
cmd_group.add_config_file_option(option_name="postimport", dest="postimport")
@@ -234,7 +236,7 @@ def main(argv):
prepare_sources(source, sourcepackage, version,
prepare_pristine, options.filters,
options.filter_pristine_tar,
- None, tmpdir)
+ options.orig_prefix, tmpdir)
# Don't mess up our repo with git metadata from an upstream tarball
if os.path.isdir(os.path.join(unpacked_orig, '.git/')):