summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
authorPeter Kjellerstedt <peter.kjellerstedt@axis.com>2022-01-29 03:29:39 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-02-05 17:46:44 +0000
commitbef3fe496969e79c8c44d3b1c41f60273a182104 (patch)
tree28d77b238a0a314655539454d21031d1fc4146cd /bitbake/lib
parent88993ae0308d74b4c78d28a1ff61cb20305f4e74 (diff)
downloadpoky-bef3fe496969e79c8c44d3b1c41f60273a182104.tar.gz
bitbake: fetch2: npm: Put all downloaded files in the npm2 directory
Previously npm files that specify downloadfilename= in the SRC_URI would be downloaded to the root of ${DL_DIR} rather than in the ${DL_DIR}/npm2 directory where all other npm files are downloaded. This should make it simpler when setting up and configuring a premirror with the downloaded npm packages. (Bitbake rev: 73fa376d6502ab6f2cccfb25a1193d9b1c3c3bc8) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r--bitbake/lib/bb/fetch2/npm.py10
-rw-r--r--bitbake/lib/bb/fetch2/npmsw.py2
-rw-r--r--bitbake/lib/bb/tests/fetch.py2
3 files changed, 9 insertions, 5 deletions
diff --git a/bitbake/lib/bb/fetch2/npm.py b/bitbake/lib/bb/fetch2/npm.py
index b3a3a444ee..8f7c10ac9b 100644
--- a/bitbake/lib/bb/fetch2/npm.py
+++ b/bitbake/lib/bb/fetch2/npm.py
@@ -52,9 +52,13 @@ def npm_filename(package, version):
52 """Get the filename of a npm package""" 52 """Get the filename of a npm package"""
53 return npm_package(package) + "-" + version + ".tgz" 53 return npm_package(package) + "-" + version + ".tgz"
54 54
55def npm_localfile(package, version): 55def npm_localfile(package, version=None):
56 """Get the local filename of a npm package""" 56 """Get the local filename of a npm package"""
57 return os.path.join("npm2", npm_filename(package, version)) 57 if version is not None:
58 filename = npm_filename(package, version)
59 else:
60 filename = package
61 return os.path.join("npm2", filename)
58 62
59def npm_integrity(integrity): 63def npm_integrity(integrity):
60 """ 64 """
@@ -157,7 +161,7 @@ class Npm(FetchMethod):
157 # Using the 'downloadfilename' parameter as local filename 161 # Using the 'downloadfilename' parameter as local filename
158 # or the npm package name. 162 # or the npm package name.
159 if "downloadfilename" in ud.parm: 163 if "downloadfilename" in ud.parm:
160 ud.localfile = d.expand(ud.parm["downloadfilename"]) 164 ud.localfile = npm_localfile(d.expand(ud.parm["downloadfilename"]))
161 else: 165 else:
162 ud.localfile = npm_localfile(ud.package, ud.version) 166 ud.localfile = npm_localfile(ud.package, ud.version)
163 167
diff --git a/bitbake/lib/bb/fetch2/npmsw.py b/bitbake/lib/bb/fetch2/npmsw.py
index 879ba5de0f..a8c4d3528f 100644
--- a/bitbake/lib/bb/fetch2/npmsw.py
+++ b/bitbake/lib/bb/fetch2/npmsw.py
@@ -117,7 +117,7 @@ class NpmShrinkWrap(FetchMethod):
117 117
118 # Handle http tarball sources 118 # Handle http tarball sources
119 elif version.startswith("http") and integrity: 119 elif version.startswith("http") and integrity:
120 localfile = os.path.join("npm2", os.path.basename(version)) 120 localfile = npm_localfile(os.path.basename(version))
121 121
122 uri = URI(version) 122 uri = URI(version)
123 uri.params["downloadfilename"] = localfile 123 uri.params["downloadfilename"] = localfile
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py
index 8b13e178e6..3fd8fac229 100644
--- a/bitbake/lib/bb/tests/fetch.py
+++ b/bitbake/lib/bb/tests/fetch.py
@@ -2399,7 +2399,7 @@ class NPMTest(FetcherTest):
2399 url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=1.0.0;destsuffix=foo/bar;downloadfilename=foo-bar.tgz' 2399 url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=1.0.0;destsuffix=foo/bar;downloadfilename=foo-bar.tgz'
2400 fetcher = bb.fetch.Fetch([url], self.d) 2400 fetcher = bb.fetch.Fetch([url], self.d)
2401 fetcher.download() 2401 fetcher.download()
2402 self.assertTrue(os.path.exists(os.path.join(self.dldir, 'foo-bar.tgz'))) 2402 self.assertTrue(os.path.exists(os.path.join(self.dldir, 'npm2', 'foo-bar.tgz')))
2403 fetcher.unpack(self.unpackdir) 2403 fetcher.unpack(self.unpackdir)
2404 unpackdir = os.path.join(self.unpackdir, 'foo', 'bar') 2404 unpackdir = os.path.join(self.unpackdir, 'foo', 'bar')
2405 self.assertTrue(os.path.exists(os.path.join(unpackdir, 'package.json'))) 2405 self.assertTrue(os.path.exists(os.path.join(unpackdir, 'package.json')))