move to GTK+3 and decide on minimum required GTK+3 version #74

Closed
monsta opened this Issue Dec 11, 2015 · 21 comments

Projects

None yet

6 participants

@monsta
Member
monsta commented Dec 11, 2015

@flexiondotorg @clefebvre @raveit65 @posophe @willysr @obache

So, it's time to gradually move to GTK+3. GTK+2 isn't maintained too well both upstream and in distros. GTK+2 versions of libs we use in various parts of MATE (vte, gtksourceview, wnck...) aren't maintained at all, and some distro maintainers already plan to remove them (see here for example).

Let's start with mate-system-monitor. It's free from build and runtime dependencies on GTK+-related MATE packages, and GTK+3 build of it is already shipped in Mint and Fedora. So far I've seen a couple of reports about it, but I've managed to fix the issues in 1.12.1 (I hope so). Well, except for #41 which is actually a stupid bug in GTK+ 3.10 so it's not fixable at our level...

So, I think we can do it for 1.14 release.

Things to do in the code:

  • drop --with-gtk build option;
  • drop all GTK+2 code;
  • drop all deprecated GTK+3 code.

The last item means we first need to decide on minimum GTK+3 version to use. I vote for 3.14 as LMDE 2 (which is based on Debian Jessie) has only 3.14.

Please post your opinions on minimum GTK+3 version in regard to your distros.

Also distro maintainers will need to replace build/runtime deps on GTK+2 packages with their GTK+3 counterparts. For example, in Debian/Ubuntu/Mint it's as follows:

  • libgtk2.0-dev -> libgtk-3-dev
  • libgtkmm-2.4-dev -> libgtkmm-3.0-dev
  • libwnck-dev -> libwnck-3-dev
@monsta monsta added this to the Gtk+3 milestone Dec 11, 2015
@willysr
willysr commented Dec 11, 2015

Next Slackware will use GTK+3-3.18.x so we are quite safe at least for the next 2-3 years :)
as the GTK+3 counterparts, they are already included in the GTK+3 branch
https://github.com/mateslackbuilds/msb/commits/GTK3

@obache
Contributor
obache commented Dec 12, 2015

I'm ready to use gtk3, gtkmm3 and nwck3.

@monsta
Member
monsta commented Dec 12, 2015

@obache: please also mention which minimum GTK+3 version is ok.

@obache
Contributor
obache commented Dec 12, 2015

I have GTK3+ 3.16.7 now, newer than 3.14.

@raveit65
Member

well, Rhel-7.2 is updated to gtk+-3.14, which is my min. version for all distros where i build packages.

drop all deprecated GTK+3 code.

I guess you mean replace ;)

@monsta
Member
monsta commented Dec 13, 2015

Waiting for @posophe's comments 😄

@flexiondotorg
Member

@stefano-k Please comment on this. The only thing here I want clarification on is drop all GTK2 code because I always thought the plan was to retain GTK2 support, but I might be wrong about that.

@monsta
Member
monsta commented Dec 14, 2015

Well that's one of key points. We get rid of old code and #ifdef hell, making it easier to maintain and easier to pick fixes from upstream.

@raveit65
Member

I can give enough examples where gtk2 code prevent us to fix major isues. For example:
Eom --> port to libeas will fix broken python support with gtk3
Font-viewer --> port to sushi will fix broken display of many fonts.
....and....and...and.......

@monsta
Member
monsta commented Jan 2, 2016

Well, we need to move on...

Since @posophe didn't post a reply, I've decided to look at OpenSUSE's GTK+3 versions myself:

  • Leap 42.1 (current version): 3.16.7
  • 13.2 (supported until 2017): 3.14.9
  • 13.1 (supported until Jan 2016): 3.10.9

I'm pretty sure 13.1 is reaching EOL before we release MATE 1.14, so I guess we can safely assume that setting GTK+ 3.14 as minimum required GTK+3 version is alright for OpenSUSE.

@posophe
posophe commented Jan 2, 2016

Oops ! Sorry, I didn't see the post (was in my Spam folder for any weird reason). Just a precision : even if it would be great to support 13.2, neither me nor the other maintainer are able to provide a real support for this version of openSUSE.

@monsta
Member
monsta commented Jan 2, 2016

Ok good then 😄

@monsta monsta referenced this issue Jan 2, 2016
Merged

moving to GTK+3 #77

@monsta
Member
monsta commented Jan 2, 2016

Ok guys, you can test it in #77 now 😄

@posophe
posophe commented Jan 2, 2016

I've just build it and will it later. The only thing is about a depreciated function i.e 'GtkStock'

@raveit65
Member
raveit65 commented Jan 2, 2016

Deprecated GtkStock we won't fix, because this will remove icons from buttons and menus.
Which is a general look and feel of Mate.
This will stay until it is removed from Gtk3.

@raveit65
Member
raveit65 commented Jan 2, 2016

Maybe it is possible to add this deprecated toolkit functions (and some others) to libmate-desktop?

@posophe
posophe commented Jan 2, 2016

That's why gnome3 looks so ugly.

@monsta monsta closed this in #77 Jan 12, 2016
@raveit65
Member

Hi guys,
next fedora release will come with gtk+-3.20 which has major changes for gtk3 apps, not only a complete breakage of themes.
And i don't know if i can ship mate applications build with gtk3 there, in this early development phase.
So, in worse case i need to change apps back to gtk2 which i have already switched to gtk3.
So, we want to leave the gtk2 code in for a while until i know how mate apps (gtk3) works with gtk+-3.20.
But default is now to build with gtk3.

@monsta
Member
monsta commented Jan 27, 2016

Yes, so I'll have to revert the commit which removed GTK+2 code - just in case...

@willysr
willysr commented Jan 27, 2016

next Slackware will use 3.18 i guess since it's Beta already.

@raveit65
Member
raveit65 commented Mar 4, 2016

Ok, after a hard work i can say that our themes will work with GTK+-3.20,
so it's save to remove the gtk2 code which will make our work much more easier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment