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