Your message dated Thu, 20 Nov 2014 18:57:29 +0000 with message-id <20141120185729.gs6...@lupin.home.powdarrmonkey.net> and subject line Re: Bug#770039: unblock: grub2/2.02~beta2-16 has caused the Debian Bug report #770039, regarding unblock: grub2/2.02~beta2-16 to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact ow...@bugs.debian.org immediately.) -- 770039: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770039 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems
--- Begin Message ---Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock grub2 2.02~beta2-16 finishes off Xen host/guest integration. GRUB has had most of this for a while, but the packaging work to make it possible to install grub-xen-host in the host, grub-xen in the guest, and then automatically boot GRUB in the guest wasn't present. I know this is a bit more than your standard unblock request, and indeed we're still waiting for this to pass through NEW. But we're anticipating this being *really* useful for administrators of Xen hosting setups - it beats the messes that were PV-GRUB Legacy and PyGrub, or even keeping track of kernel versions by hand - and it would be fantastic to have this in jessie. Here's a tidied-up version of the relevant git diff. diff --git a/debian/changelog b/debian/changelog index a75c97b..40db9e9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +grub2 (2.02~beta2-16) unstable; urgency=medium + + [ Ian Campbell ] + * Provide prebuilt grub-xen binaries for host use in a new grub-xen-host + package. + * Build/Install binaries into /boot/xen when installing grub-xen. + + -- Ian Campbell <i...@debian.org> Thu, 06 Nov 2014 13:32:01 +0000 + grub2 (2.02~beta2-15) unstable; urgency=medium * Disable nvram installation again on chrp_ibm machines that are emulated diff --git a/debian/control b/debian/control index 5563214..dedd1c5 100644 --- a/debian/control +++ b/debian/control @@ -634,6 +634,23 @@ Description: GRand Unified Bootloader, version 2 (Xen version) This package contains a version of GRUB that has been built for use with the Xen hypervisor (i.e. PV-GRUB). +Package: grub-xen-host +Architecture: i386 amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, grub-xen-bin (= ${binary:Version}) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (Xen host version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub. + . + This package arranges for GRUB binary images which can be used to boot a Xen + guest (i.e. PV-GRUB) to be present in the control domain filesystem. + Package: grub-yeeloong-bin Architecture: any-mipsel Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common (= ${binary:Version}) diff --git a/debian/grub-xen-host.install b/debian/grub-xen-host.install new file mode 100644 index 0000000..43c7506 --- /dev/null +++ b/debian/grub-xen-host.install @@ -0,0 +1,2 @@ +obj/grub-xen-host-i386/grub-i386-xen.bin usr/lib/grub-xen +obj/grub-xen-host-amd64/grub-x86_64-xen.bin usr/lib/grub-xen diff --git a/debian/grub-xen-host.lintian-overrides b/debian/grub-xen-host.lintian-overrides new file mode 100644 index 0000000..4f482a1 --- /dev/null +++ b/debian/grub-xen-host.lintian-overrides @@ -0,0 +1,2 @@ +grub-xen-host: statically-linked-binary usr/lib/grub-xen/grub-i386-xen.bin +grub-xen-host: statically-linked-binary usr/lib/grub-xen/grub-x86_64-xen.bin diff --git a/debian/grub-xen-host_grub-bootstrap.cfg b/debian/grub-xen-host_grub-bootstrap.cfg new file mode 100644 index 0000000..e988314 --- /dev/null +++ b/debian/grub-xen-host_grub-bootstrap.cfg @@ -0,0 +1 @@ +normal (memdisk)/grub.cfg diff --git a/debian/grub-xen-host_grub.cfg b/debian/grub-xen-host_grub.cfg new file mode 100644 index 0000000..319c3b3 --- /dev/null +++ b/debian/grub-xen-host_grub.cfg @@ -0,0 +1,24 @@ +# First search for a suitable grub to chainload +if search -s -f /boot/xen/pvboot-@@PVBOOT_ARCH@@.elf ; then + echo "Chainloading (${root})/boot/xen/pvboot-@@PVBOOT_ARCH@@.elf" + multiboot /boot/xen/pvboot-@@PVBOOT_ARCH@@.elf" + boot +fi + +if search -s -f /xen/pvboot-@@PVBOOT_ARCH@@.elf ; then + echo "Chainloading (${root})/xen/pvboot-@@PVBOOT_ARCH@@.elf" + multiboot /xen/pvboot-@@PVBOOT_ARCH@@.elf" + boot +fi + +# Second try looking for grub.cfg + +if search -s -f /boot/grub/grub.cfg ; then + echo "Reading (${root})/boot/grub/grub.cfg" + configfile /boot/grub/grub.cfg +fi + +if search -s -f /grub/grub.cfg ; then + echo "Reading (${root})/grub/grub.cfg" + configfile /grub/grub.cfg +fi diff --git a/debian/patches/grub-install-pvxen-paths.patch b/debian/patches/grub-install-pvxen-paths.patch new file mode 100644 index 0000000..6fdeb64 --- /dev/null +++ b/debian/patches/grub-install-pvxen-paths.patch @@ -0,0 +1,71 @@ +From c211ee1c228bc978ffc4b399155ebfeb7524d2e0 Mon Sep 17 00:00:00 2001 +From: Ian Campbell <i...@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 <i...@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 70f514c..7a7734e 100644 +--- a/util/grub-install.c ++++ b/util/grub-install.c +@@ -1979,6 +1979,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: +@@ -1987,8 +2009,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: + grub_util_warn ("%s", + _("WARNING: no platform-specific install was performed")); + break; diff --git a/debian/patches/series b/debian/patches/series index b68e230..e675322 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -60,3 +60,4 @@ platform-none.patch mips-abiflags.patch ieee1275-clear-reset.patch ppc64el-disable-vsx.patch +grub-install-pvxen-paths.patch diff --git a/debian/postinst.in b/debian/postinst.in index 94c200c..30e6947 100644 --- a/debian/postinst.in +++ b/debian/postinst.in @@ -722,6 +722,17 @@ case "$1" in grub-yeeloong) grub-install --target=mipsel-loongson ;; + + grub-xen) + # Install for x86_64 regardless of arch, since a 32-bit userspace can still boot with a 64-bit kernel. + mkdir -p /boot/xen + grub-install --target=x86_64-xen + case $(dpkg --print-architecture) in + i386) + grub-install --target=i386-xen + ;; + esac + ;; esac # If grub.cfg has been generated, update it. diff --git a/debian/rules b/debian/rules index f6daa0c..5264310 100755 --- a/debian/rules +++ b/debian/rules @@ -36,7 +36,11 @@ substvars = AUTOGEN_DEB_FILES = config templates preinst postinst postrm dirs install links maintscript BUILD_PACKAGES := $(strip $(shell dh_listpackages)) +# REAL_PACKAGES build an actual grub variant (and therefore have both configure +# and build stages). EXTRA_PACKAGES do not build grub but may depend on a +# REAL_PACKAGE (and therefore only have a build stage) REAL_PACKAGES = grub-common grub-emu grub-pc grub-coreboot grub-efi-ia32 grub-efi-amd64 grub-efi-ia64 grub-efi-arm grub-efi-arm64 grub-ieee1275 grub-firmware-qemu grub-uboot grub-xen grub-yeeloong +EXTRA_PACKAGES = grub-rescue-pc grub-xen-host ifneq (,$(filter i386 amd64,$(DEB_HOST_ARCH_CPU))) COMMON_PLATFORM := pc @@ -109,7 +113,7 @@ override_dh_auto_build: $(patsubst %,build/%,$(BUILD_PACKAGES)) override_dh_auto_install: $(patsubst %,install/%,$(BUILD_PACKAGES)) $(patsubst %,configure/%,$(REAL_PACKAGES)) :: configure/% : debian/stamps/configure-% -$(patsubst %,build/%,$(REAL_PACKAGES) grub-rescue-pc) :: build/% : debian/stamps/build-% +$(patsubst %,build/%,$(REAL_PACKAGES) $(EXTRA_PACKAGES)) :: build/% : debian/stamps/build-% debian/stamps/configure-%: package = $(subst debian/stamps/configure-,,$@) debian/stamps/configure-%: export DH_OPTIONS = -p$(package) -Bobj/$(package) @@ -176,6 +180,32 @@ debian/stamps/build-grub-none debian/stamps/build-grub-efi-ia32 debian/stamps/bu dh_auto_build touch $@ +debian/stamps/build-grub-xen-host-i386: PVBOOT_ARCH := i386 +debian/stamps/build-grub-xen-host-amd64: PVBOOT_ARCH := x86_64 +debian/stamps/build-grub-xen-host-%: debian/stamps/build-grub-xen-% + target=$(subst debian/stamps/build-grub-xen-host-,,$@) ; \ + obj_dir=$(CURDIR)/obj/grub-xen-$${target} ; \ + grub_dir=`mktemp -d` ; \ + grub_memdisk=`mktemp` ; \ + trap "rm -rf $${grub_dir} $${grub_memdisk}" EXIT HUP INT QUIT TERM ; \ + mkdir -p $${grub_dir}/boot/grub ; \ + mkdir -p $(CURDIR)/obj/$(package) ; \ + sed -e "s/@@PVBOOT_ARCH@@/$(PVBOOT_ARCH)/g" \ + <debian/grub-xen-host_grub.cfg \ + >$${grub_dir}/grub.cfg ; \ + tar -cf - -C $${grub_dir} grub.cfg > $${grub_memdisk} ; \ + $${obj_dir}/grub-mkimage \ + -O $(PVBOOT_ARCH)-xen \ + -c $(CURDIR)/debian/grub-xen-host_grub-bootstrap.cfg \ + -d $${obj_dir}/grub-core \ + $${obj_dir}/grub-core/*.mod \ + -m $${grub_memdisk} \ + -o $(CURDIR)/obj/$(package)/grub-$(PVBOOT_ARCH)-xen.bin + touch $@ + +debian/stamps/build-grub-xen-host: debian/stamps/build-grub-xen-host-i386 debian/stamps/build-grub-xen-host-amd64 + touch $@ + debian/stamps/build-grub-pc: debian/stamps/configure-grub-pc dh_auto_build ifeq ($(with_check), yes) @@ -371,7 +401,7 @@ ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes)) endif override_dh_install: - dh_install -pgrub2 -pgrub-linuxbios -pgrub-efi -pgrub-rescue-pc -pgrub-firmware-qemu + dh_install -pgrub2 -pgrub-linuxbios -pgrub-efi -pgrub-rescue-pc -pgrub-firmware-qemu -pgrub-xen-host dh_install -pgrub-common -pgrub2-common -pgrub-theme-starfield -pgrub-mount-udeb --sourcedir=debian/tmp-grub-$(COMMON_PLATFORM) rm -f debian/grub2-common/usr/share/info/dir* rm -f debian/grub-theme-starfield/usr/share/grub/themes/starfield/COPYING.CC-BY-SA-3.0 @@ -400,8 +430,8 @@ endif endif override_dh_installdocs: - dh_installdocs -pgrub-common -pgrub-rescue-pc -pgrub-firmware-qemu -A AUTHORS NEWS README THANKS TODO - dh_installdocs -Ngrub-common -Ngrub-rescue-pc -Ngrub-firmware-qemu --link-doc=grub-common + dh_installdocs -pgrub-common -pgrub-rescue-pc -pgrub-firmware-qemu -pgrub-xen-host -A AUTHORS NEWS README THANKS TODO + dh_installdocs -Ngrub-common -Ngrub-rescue-pc -Ngrub-firmware-qemu -Ngrub-xen-host --link-doc=grub-common ifeq ($(FLICKER_FREE_BOOT),yes) override_dh_installinit: unblock grub2/2.02~beta2-16 Thanks, -- Colin Watson [cjwat...@debian.org]
--- End Message ---
--- Begin Message ---On Tue, Nov 18, 2014 at 02:47:22PM +0000, Colin Watson wrote: > grub2 2.02~beta2-16 finishes off Xen host/guest integration. GRUB has > had most of this for a while, but the packaging work to make it possible > to install grub-xen-host in the host, grub-xen in the guest, and then > automatically boot GRUB in the guest wasn't present. > > I know this is a bit more than your standard unblock request, and indeed > we're still waiting for this to pass through NEW. But we're > anticipating this being *really* useful for administrators of Xen > hosting setups - it beats the messes that were PV-GRUB Legacy and > PyGrub, or even keeping track of kernel versions by hand - and it would > be fantastic to have this in jessie. I nudged ftp masters, and it's now in sid (thanks, ftp!) Unblocked, but aged to 10 days to catch bugs. -- Jonathan Wiltshire j...@debian.org Debian Developer http://people.debian.org/~jmw 4096R: 0xD3524C51 / 0A55 B7C5 1223 3942 86EC 74C3 5394 479D D352 4C51signature.asc
Description: Digital signature
--- End Message ---