Skip to content

Windows CI setup broken: cygwin mirror rotated pkgconf 2.5.1 out, the pinned downgrade 404s #935

Description

@lukstafi

Every Windows CI leg that misses the opam cache now fails at setup, in the step Restore cygwin pkgconf 2.5.1 (Windows) of .github/workflows/ci.yml, before a single test runs. First seen on the extended workflow_dispatch run on master@2f640032f: https://github.com/lukstafi/ocannl-staging/actions/runs/33933071706 (both Build (windows-latest, 5.5.x, main) and Build (windows-latest, 5.5.x, train), 14 minutes in).

Cause: the step fetches the pinned downgrade from https://cygwin.mirror.constant.com/x86_64/release/pkgconf/, and cygwin mirrors keep only the current release versions. The directory now holds pkgconf-3.0.4-2, 3.0.5-1, 3.0.6-1 (plus, still, libpkgconf7/libpkgconf7-2.5.1-1); pkgconf-2.5.1-1-x86_64.tar.zst is gone:

curl: (22) The requested URL returned error: 404
/usr/bin/tar: pkgconf-2.5.1-1-x86_64.tar.zst: Cannot open: No such file or directory
expected pkgconf 2.5.1, got '3.0.6' (extraction failed? this needs a tar with zstd support)

The 2026-09-02 scheduled run (33586609266) still fetched it, so the rotation happened between 2026-09-02 and 2026-09-05. The step's own if: skips it on a cache hit, but actions/cache saves only on a green job, so once a Windows leg misses (a pin or solution digest moves, as it did here) every later run misses too. The next scheduled sweep (Sunday 2026-09-06 03:00 UTC) will fail the same way.

Why it matters beyond a red leg: the Windows leg is the explicit verification boundary for #900 / #869 (atomic_file_race's unchanged <1% refusal claim after staging#617); it cannot be measured until this is fixed.

Fix candidates, in order of preference:

  1. Fetch the two archives from a dated cygwin time-machine snapshot, which never rotates. Verified serving today (HTTP 200, 40954 and 27775 bytes):
    http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2026/09/03/134715/x86_64/release/pkgconf/pkgconf-2.5.1-1-x86_64.tar.zst and .../pkgconf/libpkgconf7/libpkgconf7-2.5.1-1-x86_64.tar.zst. One-line change to $base; plain http, so pin the SHA-512 from the .hint files (pkgconf-2.5.1-1-x86_64.hint sits beside each archive in the same snapshot) if the fetch is to stay trustworthy.
  2. Vendor the two .tar.zst files (68 KB together) under .github/ and drop the network fetch entirely.
  3. Retest whether cygwin's current pkgconf 3.0.6 still has the two --personality regressions the FIXME above the step documents (personality.d lookup path, ignored DefaultSearchPaths). If fixed, the whole three-step downgrade can go, per the FIXME's own exit condition.

Whatever lands, the Windows leg that follows it is the one that finally answers #900.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugHighest priority

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions