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