[Buildroot] [PATCH] package/nodejs: fix additional modules installation

Yann E. MORIN yann.morin.1998 at free.fr
Tue Nov 7 15:15:18 UTC 2023


Giluio, All,

On 2023-10-31 10:01 +0100, Giulio Benetti spake thusly:
> At the moment the npm_config_nodedir is set to the build directory but
> npm nodedir must be the one on target to find the expected files. So let's
> set npm_config_nodedir to $(TARGET_DIR)/usr.
> 
> Fixes:
> https://bugs.busybox.net/show_bug.cgi?id=15826
> 
> Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com>
> ---
>  package/nodejs/nodejs.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/package/nodejs/nodejs.mk b/package/nodejs/nodejs.mk
> index 2a8c570932..8f86413049 100644
> --- a/package/nodejs/nodejs.mk
> +++ b/package/nodejs/nodejs.mk
> @@ -20,7 +20,7 @@ NODEJS_BIN_ENV = $(TARGET_CONFIGURE_OPTS) \
>  	npm_config_arch=$(NODEJS_CPU) \
>  	npm_config_target_arch=$(NODEJS_CPU) \
>  	npm_config_build_from_source=true \
> -	npm_config_nodedir=$(BUILD_DIR)/nodejs-$(NODEJS_VERSION) \
> +	npm_config_nodedir=$(TARGET_DIR)/usr \

So, there is a first issue in the original npm_config_nodedir, as it
references NODEJS_VERSION which no longer exists since 4cbc2af604e7
(package/nodejs: rename to nodejs-src and convert to virtual package),
when we renamed the actual version variable to NODEJS_COMMON_VERSION.

This is visible in the build log of #15826:

    npm ERR! gyp WARN read config.gypi ENOENT: no such file or directory, open '/home/marcus/repos/buildroot-upstream/output/build/nodejs-/include/node/config.gypi'

Notice the /nodejs-/ part of the path: it hints that a variable is not
expanded as would be expected; in this case, the wrong variable is
expanded. (I have started a build with the variable name fixed; let's
see what happens...)

Furthermore, even though this again is an npm-mess issue, I'd like a bit
more explanations on why we need to change npm_config_nodedir now, when
it has been working so far, since it was introduced 10 years ago with
commit b31bc7d43870 (nodejs: new package). Presumably, it did work then

Maybe the explanation is just "in fact it has never worked!", and then
it would be nice to know why it never worked.

Daniel, I know it's been 10 years now, but do you happen to have some
recollection of what was going on?

Finally, I *think* your patch might be correct, but not for the good
reasons...

Regards,
Yann E. MORIN.

>  	npm_config_prefix=$(TARGET_DIR)/usr \
>  	npm_config_cache=$(BUILD_DIR)/.npm-cache
>  
> -- 
> 2.34.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list