Gentoo Archives: gentoo-amd64

From: David Shen <davidshen84@××××××××××.com>
To: gentoo-amd64@l.g.o
Subject: Re: [gentoo-amd64] Re: !!do not set this during bootstrap!!??
Date: Wed, 01 Jul 2009 13:53:18
Message-Id: 53e35fd50907010653t11a776djfd7b9a5a8e3a3ae3@mail.gmail.com
In Reply to: [gentoo-amd64] Re: !!do not set this during bootstrap!!?? by Duncan <1i5t5.duncan@cox.net>
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