Skip to content

Use OpenSSL 3 for t-encrypt Python wheel builds#303

Merged
PropzSaladaz merged 3 commits into
developfrom
302-openssl-3-for-python-builds
Jul 16, 2026
Merged

Use OpenSSL 3 for t-encrypt Python wheel builds#303
PropzSaladaz merged 3 commits into
developfrom
302-openssl-3-for-python-builds

Conversation

@oleksandrSydorenkoJ

Copy link
Copy Markdown
Contributor

What:

Update the t-encrypt Python wheel build so the packaged native library is built with OpenSSL 3 and validated before publish/use.

Why:

Wheels built against OpenSSL 1.1 can fail on environments without libcrypto.so.1.1. The published Python wheel should depend on OpenSSL 3 and must not be tagged as py3-none-any while bundling a native .so.

How:

  • Added OPENSSL_GIT_REF override support in deps/build.sh while keeping the default OpenSSL 1.1 build unchanged.
  • Set OPENSSL_GIT_REF=openssl-3.0.15 for t-encrypt Python wheel build paths.
  • Kept the t-encrypt wheel platform-specific by marking the distribution as binary.
  • Added wheel validation gates for py3-none-any, auditwheel, bundled libencrypt.so, and OpenSSL 1.1 dependencies.
  • Updated CI to build one t-encrypt wheel artifact and validate that same artifact on Ubuntu 22.04 and Ubuntu 24.04.

Checklist:

  • Documentation N/A
  • Tests
  • Ready to be merged

Local validation:

  • Built cmake target t_encrypt_python.
  • Built t_encrypt-0.0.2-cp313-cp313-linux_x86_64.whl.
  • auditwheel show passed.
  • readelf showed libcrypto.so.3 and no libcrypto.so.1.1.
  • Installed the wheel and imported t_encrypt successfully.

Copilot AI review requested due to automatic review settings July 16, 2026 12:30
@oleksandrSydorenkoJ oleksandrSydorenkoJ linked an issue Jul 16, 2026 that may be closed by this pull request

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the t-encrypt Python wheel build and CI/publish pipelines to build the bundled native library against OpenSSL 3, keep the wheel platform-specific (non-py3-none-any), and add basic validation checks before using/publishing the artifact.

Changes:

  • Mark t-encrypt as a binary distribution (and bump version to 0.0.2) to avoid producing a py3-none-any wheel while bundling a .so.
  • Add OPENSSL_GIT_REF override support in deps/build.sh and use it in CI/publish to build against OpenSSL 3.0.15.
  • Add CI jobs to build, validate (auditwheel/show, contents, and OpenSSL 1.1 dependency absence), and smoke-test import of the same wheel on Ubuntu 22.04 and 24.04; add similar validation in publish workflow.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
python/setup_t_encrypt.py Marks wheel as non-pure via distclass and bumps package version.
deps/build.sh Adds an OpenSSL git ref override used to select OpenSSL 3 for wheel builds.
.github/workflows/test.yml Builds one t-encrypt wheel artifact, validates it, and tests install/import on multiple Ubuntu versions.
.github/workflows/publish.yml Builds t-encrypt native library with OpenSSL 3 and validates wheel characteristics before publishing.

Comment thread deps/build.sh Outdated
@PropzSaladaz
PropzSaladaz merged commit 0afafec into develop Jul 16, 2026
9 checks passed
@PropzSaladaz
PropzSaladaz deleted the 302-openssl-3-for-python-builds branch July 16, 2026 16:23
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 16, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

OpenSSL 3 for Python Builds

4 participants