[gobject-introspection] add fix for PPC failure, bugzilla 749604

Karsten Hopp karsten at fedoraproject.org
Mon Dec 5 11:02:38 UTC 2011


commit f62622e527beb3e10f271f88e63642583ce379c2
Author: Karsten Hopp <karsten at redhat.com>
Date:   Mon Dec 5 11:42:34 2011 +0100

    add fix for PPC failure, bugzilla 749604
    
    Conflicts:
    
    	gobject-introspection.spec

 gobject-introspection-1.30.0-749604.patch |   83 +++++++++++++++++++++++++++++
 gobject-introspection.spec                |    8 +++
 2 files changed, 91 insertions(+), 0 deletions(-)
---
diff --git a/gobject-introspection-1.30.0-749604.patch b/gobject-introspection-1.30.0-749604.patch
new file mode 100644
index 0000000..69d61b2
--- /dev/null
+++ b/gobject-introspection-1.30.0-749604.patch
@@ -0,0 +1,83 @@
+diff -up gobject-introspection-1.30.0/girepository/girffi.c.enum-fixes gobject-introspection-1.30.0/girepository/girffi.c
+--- gobject-introspection-1.30.0/girepository/girffi.c.enum-fixes	2011-11-29 12:30:04.759106057 -0600
++++ gobject-introspection-1.30.0/girepository/girffi.c	2011-11-29 11:06:26.540248521 -0600
+@@ -30,16 +30,10 @@
+ #include "girepository.h"
+ #include "girepository-private.h"
+ 
+-/**
+- * gi_type_tag_get_ffi_type:
+- * @tag: A #GITypeTag
+- * @is_pointer: Whether or not this is a pointer type
+- *
+- * Returns: A #ffi_type corresponding to the platform default C ABI for @tag and @is_pointer.
+- */
+-ffi_type *
+-gi_type_tag_get_ffi_type (GITypeTag   tag,
+-			  gboolean    is_pointer)
++static ffi_type *
++gi_type_tag_get_ffi_type_internal (GITypeInfo *info,
++                                   GITypeTag   tag,
++                                   gboolean    is_pointer)
+ {
+   switch (tag)
+     {
+@@ -77,12 +71,27 @@ gi_type_tag_get_ffi_type (GITypeTag   ta
+     case GI_TYPE_TAG_UTF8:
+     case GI_TYPE_TAG_FILENAME:
+     case GI_TYPE_TAG_ARRAY:
+-    case GI_TYPE_TAG_INTERFACE:
+     case GI_TYPE_TAG_GLIST:
+     case GI_TYPE_TAG_GSLIST:
+     case GI_TYPE_TAG_GHASH:
+     case GI_TYPE_TAG_ERROR:
+       return &ffi_type_pointer;
++    case GI_TYPE_TAG_INTERFACE:
++      {
++        /* This is for compat, but is broken! */
++        if (info == NULL)
++          return &ffi_type_pointer;
++
++        GIBaseInfo *interface = g_type_info_get_interface (info);
++        switch (g_base_info_get_type (interface))
++          {
++	      case GI_INFO_TYPE_ENUM:
++	      case GI_INFO_TYPE_FLAGS:
++            return &ffi_type_sint32;
++          default:
++            return &ffi_type_pointer;
++          }
++      }
+     case GI_TYPE_TAG_VOID:
+       if (is_pointer)
+         return &ffi_type_pointer;
+@@ -96,6 +105,20 @@ gi_type_tag_get_ffi_type (GITypeTag   ta
+ }
+ 
+ /**
++ * gi_type_tag_get_ffi_type:
++ * @tag: A #GITypeTag
++ * @is_pointer: Whether or not this is a pointer type
++ *
++ * Returns: A #ffi_type corresponding to the platform default C ABI for @tag and @is_pointer.
++ */
++ffi_type *
++gi_type_tag_get_ffi_type (GITypeTag   tag,
++			  gboolean    is_pointer)
++{
++  return gi_type_tag_get_ffi_type_internal (NULL, tag, is_pointer);
++}
++
++/**
+  * g_type_info_get_ffi_type:
+  * @info: A #GITypeInfo
+  *
+@@ -104,7 +127,7 @@ gi_type_tag_get_ffi_type (GITypeTag   ta
+ ffi_type *
+ g_type_info_get_ffi_type (GITypeInfo *info)
+ {
+-  return gi_type_tag_get_ffi_type (g_type_info_get_tag (info), g_type_info_is_pointer (info));
++  return gi_type_tag_get_ffi_type_internal (info, g_type_info_get_tag (info), g_type_info_is_pointer (info));
+ }
+ 
+ /**
diff --git a/gobject-introspection.spec b/gobject-introspection.spec
index 1268a0d..b04e7a0 100644
--- a/gobject-introspection.spec
+++ b/gobject-introspection.spec
@@ -11,6 +11,7 @@ License:        GPLv2+, LGPLv2+, MIT
 URL:            http://live.gnome.org/GObjectIntrospection
 #VCS:           git:git://git.gnome.org/gobject-introspection
 Source0:        http://download.gnome.org/sources/gobject-introspection/1.31/%{name}-%{version}.tar.xz
+Patch0:         gobject-introspection-1.30.0-749604.patch
 
 Obsoletes:      gir-repository
 
@@ -54,6 +55,7 @@ Libraries and headers for gobject-introspection
 
 %prep
 %setup -q
+%patch0 -p1 -b .538194
 
 %build
 (if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi;
@@ -94,6 +96,9 @@ find $RPM_BUILD_ROOT -type f -name "*.a" -exec rm -f {} ';'
 %{_datadir}/gtk-doc/html/gi/*
 
 %changelog
+* Mon Dec 05 2011 Karsten Hopp <karsten at redhat.com> 1.31.0-2
+- add fix for PPC failure, bugzilla 749604
+
 * Wed Nov 16 2011 Colin Walters <walters at verbum.org> - 1.31.0-2
 - -devel package requires libtool
   https://bugzilla.redhat.com/show_bug.cgi?id=613466
@@ -101,6 +106,9 @@ find $RPM_BUILD_ROOT -type f -name "*.a" -exec rm -f {} ';'
 * Wed Nov  2 2011 Matthias Clasen <mclasen at redhat.com> - 1.31.0-1
 - Update to 1.31.0
 
+* Mon Sep 26 2011 Ray <rstrode at redhat.com> - 1.30.0-1
+- Update to 1.30.0
+
 * Tue Sep 20 2011 Matthias Clasen <mclasen at redhat.com> - 1.30.0-1
 - Update to 1.30.0
 


More information about the scm-commits mailing list