1 |
commit: 4c18f523bb86a8be4c148f365dabee06fca2e4fa |
2 |
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun May 31 13:11:41 2020 +0000 |
4 |
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun May 31 20:32:46 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=4c18f523 |
7 |
|
8 |
Escape percent-signs in filename when fetching from mirrors |
9 |
|
10 |
Bug: https://bugs.gentoo.org/719810 |
11 |
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org> |
12 |
|
13 |
lib/portage/package/ebuild/fetch.py | 9 +++++++-- |
14 |
1 file changed, 7 insertions(+), 2 deletions(-) |
15 |
|
16 |
diff --git a/lib/portage/package/ebuild/fetch.py b/lib/portage/package/ebuild/fetch.py |
17 |
index 28e7caf53..47c3ad28f 100644 |
18 |
--- a/lib/portage/package/ebuild/fetch.py |
19 |
+++ b/lib/portage/package/ebuild/fetch.py |
20 |
@@ -26,6 +26,11 @@ try: |
21 |
except ImportError: |
22 |
from urlparse import urlparse |
23 |
|
24 |
+try: |
25 |
+ from urllib.parse import quote as urlquote |
26 |
+except ImportError: |
27 |
+ from urllib import quote as urlquote |
28 |
+ |
29 |
import portage |
30 |
portage.proxy.lazyimport.lazyimport(globals(), |
31 |
'portage.package.ebuild.config:check_config_instance,config', |
32 |
@@ -351,7 +356,7 @@ _size_suffix_map = { |
33 |
|
34 |
class FlatLayout(object): |
35 |
def get_path(self, filename): |
36 |
- return filename |
37 |
+ return urlquote(filename) |
38 |
|
39 |
def get_filenames(self, distdir): |
40 |
for dirpath, dirnames, filenames in os.walk(distdir, |
41 |
@@ -382,7 +387,7 @@ class FilenameHashLayout(object): |
42 |
c = c // 4 |
43 |
ret += fnhash[:c] + '/' |
44 |
fnhash = fnhash[c:] |
45 |
- return ret + filename |
46 |
+ return ret + urlquote(filename) |
47 |
|
48 |
def get_filenames(self, distdir): |
49 |
pattern = '' |