Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 26467 - Gtk2 USE var description needs to be more explicit about keeping 'gtk' USE var
Summary: Gtk2 USE var description needs to be more explicit about keeping 'gtk' USE var
Alias: None
Product: [OLD] Docs-user
Classification: Unclassified
Component: USE Variable HOWTO (show other bugs)
Hardware: All All
: High normal (vote)
Assignee: foser (RETIRED)
Depends on:
Reported: 2003-08-12 02:12 UTC by Charles Goodwin
Modified: 2003-12-05 17:42 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Note You need to log in before you can comment on or make changes to this bug.
Description Charles Goodwin 2003-08-12 02:12:53 UTC

Use gtk+-2.0.0 over gtk+-1.2 in cases where a program supports both. Beware that
gtk+-2 support can be bad.

Could do with also stating that 'gtk' should *not* be unset when using this USE
var.  Also, these days, Gtk2 support is usually not 'bad'.

Reproducible: Always
Steps to Reproduce:
Comment 1 Spider (RETIRED) gentoo-dev 2003-08-12 03:08:17 UTC
  Mozilla 1.4:  gtk2 support works, but some graphical glitches in preferences and menus
  gftp:   Slightly messy where gtk2 interface tends to fall off the earth at times.

But yes, the phrasing should change,  I added that flag for the esoteric few cases where an application had both interfaces, and I couldn't decide which to use for defaults, if any, and still wanted to incorporate an as small change as possible into the  USE flag body.

perhaps this wording instead:
gtk2    : (Requires USE="gtk" )  Tells an application that has both gtk+-1.x and 2.x interface to build the gtk-2.x interface instead of gtk-1.x. gtk-2 support may be in beta state.

Comment 2 Charles Goodwin 2003-08-12 03:10:37 UTC
Add a 'don't set -gtk if using this' just for idiots like me who have done and wondered why occasionally an application breaks.
Comment 3 foser (RETIRED) gentoo-dev 2003-08-12 03:27:25 UTC
Well i doubt the flag descriptions get read in the first place, the current message isn't ambigious. I think a lot of people decide on USE flags to set without ever reading a description.

Making it a little more explicit about leaving 'gtk' set probably isn't gonna help one bit.

And may i add that i really wonder why this goes to zhen ? These flags are by and for the gnome team.
Comment 4 Sven Vermeulen (RETIRED) gentoo-dev 2003-11-16 04:22:16 UTC
Foser is correct; the dynamic use-index.xml page is created based on use.desc which isn't written by documentation team.

Foser, I'm assigning this to you; do with it whatever you like.
Comment 5 David Escott 2003-12-05 14:27:50 UTC
I have to disagree with this entire thread for the following reason:

The way the use variables are defined there is no way right now to have a gtk2 only system. I have gnome2 and I have never installed gnome1 on this box. I also haven't installed gtk1 and I would like to keep it that way, Gentoo was supposed to be about flexibility and having a system configured and optimized the way you want it, so I should be able to do that.

So then I go to emerge gvim and because my flags are "-gtk gtk2" It wants to build the gtk1 version even though there is a perfectly good gtk2 version in portage. So I change my flags to "gtk gtk2" and now mplayer wants to build a gui gtk1 gui. Why is there no way to say "I want gtk2 only, I don't want QT, motif, gtk1, fltk, athena, anything but gtk2." Instead the best you can do is to say "I want only gtk" not caring about which version it is.

Frankly this is just stupid, and will get worse as more people find that they can have a gtk2 based system and want to be free of the un-anti-aliased, bitmapped font crude that is gtk1. (I know the toolkit isn't crude but when you have a gtk1 window next to a gtk2 window it just looks like absolute crude.)

Either add a new use flag called gtk1 and allow people to have "gtk -gtk1 gtk2" in their use flags which means "gtk2 only please." Or redefine gtk to mean gtk1 and allow the "-gtk gtk2" flag.

The second choice seems much simpler to me since all we have to do is change a few tests by either changing && to || or by removing the gtk test.
In the vim.eclass we would have either:

if use gtk || use gtk2; then
   myconf=" --enable-gui=gtk2 --enable-gtk2-check"
elif use gtk; then
   myconf=" --enable-gui=gtk"

if use gtk2; then
   myconf=" --enable-gui=gtk2 --enable-gtk2-check"
elif use gtk; then
   myconf=" --enable-gui=gtk"

both of which would work as expected with a "-gtk gtk2" flag. In the end Spider and Foser know more about what is going on in the portage tree w.r.t. these use variables and so maybe the solution which allows "-gtk gtk2" causes problems. If it does I beg you to put a gtk1 flag in and let me -gtk1 in my use variables. The way things are currently set up this is just a pain in the butt.

Comment 6 foser (RETIRED) gentoo-dev 2003-12-05 16:12:48 UTC
This has recently been heavily discussed on the gentoo-dev ml, please read up on that.

In short : this behaviour will not be changed anymore. We believe that changing it now will only cause more confusion. The gtk2 flag will be phased out over time and only gtk will exist, gtk2 was only meant as a transition flag.

The problems you describe are with wrong interpretations of these USE flags by non-gnome devs, these are being adressed and are considered bugs.

And on a personal note, i really dislike it when people start talking like 'cause this is what Gentoo is supposed to be about...' and all that. It sort of shuts off all real discussion and takes it to a level of 'if you aren't with us, you are against us'. Gentoo gives choice and power, but we also try to keep it simple and accessible to the general user. There is an everexisting tension between the one and other.

With this i also like to close this bug while i'm at it, your comment is not really relevant to this bug anyway.

The USE flag descriptions are sufficient.
Comment 7 Charles Goodwin 2003-12-05 16:30:04 UTC
This should be added to an faq.

If you don't want gtk 1 or gnome 1 libs, then add <=gnome2 and <=gtk2 to your /etc/portage/package.mask and you'll get a healthy warning about any non-gtk2 apps.

I agree completely with foser.  This was probably a bad application of USE vars in the first place.  Are we going to have to introduce a gtk3  USE flag when gtk3 is released?  Or maybe people will only want gtk2.4 applications since there's some nice new changes?

What's silly about this is that it is so easy to get around using appropriate masking.
Comment 8 foser (RETIRED) gentoo-dev 2003-12-05 16:35:04 UTC
Good idea for a FAQ entry yep. We're working on a Gentoo gnome specific page, i'll try and keep this suggestion in mind when we put it up.
Comment 9 David Escott 2003-12-05 17:42:58 UTC
I read the thread and I have two comments:

As to the FAQ suggestion, Sure it would be nice to have a FAQ but it
would be nicer to have it "just work". In order to take advantage
of masking there is a lot to do. There is a 4 step loop over ever 
package that has a gtk1 but not a gtk2 interface:

1. Add the appropriate lines to /etc/portage/package.mask [tricky syntax
 here "<x11-libs/gtk+-2*" will do]
2. Then try to build the packages you want. 
3. When you see portage complain remove the lines from package.mask.
4. Emerge the complaining package with USE="-gtk".
5. Goto 4.

Then when you are done you have to finish with the lines in package.mask
and then you wait until emerge -up world bugs out on you only to repeat again.

Second I understand why you would want gtk to mean all gtk interfaces
and so I understand why you don't want to change the meaning of the 
current gtk flag, but I still don't like the existing situation.

I really think it would be best to have a long term plan for major
library upgrades like these. And I don't think the gtk2 use flag was a
bad idea. I think what really messed it up was the absence of a gtk1
flag and a system of flag heirarchies. It shouldn't be that hard to
add something to portage so that flags can be inherited. So we have a
meta-flag gtk which turns on all flags of the form gtk* or perhaps just
a specified list of flags via some table lookup (with versioning like 
we have in the gtk* case this there probably won't be more than one or
two of them in active use at a time). The user could then if they 
had specific demands add in a -gtk1 flag to ensure that a gtk1 version
is never built while still allowing other gtk versions. The novice user
wouldn't have to know about this, all they need to know is that the gtk
flag builds a stable graphical interface, but for users with more specific demands this is an excellent tool to control exactly what is installed.
In addition a use flag heirarchy would be helpful in making things more
for the end user. There could be a desktop flag which turns on the most
popular desktop environment. A server flag which turns on options
appropriate for servers, etc...

PS Foser, when I say "Gentoo was supposed to be about..." I mean it in
the "this is frustrating and unexpectedly hard" way. I am not trying to
shutoff discussion, just trying to express the feelings I suspect would
be common among users trying to figure out how to do this "the right 
way" only to find that there really isn't "a right way" at all just 
a way of working around the limitations of a temporary fix. When every-
thing else in the gentoo install and customization works so elegantly
you begin to expect that dealing with which version of a gtk interface
to build is also going to be handled as elegantly as everything else.