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")

Reply via email to