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>
This commit is contained in:
parent
a2e1a39a20
commit
5ad7eb6c61
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user