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

Reply via email to