summaryrefslogtreecommitdiff
path: root/cairo
diff options
context:
space:
mode:
authorJuergen Daubert <jue@jue.li>2022-03-23 15:02:31 +0100
committerJuergen Daubert <jue@jue.li>2022-03-23 15:02:31 +0100
commit99f9c56bce1f1622d3503b2cda34ac54e88378fa (patch)
tree8157b374056078bf9e6967893c252917f21f5ab4 /cairo
parentd7f0f9fb1b0b249a637435824165d87bf306d2b7 (diff)
downloadopt-99f9c56bce1f1622d3503b2cda34ac54e88378fa.tar.gz
opt-99f9c56bce1f1622d3503b2cda34ac54e88378fa.tar.xz
cairo: update to 1.17.6
Diffstat (limited to 'cairo')
-rw-r--r--cairo/.footprint15
-rw-r--r--cairo/.signature13
-rw-r--r--cairo/Pkgfile14
-rw-r--r--cairo/fix-cairo-sphinx.patch12
-rw-r--r--cairo/fix-library-versioning.diff94
-rw-r--r--cairo/fix-mask-usage-in-image-compositor.patch112
-rw-r--r--cairo/fix-pdf-fonts.patch58
-rw-r--r--cairo/xlib-xcb.diff25
8 files changed, 29 insertions, 314 deletions
diff --git a/cairo/.footprint b/cairo/.footprint
index 152572c43..580ae9d28 100644
--- a/cairo/.footprint
+++ b/cairo/.footprint
@@ -18,7 +18,6 @@ drwxr-xr-x root/root usr/include/cairo/
-rw-r--r-- root/root usr/include/cairo/cairo-xcb.h
-rw-r--r-- root/root usr/include/cairo/cairo-xlib-xrender.h
-rw-r--r-- root/root usr/include/cairo/cairo-xlib.h
--rw-r--r-- root/root usr/include/cairo/cairo-xml.h
-rw-r--r-- root/root usr/include/cairo/cairo.h
drwxr-xr-x root/root usr/lib/
drwxr-xr-x root/root usr/lib/cairo/
@@ -26,14 +25,14 @@ drwxr-xr-x root/root usr/lib/cairo/
-rwxr-xr-x root/root usr/lib/cairo/libcairo-sphinx.so
-rwxr-xr-x root/root usr/lib/cairo/libcairo-trace.so
lrwxrwxrwx root/root usr/lib/libcairo-gobject.so -> libcairo-gobject.so.2
-lrwxrwxrwx root/root usr/lib/libcairo-gobject.so.2 -> libcairo-gobject.so.2.11704.0
--rwxr-xr-x root/root usr/lib/libcairo-gobject.so.2.11704.0
+lrwxrwxrwx root/root usr/lib/libcairo-gobject.so.2 -> libcairo-gobject.so.2.11706.0
+-rwxr-xr-x root/root usr/lib/libcairo-gobject.so.2.11706.0
lrwxrwxrwx root/root usr/lib/libcairo-script-interpreter.so -> libcairo-script-interpreter.so.2
-lrwxrwxrwx root/root usr/lib/libcairo-script-interpreter.so.2 -> libcairo-script-interpreter.so.2.11704.0
--rwxr-xr-x root/root usr/lib/libcairo-script-interpreter.so.2.11704.0
+lrwxrwxrwx root/root usr/lib/libcairo-script-interpreter.so.2 -> libcairo-script-interpreter.so.2.11706.0
+-rwxr-xr-x root/root usr/lib/libcairo-script-interpreter.so.2.11706.0
lrwxrwxrwx root/root usr/lib/libcairo.so -> libcairo.so.2
-lrwxrwxrwx root/root usr/lib/libcairo.so.2 -> libcairo.so.2.11704.0
--rwxr-xr-x root/root usr/lib/libcairo.so.2.11704.0
+lrwxrwxrwx root/root usr/lib/libcairo.so.2 -> libcairo.so.2.11706.0
+-rwxr-xr-x root/root usr/lib/libcairo.so.2.11706.0
drwxr-xr-x root/root usr/lib/pkgconfig/
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-fc.pc
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-ft.pc
@@ -41,6 +40,7 @@ drwxr-xr-x root/root usr/lib/pkgconfig/
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-pdf.pc
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-png.pc
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-ps.pc
+-rw-r--r-- root/root usr/lib/pkgconfig/cairo-script-interpreter.pc
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-script.pc
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-svg.pc
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-tee.pc
@@ -48,5 +48,4 @@ drwxr-xr-x root/root usr/lib/pkgconfig/
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-xcb.pc
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-xlib-xrender.pc
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-xlib.pc
--rw-r--r-- root/root usr/lib/pkgconfig/cairo-xml.pc
-rw-r--r-- root/root usr/lib/pkgconfig/cairo.pc
diff --git a/cairo/.signature b/cairo/.signature
index 301bc5a9e..e815ffe3f 100644
--- a/cairo/.signature
+++ b/cairo/.signature
@@ -1,9 +1,6 @@
untrusted comment: verify with /etc/ports/opt.pub
-RWSE3ohX2g5d/WxTh5ZDThEZJQnninUujKFyYl0r3kf+LE95hQ30R5ebPySfAxyQz85E65znNbTlK0O1bsCBGbEvuNt2GpMx4Ao=
-SHA256 (Pkgfile) = 66251a576754c11a60bc920aa5b5be856f40de9b10f13358ff8ed23b2d932cb4
-SHA256 (.footprint) = b945d5a708013c2c3b534d0349b096b861f32a3ae97d16a38e2c64b0dabadee0
-SHA256 (cairo-1.17.4.tar.xz) = 74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705
-SHA256 (xlib-xcb.diff) = 70cd3783381bf73ea7fccd5c2db43956b10865a9c54d5edd251dbcdb9b595a43
-SHA256 (fix-library-versioning.diff) = ba678534bbfb2ae8d2397b015f77d30719efee7bb7992dbd2c8e5f2fa5fd8efc
-SHA256 (fix-mask-usage-in-image-compositor.patch) = cdfbdc1292629997d5cb39e91c7e577d872634669565e06e37a0130c2da2480a
-SHA256 (fix-pdf-fonts.patch) = a5926f8bca3cb09e41ed8d2a60fb053c4243fdeec2c36c5c7e15d2a784b6ee9a
+RWSE3ohX2g5d/ZLTDupUS39hfTnHwA5m3QnSBjQaly6PTIUZI+xs5D22sP0sy50hm4LmlRnV5uo9hoJsCtKuSz22eD3t87TSIgk=
+SHA256 (Pkgfile) = 499781a27b67973946927560508f718003081d50c5dbe7caaeb070382608fb7c
+SHA256 (.footprint) = a70b30a6986ae1dcab2c8f6a2aebc7b3f570c8441e648ec7f4014eb990704a63
+SHA256 (cairo-1.17.6.tar.bz2) = 90496d135c9ef7612c98f8ee358390cdec0825534573778a896ea021155599d2
+SHA256 (fix-cairo-sphinx.patch) = 775b9ef5d265e8f20860268dca6e520a411402a6c38cb6dc95fa405f119b5d54
diff --git a/cairo/Pkgfile b/cairo/Pkgfile
index ac78364d8..cd331951a 100644
--- a/cairo/Pkgfile
+++ b/cairo/Pkgfile
@@ -4,17 +4,13 @@
# Depends on: fontconfig glib xorg-libpixman xorg-libxext xorg-libxrender xorg-xcb-util
name=cairo
-version=1.17.4
-release=2
-source=(https://cairographics.org/snapshots/$name-$version.tar.xz
- xlib-xcb.diff fix-library-versioning.diff
- fix-mask-usage-in-image-compositor.patch fix-pdf-fonts.patch)
+version=1.17.6
+release=1
+source=(https://gitlab.freedesktop.org/cairo/cairo/-/archive/$version/$name-$version.tar.bz2
+ fix-cairo-sphinx.patch)
build() {
- patch -p1 -d $name-$version -i $SRC/fix-library-versioning.diff
- patch -p1 -d $name-$version -i $SRC/xlib-xcb.diff
- patch -p1 -d $name-$version -i $SRC/fix-mask-usage-in-image-compositor.patch
- patch -p1 -d $name-$version -i $SRC/fix-pdf-fonts.patch
+ patch -d $name-$version -p1 -i $SRC/fix-cairo-sphinx.patch
prt-get isinst wayland-protocols mesa && PKGMK_CAIRO+=' -D gl-backend=glesv3 -D glesv3=enabled'
diff --git a/cairo/fix-cairo-sphinx.patch b/cairo/fix-cairo-sphinx.patch
new file mode 100644
index 000000000..0cd274d92
--- /dev/null
+++ b/cairo/fix-cairo-sphinx.patch
@@ -0,0 +1,12 @@
+diff -Nru cairo-1.17.6.orig/util/cairo-sphinx/meson.build cairo-1.17.6/util/cairo-sphinx/meson.build
+--- cairo-1.17.6.orig/util/cairo-sphinx/meson.build 2022-03-21 12:22:22.986979702 +0100
++++ cairo-1.17.6/util/cairo-sphinx/meson.build 2022-03-23 14:32:49.390005446 +0100
+@@ -19,7 +19,7 @@
+ include_directories: [incbase],
+ c_args: ['-DLIBDIR="@0@"'.format(libdir)] + pthread_c_args,
+ dependencies: deps + [glib_dep, rt_dep, libcairo_dep, cairoboilerplate_dep, libcairoscript_dep],
+- link_with: [libcairosphinx],
++ link_with: [libcairo, libcairosphinx],
+ link_args: extra_link_args,
+ install: true,
+ )
diff --git a/cairo/fix-library-versioning.diff b/cairo/fix-library-versioning.diff
deleted file mode 100644
index c006f69a4..000000000
--- a/cairo/fix-library-versioning.diff
+++ /dev/null
@@ -1,94 +0,0 @@
-commit e9ccb1d8d095482e4139da658e679d5aad56b184
-Author: Tim-Philipp Müller <tim@centricular.com>
-Date: Tue Dec 15 00:12:55 2020 +0000
-
- meson: fix library versioning
-
- Fixes #442
-
-diff --git a/meson.build b/meson.build
-index b159b4071..53a9af343 100644
---- a/meson.build
-+++ b/meson.build
-@@ -3,8 +3,6 @@ project('cairo', 'c', 'cpp',
- version: run_command(find_program('version.py'), check: true).stdout().strip(),
- )
-
--cc = meson.get_compiler('c')
--
- # Keep in sync with configure.ac!
- freetype_required_version = '>= 9.7.3'
- fontconfig_required_version = '>= 2.2.95'
-@@ -16,6 +14,27 @@ libudev_required_version = '>= 136'
- libdrm_required_version = '>= 2.4'
- glib_required_version = '>= 2.14'
-
-+# library versioning
-+version_arr = meson.project_version().split('.')
-+cairo_version_major = version_arr[0].to_int()
-+cairo_version_minor = version_arr[1].to_int()
-+cairo_version_micro = version_arr[2].to_int()
-+
-+# The libtool shared library version stuff.
-+# Try and maintain compatibility with the previous library versioning.
-+cairo_version_sonum = cairo_version_major + 1
-+cairo_version = cairo_version_major * 10000 + cairo_version_minor * 100 + cairo_version_micro
-+
-+if cairo_version_minor % 2 == 1
-+ # unstable release
-+ cairo_libversion = '@0@.@1@.0'.format(cairo_version_sonum, cairo_version)
-+else
-+ # stable release
-+ cairo_libversion = '@0@.@1@.@2@'.format(cairo_version_sonum, cairo_version, cairo_version_micro)
-+endif
-+
-+cc = meson.get_compiler('c')
-+
- if cc.get_id() == 'msvc'
- # Basic usage in the cairo type system that causes spammy and useless warnings
- add_project_arguments('/wd4244', '/wd4146',
-diff --git a/src/meson.build b/src/meson.build
-index 5bd1a57ee..f5d741eae 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -299,8 +299,8 @@ libcairo = library('cairo', cairo_sources,
- c_args: cairo_no_warn_c_args + pthread_c_args + ['-DHAVE_CONFIG_H'],
- cpp_args: cairo_no_warn_c_args + pthread_c_args + ['-DHAVE_CONFIG_H'],
- link_args: extra_link_args,
-- soversion: '2',
-- version: '2.' + ''.join(meson.project_version().split('.')) + '.0',
-+ soversion: cairo_version_sonum,
-+ version: cairo_libversion,
- install: true,
- include_directories: incbase,
- )
-diff --git a/util/cairo-gobject/meson.build b/util/cairo-gobject/meson.build
-index 200fd8705..bf24242a0 100644
---- a/util/cairo-gobject/meson.build
-+++ b/util/cairo-gobject/meson.build
-@@ -12,8 +12,8 @@ libcairogobject = library('cairo-gobject', cairo_gobject_sources,
- include_directories: [incbase, incsrc],
- dependencies: [glib_dep, gobject_dep],
- link_with: [libcairo],
-- soversion: '2',
-- version: '2.' + ''.join(meson.project_version().split('.')) + '.0',
-+ soversion: cairo_version_sonum,
-+ version: cairo_libversion,
- install: true,
- )
-
-diff --git a/util/cairo-script/meson.build b/util/cairo-script/meson.build
-index a782ec63f..8cedc6834 100644
---- a/util/cairo-script/meson.build
-+++ b/util/cairo-script/meson.build
-@@ -30,8 +30,8 @@ libcairoscript = library('cairo-script-interpreter',
- include_directories: [incbase, incsrc],
- dependencies: deps,
- link_with: [libcairo],
-- soversion: '2',
-- version: '2.' + ''.join(meson.project_version().split('.')) + '.0',
-+ soversion: cairo_version_sonum,
-+ version: cairo_libversion,
- install: true,
- )
-
diff --git a/cairo/fix-mask-usage-in-image-compositor.patch b/cairo/fix-mask-usage-in-image-compositor.patch
deleted file mode 100644
index 3ec4f1e47..000000000
--- a/cairo/fix-mask-usage-in-image-compositor.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Mon Sep 17 00:00:00 2001
-From: Heiko Lewin <heiko.lewin@worldiety.de>
-Date: Tue, 15 Dec 2020 16:48:19 +0100
-Subject: [PATCH] Fix mask usage in image-compositor
-
----
- src/cairo-image-compositor.c | 8 ++--
- test/Makefile.sources | 1 +
- test/bug-image-compositor.c | 39 ++++++++++++++++++++
- 4 files changed, 44 insertions(+), 4 deletions(-)
- create mode 100644 test/bug-image-compositor.c
-
-diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
-index 79ad69f68..4f8aaed99 100644
---- a/src/cairo-image-compositor.c
-+++ b/src/cairo-image-compositor.c
-@@ -2610,14 +2610,14 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
- unsigned num_spans)
- {
- cairo_image_span_renderer_t *r = abstract_renderer;
-- uint8_t *m;
-+ uint8_t *m, *base = (uint8_t*)pixman_image_get_data(r->mask);
- int x0;
-
- if (num_spans == 0)
- return CAIRO_STATUS_SUCCESS;
-
- x0 = spans[0].x;
-- m = r->_buf;
-+ m = base;
- do {
- int len = spans[1].x - spans[0].x;
- if (len >= r->u.composite.run_length && spans[0].coverage == 0xff) {
-@@ -2655,7 +2655,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
- spans[0].x, y,
- spans[1].x - spans[0].x, h);
-
-- m = r->_buf;
-+ m = base;
- x0 = spans[1].x;
- } else if (spans[0].coverage == 0x0) {
- if (spans[0].x != x0) {
-@@ -2684,7 +2684,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
- #endif
- }
-
-- m = r->_buf;
-+ m = base;
- x0 = spans[1].x;
- } else {
- *m++ = spans[0].coverage;
-diff --git a/test/Makefile.sources b/test/Makefile.sources
-index 7eb73647f..86494348d 100644
---- a/test/Makefile.sources
-+++ b/test/Makefile.sources
-@@ -34,6 +34,7 @@ test_sources = \
- bug-source-cu.c \
- bug-extents.c \
- bug-seams.c \
-+ bug-image-compositor.c \
- caps.c \
- checkerboard.c \
- caps-joins.c \
-diff --git a/test/bug-image-compositor.c b/test/bug-image-compositor.c
-new file mode 100644
-index 000000000..fc4fd370b
---- /dev/null
-+++ b/test/bug-image-compositor.c
-@@ -0,0 +1,39 @@
-+#include "cairo-test.h"
-+
-+static cairo_test_status_t
-+draw (cairo_t *cr, int width, int height)
-+{
-+ cairo_set_source_rgb (cr, 0., 0., 0.);
-+ cairo_paint (cr);
-+
-+ cairo_set_source_rgb (cr, 1., 1., 1.);
-+ cairo_set_line_width (cr, 1.);
-+
-+ cairo_pattern_t *p = cairo_pattern_create_linear (0, 0, width, height);
-+ cairo_pattern_add_color_stop_rgb (p, 0, 0.99, 1, 1);
-+ cairo_pattern_add_color_stop_rgb (p, 1, 1, 1, 1);
-+ cairo_set_source (cr, p);
-+
-+ cairo_move_to (cr, 0.5, -1);
-+ for (int i = 0; i < width; i+=3) {
-+ cairo_rel_line_to (cr, 2, 2);
-+ cairo_rel_line_to (cr, 1, -2);
-+ }
-+
-+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
-+ cairo_stroke (cr);
-+
-+ cairo_pattern_destroy(p);
-+
-+ return CAIRO_TEST_SUCCESS;
-+}
-+
-+
-+CAIRO_TEST (bug_image_compositor,
-+ "Crash in image-compositor",
-+ "stroke, stress", /* keywords */
-+ NULL, /* requirements */
-+ 10000, 1,
-+ NULL, draw)
-+
-+
-
---
-GitLab
-
diff --git a/cairo/fix-pdf-fonts.patch b/cairo/fix-pdf-fonts.patch
deleted file mode 100644
index d5cfe2f22..000000000
--- a/cairo/fix-pdf-fonts.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From a3b69a0215fdface0fd5730872a4b3242d979dca Mon Sep 17 00:00:00 2001
-From: Uli Schlachter <psychon@znc.in>
-Date: Tue, 9 Feb 2021 16:54:35 +0100
-Subject: [PATCH] pdf font subset: Generate valid font names
-
-A hash value is encoded in base 26 with upper case letters for font
-names.
-
-Commit ed984146 replaced "numerator = abs (hash);" with "numerator =
-hash;" in this code, because hash has type uint32_t and the compiler
-warned about taking the absolute value of an unsigned value. However,
-abs() is actually defined to take an int argument. Thus, there was some
-implicit cast.
-
-Since numerator has type long, i.e. is signed, it is now actually
-possible to get an overflow in the implicit cast and then have a
-negative number. The following code is not prepared for this and
-produces non-letters when encoding the hash.
-
-This commit fixes that problem by not using ldiv() and instead using /
-and % to directly compute the needed values. This gets rid of the need
-to convert to type long. Since now everything works with uint32_t, there
-is no more chance for negative numbers messing things up.
-
-Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/449
-Signed-off-by: Uli Schlachter <psychon@znc.in>
----
- src/cairo-pdf-surface.c | 8 ++------
- 1 file changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c
-index 6da460878..52c49b6d2 100644
---- a/src/cairo-pdf-surface.c
-+++ b/src/cairo-pdf-surface.c
-@@ -5310,18 +5310,14 @@ _create_font_subset_tag (cairo_scaled_font_subset_t *font_subset,
- {
- uint32_t hash;
- int i;
-- long numerator;
-- ldiv_t d;
-
- hash = _hash_data ((unsigned char *) font_name, strlen(font_name), 0);
- hash = _hash_data ((unsigned char *) (font_subset->glyphs),
- font_subset->num_glyphs * sizeof(unsigned long), hash);
-
-- numerator = hash;
- for (i = 0; i < 6; i++) {
-- d = ldiv (numerator, 26);
-- numerator = d.quot;
-- tag[i] = 'A' + d.rem;
-+ tag[i] = 'A' + (hash % 26);
-+ hash /= 26;
- }
- tag[i] = 0;
- }
---
-GitLab
-
diff --git a/cairo/xlib-xcb.diff b/cairo/xlib-xcb.diff
deleted file mode 100644
index bfc1816a2..000000000
--- a/cairo/xlib-xcb.diff
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git i/meson.build w/meson.build
-index b159b4071..2a1c68891 100644
---- i/meson.build
-+++ w/meson.build
-@@ -313,7 +313,7 @@ endif
-
- if feature_conf.get('CAIRO_HAS_XCB_SURFACE', 0) == 1 and feature_conf.get('CAIRO_HAS_XLIB_SURFACE', 0) == 1
- # FIXME: automagic
-- x11xcb_dep = dependency('x11-xcb', required: false)
-+ x11xcb_dep = dependency('x11-xcb', required: get_option('xlib-xcb'))
- if x11xcb_dep.found()
- deps += [x11xcb_dep]
- feature_conf.set('CAIRO_HAS_XLIB_XCB_FUNCTIONS', 1)
-diff --git i/meson_options.txt w/meson_options.txt
-index ff11fe7ed..d1ae959e1 100644
---- i/meson_options.txt
-+++ w/meson_options.txt
-@@ -17,6 +17,7 @@ option('qt', type : 'feature', value : 'disabled')
- option('tee', type : 'feature', value : 'disabled')
- option('xcb', type : 'feature', value : 'auto')
- option('xlib', type : 'feature', value : 'auto')
-+option('xlib-xcb', type : 'feature', value : 'disabled')
- #option('xml', type : 'feature', value : 'disabled')
- option('zlib', type : 'feature', value : 'auto') # script, ps, pdf, xml surfaces
-

Generated by cgit