[arch-commits] Commit in cairo/repos (6 files)

Jan Steffens heftig at archlinux.org
Thu Sep 14 19:24:26 UTC 2017


    Date: Thursday, September 14, 2017 @ 19:24:21
  Author: heftig
Revision: 305567

archrelease: copy trunk to testing-i686, testing-x86_64

Added:
  cairo/repos/testing-i686/PKGBUILD
    (from rev 305566, cairo/trunk/PKGBUILD)
  cairo/repos/testing-i686/color-glyph-source-op.patch
    (from rev 305566, cairo/trunk/color-glyph-source-op.patch)
  cairo/repos/testing-x86_64/PKGBUILD
    (from rev 305566, cairo/trunk/PKGBUILD)
  cairo/repos/testing-x86_64/color-glyph-source-op.patch
    (from rev 305566, cairo/trunk/color-glyph-source-op.patch)
Deleted:
  cairo/repos/testing-i686/PKGBUILD
  cairo/repos/testing-x86_64/PKGBUILD

--------------------------------------------+
 /PKGBUILD                                  |   94 +++++++++++++++++++++++++++
 testing-i686/PKGBUILD                      |   38 ----------
 testing-i686/color-glyph-source-op.patch   |   39 +++++++++++
 testing-x86_64/PKGBUILD                    |   38 ----------
 testing-x86_64/color-glyph-source-op.patch |   39 +++++++++++
 5 files changed, 172 insertions(+), 76 deletions(-)

Deleted: testing-i686/PKGBUILD
===================================================================
--- testing-i686/PKGBUILD	2017-09-14 19:22:41 UTC (rev 305566)
+++ testing-i686/PKGBUILD	2017-09-14 19:24:21 UTC (rev 305567)
@@ -1,38 +0,0 @@
-# $Id$
-# Maintainer: Jan de Groot <jgc at archlinux.org>
-# Contributor: Brice Carpentier <brice at daknet.org>
-
-pkgname=cairo
-pkgver=1.15.8
-pkgrel=1
-pkgdesc="2D graphics library with support for multiple output devices"
-url="https://cairographics.org/"
-arch=(i686 x86_64)
-license=('LGPL' 'MPL')
-depends=('libpng' 'libxrender' 'libxext' 'fontconfig' 'pixman' 'glib2' 'lzo')
-makedepends=('librsvg' 'gtk2' 'poppler-glib' 'libspectre' 'gtk-doc' 'valgrind' 'git')
-source=(https://cairographics.org/snapshots/cairo-$pkgver.tar.xz)
-sha1sums=('07cc2031b74d758299eeee3ec49ecbfbfb85f1c6')
-
-build() {
-  cd $pkgname-$pkgver
-  ./configure --prefix=/usr \
-        --sysconfdir=/etc \
-        --localstatedir=/var \
-        --disable-static \
-        --disable-lto \
-        --disable-gl \
-        --enable-tee \
-        --enable-svg \
-        --enable-ps \
-        --enable-pdf \
-        --enable-gobject \
-        --enable-gtk-doc
-  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
-  make
-}
-
-package() {
-  cd $pkgname-$pkgver
-  make DESTDIR="$pkgdir" install
-}

Copied: cairo/repos/testing-i686/PKGBUILD (from rev 305566, cairo/trunk/PKGBUILD)
===================================================================
--- testing-i686/PKGBUILD	                        (rev 0)
+++ testing-i686/PKGBUILD	2017-09-14 19:24:21 UTC (rev 305567)
@@ -0,0 +1,47 @@
+# $Id$
+# Maintainer: Jan de Groot <jgc at archlinux.org>
+# Contributor: Brice Carpentier <brice at daknet.org>
+
+pkgname=cairo
+pkgver=1.15.8
+pkgrel=2
+pkgdesc="2D graphics library with support for multiple output devices"
+url="https://cairographics.org/"
+arch=(i686 x86_64)
+license=('LGPL' 'MPL')
+depends=('libpng' 'libxrender' 'libxext' 'fontconfig' 'pixman' 'glib2' 'lzo')
+makedepends=('librsvg' 'gtk2' 'poppler-glib' 'libspectre' 'gtk-doc' 'valgrind' 'git')
+source=(https://cairographics.org/snapshots/cairo-$pkgver.tar.xz
+        color-glyph-source-op.patch)
+sha1sums=('07cc2031b74d758299eeee3ec49ecbfbfb85f1c6'
+          '5d8efd47038edcf0debf0a43713bba3025f3cffd')
+
+prepare() {
+  cd $pkgname-$pkgver
+
+  # https://bugs.freedesktop.org/show_bug.cgi?id=102661
+  patch -Np1 -i ../color-glyph-source-op.patch
+}
+
+build() {
+  cd $pkgname-$pkgver
+  ./configure --prefix=/usr \
+        --sysconfdir=/etc \
+        --localstatedir=/var \
+        --disable-static \
+        --disable-lto \
+        --disable-gl \
+        --enable-tee \
+        --enable-svg \
+        --enable-ps \
+        --enable-pdf \
+        --enable-gobject \
+        --enable-gtk-doc
+  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+  make
+}
+
+package() {
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
+}

Copied: cairo/repos/testing-i686/color-glyph-source-op.patch (from rev 305566, cairo/trunk/color-glyph-source-op.patch)
===================================================================
--- testing-i686/color-glyph-source-op.patch	                        (rev 0)
+++ testing-i686/color-glyph-source-op.patch	2017-09-14 19:24:21 UTC (rev 305567)
@@ -0,0 +1,39 @@
+From 99427c3f4f6ce7ce3c95c4caa4d2b8ff7c0093d9 Mon Sep 17 00:00:00 2001
+From: Behdad Esfahbod <behdad at behdad.org>
+Date: Tue, 12 Sep 2017 01:35:15 -0400
+Subject: Handle SOURCE and CLEAR operators when painting color glyphs
+
+In cairo, most operators are composited this way:
+
+  ((src IN mask) OP dst) LERP_clip dst
+
+but SOURCE and CLEAR operators are composited this way:
+
+  (src OP dst) LERP_(clip IN mask) dst
+
+(why is this not specified anywhere in the docs or source tree?)
+
+With color glyphs, we were not special-casing SOURCE and CLEAR.
+We do now.
+
+Fixes https://bugs.freedesktop.org/show_bug.cgi?id=102661
+
+diff --git a/src/cairo-surface.c b/src/cairo-surface.c
+index 6f25bd7..35c63d7 100644
+--- a/src/cairo-surface.c
++++ b/src/cairo-surface.c
+@@ -2571,7 +2571,10 @@ composite_one_color_glyph (cairo_surface_t       *surface,
+         pattern = cairo_pattern_create_for_surface ((cairo_surface_t *)glyph_surface);
+         cairo_matrix_init_translate (&matrix, - x, - y);
+         cairo_pattern_set_matrix (pattern, &matrix);
+-        status = surface->backend->paint (surface, op, pattern, clip);
++	if (op == CAIRO_OPERATOR_SOURCE || op == CAIRO_OPERATOR_CLEAR)
++	  status = surface->backend->mask (surface, op, pattern, pattern, clip);
++	else
++	  status = surface->backend->paint (surface, op, pattern, clip);
+     }
+ 
+     return status;
+-- 
+cgit v0.10.2
+

Deleted: testing-x86_64/PKGBUILD
===================================================================
--- testing-x86_64/PKGBUILD	2017-09-14 19:22:41 UTC (rev 305566)
+++ testing-x86_64/PKGBUILD	2017-09-14 19:24:21 UTC (rev 305567)
@@ -1,38 +0,0 @@
-# $Id$
-# Maintainer: Jan de Groot <jgc at archlinux.org>
-# Contributor: Brice Carpentier <brice at daknet.org>
-
-pkgname=cairo
-pkgver=1.15.8
-pkgrel=1
-pkgdesc="2D graphics library with support for multiple output devices"
-url="https://cairographics.org/"
-arch=(i686 x86_64)
-license=('LGPL' 'MPL')
-depends=('libpng' 'libxrender' 'libxext' 'fontconfig' 'pixman' 'glib2' 'lzo')
-makedepends=('librsvg' 'gtk2' 'poppler-glib' 'libspectre' 'gtk-doc' 'valgrind' 'git')
-source=(https://cairographics.org/snapshots/cairo-$pkgver.tar.xz)
-sha1sums=('07cc2031b74d758299eeee3ec49ecbfbfb85f1c6')
-
-build() {
-  cd $pkgname-$pkgver
-  ./configure --prefix=/usr \
-        --sysconfdir=/etc \
-        --localstatedir=/var \
-        --disable-static \
-        --disable-lto \
-        --disable-gl \
-        --enable-tee \
-        --enable-svg \
-        --enable-ps \
-        --enable-pdf \
-        --enable-gobject \
-        --enable-gtk-doc
-  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
-  make
-}
-
-package() {
-  cd $pkgname-$pkgver
-  make DESTDIR="$pkgdir" install
-}

Copied: cairo/repos/testing-x86_64/PKGBUILD (from rev 305566, cairo/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD	                        (rev 0)
+++ testing-x86_64/PKGBUILD	2017-09-14 19:24:21 UTC (rev 305567)
@@ -0,0 +1,47 @@
+# $Id$
+# Maintainer: Jan de Groot <jgc at archlinux.org>
+# Contributor: Brice Carpentier <brice at daknet.org>
+
+pkgname=cairo
+pkgver=1.15.8
+pkgrel=2
+pkgdesc="2D graphics library with support for multiple output devices"
+url="https://cairographics.org/"
+arch=(i686 x86_64)
+license=('LGPL' 'MPL')
+depends=('libpng' 'libxrender' 'libxext' 'fontconfig' 'pixman' 'glib2' 'lzo')
+makedepends=('librsvg' 'gtk2' 'poppler-glib' 'libspectre' 'gtk-doc' 'valgrind' 'git')
+source=(https://cairographics.org/snapshots/cairo-$pkgver.tar.xz
+        color-glyph-source-op.patch)
+sha1sums=('07cc2031b74d758299eeee3ec49ecbfbfb85f1c6'
+          '5d8efd47038edcf0debf0a43713bba3025f3cffd')
+
+prepare() {
+  cd $pkgname-$pkgver
+
+  # https://bugs.freedesktop.org/show_bug.cgi?id=102661
+  patch -Np1 -i ../color-glyph-source-op.patch
+}
+
+build() {
+  cd $pkgname-$pkgver
+  ./configure --prefix=/usr \
+        --sysconfdir=/etc \
+        --localstatedir=/var \
+        --disable-static \
+        --disable-lto \
+        --disable-gl \
+        --enable-tee \
+        --enable-svg \
+        --enable-ps \
+        --enable-pdf \
+        --enable-gobject \
+        --enable-gtk-doc
+  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+  make
+}
+
+package() {
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
+}

Copied: cairo/repos/testing-x86_64/color-glyph-source-op.patch (from rev 305566, cairo/trunk/color-glyph-source-op.patch)
===================================================================
--- testing-x86_64/color-glyph-source-op.patch	                        (rev 0)
+++ testing-x86_64/color-glyph-source-op.patch	2017-09-14 19:24:21 UTC (rev 305567)
@@ -0,0 +1,39 @@
+From 99427c3f4f6ce7ce3c95c4caa4d2b8ff7c0093d9 Mon Sep 17 00:00:00 2001
+From: Behdad Esfahbod <behdad at behdad.org>
+Date: Tue, 12 Sep 2017 01:35:15 -0400
+Subject: Handle SOURCE and CLEAR operators when painting color glyphs
+
+In cairo, most operators are composited this way:
+
+  ((src IN mask) OP dst) LERP_clip dst
+
+but SOURCE and CLEAR operators are composited this way:
+
+  (src OP dst) LERP_(clip IN mask) dst
+
+(why is this not specified anywhere in the docs or source tree?)
+
+With color glyphs, we were not special-casing SOURCE and CLEAR.
+We do now.
+
+Fixes https://bugs.freedesktop.org/show_bug.cgi?id=102661
+
+diff --git a/src/cairo-surface.c b/src/cairo-surface.c
+index 6f25bd7..35c63d7 100644
+--- a/src/cairo-surface.c
++++ b/src/cairo-surface.c
+@@ -2571,7 +2571,10 @@ composite_one_color_glyph (cairo_surface_t       *surface,
+         pattern = cairo_pattern_create_for_surface ((cairo_surface_t *)glyph_surface);
+         cairo_matrix_init_translate (&matrix, - x, - y);
+         cairo_pattern_set_matrix (pattern, &matrix);
+-        status = surface->backend->paint (surface, op, pattern, clip);
++	if (op == CAIRO_OPERATOR_SOURCE || op == CAIRO_OPERATOR_CLEAR)
++	  status = surface->backend->mask (surface, op, pattern, pattern, clip);
++	else
++	  status = surface->backend->paint (surface, op, pattern, clip);
+     }
+ 
+     return status;
+-- 
+cgit v0.10.2
+



More information about the arch-commits mailing list