I've started a fdb forum topic about the issue. Hopefully folks at Apple have some thoughts on how to solve this.
This bug is not related to any particular version of this library - its kind of an upstream issue, though if there's reasonable workarounds we can put in place I'll do that.
Affected versions:
Node 13.12.0: fails / 13.11.0: works
Node 12.16.2: fails / 12.16.1: works
Node 10.20.0: fails / 10.19.0: works
Workarounds:
If you're running into this issue, you can do any of the following to get things working while we figure out a better solution:
Downgrade to one of the working versions of nodejs listed above. (At time of writing I recommend 12.16.1 or earlier).
Add DYLD_LIBRARY_PATH=/usr/local/lib to the environment variables before the node process is run. You'll also need this when you npm install foundationdb.
Copy /usr/local/lib/libfdb_c.dylib to the working directory you're invoking node commands from. You'll need to do this before running npm install.
I don't think this is going to be resolved any time soon. It might make sense to just add some mitigation recommendations into the error message on macos and close this issue :/
There's an issue in the bleeding edge versions of nodejs where the module loader can't find
libfdb_c.dylib
. Apparently the issue is due to notarization being turned on in the nodejs release process, which ads additional security sandboxing to the node process.I've started a fdb forum topic about the issue. Hopefully folks at Apple have some thoughts on how to solve this.
This bug is not related to any particular version of this library - its kind of an upstream issue, though if there's reasonable workarounds we can put in place I'll do that.
Affected versions:
Workarounds:
If you're running into this issue, you can do any of the following to get things working while we figure out a better solution:
DYLD_LIBRARY_PATH=/usr/local/lib
to the environment variables before the node process is run. You'll also need this when younpm install foundationdb
./usr/local/lib/libfdb_c.dylib
to the working directory you're invoking node commands from. You'll need to do this before runningnpm install
.