<div dir="ltr"><div dir="ltr"><div>hi !</div><div><br></div><div>Nodejs c++ addons (modules) in buster are built using libnode-dev - a great improvement</div><div>over previous "situation".</div><div>However upstream libnode embeds its dependencies, whereas almost all debian libnode</div><div>dependencies are shared.</div><div>Modules authors expect a given node ABI to offer the same versions, or versions</div><div>abi-compatible with, of these dependencies: uv, v8, openssl.</div><div>In the case of distributions, upstream acknowledged the fact distributors were building</div><div>nodejs against shared libraries, thus the versions might now be the same, breaking</div><div>their module ABI contract.</div><div>So upstream started working on a registry to keep track of ABI changes mandated</div><div>by distributors conditions. It's a work-in-progress but it's due:</div><div><a href="https://github.com/nodejs/node/blob/9adf1fbe/doc/node_module_versions.json#L6" target="_blank">https://github.com/nodejs/node/blob/9adf1fbe/doc/node_module_versions.json#L6</a></div><div><br></div><div>In Debian case, the api-break comes from openssl 1.1.1 where upstream used to</div><div>embed openssl 1.1.0:</div><div>[upstream view]</div><div>(<a href="https://github.com/nodejs/node/issues/18770#issuecomment-456918214" target="_blank">https://github.com/nodejs/node/issues/18770#issuecomment-456918214</a>)<br></div><div>[openssl discussion]</div><div>(<a href="https://mta.openssl.org/pipermail/openssl-project/2019-January/thread.html#1204" target="_blank">https://mta.openssl.org/pipermail/openssl-project/2019-January/thread.html#1204</a>)<br></div><div><br></div><div>It happens that that api breakage has been reverted and is merged in</div><div>openssl 1.1.1 stable branch:<br></div><a href="https://github.com/openssl/openssl/commit/37857e9b5258da148e5d3699b6acdf8787417eb2" target="_blank">https://github.com/openssl/openssl/commit/37857e9b5258da148e5d3699b6acdf8787417eb2</a><br><br>If openssl releases this and the release goes to buster, then all is fine in nodejs land.</div><div dir="ltr"><br></div><div dir="ltr">If it doesn't, debian should ship libnode65, not libnode64, to make sure foreign node modules</div><div>will be able to know they're not installed on a compatible version of libnode.</div><div dir="ltr"><div>The change in itself is trivial (just changing the soname) and should end up being</div><div>an automated transition.</div><div><br></div><div>However it's a special case that needs release team approval and coordination,</div><div>between openssl and nodejs.</div><div><br></div><div>Thanks for the feedback,</div><div>Jérémy</div></div></div>