Gentoo Archives: gentoo-dev

From: Paul Smith <pausmith@××××××××××××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] BUILDROOT concept (was Re: [gentoo-dev] ROOT variable)
Date: Sat, 24 Apr 2004 12:57:41
Message-Id: vpdr65bp5y9t.fsf@lemming.engeast.baynetworks.com
In Reply to: Re: [gentoo-dev] BUILDROOT concept (was Re: [gentoo-dev] ROOT variable) by Paul de Vrieze
1 %% Paul de Vrieze <pauldv@g.o> writes:
2
3 pdv> On Friday 23 April 2004 21:45, Paul Smith wrote:
4
5 >> It does _NOT_ change where DEPEND packages are searched for:
6 >> they're still searched for on the native system not in the ROOT
7 >> system. If the native system and the root system are very
8 >> different, that doesn't seem like it can work properly.
9
10 pdv> No it will probably not. You must understand though that adding
11 pdv> something to DEPEND only tells portage that that package should
12 pdv> be available, but it does not change the build process or it's
13 pdv> native checks. As such the package itself searches for headers
14 pdv> and libraries in the root directory.
15
16 Certainly, but that's just a straightforward (heh! :)) cross-compiler
17 issue: that's been a solved problem for years--not in Gentoo or Portage
18 maybe, but in development communities.
19
20 In this discussion I'm more concerned about issues specifically related
21 to the way Portage itself is structured, not how the compile commands
22 that ebuilds work.
23
24 >> More generally, what I want to be able to do is build for a target
25 >> (ROOT) a specific set of packages and versions _without_ having to
26 >> modify my physical system in any way. I don't want the build of the
27 >> ROOT to have any relationship to what I have installed on my physical
28 >> system. If I want ROOT to have a version of a package that doesn't work
29 >> with a newer version of GTK or whatever, I don't want to have to
30 >> downgrade the version on my physical system in order to build that
31 >> ROOT. Maybe I want to create a ROOT system with a KDE desktop but don't
32 >> want KDE installed on my build system. Etc.
33
34 pdv> That is not possible, the only way to do it is with a chroot jail
35 pdv> such that you create a similar environment.
36
37 No; it certainly _IS_ possible. I'm doing it today, although I've had
38 to do some hacking to Portage to get it to work. I'd like to see some
39 of my changes move into Portage to allow it to become more flexible and
40 to decrease the extent of my hacking.
41
42 As you point out, there is some work required to get the compiler to
43 find the things in the correct places, but again this is just the norm
44 for any cross-compiler setup so it's not any extra work. We have a
45 shell wrapper in front of gcc and g++ which sets things up based on an
46 environment variable rather than hardcoded pathnames.
47
48
49 Chroot is not an attractive option for me. First, it's confusing in a
50 cross-compiled environment; you have to install a complete _HOST_ setup
51 in the _TARGET_ image (since that's where the chroot will leave you) so
52 that you can run the cross-compilers: you need a HOST glibc, ld.so,
53 etc. in the target image for use during the compile, as well the normal
54 target glibc, ld.so, etc. so it's difficult to set up either way. Also,
55 it requires root privileges which raises its own set of concerns in some
56 circles.
57
58 --
59 -------------------------------------------------------------------------------
60 Paul D. Smith <psmith@××××××××××××××.com> HASMAT--HA Software Mthds & Tools
61 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist
62 -------------------------------------------------------------------------------
63 These are my opinions---Nortel Networks takes no responsibility for them.
64
65 --
66 gentoo-dev@g.o mailing list

Replies