Skip to content
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

rqt packages do not install ( Qt related ) #11

Open
jf--- opened this issue Jan 11, 2014 · 14 comments
Open

rqt packages do not install ( Qt related ) #11

jf--- opened this issue Jan 11, 2014 · 14 comments

Comments

@jf---
Copy link

jf--- commented Jan 11, 2014

The readme is really clear, perhaps its an idea to open an issue as a placeholder to discuss what is keeping things from compiling. Is the plan to make ROS work with the vanilla (Py)Qt(4.10) that macport installs?

@venabled
Copy link
Collaborator

That's a good question. Your stated goal is the end goal for the project, I'd love to have everything work with the least amount of extra dependencies. I haven't had a lot of time to debug most of the qt stuff, I was trying a little bit yesterday but was having some issues.

If anyone has some time to look into it, I'd really appreciate it. Right now the ports compile and run, but theres two issues:

1 - Missing icons, which I've seen addressed
2 - rqt_graph has some issues with finding pydot through GraphViz python bindings. I was messing around with this yesterday and didn't have more time to work on it.

@jf---
Copy link
Author

jf--- commented Jan 11, 2014

Good news Don, those are issues that I can help out with ( i was assuming it be more related to compiling issues ). Thanks for narrowing down the scope / the update.

@venabled
Copy link
Collaborator

No they all build, they're just not all functional :/

Here's what I have built:

  ros-hydro-rqt_action @1.0.0_0 (active)
  ros-hydro-rqt_bag @1.0.0_0 (active)
  ros-hydro-rqt_bag_plugins @1.0.0_0 (active)
  ros-hydro-rqt_console @1.0.0_0 (active)
  ros-hydro-rqt_dep @1.0.0_0 (active)
  ros-hydro-rqt_graph @1.0.0_0 (active)
  ros-hydro-rqt_gui @1.0.0_0 (active)
  ros-hydro-rqt_gui_cpp @1.0.0_0 (active)
  ros-hydro-rqt_gui_py @1.0.0_0 (active)
  ros-hydro-rqt_logger_level @1.0.0_0 (active)
  ros-hydro-rqt_msg @1.0.0_0 (active)
  ros-hydro-rqt_py_common @1.0.0_0 (active)

They probably need additional / the correct dependencies.

Some other info here:

And RQT graph complains a bit about pydot, even though I have it installed.

@jf---
Copy link
Author

jf--- commented Jan 11, 2014

still, I'm thrilled to hear so, definetly more than 1/2 the battle...
thanks for the detailed info, that's very motivating...

@jf---
Copy link
Author

jf--- commented Jan 12, 2014

alright, I'm seeing the same pydot error... catching up with you Don

@jf---
Copy link
Author

jf--- commented Jan 12, 2014

This fixes the issue ( problem with the pyparsing dependency )
http://stackoverflow.com/questions/15951748/pydot-and-graphviz-error-couldnt-import-dot-parser-loading-of-dot-files-will

screenshot 2014-01-12 10 57 10

I'm not familiar with macports too much I'm afraid.
How would you go about dealing with the issue of explicitely setting the pyparsing 1.5.7 dependency?

@venabled
Copy link
Collaborator

Do do so we need to have it parsed out in our macports-generator branch of the code. I'm not sure we have great documentation on that, but if you check out that branch you might get a feel for how we generate the portfiles. We basically take a list from one of their 'releases' (which are unfortunately always moving) and we have template files we generate the ports from. We have a list of dependencies for non-ros packages that we'd have to add pypasring to.

@venabled
Copy link
Collaborator

@jf--- is there a specific port that needs to be installed?

@kyonifer
Copy link
Owner

So it looks like we need to revert py27-parsing to 1.5. We can fix this fairly easily, with the caveat that other packages will be exposed to the outdated version. The easiest way is probably to make a ros-parsing package building 1.5 and have this conflict with the py27-parsing package. That way if you have another port that needs 2.x you will at least be aware that rqt conflicts with that other package.

I'll try and grab some time to write the 1.5 port soon.

@jf---
Copy link
Author

jf--- commented Jan 24, 2014

that's it indeed. I'm using the last 1.5.* pyparsing version, 1.5.7

@kyonifer
Copy link
Owner

The immediate issue that comes up is that matplotlib depends on the 2.x port, so replacing it with a ros-py27-parsing port of 1.5 will make matplotlib and ROS conflicting ports.

Two immediate solutions are
a) Provide our own matplotlib using pyparsing 1.5, which lets us go down a (really bad) rabbit hole and would cause a ton of dependencies to break everywhere
b) Install pyparsing 1.5 in parallel to 2.0 in an isolated directory, and rewrite the pydot port to use the isolated 1.5 files. Since pydot is relatively less popular, this is less likely to break other ports, or cause conflicts. We then have to get ros packages to recognize our patched version of pydot as a dependency, which we can do with rosdep instructions.

I'm wondering if there isn't a fix to this coming down the pipeline from either ROS packages or from the pydot developers to support the new pyparsing API. If so, it would make this temporary hack effort not worth it (@wjwwood would you happen to know of anything that fixes this from the ROS side of things?)

@venabled
Copy link
Collaborator

There's also come crazy stuff going on with rqt_image_view, specifically interactions between boost and QT's MOC for some of the auto generated QT code. Not sure if @smits or @kyonifer have any good ideas / time to hack on it.

Edit: forgot to add my link to the issue I have open on the ros-visualization site:

ros-visualization/rqt_common_plugins#206

@wjwwood
Copy link

wjwwood commented Mar 14, 2014

@venabled That sounds like an issue that I fixed for rviz a while back: ros-visualization/rviz#589

@venabled
Copy link
Collaborator

Yeah I think it's really similar, I just haven't had the cycles to figure out which #includes to wrap with the workaround code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants