Hi,
Sorry if this is the wrong place for this, or if i am totally misguided.
Is there any hope that MSYS2 can be merged with cygwin?
Can the mingw-w64 toolchains in cygwin do what MSYS2 does?
My simple use case seems that
/c/-style paths, can fopen() C:\ paths without dosfilewarning, depends on posix compatibility dll msys-2.0.dll/cygdrive/-style paths, can fopen() C:\-style paths with a dosfilewarning, depends on posix compatibility dll cygwin1.dllC:\ style paths, no posix compatibility dllC:\ style paths, no posix compatibility dllThe point of MSYS2 is to build windows packages, but it appears that mingw-w64 toolchain behaves similarly under both Cygwin and MSYS2, so I don't understand what the cause of the fork is that they need to be separated..
(pacman is surely a cooler package manager than cygwin's setup.exe gui, MSYS2 has some newer packages and more win32-targeted packages, but cygwin has more packages available for it's "mini os").
There was some mention of it in this old post https://github.com/JuliaLang/julia/issues/3640 ("I discuss with Cygwin developers about adding MSYS mode directly in Cygwin sources") but i couldn't easily find any more mention of the idea.
Regards
mappu
You seem to be trying to imply that at core, Cygwin and MSYS2 are exactly the same, i.e. cygwin1.dll and msys-2.0.dll are basically the same, is this correct?
Yes. Not exactly identical, otherwise there would be no need for a separate project. But MSYS2 is a fork of cygwin and msys-2.0.dll is a modified cygwin1.dll, right? The exported functions are largely the same, and the dlls do perform largely the same role.
I would appreciate some help understanding what the differences are,
whether MSYS2's changes could potentially have been made within the Cygwin project,
and what the roadmap is for any future relationships between the Cygwin and MSYS2 projects
(Consider this a documentation issue)
In the past we have discussion with Cygwin developers about merging MSYS functionality in Cygwin code. They don't want to do it and offered us variant about extending Cygwin DLL by preloading another DLL that will change Cygwin logic. Something like this:
https://github.com/Alexpux/Cygwin/commit/4f756d6cc28179319ceccce01dd698de3f22c212
This is first dirty variant. But we don't have time and man power to try implement it as it need a lot of effort and maybe not work. If you want that MSYS functionality will be merged in Cygwin and you have such knowledges you can open discussion with Corinna on Cygwin ML and try implement this.
Our team is very small and we don't want to spent time for it.
Main changes to Cygwin DLL that we do:
@mappu
whether MSYS2's changes could potentially have been made within the Cygwin project
Potentially of course, since we forked it and added stuff. In reality, to do it in a way that Cygwin would accept, only through Cygwin having a working extension capability. Directly importing MSYS2 code into Cygwin would make Cygwin harder to maintain, and the Cygwin project is all about emulating POSIX, not interoperability with native Windows. Also, Christopher Faylor has left the Cygwin project which is a great shame as he was the most supportive of having this extension capability.
What the roadmap is for any future relationships between the Cygwin and MSYS2 projects
We will continue to re-sync with Cygwin regularly so that we don't get out of date like the original MSYS did. If you were willing to work on refactoring the MSYS2 changes through the nascent/stillborn Cygwin extension system then that'd be really cool.
Without wishing to downplay the importance of this, like Alexey, I've got far too many other things to do. This task needs someone willing to finish (start!) the work and also go through the upstreaming review process (do not underestimate how difficult that will be).
Most helpful comment
In the past we have discussion with Cygwin developers about merging MSYS functionality in Cygwin code. They don't want to do it and offered us variant about extending Cygwin DLL by preloading another DLL that will change Cygwin logic. Something like this:
https://github.com/Alexpux/Cygwin/commit/4f756d6cc28179319ceccce01dd698de3f22c212
This is first dirty variant. But we don't have time and man power to try implement it as it need a lot of effort and maybe not work. If you want that MSYS functionality will be merged in Cygwin and you have such knowledges you can open discussion with Corinna on Cygwin ML and try implement this.
Our team is very small and we don't want to spent time for it.
Main changes to Cygwin DLL that we do: