[bitbake-devel] [PATCH 2/3] fetch2/npm: handle alternative dependency syntax
Paul Eggleton
paul.eggleton at linux.intel.com
Mon Mar 7 04:27:36 UTC 2016
npm allows you to specify a dependency as a Github username+path, or
omit the version entirely. You can hit these if you don't use a
shrinkwrap file, with the result that the code later fails due to the
output of "npm view" being empty; so handle this lazily by just ignoring
this part of the dependency if it's not really a version.
Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
---
lib/bb/fetch2/npm.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/bb/fetch2/npm.py b/lib/bb/fetch2/npm.py
index 59312f4..761c2e0 100644
--- a/lib/bb/fetch2/npm.py
+++ b/lib/bb/fetch2/npm.py
@@ -144,13 +144,15 @@ class Npm(FetchMethod):
def _getdependencies(self, pkg, data, version, d, ud):
pkgfullname = pkg
- if version:
+ if version != '*' and not '/' in version:
pkgfullname += "@%s" % version
logger.debug(2, "Calling getdeps on %s" % pkg)
fetchcmd = "npm view %s dist.tarball --registry %s" % (pkgfullname, ud.registry)
output = runfetchcmd(fetchcmd, d, True)
# npm may resolve multiple versions
outputarray = output.strip().splitlines()
+ if not outputarray:
+ raise FetchError("The command '%s' returned no output" % fetchcmd)
# we just take the latest version npm resolved
#logger.debug(2, "Output URL is %s - %s - %s" % (ud.basepath, ud.basename, ud.localfile))
outputurl = outputarray[len(outputarray)-1].rstrip()
--
2.5.0
More information about the bitbake-devel
mailing list