OK, I'm afraid I started something I did not intend to...
To clarify:
* The intent of my message was *not* to discuss whether people still use Windows XP (they do, I know) and it was *not* to discuss if we still want to support Windows XP (we want, if it's possible). * The intent of my message was to discuss possible ways forward regarding the switch to gtk3 in trunk. (Please be aware that this discussion is only about trunk [!] and what will become Inkscape 0.93. Inkscape 0.92 will be unaffected and can be seen as a LTS branch that will always work on Windows XP!)
So regarding Windows XP: Right now I have no idea *how* to support Windows XP in current trunk. Therefore, unless you know of ways how we *can* support Windows XP in trunk there's absolutely no point in discussing whether we want to! This is a purely technical question at this point and has nothing to do with our personal wishes!
Meanwhile my personal focus was actually on the MSYS2 part (on which nobody commented so far) and therefore I hope we can bring this discussion back on track (this is the devel list - not the user list!).
Regards, Eduard
Am 26.02.2017 um 01:05 schrieb Eduard Braun:
Hi all,
one of the biggest changes in current trunk is the switch to gtk3.
As some of you already know this step will be a hard one on Windows as we have to rely on pre-built development libraries to be able to compile Inkscape:
- devlibs currently has no support for gtk3 at all. (There's an experimental branch on which jazzynico was working, but as far as I know he was never able to complete it due to build issues)
- devlibs64 includes gtk3 3.19.6 but IMHO it's pretty broken and would require *a lot* of work to get anywhere near being usable
As a result we're currently not able to build Inkscape for 32-bit Windows at all (bug 1609954 [1]) and builds with devlibs64 are nowhere close to be usable.
*Therefore I want to propose to switch to MSYS2 for compiling Inkscape trunk on Windows!*
MSYS2 is a rewrite of MSYS including all the necessary build tools to compile native applications for Windows using mingw-w64 (see official homepage [2] for details). Furthermore it includes the package manager "pacman" (users of Arch Linux will know it) which allows to conveniently install and upgrade packages.
The switch would have a *lot* of advantages:
- Easier setup of the build system as gcc and all necessary build tools and libraries are included in MSYS2 (currently we require to download gcc + devlibs + cmake separately and procedure varies widely between 32-bit and 64-bit builds)
- A solid set of constantly updated libraries (see [3]).
- Packages are usually built with a small set of patches to fix compatibility errors on Windows that would otherwise require hours to figure out when building libraries from scratch.
- An active developer community. Questions are answered swiftly, bugs in the provided libraries can usually be figured out jointly.
- Creating new packages (if it should ever be required) or recompiling existing packages (i.e. to test a fix) is extremely easy. (I recently added libvisio [4] which was the only dependency of Inkscape not yet provided)
- 32-bit and 64-bit builds are equivalent. The exact same library versions are used and MSYS2 includes build environments for both that co-exist by default
I'm already successfully building current trunk with MSYS2 without any issues at all (there are no code changes needed, only environment variables have to be adjusted and the CMake install target has to be adjusted to pick up the correct libraries). If you're interested you can find the latest builds at [5] (the most obvious change is the Adwaita theme that is now used by gtk3 by default but doesn't look very native. However that's something we can customize going forward as desired).
There's one big downside: My builds currently don't work on Windows XP. However I'm afraid this has nothing to do with MSYS2. Many libraries have started to drop support for Windows XP, most importantly gtk3 does not support it after 3.16 [6]. This means we have two possibilites:
- Drop support for Windows XP in Inkscape 0.93
- Try our best to somehow (currently I have no idea how!) continue support for Windows XP. This would most likely require us to keep building, maintaining and distributing our own development libraries (however I guess even here MSYS2 would be a huge help). While achieving this might sound favourable keep in mind that it would require us to limit ourselves to old library versions on purpose with all the inevitable downsides like unfixed bugs and growing number of incompatibilities in newer OSs.
I thought about this for some time now and although it was not an easy decision I'd vote for the first option. I know people still use Windows XP in productive environments (I have an old Windows XP server running myself - shame on me) but to be realistic it's time to move on. Support for XP ended a long time ago, it's insecure and there's only very few cases where people are actually bound to XP for other reasons than convenience. Weighing all the pros and cons I'd say the pros clearly prevail!
*So: Let me know what you think!* Does a switch to MSYS2 as build system sound reasonable to you? Is Windows XP support something we have to keep even if it means a huge amount of additional effort and requires us to limit ourselves on newer platforms on purpose?
Looking forward to you thoughts, Eduard
[1] https://bugs.launchpad.net/bugs/1609954 [2] http://www.msys2.org/ [3] https://github.com/Alexpux/MINGW-packages [4] https://github.com/Alexpux/MINGW-packages/pull/2194 [5] http://download.tuxfamily.org/inkscape/win64/ [6] https://github.com/GNOME/gtk/blob/24483481c1eaa6e3bad9f158e2d4d3ef21505d9b/N...
Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel