Hi, Sorry for long delay, working on Wine is as hard as we expected :)
On Fri, Jun 5, 2015 at 7:07 PM, David Macek <[email protected]> wrote: > On 5. 6. 2015 12:30, Qian Hong wrote: > It seems that this page (and its source at > https://gist.github.com/fracting/d1e2707da9e1790dbe0f) is already out of > date, at least regarding which bugs are fixed and which aren't. When you put > a new version up, let us know and someone will update the wikipage on SF.net. > Thanks for pointing out that. I update the wiki page here: https://github.com/fracting/wine-fracting/wiki/MSYS2-on-Wine Several change log of the wiki: - Wine Staging binary is packaged and release, lastest wine staging from most Linux distribution should support MSYS2 like the wiki describes. So I removed the sentence about compiling wine staging by oneself. - Some bugs are fixed, for example, pacman works out of box now. Some new bugs are founded, for example, `make` randomly deadlock, `autopoint` randomly generate corruption data, etc. These are updated in the wiki - A travis ci demo is linked from the wiki. BTW, the above wiki is open to anyone to edit, if you found any issue feel free to edit the wiki, thanks! > If you don't care about testing the installer itself, you can always use the > .tar.xz package. That's really a good idea, thanks. I've already setup a travis ci build which download and install the .tar.xz package, see https://github.com/fracting/msys2-runtime-ci-demo/blob/master/.travis.yml#L32 In the future, could MSYS2 officially provides a permanent url which redirects to lastest build of MSYS2? It would be great if we can write ` - wget http://sourceforge.net/projects/msys2/files/Base/i686/msys2-base-i686-latest.tar.xz` in the build script to always follow the latest release. Now, below is some recent report: I've setup a build in Travis CI, which builds MSYS2 runtime on top of MSYS2 in Wine: https://travis-ci.org/fracting/msys2-runtime-ci-demo/builds The script installs latest wine-staging, then download msys2, then initial msys2 in wine, then upgrade msys2 core packages, then download latest msys2-runtime source code from github, install tool chain / build dependency, finally compiles msys2 runtime. See https://github.com/fracting/msys2-runtime-ci-demo/blob/master/.travis.yml for the main script. Good news is, it works, like what you see from Build 119 to Build 128. The build takes a long time on Travis CI, sometimes it takes only 45mins, sometimes it takes about 75mins because downloading msys2 packages from sourceforge repo is slow. Normally Travis CI provides 50mins for free build, but I contacted Travis CI support team and they are very nice to agree to give us 80mins for our special purpose :) In a long term, we should improve the performance of Wine, there is already a proof of concept but we need more work: https://bugs.wine-staging.com/show_bug.cgi?id=401 In theory, we can modify this Travis CI script set to build any other packages, just replace the PKGBUILD file to any other PKGBUILD files. In practice, there are a couple of Wine bug to be fixed yet. Bad news is, it randomly fails, and the failure rate is very high, maybe 75%. I manually trigger rebuild on travis ci many times to count the failure rate and as a result it *looks* pass - which make myself happier, lol. There are a couple of reasons for the random failures: 1. Downloading msys2 packages from sourceforge repo is not reliable. I saw 'slower than 1bite/s' in msys2 log in many failure builds. I guess this cause half of build failures in travis ci. Do we have any good way to solve it? Is there a `pacman --retry` magic or something like that? If you can read my script and provide some advice that would be great appreciated: https://github.com/fracting/msys2-runtime-ci-demo/blob/master/msys2_update.sh https://github.com/fracting/msys2-runtime-ci-demo/blob/master/build.sh 2. MSYS2 make.exe randomly deadlocks in Wine: https://bugs.wine-staging.com/show_bug.cgi?id=404 It seems only deadlock when build in parallel, but it might run into timeout on travis ci if we don't build in parallel. 3. Other unknown Wine bugs. For those Wine bugs, it is both good and bad. It is good because that is part of the original motivation to work on this plan - test wine and fix wine bugs. It is bad because it means current Wine is still not good enough as a real CI environment until we fix those bugs. So, there is still a long way to go. :) While it is difficult in the beginning, it is also obvious that building 1000 packages won't be 1000 times hard of building 1 packages, so once we can build several packages like msys2-runtime reliable, we will soon be able to build thousands of other packages in msys2 repo. During investigation of Travis CI, we also found some limitation of Travis CI environment. Travis CI use simfs filesystem, unfortunately it doesn't support (or wasn't configured to support) user_xttr, which breaks file attribute support in Wine. As a result, symbolic link is not support in MSYS2, unless MSYS="winsymlinks=lnk" is set. The details is documented in https://bugs.wine-staging.com/show_bug.cgi?id=403 We are not sure how serious is the limitation of Travis CI yet, maybe there would be more. If we are blocked by Travis CI limitation, we will change our plan, give up Travis CI, and start to investigate Drone CI. With Drone CI, we can maintain a customer Docker image, with wine and msys2 pre-installed, so either ourselves or other community users can simply download the Docker image and build MSYS2 packages inside Docker. (Docker uses aufs filesystem, not sure how aufs filesystem supports user_xttr yet) Once we have good progress on the Wine side, I'll start to investigate continuous build solution as Ray suggested. I'll update when I have more, any thoughts are also welcome. Since wine-staging binary packages is released, for people who are interesting, it is time to install Wine and play msys2 :) Thank you and have fun! -- Regards, Qian Hong - http://www.winehq.org ------------------------------------------------------------------------------ Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical & virtual servers, alerts via email & sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o _______________________________________________ Msys2-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/msys2-users
