Skip to content

Maintain Cywin/MSYS2 build in CI #13720

Description

@Ericson2314

Over the years, various people have built Nix for Cygwin/MSYS2 (for, using MSYS2 to do a MinGW build is different) doing with various success, but this was always prone to bit-rot.

Example of open PR and issue that is supposed to be fixing Cygwin build failures:

Soon though, I hope we'll have Cygwin cross support in in nixpkgs:

At that point, we can easily have a cross build in CI to make sure that this doesn't bit-rot again.

Note, I used to think that once we had a "better" MinGW or MSVC port, we wouldn't need a the "crutch" of a Cygwin/MSYS2 build, but I see now that that is not necessarily the case, because when using nix as a build tool for build platform = MSYS2 / Cygwin builds, you really do want pervasive Unix <-> Windows path conversions (e.g. so /nix/store works) and other search things.

What convinced me of this was seeing how both https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-llvm and https://github.com/msys2/MSYS2-packages/tree/master/llvm exist. LLVM builds naively and with MinGW fine, but for MSYS2's own builds they want to us an MSYS2-using build of LLVM.

Also, just as we've submitted a package to https://github.com/msys2/MINGW-packages for our MinGW port, once this is done we should also submit a package to https://github.com/msys2/MSYS2-packages.

Nevermind. https://github.com/msys2/MSYS2-packages is missing too many of our deps, so it's not worth it.

Cygwin packages https://cygwin.com/cgi-bin2/package-grep.cgi do have e.g. boost, but they might be out of date. It may or may not be worth contributing a package there.

CC @puffnfresh @corngood

Metadata

Metadata

Assignees

Labels

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions