node-argon2: argon2 prebuilt binaries fails on debian stretch

Debian 9 (aka ‘stretch’) fails to use the prebuilt binaries though it thinks it can use them.

This is because stretch uses glibc 2.24, but the prebuilt binaries require 2.25:

Error: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.25’ not found (required by /root/repo/node_modules/argon2/lib/binding/argon2.node)`

Stretch is supported until 2022; can we build these libraries against an older glibc (so that it supports these platforms) or figure out how to let them downgrade to source builds if not? (note: i’d much much rather have it support with the prebuilt binaries!)

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 8
  • Comments: 17 (6 by maintainers)

Most upvoted comments

@ranisalt actually the documentation is wrong, we have to use node-pre-gyp now.

so rebuilding works then:

$ npm install -g node-pre-gyp
$ node-pre-gyp rebuild -C ./node_modules/argon2

this module works correctly in node:13 then!

@jnardone can you try it?

I sent a PR #247 explaining how to rebuild the binaries, or to skip prebuilt binaries installation.

To rebuild binaries:

$ node-gyp rebuild -C ./node_modules/argon2

To skip prebuilt binaries installation and compile from source:

# Force build from source
$ npm install argon2 --build-from-source

# or

# Ignore node-argon2 install script, and build explicitly
$ npm install argon2 --ignore-scripts
$ node-gyp rebuild -C ./node_modules/argon2

Using Debian 10 aka buster (or node:13.8.0-buster-slim image from docker hub) works for me as a workaround although that is of course not the resolution for this issue. Just wanted to leave this here in case anybody else runs into the same issue