Open
Description
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
- 1. Investigate the build pipeline and the rocksdb compilation and node-gyp procedures for requirements on GLIBC version.
- 2. See if we can reduce our constraints here
- 3. Rebuild and test on GitHub codespaces, and older Ubuntus.