View previous topic :: View next topic |
Author |
Message |
palacs n00b
Joined: 20 Apr 2017 Posts: 4
|
Posted: Thu Apr 20, 2017 1:42 pm Post subject: Avoiding GTK3 |
|
|
Hi,
I'm thinking of migrating from CentOS 6 to Gentoo stable. One of the things I really liked about CentOS 6 that it did not have GTK3 which I find bloated and messed up (old themes do not work and are not ported well). I've read about USE= flags in Gentoo and also seen examples about the gtk3 flag.
Can keep my system completely gtk3-free?
What will happen if a package I want to install is dependent on gtk3 (e.g. Xfce)? Will emerge use an old version of the package?
If emerge can use an older version that is for gtk2, how long will this work? |
|
Back to top |
|
|
Jaglover Watchman
Joined: 29 May 2005 Posts: 8291 Location: Saint Amant, Acadiana
|
|
Back to top |
|
|
palacs n00b
Joined: 20 Apr 2017 Posts: 4
|
Posted: Thu Apr 20, 2017 2:02 pm Post subject: |
|
|
Yeah, that's obvious.
My question is that how can I prevent emerge to pull in GTK3 for Xfce when Xfce for GTK3 gets into the stable branch? |
|
Back to top |
|
|
xaviermiller Bodhisattva
Joined: 23 Jul 2004 Posts: 8708 Location: ~Brussels - Belgique
|
Posted: Thu Apr 20, 2017 2:04 pm Post subject: |
|
|
You have to mask gtk+3 and all versions that hard-depend on it. _________________ Kind regards,
Xavier Miller |
|
Back to top |
|
|
palacs n00b
Joined: 20 Apr 2017 Posts: 4
|
Posted: Thu Apr 20, 2017 2:25 pm Post subject: |
|
|
Will this result in Xfce receiving no more updates at all? |
|
Back to top |
|
|
cboldt Veteran
Joined: 24 Aug 2005 Posts: 1046
|
Posted: Thu Apr 20, 2017 2:34 pm Post subject: |
|
|
Possible or not depends on the packages you want to install.
I kept gtk+:3 off my systems until recently. firefox built with gtk+:2 crashed several times a day. I tried firefox-bin. It didn't crash but it "looked different," not bad, just different. When firefox-bin was unmasked to v52, it pulled in pulseaudio, which I also avoid. A jury-rigged ebuild to avoid pulsaudio resulted in no AV from firefox-bin, so I removed the gtk2 USEflag from a firefox build. Built firefox v52 with gtk+:3, and it does not crash.
The root cause is perhaps something other than the diff between gtk+:2 and gtk+:3, but I will say that I rebuilt literally everything that firefox and its dependencies could depend on (emerge -e firefox), and with the gtk2 USEflag, it still crashed. I am annoyed with this outcome, but can live with it. I'd appreciate any tips to resolve it.
The only other package that depends on gtk+:3 on my systems is ghostscript-gpl, and that is NOT a hard dependency. On a system that has gtk+:3, ghostscript-gpl builds with it. On a system that ONLY has gtk+:2, ghostscrpit-gpl happily builds with that.
With regard to xfce, I think its "gtk3" USEflag will control.
Edit to add, gtk+:3 is NOW in the stable branch. |
|
Back to top |
|
|
asturm Developer
Joined: 05 Apr 2007 Posts: 8935
|
Posted: Thu Apr 20, 2017 3:17 pm Post subject: |
|
|
cboldt wrote: | I kept gtk+:3 off my systems until recently. firefox built with gtk+:2 crashed several times a day. I tried firefox-bin. It didn't crash but it "looked different," not bad, just different. When firefox-bin was unmasked to v52, it pulled in pulseaudio, which I also avoid. A jury-rigged ebuild to avoid pulsaudio resulted in no AV from firefox-bin, so I removed the gtk2 USEflag from a firefox build. Built firefox v52 with gtk+:3, and it does not crash. |
I'm sure that's not gtk+2 related - at least it works perfectly fine here.
I don't have GTK+3 installed, which is no problem because I'm using Plasma-5 - obviously. Any rolling release distro is a bad choice if you want to keep using Xfce at an old version (that does not require GTK+3). |
|
Back to top |
|
|
palacs n00b
Joined: 20 Apr 2017 Posts: 4
|
Posted: Thu Apr 20, 2017 5:17 pm Post subject: |
|
|
I'm afraid I'm stuck on CentOS 6 for the next couple of years. Fortunately there is no GTK3, nor pulseaudio, no system, just a fast and stable system which is well tested and all bug fixes and security fixes are ported back. So the system is just becoming more and more stable, that's why I like LTS. However, I would also like the concept of compiling my packages for the exact hardware I use and thus achieve some performance improvement.
I know the disadvantage of rolling releases still I thought Gentoo's focus has always been customizability. And if I have a customizable OS, then I can tell it what packages to keep back. However my question would be that could the ebuild system trace the version of all packages, that are dependent on GTK3, and then find the last avilable version for GTK2, then stick to them? Or do I need to do this by hand? |
|
Back to top |
|
|
The Doctor Moderator
Joined: 27 Jul 2010 Posts: 2678
|
Posted: Thu Apr 20, 2017 7:38 pm Post subject: |
|
|
If you mask gtk3 portage will inform you automagically anytime new or updated software requires it.
However, rather than sticking with obsolete packages I would recommend rerouting. There are plenty of options for 90% of tasks so choosing one that doesn't have the gtk3 deps shouldn't be too difficult. _________________ First things first, but not necessarily in that order.
Apologies if I take a while to respond. I'm currently working on the dematerialization circuit for my blue box. |
|
Back to top |
|
|
ct85711 Veteran
Joined: 27 Sep 2005 Posts: 1791
|
Posted: Thu Apr 20, 2017 7:50 pm Post subject: |
|
|
Gtk+2 and gtk+3 are two completely different API's that are not inter-changable, so you can't just swap the 2 around unless the package was programed to use both. The dependencies in the ebuilds are (or should be) set to list all of the dependencies that upstream has specified. If upstream says they won't support gtk+2 for their package, then portage has no choice but to accept that. As far as keeping track, gtk+ is slotted, meaning you can have both gtk+2 and gtk+3 installed at the same time; using slot 2 and slot 3 respectively. Generally, there will be a USE flag to control a conditional dependency like gtk+2 or gtk+3 to be used (again assuming the devs did it right). If you don't get a choice on if it uses gtk+3, then it's not going to have an USE flag (hence being an unconditional dependency). |
|
Back to top |
|
|
stqn n00b
Joined: 07 Apr 2015 Posts: 51
|
Posted: Fri Apr 21, 2017 12:22 pm Post subject: |
|
|
Staying on old software versions to avoid Gtk3 can work for a while but not forever. For example I have masked subtitleeditor 0.5 and above because it started using Gtk3, but I just tried to run it and it fails. Trying to rebuild it with "emerge subtitleeditor" fails because the ebuild for the version I’m using is no longer in portage. "eix subtitleeditor" doesn’t even tell me which version I have installed (I guess I should have copied the ebuild to my local overlay…).
As The Doctor said it’s a better solution to switch to software that doesn’t use Gtk. I switched from Xfce to LXQt for that reason and I don’t regret it (OpenBox actually solved one or two issues I had with Xfwm4). |
|
Back to top |
|
|
i92guboj Bodhisattva
Joined: 30 Nov 2004 Posts: 10315 Location: Córdoba (Spain)
|
Posted: Fri Apr 21, 2017 2:19 pm Post subject: |
|
|
Some packages do suppert gtk2 upstream (for how long, that's uncertain). Xfce and bluefish, for example, do. So, it's a matter of swapping the gtk version and a build flag in the ebuild to get them to compile against gtk2. You can keep that in your local overlay for as long as you want. Same goes for gtk2 itself if/when it get masked and, after that, eliminated from the official tree.
As long as you can (re)compile it using the installed gcc and libs, you will be fine. That can be years or decades, who knows.
Gentoo being rolling release shouldn't be much of a problem since you can overlay whatever you want to preserve.
You gotta keep the pieces yourself, of course. |
|
Back to top |
|
|
charles17 Advocate
Joined: 02 Mar 2008 Posts: 3664
|
|
Back to top |
|
|
asturm Developer
Joined: 05 Apr 2007 Posts: 8935
|
Posted: Sat Apr 22, 2017 8:24 am Post subject: |
|
|
Yes, only ESR is buying us some time. |
|
Back to top |
|
|
|