summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO39
-rw-r--r--PKGBUILD64
-rw-r--r--cairo-respect-fontconfig_pb.patch13
-rw-r--r--cairo-server-side-gradients.patch17
-rw-r--r--cairo-webkit-html5-fix.patch30
5 files changed, 163 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..ea21dba2fae3
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,39 @@
+pkgbase = cairo
+ pkgdesc = Cairo vector graphics library
+ pkgver = 1.14.2
+ pkgrel = 1
+ url = http://cairographics.org/
+ arch = i686
+ arch = x86_64
+ license = LGPL
+ license = MPL
+ makedepends = libgl
+ makedepends = librsvg
+ makedepends = gtk2
+ makedepends = poppler-glib
+ makedepends = libspectre
+ makedepends = gtk-doc
+ makedepends = valgrind
+ makedepends = git
+ depends = libpng
+ depends = libxrender
+ depends = libxext
+ depends = fontconfig
+ depends = pixman>=0.28.0
+ depends = glib2
+ depends = mesa
+ depends = libgl
+ depends = lzo
+ provides = cairo-xcb
+ replaces = cairo-xcb
+ source = http://cairographics.org/releases/cairo-1.14.2.tar.xz
+ source = cairo-respect-fontconfig_pb.patch
+ source = cairo-server-side-gradients.patch
+ source = cairo-webkit-html5-fix.patch
+ sha1sums = c8da68aa66ca0855b5d0ff552766d3e8679e1d24
+ sha1sums = d8ffcb4c4745f7e61671109362a80a872ac989d3
+ sha1sums = 72ecf2dda8462e1588512de257ccbe18642d507f
+ sha1sums = 5bff494f52a16114f4cf6d04bfb0b9d7c4e9da23
+
+pkgname = cairo
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..77ada5339138
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 233413 2015-03-12 21:33:59Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Brice Carpentier <brice@daknet.org>
+
+pkgname=cairo
+pkgver=1.14.2
+pkgrel=1
+pkgdesc="Cairo vector graphics library"
+arch=(i686 x86_64)
+license=('LGPL' 'MPL')
+url="http://cairographics.org/"
+depends=('libpng' 'libxrender' 'libxext' 'fontconfig' 'pixman>=0.28.0' 'glib2' 'mesa' 'libgl' 'lzo')
+makedepends=('libgl' 'librsvg' 'gtk2' 'poppler-glib' 'libspectre' 'gtk-doc' 'valgrind' 'git')
+ # for the test suite:
+ #'ttf-dejavu' 'gsfonts' 'xorg-server-xvfb' ) # 'libdrm')
+#optdepends=('xcb-util: for XCB backend') # really needed?
+provides=('cairo-xcb')
+replaces=('cairo-xcb')
+source=(
+ "http://cairographics.org/releases/cairo-$pkgver.tar.xz"
+ "cairo-respect-fontconfig_pb.patch"
+ "cairo-server-side-gradients.patch"
+ "cairo-webkit-html5-fix.patch")
+sha1sums=('c8da68aa66ca0855b5d0ff552766d3e8679e1d24'
+ 'd8ffcb4c4745f7e61671109362a80a872ac989d3'
+ '72ecf2dda8462e1588512de257ccbe18642d507f'
+ '5bff494f52a16114f4cf6d04bfb0b9d7c4e9da23')
+
+build() {
+ cd $pkgname-$pkgver
+
+ patch -Np1 -i ../cairo-respect-fontconfig_pb.patch
+ patch -Np1 -i ../cairo-server-side-gradients.patch
+ patch -Np1 -i ../cairo-webkit-html5-fix.patch
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-tee \
+ --enable-gl \
+ --enable-egl \
+ --enable-svg \
+ --enable-ps \
+ --enable-pdf \
+ --enable-gobject \
+ --enable-gtk-doc
+
+ #--disable-xlib-xcb \
+ #--enable-test-surfaces \ takes ages
+ #--enable-drm # breaks build
+
+ make
+}
+
+check() {
+ cd $pkgname-$pkgver
+ #make -j1 -k test || /bin/true
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/cairo-respect-fontconfig_pb.patch b/cairo-respect-fontconfig_pb.patch
new file mode 100644
index 000000000000..55912cd2371e
--- /dev/null
+++ b/cairo-respect-fontconfig_pb.patch
@@ -0,0 +1,13 @@
+--- a/src/cairo-ft-font.c 2015-03-10 23:21:07.000000000 +0100
++++ b/src/cairo-ft-font.c 2015-03-11 21:59:05.747697134 +0100
+@@ -1841,7 +1841,9 @@ _cairo_ft_options_merge (cairo_ft_option
+ options->base.subpixel_order = other->base.subpixel_order;
+ }
+
+- if (options->base.hint_style == CAIRO_HINT_STYLE_DEFAULT)
++ options->base.hint_style = CAIRO_HINT_STYLE_DEFAULT;
++
++ if (other->base.hint_style != CAIRO_HINT_STYLE_DEFAULT)
+ options->base.hint_style = other->base.hint_style;
+
+ if (other->base.hint_style == CAIRO_HINT_STYLE_NONE)
diff --git a/cairo-server-side-gradients.patch b/cairo-server-side-gradients.patch
new file mode 100644
index 000000000000..b5b012aaf210
--- /dev/null
+++ b/cairo-server-side-gradients.patch
@@ -0,0 +1,17 @@
+# Description: don't use server side gradients most drivers don't handle it
+Index: cairo-1.12.2/src/cairo-xlib-display.c
+===================================================================
+--- a/src/cairo-xlib-display.c 2015-03-10 23:21:07.000000000 +0100
++++ b/src/cairo-xlib-display.c 2015-03-11 21:59:05.751030406 +0100
+@@ -263,11 +263,7 @@ _cairo_xlib_device_create (Display *dpy)
+ /* 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/cairo-webkit-html5-fix.patch b/cairo-webkit-html5-fix.patch
new file mode 100644
index 000000000000..e56bbc922300
--- /dev/null
+++ b/cairo-webkit-html5-fix.patch
@@ -0,0 +1,30 @@
+From 0742b90a214b35951414558f6f5579f79b8a8194 Mon Sep 17 00:00:00 2001
+From: Massimo Valentini <mvalentini@src.gnome.org>
+Date: Thu, 21 Aug 2014 17:15:51 +0200
+Subject: [PATCH] Fix segfault rendering videos in webkit based browsers
+
+do not tessellate empty boxes.
+
+Reported-by: Henrique Lengler <henriqueleng@openmailbox.org>
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81699
+---
+ src/cairo-bentley-ottmann-rectangular.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/cairo-bentley-ottmann-rectangular.c b/src/cairo-bentley-ottmann-rectangular.c
+index 5541bdc..4bcd8d1 100644
+--- a/src/cairo-bentley-ottmann-rectangular.c
++++ b/src/cairo-bentley-ottmann-rectangular.c
+@@ -823,6 +823,9 @@ _cairo_bentley_ottmann_tessellate_boxes (const cairo_boxes_t *in,
+ for (i = 0; i < chunk->count; i++) {
+ int h;
+
++ if (box[i].p1.y == box[i].p2.y)
++ continue;
++
+ if (box[i].p1.x < box[i].p2.x) {
+ rectangles[j].left.x = box[i].p1.x;
+ rectangles[j].left.dir = 1;
+--
+1.9.3
+