[oe-commits] [bitbake] 10/22: wget: allow basic http auth for SSTATE_MIRRORS
git at git.openembedded.org
git at git.openembedded.org
Fri Sep 2 17:11:10 UTC 2016
rpurdie pushed a commit to branch master
in repository bitbake.
commit cea8113d14da9e12db80a5b6b5811a47a7dfdeef
Author: Stephano Cetola <stephano.cetola at linux.intel.com>
AuthorDate: Fri Aug 26 10:41:43 2016 -0700
wget: allow basic http auth for SSTATE_MIRRORS
If http basic auth creds were added to sstate mirrors like so:
https://foo.com/sstate/PATH;user=foo:bar;downloadfilename=PATH
The sstate mirror check would silently fail with 401 unauthorized.
This patch allows both the check, and the wget download to succeed by
checking for user credentials and if present adding the correct
headers, or wget params as needed.
[ YOCTO #9815 ]
Signed-off-by: Stephano Cetola <stephano.cetola at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
lib/bb/fetch2/wget.py | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/lib/bb/fetch2/wget.py b/lib/bb/fetch2/wget.py
index 6b60d9b..ecb946a 100644
--- a/lib/bb/fetch2/wget.py
+++ b/lib/bb/fetch2/wget.py
@@ -108,6 +108,10 @@ class Wget(FetchMethod):
bb.utils.mkdirhier(os.path.dirname(dldir + os.sep + ud.localfile))
fetchcmd += " -O " + dldir + os.sep + ud.localfile
+ if ud.user:
+ up = ud.user.split(":")
+ fetchcmd += " --user=%s --password=%s --auth-no-challenge" % (up[0],up[1])
+
uri = ud.url.split(";")[0]
if os.path.exists(ud.localpath):
# file exists, but we didnt complete it.. trying again..
@@ -300,6 +304,13 @@ class Wget(FetchMethod):
uri = ud.url.split(";")[0]
r = urllib.request.Request(uri)
r.get_method = lambda: "HEAD"
+
+ if ud.user:
+ import base64
+ encodeuser = base64.b64encode(ud.user.encode('utf-8')).decode("utf-8")
+ authheader = "Basic %s" % encodeuser
+ r.add_header("Authorization", authheader)
+
opener.open(r)
except urllib.error.URLError as e:
if try_again:
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Openembedded-commits
mailing list