Closed MitchellBot closed 1 year ago
I assume here that the issue is that I'm using a too-new version of OpenSSL that removed things that NodeJS was relying upon, but correct me if I'm wrong.
Is there a simple way to make this work without downgrading OpenSSL?
That would be my guess too. Unfortunately you're on your own as we've never attempted to build Node.js 14 with OpenSSL 3.0.
Details
I'm working on a Yocto-based embedded OS for a product that requires NodeJS < 15 and I have created a recipe to build NodeJS 14.21.3 based on Honister's 14.17.1 recipe.
The OS is being built with OpenSSL 3.0.8.
On top of many warnings I'm seeing in the compilation output regarding things being "deprecated: Since OpenSSL 3.0", the build is failing with two errors:
| ../src/node.cc: In function 'node::InitializationResult node::InitializeOncePerProcess(int, char**)': | ../src/node.cc:1082:28: error: 'EVP_R_FIPS_MODE_NOT_SUPPORTED' was not declared in this scope; did you mean 'EVP_R_METHOD_NOT_SUPPORTED'? | 1082 | if (ossl_error_code != EVP_R_FIPS_MODE_NOT_SUPPORTED) { | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | EVP_R_METHOD_NOT_SUPPORTED | ../src/node.cc:1094:7: error: 'FIPS_mode' was not declared in this scope | 1094 | if (FIPS_mode()) { | | ^~~~~~~~~
I assume here that the issue is that I'm using a too-new version of OpenSSL that removed things that NodeJS was relying upon, but correct me if I'm wrong.
Is there a simple way to make this work without downgrading OpenSSL?
Node.js version
14.21.3
Example code
The build recipe that includes all the functions to build nodejs is here: http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-devtools/nodejs/nodejs_14.17.1.bb?h=honister I've only changed the version and checksum information.
Operating system
Poky Linux
Scope
Build
Module and version
Not applicable.