-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Resolve Consistent Qt Versions on Kinetic #11488
Comments
Hi, I fixed depth_image_proc and OpenCV3 so please correct the text above: OpenCV3 now uses whatever Qt that is deemed appropriate by VTK (that means Qt4 on Wily/jessie, Qt5 elewhere). I do not know of any RViz and OpenCV plugin, RViz and Qt plugin. But I do know of at least one rqt and OpenCV plugin: https://github.com/ros-visualization/rqt_common_plugins/blob/master/rqt_image_view/CMakeLists.txt#L5 So all seems good to me as long as we don't have an RViz or rqt plugin that pops up an OpenCV window (which would therefore not use the RViz or rqt infrastructure .... which would be insane). Anyway, to me, all looks good and we can probably remove the critical status, but we should definitely keep an eye open. |
Great, thanks. Testing today I can confirm that my Debian Jessie machine is running the nodelets as well. From: ros-perception/image_pipeline#196 However rviz crashes on startup. And rqt crashes on load of the image_view plugin. |
@tfoote do you have anything more substantial than rviz crashes? I don't see why it would be linked against both qt 4 and 5, as it doesn't use vtk or pcl. Also only the visualization part of pcl should be linked against vtk right? |
Here's what happens when I run rviz on Jessie.
|
Looks like ld is failing in |
@wjwwood here's the ldd output for both: https://gist.github.com/tfoote/2411ff3db32d401298bb473c71f52460 |
I setup a Jessie VM, and built rviz from source. Here is the link line for https://gist.github.com/wjwwood/cca1e64d4804334236d7879de31ad7d6 Qt 4 isn't in there, so I guess it is coming in from a dependency. I'll look at each of them. |
I think this might just be an overlinking issue, because I don't think image geometry needs the part of OpenCV that uses Qt and neither does |
Despite our discussion offline, I still see unaddressed problems on Jessie. pcl or gazebo will conflict with rviz or rqt or OpenCV3. Doesn't that mean that desktop-full will be uninstallable or at least unusable on Jessie? |
Qt 4 and Qt 5 are side-by-side installable and you can run/build programs which use each (separately), you just cannot have a single application which links against both Qt4/5. |
@vrabaud : Are your fixes on OpenCV3 available in the current version ? I may not have the latest version of opencv3 then, but just in case : the cvv module of opencv_contrib will be built and linked against Qt5 even with the cmake flag WITH_QT=4 (see the CMake file of the module). |
The find_object_2d package also crashes in Qt on Debian Jessie because of the issue:
|
This is mostly worked out. |
This is coming out of the ongoing discussion in: #11240 however that's a closed PR so can't be reopened.
Other tickets related include:
#10740
ros-perception/perception_pcl#44 (comment)
#10747
#10752
#11095
#11097
#11240
The high level problem is that we're building libraries which are unrunnable because they're linked against both Qt4 and Qt5. We also have run into problems with mutually exclusive rosdep which cause rosdep to fight back and forth installing conflicting dependencies. Such as: ros-perception/image_pipeline#196
Complicating this is that based on Xenial we want to have Qt5 be the default version since it's overdue to be deployed and that's what our LTS target supports.
Jessie:
Available:
Common libraries:
ROS libraries:
Wily:
Very similar to Jessie...
...
Xenial:
Available:
Common libraries:
ROS libraries:
Conflict
On Xenial everything is quite hunky dory, everything is Qt5 and things basically work. Except libgazebo7-dev which is not linked against many things except gazebo plugins.
However a package like depth_image_proc currently builds a nodelet which is linked against both qt4 and qt5 which leads to a segfault at load time. Any other package sufficiently high in the stack to have dependencies from both qt4 and qt5 will crash. For example rviz is currently crashing on startup too.
Potential solutions
There's many potential solutions I'm not sure what's the best approach.
Backport a lot to make qt5 everywhere?
Backport with different names
switch jessie and wily to Qt4.
Find some middle ground???
Other suggestions?
@jacquelinekay FYI tagged for kinetic
The text was updated successfully, but these errors were encountered: