1 |
David Shen <davidshen84@××××××××××.com> posted |
2 |
53e35fd50907010235p5690dc30p274c57de7afb3b8@××××××××××.com, excerpted |
3 |
below, on Wed, 01 Jul 2009 17:35:39 +0800: |
4 |
|
5 |
> I want to compile the busybox as static, so I do not need to copy the |
6 |
> .so files as the dynamic version would need. But when I use 'equery uses |
7 |
> busybox' to query the use keyword it supports, a 'do not set this during |
8 |
> bootstrap' is added in front of the description. I do not understand |
9 |
> why... |
10 |
|
11 |
"Bootstrap" is a reference to that time early in the install process, |
12 |
when you're running partly from original stage tarball, and partly from |
13 |
already self-build packages. This is a particularly critical period for |
14 |
building packages as if it's handled incorrectly, you end up with |
15 |
unresolvable circular dependencies -- the USE flags for one or more |
16 |
particular packages require one or more others to be installed first, |
17 |
which in turn required the first to be installed in ordered to build at |
18 |
all. |
19 |
|
20 |
Apparently, busybox is one such app, and this warning is simply saying |
21 |
don't turn on the static USE flag during the bootstrap, because it causes |
22 |
dependencies that can't be resolved. |
23 |
|
24 |
That, at least, is the most likely situation. However, there's a bit |
25 |
more to it than that, as it's likely you don't want static at that point |
26 |
anyway, since you'd be building in the stage tarball copies of various |
27 |
libs, not the ones you've already recompiled. |
28 |
|
29 |
The solution is relatively simple. During the bootstrapping process, you |
30 |
rebuild a few particular critical libraries, then you rebuild system, |
31 |
therefore rebuilding the same libraries again (while building many more |
32 |
system apps and libs this time), now based on your self-built versions of |
33 |
the first few, then you can start merging specific packages into world. |
34 |
|
35 |
It's at this point, when you start merging specific packages into world, |
36 |
that you are finally fully free of restrictions on USE flags. If you |
37 |
wait until that point to enable the static USE flag on busybox you |
38 |
shouldn't have a problem. |
39 |
|
40 |
Thus, as long as you're past that stage in the system installation, that |
41 |
flag shouldn't be a problem. |
42 |
|
43 |
(That said, I never /did/ get busybox to build successfully here, tho I |
44 |
didn't try too hard as I don't need it (no initrd/initramfs and I use a |
45 |
bootable backup of my main system partition if things go haywire on my |
46 |
main system partition, so I don't need the all-in-one recovery services |
47 |
busybox is designed to provide). Since I don't need it anyway, I have a |
48 |
line "-*sys-apps/busybox" (without the quotes) in |
49 |
/etc/portage/profiles/packages, thus removing it from the the system |
50 |
set. As such, while I can explain the issue with bootstrap based on |
51 |
general knowledge of how the Gentoo installation works at that point, |
52 |
it's not like I've ever built the package myself.) |
53 |
|
54 |
-- |
55 |
Duncan - List replies preferred. No HTML msgs. |
56 |
"Every nonfree program has a lord, a master -- |
57 |
and if you use the program, he is your master." Richard Stallman |