diff options
author | Sam James <sam@gentoo.org> | 2024-09-18 04:44:53 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-09-18 04:44:53 +0100 |
commit | 1013e397bc7000b42a9c2a185b6a1d92e4509d1d (patch) | |
tree | 1db8e4e8a7a5920accc8c0bc02ab4292a22f8a6d /x11-libs | |
parent | net-vpn/candy: subscribe to spdlog subslot (and others) (diff) | |
download | gentoo-1013e397bc7000b42a9c2a185b6a1d92e4509d1d.tar.gz gentoo-1013e397bc7000b42a9c2a185b6a1d92e4509d1d.tar.bz2 gentoo-1013e397bc7000b42a9c2a185b6a1d92e4509d1d.zip |
x11-libs/cairo: fix cups compat
Closes: https://bugs.gentoo.org/939607
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'x11-libs')
-rw-r--r-- | x11-libs/cairo/cairo-1.18.2-r1.ebuild | 96 | ||||
-rw-r--r-- | x11-libs/cairo/files/cairo-1.18.2-cups.patch | 32 |
2 files changed, 128 insertions, 0 deletions
diff --git a/x11-libs/cairo/cairo-1.18.2-r1.ebuild b/x11-libs/cairo/cairo-1.18.2-r1.ebuild new file mode 100644 index 000000000000..9bcd379e8859 --- /dev/null +++ b/x11-libs/cairo/cairo-1.18.2-r1.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2024 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" +else + SRC_URI="https://gitlab.freedesktop.org/cairo/cairo/-/archive/${PV}/cairo-${PV}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-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" +# Tests need more wiring up like e.g. https://gitlab.freedesktop.org/cairo/cairo/-/blob/master/.gitlab-ci.yml +# any2ppm tests seem to hang for now. +RESTRICT="test !test? ( test )" + +RDEPEND=" + >=dev-libs/lzo-2.06-r1:2[${MULTILIB_USEDEP}] + >=media-libs/fontconfig-2.13.92[${MULTILIB_USEDEP}] + >=media-libs/freetype-2.13: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.42.3[${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} + test? ( + app-text/ghostscript-gpl + app-text/poppler[cairo] + gnome-base/librsvg + ) + X? ( x11-base/xorg-proto )" +BDEPEND=" + virtual/pkgconfig + gtk-doc? ( dev-util/gtk-doc )" + +PATCHES=( + "${FILESDIR}"/${PN}-respect-fontconfig.patch + "${FILESDIR}"/${P}-cups.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 + -Dzlib=enabled + + # Requires poppler-glib (poppler[cairo]) which isn't available in multilib + $(meson_native_use_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_test() { + multilib_is_native_abi && meson_src_test +} + +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/cairo-1.18.2-cups.patch b/x11-libs/cairo/files/cairo-1.18.2-cups.patch new file mode 100644 index 000000000000..6a34c28a6250 --- /dev/null +++ b/x11-libs/cairo/files/cairo-1.18.2-cups.patch @@ -0,0 +1,32 @@ +https://bugs.gentoo.org/939607 +https://gitlab.freedesktop.org/cairo/cairo/-/issues/870 +https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/595 +https://gitlab.freedesktop.org/cairo/cairo/-/commit/f19e2fe080ddcfce93c8234a919fd882f3d63362 + +From f19e2fe080ddcfce93c8234a919fd882f3d63362 Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Fri, 13 Sep 2024 06:28:39 +0930 +Subject: [PATCH] cff: Don't fail if no local subs + +Fixes: #870 +--- a/src/cairo-cff-subset.c ++++ b/src/cairo-cff-subset.c +@@ -952,9 +952,13 @@ cairo_cff_font_read_private_dict (cairo_cff_font_t *font, + decode_number (operand, nominal_width); + + num_subs = _cairo_array_num_elements (local_sub_index); +- *local_subs_used = _cairo_calloc_ab (num_subs, sizeof (cairo_bool_t)); +- if (unlikely (*local_subs_used == NULL)) +- return _cairo_error (CAIRO_STATUS_NO_MEMORY); ++ if (num_subs > 0) { ++ *local_subs_used = _cairo_calloc_ab (num_subs, sizeof (cairo_bool_t)); ++ if (unlikely (*local_subs_used == NULL)) ++ return _cairo_error (CAIRO_STATUS_NO_MEMORY); ++ } else { ++ *local_subs_used = NULL; ++ } + + if (num_subs < 1240) + *local_sub_bias = 107; +-- +GitLab |