diff options
author | 2013-04-27 10:25:10 +0000 | |
---|---|---|
committer | 2013-04-27 10:25:10 +0000 | |
commit | 8914dda1558f2e435a1a381157c9fdd333664868 (patch) | |
tree | 16decc3e26f17b3ac43936dba221a811db216b4d /x11-libs | |
parent | sys-fs/aufs3: Bump to latest aufs3 release (diff) | |
download | gentoo-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')
-rw-r--r-- | x11-libs/cairo/ChangeLog | 9 | ||||
-rw-r--r-- | x11-libs/cairo/cairo-1.12.14-r2.ebuild | 148 | ||||
-rw-r--r-- | x11-libs/cairo/files/cairo-1.12.14-libpng16.patch | 40 |
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 |