Skip to content

Commit f3a27bd

Browse files
committed
Bump windows libs
- xmlsec1 to v1.3.10 - OpenSSL to v3.5.6
1 parent 8563b40 commit f3a27bd

7 files changed

Lines changed: 79 additions & 9 deletions

File tree

.github/workflows/cache_libs.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ on:
4040
required: false
4141
type: string
4242
WIN_OPENSSL_VERSION:
43-
default: "3.0.16.pl1"
43+
default: "3.5.6"
4444
required: false
4545
type: string
4646
WIN_XMLSEC1_VERSION:
47-
default: "1.3.7"
47+
default: "1.3.10"
4848
required: false
4949
type: string
5050
WIN_ZLIB_VERSION:
@@ -110,7 +110,8 @@ jobs:
110110
libs/*.xz
111111
libs/*.gz
112112
libs/*.zip
113-
key: libs-${{ runner.os }}-${{ runner.arch }}-${{ env.LIBXML2_VERSION }}-${{ env.LIBXSLT_VERSION }}
113+
key: >-
114+
libs-${{ runner.os }}-${{ runner.arch }}-${{ env.LIBICONV_VERSION }}-${{ env.LIBXML2_VERSION }}-${{ env.LIBXSLT_VERSION }}-${{ env.OPENSSL_VERSION }}-${{ env.XMLSEC1_VERSION }}-${{ env.ZLIB_VERSION }}
114115
115116
- uses: actions/setup-python@v6
116117
with:

.github/workflows/macosx.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,12 @@ jobs:
1414
runs-on: macos-latest
1515

1616
env:
17+
LIBICONV_VERSION: ${{ needs.cache_libs.outputs.LIBICONV_VERSION }}
1718
LIBXML2_VERSION: ${{ needs.cache_libs.outputs.LIBXML2_VERSION }}
1819
LIBXSLT_VERSION: ${{ needs.cache_libs.outputs.LIBXSLT_VERSION }}
20+
OPENSSL_VERSION: ${{ needs.cache_libs.outputs.OPENSSL_VERSION }}
21+
XMLSEC1_VERSION: ${{ needs.cache_libs.outputs.XMLSEC1_VERSION }}
22+
ZLIB_VERSION: ${{ needs.cache_libs.outputs.ZLIB_VERSION }}
1923

2024
strategy:
2125
matrix:
@@ -33,7 +37,8 @@ jobs:
3337
libs/*.xz
3438
libs/*.gz
3539
libs/*.zip
36-
key: libs-${{ runner.os }}-${{ runner.arch }}-${{ env.LIBXML2_VERSION }}-${{ env.LIBXSLT_VERSION }}
40+
key: >-
41+
libs-${{ runner.os }}-${{ runner.arch }}-${{ env.LIBICONV_VERSION }}-${{ env.LIBXML2_VERSION }}-${{ env.LIBXSLT_VERSION }}-${{ env.OPENSSL_VERSION }}-${{ env.XMLSEC1_VERSION }}-${{ env.ZLIB_VERSION }}
3742
3843
- uses: actions/setup-python@v4
3944
with:

.github/workflows/manylinux.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,12 @@ jobs:
1414
runs-on: ubuntu-latest
1515

1616
env:
17+
LIBICONV_VERSION: ${{ needs.cache_libs.outputs.LIBICONV_VERSION }}
1718
LIBXML2_VERSION: ${{ needs.cache_libs.outputs.LIBXML2_VERSION }}
1819
LIBXSLT_VERSION: ${{ needs.cache_libs.outputs.LIBXSLT_VERSION }}
20+
OPENSSL_VERSION: ${{ needs.cache_libs.outputs.OPENSSL_VERSION }}
21+
XMLSEC1_VERSION: ${{ needs.cache_libs.outputs.XMLSEC1_VERSION }}
22+
ZLIB_VERSION: ${{ needs.cache_libs.outputs.ZLIB_VERSION }}
1923

2024
strategy:
2125
matrix:
@@ -37,7 +41,8 @@ jobs:
3741
libs/*.xz
3842
libs/*.gz
3943
libs/*.zip
40-
key: libs-${{ runner.os }}-${{ runner.arch }}-${{ env.LIBXML2_VERSION }}-${{ env.LIBXSLT_VERSION }}
44+
key: >-
45+
libs-${{ runner.os }}-${{ runner.arch }}-${{ env.LIBICONV_VERSION }}-${{ env.LIBXML2_VERSION }}-${{ env.LIBXSLT_VERSION }}-${{ env.OPENSSL_VERSION }}-${{ env.XMLSEC1_VERSION }}-${{ env.ZLIB_VERSION }}
4146
4247
# Keep this job on the host runner so JS-based actions (for example actions/cache)
4348
# can run, then execute build/test inside the target manylinux/musllinux container.

.github/workflows/wheels.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,12 @@ jobs:
110110
runs-on: ${{ matrix.os }}
111111

112112
env:
113+
LIBICONV_VERSION: ${{ contains(matrix.os, 'windows-') && needs.cache_libs.outputs.WIN_LIBICONV_VERSION || needs.cache_libs.outputs.LIBICONV_VERSION }}
113114
LIBXML2_VERSION: ${{ contains(matrix.os, 'windows-') && needs.cache_libs.outputs.WIN_LIBXML2_VERSION || needs.cache_libs.outputs.LIBXML2_VERSION }}
114115
LIBXSLT_VERSION: ${{ contains(matrix.os, 'windows-') && needs.cache_libs.outputs.WIN_LIBXSLT_VERSION || needs.cache_libs.outputs.LIBXSLT_VERSION }}
116+
OPENSSL_VERSION: ${{ contains(matrix.os, 'windows-') && needs.cache_libs.outputs.WIN_OPENSSL_VERSION || needs.cache_libs.outputs.OPENSSL_VERSION }}
117+
XMLSEC1_VERSION: ${{ contains(matrix.os, 'windows-') && needs.cache_libs.outputs.WIN_XMLSEC1_VERSION || needs.cache_libs.outputs.XMLSEC1_VERSION }}
118+
ZLIB_VERSION: ${{ contains(matrix.os, 'windows-') && needs.cache_libs.outputs.WIN_ZLIB_VERSION || needs.cache_libs.outputs.ZLIB_VERSION }}
115119

116120
strategy:
117121
fail-fast: false
@@ -131,7 +135,8 @@ jobs:
131135
libs/*.xz
132136
libs/*.gz
133137
libs/*.zip
134-
key: libs-${{ runner.os }}-${{ runner.arch }}-${{ env.LIBXML2_VERSION }}-${{ env.LIBXSLT_VERSION }}
138+
key: >-
139+
libs-${{ runner.os }}-${{ runner.arch }}-${{ env.LIBICONV_VERSION }}-${{ env.LIBXML2_VERSION }}-${{ env.LIBXSLT_VERSION }}-${{ env.OPENSSL_VERSION }}-${{ env.XMLSEC1_VERSION }}-${{ env.ZLIB_VERSION }}
135140
136141
- name: Set up QEMU
137142
if: runner.os == 'Linux'

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,7 @@
1414
*.pyo
1515
*.egg*
1616
*.so
17+
18+
# Downloaded dependency archives
19+
/libs/*
20+
!/libs/README.md

build_support/lib_xmlsec_dependency_builder.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def triplet(self) -> str:
3535

3636

3737
class LibXmlsecDependencyBuilder:
38-
WINDOWS_LIBS_DOWNLOAD_RELEASE_URL = 'https://github.com/mxamin/python-xmlsec-win-binaries/releases/download/2025.07.10/'
38+
WINDOWS_LIBS_DOWNLOAD_RELEASE_URL = 'https://github.com/mxamin/python-xmlsec-win-binaries/releases/download/2026.04.20/'
3939
LIB_VERSION_ENV_VARS: ClassVar[dict[str, str]] = {
4040
'libiconv_version': 'PYXMLSEC_LIBICONV_VERSION',
4141
'libxml2_version': 'PYXMLSEC_LIBXML2_VERSION',
@@ -56,8 +56,8 @@ class LibXmlsecDependencyBuilder:
5656
'libiconv_version': '1.18-1',
5757
'libxml2_version': '2.11.9-3', # Make sure it matches with lxml
5858
'libxslt_version': '1.1.39',
59-
'openssl_version': '3.0.16.pl1',
60-
'xmlsec1_version': '1.3.7',
59+
'openssl_version': '3.5.6',
60+
'xmlsec1_version': '1.3.10',
6161
'zlib_version': '1.3.1',
6262
}
6363

libs/README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Dependency archive cache
2+
3+
This directory is used as the local cache for third-party libraries needed by
4+
the static build tooling.
5+
6+
## How it works
7+
8+
`build_libs_xmlsec.py` and `LibXmlsecDependencyBuilder` look in `libs/` first.
9+
If a matching archive is already present here, that file is reused. If not, the
10+
build tooling downloads the archive into this directory and then continues.
11+
12+
The default lookup path is:
13+
14+
```bash
15+
libs/
16+
```
17+
18+
You can override it with either:
19+
20+
```bash
21+
python build_libs_xmlsec.py --libs-dir /path/to/cache
22+
```
23+
24+
or:
25+
26+
```bash
27+
export PYXMLSEC_LIBS_DIR=/path/to/cache
28+
```
29+
30+
## What belongs here
31+
32+
Store downloaded source or binary archives here, for example:
33+
34+
- `openssl*.tar.gz`
35+
- `zlib*.tar.gz`
36+
- `libiconv*.tar.gz`
37+
- `libxml2*.tar.xz`
38+
- `libxslt*.tar.xz`
39+
- `xmlsec1*.tar.gz`
40+
- Windows binary archives such as `libxml2-<version>.<suffix>.zip`
41+
42+
Extracted build artifacts do not belong in this directory. Those are created
43+
under `build/tmp/libs/`.
44+
45+
## Why keep this directory
46+
47+
- Speeds up local rebuilds by reusing previously downloaded archives.
48+
- Matches the CI cache strategy in `.github/workflows/cache_libs.yml`.
49+
- Makes it possible to pre-populate dependency archives for offline or
50+
repeatable builds.

0 commit comments

Comments
 (0)