I just tripped over this issue with pygrub. The code is written such
that saying bootloader="pygrub" should cause the correct path to be
used, the attached patch simply fixes this path to be correct.

I don't have an HVM capable test machine handy (so I can't actually
confirm this works) but I think changing the default "kernel" for an HVM
guest to point to the correct path the hvmloader makes sense and at
least partially addresses the concern in the bug report. A more complete
change could be made such that the string "hvmloader" will default to
the correct path as with pygrub, but that seems like an upstream thing. 

Ian.

-- 
Ian Campbell

Your motives for doing whatever good deed you may have in mind will be
misinterpreted by somebody.
Index: debian/changelog
===================================================================
--- debian/changelog	(revision 604)
+++ debian/changelog	(working copy)
@@ -1,3 +1,10 @@
+xen-3 (3.2.1-3) UNRELEASED; urgency=low
+
+  [ Ian Campbell ]
+  * Correct default path to pygrub and hvmloader. (closes: #481105)
+
+ -- Ian Campbell <[EMAIL PROTECTED]>  Sun, 20 Jul 2008 12:55:22 +0100
+
 xen-3 (3.2.1-2) unstable; urgency=low
 
   * Use e2fslibs based ext2 support for pygrub. (closes: #476366)
Index: debian/patches/tools-prefix.diff
===================================================================
--- debian/patches/tools-prefix.diff	(revision 604)
+++ debian/patches/tools-prefix.diff	(working copy)
@@ -250,3 +250,15 @@
  	ln -sf libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)/libxenguest.so.$(MAJOR)
  	ln -sf libxenguest.so.$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/libxenguest.so
  	$(INSTALL_DATA) xenguest.h $(DESTDIR)/usr/include
+--- xen-3.orig/tools/python/xen/xend/image.py.orig	2008-07-20 13:02:31.000000000 +0100
++++ xen-3/tools/python/xen/xend/image.py	2008-07-20 13:02:56.000000000 +0100
+@@ -423,7 +423,8 @@
+         ImageHandler.configure(self, vmConfig)
+ 
+         if not self.kernel:
+-            self.kernel = '/usr/lib/xen/boot/hvmloader'
++            import xen.util.auxbin
++            self.kernel = os.path.join(xen.util.auxbin.root(),'boot','hvmloader')
+ 
+         info = xc.xeninfo()
+         if 'hvm' not in info['xen_caps']:
Index: debian/patches/tools-pygrub-prefix.diff
===================================================================
--- debian/patches/tools-pygrub-prefix.diff	(revision 604)
+++ debian/patches/tools-pygrub-prefix.diff	(working copy)
@@ -27,3 +27,21 @@
  
  import fsimage
  import grub.GrubConf
+--- xen-3.orig/tools/python/xen/xend/osdep.py	2008-05-12 12:01:59.000000000 +0100
++++ xen-3/tools/python/xen/xend/osdep.py	2008-07-20 12:53:18.000000000 +0100
+@@ -18,6 +18,7 @@
+ # Use is subject to license terms.
+ 
+ import os
++import xen.util.auxbin
+ 
+ _scripts_dir = {
+     "Linux": "/etc/xen/scripts",
+@@ -92,6 +93,6 @@
+ 
+ scripts_dir = _get(_scripts_dir, "/etc/xen/scripts")
+ xend_autorestart = _get(_xend_autorestart)
+-pygrub_path = _get(_pygrub_path, "/usr/bin/pygrub")
++pygrub_path = _get(_pygrub_path, xen.util.auxbin.pathTo("pygrub"))
+ vif_script = _get(_vif_script, "vif-bridge")
+ lookup_balloon_stat = _get(_balloon_stat, _linux_balloon_stat)

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to