Package: stimfit
Version: 0.13.15-1
Severity: important
Tags: patch
Tags: sid jessie
User: freewx-ma...@lists.alioth.debian.org
Usertags: wx3.0 wxpy3.0
Control: block 748169 by -1
Control: block 755757 by -1

We're aiming to migrate the archive to using wxwidgets3.0/wxpython3.0
instead of wxwidgets2.8, and hope to drop wxwidgets2.8 before jessie
is released.

Upstream, stimfit supports wx3.0, but it looks like there's a problem
with this support under wxGTK - when __WXGTK__ is defined,
src/stimfit/gui/app.cpp calls:

    wxMenuBar* menu_bar = CreateUnifiedMenuBar();

This defaults the doc parameter to NULL, and if wxCHECK_VERSION(2, 9, 0)
is true (which it is for wx >= 2.9.0) we then try to call a method on
doc, which segfaults:

    ((wxStfDoc*)doc)->SetFileMenu( file_menu );

I've added a simple fix for this, though it may not be the best way to
address this.  But with the patch, I can run stimfit, and it starts up
OK and I can open a few dialogs.  I don't have suitable data to actually
test much functionality though.

I'm happy to NMU this change if you wish me to - just let me know.

Cheers,
    Olly
diff -Nru stimfit-0.13.15/debian/changelog stimfit-0.13.15/debian/changelog
--- stimfit-0.13.15/debian/changelog	2014-02-17 02:23:17.000000000 +1300
+++ stimfit-0.13.15/debian/changelog	2014-08-07 09:42:21.000000000 +1200
@@ -1,3 +1,10 @@
+stimfit (0.13.15-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Update to use wxWidgets 3.0 - new patch: wx3.0-compat.patch
+
+ -- Olly Betts <o...@survex.com>  Thu, 07 Aug 2014 09:42:05 +1200
+
 stimfit (0.13.15-1) unstable; urgency=low
 
   * Fix half duration limits bug
diff -Nru stimfit-0.13.15/debian/control stimfit-0.13.15/debian/control
--- stimfit-0.13.15/debian/control	2014-02-17 02:23:17.000000000 +1300
+++ stimfit-0.13.15/debian/control	2014-08-07 09:14:27.000000000 +1200
@@ -3,13 +3,13 @@
 Priority: optional
 Maintainer: Christoph Schmidt-Hieber <chris...@gmx.de>
 Uploaders: Yaroslav Halchenko <deb...@onerussian.com>
-Build-Depends: debhelper (>= 7), libboost-dev (>= 1.40.0), python-all-dev (>= 2.6.6-3), python-numpy, libhdf5-dev, swig, python-wxgtk2.8 (>= 2.8.9), libwxgtk2.8-dev (>= 2.8.9), libfftw3-dev, liblapack-dev, chrpath, help2man, libbiosig-dev, libsuitesparse-dev, dh-autoreconf
+Build-Depends: debhelper (>= 7), libboost-dev (>= 1.40.0), python-all-dev (>= 2.6.6-3), python-numpy, libhdf5-dev, swig, python-wxgtk3.0, python-wxgtk3.0-dev, libwxgtk3.0-dev, libfftw3-dev, liblapack-dev, chrpath, help2man, libbiosig-dev, libsuitesparse-dev, dh-autoreconf
 Standards-Version: 3.9.4
 Homepage: http://www.stimfit.org
 
 Package: stimfit
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, libbiosig-dev, libsuitesparse-dev, python-wxgtk2.8 (>= 2.8.9), python-numpy, python-matplotlib
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, libbiosig-dev, libsuitesparse-dev, python-wxgtk3.0, python-numpy, python-matplotlib
 Recommends: python-scipy
 Description: Program for viewing and analyzing electrophysiological data
  Stimfit is a free, fast and simple program for viewing and analyzing
diff -Nru stimfit-0.13.15/debian/patches/series stimfit-0.13.15/debian/patches/series
--- stimfit-0.13.15/debian/patches/series	1970-01-01 12:00:00.000000000 +1200
+++ stimfit-0.13.15/debian/patches/series	2014-08-07 09:39:02.000000000 +1200
@@ -0,0 +1 @@
+wx3.0-compat.patch
diff -Nru stimfit-0.13.15/debian/patches/wx3.0-compat.patch stimfit-0.13.15/debian/patches/wx3.0-compat.patch
--- stimfit-0.13.15/debian/patches/wx3.0-compat.patch	1970-01-01 12:00:00.000000000 +1200
+++ stimfit-0.13.15/debian/patches/wx3.0-compat.patch	2014-08-07 09:42:00.000000000 +1200
@@ -0,0 +1,22 @@
+Description: Fix build with wx3.0 under __WXGTK__
+ While stimfit has been ported to wx3.0, it seems this hasn't been tested
+ under __WXGTK__ as there doc is always NULL in wxStfApp::CreateUnifiedMenuBar
+ but we try to call methods on it for wx >= 2.9.0.
+ .
+ I don't understand the reason for all the conditionalisation on __WXGTK__,
+ __WXMSW__ etc, so this may not be the best fix, but it seems to work.
+Author: Olly Betts <o...@survex.com>
+Forwarded: no
+Last-Update: 2014-08-06
+
+--- stimfit-0.13.15.orig/src/stimfit/gui/app.cpp
++++ stimfit-0.13.15/src/stimfit/gui/app.cpp
+@@ -605,7 +605,7 @@ wxMenuBar *wxStfApp::CreateUnifiedMenuBa
+     file_menu->AppendSeparator();
+     file_menu->Append(wxID_EXIT);
+ 
+-#if (wxCHECK_VERSION(2, 9, 0))
++#if !defined __WXGTK__ && (wxCHECK_VERSION(2, 9, 0))
+     ((wxStfDoc*)doc)->SetFileMenu( file_menu );
+ #else
+     GetDocManager()->FileHistoryLoad( *config );

Reply via email to