I've made a bunch of changes to the gnome overlay's x11-libs/gtk-9999 ebuild. Mostly this is to add wayland support, but in the process I've cleaned up dependencies and hopefully made multi-backend work. Changes: Added X use flag Moved any dependencies that only apply to the X backend under the X use flag Explicitly use_enabled various X-related configure flags that were automagically enabled/disabled Added wayland use flag, dependencies, and configure option Added patch for an xkbcommon header file move More controversial changes: Removed gtk2 dependency. Everything worked fine for me without it, and from reading the source I couldn't see anything that would break. Please note that I have only tested this with wayland. Specifically, I have not tested the new X use flag, nor have I tested on a computer with X. I've re-read my code several times, but someone needs to actually try it before anything happens with this. Also note that as of this filing, gtk master is broken without --enable-x11-backend, because of commit de62a109. If you're testing before it's fixed, the commit right before that (f8fccae) works fine. Reproducible: Always
Created attachment 305275 [details] gtk+-9999.ebuild
Created attachment 305277 [details] xkbcommon.patch
Created attachment 305279 [details] ebuild diff, for easy viewing
I forgot to mention: the dev-libs/wayland and x11-libs/libxkbcommon dependencies can be found in the x11 overlay, and I'm not 100% certain about the mesa dependency use flags. I currently have mesa installed with the gbm and gles2 use flags in addition to the wayland and egl flags listed there. My reading of the configure.ac was that gtk only specifically needed these, but I could be wrong.
Thank you for your patches! We could not add wayland support earlier because nobody on the gnome team runs it. The changes, with some cleanups for clarity, are now in the gnome overlay in gtk+-3.3.20 and -9999, see http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commitdiff;h=cb3b7e2d6bec96233f79d88fde59e3434b1e159d Please test whether these ebuilds work for you. (In reply to comment #0) > More controversial changes: > Removed gtk2 dependency. Everything worked fine for me without it, and from > reading the source I couldn't see anything that would break. That dependency and the --enable-gtk2-dependency configure switch are needed mainly to prevent gtk2 and gtk3 from colliding on /usr/bin/gtk-update-icon-cache. Since gtk2 is more widely used than gtk3, we had decided that it makes more sense for gtk2 to keep installing that executable, and for gtk3 to rely on gtk2 for it.