From 28b141bb6f7f107d2d118eb15bcc0f391ad5d8e2a211d334b7e50a4ecba8bf1b Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Sat, 12 May 2007 10:54:21 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xen?expand=0&rev=11 --- README.SuSE | 17 +- balloon-early.patch | 18 -- block-iscsi | 41 +++- init.xend | 12 -- netfront_mac.patch | 17 ++ qemu-security-etch1.diff | 355 ++++++++++++++++++++++++++++++++++ xen-3.0.5-testing-src.tar.bz2 | 3 - xen-3.1-testing-src.tar.bz2 | 3 + xen-domUloader.diff | 14 +- xen-max-free-mem.diff | 28 +-- xen-messages.diff | 16 +- xen-no-dummy-nfs-ip.diff | 8 +- xen-tightvnc-args.diff | 8 +- xen-vm-install.tar.bz2 | 4 +- xen-xm-top-needs-root.diff | 8 +- xen.changes | 27 +++ xen.spec | 52 +++-- xenapi-console-protocol.patch | 8 +- xend-localtime.diff | 24 +++ 19 files changed, 552 insertions(+), 111 deletions(-) delete mode 100644 balloon-early.patch create mode 100644 netfront_mac.patch create mode 100644 qemu-security-etch1.diff delete mode 100644 xen-3.0.5-testing-src.tar.bz2 create mode 100644 xen-3.1-testing-src.tar.bz2 create mode 100644 xend-localtime.diff diff --git a/README.SuSE b/README.SuSE index b1acb41..99510b5 100644 --- a/README.SuSE +++ b/README.SuSE @@ -147,18 +147,21 @@ For a more complete discussion of possible parameters, see the user documentation in the xen-doc-* packages. -Start Scripts -------------- +Init scripts +------------ Before you can create additional VMs (or use any other xm command) xend must be running. This init script is part of the xen-tools package, and it is activated at installation time. You can (de)activate it using insserv. You can also start it manually with "rcxend start". -One other relevant startup script is xendomains. This script can be used to -start other VMs when the VM server boots. It also cleanly shuts down the -other VMs when the VM server shuts down. To use this feature, place a -symbolic link in /etc/xen/auto that points to the VM's configuration file. -Look in /etc/sysconfig/xendomains for relevant settings. +The deprecated xendomains script is also shipped, but disabled by default. In +SLES 10 GA (xen 3.0.2) and older, this script allowed VMs to be started and +stopped automatically when the machine starts and stops. In SLES 10 SP1 (xen +3.0.4) and newer, the proper way to start and stop VMs automatically is to set +the "on_xend_start" and "on_xend_stop" settings in the VMs configuration. +(Deprecating xendomains was necessary because xend, not the configuration file +in /etc/xen/vm, is now the authoritative source for the VM's settings.) +Consult the online documentation for more information. Creating a VM with vm-install diff --git a/balloon-early.patch b/balloon-early.patch deleted file mode 100644 index de512e6..0000000 --- a/balloon-early.patch +++ /dev/null @@ -1,18 +0,0 @@ -Index: xen-3.0.5-testing/tools/python/xen/xend/XendDomainInfo.py -=================================================================== ---- xen-3.0.5-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-3.0.5-testing/tools/python/xen/xend/XendDomainInfo.py -@@ -1440,10 +1440,10 @@ class XendDomainInfo: - raise VmError("HVM guest support is unavailable: is VT/AMD-V " - "supported by your CPU and enabled in your " - "BIOS?") -- # Hack to pre-reserve some memory for HVM setup. -- # Needed because Xen allocates 1MB by default immediately. -- balloon.free(2*1024) # 2MB should be plenty - -+ # The hypervisor needs some domheap pages to create the VM. -+ # Final ballooning for the domain's pages will be done later. -+ balloon.free(2 * 1024) - self.domid = xc.domain_create( - domid = 0, - ssidref = security.get_security_info(self.info, 'ssidref'), diff --git a/block-iscsi b/block-iscsi index b7ab3a6..31b14d8 100644 --- a/block-iscsi +++ b/block-iscsi @@ -22,13 +22,28 @@ dir=$(dirname "$0") # echo "$1" #} +sess_lun_to_bdev() +{ + unset dev + cnt=`ls -d $1/device/target*/*:0:*:$2/block* | wc -l` + nm=`ls -d $1/device/target*/*:0:*:$2/block*` + for n in $nm; do + d=`readlink $n` + d=${d##*/} + if test -z "$dev"; then dev=$d; else dev="$dev $d"; fi + done +} + +# Arguments: IQN name, LUN find_sdev() { unset dev + lun=${2:-0} for session in /sys/class/iscsi_session/session*; do + if ! test -e $session; then return; fi if test $1 = `cat $session/targetname`; then - dev=`readlink $session/device/target*/*:0:*/block*` - dev=${dev##*/} + sess_lun_to_bdev $session $lun + echo "fs: $1[$lun] ($cnt) -> $dev" 1>&2 return fi done @@ -38,12 +53,15 @@ find_sdev_rev() { unset tgt for session in /sys/class/iscsi_session/session*; do - dev=`readlink $session/device/target*/*:0:*/block*` - dev=${dev##*/} - if test $dev = $1; then - tgt=`cat $session/targetname` - return - fi + if ! test -e $session; then return; fi + sess_lun_to_bdev $session "*" + for d in $dev; do + if test "$d" = "$1"; then + tgt=`cat $session/targetname` + echo "fsr: $2 -> $tgt ($cnt)" 1>&2 + return + fi + done done } @@ -55,14 +73,17 @@ case "$command" in # list of targets on node par=`xenstore-read $XENBUS_PATH/params` || true TGTID=$par; TGTID=${TGTID//@/:} + LUN=${TGTID##*,}; TGTID=${TGTID%,*} + if test $LUN = $TGTID; then unset LUN; fi + #echo "add $TGTID lun $LUN" 1>&2 while read rec port uuid; do if test $uuid = $TGTID; then rec=${rec%]}; rec=${rec#[} - find_sdev $TGTID + find_sdev $TGTID $LUN if test -z "$dev"; then iscsiadm -m node -r $rec -l || exit 2 usleep 100000 - find_sdev $TGTID + find_sdev $TGTID $LUN fi xenstore-write $XENBUS_PATH/node /dev/$dev write_dev /dev/$dev diff --git a/init.xend b/init.xend index 5dc9859..5d79163 100644 --- a/init.xend +++ b/init.xend @@ -118,18 +118,6 @@ case "$1" in rc_reset else echo -n "(pid $XEND) " - unset sysrq_sent - while read LN; do - parseln "$LN" - [ -z "$id" ] && continue - [ "$id" = 0 ] && continue - sysrq_sent=1 - echo -en "\n Warning: Domain $name (ID $id) still up ($state)" - # Domains should be closed down by xendomains; anyway, send - # SysRq-S to avoid the worst in case domains are not shut down. - xm sysrq $id s - done < <(xm list | grep -v '^Name *ID') - if [ -n "$sysrq_sent" ]; then sleep 1; fi xend stop cleanup rc_reset diff --git a/netfront_mac.patch b/netfront_mac.patch new file mode 100644 index 0000000..d39b457 --- /dev/null +++ b/netfront_mac.patch @@ -0,0 +1,17 @@ +Read the mac address from the otherend + +Signed-off-by: ksrinivasan@novell.com + +Index: xen-3.1-testing/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c +=================================================================== +--- xen-3.1-testing.orig/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c ++++ xen-3.1-testing/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c +@@ -375,7 +375,7 @@ static int xen_net_read_mac(struct xenbu + char *s, *e, *macstr; + int i; + +- macstr = s = xenbus_read(XBT_NIL, dev->nodename, "mac", NULL); ++ macstr = s = xenbus_read(XBT_NIL, dev->otherend, "mac", NULL); + if (IS_ERR(macstr)) + return PTR_ERR(macstr); + diff --git a/qemu-security-etch1.diff b/qemu-security-etch1.diff new file mode 100644 index 0000000..e042111 --- /dev/null +++ b/qemu-security-etch1.diff @@ -0,0 +1,355 @@ +Index: xen-3.1-testing/tools/ioemu/block.c +=================================================================== +--- xen-3.1-testing.orig/tools/ioemu/block.c ++++ xen-3.1-testing/tools/ioemu/block.c +@@ -465,6 +465,11 @@ int bdrv_write(BlockDriverState *bs, int + if (sector_num == 0 && bs->boot_sector_enabled && nb_sectors > 0) { + memcpy(bs->boot_sector_data, buf, 512); + } ++ { ++ unsigned int ns = sector_num * 512; ++ if (ns < 0) ++ return -1; ++ } + return bs->drv->bdrv_write(bs, sector_num, buf, nb_sectors); + } + +Index: xen-3.1-testing/tools/ioemu/hw/cirrus_vga.c +=================================================================== +--- xen-3.1-testing.orig/tools/ioemu/hw/cirrus_vga.c ++++ xen-3.1-testing/tools/ioemu/hw/cirrus_vga.c +@@ -220,6 +220,20 @@ + #define CIRRUS_HOOK_NOT_HANDLED 0 + #define CIRRUS_HOOK_HANDLED 1 + ++#define BLTUNSAFE(s) \ ++ ( \ ++ ( /* check dst is within bounds */ \ ++ (s)->cirrus_blt_height * (s)->cirrus_blt_dstpitch \ ++ + ((s)->cirrus_blt_dstaddr & (s)->cirrus_addr_mask) > \ ++ (s)->vram_size \ ++ ) || \ ++ ( /* check src is within bounds */ \ ++ (s)->cirrus_blt_height * (s)->cirrus_blt_srcpitch \ ++ + ((s)->cirrus_blt_srcaddr & (s)->cirrus_addr_mask) > \ ++ (s)->vram_size \ ++ ) \ ++ ) ++ + struct CirrusVGAState; + typedef void (*cirrus_bitblt_rop_t) (struct CirrusVGAState *s, + uint8_t * dst, const uint8_t * src, +@@ -598,7 +612,7 @@ static void cirrus_invalidate_region(Cir + + for (y = 0; y < lines; y++) { + off_cur = off_begin; +- off_cur_end = off_cur + bytesperline; ++ off_cur_end = (off_cur + bytesperline) & s->cirrus_addr_mask; + off_cur &= TARGET_PAGE_MASK; + while (off_cur < off_cur_end) { + cpu_physical_memory_set_dirty(s->vram_offset + +@@ -614,7 +628,11 @@ static int cirrus_bitblt_common_patternc + { + uint8_t *dst; + +- dst = s->vram_ptr + s->cirrus_blt_dstaddr; ++ dst = s->vram_ptr + (s->cirrus_blt_dstaddr & s->cirrus_addr_mask); ++ ++ if (BLTUNSAFE(s)) ++ return 0; ++ + (*s->cirrus_rop) (s, dst, src, + s->cirrus_blt_dstpitch, 0, + s->cirrus_blt_width, s->cirrus_blt_height); +@@ -630,8 +648,11 @@ static int cirrus_bitblt_solidfill(Cirru + { + cirrus_fill_t rop_func; + ++ if (BLTUNSAFE(s)) ++ return 0; ++ + rop_func = cirrus_fill[rop_to_index[blt_rop]][s->cirrus_blt_pixelwidth - 1]; +- rop_func(s, s->vram_ptr + s->cirrus_blt_dstaddr, ++ rop_func(s, s->vram_ptr + (s->cirrus_blt_dstaddr & s->cirrus_addr_mask), + s->cirrus_blt_dstpitch, + s->cirrus_blt_width, s->cirrus_blt_height); + cirrus_invalidate_region(s, s->cirrus_blt_dstaddr, +@@ -650,8 +671,8 @@ static int cirrus_bitblt_solidfill(Cirru + static int cirrus_bitblt_videotovideo_patterncopy(CirrusVGAState * s) + { + return cirrus_bitblt_common_patterncopy(s, +- s->vram_ptr + +- (s->cirrus_blt_srcaddr & ~7)); ++ s->vram_ptr + ((s->cirrus_blt_srcaddr & ~7) & ++ s->cirrus_addr_mask)); + } + + static void cirrus_do_copy(CirrusVGAState *s, int dst, int src, int w, int h) +@@ -701,8 +722,10 @@ static void cirrus_do_copy(CirrusVGAStat + if (notify) + vga_hw_update(); + +- (*s->cirrus_rop) (s, s->vram_ptr + s->cirrus_blt_dstaddr, +- s->vram_ptr + s->cirrus_blt_srcaddr, ++ (*s->cirrus_rop) (s, s->vram_ptr + ++ (s->cirrus_blt_dstaddr & s->cirrus_addr_mask), ++ s->vram_ptr + ++ (s->cirrus_blt_srcaddr & s->cirrus_addr_mask), + s->cirrus_blt_dstpitch, s->cirrus_blt_srcpitch, + s->cirrus_blt_width, s->cirrus_blt_height); + +@@ -728,8 +751,14 @@ static int cirrus_bitblt_videotovideo_co + s->cirrus_blt_srcaddr - s->start_addr, + s->cirrus_blt_width, s->cirrus_blt_height); + } else { +- (*s->cirrus_rop) (s, s->vram_ptr + s->cirrus_blt_dstaddr, +- s->vram_ptr + s->cirrus_blt_srcaddr, ++ ++ if (BLTUNSAFE(s)) ++ return 0; ++ ++ (*s->cirrus_rop) (s, s->vram_ptr + ++ (s->cirrus_blt_dstaddr & s->cirrus_addr_mask), ++ s->vram_ptr + ++ (s->cirrus_blt_srcaddr & s->cirrus_addr_mask), + s->cirrus_blt_dstpitch, s->cirrus_blt_srcpitch, + s->cirrus_blt_width, s->cirrus_blt_height); + +@@ -761,8 +790,9 @@ static void cirrus_bitblt_cputovideo_nex + } else { + /* at least one scan line */ + do { +- (*s->cirrus_rop)(s, s->vram_ptr + s->cirrus_blt_dstaddr, +- s->cirrus_bltbuf, 0, 0, s->cirrus_blt_width, 1); ++ (*s->cirrus_rop)(s, s->vram_ptr + ++ (s->cirrus_blt_dstaddr & s->cirrus_addr_mask), ++ s->cirrus_bltbuf, 0, 0, s->cirrus_blt_width, 1); + cirrus_invalidate_region(s, s->cirrus_blt_dstaddr, 0, + s->cirrus_blt_width, 1); + s->cirrus_blt_dstaddr += s->cirrus_blt_dstpitch; +@@ -1862,7 +1892,7 @@ static void cirrus_mem_writeb_mode4and5_ + unsigned val = mem_value; + uint8_t *dst; + +- dst = s->vram_ptr + offset; ++ dst = s->vram_ptr + (offset &= s->cirrus_addr_mask); + for (x = 0; x < 8; x++) { + if (val & 0x80) { + *dst = s->cirrus_shadow_gr1; +@@ -1885,7 +1915,7 @@ static void cirrus_mem_writeb_mode4and5_ + unsigned val = mem_value; + uint8_t *dst; + +- dst = s->vram_ptr + offset; ++ dst = s->vram_ptr + (offset &= s->cirrus_addr_mask); + for (x = 0; x < 8; x++) { + if (val & 0x80) { + *dst = s->cirrus_shadow_gr1; +Index: xen-3.1-testing/tools/ioemu/hw/cirrus_vga_rop.h +=================================================================== +--- xen-3.1-testing.orig/tools/ioemu/hw/cirrus_vga_rop.h ++++ xen-3.1-testing/tools/ioemu/hw/cirrus_vga_rop.h +@@ -49,6 +49,12 @@ glue(cirrus_bitblt_rop_fwd_, ROP_NAME)(C + src = src_ - src_base; + dstpitch -= bltwidth; + srcpitch -= bltwidth; ++ ++ if (dstpitch < 0 || srcpitch < 0) { ++ /* is 0 valid? srcpitch == 0 could be useful */ ++ return; ++ } ++ + for (y = 0; y < bltheight; y++) { + for (x = 0; x < bltwidth; x++) { + ROP_OP(*(dst_base + m(dst)), *(src_base + m(src))); +Index: xen-3.1-testing/tools/ioemu/hw/fdc.c +=================================================================== +--- xen-3.1-testing.orig/tools/ioemu/hw/fdc.c ++++ xen-3.1-testing/tools/ioemu/hw/fdc.c +@@ -1110,8 +1110,13 @@ static uint32_t fdctrl_read_data (fdctrl + len = fdctrl->data_len - fdctrl->data_pos; + if (len > FD_SECTOR_LEN) + len = FD_SECTOR_LEN; +- bdrv_read(cur_drv->bs, fd_sector(cur_drv), +- fdctrl->fifo, len); ++ if (cur_drv->bs) { ++ bdrv_read(cur_drv->bs, fd_sector(cur_drv), ++ fdctrl->fifo, len); ++ } else { ++ FLOPPY_ERROR("can't read data from drive\n"); ++ return 0; ++ } + } + } + retval = fdctrl->fifo[pos]; +Index: xen-3.1-testing/tools/ioemu/hw/i8259.c +=================================================================== +--- xen-3.1-testing.orig/tools/ioemu/hw/i8259.c ++++ xen-3.1-testing/tools/ioemu/hw/i8259.c +@@ -292,9 +292,11 @@ static void pic_ioport_write(void *opaqu + s->init_state = 1; + s->init4 = val & 1; + if (val & 0x02) +- hw_error("single mode not supported"); ++ /* hw_error("single mode not supported"); */ ++ return; + if (val & 0x08) +- hw_error("level sensitive irq not supported"); ++ /* hw_error("level sensitive irq not supported"); */ ++ return; + } else if (val & 0x08) { + if (val & 0x04) + s->poll = 1; +Index: xen-3.1-testing/tools/ioemu/hw/ne2000.c +=================================================================== +--- xen-3.1-testing.orig/tools/ioemu/hw/ne2000.c ++++ xen-3.1-testing/tools/ioemu/hw/ne2000.c +@@ -221,7 +221,7 @@ static int ne2000_can_receive(void *opaq + NE2000State *s = opaque; + + if (s->cmd & E8390_STOP) +- return 1; ++ return 0; + return !ne2000_buffer_full(s); + } + +@@ -252,7 +252,7 @@ static void ne2000_receive(void *opaque, + { + NE2000State *s = opaque; + uint8_t *p; +- int total_len, next, avail, len, index, mcast_idx; ++ unsigned int total_len, next, avail, len, index, mcast_idx; + uint8_t buf1[60]; + static const uint8_t broadcast_macaddr[6] = + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; +@@ -327,7 +327,11 @@ static void ne2000_receive(void *opaque, + + /* write packet data */ + while (size > 0) { +- avail = s->stop - index; ++ /* taviso: this can wrap, so check its okay. */ ++ if (index <= s->stop) ++ avail = s->stop - index; ++ else ++ avail = 0; + len = size; + if (len > avail) + len = avail; +Index: xen-3.1-testing/tools/ioemu/hw/pc.c +=================================================================== +--- xen-3.1-testing.orig/tools/ioemu/hw/pc.c ++++ xen-3.1-testing/tools/ioemu/hw/pc.c +@@ -329,7 +329,8 @@ void bochs_bios_write(void *opaque, uint + case 0x400: + case 0x401: + fprintf(stderr, "BIOS panic at rombios.c, line %d\n", val); +- exit(1); ++ /* according to documentation, these can be safely ignored */ ++ break; + case 0x402: + case 0x403: + #ifdef DEBUG_BIOS +@@ -352,8 +353,9 @@ void bochs_bios_write(void *opaque, uint + /* LGPL'ed VGA BIOS messages */ + case 0x501: + case 0x502: ++ /* according to documentation, these can be safely ignored */ + fprintf(stderr, "VGA BIOS panic, line %d\n", val); +- exit(1); ++ break; + case 0x500: + case 0x503: + #ifdef DEBUG_BIOS +Index: xen-3.1-testing/tools/ioemu/hw/sb16.c +=================================================================== +--- xen-3.1-testing.orig/tools/ioemu/hw/sb16.c ++++ xen-3.1-testing/tools/ioemu/hw/sb16.c +@@ -1235,8 +1235,10 @@ static int SB_read_DMA (void *opaque, in + s->block_size); + #endif + +- while (s->left_till_irq <= 0) { +- s->left_till_irq = s->block_size + s->left_till_irq; ++ if (s->block_size) { ++ while (s->left_till_irq <= 0) { ++ s->left_till_irq = s->block_size + s->left_till_irq; ++ } + } + + return dma_pos; +Index: xen-3.1-testing/tools/ioemu/target-i386/translate.c +=================================================================== +--- xen-3.1-testing.orig/tools/ioemu/target-i386/translate.c ++++ xen-3.1-testing/tools/ioemu/target-i386/translate.c +@@ -5244,7 +5244,12 @@ static target_ulong disas_insn(DisasCont + if (CODE64(s)) + goto illegal_op; + val = ldub_code(s->pc++); +- gen_op_aam(val); ++ /* taviso: operand can be zero */ ++ if (val) { ++ gen_op_aam(val); ++ } else { ++ gen_exception(s, EXCP00_DIVZ, s->pc - s->cs_base); ++ } + s->cc_op = CC_OP_LOGICB; + break; + case 0xd5: /* aad */ +@@ -5292,6 +5297,7 @@ static target_ulong disas_insn(DisasCont + gen_jmp_im(pc_start - s->cs_base); + gen_op_into(s->pc - pc_start); + break; ++#ifdef WANT_ICEBP + case 0xf1: /* icebp (undocumented, exits to external debugger) */ + #if 1 + gen_debug(s, pc_start - s->cs_base); +@@ -5301,6 +5307,7 @@ static target_ulong disas_insn(DisasCont + cpu_set_log(CPU_LOG_INT | CPU_LOG_TB_IN_ASM); + #endif + break; ++#endif /* icebp */ + case 0xfa: /* cli */ + if (!s->vm86) { + if (s->cpl <= s->iopl) { +Index: xen-3.1-testing/tools/ioemu/vl.c +=================================================================== +--- xen-3.1-testing.orig/tools/ioemu/vl.c ++++ xen-3.1-testing/tools/ioemu/vl.c +@@ -3302,8 +3302,8 @@ typedef struct NetSocketState { + VLANClientState *vc; + int fd; + int state; /* 0 = getting length, 1 = getting data */ +- int index; +- int packet_len; ++ unsigned int index; ++ unsigned int packet_len; + uint8_t buf[4096]; + struct sockaddr_in dgram_dst; /* contains inet host and port destination iff connectionless (SOCK_DGRAM) */ + } NetSocketState; +@@ -3334,7 +3334,8 @@ static void net_socket_receive_dgram(voi + static void net_socket_send(void *opaque) + { + NetSocketState *s = opaque; +- int l, size, err; ++ int size, err; ++ unsigned l; + uint8_t buf1[4096]; + const uint8_t *buf; + +@@ -3373,7 +3374,15 @@ static void net_socket_send(void *opaque + l = s->packet_len - s->index; + if (l > size) + l = size; +- memcpy(s->buf + s->index, buf, l); ++ if (s->index + l <= sizeof(s->buf)) { ++ memcpy(s->buf + s->index, buf, l); ++ } else { ++ fprintf(stderr, "serious error: oversized packet received," ++ "connection terminated.\n"); ++ s->state = 0; ++ goto eoc; ++ } ++ + s->index += l; + buf += l; + size -= l; diff --git a/xen-3.0.5-testing-src.tar.bz2 b/xen-3.0.5-testing-src.tar.bz2 deleted file mode 100644 index b7417c3..0000000 --- a/xen-3.0.5-testing-src.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:accb3d70e85d69ab2da07bcd904e53d0460b1bc7f24640bd710a2f07494f228c -size 5772627 diff --git a/xen-3.1-testing-src.tar.bz2 b/xen-3.1-testing-src.tar.bz2 new file mode 100644 index 0000000..9e5ed90 --- /dev/null +++ b/xen-3.1-testing-src.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc63852b3a7401ff69ba3348247ae18373b5d67ad36610c4796d0b9b4e8fc207 +size 5797383 diff --git a/xen-domUloader.diff b/xen-domUloader.diff index 3851dfe..afe5d75 100644 --- a/xen-domUloader.diff +++ b/xen-domUloader.diff @@ -1,7 +1,7 @@ -Index: xen-3.0.5-testing/tools/python/xen/xend/XendBootloader.py +Index: xen-3.1-testing/tools/python/xen/xend/XendBootloader.py =================================================================== ---- xen-3.0.5-testing.orig/tools/python/xen/xend/XendBootloader.py -+++ xen-3.0.5-testing/tools/python/xen/xend/XendBootloader.py +--- xen-3.1-testing.orig/tools/python/xen/xend/XendBootloader.py ++++ xen-3.1-testing/tools/python/xen/xend/XendBootloader.py @@ -14,6 +14,7 @@ import os, select, errno, stat, signal @@ -25,10 +25,10 @@ Index: xen-3.0.5-testing/tools/python/xen/xend/XendBootloader.py + if m: + return vdisk == m.group(1) or vdisk == m.group(2) + return True -Index: xen-3.0.5-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-3.1-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-3.0.5-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-3.0.5-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-3.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-3.1-testing/tools/python/xen/xend/XendDomainInfo.py @@ -42,7 +42,7 @@ from xen.xend import balloon, sxp, uuid, from xen.xend import XendOptions, XendNode, XendConfig @@ -38,7 +38,7 @@ Index: xen-3.0.5-testing/tools/python/xen/xend/XendDomainInfo.py from xen.xend.XendError import XendError, VmError from xen.xend.XendDevices import XendDevices from xen.xend.XendTask import XendTask -@@ -1779,8 +1779,11 @@ class XendDomainInfo: +@@ -1783,8 +1783,11 @@ class XendDomainInfo: blexec = osdep.pygrub_path blcfg = None diff --git a/xen-max-free-mem.diff b/xen-max-free-mem.diff index 72e400c..69df1fe 100644 --- a/xen-max-free-mem.diff +++ b/xen-max-free-mem.diff @@ -1,8 +1,8 @@ -Index: xen-3.0.5-testing/tools/python/xen/xend/XendNode.py +Index: xen-3.1-testing/tools/python/xen/xend/XendNode.py =================================================================== ---- xen-3.0.5-testing.orig/tools/python/xen/xend/XendNode.py -+++ xen-3.0.5-testing/tools/python/xen/xend/XendNode.py -@@ -558,9 +558,33 @@ class XendNode: +--- xen-3.1-testing.orig/tools/python/xen/xend/XendNode.py ++++ xen-3.1-testing/tools/python/xen/xend/XendNode.py +@@ -541,9 +541,33 @@ class XendNode: info['threads_per_core']) info['cpu_mhz'] = info['cpu_khz'] / 1000 @@ -39,7 +39,7 @@ Index: xen-3.0.5-testing/tools/python/xen/xend/XendNode.py ITEM_ORDER = ['nr_cpus', 'nr_nodes', -@@ -571,6 +595,9 @@ class XendNode: +@@ -554,6 +578,9 @@ class XendNode: 'hw_caps', 'total_memory', 'free_memory', @@ -49,10 +49,10 @@ Index: xen-3.0.5-testing/tools/python/xen/xend/XendNode.py ] return [[k, info[k]] for k in ITEM_ORDER] -Index: xen-3.0.5-testing/tools/python/xen/xend/balloon.py +Index: xen-3.1-testing/tools/python/xen/xend/balloon.py =================================================================== ---- xen-3.0.5-testing.orig/tools/python/xen/xend/balloon.py -+++ xen-3.0.5-testing/tools/python/xen/xend/balloon.py +--- xen-3.1-testing.orig/tools/python/xen/xend/balloon.py ++++ xen-3.1-testing/tools/python/xen/xend/balloon.py @@ -41,6 +41,8 @@ SLEEP_TIME_GROWTH = 0.1 # label actually shown in the PROC_XEN_BALLOON file. labels = { 'current' : 'Current allocation', @@ -86,10 +86,10 @@ Index: xen-3.0.5-testing/tools/python/xen/xend/balloon.py def free(need_mem): """Balloon out memory from the privileged domain so that there is the specified required amount (in KiB) free. -Index: xen-3.0.5-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-3.1-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-3.0.5-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-3.0.5-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-3.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-3.1-testing/tools/python/xen/xend/XendDomainInfo.py @@ -573,6 +573,27 @@ class XendDomainInfo: return sxprs @@ -118,10 +118,10 @@ Index: xen-3.0.5-testing/tools/python/xen/xend/XendDomainInfo.py def setMemoryTarget(self, target): """Set the memory target of this domain. @param target: In MiB. -Index: xen-3.0.5-testing/tools/python/xen/xend/server/SrvDomain.py +Index: xen-3.1-testing/tools/python/xen/xend/server/SrvDomain.py =================================================================== ---- xen-3.0.5-testing.orig/tools/python/xen/xend/server/SrvDomain.py -+++ xen-3.0.5-testing/tools/python/xen/xend/server/SrvDomain.py +--- xen-3.1-testing.orig/tools/python/xen/xend/server/SrvDomain.py ++++ xen-3.1-testing/tools/python/xen/xend/server/SrvDomain.py @@ -169,7 +169,7 @@ class SrvDomain(SrvDir): diff --git a/xen-messages.diff b/xen-messages.diff index bf6a39b..e171a6a 100644 --- a/xen-messages.diff +++ b/xen-messages.diff @@ -1,7 +1,7 @@ -Index: xen-3.0.5-testing/tools/misc/xend +Index: xen-3.1-testing/tools/misc/xend =================================================================== ---- xen-3.0.5-testing.orig/tools/misc/xend -+++ xen-3.0.5-testing/tools/misc/xend +--- xen-3.1-testing.orig/tools/misc/xend ++++ xen-3.1-testing/tools/misc/xend @@ -50,22 +50,6 @@ def hline(): def msg(message): print >>sys.stderr, "*" * 3, message @@ -33,11 +33,11 @@ Index: xen-3.0.5-testing/tools/misc/xend check_user() except CheckError: sys.exit(1) -Index: xen-3.0.5-testing/tools/python/xen/xend/XendDomain.py +Index: xen-3.1-testing/tools/python/xen/xend/XendDomain.py =================================================================== ---- xen-3.0.5-testing.orig/tools/python/xen/xend/XendDomain.py -+++ xen-3.0.5-testing/tools/python/xen/xend/XendDomain.py -@@ -825,6 +825,8 @@ class XendDomain: +--- xen-3.1-testing.orig/tools/python/xen/xend/XendDomain.py ++++ xen-3.1-testing/tools/python/xen/xend/XendDomain.py +@@ -827,6 +827,8 @@ class XendDomain: if dominfo.getDomid() == DOM0_ID: raise XendError("Cannot save privileged domain %s" % domname) @@ -46,7 +46,7 @@ Index: xen-3.0.5-testing/tools/python/xen/xend/XendDomain.py if dominfo._stateGet() != DOM_STATE_RUNNING: raise VMBadState("Domain is not running", -@@ -1243,6 +1245,8 @@ class XendDomain: +@@ -1245,6 +1247,8 @@ class XendDomain: if dominfo.getDomid() == DOM0_ID: raise XendError("Cannot save privileged domain %i" % domid) diff --git a/xen-no-dummy-nfs-ip.diff b/xen-no-dummy-nfs-ip.diff index b7c979b..6bba759 100644 --- a/xen-no-dummy-nfs-ip.diff +++ b/xen-no-dummy-nfs-ip.diff @@ -1,8 +1,8 @@ -Index: xen-unstable/tools/python/xen/xm/create.py +Index: xen-3.1-testing/tools/python/xen/xm/create.py =================================================================== ---- xen-unstable.orig/tools/python/xen/xm/create.py -+++ xen-unstable/tools/python/xen/xm/create.py -@@ -884,9 +884,8 @@ def preprocess_access_control(vals): +--- xen-3.1-testing.orig/tools/python/xen/xm/create.py ++++ xen-3.1-testing/tools/python/xen/xm/create.py +@@ -887,9 +887,8 @@ def preprocess_access_control(vals): def preprocess_ip(vals): if vals.ip or vals.dhcp != 'off': diff --git a/xen-tightvnc-args.diff b/xen-tightvnc-args.diff index c964a15..02933a0 100644 --- a/xen-tightvnc-args.diff +++ b/xen-tightvnc-args.diff @@ -1,8 +1,8 @@ -Index: xen-unstable/tools/python/xen/xm/create.py +Index: xen-3.1-testing/tools/python/xen/xm/create.py =================================================================== ---- xen-unstable.orig/tools/python/xen/xm/create.py -+++ xen-unstable/tools/python/xen/xm/create.py -@@ -978,8 +978,7 @@ def spawn_vnc(display): +--- xen-3.1-testing.orig/tools/python/xen/xm/create.py ++++ xen-3.1-testing/tools/python/xen/xm/create.py +@@ -981,8 +981,7 @@ def spawn_vnc(display): returns the port that the vncviewer is listening on and sets the global vncpid. On failure, returns 0. Note that vncviewer is daemonized. """ diff --git a/xen-vm-install.tar.bz2 b/xen-vm-install.tar.bz2 index 1ca7da0..b66b1d0 100644 --- a/xen-vm-install.tar.bz2 +++ b/xen-vm-install.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5c4b0bb9010787b4fc67782875381d545d060e3c7b1ef3c38ede447c62b93dda -size 174100 +oid sha256:26a506f1732698429dd8e4bf2a62b37aaab9bcd0b94578ba5cb548aaed70fa3e +size 174056 diff --git a/xen-xm-top-needs-root.diff b/xen-xm-top-needs-root.diff index cb3ef63..b89f3ff 100644 --- a/xen-xm-top-needs-root.diff +++ b/xen-xm-top-needs-root.diff @@ -1,11 +1,11 @@ From: Charles Coffing Upstream: no -Index: xen-3.0.5-testing/tools/python/xen/xm/main.py +Index: xen-3.1-testing/tools/python/xen/xm/main.py =================================================================== ---- xen-3.0.5-testing.orig/tools/python/xen/xm/main.py -+++ xen-3.0.5-testing/tools/python/xen/xm/main.py -@@ -1749,6 +1749,10 @@ def xm_debug_keys(args): +--- xen-3.1-testing.orig/tools/python/xen/xm/main.py ++++ xen-3.1-testing/tools/python/xen/xm/main.py +@@ -1755,6 +1755,10 @@ def xm_debug_keys(args): def xm_top(args): arg_check(args, "top", 0) diff --git a/xen.changes b/xen.changes index 9b906bf..5d0efdb 100644 --- a/xen.changes +++ b/xen.changes @@ -1,3 +1,30 @@ +------------------------------------------------------------------- +Fri May 11 12:29:27 MDT 2007 - ccoffing@novell.com + +- Update to xen-3.1-testing rc10 (changeset 15040). +- Update .desktop with proper group. (#258600) +- Include Kurt's updated block-iscsi. (#251368) +- Jim's updated patch to honor localtime setting. (#273430) +- Fix vm-install to work correctly when doing multiple simultaneous + installs via virt-manager. (#259917) +- Network connectivity fails in FV SLES 10 SP1; MAC address was + being read incorrectly from xenstore by PV driver. (#272351) +- For FV SLES 9, default apic=1 to allow x86_64 SLES 9 to boot. + (#264183) + +------------------------------------------------------------------- +Fri May 4 08:41:38 MDT 2007 - carnold@novell.com + +- Added security fixes for problems found Travis Orandy (#270621) + CVE-2007-1320, CVE-2007-1321, CVE-2007-1322, CVE-2007-1323, + CVE-2007-1366 + +------------------------------------------------------------------- +Thu May 3 15:35:19 MDT 2007 - ccoffing@novell.com + +- Update to xen-3.1-testing rc7 (changeset 15020). +- Fix identification of virt-manager windows. (#264162) + ------------------------------------------------------------------- Tue May 1 17:43:33 MDT 2007 - jfehlig@novell.com diff --git a/xen.spec b/xen.spec index 93c3e41..6102609 100644 --- a/xen.spec +++ b/xen.spec @@ -1,5 +1,5 @@ # -# spec file for package xen (Version 3.0.5_14993) +# spec file for package xen (Version 3.1.0_15040) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -11,10 +11,10 @@ # norootforbuild Name: xen -%define xvers 3.0 +%define xvers 3.1 %define xvermaj 3 -%define changeset 14993 -%define xen_build_dir xen-3.0.5-testing +%define changeset 15040 +%define xen_build_dir xen-3.1-testing %define with_install 1 %if %sles_version %define with_kmp 1 @@ -22,7 +22,7 @@ Name: xen # openSUSE 10.3 kernel is not yet ready... %define with_kmp 0 %endif -BuildRequires: LibVNCServer SDL-devel autoconf automake bin86 curl-devel dev86 graphviz latex2html libjpeg-devel libxml2-devel openssl openssl-devel python-devel transfig +BuildRequires: LibVNCServer SDL-devel autoconf automake bin86 curl-devel dev86 graphviz latex2html libjpeg-devel libxml2-devel openssl openssl-devel python-devel transfig update-desktop-files %if %suse_version >= 1030 BuildRequires: texlive texlive-latex %else @@ -34,14 +34,14 @@ BuildRequires: glibc-32bit glibc-devel-32bit %if %{?with_kmp}0 BuildRequires: kernel-source kernel-syms xorg-x11 %endif -Version: 3.0.5_14993 +Version: 3.1.0_15040 Release: 1 License: GNU General Public License (GPL) Group: System/Kernel Autoreqprov: on PreReq: %insserv_prereq %fillup_prereq Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel) -Source0: xen-3.0.5-testing-src.tar.bz2 +Source0: xen-3.1-testing-src.tar.bz2 Source1: xen-vm-install.tar.bz2 Source2: README.SuSE Source3: boot.xen @@ -105,8 +105,10 @@ Patch45: xenapi-console-protocol.patch Patch46: xen-disable-qemu-monitor.diff Patch47: supported_module.diff Patch48: disable_emulated_device.diff -Patch49: balloon-early.patch -Patch50: pv-driver-build.patch +Patch49: pv-driver-build.patch +Patch50: xend-localtime.diff +Patch51: qemu-security-etch1.diff +Patch52: netfront_mac.patch # Misc unused patches / need to be re-ported: Patch300: xen-enable-hvm-debug.diff URL: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/ @@ -175,7 +177,7 @@ Authors: %package libs Summary: Xen Virtualization: Libraries Group: System/Kernel -Requires: xen >= 3.0.5_14000 +Requires: xen >= 3.1.0_15000 AutoReqProv: on %description libs @@ -224,7 +226,7 @@ Authors: %package tools Summary: Xen Virtualization: Control tools for domain 0 Group: System/Kernel -Requires: xen-libs >= 3.0.5_14000 +Requires: xen-libs >= 3.1.0_15000 Requires: bridge-utils multipath-tools python python-xml pyxml %if %{?with_install}0 Requires: python-urlgrabber libxml2-python @@ -301,7 +303,7 @@ Authors: %package tools-ioemu Summary: Xen Virtualization: BIOS and device emulation for unmodified guests Group: System/Kernel -Requires: xen-tools >= 3.0.5_14000 +Requires: xen-tools >= 3.1.0_15000 AutoReqProv: on %description tools-ioemu @@ -548,14 +550,16 @@ cd .. %patch40 -p1 %patch41 -p1 %patch42 -p1 -#%patch43 -p1 # check if bug still exists in 3.0.5 +#%patch43 -p1 # check if bug still exists in 3.1.0 #%patch44 -p1 # re-port %patch45 -p1 %patch46 -p1 %patch47 -p1 -%patch48 -p1 +#%patch48 -p1 # Currently not disabling FV devices when loading PV drivers %patch49 -p1 %patch50 -p1 +%patch51 -p1 +%patch52 -p1 XEN_EXTRAVERSION=%version-%release XEN_EXTRAVERSION=${XEN_EXTRAVERSION#%{xvers}} sed -i "s/XEN_EXTRAVERSION[ ]*.=.*\$/XEN_EXTRAVERSION = $XEN_EXTRAVERSION/" xen/Makefile @@ -699,6 +703,8 @@ rm -rf $RPM_BUILD_ROOT/usr/share/doc/qemu/ rm $RPM_BUILD_ROOT/%{_mandir}/man1/qemu.* rm $RPM_BUILD_ROOT/usr/lib*/xen/bin/qemu-dm.debug rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info +%suse_update_desktop_file xen-vm-install X-SuSE-YaST-Virtualization +sed -i -e 's/Categories=.*/Categories=Qt;X-SuSE-YaST;X-SuSE-YaST-Virtualization;/' $RPM_BUILD_ROOT/%{_datadir}/applications/YaST2/xen-vm-install.desktop %files %defattr(-,root,root) @@ -873,6 +879,24 @@ rm -rf $RPM_BUILD_DIR/%xen_build_dir %{insserv_cleanup} %changelog +* Fri May 11 2007 - ccoffing@novell.com +- Update to xen-3.1-testing rc10 (changeset 15040). +- Update .desktop with proper group. (#258600) +- Include Kurt's updated block-iscsi. (#251368) +- Jim's updated patch to honor localtime setting. (#273430) +- Fix vm-install to work correctly when doing multiple simultaneous + installs via virt-manager. (#259917) +- Network connectivity fails in FV SLES 10 SP1; MAC address was + being read incorrectly from xenstore by PV driver. (#272351) +- For FV SLES 9, default apic=1 to allow x86_64 SLES 9 to boot. + (#264183) +* Fri May 04 2007 - carnold@novell.com +- Added security fixes for problems found Travis Orandy (#270621) + CVE-2007-1320, CVE-2007-1321, CVE-2007-1322, CVE-2007-1323, + CVE-2007-1366 +* Thu May 03 2007 - ccoffing@novell.com +- Update to xen-3.1-testing rc7 (changeset 15020). +- Fix identification of virt-manager windows. (#264162) * Tue May 01 2007 - jfehlig@novell.com - Integrated domUloader with 3.0.5. Updated xen-domUloader.diff. * Mon Apr 30 2007 - ccoffing@novell.com diff --git a/xenapi-console-protocol.patch b/xenapi-console-protocol.patch index 72a419c..1ff9534 100644 --- a/xenapi-console-protocol.patch +++ b/xenapi-console-protocol.patch @@ -1,8 +1,8 @@ -Index: xen-3.0.5-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-3.1-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-3.0.5-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-3.0.5-testing/tools/python/xen/xend/XendDomainInfo.py -@@ -2325,6 +2325,14 @@ class XendDomainInfo: +--- xen-3.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-3.1-testing/tools/python/xen/xend/XendDomainInfo.py +@@ -2351,6 +2351,14 @@ class XendDomainInfo: if not config.has_key('backend'): config['backend'] = "00000000-0000-0000-0000-000000000000" diff --git a/xend-localtime.diff b/xend-localtime.diff new file mode 100644 index 0000000..b69ecf9 --- /dev/null +++ b/xend-localtime.diff @@ -0,0 +1,24 @@ +# HG changeset patch +# User Jim Fehlig +# Date 1178858624 21600 +# Node ID 29b301382bb60ce54e0ac9dc5e5163306de577ff +# Parent 3ef0510e44d04eb837ae238203251b969fc45df9 +Configuration option 'localtime = 1' is not honored for PV domains. +This patch fixes an oversight when platform_* config options were collected in a dictionary. + +Signed-off-by: Jim Fehlig + +Index: xen-3.1-testing/tools/python/xen/xend/XendDomainInfo.py +=================================================================== +--- xen-3.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-3.1-testing/tools/python/xen/xend/XendDomainInfo.py +@@ -1490,8 +1490,7 @@ class XendDomainInfo: + try: + self.image = image.create(self, self.info) + +- localtime = self.info.get('platform_localtime', False) +- if localtime: ++ if self.info['platform'].get('localtime', 0): + xc.domain_set_time_offset(self.domid) + + xc.domain_setcpuweight(self.domid, self.info['cpu_weight'])