forked from pool/cairo
Accepting request 1002604 from GNOME:Next
GNOME 43.rc - let's get this into Staging to see what we break (e.g meson:test seems to be an issue already) OBS-URL: https://build.opensuse.org/request/show/1002604 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/cairo?expand=0&rev=152
This commit is contained in:
parent
1b081d8eae
commit
9c4558f99d
56
0001-Set-default-LCD-filter-to-FreeType-s-default.patch
Normal file
56
0001-Set-default-LCD-filter-to-FreeType-s-default.patch
Normal file
@ -0,0 +1,56 @@
|
||||
From 12a5b7384f35d9a3f4c6b151fac4857444db3d6a Mon Sep 17 00:00:00 2001
|
||||
From: Nikolaus Waxweiler <madigens@gmail.com>
|
||||
Date: Sat, 10 Nov 2018 16:44:23 +0000
|
||||
Subject: [PATCH] Set default LCD filter to FreeType's default
|
||||
|
||||
---
|
||||
src/cairo-ft-font.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
|
||||
index 325dd61b4..3c47dc12e 100644
|
||||
--- a/src/cairo-ft-font.c
|
||||
+++ b/src/cairo-ft-font.c
|
||||
@@ -1404,7 +1404,7 @@ _render_glyph_outline (FT_Face face,
|
||||
cairo_image_surface_t **surface)
|
||||
{
|
||||
int rgba = FC_RGBA_UNKNOWN;
|
||||
- int lcd_filter = FT_LCD_FILTER_LEGACY;
|
||||
+ int lcd_filter = FT_LCD_FILTER_DEFAULT;
|
||||
FT_GlyphSlot glyphslot = face->glyph;
|
||||
FT_Outline *outline = &glyphslot->outline;
|
||||
FT_Bitmap bitmap;
|
||||
@@ -1439,13 +1439,13 @@ _render_glyph_outline (FT_Face face,
|
||||
case CAIRO_LCD_FILTER_NONE:
|
||||
lcd_filter = FT_LCD_FILTER_NONE;
|
||||
break;
|
||||
- case CAIRO_LCD_FILTER_DEFAULT:
|
||||
case CAIRO_LCD_FILTER_INTRA_PIXEL:
|
||||
lcd_filter = FT_LCD_FILTER_LEGACY;
|
||||
break;
|
||||
case CAIRO_LCD_FILTER_FIR3:
|
||||
lcd_filter = FT_LCD_FILTER_LIGHT;
|
||||
break;
|
||||
+ case CAIRO_LCD_FILTER_DEFAULT:
|
||||
case CAIRO_LCD_FILTER_FIR5:
|
||||
lcd_filter = FT_LCD_FILTER_DEFAULT;
|
||||
break;
|
||||
@@ -3416,7 +3416,6 @@ _cairo_ft_font_options_substitute (const cairo_font_options_t *options,
|
||||
case CAIRO_LCD_FILTER_NONE:
|
||||
lcd_filter = FT_LCD_FILTER_NONE;
|
||||
break;
|
||||
- case CAIRO_LCD_FILTER_DEFAULT:
|
||||
case CAIRO_LCD_FILTER_INTRA_PIXEL:
|
||||
lcd_filter = FT_LCD_FILTER_LEGACY;
|
||||
break;
|
||||
@@ -3424,6 +3423,7 @@ _cairo_ft_font_options_substitute (const cairo_font_options_t *options,
|
||||
lcd_filter = FT_LCD_FILTER_LIGHT;
|
||||
break;
|
||||
default:
|
||||
+ case CAIRO_LCD_FILTER_DEFAULT:
|
||||
case CAIRO_LCD_FILTER_FIR5:
|
||||
lcd_filter = FT_LCD_FILTER_DEFAULT;
|
||||
break;
|
||||
--
|
||||
2.19.1
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331
|
||||
size 41997432
|
3
cairo-1.17.6.tar.xz
Normal file
3
cairo-1.17.6.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4eebc4c2bad0402bc3f501db184417094657d111fb6c06f076a82ea191fe1faf
|
||||
size 35055900
|
@ -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,57 +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);
|
||||
}
|
||||
|
||||
|
@ -1,44 +0,0 @@
|
||||
From 4f4d89506f58a64b4829b1bb239bab9e46d63727 Mon Sep 17 00:00:00 2001
|
||||
From: Jehan <jehan@girinstud.io>
|
||||
Date: Tue, 19 Jan 2021 12:42:31 +0100
|
||||
Subject: [PATCH] src: do not override explicitly requested grayscale
|
||||
antialiasing.
|
||||
|
||||
If CAIRO_ANTIALIAS_DEFAULT is selected and system is set to subpixel, it
|
||||
is perfectly normal to switch to CAIRO_ANTIALIAS_SUBPIXEL.
|
||||
But when the calling application specifically requested
|
||||
CAIRO_ANTIALIAS_GRAY then Cairo should honor the request.
|
||||
|
||||
This is an issue we have had for years in GIMP, where text on images
|
||||
would render differently depending on the system the file is opened on.
|
||||
This is obviously not right as a graphics work should be system
|
||||
independant and allow the creator to decide if one wants a text to have
|
||||
grayscale or subpixel rendering (a settings which would stick when
|
||||
sharing the work file). Cairo should not override this.
|
||||
The CAIRO_ANTIALIAS_DEFAULT settings exists exactly for this (when we
|
||||
want Cairo to choose for us, in a system-dependant way); other settings
|
||||
are when we need system independance.
|
||||
|
||||
Thanks to Adam Fontenot for initial investigations and tests on this and
|
||||
other contributors before this.
|
||||
---
|
||||
src/cairo-ft-font.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
|
||||
index d2221edec..1f5befec3 100644
|
||||
--- a/src/cairo-ft-font.c
|
||||
+++ b/src/cairo-ft-font.c
|
||||
@@ -1945,8 +1945,7 @@ _cairo_ft_options_merge (cairo_ft_options_t *options,
|
||||
}
|
||||
|
||||
if (other->base.antialias == CAIRO_ANTIALIAS_SUBPIXEL &&
|
||||
- (options->base.antialias == CAIRO_ANTIALIAS_DEFAULT ||
|
||||
- options->base.antialias == CAIRO_ANTIALIAS_GRAY)) {
|
||||
+ options->base.antialias == CAIRO_ANTIALIAS_DEFAULT) {
|
||||
options->base.antialias = CAIRO_ANTIALIAS_SUBPIXEL;
|
||||
options->base.subpixel_order = other->base.subpixel_order;
|
||||
}
|
||||
--
|
||||
2.33.1
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: cairo-1.15.4/src/cairo-ft-font.c
|
||||
Index: cairo-1.17.6/src/cairo-ft-font.c
|
||||
===================================================================
|
||||
--- cairo-1.15.4.orig/src/cairo-ft-font.c
|
||||
+++ cairo-1.15.4/src/cairo-ft-font.c
|
||||
@@ -1149,7 +1149,7 @@ _get_bitmap_surface (FT_Bitmap *bi
|
||||
--- cairo-1.17.6.orig/src/cairo-ft-font.c
|
||||
+++ cairo-1.17.6/src/cairo-ft-font.c
|
||||
@@ -1223,7 +1223,7 @@ _get_bitmap_surface (FT_Bitmap *bi
|
||||
width = bitmap->width;
|
||||
height = bitmap->rows;
|
||||
|
||||
|
@ -1,29 +0,0 @@
|
||||
From 4c8813f0eaacc32c27126ad2296951a626300b89 Mon Sep 17 00:00:00 2001
|
||||
From: Adrian Johnson <ajohnson@redneon.com>
|
||||
Date: Thu, 25 Oct 2018 18:46:17 +1030
|
||||
Subject: [PATCH] pdf: add missing flush
|
||||
|
||||
Issue #342
|
||||
---
|
||||
src/cairo-pdf-surface.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c
|
||||
index 7eb61aa..939b2d2 100644
|
||||
--- a/src/cairo-pdf-surface.c
|
||||
+++ b/src/cairo-pdf-surface.c
|
||||
@@ -7711,6 +7711,11 @@ _cairo_pdf_surface_mask (void *abstract_surface,
|
||||
* and most common, case to handle. */
|
||||
if (_cairo_pattern_is_constant_alpha (mask, &extents.bounded, &alpha) &&
|
||||
_can_paint_pattern (source)) {
|
||||
+
|
||||
+ status = _cairo_pdf_operators_flush (&surface->pdf_operators);
|
||||
+ if (unlikely (status))
|
||||
+ goto cleanup;
|
||||
+
|
||||
_cairo_output_stream_printf (surface->output, "q\n");
|
||||
status = _cairo_pdf_surface_paint_pattern (surface,
|
||||
op,
|
||||
--
|
||||
2.25.0
|
||||
|
@ -1,6 +1,8 @@
|
||||
--- cairo/src/cairo-xlib-render-compositor.c 2013-04-12 11:22:48.010384018 +0200
|
||||
+++ cairo/src/cairo-xlib-render-compositor.c.new 2013-04-12 11:23:54.362925287 +0200
|
||||
@@ -1318,10 +1318,10 @@
|
||||
Index: cairo-1.17.6/src/cairo-xlib-render-compositor.c
|
||||
===================================================================
|
||||
--- cairo-1.17.6.orig/src/cairo-xlib-render-compositor.c
|
||||
+++ cairo-1.17.6/src/cairo-xlib-render-compositor.c
|
||||
@@ -1325,10 +1325,10 @@ _cairo_xlib_surface_add_glyph (cairo_xli
|
||||
}
|
||||
n = new;
|
||||
d = (uint32_t *) data;
|
||||
|
@ -1,3 +1,44 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 31 18:23:24 UTC 2022 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Update to version 1.17.6:
|
||||
+ This snapshot sees the removal of the following backends and
|
||||
platform support: Qt4, BeOS, OS/2, DirectFB, DRM, Cogl, OpenVG.
|
||||
+ Thanks to all past contributors for their work on them. If you
|
||||
were using any of these backends then you will need to stick to
|
||||
Cairo 1.16.
|
||||
+ This snapshot is going to be the **last** release of Cairo with
|
||||
the Autotools build system. The Meson build has seen many
|
||||
improvements and it is considerably easier to maintain and
|
||||
faster to build.
|
||||
- Changes from version 1.17.4:
|
||||
+ A particularly noteworthy improvement in this release is the
|
||||
addition of the meson build system as an alternative to
|
||||
autotools.
|
||||
+ The cogl Cairo backend underwent significant development this
|
||||
cycle.
|
||||
+ Subpixel positioning support allows improved glyph outlines
|
||||
with the Freetype font backend.
|
||||
+ For a complete log of changes, please see
|
||||
https://cairographics.org/releases/ChangeLog.1.17.4
|
||||
- Changes from version 1.17.2:
|
||||
+ This snapshot provides the new support for writing floating
|
||||
point formats as 16 bpc PNGs, with support for RGBA128F and
|
||||
RGB96F formats. This new feature increases Cairo's pixman
|
||||
version requirement to 0.36.0.
|
||||
+ Beyond this are a range of bugfixes.
|
||||
For a complete log of changes, please see
|
||||
https://cairographics.org/releases/ChangeLog.1.17.2
|
||||
- Drop patches fixed upstream:
|
||||
+ cairo-Use-FT_Done_MM_Var-instead-of-free-when-available.patch
|
||||
+ cairo-composite_color_glyphs.patch
|
||||
+ cairo-pdf-add-missing-flush.patch
|
||||
+ cairo-do-not-override-explicitly-requested-grayscale-aa.patch
|
||||
- Rebase remaining patches with quilt.
|
||||
- Add 0001-Set-default-LCD-filter-to-FreeType-s-default.patch: Set
|
||||
default LCD filter to FreeType's default (patch merged upstream).
|
||||
- Use ldconfig_scriptlets macro for post(un) handling.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 22 09:24:48 UTC 2021 - Ferdinand Thiessen <rpm@fthiessen.de>
|
||||
|
||||
|
31
cairo.spec
31
cairo.spec
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package cairo
|
||||
#
|
||||
# Copyright (c) 2020 SUSE LLC
|
||||
# Copyright (c) 2022 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -19,33 +19,29 @@
|
||||
%define build_xcb_backend 1
|
||||
%define build_gl_backend 1
|
||||
Name: cairo
|
||||
Version: 1.16.0
|
||||
Version: 1.17.6
|
||||
Release: 0
|
||||
Summary: Vector Graphics Library with Cross-Device Output Support
|
||||
License: LGPL-2.1-or-later OR MPL-1.1
|
||||
Group: Development/Libraries/C and C++
|
||||
URL: https://cairographics.org/
|
||||
Source0: https://cairographics.org/releases/%{name}-%{version}.tar.xz
|
||||
Source0: https://download.gnome.org/sources/cairo/1.17/%{name}-%{version}.tar.xz
|
||||
Source99: baselibs.conf
|
||||
|
||||
# PATCH-FIX-UPSTREAM cairo-xlib-endianness.patch fdo#63461 bnc#882951 fcrozat@suse.com -- Fix crash when client and server have different endianness
|
||||
Patch0: cairo-xlib-endianness.patch
|
||||
# PATCH-FIX-UPSTREAM cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff alarrosa@suse.com -- Fix segfault in get_bitmap_surface
|
||||
Patch1: cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff
|
||||
# PATCH-FIX-UPSTREAM cairo-Use-FT_Done_MM_Var-instead-of-free-when-available.patch -- ft: Use FT_Done_MM_Var instead of free when available in cairo_ft_apply_variations
|
||||
Patch2: cairo-Use-FT_Done_MM_Var-instead-of-free-when-available.patch
|
||||
# PATCH-FIX-UPSTREAM cairo-composite_color_glyphs.patch -- Fix a thinko in composite_color_glyphs
|
||||
Patch3: cairo-composite_color_glyphs.patch
|
||||
# PATCH-FIX-UPSTREAM cairo-pdf-add-missing-flush.patch - fix pdf generation (upstream issue #342)
|
||||
Patch4: cairo-pdf-add-missing-flush.patch
|
||||
# PATCH-FIX-UPSTREAM cairo-do-not-override-explicitly-requested-grayscale-aa.patch -- Fix font antialiasing requested by applications
|
||||
Patch5: cairo-do-not-override-explicitly-requested-grayscale-aa.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-Set-default-LCD-filter-to-FreeType-s-default.patch -- Set default LCD filter to FreeType's default
|
||||
Patch2: 0001-Set-default-LCD-filter-to-FreeType-s-default.patch
|
||||
|
||||
BuildRequires: gtk-doc
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: pkgconfig(fontconfig)
|
||||
BuildRequires: pkgconfig(freetype2)
|
||||
BuildRequires: pkgconfig(gobject-2.0)
|
||||
BuildRequires: pkgconfig(libpng)
|
||||
BuildRequires: pkgconfig(pixman-1) >= 0.30.0
|
||||
BuildRequires: pkgconfig(pixman-1) >= 0.36.0
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(xext)
|
||||
BuildRequires: pkgconfig(xrender)
|
||||
@ -165,18 +161,15 @@ cairo.
|
||||
--enable-xlib \
|
||||
--enable-gtk-doc \
|
||||
--disable-static
|
||||
make %{?_smp_mflags} V=1
|
||||
%make_build
|
||||
|
||||
%install
|
||||
%make_install
|
||||
find %{buildroot} -type f -name "*.la" -delete -print
|
||||
|
||||
%post -n libcairo2 -p /sbin/ldconfig
|
||||
%postun -n libcairo2 -p /sbin/ldconfig
|
||||
%post -n libcairo-gobject2 -p /sbin/ldconfig
|
||||
%postun -n libcairo-gobject2 -p /sbin/ldconfig
|
||||
%post -n libcairo-script-interpreter2 -p /sbin/ldconfig
|
||||
%postun -n libcairo-script-interpreter2 -p /sbin/ldconfig
|
||||
%ldconfig_scriptlets -n libcairo2
|
||||
%ldconfig_scriptlets -n libcairo-gobject2
|
||||
%ldconfig_scriptlets -n libcairo-script-interpreter2
|
||||
|
||||
%files -n libcairo2
|
||||
%license COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
|
||||
|
Loading…
Reference in New Issue
Block a user