Gentoo Archives: gentoo-dev

From: Kent Fredric <kentfredric@×××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Future EAPI feature Request/RFC: ^^( ) for [RP]?DEPEND
Date: Tue, 03 Jul 2012 18:21:03
Message-Id: CAATnKFDaAKN=A5ssG0x2RGdZzLQNA5zVf1g7Dm-bw9C6S6BHWA@mail.gmail.com
In Reply to: Re: [gentoo-dev] Future EAPI feature Request/RFC: ^^( ) for [RP]?DEPEND by Ciaran McCreesh
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