Gentoo Archives: gentoo-catalyst

From: Mikey <mikey@×××××××××××.com>
To: Eric Edgar <rocket@g.o>, gentoo-catalyst@l.g.o
Subject: Re: [gentoo-catalyst] Couple of questions
Date: Thu, 15 Dec 2005 17:00:49
Message-Id: 200512151057.59346.mikey@badpenguins.com
In Reply to: Re: [gentoo-catalyst] Couple of questions by Eric Edgar
1 On Thursday 15 December 2005 09:58, Eric Edgar spammed:
2
3 > You also have to concider that you were doing things incorrectly. We
4 > only have so much time in the day and have to go after the low hanging
5 > fruit first per say. While you are correct that something is wrong in
6 > the tree the initial results did not indicate that.
7
8 It took me a few iterations to understand how the tool is _supposed_ to be
9 used. At no place in the documentation does it clearly explain that the
10 syntax of stage4/use: does not migrate to stage2/use:, for example, or that
11 USE flags are NOT to be used anywhere but stage4, or that USE flags are not
12 to go into the envscript. There is one generic stage example, which has
13 been subsequently changed to explain that cflags and such only apply on
14 stage2, but no mention of use flags and so on. I assumed that:
15
16 "The catalyst tool is intended to be used by those who wish to create their
17 own customized versions of Gentoo Linux, or their own customized LiveCDs.
18 Our goal is to make catalyst a powerful tool that's a pleasure to use, and
19 to ensure that the code we write is maintainable and of high-quality."
20
21 ..meant that the tool was intended to be used to create customized versions,
22 what I didn't understand was the customization only applies in very limited
23 ways to stage4...
24
25 So I have had to learn the hard way and have had to bug the hell out of you
26 guys. I would be glad to work on some of the documentation after wrapping
27 my mind around it more completely :)
28
29 > put out a new gentoo cd. There are only 2 main developers working on
30 > catalyst at the moment, Myself and wolf31o2.
31
32 Geez, no wonder the fuse is kinda short. I had no idea it was only you two.
33
34 > from my standpoint I have seen you as quite firm in your convictions
35 > that you were right. I agree that the stage1 bug you posted is valid,
36 > but you could have also performed the few requested steps to follow
37 > wolf31o2's suggestions.
38
39 After making a few boneheaded mistakes I did follow Chris's suggestions, and
40 arrived at the same results. I also understood that the actual problem is
41 not caused by those mistakes. Stage1 is the only stage that installs into
42 a separate ROOT as far as I can tell. Catalyst is not taking into account
43 the order that portage.grab_stacked() and portage.stack_lists() is
44 returning package lists in. Glibc requires headers to be installed first.
45 The solution is either to hack portage to always sort lists that involve
46 the toolchain correctly, or to account for it in catalyst. I have never
47 coded in python, so I don't quite know how to implement the solution, but I
48 do have a guess at what the solution is. Push any toolchain package to the
49 top (or bottom, whichever) of the buildpkgs array in their proper order,
50 don't rely on portage.grab_stacked() or portage.stack_lists() to order it
51 correctly because it does not gracefully take into account the install is
52 happening in a different ROOT. The DEPEND check in the glibc ebuild is
53 looking for headers in the running system, not what is installed in ROOT,
54 so it does not see it as a dependency that needs to be installed first.
55 <rant>As an anal purist, I believe the toolchain should be installed first
56 and in the proper order explicitly one package at a time instead of in a
57 stacked list. To do otherwise is heaping problems on yourself on down the
58 road if you ask me. You also avoid this weird dependency problem when
59 installing into a ROOT.</rant>
60
61
62 > Making a new profile is really very easy to do and with catalysts
63 > portage_overlay features quite painless to do. It works just like an
64 > overlay on a host gentoo system. I can understand that it might have
65 > sounded difficult or time consuming to follow the recommendation but a
66 > better course of action from you would have been how can I do this .. or
67 > how do you guys do this. If it sounds like it sucks for you maybe it
68 > sucks for us too, but we just havent had the time to code a simpler way
69 > yet. We are not out to make anyones life difficult, remember we are
70 > volunteers here with limited time.
71
72 Can you put profiles in overlays? Duh, that would be much easier.
73
74 > you are also missing the fact that the profile stays consistent from one
75 > stage to the next. custom use flags in a spec file can and will very
76 > easily be missed or dropped or typoed etc. It really is a better design
77 > choice to do it with profiles.
78
79 Call this a feature request, or a suggestion.
80
81 Allow cflags, chosts, cxxflags, FEATURES, and use flags in only ONE place -
82 stage2. Stage2 can generate the entire make.conf that will be used through
83 any future stages, including the user specified USE flags. Stage2 runs the
84 bootstrap.sh, which correctly throws out non-applicable USE flags, so it is
85 not a problem, all the catalyst developers would have to do is count on
86 bootstrap.sh to work correctly.
87
88 From that point forward every stage done by catalyst uses the USE flags
89 generated in step 2 and never changes. If a USE flag breaks the install,
90 it would have broken during the install in stage4 anyway. This would
91 greatly simplify everything in my opinion.
92
93 Stage1 would continue to be the proper place to sanitize the build to
94 pre-selected cflags and use flags, etc...
95
96 Am I crazy, or what?
97
98 > You assume that its a simple thing to compile a tool chain in order.
99 > But what you miss is the fact that upstream developers consistently
100 > change how things are done. We have coded catalyst the best way for us.
101 > Using profiles allows us to leverage other developers time in the tree
102 > to catch a majority of the issues for us. They can help reorganize the
103 > way things are built if necessary via a profile. Otherwise we would be
104 > constantly updating our spec files and never know exactly what was going
105 > on.
106
107 It _is_ a simple thing to bootstrap a toolchain in order. The order has
108 always been the exact same and probably always will be. binutils, gcc,
109 headers, glibc. Repeat, using tools from previous step. This is the
110 _only_ way as far as I know to do it correctly, and to do it correctly
111 every time, and to be absolutely certain it has been done correctly. It
112 has been this way for over 10 years if I recall correctly, it is linux
113 system building 101.

Replies

Subject Author
Re: [gentoo-catalyst] Couple of questions Chris Gianelloni <wolf31o2@g.o>