Alec Warner wrote:

> Maybe you think fixing a circular dep is easy, I know I do.  But when
> Joe Shmoe think it's OMG U63r 1337 to install gentoo using a stage1
> because it makes his system so awesomely fast ( hence, The Conrad
> install on the forums, heh ;) ) and he has no ****ing clue how any of
> this crap works, and you tell him to fix the circular deps.  He isn't,
> he is going to file a bug, which will be marked WONTFIX.  We know there
> are circular deps, it's unavoidable in many situations.

In no way am I suggesting to EVER support ANY installation method that goes
beyond what is already supposed to be allowed in bootstrap.sh and
conservative CFLAGS.

Portage cannot easily enforce limits on what users choose, and it shouldn't,
it is a package manager not a system maintenance tool.

You can, however, test, duplicate, and guarantee results using methods such
as bootstrap.sh, which can easily enforce limits and account for circular
dependencies.  If you can do it from the command line, you can do it in a
simple script.

The bootstrap script _does_ work now, in spite of the openssl/python-fcksum
circular dependencies a few months ago.  Portage needed fixing, not the
entire installation method.
 
> The problem with a stage1 as *I* see it, is it that it's a grab-bag
> system.  A half-built system that some user, even following the official
> docs, can fuck up in a myriad of ways, just by turning on use flags.
> USE flags that that enable things that cause dep circles, enabling
> things that cause other things to not compile because the stage1 ISN'T a
> full system.  Our deptrees aren't complete, they make assumptions about
> the current system, and those assumptions generally are not true on a
> stage1 or stage2 system.

If you can't get it up from a bootstrap position, you merely mask the real
problems and put off dealing with them until later, in a much crazier
environment.  If you can consistently obtain a working bootstrap
environment for portage, no use flag _should_ matter afterwards.  The same
use flag will break a stage3, stage4, or stage99090 install.  emerge -e
system should work, every time, from a known baseline position.  If it does
not, something is broke.
 
> There is no way around this, in my reckoning, without giving the user a
> complete system to start with.  Then they can't trigger silly ass
> circular deps, because guess what, the base system is already installed!
>   If openSSL depends on perl and perl depends on openSSL, who cares,
> they are both installed, not a problem!

Hence you mask the real problem, which will come back and bite you in the
ass again later.  Eventually they will need to switch over to a new
profile, perform a library incompatible gcc/glibc upgrade, etc...

I have a hunch that judicious use of the build/bootstrap flags might be able
to get around most circular dependencies.  I don't know portage well enough
to determine that.

-- 
gentoo-dev@gentoo.org mailing list

Reply via email to