Skip to content

fix: add perl and make to Dockerfile builder stage for openssl-sys#952

Open
JiayuuWang wants to merge 1 commit intoRightNow-AI:mainfrom
JiayuuWang:contribot/fix-dockerfile-missing-perl-make
Open

fix: add perl and make to Dockerfile builder stage for openssl-sys#952
JiayuuWang wants to merge 1 commit intoRightNow-AI:mainfrom
JiayuuWang:contribot/fix-dockerfile-missing-perl-make

Conversation

@JiayuuWang
Copy link
Copy Markdown

Summary

Fixes #950.

The openssl-sys crate vendors OpenSSL and compiles it from source when a suitable system OpenSSL is not found. The vendored build requires perl (for OpenSSL's Configure script) and make. Neither is present in the rust:1-slim-bookworm base image used for the builder stage, causing builds to fail with:

error: failed to run custom build command for `openssl-sys v0.9.x`
...
This perl implementation doesn't work, need perl 5.10 or above.
thread 'main' panicked at 'Failed to find perl'

Change

Add perl and make to the builder stage's apt-get install line:

# Before
RUN apt-get update && apt-get install -y pkg-config libssl-dev && rm -rf /var/lib/apt/lists/*

# After
RUN apt-get update && apt-get install -y pkg-config libssl-dev perl make && rm -rf /var/lib/apt/lists/*

This unblocks anyone trying to build from source on a fresh host, which is currently the only working install path since the GHCR image is not publicly accessible (see #894).

t4min0 added a commit to t4min0/openfang that referenced this pull request Apr 2, 2026
Since v0.5.4, native-tls uses features = ["vendored"], which compiles OpenSSL from source via openssl-sys. This requires perl for the OpenSSL Configure script, but perl was missing from the flake's buildInputs.

Mirrors the Dockerfile fix in RightNow-AI#952. Fixes RightNow-AI#894.
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.

Dockerfile build fails: openssl-sys crate requires perl and make, neither is installed

1 participant