1 |
commit: 244a4021ce58268336fd7b120ab7b9eb09acb26e |
2 |
Author: Matthew Thode <mthode <AT> mthode <DOT> org> |
3 |
AuthorDate: Mon Feb 25 20:14:20 2019 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Mar 31 19:29:04 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=244a4021 |
7 |
|
8 |
repos.conf: add sync-openpgp-keyserver option (bug 680908) |
9 |
|
10 |
Allowing users to define which keyservers they update from allows them |
11 |
to work around buggy keyservers. It is also useful for local mirrors |
12 |
and / or private keyservers. |
13 |
|
14 |
Bug: https://bugs.gentoo.org/680908 |
15 |
Signed-off-by: Matthew Thode <mthode <AT> mthode.org> |
16 |
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> |
17 |
|
18 |
lib/portage/repository/config.py | 6 ++++++ |
19 |
lib/portage/sync/syncbase.py | 6 +++--- |
20 |
man/portage.5 | 5 +++++ |
21 |
3 files changed, 14 insertions(+), 3 deletions(-) |
22 |
|
23 |
diff --git a/lib/portage/repository/config.py b/lib/portage/repository/config.py |
24 |
index 482711c4b..67a6897f7 100644 |
25 |
--- a/lib/portage/repository/config.py |
26 |
+++ b/lib/portage/repository/config.py |
27 |
@@ -109,6 +109,7 @@ class RepoConfig(object): |
28 |
'sync_allow_hardlinks', |
29 |
'sync_depth', |
30 |
'sync_hooks_only_on_change', |
31 |
+ 'sync_openpgp_keyserver', |
32 |
'sync_openpgp_key_path', |
33 |
'sync_openpgp_key_refresh_retry_count', |
34 |
'sync_openpgp_key_refresh_retry_delay_exp_base', |
35 |
@@ -224,6 +225,9 @@ class RepoConfig(object): |
36 |
self.sync_allow_hardlinks = repo_opts.get( |
37 |
'sync-allow-hardlinks', 'true').lower() in ('true', 'yes') |
38 |
|
39 |
+ self.sync_openpgp_keyserver = repo_opts.get( |
40 |
+ 'sync-openpgp-keyserver', '').strip().lower() or None |
41 |
+ |
42 |
self.sync_openpgp_key_path = repo_opts.get( |
43 |
'sync-openpgp-key-path', None) |
44 |
|
45 |
@@ -601,6 +605,7 @@ class RepoConfigLoader(object): |
46 |
'sync_allow_hardlinks', |
47 |
'sync_depth', |
48 |
'sync_hooks_only_on_change', |
49 |
+ 'sync_openpgp_keyserver', |
50 |
'sync_openpgp_key_path', |
51 |
'sync_openpgp_key_refresh_retry_count', |
52 |
'sync_openpgp_key_refresh_retry_delay_exp_base', |
53 |
@@ -1047,6 +1052,7 @@ class RepoConfigLoader(object): |
54 |
"main_repo", |
55 |
"priority", |
56 |
"sync_depth", |
57 |
+ "sync_openpgp_keyserver", |
58 |
"sync_openpgp_key_path", |
59 |
"sync_openpgp_key_refresh_retry_count", |
60 |
"sync_openpgp_key_refresh_retry_delay_exp_base", |
61 |
|
62 |
diff --git a/lib/portage/sync/syncbase.py b/lib/portage/sync/syncbase.py |
63 |
index 83b35c667..ae9ec938e 100644 |
64 |
--- a/lib/portage/sync/syncbase.py |
65 |
+++ b/lib/portage/sync/syncbase.py |
66 |
@@ -252,10 +252,10 @@ class SyncBase(object): |
67 |
@type openpgp_env: gemato.openpgp.OpenPGPEnvironment |
68 |
""" |
69 |
out = portage.output.EOutput(quiet=('--quiet' in self.options['emerge_config'].opts)) |
70 |
- out.ebegin('Refreshing keys from keyserver') |
71 |
+ out.ebegin('Refreshing keys from keyserver {s}'.format(s=self.repo.sync_openpgp_keyserver)) |
72 |
retry_decorator = self._key_refresh_retry_decorator() |
73 |
if retry_decorator is None: |
74 |
- openpgp_env.refresh_keys() |
75 |
+ openpgp_env.refresh_keys(keyserver=self.repo.sync_openpgp_keyserver) |
76 |
else: |
77 |
def noisy_refresh_keys(): |
78 |
""" |
79 |
@@ -263,7 +263,7 @@ class SyncBase(object): |
80 |
errors, display errors as soon as they occur. |
81 |
""" |
82 |
try: |
83 |
- openpgp_env.refresh_keys() |
84 |
+ openpgp_env.refresh_keys(keyserver=self.repo.sync_openpgp_keyserver) |
85 |
except Exception as e: |
86 |
writemsg_level("%s\n" % (e,), |
87 |
level=logging.ERROR, noiselevel=-1) |
88 |
|
89 |
diff --git a/man/portage.5 b/man/portage.5 |
90 |
index 1a36e9b86..caf993672 100644 |
91 |
--- a/man/portage.5 |
92 |
+++ b/man/portage.5 |
93 |
@@ -1144,6 +1144,11 @@ Multiplier for the exponential delay. |
94 |
.B sync\-openpgp\-key\-refresh\-retry\-overall\-timeout = 1200 |
95 |
Combined time limit for all refresh attempts, in units of seconds. |
96 |
.TP |
97 |
+.B sync\-openpgp\-keyserver = \fIname\fR |
98 |
+Pass \fIname\fR as the `gpg \-\-keyserver` argument. Refer to the |
99 |
+\fBgpg\fR(1) man page for information about the `gpg \-\-keyserver` |
100 |
+\fIname\fR format. |
101 |
+.TP |
102 |
.B sync-rsync-vcs-ignore = true|false |
103 |
Ignore vcs directories that may be present in the repository. It is the |
104 |
user's responsibility to set sync-rsync-extra-opts to protect vcs |