Bug report #3562

QGIS incompatible with QWT 6.0.0

Added by marisn - over 8 years ago. Updated over 7 years ago.

Status:Closed
Priority:Low
Assignee:-
Category:Build/Install
Affected QGIS version:master Regression?:No
Operating System:All Easy fix?:No
Pull Request or Patch supplied:No Resolution:fixed
Crashes QGIS or corrupts data:No Copied to github as #:13622

Description

QGIS r15378

Gentoo ~AMD64

equery l '*qwt*'
* Searching for *qwt* ...
[IP-] [  ] dev-python/pyqwt-5.2.0:5
[IP-] [  ] x11-libs/qwt-6.0.0_rc5:5

[ 36%] Building CXX object src/app/CMakeFiles/qgis.dir/qgisapp.cpp.o                                          
In file included from /home/maris/soft/qgis_trunk/src/app/gps/qgsgpsinformationwidget.h:27:0,                 
                 from /home/maris/soft/qgis_trunk/src/app/qgisapp.cpp:121:
/home/maris/soft/qgis_trunk/src/app/gps/qwtpolar/qwt_polar_plot.h:14:33: fatal error: qwt_double_interval.h: No such file or directory
compilation terminated.

convert_qwtarray_to_qvector.diff Magnifier (990 Bytes) Thomas Dziedzic, 2011-07-15 11:03 AM

History

#1 Updated by Volker Fröhlich over 8 years ago

I'll try to build with my external Qwtpolar in the evening.

I think you should report that to Qwtpolar upstream though.

#2 Updated by marisn - over 8 years ago

Replying to [comment:1 volter]:

I'll try to build with my external Qwtpolar in the evening.

I think you should report that to Qwtpolar upstream though.

This is the reason why You should not clone code. Qwtpolar is just fine, it's QGIS bundled clone out of sync.

Just fast googling reveals this file without any references to "qwt_double_interval.h": http://qwtpolar.svn.sourceforge.net/viewvc/qwtpolar/trunk/qwtpolar/src/qwt_polar_plot.h?revision=103&view=markup

#3 Updated by Volker Fröhlich over 8 years ago

Now we only need to find packagers for Qwtpolar for all distris besides Fedora, as well as include it in the Windows installer. :)

It is prepared inside QGIS since .

#4 Updated by Volker Fröhlich over 8 years ago

Also the last released upstream version of Qwtpolar does not build with Qwt 6.0.

PyQwt as well won't build with Qwt 6.0.

Therefore I think this shouldn't be seen as a QGIS bug.

#5 Updated by marisn - over 8 years ago

Replying to [comment:4 volter]:

Also the last released upstream version of Qwtpolar does not build with Qwt 6.0.

PyQwt as well won't build with Qwt 6.0.

Therefore I think this shouldn't be seen as a QGIS bug.

Force with You is strong, but those are not the droids You are looking for.
  • Qwt 6.0.0 is starting to appear on user machines;
  • For some time there will be systems with Qwt 6.0 and 5.x around (depending on distro packaging policy);
  • If 6.0 is unsupported, QGIS configure system (cmake) should detect incompatible version and refuse to do anything.

#7 Updated by Thomas Dziedzic about 8 years ago

since this seems to have been fixed in qwtpolar upstream,
can we get this fixed in qgis?

I'm currently experiencing this bug in archlinux.

#8 Updated by Thomas Dziedzic about 8 years ago

I have built qwtpolar-svn (an external package) against qwt 6.0.0 successfully but there still seems to be issues that need to be worked out.

I have fixed the missing qwt_array.h header error by replacing all QwtArray declarations to QVector types since qwt_array was just a wrapper for QVector anyways.
I have attached the patch that does this.

Now I am getting the following errors:
[ 47%] Building CXX object src/app/CMakeFiles/qgis.dir/qgsrasterlayerproperties.cpp.o
/build/src/qgis-1.7.0/src/app/qgsrasterlayerproperties.cpp: In member function 'void QgsRasterLayerProperties::refreshHistogram()':
/build/src/qgis-1.7.0/src/app/qgsrasterlayerproperties.cpp:1861:11: error: 'class QwtPlot' has no member named 'clear'
/build/src/qgis-1.7.0/src/app/qgsrasterlayerproperties.cpp:1933:43: error: no matching function for call to 'QwtPlotCurve::setData(QVector<double>&, QVector<double>&)'
/build/src/qgis-1.7.0/src/app/qgsrasterlayerproperties.cpp:1933:43: note: candidate is:
/usr/include/qwt/qwt_plot_seriesitem.h:146:6: note: void QwtPlotSeriesItem<T>::setData(QwtSeriesData<T>*) [with T = QPointF]
/usr/include/qwt/qwt_plot_seriesitem.h:146:6: note: candidate expects 1 argument, 2 provided
/build/src/qgis-1.7.0/src/app/qgsrasterlayerproperties.cpp: In member function 'void QgsRasterLayerProperties::on_mSaveAsImageButton_clicked()':
/build/src/qgis-1.7.0/src/app/qgsrasterlayerproperties.cpp:1968:3: error: 'QwtPlotPrintFilter' was not declared in this scope
/build/src/qgis-1.7.0/src/app/qgsrasterlayerproperties.cpp:1968:22: error: expected ';' before 'myFilter'
/build/src/qgis-1.7.0/src/app/qgsrasterlayerproperties.cpp:1969:19: error: 'QwtPlotPrintFilter' is not a class or namespace
/build/src/qgis-1.7.0/src/app/qgsrasterlayerproperties.cpp:1970:17: error: 'QwtPlotPrintFilter' is not a class or namespace
/build/src/qgis-1.7.0/src/app/qgsrasterlayerproperties.cpp:1971:16: error: 'QwtPlotPrintFilter' is not a class or namespace
/build/src/qgis-1.7.0/src/app/qgsrasterlayerproperties.cpp:1972:3: error: 'myFilter' was not declared in this scope
/build/src/qgis-1.7.0/src/app/qgsrasterlayerproperties.cpp:1974:11: error: 'class QwtPlot' has no member named 'print'
make2: * [src/app/CMakeFiles/qgis.dir/qgsrasterlayerproperties.cpp.o] Error 1
make1: *
[src/app/CMakeFiles/qgis.dir/all] Error

#9 Updated by Thomas Dziedzic about 8 years ago

I could not find an obvious replacement for clear() and QwtPlotPrintFilter, but setData should be easily replaced with setSamples

#10 Updated by Giovanni Manghi almost 8 years ago

  • Target version changed from Version 1.7.0 to Version 1.7.4

#11 Updated by Jürgen Fischer over 7 years ago

  • Assignee deleted (nobody -)
  • Resolution set to fixed
  • Pull Request or Patch supplied set to No
  • Crashes QGIS or corrupts data set to No
  • Affected QGIS version set to master
  • Status changed from Open to Closed

apparently fixed in f71ecb90b ff

Also available in: Atom PDF