David Shen <davidshe...@googlemail.com> posted
53e35fd50907010235p5690dc30p274c57de7afb...@mail.gmail.com, excerpted
below, on  Wed, 01 Jul 2009 17:35:39 +0800:

> I want to compile the busybox as static, so I do not need to copy the
> .so files as the dynamic version would need. But when I use 'equery uses
> busybox' to query the use keyword it supports, a 'do not set this during
> bootstrap' is added in front of the description. I do not understand
> why...

"Bootstrap" is a reference to that time early in the install process, 
when you're running partly from original stage tarball, and partly from 
already self-build packages.  This is a particularly critical period for 
building packages as if it's handled incorrectly, you end up with 
unresolvable circular dependencies -- the USE flags for one or more 
particular packages require one or more others to be installed first, 
which in turn required the first to be installed in ordered to build at 
all.

Apparently, busybox is one such app, and this warning is simply saying 
don't turn on the static USE flag during the bootstrap, because it causes 
dependencies that can't be resolved.

That, at least, is the most likely situation.  However, there's a bit 
more to it than that, as it's likely you don't want static at that point 
anyway, since you'd be building in the stage tarball copies of various 
libs, not the ones you've already recompiled.

The solution is relatively simple.  During the bootstrapping process, you 
rebuild a few particular critical libraries, then you rebuild system, 
therefore rebuilding the same libraries again (while building many more 
system apps and libs this time), now based on your self-built versions of 
the first few, then you can start merging specific packages into world.

It's at this point, when you start merging specific packages into world, 
that you are finally fully free of restrictions on USE flags.  If you 
wait until that point to enable the static USE flag on busybox you 
shouldn't have a problem.

Thus, as long as you're past that stage in the system installation, that 
flag shouldn't be a problem.

(That said, I never /did/ get busybox to build successfully here, tho I 
didn't try too hard as I don't need it (no initrd/initramfs and I use a 
bootable backup of my main system partition if things go haywire on my 
main system partition, so I don't need the all-in-one recovery services 
busybox is designed to provide).  Since I don't need it anyway, I have a 
line "-*sys-apps/busybox" (without the quotes) in 
/etc/portage/profiles/packages, thus removing it from the the system 
set.  As such, while I can explain the issue with bootstrap based on 
general knowledge of how the Gentoo installation works at that point, 
it's not like I've ever built the package myself.)

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman


Reply via email to