1 |
-----BEGIN PGP SIGNED MESSAGE----- |
2 |
Hash: SHA1 |
3 |
|
4 |
On 03/08/2013 12:27 PM, W. Trevor King wrote: |
5 |
> From: "W. Trevor King" <wking@×××××××.us> |
6 |
> |
7 |
> When using `update_seed` to get a 20121213 stage3 from |
8 |
> libmpc.so.2 to libmpc.so.3, stage2 failed with: |
9 |
> |
10 |
> /usr/libexec/gcc/i686-pc-linux-gnu/4.6.3/cc1: |
11 |
> error while loading shared libraries: libmpc.so.2: |
12 |
> cannot open shared object file: No such file or directory |
13 |
> |
14 |
> This was due to an mpc version bump in the Portage tree that was not |
15 |
> present in the stage3 I used to seed stage1. Stage1 wasn't |
16 |
> recompiling GCC against the new mpc, so it ended up with GCC linking |
17 |
> against the old mpc. Heading into stage2, the old mpc (from the seed |
18 |
> stage3) was no longer present, so compilation crashed and burned. |
19 |
> |
20 |
> To fix this, we should be extra agressive about rebuilding packages |
21 |
> when their dependencies change in stage1. The earlier update_seed |
22 |
> command was not catching the bumped mpc, so add: |
23 |
> |
24 |
> --complete-graph --with-bdeps=y --rebuild-if-new-ver |
25 |
> |
26 |
> to toughen things up. |
27 |
> |
28 |
> This is a general dependency problem (not GCC specific), so I also |
29 |
> replaced the gcc target with: |
30 |
> |
31 |
> @world @system |
32 |
> |
33 |
> This leads to a lot of rebuilding, but it should be a stable and |
34 |
> general fix. With a general fix there's no more need to allow |
35 |
> user-specific overrides with update_seed_command, and that option was |
36 |
> removed. |
37 |
> |
38 |
> Based-on-patch-by: Brian Dolbec <dolsen@g.o> |
39 |
> --- |
40 |
> I wrote this trimmed-down version up after talking to Brian and Rick |
41 |
> on IRC this morning. The test run is still running, but I'll post |
42 |
> if/when I get through stage3. |
43 |
> |
44 |
> doc/catalyst-spec.5.txt | 6 ------ |
45 |
> modules/stage1_target.py | 2 +- |
46 |
> targets/stage1/stage1-chroot.sh | 9 +++------ |
47 |
> 3 files changed, 4 insertions(+), 13 deletions(-) |
48 |
> |
49 |
> diff --git a/doc/catalyst-spec.5.txt b/doc/catalyst-spec.5.txt |
50 |
> index 4a6e06c..a928557 100644 |
51 |
> --- a/doc/catalyst-spec.5.txt |
52 |
> +++ b/doc/catalyst-spec.5.txt |
53 |
> @@ -135,12 +135,6 @@ one CD, this defines the layout for the directories under |
54 |
> This is an optional setting supported by stage1 to tell catalyst if |
55 |
> it should update the seed stage or not (valid values: `yes no`). |
56 |
> |
57 |
> -*update_seed_command*:: |
58 |
> -This is an optional command to pass to emerge for updating the seed |
59 |
> -stage (example: `--update dev-libs/mpfr dev-libs/mpc dev-libs/gmp`) |
60 |
> -If not specified, catalyst will update gcc deps. |
61 |
> -This setting requires enabling update_seed. |
62 |
> - |
63 |
> Compilation |
64 |
> ~~~~~~~~~~~ |
65 |
> |
66 |
> diff --git a/modules/stage1_target.py b/modules/stage1_target.py |
67 |
> index aa43926..7a6c860 100644 |
68 |
> --- a/modules/stage1_target.py |
69 |
> +++ b/modules/stage1_target.py |
70 |
> @@ -13,7 +13,7 @@ class stage1_target(generic_stage_target): |
71 |
> def __init__(self,spec,addlargs): |
72 |
> self.required_values=[] |
73 |
> self.valid_values=["chost"] |
74 |
> - self.valid_values.extend(["update_seed","update_seed_command"]) |
75 |
> + self.valid_values.extend(["update_seed"]) |
76 |
> generic_stage_target.__init__(self,spec,addlargs) |
77 |
> |
78 |
> def set_stage_path(self): |
79 |
> diff --git a/targets/stage1/stage1-chroot.sh b/targets/stage1/stage1-chroot.sh |
80 |
> index 3f628c2..3dad53d 100644 |
81 |
> --- a/targets/stage1/stage1-chroot.sh |
82 |
> +++ b/targets/stage1/stage1-chroot.sh |
83 |
> @@ -26,12 +26,9 @@ clst_root_path=/ setup_pkgmgr |
84 |
> # Update stage3 |
85 |
> if [ -n "${clst_update_seed}" ]; then |
86 |
> if [ "${clst_update_seed}" == "yes" ]; then |
87 |
> - echo "Updating seed stage..." |
88 |
> - if [ -n "${clst_update_seed_command}" ]; then |
89 |
> - clst_root_path=/ run_merge "--buildpkg=n ${clst_update_seed_command}" |
90 |
NACK: we will not be removing update_seed_command. Different people want |
91 |
different things, gentoo is about choice, if you break it you get to |
92 |
keep the pieces. |
93 |
|
94 |
You are more than welcome to add a warning about using |
95 |
update_seed_command, but it stays. |
96 |
|
97 |
- -Zero |
98 |
> - else |
99 |
> - clst_root_path=/ run_merge "--buildpkg=n --update --deep --newuse --onlydeps gcc" |
100 |
> - fi |
101 |
> + update_cmd="--update --deep --complete-graph --with-bdeps=y --rebuild-if-new-ver @world @system" |
102 |
> + echo "--- Updating seed stage with: ${update_cmd}" |
103 |
> + clst_root_path=/ run_merge "${update_cmd}" |
104 |
> elif [ "${clst_update_seed}" != "no" ]; then |
105 |
> echo "Invalid setting for update_seed: ${clst_update_seed}" |
106 |
> exit 1 |
107 |
> |
108 |
|
109 |
-----BEGIN PGP SIGNATURE----- |
110 |
Version: GnuPG v2.0.19 (GNU/Linux) |
111 |
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ |
112 |
|
113 |
iQIcBAEBAgAGBQJROi8ZAAoJEKXdFCfdEflKmDAQALSBVFh6hR4FGR+dQfN3T1Uv |
114 |
4YLQFk26boO3MdG8/L5J7n9aNh4SGo2NmAzpXPmZnJYFXdbDz5vNtnMb+fOZ2QTU |
115 |
oSoNRxW6laSY7J5kGXgtIYV4G5m2fYaik87LUuu16bz1GomCsndRuS7fcJZrLMfB |
116 |
hU3ClOB6BdVeCenvpmxIyg75pZsI2CbSqNXL4MNBocuG/eD6ZfOL17tyvRL1PGdC |
117 |
X6lv1veu6W6y/UnwuKng3EPqUtUbEh9CNAJZ1vkyyz1FMKtuDoMMrMW2OS/oT5YZ |
118 |
WELlw/R3XYjyKBM2Ar1bd6jHrTXbUy6buEWY4KFmhx5qY+BRCTeebrz872v4D85C |
119 |
JAWYJvlinqsyEUnJGtcitgSRx/+A/hweN8s4M+RHHPHDUXQwOedXGnNZU60ZH3o+ |
120 |
Pl9/B/7qBwRCGs0uTXq+GMWFEh4fZP3vMl60xp4GnA9uaxzfN7w0KJ2q1ZxWwGJk |
121 |
GJYKwTBt5fCA3TDQHHxNaLgAilu7JzMrRIkvaYf6DiXFP9mDUuQOJ8cd/ysUaDa5 |
122 |
QZipSfOw/eQRwzWlirbzHTic8pN5m8GVbYzmdtBVkUGHl8MchytXOwbDEJBW8PJu |
123 |
4TXtn6KKKFKDDHgPtMHeSzMGQij2n8ivK6QOYT2sPfauNRqHvuW+WgTZi+2EQsK0 |
124 |
UO1kM4BYa2TxuSIkLATT |
125 |
=lBAs |
126 |
-----END PGP SIGNATURE----- |