Your message dated Sat, 28 Jun 2008 09:47:08 +0000
with message-id <[EMAIL PROTECTED]>
and subject line Bug#474509: fixed in xen-3 3.2.1-2
has caused the Debian Bug report #474509,
regarding xen: Please enable support for loading bzImages with v2.08 of the x86 
bootloader protocol
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 [EMAIL PROTECTED]
immediately.)


-- 
474509: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=474509
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: xen
Severity: wishlist
Tags: patch

This wishlist bug is the Xen domain builder counterpart to #473645.

Please could you consider applying this changeset to the Xen packages
http://xenbits.xensource.com/xen-unstable.hg?rev/db943e8d1051
The patch drops cleanly into trunk/xen-3/debian/patches.

I had to make a skanky hack to touch the new file before applying
the quilt series otherwise the file in .pc ends up with permissions
0000 (due to deliberate patch --backup behaviour) and the cp fails:
        patching file tools/libxc/xc_dom_elfloader.c

        Now at patch tools-x86-bzImage-domain-builder.diff
        touch debian/stamps/source
        cp -a debian/build/source debian/build/build-hypervisor_i386_i386
        cp: cannot open 
`debian/build/source/.pc/tools-x86-bzImage-domain-builder.diff/tools/libxc/xc_dom_bzimageloader.c'
 for reading: Permission denied
        make[2]: *** [debian/stamps/setup-hypervisor_i386_i386] Error 1
        make[2]: Leaving directory 
`/home/ijc/development/debian/pkg-xen/trunk/xen-3-3.2.0'
        make[1]: *** [setup_i386_none_i386] Error 2
        make[1]: Leaving directory 
`/home/ijc/development/debian/pkg-xen/trunk/xen-3-3.2.0'
        make: *** [debian/stamps/setup-base] Error 2
Is this an issue with a known workaround?

This will allow suitably up-to-date or patched kernels to be booted
directly from the bzImage. This includes any kernel package built with
the patches from #473645.

Cheers,
Ian.


-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.24-1-amd64 (SMP w/1 CPU core)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Index: xen-3/debian/patches/series
===================================================================
--- xen-3/debian/patches/series (revision 545)
+++ xen-3/debian/patches/series (working copy)
@@ -15,3 +15,4 @@
 tools-misc-xend-race.diff
 doc-remove-unused.diff
 CVE-2008-0928
+tools-x86-bzImage-domain-builder.diff
Index: xen-3/debian/patches/tools-x86-bzImage-domain-builder.diff
===================================================================
--- xen-3/debian/patches/tools-x86-bzImage-domain-builder.diff  (revision 0)
+++ xen-3/debian/patches/tools-x86-bzImage-domain-builder.diff  (revision 0)
@@ -0,0 +1,209 @@
+# HG changeset patch
+# User Keir Fraser <[EMAIL PROTECTED]>
+# Date 1207040973 -3600
+# Node ID db943e8d10514445763123bb56b383e795e9b518
+# Parent  ff32e4cd61af0b14e402124ea1b2c26842c680b8
+x86: Support loading Linux bzImage v2.08 and up.
+
+The latest -mm kernel (2.6.25-rc3-mm1) contains v2.08 of the Linux
+bzImage format which embeds an ELF file in place of the raw payload
+allowing it to be extracted and used by the Xen domain builder.
+
+It is expected that this functionality will be put forward for 2.6.26.
+
+Signed-off-by : Ian Campbell <[EMAIL PROTECTED]>
+
+diff -r ff32e4cd61af -r db943e8d1051 tools/libxc/Makefile
+--- a/tools/libxc/Makefile     Tue Apr 01 10:08:03 2008 +0100
++++ b/tools/libxc/Makefile     Tue Apr 01 10:09:33 2008 +0100
+@@ -46,10 +46,11 @@ GUEST_SRCS-y += libelf-dominfo.c libelf-
+ GUEST_SRCS-y += libelf-dominfo.c libelf-relocate.c
+ 
+ # new domain builder
+-GUEST_SRCS-y += xc_dom_core.c xc_dom_boot.c
+-GUEST_SRCS-y += xc_dom_elfloader.c
+-GUEST_SRCS-y += xc_dom_binloader.c
+-GUEST_SRCS-y += xc_dom_compat_linux.c
++GUEST_SRCS-y                 += xc_dom_core.c xc_dom_boot.c
++GUEST_SRCS-y                 += xc_dom_elfloader.c
++GUEST_SRCS-$(CONFIG_X86)     += xc_dom_bzimageloader.c
++GUEST_SRCS-y                 += xc_dom_binloader.c
++GUEST_SRCS-y                 += xc_dom_compat_linux.c
+ 
+ GUEST_SRCS-$(CONFIG_X86)     += xc_dom_x86.c
+ GUEST_SRCS-$(CONFIG_IA64)    += xc_dom_ia64.c
+diff -r ff32e4cd61af -r db943e8d1051 tools/libxc/xc_dom_bzimageloader.c
+--- /dev/null  Thu Jan 01 00:00:00 1970 +0000
++++ b/tools/libxc/xc_dom_bzimageloader.c       Tue Apr 01 10:09:33 2008 +0100
+@@ -0,0 +1,159 @@
++/*
++ * Xen domain builder -- bzImage bits
++ *
++ * Parse and load bzImage kernel images.
++ *
++ * This relies on version 2.08 of the boot protocol, which contains an
++ * ELF file embedded in the bzImage.  The loader extracts this ELF
++ * image and passes it off to the standard ELF loader.
++ *
++ * This code is licenced under the GPL.
++ * written 2006 by Gerd Hoffmann <[EMAIL PROTECTED]>.
++ * written 2007 by Jeremy Fitzhardinge <[EMAIL PROTECTED]>
++ * written 2008 by Ian Campbell <[EMAIL PROTECTED]>
++ *
++ */
++#include <stdio.h>
++#include <stdlib.h>
++#include <inttypes.h>
++
++#include "xg_private.h"
++#include "xc_dom.h"
++
++struct setup_header {
++      uint8_t         _pad0[0x1f1];           /* skip uninteresting stuff */
++      uint8_t         setup_sects;
++      uint16_t        root_flags;
++      uint32_t        syssize;
++      uint16_t        ram_size;
++      uint16_t        vid_mode;
++      uint16_t        root_dev;
++      uint16_t        boot_flag;
++      uint16_t        jump;
++      uint32_t        header;
++#define HDR_MAGIC             "HdrS"
++#define HDR_MAGIC_SZ  4
++      uint16_t        version;
++#define VERSION(h,l)  (((h)<<8) | (l))
++      uint32_t        realmode_swtch;
++      uint16_t        start_sys;
++      uint16_t        kernel_version;
++      uint8_t         type_of_loader;
++      uint8_t         loadflags;
++      uint16_t        setup_move_size;
++      uint32_t        code32_start;
++      uint32_t        ramdisk_image;
++      uint32_t        ramdisk_size;
++      uint32_t        bootsect_kludge;
++      uint16_t        heap_end_ptr;
++      uint16_t        _pad1;
++      uint32_t        cmd_line_ptr;
++      uint32_t        initrd_addr_max;
++      uint32_t        kernel_alignment;
++      uint8_t         relocatable_kernel;
++      uint8_t         _pad2[3];
++      uint32_t        cmdline_size;
++      uint32_t        hardware_subarch;
++      uint64_t        hardware_subarch_data;
++      uint32_t        payload_offset;
++      uint32_t        payload_length;
++} __attribute__((packed));
++
++extern struct xc_dom_loader elf_loader;
++
++static unsigned int payload_offset(struct setup_header *hdr)
++{
++    unsigned int off;
++
++    off = (hdr->setup_sects + 1) * 512;
++    off += hdr->payload_offset;
++    return off;
++}
++
++static int check_bzimage_kernel(struct xc_dom_image *dom, int verbose)
++{
++    struct setup_header *hdr;
++
++    if ( dom->kernel_blob == NULL )
++    {
++        if ( verbose )
++            xc_dom_panic(XC_INTERNAL_ERROR, "%s: no kernel image loaded\n",
++                         __FUNCTION__);
++        return -EINVAL;
++    }
++    if ( dom->kernel_size < sizeof(struct setup_header) )
++    {
++        if ( verbose )
++            xc_dom_panic(XC_INTERNAL_ERROR, "%s: kernel image too small\n",
++                         __FUNCTION__);
++        return -EINVAL;
++    }
++
++    hdr = dom->kernel_blob;
++
++    if ( memcmp(&hdr->header, HDR_MAGIC, HDR_MAGIC_SZ) != 0 )
++    {
++        if ( verbose )
++            xc_dom_panic(XC_INVALID_KERNEL, "%s: kernel is not a bzImage\n",
++                         __FUNCTION__);
++        return -EINVAL;
++    }
++
++    if ( hdr->version < VERSION(2,8) )
++    {
++        if ( verbose )
++            xc_dom_panic(XC_INVALID_KERNEL, "%s: boot protocol too old 
(%04x)\n",
++                         __FUNCTION__, hdr->version);
++        return -EINVAL;
++    }
++
++    dom->kernel_blob = dom->kernel_blob + payload_offset(hdr);
++    dom->kernel_size = hdr->payload_length;
++
++    if ( xc_dom_try_gunzip(dom, &dom->kernel_blob, &dom->kernel_size) == -1 )
++    {
++        if ( verbose )
++            xc_dom_panic(XC_INVALID_KERNEL, "%s: unable to decompress 
kernel\n",
++                         __FUNCTION__);
++        return -EINVAL;
++    }
++
++    return elf_loader.probe(dom);
++}
++
++static int xc_dom_probe_bzimage_kernel(struct xc_dom_image *dom)
++{
++    return check_bzimage_kernel(dom, 0);
++}
++
++static int xc_dom_parse_bzimage_kernel(struct xc_dom_image *dom)
++{
++    return elf_loader.parser(dom);
++}
++
++static int xc_dom_load_bzimage_kernel(struct xc_dom_image *dom)
++{
++    return elf_loader.loader(dom);
++}
++
++static struct xc_dom_loader bzimage_loader = {
++    .name = "Linux bzImage",
++    .probe = xc_dom_probe_bzimage_kernel,
++    .parser = xc_dom_parse_bzimage_kernel,
++    .loader = xc_dom_load_bzimage_kernel,
++};
++
++static void __init register_loader(void)
++{
++    xc_dom_register_loader(&bzimage_loader);
++}
++
++/*
++ * Local variables:
++ * mode: C
++ * c-set-style: "BSD"
++ * c-basic-offset: 4
++ * tab-width: 4
++ * indent-tabs-mode: nil
++ * End:
++ */
+diff -r ff32e4cd61af -r db943e8d1051 tools/libxc/xc_dom_elfloader.c
+--- a/tools/libxc/xc_dom_elfloader.c   Tue Apr 01 10:08:03 2008 +0100
++++ b/tools/libxc/xc_dom_elfloader.c   Tue Apr 01 10:09:33 2008 +0100
+@@ -281,7 +281,7 @@ static int xc_dom_load_elf_kernel(struct
+ 
+ /* ------------------------------------------------------------------------ */
+ 
+-static struct xc_dom_loader elf_loader = {
++struct xc_dom_loader elf_loader = {
+     .name = "ELF-generic",
+     .probe = xc_dom_probe_elf_kernel,
+     .parser = xc_dom_parse_elf_kernel,
Index: xen-3/debian/rules.real
===================================================================
--- xen-3/debian/rules.real     (revision 545)
+++ xen-3/debian/rules.real     (working copy)
@@ -31,6 +31,8 @@
        @rm -rf $(DIR)
        mkdir $(DIR)
        cp -a $(srcfiles) $(DIR)
+       # Workaround for quite misbehaviour WRT introducing new files (perms == 
0000 on the copy in .pc)
+       touch $(DIR)/tools/libxc/xc_dom_bzimageloader.c
        cd $(DIR); QUILT_PATCHES=$(CURDIR)/debian/patches quilt --quiltrc 
/dev/null push -a || test $$? = 2
        touch $@
 

--- End Message ---
--- Begin Message ---
Source: xen-3
Source-Version: 3.2.1-2

We believe that the bug you reported is fixed in the latest version of
xen-3, which is due to be installed in the Debian FTP archive:

libxen-dev_3.2.1-2_amd64.deb
  to pool/main/x/xen-3/libxen-dev_3.2.1-2_amd64.deb
libxenstore3.0_3.2.1-2_amd64.deb
  to pool/main/x/xen-3/libxenstore3.0_3.2.1-2_amd64.deb
xen-3_3.2.1-2.diff.gz
  to pool/main/x/xen-3/xen-3_3.2.1-2.diff.gz
xen-3_3.2.1-2.dsc
  to pool/main/x/xen-3/xen-3_3.2.1-2.dsc
xen-docs-3.2_3.2.1-2_all.deb
  to pool/main/x/xen-3/xen-docs-3.2_3.2.1-2_all.deb
xen-hypervisor-3.2-1-amd64_3.2.1-2_amd64.deb
  to pool/main/x/xen-3/xen-hypervisor-3.2-1-amd64_3.2.1-2_amd64.deb
xen-utils-3.2-1_3.2.1-2_amd64.deb
  to pool/main/x/xen-3/xen-utils-3.2-1_3.2.1-2_amd64.deb
xenstore-utils_3.2.1-2_amd64.deb
  to pool/main/x/xen-3/xenstore-utils_3.2.1-2_amd64.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Bastian Blank <[EMAIL PROTECTED]> (supplier of updated xen-3 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Sat, 28 Jun 2008 11:30:43 +0200
Source: xen-3
Binary: xen-docs-3.2 libxenstore3.0 libxen-dev xenstore-utils xen-utils-3.2-1 
xen-hypervisor-3.2-1-amd64 xen-hypervisor-3.2-1-i386 
xen-hypervisor-3.2-1-i386-nonpae
Architecture: source all amd64
Version: 3.2.1-2
Distribution: unstable
Urgency: low
Maintainer: Debian Xen Team <[EMAIL PROTECTED]>
Changed-By: Bastian Blank <[EMAIL PROTECTED]>
Description: 
 libxen-dev - Public headers and libs for Xen
 libxenstore3.0 - Xenstore communications library for Xen
 xen-docs-3.2 - Documentation for Xen
 xen-hypervisor-3.2-1-amd64 - The Xen Hypervisor on AMD64
 xen-hypervisor-3.2-1-i386 - The Xen Hypervisor on i386
 xen-hypervisor-3.2-1-i386-nonpae - The Xen Hypervisor on i386 without pae
 xen-utils-3.2-1 - XEN administrative tools
 xenstore-utils - Xenstore utilities for Xen
Closes: 474509 476366 487095
Changes: 
 xen-3 (3.2.1-2) unstable; urgency=low
 .
   * Use e2fslibs based ext2 support for pygrub. (closes: #476366)
   * Fix missing checks in pvfb code.
     See CVE-2008-1952. (closes: #487095)
   * Add support for loading bzImage files. (closes: #474509)
   * Enable TLS support in ioemu code.
   * Drop libcrypto usage because of GPL-incompatibility.
   * Remove AES code from blktap drivers. Considered broken.
Checksums-Sha1: 
 c554a791c3f7dc1bed082192d00e37848a88a947 1599 xen-3_3.2.1-2.dsc
 92388212fee2582b2d62df9b9c05a650a02fb3e3 54201 xen-3_3.2.1-2.diff.gz
 1ddc8e09b1ae2db6467b62ad3a2804dc4ab84aca 1198380 xen-docs-3.2_3.2.1-2_all.deb
 fff42ccf3ab065a531230c8a701017bcbba592c3 418614 
xen-hypervisor-3.2-1-amd64_3.2.1-2_amd64.deb
 ea5b8522c4077c9e2dafecd4eac3a7de379b910e 197660 libxen-dev_3.2.1-2_amd64.deb
 211fb10460b1282e560ddfe036c971091b7f592b 19360 libxenstore3.0_3.2.1-2_amd64.deb
 6465d930425e260e36debdddba07979c0a192084 1070516 
xen-utils-3.2-1_3.2.1-2_amd64.deb
 b358e53c77ede134c0d1c2ab3b4b68fa496792fd 22566 xenstore-utils_3.2.1-2_amd64.deb
Checksums-Sha256: 
 69b20ecc25fef7f04c9547a0608e8a7bce243f27f818280addac979fe1180edd 1599 
xen-3_3.2.1-2.dsc
 63d4117c4171f80babeec1ff28cdd5a48c70e894dcaa3869c30aa9e72b77b86e 54201 
xen-3_3.2.1-2.diff.gz
 3051f89b77cff4be4b0286a90570fb7ff38cac928c8887f4182c7bcf6e519cb0 1198380 
xen-docs-3.2_3.2.1-2_all.deb
 acd6ea5866572979a91924dca7931d2cba7150eb898e5667f447e0769336b227 418614 
xen-hypervisor-3.2-1-amd64_3.2.1-2_amd64.deb
 37b50625df1c020555f885ae1dca56e47fa892a922ac113816cd5655dcb16c13 197660 
libxen-dev_3.2.1-2_amd64.deb
 8f406296db2af09bc595610b5d8cfaa56c858394928255c97becb7544cffbb36 19360 
libxenstore3.0_3.2.1-2_amd64.deb
 4ab689b7bd57b4885b4f131606f34f5b56ad56d5d39d7621eb896657a85cfab7 1070516 
xen-utils-3.2-1_3.2.1-2_amd64.deb
 73ff1e710be16f2732caada6a66c6af90541bd94a9444d8dd24073fbdd7fd61e 22566 
xenstore-utils_3.2.1-2_amd64.deb
Files: 
 e00ffdb6939f517d8d5afed6b418f051 1599 misc extra xen-3_3.2.1-2.dsc
 df6ffb368b0ce6e3723ec823407bfb52 54201 misc extra xen-3_3.2.1-2.diff.gz
 963fd1aab43d22e745de2a93102ce26f 1198380 doc extra xen-docs-3.2_3.2.1-2_all.deb
 6ac0ceb062f16a781eba3dcb4858b16f 418614 misc extra 
xen-hypervisor-3.2-1-amd64_3.2.1-2_amd64.deb
 94df8b325e502ee549611e603ec8dac7 197660 libdevel extra 
libxen-dev_3.2.1-2_amd64.deb
 b85bef2139a4ee76fea154f0edae08b4 19360 libs extra 
libxenstore3.0_3.2.1-2_amd64.deb
 d10f8282dbf0f254a1f26a5f89ac03e9 1070516 misc extra 
xen-utils-3.2-1_3.2.1-2_amd64.deb
 4523b836a00dc3f700662c67d72f9256 22566 admin extra 
xenstore-utils_3.2.1-2_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkhmBm0ACgkQxWtQqFixGB4ENACeLdidWsyiyy5Gxvs6fSPV+Pbz
57oAnjrl6QRi6xlYQQQBL7b94ulaZ19e
=3U/n
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to