fix(build): install make in release builder for vendored openssl #76

Merged
David merged 1 commit from fix/VA-73-builder-install-make into main 2026-06-28 00:43:20 +02:00
Owner

Problem

The release image build fails compiling vervain-agent:

cargo:warning=building OpenSSL dependencies: Command 'make' not found. Is make installed?
Error building OpenSSL dependencies: Command 'make' not found.
process "/bin/sh -c cargo build --release --locked --bin vervain-agent" did not complete successfully: exit code: 101

Cause

crates/vervain-agent/Cargo.toml builds rusqlite with the bundled-sqlcipher-vendored-openssl feature, which compiles SQLCipher and OpenSSL from C source as part of the cargo build (intentional, so the binary has no system libsqlite3 / libcrypto runtime dependency). The vendored OpenSSL build runs perl ./Configure and then make depend. The builder stage of oci-build/release.Dockerfile installed only pkg-config, ca-certificates, and git, so make was absent and the build aborted. perl and a C compiler are already present in the base image (Configure succeeded; only make was missing).

Fix

Add make to the apt-get install list in the builder stage, with a comment explaining why the vendored C build needs it.

Verification

docker buildx build --file oci-build/release.Dockerfile --target export --output type=local,dest=out . now completes: rusqlite compiles, the release build finishes, and the 16.9MB vervain-agent binary is exported. just pre-commit passes.

#VA-73

## Problem The release image build fails compiling `vervain-agent`: ``` cargo:warning=building OpenSSL dependencies: Command 'make' not found. Is make installed? Error building OpenSSL dependencies: Command 'make' not found. process "/bin/sh -c cargo build --release --locked --bin vervain-agent" did not complete successfully: exit code: 101 ``` ## Cause `crates/vervain-agent/Cargo.toml` builds `rusqlite` with the `bundled-sqlcipher-vendored-openssl` feature, which compiles SQLCipher and OpenSSL from C source as part of the cargo build (intentional, so the binary has no system libsqlite3 / libcrypto runtime dependency). The vendored OpenSSL build runs `perl ./Configure` and then `make depend`. The `builder` stage of `oci-build/release.Dockerfile` installed only `pkg-config`, `ca-certificates`, and `git`, so `make` was absent and the build aborted. `perl` and a C compiler are already present in the base image (Configure succeeded; only `make` was missing). ## Fix Add `make` to the `apt-get install` list in the `builder` stage, with a comment explaining why the vendored C build needs it. ## Verification `docker buildx build --file oci-build/release.Dockerfile --target export --output type=local,dest=out .` now completes: rusqlite compiles, the release build finishes, and the 16.9MB `vervain-agent` binary is exported. `just pre-commit` passes. #VA-73
fix(build): install make in release builder for vendored openssl
All checks were successful
Check / fmt + clippy + tests (pull_request) Successful in 5m3s
Create release / Create release from merged PR (pull_request) Has been skipped
7d3d92ee19
The release image compiles vervain-agent with rusqlite's bundled-sqlcipher-vendored-openssl feature, which builds SQLCipher and OpenSSL from C source. The vendored OpenSSL build runs make depend, but the slim builder image only installed pkg-config, ca-certificates, and git, so the build failed with "Command 'make' not found". Add make to the apt install list (perl and a C compiler are already present in the base image).

#VA-73
David merged commit e14b5e5c71 into main 2026-06-28 00:43:20 +02:00
David deleted branch fix/VA-73-builder-install-make 2026-06-28 00:43:20 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/vervain-agent!76
No description provided.