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

ROS_ROOT set incorrectly in ROS Groovy #36

Closed
calderpg opened this issue Oct 2, 2013 · 3 comments
Closed

ROS_ROOT set incorrectly in ROS Groovy #36

calderpg opened this issue Oct 2, 2013 · 3 comments
Assignees

Comments

@calderpg
Copy link

calderpg commented Oct 2, 2013

In the latest debian packages for ROS Groovy (as of 2013-10-2) the environment variable ROS_ROOT is set incorrectly to /share/ros when it should be set to /opt/ros/groovy/share/ros. This breaks tab-completion for all ROS tools.

@dirk-thomas
Copy link
Member

The current Debian packages are working perfectly fine for me. So it is much more likely that the problem is specific to your system.

Have you made sure that all your packages are up-to-date? (e.g. using sudo apt-get update && sudo apt-get dist-upgrade)

Are you sourcing a catkin workspace with custom packages? Have you tried to recompile that workspace?

@calderpg
Copy link
Author

calderpg commented Oct 2, 2013

I literally just updated my system, which caused this problem to appear. To be sure, I've been able to repeat this problem on a number of my systems.

However, running catkin_make --force-cmake "fixes" the problem.

At the risk of sounding sharp, this is completely nonsensical behavior. Creating a situation in which a local workspace can unexpectedly break system-wide behavior is extremely dangerous. Understandably, some people will want to change the value of ROS_ROOT, but I can't see a reason to include this behavior in the standard workspace setup. At the very least, if possible, it should prevent ROS_ROOT from being set to nonsensical values.

@dirk-thomas
Copy link
Member

Since version 1.9.50 (2013-08-21) the ROS_ROOT environment variable is defined as follows:

export ROS_ROOT="$CATKIN_ENV_HOOK_WORKSPACE/share/ros"

This has been changed in order to support use cases demanded by the community (ros/catkin#490). Since your previously generated setup files do not yet define the variable CATKIN_ENV_HOOK_WORKSPACE the ROS_ROOT is incomplete.

I am sorry for your inconvenience - a rebuild of your workspace will update your setup files which will make it work again. I can only recommend doing that every time after you updated the ROS Debian packages since there is no guaranteed ABI compatibility.

If this case would have been noticed by anyone before (e.g. while the release was available in shadow-fixed for testing) we could have modified it to handle that case gracefully before it was available in the public repo. I will commit a patch for this soon. But this will only be effective when is has been released and being available in the public repo which will take several days.

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

2 participants