New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

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

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

This comment has been minimized.

Show comment
Hide comment
@willysr

willysr Dec 11, 2015

Member

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

Member

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

This comment has been minimized.

Show comment
Hide comment
@obache

obache Dec 12, 2015

Contributor

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

Contributor

obache commented Dec 12, 2015

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

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Dec 12, 2015

Member

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

Member

monsta commented Dec 12, 2015

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

@obache

This comment has been minimized.

Show comment
Hide comment
@obache

obache Dec 12, 2015

Contributor

I have GTK3+ 3.16.7 now, newer than 3.14.

Contributor

obache commented Dec 12, 2015

I have GTK3+ 3.16.7 now, newer than 3.14.

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 Dec 12, 2015

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 ;)

Member

raveit65 commented Dec 12, 2015

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

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Dec 13, 2015

Member

Waiting for @posophe's comments 😄

Member

monsta commented Dec 13, 2015

Waiting for @posophe's comments 😄

@flexiondotorg

This comment has been minimized.

Show comment
Hide comment
@flexiondotorg

flexiondotorg Dec 13, 2015

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.

Member

flexiondotorg commented Dec 13, 2015

@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

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Dec 14, 2015

Member

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.

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

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 Dec 14, 2015

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.......

Member

raveit65 commented Dec 14, 2015

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

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Jan 2, 2016

Member

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.

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

This comment has been minimized.

Show comment
Hide comment
@posophe

posophe 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.

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

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Jan 2, 2016

Member

Ok good then 😄

Member

monsta commented Jan 2, 2016

Ok good then 😄

@monsta monsta referenced this issue Jan 2, 2016

Merged

moving to GTK+3 #77

@monsta

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Jan 2, 2016

Member

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

Member

monsta commented Jan 2, 2016

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

@posophe

This comment has been minimized.

Show comment
Hide comment
@posophe

posophe Jan 2, 2016

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

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

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 Jan 2, 2016

Member

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.

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

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 Jan 2, 2016

Member

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

Member

raveit65 commented Jan 2, 2016

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

@posophe

This comment has been minimized.

Show comment
Hide comment
@posophe

posophe Jan 2, 2016

That's why gnome3 looks so ugly.

posophe commented Jan 2, 2016

That's why gnome3 looks so ugly.

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

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 Jan 27, 2016

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.

Member

raveit65 commented Jan 27, 2016

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

This comment has been minimized.

Show comment
Hide comment
@monsta

monsta Jan 27, 2016

Member

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

Member

monsta commented Jan 27, 2016

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

@willysr

This comment has been minimized.

Show comment
Hide comment
@willysr

willysr Jan 27, 2016

Member

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

Member

willysr commented Jan 27, 2016

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

@raveit65

This comment has been minimized.

Show comment
Hide comment
@raveit65

raveit65 Mar 4, 2016

Member

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.

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