add patched cairo

This commit is contained in:
Mario Fetka 2013-10-31 04:36:15 +01:00
parent 8751dafd50
commit 3d57eb3cd6
16 changed files with 2059 additions and 0 deletions

View File

@ -630,6 +630,13 @@ _kernel_src_compile() {
K_GENKERNEL_ARGS+=" --kernel-target=uImage --kernel-binary=arch/arm/boot/uImage"
fi
# Freescale
if [ "${K_NASKERNEL_NAME}" = "pandaboard" ]; then
K_NASKERNEL_TYPE="default"
K_NASKERNEL_DEVICE="OMAP4 Panda board"
K_GENKERNEL_ARGS+=" --kernel-target=uImage --kernel-binary=arch/arm/boot/uImage"
fi
unset LDFLAGS
if [ "${K_NASKERNEL_DTB}" != "none" ]; then

1465
x11-libs/cairo/ChangeLog Normal file

File diff suppressed because it is too large Load Diff

15
x11-libs/cairo/Manifest Normal file
View File

@ -0,0 +1,15 @@
AUX cairo-1.10.0-buggy_gradients.patch 581 SHA256 3b622bb250b996ea5f5adc5c899af343e0efba5c477fa0e51fdbb720a8dd1b18 SHA512 c602992dd962586f9de09d2a838f828901845a02ba7afa1bc0cb434393aa05e98f02dc2342299b0b09f7cfbabb0295a22874023b68e1312982df2b71e3030442 WHIRLPOOL 55c72b55b1d378653204e1c8e0db463d12254ffa7a52e5c4b86eca9b67607bdcbb545b1589fa9a6df781d230d17264c67a018cece4030aac90eda7c68c41f5ea
AUX cairo-1.10.2-export-symbols.patch 2072 SHA256 31df610ff96a9d04b51e9636c8566bbe35112e5e012f585199bf883ee0924b3c SHA512 c74e670a4d2e372f37fe5b9e9c3b238bbd4eaae7ed98dc5e80efebfad243d777e0f09fd376761b082c2997848b08a88043c38f077408a4cfa7aacd941b54624f WHIRLPOOL 885e16165878e5c3817ff6ae07f2cf275a70721ebe903e51d9b9eb25f4790c5c9bb432516935427911e9417440f4a054dfb13da1d74f47ad998d88a44a271c92
AUX cairo-1.10.2-interix.patch 1235 SHA256 d915d69e2eb96f6a4bef1de0c493ed9face7b5d6a79194ab9f2a7f3d85b799ea SHA512 fbc524c2f359b489dc337a2aa70fbfc21e4cea0e306d144f45f520875471a66b65cd7687730461bff16c47792a30d81ed2be48895e2809cc24996a2dc26c560e WHIRLPOOL d25a09cb9c53b553690e865385be90cd696ed6135734d4d2f3814bd30e386c5f0bff05e7cd4f34c737dd2db2e35f590023b4dd7a00e767abdad9acf60775d684
AUX cairo-1.10.2-qt-surface.patch 2687 SHA256 fb96199ec7a4cf8527726be8d0333ed883183b56960832218eca1c9ef2e05dbd SHA512 1263f129f96ecf0277ba436cac0229b6245bed273594b2199d6b0f36711e323c966c43d9264e4cc8b69a299c8e9c1ec4af09ae2284bf5ca59a72486b31439c48 WHIRLPOOL 1ec6c56a6e1de3c838fb2dfa541e062e3f63630910a5609fe211bab8c8bbdb1968af021954020b4da208ba43cde18795e6114fccdd13ee0de2e0edd285d7996a
AUX cairo-1.10.2-ubuntu.patch 1777 SHA256 150d5b9f7f842d574a6e10e579bc8f27ca7b2055af8e0dd455aa0832bc3f4dae SHA512 8d9144fe809c4135f0dbd271d580620da769e2f946386e345783cf2379db458ed5ef964785b66d70b4e44a007c85a9209c85366144ad057d3ac5b60ee80383bc WHIRLPOOL c0754ccdeacc91ee2d222a945d8787ae3379a2881c36d8f0f6c545262baeb8f9fc866dba657f5d706c0b658efd5834c06725c2b942473b8755af10662f8ec088
AUX cairo-1.12.10-xlib-corruption.patch 3199 SHA256 917c8d49ef881982e124a8e3b22bd4a2160ec3372c3518cf6c45287e10a434b3 SHA512 e7d6ec9729bcc3e755fdf7214d662728686ddecaee10a43ec50fa3bea010db156e063ba9f817ffdbf46ee85bfd4097a927b101b525505dd15eaec79ed622b479 WHIRLPOOL 3783515ab7e0b7700e77b56f699645060531a328b14975259250745a6f180bc36d9d2ac4feb494608a0a073e2729f5cb4662dafe25582ea3617e653497b2fc72
AUX cairo-1.12.10-xshm-corruption.patch 1039 SHA256 3bf1147514160a76dbd6282e1e1b834155710a34c0f8fae6fe979f91b0cab735 SHA512 e7c793a2468fc3173be9058a250feea8390b3090c81f59ba00c052885077d2ff65e08bbc0536b96e2c7fee136bb2307aa8e8193e54e6dd3fd47107529a65d5c7 WHIRLPOOL 3cc47b61920197c069063805b89c1e0ab8964996c4331eb018049a268ee08275ac0dbb58dce891b58b335808b8c4fb6be565bf95181e6d1bc7a9551e17b5def9
AUX cairo-1.12.12-disable-test-suite.patch 461 SHA256 da474e8982b1177ee6f8df70ce0867ee4e451a1ff6a94dce53ca2d62a936cd95 SHA512 1985a369fd6d707e816d9bb22aed89039b09fee105c84ffa4c63232dba15e87f12888d6ac735c766c075851e64e53c052df8af1eef08a75d6b908a5244ae2303 WHIRLPOOL c4ad092277b83d110094400af19f98b569297359be32b3e9a07a6e46acd43bcbdc3721838e833180809d647a2c7b941c9be1e8a00a437c3de3602dd8935610b2
AUX cairo-1.12.14-libpng16.patch 1525 SHA256 f1af9d30e658b795062a42be3ef0bd0e215a69d7f8d3d295910a2459cf7aa21a SHA512 94483ddc3dc6ad4ff6e37c902e845d38375485077fbb682b512ead0b62abbe6708ad4e708bf84abb877c993b938c3412d581b42248ad3e2b77eda03c98437808 WHIRLPOOL fb5721a399059fbc1ea324192b5cd0ce63c9604f8cd3df9ecb51a239b9479450a2cba3786594a5ffec111212daeb72d6a5f14dcff9d081757a97b5344edbd6c0
AUX cairo-1.8.8-interix.patch 619 SHA256 505be82a1a0b7f963cb49ff85ecf1fa1389a4e43621df76b91fc1529616b2299 SHA512 651b73124ee5b65e2735deefde36727122e9c513da134441be923fb875aedfd3dbd81de8652e3919f3fa04d1de13dee6ec28e4fcd687aaec427d3b0dd94ac703 WHIRLPOOL a1803cbd8f32a8e926a8af932e099c5275920e3e09f7a53ee49898823e81ee7a2533a4db8d2125f200fa409d98fb8e2cbdeb01f00f64b7ba64ba8dffb8487bc3
AUX cairo-respect-fontconfig.patch 538 SHA256 1732f21adfe5ab291d987b7537b13470266253f599901a4707d27fd2b3d66734 SHA512 4d4d473f956b56f11b31f513de06751dcc77342e0f04ecf37064a74b8217f9d3536c0a8a41b09e580f34576ff2d06815b4cbc2bc091c201f947965509677415e WHIRLPOOL c7d8f364a787b095054507a6dceafe08e8112322853e261303adc07b79a9070be63200dbd4ff465943e2303126bcd7eec51b0f6c53f1d4e9a49fd363acbccde2
DIST cairo-1.12.16.tar.xz 35889824 SHA256 2505959eb3f1de3e1841023b61585bfd35684b9733c7b6a3643f4f4cbde6d846 SHA512 35389305ba0906e2e1beab92966650fc7d7f8f41231e355ea2bf8693a333946f0693c125d1c50681e12b7f2aff85ae1fdcf957f3d83bc7eaacd52569884c6b2f WHIRLPOOL 00c5e237ac67c2287f90f204456178dcd123126c42669fa63e3dc04fbf9b46d867c554b8f2ecaf803a2553c388661fda5efc4803d6c1f30d7d8fc75fff06cde0
EBUILD cairo-1.12.16.ebuild 4139 SHA256 ee8f8ab28c60a2fe807ea538ea1a11cb95cd0bb704f2caffd3e34bdec462c3fd SHA512 98e1d668271b7c8f7b1180434624c977f3a3943403c9e1c59673c1cb87910107452a1c68ece0727b2dfe60490e1a293b706292451faaa375813d324190740019 WHIRLPOOL 04afef33c7fca94a9a9529e32d47a990df50f367b2a0c49eec1e58b22b74b154ddc20df27f068147e19efd72c9a589ddb3549cdb24762fe000b770cf723ff610
MISC ChangeLog 52396 SHA256 d40e5c09ddfb3b6b6747c6e5083b61261eafd5d543c4888ed71f5a2eeb9de4f2 SHA512 7f06a10428d712adb967efa46888354bb220f884286265b5048966e2288815198f8711124ed7126c777f91582baa8b045230d1ded7e61a5db3c1aa72e3eda1d4 WHIRLPOOL 5e18a829f074a63e943a3085693392aa9ecc64f40598c1acd0de922c169796a756de850b150f443a23fa69a7285bc230887df60d1f8b2ae28e806bb05c23d42f
MISC metadata.xml 1120 SHA256 31293cbaa2aaea9ba9e6e1540b20f6e33506b3d961771bb7554be0e6eef28d7a SHA512 c7f719c398060751c7c78f175ec87a9c56872f6cc5764f1ae2248e554dd017d84880f861cd3e481697e2d368151f317240f9aed38b52f110a5dfe5de236ed10a WHIRLPOOL b1ba1fc5aa725ac69d0c62bbeab511601378d73be6b2134b3cb469261b36402552fa004e5f871d9c1d055e40d183a8ad46d9768b1f9e4dad3c344f8f00003210

View File

@ -0,0 +1,150 @@
# 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.16.ebuild,v 1.1 2013/08/27 12:16:55 chithanh Exp $
EAPI=5
inherit eutils flag-o-matic autotools
if [[ ${PV} == *9999* ]]; then
inherit git-2
EGIT_REPO_URI="git://anongit.freedesktop.org/git/cairo"
SRC_URI=""
KEYWORDS=""
else
SRC_URI="http://cairographics.org/releases/${P}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
DESCRIPTION="A vector graphics library with cross-device output support"
HOMEPAGE="http://cairographics.org/"
LICENSE="|| ( LGPL-2.1 MPL-1.1 )"
SLOT="0"
IUSE="X aqua debug directfb doc drm gallium gles2 +glib legacy-drivers opengl openvg qt4 static-libs +svg valgrind xcb xlib-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 )
gles2? ( media-libs/mesa[gles2] )
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 )
gles2? ( !opengl )
openvg? ( || ( gles2 opengl ) )
xlib-xcb? ( xcb )
"
src_prepare() {
epatch "${FILESDIR}"/${PN}-1.8.8-interix.patch
use legacy-drivers && epatch "${FILESDIR}"/${PN}-1.10.0-buggy_gradients.patch
epatch "${FILESDIR}"/${PN}-respect-fontconfig.patch
epatch_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
[[ ${CHOST} == *-interix* ]] && append-flags -D_REENTRANT
use elibc_FreeBSD && myopts+=" --disable-symbol-lookup"
ac_cv_header_sys_ipc_h=no econf \
--disable-dependency-tracking \
$(use_with X x) \
$(use_enable X tee) \
$(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 drm) \
$(use_enable directfb) \
$(use_enable gallium) \
$(use_enable gles2 glesv2) \
$(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 valgrind) \
$(use_enable xcb) \
$(use_enable xcb xcb-shm) \
$(use_enable xlib-xcb) \
--enable-ft \
--enable-pdf \
--enable-png \
--enable-ps \
${myopts}
}
src_install() {
# parallel make install fails
emake -j1 DESTDIR="${D}" install
find "${ED}" -name '*.la' -exec rm -f {} +
dodoc AUTHORS ChangeLog NEWS README
}
pkg_postinst() {
if use !xlib-xcb; then
if has_version net-misc/nxserver-freenx \
|| has_version net-misc/x2goserver; then
ewarn "cairo-1.12 is known to cause GTK+ errors with NX servers."
ewarn "Enable USE=\"xlib-xcb\" if you notice incorrect behavior in GTK+"
ewarn "applications that are running inside NX sessions. For details, see"
ewarn "https://bugs.gentoo.org/441878 or https://bugs.freedesktop.org/59173"
fi
fi
}

View File

@ -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;

View File

@ -0,0 +1,38 @@
Index: cairo/src/Makefile.am
===================================================================
--- cairo.orig/src/Makefile.am 2011-02-08 10:11:46.879538772 +0100
+++ cairo/src/Makefile.am 2011-02-08 10:12:36.381915666 +0100
@@ -46,7 +46,7 @@
$(enabled_cairo_private) \
$(enabled_cairo_sources) \
$(NULL)
-libcairo_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols)
+libcairo_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols) -export-symbols-regex \^cairo_.*
libcairo_la_LIBADD = $(CAIRO_LIBS) \
$(cairo_cxx_lib)
libcairo_la_DEPENDENCIES = $(cairo_def_dependency) $(cairo_cxx_lib)
diff --git a/util/cairo-gobject/Makefile.am b/util/cairo-gobject/Makefile.am
index 22c1a27..5a15950 100644
--- a/util/cairo-gobject/Makefile.am
+++ b/util/cairo-gobject/Makefile.am
@@ -10,6 +10,6 @@ libcairo_gobject_la_SOURCES = \
$(NULL)
libcairo_gobject_la_CFLAGS = $(CAIRO_CFLAGS) $(GOBJECT_CFLAGS)
-libcairo_gobject_la_LDFLAGS = -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols)
+libcairo_gobject_la_LDFLAGS = -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols) -export-symbols-regex \^cairo_.*
libcairo_gobject_la_LIBADD = $(top_builddir)/src/libcairo.la $(CAIRO_LIBS) $(GOBJECT_LIBS)
diff --git a/util/cairo-script/Makefile.am b/util/cairo-script/Makefile.am
index d7e4427..8d4181b 100644
--- a/util/cairo-script/Makefile.am
+++ b/util/cairo-script/Makefile.am
@@ -18,7 +18,7 @@ libcairo_script_interpreter_la_SOURCES = \
cairo-script-stack.c \
$(NULL)
libcairo_script_interpreter_la_CFLAGS = $(CAIRO_CFLAGS)
-libcairo_script_interpreter_la_LDFLAGS = -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols)
+libcairo_script_interpreter_la_LDFLAGS = -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols) -export-symbols-regex \^cairo_.*
libcairo_script_interpreter_la_LIBADD = $(top_builddir)/src/libcairo.la $(CAIRO_LIBS) -lz
csi_replay_SOURCES = csi-replay.c

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,53 @@
--- cairo.orig/build/configure.ac.features 2010-12-28 14:41:21.487225155 +0100
+++ cairo/build/configure.ac.features 2010-12-28 14:42:06.166239606 +0100
@@ -407,6 +407,7 @@
echo "The following features and utilities:"
echo " cairo-trace: $use_trace"
echo " cairo-script-interpreter: $use_interpreter"
+ echo " cairo-perf-utils: $use_perf_utils"
echo ""
echo "And the following internal features:"
echo " pthread: $use_pthread"
--- cairo.orig/configure.ac 2010-12-28 14:43:02.291226995 +0100
+++ cairo/configure.ac 2010-12-28 14:43:18.191141863 +0100
@@ -10,6 +10,7 @@
AC_CONFIG_SRCDIR(src/cairo.h)
AC_CONFIG_HEADERS(config.h)
AM_INIT_AUTOMAKE([1.9.6 gnu -Wall no-define])
+AM_MAINTAINER_MODE
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_LIBTOOL_WIN32_DLL dnl Must be called before AC_PROG_LIBTOOL
AC_PROG_LIBTOOL dnl ([1.4]) Don't remove!
@@ -796,6 +796,11 @@
PKG_CHECK_MODULES(gtk, "gtk+-2.0",have_gtk=yes, have_gtk=no)
AM_CONDITIONAL(HAVE_GTK, test "x$have_gtk" = "xyes")
+dnl ===========================================================================
+
+CAIRO_ENABLE(perf_utils, cairo-perf-utils, no, [use_perf_utils=yes])
+
+
AC_CONFIG_FILES([
Makefile
boilerplate/Makefile
--- cairo.orig/perf/Makefile.am 2010-06-18 13:47:11.000000000 +0200
+++ cairo/perf/Makefile.am 2010-12-28 14:42:06.162226875 +0100
@@ -10,6 +10,18 @@
AM_LDFLAGS = $(CAIRO_LDFLAGS)
+if CAIRO_HAS_PERF_UTILS
+bin_PROGRAMS = cairo-perf-micro \
+ cairo-perf-trace \
+ cairo-perf-diff-files \
+ cairo-perf-print \
+ cairo-perf-chart \
+ cairo-perf-compare-backends
+if HAVE_GTK
+bin_PROGRAMS += cairo-perf-graph-files
+endif
+endif
+
EXTRA_PROGRAMS += cairo-perf-micro \
cairo-perf-trace \
cairo-perf-diff-files \

View File

@ -0,0 +1,90 @@
From fa4f48cccb6c7f4e1afb2ff4b98b906b7d8d4afc Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed, 23 Jan 2013 15:04:26 +0000
Subject: xlib: Do not upload the whole image just because we want an entire row
Fixes regression exposed by
commit a73e7ff0186176bc82cd3ae1432c054c1fd3aebd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Sun Jan 6 11:29:27 2013 +0000
xlib: Simplify source creation by use of map-to-image
but ultimately from
commit 74941f822015cc50cd8477d0cf97f1a70dbff60b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Jan 2 22:27:55 2013 +0000
xlib: Use SHM transport for ordinary image uploads
Reported-by: Gökçen Eraslan <gokcen.eraslan@gmail.com>
Reported-by: Guillaume Ayoub <guillaume.ayoub@kozea.fr>
Reported-by: Emmanuel Benisty <benisty.e@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59635
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
diff --git a/src/cairo-xlib-source.c b/src/cairo-xlib-source.c
index 24290f7..ca55278 100644
--- a/src/cairo-xlib-source.c
+++ b/src/cairo-xlib-source.c
@@ -1035,7 +1035,13 @@ surface_source (cairo_xlib_surface_t *dst,
status = _cairo_surface_unmap_image (&xsrc->base, image);
if (unlikely (status)) {
- cairo_surface_destroy (src);
+ cairo_surface_destroy (&xsrc->base);
+ return _cairo_surface_create_in_error (status);
+ }
+
+ status = _cairo_xlib_surface_put_shm (xsrc);
+ if (unlikely (status)) {
+ cairo_surface_destroy (&xsrc->base);
return _cairo_surface_create_in_error (status);
}
}
diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
index dbc677e..ee69b66 100644
--- a/src/cairo-xlib-surface.c
+++ b/src/cairo-xlib-surface.c
@@ -1139,26 +1139,24 @@ _cairo_xlib_surface_draw_image (cairo_xlib_surface_t *surface,
max_request_size = XMaxRequestSize (display->display);
if (max_request_size > 8192)
max_request_size = 8192;
- if (image->stride * image->height > max_request_size) {
+ if (width * height * 4 > max_request_size) {
shm_image = _cairo_xlib_surface_create_shm__image (surface,
image->pixman_format,
- image->width,
- image->height);
+ width, height);
if (shm_image && shm_image->status == CAIRO_STATUS_SUCCESS) {
cairo_image_surface_t *clone = (cairo_image_surface_t *) shm_image;
- if (clone->stride == image->stride) {
- memcpy (clone->data, image->data, clone->stride * clone->height);
- } else {
- pixman_image_composite32 (PIXMAN_OP_SRC,
- image->pixman_image, NULL, clone->pixman_image,
- 0, 0,
- 0, 0,
- 0, 0,
- image->width, image->height);
- }
+ pixman_image_composite32 (PIXMAN_OP_SRC,
+ image->pixman_image, NULL, clone->pixman_image,
+ src_x, src_y,
+ 0, 0,
+ 0, 0,
+ width, height);
ximage.obdata = _cairo_xlib_shm_surface_get_obdata (shm_image);
ximage.data = (char *)clone->data;
ximage.bytes_per_line = clone->stride;
+ ximage.width = width;
+ ximage.height = height;
+ src_x = src_y = 0;
}
}
} else
--
cgit v0.9.0.2-2-gbebe

View File

@ -0,0 +1,28 @@
From c006b886d28a772d7a62cec52ab7e0c8196c36f6 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 29 Jan 2013 03:01:31 +0000
Subject: xlib/shm: Force synchronisation for scratch SHM image buffers
The scratch image buffers are used for uploads to the xserver and so we
must be careful not to overwrite active SHM segments. Unfortunately we
told the core SHM allocator that we would sync before using the images,
which was a lie.
Reported-by: Michael Natterer <mitch@gimp.org>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
diff --git a/src/cairo-xlib-surface-shm.c b/src/cairo-xlib-surface-shm.c
index 43cecdf..32c7033 100644
--- a/src/cairo-xlib-surface-shm.c
+++ b/src/cairo-xlib-surface-shm.c
@@ -1155,7 +1155,7 @@ _cairo_xlib_surface_create_shm__image (cairo_xlib_surface_t *surface,
return NULL;
return &_cairo_xlib_shm_surface_create (surface, format, width, height,
- TRUE, 0)->image.base;
+ FALSE, 0)->image.base;
}
cairo_surface_t *
--
cgit v0.9.0.2-2-gbebe

View File

@ -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

View File

@ -0,0 +1,40 @@
From 2dd2c826a5b367d32cf2d48ed69754795990c5db Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 16 Apr 2013 09:58:56 +0000
Subject: png: Avoid marking the surface as in error after a png warning
It turns out that libpng will continue to load an image after throwing a
warning, and that libpng16 now throws warnings for images that libpng15
and earlier loaded without error. As we were happily loading those
images into cairo surfaces before, we are therefore being overzealous
in throwing an error now - so just squelch the warning.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
diff --git a/src/cairo-png.c b/src/cairo-png.c
index e74a4a8..068617d 100644
--- a/src/cairo-png.c
+++ b/src/cairo-png.c
@@ -149,13 +149,13 @@ static void
png_simple_warning_callback (png_structp png,
png_const_charp error_msg)
{
- cairo_status_t *error = png_get_error_ptr (png);
-
- /* default to the most likely error */
- if (*error == CAIRO_STATUS_SUCCESS)
- *error = _cairo_error (CAIRO_STATUS_NO_MEMORY);
-
- /* png does not expect to abort and will try to tidy up after a warning */
+ /* png does not expect to abort and will try to tidy up and continue
+ * loading the image after a warning. So we also want to return the
+ * (incorrect?) surface.
+ *
+ * We use our own warning callback to squelch any attempts by libpng
+ * to write to stderr as we may not be in control of that output.
+ */
}
--
cgit v0.9.0.2-2-gbebe

View File

@ -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)

View File

@ -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)

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>x11</herd>
<maintainer>
<email>yngwin@gentoo.org</email>
<name>Ben de Groot</name>
</maintainer>
<use>
<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="gles2">Use OpenGL ES 2 backend for acceleration.</flag>
<flag name="glib">Compile with GLib Object System support</flag>
<flag name="legacy-drivers">Include the buggy gradients patch (for legacy drivers, such as nvidia-drivers older than 304.30)</flag>
<flag name="openvg">Use OpenVG for backend acceleration</flag>
<flag name="valgrind">Built-in support to mark memory regions</flag>
<flag name="xlib-xcb">Use XCB renderer backend for acceleration over xlib</flag>
</use>
<upstream>
<remote-id type="cpe">cpe:/a:cairographics:cairo</remote-id>
</upstream>
</pkgmetadata>