ci: add Cygwin 1.2.x build coverage - #545
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds Cygwin (Windows) build coverage for the 1.2.x branch by introducing a dedicated GitHub Actions workflow and tightening/clarifying Cygwin support across the build system, docs, and runtime behavior.
Changes:
- Add a Windows-hosted GitHub Actions workflow to build Spine under 64-bit Cygwin.
- Restrict
configure.acto explicitly support only x86_64 Cygwin and fail fast on unsupported Cygwin hosts. - Improve Cygwin runtime behavior by preserving existing
CYGWINenv options while addingnodosfilewarning, and by storing the selected shell path explicitly.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
spine.h |
Updates Cygwin stderr comment and replaces the Cygwin shell location flag with an explicit stored shell path. |
spine.c |
Preserves CYGWIN env options while appending nodosfilewarning, and records the resolved Cygwin shell path. |
README.md |
Clarifies that Windows support is via 64-bit Cygwin (not native Windows) and updates dependency/docs wording. |
poller.c |
Uses select(cmd_fd + 1, ...) instead of FD_SETSIZE when waiting on the script pipe FD. |
ping.c |
Uses select(sock + 1, ...) for ICMP/UDP select calls instead of FD_SETSIZE. |
nft_popen.c |
Uses the configured Cygwin shell path for execve() rather than a numeric location flag. |
INSTALL |
Updates Windows/Cygwin installation and support documentation to match 1.2.x expectations. |
configure.ac |
Adds explicit x86_64 Cygwin handling and a clear error for unsupported Cygwin hosts. |
.github/workflows/cygwin.yml |
Introduces a new CI workflow to build on windows-latest with 64-bit Cygwin dependencies. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…rror Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
1ef0d64 to
b05bee5
Compare
|
Folded into #544. The Cygwin job exists to validate the The out-of-scope portability work that was riding along here (the |
Summary
Adds a separate Cygwin/Windows support PR for the 1.2.x branch.
bootstrap, configures against/usr, and builds with verbose outputconfigure.acexplicitly support only x86_64 Cygwin and fail clearly for unsupported 32-bit Cygwin hostsCYGWINenvironment options while addingnodosfilewarningwhen missingselect(fd + 1, ...)in poller/ping paths instead ofFD_SETSIZEValidation
git diff --checkYAML.load_file-DHAVE_LIBPTHREAD=1The actual Cygwin build is expected to run in GitHub Actions after this PR is opened.