Update AUTHORS to review credit and split the list of people in original authors...
[catalyst.git] / modules / embedded_target.py
1 """
2 Enbedded target, similar to the stage2 target, builds upon a stage2 tarball.
3
4 A stage2 tarball is unpacked, but instead
5 of building a stage3, it emerges @system into another directory
6 inside the stage2 system.  This way, we do not have to emerge GCC/portage
7 into the staged system.
8 It may sound complicated but basically it runs
9 ROOT=/tmp/submerge emerge --something foo bar .
10 """
11 # NOTE: That^^ docstring has influence catalyst-spec(5) man page generation.
12
13 import os,string,imp,types,shutil
14 from catalyst_support import *
15 from generic_stage_target import *
16 from stat import *
17
18 class embedded_target(generic_stage_target):
19         """
20         Builder class for embedded target
21         """
22         def __init__(self,spec,addlargs):
23                 self.required_values=[]
24                 self.valid_values=[]
25                 self.valid_values.extend(["embedded/empty","embedded/rm","embedded/unmerge","embedded/fs-prepare","embedded/fs-finish","embedded/mergeroot","embedded/packages","embedded/fs-type","embedded/runscript","boot/kernel","embedded/linuxrc"])
26                 self.valid_values.extend(["embedded/use"])
27                 if "embedded/fs-type" in addlargs:
28                         self.valid_values.append("embedded/fs-ops")
29
30                 generic_stage_target.__init__(self,spec,addlargs)
31                 self.set_build_kernel_vars(addlargs)
32
33         def set_action_sequence(self):
34                 self.settings["action_sequence"]=["dir_setup","unpack","unpack_snapshot",\
35                                         "config_profile_link","setup_confdir",\
36                                         "portage_overlay","bind","chroot_setup",\
37                                         "setup_environment","build_kernel","build_packages",\
38                                         "bootloader","root_overlay","fsscript","unmerge",\
39                                         "unbind","remove","empty","clean","capture","clear_autoresume"]
40
41         def set_stage_path(self):
42                 self.settings["stage_path"]=normpath(self.settings["chroot_path"]+"/tmp/mergeroot")
43                 print "embedded stage path is "+self.settings["stage_path"]
44
45         def set_root_path(self):
46                 self.settings["root_path"]=normpath("/tmp/mergeroot")
47                 print "embedded root path is "+self.settings["root_path"]
48
49 def register(foo):
50         foo.update({"embedded":embedded_target})
51         return foo