[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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, &region_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, &region_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: