summaryrefslogtreecommitdiff
path: root/dev-python/pycairo
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/pycairo')
-rw-r--r--dev-python/pycairo/Manifest2
-rw-r--r--dev-python/pycairo/files/pycairo-1.26.0-py313.patch30
-rw-r--r--dev-python/pycairo/pycairo-1.26.0-r1.ebuild77
3 files changed, 109 insertions, 0 deletions
diff --git a/dev-python/pycairo/Manifest b/dev-python/pycairo/Manifest
index e76c2010d72b..27d325628e34 100644
--- a/dev-python/pycairo/Manifest
+++ b/dev-python/pycairo/Manifest
@@ -1,3 +1,5 @@
+AUX pycairo-1.26.0-py313.patch 919 BLAKE2B b618f62bbc411f0bd7a8abf207fed950b64e98765c89dc744062bb9ed5f5fe148d98ada2a079f974f7e1c0dfa0f15076f0e2177e25712049699e072195614501 SHA512 d6119319ab7ce7cd16c3c3b5144afe301e666bb24ee8f05788bd8143f76178996aa6a7bb88571709fcb1363d7f41c17a0cedda8c6b0de8b39cf186877777ab77
DIST pycairo-1.26.0.tar.gz 346850 BLAKE2B da6c35c929d372764280e8963a8b66ba533ccb99be9ee2bfa10859c635dd16cc087d542607be9ec6a9ffb942feb892100d4b9017d832d478b35c434aa05b9bb9 SHA512 5313f0d408a6e6ce6e70ac92291be5dd8651e01fbf9411d0467061afa21849cde27db273f2a13b4c3c931183f63f75f31fc0f0d3283b8f339ba88e71eab432f1
+EBUILD pycairo-1.26.0-r1.ebuild 1582 BLAKE2B 0edf3bd6a22cfdd2f16984c1339a5b7c705e6fa9778b933590913f98ac5033491fbae8175f3dbadf47a7388d93baf95e9aea577b7f3a14f5aa61ba0b61c0bab2 SHA512 2fa5300ff17e491e860a54a7215532641e004c9b543cd05310822b254597b0bfe95ecba1fadb4afff54e4d9c32ab382327c024fc6f63d05e182f8b00b6e0a742
EBUILD pycairo-1.26.0.ebuild 1519 BLAKE2B 1da5cc57cfdf94dbfb97b770f01b2be599f39385760cc1571cb3405094e1d72d8a01006f4bbdedf0bf46b0f281bbcb35e0d67b30b2adeaed4a8ddd0de9087e29 SHA512 925f648675283cffda31038ec5f568758b3cee4abfa1af2f343956443d231d496b550444daee64f3d9ff77f9dc4666965abb60654157081fd3acfaf32d6288dd
MISC metadata.xml 368 BLAKE2B 5e0f85e23bc56113927d28072c7178d27fc058b1e90851150c55e9e713edb96dd5daa79df8423f6719032538c9448d8afa9b750961bd82a5bcfae2d5e228c6b6 SHA512 c1e81ed2f535c8050f18950a57b71aa871b965c57d1e5ca8e8a4c48ecd643bc9ec326e046c1aea9f3f41124b9fe765a0b9b46a541c28f325cae7038cea66d086
diff --git a/dev-python/pycairo/files/pycairo-1.26.0-py313.patch b/dev-python/pycairo/files/pycairo-1.26.0-py313.patch
new file mode 100644
index 000000000000..c3c0d74cb415
--- /dev/null
+++ b/dev-python/pycairo/files/pycairo-1.26.0-py313.patch
@@ -0,0 +1,30 @@
+https://github.com/pygobject/pycairo/pull/366
+
+From 387e27fa36d29bc8f656656ca8b47e7b4996f4f4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Wed, 29 May 2024 21:25:41 +0200
+Subject: [PATCH] Avoid invalid PyBUF_READ flag in PyObject_GetBuffer()
+
+Since Python 3.13, the flag is no longer allowed.
+
+See https://github.com/python/cpython/pull/114707
+
+Fixes https://github.com/pygobject/pycairo/issues/365
+---
+ cairo/surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cairo/surface.c b/cairo/surface.c
+index 048522c6..f00db8b5 100644
+--- a/cairo/surface.c
++++ b/cairo/surface.c
+@@ -484,7 +484,7 @@ surface_set_mime_data (PycairoSurface *o, PyObject *args) {
+ return NULL;
+ }
+
+- res = PyObject_GetBuffer (obj, view, PyBUF_READ);
++ res = PyObject_GetBuffer (obj, view, PyBUF_SIMPLE);
+ if (res == -1) {
+ PyMem_Free (view);
+ return NULL;
+
diff --git a/dev-python/pycairo/pycairo-1.26.0-r1.ebuild b/dev-python/pycairo/pycairo-1.26.0-r1.ebuild
new file mode 100644
index 000000000000..269c6598a58e
--- /dev/null
+++ b/dev-python/pycairo/pycairo-1.26.0-r1.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..13} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for the cairo library"
+HOMEPAGE="
+ https://www.cairographics.org/pycairo/
+ https://github.com/pygobject/pycairo/
+ https://pypi.org/project/pycairo/
+"
+SRC_URI="
+ https://github.com/pygobject/${PN}/releases/download/v${PV}/${P}.tar.gz
+"
+
+LICENSE="|| ( LGPL-2.1 MPL-1.1 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+IUSE="examples"
+
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=x11-libs/cairo-1.15.10[svg(+)]
+"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+"
+
+PATCHES=(
+ "${FILESDIR}"/pycairo-1.26.0-py313.patch
+)
+
+distutils_enable_sphinx docs \
+ dev-python/sphinx-rtd-theme
+distutils_enable_tests pytest
+
+python_test() {
+ esetup.py build_tests
+ epytest
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # we need to pass --root via install command, sigh
+ cat > "${T}/distutils-extra.cfg" <<-EOF || die
+ [install]
+ root = ${D}
+ EOF
+ local -x DIST_EXTRA_CONFIG=${T}/distutils-extra.cfg
+ esetup.py \
+ install_pkgconfig --pkgconfigdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
+}
+
+python_install_all() {
+ if use examples; then
+ dodoc -r examples
+ fi
+
+ distutils-r1_python_install_all
+
+ insinto /usr/include/pycairo
+ doins cairo/py3cairo.h
+}