Gentoo Archives: gentoo-amd64

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

Replies

Subject Author
Re: [gentoo-amd64] Re: !!do not set this during bootstrap!!?? David Shen <davidshen84@××××××××××.com>