diff --git a/extra/cairo/0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch b/extra/cairo/0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch new file mode 100644 index 000000000..9d8f2d770 --- /dev/null +++ b/extra/cairo/0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch @@ -0,0 +1,27 @@ +From d0dccb92c520556aaa02bd1fdf8f2922cef00292 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Sat, 5 Oct 2019 14:07:28 +0200 +Subject: [PATCH] image compositor: Remove the right glyph from pixman's cache + +We need to use the index including the phase. Otherwise we leave glyphs +in the cache that cause problems later as indices are reused. +--- + src/cairo-image-compositor.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c +index 6fccb79f1..79ad69f68 100644 +--- a/src/cairo-image-compositor.c ++++ b/src/cairo-image-compositor.c +@@ -841,7 +841,7 @@ _cairo_image_scaled_glyph_fini (cairo_scaled_font_t *scaled_font, + if (global_glyph_cache) { + pixman_glyph_cache_remove ( + global_glyph_cache, scaled_font, +- (void *)_cairo_scaled_glyph_index (scaled_glyph)); ++ (void *)scaled_glyph->hash_entry.hash); + } + + CAIRO_MUTEX_UNLOCK (_cairo_glyph_cache_mutex); +-- +2.23.0 + diff --git a/extra/cairo/PKGBUILD b/extra/cairo/PKGBUILD index b8972944e..6d9629de9 100644 --- a/extra/cairo/PKGBUILD +++ b/extra/cairo/PKGBUILD @@ -6,7 +6,7 @@ pkgname=cairo pkgver=1.17.2+17+g52a7c79fd -pkgrel=1 +pkgrel=2 pkgdesc="2D graphics library with support for multiple output devices" url="https://cairographics.org/" arch=(x86_64) @@ -15,8 +15,10 @@ depends=(libpng libxrender libxext fontconfig pixman glib2 lzo) makedepends=(librsvg gtk2 poppler-glib libspectre gtk-doc git) checkdepends=(ttf-dejavu gsfonts) _commit=52a7c79fd4ff96bb5fac175f0199819b0f8c18fc # master -source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit") -sha256sums=('SKIP') +source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit" + 0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch) +sha256sums=('SKIP' + '262bf1cebc04eaae93dbfab56045ad800b3b027be303ca2611375645108f171f') pkgver() { cd cairo @@ -26,6 +28,9 @@ pkgver() { prepare() { cd cairo + # https://bugs.archlinux.org/task/63856 + patch -Np1 -i ../0001-image-compositor-Remove-the-right-glyph-from-pixman-.patch + # Update gtk-doc cp /usr/share/aclocal/gtk-doc.m4 build/aclocal.gtk-doc.m4 cp /usr/share/gtk-doc/data/gtk-doc.make build/Makefile.am.gtk-doc