Bug 1204451

Summary: EPEL7 package request - PyQwt
Product: [Fedora] Fedora EPEL Reporter: markusN <neteler>
Component: PyQwtAssignee: Tadej Janež <tadej.j>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel7CC: cz172638, davejohansen, tadej.j
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-23 12:15:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description markusN 2015-03-22 06:51:30 UTC
In order to compile QGIS (http://koji.fedoraproject.org/koji/buildinfo?buildID=619601) on EPEL, the PyQwt is needed. It currently only
exists for EL6:
http://koji.fedoraproject.org/koji/packageinfo?packageID=7575

I tried to compile PyQwt-5.2.0-11.el6 myself using mock but I get

...
g++ -c -pipe -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2  -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -O2 -Wall -W -D_REENTRANT -DNDEBUG -DHAS_NUMPY -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_GUI_LIB -I. -I/usr/include/qwt -I/usr/include/python2.7 -I/usr/lib64/python2.7/site-packages/numpy/core/include -I/usr/lib64/qt4/mkspecs/default -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtSvg -I/usr/include -I/usr/X11R6/include -o sipQwtQwtWheel.o sipQwtQwtWheel.cpp
In file included from ../sip/qwt5qt4/QwtModule.sip:62:0,
                 from sipQwtcmodule.cpp:7:
./qwt_numerical_interface.h:37:23: fatal error: qwt_array.h: No such file or directory
 #include <qwt_array.h>
                       ^
compilation terminated.
In file included from ../sip/qwt5qt4/QwtModule.sip:62:0,
                 from sipQwtQVector0100QwtDoubleInterval.cpp:7:
./qwt_numerical_interface.h:37:23: fatal error: qwt_array.h: No such file or directory
 #include <qwt_array.h>
                       ^
compilation terminated.
...

compilation terminated.
In file included from ../sip/qwt5qt4/QwtModule.sip:62:0,
                 from sipQwtQList0101QwtPlotItem.cpp:7:
./qwt_numerical_interface.h:37:23: fatal error: qwt_array.h: No such file or directory
 #include <qwt_array.h>
                       ^
compilation terminated.
make[1]: *** [sipQwtcmodule.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [sipQwtQList0100QRect.o] Error 1
make[1]: *** [sipQwtQVector0100QwtDoubleInterval.o] Error 1
make[1]: *** [sipQwtQStack0100QRectF.o] Error 1
make[1]: *** [sipQwtQVector0100QwtEventPatternKeyPattern.o] Error 1
make[1]: *** [sipQwtQVector0100QwtEventPatternMousePattern.o] Error 1
make[1]: *** [sipQwtQList0101QwtPlotItem.o] Error 1
make[1]: *** [sipQwtQwtWheel.o] Error 1
make[1]: Leaving directory `/builddir/build/BUILD/PyQwt-5.2.0/configure/qwt5qt4'
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.M5t03i (%build)

I am not experienced enough to fix this absence of qwt_array.h.

Comment 1 Jiri Kastner 2015-03-23 10:23:34 UTC
i compiled qgis 2.8 without pyqwt

Comment 2 Jiri Kastner 2015-03-23 10:31:49 UTC
the compilation error above says: "pyqwt is not updated to qwt6".

Comment 3 markusN 2015-03-23 11:23:35 UTC
(In reply to Jiri Kastner from comment #1)
> i compiled qgis 2.8 without pyqwt

Ah interesting! So I'll try to modify qgis' SPEC file since I need an RPM.

Comment 4 Tadej Janež 2015-03-23 12:12:10 UTC
Hi markusN,

I'm the maintainer of PyQwt in Fedora and EPEL6.

I was approached with the same request by Dave Johansen 3 months ago when he tried to package QGIS.

I found out that until a recent revival attempt (from ~3 months ago) (https://github.com/PyQwt), PyQwt was dead for a long time. Last release (v5.2.0) is from 2009. Its original author, Gerard Vermeulen, publicly discouraged its use and recommended PyQtGraph on the mailing list (http://sourceforge.net/p/pyqwt/mailman/message/30507558/).
Another problem is that PyQwt has no support for Qwt6. Gerard attempted to write initial Qwt6 bindings but found the design of Qwt6 too complex (http://sourceforge.net/p/pyqwt/mailman/message/29802199/).

I'm not familiar with QGIS so I briefly skimmed through its developer documentation and searched for Qwt/PyQwt. 
I found the following:

"5.4.9. Additional dependencies: Qwt

The GPS tracking feature uses Qwt.
NOTE: PyQwt is not compatible with PyQt 4.9, so we will skip that.
Download the latest Qwt 6.0 source (6.1 does not work with the QwtPolar
in QGIS) from: http://sourceforge.net/projects/qwt"

(source: http://htmlpreview.github.io/?https://github.com/qgis/QGIS/blob/master/doc/INSTALL.html#toc20)

So, if I understand this correctly, QGIS uses Qwt 6.0, which is incompatible with PyQwt. Additionally, PyQwt is incompatible with PyQt 4.9.

Dave sent an email to the QGIS mailing list: http://lists.osgeo.org/pipermail/qgis-developer/2014-December/036112.html, but haven't received a response.

Based on the above, I think that the best solution at the moment is to remove the functionality that depends on PyQwt from QGIS.

Comment 5 Tadej Janež 2015-03-23 12:15:00 UTC
As explained in comment #4, PyQwt is dead since 2009 and the recent revival attempt doesn't contain any new commits.

Hence, I'm closing this bug as WONTFIX.