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