aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jansa <martin.jansa@gmail.com>2024-01-25 12:01:32 +0100
committerMartin Jansa <martin.jansa@gmail.com>2024-02-09 02:29:26 +0100
commit898d50b76ed6bb42ab45a9d1c78e02b6bf6f2270 (patch)
tree522c363a85e2db222648bfe83b5467052311ba71
parent8434226254cd89465359cdd495eade90a22f7bab (diff)
downloadbitbake-contrib-jansa/npm.tar.gz
fetch2: npmsw: fix exception without proxyjansa/npm
ERROR: npmsw-test-1.0-r0 do_fetch: Error executing a python function in exec_func_python() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_func_python() autogenerated', lineno: 2, function: <module> 0001: *** 0002:base_do_fetch(d) 0003: File: '/OE/build/oe-core/openembedded-core/meta/classes-global/base.bbclass', lineno: 150, function: base_do_fetch 0146: return 0147: 0148: try: 0149: fetcher = bb.fetch2.Fetch(src_uri, d) *** 0150: fetcher.download() 0151: except bb.fetch2.BBFetchException as e: 0152: bb.fatal("Bitbake Fetcher Error: " + repr(e)) 0153:} 0154: File: '/OE/build/oe-core/bitbake/lib/bb/fetch2/__init__.py', lineno: 1835, function: download 1831: lf = bb.utils.lockfile(ud.lockfile) 1832: 1833: try: 1834: self.d.setVar("BB_NO_NETWORK", network) *** 1835: if m.verify_donestamp(ud, self.d) and not m.need_update(ud, self.d): 1836: done = True 1837: elif m.try_premirror(ud, self.d): 1838: logger.debug("Trying PREMIRRORS") 1839: mirrors = mirror_from_string(self.d.getVar('PREMIRRORS')) File: '/OE/build/oe-core/bitbake/lib/bb/fetch2/npmsw.py', lineno: 255, function: verify_donestamp 0251: def verify_donestamp(self, ud, d): 0252: """Verify the donestamp file""" 0253: def _handle(m, ud, d): 0254: return m.verify_donestamp(ud, d) *** 0255: return all(self._foreach_proxy_method(ud, _handle)) 0256: 0257: def update_donestamp(self, ud, d): 0258: """Update the donestamp file""" 0259: def _handle(m, ud, d): File: '/OE/build/oe-core/bitbake/lib/bb/fetch2/npmsw.py', lineno: 242, function: _foreach_proxy_method 0238: def _foreach_proxy_method(ud, handle): 0239: returns = [] 0240: #Check if there are dependencies before try to fetch them 0241: if len(ud.deps) > 0: *** 0242: for proxy_url in ud.proxy.urls: 0243: proxy_ud = ud.proxy.ud[proxy_url] 0244: proxy_d = ud.proxy.d 0245: proxy_ud.setup_localpath(proxy_d) 0246: lf = lockfile(proxy_ud.lockfile) Exception: AttributeError: 'FetchData' object has no attribute 'proxy' Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
-rw-r--r--lib/bb/fetch2/npmsw.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/bb/fetch2/npmsw.py b/lib/bb/fetch2/npmsw.py
index 1a1e4f41b..cb7edd425 100644
--- a/lib/bb/fetch2/npmsw.py
+++ b/lib/bb/fetch2/npmsw.py
@@ -239,13 +239,14 @@ class NpmShrinkWrap(FetchMethod):
returns = []
#Check if there are dependencies before try to fetch them
if len(ud.deps) > 0:
- for proxy_url in ud.proxy.urls:
- proxy_ud = ud.proxy.ud[proxy_url]
- proxy_d = ud.proxy.d
- proxy_ud.setup_localpath(proxy_d)
- lf = lockfile(proxy_ud.lockfile)
- returns.append(handle(proxy_ud.method, proxy_ud, proxy_d))
- unlockfile(lf)
+ if hasattr(ud, 'proxy'):
+ for proxy_url in ud.proxy.urls:
+ proxy_ud = ud.proxy.ud[proxy_url]
+ proxy_d = ud.proxy.d
+ proxy_ud.setup_localpath(proxy_d)
+ lf = lockfile(proxy_ud.lockfile)
+ returns.append(handle(proxy_ud.method, proxy_ud, proxy_d))
+ unlockfile(lf)
return returns
def verify_donestamp(self, ud, d):