On 03/08/2015 09:16 AM, David Macek wrote: > On 8. 3. 2015 3:39, David Marceau wrote: >> I read the intro to msy2 on your wikipage. > > First, I want to know if this explanation helps: > > Cygwin provides a lot of packages allowing (and with the goal of) easy > building of POSIX software on Windows. It also provides few packages > (mingw-w64-*) additionally allowing building of native Windows software, but > it's not really important to them. Imagine MSYS2 is a Cygwin with swapped > priorities. Our goal is easy building of native Windows software and we have > a lot of packages there, but we also (need to) have some packages for > building POSIX software, but it's important for us to expand these > repositories. > > I'd really like to know your feedback on this paragraph. If it did help, I'll > include it on the wiki. Direct answers below.
You said "POSIX" a great deal. I understand it is important as it means 100% UNIX behaviour in a sense. It seems to me GNU/Linux holds the torch for POSIX. New stuff possibly going into POSIX will land in GNU/Linux on experimental branches before anywhere else now. http://en.wikipedia.org/wiki/POSIX POSIX in my opinion is all that command-line and piping from one tool to another is available both in cygwin and msys2. POSIX is all about making sure app inter-client communication conforms to the same CLI apis and C apis. The company "MKS SOFTWARE" claims POSIX compliance better than cygwin. So does that mean the POSIX pecking order is "mks toolkit" > cygwin > msys2 ? http://www.mkssoftware.com/products/ >From what I experienced recently, the gtk/gtkmm stuff in MSYS2 is seems to stay closely up-to-date with arch sources unlike cygwin gtk/gtkmm which for a while was quite dated when I last checked. There is no gtk/gtkmm to be found anywhere mentioned on mkssoftware's product offerings. They mentioned xserver and osf/motif. GTK runs on top of X, but mks software should clearly state whether they support kde/gnome/xfce on top of their xserver. They didn't so I am disregarding the mkstoolkit because they are not providing a one-stop place to find everything found in the most popular GNU/Linux distros. I don't care about POSIX. I care about GNU/Linux. I am more focused about GNU/Linux apps behaving correctly not only on GNU/Linux but also on 64-bit Windows OS WITHOUT RELEARNING ANY RECENT WIN64 WINDOWS APIs to get there. If I can get 64-bit GNU/Linux apps to build and run on a windows os by using MSYS2/MINGW64, then I want to use it. Although I'm brushing up on my c++/gtkmm skills intent on using them with msys2/mingw64 and linux distros, I've been looking at the progress being made with golang 1.5 to target many different os'es. One single command gets your binary ready to run for another os. I've shown three different commands to build and another three different commands to run them on their respective os along with the output. golang is currently more in favor of staticlib-based-binaries rather than dll-based-binaries. http://dave.cheney.net/2015/03/03/cross-compilation-just-got-a-whole-lot-better-in-go-1-5 % env GOOS=darwin GOARCH=386 go build -x hello.go # scp to darwin host $ ./hello Hello darwin/386 % env GOOS=linux GOARCH=arm GOARM=7 go build -x hello.go # scp to linux host $ ./hello Hello linux/arm go build -x hello.go [loongson@patience01 testx1]$ ./hello Hello linux/amd64 If you would like to see the noisy under-the-hood results for these builds here they are: https://github.com/golang/go/issues/10075 It may seem irrelevant, but when there is a working gtk3 binding "gotk3", then it becomes relevant to building GNU/Linux GUI apps with all the bells and whistles probably found within the above mentioned POSIX. I recently saw a video about spec testing for http2 within golang. https://www.youtube.com/watch?v=gukAZO1fqZQ LOTS of state-of-the-art more-POSIX-than-POSIX stuff in golang. The http2 golang test coverage stuff mentioned in the above http2 golang talk youtube video demonstrates that. *********************************************** *********************************************** *********************************************** I like the end-result of msys2/mingw and cygwin... bringing linux tools guis to windows. THE BETTER TOOLKIT will be the one that allows you to target everything: -for MS-WINDOWS OS without learning anything MS win32/win64 specific. -for ANDROID OS without learning anything ANDROID specific. -for Apple MAC OS X without learning anything Apple specific. *********************************************** *********************************************** *********************************************** In a sense, that's what POSIX was for, but GUI wise the landscape is foggy. X.org(latest)? Qt5? GTK3? For me GTK3 in c++(gtkmm) and golang(gotk3) seem to lift the fog. msys2/mingw64 help to lift that fog when targeting windows specifically. Installing packages with pacman is better than installing packages with cygwin. I am in favor of a wiki page helping to create msys2/mingw64 pacman packages ready to be submitted to msys2/mingw64-specific repository mirrors. http://gtkmm-installation.blogspot.ca/2015/01/gtkmm-installation-on-windows-step-by.html https://github.com/conformal/gotk3/issues/88 So where am I going with all this? It would be nice to see golang well-supported within msys2/mingw64 infrastructure to get you where you want to go faster. Some tools to help create packages ready to upload to pacman msys2/mingw64 repositories for not only c++/gtkmm based binaries, but also golang binaries would be awesome. >>> "MSYS2 doesn't intend to compete with Cygwin or duplicate their >efforts." >> >> It seems that the MSYS2 team is encouraging me to also install cygwin on >> my windows os alongside my MSYS2 installation. Is that what I should >> interpret from the above statement? > > If you need it, yes. > >> Why should I have both msys2 and >> cygwin installed together? What's the benefit over simply installing msys2? > > Cygwin provides a massive package repository, including a lot of software > that is hard to port to native Windows (i.e. mingw-w64). The idea is that the > POSIX-emulated part of MSYS2 is just a necessary evil to allow compiling > native software. Even if it was not the case though, since MSYS2 isn't just a > clone of Cygwin (differences in the runtime, different package manager), we > can't simply use their repository nor we can easily use their build recipes > to build our own. A single project combining the strengths of both Cygwin and > MSYS2 would be awesome, but that's distant, possibly unattainable future. > >> I am confused because both msys2 and cygwin provide the gnu compiler >> collection helping linux developers to code just once and simply compile >> again for windows os'(32-bit or 64-bit) binaries. > > I assume you mean the POSIX-enabled gcc. In that case, my answer is that > MSYS2 provides this toolchain, but doesn't encourage its use. The set of > available library packages for this subsystem is very small to really allow > "simply compiling again for Windows" anyway. > > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for all > things parallel software development, from weekly thought leadership blogs to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > > > > _______________________________________________ > Msys2-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/msys2-users > ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Msys2-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/msys2-users
