Re: [meta-oe][dunfell][PATCH 1/2] only handle npm if configured

Peter Kjellerstedt

-----Original Message-----
From: openembedded-devel@... <openembedded-devel@...> On Behalf Of Nisha Parrakat
Sent: den 13 januari 2022 09:13
To: openembedded-devel@...; raj.khem@...
Cc: nishaparrakat@...
Subject: [oe] [meta-oe][dunfell][PATCH 1/2] only handle npm if configured

npm-cli.js should be symlinked only when the file is present
the file may not be available if the configure option is --without-npm

Signed-off-by: Nisha Parrakat <nishaparrakat@...>
meta-oe/recipes-devtools/nodejs/ | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/meta-oe/recipes-devtools/nodejs/ b/meta-oe/recipes-devtools/nodejs/
index b9e382177..22191a157 100644
--- a/meta-oe/recipes-devtools/nodejs/
+++ b/meta-oe/recipes-devtools/nodejs/
@@ -133,7 +133,9 @@ do_install_append_class-native() {
# /usr/bin/npm is symlink to /usr/lib/node_modules/npm/bin/npm-cli.js
# use sed on npm-cli.js because otherwise symlink is replaced with normal file and
# npm-cli.js continues to use old shebang
- sed "1s^.*^#\!/usr/bin/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
+ if [[ -f "${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js" ]]; then
+ sed "1s^.*^#\!/usr/bin/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
+ fi

# Install the native binaries to provide it within sysroot for the target compilation
install -d ${D}${bindir}
@@ -147,7 +149,9 @@ do_install_append_class-native() {

do_install_append_class-target() {
- sed "1s^.*^#\!${bindir}/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
+ if [[ -f "${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js" ]]; then
+ sed "1s^.*^#\!${bindir}/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
+ fi

PACKAGES =+ "${PN}-npm"
This patch should not be applied because it a) contains bashisms and b)
it is better to just remove the workaround as it is no longer needed (see
the patches I just sent for master).


Join { to automatically receive all group messages.