public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] dev/dilfridge:master commit in: x11-libs/cairo/, x11-libs/cairo/files/
@ 2011-12-23  9:57 Andreas Hüttel
  0 siblings, 0 replies; 2+ messages in thread
From: Andreas Hüttel @ 2011-12-23  9:57 UTC (permalink / raw
  To: gentoo-commits

commit:     07a9b643524998811b2213ab21c05dfd591baeea
Author:     Andreas K. Huettel (dilfridge) <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 23 09:58:37 2011 +0000
Commit:     Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Fri Dec 23 09:58:37 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=dev/dilfridge.git;a=commit;h=07a9b643

Added cairo patched for qt-4.8

---
 x11-libs/cairo/Manifest                            |   29 ++
 x11-libs/cairo/cairo-1.10.2-r2.ebuild              |  159 +++++++++++
 .../cairo/files/cairo-1.10.0-buggy_gradients.patch |   17 ++
 x11-libs/cairo/files/cairo-1.10.2-interix.patch    |   36 +++
 x11-libs/cairo/files/cairo-1.10.2-qt-surface.patch |   55 ++++
 .../files/cairo-1.2.4-lcd-cleartype-like.diff      |  275 ++++++++++++++++++++
 x11-libs/cairo/files/cairo-1.8.10-libpng14.patch   |   11 +
 x11-libs/cairo/files/cairo-1.8.8-interix.patch     |   16 ++
 x11-libs/cairo/metadata.xml                        |   27 ++
 9 files changed, 625 insertions(+), 0 deletions(-)

diff --git a/x11-libs/cairo/Manifest b/x11-libs/cairo/Manifest
new file mode 100644
index 0000000..a598954
--- /dev/null
+++ b/x11-libs/cairo/Manifest
@@ -0,0 +1,29 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+AUX cairo-1.10.0-buggy_gradients.patch 581 RMD160 077fb7a18c2840c0d637d2161ca9d244cb69608b SHA1 45f4b6a834cb9f1c153f092fba18416d257d71c7 SHA256 3b622bb250b996ea5f5adc5c899af343e0efba5c477fa0e51fdbb720a8dd1b18
+AUX cairo-1.10.2-interix.patch 1235 RMD160 83803df650e8381649b11bd3c81dd0c6ee5f8e53 SHA1 d6b731fc8aa0c9461e62a9afc1431782d3af433b SHA256 d915d69e2eb96f6a4bef1de0c493ed9face7b5d6a79194ab9f2a7f3d85b799ea
+AUX cairo-1.10.2-qt-surface.patch 2687 RMD160 9ffc2924070a7dfa917a2b05b11de1fcca571dab SHA1 6ce6a6047d6f8420ea3044d036e7d10c6ac98c61 SHA256 fb96199ec7a4cf8527726be8d0333ed883183b56960832218eca1c9ef2e05dbd
+AUX cairo-1.2.4-lcd-cleartype-like.diff 7244 RMD160 e50d5bf17cbead688a8b808a78fe4104c09af52e SHA1 f63131fd75bb496db59e3ce6bc755bbfb70baacb SHA256 4926d20d2b6b5071a5bf9ee9a12a36fef69510ebebd717c1dab151fe650f173a
+AUX cairo-1.8.10-libpng14.patch 426 RMD160 f97e4f2d1e65e2c6a90c5fddbce66caeb4337bba SHA1 bb029f710432af7b24175aa941fc7cd3187ef767 SHA256 b090f829d3b9fb69b83bfa094552335b8382988d60ce7e46558c4069b8bca532
+AUX cairo-1.8.8-interix.patch 619 RMD160 9bb28c5a88aa1f2776d32ac7020aef4ba93872b5 SHA1 857a4d2be0118a6d2d0d80388b5963a5f768341d SHA256 505be82a1a0b7f963cb49ff85ecf1fa1389a4e43621df76b91fc1529616b2299
+DIST cairo-1.10.2.tar.gz 23558405 RMD160 8c8de00120398fe2b3a60a08ff59a464b2eebf47 SHA1 ccce5ae03f99c505db97c286a0c9a90a926d3c6e SHA256 32018c7998358eebc2ad578ff8d8559d34fc80252095f110a572ed23d989fc41
+EBUILD cairo-1.10.2-r2.ebuild 4198 RMD160 fd014de4730fe58f96f223e67b69f7488a1f4129 SHA1 2007dcd723dd78071998cc9baeafbaa88908bed2 SHA256 4adaba8bace8c0b4058c1136a58b9a832bf0fe7b30d12491632456f5e3cd8e1a
+MISC metadata.xml 998 RMD160 2a4f5df13bc9d39c91e12e80924465450d758e32 SHA1 f4e943a00531a6f6a5ca2945a05ab95233b63e3b SHA256 325e1f55131748f3840ed1cfec421fe27aa6a621568135e4f6ce1d517b5d3cd8
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.17 (GNU/Linux)
+
+iQIcBAEBCgAGBQJO8aD7AAoJENwGBM22xffe17gP+gJhHkBahmisQx69En53miQU
+1WSNx3gjiRvA6nnMoHsrGvhMZSkvfOACxfy0COp2w8+pojDHVyBJ/alJdw65Y2sn
+UfklPT5EgrV90b4P8dkCgq7/3C1O84yjDviroDayODjhjz5Lp2oASTYqrOQtm+yt
+cWUgdTOmtCYaEt/+TBUta1xnLM0qEkKxwIvHzgjY9c79ifwFkxvoV/vIsPJw9IAp
+rgXhd/nyLvEHQHADrBfoYtGgMnXYci4nNmnqXpVE2+PLWRdox4o8q0oqlHTK8Sey
+3+suF1FJPWHUD37vQUU2oNSi/bbvEePFlaBlHwfGe7ux2RQxYfvBc0KLLQHXFL9b
+dfH0eCZEuk3qlYHHR4jKpCIwJUXH7UBByi4O7H27lACxwH3usoy+tMMG2Btvgugm
+4E5+fIvt+v1Oohf2p8HjOPJ92hFzef6VdJ10MKNpx8gzR+5QlxKMAp1W5R7vZSoh
+8pG7mWG3EzQrXB4DXOM4LD+JtRTPts3e4NWo4G17kZS0tNIyDkd+GmObQaoZ97iz
+WMJmxrKN2zGamtowCiK0G/Iq7Lba+qQtGQ8qdKJkj0vLkFVjBNeEp3OcfXAcTKeP
+2k/Arnuu6elD4NNGCmPO3q0/aJQNebmQ4YxXjvHc1ZkTD16tO5i1Y2qAEligb00G
+UBHv7gStQeSAiy18YdKi
+=MPY2
+-----END PGP SIGNATURE-----

diff --git a/x11-libs/cairo/cairo-1.10.2-r2.ebuild b/x11-libs/cairo/cairo-1.10.2-r2.ebuild
new file mode 100644
index 0000000..cc6fdae
--- /dev/null
+++ b/x11-libs/cairo/cairo-1.10.2-r2.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/cairo/cairo-1.10.2-r1.ebuild,v 1.13 2011/07/13 09:05:48 mduft Exp $
+
+EAPI=3
+
+EGIT_REPO_URI="git://anongit.freedesktop.org/git/cairo"
+[[ ${PV} == *9999 ]] && GIT_ECLASS="git"
+
+inherit eutils flag-o-matic autotools ${GIT_ECLASS}
+
+DESCRIPTION="A vector graphics library with cross-device output support"
+HOMEPAGE="http://cairographics.org/"
+[[ ${PV} == *9999 ]] || 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="X aqua debug directfb doc drm gallium +glib 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.18.4
+	directfb? ( dev-libs/DirectFB )
+	glib? ( dev-libs/glib:2 )
+	opengl? ( virtual/opengl )
+	openvg? ( media-libs/mesa[gallium] )
+	qt4? ( >=x11-libs/qt-gui-4.4:4 )
+	svg? ( dev-libs/libxml2 )
+	X? (
+		>=x11-libs/libXrender-0.6
+		x11-libs/libXext
+		x11-libs/libX11
+		x11-libs/libXft
+		drm? (
+			>=sys-fs/udev-136
+			gallium? ( media-libs/mesa[gallium] )
+		)
+	)
+	xcb? (
+		x11-libs/libxcb
+		x11-libs/xcb-util
+	)"
+DEPEND="${RDEPEND}
+	dev-util/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
+		)
+	)"
+
+src_prepare() {
+	epatch "${FILESDIR}"/${PN}-1.8.8-interix.patch
+	epatch "${FILESDIR}"/${PN}-1.10.0-buggy_gradients.patch
+	epatch "${FILESDIR}"/${P}-interix.patch
+	epatch "${FILESDIR}"/${P}-qt-surface.patch
+
+	# 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
+
+	# tracing fails to compile, because Solaris' libelf doesn't do large files
+	[[ ${CHOST} == *-solaris* ]] && myopts+=" --disable-trace"
+
+	# 128-bits long arithemetic functions are missing
+	[[ ${CHOST} == powerpc*-*-darwin* ]] && filter-flags -mcpu=*
+
+	#gets rid of fbmmx.c inlining warnings
+	append-flags -finline-limit=1200
+
+	if use X; then
+		myopts+="
+			--enable-tee=yes
+			$(use_enable drm)
+		"
+
+		if use drm; then
+			myopts+="
+				$(use_enable gallium)
+				$(use_enable xcb xcb-drm)
+			"
+		else
+			use gallium && ewarn "Gallium use requires drm use enabled. So disabling for now."
+			myopts+="
+				--disable-gallium
+				--disable-xcb-drm
+			"
+		fi
+	else
+		use drm && ewarn "drm use requires X use enabled. So disabling for now."
+		myopts+="
+			--disable-drm
+			--disable-gallium
+			--disable-xcb-drm
+		"
+	fi
+
+	# --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) \
+		--enable-ft \
+		--enable-pdf \
+		--enable-png \
+		--enable-ps \
+		--disable-xlib-xcb \
+		${myopts}
+}
+
+src_install() {
+	# parallel make install fails
+	emake -j1 DESTDIR="${D}" install || die
+	find "${ED}" -name '*.la' -exec rm -f {} +
+	dodoc AUTHORS ChangeLog NEWS README || die
+}

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-interix.patch b/x11-libs/cairo/files/cairo-1.10.2-interix.patch
new file mode 100644
index 0000000..3333e3e
--- /dev/null
+++ b/x11-libs/cairo/files/cairo-1.10.2-interix.patch
@@ -0,0 +1,36 @@
+commit 95f6f7a174ca096a3d3dbe84ff220d166d1e2baa
+Author: Uli Schlachter <psychon@znc.in>
+Date:   Fri Oct 22 11:54:57 2010 +0200
+
+    Make both versions of _cairo_lround consistent again
+    
+    Commit c0008242b0f made cairo use libm's lround instead of its own _cairo_lround
+    by default. However, since commit ce58f874 from 2006, _cairo_lround does
+    arithmetic rounding instead of away-from-zero rounding (before said commit, it
+    was using baker's rounding).
+    
+    So to make the rounding of _cairo_lround be independent from
+    DISABLE_SOME_FLOATING_POINT, we have to use another function. Turns out that
+    _cairo_round already does the same thing that _cairo_lround does. Their only
+    difference is the return type.
+    
+    Signed-off-by: Uli Schlachter <psychon@znc.in>
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+diff --git a/src/cairoint.h b/src/cairoint.h
+index 53c87e5..539d92e 100644
+--- a/src/cairoint.h
++++ b/src/cairoint.h
+@@ -968,7 +968,11 @@ _cairo_round (double r)
+ cairo_private int
+ _cairo_lround (double d) cairo_const;
+ #else
+-#define _cairo_lround lround
++static inline int cairo_const
++_cairo_lround (double r)
++{
++    return _cairo_round (r);
++}
+ #endif
+ 
+ cairo_private uint16_t

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.2.4-lcd-cleartype-like.diff b/x11-libs/cairo/files/cairo-1.2.4-lcd-cleartype-like.diff
new file mode 100644
index 0000000..2f908b8
--- /dev/null
+++ b/x11-libs/cairo/files/cairo-1.2.4-lcd-cleartype-like.diff
@@ -0,0 +1,275 @@
+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.10-libpng14.patch b/x11-libs/cairo/files/cairo-1.8.10-libpng14.patch
new file mode 100644
index 0000000..1872367
--- /dev/null
+++ b/x11-libs/cairo/files/cairo-1.8.10-libpng14.patch
@@ -0,0 +1,11 @@
+--- 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 libpng; do
++    for l in libpng14 libpng12 libpng13 libpng10 libpng; do
+       if $PKG_CONFIG --exists $l ; then
+         png_REQUIRES=$l
+         use_png=yes

diff --git a/x11-libs/cairo/files/cairo-1.8.8-interix.patch b/x11-libs/cairo/files/cairo-1.8.8-interix.patch
new file mode 100644
index 0000000..dc20714
--- /dev/null
+++ b/x11-libs/cairo/files/cairo-1.8.8-interix.patch
@@ -0,0 +1,16 @@
+diff -ru cairo-1.8.8.orig/build/configure.ac.tools cairo-1.8.8/build/configure.ac.tools
+--- cairo-1.8.8.orig/build/configure.ac.tools	2009-09-30 13:36:42 +0200
++++ cairo-1.8.8/build/configure.ac.tools	2009-09-30 13:50:50 +0200
+@@ -21,5 +21,12 @@
+ *) PKGCONFIG_REQUIRES="Requires.private"; ;;
+ esac
+ 
++dnl hmm... on interix, things go really bad with Requires.private, since libpng12
++dnl is missing on the final link commands, so gtk+'s configure checks for cairo
++dnl fail miserably with unresolved symbols to it.
++case "$host_os" in
++interix*) PKGCONFIG_REQUIRES="Requires" ;;
++esac
++
+ AC_SUBST(PKGCONFIG_REQUIRES)
+ 

diff --git a/x11-libs/cairo/metadata.xml b/x11-libs/cairo/metadata.xml
new file mode 100644
index 0000000..a842180
--- /dev/null
+++ b/x11-libs/cairo/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>x11</herd>
+<maintainer>
+  <email>cardoe@gentoo.org</email>
+  <name>Doug Goldstein</name>
+</maintainer>
+<maintainer>
+  <email>spatz@gentoo.org</email>
+  <name>Dror Levin</name>
+</maintainer>
+<use>
+	<flag name='cleartype'>Add ClearType-style behavior for sub-pixel hinting.
+		Patch taken from Arch Linux</flag>
+	<flag name='lcdfilter'>Add FreeType LCD filtering, ClearType-style behavior
+		for sub-pixel-hinting. Overrides cleartype USE flag. Patch taken from
+		Ubuntu</flag>
+	<flag name='opengl' restrict="&gt;=x11-libs/cairo-1.10.0">
+		Use Mesa backend for acceleration
+	</flag>
+	<flag name='drm'>Use Linux DRM for backend acceleration</flag>
+	<flag name='gallium'>Use Mesa's Gallium backend for acceleration</flag>
+	<flag name='glib'>Compile with GLib Object System support</flag>
+	<flag name='openvg'>Use OpenVG for backend acceleration</flag>
+</use>
+</pkgmetadata>



^ permalink raw reply related	[flat|nested] 2+ messages in thread
* [gentoo-commits] dev/dilfridge:master commit in: x11-libs/cairo/, x11-libs/cairo/files/
@ 2012-01-03 22:46 Andreas Hüttel
  0 siblings, 0 replies; 2+ messages in thread
From: Andreas Hüttel @ 2012-01-03 22:46 UTC (permalink / raw
  To: gentoo-commits

commit:     44f2c3d7518d1468f1fdd4fc3b25307fbdaffaf5
Author:     Andreas K. Huettel (dilfridge) <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  3 22:44:27 2012 +0000
Commit:     Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Tue Jan  3 22:44:27 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=dev/dilfridge.git;a=commit;h=44f2c3d7

[x11-libs/cairo] Not needed here anymore

---
 x11-libs/cairo/Manifest                            |   29 --
 x11-libs/cairo/cairo-1.10.2-r2.ebuild              |  159 -----------
 .../cairo/files/cairo-1.10.0-buggy_gradients.patch |   17 --
 x11-libs/cairo/files/cairo-1.10.2-interix.patch    |   36 ---
 x11-libs/cairo/files/cairo-1.10.2-qt-surface.patch |   55 ----
 .../files/cairo-1.2.4-lcd-cleartype-like.diff      |  275 --------------------
 x11-libs/cairo/files/cairo-1.8.10-libpng14.patch   |   11 -
 x11-libs/cairo/files/cairo-1.8.8-interix.patch     |   16 --
 x11-libs/cairo/metadata.xml                        |   27 --
 9 files changed, 0 insertions(+), 625 deletions(-)

diff --git a/x11-libs/cairo/Manifest b/x11-libs/cairo/Manifest
deleted file mode 100644
index a598954..0000000
--- a/x11-libs/cairo/Manifest
+++ /dev/null
@@ -1,29 +0,0 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA512
-
-AUX cairo-1.10.0-buggy_gradients.patch 581 RMD160 077fb7a18c2840c0d637d2161ca9d244cb69608b SHA1 45f4b6a834cb9f1c153f092fba18416d257d71c7 SHA256 3b622bb250b996ea5f5adc5c899af343e0efba5c477fa0e51fdbb720a8dd1b18
-AUX cairo-1.10.2-interix.patch 1235 RMD160 83803df650e8381649b11bd3c81dd0c6ee5f8e53 SHA1 d6b731fc8aa0c9461e62a9afc1431782d3af433b SHA256 d915d69e2eb96f6a4bef1de0c493ed9face7b5d6a79194ab9f2a7f3d85b799ea
-AUX cairo-1.10.2-qt-surface.patch 2687 RMD160 9ffc2924070a7dfa917a2b05b11de1fcca571dab SHA1 6ce6a6047d6f8420ea3044d036e7d10c6ac98c61 SHA256 fb96199ec7a4cf8527726be8d0333ed883183b56960832218eca1c9ef2e05dbd
-AUX cairo-1.2.4-lcd-cleartype-like.diff 7244 RMD160 e50d5bf17cbead688a8b808a78fe4104c09af52e SHA1 f63131fd75bb496db59e3ce6bc755bbfb70baacb SHA256 4926d20d2b6b5071a5bf9ee9a12a36fef69510ebebd717c1dab151fe650f173a
-AUX cairo-1.8.10-libpng14.patch 426 RMD160 f97e4f2d1e65e2c6a90c5fddbce66caeb4337bba SHA1 bb029f710432af7b24175aa941fc7cd3187ef767 SHA256 b090f829d3b9fb69b83bfa094552335b8382988d60ce7e46558c4069b8bca532
-AUX cairo-1.8.8-interix.patch 619 RMD160 9bb28c5a88aa1f2776d32ac7020aef4ba93872b5 SHA1 857a4d2be0118a6d2d0d80388b5963a5f768341d SHA256 505be82a1a0b7f963cb49ff85ecf1fa1389a4e43621df76b91fc1529616b2299
-DIST cairo-1.10.2.tar.gz 23558405 RMD160 8c8de00120398fe2b3a60a08ff59a464b2eebf47 SHA1 ccce5ae03f99c505db97c286a0c9a90a926d3c6e SHA256 32018c7998358eebc2ad578ff8d8559d34fc80252095f110a572ed23d989fc41
-EBUILD cairo-1.10.2-r2.ebuild 4198 RMD160 fd014de4730fe58f96f223e67b69f7488a1f4129 SHA1 2007dcd723dd78071998cc9baeafbaa88908bed2 SHA256 4adaba8bace8c0b4058c1136a58b9a832bf0fe7b30d12491632456f5e3cd8e1a
-MISC metadata.xml 998 RMD160 2a4f5df13bc9d39c91e12e80924465450d758e32 SHA1 f4e943a00531a6f6a5ca2945a05ab95233b63e3b SHA256 325e1f55131748f3840ed1cfec421fe27aa6a621568135e4f6ce1d517b5d3cd8
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.17 (GNU/Linux)
-
-iQIcBAEBCgAGBQJO8aD7AAoJENwGBM22xffe17gP+gJhHkBahmisQx69En53miQU
-1WSNx3gjiRvA6nnMoHsrGvhMZSkvfOACxfy0COp2w8+pojDHVyBJ/alJdw65Y2sn
-UfklPT5EgrV90b4P8dkCgq7/3C1O84yjDviroDayODjhjz5Lp2oASTYqrOQtm+yt
-cWUgdTOmtCYaEt/+TBUta1xnLM0qEkKxwIvHzgjY9c79ifwFkxvoV/vIsPJw9IAp
-rgXhd/nyLvEHQHADrBfoYtGgMnXYci4nNmnqXpVE2+PLWRdox4o8q0oqlHTK8Sey
-3+suF1FJPWHUD37vQUU2oNSi/bbvEePFlaBlHwfGe7ux2RQxYfvBc0KLLQHXFL9b
-dfH0eCZEuk3qlYHHR4jKpCIwJUXH7UBByi4O7H27lACxwH3usoy+tMMG2Btvgugm
-4E5+fIvt+v1Oohf2p8HjOPJ92hFzef6VdJ10MKNpx8gzR+5QlxKMAp1W5R7vZSoh
-8pG7mWG3EzQrXB4DXOM4LD+JtRTPts3e4NWo4G17kZS0tNIyDkd+GmObQaoZ97iz
-WMJmxrKN2zGamtowCiK0G/Iq7Lba+qQtGQ8qdKJkj0vLkFVjBNeEp3OcfXAcTKeP
-2k/Arnuu6elD4NNGCmPO3q0/aJQNebmQ4YxXjvHc1ZkTD16tO5i1Y2qAEligb00G
-UBHv7gStQeSAiy18YdKi
-=MPY2
------END PGP SIGNATURE-----

diff --git a/x11-libs/cairo/cairo-1.10.2-r2.ebuild b/x11-libs/cairo/cairo-1.10.2-r2.ebuild
deleted file mode 100644
index cc6fdae..0000000
--- a/x11-libs/cairo/cairo-1.10.2-r2.ebuild
+++ /dev/null
@@ -1,159 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/cairo/cairo-1.10.2-r1.ebuild,v 1.13 2011/07/13 09:05:48 mduft Exp $
-
-EAPI=3
-
-EGIT_REPO_URI="git://anongit.freedesktop.org/git/cairo"
-[[ ${PV} == *9999 ]] && GIT_ECLASS="git"
-
-inherit eutils flag-o-matic autotools ${GIT_ECLASS}
-
-DESCRIPTION="A vector graphics library with cross-device output support"
-HOMEPAGE="http://cairographics.org/"
-[[ ${PV} == *9999 ]] || 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="X aqua debug directfb doc drm gallium +glib 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.18.4
-	directfb? ( dev-libs/DirectFB )
-	glib? ( dev-libs/glib:2 )
-	opengl? ( virtual/opengl )
-	openvg? ( media-libs/mesa[gallium] )
-	qt4? ( >=x11-libs/qt-gui-4.4:4 )
-	svg? ( dev-libs/libxml2 )
-	X? (
-		>=x11-libs/libXrender-0.6
-		x11-libs/libXext
-		x11-libs/libX11
-		x11-libs/libXft
-		drm? (
-			>=sys-fs/udev-136
-			gallium? ( media-libs/mesa[gallium] )
-		)
-	)
-	xcb? (
-		x11-libs/libxcb
-		x11-libs/xcb-util
-	)"
-DEPEND="${RDEPEND}
-	dev-util/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
-		)
-	)"
-
-src_prepare() {
-	epatch "${FILESDIR}"/${PN}-1.8.8-interix.patch
-	epatch "${FILESDIR}"/${PN}-1.10.0-buggy_gradients.patch
-	epatch "${FILESDIR}"/${P}-interix.patch
-	epatch "${FILESDIR}"/${P}-qt-surface.patch
-
-	# 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
-
-	# tracing fails to compile, because Solaris' libelf doesn't do large files
-	[[ ${CHOST} == *-solaris* ]] && myopts+=" --disable-trace"
-
-	# 128-bits long arithemetic functions are missing
-	[[ ${CHOST} == powerpc*-*-darwin* ]] && filter-flags -mcpu=*
-
-	#gets rid of fbmmx.c inlining warnings
-	append-flags -finline-limit=1200
-
-	if use X; then
-		myopts+="
-			--enable-tee=yes
-			$(use_enable drm)
-		"
-
-		if use drm; then
-			myopts+="
-				$(use_enable gallium)
-				$(use_enable xcb xcb-drm)
-			"
-		else
-			use gallium && ewarn "Gallium use requires drm use enabled. So disabling for now."
-			myopts+="
-				--disable-gallium
-				--disable-xcb-drm
-			"
-		fi
-	else
-		use drm && ewarn "drm use requires X use enabled. So disabling for now."
-		myopts+="
-			--disable-drm
-			--disable-gallium
-			--disable-xcb-drm
-		"
-	fi
-
-	# --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) \
-		--enable-ft \
-		--enable-pdf \
-		--enable-png \
-		--enable-ps \
-		--disable-xlib-xcb \
-		${myopts}
-}
-
-src_install() {
-	# parallel make install fails
-	emake -j1 DESTDIR="${D}" install || die
-	find "${ED}" -name '*.la' -exec rm -f {} +
-	dodoc AUTHORS ChangeLog NEWS README || die
-}

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
deleted file mode 100644
index a58c2f8..0000000
--- a/x11-libs/cairo/files/cairo-1.10.0-buggy_gradients.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-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-interix.patch b/x11-libs/cairo/files/cairo-1.10.2-interix.patch
deleted file mode 100644
index 3333e3e..0000000
--- a/x11-libs/cairo/files/cairo-1.10.2-interix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-commit 95f6f7a174ca096a3d3dbe84ff220d166d1e2baa
-Author: Uli Schlachter <psychon@znc.in>
-Date:   Fri Oct 22 11:54:57 2010 +0200
-
-    Make both versions of _cairo_lround consistent again
-    
-    Commit c0008242b0f made cairo use libm's lround instead of its own _cairo_lround
-    by default. However, since commit ce58f874 from 2006, _cairo_lround does
-    arithmetic rounding instead of away-from-zero rounding (before said commit, it
-    was using baker's rounding).
-    
-    So to make the rounding of _cairo_lround be independent from
-    DISABLE_SOME_FLOATING_POINT, we have to use another function. Turns out that
-    _cairo_round already does the same thing that _cairo_lround does. Their only
-    difference is the return type.
-    
-    Signed-off-by: Uli Schlachter <psychon@znc.in>
-    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-
-diff --git a/src/cairoint.h b/src/cairoint.h
-index 53c87e5..539d92e 100644
---- a/src/cairoint.h
-+++ b/src/cairoint.h
-@@ -968,7 +968,11 @@ _cairo_round (double r)
- cairo_private int
- _cairo_lround (double d) cairo_const;
- #else
--#define _cairo_lround lround
-+static inline int cairo_const
-+_cairo_lround (double r)
-+{
-+    return _cairo_round (r);
-+}
- #endif
- 
- cairo_private uint16_t

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
deleted file mode 100644
index cf0b57a..0000000
--- a/x11-libs/cairo/files/cairo-1.10.2-qt-surface.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-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.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.10-libpng14.patch b/x11-libs/cairo/files/cairo-1.8.10-libpng14.patch
deleted file mode 100644
index 1872367..0000000
--- a/x11-libs/cairo/files/cairo-1.8.10-libpng14.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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 libpng; do
-+    for l in libpng14 libpng12 libpng13 libpng10 libpng; do
-       if $PKG_CONFIG --exists $l ; then
-         png_REQUIRES=$l
-         use_png=yes

diff --git a/x11-libs/cairo/files/cairo-1.8.8-interix.patch b/x11-libs/cairo/files/cairo-1.8.8-interix.patch
deleted file mode 100644
index dc20714..0000000
--- a/x11-libs/cairo/files/cairo-1.8.8-interix.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -ru cairo-1.8.8.orig/build/configure.ac.tools cairo-1.8.8/build/configure.ac.tools
---- cairo-1.8.8.orig/build/configure.ac.tools	2009-09-30 13:36:42 +0200
-+++ cairo-1.8.8/build/configure.ac.tools	2009-09-30 13:50:50 +0200
-@@ -21,5 +21,12 @@
- *) PKGCONFIG_REQUIRES="Requires.private"; ;;
- esac
- 
-+dnl hmm... on interix, things go really bad with Requires.private, since libpng12
-+dnl is missing on the final link commands, so gtk+'s configure checks for cairo
-+dnl fail miserably with unresolved symbols to it.
-+case "$host_os" in
-+interix*) PKGCONFIG_REQUIRES="Requires" ;;
-+esac
-+
- AC_SUBST(PKGCONFIG_REQUIRES)
- 

diff --git a/x11-libs/cairo/metadata.xml b/x11-libs/cairo/metadata.xml
deleted file mode 100644
index a842180..0000000
--- a/x11-libs/cairo/metadata.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<herd>x11</herd>
-<maintainer>
-  <email>cardoe@gentoo.org</email>
-  <name>Doug Goldstein</name>
-</maintainer>
-<maintainer>
-  <email>spatz@gentoo.org</email>
-  <name>Dror Levin</name>
-</maintainer>
-<use>
-	<flag name='cleartype'>Add ClearType-style behavior for sub-pixel hinting.
-		Patch taken from Arch Linux</flag>
-	<flag name='lcdfilter'>Add FreeType LCD filtering, ClearType-style behavior
-		for sub-pixel-hinting. Overrides cleartype USE flag. Patch taken from
-		Ubuntu</flag>
-	<flag name='opengl' restrict="&gt;=x11-libs/cairo-1.10.0">
-		Use Mesa backend for acceleration
-	</flag>
-	<flag name='drm'>Use Linux DRM for backend acceleration</flag>
-	<flag name='gallium'>Use Mesa's Gallium backend for acceleration</flag>
-	<flag name='glib'>Compile with GLib Object System support</flag>
-	<flag name='openvg'>Use OpenVG for backend acceleration</flag>
-</use>
-</pkgmetadata>



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-01-03 22:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-23  9:57 [gentoo-commits] dev/dilfridge:master commit in: x11-libs/cairo/, x11-libs/cairo/files/ Andreas Hüttel
  -- strict thread matches above, loose matches on Subject: below --
2012-01-03 22:46 Andreas Hüttel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox