Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Per-package USE flags that need explanation: input needed!
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  
Author Message
beandog
Bodhisattva
Bodhisattva


Joined: 04 May 2003
Posts: 2066
Location: /usa/utah

PostPosted: Wed Aug 09, 2006 8:52 pm    Post subject: Per-package USE flags that need explanation: input needed! Reply with quote

Splitting off from an earlier thread discussing how to improve things in Gentoo, one topic that came up was that some packages have USE flags which the reason may not be clear what it will do if enabled or disabled.

dusik put it rather well:

dusik wrote:

Personally, I find it rather obscure when a package can optionally use, say, java or python, but how do I know if I need that functionality? Take, for example:

Code:
[ebuild   R   ] app-office/openoffice-bin-2.0.3  USE="gnome -java"


It would be nice to know what I'm missing if I choose -java. Sure, I could go research what the deal is with openoffice using Java, but if the ebuild dev had the capability to include a line saying "java - adds x, y, z functionality" it would really benefit all the users. After all, Java is a hefty dependency!

I'm not complaining, I just think I see room for improvement, and I'd like to hear some feedback on this. Perhaps, why this isn't really needed or isn't possible, or whatever.


One thing I can do is at least get some kind of a webpage up somewhere that will at least document the per-package USE flag descriptions. (Don't expect me to actually get it implemented into portage -- I'm not a portage dev, and stuff like that needs to be discussed debated among all the devs.)

To do that though, we need both examples like the one above where clarification is needed, and then actually know what the USE flags enable / disable. You can do that by both looking in the ebuilds to see what configure options it's adding to --use or --enable, and then looking at configure --help in the package to see what changes.

At the very least, help us get a list of which USE flags + programs need to be documented. :)

Thanks

---

Confusing USE flags / package combinations:


  • openoffice-bin gnome java
  • icewm silverxp
  • mplayer dvd dvdread xmms

_________________
If it ain't broke, tweak it. dvds | blurays | blog | wiki


Last edited by beandog on Wed Aug 09, 2006 10:15 pm; edited 2 times in total
Back to top
View user's profile Send private message
think4urs11
Bodhisattva
Bodhisattva


Joined: 25 Jun 2003
Posts: 6659
Location: above the cloud

PostPosted: Wed Aug 09, 2006 9:17 pm    Post subject: Reply with quote

hmm, just got curious about the given example and used my google-talents
best shot for a description could/might be this one: OO-2 Java functionality
no idea though whether or not this gives the whole picture
_________________
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Back to top
View user's profile Send private message
dusik
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2005
Posts: 129
Location: Durham, NC, USA

PostPosted: Wed Aug 09, 2006 9:28 pm    Post subject: Reply with quote

Think4UrS11 wrote:
hmm, just got curious about the given example and used my google-talents


Indeed, that's helpful as far as the given example goes, but what we're really interested in is giving people a way to judge whether or not they want to use particular package options without googling and looking in the ebuild and the configure script.

So, first, to get a general idea of the real scope of the issue, it would be helpful if people posted examples that they personally found frustrating or confusing. For me, a lot of the really big packages come to mind, because they tend to have a lot of use flags, with some obscure ones.

For example, media-gfx/gimp uses "lcms - Adds lcms support (color management engine)". Great, what does that do? It also has a python use flag. What does it do using python? It's a global use flag, so euse doesn't give a gimp-specific description. We're all using Portage, which depends on Python anyway, so is there any reason *not* to include python in the Gimp? It's just not clear. See the issue?
Back to top
View user's profile Send private message
ph03n1x
l33t
l33t


Joined: 06 Feb 2003
Posts: 756

PostPosted: Wed Aug 09, 2006 9:30 pm    Post subject: Reply with quote

Errm maybe I'm missing the point but if I understand you guys right you want an explanation for the useflags a package uses. What about:

Code:
equery uses package
if I'm not completely mistaken it should provide exactly this info.
Back to top
View user's profile Send private message
dusik
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2005
Posts: 129
Location: Durham, NC, USA

PostPosted: Wed Aug 09, 2006 9:39 pm    Post subject: Reply with quote

ph03n1x wrote:
Errm maybe I'm missing the point but if I understand you guys right you want an explanation for the useflags a package uses. What about:

Code:
equery uses package
if I'm not completely mistaken it should provide exactly this info.


Oh, that's nice, actually! It gives the same info as euse -i, but in a convenient table. Thanks.

It doesn't appear to entirely solve the problem, because for global use flags it gives the global description. So, e.g.:

Code:
 + + python    : Adds support/bindings for the Python language


That's still pretty vague in the context of a specific package. So, I guess now we can narrow this down to the question: is there a way for an ebuild dev to override the global description of a use flag? If so, then that would entirely solve the problem (assuming ebuild devs actually did that where it makes sense).

Thanks for the tip, ph03n1x!
Back to top
View user's profile Send private message
think4urs11
Bodhisattva
Bodhisattva


Joined: 25 Jun 2003
Posts: 6659
Location: above the cloud

PostPosted: Wed Aug 09, 2006 9:44 pm    Post subject: Reply with quote

@dusik:
sure, and beandog wanted an example and yes i do see your issue, but as you said yourself, we need to have 'real world' examples.

So now we have openoffice with a (more or less good, not sure) description about _what_ the java flag actually does, i.e. which functionality inside OO depeends on the presence of a JRE.

To get certain about such issues the only person who knows is the ebuild maintainer of course.
So either we force the devs to create some better flag descriptions _or_ we find some volunteers who do the job. It could become a tricky task to find out exactly what a use-dependency gives if/when even upstream doesn't exactly describes when/why/what.
_________________
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Back to top
View user's profile Send private message
dusik
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2005
Posts: 129
Location: Durham, NC, USA

PostPosted: Wed Aug 09, 2006 9:51 pm    Post subject: Reply with quote

Think4UrS11 wrote:
To get certain about such issues the only person who knows is the ebuild maintainer of course.
So either we force the devs to create some better flag descriptions _or_ we find some volunteers who do the job. It could become a tricky task to find out exactly what a use-dependency gives if/when even upstream doesn't exactly describes when/why/what.


At this point, my question is primarily whether there already exists a way for ebuild devs to provide a package-specific description of a global use flag (and they're just not using it), or they don't do that because they don't have a way to do it. Take openoffice-bin, for example. The best I currently know how to get is:

Code:
$ equery uses openoffice-bin
[ Searching for packages matching openoffice-bin... ]
[ Colour Code : set unset ]
[ Legend        : Left column  (U) - USE flags from make.conf                     ]
[                  : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for app-office/openoffice-bin-2.0.3 ]
 U I
 + + gnome         : Adds GNOME support
 - - java          : Adds support for Java


( note: I've snipped out all the linguas stuff )

These descriptions really don't give me any useful information regarding whether or not I would find it beneficial to use or not use those options, particularly the Java. I suppose I can guess that +gnome would mean something like "better integration with the Gnome desktop environment", but even there I'm not 100% sure.
Back to top
View user's profile Send private message
Dralnu
Veteran
Veteran


Joined: 24 May 2006
Posts: 1919

PostPosted: Wed Aug 09, 2006 10:03 pm    Post subject: Reply with quote

ph03n1x wrote:
Errm maybe I'm missing the point but if I understand you guys right you want an explanation for the useflags a package uses. What about:

Code:
equery uses package
if I'm not completely mistaken it should provide exactly this info.


Thats a little help, but the problem still is this: Still a one-liner answer.

equery uses icewm

...
-- silverxp : Apply ybuttons.cc.patch necessary for SilverXP theme
...

Ok, so what exactly does that do? This is an odd example, granted, but think about it this way: What is the SilverXP theme? What is ybuttons.cc.patch?

The problem here I think comes down more to the fact its just poor documentation, or poor naming of use flags. Ok, for instance:

foo : -python java perl -ruby

Ok, thats fine. What do they all do? Well, if you tried something like:

foo : -python_script java_plugin perl_script -ruby_script

instead of leaving us with odd looking USE flags, rename them (I realize this may be an upstream issue, but KDE if memory serves is monolithic by nature, too...). Heck, tag into emerge something like emerge --very-verbose. Display

[ ] foo
Java : Enable Java Scripting
Python: Enable Python Scripting
KDE : Enable native KDE support

along with the standard

[ ] foo : java python kde

you get from emerge -pv.

Edit:
Also, in general. USE flag docs from what i have seen are so poor (I made a comment in another thread. USE flags, both online and local, are outdated badly) it isn't even laughable.
_________________
The day Microsoft makes a product that doesn't suck, is the day they make a vacuum cleaner.


Last edited by Dralnu on Wed Aug 09, 2006 10:06 pm; edited 1 time in total
Back to top
View user's profile Send private message
slonocode
Apprentice
Apprentice


Joined: 03 Jun 2002
Posts: 273

PostPosted: Wed Aug 09, 2006 10:05 pm    Post subject: Reply with quote

Think4UrS11 wrote:
@dusik:
sure, and beandog wanted an example and yes i do see your issue, but as you said yourself, we need to have 'real world' examples.

So now we have openoffice with a (more or less good, not sure) description about _what_ the java flag actually does, i.e. which functionality inside OO depeends on the presence of a JRE.

To get certain about such issues the only person who knows is the ebuild maintainer of course.
So either we force the devs to create some better flag descriptions _or_ we find some volunteers who do the job. It could become a tricky task to find out exactly what a use-dependency gives if/when even upstream doesn't exactly describes when/why/what.



Well if the dev doesn't know exactly than they don't know. But overall many use flags could do with better explanations of the functionality added/omitted and why you might want or not want that functionality.

What does it mean for mplayer to have xmms support? If I have xmms on my system I suppose I'd enable it but I still have no idea what it does or why I might want/notwant it.

Mplayer has dvd and dvdread flag. Ok I surely want mplayer to have dvd functionality but do I need both? Why would I want support for libdvdread if I've already enabled dvd functionality?

Does it require the perspective of someone who doesn't already know to go through and find which of the use flags needs to be documented more thoroughly? I suppose it might. But there could also be a standard set for documenting the function of a flag from the beginning.


Last edited by slonocode on Thu Aug 10, 2006 12:36 am; edited 1 time in total
Back to top
View user's profile Send private message
dusik
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2005
Posts: 129
Location: Durham, NC, USA

PostPosted: Wed Aug 09, 2006 10:55 pm    Post subject: Reply with quote

Ok, so here's an idea:

Why not let an ebuild provide a (possibly lengthy) blurb on use flag suggestions/considerations, that ebuild devs could use for nontrivial packages? Maybe it would be accessible via equery?

I think that right now the root problem is that ebuild devs don't even have an obvious convenient way to communicate such info to the end user.
Back to top
View user's profile Send private message
Dralnu
Veteran
Veteran


Joined: 24 May 2006
Posts: 1919

PostPosted: Thu Aug 10, 2006 2:10 am    Post subject: Reply with quote

dusik wrote:
Ok, so here's an idea:

Why not let an ebuild provide a (possibly lengthy) blurb on use flag suggestions/considerations, that ebuild devs could use for nontrivial packages? Maybe it would be accessible via equery?

I think that right now the root problem is that ebuild devs don't even have an obvious convenient way to communicate such info to the end user.


I think thats the case with alot of things. From what little I have seen, it seems the devs tend to go their own way with things with little thought of others. Features seem to be more of a "Hey, lets do this" or "Here is a better way to do _____" instead of "This is something we need".

Good example: emerge --search and eix. Shouldn't there be only one, instead of the two? Why two programs?

IMHO, I think as a whole, Gentoo needs to get an idea on what should be done/what we need instead of going on over all this crap and trying to make something brand spankin' new, and try to upgrade and incorporate things that really need it.

Portage needs a good way to handle USE flags. Granted plain text works, but for things like eix, revdep-rebuild, and emerge --depclean, there should be a solid, hopefully central, database for all this instead of wasting disk space on numerous dup repositories, but I'm getting off track here.

I'm sure something can be done, and I'm sure there is probably a good way to do it, but I'm just curious if the devs really want to look any into it, and get their noses out of their own projects. This isn't a case where a person can ignore everything and work on just their project, you need to see what others are doing, and especially with Portage/Emerge, try to give others the tools they need to make their lives easier, along with the end-users.
_________________
The day Microsoft makes a product that doesn't suck, is the day they make a vacuum cleaner.
Back to top
View user's profile Send private message
Penguin of Wonder
Apprentice
Apprentice


Joined: 17 Jan 2006
Posts: 280
Location: West Virginia

PostPosted: Thu Aug 10, 2006 2:17 am    Post subject: Reply with quote

This sounds like somethig that could (or even should) be listed at sites like www.gentoo-portage.com
Has anyone thought about talking to the guy who runs that site (or another one like it I'm not aware of) to see if he could help?
_________________
My Linux Blog

AMD64 3700+
2G DDR 3200 Ram
320G HDD
Back to top
View user's profile Send private message
dusik
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2005
Posts: 129
Location: Durham, NC, USA

PostPosted: Thu Aug 10, 2006 2:48 am    Post subject: Reply with quote

Dralnu wrote:
From what little I have seen, it seems the devs tend to go their own way with things with little thought of others.


Well, I think that's unfair to the devs! I actually think they've been doing a great job. There's certainly some information divide between the devs and the community -- you've correctly observed that the really useful programmes have to be hunted down over time, instead of new users being directed to a central repository of handy (vital to a pleasant experience, even!) goodies (gentoolkit, eix, etc.).

I myself really don't understand why the officially suggested way (in the official handbook) of searching is emerge --search. However, it's also important to remember that it's not the same as eix. The latter is pre-index search (that's why it's faster). But yes, they could advise using eix-sync instead of emerge --sync.

This is all a separate topic though. Let's stick to the point, which is right now: Do devs have a way to provide better use-flag description on a per-package basis, and if not, then how can we implement that possibility.
Back to top
View user's profile Send private message
Dralnu
Veteran
Veteran


Joined: 24 May 2006
Posts: 1919

PostPosted: Thu Aug 10, 2006 5:41 am    Post subject: Reply with quote

dusik wrote:
Dralnu wrote:
From what little I have seen, it seems the devs tend to go their own way with things with little thought of others.


Well, I think that's unfair to the devs! I actually think they've been doing a great job. There's certainly some information divide between the devs and the community -- you've correctly observed that the really useful programmes have to be hunted down over time, instead of new users being directed to a central repository of handy (vital to a pleasant experience, even!) goodies (gentoolkit, eix, etc.).

I myself really don't understand why the officially suggested way (in the official handbook) of searching is emerge --search. However, it's also important to remember that it's not the same as eix. The latter is pre-index search (that's why it's faster). But yes, they could advise using eix-sync instead of emerge --sync.

This is all a separate topic though. Let's stick to the point, which is right now: Do devs have a way to provide better use-flag description on a per-package basis, and if not, then how can we implement that possibility.


[offtopic] Unfair, maybe, but thats just my observation atm. They do do a good job, but there are still problems that seem to be very fundamental to me[/offtopic]

This is a thought: Get a working (by that I mean up-to-date) online repository. That would be a start, if nothing else.
_________________
The day Microsoft makes a product that doesn't suck, is the day they make a vacuum cleaner.
Back to top
View user's profile Send private message
beandog
Bodhisattva
Bodhisattva


Joined: 04 May 2003
Posts: 2066
Location: /usa/utah

PostPosted: Thu Aug 10, 2006 5:47 am    Post subject: Reply with quote

Dralnu wrote:
This is a thought: Get a working (by that I mean up-to-date) online repository. That would be a start, if nothing else.


What do you mean? Something like this, perhaps: http://packages.gentoo.org/
_________________
If it ain't broke, tweak it. dvds | blurays | blog | wiki
Back to top
View user's profile Send private message
dusik
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2005
Posts: 129
Location: Durham, NC, USA

PostPosted: Thu Aug 10, 2006 2:03 pm    Post subject: Reply with quote

I feel like this thread keeps going off-topic. Maybe I should clarify what I'm trying to point out. Any ebuild provides certain info about itself, like, for app-office/openoffice-bin:

Code:
DESCRIPTION="OpenOffice productivity suite"
HOMEPAGE="http://www.openoffice.org/"
LICENSE="LGPL-2"


So, I'm trying to start a discussion about whether it would be a good idea to let an ebuild specify descriptions for the USE flags that packages uses that will supplement the global descriptions. So, for example, when you look up the USE flag descriptions for openoffice-bin, instead of seeing:

Code:
java - Adds support for Java


you'll be seeing, e.g.:

Code:
java - Adds form creation wizard to ooBase; ...


If I'm still not getting the point across, please ask me to clarify. I *know* we have online package repositories, and it's entirely beside the issue. The topic of this thread is very specific.
Back to top
View user's profile Send private message
beandog
Bodhisattva
Bodhisattva


Joined: 04 May 2003
Posts: 2066
Location: /usa/utah

PostPosted: Thu Aug 10, 2006 2:10 pm    Post subject: Reply with quote

dusik wrote:
So, I'm trying to start a discussion about whether it would be a good idea to let an ebuild specify descriptions for the USE flags that packages uses that will supplement the global descriptions. So, for example, when you look up the USE flag descriptions for openoffice-bin, instead of seeing:


Yes, it's a good idea.

Having only 3 examples isn't going to make anyone take the enhancement seriously, though.
_________________
If it ain't broke, tweak it. dvds | blurays | blog | wiki
Back to top
View user's profile Send private message
dusik
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2005
Posts: 129
Location: Durham, NC, USA

PostPosted: Thu Aug 10, 2006 3:12 pm    Post subject: Reply with quote

beandog wrote:
Having only 3 examples isn't going to make anyone take the enhancement seriously, though.


Yeah, we need more people to comment on this (and to stay on topic too). Maybe we should bring this up on one of the mailing lists to get more exposure?
Back to top
View user's profile Send private message
Dralnu
Veteran
Veteran


Joined: 24 May 2006
Posts: 1919

PostPosted: Thu Aug 10, 2006 3:15 pm    Post subject: Reply with quote

beandog wrote:
Dralnu wrote:
This is a thought: Get a working (by that I mean up-to-date) online repository. That would be a start, if nothing else.


What do you mean? Something like this, perhaps: http://packages.gentoo.org/


I was talking about the USE flag database, not package list.
_________________
The day Microsoft makes a product that doesn't suck, is the day they make a vacuum cleaner.
Back to top
View user's profile Send private message
beandog
Bodhisattva
Bodhisattva


Joined: 04 May 2003
Posts: 2066
Location: /usa/utah

PostPosted: Thu Aug 10, 2006 3:40 pm    Post subject: Reply with quote

Dralnu wrote:
beandog wrote:
Dralnu wrote:
This is a thought: Get a working (by that I mean up-to-date) online repository. That would be a start, if nothing else.


What do you mean? Something like this, perhaps: http://packages.gentoo.org/


I was talking about the USE flag database, not package list.


Oh, you mean use.desc and use.local.desc.

If the descriptions are out of date, file a bug.
_________________
If it ain't broke, tweak it. dvds | blurays | blog | wiki
Back to top
View user's profile Send private message
dusik
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2005
Posts: 129
Location: Durham, NC, USA

PostPosted: Thu Aug 10, 2006 4:59 pm    Post subject: Reply with quote

beandog wrote:
Oh, you mean use.desc and use.local.desc.

If the descriptions are out of date, file a bug.


Hey, that might be the simplest solution - to be able to override global use flag description in use.local.desc!

I just gave that a try and it's the global description that shows up, though.
Back to top
View user's profile Send private message
dusik
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2005
Posts: 129
Location: Durham, NC, USA

PostPosted: Thu Aug 10, 2006 5:04 pm    Post subject: Reply with quote

dusik wrote:
I just gave that a try and it's the global description that shows up, though.


Sorry, I spoke too hastily. The local description does not show up using equery uses package, but it does show up using euse -i flag:

Code:
$ euse -i java
global use flags (searching: java)
************************************************************
[-  d ] java - Adds support for Java

local use flags (searching: java)
************************************************************
[-  d ] java (app-office/openoffice-bin):
*** CUSTOM DESCRIPTION GOES HERE ***


So there is a way for ebuild devs to do that! But the discrepancy between the equery and euse results I think indicates a lack of direct awareness of this issue among the devs, so maybe it really is a good idea to float this concept on the dev mailing list.
Back to top
View user's profile Send private message
beandog
Bodhisattva
Bodhisattva


Joined: 04 May 2003
Posts: 2066
Location: /usa/utah

PostPosted: Thu Aug 10, 2006 5:57 pm    Post subject: Reply with quote

dusik wrote:
So there is a way for ebuild devs to do that! But the discrepancy between the equery and euse results I think indicates a lack of direct awareness of this issue among the devs, so maybe it really is a good idea to float this concept on the dev mailing list.


They're both a part of the gentoolkit project.

http://www.gentoo.org/proj/en/portage/tools/index.xml

Search bugzilla to see if there's already a bug to fix it, and if not, go ahead and file a new one.

https://bugs.gentoo.org/

Be sure to read this first, though:

http://www.gentoo.org/proj/en/portage/tools/index.xml#doc_chap6
_________________
If it ain't broke, tweak it. dvds | blurays | blog | wiki
Back to top
View user's profile Send private message
dusik
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2005
Posts: 129
Location: Durham, NC, USA

PostPosted: Thu Aug 10, 2006 6:03 pm    Post subject: Reply with quote

@beandog: Thanks; will do! :)
Back to top
View user's profile Send private message
Trent Arms
n00b
n00b


Joined: 23 Mar 2006
Posts: 8
Location: Ohio, USA

PostPosted: Fri Aug 11, 2006 5:02 am    Post subject: Reply with quote

So is this thread effectively dead then? I've come across this very problem many times now but could never figure out just hat to do about it. I keep a combined use.desc and package.use.desc in my home directory, but it can only be so exact. A recent example is wxGTK. What do sdl and odbc do for it exactly? What about joystick even? Unless I suddenly learn to read massive amounts of code at a glance, I'll never even have time to figure it out.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo Chat All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum