summaryrefslogtreecommitdiff
path: root/extra/cairo
diff options
context:
space:
mode:
Diffstat (limited to 'extra/cairo')
-rw-r--r--extra/cairo/PKGBUILD19
-rw-r--r--extra/cairo/libpng16.patch40
2 files changed, 52 insertions, 7 deletions
diff --git a/extra/cairo/PKGBUILD b/extra/cairo/PKGBUILD
index 13c45840d..fa091c893 100644
--- a/extra/cairo/PKGBUILD
+++ b/extra/cairo/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 178617 2013-02-25 20:45:00Z andyrtr $
+# $Id: PKGBUILD 184362 2013-05-06 19:36:38Z foutrelis $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Brice Carpentier <brice@daknet.org>
pkgname=cairo
pkgver=1.12.14
-pkgrel=3
+pkgrel=4
pkgdesc="Cairo vector graphics library"
arch=(i686 x86_64 'mips64el')
license=('LGPL' 'MPL')
@@ -18,11 +18,16 @@ makedepends=('mesa>=9.1' 'mesa-libgl>=9.1' 'librsvg' 'gtk2' 'poppler-glib' 'libs
provides=('cairo-xcb')
replaces=('cairo-xcb')
options=('!libtool')
-source=(http://cairographics.org/releases/$pkgname-$pkgver.tar.xz)
-sha1sums=('9106ab09b2e7b9f90521b18dd4a7e9577eba6c15')
+source=(http://cairographics.org/releases/$pkgname-$pkgver.tar.xz
+ libpng16.patch)
+sha1sums=('9106ab09b2e7b9f90521b18dd4a7e9577eba6c15'
+ 'c9911f185637d266ce1d2985bd6fb7d0df3d75b2')
build() {
- cd "$srcdir/$pkgname-$pkgver"
+ cd $pkgname-$pkgver
+
+ patch -Np1 -i ../libpng16.patch
+
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
@@ -50,8 +55,8 @@ build() {
#}
package() {
- depends=('libpng' 'libxrender' 'libxext' 'fontconfig' 'pixman>=0.28.0' 'glib2' 'mesa>=9.1' 'libgl' 'sh')
+ depends=('libpng' 'libxrender' 'libxext' 'fontconfig' 'pixman>=0.28.0' 'glib2' 'mesa>=9.1' 'libgl' 'sh' 'lzo2')
- cd "$srcdir/$pkgname-$pkgver"
+ cd $pkgname-$pkgver
make DESTDIR="$pkgdir" install
}
diff --git a/extra/cairo/libpng16.patch b/extra/cairo/libpng16.patch
new file mode 100644
index 000000000..c16317811
--- /dev/null
+++ b/extra/cairo/libpng16.patch
@@ -0,0 +1,40 @@
+From 2dd2c826a5b367d32cf2d48ed69754795990c5db Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue, 16 Apr 2013 09:58:56 +0000
+Subject: png: Avoid marking the surface as in error after a png warning
+
+It turns out that libpng will continue to load an image after throwing a
+warning, and that libpng16 now throws warnings for images that libpng15
+and earlier loaded without error. As we were happily loading those
+images into cairo surfaces before, we are therefore being overzealous
+in throwing an error now - so just squelch the warning.
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+diff --git a/src/cairo-png.c b/src/cairo-png.c
+index e74a4a8..068617d 100644
+--- a/src/cairo-png.c
++++ b/src/cairo-png.c
+@@ -149,13 +149,13 @@ static void
+ png_simple_warning_callback (png_structp png,
+ png_const_charp error_msg)
+ {
+- cairo_status_t *error = png_get_error_ptr (png);
+-
+- /* default to the most likely error */
+- if (*error == CAIRO_STATUS_SUCCESS)
+- *error = _cairo_error (CAIRO_STATUS_NO_MEMORY);
+-
+- /* png does not expect to abort and will try to tidy up after a warning */
++ /* png does not expect to abort and will try to tidy up and continue
++ * loading the image after a warning. So we also want to return the
++ * (incorrect?) surface.
++ *
++ * We use our own warning callback to squelch any attempts by libpng
++ * to write to stderr as we may not be in control of that output.
++ */
+ }
+
+
+--
+cgit v0.9.0.2-2-gbebe