# Distributed under the GPL v2
# $Id$
+ 19 Sep 2009; Andrew Gaffney <agaffney@gentoo.org>
+ modules/catalyst/target/embedded.py, modules/catalyst/target/generic.py,
+ modules/catalyst/target/generic_stage.py, modules/catalyst/target/grp.py,
+ modules/catalyst/target/livecd_stage1.py,
+ modules/catalyst/target/livecd_stage2.py,
+ modules/catalyst/target/netboot.py, modules/catalyst/target/snapshot.py,
+ modules/catalyst/target/stage1.py, modules/catalyst/target/stage2.py,
+ modules/catalyst/target/stage3.py, modules/catalyst/target/stage4.py,
+ modules/catalyst/target/system.py, modules/catalyst/target/tinderbox.py:
+ Add dependency information for each target
+ Add function to automatically calculate source_subpath
+
18 Sep 2009; Andrew Gaffney <agaffney@gentoo.org>
modules/catalyst/target/generic_stage.py:
Fix typo for Gentoo bug #285484
class embedded_target(generic_stage_target):
+ depends = ('system', 'stage3')
+
def __init__(self):
self.valid_values = ["empty","rm","unmerge","fs-prepare","fs-finish","mergeroot","packages","fs-type"]
self.valid_values += ["runscript","boot/kernel","linuxrc", "use", "fs-ops"]
self.settings["root_path"]=catalyst.util.normpath("/tmp/mergeroot")
msg("embedded root path is " + self.settings["root_path"])
-__target_map = {"embedded":embedded_target}
+__target_map = { "embedded": embedded_target }
# vim: ts=4 sw=4 sta noet sts=4 ai
cmd("/bin/bash " + self.settings["controller_file"] + " " + command, \
action + " script failed.", env=self.env)
+ def calculate_source_subpath(self):
+ depends = self.depends
+ subpaths = []
+ for x in depends:
+ foo = self.settings['rel_type'] + '/' + x + '-' + self.settings['subarch'] + '-' + self.settings['version_stamp']
+ subpaths.append(foo)
+ return subpaths
+
# vim: ts=4 sw=4 sta noet sts=4 ai
self.settings["version_stamp"]
def set_source_subpath(self):
+ if not 'source_subpath' in self.settings:
+ subpaths = self.calculate_source_subpath()
+ msg("Possible source_subpath settings are: " + ', '.join(subpaths))
if not isinstance(self.settings["source_subpath"], str):
raise CatalystError,\
"source_subpath should have been a string. Perhaps you have something wrong in your spec file?"
from catalyst.output import *
class grp_target(generic_stage_target):
+
+ depends = ('system', 'stage3')
+
def __init__(self):
generic_stage_target.__init__(self)
"setup_environment","run_local","unbind",\
"generate_digests","clear_autoresume"]
-__target_map = {"grp":grp_target}
+__target_map = { "grp": grp_target }
# vim: ts=4 sw=4 sta noet sts=4 ai
from catalyst.output import *
class livecd_stage1_target(generic_stage_target):
+
+ depends = ('system', 'stage3')
+
def __init__(self):
self.required_values=["livecd/packages"]
self.valid_values=self.required_values[:]
else:
generic_stage_target.set_pkgcache_path(self)
-__target_map = {"livecd-stage1":livecd_stage1_target}
+__target_map = { "livecd-stage1": livecd_stage1_target }
# vim: ts=4 sw=4 sta noet sts=4 ai
from catalyst.output import *
class livecd_stage2_target(generic_stage_target):
+
+ depends = ('livecd-stage1', )
+
def __init__(self):
self.required_values=["boot/kernel"]
"setup_overlay","create_iso"]
self.settings["action_sequence"].append("clear_autoresume")
-__target_map = {"livecd-stage2":livecd_stage2_target}
+__target_map = { "livecd-stage2": livecd_stage2_target }
# vim: ts=4 sw=4 sta noet sts=4 ai
from catalyst.output import *
class netboot_target(generic_stage_target):
+
+ depends = ('system', 'stage3')
+
def __init__(self):
generic_stage_target.__init__(self)
"copy_files_to_image","setup_overlay","build_kernel","move_kernels",\
"remove","empty","unbind","clean","clear_autoresume"]
-__target_map = {"netboot":netboot_target}
+__target_map = { "netboot": netboot_target }
# vim: ts=4 sw=4 sta noet sts=4 ai
class snapshot_target(catalyst.target.generic.generic_target):
+ depends = ()
+
def __init__(self):
generic_target.__init__(self)
msg("Emptying directory " + myemp)
catalyst.util.empty_dir(myemp)
-__target_map = {"snapshot":snapshot_target}
+__target_map = { "snapshot": snapshot_target }
# vim: ts=4 sw=4 sta noet sts=4 ai
class stage1_target(generic_stage_target):
+ # We're leaving this empty since we can't do automatic source_subpath calculation for stage1
+ depends = ()
+
def __init__(self):
generic_stage_target.__init__(self)
self.mountmap["/tmp/stage1root/proc"]="/proc"
-__target_map = {"stage1":stage1_target}
+__target_map = { "stage1": stage1_target }
# vim: ts=4 sw=4 sta noet sts=4 ai
class stage2_target(generic_stage_target):
+ depends = ('stage1', )
+
def __init__(self):
generic_stage_target.__init__(self)
msg("\tDont say we did not warn you")
msg()
-__target_map = {"stage2":stage2_target}
+__target_map = { "stage2": stage2_target }
# vim: ts=4 sw=4 sta noet sts=4 ai
class stage3_target(generic_stage_target):
+ depends = ('stage2', )
+
def __init__(self):
generic_stage_target.__init__(self)
generic_stage_target.set_cleanables(self)
self.settings["cleanables"].extend(["/etc/portage"])
-__target_map = {"stage3":stage3_target}
+__target_map = { "stage3": stage3_target }
# vim: ts=4 sw=4 sta noet sts=4 ai
class stage4_target(generic_stage_target):
+ depends = ('system', 'stage3')
+
def __init__(self):
generic_stage_target.__init__(self)
self.settings["action_sequence"].append("capture")
self.settings["action_sequence"].append("clear_autoresume")
-__target_map = {"stage4":stage4_target}
+__target_map = { "stage4": stage4_target }
# vim: ts=4 sw=4 sta noet sts=4 ai
class system_target(generic_stage_target):
+ # We're leaving this empty since we can't do automatic source_subpath calculation for system
+ depends = ()
+
def __init__(self):
generic_stage_target.__init__(self)
self.mountmap[self.settings["root_path"] + "/proc"]="/proc"
-__target_map = {"system": system_target}
+__target_map = { "system": system_target }
# vim: ts=4 sw=4 sta noet sts=4 ai
class tinderbox_target(generic_stage_target):
+ depends = ('system', 'stage3')
+
def __init__(self):
generic_stage_target.__init__(self)
"setup_environment","run_local","preclean","unbind","clean",\
"clear_autoresume"]
-__target_map = {"tinderbox":tinderbox_target}
+__target_map = { "tinderbox": tinderbox_target }
# vim: ts=4 sw=4 sta noet sts=4 ai