From a5f0d875d7779b2001fda0f436a4710dfa9a5d77 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Thu, 24 May 2012 14:29:52 +0200 Subject: import_dsc: add --allow-unauthenticated Closes: #670623 --- docs/manpages/git-import-dsc.sgml | 8 ++++++++ gbp/config.py | 3 +++ gbp/scripts/import_dsc.py | 30 +++++++++++++++++------------- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/docs/manpages/git-import-dsc.sgml b/docs/manpages/git-import-dsc.sgml index d25d9a5a..fd049797 100644 --- a/docs/manpages/git-import-dsc.sgml +++ b/docs/manpages/git-import-dsc.sgml @@ -41,6 +41,7 @@ + URL source-package @@ -139,6 +140,13 @@ + + + + + Whether to skip signature verification on downloads. + + diff --git a/gbp/config.py b/gbp/config.py index 40424444..52453e9e 100644 --- a/gbp/config.py +++ b/gbp/config.py @@ -128,6 +128,7 @@ class GbpOptionParser(OptionParser): 'pbuilder-options': '', 'template-dir': '', 'remote-config': '', + 'allow-unauthenticated': 'False', } help = { 'debian-branch': @@ -217,6 +218,8 @@ class GbpOptionParser(OptionParser): "Template directory used by git init, default is '%(template-dir)s'", 'remote-config': "Remote defintion in gbp.conf used to create the remote repository", + 'allow-unauthenticated': + "Don't verify integrity of downloaded source", } def_config_files = [ '/etc/git-buildpackage/gbp.conf', diff --git a/gbp/scripts/import_dsc.py b/gbp/scripts/import_dsc.py index ca4031d5..879b537a 100644 --- a/gbp/scripts/import_dsc.py +++ b/gbp/scripts/import_dsc.py @@ -41,22 +41,22 @@ class SkipImport(Exception): pass -def download_source(pkg, dirs): +def download_source(pkg, dirs, unauth): + opts = [ '--download-only' ] + if unauth: + opts.append('--allow-unauthenticated') + if re.match(r'[a-z]{1,5}://', pkg): - mode='dget' + cmd = 'dget' + opts += ['-q', pkg] else: - mode='apt-get' + cmd = 'apt-get' + opts += ['-qq', 'source', pkg] dirs['download'] = os.path.abspath(tempfile.mkdtemp()) - gbp.log.info("Downloading '%s' using '%s'..." % (pkg, mode)) - if mode == 'apt-get': - gbpc.RunAtCommand('apt-get', - ['-qq', '--download-only', 'source', pkg], - shell=False)(dir=dirs['download']) - else: - gbpc.RunAtCommand('dget', - ['-q', '--download-only', pkg], - shell=False)(dir=dirs['download']) + gbp.log.info("Downloading '%s' using '%s'..." % (pkg, cmd)) + + gbpc.RunAtCommand(cmd, opts, shell=False)(dir=dirs['download']) dsc = glob.glob(os.path.join(dirs['download'], '*.dsc'))[0] return dsc @@ -229,6 +229,8 @@ def parse_args(argv): dest="author_committer") import_group.add_boolean_config_file_option(option_name="author-date-is-committer-date", dest="author_committer_date") + import_group.add_boolean_config_file_option(option_name="allow-unauthenticated", + dest="allow_unauthenticated") (options, args) = parser.parse_args(argv[1:]) gbp.log.setup(options.color, options.verbose) @@ -251,7 +253,9 @@ def main(argv): else: pkg = args[0] if options.download: - dsc = download_source(pkg, dirs=dirs) + dsc = download_source(pkg, + dirs=dirs, + unauth=options.allow_unauthenticated) else: dsc = pkg -- cgit v1.2.3