From 1053035cbca82f177e6cf8a2d467786de7aa146c Mon Sep 17 00:00:00 2001 From: Enguerrand de Ribaucourt Date: Mon, 12 Aug 2024 14:28:26 +0200 Subject: [PATCH] npm: accept unspecified versions in package.json Our current emulation mandates that the package.json contains a version field. Some packages may not provide it when they are not published to the registry. The actual `npm pack` would allow such packages, so should we. This patch adds a default value to allow building such packages. This applies for instance to this package which doesn't declare a version: - https://github.com/cockpit-project/cockpit/blob/23701a555a5af13f998ee4c7526d27fdb5669d63/package.json#L2 v3: - Split bitbake npmsw.py modification in another commit Co-authored-by: Tanguy Raufflet (From OE-Core rev: 470c4c027c2b8bbecf23aa63650a22a312de9aa6) Signed-off-by: Tanguy Raufflet Signed-off-by: Enguerrand de Ribaucourt Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- meta/classes-recipe/npm.bbclass | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/meta/classes-recipe/npm.bbclass b/meta/classes-recipe/npm.bbclass index 91da3295f2..a73ff29be8 100644 --- a/meta/classes-recipe/npm.bbclass +++ b/meta/classes-recipe/npm.bbclass @@ -72,8 +72,10 @@ def npm_pack(env, srcdir, workdir): j = json.load(f) # base does not really matter and is for documentation purposes - # only. But the 'version' part must exist because other parts of + # only. But the 'version' part must exist because other parts of # the bbclass rely on it. + if 'version' not in j: + j['version'] = '0.0.0-unknown' base = j['name'].split('/')[-1] tarball = os.path.join(workdir, "%s-%s.tgz" % (base, j['version']));