1 |
Kevin F. Quinn wrote: |
2 |
> On Tue, 20 Jun 2006 16:14:08 -0700 |
3 |
> Donnie Berkholz <spyderous@g.o> wrote: |
4 |
> |
5 |
>> Mike Owen wrote: |
6 |
>>> From this user's perspective, simple is better. qt3 and qt4 as use |
7 |
>>> flags are completely and utterly obvious as to what they mean, and |
8 |
>>> there is no confusion about them. Adding a plain qt flag in there |
9 |
>>> brings back the gtk/gtk2 mess that we've presumably been trying to |
10 |
>>> avoid in the future. |
11 |
>> That depends on how it's done. If it's done in a simple and obvious |
12 |
>> way (USE=qt means use the best available qt, USE=qt# for other weird |
13 |
> |
14 |
> where "available" means "available in the tree for arch", not |
15 |
> "already installed on build system" (just to be clear - correct me if |
16 |
> I'm wrong) |
17 |
|
18 |
Yes, but it's more than that. |
19 |
|
20 |
Available will vary on a package-by-package basis. Package "A" may have |
21 |
qt4 and qt3 available, package "B" only qt4, package "C" only qt3. |
22 |
|
23 |
USE=qt would use qt4 on A, qt4 on B, qt3 on C. |
24 |
USE=qt3 would only affect A. |
25 |
|
26 |
>> stuff that most people don't care about and so can ignore), it |
27 |
>> shouldn't be that bad. |
28 |
> |
29 |
> So are you suggesting something like: |
30 |
> |
31 |
> qt - Add support for QT/include QT GUI |
32 |
> qt3 - build for version 3 of QT |
33 |
> |
34 |
> where dependencies might be something like: |
35 |
> |
36 |
> qt? ( qt3? ( >=dev-libs/qt-3.3.6 |
37 |
> <dev-libs/qt-4 ) |
38 |
> !qt3? ( >= dev-libs/qt-4.1 ) ) |
39 |
|
40 |
Well, I'm not sure of the best behavior. If they have USE="qt qt3", |
41 |
they're saying they want both the best available qt and qt3. I'd suggest |
42 |
the natural preference would be best available _over_ qt3, in cases |
43 |
where both are available and mutually exclusive. |
44 |
|
45 |
So more like: |
46 |
|
47 |
qt? ( =qt-4* ) |
48 |
!qt? ( qt3? ( =qt-3* ) ) |
49 |
|
50 |
Your inital dep string may not do what you intend, though. Something |
51 |
more like |
52 |
|
53 |
=qt-3* |
54 |
=qt-4* for the two sections |
55 |
|
56 |
> for a package that can build against either qt3 (3.3.6 or higher) or |
57 |
> qt4 (4.1 or higher) but not both simultaneously, and perhaps: |
58 |
> |
59 |
> qt? ( >= dev-libs/qt-4.1 |
60 |
> qt3? ( >=dev-libs/qt-3.3.6 |
61 |
> <dev-libs/qt-4 ) ) |
62 |
> |
63 |
> for packages that can build simultaneously for both (is this situation |
64 |
> realistic?). |
65 |
|
66 |
Yes, e.g. poppler-bindings |
67 |
|
68 |
> We'd need a qt4 to get just the qt3 package in that case: |
69 |
> |
70 |
> qt? ( qt4? ( >= dev-libs/qt-4.1 ) |
71 |
> qt3? ( >=dev-libs/qt-3.3.6 |
72 |
> <dev-libs/qt-4 ) ) |
73 |
|
74 |
No, this isn't right. The qt flag is only controlling whether the "best" |
75 |
interface is built, has nothing to do with older interfaces. |
76 |
|
77 |
qt? ( =qt-4* ) |
78 |
qt3? ( =qt-3* ) |
79 |
|
80 |
The goal is to avoid a double-flag combo to do a single thing. "qt" |
81 |
always and only affects the _best_ available qt interface for that |
82 |
package. "qt#" affects only _older_ available qt interfaces for that |
83 |
package. |
84 |
|
85 |
> Am I making sense? This looks a lot like the gtk/gtk2 flags, but |
86 |
> inverted; according to use.desc, gtk builds gtk+-1 unless gtk2 is set, |
87 |
> whereas the above builds highest version compatible with the |
88 |
> package unless a lower version is specifically requested through USE. |
89 |
> |
90 |
> Ideally we should be consistent in handling this issue (which |
91 |
> presumably isn't limited to just gtk and qt), although it may not be |
92 |
> worth the disruption to rework gtk/gtk2 into gtk/gtk1. |
93 |
|
94 |
Thanks, |
95 |
Donnie |