Gentoo Archives: gentoo-dev

From: Apreche <apreche@×××××××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: Improved ebuild information
Date: Mon, 10 Oct 2005 19:22:23
Message-Id: loom.20051010T204033-905@post.gmane.org
In Reply to: Re: [gentoo-dev] Re: Improved ebuild information by Bruno
1 Bruno <bonbons67 <at> internet.lu> writes:
2
3 >
4 > On Monday 10 October 2005 14:53, Chris Gianelloni wrote:
5 > >
6 > > Here's my question... use.local.desc is already package-specific, so why
7 > > would we need yet *another* place to put package-specific definitions?
8 > > Would it not be enough to have use.local.desc overlay on use.desc? If
9 > > package foo uses global USE flag bar in a way different from the
10 > > description in use.desc, then it should list the USE flag in
11 > > use.local.desc with the correct description for that package.
12 > >
13 > The additionnal info about USE flags should not be what is this or that USE
14 > flag used differently for, but rather what *exactly* does the use-flag
15 > influence. What exact features of the program are enabled/disabled/changed by
16 > the given USE flag.
17 > Some USE flags are used to either compile against a lib that's shipped with a
18 > package or with the system version of that lib. Would be useful to know.
19 >
20 > Then there are USE flags like static which are very unprecise. Do they mean
21 > that the program is 100% stand-alone (e.g. does not link against any lib) or
22 > does it have to do with *.a, *.la files being installed, or just reduce the
23 > count of libs linked against...
24 >
25 > In addition, providing the info in the package metadata is cleaner as
26 > information about a given package is in one place, and there is not one file
27 > with 1k lines with many USE flags and their use for each and every package.
28 >
29 > The aim is to allow to know what happens without reading the ebuild AND the
30 > configure script and makefiles of a package.
31 >
32 > Bruno
33 >
34
35 I agree with the people who say that a USE flag should do the same thing no
36 matter which package it is associated with. But it is true there are instances
37 where a USE flag does something different. Just look at the example about the
38 perl flag on mysql that is noted above. That tells me that maybe that flag on
39 mysql shouldn't be the perl flag, but some other flag pertaining to what those
40 scripts do, not what they are written in. So step one is to make it so a flag
41 always does the same thing no matter what ebuild it is associated with.
42
43 However, there is a problem that many USE flags are undocumented or difficult to
44 find documentation on. There are lots of flags that are seriously great
45 mysteries to me. Especially with packages like mplayer which has a zillion
46 flags. Also, even though I might know generally what a flag does I wont know
47 specifically how that effects this package. So what I propose is that each flag
48 has a general description in use.desc as they do now. But for each individual
49 ebuild there will be detailed descriptions of each flag the maintainer can put
50 in if they want. So the one sentence summaries of what a flag does will be
51 there, but you can easily access a multi-sentence, detailed, e-build specific
52 description when you are lost.
53
54 Let's do an example. xscreensaver, mplayer and gdm all respect the xinerama use
55 flag. And it is fair to say that on all of these the flag adds support for
56 xinerama to the package, so changing the use flag is unecessary. However, on
57 mlpayer and on gdm you could be more precise and say that flag adds support for
58 selecting which xinerama screen the program displays on. Whereas with
59 xscreensaver the flag allows you to display multiple instances of the
60 screensaver, one per xinerama screen, as opposed to one instance that spans the
61 entire full screen.
62
63 I think it's pretty obvious how that more specific information can be helpful to
64 users. I actually know a few people that have xinerama but purposefully don't
65 apply the xinerama flag to xscreensaver because they prefer a single instance of
66 the screensaver stretched out. That sort of documentation is very useful and
67 desperately needed in portage.
68
69 --
70 gentoo-dev@g.o mailing list