diff options
-rw-r--r-- | x11-libs/cairo/Manifest | 1 | ||||
-rw-r--r-- | x11-libs/cairo/cairo-1.17.8.ebuild | 86 | ||||
-rw-r--r-- | x11-libs/cairo/files/1.17.8-tee-Fix-cairo-wrapper-functions.patch | 109 |
3 files changed, 196 insertions, 0 deletions
diff --git a/x11-libs/cairo/Manifest b/x11-libs/cairo/Manifest index 7a62019cb85a..8de7a387b7f5 100644 --- a/x11-libs/cairo/Manifest +++ b/x11-libs/cairo/Manifest @@ -1 +1,2 @@ DIST cairo-1.17.6.tar.bz2 43700076 BLAKE2B 05ac766d33e9bdfc5df0347e9a80611554d64886715d1620fbe6f05f36f0134e46e1e6107738d260b380fab5ef2ac609922dce9ebcac01234710d8e2a76e9724 SHA512 1537b34ca49b853f4f60a7ceac0c1b878e7e2874f1ca3a37ab6ccbb704a37872314447016ad07b82312b302bb6df86b71265232a802ccdb9fb8cd18f211ff185 +DIST cairo-1.17.8.tar.bz2 43730163 BLAKE2B 6089b3488425c577ad70896bb82eaad1d26cbbb38b4b38902d1eaf82a47c11170a2b0f0a6439e2cf0efa53db1f49ed74d801f7023de25d381d17e26a185a7bf9 SHA512 86d59c60c0436dde1cced60f11774e08bc483b3310faa066f9cb1cd60e64c4b7d61a27d1f5d4781187b1a3839c7b3e490a7503d09f25dbdcd5be21290f066cf8 diff --git a/x11-libs/cairo/cairo-1.17.8.ebuild b/x11-libs/cairo/cairo-1.17.8.ebuild new file mode 100644 index 000000000000..a27acb5ec771 --- /dev/null +++ b/x11-libs/cairo/cairo-1.17.8.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson-multilib + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.freedesktop.org/cairo/cairo.git" + SRC_URI="" +else + SRC_URI="https://gitlab.freedesktop.org/cairo/cairo/-/archive/${PV}/cairo-${PV}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +fi + +DESCRIPTION="A vector graphics library with cross-device output support" +HOMEPAGE="https://www.cairographics.org/ https://gitlab.freedesktop.org/cairo/cairo" +LICENSE="|| ( LGPL-2.1 MPL-1.1 )" +SLOT="0" +IUSE="X aqua debug +glib gtk-doc test" +RESTRICT="!test? ( test ) test" # Requires poppler-glib, which isn't available in multilib + +RDEPEND=" + >=dev-libs/lzo-2.06-r1:2[${MULTILIB_USEDEP}] + >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] + >=media-libs/freetype-2.5.0.1:2[png,${MULTILIB_USEDEP}] + >=media-libs/libpng-1.6.10:0=[${MULTILIB_USEDEP}] + >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] + >=x11-libs/pixman-0.36[${MULTILIB_USEDEP}] + debug? ( sys-libs/binutils-libs:0=[${MULTILIB_USEDEP}] ) + glib? ( >=dev-libs/glib-2.34.3:2[${MULTILIB_USEDEP}] ) + X? ( + >=x11-libs/libXrender-0.9.8[${MULTILIB_USEDEP}] + >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] + >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] + >=x11-libs/libxcb-1.9.1:=[${MULTILIB_USEDEP}] + )" +DEPEND="${RDEPEND} + X? ( x11-base/xorg-proto )" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-respect-fontconfig.patch + + # Upstream + "${FILESDIR}"/${PV}-tee-Fix-cairo-wrapper-functions.patch +) + +multilib_src_configure() { + local emesonargs=( + -Ddwrite=disabled + -Dfontconfig=enabled + -Dfreetype=enabled + -Dpng=enabled + $(meson_feature aqua quartz) + $(meson_feature X tee) + $(meson_feature X xcb) + $(meson_feature X xlib) + -Dxlib-xcb=disabled + -Dxml=disabled + -Dzlib=enabled + + $(meson_feature test tests) + + -Dgtk2-utils=disabled + + $(meson_feature glib) + -Dspectre=disabled # only used for tests + $(meson_feature debug symbol-lookup) + + $(meson_use gtk-doc gtk_doc) + ) + + meson_src_configure +} + +multilib_src_install_all() { + einstalldocs + + if use gtk-doc; then + mkdir -p "${ED}"/usr/share/gtk-doc/cairo || die + mv "${ED}"/usr/share/gtk-doc/{html/cairo,cairo/html} || die + rmdir "${ED}"/usr/share/gtk-doc/html || die + fi +} diff --git a/x11-libs/cairo/files/1.17.8-tee-Fix-cairo-wrapper-functions.patch b/x11-libs/cairo/files/1.17.8-tee-Fix-cairo-wrapper-functions.patch new file mode 100644 index 000000000000..a9bf577f9616 --- /dev/null +++ b/x11-libs/cairo/files/1.17.8-tee-Fix-cairo-wrapper-functions.patch @@ -0,0 +1,109 @@ +From 5e42a5277eddafd312a73e355d7775a4401dae4e Mon Sep 17 00:00:00 2001 +From: Emmanuele Bassi <ebassi@gnome.org> +Date: Fri, 3 Feb 2023 15:40:12 +0100 +Subject: [PATCH] tee: Fix cairo wrapper functions + +Follow-up to !391 to apply the same changes to the (disabled by default) +tee surface. + +Fixes: #634 +--- + src/cairo-tee-surface.c | 24 ++++++++++++++---------- + 1 file changed, 14 insertions(+), 10 deletions(-) + +diff --git a/src/cairo-tee-surface.c b/src/cairo-tee-surface.c +index 7a94c9bca..4994a5a60 100644 +--- a/src/cairo-tee-surface.c ++++ b/src/cairo-tee-surface.c +@@ -220,12 +220,12 @@ _cairo_tee_surface_paint (void *abstract_surface, + num_slaves = _cairo_array_num_elements (&surface->slaves); + slaves = _cairo_array_index (&surface->slaves, 0); + for (n = 0; n < num_slaves; n++) { +- status = _cairo_surface_wrapper_paint (&slaves[n], op, source, clip); ++ status = _cairo_surface_wrapper_paint (&slaves[n], op, source, 0, clip); + if (unlikely (status)) + return status; + } + +- return _cairo_surface_wrapper_paint (&surface->master, op, source, clip); ++ return _cairo_surface_wrapper_paint (&surface->master, op, source, 0, clip); + } + + static cairo_int_status_t +@@ -244,13 +244,17 @@ _cairo_tee_surface_mask (void *abstract_surface, + slaves = _cairo_array_index (&surface->slaves, 0); + for (n = 0; n < num_slaves; n++) { + status = _cairo_surface_wrapper_mask (&slaves[n], +- op, source, mask, clip); ++ op, source, 0, ++ mask, 0, ++ clip); + if (unlikely (status)) + return status; + } + + return _cairo_surface_wrapper_mask (&surface->master, +- op, source, mask, clip); ++ op, source, 0, ++ mask, 0, ++ clip); + } + + static cairo_int_status_t +@@ -274,7 +278,7 @@ _cairo_tee_surface_stroke (void *abstract_surface, + slaves = _cairo_array_index (&surface->slaves, 0); + for (n = 0; n < num_slaves; n++) { + status = _cairo_surface_wrapper_stroke (&slaves[n], +- op, source, ++ op, source, 0, + path, style, + ctm, ctm_inverse, + tolerance, antialias, +@@ -284,7 +288,7 @@ _cairo_tee_surface_stroke (void *abstract_surface, + } + + return _cairo_surface_wrapper_stroke (&surface->master, +- op, source, ++ op, source, 0, + path, style, + ctm, ctm_inverse, + tolerance, antialias, +@@ -310,7 +314,7 @@ _cairo_tee_surface_fill (void *abstract_surface, + slaves = _cairo_array_index (&surface->slaves, 0); + for (n = 0; n < num_slaves; n++) { + status = _cairo_surface_wrapper_fill (&slaves[n], +- op, source, ++ op, source, 0, + path, fill_rule, + tolerance, antialias, + clip); +@@ -319,7 +323,7 @@ _cairo_tee_surface_fill (void *abstract_surface, + } + + return _cairo_surface_wrapper_fill (&surface->master, +- op, source, ++ op, source, 0, + path, fill_rule, + tolerance, antialias, + clip); +@@ -361,7 +365,7 @@ _cairo_tee_surface_show_text_glyphs (void *abstract_surface, + for (n = 0; n < num_slaves; n++) { + memcpy (glyphs_copy, glyphs, sizeof (cairo_glyph_t) * num_glyphs); + status = _cairo_surface_wrapper_show_text_glyphs (&slaves[n], op, +- source, ++ source, 0, + utf8, utf8_len, + glyphs_copy, num_glyphs, + clusters, num_clusters, +@@ -374,7 +378,7 @@ _cairo_tee_surface_show_text_glyphs (void *abstract_surface, + + memcpy (glyphs_copy, glyphs, sizeof (cairo_glyph_t) * num_glyphs); + status = _cairo_surface_wrapper_show_text_glyphs (&surface->master, op, +- source, ++ source, 0, + utf8, utf8_len, + glyphs_copy, num_glyphs, + clusters, num_clusters, +-- +2.39.2 + |