[Pkg-javascript-devel] Bug#904274: Bug#904274: nodejs: Debian nodejs is not ABI-compatible with upstream nodejs
Elana Hashman
ehashman at debian.org
Sun Jul 22 19:30:28 BST 2018
On 2018-07-22 13:35, Jérémy Lal wrote:
>
> Forwarded: https://github.com/nodejs/node/issues/21897
Yup, I've read through this as well.
> I agree there is a problem. I disagree the problem is only on the
> distributor side.
I also agree that the problem isn't only on the distributor side, *but*
I think it's easiest to push an effective short-term fix on the
distributor side :)
I think the "correct" solution is to encourage node upstream to not
bundle openssl symbols as part of their ABI, and to make an SSL API/ABI
available as a separate, versioned, installable package (like how
python-cryptography works). However, that sort of change is ABI-breaking
and wouldn't be feasible until at least node 12.x, assuming that
upstream devs accept this suggestion.
> The bug is reported upstream (see forwarded url above).
> Complaining that the distributor is not doing the right thing is a
> wrong approach to the problem.
> You should instead try to understand more deeply the situation and see
> what other languages do about that.
I am one of the manylinux maintainers as a member of the Python
Packaging Authority, so I actually have a lot of experience with setting
standards and writing software to ensure compatible native extensions on
Linux! I have thought about this pretty deeply and can explain my
reasoning below.
> TLDR; the pratical solution is to promote compilation of addons - which
> is *straightforward* on debian/ubuntu/fedora and derivatives
> (you just need to explain which development packages must be
> installed).
This is fair suggestion, but I think that there is significantly more
lift to put this into motion. To accomplish this, I believe we'd have to
go through the following steps:
1) Convince developers (upstream or downstream) to package their native
dependencies for Debian
2) Sponsor native dep uploads to Debian
3) Convince end users to install and depend on the version in Debian
3) is going to be tough, because many folks who use Debian for
development do not necessarily target a Debian production environment.
As another alternative solution, the way we do this in the Python world
is:
1) Set a standard for the generic ABI ("manylinux"), while allowing for
the development of downstream distro ABIs if desired
2) Convince developers to adopt the standard and provide tools to make
it easy for them to build to the standard
3) Patch packaging tools (pip, for Python) to support the standard and
detect the correct ABI for target installs
Either one of these options requires much more work by downstream Debian
devs, upstream, *and* users versus just ensuring Debian's node ABI is
consistent with upstream's.
This is why I advocate keeping Debian's ABI as closely matching upstream
as possible, to reduce the overhead for Debian in maintaining a
separate, incompatible ABI, and the extra development work and user
education that will come along with that.
>> Ubuntu Bionic will need to patch their builddeps downstream to use the
>> right version of openssl, and I'm going to comment on their bug along
>> those lines. This is also an option for us in Debian, but given that
>> we want to drop openssl 1.0.2 in buster, I'd suggest we could also fix
>> this bug by upgrading node to 10.x, available in experimental, which
>> depends on openssl 1.1.0 upstream.
>
> Agreed ! As the main nodejs maintainer the only reason it is not
> already the case is because i did not have time to handle it.
> I do that on free time, and it's a rare thing these days...
I totally understand, as a slammed maintainer myself. It would be great
if we could recruit more folks to help you out with this.
As long as the plan in Debian is to upgrade to Node 10.x, when 10.x gets
uploaded to unstable I'd consider this fixed. I marked this as
"important" and not "serious" to reflect that I think it's important to
get fixed by the next release but it doesn't need to be addressed
immediately :) The biggest surface area is in Ubuntu, which I am trying
to tackle with them directly.
- e
More information about the Pkg-javascript-devel
mailing list