Gentoo Archives: gentoo-catalyst

From: Brian Dolbec <dolsen@g.o>
To: "gentoo-catalyst@l.g.o" <gentoo-catalyst@l.g.o>
Cc: zmedico@g.o, fuzzyray@g.o
Subject: [gentoo-catalyst] patch, fix broken seed stage update
Date: Tue, 26 Feb 2013 16:21:09
Message-Id: 1361895645.3997.269.camel@big_daddy.dol-sen.ca
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

Replies

Subject Author
Re: [gentoo-catalyst] patch, fix broken seed stage update "W. Trevor King" <wking@×××××××.us>
Re: [gentoo-catalyst] patch, fix broken seed stage update "Rick \\\"Zero_Chaos\\\" Farina" <zerochaos@g.o>
Re: [gentoo-catalyst] patch, fix broken seed stage update Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH v2] Remove update_seed_command and strengthen update_seed "W. Trevor King" <wking@×××××××.us>