Status update: (as some of you might be wondering what Nicolas is talking about; others might have already noticed)
I recently pushed some commits to Inkscape trunk that allow to compile Inkscape using MSYS2 with minimal effort.
I created a step-by-step guide with complete compilation
instructions in the Wiki:
http://wiki.inkscape.org/wiki/index.php/Compiling_Inkscape_on_Windows_with_MSYS2
If you have some time to spare I'd like to encourage you to start
experimenting with MSYS2 and Inkscape trunk on Windows!
If you should encounter any issues please let me know.
Thanks in advance,
Eduard
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/NEWS#L2340
------------------------------------------------------------------------------ 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