rpms/pygobject2/devel pygobject2-2.16.1-fix-classic-class-crash.patch, NONE, 1.1 pygobject2.spec, 1.48, 1.49

Matthew Barnes mbarnes at fedoraproject.org
Wed Apr 22 21:27:42 UTC 2009


Author: mbarnes

Update of /cvs/pkgs/rpms/pygobject2/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv31790

Modified Files:
	pygobject2.spec 
Added Files:
	pygobject2-2.16.1-fix-classic-class-crash.patch 
Log Message:

* Wed Apr 22 2009 Matthew Barnes <mbarnes at redhat.com> - 2.16.1-4.fc11
- Add patch for GNOME bug #566571 (classic vs new-style inheritance crash).


pygobject2-2.16.1-fix-classic-class-crash.patch:

--- NEW FILE pygobject2-2.16.1-fix-classic-class-crash.patch ---
diff -up pygobject-2.16.1/gobject/gobjectmodule.c.fix-classic-class-crash pygobject-2.16.1/gobject/gobjectmodule.c
--- pygobject-2.16.1/gobject/gobjectmodule.c.fix-classic-class-crash	2009-02-20 16:48:29.000000000 -0500
+++ pygobject-2.16.1/gobject/gobjectmodule.c	2009-04-22 16:23:21.000000000 -0400
@@ -1079,16 +1079,20 @@ pyg_type_add_interfaces(PyTypeObject *cl
 
     for (i = 0; i < PyTuple_GET_SIZE(bases); ++i) {
         guint k;
-        PyTypeObject *base = (PyTypeObject *) PyTuple_GET_ITEM(bases, i);
+        PyObject *base = PyTuple_GET_ITEM(bases, i);
         GType itype;
         gboolean is_new = TRUE;
         const GInterfaceInfo *iinfo;
         GInterfaceInfo iinfo_copy;
 
-        if (!PyType_IsSubtype(base, &PyGInterface_Type))
+        /* 'base' can also be a PyClassObject, see bug #566571. */
+        if (!PyType_Check(base))
             continue;
 
-        itype = pyg_type_from_object((PyObject *) base);
+        if (!PyType_IsSubtype((PyTypeObject*) base, &PyGInterface_Type))
+            continue;
+
+        itype = pyg_type_from_object(base);
 
         /* Happens for _implementations_ of an interface. */
         if (!G_TYPE_IS_INTERFACE(itype))
@@ -1109,7 +1113,7 @@ pyg_type_add_interfaces(PyTypeObject *cl
             gchar *error;
             error = g_strdup_printf("Interface type %s "
                                     "has no Python implementation support",
-                                    base->tp_name);
+                                    ((PyTypeObject *) base)->tp_name);
             PyErr_Warn(PyExc_RuntimeWarning, error);
             g_free(error);
             continue;


Index: pygobject2.spec
===================================================================
RCS file: /cvs/pkgs/rpms/pygobject2/devel/pygobject2.spec,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- pygobject2.spec	26 Feb 2009 20:00:16 -0000	1.48
+++ pygobject2.spec	22 Apr 2009 21:27:10 -0000	1.49
@@ -4,11 +4,17 @@
 %define glib2_version           2.16.0
 %define python2_version         2.3.5
 
+# XXX Disable this and use "make <my-real-arch>" instead of
+#     "make local" when building locally to avoid avoid the
+#     "Arch dependent binaries in noarch package" error.
+#     Added in Fedora 11, hopefully only temporarily.
+%define noarch_docs 0
+
 ### Abstract ###
 
 Name: pygobject2
 Version: 2.16.1
-Release: 3%{?dist}
+Release: 4%{?dist}
 License: LGPLv2+
 Group: Development/Languages
 Summary: Python bindings for GObject
@@ -18,6 +24,9 @@
 
 ### Patches ###
 
+# GNOME bug #566571
+Patch1: pygobject2-2.16.1-fix-classic-class-crash.patch
+
 ### Build Dependencies ###
 
 BuildRequires: automake
@@ -52,13 +61,16 @@
 %package doc
 Summary: Documentation files for %{name}
 Group: Development/Languages
+%if %{noarch_docs}
 BuildArch: noarch
+%endif
 
 %description doc
 This package contains documentation files for %{name}.
 
 %prep
 %setup -q -n pygobject-%{version}
+%patch1 -p1 -b .fix-classic-class-crash
 
 %build
 %configure --enable-thread
@@ -113,6 +125,9 @@
 %{_datadir}/pygobject/xsl
 
 %changelog
+* Wed Apr 22 2009 Matthew Barnes <mbarnes at redhat.com> - 2.16.1-4.fc11
+- Add patch for GNOME bug #566571 (classic vs new-style inheritance crash).
+
 * Thu Feb 26 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.16.1-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
 




More information about the fedora-extras-commits mailing list