cairo, pixman: upgraded packages to upstream

Upgraded x11-libs/cairo to version 1.12.12 on amd64, arm, x86
Upgraded x11-libs/pixman to version 0.28.2 on amd64, arm, x86

These had to be done together due to version interdependencies.

In both cases, the respective ebuild files differ from their
upstream versions only as follows:

  () Edited EAPI 5 down to EAPI 4
  () Edited KEYWORDS to mark amd64, arm, x86 as stable

BUG=None
TEST=Build chroot with clean repo and run available media test

CQ-DEPEND=CL:Id7987ae5e8a9bb3bc156a4534f9bef1496e97243

Change-Id: I17e4d3cb8397189444ed0a1a1a0ad0b413f446f3
Reviewed-on: https://gerrit.chromium.org/gerrit/51180
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Sathish Kuppuswamy <sathish.kuppuswamy@intel.com>
Commit-Queue: Josh Triplett <josh@joshtriplett.org>
diff --git a/metadata/md5-cache/x11-libs/cairo-1.12.12 b/metadata/md5-cache/x11-libs/cairo-1.12.12
new file mode 100644
index 0000000..a818245
--- /dev/null
+++ b/metadata/md5-cache/x11-libs/cairo-1.12.12
@@ -0,0 +1,15 @@
+DEFINED_PHASES=configure install prepare
+DEPEND=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 ) 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 ) ) || ( >=sys-devel/automake-1.11.1:1.11 >=sys-devel/automake-1.12:1.12 ) >=sys-devel/autoconf-2.68 sys-devel/libtool
+DESCRIPTION=A vector graphics library with cross-device output support
+EAPI=4
+HOMEPAGE=http://cairographics.org/
+IUSE=X aqua debug directfb doc drm gallium +glib legacy-drivers opengl openvg qt4 static-libs +svg xcb
+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
+LICENSE=|| ( LGPL-2.1 MPL-1.1 )
+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 )
+REQUIRED_USE=drm? ( X ) gallium? ( drm )
+RESTRICT=test
+SLOT=0
+SRC_URI=http://cairographics.org/releases/cairo-1.12.12.tar.xz
+_eclasses_=autotools	1b0fa473be98091220edff9f51d06153	eutils	d40dc948067bd3db1c8ebf7d51897313	flag-o-matic	01a8b1eb019305bc4b4a8bd0b04e4cd8	libtool	0fd90d183673bf1107465ec45849d1ea	multilib	ded93e450747134a079e647d888aa80b	multiprocessing	1512bdfe7004902b8cd2c466fc3df772	toolchain-funcs	69a2016af67775a812f4c03ba4b0e03e	user	9e552f935106ff0bc92af16da64b4b29
+_md5_=ec23444ccf9eb249124be3181cd52f8d
diff --git a/metadata/md5-cache/x11-libs/cairo-1.8.8 b/metadata/md5-cache/x11-libs/cairo-1.8.8
deleted file mode 100644
index 1f887fb..0000000
--- a/metadata/md5-cache/x11-libs/cairo-1.8.8
+++ /dev/null
@@ -1,14 +0,0 @@
-DEFINED_PHASES=configure install postinst prepare
-DEPEND=media-libs/fontconfig >=media-libs/freetype-2.1.9 sys-libs/zlib media-libs/libpng >=x11-libs/pixman-0.12.0 directfb? ( >=dev-libs/DirectFB-0.9.24 ) glitz? ( >=media-libs/glitz-0.5.1 ) svg? ( dev-libs/libxml2 ) X? ( >=x11-libs/libXrender-0.6 x11-libs/libXext x11-libs/libX11 x11-libs/libXft ) xcb? ( >=x11-libs/libxcb-0.92 x11-libs/xcb-util ) >=dev-util/pkgconfig-0.19 >=sys-devel/libtool-2 doc? ( >=dev-util/gtk-doc-1.6 ~app-text/docbook-xml-dtd-4.2 ) X? ( x11-proto/renderproto ) || ( >=sys-devel/automake-1.11.1:1.11 >=sys-devel/automake-1.12:1.12 ) >=sys-devel/autoconf-2.68 sys-devel/libtool
-DESCRIPTION=A vector graphics library with cross-device output support
-EAPI=2
-HOMEPAGE=http://cairographics.org/
-IUSE=aqua cleartype debug directfb doc glitz opengl +svg X xcb
-KEYWORDS=alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris
-LICENSE=|| ( LGPL-2.1 MPL-1.1 )
-RDEPEND=media-libs/fontconfig >=media-libs/freetype-2.1.9 sys-libs/zlib media-libs/libpng >=x11-libs/pixman-0.12.0 directfb? ( >=dev-libs/DirectFB-0.9.24 ) glitz? ( >=media-libs/glitz-0.5.1 ) svg? ( dev-libs/libxml2 ) X? ( >=x11-libs/libXrender-0.6 x11-libs/libXext x11-libs/libX11 x11-libs/libXft ) xcb? ( >=x11-libs/libxcb-0.92 x11-libs/xcb-util )
-RESTRICT=test
-SLOT=0
-SRC_URI=http://cairographics.org/releases/cairo-1.8.8.tar.gz
-_eclasses_=autotools	1b0fa473be98091220edff9f51d06153	eutils	d40dc948067bd3db1c8ebf7d51897313	flag-o-matic	01a8b1eb019305bc4b4a8bd0b04e4cd8	libtool	0fd90d183673bf1107465ec45849d1ea	multilib	ded93e450747134a079e647d888aa80b	multiprocessing	1512bdfe7004902b8cd2c466fc3df772	toolchain-funcs	69a2016af67775a812f4c03ba4b0e03e	user	9e552f935106ff0bc92af16da64b4b29
-_md5_=76c4707cf5c78b279ab2268c44d54a2c
diff --git a/metadata/md5-cache/x11-libs/pixman-0.28.0 b/metadata/md5-cache/x11-libs/pixman-0.28.2
similarity index 80%
rename from metadata/md5-cache/x11-libs/pixman-0.28.0
rename to metadata/md5-cache/x11-libs/pixman-0.28.2
index d6bcf41..dcd312d 100644
--- a/metadata/md5-cache/x11-libs/pixman-0.28.0
+++ b/metadata/md5-cache/x11-libs/pixman-0.28.2
@@ -4,9 +4,9 @@
 EAPI=4
 HOMEPAGE=http://xorg.freedesktop.org/
 IUSE=altivec iwmmxt mmxext neon sse2 static-libs
-KEYWORDS=alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt
+KEYWORDS=~alpha amd64 arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt
 LICENSE=MIT
 SLOT=0
-SRC_URI=http://xorg.freedesktop.org/releases/individual/lib/pixman-0.28.0.tar.bz2
+SRC_URI=http://xorg.freedesktop.org/releases/individual/lib/pixman-0.28.2.tar.bz2
 _eclasses_=autotools	1b0fa473be98091220edff9f51d06153	autotools-utils	966fed1f979132a778b0b48c74a16adb	base	fc89786f3f7e7bcf03334359bd5b639b	eutils	d40dc948067bd3db1c8ebf7d51897313	flag-o-matic	01a8b1eb019305bc4b4a8bd0b04e4cd8	libtool	0fd90d183673bf1107465ec45849d1ea	multilib	ded93e450747134a079e647d888aa80b	multiprocessing	1512bdfe7004902b8cd2c466fc3df772	toolchain-funcs	69a2016af67775a812f4c03ba4b0e03e	user	9e552f935106ff0bc92af16da64b4b29	versionator	865bc8b2fc9fcfb6d520bdf5a110f5ed	xorg-2	b83efc910bb3ac2c64f89e2623f181f5
-_md5_=6ab0067f0755edf92c432d9010d1eb42
+_md5_=44c0106f459537510eb3fcf9cd3a4bdf
diff --git a/x11-libs/cairo/Manifest b/x11-libs/cairo/Manifest
index 2c94e8c..633af03 100644
--- a/x11-libs/cairo/Manifest
+++ b/x11-libs/cairo/Manifest
@@ -1 +1 @@
-DIST cairo-1.8.8.tar.gz 6646082 RMD160 78af536ebaaffc608114b626b22fc9a20cff3750 SHA1 e4b8b219427d1ca3dc95f5f44914dce1ae0c3766 SHA256 3c51d3de5dc4596e01a6675acd3c86c2c99c00f02e8fad5493758a29fe451c90
+DIST cairo-1.12.12.tar.xz 42139096 RMD160 cc5328806fe9aad6975f5f210ef34deadd63c039 SHA1 8e597874da5b861287893d87dd4ab32471e99c82 SHA256 14f693759ecc87472355ae8f0c34731a8578b408b607cfd0b5d34331ff05d81a
diff --git a/x11-libs/cairo/cairo-1.12.12.ebuild b/x11-libs/cairo/cairo-1.12.12.ebuild
new file mode 100644
index 0000000..c237444
--- /dev/null
+++ b/x11-libs/cairo/cairo-1.12.12.ebuild
@@ -0,0 +1,145 @@
+# 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.12.ebuild,v 1.4 2013/04/09 22:05:38 ssuominen Exp $
+
+EAPI=4
+
+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}-1.10.2-qt-surface.patch
+	epatch "${FILESDIR}"/${PN}-respect-fontconfig.patch
+	epatch "${FILESDIR}"/${P}-disable-test-suite.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
+	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 \
+		${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/cairo-1.8.8.ebuild b/x11-libs/cairo/cairo-1.8.8.ebuild
deleted file mode 100644
index 785aefd..0000000
--- a/x11-libs/cairo/cairo-1.8.8.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/cairo/cairo-1.8.8.ebuild,v 1.18 2010/03/08 09:00:40 ssuominen Exp $
-
-EAPI=2
-
-inherit eutils flag-o-matic autotools
-
-DESCRIPTION="A vector graphics library with cross-device output support"
-HOMEPAGE="http://cairographics.org/"
-SRC_URI="http://cairographics.org/releases/${P}.tar.gz"
-
-LICENSE="|| ( LGPL-2.1 MPL-1.1 )"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="aqua cleartype debug directfb doc glitz opengl +svg X 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.1.9
-	sys-libs/zlib
-	media-libs/libpng
-	>=x11-libs/pixman-0.12.0
-	directfb? ( >=dev-libs/DirectFB-0.9.24 )
-	glitz? ( >=media-libs/glitz-0.5.1 )
-	svg? ( dev-libs/libxml2 )
-	X? ( 	>=x11-libs/libXrender-0.6
-		x11-libs/libXext
-		x11-libs/libX11
-		x11-libs/libXft )
-	xcb? (	>=x11-libs/libxcb-0.92
-		x11-libs/xcb-util )"
-#	test? (
-#	pdf test
-#	x11-libs/pango
-#	>=x11-libs/gtk+-2.0
-#	>=app-text/poppler-bindings-0.9.2[gtk]
-#	ps test
-#	app-text/ghostscript-gpl
-#	svg test
-#	>=x11-libs/gtk+-2.0
-#	>=gnome-base/librsvg-2.15.0
-
-DEPEND="${RDEPEND}
-	>=dev-util/pkgconfig-0.19
-	>=sys-devel/libtool-2
-	doc? (	>=dev-util/gtk-doc-1.6
-		~app-text/docbook-xml-dtd-4.2 )
-	X? ( x11-proto/renderproto )"
-
-src_prepare() {
-	# ClearType-like patches applied by ArchLinux
-	use cleartype && epatch "${FILESDIR}"/cairo-1.2.4-lcd-cleartype-like.diff
-
-	epatch "${FILESDIR}"/${P}-interix.patch \
-		"${FILESDIR}"/${P}-libpng14.patch
-
-	# We need to run elibtoolize to ensure correct so versioning on FreeBSD
-	# upgraded to an eautoreconf for the above interix patch.
-	eautoreconf
-}
-
-src_configure() {
-	[[ ${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
-
-	if use glitz && use opengl; then
-		export glitz_LIBS=$(pkg-config --libs glitz-glx)
-	fi
-
-	econf $(use_enable X xlib) $(use_enable doc gtk-doc) \
-		$(use_enable directfb) $(use_enable xcb) \
-		$(use_enable svg) $(use_enable glitz) $(use_enable X xlib-xrender) \
-		$(use_enable debug test-surfaces) --enable-pdf  --enable-png \
-		--enable-ft --enable-ps \
-		$(use_enable aqua quartz) $(use_enable aqua quartz-image) \
-		|| die "configure failed"
-}
-
-src_install() {
-	make DESTDIR="${D}" install || die "Installation failed"
-	dodoc AUTHORS ChangeLog NEWS README
-}
-
-pkg_postinst() {
-	if use xcb; then
-		ewarn "You have enabled the Cairo XCB backend which is used only by"
-		ewarn "a select few apps. The Cairo XCB backend is presently"
-		ewarn "un-maintained and needs a lot of work to get it caught up"
-		ewarn "to the Xrender and Xlib backends, which are the backends used"
-		ewarn "by most applications. See:"
-		ewarn "http://lists.freedesktop.org/archives/xcb/2008-December/004139.html"
-	fi
-}
diff --git a/x11-libs/cairo/files/cairo-1.10.0-buggy_gradients.patch b/x11-libs/cairo/files/cairo-1.10.0-buggy_gradients.patch
new file mode 100644
index 0000000..a58c2f8
--- /dev/null
+++ b/x11-libs/cairo/files/cairo-1.10.0-buggy_gradients.patch
@@ -0,0 +1,17 @@
+http://repos.archlinux.org/wsvn/packages/cairo/trunk/cairo-1.10.0-buggy_gradients.patch
+http://bugs.gentoo.org/336696
+
+--- src/cairo-xlib-display.c
++++ src/cairo-xlib-display.c
+@@ -353,11 +353,7 @@
+     /* Prior to Render 0.10, there is no protocol support for gradients and
+      * we call function stubs instead, which would silently consume the drawing.
+      */
+-#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
+     display->buggy_gradients = TRUE;
+-#else
+-    display->buggy_gradients = FALSE;
+-#endif
+     display->buggy_pad_reflect = FALSE;
+     display->buggy_repeat = FALSE;
+ 
diff --git a/x11-libs/cairo/files/cairo-1.10.2-qt-surface.patch b/x11-libs/cairo/files/cairo-1.10.2-qt-surface.patch
new file mode 100644
index 0000000..cf0b57a
--- /dev/null
+++ b/x11-libs/cairo/files/cairo-1.10.2-qt-surface.patch
@@ -0,0 +1,55 @@
+diff -ruN cairo-1.10.2-0-vanilla/src/cairo-qt-surface.cpp cairo-1.10.2/src/cairo-qt-surface.cpp
+--- cairo-1.10.2-0-vanilla/src/cairo-qt-surface.cpp	2010-12-25 15:21:34.000000000 +0100
++++ cairo-1.10.2/src/cairo-qt-surface.cpp	2011-12-20 22:59:30.000000000 +0100
+@@ -61,7 +61,9 @@
+ #include <QtGui/QX11Info>
+ #include <QtCore/QVarLengthArray>
+ 
+-#if (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) || defined(QT_GLYPHS_API_BACKPORT)
++#if (QT_VERSION >= QT_VERSION_CHECK(4, 8, 0))
++#include <QtGui/QGlyphRun>
++#elif (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) || defined(QT_GLYPHS_API_BACKPORT)
+ extern void qt_draw_glyphs(QPainter *, const quint32 *glyphs, const QPointF *positions, int count);
+ #endif
+ 
+@@ -1370,7 +1372,39 @@
+ 			       cairo_clip_t *clip,
+ 			       int *remaining_glyphs)
+ {
+-#if (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) || defined(QT_GLYPHS_API_BACKPORT)
++#if (QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && !defined(QT_NO_RAWFONT)
++    cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface;
++
++    // pick out the colour to use from the cairo source
++    cairo_solid_pattern_t *solid = (cairo_solid_pattern_t*) source;
++    // documentation says you have to freeze the cache, but I don't believe it
++    _cairo_scaled_font_freeze_cache(scaled_font);
++
++    QColor tempColour(solid->color.red * 255, solid->color.green * 255, solid->color.blue * 255);
++    QVector<QPointF> positions(num_glyphs);
++    QVector<unsigned int> glyphss(num_glyphs);
++    FT_Face face = cairo_ft_scaled_font_lock_face (scaled_font);
++    const FT_Size_Metrics& ftMetrics = face->size->metrics;
++    QFont font(face->family_name);
++    font.setStyleStrategy(QFont::NoFontMerging);
++    font.setBold(face->style_flags & FT_STYLE_FLAG_BOLD);
++    font.setItalic(face->style_flags & FT_STYLE_FLAG_ITALIC);
++    font.setKerning(face->face_flags & FT_FACE_FLAG_KERNING);
++    font.setPixelSize(ftMetrics.y_ppem);
++    cairo_ft_scaled_font_unlock_face(scaled_font);
++    qs->p->setFont(font);
++    qs->p->setPen(tempColour);
++    for (int currentGlyph = 0; currentGlyph < num_glyphs; currentGlyph++) {
++        positions.append(QPointF(glyphs[currentGlyph].x, glyphs[currentGlyph].y));
++        glyphss.append(glyphs[currentGlyph].index);
++    }
++    QGlyphRun qglyphs;
++    qglyphs.setGlyphIndexes(glyphss);
++    qglyphs.setPositions(positions);
++    qs->p->drawGlyphRun(QPointF(), qglyphs);
++    _cairo_scaled_font_thaw_cache(scaled_font);
++    return CAIRO_INT_STATUS_SUCCESS;
++#elif (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) || defined(QT_GLYPHS_API_BACKPORT)
+     cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface;
+ 
+     // pick out the colour to use from the cairo source
diff --git a/x11-libs/cairo/files/cairo-1.12.12-disable-test-suite.patch b/x11-libs/cairo/files/cairo-1.12.12-disable-test-suite.patch
new file mode 100644
index 0000000..37033d7
--- /dev/null
+++ b/x11-libs/cairo/files/cairo-1.12.12-disable-test-suite.patch
@@ -0,0 +1,12 @@
+diff -ruN cairo-1.12.10.orig/test/Makefile.am cairo-1.12.10/test/Makefile.am
+--- cairo-1.12.10.orig/test/Makefile.am	2013-01-27 14:56:03.345178612 -0800
++++ cairo-1.12.10/test/Makefile.am	2013-01-27 14:56:15.371177856 -0800
+@@ -71,8 +71,6 @@
+ endif
+ test_sources += $(test)
+ 
+-noinst_PROGRAMS = cairo-test-suite$(EXEEXT) # always build
+-
+ TESTS += cairo-test-suite$(EXEEXT)
+ 
+ cairo-test-constructors.c: Makefile $(test_sources) make-cairo-test-constructors.sh
diff --git a/x11-libs/cairo/files/cairo-1.2.4-lcd-cleartype-like.diff b/x11-libs/cairo/files/cairo-1.2.4-lcd-cleartype-like.diff
deleted file mode 100644
index 2f908b8..0000000
--- a/x11-libs/cairo/files/cairo-1.2.4-lcd-cleartype-like.diff
+++ /dev/null
@@ -1,275 +0,0 @@
-diff -rup libcairo-1.2.4.orig/src/cairo-ft-font.c libcairo-1.2.4/src/cairo-ft-font.c
---- libcairo-1.2.4.orig/src/cairo-ft-font.c	2006-08-22 21:40:02.802247352 +0800
-+++ libcairo-1.2.4/src/cairo-ft-font.c	2006-08-22 21:40:39.443677008 +0800
-@@ -53,6 +53,8 @@
- #include FT_SYNTHESIS_H
- #endif
- 
-+#define FIR_FILTER 1
-+
- #define DOUBLE_TO_26_6(d) ((FT_F26Dot6)((d) * 64.0))
- #define DOUBLE_FROM_26_6(t) ((double)(t) / 64.0)
- #define DOUBLE_TO_16_16(d) ((FT_Fixed)((d) * 65536.0))
-@@ -492,6 +494,8 @@ _cairo_ft_unscaled_font_destroy (void *a
-     }
- }
- 
-+static const int   fir_filter[5] = { 0x1C, 0x38, 0x55, 0x38, 0x1C };
-+
- static cairo_bool_t
- _has_unlocked_face (void *entry)
- {
-@@ -779,7 +783,220 @@ _get_bitmap_surface (FT_Bitmap		     *bi
- 	    }
- 	    format = CAIRO_FORMAT_A8;
- 	    break;
--	case CAIRO_ANTIALIAS_SUBPIXEL: {
-+	case CAIRO_ANTIALIAS_SUBPIXEL:
-+#ifdef FIR_FILTER
-+	{
-+	    unsigned char*  line;
-+	    unsigned char*  bufBitmap;
-+	    int		    pitch;
-+	    unsigned char   *data_rgba;
-+	    unsigned int    width_rgba, stride_rgba;
-+	    int		    vmul = 1;
-+	    int		    hmul = 1;
-+
-+	    switch (font_options->subpixel_order) {
-+	    case CAIRO_SUBPIXEL_ORDER_DEFAULT:
-+	    case CAIRO_SUBPIXEL_ORDER_RGB:
-+	    case CAIRO_SUBPIXEL_ORDER_BGR:
-+	    default:
-+		width /= 3;
-+		hmul = 3;
-+		break;
-+	    case CAIRO_SUBPIXEL_ORDER_VRGB:
-+	    case CAIRO_SUBPIXEL_ORDER_VBGR:
-+		vmul = 3;
-+		height /= 3;
-+		break;
-+	    }
-+	    /*
-+	     * Filter the glyph to soften the color fringes
-+	     */
-+	    width_rgba = width;
-+	    stride = bitmap->pitch;
-+	    stride_rgba = (width_rgba * 4 + 3) & ~3;
-+	    data_rgba = calloc (1, stride_rgba * height);
-+
-+	    /* perform in-place FIR filtering in either the horizontal or
-+	     * vertical direction. We're going to modify the RGB graymap,
-+	     * but that's ok, because we either own it, or its part of
-+	     * the FreeType glyph slot, which will not be used anymore.
-+	     */
-+	    pitch  = bitmap->pitch;
-+	    line   = (unsigned char*)bitmap->buffer;
-+	    if ( pitch < 0 )
-+		line -= pitch*(height-1);
-+
-+	    bufBitmap = line;
-+
-+	    switch (font_options->subpixel_order) {
-+	    case CAIRO_SUBPIXEL_ORDER_DEFAULT:
-+	    case CAIRO_SUBPIXEL_ORDER_RGB:
-+	    case CAIRO_SUBPIXEL_ORDER_BGR:
-+	    {
-+		int  h;
-+
-+		for ( h = height; h > 0; h--, line += pitch ) {
-+		    int             pix[6] = { 0, 0, 0, 0, 0, 0 };
-+		    unsigned char*  p      = line;
-+		    unsigned char*  limit  = line + width*3;
-+		    int             nn, val, val2;
-+
-+		    val = p[0];
-+		    for (nn = 0; nn < 3; nn++)
-+			pix[2 + nn] += val * fir_filter[nn];
-+
-+		    val = p[1];
-+		    for (nn = 0; nn < 4; nn++)
-+			pix[1 + nn] += val * fir_filter[nn];
-+
-+		    p += 2;
-+
-+		    for ( ; p  < limit; p++ ) {
-+			val = p[0];
-+			for (nn = 0; nn < 5; nn++)
-+			    pix[nn] += val * fir_filter[nn];
-+
-+			val2  = pix[0] / 256;
-+			val2 |= -(val2 >> 8);
-+			p[-2]  = (unsigned char)val2;
-+
-+			for (nn = 0; nn < 5; nn++)
-+			    pix[nn] = pix[nn + 1];
-+		    }
-+		    for (nn = 0; nn < 2; nn++ ) {
-+			val2  = pix[nn] / 256;
-+			val2 |= -(val2 >> 8);
-+			p[nn - 2] = (unsigned char)val2;
-+		    }
-+		}
-+	    }
-+	    break;
-+	    case CAIRO_SUBPIXEL_ORDER_VRGB:
-+	    case CAIRO_SUBPIXEL_ORDER_VBGR:
-+	    {
-+		int  w;
-+
-+		for (w = 0; w < width; w++ ) {
-+		    int  pix[6] = { 0, 0, 0, 0, 0, 0 };
-+		    unsigned char*  p     = bufBitmap + w;
-+		    unsigned char*  limit = bufBitmap + w + height*3*pitch;
-+		    int             nn, val, val2;
-+
-+		    val = p[0];
-+		    for (nn = 0; nn < 3; nn++)
-+			pix[2 + nn] += val*fir_filter[nn];
-+
-+		    val = p[pitch];
-+		    for (nn = 0; nn < 4; nn++ )
-+			pix[1 + nn] += val * fir_filter[nn];
-+
-+		    p += 2*pitch;
-+		    for ( ; p < limit; p += pitch ) {
-+			val = p[0];
-+			for (nn = 0; nn < 5; nn++ )
-+			    pix[nn] += val * fir_filter[nn];
-+
-+			val2  = pix[0] / 256;
-+			val2 |= -(val2 >> 8);
-+			p[-2 * pitch] = (unsigned char)val2;
-+
-+			for (nn = 0; nn < 5; nn++)
-+			    pix[nn] = pix[nn+1];
-+		    }
-+
-+		    for (nn = 0; nn < 2; nn++) {
-+			val2  = pix[nn] / 256;
-+			val2 |= -(val2 >> 8);
-+			p[(nn - 2) * pitch] = (unsigned char)val2;
-+		    }
-+		}
-+	    }
-+	    break;
-+	    default:  /* shouldn't happen */
-+		break;
-+	    }
-+
-+	    /* now copy the resulting graymap into an ARGB32 image */
-+	    {
-+		unsigned char*  in_line  = bufBitmap;
-+		unsigned char*  out_line = data_rgba;
-+		int             h        = height;
-+
-+		switch (font_options->subpixel_order) {
-+		case CAIRO_SUBPIXEL_ORDER_DEFAULT:
-+		case CAIRO_SUBPIXEL_ORDER_RGB:
-+		    for ( ; h > 0; h--, in_line += pitch, out_line += stride_rgba) {
-+			unsigned char*  in  = in_line;
-+			int*            out = (int*)out_line;
-+			int             w;
-+
-+			for (w = width; w > 0; w--, in += 3, out += 1) {
-+			    int  r = in[0];
-+			    int  g = in[1];
-+			    int  b = in[2];
-+
-+			    out[0] = (g << 24) | (r << 16) | (g << 8) | b;
-+			}
-+		    }
-+		    break;
-+		case CAIRO_SUBPIXEL_ORDER_BGR:
-+		    for ( ; h > 0; h--, in_line += pitch, out_line += stride_rgba) {
-+			unsigned char*  in  = in_line;
-+			int*            out = (int*)out_line;
-+			int             w;
-+
-+			for (w = width; w > 0; w--, in += 3, out += 1) {
-+			    int  r = in[2];
-+			    int  g = in[1];
-+			    int  b = in[0];
-+
-+			    out[0] = (g << 24) | (r << 16) | (g << 8) | b;
-+			}
-+		    }
-+		    break;
-+		case CAIRO_SUBPIXEL_ORDER_VRGB:
-+		    for ( ; h > 0; h--, in_line += pitch*3, out_line += stride_rgba) {
-+			unsigned char*  in  = in_line;
-+			int*            out = (int*)out_line;
-+			int             w;
-+
-+			for (w = width; w > 0; w--, in += 1, out += 1) {
-+			    int  r = in[0];
-+			    int  g = in[pitch];
-+			    int  b = in[pitch*2];
-+
-+			    out[0] = (g << 24) | (r << 16) | (g << 8) | b;
-+			}
-+		    }
-+		    break;
-+		case CAIRO_SUBPIXEL_ORDER_VBGR:
-+		    for ( ; h > 0; h--, in_line += pitch*3, out_line += stride_rgba) {
-+			unsigned char*  in  = in_line;
-+			int*            out = (int*)out_line;
-+			int             w;
-+
-+			for (w = width; w > 0; w--, in += 1, out += 1) {
-+			    int  r = in[2*pitch];
-+			    int  g = in[pitch];
-+			    int  b = in[0];
-+
-+			    out[0] = (g << 24) | (r << 16) | (g << 8) | b;
-+			}
-+		    }
-+		    break;
-+		}
-+	    }
-+
-+	    if (own_buffer)
-+		free (bitmap->buffer);
-+	    data = data_rgba;
-+	    stride = stride_rgba;
-+	    format = CAIRO_FORMAT_ARGB32;
-+	    subpixel = TRUE;
-+	    break;
-+	}
-+#else /* !FIR_FILTER */
-+	{
- 	    int		    x, y;
- 	    unsigned char   *in_line, *out_line, *in;
- 	    unsigned int    *out;
-@@ -871,6 +1088,7 @@ _get_bitmap_surface (FT_Bitmap		     *bi
- 	    subpixel = TRUE;
- 	    break;
- 	}
-+#endif /* !FIR_FILTER */
- 	}
- 	break;
-     case FT_PIXEL_MODE_GRAY2:
-@@ -986,12 +1204,22 @@ _render_glyph_outline (FT_Face          
- 		matrix.xx *= 3;
- 		hmul = 3;
- 		subpixel = TRUE;
-+#ifdef FIR_FILTER
-+		cbox.xMin -= 64;
-+		cbox.xMax += 64;
-+		width    += 2;
-+#endif
- 		break;
- 	    case CAIRO_SUBPIXEL_ORDER_VRGB:
- 	    case CAIRO_SUBPIXEL_ORDER_VBGR:
- 		matrix.yy *= 3;
- 		vmul = 3;
- 		subpixel = TRUE;
-+#ifdef FIR_FILTER
-+		cbox.yMin -= 64;
-+		cbox.yMax += 64;
-+		height    += 2;
-+#endif
- 		break;
- 	    }
- 	    FT_Outline_Transform (outline, &matrix);
-Only in libcairo-1.2.4/src: cairo-ft-font.c.orig
diff --git a/x11-libs/cairo/files/cairo-1.8.8-libpng14.patch b/x11-libs/cairo/files/cairo-1.8.8-libpng14.patch
deleted file mode 100644
index 7756791..0000000
--- a/x11-libs/cairo/files/cairo-1.8.8-libpng14.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-http://bugs.gentoo.org/show_bug.cgi?id=305117
-
---- configure.ac
-+++ configure.ac
-@@ -161,7 +161,7 @@
-   AC_ARG_VAR([png_REQUIRES], [module name for libpng to search for using pkg-config])
-   if test "x$png_REQUIRES" = x; then
-     # libpng13 is GnuWin32's libpng-1.2.8 :-(
--    for l in libpng12 libpng13 libpng10 ; do
-+    for l in libpng14 libpng12 libpng13 libpng10 ; do
-       if $PKG_CONFIG --exists $l ; then
-         png_REQUIRES=$l
-         use_png=yes
diff --git a/x11-libs/cairo/files/cairo-respect-fontconfig.patch b/x11-libs/cairo/files/cairo-respect-fontconfig.patch
new file mode 100644
index 0000000..b0a1b29
--- /dev/null
+++ b/x11-libs/cairo/files/cairo-respect-fontconfig.patch
@@ -0,0 +1,13 @@
+--- cairo-1.7.6-orig/src/cairo-ft-font.c	2008-09-29 21:43:13.000000000 +0100
++++ cairo-1.7.6/src/cairo-ft-font.c	2008-09-29 21:52:19.000000000 +0100
+@@ -1705,7 +1705,9 @@
+ 	options->base.subpixel_order = other->base.subpixel_order;
+     }
+ 
+-    if (options->base.hint_style == CAIRO_HINT_STYLE_DEFAULT)
++    options->base.hint_style = CAIRO_HINT_STYLE_DEFAULT;
++
++    if (other->base.hint_style != CAIRO_HINT_STYLE_DEFAULT)
+ 	options->base.hint_style = other->base.hint_style;
+ 
+     if (other->base.hint_style == CAIRO_HINT_STYLE_NONE)
diff --git a/x11-libs/pixman/Manifest b/x11-libs/pixman/Manifest
index 5f9e4b4..21693f6 100644
--- a/x11-libs/pixman/Manifest
+++ b/x11-libs/pixman/Manifest
@@ -1 +1 @@
-DIST pixman-0.28.0.tar.bz2 641962 SHA256 6056f9aa0e0578a0492e34fc2ce6dd7bfb181090ed687993c03b969c8cec4828 SHA512 b0b53b09252a01ffc59875a878f8031d099febf3f8d8425b440bc6af93c2d75bb9c95d4cd7b8a7e45c356f3b6327c1b755628b8c36064d9272bb868d0d0d82f5 WHIRLPOOL 67ed10f7ecd293022e311de2036bc4527034452f097cae8947f75ff793fbacde2e7199da6910ee240cb7dd61d4bf07b2d4fc0380c396704fe268051fe3b86375
+DIST pixman-0.28.2.tar.bz2 625655 RMD160 05f7b1d7369f5d878142330f3a7cdab967a0d79d SHA1 9e9ede6e13061030f9c827219cb87f47e32ecdb4 SHA256 583686afbfa5a1dfc40a21e888a3eacf31fe0e02469d20b821b5d8f719165a51
diff --git a/x11-libs/pixman/pixman-0.28.0.ebuild b/x11-libs/pixman/pixman-0.28.2.ebuild
similarity index 60%
rename from x11-libs/pixman/pixman-0.28.0.ebuild
rename to x11-libs/pixman/pixman-0.28.2.ebuild
index f727db5..5f8e5cb 100644
--- a/x11-libs/pixman/pixman-0.28.0.ebuild
+++ b/x11-libs/pixman/pixman-0.28.2.ebuild
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/pixman/pixman-0.28.0.ebuild,v 1.13 2013/02/06 22:55:59 mattst88 Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/pixman/pixman-0.28.2.ebuild,v 1.3 2013/02/06 22:55:59 mattst88 Exp $
 
 EAPI=4
 inherit xorg-2 toolchain-funcs versionator
@@ -8,7 +8,7 @@
 EGIT_REPO_URI="git://anongit.freedesktop.org/git/pixman"
 DESCRIPTION="Low-level pixel manipulation routines"
 
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
 IUSE="altivec iwmmxt mmxext neon sse2"
 
 src_configure() {