Thanks for the detailed explanation. ;D
On Wed, Jul 1, 2009 at 7:36 PM, Duncan<1i5t5.dun...@cox.net> wrote: > 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 > > > -- Best Regards, David Shen http://twitter.com/davidshen84