[GRASS-git] [OSGeo/grass] d6d2eb: CI: Workaround OSGeo4W OpenSSL DLL conflict by for...

Vaclav Petras noreply at github.com
Sun Sep 27 03:52:47 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/OSGeo/grass
  Commit: d6d2eb2845444abbabc309f543fc534ff2dc4fd8
      https://github.com/OSGeo/grass/commit/d6d2eb2845444abbabc309f543fc534ff2dc4fd8
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2026-09-27 (Sun, 27 Sep 2026)

  Changed paths:
    M .github/workflows/osgeo4w.yml

  Log Message:
  -----------
  CI: Workaround OSGeo4W OpenSSL DLL conflict by forcing one (#7959)

Copy the OSGeo4W OpenSSL DLLs over the Python copies so that there is
only one OpenSSL version in the process. OpenSSL 3 keeps ABI
compatibility across minor versions, so the Python ssl module works
with the newer DLLs. This is only a workaround.

The OSGeo4W python3-core package ships its own libssl-3-x64.dll and
libcrypto-3-x64.dll (OpenSSL 3.0.21) in apps/Python312/DLLs, with the
same names as the OSGeo4W openssl package DLLs (OpenSSL 3.5.8) in bin.
The curl 8.22.0-1 package, which arrived in OSGeo4W on 2026-09-25
together with a gdal 3.13.3-2 rebuild, has a libcurl.dll which imports
SSL_get0_group_name, available only since OpenSSL 3.2. In a Python
process which already loaded the Python copy of libssl, loading the GDAL
bindings or GRASS libraries (which pull in libcurl through GDAL or PROJ)
fails with STATUS_ENTRYPOINT_NOT_FOUND (0xc0000139), so pytest reports
collection errors.

The investigation and the change were done with AI assistance (Claude
Code).



To unsubscribe from these emails, change your notification settings at https://github.com/OSGeo/grass/settings/notifications


More information about the grass-commit mailing list