On Wednesday, October 26, 2016 11:14:53 PM Rich Freeman wrote:
> On Wed, Oct 26, 2016 at 10:54 PM, Walter Dnes <waltd...@waltdnes.org> wrote:
> > On Thu, Oct 27, 2016 at 01:10:10AM +0000, Peter Stuge wrote
> > 
> >> waltd...@waltdnes.org wrote:
> >> > For a build-from-source distro like Gentoo, gcc and associated
> >> > tools are a vital part of the distro.
> >> 
> >> A stage4 created (and updated) on a catalyst build farm doesn't need
> >> to have gcc, but may still need libstdc++.
> >> 
> >   That just moves the requirement for gcc+tools to the catalyst build
> > 
> > farm.  OK, let's get specific... a *STANDALONE* Gentoo machine requires
> > gcc+tools.
> 
> This is why I think "@system" oversimplifies all of this.  IMO we
> should just specify all dependencies for everything (and those could
> include some virtuals for convenience, like the C toolchain), and then
> have different sets or virtuals for convenience.  By all means give a
> user with a default install that sticks virtual/common-packages or
> something in their @world.  Nobody is arguing that the typical Gentoo
> user doesn't want gcc, or that we should force people to explicitly
> install it.
> 
> Fixing the dependencies means that system packages can take advantage
> of parallel builds, which means faster updates for everybody.  We can
> still have sets for bootstraping (and I suspect that having more
> virtuals or sets would allow stage1/2 definition to be simplified).
> 
> It is a bit like license groups.  We give everybody a default set of
> license groups that generally makes sense.  But, if you want you can
> easily edit your make.conf to exclude anything that is copyleft from
> your system.
> 
> The main downside to this is it is a bit more of a hassle for
> developers to maintain the dependency lists, since invariably you end
> up with a lot of mundane stuff in there.  And of course it is a lot of
> change to implement, though it could be done gradually.  And of course
> the upside for the typcal user is somewhat limited, since most people
> aren't dying to uninstall openssh or gcc.

I want to +1 this, but I do see one problem: If all dependencies are defined, 
how does "emerge --with-bdeps=y --emptytree @world" work? Defining all 
dependencies means the graph is completely cyclic.

Perhaps the answer is that it doesn't; you have to run 'emerge --emptytree 
@world twice' if you want to ensure every package is rebuilt with its newest 
available build dependencies.

I'll sometimes do an "emerge -e @world" twice following a compiler upgrade or 
CFLAGS or LDFLAGS change.

-- 
:wq

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to