summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuli Suominen <ssuominen@gentoo.org>2013-04-27 10:25:10 +0000
committerSamuli Suominen <ssuominen@gentoo.org>2013-04-27 10:25:10 +0000
commit8914dda1558f2e435a1a381157c9fdd333664868 (patch)
tree16decc3e26f17b3ac43936dba221a811db216b4d /x11-libs/cairo
parentsys-fs/aufs3: Bump to latest aufs3 release (diff)
downloadgentoo-2-8914dda1558f2e435a1a381157c9fdd333664868.tar.gz
gentoo-2-8914dda1558f2e435a1a381157c9fdd333664868.tar.bz2
gentoo-2-8914dda1558f2e435a1a381157c9fdd333664868.zip
Backport upstream compability patch for libpng16 wrt #465658 by Richard Grenville
(Portage version: 2.2.0_alpha173/cvs/Linux x86_64, signed Manifest commit with key 4868F14D)
Diffstat (limited to 'x11-libs/cairo')
-rw-r--r--x11-libs/cairo/ChangeLog9
-rw-r--r--x11-libs/cairo/cairo-1.12.14-r2.ebuild148
-rw-r--r--x11-libs/cairo/files/cairo-1.12.14-libpng16.patch40
3 files changed, 196 insertions, 1 deletions
diff --git a/x11-libs/cairo/ChangeLog b/x11-libs/cairo/ChangeLog
index 7ef37d6de19e..789ce4191bcb 100644
--- a/x11-libs/cairo/ChangeLog
+++ b/x11-libs/cairo/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for x11-libs/cairo
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/cairo/ChangeLog,v 1.333 2013/04/27 05:20:41 ssuominen Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/cairo/ChangeLog,v 1.334 2013/04/27 10:25:10 ssuominen Exp $
+
+*cairo-1.12.14-r2 (27 Apr 2013)
+
+ 27 Apr 2013; Samuli Suominen <ssuominen@gentoo.org> +cairo-1.12.14-r2.ebuild,
+ +files/cairo-1.12.14-libpng16.patch:
+ Backport upstream compability patch for libpng16 wrt #465658 by Richard
+ Grenville
*cairo-1.12.14-r1 (27 Apr 2013)
diff --git a/x11-libs/cairo/cairo-1.12.14-r2.ebuild b/x11-libs/cairo/cairo-1.12.14-r2.ebuild
new file mode 100644
index 000000000000..3d6843f1b9f1
--- /dev/null
+++ b/x11-libs/cairo/cairo-1.12.14-r2.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/cairo/cairo-1.12.14-r2.ebuild,v 1.1 2013/04/27 10:25:10 ssuominen Exp $
+
+EAPI=5
+
+inherit eutils flag-o-matic autotools
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-2
+ EGIT_REPO_URI="git://anongit.freedesktop.org/git/cairo"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="http://cairographics.org/releases/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+DESCRIPTION="A vector graphics library with cross-device output support"
+HOMEPAGE="http://cairographics.org/"
+LICENSE="|| ( LGPL-2.1 MPL-1.1 )"
+SLOT="0"
+IUSE="X aqua debug directfb doc drm gallium +glib legacy-drivers opengl openvg qt4 static-libs +svg xcb"
+
+# Test causes a circular depend on gtk+... since gtk+ needs cairo but test needs gtk+ so we need to block it
+RESTRICT="test"
+
+RDEPEND="media-libs/fontconfig
+ media-libs/freetype:2
+ media-libs/libpng:0=
+ sys-libs/zlib
+ >=x11-libs/pixman-0.28.0
+ directfb? ( dev-libs/DirectFB )
+ glib? ( >=dev-libs/glib-2.28.6:2 )
+ opengl? ( || ( media-libs/mesa[egl] media-libs/opengl-apple ) )
+ openvg? ( media-libs/mesa[openvg] )
+ qt4? ( >=dev-qt/qtgui-4.8:4 )
+ X? (
+ >=x11-libs/libXrender-0.6
+ x11-libs/libXext
+ x11-libs/libX11
+ drm? (
+ >=virtual/udev-136
+ gallium? ( media-libs/mesa[gallium] )
+ )
+ )
+ xcb? (
+ x11-libs/libxcb
+ x11-libs/xcb-util
+ )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ >=sys-devel/libtool-2
+ doc? (
+ >=dev-util/gtk-doc-1.6
+ ~app-text/docbook-xml-dtd-4.2
+ )
+ X? (
+ x11-proto/renderproto
+ drm? (
+ x11-proto/xproto
+ >=x11-proto/xextproto-7.1
+ )
+ )"
+
+# drm module requires X
+# for gallium we need to enable drm
+REQUIRED_USE="
+ drm? ( X )
+ gallium? ( drm )
+"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.8.8-interix.patch
+ use legacy-drivers && epatch "${FILESDIR}"/${PN}-1.10.0-buggy_gradients.patch
+ epatch "${FILESDIR}"/${PN}-respect-fontconfig.patch
+ epatch "${FILESDIR}"/${PN}-1.12.12-disable-test-suite.patch
+ epatch "${FILESDIR}"/${PN}-1.12.14-libpng16.patch
+ epatch_user
+
+ # Slightly messed build system YAY
+ if [[ ${PV} == *9999* ]]; then
+ touch boilerplate/Makefile.am.features
+ touch src/Makefile.am.features
+ touch ChangeLog
+ fi
+
+ # We need to run elibtoolize to ensure correct so versioning on FreeBSD
+ # upgraded to an eautoreconf for the above interix patch.
+ eautoreconf
+}
+
+src_configure() {
+ local myopts
+
+ # SuperH doesn't have native atomics yet
+ use sh && myopts+=" --disable-atomic"
+
+ [[ ${CHOST} == *-interix* ]] && append-flags -D_REENTRANT
+ # http://bugs.freedesktop.org/show_bug.cgi?id=15463
+ [[ ${CHOST} == *-solaris* ]] && append-flags -D_POSIX_PTHREAD_SEMANTICS
+
+ #gets rid of fbmmx.c inlining warnings
+ append-flags -finline-limit=1200
+
+ use X && myopts+=" --enable-tee=yes"
+
+ use elibc_FreeBSD && myopts+=" --disable-symbol-lookup"
+
+ # --disable-xcb-lib:
+ # do not override good xlib backed by hardforcing rendering over xcb
+ # --disable-valgrind:
+ # valgrind code is busted as per upstream
+ econf \
+ --disable-dependency-tracking \
+ $(use_with X x) \
+ $(use_enable X xlib) \
+ $(use_enable X xlib-xrender) \
+ $(use_enable aqua quartz) \
+ $(use_enable aqua quartz-image) \
+ $(use_enable debug test-surfaces) \
+ $(use_enable directfb) \
+ $(use_enable glib gobject) \
+ $(use_enable doc gtk-doc) \
+ $(use_enable openvg vg) \
+ $(use_enable opengl gl) \
+ $(use_enable qt4 qt) \
+ $(use_enable static-libs static) \
+ $(use_enable svg) \
+ $(use_enable xcb) \
+ $(use_enable xcb xcb-shm) \
+ $(use_enable drm) \
+ $(use_enable gallium) \
+ --enable-ft \
+ --enable-pdf \
+ --enable-png \
+ --enable-ps \
+ --disable-xlib-xcb \
+ --disable-valgrind \
+ ${myopts}
+}
+
+src_install() {
+ # parallel make install fails
+ emake -j1 DESTDIR="${D}" install
+ find "${ED}" -name '*.la' -exec rm -f {} +
+ dodoc AUTHORS ChangeLog NEWS README
+}
diff --git a/x11-libs/cairo/files/cairo-1.12.14-libpng16.patch b/x11-libs/cairo/files/cairo-1.12.14-libpng16.patch
new file mode 100644
index 000000000000..c16317811982
--- /dev/null
+++ b/x11-libs/cairo/files/cairo-1.12.14-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