FS#73268 - [nodejs] 17.3.0 is built with OpenSSL 1.1 and prevents binary packages from working
Attached to Project:
Community Packages
Opened by Momtchil Momtchev (mmomtchev) - Wednesday, 05 January 2022, 18:35 GMT
Last edited by Toolybird (Toolybird) - Tuesday, 31 January 2023, 04:50 GMT
Opened by Momtchil Momtchev (mmomtchev) - Wednesday, 05 January 2022, 18:35 GMT
Last edited by Toolybird (Toolybird) - Tuesday, 31 January 2023, 04:50 GMT
|
Details
Description:
Node.js 17.3.0 as included in Archlinux is a Frankenstein version, built against a shared version of OpenSSL 1.1 Normally, Node.js 17 should use OpenSSL 3.0 included as a static library Why is it such a big deal if it works? Because binary (native in Node lingo) modules come with prebuilt binaries for each Node ABI. Those built for Node 17 are built against the included OpenSSL 3 and won't work on ArchLinux. Steps to reproduce: Try to install a prebuilt native module which uses OpenSSL - I am the author of gdal-async (npm i gdal-async) and if you run the network unit tests you will get an unresolved symbol - SSL_CTX_load_verify_file - which does not exist in 1.1 Generally, my advice is to not distribute binary Node versions which are built in a substantially different way than the Nodesource distribution which should probably be your baseline. Or maybe ask the core developers for an advice on that matter. |
This task depends upon
Closed by Toolybird (Toolybird)
Tuesday, 31 January 2023, 04:50 GMT
Reason for closing: Fixed
Additional comments about closing: Reporter says "Upgrading to OpenSSL 3 resolves this issue"
Tuesday, 31 January 2023, 04:50 GMT
Reason for closing: Fixed
Additional comments about closing: Reporter says "Upgrading to OpenSSL 3 resolves this issue"
If you want to continue building Node.js 17 with a shared version of OpenSSL 1.1.1m, you should request to be assigned an ABI identification number, so that native modules can identify this Node.js and eventually provide pre-built binaries for it.