Gtk minefield

We've been bitten by a number of Gtk bugs over the years. These particularly affect our Windows packages, where we have traditionally had a limited set of prebuilt versions of Gtk to choose from, and had to choose which bug we ship with. (These days we've given up on the official releases, and build our own Gtk.)
These tables cover the versions of Gtk itself, since that's what we seem to have trouble with, rather than its dependencies like Glib. (Newer versions of Glib tend to drop compatibility with obsolete versions of Windows; this isn't covered here.)
In addition to the upstream trouble, we make life more difficult for ourselves by building Gtk2 and Gtk3 packages in a single "gnuwin" environment (ref); they share some dependencies (e.g. Glib); and in our experience, a given version of Gtk2/3 may not work with a given version of Glib (etc), and later versions of Glib are not always better in this regard. Usually we pick the extra libraries that come with Gtk3; so we may have to pick a pair of Gtk2/3 versions that are compatible in this regard. (If we ever find we can't, we can always prepare two separate environments.) The details of this are not covered here either.
(Darker colours are for observations we have made with Freeciv, lighter colours are unproven speculations about fixed versions / root causes.)
Please don't edit this table if you're not a Freeciv developer; if you have any further relevant observations please leave them in the relevant bugs in the bug tracker, or on the talk page here if they don't fit elsewhere.
== Gtk2 ==
Version	Win32? 	Crosser 	Freeciv 	Bugs 	Bugs 	Bugs 	Bugs 	Bugs 	Bugs
Version	Win32? 	Crosser 	Freeciv 	Worklist drag 	Black map / hang 	get_handle crash 	CJK trouble 	Text background 	Crash with new Gtk3
2.12.0 	Minimum version that Freeciv 2.4-2.6+ source compiles against	Minimum version that Freeciv 2.4-2.6+ source compiles against	Minimum version that Freeciv 2.4-2.6+ source compiles against	Minimum version that Freeciv 2.4-2.6+ source compiles against	Minimum version that Freeciv 2.4-2.6+ source compiles against	Minimum version that Freeciv 2.4-2.6+ source compiles against	Minimum version that Freeciv 2.4-2.6+ source compiles against	Minimum version that Freeciv 2.4-2.6+ source compiles against	Minimum version that Freeciv 2.4-2.6+ source compiles against
2.16.0 	Yes 	- 	? - 2.1.9 	 	 	 	 	 	
2.16.5 	Yes 	- 	2.2.0-RC1 - 2.2.72.3.0-beta3 - 2.3.0-RC1 	OK 	 	 	 	 	
2.16.6 	Yes 	- 	2.2.0-beta1 - 2.2.0-beta32.3.1-2.3.4(2.3.5 test)2.4.0-beta1 	OK 	 	Broken 	OK 	OK 	
2.18.0 	Yes 	- 	- 	OK 	 	 	 	OK 	
2.18.9 	Yes 	- 	- 	OK 	 	 	 	OK 	
2.20.1 	Yes 	0.6.4 	- 	Broken 	 	 	 	OK 	
2.22.1 	Yes 	0.6.5 	2.3.0-RC2 - 2.3.0 	Broken 	 	 	OK 	OK 	
2.24.4 	No 	(0.6.5.103) 	- 	Broken 	 	 	 	OK 	
2.24.5 	No 	- 	- 	 	Broken652872 unfixed 	 	 	 	
2.24.6 	No 	- 	- 	 	OK652872 fixed 	658841 unfixed? 	 	 	
2.24.7 	No 	- 	- 	 	 	658841 fixed? 	 	 	
2.24.8 	Yes 	0.7 	- 	OK 	 	OK? 	 	OK 	
2.24.10	Yes 	0.8 	2.3.52.4.0-beta2 - 2.4.32.5.0-beta1 	OK 	OK 	OK? 	Broken 	OK 	
2.24.13	No 	0.9 	- 	 	 	 	668239 unfixed 	 	
2.24.14	No 	0.10.1 	- 	 	 	 	668239 fixed 	 	
2.24.19	No 	0.11.1 	- 	OK 	 	 	 	OK 	
2.24.20	No 	0.12-0.14 	(2.4.3 test, older)2.4.4-2.5.0-beta2 - 	OK 	 	 	OK 	OK695636 unfixed 	Broken
2.24.21	No 	- 	- 	 	 	 	 	Broken695636 fixed 	
2.24.22	No 	- 	- 	 	 	 	 	Broken 	
2.24.24	No 	- 	- 	 	 	 	 	Broken 	
2.24.25	No 	- 	- 	 	 	 	 	Broken741060 unfixed 	
2.24.26	No 	 	- 	 	 	 	 	741060 fixed 	Broken
2.24.27	No 	0.15 	- 	 	 	 	 	 	
2.24.28	No 	 	- 	 	 	 	 	 	
== Gtk3 ==
We haven't officially launched Gtk3 Windows clients at the time of writing, due to major usability issues. Unadorned Freeciv versions refer to test builds made by cproc.
Version	Win32? 	Crosser 	Freeciv 	Bugs 	Bugs 	Bugs
Version	Win32? 	Crosser 	Freeciv 	Black popups 	CJK trouble 	Makes Gtk2 crashy
3.4.0 	Minimum version that Freeciv 2.4-2.5 source compiles against	Minimum version that Freeciv 2.4-2.5 source compiles against	Minimum version that Freeciv 2.4-2.5 source compiles against	Minimum version that Freeciv 2.4-2.5 source compiles against	Minimum version that Freeciv 2.4-2.5 source compiles against	Minimum version that Freeciv 2.4-2.5 source compiles against
3.4.2 	Yes 	- 	(2.5.0-beta0 test) 	 	 	
3.6.3 	No 	- 	- 	 	668239 unfixed 	
3.6.4 	Yes 	0.10.1-0.11.1 	2.4.1-(2.5.0-beta0 test)2.5.0-beta1 	Broken 	OK668239 fixed 	OK
3.8.0 	Minimum version that Freeciv 2.6+ source compiles against 	Minimum version that Freeciv 2.6+ source compiles against 	Minimum version that Freeciv 2.6+ source compiles against 	Minimum version that Freeciv 2.6+ source compiles against 	Minimum version that Freeciv 2.6+ source compiles against 	Minimum version that Freeciv 2.6+ source compiles against
3.8.2 	kinda? 	- 	(2.5.0-beta0 test)2.5.0-RC1 - 	OK 	OK 	OK
3.10.4 	kinda? 	- 	(2.5.0-beta0 test)2.5.0-beta2 	OK 	OK 	Broken
Category:Coding