On Fri, May 29, 2009 at 10:12:43PM +0000, Duncan wrote:
> Patrick Börjesson <psychoti...@lavabit.com> posted
> 20090529201741.gb11...@nexon.nexus, excerpted below, on  Fri, 29 May 2009
> 22:17:41 +0200:
> 
> > Why exactly would you want to use --oneshot for a "leaf package" that is
> > not depended on by any other package in the world set? If spam IS
> > depended on by any other package (recursively) in the world set, it will
> > be pulled in by --complete-graph, but that's not the case here if i
> > understand it correctly, thus it's a package that you explicitly wanted
> > installed, thus it belongs in the world set, and you should thus not use
> > --oneshot for it.
> 
> I use -1 by default, here (via scriptlet), mainly so I don't have to 
> worry about cluttering up my world file while emerging individual 
> packages, just as I always use -NuD with my @system and @world runs.
> 
> But for leaf packages, it serves as a sort of test install as well.  
> Since I always do revdep-rebuild -p and emerge --depclean -p after every 
> update (typically 2-3 times a week), then rebuild and clean as I need to, 
> keeping the "trial merges" on the depclean list for a few days keeps me 
> aware of them.  If I know it's something I want to keep, I run a 
> different scriptlet without the -1, but that's not often once a system is 
> up and running with the normal working set merged.  Meanwhile, I 
> ultimately either emerge -C (or let depclean handle it) the "trialware", 
> or emerge --noreplace, thus adding it to world.
> 
> But experimental installs and their deps typically sit in the --depclean 
> list for anything from a few minutes to a few days, until I decide 
> whether I want to keep or remove them.
> 
> If he was testing how the switches under discussion here worked and has a 
> similar policy, I could easily see him using -1 by habit, even if he 
> didn't explicitly reason that it was a test and therefore something he 
> didn't want in @world.

Indeed i can see the reason for using --oneshot for packages you possibly
only want installed for a limited time period, but as --complete-graph is
limited by definition to the world set, you can't expect emerge to
consider the dependencies of a leaf-package installed with --oneshot
(when using --complete-graph of "-D @world").

It's a weigh-off between having an easy time pruning your system and
having emerge calculate a "correct" dependency graph for your entire
system. As far as emerge is concerned, a leaf package installed with
--oneshot isn't reachable through the dependency graph, thus its
dependencies shouldn't be accounted for. 


Reply via email to