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
This commit is contained in:
parent
b978087e9e
commit
35603db6a2
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
@ -1,116 +0,0 @@
|
||||
From ef959bc76e65ea0b0d4ba3ee50dfbce31c3484ad Mon Sep 17 00:00:00 2001
|
||||
From: Marek Kasik <mkasik@redhat.com>
|
||||
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
|
||||
|
@ -1,30 +0,0 @@
|
||||
From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garcia Campos <cgarcia@igalia.com>
|
||||
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
|
||||
|
@ -1,56 +0,0 @@
|
||||
From 79ad01724161502e8d9d2bd384ff1f0174e5df6e Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Clasen <mclasen@redhat.com>
|
||||
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);
|
||||
}
|
||||
|
26
cairo.spec
26
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 <klember@redhat.com> - 1.17.4-1
|
||||
- Update to 1.17.4
|
||||
- Tighten soname globs
|
||||
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.0-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (cairo-1.16.0.tar.xz) = 9eb27c4cf01c0b8b56f2e15e651f6d4e52c99d0005875546405b64f1132aed12fbf84727273f493d84056a13105e065009d89e94a8bfaf2be2649e232b82377f
|
||||
SHA512 (cairo-1.17.4.tar.xz) = 843dce4f1cb5d9fb0c33240dff658ba2723bf04697045d16669e4b7674a5287ef0eb3d960a688a129902fb714230263e35d085186dc220b65307b5ad7fa09d23
|
||||
|
Loading…
Reference in New Issue
Block a user