summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/fetch2
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2017-07-29 18:23:33 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-31 15:13:53 +0100
commit780e9fb87796bff5445179412f69e80b9438f323 (patch)
tree17e8c69aeb1e8c818a46c4c7465169bb253731d8 /bitbake/lib/bb/fetch2
parent9d1faf1a6fbfa6ee854ccf2c3d0bf3accbc59f6f (diff)
downloadpoky-780e9fb87796bff5445179412f69e80b9438f323.tar.gz
bitbake: wget: fix FusionForge workaround
My previous assertion about FusionForge appears to have been wrong, or FusionForge has changed behaviour, or both. FusionForge now mandates that downloads have the Accept header set, despite that header being optional, and returns a 406 Not Acceptable error if it isn't set. As we were pretending that 406 was actually 405 (Moved) and tried to handle it as a redirect this results in an infinite loop until Python kills the recursion. Delete the handling of 406 as 405, and pass Accept: */* in the headers. (Bitbake rev: bb70ae0c9aac5ec688026d23a64ac0cac1947187) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/fetch2')
-rw-r--r--bitbake/lib/bb/fetch2/wget.py9
1 files changed, 3 insertions, 6 deletions
diff --git a/bitbake/lib/bb/fetch2/wget.py b/bitbake/lib/bb/fetch2/wget.py
index 8ee9769d39..7c49c2b128 100644
--- a/bitbake/lib/bb/fetch2/wget.py
+++ b/bitbake/lib/bb/fetch2/wget.py
@@ -283,11 +283,6 @@ class Wget(FetchMethod):
283 """ 283 """
284 http_error_403 = http_error_405 284 http_error_403 = http_error_405
285 285
286 """
287 Some servers (e.g. FusionForge) returns 406 Not Acceptable when they
288 actually mean 405 Method Not Allowed.
289 """
290 http_error_406 = http_error_405
291 286
292 class FixedHTTPRedirectHandler(urllib.request.HTTPRedirectHandler): 287 class FixedHTTPRedirectHandler(urllib.request.HTTPRedirectHandler):
293 """ 288 """
@@ -316,7 +311,9 @@ class Wget(FetchMethod):
316 uri = ud.url.split(";")[0] 311 uri = ud.url.split(";")[0]
317 r = urllib.request.Request(uri) 312 r = urllib.request.Request(uri)
318 r.get_method = lambda: "HEAD" 313 r.get_method = lambda: "HEAD"
319 314 # Some servers (FusionForge, as used on Alioth) require that the
315 # optional Accept header is set.
316 r.add_header("Accept", "*/*")
320 def add_basic_auth(login_str, request): 317 def add_basic_auth(login_str, request):
321 '''Adds Basic auth to http request, pass in login:password as string''' 318 '''Adds Basic auth to http request, pass in login:password as string'''
322 import base64 319 import base64