Gentoo Archives: gentoo-portage-dev

From: Mike Gilbert <floppym@g.o>
To: gentoo-portage-dev@l.g.o
Cc: Mike Gilbert <floppym@g.o>
Subject: [gentoo-portage-dev] [PATCH] Escape percent-signs in filename when fetching from mirrors
Date: Sun, 31 May 2020 03:26:55
Message-Id: 20200531032638.4159894-1-floppym@gentoo.org
1 Bug: https://bugs.gentoo.org/719810
2 Signed-off-by: Mike Gilbert <floppym@g.o>
3 ---
4 lib/portage/package/ebuild/fetch.py | 9 +++++++--
5 1 file changed, 7 insertions(+), 2 deletions(-)
6
7 diff --git a/lib/portage/package/ebuild/fetch.py b/lib/portage/package/ebuild/fetch.py
8 index 28e7caf53..47c3ad28f 100644
9 --- a/lib/portage/package/ebuild/fetch.py
10 +++ b/lib/portage/package/ebuild/fetch.py
11 @@ -26,6 +26,11 @@ try:
12 except ImportError:
13 from urlparse import urlparse
14
15 +try:
16 + from urllib.parse import quote as urlquote
17 +except ImportError:
18 + from urllib import quote as urlquote
19 +
20 import portage
21 portage.proxy.lazyimport.lazyimport(globals(),
22 'portage.package.ebuild.config:check_config_instance,config',
23 @@ -351,7 +356,7 @@ _size_suffix_map = {
24
25 class FlatLayout(object):
26 def get_path(self, filename):
27 - return filename
28 + return urlquote(filename)
29
30 def get_filenames(self, distdir):
31 for dirpath, dirnames, filenames in os.walk(distdir,
32 @@ -382,7 +387,7 @@ class FilenameHashLayout(object):
33 c = c // 4
34 ret += fnhash[:c] + '/'
35 fnhash = fnhash[c:]
36 - return ret + filename
37 + return ret + urlquote(filename)
38
39 def get_filenames(self, distdir):
40 pattern = ''
41 --
42 2.27.0.rc2

Replies