On Tue, 14 June 2011 Brian Harring <[email protected]> wrote:
> On Tue, Jun 14, 2011 at 10:08:54AM -0400, Rich Freeman wrote:
> > On Tue, Jun 14, 2011 at 8:54 AM, Brian Harring <[email protected]> wrote:
> > > The implicit system set dependency thing really, really needs to die;
> > > at the time of the rule, portage couldn't handle resolving graphs of
> > > that sort. ?PM resolvers for gentoo are generally a fair bit saner
> > > now thus doing what you're suggesting isn't really beneficial (frankly
> > > it causes some issues for stages, as zac noted).
> > 
> > ++
> > 
> > It seems to me that the best policy would be for every package to just
> > list all its dependencies, and then users are free to run the default
> > experience that includes everything in @system, or a more trimmed-down
> > experience.
> 
> An annoying, but valid complaint agains this is that the deps start 
> getting heavy to maintain for developers, and aren't always viable to 
> represent.  Unpackers for example, are a pain in the ass for current 
> EAPIs- that could be reduced in pain via addition of basic implicit 
> deps to EAPI5 (if a src_uri ends in .bz2, then dep on virtual/bzip2).
> 
> Or devs could just be nudged into adding the appropriate DEPEND.  
> repoman checking for it either way wouldn't be hard.

IMHO a big distinction between DEPEND and RDEPEND should be done.

For RDEPEND all dependencies should be listed (including those packages
provided by @system)
This would allow easy installing into chroots with package manager's
help, especially in combination with binary packages.

For DEPEND it could be sufficient to assume @system is present or at
least limit to those dependencies needed by the package/ebuild itself,
but not those coming implicitly with features of package manager used
(e.g. default unpacking, emake, einstall, do*)
Eclasses "extending" package manager features should include their extra
DEPEND needs.


On the other hand, it would be nice if package manager could auto-detect
at least part of the runtime dependencies (library linking should be easy
as package manager already looks for them -- what's completely missing
is shebang/interpreter dependencies).
This way only version constraints would need to get added to RDEPEND
inside ebuilds as needed (and the few cases where dlopen makes it
impossible for package manager to see the linking).

A nice benefit of this would be that it can adapt to changes caused by
INSTALL_MASK, e.g. reduces dependencies that are not needed anymore
because some files were not installed.

Bruno

Reply via email to