Hello community, here is the log from the commit of package xen checked in at Tue Nov 28 10:02:18 CET 2006. -------- --- arch/i386/xen/xen.changes 2006-11-22 23:52:49.000000000 +0100 +++ /mounts/work_src_done/STABLE/STABLE/xen/xen.changes 2006-11-28 02:08:53.000000000 +0100 @@ -1,0 +2,6 @@ +Mon Nov 27 18:07:41 MST 2006 - ccoffing@novell.com + +- Fix how bootloader is called by the xend during restarts. + (#223850) + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xen.spec ++++++ --- /var/tmp/diff_new_pack.bAh9sB/_old 2006-11-28 10:02:02.000000000 +0100 +++ /var/tmp/diff_new_pack.bAh9sB/_new 2006-11-28 10:02:02.000000000 +0100 @@ -18,7 +18,7 @@ %define with_pvfb 0 %define xen_build_dir xen-3.0.3-testing Version: 3.0.3_11774 -Release: 16 +Release: 18 License: GNU General Public License (GPL) Group: System/Kernel Autoreqprov: on @@ -804,6 +804,9 @@ %{insserv_cleanup} %changelog -n xen +* Mon Nov 27 2006 - ccoffing@novell.com +- Fix how bootloader is called by the xend during restarts. + (#223850) * Wed Nov 22 2006 - ccoffing@novell.com - Include Jan's patch, which accounts for selectors in protected mode with a non-zero base. Fixes some HVM crashes. (#214568) ++++++ xen-domUloader.diff ++++++ --- /var/tmp/diff_new_pack.bAh9sB/_old 2006-11-28 10:02:03.000000000 +0100 +++ /var/tmp/diff_new_pack.bAh9sB/_new 2006-11-28 10:02:03.000000000 +0100 @@ -11,7 +11,14 @@ use="Arguments to pass to boot loader") gopts.var('bootentry', val='NAME', -@@ -656,9 +656,12 @@ def run_bootloader(vals, config_image): +@@ -649,16 +649,17 @@ def run_bootloader(vals, config_image): + err("Bootloader isn't executable") + if len(vals.disk) < 1: + err("No disks configured and boot loader requested") +- (uname, dev, mode, backend) = vals.disk[0] +- file = blkif.blkdev_uname_to_file(uname) + + if vals.bootentry: warn("The bootentry option is deprecated. Use bootargs and pass " "--entry= directly.") vals.bootargs = "--entry=%s" %(vals.bootentry,) @@ -19,44 +26,43 @@ + vals.bootargs += " --root=%s" % vals.root.split()[0] + vals.bootargs += " --disks=\"%s\"" % str(vals.disk) - return bootloader(vals.bootloader, file, not vals.console_autoconnect, +- return bootloader(vals.bootloader, file, not vals.console_autoconnect, - vals.bootargs, config_image) ++ return bootloader(vals.bootloader, not vals.console_autoconnect, + vals.dryrun, vals.bootargs, config_image) def make_config(vals): """Create the domain configuration. -@@ -674,7 +677,7 @@ def make_config(vals): - - map(add_conf, ['name', 'memory', 'maxmem', 'shadow_memory', - 'restart', 'on_poweroff', 'on_reboot', 'on_crash', -- 'vcpus', 'features']) -+ 'vcpus', 'features', 'root']) - - if vals.uuid is not None: - config.append(['uuid', vals.uuid]) -@@ -692,6 +695,8 @@ def make_config(vals): - config.append(['backend', ['tpmif']]) - if vals.localtime: - config.append(['localtime', vals.localtime]) -+ if vals.root: -+ config.append(['root', vals.root]) - - config_image = configure_image(vals) - if vals.bootloader: Index: xen-3.0.3-testing/tools/python/xen/xend/XendBootloader.py =================================================================== --- xen-3.0.3-testing.orig/tools/python/xen/xend/XendBootloader.py +++ xen-3.0.3-testing/tools/python/xen/xend/XendBootloader.py -@@ -20,7 +20,7 @@ import shlex +@@ -20,11 +20,9 @@ import shlex from XendLogging import log from XendError import VmError -def bootloader(blexec, disk, quiet = 0, blargs = None, imgcfg = None): -+def bootloader(blexec, disk, quiet = 0, dryrun = 0, blargs = None, imgcfg = None): - """Run the boot loader executable on the given disk and return a - config image. +- """Run the boot loader executable on the given disk and return a +- config image. ++def bootloader(blexec, quiet = 0, dryrun = 0, blargs = None, imgcfg = None): ++ """Run the boot loader executable and return a config image. @param blexec Binary to use as the boot loader -@@ -48,6 +48,8 @@ def bootloader(blexec, disk, quiet = 0, +- @param disk Disk to run the boot loader on. + @param quiet Run in non-interactive mode, just booting the default. + @param blargs Arguments to pass to the bootloader.""" + +@@ -32,10 +30,6 @@ def bootloader(blexec, disk, quiet = 0, + msg = "Bootloader isn't executable" + log.error(msg) + raise VmError(msg) +- if not os.access(disk, os.R_OK): +- msg = "Disk isn't accessible" +- log.error(msg) +- raise VmError(msg) + + while True: + fifo = "/var/lib/xen/xenbl.%s" %(random.randint(0, 32000),) +@@ -48,10 +42,11 @@ def bootloader(blexec, disk, quiet = 0, args = [ blexec ] if quiet: args.append("-q") @@ -65,7 +71,11 @@ args.append("--output=%s" %(fifo,)) if blargs is not None: args.extend(shlex.split(blargs)) -@@ -68,6 +70,7 @@ def bootloader(blexec, disk, quiet = 0, +- args.append(disk) + + try: + os.execvp(args[0], args) +@@ -68,6 +63,7 @@ def bootloader(blexec, disk, quiet = 0, continue break ret = "" @@ -77,34 +87,21 @@ =================================================================== --- xen-3.0.3-testing.orig/tools/python/xen/xend/XendDomainInfo.py +++ xen-3.0.3-testing/tools/python/xen/xend/XendDomainInfo.py -@@ -137,6 +137,7 @@ ROUNDTRIPPING_CONFIG_ENTRIES = [ - ('maxmem', int), - ('bootloader', str), - ('bootloader_args', str), -+ ('root', str), - ('features', str), - ('localtime', int), - ] -@@ -580,6 +581,7 @@ class XendDomainInfo: - defaultInfo('maxmem', lambda: 0) - defaultInfo('bootloader', lambda: None) - defaultInfo('bootloader_args', lambda: None) -+ defaultInfo('root', lambda: None) - defaultInfo('backend', lambda: []) - defaultInfo('device', lambda: []) - defaultInfo('image', lambda: None) -@@ -1744,6 +1746,7 @@ class XendDomainInfo: +@@ -1743,18 +1743,27 @@ class XendDomainInfo: + if not self.info['bootloader']: return blcfg = None - # FIXME: this assumes that we want to use the first disk device +- # FIXME: this assumes that we want to use the first disk device ++ """This code is currently unneeded, but will be used ++ again when boot device selection is more dynamic. + vbds = [] for (n,c) in self.info['device']: if not n or not c or not(n in ["vbd", "tap"]): continue -@@ -1751,10 +1754,17 @@ class XendDomainInfo: + disk = sxp.child_value(c, "uname") if disk is None: continue - fn = blkdev_uname_to_file(disk) +- fn = blkdev_uname_to_file(disk) - blcfg = bootloader(self.info['bootloader'], fn, 1, - self.info['bootloader_args'], - self.info['image']) @@ -118,8 +115,9 @@ + " --disks=\"%s\"" % str(vbds) + if self.info['root']: + bootargs += " --root=%s" % self.info['root'].split()[0] -+ blcfg = bootloader(self.info['bootloader'], fn, 1, 0, -+ bootargs, self.info['image']) ++ """ ++ blcfg = bootloader(self.info['bootloader'], 1, 0, ++ self.info['bootloader_args'], self.info['image']) if blcfg is None: msg = "Had a bootloader specified, but can't find disk" log.error(msg) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@suse.de