Skip to content

Commit df68acb

Browse files
lnagelclaude
andauthored
Migrate Linux CI from OpenSSL 3.0.19 to 3.5.5 LTS (#10)
OpenSSL 3.0 reaches EOL on 2026-09-07. Update the manylinux wheel build to compile OpenSSL 3.5.5 (LTS, supported until 2030) from source, and update documented version requirements accordingly. Closes #9 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent f703e72 commit df68acb

4 files changed

Lines changed: 7 additions & 8 deletions

File tree

.github/workflows/build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,12 +109,12 @@ jobs:
109109
# Use manylinux_2_28 for GCC 13 (C++23 support)
110110
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
111111
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux_2_28
112-
# Install build dependencies in the container (need GCC 13 for C++23, OpenSSL 3.x)
112+
# Install build dependencies in the container (need GCC 13 for C++23, OpenSSL 3.5 LTS)
113113
CIBW_BEFORE_ALL_LINUX: >
114114
dnf install -y gcc-toolset-13 perl-IPC-Cmd perl-Time-Piece libxml2-devel zlib-devel &&
115115
source /opt/rh/gcc-toolset-13/enable &&
116-
curl -L https://www.openssl.org/source/openssl-3.0.19.tar.gz | tar xz &&
117-
cd openssl-3.0.19 &&
116+
curl -L https://github.com/openssl/openssl/releases/download/openssl-3.5.5/openssl-3.5.5.tar.gz | tar xz &&
117+
cd openssl-3.5.5 &&
118118
./config --prefix=/usr/local/openssl3 --openssldir=/usr/local/openssl3 &&
119119
make -j$(nproc) &&
120120
make install_sw install_ssldirs

CLAUDE.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ Python bindings for [libcdoc](https://github.com/open-eid/libcdoc) via SWIG. Pro
1515
- **Static linking** (`BUILD_SHARED_LIBS=OFF`) — self-contained wheels, LGPL-2.1 compliance via RELINKING.md + sdist source
1616
- **Patch-based approach** — upstream libcdoc.i is modified via `patches/libcdoc-python.patch` at CMake configure time (rather than forking)
1717
- **SWIG `%rename` before `%include`** — order matters, rename rules must appear before upstream interface is included
18-
- **`MACOSX_DEPLOYMENT_TARGET=15.0`** — required by Homebrew OpenSSL 3
1918

2019
## Test
2120

@@ -46,7 +45,7 @@ Never use `git -C <path>` — always run git commands from the working directory
4645
4. `build_sdist` — on release/PR
4746
5. `publish` — OIDC trusted publishing to PyPI
4847

49-
Linux wheels build OpenSSL and flatbuffers from source inside manylinux_2_28 with GCC 13.
48+
Linux wheels build OpenSSL 3.5 LTS and flatbuffers from source inside manylinux_2_28 with GCC 13.
5049

5150
## Version management
5251

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ uv add pycdoc
1414

1515
### Runtime
1616
- Python 3.10+
17-
- OpenSSL 3.0+ (usually pre-installed on modern systems)
17+
- OpenSSL 3.5+ (usually pre-installed on modern systems)
1818

1919
### Building from Source
2020

2121
Building from source requires:
2222
- Python 3.10+
2323
- CMake 3.20+
2424
- SWIG 4.0+
25-
- OpenSSL 3.0+
25+
- OpenSSL 3.5+
2626
- libxml2
2727
- zlib
2828
- FlatBuffers

RELINKING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Section 6, you have the right to modify libcdoc and relink. Here's how.
99
- CMake 3.20+
1010
- C++23 compiler (GCC 13+, Clang 16+, MSVC 2022+)
1111
- SWIG 4.0+
12-
- System libraries: OpenSSL 3.0+, libxml2, zlib, flatbuffers
12+
- System libraries: OpenSSL 3.5+, libxml2, zlib, flatbuffers
1313

1414
## Rebuilding from source distribution
1515

0 commit comments

Comments
 (0)