From d854ab4673c2f9d8048c7f0f6d164b7e4d5e0865 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 14 Aug 2026 11:27:09 +0200 Subject: [PATCH] GHA/windows: install MSYS2 Perl manually on Windows 2025 runner In GitHub runner image windows-2025-vs2026 v20260810.198.2, the default Perl binary changed from MSYS2 to Strawberry. The reason is that the MSYS2 installation not longer has Perl preinstalled. As seen in CMake configuration: ```diff - -- Found Perl: C:/a/_temp/msys64/usr/bin/perl.exe (found version "5.42.2") + -- Found Perl: C:/Strawberry/perl/bin/perl.exe (found version "5.42.0") ``` curl's Perl scripts require an MSYS2 Perl. Fix by installing it manually in this one job. Symptom was `gencert.pl` no longer finding openssl.exe: ``` Missing or broken 'openssl' tool. openssl 1.0.2+ is required. ``` Then the script hanging while trying to trace it. Also: - add distinct error message and list PATH elements if openssl is not found via `gencert.pl`. - tried falling back to Git for Windows Perl, which caused the test step to either hang or run too slowly to fit the time slot. Refs: https://github.com/actions/runner-images/pull/14541 https://github.com/actions/runner-images/releases/tag/win25-vs2026%2F20260810.198 Bug: https://github.com/curl/curl/pull/22577#issuecomment-5286533641 Bug: https://github.com/curl/curl/pull/22577#issuecomment-5291468024 Closes #22580 --- .github/workflows/windows.yml | 1 + tests/certs/genserv.pl | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index b07d005978..bfff8c2106 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -943,6 +943,7 @@ jobs: - name: 'openssl +examples' install-msys2: >- + perl mingw-w64-ucrt-x86_64-brotli mingw-w64-ucrt-x86_64-zlib mingw-w64-ucrt-x86_64-zstd diff --git a/tests/certs/genserv.pl b/tests/certs/genserv.pl index 6e8ceec315..3de4071ccf 100755 --- a/tests/certs/genserv.pl +++ b/tests/certs/genserv.pl @@ -79,6 +79,7 @@ if(!$CAPREFIX) { } } if(!$found) { + printf "PATH used: %s\n", join(', ', File::Spec->path()); opensslfail(); } }