diff options
author | Ross Burton <ross.burton@intel.com> | 2017-07-29 18:23:33 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-07-31 15:13:53 +0100 |
commit | 780e9fb87796bff5445179412f69e80b9438f323 (patch) | |
tree | 17e8c69aeb1e8c818a46c4c7465169bb253731d8 /bitbake/lib | |
parent | 9d1faf1a6fbfa6ee854ccf2c3d0bf3accbc59f6f (diff) | |
download | poky-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')
-rw-r--r-- | bitbake/lib/bb/fetch2/wget.py | 9 |
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 |