Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-gobject for openSUSE:Factory checked in at 2022-08-04 13:23:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-gobject (Old) and /work/SRC/openSUSE:Factory/.python-gobject.new.1521 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-gobject" Thu Aug 4 13:23:24 2022 rev:92 rq:992692 version:3.42.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-gobject/python-gobject.changes 2022-06-10 15:57:40.752831122 +0200 +++ /work/SRC/openSUSE:Factory/.python-gobject.new.1521/python-gobject.changes 2022-08-04 13:23:38.460528882 +0200 @@ -1,0 +2,24 @@ +Fri Jul 22 10:00:02 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com> + +- Update to version 3.42.2: + + Error out instead of crashing when marshaling unsupported + fundamental types in some cases. + + Add a workaround for a PyPy 3.9+ bug when threads are used. + + Fix crashes when marshaling zero terminated arrays for certain + item types. + + Fix a crash/refcounting error in case marshaling a hash table + fails. + + Make the test suite pass again with PyPy. + + tests: support running tests with (MSVC) CPython 3.8+ on + Windows. + + interface: Fix leak when overriding GInterfaceInfo. + + setup.py: look up pycairo headers without importing the module + (helps with building on Windows and MSVC CPython 3.8+). + +------------------------------------------------------------------- +Sat Jul 16 22:53:44 UTC 2022 - Ben Greiner <c...@bnavigator.de> + +- Work around vendored distutils in setuptools >= 60 incorrectly + installing pkgconfig files into the wrong libdir + +------------------------------------------------------------------- Old: ---- pygobject-3.42.1.tar.xz New: ---- pygobject-3.42.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-gobject.spec ++++++ --- /var/tmp/diff_new_pack.HdlT2y/_old 2022-08-04 13:23:38.908530153 +0200 +++ /var/tmp/diff_new_pack.HdlT2y/_new 2022-08-04 13:23:38.912530164 +0200 @@ -29,7 +29,7 @@ %global __requires_exclude_from ^%{_libdir}/python.*/site-packages/gi/__init__.py$ %define _name pygobject Name: python-gobject -Version: 3.42.1 +Version: 3.42.2 Release: 0 Summary: Python bindings for GObject License: LGPL-2.1-or-later @@ -124,6 +124,12 @@ %install %python_install +# Incorrectly installed by a python38-setuptools vendored distutils +# which does not play well with the distro patched python38. +# Later flavors installed the correct files into lib64 as well +if [ "%{_libdir}" != "%{_prefix}/lib" -a -d %{buildroot}%{_prefix}/lib/pkgconfig ]; then + rm -r %{buildroot}%{_prefix}/lib/pkgconfig +fi %{python_expand # delete unwanted python scripts and their compiled cache files # Drop pygtkcompat layer - It's useless and we lack other stuff for it to work ++++++ pygobject-3.42.1.tar.xz -> pygobject-3.42.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/.gitlab-ci/Dockerfile new/pygobject-3.42.2/.gitlab-ci/Dockerfile --- old/pygobject-3.42.1/.gitlab-ci/Dockerfile 2022-04-17 14:33:47.572015000 +0200 +++ new/pygobject-3.42.2/.gitlab-ci/Dockerfile 2022-07-16 15:12:46.069725500 +0200 @@ -46,5 +46,6 @@ RUN pyenv install --debug 3.7.9 RUN pyenv install --debug 3.8.5 RUN pyenv install --debug 3.9.0 +RUN pyenv install --debug 3.10.5 ENV PATH="/usr/lib/ccache:${PATH}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/.gitlab-ci.yml new/pygobject-3.42.2/.gitlab-ci.yml --- old/pygobject-3.42.1/.gitlab-ci.yml 2022-04-17 14:33:47.564014700 +0200 +++ new/pygobject-3.42.2/.gitlab-ci.yml 2022-07-16 15:12:46.069725500 +0200 @@ -82,6 +82,11 @@ PYENV_VERSION: "3.9.0-debug" <<: *defaults +python3.10: + variables: + PYENV_VERSION: "3.10.5-debug" + <<: *defaults + pypy3.6: allow_failure: true variables: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/NEWS new/pygobject-3.42.2/NEWS --- old/pygobject-3.42.1/NEWS 2022-04-17 14:42:33.263242000 +0200 +++ new/pygobject-3.42.2/NEWS 2022-07-16 14:11:13.370713700 +0200 @@ -1,3 +1,17 @@ +3.42.2 - 2022-07-16 +------------------- + +* Error out instead of crashing when marshaling unsupported fundamental types in some cases :mr:`180` +* Add a workaround for a PyPy 3.9+ bug when threads are used :mr:`200` +* Fix crashes when marshaling zero terminated arrays for certain item types :mr:`191` +* Fix a crash/refcounting error in case marshaling a hash table fails :mr:`191` +* Make the test suite pass again with PyPy :mr:`191` +* tests: support running tests with (MSVC) CPython 3.8+ on Windows :mr:`206` +* interface: Fix leak when overriding GInterfaceInfo :mr:`204` +* setup.py: look up pycairo headers without importing the module + (helps with building on Windows and MSVC CPython 3.8+) :mr:`205` + + 3.42.1 - 2022-04-17 ------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/PKG-INFO new/pygobject-3.42.2/PKG-INFO --- old/pygobject-3.42.1/PKG-INFO 2022-04-17 14:46:37.864698400 +0200 +++ new/pygobject-3.42.2/PKG-INFO 2022-07-16 19:51:56.778309300 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: PyGObject -Version: 3.42.1 +Version: 3.42.2 Summary: Python bindings for GObject Introspection Home-page: https://pygobject.readthedocs.io Author: James Henstridge diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/PyGObject.egg-info/PKG-INFO new/pygobject-3.42.2/PyGObject.egg-info/PKG-INFO --- old/pygobject-3.42.1/PyGObject.egg-info/PKG-INFO 2022-04-17 14:46:37.452696300 +0200 +++ new/pygobject-3.42.2/PyGObject.egg-info/PKG-INFO 2022-07-16 19:51:56.354306200 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: PyGObject -Version: 3.42.1 +Version: 3.42.2 Summary: Python bindings for GObject Introspection Home-page: https://pygobject.readthedocs.io Author: James Henstridge diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/PyGObject.egg-info/SOURCES.txt new/pygobject-3.42.2/PyGObject.egg-info/SOURCES.txt --- old/pygobject-3.42.1/PyGObject.egg-info/SOURCES.txt 2022-04-17 14:46:37.468696400 +0200 +++ new/pygobject-3.42.2/PyGObject.egg-info/SOURCES.txt 2022-07-16 19:51:56.370306300 +0200 @@ -290,6 +290,7 @@ tests/test_gobject.py tests/test_gtk_template.py tests/test_gtype.py +tests/test_gtype_instance.py tests/test_import_machinery.py tests/test_interface.py tests/test_internal_api.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/gi/gimodule.c new/pygobject-3.42.2/gi/gimodule.c --- old/pygobject-3.42.1/gi/gimodule.c 2022-04-17 14:33:47.584015400 +0200 +++ new/pygobject-3.42.2/gi/gimodule.c 2022-04-24 11:48:47.624746600 +0200 @@ -1066,11 +1066,15 @@ pygobject__g_instance_init(GTypeInstance *instance, gpointer g_class) { - GObject *object = (GObject *) instance; + GObject *object; PyObject *wrapper, *result; PyGILState_STATE state; gboolean needs_init = FALSE; + g_return_if_fail(G_IS_OBJECT(instance)); + + object = (GObject *) instance; + wrapper = g_object_get_qdata(object, pygobject_wrapper_key); if (wrapper == NULL) { wrapper = pygobject_init_wrapper_get(); @@ -1738,6 +1742,7 @@ info->interface_init = (GInterfaceInitFunc) initialize_interface; pyg_register_interface_info (g_type, info); + g_free (info); Py_RETURN_NONE; } @@ -2522,8 +2527,9 @@ module = PyModule_Create(&__gimodule); PyObject *module_dict = PyModule_GetDict (module); -#if PY_VERSION_HEX < 0x03090000 +#if PY_VERSION_HEX < 0x03090000 || defined(PYPY_VERSION) /* Deprecated since 3.9 */ + /* Except in PyPy it's still not a no-op: https://foss.heptapod.net/pypy/pypy/-/issues/3691 */ /* Always enable Python threads since we cannot predict which GI repositories * might accept Python callbacks run within non-Python threads or might trigger diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/gi/pygi-argument.c new/pygobject-3.42.2/gi/pygi-argument.c --- old/pygobject-3.42.1/gi/pygi-argument.c 2022-04-17 14:33:47.588015300 +0200 +++ new/pygobject-3.42.2/gi/pygi-argument.c 2022-04-24 11:32:39.415459600 +0200 @@ -269,7 +269,16 @@ g_base_info_unref ( (GIBaseInfo *) item_type_info); if (is_zero_terminated) { - length = g_strv_length (arg->v_pointer); + if (item_size == sizeof(gpointer)) + length = g_strv_length ((gchar **)arg->v_pointer); + else if (item_size == 1) + length = strlen ((gchar*)arg->v_pointer); + else if (item_size == sizeof(int)) + for (length = 0; *(((int*)arg->v_pointer) + length); length++); + else if (item_size == sizeof(short)) + for (length = 0; *(((short*)arg->v_pointer) + length); length++); + else + g_assert_not_reached (); } else { length = g_type_info_get_array_fixed_size (type_info); if (length < 0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/gi/pygi-array.c new/pygobject-3.42.2/gi/pygi-array.c --- old/pygobject-3.42.1/gi/pygi-array.c 2022-04-17 14:33:47.588015300 +0200 +++ new/pygobject-3.42.2/gi/pygi-array.c 2022-04-24 11:32:39.415459600 +0200 @@ -545,10 +545,16 @@ } else if (array_cache->is_zero_terminated) { if (arg->v_pointer == NULL) { len = 0; - } else if (seq_cache->item_cache->type_tag == GI_TYPE_TAG_UINT8) { + } else if (array_cache->item_size == 1) { len = strlen (arg->v_pointer); - } else { + } else if (array_cache->item_size == sizeof(gpointer)) { len = g_strv_length ((gchar **)arg->v_pointer); + } else if (array_cache->item_size == sizeof(int)) { + for (len = 0; *(((int*)arg->v_pointer) + len); len++); + } else if (array_cache->item_size == sizeof(short)) { + for (len = 0; *(((short*)arg->v_pointer) + len); len++); + } else { + g_assert_not_reached (); } } else { GIArgument *len_arg = &state->args[array_cache->len_arg_index].arg_value; @@ -717,7 +723,16 @@ if (array_cache->fixed_size >= 0) { len = array_cache->fixed_size; } else if (array_cache->is_zero_terminated) { - len = g_strv_length ((gchar **)data); + if (array_cache->item_size == sizeof(gpointer)) + len = g_strv_length ((gchar **)data); + else if (array_cache->item_size == 1) + len = strlen ((gchar*)data); + else if (array_cache->item_size == sizeof(int)) + for (len = 0; *(((int*)data) + len); len++); + else if (array_cache->item_size == sizeof(short)) + for (len = 0; *(((short*)data) + len); len++); + else + g_assert_not_reached (); } else if (array_cache->len_arg_index >= 0) { GIArgument *len_arg = &state->args[array_cache->len_arg_index].arg_value; len = len_arg->v_long; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/gi/pygi-hashtable.c new/pygobject-3.42.2/gi/pygi-hashtable.c --- old/pygobject-3.42.1/gi/pygi-hashtable.c 2022-04-17 14:33:47.588015300 +0200 +++ new/pygobject-3.42.2/gi/pygi-hashtable.c 2022-04-24 11:32:50.292221300 +0200 @@ -139,8 +139,6 @@ continue; err: /* FIXME: cleanup hash keys and values */ - Py_XDECREF (py_key); - Py_XDECREF (py_value); Py_DECREF (py_keys); Py_DECREF (py_values); g_hash_table_unref (hash_); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/gi/pygi-object.c new/pygobject-3.42.2/gi/pygi-object.c --- old/pygobject-3.42.1/gi/pygi-object.c 2022-04-17 14:33:47.588015300 +0200 +++ new/pygobject-3.42.2/gi/pygi-object.c 2022-04-24 11:31:43.169023500 +0200 @@ -235,10 +235,15 @@ if (transfer == GI_TRANSFER_EVERYTHING) g_param_spec_unref (arg->v_pointer); - } else { + } else if (G_IS_OBJECT(arg->v_pointer)) { pyobj = pygobject_new_full (arg->v_pointer, /*steal=*/ transfer == GI_TRANSFER_EVERYTHING, /*type=*/ NULL); + } else { + PyErr_Format(PyExc_TypeError, + "No means to translate argument or return value for '%s'", + g_type_name_from_instance(arg->v_pointer)); + return NULL; } return pyobj; @@ -261,7 +266,7 @@ */ if (arg->v_pointer != NULL && transfer == GI_TRANSFER_NOTHING && - !G_IS_PARAM_SPEC (arg->v_pointer) && + G_IS_OBJECT (arg->v_pointer) && g_object_is_floating (arg->v_pointer)) { g_object_ref (arg->v_pointer); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/gi/pyginterface.c new/pygobject-3.42.2/gi/pyginterface.c --- old/pygobject-3.42.1/gi/pyginterface.c 2022-04-17 14:33:47.588015300 +0200 +++ new/pygobject-3.42.2/gi/pyginterface.c 2022-04-24 11:48:47.624746600 +0200 @@ -85,15 +85,21 @@ } g_type_set_qdata(gtype, pyginterface_type_key, type); - + PyDict_SetItemString(dict, (char *)class_name, (PyObject *)type); - + } void pyg_register_interface_info(GType gtype, const GInterfaceInfo *info) { - g_type_set_qdata(gtype, pyginterface_info_key, (gpointer) info); + GInterfaceInfo *prev_info = pyg_lookup_interface_info (gtype); + + if (prev_info) { + g_free (prev_info); + } + + g_type_set_qdata(gtype, pyginterface_info_key, g_memdup2 (info, sizeof(GInterfaceInfo))); } const GInterfaceInfo * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/meson.build new/pygobject-3.42.2/meson.build --- old/pygobject-3.42.1/meson.build 2022-04-17 14:33:47.592015500 +0200 +++ new/pygobject-3.42.2/meson.build 2022-04-24 11:48:47.624746600 +0200 @@ -1,5 +1,5 @@ project('pygobject', 'c', - version : '3.42.1', + version : '3.42.2', meson_version : '>= 0.47.0', default_options : [ 'warning_level=1', 'buildtype=debugoptimized']) @@ -136,6 +136,10 @@ cdata.set('PYGOBJECT_MINOR_VERSION', pygobject_version_minor) cdata.set('PYGOBJECT_MICRO_VERSION', pygobject_version_micro) +if gio_dep.version().version_compare('< 2.67.4') + cdata.set('g_memdup2(ptr,sz)', '(G_LIKELY(((guint64)(sz)) < G_MAXUINT)) ? g_memdup(ptr,sz) : (g_abort(),NULL)') +endif + configure_file(output : 'config.h', configuration : cdata) pkgconf = configuration_data() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/pyproject.toml new/pygobject-3.42.2/pyproject.toml --- old/pygobject-3.42.1/pyproject.toml 2022-04-17 14:33:47.592015500 +0200 +++ new/pygobject-3.42.2/pyproject.toml 2022-07-16 14:11:35.930966900 +0200 @@ -1,6 +1,6 @@ [tool.poetry] name = "PyGObject" -version = "3.42.1" +version = "3.42.2" description = "Python bindings for GObject Introspection" authors = ["Christoph Reiter"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/setup.py new/pygobject-3.42.2/setup.py --- old/pygobject-3.42.1/setup.py 2022-04-17 14:33:47.592015500 +0200 +++ new/pygobject-3.42.2/setup.py 2022-04-24 11:48:47.624746600 +0200 @@ -22,7 +22,6 @@ import errno import subprocess import tarfile -import sysconfig import tempfile import posixpath @@ -37,7 +36,7 @@ from distutils.spawn import find_executable -PYGOBJECT_VERSION = "3.42.1" +PYGOBJECT_VERSION = "3.42.2" GLIB_VERSION_REQUIRED = "2.56.0" GI_VERSION_REQUIRED = "1.56.0" PYCAIRO_VERSION_REQUIRED = "1.16.0" @@ -827,7 +826,9 @@ pkg_config_name = "py3cairo" min_version = get_version_requirement(pkg_config_name) - min_version_info = tuple(int(p) for p in min_version.split(".")) + + def parse_version(string): + return tuple(int(p) for p in string.split(".")) def check_path(include_dir): log.info("pycairo: trying include directory: %r" % include_dir) @@ -843,61 +844,44 @@ if check_path(p): return p - def find_new_api(): - log.info("pycairo: new API") - import cairo - - if cairo.version_info < min_version_info: - raise DistutilsSetupError( - "pycairo >= %s required, %s found." % ( - min_version, ".".join(map(str, cairo.version_info)))) - - if hasattr(cairo, "get_include"): - return [cairo.get_include()] - log.info("pycairo: no get_include()") - return [] + def find_python(): + """This tries to find the pycairo module without importing it""" - def find_old_api(): - log.info("pycairo: old API") + from importlib.util import find_spec - import cairo + # Find the module path + spec = find_spec("cairo") + if spec is None: + log.info("pycairo: cairo module not found via importlib") + return [] + package_path = os.path.dirname(spec.origin) - if cairo.version_info < min_version_info: - raise DistutilsSetupError( - "pycairo >= %s required, %s found." % ( - min_version, ".".join(map(str, cairo.version_info)))) - - location = os.path.dirname(os.path.abspath(cairo.__path__[0])) - log.info("pycairo: found %r" % location) - - def get_sys_path(location, name): - # Returns the sysconfig path for a distribution, or None - for scheme in sysconfig.get_scheme_names(): - for path_type in ["platlib", "purelib"]: - path = sysconfig.get_path(path_type, scheme) - try: - if os.path.samefile(path, location): - return sysconfig.get_path(name, scheme) - except EnvironmentError: - pass + # With Python 3.8 we can also check the package version + try: + from importlib.metadata import distribution, PackageNotFoundError + except ImportError: + # Python <3.8 + pass + else: + try: + d = distribution("pycairo") + except PackageNotFoundError: + log.info("pycairo: pycairo distribution not found via importlib") + else: + if parse_version(d.version) < parse_version(min_version): + raise DistutilsSetupError( + "pycairo >= %s required, %s found (%s)." % ( + min_version, d.version, package_path)) - data_path = get_sys_path(location, "data") or sys.prefix - return [os.path.join(data_path, "include", "pycairo")] + return [os.path.join(package_path, 'include')] def find_pkg_config(): log.info("pycairo: pkg-config") pkg_config_version_check(pkg_config_name, min_version) return pkg_config_parse("--cflags-only-I", pkg_config_name) - # First the new get_include() API added in >1.15.6 - include_dir = find_path(find_new_api()) - if include_dir is not None: - return include_dir - - # Then try to find it in the data prefix based on the module path. - # This works with many virtualenv/userdir setups, but not all apparently, - # see https://gitlab.gnome.org/GNOME/pygobject/issues/150 - include_dir = find_path(find_old_api()) + # First look in the current Python installation/venv + include_dir = find_path(find_python()) if include_dir is not None: return include_dir @@ -1034,6 +1018,11 @@ /* Configuration header created by setup.py - do not edit */ #ifndef _CONFIG_H #define _CONFIG_H 1 +#include <glib.h> + +#if !GLIB_CHECK_VERSION(2, 67, 4) +#define g_memdup2(ptr,sz) (G_LIKELY(((guint64)(sz)) < G_MAXUINT)) ? g_memdup(ptr,sz) : (g_abort(),NULL) +#endif #define PYGOBJECT_MAJOR_VERSION %(PYGOBJECT_MAJOR_VERSION)s #define PYGOBJECT_MINOR_VERSION %(PYGOBJECT_MINOR_VERSION)s diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/subprojects/gobject-introspection.wrap new/pygobject-3.42.2/subprojects/gobject-introspection.wrap --- old/pygobject-3.42.1/subprojects/gobject-introspection.wrap 2022-04-17 14:33:47.592015500 +0200 +++ new/pygobject-3.42.2/subprojects/gobject-introspection.wrap 2022-04-17 14:56:46.315493800 +0200 @@ -2,5 +2,5 @@ directory=gobject-introspection url=https://gitlab.gnome.org/GNOME/gobject-introspection.git push-url=g...@gitlab.gnome.org:GNOME/gobject-introspection.git -revision=master +revision=main depth=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/tests/__init__.py new/pygobject-3.42.2/tests/__init__.py --- old/pygobject-3.42.1/tests/__init__.py 2022-04-17 14:33:47.592015500 +0200 +++ new/pygobject-3.42.2/tests/__init__.py 2022-04-24 11:33:06.401488000 +0200 @@ -6,8 +6,24 @@ import warnings +def set_dll_search_path(): + # Python 3.8 no longer searches for DLLs in PATH, so we have to add + # everything in PATH manually. Note that unlike PATH add_dll_directory + # has no defined order, so if there are two cairo DLLs in PATH we + # might get a random one. + if os.name != "nt" or not hasattr(os, "add_dll_directory"): + return + for p in os.environ.get("PATH", "").split(os.pathsep): + try: + os.add_dll_directory(p) + except OSError: + pass + + def init_test_environ(): + set_dll_search_path() + def dbus_launch_session(): if os.name == "nt" or sys.platform == "darwin": return (-1, "") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/tests/test_gi.py new/pygobject-3.42.2/tests/test_gi.py --- old/pygobject-3.42.1/tests/test_gi.py 2022-04-17 14:33:47.592015500 +0200 +++ new/pygobject-3.42.2/tests/test_gi.py 2022-04-24 11:32:56.852718000 +0200 @@ -920,7 +920,6 @@ result = list(CONSTANT_UCS4) assert GIMarshallingTests.array_unichar_out() == result - @unittest.skip("broken") def test_array_zero_terminated_return_unichar(self): assert GIMarshallingTests.array_zero_terminated_return_unichar() == \ list(CONSTANT_UCS4) @@ -1601,7 +1600,6 @@ gc.collect() assert obj.__grefcount__ == grefcount - @unittest.skipIf(platform.python_implementation() == "PyPy", "fixme") def test_gvalue_gobject_ref_counts(self): # Tests a GObject held by a GValue obj = GObject.Object() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.42.1/tests/test_gtype_instance.py new/pygobject-3.42.2/tests/test_gtype_instance.py --- old/pygobject-3.42.1/tests/test_gtype_instance.py 1970-01-01 01:00:00.000000000 +0100 +++ new/pygobject-3.42.2/tests/test_gtype_instance.py 2022-04-24 11:31:37.216944000 +0200 @@ -0,0 +1,8 @@ + +import pytest +from gi.repository import Regress + + +def test_fundamental_type_instantiation_fails(): + with pytest.raises(TypeError, match="No means to translate argument or return value for 'RegressTestFundamentalSubObject'"): + Regress.TestFundamentalSubObject.new("data")