cairo: Update to version 1.18.2

Message ID 20241115213640.899223-1-adolf.belka@ipfire.org
State New
Headers
Series cairo: Update to version 1.18.2 |

Commit Message

Adolf Belka Nov. 15, 2024, 9:36 p.m. UTC
  - Update from version 1.17.6 to 1.18.2
- Update of rootfile
- Changelog
    1.18.2
	The malloc-stats code has been removed from the tests directory [#640]; the
	 canonical location for it is: https://github.com/behdad/malloc-stats
	Cairo now requires a version of pixman equal to, or newer than, 0.40. [!522]
	There have been multiple build fixes for newer versions of GCC [!525, !542];
	 for MSVC [#808]; for Solaris [!540]; and on macOS 10.7 [#810].
	PNG errors caused by loading malformed data are correctly propagated to
	 callers, so they can handle the case. [!524]
	Both stroke and fill colors are now set when showing glyphs on a PDF
	 surface. [#813]
	All the font options are copied when creating a fallback font object. [#819]
	When drawing text on macOS, Cairo now tries harder to select the appropriate
	 font name. [#811]
	Cairo now prefers the COLRv1 table inside a font, if one is available. [!537]
	Cairo requires a C11 toolchain when building. [!479]
    1.18.0
	All the API added in the 1.17 development cycle is now considered stable, and
	 will not change.
	Many thanks to all the contributors for this release.
	The cairo-sphinx tool has been removed; we could not find any instruction on
	 how to use it, and no user answered our call for help. If you were using
	 cairo-sphinx, please reach out to the cairo maintainers.
	Cairo now implements Type 3 color fonts for PDF. Thanks to Adrian Johnson for
	 his work on this feature.
	Khaled Hosny contributed multiple documentation fixes, to ensure that the
	 cairo API reference is up to date. Khaled also fixed multiple compiler
	 warnings generated when building cairo.
	The XML surface has been removed; it was disabled by default when building
	 cairo, and we could not find any downstream distributor that would enable
	 it.
	The Tee surface is now automatically enabled. Downstream distributors of
	 cairo have been enabling for years it in order to build Firefox.
	Fujii Hironori and Adrian Johnson fixed multiple issues with the DWrite
	 font backend.
	John Ralls improved the Quartz surface; mainly, Quartz surfaces now use
	 the main display ColorSpace, speeding up rendering operations.
	Cairo now hides all private symbols by default on every platform; the old
	 "slim" symbols hack to alias internally used symbols has been dropped, in
	 favor of using `-Bsymbolic-functions` with toolchains that support it.
	Uli Schlachter fixed multiple memory leaks in the code base and test suite,
	 and helped with many reviews and general maintenance.
	Marc Jeanmougin added new API to expose the Pixman dithering filter to cairo
	 patterns; this is currently implemented only for image surfaces.
    1.17.8
	In a continuing effort to reduce the amount of legacy code, and increase
	 the long-term maintainability of cairo, the following backends have been
	 removed:
		- GL and GLES drawing
	Additionally, cairo's Autotools build system has been removed; from now on,
	 cairo will only support the Meson build system. While the end result should
	 be identical, further testing is appreciated.
	In this snapshot, cairo gained support for rendering COLRv1 fonts, and
	 rendering SVG and COLRv1 fonts with custom palettes.
	Support for macOS and Windows has been improved, with lots of build and bug
	 fixes.
	Lots of safety issues have been fixed, with array bounds checking and
	 plugging memory leaks, as well as fixes for bugs identified via fuzzying.
	This is going to be the last snapshot of the 1.17 development cycle; we only
	 expect minor bug fixing and improvements until the 1.18.0 release.

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/common/cairo | 13 ++++++-------
 lfs/cairo                     | 12 ++++++------
 2 files changed, 12 insertions(+), 13 deletions(-)
  

Comments

Michael Tremer Nov. 18, 2024, 8:01 p.m. UTC | #1
Reviewed-by: Michael Tremer <michael.tremer@ipfire.org>

> On 15 Nov 2024, at 21:36, Adolf Belka <adolf.belka@ipfire.org> wrote:
> 
> - Update from version 1.17.6 to 1.18.2
> - Update of rootfile
> - Changelog
>    1.18.2
> The malloc-stats code has been removed from the tests directory [#640]; the
> canonical location for it is: https://github.com/behdad/malloc-stats
> Cairo now requires a version of pixman equal to, or newer than, 0.40. [!522]
> There have been multiple build fixes for newer versions of GCC [!525, !542];
> for MSVC [#808]; for Solaris [!540]; and on macOS 10.7 [#810].
> PNG errors caused by loading malformed data are correctly propagated to
> callers, so they can handle the case. [!524]
> Both stroke and fill colors are now set when showing glyphs on a PDF
> surface. [#813]
> All the font options are copied when creating a fallback font object. [#819]
> When drawing text on macOS, Cairo now tries harder to select the appropriate
> font name. [#811]
> Cairo now prefers the COLRv1 table inside a font, if one is available. [!537]
> Cairo requires a C11 toolchain when building. [!479]
>    1.18.0
> All the API added in the 1.17 development cycle is now considered stable, and
> will not change.
> Many thanks to all the contributors for this release.
> The cairo-sphinx tool has been removed; we could not find any instruction on
> how to use it, and no user answered our call for help. If you were using
> cairo-sphinx, please reach out to the cairo maintainers.
> Cairo now implements Type 3 color fonts for PDF. Thanks to Adrian Johnson for
> his work on this feature.
> Khaled Hosny contributed multiple documentation fixes, to ensure that the
> cairo API reference is up to date. Khaled also fixed multiple compiler
> warnings generated when building cairo.
> The XML surface has been removed; it was disabled by default when building
> cairo, and we could not find any downstream distributor that would enable
> it.
> The Tee surface is now automatically enabled. Downstream distributors of
> cairo have been enabling for years it in order to build Firefox.
> Fujii Hironori and Adrian Johnson fixed multiple issues with the DWrite
> font backend.
> John Ralls improved the Quartz surface; mainly, Quartz surfaces now use
> the main display ColorSpace, speeding up rendering operations.
> Cairo now hides all private symbols by default on every platform; the old
> "slim" symbols hack to alias internally used symbols has been dropped, in
> favor of using `-Bsymbolic-functions` with toolchains that support it.
> Uli Schlachter fixed multiple memory leaks in the code base and test suite,
> and helped with many reviews and general maintenance.
> Marc Jeanmougin added new API to expose the Pixman dithering filter to cairo
> patterns; this is currently implemented only for image surfaces.
>    1.17.8
> In a continuing effort to reduce the amount of legacy code, and increase
> the long-term maintainability of cairo, the following backends have been
> removed:
> - GL and GLES drawing
> Additionally, cairo's Autotools build system has been removed; from now on,
> cairo will only support the Meson build system. While the end result should
> be identical, further testing is appreciated.
> In this snapshot, cairo gained support for rendering COLRv1 fonts, and
> rendering SVG and COLRv1 fonts with custom palettes.
> Support for macOS and Windows has been improved, with lots of build and bug
> fixes.
> Lots of safety issues have been fixed, with array bounds checking and
> plugging memory leaks, as well as fixes for bugs identified via fuzzying.
> This is going to be the last snapshot of the 1.17 development cycle; we only
> expect minor bug fixing and improvements until the 1.18.0 release.
> 
> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
> ---
> config/rootfiles/common/cairo | 13 ++++++-------
> lfs/cairo                     | 12 ++++++------
> 2 files changed, 12 insertions(+), 13 deletions(-)
> 
> diff --git a/config/rootfiles/common/cairo b/config/rootfiles/common/cairo
> index c83ed107c..2e4474607 100644
> --- a/config/rootfiles/common/cairo
> +++ b/config/rootfiles/common/cairo
> @@ -9,23 +9,21 @@
> #usr/include/cairo/cairo-script-interpreter.h
> #usr/include/cairo/cairo-script.h
> #usr/include/cairo/cairo-svg.h
> +#usr/include/cairo/cairo-tee.h
> #usr/include/cairo/cairo-version.h
> #usr/include/cairo/cairo.h
> #usr/lib/cairo
> -#usr/lib/cairo/libcairo-trace.la
> +#usr/lib/cairo/libcairo-fdr.so
> #usr/lib/cairo/libcairo-trace.so
> -#usr/lib/libcairo-gobject.la
> #usr/lib/libcairo-gobject.so
> usr/lib/libcairo-gobject.so.2
> -usr/lib/libcairo-gobject.so.2.11706.0
> -#usr/lib/libcairo-script-interpreter.la
> +usr/lib/libcairo-gobject.so.2.11802.2
> #usr/lib/libcairo-script-interpreter.so
> usr/lib/libcairo-script-interpreter.so.2
> -usr/lib/libcairo-script-interpreter.so.2.11706.0
> -#usr/lib/libcairo.la
> +usr/lib/libcairo-script-interpreter.so.2.11802.2
> #usr/lib/libcairo.so
> usr/lib/libcairo.so.2
> -usr/lib/libcairo.so.2.11706.0
> +usr/lib/libcairo.so.2.11802.2
> #usr/lib/pkgconfig/cairo-fc.pc
> #usr/lib/pkgconfig/cairo-ft.pc
> #usr/lib/pkgconfig/cairo-gobject.pc
> @@ -35,4 +33,5 @@ usr/lib/libcairo.so.2.11706.0
> #usr/lib/pkgconfig/cairo-script-interpreter.pc
> #usr/lib/pkgconfig/cairo-script.pc
> #usr/lib/pkgconfig/cairo-svg.pc
> +#usr/lib/pkgconfig/cairo-tee.pc
> #usr/lib/pkgconfig/cairo.pc
> diff --git a/lfs/cairo b/lfs/cairo
> index 30744b3d7..b15c665e4 100644
> --- a/lfs/cairo
> +++ b/lfs/cairo
> @@ -1,7 +1,7 @@
> ###############################################################################
> #                                                                             #
> # IPFire.org - A linux based firewall                                         #
> -# Copyright (C) 2007-2023  IPFire Team  <info@ipfire.org>                     #
> +# Copyright (C) 2007-2024  IPFire Team  <info@ipfire.org>                     #
> #                                                                             #
> # This program is free software: you can redistribute it and/or modify        #
> # it under the terms of the GNU General Public License as published by        #
> @@ -24,10 +24,10 @@
> 
> include Config
> 
> -VER        = 1.17.6
> +VER        = 1.18.2
> 
> THISAPP    = cairo-$(VER)
> -DL_FILE    = $(THISAPP).tar.bz2
> +DL_FILE    = $(THISAPP).tar.xz
> DL_FROM    = $(URL_IPFIRE)
> DIR_APP    = $(DIR_SRC)/$(THISAPP)
> TARGET     = $(DIR_INFO)/$(THISAPP)
> @@ -40,7 +40,7 @@ objects = $(DL_FILE)
> 
> $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
> 
> -$(DL_FILE)_BLAKE2 = 05ac766d33e9bdfc5df0347e9a80611554d64886715d1620fbe6f05f36f0134e46e1e6107738d260b380fab5ef2ac609922dce9ebcac01234710d8e2a76e9724
> +$(DL_FILE)_BLAKE2 = 6046ebc96bf79ef4fcff476d998cee756b0132198c129b049101ab7a70fe420b37f0f0b3ff90c51188005a19b87cb9dabe451bd97679d75ef397f0b3feb2af14
> 
> install : $(TARGET)
> 
> @@ -70,8 +70,8 @@ $(subst %,%_BLAKE2,$(objects)) :
> $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
> @$(PREBUILD)
> @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
> - cd $(DIR_APP) && meson \
> -      --prefix=/usr \
> + cd $(DIR_APP) && meson setup \
> +       --prefix=/usr \
> builddir/
> cd $(DIR_APP) && ninja -C builddir/ $(MAKETUNING)
> cd $(DIR_APP) && ninja -C builddir/ install
> -- 
> 2.47.0
>
  

Patch

diff --git a/config/rootfiles/common/cairo b/config/rootfiles/common/cairo
index c83ed107c..2e4474607 100644
--- a/config/rootfiles/common/cairo
+++ b/config/rootfiles/common/cairo
@@ -9,23 +9,21 @@ 
 #usr/include/cairo/cairo-script-interpreter.h
 #usr/include/cairo/cairo-script.h
 #usr/include/cairo/cairo-svg.h
+#usr/include/cairo/cairo-tee.h
 #usr/include/cairo/cairo-version.h
 #usr/include/cairo/cairo.h
 #usr/lib/cairo
-#usr/lib/cairo/libcairo-trace.la
+#usr/lib/cairo/libcairo-fdr.so
 #usr/lib/cairo/libcairo-trace.so
-#usr/lib/libcairo-gobject.la
 #usr/lib/libcairo-gobject.so
 usr/lib/libcairo-gobject.so.2
-usr/lib/libcairo-gobject.so.2.11706.0
-#usr/lib/libcairo-script-interpreter.la
+usr/lib/libcairo-gobject.so.2.11802.2
 #usr/lib/libcairo-script-interpreter.so
 usr/lib/libcairo-script-interpreter.so.2
-usr/lib/libcairo-script-interpreter.so.2.11706.0
-#usr/lib/libcairo.la
+usr/lib/libcairo-script-interpreter.so.2.11802.2
 #usr/lib/libcairo.so
 usr/lib/libcairo.so.2
-usr/lib/libcairo.so.2.11706.0
+usr/lib/libcairo.so.2.11802.2
 #usr/lib/pkgconfig/cairo-fc.pc
 #usr/lib/pkgconfig/cairo-ft.pc
 #usr/lib/pkgconfig/cairo-gobject.pc
@@ -35,4 +33,5 @@  usr/lib/libcairo.so.2.11706.0
 #usr/lib/pkgconfig/cairo-script-interpreter.pc
 #usr/lib/pkgconfig/cairo-script.pc
 #usr/lib/pkgconfig/cairo-svg.pc
+#usr/lib/pkgconfig/cairo-tee.pc
 #usr/lib/pkgconfig/cairo.pc
diff --git a/lfs/cairo b/lfs/cairo
index 30744b3d7..b15c665e4 100644
--- a/lfs/cairo
+++ b/lfs/cairo
@@ -1,7 +1,7 @@ 
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2023  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2024  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,10 +24,10 @@ 
 
 include Config
 
-VER        = 1.17.6
+VER        = 1.18.2
 
 THISAPP    = cairo-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -40,7 +40,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 05ac766d33e9bdfc5df0347e9a80611554d64886715d1620fbe6f05f36f0134e46e1e6107738d260b380fab5ef2ac609922dce9ebcac01234710d8e2a76e9724
+$(DL_FILE)_BLAKE2 = 6046ebc96bf79ef4fcff476d998cee756b0132198c129b049101ab7a70fe420b37f0f0b3ff90c51188005a19b87cb9dabe451bd97679d75ef397f0b3feb2af14
 
 install : $(TARGET)
 
@@ -70,8 +70,8 @@  $(subst %,%_BLAKE2,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && meson \
-	      --prefix=/usr \
+	cd $(DIR_APP) && meson setup \
+	      			--prefix=/usr \
 				builddir/
 	cd $(DIR_APP) && ninja -C builddir/ $(MAKETUNING)
 	cd $(DIR_APP) && ninja -C builddir/ install