gtk3 and gnucash

John Ralls jralls at ceridwen.us
Thu Feb 19 10:40:28 EST 2015


> On Feb 19, 2015, at 12:36 AM, Paolo Borelli <paolo.borelli at gmail.com> wrote:
> 
> Hi John!
> 
>    I understand from your reply that the win32 port is not your top
> priority, but I wanted to point out some things about the current
> state of gtk on Windows.
> 
> On Thu, Feb 19, 2015 at 2:59 AM, John Ralls <jralls at ceridwen.us> wrote:
>> As for win32 improvements, no, I haven't seen anything to support that there are any. The latest binaries on www.gtk.org are 3.6, which Tarnyko did 2 years ago. There aren't any gtk3 binaries at all on master.gnome.org, only gtk2 ones from 4 years ago. I see a whopping 8 commits this year in gdk/win32.
>> 
> 
> I agree that it is unfortunate that we do not have a proper win32 page
> on the site, but I can assure you that the win32 port made huge
> progress: most of the fixes are not in the gdk backend which is pretty
> self contained, but in individual widgets and underlying libraries. We
> are using glib 2.42 gtk 3.14 successfully on Windows.
> 
> The lack of standardization on www.gtk.org is also due to the fact
> that there are a few different approaches to use gtk on Windows,
> depending on your goal and tools:
> 
> 1) If you are cross compiling, fedora provides updated binaries of the
> whole stack and I am pretty sure other distros have similar packages.
> The downside of these binaries is that they are built with a runtime
> dependencies on the GNU toolchain, so they cannot be used for
> interoperability with MSVC
> 
> 2) MSYS2 has updated binaries and provides a very efficient way to
> build your gtk app on windows with mingw.
> http://blogs.gnome.org/nacho/2014/08/01/how-to-build-your-gtk-application-on-windows/
> has more information and you can see from
> https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-gtk3
> that things are kept up to date. Incidentally msys2 provides binary
> builds of a lot of other libraries as you can see from that repository
> and it is also relatively easy to extract these libraries and use them
> with MSVC
> 
> 3) In case you prefer/need to use MSVC (e.g. you already build your
> application with MSVC and you want to be able to easily step into
> glib/gtk functions when debugging), we are working on a powershell
> script that builds the whole gtk3 stack at
> https://github.com/nice-software/gtk-win32 based on the similar script
> made by the hexchat developers for gtk2 at
> https://hexchat.github.io/gtk-win32/
> 
> 
> I hope that helps, and if anyone listening wants to help with the
> port, all patches are more than welcome.

Paolo,

Thanks for the update. 

As for most cross-platform applications Win32 is the choice of most of our users, so it's rather critical that we're able to install or build not just Gtk but all of our many other dependencies for Win32. Gcc and Gnu make are quite slow on Windows so we prefer to install when that's possible. GnuCash uses MinGW/MSys running on Windows for its Win32 build environment. Another developer, Geert Janssens, did a major rewrite of the build scripts a year ago to update them from MinGW-11 to the current version. IIRC he investigated MinGW64/Msys2 at that time and found that it wasn't suitable, but I don't remember why. Yet another, Christian Stimming, attempted a Fedora cross-compile several years ago and wasn't able to get it to work, but that's likely been improved in the meantime.

Perhaps this next bit should be discussed on gtk-devel instead of here, but if Msys2 is now the preferred source of Gtk win32 binaries perhaps the binaries on ftp.gnome.org and www.gtk.org should be removed and the www.gtk.org website revised to point to Msys2. Indeed, all of what you wrote above should be on the Gtk Windows page instead of the apparently outdated information that's there now.

Regards,
John Ralls





More information about the gnucash-devel mailing list