From 35603db6a27c31bb950480da8ea3d066f9cf7fce Mon Sep 17 00:00:00 2001 From: DistroBaker Date: Sat, 12 Dec 2020 17:15:38 +0000 Subject: [PATCH] Merged update from upstream sources This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/cairo.git#70a8edfa9d0a87180f55f625b171e75b8b2525ff --- .gitignore | 1 + ...array-of-operands-for-certain-operat.patch | 116 ------------------ ...M_Var-instead-of-free-when-available.patch | 30 ----- cairo-composite_color_glyphs.patch | 56 --------- cairo.spec | 26 ++-- sources | 2 +- 6 files changed, 12 insertions(+), 219 deletions(-) delete mode 100644 0001-cff-Allow-empty-array-of-operands-for-certain-operat.patch delete mode 100644 0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch delete mode 100644 cairo-composite_color_glyphs.patch diff --git a/.gitignore b/.gitignore index 40b1e44..494f716 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ cairo-1.9.14.tar.gz /cairo-1.15.12.tar.xz /cairo-1.15.14.tar.xz /cairo-1.16.0.tar.xz +/cairo-1.17.4.tar.xz diff --git a/0001-cff-Allow-empty-array-of-operands-for-certain-operat.patch b/0001-cff-Allow-empty-array-of-operands-for-certain-operat.patch deleted file mode 100644 index ac9784b..0000000 --- a/0001-cff-Allow-empty-array-of-operands-for-certain-operat.patch +++ /dev/null @@ -1,116 +0,0 @@ -From ef959bc76e65ea0b0d4ba3ee50dfbce31c3484ad Mon Sep 17 00:00:00 2001 -From: Marek Kasik -Date: Fri, 27 Mar 2020 19:39:46 +0100 -Subject: [PATCH] cff: Allow empty array of operands for certain operators - -Operators BlueValues, OtherBlues, FamilyBlues, FamilyOtherBlues, -StemSnapH and StemSnapV have operands of type delta which can be -a number or an array of delta-encoded numbers. This array can be -empty according to freetype developers. -This commit checks whether current operator is among those listed -and permits empty operand in such case. ---- - src/cairo-cff-subset.c | 78 ++++++++++++++++++++++++++---------------- - 1 file changed, 49 insertions(+), 29 deletions(-) - -diff --git a/src/cairo-cff-subset.c b/src/cairo-cff-subset.c -index 37727eddb..fce4195e9 100644 ---- a/src/cairo-cff-subset.c -+++ b/src/cairo-cff-subset.c -@@ -56,30 +56,36 @@ - - /* CFF Dict Operators. If the high byte is 0 the command is encoded - * with a single byte. */ --#define BASEFONTNAME_OP 0x0c16 --#define CIDCOUNT_OP 0x0c22 --#define CHARSET_OP 0x000f --#define CHARSTRINGS_OP 0x0011 --#define COPYRIGHT_OP 0x0c00 --#define DEFAULTWIDTH_OP 0x0014 --#define ENCODING_OP 0x0010 --#define FAMILYNAME_OP 0x0003 --#define FDARRAY_OP 0x0c24 --#define FDSELECT_OP 0x0c25 --#define FONTBBOX_OP 0x0005 --#define FONTMATRIX_OP 0x0c07 --#define FONTNAME_OP 0x0c26 --#define FULLNAME_OP 0x0002 --#define LOCAL_SUB_OP 0x0013 --#define NOMINALWIDTH_OP 0x0015 --#define NOTICE_OP 0x0001 --#define POSTSCRIPT_OP 0x0c15 --#define PRIVATE_OP 0x0012 --#define ROS_OP 0x0c1e --#define UNIQUEID_OP 0x000d --#define VERSION_OP 0x0000 --#define WEIGHT_OP 0x0004 --#define XUID_OP 0x000e -+#define BASEFONTNAME_OP 0x0c16 -+#define CIDCOUNT_OP 0x0c22 -+#define CHARSET_OP 0x000f -+#define CHARSTRINGS_OP 0x0011 -+#define COPYRIGHT_OP 0x0c00 -+#define DEFAULTWIDTH_OP 0x0014 -+#define ENCODING_OP 0x0010 -+#define FAMILYNAME_OP 0x0003 -+#define FDARRAY_OP 0x0c24 -+#define FDSELECT_OP 0x0c25 -+#define FONTBBOX_OP 0x0005 -+#define FONTMATRIX_OP 0x0c07 -+#define FONTNAME_OP 0x0c26 -+#define FULLNAME_OP 0x0002 -+#define LOCAL_SUB_OP 0x0013 -+#define NOMINALWIDTH_OP 0x0015 -+#define NOTICE_OP 0x0001 -+#define POSTSCRIPT_OP 0x0c15 -+#define PRIVATE_OP 0x0012 -+#define ROS_OP 0x0c1e -+#define UNIQUEID_OP 0x000d -+#define VERSION_OP 0x0000 -+#define WEIGHT_OP 0x0004 -+#define XUID_OP 0x000e -+#define BLUEVALUES_OP 0x0006 -+#define OTHERBLUES_OP 0x0007 -+#define FAMILYBLUES_OP 0x0008 -+#define FAMILYOTHERBLUES_OP 0x0009 -+#define STEMSNAPH_OP 0x0c0c -+#define STEMSNAPV_OP 0x0c0d - - #define NUM_STD_STRINGS 391 - -@@ -615,13 +621,27 @@ cff_dict_create_operator (int operator, - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - - _cairo_dict_init_key (op, operator); -- op->operand = _cairo_malloc (size); -- if (unlikely (op->operand == NULL)) { -- free (op); -- return _cairo_error (CAIRO_STATUS_NO_MEMORY); -+ if (size != 0) { -+ op->operand = _cairo_malloc (size); -+ if (unlikely (op->operand == NULL)) { -+ free (op); -+ return _cairo_error (CAIRO_STATUS_NO_MEMORY); -+ } -+ memcpy (op->operand, operand, size); -+ } else { -+ op->operand = NULL; -+ /* Delta-encoded arrays can be empty. */ -+ if (operator != BLUEVALUES_OP && -+ operator != OTHERBLUES_OP && -+ operator != FAMILYBLUES_OP && -+ operator != FAMILYOTHERBLUES_OP && -+ operator != STEMSNAPH_OP && -+ operator != STEMSNAPV_OP) { -+ free (op); -+ return _cairo_error (CAIRO_STATUS_NO_MEMORY); -+ } - } - -- memcpy (op->operand, operand, size); - op->operand_length = size; - op->operand_offset = -1; - --- -2.26.0 - diff --git a/0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch b/0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch deleted file mode 100644 index 3709c5a..0000000 --- a/0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos -Date: Mon, 19 Nov 2018 12:33:07 +0100 -Subject: [PATCH] ft: Use FT_Done_MM_Var instead of free when available in - cairo_ft_apply_variations - -Fixes a crash when using freetype >= 2.9 ---- - src/cairo-ft-font.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c -index 325dd61b4..981973f78 100644 ---- a/src/cairo-ft-font.c -+++ b/src/cairo-ft-font.c -@@ -2393,7 +2393,11 @@ skip: - done: - free (coords); - free (current_coords); -+#if HAVE_FT_DONE_MM_VAR -+ FT_Done_MM_Var (face->glyph->library, ft_mm_var); -+#else - free (ft_mm_var); -+#endif - } - } - --- -2.19.2 - diff --git a/cairo-composite_color_glyphs.patch b/cairo-composite_color_glyphs.patch deleted file mode 100644 index fe8860e..0000000 --- a/cairo-composite_color_glyphs.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 79ad01724161502e8d9d2bd384ff1f0174e5df6e Mon Sep 17 00:00:00 2001 -From: Matthias Clasen -Date: Thu, 30 May 2019 07:30:55 -0400 -Subject: [PATCH] Fix a thinko in composite_color_glyphs - -We can't just move around the contents of the -passed-in string, we need to make a copy. This -was showing up as memory corruption in pango. - -See https://gitlab.gnome.org/GNOME/pango/issues/346 ---- - src/cairo-surface.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/src/cairo-surface.c b/src/cairo-surface.c -index c30f84087..e112b660a 100644 ---- a/src/cairo-surface.c -+++ b/src/cairo-surface.c -@@ -2820,6 +2820,7 @@ _cairo_surface_show_text_glyphs (cairo_surface_t *surface, - const cairo_clip_t *clip) - { - cairo_int_status_t status; -+ char *utf8_copy = NULL; - - TRACE ((stderr, "%s\n", __FUNCTION__)); - if (unlikely (surface->status)) -@@ -2847,6 +2848,10 @@ _cairo_surface_show_text_glyphs (cairo_surface_t *surface, - status = CAIRO_INT_STATUS_UNSUPPORTED; - - if (_cairo_scaled_font_has_color_glyphs (scaled_font)) { -+ utf8_copy = malloc (sizeof (char) * utf8_len); -+ memcpy (utf8_copy, utf8, sizeof (char) * utf8_len); -+ utf8 = utf8_copy; -+ - status = composite_color_glyphs (surface, op, - source, - (char *)utf8, &utf8_len, -@@ -2861,6 +2866,8 @@ _cairo_surface_show_text_glyphs (cairo_surface_t *surface, - if (num_glyphs == 0) - goto DONE; - } -+ else -+ utf8_copy = NULL; - - /* The logic here is duplicated in _cairo_analysis_surface show_glyphs and - * show_text_glyphs. Keep in synch. */ -@@ -2918,6 +2925,9 @@ _cairo_surface_show_text_glyphs (cairo_surface_t *surface, - surface->serial++; - } - -+ if (utf8_copy) -+ free (utf8_copy); -+ - return _cairo_surface_set_error (surface, status); - } - diff --git a/cairo.spec b/cairo.spec index 062ba36..2a4c9ec 100644 --- a/cairo.spec +++ b/cairo.spec @@ -10,28 +10,19 @@ %endif Name: cairo -Version: 1.16.0 -Release: 9%{?dist} +Version: 1.17.4 +Release: 1%{?dist} Summary: A 2D graphics library License: LGPLv2 or MPLv1.1 URL: http://cairographics.org -Source0: http://cairographics.org/releases/%{name}-%{version}.tar.xz +Source0: http://cairographics.org/snapshots/%{name}-%{version}.tar.xz Patch3: cairo-multilib.patch # https://gitlab.freedesktop.org/cairo/cairo/merge_requests/1 Patch4: 0001-Set-default-LCD-filter-to-FreeType-s-default.patch -# https://gitlab.freedesktop.org/cairo/cairo/merge_requests/5 -Patch5: 0001-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch - -# https://github.com/matthiasclasen/cairo/commit/79ad01724161502e8d9d2bd384ff1f0174e5df6e -Patch6: cairo-composite_color_glyphs.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1817958 -Patch7: 0001-cff-Allow-empty-array-of-operands-for-certain-operat.patch - BuildRequires: gcc BuildRequires: pkgconfig BuildRequires: libXrender-devel @@ -125,9 +116,8 @@ find $RPM_BUILD_ROOT -name '*.la' -delete %files %license COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1 %doc AUTHORS BIBLIOGRAPHY BUGS NEWS README -%{_libdir}/libcairo.so.* -%{_libdir}/libcairo-script-interpreter.so.* -%{_bindir}/cairo-sphinx +%{_libdir}/libcairo.so.2* +%{_libdir}/libcairo-script-interpreter.so.2* %files devel %doc ChangeLog PORTING_GUIDE @@ -170,7 +160,7 @@ find $RPM_BUILD_ROOT -name '*.la' -delete %endif %files gobject -%{_libdir}/libcairo-gobject.so.* +%{_libdir}/libcairo-gobject.so.2* %files gobject-devel %{_includedir}/cairo/cairo-gobject.h @@ -182,6 +172,10 @@ find $RPM_BUILD_ROOT -name '*.la' -delete %{_libdir}/cairo/ %changelog +* Fri Dec 11 2020 Kalev Lember - 1.17.4-1 +- Update to 1.17.4 +- Tighten soname globs + * Mon Jul 27 2020 Fedora Release Engineering - 1.16.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild diff --git a/sources b/sources index a66c9cb..7a8abb3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (cairo-1.16.0.tar.xz) = 9eb27c4cf01c0b8b56f2e15e651f6d4e52c99d0005875546405b64f1132aed12fbf84727273f493d84056a13105e065009d89e94a8bfaf2be2649e232b82377f +SHA512 (cairo-1.17.4.tar.xz) = 843dce4f1cb5d9fb0c33240dff658ba2723bf04697045d16669e4b7674a5287ef0eb3d960a688a129902fb714230263e35d085186dc220b65307b5ad7fa09d23