Repository navigation
ci: build with OpenSSL 4.x - #37
Merged
Merged
Conversation
Ubuntu 24.04 only packages OpenSSL 3.x, so OpenSSL 4.x isn't covered by CI. Add an openssl4 matrix entry that builds OpenSSL 4.0.3 from the official release (SHA-256 checked, cached per version) and builds libuhttpd against it with PKG_CONFIG_PATH. The job fails if libuhttpd doesn't link libssl.so.4, so it can't pass by silently falling back to the system OpenSSL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
openssljob uses Ubuntu'slibssl-dev, which is OpenSSL 3.0, so CI doesn't cover OpenSSL 4.x.With #36, libuhttpd builds against OpenSSL 4.0, so this adds a matrix entry
openssl4:as shared libraries, without docs and tests, and installed to
~/openssl.actions/cache, keyed by version, so it's only builtonce per version.
-DUSE_OPENSSL=ONandPKG_CONFIG_PATHpointing to that installation.src/libuhttpd.sodoesn't linklibssl.so.4. Without it, a brokeninstallation would let CMake fall back to the system OpenSSL 3, and the job would pass without
testing 4.x.
The other jobs are unchanged. Updating to a later 4.x release means changing
openssl_versionandopenssl_sha256. rtty's CI has the same kind of job for Mbed TLS 4.x.Testing
I ran the steps in an
ubuntu:24.04container, each withbash -eo pipefailas GitHub Actions does:Found openssl, version 4.0.3, libuhttpd builds without warnings, andlibuhttpd.solinks
libssl.so.4.openssljob still builds against OpenSSL 3.0.13.guard fails the step as intended.
The workflow also passes on my fork, with all five jobs green. The
openssl4job built OpenSSL andsaved the
openssl-4.0.3-ubuntu-24.04cache:https://github.com/yegorich/libuhttpd/actions/runs/38147582273