1 |
The git branch is located at http://dev.gentoo.org/~dolsen/catalyst/ |
2 |
git checkout the rewrite branch. |
3 |
|
4 |
For those of you that have already cloned it, use --force in your pull. |
5 |
I've condensed, rearranged the changes into more logical complete |
6 |
changes. Still, I wouldn't think you could cherrypick any single commit |
7 |
in general. Some fixes could be cherrypicked to apply to current |
8 |
master, some would likely have to be hand applied due to other changes. |
9 |
|
10 |
Next on my todo list, fix doc's creation, create a setup.py and make the |
11 |
code installable via ebuild. |
12 |
|
13 |
I think also development should continue in a branch on the main |
14 |
catalyst repo on g.o.g.o. Possibly name it catalyst3b so it does not |
15 |
conflict with the catalyst3 branch started. I looked at rebasing my |
16 |
work on it, but decided against it. There were far too many changes in |
17 |
master since it was last updated. |
18 |
|
19 |
There are far too many patches to individually list them in this mail |
20 |
list. Please checkout the branch from my repo to review the changes. |
21 |
It would also be easier to use gitweb to view them online if it was |
22 |
pushed to the main repo. |
23 |
|
24 |
|
25 |
Anyway the latest patch... |
26 |
|
27 |
====================================================================== |
28 |
|
29 |
Fix broken seed stage update... |
30 |
|
31 |
Strip --usepkg and --buildpkg from emerge options for user defined |
32 |
update_seed_command. |
33 |
Add a check for the update_seed option to set the correct update |
34 |
options. |
35 |
Fix default seed stage update command to properly update gcc and it's |
36 |
deps. |
37 |
Add a seed stage update system command and option. |
38 |
Add --binpkg-respect-use=y for all cases --usepkg is enabled. |
39 |
|
40 |
|
41 |
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
42 |
|
43 |
From 9ffa5b8812403bf20f17eba58543fc4b7c04bc33 Mon Sep 17 00:00:00 2001 |
44 |
From: Brian Dolbec <dolsen@g.o> |
45 |
Date: Mon, 25 Feb 2013 23:31:41 -0800 |
46 |
Subject: [PATCH] Fix broken seed stage update... |
47 |
|
48 |
Strip --usepkg and --buildpkg from emerge options for user defined update_seed_command. |
49 |
Add a check for the update_seed option to set the correct update options. |
50 |
Fix default seed stage update command to properly update gcc and it's deps. |
51 |
Add a seed stage update system command and option. |
52 |
Add --binpkg-respect-use=y for all cases --usepkg is enabled. |
53 |
--- |
54 |
catalyst/targets/stage1.py | 3 ++- |
55 |
doc/catalyst-spec.5.txt | 12 +++++++++++- |
56 |
targets/stage1/stage1-chroot.sh | 17 ++++++++++++++--- |
57 |
targets/support/chroot-functions.sh | 11 ++++++++++- |
58 |
4 files changed, 37 insertions(+), 6 deletions(-) |
59 |
|
60 |
diff --git a/catalyst/targets/stage1.py b/catalyst/targets/stage1.py |
61 |
index e936929..e067c8c 100644 |
62 |
--- a/catalyst/targets/stage1.py |
63 |
+++ b/catalyst/targets/stage1.py |
64 |
@@ -18,7 +18,8 @@ class stage1(StageBase): |
65 |
def __init__(self,spec,addlargs): |
66 |
self.required_values=[] |
67 |
self.valid_values=["chost"] |
68 |
- self.valid_values.extend(["update_seed","update_seed_command"]) |
69 |
+ self.valid_values.extend(["update_seed","update_seed_command", |
70 |
+ "update_seed_system"]) |
71 |
StageBase.__init__(self,spec,addlargs) |
72 |
|
73 |
def set_stage_path(self): |
74 |
diff --git a/doc/catalyst-spec.5.txt b/doc/catalyst-spec.5.txt |
75 |
index 4a6e06c..196bdc3 100644 |
76 |
--- a/doc/catalyst-spec.5.txt |
77 |
+++ b/doc/catalyst-spec.5.txt |
78 |
@@ -138,9 +138,19 @@ it should update the seed stage or not (valid values: `yes no`). |
79 |
*update_seed_command*:: |
80 |
This is an optional command to pass to emerge for updating the seed |
81 |
stage (example: `--update dev-libs/mpfr dev-libs/mpc dev-libs/gmp`) |
82 |
-If not specified, catalyst will update gcc deps. |
83 |
+If not specified, catalyst will update gcc's deps, and rebuild gcc if any of |
84 |
+it's deps are updated with a new version. Even if it itself is not updated. |
85 |
+This prevents gcc breakage when it's dependency lib sonames have changed. |
86 |
This setting requires enabling update_seed. |
87 |
|
88 |
+*update_seed_system*:: |
89 |
+This is an optional setting supported by stage1 to tell catalyst if |
90 |
+it should update the seed's system packages or not (valid values: `yes no`). |
91 |
+This is run after any update_seed_command, updating any remaining upgradable |
92 |
+system packages. |
93 |
+This setting requires enabling update_seed. |
94 |
+ |
95 |
+ |
96 |
Compilation |
97 |
~~~~~~~~~~~ |
98 |
|
99 |
diff --git a/targets/stage1/stage1-chroot.sh b/targets/stage1/stage1-chroot.sh |
100 |
index 97aef7f..65c2d81 100755 |
101 |
--- a/targets/stage1/stage1-chroot.sh |
102 |
+++ b/targets/stage1/stage1-chroot.sh |
103 |
@@ -26,12 +26,23 @@ clst_root_path=/ setup_pkgmgr |
104 |
# Update stage3 |
105 |
if [ -n "${clst_update_seed}" ]; then |
106 |
if [ "${clst_update_seed}" == "yes" ]; then |
107 |
- echo "Updating seed stage..." |
108 |
if [ -n "${clst_update_seed_command}" ]; then |
109 |
- clst_root_path=/ run_merge "--buildpkg=n ${clst_update_seed_command}" |
110 |
+ echo "--- Updating seed stage with USER defined update_seed_command" |
111 |
+ update_cmd=${clst_update_seed_command/--usepkg /} |
112 |
+ update_cmd=${clst_update_seed_command/--buildpkg /} |
113 |
+ clst_root_path=/ run_merge "${update_cmd}" |
114 |
else |
115 |
- clst_root_path=/ run_merge "--buildpkg=n --update --deep --newuse --onlydeps gcc" |
116 |
+ echo "--- Updating seed stage with DEFAULT update_seed_command" |
117 |
+ update_cmd="--update --deep --complete-graph --rebuild-if-new-ver gcc" |
118 |
+ clst_root_path=/ run_merge ${update_cmd} |
119 |
fi |
120 |
+ if [ "${clst_update_seed_system}" == "yes" ]; then |
121 |
+ echo "--- Updating seed stage system packages" |
122 |
+ update_cmd="--update --deep --complete-graph @system" |
123 |
+ clst_root_path=/ run_merge ${update_cmd} |
124 |
+ fi |
125 |
+ # now reset the emerge options for the target |
126 |
+ clst_update_seed=no setup_myemergeopts |
127 |
elif [ "${clst_update_seed}" != "no" ]; then |
128 |
echo "Invalid setting for update_seed: ${clst_update_seed}" |
129 |
exit 1 |
130 |
diff --git a/targets/support/chroot-functions.sh b/targets/support/chroot-functions.sh |
131 |
index 2524b4f..69d2923 100755 |
132 |
--- a/targets/support/chroot-functions.sh |
133 |
+++ b/targets/support/chroot-functions.sh |
134 |
@@ -133,9 +133,18 @@ setup_myemergeopts(){ |
135 |
then |
136 |
export bootstrap_opts="${bootstrap_opts} -f" |
137 |
export clst_myemergeopts="${clst_myemergeopts} -f" |
138 |
+ # now intercept normal target options if we're updating the seed |
139 |
+ # to update the seed we do not want binpkgs that may have links to |
140 |
+ # sonames no longer installed, due to dependency updates. |
141 |
+ # this function will be re-run later with clst_update_seed=no |
142 |
+ elif [ "${clst_update_seed}" == "yes" ] |
143 |
+ then |
144 |
+ export clst_myemergeopts="${clst_myemergeopts} --newuse" |
145 |
+ export bootstrap_opts="${bootstrap_opts} -r" |
146 |
elif [ -n "${clst_PKGCACHE}" ] |
147 |
then |
148 |
- export clst_myemergeopts="${clst_myemergeopts} --usepkg --buildpkg --newuse" |
149 |
+ # if you add --usepkg, then also add --binpkg-respect-use=y |
150 |
+ export clst_myemergeopts="${clst_myemergeopts} --usepkg --binpkg-respect-use=y --buildpkg --newuse" |
151 |
export bootstrap_opts="${bootstrap_opts} -r" |
152 |
fi |
153 |
} |
154 |
-- |
155 |
1.8.1.2 |