1 |
On Sat, 24 Feb 2007 13:09:40 +0900 Jason Stubbs <jstubbs@g.o> |
2 |
wrote: |
3 |
| On Saturday 24 February 2007 12:34, Ciaran McCreesh wrote: |
4 |
| > On Sat, 24 Feb 2007 12:27:35 +0900 Jason Stubbs <jstubbs@g.o> |
5 |
| > wrote: |
6 |
| > | For the 14 cases you mentioned that were making a mistake, they |
7 |
| > | probably can be rewritten so as to force an install of the first |
8 |
| > | matching package, but when that isn't what is wanted it becomes a |
9 |
| > | bit of a headache. |
10 |
| > |
11 |
| > That should *always* be what's wanted. Packages should only alter |
12 |
| > dependencies / build parameters based upon USE flags, not based upon |
13 |
| > what else happens to be installed. |
14 |
| |
15 |
| Okay, I must be missing something here. If package foo can work with |
16 |
| either bar or baz equily as well but not both, why should it force an |
17 |
| artificial preference? |
18 |
|
19 |
For consistency. Installing a package with identical USE flags should |
20 |
give the same result on all systems. |
21 |
|
22 |
| Also, if packages should not specify dependencies based on what is |
23 |
| installed, the semantics of || ( ) would need to be changed such that |
24 |
| the first non-masked packages is always installed. |
25 |
|
26 |
No, || ( ) has legitimate use for switchable dependencies. For example, |
27 |
if a package can use either curl or wget, and it can switch at runtime, |
28 |
RDEPEND="|| ( curl wget )" is fine. Similarly, if a package needs |
29 |
either tetex or ptex at compile time, DEPEND="|| ( tetex ptex )" is |
30 |
correct. |
31 |
|
32 |
| The only reason I can see for the above is to be able to have |
33 |
| non-broken binary packages. However, that can be addressed by |
34 |
| replacing *DEPEND in binary packages with their resolved forms. |
35 |
|
36 |
If it affects binaries, it needs to be a USE flag. |
37 |
|
38 |
-- |
39 |
Ciaran McCreesh |
40 |
Mail : ciaranm at ciaranm.org |
41 |
Web : http://ciaranm.org/ |
42 |
Paludis, the secure package manager : http://paludis.pioto.org/ |