[arch-commits] CVS update of arch/build/lib/cairo (2 files)

Jan de Groot jgc at archlinux.org
Tue Jun 19 17:58:37 EDT 2007


    Date: Tuesday, June 19, 2007 @ 17:58:37
  Author: jgc
    Path: /home/cvs-arch/arch/build/lib/cairo

   Added: cairo-1.4.8-hide-xerrors.patch (1.1)
Modified: PKGBUILD (1.20 -> 1.21)

upgpkg: cairo 1.4.8-2
Retry an upgrade to 1.4.8


--------------------------------+
 PKGBUILD                       |   13 ++++-----
 cairo-1.4.8-hide-xerrors.patch |   52 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+), 7 deletions(-)


Index: arch/build/lib/cairo/PKGBUILD
diff -u arch/build/lib/cairo/PKGBUILD:1.20 arch/build/lib/cairo/PKGBUILD:1.21
--- arch/build/lib/cairo/PKGBUILD:1.20	Mon Jun 11 18:03:14 2007
+++ arch/build/lib/cairo/PKGBUILD	Tue Jun 19 17:58:37 2007
@@ -1,12 +1,11 @@
-# $Id: PKGBUILD,v 1.20 2007/06/11 22:03:14 jgc Exp $
+# $Id: PKGBUILD,v 1.21 2007/06/19 21:58:37 jgc Exp $
 # Maintainer: Jan de Groot <jgc at archlinux.org>
 # Contributor: Brice Carpentier <brice at daknet.org>
 
 pkgname=cairo
-pkgver=1.4.6
+pkgver=1.4.8
 pkgrel=2
 pkgdesc="Cairo vector graphics library"
-force=y
 arch=(i686 x86_64)
 license=('LGPL' 'MPL')
 url="http://cairographics.org/"
@@ -14,13 +13,13 @@
 makedepends=('pkgconfig')
 options=('!libtool')
 source=(http://cairographics.org/releases/${pkgname}-${pkgver}.tar.gz
-	cairo-scaled-font-check.patch)
-md5sums=('ae16e73f9dca46ac93b4ce435e93773c'
-         'bdd8d1be49e133566d005123a2768a25')
+	cairo-1.4.8-hide-xerrors.patch)
+md5sums=('5b9db574c9fbb94ce52047600190a1ba'
+         'a6613c6046aeebf6428cd1911cc47490')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  patch -Np1 -R -i ${startdir}/src/cairo-scaled-font-check.patch || return 1
+  patch -Np0 -i ${startdir}/src/cairo-1.4.8-hide-xerrors.patch || return 1
   ./configure --prefix=/usr
   make || return 1
   make DESTDIR=${startdir}/pkg install
Index: arch/build/lib/cairo/cairo-1.4.8-hide-xerrors.patch
diff -u /dev/null arch/build/lib/cairo/cairo-1.4.8-hide-xerrors.patch:1.1
--- /dev/null	Tue Jun 19 17:58:37 2007
+++ arch/build/lib/cairo/cairo-1.4.8-hide-xerrors.patch	Tue Jun 19 17:58:37 2007
@@ -0,0 +1,52 @@
+--- src/cairo-xlib-display.c
++++ src/cairo-xlib-display.c
+@@ -405,10 +405,13 @@ void
+ _cairo_xlib_display_notify (cairo_xlib_display_t *display)
+ {
+     cairo_xlib_job_t *jobs, *job, *freelist;
++    Display *dpy = display->display;
+ 
+     CAIRO_MUTEX_LOCK (display->mutex);
+     jobs = display->workqueue;
+     while (jobs != NULL) {
++	cairo_xlib_error_func_t old_handler;
++
+ 	display->workqueue = NULL;
+ 	CAIRO_MUTEX_UNLOCK (display->mutex);
+ 
+@@ -422,24 +425,32 @@ _cairo_xlib_display_notify (cairo_xlib_d
+ 	} while (jobs != NULL);
+ 	freelist = jobs = job;
+ 
++	/* protect the notifies from triggering XErrors
++	 * XXX There is a remote possibility that the application has
++	 * been reallocated an XID that we are about to destroy here... */
++	XSync (dpy, False);
++	old_handler = XSetErrorHandler (_noop_error_handler);
++
+ 	do {
+ 	    job = jobs;
+ 	    jobs = job->next;
+ 
+ 	    switch (job->type){
+ 	    case WORK:
+-		job->func.work.notify (display->display, job->func.work.data);
++		job->func.work.notify (dpy, job->func.work.data);
+ 		if (job->func.work.destroy != NULL)
+ 		    job->func.work.destroy (job->func.work.data);
+ 		break;
+ 
+ 	    case RESOURCE:
+-		job->func.resource.notify (display->display,
+-			                   job->func.resource.xid);
++		job->func.resource.notify (dpy, job->func.resource.xid);
+ 		break;
+ 	    }
+ 	} while (jobs != NULL);
+ 
++	XSync (dpy, False);
++	XSetErrorHandler (old_handler);
++
+ 	CAIRO_MUTEX_LOCK (display->mutex);
+ 	do {
+ 	    job = freelist;




More information about the arch-commits mailing list