diff options
-rw-r--r-- | .SRCINFO | 39 | ||||
-rw-r--r-- | PKGBUILD | 64 | ||||
-rw-r--r-- | cairo-respect-fontconfig_pb.patch | 13 | ||||
-rw-r--r-- | cairo-server-side-gradients.patch | 17 | ||||
-rw-r--r-- | cairo-webkit-html5-fix.patch | 30 |
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 + |