public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/mozilla:master commit in: x11-libs/cairo/, x11-libs/cairo/files/
@ 2012-01-29 15:53 Jory Pratt
  0 siblings, 0 replies; only message in thread
From: Jory Pratt @ 2012-01-29 15:53 UTC (permalink / raw
  To: gentoo-commits

commit:     b0584dd2c4b2859c005901b2bfe7d7d82362effc
Author:     Jory A. Pratt <anarchy <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 29 15:52:40 2012 +0000
Commit:     Jory Pratt <anarchy <AT> gentoo <DOT> org>
CommitDate: Sun Jan 29 15:52:40 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/mozilla.git;a=commit;h=b0584dd2

Make cairo-1.11.2 snapshot avaliable for build.

---
 x11-libs/cairo/Manifest                            |    5 +
 x11-libs/cairo/cairo-1.11.2.ebuild                 |  158 ++++++++++++++++++++
 .../cairo/files/cairo-1.10.0-buggy_gradients.patch |   17 ++
 x11-libs/cairo/files/cairo-1.10.2-qt-surface.patch |   55 +++++++
 x11-libs/cairo/files/cairo-1.8.8-interix.patch     |   16 ++
 5 files changed, 251 insertions(+), 0 deletions(-)

diff --git a/x11-libs/cairo/Manifest b/x11-libs/cairo/Manifest
new file mode 100644
index 0000000..c42341b
--- /dev/null
+++ b/x11-libs/cairo/Manifest
@@ -0,0 +1,5 @@
+AUX cairo-1.10.0-buggy_gradients.patch 581 RMD160 077fb7a18c2840c0d637d2161ca9d244cb69608b SHA1 45f4b6a834cb9f1c153f092fba18416d257d71c7 SHA256 3b622bb250b996ea5f5adc5c899af343e0efba5c477fa0e51fdbb720a8dd1b18
+AUX cairo-1.10.2-qt-surface.patch 2687 RMD160 9ffc2924070a7dfa917a2b05b11de1fcca571dab SHA1 6ce6a6047d6f8420ea3044d036e7d10c6ac98c61 SHA256 fb96199ec7a4cf8527726be8d0333ed883183b56960832218eca1c9ef2e05dbd
+AUX cairo-1.8.8-interix.patch 619 RMD160 9bb28c5a88aa1f2776d32ac7020aef4ba93872b5 SHA1 857a4d2be0118a6d2d0d80388b5963a5f768341d SHA256 505be82a1a0b7f963cb49ff85ecf1fa1389a4e43621df76b91fc1529616b2299
+DIST cairo-1.11.2.tar.gz 25782963 RMD160 e5dd2bc36469add524b6ac8b37a7d0127c81c4bc SHA1 40b9e1066fcd33c2aeecd800764b1aa5a0ac7bde SHA256 dcd7d0b982e1db6787a4a07ac9d99aa7db0ce22abbf59d676e211310a4059126
+EBUILD cairo-1.11.2.ebuild 4155 RMD160 1223cf64cf4704fef82692524145734ccd9d7a2a SHA1 7b10ed68f312f9b4f107325600ddeb4a5a94967e SHA256 68810fc558e67609f575999a032032a3765c778aad05034c0fcd9be4d62e3b84

diff --git a/x11-libs/cairo/cairo-1.11.2.ebuild b/x11-libs/cairo/cairo-1.11.2.ebuild
new file mode 100644
index 0000000..725bdd7
--- /dev/null
+++ b/x11-libs/cairo/cairo-1.11.2.ebuild
@@ -0,0 +1,158 @@
+# 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/snapshots/${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}"/${PN}-1.10.2-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-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.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)
+ 



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2012-01-29 15:54 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-29 15:53 [gentoo-commits] proj/mozilla:master commit in: x11-libs/cairo/, x11-libs/cairo/files/ Jory Pratt

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