Skip to content

distribution: drop crypto/all; pin the provider to libcrypto - #111

Merged
turinglambdaai merged 1 commit into
mainfrom
fix/crypto-pin-libcrypto
Oct 1, 2026
Merged

turinglambdaai merged 1 commit into
mainfrom
fix/crypto-pin-libcrypto

Conversation

@turinglambdaai

Copy link
Copy Markdown
Owner

Follow-up to #110, which stopped instantiating every factory but still required crypto/all — and requiring it loads every factory module, some of which run their FFI loads in their module bodies. The gmp factory kills the process at import time on hosts without libgmp, so the packaged macOS app from #110's verification still died at boot:

ffi-lib: could not load foreign library ... libgmp.10.dylib
  body of '#%embedded:gmp/private/gmp:

Rivet's manifest needs only SHA-256 and Ed25519, which the libcrypto provider fully satisfies (the official Racket distributions bundle OpenSSL on every desktop target). This drops crypto/all entirely and pins (crypto-factories (list libcrypto-factory)), also simplifying ed25519-factories.

Verification

  • raco test tests/distribution.rkt: 20/20.
  • Fulcrum's full backend suite: 43/43.
  • End-to-end manifest compose → Ed25519 sign → self-verify against real archives through the libcrypto-only provider.

Requiring crypto/all loads every factory module, and some of them run
their FFI loads in their module bodies — the gmp factory kills the
process at import time on hosts without libgmp. Rivet's manifest needs
only SHA-256 and Ed25519, which the libcrypto provider (bundled by the
official Racket distributions on every desktop target) fully satisfies,
so the provider set is pinned there and crypto/all is gone entirely.

Found packaging a real app for macOS: the CI-built bundle died at boot
on a clean install before any manifest code ran.
@turinglambdaai
turinglambdaai merged commit b7bdbc3 into main Oct 1, 2026
@turinglambdaai
turinglambdaai deleted the fix/crypto-pin-libcrypto branch October 1, 2026 07:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant