Bug report #12550

Error compiling Globe Plugin with osgEarth 2.6

Added by Samuel Fernando Mesa Giraldo over 5 years ago. Updated about 4 years ago.

Status:Closed
Priority:Normal
Assignee:Pirmin Kalberer
Category:C++ plugins/Globe
Affected QGIS version:2.8.1 Regression?:No
Operating System:Linux Easy fix?:No
Pull Request or Patch supplied:No Resolution:
Crashes QGIS or corrupts data:No Copied to github as #:20692

Description

I was unable successfully compile osgEarth to support the Globe plugin, because it requires some headers that do not exist.

QGIS with osgEarth version 2.5 not find osgEarth/FindNode:

/home/samtux/Manjaro/aur/qgis/src/qgis/src/plugins/globe/osgEarthUtil/Controls.cpp:21:29: error fatal: osgEarth/FindNode: No existe el fichero o el directorio
 #include <osgEarth/FindNode>
                             ^
compilación terminada.
src/plugins/globe/CMakeFiles/globeplugin.dir/build.make:170: fallo en las instrucciones para el objetivo 'src/plugins/globe/CMakeFiles/globeplugin.dir/osgEarthUtil/Controls.cpp.o'
make[2]: *** [src/plugins/globe/CMakeFiles/globeplugin.dir/osgEarthUtil/Controls.cpp.o] Error 1
CMakeFiles/Makefile2:2570: fallo en las instrucciones para el objetivo 'src/plugins/globe/CMakeFiles/globeplugin.dir/all'
make[1]: *** [src/plugins/globe/CMakeFiles/globeplugin.dir/all] Error 2
make[1]: *** Se espera a que terminen otras tareas....

QGIS with osgEarth version 2.6 not find osgEarthUtil/SkyNode:

/home/samtux/Manjaro/aur/qgis/src/qgis/src/plugins/globe/globe_plugin.cpp:60:32: error fatal: osgEarthUtil/SkyNode: No existe el fichero o el directorio
 #include <osgEarthUtil/SkyNode>
                                ^
compilación terminada.
src/plugins/globe/CMakeFiles/globeplugin.dir/build.make:78: fallo en las instrucciones para el objetivo 'src/plugins/globe/CMakeFiles/globeplugin.dir/globe_plugin.cpp.o'
make[2]: *** [src/plugins/globe/CMakeFiles/globeplugin.dir/globe_plugin.cpp.o] Error 1
CMakeFiles/Makefile2:2570: fallo en las instrucciones para el objetivo 'src/plugins/globe/CMakeFiles/globeplugin.dir/all'
make[1]: *** [src/plugins/globe/CMakeFiles/globeplugin.dir/all] Error 2
make[1]: *** Se espera a que terminen otras tareas....

I have achieved to install QGIS with Globe plugin with an older version of osgEarth v2.1.1 (2011). This version contains all headers required to compile QGIS globe plugin. However, an error occurs when starting QGIS and closes with the following message:

$ qgis
Warning: QGraphicsScene::addItem: item has already been added to this scene
Violación de segmento (`core' generado)

To correct the error I remove the Globe plugin of /usr/lib/qgis/plugins/libglobeplugin.so. However, I can not accomplish install the Globe plugin in QGIS.

History

#1 Updated by Giovanni Manghi about 5 years ago

  • Target version changed from Version 2.8.1 to Version 2.8.2

#2 Updated by Giovanni Manghi about 5 years ago

  • Target version changed from Version 2.8.2 to Version 2.10

#3 Updated by Bas Couwenberg almost 5 years ago

osgEarth 2.7 has been released, see: http://docs.osgearth.org/en/latest/releasenotes.html#version-2-7-july-2015

It would be nice if we could finally move away from osgEarth 2.5 in Debian without having to disable the Globe plugin.

#4 Updated by Pirmin Kalberer almost 5 years ago

  • Target version changed from Version 2.10 to Version 2.12

Hi Samuel & Bas,

My colleague Sandro has a branch with many globe enhancements and fixes including support for newer OSGEarth versions. He will hopefully merge that into master for 2.12.

#5 Updated by Giovanni Manghi over 4 years ago

  • Target version deleted (Version 2.12)

#6 Updated by Bas Couwenberg over 4 years ago

It seems the support for newer osgEarth versions hasn't found its way into QGIS 2.14.

Will it be included in 2.16?

Would it help if Debian and Ubuntu move to osgEarth 2.7 to have it more easily available for testing?

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

Bas Couwenberg wrote:

Would it help if Debian and Ubuntu move to osgEarth 2.7 to have it more easily available for testing?

Broken nightlies are a high motivation to me ;)

#8 Updated by Bas Couwenberg over 4 years ago

Jürgen Fischer wrote:

Bas Couwenberg wrote:

Would it help if Debian and Ubuntu move to osgEarth 2.7 to have it more easily available for testing?

Broken nightlies are a high motivation to me ;)

Alright, I'll move osgEarth 2.7 to Debian unstable along with QGIS 2.14 (without globe plugin) after GDAL 2.0.2 and its rebuilt reverse dependencies have migrated to testing. This should happen next week.

#9 Updated by Pirmin Kalberer over 4 years ago

The globe is getting production ready in our branch soon. We decided to go for OsgEarth 2.7, so using 2.7 on Debian is a good decision. We've built 2.7 for OSGeo4W 64bit and if Jürgen gives us a hint how we can contribute it, we'll do that.

#10 Updated by Jürgen Fischer over 4 years ago

Pirmin Kalberer wrote:

The globe is getting production ready in our branch soon. We decided to go for OsgEarth 2.7, so using 2.7 on Debian is a good decision. We've built 2.7 for OSGeo4W 64bit and if Jürgen gives us a hint how we can contribute it, we'll do that.

https://trac.osgeo.org/osgeo4w/wiki/PackagingInstructions. Packaging recipe for osgearth 2.4 and osgearth 2.4 (note openscenegraph is at 3.1.7)

#11 Updated by Bas Couwenberg over 4 years ago

osgEarth 2.7 has been uploaded to Debian unstable. This happened a bit sooner than expected, because the transition to QWT 6.1 started today for which QGIS 2.14 will be moved to unstable tomorrow.

#12 Updated by Jürgen Fischer over 4 years ago

Bas Couwenberg wrote:

osgEarth 2.7 has been uploaded to Debian unstable. This happened a bit sooner than expected, because the transition to QWT 6.1 started today for which QGIS 2.14 will be moved to unstable tomorrow.

6327558 should build with osgEarth 2.7

#13 Updated by Bas Couwenberg over 4 years ago

Jürgen Fischer wrote:

6327558 should build with osgEarth 2.7

I've included that commit as a patch in the Debian package, and can confirm that it builds with osgEarth 2.7.

#14 Updated by Bas Couwenberg over 4 years ago

Launching the globe plugin causes a segfault:

[osgEarth]* WARNING: Failed to load terrain engine driver for "mp" 
[osgEarth]* FAILED to create a terrain engine for this map

Program received signal SIGSEGV, Segmentation fault.
0x00007fff66b0b9b0 in osgEarth::SpatialReference::getEllipsoid() const () from /usr/lib/libosgEarth.so.5
(gdb) bt
#0  0x00007fff66b0b9b0 in osgEarth::SpatialReference::getEllipsoid() const () at /usr/lib/libosgEarth.so.5
#1  0x00007fff66a702e6 in osgEarth::MapNode::init() () at /usr/lib/libosgEarth.so.5
#2  0x00007fff66a741a0 in osgEarth::MapNode::MapNode(osgEarth::Map*, osgEarth::MapNodeOptions const&) () at /usr/lib/libosgEarth.so.5
#3  0x00007fff6820901c in GlobePlugin::setupMap() ([email protected]=0x1d245d0) at /build/qgis-Syz_7a/qgis-2.14.0+dfsg0/src/plugins/globe/globe_plugin.cpp:480
#4  0x00007fff6820a138 in GlobePlugin::run() (this=0x1d245d0) at /build/qgis-Syz_7a/qgis-2.14.0+dfsg0/src/plugins/globe/globe_plugin.cpp:340
#5  0x00007fff68222b05 in GlobePlugin::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /build/qgis-Syz_7a/qgis-2.14.0+dfsg0/debian/build/src/plugins/globe/moc_globe_plugin.cxx:100
#6  0x00007ffff4e270c0 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007ffff4155912 in QAction::triggered(bool) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#8  0x00007ffff4156c73 in QAction::activate(QAction::ActionEvent) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#9  0x00007ffff45b545d in  () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#10 0x00007ffff45b9849 in  () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#11 0x00007ffff41b2190 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#12 0x00007ffff45bdacb in QMenu::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#13 0x00007ffff415b8dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#14 0x00007ffff41629d6 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#15 0x00007ffff56bfeab in QgsApplication::notify(QObject*, QEvent*) (this=0x7fffffffdc70, receiver=0x2205e00, event=0x7fffffffcf70) at /build/qgis-Syz_7a/qgis-2.14.0+dfsg0/src/core/qgsapplication.cpp:281
#16 0x00007ffff4e129dd in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#17 0x00007ffff4161fdd in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#18 0x00007ffff41dd92c in  () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#19 0x00007ffff41db96d in QApplication::x11ProcessEvent(_XEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#20 0x00007ffff4205982 in  () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#21 0x00007fffec926fd7 in g_main_context_dispatch (context=0x8b7890) at /build/glib2.0-2.46.2/./glib/gmain.c:3154
#22 0x00007fffec926fd7 in g_main_context_dispatch ([email protected]=0x8b7890) at /build/glib2.0-2.46.2/./glib/gmain.c:3769
#23 0x00007fffec927230 in g_main_context_iterate ([email protected]=0x8b7890, [email protected]=1, [email protected]=1, self=<optimized out>) at /build/glib2.0-2.46.2/./glib/gmain.c:3840
#24 0x00007fffec9272dc in g_main_context_iteration (context=0x8b7890, may_block=1) at /build/glib2.0-2.46.2/./glib/gmain.c:3901
#25 0x00007ffff4e43304 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#26 0x00007ffff4205a56 in  () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#27 0x00007ffff4e11251 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#28 0x00007ffff4e115c5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#29 0x00007ffff4e17599 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#30 0x0000000000406ad4 in main(int, char**) (argc=2, argv=<optimized out>) at /build/qgis-Syz_7a/qgis-2.14.0+dfsg0/src/app/main.cpp:1238

#15 Updated by Samuel Fernando Mesa Giraldo about 4 years ago

Thanks Jürgen!!! It works correctly, the Globe Plugin in QGIS 2.14 and osgEarth 2.7. Here a video tested in Arch Linux:

https://vimeo.com/165954149

Thanks for your great work

Bas Couwenberg wrote:

Jürgen Fischer wrote:

6327558 should build with osgEarth 2.7

I've included that commit as a patch in the Debian package, and can confirm that it builds with osgEarth 2.7.

#16 Updated by Samuel Fernando Mesa Giraldo about 4 years ago

  • Status changed from Open to Closed

Also available in: Atom PDF