Package: python-qwt5-qt4
Version: 5.2.1~cvs20091107+dfsg-3+b1

Error message :
python: /build/buildd-sip4-qt3_4.10.2-1-i386-SoYLd5/sip4-qt3-4.10.2/siplib/siplib.c :2600 : sip_api_parse_result: L'assertion « assign_helper != ((void *)0) » a échoué.

I think is it the same bug of the number 613506.
In this mail the python code from 613506 bug to reproduce the bug.
I have recompile package : python-qwt5-qt4, python-qt4 the bug not disappear.



Package dependance version :
ludo@nenuial:~$ aptitude show python-qwt5-qt4
Paquet : python-qwt5-qt4
État: installé
Automatiquement installé: non
Version : 5.2.1~cvs20091107+dfsg-3+b1
Priorité : optionnel
Section : python
Responsable : Gudjon I. Gudjonsson <[email protected]>
Taille décompressée : 3 564 k
Dépend: libc6 (>= 2.1.3), libgcc1 (>= 1:4.1.1), libqt4-svg (>= 4:4.5.3), libqtcore4 (>= 4:4.6.1), libqtgui4 (>= 4:4.5.3), libqwt5-qt4 (>= 5.2.0), libstdc++6 (>= 4.1.1),
         python (< 2.7), python (>= 2.5), python-support (>= 0.90.0), python-qt4 
(>= 4.7.3), sip-api-7.1, python-numpy
Recommande: libqwt5-qt4-dev
Description : Python version of the Qwt5 technical widget library
PyQwt is a set of Python bindings for the Qwt C++ class library which extends the Qt framework with widgets for scientific and engineering applications. It provides a
 widget to plot 2-dimensional data and various widgets to display and control 
bounded or unbounded floating point values.

 This version is compiled against Qt, version 4.
Site : http://pyqwt.sourceforge.net/




Kernel :
ludo@nenuial:~$ uname -a
Linux nenuial 2.6.32-5-686 #1 SMP Mon Jun 13 04:13:06 UTC 2011 i686 GNU/Linux



LibC :
ludo@nenuial:~$ dpkg -s libc6 | grep ^Version
Version: 2.11.2-10



Python :
ludo@nenuial:~$ python --version
Python 2.6.6




Reportbug against python-qwt5-qt4 :
ludo@nenuial:~$ reportbug -q --template -T none -s none -S normal -b --list-cc 
none -q python-qwt5-qt4
Detected character set: UTF-8
Please change your locale if this is incorrect.

Using 'ludovic mercier <[email protected]>' as your from address.
Getting status for python-qwt5-qt4...
Will send report to Debian (per lsb_release).
Maintainer for python-qwt5-qt4 is 'Gudjon I. Gudjonsson <[email protected]>'.
Looking up dependencies of python-qwt5-qt4...

Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: ludovic mercier <[email protected]>
To: Debian Bug Tracking System <[email protected]>
Subject: none
X-Debbugs-Cc: none

Package: python-qwt5-qt4
Version: 5.2.1~cvs20091107+dfsg-3+b1
Severity: normal



-- System Information:
Debian Release: 6.0.2
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-686 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages python-qwt5-qt4 depends on:
ii  libc6                 2.11.2-10          Embedded GNU C Library: Shared lib
ii  libgcc1               1:4.4.5-8          GCC support library
ii  libqt4-svg            4:4.6.3-4+squeeze1 Qt 4 SVG module
ii  libqtcore4            4:4.6.3-4+squeeze1 Qt 4 core module
ii  libqtgui4             4:4.6.3-4+squeeze1 Qt 4 GUI module
ii  libqwt5-qt4           5.2.0-1            Qt4 widgets library for technical
ii  libstdc++6            4.4.5-8            The GNU Standard C++ Library v3
ii  python                2.6.6-3+squeeze6   interactive high-level object-orie
ii  python-numpy          1:1.4.1-5          Numerical Python adds a fast array
ii  python-qt4            4.7.3-1+b1         Python bindings for Qt4
ii  python-sip [sip-api-7 4.10.2-1           Python/C++ bindings generator runt
ii  python-support        1.0.10             automated rebuilding support for P

Versions of packages python-qwt5-qt4 recommends:
ii  libqwt5-qt4-dev               5.2.0-1    Qt4 widgets library for technical

python-qwt5-qt4 suggests no packages.

-- no debconf information

If you want to provide additional information, please wait to receive the bug tracking number via email; you may then send any extra information to [email protected] (e.g. [email protected]), where n is the bug number. Normally you will receive an acknowledgement via email including the bug report number within an hour; if you haven't received a confirmation, then the bug reporting process failed at some point (reportbug or MTA failure, BTS maintenance, etc.).
ludo@nenuial:~$


'''
This code checks if a known bug in some PyQwt versions affects your installation.
Simply run this script and see the diagnosis in the std output.

If you are affected, the solution is to install/compile a newer version of PyQwt/SIP 

Notably, the python-qwt5-qt4 package originally shipped with 
Ubuntu 10.10 is affected

In some systems, the bug produces a segfault while in some others it 
produces an Assertion error similar to the following:
python: /build/buildd/sip4-qt3-4.10.5/siplib/siplib.c:2600: sip_api_parse_result: Assertion `assign_helper != ((void *)0)' failed.

See also: 
https://bugs.launchpad.net/ubuntu/+source/pyqwt5/+bug/672509
http://www.esrf.eu/mail_archives/tango/archive/msg04025.html
'''

from PyQt4 import Qt, Qwt5

class MyScaleDrawSafe(Qwt5.QwtScaleDraw):
    def __init__(self, format = None, palette = None):
        Qwt5.QwtScaleDraw.__init__(self)

class MyScaleDrawDanger(Qwt5.QwtScaleDraw):
    def __init__(self, format = None, palette = None):
        Qwt5.QwtScaleDraw.__init__(self)

    def label(self, val):
        return Qwt5.QwtScaleDraw.label(self, val)


class MyPlot(Qwt5.QwtPlot):
    def __init__(self, parent = None, designMode = False):
        Qwt5.QwtPlot.__init__(self, parent)
        self.setAxisScaleDraw(Qwt5.QwtPlot.xBottom, MyScaleDrawSafe())
        print "Replotting with MyScaleDrawSafe:..."
        self.replot() 
        print "ok"
        self.setAxisScaleDraw(Qwt5.QwtPlot.xBottom, MyScaleDrawDanger())
        print "Replotting with MyScaleDrawDanger (if it crashes now you are affected by the bug) :..."
        self.replot() 
        print "SAFE!!!"
        print "if this is printed, the sip/PyQwt bug does not affect you"

app=Qt.QApplication([])
p=MyPlot()
p.show()

Reply via email to