rpms/xen/F-7 .cvsignore, 1.32, 1.33 sources, 1.47, 1.48 xen-xs-transactions.patch, 1.1, 1.2 xen.spec, 1.188, 1.189 pygrub-dont-exec.patch, 1.1, NONE xen-3.1.0-dev-native-protocol.patch, 1.1, NONE xen-3.1.0-libxc-native-protocol.patch, 1.1, NONE xen-baked-tmpfile.patch, 1.1, NONE xen-blktap-error-returns.patch, 1.2, NONE xen-clobber-vif-type.patch, 1.1, NONE xen-keyboard.patch, 1.1, NONE xen-qemu-ne2000-CVE-2007-1321.patch, 1.1, NONE xen-qemu-rtl8139-checksum.patch, 1.1, NONE xen-qemu-vnc-delete.patch, 1.1, NONE xen-start-fail-cleanup.patch, 1.1, NONE xen-vmxassist-irqs.patch, 1.1, NONE

Daniel P. Berrange (berrange) fedora-extras-commits at redhat.com
Sat Dec 1 22:12:49 UTC 2007


Author: berrange

Update of /cvs/pkgs/rpms/xen/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32703

Modified Files:
	.cvsignore sources xen-xs-transactions.patch xen.spec 
Removed Files:
	pygrub-dont-exec.patch xen-3.1.0-dev-native-protocol.patch 
	xen-3.1.0-libxc-native-protocol.patch xen-baked-tmpfile.patch 
	xen-blktap-error-returns.patch xen-clobber-vif-type.patch 
	xen-keyboard.patch xen-qemu-ne2000-CVE-2007-1321.patch 
	xen-qemu-rtl8139-checksum.patch xen-qemu-vnc-delete.patch 
	xen-start-fail-cleanup.patch xen-vmxassist-irqs.patch 
Log Message:
Upgrade to Xen 3.1.2 bugfix release


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/xen/F-7/.cvsignore,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- .cvsignore	25 May 2007 15:02:47 -0000	1.32
+++ .cvsignore	1 Dec 2007 22:12:16 -0000	1.33
@@ -1,2 +1,4 @@
 LibVNCServer-0.8.2.tar.gz
-xen-3.1.0-src.tgz
+*.rpm
+.build*.log
+xen-*-src*


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/xen/F-7/sources,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- sources	25 May 2007 15:02:47 -0000	1.47
+++ sources	1 Dec 2007 22:12:16 -0000	1.48
@@ -1,2 +1,2 @@
 17a18e398af6c1730f72068022a152aa  LibVNCServer-0.8.2.tar.gz
-b7ae1f652b071862ae4c90b72d549627  xen-3.1.0-src.tgz
+14a7d4220ec5f4fc4fcecb7feb548f76  xen-3.1.2-src.tgz

xen-xs-transactions.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.1 -r 1.2 xen-xs-transactions.patch
Index: xen-xs-transactions.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xen/F-7/xen-xs-transactions.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- xen-xs-transactions.patch	1 May 2007 02:27:22 -0000	1.1
+++ xen-xs-transactions.patch	1 Dec 2007 22:12:16 -0000	1.2
@@ -1,15 +1,258 @@
-diff -r 8ca89a9e54a7 tools/python/xen/xend/XendConfig.py
---- a/tools/python/xen/xend/XendConfig.py	Wed Apr 25 09:44:20 2007 +0100
-+++ b/tools/python/xen/xend/XendConfig.py	Wed Apr 25 12:52:29 2007 -0400
-@@ -26,6 +26,7 @@ from xen.xend.XendDevices import XendDev
+diff -rupN xen-3.1.2-src.orig/tools/examples/#xend-config.sxp.rej# xen-3.1.2-src.new/tools/examples/#xend-config.sxp.rej#
+--- xen-3.1.2-src.orig/tools/examples/#xend-config.sxp.rej#	1969-12-31 19:00:00.000000000 -0500
++++ xen-3.1.2-src.new/tools/examples/#xend-config.sxp.rej#	2007-12-01 15:00:04.000000000 -0500
+@@ -0,0 +1,39 @@
++***************
++*** 202,204 ****
++  # The default password for VNC console on HVM domain.
++  # Empty string is no authentication.
++  (vncpasswd '')
++--- 202,234 ----
++  # The default password for VNC console on HVM domain.
++  # Empty string is no authentication.
++  (vncpasswd '')
+++ 
+++ # The VNC server can be told to negotiate a TLS session
+++ # to encryption all traffic, and provide x509 cert to 
+++ # clients enalbing them to verify server identity. The
+++ # GTK-VNC widget, virt-viewer, virt-manager and VeNCrypt
+++ # all support the VNC extension for TLS used in QEMU. The
+++ # TightVNC/RealVNC/UltraVNC clients do not.
+++ #
+++ # To enable this create x509 certificates / keys in the
+++ # directory /etc/xen/vnc
+++ #
+++ #  ca-cert.pem       - The CA certificate
+++ #  server-cert.pem   - The Server certificate signed by the CA
+++ #  server-key.pem    - The server private key
+++ #
+++ # and then uncomment this next line
+++ # (vnc-tls 1)
+++ #
+++ # The certificate dir can be pointed elsewhere..
+++ #
+++ # (vnc-x509-cert-dir /etc/xen/vnc)
+++ # 
+++ # The server can be told to request & validate an x509
+++ # certificate from the client. Only clients with a cert
+++ # signed by the trusted CA will be able to connect. This
+++ # is more secure the password auth alone. Passwd auth can
+++ # used at the same time if desired. To enable client cert
+++ # checking uncomment this:
+++ #
+++ # (vnc-x509-verify 1)
+diff -rupN xen-3.1.2-src.orig/tools/python/xen/xend/server/blkif.py xen-3.1.2-src.new/tools/python/xen/xend/server/blkif.py
+--- xen-3.1.2-src.orig/tools/python/xen/xend/server/blkif.py	2007-11-14 18:35:27.000000000 -0500
++++ xen-3.1.2-src.new/tools/python/xen/xend/server/blkif.py	2007-12-01 15:01:00.000000000 -0500
+@@ -112,19 +112,26 @@ class BlkifController(DevController):
+                           (self.deviceClass, devid, config))
+ 
+ 
+-    def getDeviceConfiguration(self, devid):
++    def getDeviceConfiguration(self, devid, transaction = None):
+         """Returns the configuration of a device.
+ 
+         @note: Similar to L{configuration} except it returns a dict.
+         @return: dict
+         """
+-        config = DevController.getDeviceConfiguration(self, devid)
+-        devinfo = self.readBackend(devid, 'dev', 'type', 'params', 'mode',
+-                                   'uuid')
++        config = DevController.getDeviceConfiguration(self, devid, transaction)
++        if transaction is None:
++            devinfo = self.readBackend(devid, 'dev', 'type', 'params', 'mode',
++                                       'uuid')
++        else:
++            devinfo = self.readBackendTxn(transaction, devid,
++                                          'dev', 'type', 'params', 'mode', 'uuid')
+         dev, typ, params, mode, uuid = devinfo
+         
+         if dev:
+-            dev_type = self.readFrontend(devid, 'device-type')
++            if transaction is None:
++                dev_type = self.readFrontend(devid, 'device-type')
++            else:
++                dev_type = self.readFrontendTxn(transaction, devid, 'device-type')
+             if dev_type:
+                 dev += ':' + dev_type
+             config['dev'] = dev
+diff -rupN xen-3.1.2-src.orig/tools/python/xen/xend/server/ConsoleController.py xen-3.1.2-src.new/tools/python/xen/xend/server/ConsoleController.py
+--- xen-3.1.2-src.orig/tools/python/xen/xend/server/ConsoleController.py	2007-11-14 18:35:27.000000000 -0500
++++ xen-3.1.2-src.new/tools/python/xen/xend/server/ConsoleController.py	2007-12-01 15:01:00.000000000 -0500
+@@ -19,9 +19,12 @@ class ConsoleController(DevController):
+         return (self.allocateDeviceID(), back, {})
+ 
+ 
+-    def getDeviceConfiguration(self, devid):
+-        result = DevController.getDeviceConfiguration(self, devid)
+-        devinfo = self.readBackend(devid, *self.valid_cfg)
++    def getDeviceConfiguration(self, devid, transaction = None):
++        result = DevController.getDeviceConfiguration(self, devid, transaction)
++        if transaction is None:
++            devinfo = self.readBackend(devid, *self.valid_cfg)
++        else:
++            devinfo = self.readBackendTxn(transaction, devid, *self.valid_cfg)
+         config = dict(zip(self.valid_cfg, devinfo))
+         config = dict([(key, val) for key, val in config.items()
+                        if val != None])
+diff -rupN xen-3.1.2-src.orig/tools/python/xen/xend/server/DevController.py xen-3.1.2-src.new/tools/python/xen/xend/server/DevController.py
+--- xen-3.1.2-src.orig/tools/python/xen/xend/server/DevController.py	2007-11-14 18:35:27.000000000 -0500
++++ xen-3.1.2-src.new/tools/python/xen/xend/server/DevController.py	2007-12-01 15:01:00.000000000 -0500
+@@ -239,15 +239,15 @@ class DevController:
+ 
+         self.vm._removeVm("device/%s/%d" % (self.deviceClass, dev))
+ 
+-    def configurations(self):
+-        return map(self.configuration, self.deviceIDs())
++    def configurations(self, transaction = None):
++        return map(lambda x: self.configuration(x, transaction), self.deviceIDs(transaction))
+ 
+ 
+-    def configuration(self, devid):
++    def configuration(self, devid, transaction = None):
+         """@return an s-expression giving the current configuration of the
+         specified device.  This would be suitable for giving to {@link
+         #createDevice} in order to recreate that device."""
+-        configDict = self.getDeviceConfiguration(devid)
++        configDict = self.getDeviceConfiguration(devid, transaction)
+         sxpr = [self.deviceClass]
+         for key, val in configDict.items():
+             if isinstance(val, (types.ListType, types.TupleType)):
+@@ -273,13 +273,16 @@ class DevController:
+                                    'id', devid]]
+ 
+ 
+-    def getDeviceConfiguration(self, devid):
++    def getDeviceConfiguration(self, devid, transaction = None):
+         """Returns the configuration of a device.
+ 
+         @note: Similar to L{configuration} except it returns a dict.
+         @return: dict
+         """
+-        backdomid = xstransact.Read(self.frontendPath(devid), "backend-id")
++        if transaction is None:
++            backdomid = xstransact.Read(self.frontendPath(devid), "backend-id")
++        else:
++            backdomid = transaction.read(self.frontendPath(devid) + "/backend-id")
+         if backdomid is None:
+             raise VmError("Device %s not connected" % devid)
+ 
+@@ -416,14 +419,28 @@ class DevController:
+         else:
+             raise VmError("Device %s not connected" % devid)
+ 
++    def readBackendTxn(self, transaction, devid, *args):
++        frontpath = self.frontendPath(devid)
++        backpath = transaction.read(frontpath + "/backend")
++        if backpath:
++            paths = map(lambda x: backpath + "/" + x, args)
++            return transaction.read(*paths)
++        else:
++            raise VmError("Device %s not connected" % devid)
++
+     def readFrontend(self, devid, *args):
+         return xstransact.Read(self.frontendPath(devid), *args)
+ 
++    def readFrontendTxn(self, transaction, devid, *args):
++        paths = map(lambda x: self.frontendPath(devid) + "/" + x, args)
++        return transaction.read(*paths)
++
+     def deviceIDs(self, transaction = None):
+         """@return The IDs of each of the devices currently configured for
+         this instance's deviceClass.
+         """
+         fe = self.backendRoot()
++
+         if transaction:
+             return map(lambda x: int(x.split('/')[-1]), transaction.list(fe))
+         else:
+diff -rupN xen-3.1.2-src.orig/tools/python/xen/xend/server/netif.py xen-3.1.2-src.new/tools/python/xen/xend/server/netif.py
+--- xen-3.1.2-src.orig/tools/python/xen/xend/server/netif.py	2007-11-14 18:35:27.000000000 -0500
++++ xen-3.1.2-src.new/tools/python/xen/xend/server/netif.py	2007-12-01 15:01:00.000000000 -0500
+@@ -147,16 +147,19 @@ class NetifController(DevController):
+         return (devid, back, front)
+ 
+ 
+-    def getDeviceConfiguration(self, devid):
++    def getDeviceConfiguration(self, devid, transaction = None):
+         """@see DevController.configuration"""
+ 
+-        result = DevController.getDeviceConfiguration(self, devid)
++        result = DevController.getDeviceConfiguration(self, devid, transaction)
+ 
+         config_path = "device/%s/%d/" % (self.deviceClass, devid)
+         devinfo = ()
+         for x in ( 'script', 'ip', 'bridge', 'mac',
+                    'type', 'vifname', 'rate', 'uuid', 'model' ):
+-            y = self.vm._readVm(config_path + x)
[...2902 lines suppressed...]
++                vcpu_util[str(i)] = util
++                
++        return vcpu_util
++
++    def get_consoles(self):
++        return self.info.get('console_refs', [])
++
++    def get_vifs(self):
++        return self.info.get('vif_refs', [])
++
++    def get_vbds(self):
++        return self.info.get('vbd_refs', [])
++
++    def get_vtpms(self):
++        return self.info.get('vtpm_refs', [])
++
++    def create_vbd(self, xenapi_vbd, vdi_image_path):
++        """Create a VBD using a VDI from XendStorageRepository.
++
++        @param xenapi_vbd: vbd struct from the Xen API
++        @param vdi_image_path: VDI UUID
++        @rtype: string
++        @return: uuid of the device
++        """
++        xenapi_vbd['image'] = vdi_image_path
++        if vdi_image_path.startswith('tap'):
++            dev_uuid = self.info.device_add('tap', cfg_xenapi = xenapi_vbd)
++        else:
++            dev_uuid = self.info.device_add('vbd', cfg_xenapi = xenapi_vbd)
++            
++        if not dev_uuid:
++            raise XendError('Failed to create device')
++
++        if self._stateGet() in (XEN_API_VM_POWER_STATE_RUNNING,
++                                XEN_API_VM_POWER_STATE_PAUSED):
++            _, config = self.info['devices'][dev_uuid]
++            
++            if vdi_image_path.startswith('tap'):
++                dev_control = self.getDeviceController('tap')
++            else:
++                dev_control = self.getDeviceController('vbd')
++
++            try:
++                devid = dev_control.createDevice(config)
++                dev_control.waitForDevice(devid)
++                self.info.device_update(dev_uuid,
++                                        cfg_xenapi = {'devid': devid})
++            except Exception, exn:
++                log.exception(exn)
++                del self.info['devices'][dev_uuid]
++                self.info['vbd_refs'].remove(dev_uuid)
++                raise
++            
++        return dev_uuid
++
++    def create_phantom_vbd_with_vdi(self, xenapi_vbd, vdi_image_path):
++        """Create a VBD using a VDI from XendStorageRepository.
++
++        @param xenapi_vbd: vbd struct from the Xen API
++        @param vdi_image_path: VDI UUID
++        @rtype: string
++        @return: uuid of the device
++        """
++        xenapi_vbd['image'] = vdi_image_path
++        dev_uuid = self.info.phantom_device_add('tap', cfg_xenapi = xenapi_vbd)
++        if not dev_uuid:
++            raise XendError('Failed to create device')
++
++        if self._stateGet() == XEN_API_VM_POWER_STATE_RUNNING:
++            _, config = self.info['devices'][dev_uuid]
++            config['devid'] = self.getDeviceController('tap').createDevice(config)
++
++        return config['devid']
++
++    def create_vif(self, xenapi_vif):
++        """Create VIF device from the passed struct in Xen API format.
++
++        @param xenapi_vif: Xen API VIF Struct.
++        @rtype: string
++        @return: UUID
++        """
++        dev_uuid = self.info.device_add('vif', cfg_xenapi = xenapi_vif)
++        if not dev_uuid:
++            raise XendError('Failed to create device')
++        
++        if self._stateGet() in (XEN_API_VM_POWER_STATE_RUNNING,
++                                XEN_API_VM_POWER_STATE_PAUSED):
++
++            _, config = self.info['devices'][dev_uuid]
++            dev_control = self.getDeviceController('vif')
++
++            try:
++                devid = dev_control.createDevice(config)
++                dev_control.waitForDevice(devid)
++                self.info.device_update(dev_uuid,
++                                        cfg_xenapi = {'devid': devid})
++            except Exception, exn:
++                log.exception(exn)
++                del self.info['devices'][dev_uuid]
++                self.info['vif_refs'].remove(dev_uuid)
++                raise            
++ 
++        return dev_uuid
++
++    def create_vtpm(self, xenapi_vtpm):
++        """Create a VTPM device from the passed struct in Xen API format.
++
++        @return: uuid of the device
++        @rtype: string
++        """
++
++        if self._stateGet() not in (DOM_STATE_HALTED,):
++            raise VmError("Can only add vTPM to a halted domain.")
++        if self.get_vtpms() != []:
++            raise VmError('Domain already has a vTPM.')
++        dev_uuid = self.info.device_add('vtpm', cfg_xenapi = xenapi_vtpm)
++        if not dev_uuid:
++            raise XendError('Failed to create device')
++
++        return dev_uuid
++
++    def create_console(self, xenapi_console):
++        """ Create a console device from a Xen API struct.
++
++        @return: uuid of device
++        @rtype: string
++        """
++        if self._stateGet() not in (DOM_STATE_HALTED,):
++            raise VmError("Can only add console to a halted domain.")
++
++        dev_uuid = self.info.device_add('console', cfg_xenapi = xenapi_console)
++        if not dev_uuid:
++            raise XendError('Failed to create device')
++
++        return dev_uuid
++
++    def destroy_device_by_uuid(self, dev_type, dev_uuid):
++        if dev_uuid not in self.info['devices']:
++            raise XendError('Device does not exist')
++
++        try:
++            if self._stateGet() in (XEN_API_VM_POWER_STATE_RUNNING,
++                                    XEN_API_VM_POWER_STATE_PAUSED):
++                _, config = self.info['devices'][dev_uuid]
++                devid = config.get('devid')
++                if devid != None:
++                    self.getDeviceController(dev_type).destroyDevice(devid, force = False)
++                else:
++                    raise XendError('Unable to get devid for device: %s:%s' %
++                                    (dev_type, dev_uuid))
++        finally:
++            del self.info['devices'][dev_uuid]
++            self.info['%s_refs' % dev_type].remove(dev_uuid)
++
++    def destroy_vbd(self, dev_uuid):
++        self.destroy_device_by_uuid('vbd', dev_uuid)
++
++    def destroy_vif(self, dev_uuid):
++        self.destroy_device_by_uuid('vif', dev_uuid)
++
++    def destroy_vtpm(self, dev_uuid):
++        self.destroy_device_by_uuid('vtpm', dev_uuid)
++            
++    def has_device(self, dev_class, dev_uuid):
++        return (dev_uuid in self.info['%s_refs' % dev_class.lower()])
++
++    def __str__(self):
++        return '<domain id=%s name=%s memory=%s state=%s>' % \
++               (str(self.domid), self.info['name_label'],
++                str(self.info['memory_dynamic_max']), DOM_STATES[self._stateGet()])
++
++    __repr__ = __str__
++
+diff -rupN xen-3.1.2-src.orig/tools/python/xen/xend/XendDomain.py xen-3.1.2-src.new/tools/python/xen/xend/XendDomain.py
+--- xen-3.1.2-src.orig/tools/python/xen/xend/XendDomain.py	2007-11-14 18:35:27.000000000 -0500
++++ xen-3.1.2-src.new/tools/python/xen/xend/XendDomain.py	2007-12-01 15:01:00.000000000 -0500
+@@ -393,13 +393,22 @@ class XendDomain:
+         @rtype: None
+         """
+ 
++        txn = xstransact()
++        try:
++            self._refreshTxn(txn, refresh_shutdown)
++            txn.commit()
++        except:
++            txn.abort()
++            raise
++
++    def _refreshTxn(self, transaction, refresh_shutdown):
+         running = self._running_domains()
+         # Add domains that are not already tracked but running in Xen,
+         # and update domain state for those that are running and tracked.
+         for dom in running:
+             domid = dom['domid']
+             if domid in self.domains:
+-                self.domains[domid].update(dom, refresh_shutdown)
++                self.domains[domid].update(dom, refresh_shutdown, transaction)
+             elif domid not in self.domains and dom['dying'] != 1:
+                 try:
+                     new_dom = XendDomainInfo.recreate(dom, False)


Index: xen.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xen/F-7/xen.spec,v
retrieving revision 1.188
retrieving revision 1.189
diff -u -r1.188 -r1.189
--- xen.spec	26 Oct 2007 16:38:01 -0000	1.188
+++ xen.spec	1 Dec 2007 22:12:16 -0000	1.189
@@ -2,8 +2,8 @@
 
 Summary: Xen is a virtual machine monitor
 Name:    xen
-Version: 3.1.0
-Release: 8%{dist}
+Version: 3.1.2
+Release: 1%{dist}
 Group:   Development/Libraries
 License: GPL
 URL:     http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html
@@ -15,21 +15,11 @@
 Patch6: xen-net-bridge.patch
 Patch13: xen-dumpdir.patch
 Patch18: xen-block-readonly.patch
-Patch19: xen-start-fail-cleanup.patch
 
 Patch20: xen-blktap-no-aio-epoll.patch
-Patch21: xen-blktap-error-returns.patch
-Patch25: xen-qemu-vnc-delete.patch
 Patch26: xen-hvm-save-paths.patch
-Patch28: xen-keyboard.patch
-Patch29: xen-3.1.0-libxc-native-protocol.patch
-Patch30: xen-3.1.0-dev-native-protocol.patch
-Patch32: xen-clobber-vif-type.patch
-Patch33: xen-vmxassist-irqs.patch
+Patch27: xen-console-log.patch
 Patch34: xen-3.1.0-no-xenapi-docs.patch
-Patch35: xen-qemu-rtl8139-checksum.patch
-
-Patch37: xen-baked-tmpfile.patch
 
 # Patches to modify the default config of xend
 Patch100: xen-config-dom0-minmem.patch
@@ -55,11 +45,6 @@
 Patch303: vnc-client-iterator.patch
 Patch304: vnc-double-cleanup.patch
 
-# CVE-2007-1321
-Patch600: xen-qemu-ne2000-CVE-2007-1321.patch
-# CVE-2007-4993
-Patch601: pygrub-dont-exec.patch
-
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 BuildRequires: transfig libidn-devel zlib-devel texi2html SDL-devel curl-devel
 BuildRequires: libX11-devel python-devel ghostscript tetex-latex 
@@ -126,22 +111,12 @@
 %patch6 -p1
 %patch13 -p1
 %patch18 -p1
-%patch19 -p1
 
 %patch20 -p1
-%patch21 -p1
-%patch25 -p1
 %patch26 -p1
-%patch28 -p1
-%patch29 -p1
-%patch30 -p1
+%patch27 -p1
 
-%patch32 -p1
-%patch33 -p1
 %patch34 -p1
-%patch35 -p1
-
-%patch37 -p1
 
 # config patches
 %patch100 -p1
@@ -174,10 +149,6 @@
 %patch304 -p2
 popd
 
-# CVE patches
-%patch600 -p1
-%patch601 -p1
-
 %build
 # libvncserver first
 pushd LibVNCServer-0.8.2
@@ -295,6 +266,9 @@
 %{_libdir}/*.a
 
 %changelog
+* Sat Dec  1 2007 Daniel P. Berrange <berrange at redhat.com> - 3.1.2-1.fc7
+- Upgrade to 3.1.2 bugfix release
+
 * Fri Oct 26 2007 Daniel P. Berrange <berrange at redhat.com> - 3.1.0-8.fc7
 - Fixed xenbaked tmpfile flaw (CVE-2007-3919)
 


--- pygrub-dont-exec.patch DELETED ---


--- xen-3.1.0-dev-native-protocol.patch DELETED ---


--- xen-3.1.0-libxc-native-protocol.patch DELETED ---


--- xen-baked-tmpfile.patch DELETED ---


--- xen-blktap-error-returns.patch DELETED ---


--- xen-clobber-vif-type.patch DELETED ---


--- xen-keyboard.patch DELETED ---


--- xen-qemu-ne2000-CVE-2007-1321.patch DELETED ---


--- xen-qemu-rtl8139-checksum.patch DELETED ---


--- xen-qemu-vnc-delete.patch DELETED ---


--- xen-start-fail-cleanup.patch DELETED ---


--- xen-vmxassist-irqs.patch DELETED ---




More information about the fedora-extras-commits mailing list