1 # Copyright 1999-2004 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo/src/catalyst/modules/grp_target.py,v 1.8 2005/04/14 14:59:48 rocket Exp $
6 The builder class for GRP (Gentoo Reference Platform) builds.
10 from catalyst_support import *
11 from generic_stage_target import *
13 class grp_target(generic_stage_target):
14 def __init__(self,spec,addlargs):
15 self.required_values=["version_stamp","target","subarch",\
16 "rel_type","profile","snapshot","source_subpath"]
18 self.valid_values=self.required_values[:]
19 if not addlargs.has_key("grp"):
20 raise CatalystError,"Required value \"grp\" not specified in spec."
22 self.required_values.extend(["grp","grp/use"])
23 if type(addlargs["grp"])==types.StringType:
24 addlargs["grp"]=[addlargs["grp"]]
26 for x in addlargs["grp"]:
27 self.required_values.append("grp/"+x+"/packages")
28 self.required_values.append("grp/"+x+"/type")
30 generic_stage_target.__init__(self,spec,addlargs)
32 def set_target_path(self):
33 self.settings["target_path"]=self.settings["storedir"]+"/builds/"+self.settings["target_subpath"]
36 for pkgset in self.settings["grp"]:
37 # example call: "grp.sh run pkgset cd1 xmms vim sys-apps/gleep"
38 mypackages=list_bashify(self.settings["grp/"+pkgset+"/packages"])
40 cmd("/bin/bash "+self.settings["controller_file"]+" run "+self.settings["grp/"+pkgset+"/type"]\
41 +" "+pkgset+" "+mypackages)
45 raise CatalystError,"GRP build aborting due to error."
47 def set_action_sequence(self):
48 self.settings["action_sequence"]=["dir_setup","unpack","unpack_snapshot",\
49 "config_profile_link","setup_confdir","bind","chroot_setup",\
50 "setup_environment","run_local","unmerge","unbind",\
55 generic_stage_target.set_use(self)
56 if self.settings.has_key("use"):
57 self.settings["use"].append("bindlist")
60 self.mounts.append("/tmp/grp")
61 self.mountmap["/tmp/grp"]=self.settings["target_path"]
64 foo.update({"grp":grp_target})