[arch-commits] CVS update of arch/build/lib/cairo (2 files)
Jan de Groot
jgc at archlinux.org
Tue Jun 19 21:58:37 UTC 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