commit: 244a4021ce58268336fd7b120ab7b9eb09acb26e Author: Matthew Thode <mthode <AT> mthode <DOT> org> AuthorDate: Mon Feb 25 20:14:20 2019 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Sun Mar 31 19:29:04 2019 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=244a4021
repos.conf: add sync-openpgp-keyserver option (bug 680908) Allowing users to define which keyservers they update from allows them to work around buggy keyservers. It is also useful for local mirrors and / or private keyservers. Bug: https://bugs.gentoo.org/680908 Signed-off-by: Matthew Thode <mthode <AT> mthode.org> Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> lib/portage/repository/config.py | 6 ++++++ lib/portage/sync/syncbase.py | 6 +++--- man/portage.5 | 5 +++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/portage/repository/config.py b/lib/portage/repository/config.py index 482711c4b..67a6897f7 100644 --- a/lib/portage/repository/config.py +++ b/lib/portage/repository/config.py @@ -109,6 +109,7 @@ class RepoConfig(object): 'sync_allow_hardlinks', 'sync_depth', 'sync_hooks_only_on_change', + 'sync_openpgp_keyserver', 'sync_openpgp_key_path', 'sync_openpgp_key_refresh_retry_count', 'sync_openpgp_key_refresh_retry_delay_exp_base', @@ -224,6 +225,9 @@ class RepoConfig(object): self.sync_allow_hardlinks = repo_opts.get( 'sync-allow-hardlinks', 'true').lower() in ('true', 'yes') + self.sync_openpgp_keyserver = repo_opts.get( + 'sync-openpgp-keyserver', '').strip().lower() or None + self.sync_openpgp_key_path = repo_opts.get( 'sync-openpgp-key-path', None) @@ -601,6 +605,7 @@ class RepoConfigLoader(object): 'sync_allow_hardlinks', 'sync_depth', 'sync_hooks_only_on_change', + 'sync_openpgp_keyserver', 'sync_openpgp_key_path', 'sync_openpgp_key_refresh_retry_count', 'sync_openpgp_key_refresh_retry_delay_exp_base', @@ -1047,6 +1052,7 @@ class RepoConfigLoader(object): "main_repo", "priority", "sync_depth", + "sync_openpgp_keyserver", "sync_openpgp_key_path", "sync_openpgp_key_refresh_retry_count", "sync_openpgp_key_refresh_retry_delay_exp_base", diff --git a/lib/portage/sync/syncbase.py b/lib/portage/sync/syncbase.py index 83b35c667..ae9ec938e 100644 --- a/lib/portage/sync/syncbase.py +++ b/lib/portage/sync/syncbase.py @@ -252,10 +252,10 @@ class SyncBase(object): @type openpgp_env: gemato.openpgp.OpenPGPEnvironment """ out = portage.output.EOutput(quiet=('--quiet' in self.options['emerge_config'].opts)) - out.ebegin('Refreshing keys from keyserver') + out.ebegin('Refreshing keys from keyserver {s}'.format(s=self.repo.sync_openpgp_keyserver)) retry_decorator = self._key_refresh_retry_decorator() if retry_decorator is None: - openpgp_env.refresh_keys() + openpgp_env.refresh_keys(keyserver=self.repo.sync_openpgp_keyserver) else: def noisy_refresh_keys(): """ @@ -263,7 +263,7 @@ class SyncBase(object): errors, display errors as soon as they occur. """ try: - openpgp_env.refresh_keys() + openpgp_env.refresh_keys(keyserver=self.repo.sync_openpgp_keyserver) except Exception as e: writemsg_level("%s\n" % (e,), level=logging.ERROR, noiselevel=-1) diff --git a/man/portage.5 b/man/portage.5 index 1a36e9b86..caf993672 100644 --- a/man/portage.5 +++ b/man/portage.5 @@ -1144,6 +1144,11 @@ Multiplier for the exponential delay. .B sync\-openpgp\-key\-refresh\-retry\-overall\-timeout = 1200 Combined time limit for all refresh attempts, in units of seconds. .TP +.B sync\-openpgp\-keyserver = \fIname\fR +Pass \fIname\fR as the `gpg \-\-keyserver` argument. Refer to the +\fBgpg\fR(1) man page for information about the `gpg \-\-keyserver` +\fIname\fR format. +.TP .B sync-rsync-vcs-ignore = true|false Ignore vcs directories that may be present in the repository. It is the user's responsibility to set sync-rsync-extra-opts to protect vcs