--- /dev/null
+Index: modules/targets.py
+===================================================================
+RCS file: /home/cvsroot/gentoo/src/catalyst/modules/targets.py,v
+retrieving revision 1.60
+diff -u -r1.60 targets.py
+--- modules/targets.py 14 Jan 2004 06:21:56 -0000 1.60
++++ modules/targets.py 15 Jan 2004 01:46:47 -0000
+@@ -309,6 +309,8 @@
+ os.environ[varname]=string.join(self.settings[x])
+
+ self.run_local()
++ if self.settings["target"] in ["livecd-stage3"]:
++ self.setupfs()
+ if self.settings["target"] in ["stage1","stage2","stage3","livecd-stage3"]:
+ self.preclean()
+ if self.settings["target"] in ["livecd-stage3"]:
+@@ -426,7 +428,7 @@
+
+ class livecd_stage2_target(generic_stage_target):
+ def __init__(self,spec,addlargs):
+- self.required_values=["boot/kernel","livecd/runscript"]
++ self.required_values=["boot/kernel","livecd/archrunscript","livecd/runscript"]
+ if not addlargs.has_key("boot/kernel"):
+ raise CatalystError, "Required value boot/kernel not specified."
+ if type(addlargs["boot/kernel"]) == types.StringType:
+@@ -456,14 +458,14 @@
+ self.unbind()
+ raise CatalystError, "Couldn't copy kernel config: "+self.settings["boot/kernel/"+x+"/config"]
+ try:
+- cmd("/bin/bash "+self.settings["livecd/runscript"]+" run "+list_bashify(args),"runscript failed")
++ cmd("env ARCH_RUNSCRIPT="+self.settings["livecd/archrunscript"]+" "+self.settings["livecd/runscript"]+" kernbuild "+list_bashify(args),"runscript kernbuild failed")
+ except CatalystError:
+ self.unbind()
+ raise CatalystError,"livecd-stage2 build aborting due to error."
+
+ class livecd_stage3_target(generic_stage_target):
+ def __init__(self,spec,addlargs):
+- self.required_values=["boot/kernel","livecd/runscript"]
++ self.required_values=["boot/kernel","livecd/archrunscript","livecd/runscript"]
+ self.valid_values=self.required_values[:]
+ self.valid_values.extend(["livecd/cdtar","livecd/empty","livecd/rm","livecd/unmerge"])
+ generic_stage_target.__init__(self,spec,addlargs)
+@@ -472,6 +474,8 @@
+ raise CatalystError, "Cannot locate specified livecd/cdtar: "+self.settings["livecd/cdtar"]
+ if not os.path.exists(self.settings["livecd/runscript"]):
+ raise CatalystError, "Cannot locate specified livecd/runscript: "+self.settings["livecd/runscript"]
++ if not os.path.exists(self.settings["livecd/archrunscript"]):
++ raise CatalystError, "Cannot locate specified livecd/archrunscript: "+self.settings["livecd/archrunscript"]
+
+ def unmerge(self):
+ if self.settings["target"]=="livecd-stage3" and self.settings.has_key("livecd/unmerge"):
+@@ -488,17 +492,32 @@
+ def run_local(self):
+ pass
+
++ def setupfs(self):
++ try:
++ cmd("env ARCH_RUNSCRIPT="+self.settings["livecd/archrunscript"]+" "+self.settings["livecd/runscript"]+" setupfs","setupfs runscript failed.")
++ except:
++ self.unbind()
++ raise
++
+ def preclean(self):
+ try:
+- cmd("/bin/bash "+self.settings["livecd/runscript"]+" preclean","preclean runscript failed.")
++ cmd("env ARCH_RUNSCRIPT="+self.settings["livecd/archrunscript"]+" "+self.settings["livecd/runscript"]+" preclean","preclean runscript failed.")
+ except:
+ self.unbind()
+ raise
+
++# def clean(self):
++# try:
++# cmd("env ARCH_RUNSCRIPT="+self.settings["livecd/archrunscript"]+" "+self.settings["livecd/runscript"]+" clean","clean runscript failed.")
++# except:
++# self.unbind()
++# raise
++
+ def cdroot_setup(self):
+ if not os.path.exists(self.settings["cdroot_path"]):
+ os.makedirs(self.settings["cdroot_path"])
+- cmd("/bin/bash "+self.settings["livecd/runscript"]+" cdroot_setup","preclean runscript failed.")
++ cmd("env ARCH_RUNSCRIPT="+self.settings["livecd/archrunscript"]+" "+self.settings["livecd/runscript"]+" setup_bootloader","setup_bootloader runscript failed.")
++ cmd("env ARCH_RUNSCRIPT="+self.settings["livecd/archrunscript"]+" "+self.settings["livecd/runscript"]+" loop","loop runscript failed.")
+ print "livecd-stage3: complete!"
+
+ def register(foo):