holepunchto / sodium-native

Low level bindings for libsodium
MIT License
303 stars 65 forks source link

4.2.1 breaks linux support #202

Open JulianBerger opened 4 hours ago

JulianBerger commented 4 hours ago

Since 4.2.1 i get this error:

Error: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /app/node_modules/sodium-native/prebuilds/linux-x64/sodium-native.node)

Downgrading to 4.2.0 fixes the issue.

kasperisager commented 3 hours ago

v4.2.1 was compiled using CMake and https://github.com/holepunchto/cmake-napi, not node-gyp, so that most likely has an effect. What I'm wondering is which.

Which OS are you running?

kasperisager commented 3 hours ago

Everything is still integrated against both macOS, Ubuntu, and Windows, so Linux support is by no means broken in general.

JulianBerger commented 2 hours ago

I run node:20-alpine inside Docker. I resolved the error by installing glibc support (running apk add gcompat). Now it runs fine. But I think the switch to cmake should be a major update because this change is likely to impact many CI pipelines.

kasperisager commented 1 hour ago

Gotcha, so this is specifically about Alpine and musl. Pushing this out as a new major would certainly have been a disservice to those using Alpine as they'd then be stuck on the previous major, so I suggest we work towards a fix instead.

@mafintosh I imagine this worked previously by virtue of node-gyp-build compiling the bindings from source when running on a system using musl?

mafintosh commented 1 hour ago

Sometimes it worked ya but was a mess. @JulianBerger stay in 4.2.0 for now or cd node_modules/sodium-native and call bare-dev install —node —force post install. We are working on a tool that streamlines this across all our native repos