Bug#655318: cherrypick upstream patch to fix drawing bugs (and add -dbg pkg)
Package: xserver-xorg-video-qxl
Version: 0.0.16-1
Hi,
using certain window managers over spice, we found corrupted
drawables
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-qxl/+bug/913314
and xorg segfaults
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-qxl/+bug/913311
Cherrypicking upstream commit id c77ba9f217093f946a4c6bf6edf9f34b24844d8d
fixes both. The following patch does that, as well as adding a -dbg
package (which helped track down the needed patch).
(it also updates the maintainer which you obviously do not want for
the debian package, sorry about that.)
thanks,
-serge
============================= Debdiff: =================================
diff -Nru xserver-xorg-video-qxl-0.0.16/debian/changelog xserver-xorg-video-qxl-0.0.16/debian/changelog
--- xserver-xorg-video-qxl-0.0.16/debian/changelog 2011-11-12 00:16:28.000000000 +0100
+++ xserver-xorg-video-qxl-0.0.16/debian/changelog 2012-01-10 11:34:59.000000000 +0100
@@ -1,3 +1,15 @@
+xserver-xorg-video-qxl (0.0.16-1ubuntu2) precise; urgency=low
+
+ * add translate-the-access-region.patch.
+
+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Tue, 10 Jan 2012 11:34:13 +0100
+
+xserver-xorg-video-qxl (0.0.16-1ubuntu1) precise; urgency=low
+
+ * Add a debug package.
+
+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Tue, 10 Jan 2012 11:28:58 +0100
+
xserver-xorg-video-qxl (0.0.16-1) unstable; urgency=low
[ Liang Guo ]
diff -Nru xserver-xorg-video-qxl-0.0.16/debian/control xserver-xorg-video-qxl-0.0.16/debian/control
--- xserver-xorg-video-qxl-0.0.16/debian/control 2011-09-17 15:45:28.000000000 +0200
+++ xserver-xorg-video-qxl-0.0.16/debian/control 2012-01-10 11:29:21.000000000 +0100
@@ -1,7 +1,8 @@
Source: xserver-xorg-video-qxl
Section: x11
Priority: optional
-Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Uploaders: Liang Guo <bluestonechina@gmail.com>, Cyril Brulebois <kibi@debian.org>
Build-Depends:
debhelper (>= 8),
@@ -39,3 +40,17 @@
<URL:http://www.X.org>
.
This package is built from the X.org xf86-video-qxl driver module.
+
+Package: xserver-xorg-video-qxl-dbg
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, xserver-xorg-video-qxl (= ${binary:Version})
+Section: debug
+Description: X.Org X server -- QXL display driver
+ This package provides the driver for QXL video device, i.e. if Linux is
+ running inside a RedHat Enterprise Virtualization (RHEV) environment, or
+ other SPICE-compatible KVM/Qemu emulator.
+ .
+ More information about X.Org can be found at:
+ <URL:http://www.X.org>
+ .
+ This package contains the debugging symbols
diff -Nru xserver-xorg-video-qxl-0.0.16/debian/patches/series xserver-xorg-video-qxl-0.0.16/debian/patches/series
--- xserver-xorg-video-qxl-0.0.16/debian/patches/series 1970-01-01 01:00:00.000000000 +0100
+++ xserver-xorg-video-qxl-0.0.16/debian/patches/series 2012-01-10 11:34:09.000000000 +0100
@@ -0,0 +1 @@
+translate-the-access-region.patch
diff -Nru xserver-xorg-video-qxl-0.0.16/debian/patches/translate-the-access-region.patch xserver-xorg-video-qxl-0.0.16/debian/patches/translate-the-access-region.patch
--- xserver-xorg-video-qxl-0.0.16/debian/patches/translate-the-access-region.patch 1970-01-01 01:00:00.000000000 +0100
+++ xserver-xorg-video-qxl-0.0.16/debian/patches/translate-the-access-region.patch 2012-01-10 11:34:00.000000000 +0100
@@ -0,0 +1,48 @@
+commit c77ba9f217093f946a4c6bf6edf9f34b24844d8d
+Author: Søren Sandmann <ssp@redhat.com>
+Date: Fri Oct 28 12:56:30 2011 -0400
+
+ Translate the access region according to the drawable offset.
+
+ The driver code expects to be given coordinates relative to the
+ offscreen pixmap.
+
+diff --git a/src/uxa/uxa.c b/src/uxa/uxa.c
+index 83e06cc..9d02e34 100644
+--- a/src/uxa/uxa.c
++++ b/src/uxa/uxa.c
+@@ -143,19 +143,19 @@ Bool uxa_prepare_access(DrawablePtr pDrawable, RegionPtr region, uxa_access_t ac
+ {
+ ScreenPtr pScreen = pDrawable->pScreen;
+ uxa_screen_t *uxa_screen = uxa_get_screen(pScreen);
+- PixmapPtr pPixmap = uxa_get_drawable_pixmap(pDrawable);
+- Bool offscreen = uxa_pixmap_is_offscreen(pPixmap);
++ int xoff, yoff;
++ PixmapPtr pPixmap = uxa_get_offscreen_pixmap(pDrawable, &xoff, &yoff);
+ BoxRec box;
+ RegionRec region_rec;
+ Bool result;
+
+- if (!offscreen)
++ if (!pPixmap)
+ return TRUE;
+
+ box.x1 = 0;
+ box.y1 = 0;
+- box.x2 = pPixmap->drawable.width;
+- box.y2 = pPixmap->drawable.height;
++ box.x2 = pDrawable->width;
++ box.y2 = pDrawable->height;
+
+ REGION_INIT (pScreen, ®ion_rec, &box, 1);
+ if (!region)
+@@ -168,7 +168,8 @@ Bool uxa_prepare_access(DrawablePtr pDrawable, RegionPtr region, uxa_access_t ac
+ */
+ REGION_INTERSECT (pScreen, region, region, ®ion_rec);
+ #endif
+-
++ REGION_TRANSLATE (pScreen, region, xoff, yoff);
++
+ result = TRUE;
+
+ if (uxa_screen->info->prepare_access)
diff -Nru xserver-xorg-video-qxl-0.0.16/debian/rules xserver-xorg-video-qxl-0.0.16/debian/rules
--- xserver-xorg-video-qxl-0.0.16/debian/rules 2011-09-17 15:45:28.000000000 +0200
+++ xserver-xorg-video-qxl-0.0.16/debian/rules 2012-01-10 11:10:15.000000000 +0100
@@ -1,5 +1,9 @@
#!/usr/bin/make -f
+.PHONY: override_dh_strip
+override_dh_strip:
+ dh_strip --dbg-package=xserver-xorg-video-qxl-dbg
+
# Install in debian/tmp to retain control through dh_install:
override_dh_auto_install:
dh_auto_install --destdir=debian/tmp
Reply to: