1 |
On Tue, Feb 26, 2013 at 7:03 PM, Brian Dolbec <dolsen@g.o> wrote: |
2 |
> On Tue, 2013-02-26 at 18:37 -0800, Matt Turner wrote: |
3 |
>> On Tue, Feb 26, 2013 at 8:20 AM, Brian Dolbec <dolsen@g.o> wrote: |
4 |
>> > --- a/doc/catalyst-spec.5.txt |
5 |
>> > +++ b/doc/catalyst-spec.5.txt |
6 |
>> > @@ -138,9 +138,19 @@ it should update the seed stage or not (valid values: `yes no`). |
7 |
>> > *update_seed_command*:: |
8 |
>> > This is an optional command to pass to emerge for updating the seed |
9 |
>> > stage (example: `--update dev-libs/mpfr dev-libs/mpc dev-libs/gmp`) |
10 |
>> > -If not specified, catalyst will update gcc deps. |
11 |
>> > +If not specified, catalyst will update gcc's deps, and rebuild gcc if any of |
12 |
>> > +it's deps are updated with a new version. Even if it itself is not updated. |
13 |
>> > +This prevents gcc breakage when it's dependency lib sonames have changed. |
14 |
>> > This setting requires enabling update_seed. |
15 |
>> > |
16 |
>> > +*update_seed_system*:: |
17 |
>> > +This is an optional setting supported by stage1 to tell catalyst if |
18 |
>> > +it should update the seed's system packages or not (valid values: `yes no`). |
19 |
>> > +This is run after any update_seed_command, updating any remaining upgradable |
20 |
>> > +system packages. |
21 |
>> > +This setting requires enabling update_seed. |
22 |
>> |
23 |
>> I don't see any need for an update_seed_system option. If someone |
24 |
>> wants to run emerge @system then they can do: |
25 |
>> |
26 |
>> update_seed_command: --options @system |
27 |
>> |
28 |
> |
29 |
> Well, Jorge last night was saying he wanted -uDN1 @world, but settled |
30 |
> for what was done. |
31 |
> |
32 |
> Also if you look at my change for the default update_seed_command. If |
33 |
> that is just made to @system, the problem I had updating my seed, it |
34 |
> would still be broken. The problem was that mpc was updated which |
35 |
> changed sonames, so gcc had to be rebuilt or was broken. Just doing an |
36 |
> emerge -uDN1 @system would not have rebuilt gcc for the new mpc lib. |
37 |
> And most system pkgs can not use EAPI 5 subslots to prevent breakage. |
38 |
> |
39 |
> This way gcc will get properly updated, rebuilt if necessary, then if |
40 |
> the user wants, update remaining system pkgs. |
41 |
> |
42 |
> It's there, now, only a few lines of code, and for the reasons above, |
43 |
> not as easy to do it all in one command. We would have to change the |
44 |
> update_seed_command spec option from being a run_merge() to a bash |
45 |
> subshell command. In that way it can be as complex as the user desires. |
46 |
|
47 |
So from talking on IRC, it seems that the problem that led to this |
48 |
patch was that a binpkg of gcc linked against an old mpc was used |
49 |
during stage1, leading to a broken gcc in stage2. Stripping --usepkg |
50 |
makes sense for this purpose. |
51 |
|
52 |
Removing --buildpkg I'm not sure about. It seems to me that anything |
53 |
that is built during the seed-update should be okay to use for the |
54 |
stage1. |
55 |
|
56 |
Adding an option for updating @system still seems unnecessary. |