-
Notifications
You must be signed in to change notification settings - Fork 913
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
CRITICAL BUG: proper escaping for ROS_PACKAGE_NAME definition #245
Conversation
I could not reproduce any problem - it seems to work fine for me for several existing packages. You mentioned that it "sometimes" ends up breaking everything. Can you please provide a reproducible scenario where that happens? |
It was happening on multiple machines, and the build commands were definitely not escaping quotes for some packages. Does my patch not properly escape the quotes? |
You patch looks absolutely fine. But before merging anything I usually try to reproduce the issue before, apply the patch and reproduce that it fixes the issue. |
What's the easiest way to send you a 5.3MB tarball of my workspace? |
If the workspace contains only checkout repos without modifications than a |
The workspace contains (currently) closed-source code, I'm trying to remove all the information now. |
Requires ros groovy: - git: {local-name: control_toolbox, uri: '[email protected]:ros-controls/control_toolbox.git',
version: 605efb4}
- git: {local-name: intuitive_research_kit, uri: '[email protected]:jbohren/rosconsole_broken_minimal_example.git',
version: 02e0c43}
- git: {local-name: realtime_tools, uri: '[email protected]:ros-controls/realtime_tools.git',
version: 19b5e34}
- git: {local-name: ros_control, uri: '[email protected]:ros-controls/ros_control.git',
version: db0f479}
- git: {local-name: ros_controllers, uri: '[email protected]:ros-controls/ros_controllers.git',
version: bde2c57}
- git: {local-name: gazebo_ros_pkgs, uri: '[email protected]:ros-simulation/gazebo_ros_pkgs.git',
version: c508961} What happens on my system is that when it gets to irk_gazebo_plugins, you see these errors (and more like them):
If I run with
As you see above, the build command incorrectly passes the command-line argument |
I guess you workspace depends on a non-ROS gazebo installation. Which of version of the gazebo project have you installed? |
Gazebo |
So here's something strange, when building with my patch, I see this cmake warning:
I didn't see this before because every package is also showing the warning referenced here: ros/catkin#452 |
|
This looks like a duplicate of ros/catkin#452 than. Your package might specify a too old required version. |
Yeah, that's what it looks like. So CMake's minimum required version isn't just a minimum required version, but changes the behavior of CMake. |
Indeed - another non-intuitive detail of CMake. |
Seriously. |
force policy before setting pp definition to ensure correct escaping (#245)
Switch button usage per ros#231
force policy before setting pp definition to ensure correct escaping (ros#245)
Without this, sometimes this ends up as (for a packange named
foo_pkg
):-DROS_PACKAGE_NAME="foo_pkg"
Which breaks everything, since on the command line this needs to be the following so that the quotes end up in the variable:
-DROS_PACKAGE_NAME=\"foo_pkg\"
See this cmake thread here: http://www.cmake.org/pipermail/cmake/2007-June/014611.html
It looks like the old rosbuild method used to use single quotes:
ROS_PACKAGE_NAME='"foo"'