diff options
| author | Fabrice Fontaine <fontaine.fabrice@gmail.com> | 2021-12-22 15:07:37 +0100 |
|---|---|---|
| committer | Peter Korsgaard <peter@korsgaard.com> | 2022-01-09 17:24:08 +0100 |
| commit | 5ad7eb6c61d281912a8c692f0b69d46726394b10 (patch) | |
| tree | 706bc5c2772f4cd6e27bf349a1ed70ccfdceddf8 | |
| parent | a2e1a39a203c5476fb464d8ec164a9c6b0fc4aa0 (diff) | |
| download | buildroot-5ad7eb6c61d281912a8c692f0b69d46726394b10.tar.bz2 | |
package/nodejs: force host-python3
Build of nodejs fails if python 3.10 is installed on host.
As suggested by Arnout in
https://bugs.buildroot.org/show_bug.cgi?id=14451, use the same
workaround than in qt5webkit to force host-python3 (which is in version
3.9)
It should be noted that python 3.10 support has been added in version
14.18.2: https://github.com/nodejs/node/releases/tag/v14.18.2
Fixes:
- https://bugs.buildroot.org/show_bug.cgi?id=14451
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| -rw-r--r-- | package/nodejs/nodejs.mk | 54 |
1 files changed, 29 insertions, 25 deletions
diff --git a/package/nodejs/nodejs.mk b/package/nodejs/nodejs.mk index 44bf786dfd..7d5c93eb93 100644 --- a/package/nodejs/nodejs.mk +++ b/package/nodejs/nodejs.mk @@ -27,6 +27,30 @@ NODEJS_CONF_OPTS = \ --cross-compiling \ --dest-os=linux +HOST_NODEJS_MAKE_OPTS = \ + $(HOST_CONFIGURE_OPTS) \ + CXXFLAGS="$(HOST_NODEJS_CXXFLAGS)" \ + LDFLAGS.host="$(HOST_LDFLAGS)" \ + NO_LOAD=cctest.target.mk \ + PATH=$(@D)/bin:$(BR_PATH) + +NODEJS_MAKE_OPTS = \ + $(TARGET_CONFIGURE_OPTS) \ + NO_LOAD=cctest.target.mk \ + PATH=$(@D)/bin:$(BR_PATH) \ + LDFLAGS="$(NODEJS_LDFLAGS)" \ + LD="$(TARGET_CXX)" + +# nodejs's build system uses python which can be a symlink to an unsupported +# python version (e.g. python 3.10 with nodejs 14.18.1). We work around this by +# forcing host-python3 early in the PATH, via a python->python3 symlink. +define NODEJS_PYTHON3_SYMLINK + mkdir -p $(@D)/bin + ln -sf $(HOST_DIR)/bin/python3 $(@D)/bin/python +endef +HOST_NODEJS_PRE_CONFIGURE_HOOKS += NODEJS_PYTHON3_SYMLINK +NODEJS_PRE_CONFIGURE_HOOKS += NODEJS_PYTHON3_SYMLINK + ifeq ($(BR2_PACKAGE_OPENSSL),y) NODEJS_DEPENDENCIES += openssl NODEJS_CONF_OPTS += --shared-openssl @@ -75,21 +99,13 @@ HOST_NODEJS_CXXFLAGS = $(HOST_CXXFLAGS) -DU_DISABLE_RENAMING=1 define HOST_NODEJS_BUILD_CMDS $(HOST_MAKE_ENV) PYTHON=$(HOST_DIR)/bin/python3 \ $(MAKE) -C $(@D) \ - $(HOST_CONFIGURE_OPTS) \ - CXXFLAGS="$(HOST_NODEJS_CXXFLAGS)" \ - LDFLAGS.host="$(HOST_LDFLAGS)" \ - NO_LOAD=cctest.target.mk \ - PATH=$(@D)/bin:$(BR_PATH) + $(HOST_NODEJS_MAKE_OPTS) endef define HOST_NODEJS_INSTALL_CMDS $(HOST_MAKE_ENV) PYTHON=$(HOST_DIR)/bin/python3 \ $(MAKE) -C $(@D) install \ - $(HOST_CONFIGURE_OPTS) \ - CXXFLAGS="$(HOST_NODEJS_CXXFLAGS)" \ - LDFLAGS.host="$(HOST_LDFLAGS)" \ - NO_LOAD=cctest.target.mk \ - PATH=$(@D)/bin:$(BR_PATH) + $(HOST_NODEJS_MAKE_OPTS) $(foreach f,$(NODEJS_HOST_TOOLS), \ $(INSTALL) -m755 -D $(@D)/out/Release/$(f) $(HOST_DIR)/bin/$(f) @@ -195,11 +211,7 @@ endef define NODEJS_BUILD_CMDS $(TARGET_MAKE_ENV) PYTHON=$(HOST_DIR)/bin/python3 \ $(MAKE) -C $(@D) \ - $(TARGET_CONFIGURE_OPTS) \ - NO_LOAD=cctest.target.mk \ - PATH=$(@D)/bin:$(BR_PATH) \ - LDFLAGS="$(NODEJS_LDFLAGS)" \ - LD="$(TARGET_CXX)" + $(NODEJS_MAKE_OPTS) endef # @@ -236,22 +248,14 @@ define NODEJS_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) PYTHON=$(HOST_DIR)/bin/python3 \ $(MAKE) -C $(@D) install \ DESTDIR=$(STAGING_DIR) \ - $(TARGET_CONFIGURE_OPTS) \ - NO_LOAD=cctest.target.mk \ - PATH=$(@D)/bin:$(BR_PATH) \ - LDFLAGS="$(NODEJS_LDFLAGS)" \ - LD="$(TARGET_CXX)" + $(NODEJS_MAKE_OPTS) endef define NODEJS_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) PYTHON=$(HOST_DIR)/bin/python3 \ $(MAKE) -C $(@D) install \ DESTDIR=$(TARGET_DIR) \ - $(TARGET_CONFIGURE_OPTS) \ - NO_LOAD=cctest.target.mk \ - PATH=$(@D)/bin:$(BR_PATH) \ - LDFLAGS="$(NODEJS_LDFLAGS)" \ - LD="$(TARGET_CXX)" + $(NODEJS_MAKE_OPTS) $(NODEJS_INSTALL_MODULES) endef |
