Hi folks, This is an update on the current state of our GitLab CI infrastructure. We had a problem 3 weeks ago where the Windows CI builds stopped working (https://gitlab.com/libtiff/libtiff/-/merge_requests/790#note_3050047945). Unfortunately, the build hosts weren’t repairable, and they have now been removed entirely. We were broken firstly by a Windows update stopping needed tools from running (SmartScreen blacklisted ninja.exe …), and then by an issue with Go on AMD64 processors when run via Bhyve virtualisation which caused stack problems in the Go runtime affecting both gitlab-runner and docker.
I’ve since replaced these twice over without success, and have now set up a bare metal Windows installation which hosts Windows Container builds using Docker. This is an AMD Ryzen system with 32GB RAM and 1TB storage which should be more than sufficient for hosting the libtiff Windows builds. This is working, and it is now possible to have a different build environment (container image) for VS2022, VS2026, Cygwin and MinGW64. You can find them here: https://gitlab.com/codelibre/containers/vs2022-libtiff https://gitlab.com/codelibre/containers/vs2026-libtiff https://gitlab.com/codelibre/containers/cygwin-libtiff https://gitlab.com/codelibre/containers/mingw-libtiff and https://gitlab.com/codelibre/containers/visualstudio-2022 https://gitlab.com/codelibre/containers/visualstudio-2026 (Base containers shared with other projects) Note that these are hosted in the “codelibre” group rather than “libtiff” due to the excessive size of Windows container images. The libtiff group has a limited quota while I have a paid plain with 50 GB per project. You are still free to fork them, open merge requests and pull the container images from the registry if you set up Windows Containers on a local system. If the build dependencies change or need updating, MRs are probably the best approach. I will likely set up a rebuild of the images on a schedule so that they pull in tool and library dependency updates. Any preferences on this? Could initially go for monthly and see if it works out? Overall, this should be a net improvement upon the manually-installed system we had before, as well as the fixed AppVeyor images which only got updated sporadically. It also means the libtiff tools and library dependencies are completely isolated from the other build jobs the build system is running. These can now be used with the libtiff CI build: https://gitlab.com/libtiff/libtiff/-/pipelines/2342441382 (MR https://gitlab.com/libtiff/libtiff/-/merge_requests/827) All jobs building fine, except that note that there has been a regression, I think due to the recent IFD loop changes. This makes the Cygwin builds segfault in the directory test: 2026-02-22T20:51:46.266401Z 01O 12: Test command: /usr/bin/cmake.exe "-DSTDOUT_COMMAND=/cygdrive/c/builds/libtiff/libtiff/cmake-build/test/test_directory.exe" "-DLIBTIFF=/cygdrive/c/builds/libtiff/libtiff/cmake-build/libtiff/cygtiff-6.dll" "-DTIFFCP=/cygdrive/c/builds/libtiff/libtiff/cmake-build/tools/tiffcp.exe" "-DTIFFINFO=/cygdrive/c/builds/libtiff/libtiff/cmake-build/tools/tiffinfo.exe" "-DTIFFSPLIT=/cygdrive/c/builds/libtiff/libtiff/cmake-build/tools/tiffsplit.exe" "-DCYGWIN=1" "-P" "/cygdrive/c/builds/libtiff/libtiff/test/TiffTest.cmake" 2026-02-22T20:51:46.266401Z 01O 12: Working Directory: /cygdrive/c/builds/libtiff/libtiff/cmake-build/test 2026-02-22T20:51:46.266401Z 01O 12: Environment variables: 2026-02-22T20:51:46.266401Z 01O 12: srcdir=/cygdrive/c/builds/libtiff/libtiff/test 2026-02-22T20:51:46.266401Z 01O 12: Test timeout computed to be: 10000000 2026-02-22T20:51:46.315162Z 01O 12: -- Running /cygdrive/c/builds/libtiff/libtiff/cmake-build/test/test_directory.exe 2026-02-22T20:51:46.348882Z 01O 12: 2026-02-22T20:51:46.348882Z 01O 12: --- Test for non-BigTIFF and LE open option. --- 2026-02-22T20:51:46.366155Z 01O 12: _TIFFCheckDirNumberAndOffset: Warning, TIFF directory 1 has IFD looping to directory 0 at offset 0x144 (324). 2026-02-22T20:51:46.366155Z 01O 12: TIFFWriteDirectorySec: Starting directory 2 at offset 0x144 (324) might cause an IFD loop. 2026-02-22T20:51:46.366155Z 01O 12: MissingRequired: TIFF directory is missing required "ImageLength" field. 2026-02-22T20:51:46.366665Z 01O 12: CMake Error at /cygdrive/c/builds/libtiff/libtiff/test/TiffTestCommon.cmake:86 (message): 2026-02-22T20:51:46.366665Z 01O 12: Returned failed status Segmentation fault! 2026-02-22T20:51:46.366665Z 01O 12: Call Stack (most recent call first): 2026-02-22T20:51:46.366665Z 01O 12: /cygdrive/c/builds/libtiff/libtiff/test/TiffTest.cmake:66 (test_stdout_noargs) 2026-02-22T20:51:46.366665Z 01O 12: 2026-02-22T20:51:46.366665Z 01O 12: Would anyone be able to take another look at that change? Kind regards, Roger _______________________________________________ Tiff mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/tiff
