dev-python/pygobject: remove old

Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Mart Raudsepp <leio@gentoo.org>
This commit is contained in:
Mart Raudsepp
2018-12-29 22:37:43 +02:00
parent c56136f3de
commit e5e599b190
5 changed files with 0 additions and 582 deletions

View File

@@ -1,4 +1,2 @@
DIST pygobject-2.28.6.tar.xz 747248 BLAKE2B 5f92794034b2d0559a623db4a7d273a7dc3f099cae87ede91b17e81acac085a9298c6b81b45b4b8540b6a75ced97e474a993437dbfcfc2133d3321d6a979b541 SHA512 37544ea2377258758169b25a2969d5ee1c9ffb9b6e63e05bc7a0471a49ac9169c51ec587d4489172c7d256f53df878a81c1992a08059aa7e43dbbb69f799545c
DIST pygobject-3.22.0.tar.xz 756820 BLAKE2B 2030b9106c082bbec4418c97945df68e20f49005341ad1d7c6d390b894ac88e13f2619215df4c02587b5ccce606083906609d89c559b790777092e991afbf367 SHA512 1f6f0ea8014b35d7828a6bebc0fe2cf6519016ca5ad3819dc6b7879154d8e27fdd2971620955c8fc4904625814833c8bc8ec0599152720649864262d3b6e33e4
DIST pygobject-3.24.1.tar.xz 758648 BLAKE2B 95e3bc6d022b70053549f8a780aa372d8964477e881b825299ca82a7328bbdab58b037a92d36578915ac622b7c223d47cc1c35fccd3ea70d7840841eaec6860d SHA512 f35968ab12b872c85af6b2410cadedcf9fa7e17352a40f3dc557c86203aa1c38753710aab9ce55e986ee2c98b64e14123c65083655445e993d0b53431db6dc93
DIST pygobject-3.28.3.tar.xz 1005368 BLAKE2B 5c24fd25fa20dbdbd3ad18d7e2eafd8f47f5e28903d9f8dab6110f09ccfc13f865149f0d4bd84bc755bc6e4191b903646930e818d85382dfaf4e05f7107b3ecf SHA512 0abda393dd774f9cea04f883eab53f5ebde81d2439ed18cfe08ef39a1996054ab34bf4e770f70116a4485fb4f9970464b9a950ffa4af76cfa21ecc8d4dff968d

View File

@@ -1,255 +0,0 @@
From c60ef6a2bcc05010a89328d5fc2704d1aa505e2a Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Sat, 10 Mar 2018 18:04:14 +0100
Subject: [PATCH 1/4] tests_gi: Use capture_output() context manager instead of
manually mocking stdout
---
tests/helper.py | 2 +-
tests/test_gi.py | 14 +++-----------
2 files changed, 4 insertions(+), 12 deletions(-)
diff --git a/tests/helper.py b/tests/helper.py
index c4308fee..892cb740 100644
--- a/tests/helper.py
+++ b/tests/helper.py
@@ -113,7 +113,7 @@ def capture_glib_deprecation_warnings():
@contextlib.contextmanager
def capture_output():
"""
- with capture_output as (stdout, stderr):
+ with capture_output() as (stdout, stderr):
some_action()
print(stdout.getvalue(), stderr.getvalue())
"""
diff --git a/tests/test_gi.py b/tests/test_gi.py
index d0c72b64..3b77ff2d 100644
--- a/tests/test_gi.py
+++ b/tests/test_gi.py
@@ -13,7 +13,6 @@ import subprocess
import gc
import weakref
import warnings
-from io import StringIO, BytesIO
import gi
import gi.overrides
@@ -24,7 +23,7 @@ from gi.repository import GObject, GLib, Gio
from gi.repository import GIMarshallingTests
from compathelper import _bytes, _unicode
-from helper import capture_exceptions
+from helper import capture_exceptions, capture_output
if sys.version_info < (3, 0):
CONSTANT_UTF8 = "const \xe2\x99\xa5 utf8"
@@ -2836,16 +2835,9 @@ class TestModule(unittest.TestCase):
self.assertTrue(hasattr(item, '__class__'))
def test_help(self):
- orig_stdout = sys.stdout
- try:
- if sys.version_info < (3, 0):
- sys.stdout = BytesIO()
- else:
- sys.stdout = StringIO()
+ with capture_output() as (stdout, stderr):
help(GIMarshallingTests)
- output = sys.stdout.getvalue()
- finally:
- sys.stdout = orig_stdout
+ output = stdout.getvalue()
self.assertTrue('SimpleStruct' in output, output)
self.assertTrue('Interface2' in output, output)
--
2.18.0
From 1826e41cd317ba3c19cf8767b1ef8752f1865aac Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Sat, 10 Mar 2018 18:54:28 +0100
Subject: [PATCH 2/4] IntrospectionModule: __path__ should be List[str] and not
str
This fixes a crash when calling help() on the module which got stricter with
Python 3.7.
It's a bit questionable why the type has __path__ in the first place as
that's only meant for packages. But let's leave that for now.
---
gi/module.py | 5 +++--
tests/test_gi.py | 6 ++++--
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/gi/module.py b/gi/module.py
index fd8f5080..9e8b5256 100644
--- a/gi/module.py
+++ b/gi/module.py
@@ -124,10 +124,11 @@ class IntrospectionModule(object):
self._version = version
self.__name__ = 'gi.repository.' + namespace
- self.__path__ = repository.get_typelib_path(self._namespace)
+ path = repository.get_typelib_path(self._namespace)
+ self.__path__ = [path]
if _have_py3:
# get_typelib_path() delivers bytes, not a string
- self.__path__ = self.__path__.decode('UTF-8')
+ self.__path__ = [path.decode('UTF-8')]
if self._version is None:
self._version = repository.get_version(self._namespace)
diff --git a/tests/test_gi.py b/tests/test_gi.py
index 3b77ff2d..2fa0423d 100644
--- a/tests/test_gi.py
+++ b/tests/test_gi.py
@@ -2813,8 +2813,10 @@ class TestKeywords(unittest.TestCase):
class TestModule(unittest.TestCase):
def test_path(self):
- self.assertTrue(GIMarshallingTests.__path__.endswith('GIMarshallingTests-1.0.typelib'),
- GIMarshallingTests.__path__)
+ path = GIMarshallingTests.__path__
+ assert isinstance(path, list)
+ assert len(path) == 1
+ assert path[0].endswith('GIMarshallingTests-1.0.typelib')
def test_str(self):
self.assertTrue("'GIMarshallingTests' from '" in str(GIMarshallingTests),
--
2.18.0
From 8adc8be0a2ab17e5215a4bc6f63a9ee391237596 Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Sun, 11 Mar 2018 13:13:30 +0100
Subject: [PATCH 3/4] _struct_dealloc: handle being called with an error set
With Python 3.7 it gets called with an error set and tp_dealloc
implementations need to handle that.
Fix by saving and restoring the error.
---
gi/pygi-struct.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/gi/pygi-struct.c b/gi/pygi-struct.c
index 4d5b5411..e2906e0a 100644
--- a/gi/pygi-struct.c
+++ b/gi/pygi-struct.c
@@ -61,7 +61,14 @@ out:
static void
_struct_dealloc (PyGIStruct *self)
{
- GIBaseInfo *info = _struct_get_info ( (PyObject *) self );
+ GIBaseInfo *info;
+ PyObject *error_type, *error_value, *error_traceback;
+ gboolean have_error = !!PyErr_Occurred ();
+
+ if (have_error)
+ PyErr_Fetch (&error_type, &error_value, &error_traceback);
+
+ info = _struct_get_info ( (PyObject *) self );
if (info != NULL && g_struct_info_is_foreign ( (GIStructInfo *) info)) {
pygi_struct_foreign_release (info, pyg_pointer_get_ptr (self));
@@ -73,6 +80,9 @@ _struct_dealloc (PyGIStruct *self)
g_base_info_unref (info);
}
+ if (have_error)
+ PyErr_Restore (error_type, error_value, error_traceback);
+
Py_TYPE (self)->tp_free ((PyObject *)self);
}
--
2.18.0
From 2299d46e7a57a74f734844ae28bfd536e89e5254 Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Sat, 10 Mar 2018 20:03:33 +0100
Subject: [PATCH 4/4] marshal-cleanup: save and restore exception around
cleanup
With Python 3.7 some Python API in the cleanup path clears exceptions
which makes us return NULL in the end without an error set.
Make if safe to call the cleanup functions with an error set by
saving and restoring exceptions.
---
gi/pygi-marshal-cleanup.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/gi/pygi-marshal-cleanup.c b/gi/pygi-marshal-cleanup.c
index b4d04bc5..0e4eda3f 100644
--- a/gi/pygi-marshal-cleanup.c
+++ b/gi/pygi-marshal-cleanup.c
@@ -93,6 +93,11 @@ pygi_marshal_cleanup_args_from_py_marshal_success (PyGIInvokeState *state,
PyGICallableCache *cache)
{
gssize i;
+ PyObject *error_type, *error_value, *error_traceback;
+ gboolean have_error = !!PyErr_Occurred ();
+
+ if (have_error)
+ PyErr_Fetch (&error_type, &error_value, &error_traceback);
for (i = 0; i < _pygi_callable_cache_args_len (cache); i++) {
PyGIArgCache *arg_cache = _pygi_callable_cache_get_arg (cache, i);
@@ -112,6 +117,9 @@ pygi_marshal_cleanup_args_from_py_marshal_success (PyGIInvokeState *state,
state->args[i].arg_cleanup_data = NULL;
}
}
+
+ if (have_error)
+ PyErr_Restore (error_type, error_value, error_traceback);
}
void
@@ -119,6 +127,12 @@ pygi_marshal_cleanup_args_to_py_marshal_success (PyGIInvokeState *state,
PyGICallableCache *cache)
{
GSList *cache_item;
+ PyObject *error_type, *error_value, *error_traceback;
+ gboolean have_error = !!PyErr_Occurred ();
+
+ if (have_error)
+ PyErr_Fetch (&error_type, &error_value, &error_traceback);
+
/* clean up the return if available */
if (cache->return_cache != NULL) {
PyGIMarshalCleanupFunc cleanup_func = cache->return_cache->to_py_cleanup;
@@ -153,6 +167,9 @@ pygi_marshal_cleanup_args_to_py_marshal_success (PyGIInvokeState *state,
cache_item = cache_item->next;
}
+
+ if (have_error)
+ PyErr_Restore (error_type, error_value, error_traceback);
}
void
@@ -161,6 +178,11 @@ pygi_marshal_cleanup_args_from_py_parameter_fail (PyGIInvokeState *state,
gssize failed_arg_index)
{
gssize i;
+ PyObject *error_type, *error_value, *error_traceback;
+ gboolean have_error = !!PyErr_Occurred ();
+
+ if (have_error)
+ PyErr_Fetch (&error_type, &error_value, &error_traceback);
state->failed = TRUE;
@@ -192,6 +214,9 @@ pygi_marshal_cleanup_args_from_py_parameter_fail (PyGIInvokeState *state,
}
state->args[i].arg_cleanup_data = NULL;
}
+
+ if (have_error)
+ PyErr_Restore (error_type, error_value, error_traceback);
}
void
--
2.18.0

View File

@@ -1,105 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
GNOME2_LA_PUNT="yes"
PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
inherit eutils gnome2 python-r1 virtualx
DESCRIPTION="GLib's GObject library bindings for Python"
HOMEPAGE="https://wiki.gnome.org/Projects/PyGObject"
LICENSE="LGPL-2.1+"
SLOT="3"
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="+cairo examples test +threads"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
test? ( cairo )
"
COMMON_DEPEND="${PYTHON_DEPS}
>=dev-libs/glib-2.38:2
>=dev-libs/gobject-introspection-1.46.0:=
virtual/libffi:=
cairo? (
>=dev-python/pycairo-1.10.0[${PYTHON_USEDEP}]
x11-libs/cairo )
"
DEPEND="${COMMON_DEPEND}
virtual/pkgconfig
cairo? ( x11-libs/cairo[glib] )
test? (
dev-libs/atk[introspection]
media-fonts/font-cursor-misc
media-fonts/font-misc-misc
x11-libs/cairo[glib]
x11-libs/gdk-pixbuf:2[introspection]
x11-libs/gtk+:3[introspection]
x11-libs/pango[introspection]
python_targets_python2_7? ( dev-python/pyflakes[$(python_gen_usedep python2_7)] ) )
"
# gnome-base/gnome-common required by eautoreconf
# We now disable introspection support in slot 2 per upstream recommendation
# (see https://bugzilla.gnome.org/show_bug.cgi?id=642048#c9); however,
# older versions of slot 2 installed their own site-packages/gi, and
# slot 3 will collide with them.
RDEPEND="${COMMON_DEPEND}
!<dev-python/pygtk-2.13
!<dev-python/pygobject-2.28.6-r50:2[introspection]
"
src_prepare() {
# Test fail with xvfb but not X
sed -e 's/^.*TEST_NAMES=compat_test_pygtk .*;/echo "Test disabled";/' \
-i tests/Makefile.{am,in} || die
gnome2_src_prepare
python_copy_sources
}
src_configure() {
# Hard-enable libffi support since both gobject-introspection and
# glib-2.29.x rdepend on it anyway
# docs disabled by upstream default since they are very out of date
configuring() {
gnome2_src_configure \
$(use_enable cairo) \
$(use_enable threads thread)
# Pyflakes tests work only in python2, bug #516744
if use test && [[ ${EPYTHON} != python2.7 ]]; then
sed -e 's/if type pyflakes/if false/' \
-i Makefile || die "sed failed"
fi
}
python_foreach_impl run_in_build_dir configuring
}
src_compile() {
python_foreach_impl run_in_build_dir gnome2_src_compile
}
src_test() {
export GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs
export GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484
export SKIP_PEP8="yes"
testing() {
export XDG_CACHE_HOME="${T}/${EPYTHON}"
run_in_build_dir virtx emake check
unset XDG_CACHE_HOME
}
python_foreach_impl testing
unset GIO_USE_VFS
}
src_install() {
python_foreach_impl run_in_build_dir gnome2_src_install
dodoc -r examples
}

View File

@@ -1,112 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
GNOME2_LA_PUNT="yes"
PYTHON_COMPAT=( python2_7 python3_{4,5,6,7} )
inherit eutils gnome2 python-r1 virtualx
DESCRIPTION="GLib's GObject library bindings for Python"
HOMEPAGE="https://wiki.gnome.org/Projects/PyGObject"
LICENSE="LGPL-2.1+"
SLOT="3"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="+cairo examples test +threads"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
test? ( cairo )
"
COMMON_DEPEND="${PYTHON_DEPS}
>=dev-libs/glib-2.38:2
>=dev-libs/gobject-introspection-1.46.0:=
virtual/libffi:=
cairo? (
>=dev-python/pycairo-1.10.0[${PYTHON_USEDEP}]
x11-libs/cairo )
"
DEPEND="${COMMON_DEPEND}
virtual/pkgconfig
cairo? ( x11-libs/cairo[glib] )
test? (
dev-libs/atk[introspection]
media-fonts/font-cursor-misc
media-fonts/font-misc-misc
x11-libs/cairo[glib]
x11-libs/gdk-pixbuf:2[introspection,jpeg]
x11-libs/gtk+:3[introspection]
x11-libs/pango[introspection]
python_targets_python2_7? ( dev-python/pyflakes[$(python_gen_usedep python2_7)] ) )
"
# gnome-base/gnome-common required by eautoreconf
# We now disable introspection support in slot 2 per upstream recommendation
# (see https://bugzilla.gnome.org/show_bug.cgi?id=642048#c9); however,
# older versions of slot 2 installed their own site-packages/gi, and
# slot 3 will collide with them.
RDEPEND="${COMMON_DEPEND}
!<dev-python/pygtk-2.13
!<dev-python/pygobject-2.28.6-r50:2[introspection]
"
PATCHES=(
"${FILESDIR}"/pygobject-3.24.1-py37.patch
)
src_prepare() {
# Test fail with xvfb but not X
sed -e 's/^.*TEST_NAMES=compat_test_pygtk .*;/echo "Test disabled";/' \
-i tests/Makefile.{am,in} || die
# FAIL: test_cairo_font_options (test_cairo.TestPango)
# AssertionError: <type 'cairo.SubpixelOrder'> != <type 'int'>
sed -e 's/^.*type(font_opts.get_subpixel_order()), int.*/#/' \
-i tests/test_cairo.py || die
gnome2_src_prepare
python_copy_sources
}
src_configure() {
# Hard-enable libffi support since both gobject-introspection and
# glib-2.29.x rdepend on it anyway
# docs disabled by upstream default since they are very out of date
configuring() {
gnome2_src_configure \
$(use_enable cairo) \
$(use_enable threads thread)
# Pyflakes tests work only in python2, bug #516744
if use test && [[ ${EPYTHON} != python2.7 ]]; then
sed -e 's/if type pyflakes/if false/' \
-i Makefile || die "sed failed"
fi
}
python_foreach_impl run_in_build_dir configuring
}
src_compile() {
python_foreach_impl run_in_build_dir gnome2_src_compile
}
src_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 SKIP_PEP8="yes"
testing() {
local -x XDG_CACHE_HOME="${T}/${EPYTHON}"
emake -C "${BUILD_DIR}" check
}
virtx python_foreach_impl testing
}
src_install() {
python_foreach_impl run_in_build_dir gnome2_src_install
dodoc -r examples
}

View File

@@ -1,108 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
GNOME2_LA_PUNT="yes"
PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
inherit eutils gnome2 python-r1 virtualx
DESCRIPTION="GLib's GObject library bindings for Python"
HOMEPAGE="https://wiki.gnome.org/Projects/PyGObject"
LICENSE="LGPL-2.1+"
SLOT="3"
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~mips ppc ppc64 s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="+cairo examples test +threads"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
test? ( cairo )
"
COMMON_DEPEND="${PYTHON_DEPS}
>=dev-libs/glib-2.38:2
>=dev-libs/gobject-introspection-1.46.0:=
virtual/libffi:=
cairo? (
>=dev-python/pycairo-1.10.0[${PYTHON_USEDEP}]
x11-libs/cairo )
"
DEPEND="${COMMON_DEPEND}
virtual/pkgconfig
cairo? ( x11-libs/cairo[glib] )
test? (
dev-libs/atk[introspection]
media-fonts/font-cursor-misc
media-fonts/font-misc-misc
x11-libs/cairo[glib]
x11-libs/gdk-pixbuf:2[introspection,jpeg]
x11-libs/gtk+:3[introspection]
x11-libs/pango[introspection]
python_targets_python2_7? ( dev-python/pyflakes[$(python_gen_usedep python2_7)] ) )
"
# gnome-base/gnome-common required by eautoreconf
# We now disable introspection support in slot 2 per upstream recommendation
# (see https://bugzilla.gnome.org/show_bug.cgi?id=642048#c9); however,
# older versions of slot 2 installed their own site-packages/gi, and
# slot 3 will collide with them.
RDEPEND="${COMMON_DEPEND}
!<dev-python/pygtk-2.13
!<dev-python/pygobject-2.28.6-r50:2[introspection]
"
src_prepare() {
# Test fail with xvfb but not X
sed -e 's/^.*TEST_NAMES=compat_test_pygtk .*;/echo "Test disabled";/' \
-i tests/Makefile.{am,in} || die
# FAIL: test_cairo_font_options (test_cairo.TestPango)
# AssertionError: <type 'cairo.SubpixelOrder'> != <type 'int'>
sed -e 's/^.*type(font_opts.get_subpixel_order()), int.*/#/' \
-i tests/test_cairo.py || die
gnome2_src_prepare
python_copy_sources
}
src_configure() {
# Hard-enable libffi support since both gobject-introspection and
# glib-2.29.x rdepend on it anyway
# docs disabled by upstream default since they are very out of date
configuring() {
gnome2_src_configure \
$(use_enable cairo) \
$(use_enable threads thread)
# Pyflakes tests work only in python2, bug #516744
if use test && [[ ${EPYTHON} != python2.7 ]]; then
sed -e 's/if type pyflakes/if false/' \
-i Makefile || die "sed failed"
fi
}
python_foreach_impl run_in_build_dir configuring
}
src_compile() {
python_foreach_impl run_in_build_dir gnome2_src_compile
}
src_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 SKIP_PEP8="yes"
testing() {
local -x XDG_CACHE_HOME="${T}/${EPYTHON}"
emake -C "${BUILD_DIR}" check
}
virtx python_foreach_impl testing
}
src_install() {
python_foreach_impl run_in_build_dir gnome2_src_install
dodoc -r examples
}