'patch-export' : 'False',
'patch-export-compress' : '0',
'pristine-tarball-name' : 'auto',
+ 'orig-prefix' : 'auto',
} )
help = dict(GbpOptionParser.help)
"Compress (auto-generated) patches larger than given number of bytes, 0 never compresses, default is '%(patch-export-compress)s'",
'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\:·:
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()
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)
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")
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:
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
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")
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/')):