File pygobject-capsule.patch of Package python-nautilus.import4337

diff --git a/src/nautilus-python.c b/src/nautilus-python.c
index d222140..69c63ee 100644
--- a/src/nautilus-python.c
+++ b/src/nautilus-python.c
@@ -48,19 +48,29 @@ np_init_pygobject(void)
     PyObject *gobject = PyImport_ImportModule("gobject");
     if (gobject != NULL)
     {
-        PyObject *mdict = PyModule_GetDict(gobject);
-        PyObject *cobject = PyDict_GetItemString(mdict, "_PyGObject_API");
-        if (PyCObject_Check(cobject))
-        {
-            _PyGObject_API = (struct _PyGObject_Functions *)PyCObject_AsVoidPtr(cobject);
-        }
-        else
-        {
-            PyErr_SetString(PyExc_RuntimeError,
-                            "could not find _PyGObject_API object");
-			PyErr_Print();
-			return FALSE;
-        }
+#ifdef Py_CAPSULE_H
+		void *capsule = PyCapsule_Import("gobject._PyGObject_API", 0);
+		if (capsule)
+		{
+			_PyGObject_API = (struct _PyGObject_Functions *)capsule;
+		}
+#endif
+		if (!_PyGObject_API)
+		{
+		    PyObject *mdict = PyModule_GetDict(gobject);
+		    PyObject *cobject = PyDict_GetItemString(mdict, "_PyGObject_API");
+		    if (PyCObject_Check(cobject))
+		    {
+		        _PyGObject_API = (struct _PyGObject_Functions *)PyCObject_AsVoidPtr(cobject);
+		    }
+		    else
+		    {
+		        PyErr_SetString(PyExc_RuntimeError,
+		                        "could not find _PyGObject_API object");
+				PyErr_Print();
+				return FALSE;
+		    }
+		}
     }
     else
     {
openSUSE Build Service is sponsored by