FS#59394 - [nodejs-lts-carbon] The runtime breaks ABI from the official Node distribution.

Attached to Project: Community Packages
Opened by Nicolas Noble (nicolasnoble) - Thursday, 19 July 2018, 18:08 GMT
Last edited by Bruno Pagani (ArchangeGabriel) - Thursday, 16 August 2018, 14:41 GMT
Task Type General Gripe
Category Packages
Status Closed
Assigned To Bruno Pagani (ArchangeGabriel)
Architecture All
Severity Very Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

I made a similar, more detailed bug report for Ubuntu, available here:

https://bugs.launchpad.net/ubuntu/+source/nodejs/+bug/1779863

Basically, by linking against OpenSSL 1.1 instead of OpenSSL 1.0, this package breaks NodeJS' ABI. Any precompiled binary package for node that is targeting the 8.x runtime and that uses OpenSSL will fail due to ABI changes between OpenSSL 1.0 and OpenSSL 1.1

If you want a reproduction case, check this repository: https://github.com/nicolasnoble/openssl-nodejs-ubuntu-demo - if you compile this extension using the official nodejs 8 runtime, then use this extension on arch linux's nodejs 8 runtime, it'll fail loading.
This task depends upon

Closed by  Bruno Pagani (ArchangeGabriel)
Thursday, 16 August 2018, 14:41 GMT
Reason for closing:  Fixed
Additional comments about closing:  Following discussions with upstream, this has been changed in 8.11.4.
Comment by Bruno Pagani (ArchangeGabriel) - Friday, 10 August 2018, 10:19 GMT
I would call that a feature, not a bug. If you are using precompiled binaries, why not use the nodejs binary too?
Comment by Nicolas Noble (nicolasnoble) - Friday, 10 August 2018, 12:48 GMT
That comment doesn't really make a lot of sense, as you need to think about how users are going to use your package. More specifically, your users are going to use npm to install their packages. As much as archlinux controls the way the runtime is being compiled and distributed, you don't control the way node packages themselves are being compiled and distributed. Unless you start distributing all of the npm packages yourselves, you're not going to be able to call your nodejs runtime compatible if it can't run npm packages properly.

Please also read the discussion over at https://bugs.launchpad.net/ubuntu/+source/nodejs/+bug/1779863 and https://github.com/nodejs/node/issues/21897

In addition, it's most likely that you're also affected by this bug here: https://github.com/nodejs/node-gyp/issues/1415 - meaning that since you're linking against the wrong version of openssl, compiling node modules that depend on openssl from sources should be impossible.
Comment by Bruno Pagani (ArchangeGabriel) - Friday, 10 August 2018, 13:27 GMT
I did read part of the Launchpad ticket and the whole GitHub issue, and answered. I’m not keen to support a bad feature especially if it breaks other things, like Ed25519 support in cozy-desktop communications.

Loading...