--- booty-0.80.4/bootloaderInfo.py.ia64-vmm 2007-07-18 14:42:07.000000000 -0400 +++ booty-0.80.4/bootloaderInfo.py 2007-07-18 16:09:44.000000000 -0400 @@ -21,6 +21,7 @@ import crypt import random import shutil import string +import re from lilo import LiloConfigFile import rhpl @@ -323,6 +324,11 @@ class bootloaderInfo: initrd = booty.makeInitrd (kernelTag, instRoot) + if version.endswith("xen0") or (version.endswith("xen") and not os.path.exists("/proc/xen")): + hvFile = "%sxen.gz-%s" % (self.kernelLocation, + re.sub(r'xen0?', '', version)) + sl.addEntry("vmm", hvFile) + sl.addEntry("label", label) if os.access (instRoot + initrd, os.R_OK): sl.addEntry("initrd", "%sinitrd%s.img" %(self.kernelLocation, @@ -341,8 +347,11 @@ class bootloaderInfo: append = "root=%s" %(realroot,) if len(append) > 0: - sl.addEntry('append', '"%s"' % (append,)) - + if sl.getEntry("vmm") and (" "+append+" ").find(" -- ") == -1: + sl.addEntry('append', '"-- %s"' %(append,)) + else: + sl.addEntry('append', '"%s"' %(append,)) + lilo.addImage (sl) for (label, longlabel, device) in chainList: @@ -806,20 +815,14 @@ class x86BootloaderInfo(bootloaderInfo): # hypervisor case sermap = { "ttyS0": "com1", "ttyS1": "com2", "ttyS2": "com3", "ttyS3": "com4" } + hvs = "" if self.serial and sermap.has_key(self.serialDevice) and \ self.serialOptions: - hvs = "%s=%s" %(sermap[self.serialDevice], + hvs = " %s=%s" %(sermap[self.serialDevice], self.serialOptions) - else: - hvs = "" - if version.endswith("xen0"): - hvFile = "%sxen.gz-%s %s" %(cfPath, - version.replace("xen0", ""), - hvs) - else: - hvFile = "%sxen.gz-%s %s" %(cfPath, - version.replace("xen", ""), - hvs) + hvFile = "%sxen.gz-%s%s" % (cfPath, + re.sub(r'xen0?', '', version), + hvs) f.write('\tkernel %s\n' %(hvFile,)) f.write('\tmodule %s ro%s' %(kernelFile, realroot)) if self.args.get():