1 |
On 28 September 2013 22:31, Martin Vaeth |
2 |
<vaeth@××××××××××××××××××××××××.de>wrote: |
3 |
|
4 |
> |
5 |
> Note that it would be stupid to depend on e.g. |
6 |
> =virtual/perl-Term-ANSIColor-4.02 |
7 |
> for several reason: |
8 |
> |
9 |
> 1. The virtual does not even exist :) |
10 |
> |
11 |
|
12 |
Nope, it does. Its just called =virtual/perl-Term-ANSIColor-4.20.0 , |
13 |
because upstreams versioning semantics are grossly different to gentoos, so |
14 |
we translate upstreams floating point versions to multipart versions so |
15 |
that version cross-dependency semantics stay the same. |
16 |
|
17 |
|
18 |
> 2. It would collide with ebuilds depending on other versions. |
19 |
> |
20 |
|
21 |
Nope, it would only collide in the case other ebuilds depended on a |
22 |
specific version, or blocked a specific version. |
23 |
|
24 |
This is seen as a "feature", because of "foo" needs "<= y-nnn" you don't |
25 |
want to have to logically tract that fact in every other package that needs |
26 |
"y" |
27 |
|
28 |
|
29 |
> 3. This version is only reasonable if perl-5.16 is the |
30 |
> perl version which the user has installed |
31 |
|
32 |
|
33 |
And when perl 5.18 hits tree, if you want exactly 4.20 or larger, you'll |
34 |
need to change your dependency string in your package to incorporate this |
35 |
fact, instead of saying ">=virtual/perl-Term-ANSIColor-4.20.0" you'll have |
36 |
to do "|| ( perl-5.18 etc etc )" , which is pushing the dependency |
37 |
management of all the virtuals into the pacakges that are requring them. |
38 |
|
39 |
Virtuals are much more convenient here, because if we need to change the |
40 |
provider of a single version, we change it in *one* place, instead of |
41 |
having to modify every ebuild in tree that needed it. |
42 |
|
43 |
( Actually, thats a bug still, because corelist -a says 4.20.0 should be |
44 |
available in 5.18, but the virtual for 4.20.0 doesn't yet have perl-5.18 |
45 |
listed as a provider, though I'm glad it can be fixed once, there, instead |
46 |
of having to fix it in every package that depended on 4.20.0 prior to the |
47 |
arrival of 5.18 in tree ) |
48 |
|
49 |
|
50 |
|
51 |
-- |
52 |
Kent |