diff options
author | Juergen Daubert <jue@jue.li> | 2022-03-23 15:02:31 +0100 |
---|---|---|
committer | Juergen Daubert <jue@jue.li> | 2022-03-23 15:02:31 +0100 |
commit | 99f9c56bce1f1622d3503b2cda34ac54e88378fa (patch) | |
tree | 8157b374056078bf9e6967893c252917f21f5ab4 /cairo | |
parent | d7f0f9fb1b0b249a637435824165d87bf306d2b7 (diff) | |
download | opt-99f9c56bce1f1622d3503b2cda34ac54e88378fa.tar.gz opt-99f9c56bce1f1622d3503b2cda34ac54e88378fa.tar.xz |
cairo: update to 1.17.6
Diffstat (limited to 'cairo')
-rw-r--r-- | cairo/.footprint | 15 | ||||
-rw-r--r-- | cairo/.signature | 13 | ||||
-rw-r--r-- | cairo/Pkgfile | 14 | ||||
-rw-r--r-- | cairo/fix-cairo-sphinx.patch | 12 | ||||
-rw-r--r-- | cairo/fix-library-versioning.diff | 94 | ||||
-rw-r--r-- | cairo/fix-mask-usage-in-image-compositor.patch | 112 | ||||
-rw-r--r-- | cairo/fix-pdf-fonts.patch | 58 | ||||
-rw-r--r-- | cairo/xlib-xcb.diff | 25 |
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 - |