Gentoo Archives: gentoo-dev

From: Kent Fredric <kentfredric@×××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: [RFC] Policy for migrating library consumers to subslots
Date: Fri, 27 Sep 2013 07:33:54
Message-Id: CAATnKFC+FGknak8Y=CuPf2hAc=Oc7zQMfOnvLWeXFSyLHWc-ZQ@mail.gmail.com
In Reply to: [gentoo-dev] Re: [RFC] Policy for migrating library consumers to subslots by Martin Vaeth
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

Replies

Subject Author
[gentoo-dev] Re: [RFC] Policy for migrating library consumers to subslots Martin Vaeth <vaeth@××××××××××××××××××××××××.de>