1 |
On 4 July 2012 05:56, Ciaran McCreesh <ciaran.mccreesh@××××××××××.com> wrote: |
2 |
> |
3 |
> But whether or not a and b can be installed together sounds an awful |
4 |
> lot like a property of a and b, not of c. |
5 |
|
6 |
Its just when C is really something abstract, ( a virtual ) provided |
7 |
by both possibly a & b, and b doesn't know a even exists till after |
8 |
the fact, and vice versa, that solving the problem in a & b becomes |
9 |
messy. |
10 |
|
11 |
If you solve it in one side ( in my example, perl-core ) you end up |
12 |
having a lot of weird conditional logic trying to work out src_uri, |
13 |
dependencies, and whether or not to actually do anything. |
14 |
|
15 |
If you solve it on the other side ( in my example, dev-lang/perl ) , |
16 |
you end up having perl specify what versions of the abstract notion |
17 |
can and cannot be installed, instead of the abstract notion specifying |
18 |
what is *needed* and there is a resolution required to provide that. |
19 |
|
20 |
if a package specifies : " =virtual-Foo-5.0 " , that means "I want the |
21 |
Foo.pm version 5.0, I don't care how you get it, get it". |
22 |
|
23 |
Only the virtual can convey *how* to get that. |
24 |
|
25 |
ie: perhaps =virtual-Foo-5.0 can only be satisfied by installing |
26 |
dev-lang/perl-5.10 ( its not in any other Perl, or on CPAN ) |
27 |
or perhaps =virtual-Foo-5.0 can be satisfied by installing |
28 |
perl-core/Foo-5.0 on any perl |
29 |
|
30 |
And there are dozens of packages that ask for "Foo-5.0" , and the only |
31 |
other altnative we had before we had the virtual/perl-* family, was to |
32 |
ignore the dependency entirely and hope for the best, or depend on a |
33 |
minimum perl we know had it ( which is a different minimum perl than |
34 |
what upstream specifies, because upstream assume you can install |
35 |
things from CPAN , and/or depend on the nearest match that *is* |
36 |
available via perl-core/* , risking the possibility that it will |
37 |
install a version from CPAN that is to become outdated by a future |
38 |
perl release, but you'll keep installed anyway, giving the shadow |
39 |
effect again. |
40 |
|
41 |
Essentially, the problem at the bottom of this, is Perl Modules depend |
42 |
on each other by components in distributions ( the modules ), not the |
43 |
distributions themselves. Its merely convention that distributions |
44 |
have a name and version that is the same of a module also contained in |
45 |
that distribution. |
46 |
|
47 |
-- |
48 |
Kent |
49 |
|
50 |
perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3, |
51 |
3 ) for ( 9,8,0,7,1,6,5,4,3,2 );" |
52 |
|
53 |
http://kent-fredric.fox.geek.nz |