diff options
author | René Neumann <rene.neumann@in.tum.de> | 2011-08-11 19:41:33 +0200 |
---|---|---|
committer | René Neumann <rene.neumann@in.tum.de> | 2011-08-11 19:41:33 +0200 |
commit | 649ed3773a9fef8712733fbdcc9d09a5bae62f99 (patch) | |
tree | 7e44a016031820de7adb3a770c93fe26f21a826e | |
parent | da28afd29226a8445a65d22865589a71e6e06488 (diff) | |
download | overlay-649ed3773a9fef8712733fbdcc9d09a5bae62f99.tar.gz overlay-649ed3773a9fef8712733fbdcc9d09a5bae62f99.tar.bz2 overlay-649ed3773a9fef8712733fbdcc9d09a5bae62f99.zip |
Patched cairo
Diffstat (limited to '')
-rw-r--r-- | x11-libs/cairo/Manifest | 8 | ||||
-rw-r--r-- | x11-libs/cairo/cairo-1.10.2-r1.ebuild | 159 | ||||
-rw-r--r-- | x11-libs/cairo/files/cairo-1.10.0-buggy_gradients.patch | 17 | ||||
-rw-r--r-- | x11-libs/cairo/files/cairo-1.10.2-interix.patch | 36 | ||||
-rw-r--r-- | x11-libs/cairo/files/cairo-1.2.4-lcd-cleartype-like.diff | 275 | ||||
-rw-r--r-- | x11-libs/cairo/files/cairo-1.8.10-libpng14.patch | 11 | ||||
-rw-r--r-- | x11-libs/cairo/files/cairo-1.8.8-interix.patch | 16 | ||||
-rw-r--r-- | x11-libs/cairo/files/cairo-respect-fontconfig.patch | 13 |
8 files changed, 535 insertions, 0 deletions
diff --git a/x11-libs/cairo/Manifest b/x11-libs/cairo/Manifest new file mode 100644 index 0000000..14afcb4 --- /dev/null +++ b/x11-libs/cairo/Manifest @@ -0,0 +1,8 @@ +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.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 +AUX cairo-respect-fontconfig.patch 538 RMD160 2686a46bc6fcdc1961686bdc36bfdf91c23c507e SHA1 745a4ca5d2a84714714b4ab2907a8d06d3322e1d SHA256 1732f21adfe5ab291d987b7537b13470266253f599901a4707d27fd2b3d66734 +DIST cairo-1.10.2.tar.gz 23558405 RMD160 8c8de00120398fe2b3a60a08ff59a464b2eebf47 SHA1 ccce5ae03f99c505db97c286a0c9a90a926d3c6e SHA256 32018c7998358eebc2ad578ff8d8559d34fc80252095f110a572ed23d989fc41 +EBUILD cairo-1.10.2-r1.ebuild 4196 RMD160 d1e0700106fb6740f5f9c9d6162a21176a51d599 SHA1 393a3d739a59488c38db42e44c43d90b9d4ae52e SHA256 d15a22f0cf9b181547d682fd713c8d6293cbfdd003ecf8a982a01c9024a39ef5 diff --git a/x11-libs/cairo/cairo-1.10.2-r1.ebuild b/x11-libs/cairo/cairo-1.10.2-r1.ebuild new file mode 100644 index 0000000..570c90a --- /dev/null +++ b/x11-libs/cairo/cairo-1.10.2-r1.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}"/${PN}-respect-fontconfig.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.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/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) |