fix(nodejs): resolve OpenSSL through macOS rpaths#682
Conversation
|
Validation note for maintainers: the ordinary PR checks do not invoke Local packaging proof is included in the PR body and is green. Before marking this ready, the downstream reconciliation gate still requires the authoritative macOS ARM and Intel Node artifact jobs. Please advise the preferred maintainer-dispatch route for this fork PR, or dispatch the equivalent no-publish build after reviewing the workflow change. No npm publication is requested. |
|
Authoritative artifact proof is now complete.
The Node run uses evidence-only commit No package was published and no deployment occurred. With ordinary PR checks and both artifact matrices green, this PR is ready for maintainer review. |
|
@coderabbitai review |
|
Additional Homebrew-independence proof is green:
The additional probe exists only on evidence branch commit |
Summary
@rpathRoot cause
The published macOS Node addons inherit absolute install names from the OpenSSL
dylibs available on the build runner. Current artifacts therefore reference
/opt/homebrew/opt/openssl@3/...directly and fail to load for MacPorts userseven when a maintained OpenSSL 3 installation is present at
/opt/local/lib.Security and packaging
This does not bundle or statically link OpenSSL. Consumers still provide a
separately maintained OpenSSL 3 installation. The packaging step replaces the
build-machine-specific dependency names with
@rpathand embeds only thesesearch roots:
/opt/homebrew/opt/openssl@3/lib/usr/local/opt/openssl@3/lib/opt/local/libThe modified addon is ad-hoc signed after
install_name_toolchanges it.Validation
bash -nand ShellCheck pass for both scriptsgit diff --checkpassesmacOS matrix entries before artifact upload
Full macOS ARM and Intel build proof remains delegated to this PR's remote CI.
Closes #681