Skip to content

mingw-w64-openssl: update to 3.5.6#191

Merged
dscho merged 4 commits intomainfrom
mingw-w64-openssl-3.5.6
Apr 14, 2026
Merged

mingw-w64-openssl: update to 3.5.6#191
dscho merged 4 commits intomainfrom
mingw-w64-openssl-3.5.6

Conversation

@gitforwindowshelper
Copy link
Copy Markdown

@rimrul rimrul marked this pull request as ready for review April 7, 2026 16:32
@dscho
Copy link
Copy Markdown
Member

dscho commented Apr 13, 2026

/deploy

The i686/x86_64 and the arm64 workflow runs were started.

rimrul and others added 4 commits April 14, 2026 14:36
Signed-off-by: Matthias Aßhauer <mha1993@live.de>
Git for Windows recently stopped building its own Perl and switched to
the MSYS2-provided one. That Perl reports $^O as 'cygwin' rather than
'msys', which means OpenSSL's test skip guards that check for 'msys' no
longer fire. Tests that open listening sockets (notably
82-test_ocsp_cert_chain.t and 90-test_store.t) then hang indefinitely
because Windows Defender's firewall prompts for permission to allow the
connection, which blocks in CI where nobody can click "Allow".

The fix has two parts. For guards that were introduced by our own
carried patches (0005-Fix-Text-comparison, 0006-Mangle-Absolute-path,
0007-Fix-OS-detection), the patches themselves are updated to match
'cygwin' alongside 'msys' from the start. For guards that exist in
upstream OpenSSL (in 02-test_errstr.t, 25-test_eai_data.t,
25-test_x509.t, 80-test_cmp_http.t, 82-test_ocsp_cert_chain.t,
82-test_tfo_cli.t, and 90-test_store.t), a new patch
0009-Also-treat-Cygwin-Perl-like-MSYS-Perl-in-test-skip-g.patch is
added. MSYS2 upstream does not carry this patch because they have not
encountered the firewall hang in their CI, but it is a safety measure
that costs nothing and prevents real hangs on Windows build agents where
Defender is active.

The patches were produced from the playground repository at
mingw-w64-openssl/src/playground, which can be recreated as follows:

    git init playground && cd playground
    /usr/src/git/contrib/fast-import/import-tars.perl \
        ../openssl-3.5.6.tar.gz
    git checkout import-tars
    git am ../../000[1-9]-*.patch
    git fast-export --no-data HEAD | \
      awk '/^author /{a=$0} /^committer /{$0="committer " substr(a,8)} 1' | \
      git fast-import --force --quiet

The fast-export/fast-import awk trick forces committer identity and
timestamp to match the author on every commit, including the import
commit created by import-tars.perl (which otherwise uses the identity
of whoever runs the script). This makes the resulting OIDs fully
reproducible, so `git format-patch --no-signature -o ../.. -9 HEAD`
always exports identical patches.

Assisted-by: Claude Opus 4.6
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
With parallel make, the install step can fail with "Error 13"
(permission denied) when multiple jobs race to run pod2man or write
to the same directory simultaneously. MSYS2 upstream hit the same
problem and added -j1 for `make install` in their 3.4.0 update
(msys2/MINGW-packages@3c238e9727, referencing
openssl/openssl#24298).

Assisted-by: Claude Opus 4.6
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
The OpenSSL test suite runs via Perl's Test::Harness, which defaults to
sequential execution (HARNESS_JOBS=1) unless told otherwise. With 342
test files, sequential execution takes well over an hour on CI. Setting
HARNESS_JOBS=8 brings this down to about 12 minutes on a 6-core machine,
as verified locally (710 wallclock seconds, 4335 tests, all passing).

The default of 8 is a reasonable middle ground: high enough to saturate
typical CI agents, low enough to avoid file descriptor exhaustion. The
value can still be overridden via the environment for machines where a
different number is appropriate.

Assisted-by: Claude Opus 4.6
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
@dscho dscho force-pushed the mingw-w64-openssl-3.5.6 branch from 3929457 to 53f7012 Compare April 14, 2026 12:36
@dscho
Copy link
Copy Markdown
Member

dscho commented Apr 14, 2026

/deploy

The i686/x86_64 and the arm64 workflow runs were started.

@dscho dscho merged commit 3a74441 into main Apr 14, 2026
5 checks passed
@dscho dscho deleted the mingw-w64-openssl-3.5.6 branch April 14, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[New openssl version] OpenSSL 3.5.6

2 participants