MatrixAI / js-db

Key-Value DB for TypeScript and JavaScript Applications
https://polykey.com
Apache License 2.0
5 stars 0 forks source link

Requires GLIBC 2.33 for RocksDB #73

Open CMCDragonkai opened 4 months ago

CMCDragonkai commented 4 months ago

When running code using the prebuilt binaries, we sometimes encounter this:

node:internal/modules/cjs/loader:1473
  return process.dlopen(module, path.toNamespacedPath(filename));
                 ^

Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /workspaces/Polykey-CLI/node_modules/@matrixai/db/prebuilds/linux-x64/node.napi.node)

This means that the OS that is running on does not have the up to date version of GLIBC. In fact our current NixOS as of posting now, is on 2.37 as per ldd --version.

But for example on GitHub Codespaces, and some of the Ubuntu OSes, they are still on 2.31 or even older.

In order to make Polykey a bit more easier to hack on, it would ideal that we didn't require that specific version of glibc. I'm actually not sure what specifically requires that version of GLIBC. Is it possible to loosen this requirement if it is not necessary? I'm afraid of if we move our nix pin forward alot, we might be inadvertently requiring a much too recent GLIBC, when it's not required.

Tasks

CMCDragonkai commented 4 months ago

Is it even rocksdb, maybe it's due to our own node-gyp that is doing this.

CMCDragonkai commented 4 months ago

@tegefaulkes @amydevs @brynblack

CMCDragonkai commented 4 months ago

It'd be nice if I could get rid of the C++ wrapper, and use a Rust wrapper instead, so we can align all native dependencies.