aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBöszörményi Zoltán <zboszor@pr.hu>2018-02-04 09:36:15 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-02-09 14:09:52 +0000
commit545540420112992e53f4a83104af10452df168d0 (patch)
tree5615d1aa08f2341e54f641a21ab35fa529e876ef
parent104572438dfedf6025fbfd125aef1d56134012e7 (diff)
downloadbitbake-contrib-545540420112992e53f4a83104af10452df168d0.tar.gz
fetch2/npm.py: Fix inverted condition to prevent infinite loop
At least the cli-color node module has dependencies that have cyclic dependency among themselves. npm.py is prepared to deal with such a case but the condition is handled only for downloading or not a dependency again, but then it goes checking the its dependency which causes an infinite loop in _getdependencies(). Make this function simply return when a dependency is already downloaded and only download and check its dependencies when not. Signed-off-by: Zoltán Böszörményi <zboszor@pr.hu> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/fetch2/npm.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/bb/fetch2/npm.py b/lib/bb/fetch2/npm.py
index b5f148ca0..730c346a9 100644
--- a/lib/bb/fetch2/npm.py
+++ b/lib/bb/fetch2/npm.py
@@ -195,9 +195,11 @@ class Npm(FetchMethod):
outputurl = pdata['dist']['tarball']
data[pkg] = {}
data[pkg]['tgz'] = os.path.basename(outputurl)
- if not outputurl in fetchedlist:
- self._runwget(ud, d, "%s --directory-prefix=%s %s" % (self.basecmd, ud.prefixdir, outputurl), False)
- fetchedlist.append(outputurl)
+ if outputurl in fetchedlist:
+ return
+
+ self._runwget(ud, d, "%s --directory-prefix=%s %s" % (self.basecmd, ud.prefixdir, outputurl), False)
+ fetchedlist.append(outputurl)
dependencies = pdata.get('dependencies', {})
optionalDependencies = pdata.get('optionalDependencies', {})