On Fri, Jan 14, 2022 at 01:25:24PM +0000, Peter Kjellerstedt wrote:
-----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] nodejs_12.21.0.bb: 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
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_12.21.0.bb b/meta-oe/recipes-devtools/nodejs/nodejs_12.21.0.bb index b9e382177..22191a157 100644 --- a/meta-oe/recipes-devtools/nodejs/nodejs_12.21.0.bb +++ b/meta-oe/recipes-devtools/nodejs/nodejs_12.21.0.bb @@ -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" -- 2.17.1
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).
agreed, with dash nodejs do_install fails with dash:
tmp-glibc/work/x86_64-linux/nodejs-native/16.11.1-r0/temp/run.do_install.2837733:169: [[: not found
but unfortunately it doesn't cause do_install to fail, because [[ is in if expression.