Gentoo Archives: gentoo-commits

From: Matt Turner <mattst88@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/catalyst:master commit in: modules/
Date: Sat, 23 Feb 2013 02:02:35
Message-Id: 1361584935.62a252d096182147169f397f7bbea8330dfe3e1a.mattst88@gentoo
1 commit: 62a252d096182147169f397f7bbea8330dfe3e1a
2 Author: W. Trevor King <wking <AT> tremily <DOT> us>
3 AuthorDate: Sat Feb 9 20:45:33 2013 +0000
4 Commit: Matt Turner <mattst88 <AT> gmail <DOT> com>
5 CommitDate: Sat Feb 23 02:02:15 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/catalyst.git;a=commit;h=62a252d0
7
8 generic_stage_target: Split ._build_kernel() out of .build_kernel()
9
10 The indentation was getting too deep ;). This also makes the
11 single-kernel-building code more digestible, by removing the
12 multiple-kernel looping and error handling from the function you're
13 reading.
14
15 Reviewed-by: Matt Turner <mattst88 <AT> gmail.com>
16
17 ---
18 modules/generic_stage_target.py | 196 ++++++++++++++++++++-------------------
19 1 files changed, 99 insertions(+), 97 deletions(-)
20
21 diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py
22 index 952fa4b..af7cbe7 100644
23 --- a/modules/generic_stage_target.py
24 +++ b/modules/generic_stage_target.py
25 @@ -1395,6 +1395,7 @@ class generic_stage_target(generic_target):
26 "build aborting due to error."
27
28 def build_kernel(self):
29 + "Build all configured kernels"
30 if "AUTORESUME" in self.settings \
31 and os.path.exists(self.settings["autoresume_path"]+"build_kernel"):
32 print "Resume point detected, skipping build_kernel operation..."
33 @@ -1410,110 +1411,111 @@ class generic_stage_target(generic_target):
34 cmd("/bin/bash "+self.settings["controller_file"]+\
35 " pre-kmerge ","Runscript pre-kmerge failed",\
36 env=self.env)
37 -
38 for kname in mynames:
39 - if "AUTORESUME" in self.settings \
40 - and os.path.exists(self.settings["autoresume_path"]\
41 - +"build_kernel_"+kname):
42 - print "Resume point detected, skipping build_kernel for "+kname+" operation..."
43 - else: # TODO: make this not require a kernel config
44 - try:
45 - if not os.path.exists(self.settings["boot/kernel/"+kname+"/config"]):
46 - self.unbind()
47 - raise CatalystError,\
48 - "Can't find kernel config: "+\
49 - self.settings["boot/kernel/"+kname+\
50 - "/config"]
51 -
52 - except TypeError:
53 - raise CatalystError,\
54 - "Required value boot/kernel/config not specified"
55 -
56 - try:
57 - cmd("cp "+self.settings["boot/kernel/"+kname+\
58 - "/config"]+" "+\
59 - self.settings["chroot_path"]+"/var/tmp/"+\
60 - kname+".config",\
61 - "Couldn't copy kernel config: "+\
62 - self.settings["boot/kernel/"+kname+\
63 - "/config"],env=self.env)
64 -
65 - except CatalystError:
66 - self.unbind()
67 -
68 - """
69 - If we need to pass special options to the bootloader
70 - for this kernel put them into the environment
71 - """
72 - if "boot/kernel/"+kname+"/kernelopts" in self.settings:
73 - myopts=self.settings["boot/kernel/"+kname+\
74 - "/kernelopts"]
75 -
76 - if type(myopts) != types.StringType:
77 - myopts = string.join(myopts)
78 - self.env[kname+"_kernelopts"]=myopts
79 -
80 - else:
81 - self.env[kname+"_kernelopts"]=""
82 -
83 - if "boot/kernel/"+kname+"/extraversion" not in self.settings:
84 - self.settings["boot/kernel/"+kname+\
85 - "/extraversion"]=""
86 -
87 - self.env["clst_kextraversion"]=\
88 - self.settings["boot/kernel/"+kname+\
89 - "/extraversion"]
90 -
91 - if "boot/kernel/"+kname+"/initramfs_overlay" in self.settings:
92 - if os.path.exists(self.settings["boot/kernel/"+\
93 - kname+"/initramfs_overlay"]):
94 - print "Copying initramfs_overlay dir "+\
95 - self.settings["boot/kernel/"+kname+\
96 - "/initramfs_overlay"]
97 -
98 - cmd("mkdir -p "+\
99 - self.settings["chroot_path"]+\
100 - "/tmp/initramfs_overlay/"+\
101 - self.settings["boot/kernel/"+kname+\
102 - "/initramfs_overlay"],env=self.env)
103 -
104 - cmd("cp -R "+self.settings["boot/kernel/"+\
105 - kname+"/initramfs_overlay"]+"/* "+\
106 - self.settings["chroot_path"]+\
107 - "/tmp/initramfs_overlay/"+\
108 - self.settings["boot/kernel/"+kname+\
109 - "/initramfs_overlay"],env=self.env)
110 -
111 - """ Execute the script that builds the kernel """
112 - cmd("/bin/bash "+self.settings["controller_file"]+\
113 - " kernel "+kname,\
114 - "Runscript kernel build failed",env=self.env)
115 -
116 - if "boot/kernel/"+kname+"/initramfs_overlay" in self.settings:
117 - if os.path.exists(self.settings["chroot_path"]+\
118 - "/tmp/initramfs_overlay/"):
119 - print "Cleaning up temporary overlay dir"
120 - cmd("rm -R "+self.settings["chroot_path"]+\
121 - "/tmp/initramfs_overlay/",env=self.env)
122 -
123 - touch(self.settings["autoresume_path"]+\
124 - "build_kernel_"+kname)
125 -
126 - """
127 - Execute the script that cleans up the kernel build
128 - environment
129 - """
130 - cmd("/bin/bash "+self.settings["controller_file"]+\
131 - " post-kmerge ",
132 - "Runscript post-kmerge failed",env=self.env)
133 -
134 + self._build_kernel(kname=kname)
135 touch(self.settings["autoresume_path"]+"build_kernel")
136 -
137 except CatalystError:
138 self.unbind()
139 raise CatalystError,\
140 "build aborting due to kernel build error."
141
142 + def _build_kernel(self, kname):
143 + "Build a single configured kernel by name"
144 + if "AUTORESUME" in self.settings \
145 + and os.path.exists(self.settings["autoresume_path"]\
146 + +"build_kernel_"+kname):
147 + print "Resume point detected, skipping build_kernel for "+kname+" operation..."
148 + else: # TODO: make this not require a kernel config
149 + try:
150 + if not os.path.exists(self.settings["boot/kernel/"+kname+"/config"]):
151 + self.unbind()
152 + raise CatalystError,\
153 + "Can't find kernel config: "+\
154 + self.settings["boot/kernel/"+kname+\
155 + "/config"]
156 +
157 + except TypeError:
158 + raise CatalystError,\
159 + "Required value boot/kernel/config not specified"
160 +
161 + try:
162 + cmd("cp "+self.settings["boot/kernel/"+kname+\
163 + "/config"]+" "+\
164 + self.settings["chroot_path"]+"/var/tmp/"+\
165 + kname+".config",\
166 + "Couldn't copy kernel config: "+\
167 + self.settings["boot/kernel/"+kname+\
168 + "/config"],env=self.env)
169 +
170 + except CatalystError:
171 + self.unbind()
172 +
173 + """
174 + If we need to pass special options to the bootloader
175 + for this kernel put them into the environment
176 + """
177 + if "boot/kernel/"+kname+"/kernelopts" in self.settings:
178 + myopts=self.settings["boot/kernel/"+kname+\
179 + "/kernelopts"]
180 +
181 + if type(myopts) != types.StringType:
182 + myopts = string.join(myopts)
183 + self.env[kname+"_kernelopts"]=myopts
184 +
185 + else:
186 + self.env[kname+"_kernelopts"]=""
187 +
188 + if "boot/kernel/"+kname+"/extraversion" not in self.settings:
189 + self.settings["boot/kernel/"+kname+\
190 + "/extraversion"]=""
191 +
192 + self.env["clst_kextraversion"]=\
193 + self.settings["boot/kernel/"+kname+\
194 + "/extraversion"]
195 +
196 + if "boot/kernel/"+kname+"/initramfs_overlay" in self.settings:
197 + if os.path.exists(self.settings["boot/kernel/"+\
198 + kname+"/initramfs_overlay"]):
199 + print "Copying initramfs_overlay dir "+\
200 + self.settings["boot/kernel/"+kname+\
201 + "/initramfs_overlay"]
202 +
203 + cmd("mkdir -p "+\
204 + self.settings["chroot_path"]+\
205 + "/tmp/initramfs_overlay/"+\
206 + self.settings["boot/kernel/"+kname+\
207 + "/initramfs_overlay"],env=self.env)
208 +
209 + cmd("cp -R "+self.settings["boot/kernel/"+\
210 + kname+"/initramfs_overlay"]+"/* "+\
211 + self.settings["chroot_path"]+\
212 + "/tmp/initramfs_overlay/"+\
213 + self.settings["boot/kernel/"+kname+\
214 + "/initramfs_overlay"],env=self.env)
215 +
216 + """ Execute the script that builds the kernel """
217 + cmd("/bin/bash "+self.settings["controller_file"]+\
218 + " kernel "+kname,\
219 + "Runscript kernel build failed",env=self.env)
220 +
221 + if "boot/kernel/"+kname+"/initramfs_overlay" in self.settings:
222 + if os.path.exists(self.settings["chroot_path"]+\
223 + "/tmp/initramfs_overlay/"):
224 + print "Cleaning up temporary overlay dir"
225 + cmd("rm -R "+self.settings["chroot_path"]+\
226 + "/tmp/initramfs_overlay/",env=self.env)
227 +
228 + touch(self.settings["autoresume_path"]+\
229 + "build_kernel_"+kname)
230 +
231 + """
232 + Execute the script that cleans up the kernel build
233 + environment
234 + """
235 + cmd("/bin/bash "+self.settings["controller_file"]+\
236 + " post-kmerge ",
237 + "Runscript post-kmerge failed",env=self.env)
238 +
239 def bootloader(self):
240 if "AUTORESUME" in self.settings \
241 and os.path.exists(self.settings["autoresume_path"]+"bootloader"):