summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2024-09-18 04:44:53 +0100
committerSam James <sam@gentoo.org>2024-09-18 04:44:53 +0100
commit1013e397bc7000b42a9c2a185b6a1d92e4509d1d (patch)
tree1db8e4e8a7a5920accc8c0bc02ab4292a22f8a6d /x11-libs
parentnet-vpn/candy: subscribe to spdlog subslot (and others) (diff)
downloadgentoo-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.ebuild96
-rw-r--r--x11-libs/cairo/files/cairo-1.18.2-cups.patch32
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