[avogadro/f14/master: 5/6] Sync from devel:

Kevin Kofler kkofler at fedoraproject.org
Tue Nov 23 20:58:02 UTC 2010


commit 1c10639f708e2c314a71a3010ea1d8bfb2a9421c
Author: Kevin Kofler <Kevin at tigcc.ticalc.org>
Date:   Tue Nov 23 21:57:41 2010 +0100

    Sync from devel:
    
    * Tue Nov 23 2010 Kevin Kofler <Kevin at tigcc.ticalc.org> - 1.0.1-10
    - fix crash with current SIP and Python 2.7 (#642248)
    
    * Wed Sep 29 2010 jkeating - 1.0.1-9
    - Rebuilt for gcc bug 634757
    
    * Tue Sep 14 2010 Kevin Kofler <Kevin at tigcc.ticalc.org> - 1.0.1-8
    - fix FTBFS with SIP 4.11 (Gentoo#335644)
    
    * Thu Sep 09 2010 Rex Dieter <rdieter at fedoraproject.org> - 1.0.1-7
    - rebuild(sip)

 avogadro-1.0.1-pycapsule.patch |   23 +++++++++++++++++++++++
 avogadro-1.0.1-sip411.patch    |   34 ++++++++++++++++++++++++++++++++++
 avogadro.spec                  |   21 +++++++++++++++++++--
 3 files changed, 76 insertions(+), 2 deletions(-)
---
diff --git a/avogadro-1.0.1-pycapsule.patch b/avogadro-1.0.1-pycapsule.patch
new file mode 100644
index 0000000..de4e2ca
--- /dev/null
+++ b/avogadro-1.0.1-pycapsule.patch
@@ -0,0 +1,23 @@
+--- avogadro-1.0.1/libavogadro/src/python/sip.cpp	2010-05-02 17:31:22.000000000 +0100
++++ avogadro-1.0.1-pycapsule/libavogadro/src/python/sip.cpp	2010-11-23 19:00:09.000000000 +0000
+@@ -62,12 +62,20 @@ bool init_sip_api()
+     return false;
+   }
+   
++#ifdef SIP_USE_PYCAPSULE
++  if (!PyCapsule_IsValid(sip_capi_obj.ptr(), "sip._C_API")) {
++#else
+   if (!PyCObject_Check(sip_capi_obj.ptr())) {
++#endif
+     std::cout << "The _C_API object in the sip python module is invalid." << std::endl;
+     return false;
+   }
+ 
++#ifdef SIP_USE_PYCAPSULE
++  sip_API = reinterpret_cast<const sipAPIDef*>(PyCapsule_GetPointer(sip_capi_obj.ptr(), "sip._C_API"));
++#else
+   sip_API = reinterpret_cast<const sipAPIDef*>(PyCObject_AsVoidPtr(sip_capi_obj.ptr()));
++#endif
+ 
+   return true;
+ }
diff --git a/avogadro-1.0.1-sip411.patch b/avogadro-1.0.1-sip411.patch
new file mode 100644
index 0000000..0cd1e5b
--- /dev/null
+++ b/avogadro-1.0.1-sip411.patch
@@ -0,0 +1,34 @@
+diff -ur avogadro-1.0.1/cmake/modules/PythonDeps.cmake avogadro-1.0.1-sip411/cmake/modules/PythonDeps.cmake
+--- avogadro-1.0.1/cmake/modules/PythonDeps.cmake	2010-05-02 18:31:22.000000000 +0200
++++ avogadro-1.0.1-sip411/cmake/modules/PythonDeps.cmake	2010-09-14 19:11:50.000000000 +0200
+@@ -59,10 +59,13 @@
+   if (EXISTS ${PYTHON_INCLUDE_PATH}/sip.h)
+     message(STATUS "Found sip.h header...")
+     execute_process(COMMAND sip -V OUTPUT_VARIABLE SIP_VERSION)
+-    if (${SIP_VERSION} VERSION_GREATER "4.8")
++    if (NOT ${SIP_VERSION} VERSION_LESS "4.11")
++      message(STATUS "using sip version 4.11 or above...")
++      add_definitions( -DSIP_4_11 -DSIP_4_8 )
++    elseif (NOT ${SIP_VERSION} VERSION_LESS "4.8")
+       message(STATUS "using sip version 4.8 or above...")
+       add_definitions( -DSIP_4_8 )
+-    endif (${SIP_VERSION} VERSION_GREATER "4.8")
++    endif (NOT ${SIP_VERSION} VERSION_LESS "4.11")
+   else (EXISTS ${PYTHON_INCLUDE_PATH}/sip.h)
+     message(STATUS "sip.h header NOT found - Python support disabled")
+   #  message(STATUS "debian/ubuntu: install the python-sip4-dev package.")
+diff -ur avogadro-1.0.1/libavogadro/src/python/sip.cpp avogadro-1.0.1-sip411/libavogadro/src/python/sip.cpp
+--- avogadro-1.0.1/libavogadro/src/python/sip.cpp	2010-05-02 18:31:22.000000000 +0200
++++ avogadro-1.0.1-sip411/libavogadro/src/python/sip.cpp	2010-09-14 19:13:31.000000000 +0200
+@@ -204,7 +204,11 @@
+     sipWrapper *wrapper = reinterpret_cast<sipWrapper*>(obj_ptr);
+ #endif
+     // return the C++ pointer
++#ifdef SIP_4_11
++    return sip_API->api_get_address(wrapper);
++#else
+     return wrapper->u.cppPtr;
++#endif
+   }
+     
+   QClass_converters()
diff --git a/avogadro.spec b/avogadro.spec
index 2914ad2..ce559e5 100644
--- a/avogadro.spec
+++ b/avogadro.spec
@@ -5,13 +5,19 @@
 
 Name:           avogadro
 Version:        1.0.1
-Release:        6%{?dist}.1
+Release:        10%{?dist}
 Summary:        An advanced molecular editor for chemical purposes
 
 Group:          Applications/Editors
 License:        GPLv2
 URL:            http://avogadro.openmolecules.net/
 Source0:        http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2
+# fix FTBFS with SIP 4.11 (Gentoo#335644)
+# patch submitted: http://bugs.gentoo.org/attachment.cgi?id=247308 (upstream is
+# CCed on the Gentoo bug)
+Patch0:         avogadro-1.0.1-sip411.patch
+# fix crash with current SIP and Python 2.7 (#642248)
+Patch1:         avogadro-1.0.1-pycapsule.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:  cmake >= 2.6.0
@@ -59,6 +65,8 @@ Avogadros libraries.
 
 %prep
 %setup -q
+%patch0 -p1 -b .sip411
+%patch1 -p1 -b .pycapsule
 
 # nuke unpatched copy, use working version included in cmake instead -- Rex
 rm -f cmake/modules/FindPythonLibs.cmake
@@ -138,9 +146,18 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
-* Wed Sep 29 2010 jkeating - 1.0.1-6.1
+* Tue Nov 23 2010 Kevin Kofler <Kevin at tigcc.ticalc.org> - 1.0.1-10
+- fix crash with current SIP and Python 2.7 (#642248)
+
+* Wed Sep 29 2010 jkeating - 1.0.1-9
 - Rebuilt for gcc bug 634757
 
+* Tue Sep 14 2010 Kevin Kofler <Kevin at tigcc.ticalc.org> - 1.0.1-8
+- fix FTBFS with SIP 4.11 (Gentoo#335644)
+
+* Thu Sep 09 2010 Rex Dieter <rdieter at fedoraproject.org> - 1.0.1-7
+- rebuild(sip)
+
 * Sun Aug 22 2010 Kevin Kofler <Kevin at tigcc.ticalc.org> - 1.0.1-6
 - -devel: Requires: glew-devel python-devel boost-devel
 


More information about the scm-commits mailing list