mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2025-12-08 00:05:33 +03:00
103 lines
2.5 KiB
Bash
103 lines
2.5 KiB
Bash
# Copyright 1999-2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
DISTUTILS_EXT=1
|
|
DISTUTILS_USE_PEP517=no
|
|
GNOME_TARBALL_SUFFIX="gz"
|
|
PYTHON_COMPAT=( python3_{11..14} pypy3_11 )
|
|
|
|
inherit gnome.org meson virtualx xdg distutils-r1
|
|
|
|
DESCRIPTION="Python bindings for GObject Introspection"
|
|
HOMEPAGE="
|
|
https://pygobject.gnome.org/
|
|
https://gitlab.gnome.org/GNOME/pygobject/
|
|
"
|
|
COMMIT=0a8b2c56331a31d7f7096faaa1c1c26467b51c15
|
|
SRC_URI+="
|
|
https://github.com/python/pythoncapi-compat/archive/${COMMIT}.tar.gz -> \
|
|
${P}_${COMMIT}_pythoncapi-compat.gh.tar.gz
|
|
"
|
|
LICENSE="LGPL-2.1+"
|
|
SLOT="3"
|
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
|
|
IUSE="+cairo test"
|
|
RESTRICT="!test? ( test )"
|
|
|
|
RDEPEND="
|
|
>=dev-libs/glib-2.80:2
|
|
>=dev-libs/gobject-introspection-1.84:=
|
|
dev-libs/libffi:=
|
|
cairo? (
|
|
>=dev-python/pycairo-1.16.0[${PYTHON_USEDEP}]
|
|
x11-libs/cairo[glib]
|
|
)
|
|
"
|
|
DEPEND="
|
|
${RDEPEND}
|
|
test? (
|
|
>=app-accessibility/at-spi2-core-2.46.0[introspection]
|
|
dev-python/pytest[${PYTHON_USEDEP}]
|
|
x11-libs/gdk-pixbuf:2[introspection,jpeg]
|
|
x11-libs/gtk+:3[introspection]
|
|
x11-libs/pango[introspection]
|
|
)
|
|
"
|
|
BDEPEND="
|
|
virtual/pkgconfig
|
|
"
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}/Skip-test-using-dbus-in-sandbox.patch"
|
|
"${FILESDIR}/Skip-test-detecting-cycle-among-base-classes-typeerr.patch"
|
|
)
|
|
|
|
src_unpack() {
|
|
default
|
|
unpack "${P}_${COMMIT}_pythoncapi-compat.gh.tar.gz"
|
|
}
|
|
|
|
src_prepare() {
|
|
default
|
|
find "${S}/subprojects/pythoncapi-compat" -mindepth 1 ! -name meson.build -exec rm -vrf {} + || die
|
|
mv -v "${WORKDIR}/pythoncapi-compat-${COMMIT}"/* "${S}/subprojects/pythoncapi-compat" || die
|
|
}
|
|
|
|
python_configure() {
|
|
local emesonargs=(
|
|
$(meson_feature cairo pycairo)
|
|
$(meson_use test tests)
|
|
-Dpython="${EPYTHON}"
|
|
)
|
|
meson_src_configure
|
|
}
|
|
|
|
python_compile() {
|
|
meson_src_compile
|
|
}
|
|
|
|
src_test() {
|
|
virtx distutils-r1_src_test
|
|
}
|
|
|
|
python_test() {
|
|
local -x GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs
|
|
local -x GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484
|
|
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
|
local -x XDG_CACHE_HOME="${T}/${EPYTHON}"
|
|
|
|
if [[ ${EPYTHON} == python3.14* ]] ; then
|
|
# https://gitlab.gnome.org/GNOME/pygobject/-/issues/694
|
|
local -x PYTEST_ADDOPTS="-k 'not (ref_count or has_two_refs)'"
|
|
fi
|
|
|
|
meson_src_test --timeout-multiplier 3 || die "test for ${EPYTHON}"
|
|
}
|
|
|
|
python_install() {
|
|
meson_src_install
|
|
python_optimize
|
|
}
|