diff options
author | Sam James <sam@gentoo.org> | 2024-06-11 18:49:02 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-06-11 18:55:19 +0100 |
commit | 1d92e043e855b1474b5575e3d84bd0fde92461b5 (patch) | |
tree | af9eee3acfe87e778ca3cc817a88b255c76c0ebb /dev-python/pycairo | |
parent | sci-libs/libsigrokdecode: enable py3.13 (diff) | |
download | gentoo-1d92e043e855b1474b5575e3d84bd0fde92461b5.tar.gz gentoo-1d92e043e855b1474b5575e3d84bd0fde92461b5.tar.bz2 gentoo-1d92e043e855b1474b5575e3d84bd0fde92461b5.zip |
dev-python/pycairo: enable py3.13
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-python/pycairo')
-rw-r--r-- | dev-python/pycairo/files/pycairo-1.26.0-py313.patch | 30 | ||||
-rw-r--r-- | dev-python/pycairo/pycairo-1.26.0-r1.ebuild | 77 |
2 files changed, 107 insertions, 0 deletions
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 +} |