summaryrefslogtreecommitdiffstats
path: root/debian/patches/grub-install-pvxen-paths.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/grub-install-pvxen-paths.patch')
-rw-r--r--debian/patches/grub-install-pvxen-paths.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/debian/patches/grub-install-pvxen-paths.patch b/debian/patches/grub-install-pvxen-paths.patch
new file mode 100644
index 0000000..88987a2
--- /dev/null
+++ b/debian/patches/grub-install-pvxen-paths.patch
@@ -0,0 +1,71 @@
+From 4e93755cd1c371ba856b375f453664fd07a67205 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ijc@hellion.org.uk>
+Date: Sat, 6 Sep 2014 12:20:12 +0100
+Subject: grub-install: Install PV Xen binaries into the upstream specified
+ path
+
+Upstream have defined a specification for where guests ought to place their
+xenpv grub binaries in order to facilitate chainloading from a stage 1 grub
+loaded from dom0.
+
+http://xenbits.xen.org/docs/unstable-staging/misc/x86-xenpv-bootloader.html
+
+The spec calls for installation into /boot/xen/pvboot-i386.elf or
+/boot/xen/pvboot-x86_64.elf.
+
+Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
+
+Bug-Debian: https://bugs.debian.org/762307
+Forwarded: http://lists.gnu.org/archive/html/grub-devel/2014-10/msg00041.html
+Last-Update: 2014-10-24
+
+Patch-Name: grub-install-pvxen-paths.patch
+
+---
+v2: Respect bootdir, create /boot/xen as needed.
+---
+ util/grub-install.c | 24 ++++++++++++++++++++++--
+ 1 file changed, 22 insertions(+), 2 deletions(-)
+
+diff --git a/util/grub-install.c b/util/grub-install.c
+index d02bd488a..2304cc5c4 100644
+--- a/util/grub-install.c
++++ b/util/grub-install.c
+@@ -2085,6 +2085,28 @@ main (int argc, char *argv[])
+ }
+ break;
+
++ case GRUB_INSTALL_PLATFORM_I386_XEN:
++ {
++ char *path = grub_util_path_concat (2, bootdir, "xen");
++ char *dst = grub_util_path_concat (2, path, "pvboot-i386.elf");
++ grub_install_mkdir_p (path);
++ grub_install_copy_file (imgfile, dst, 1);
++ free (dst);
++ free (path);
++ }
++ break;
++
++ case GRUB_INSTALL_PLATFORM_X86_64_XEN:
++ {
++ char *path = grub_util_path_concat (2, bootdir, "xen");
++ char *dst = grub_util_path_concat (2, path, "pvboot-x86_64.elf");
++ grub_install_mkdir_p (path);
++ grub_install_copy_file (imgfile, dst, 1);
++ free (dst);
++ free (path);
++ }
++ break;
++
+ case GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON:
+ case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS:
+ case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS:
+@@ -2094,8 +2116,6 @@ main (int argc, char *argv[])
+ case GRUB_INSTALL_PLATFORM_MIPSEL_ARC:
+ case GRUB_INSTALL_PLATFORM_ARM_UBOOT:
+ case GRUB_INSTALL_PLATFORM_I386_QEMU:
+- case GRUB_INSTALL_PLATFORM_I386_XEN:
+- case GRUB_INSTALL_PLATFORM_X86_64_XEN:
+ case GRUB_INSTALL_PLATFORM_I386_XEN_PVH:
+ grub_util_warn ("%s",
+ _("WARNING: no platform-specific install was performed"));