1 |
On 27 September 2013 08:02, Martin Vaeth |
2 |
<vaeth@××××××××××××××××××××××××.de>wrote: |
3 |
|
4 |
> For those which are provided by perl itself, you could have |
5 |
> a corresponding useflag of dev-lang/perl and make a use dependency: |
6 |
> If the main perl tarball does not provide the package, the perl ebuild |
7 |
> can pull in the corresponding package as a dependency. |
8 |
> |
9 |
|
10 |
That would be horrible. You'd have a massive list of USE flags, and you'd |
11 |
want *all* of them by default, and they'd have to pull the deps as |
12 |
PDEPENDS, because its impossible to have them as DEPENDS. |
13 |
|
14 |
And that would mean: X package wants Module::Build, so not only do you have |
15 |
to declare a dependency on Module::Build somehow, thats controlled by a USE |
16 |
flag, so maybe rebuild the entirety of Perl, just to install one thing that |
17 |
can be installed seperately from Perl. |
18 |
|
19 |
Also, instead of having the logical thing when Module::Build does get fully |
20 |
removed from perl, that we can simply remap the virtual to always pull from |
21 |
perl-core/Module-Build, we'd have to re-write every package in tree that |
22 |
used Module-Build. |
23 |
|
24 |
I was asking for solutions that reduce work, not increase it =p |
25 |
|
26 |
And when you wanted a specific version of a "dual life" module, you'd be |
27 |
completely out of luck. ( This is a problem with Module::Build, Test-Simple |
28 |
and ExtUtils::MakeMaker, because people regularly depend on specific |
29 |
versions of those things ) |
30 |
|
31 |
|
32 |
> This is appropriate if |
33 |
> something really needs a newer version, but not just because something |
34 |
> *must* depend on the virtual only because some perl versions do |
35 |
> not provide it. |
36 |
|
37 |
Worse than that I'm afraid, things that are virtualled are virtualled |
38 |
because upstream can and will depend on a specific version of that thing, |
39 |
and time to time, those versions are available only via CPAN, not via the |
40 |
present version of Perl |
41 |
|
42 |
And other times, upstream will depend on an explicit version which is |
43 |
available only in specific versions of perl, and virtuals are the only tool |
44 |
we have at present to mitigate these problems. |
45 |
|
46 |
And more, there is the growing list of modules that may be presently |
47 |
installed with perl, but are slated to stop being shipped with perl in a |
48 |
future release of perl. That means things that don't depend on the virtuals |
49 |
*now* will be broken when that version of perl ships, and its much, much |
50 |
easier to use the virtuals to resolve this problem, as opposed to tracking |
51 |
down all the modules that need to be fixed, and inlining a big list of |
52 |
conditional dependencies in each and every module that uses such a package. |
53 |
|
54 |
|
55 |
-- |
56 |
Kent |