[ros-ros-comm] 06/16: Imported Upstream version 1.12.1
Leopold Palomo-Avellaneda
leo at alaxarxa.net
Fri May 20 21:20:30 UTC 2016
This is an automated email from the git hooks/post-receive script.
lepalom-guest pushed a commit to branch master
in repository ros-ros-comm.
commit afdea78482f1e632cedc4a2cc746a78bb38f13a0
Author: Leopold Palomo-Avellaneda <leopold.palomo at upc.edu>
Date: Tue May 17 15:24:39 2016 +0200
Imported Upstream version 1.12.1
---
clients/roscpp/CHANGELOG.rst | 4 +
clients/roscpp/CMakeLists.txt | 2 +-
clients/roscpp/package.xml | 2 +-
clients/rospy/CHANGELOG.rst | 3 +
clients/rospy/package.xml | 2 +-
ros_comm/CHANGELOG.rst | 3 +
ros_comm/package.xml | 2 +-
test/test_rosbag/CMakeLists.txt | 2 +-
.../test_rosbag/bag_migration_tests/CMakeLists.txt | 10 +-
test/test_rosbag/package.xml | 2 +-
test/test_rosbag_storage/package.xml | 2 +-
test/test_roscpp/CMakeLists.txt | 2 +-
test/test_roscpp/package.xml | 2 +-
test/test_rosgraph/package.xml | 2 +-
test/test_roslaunch/package.xml | 2 +-
test/test_roslib_comm/package.xml | 2 +-
test/test_rosmaster/package.xml | 2 +-
test/test_rosparam/package.xml | 2 +-
test/test_rospy/package.xml | 2 +-
test/test_rosservice/package.xml | 2 +-
test/test_rostopic/package.xml | 2 +-
tools/rosbag/CHANGELOG.rst | 5 +
tools/rosbag/CMakeLists.txt | 2 +-
tools/rosbag/package.xml | 2 +-
tools/rosbag/src/rosbag/bag.py | 10 +-
tools/rosbag_storage/CHANGELOG.rst | 4 +
tools/rosbag_storage/CMakeLists.txt | 2 +-
tools/rosbag_storage/package.xml | 2 +-
tools/rosconsole/CHANGELOG.rst | 4 +
tools/rosconsole/CMakeLists.txt | 2 +-
tools/rosconsole/package.xml | 2 +-
tools/rosgraph/CHANGELOG.rst | 4 +
tools/rosgraph/package.xml | 2 +-
tools/rosgraph/src/rosgraph/network.py | 14 ++-
tools/rosgraph/test/test_network.py | 13 +++
tools/roslaunch/CHANGELOG.rst | 4 +
tools/roslaunch/package.xml | 2 +-
tools/roslaunch/src/roslaunch/substitution_args.py | 110 +++++++++++++++------
.../roslaunch/test/unit/test_substitution_args.py | 28 +++++-
tools/roslaunch/test/unit/test_xmlloader.py | 14 +++
tools/roslaunch/test/xml/test-arg.xml | 25 ++++-
tools/roslaunch/test/xml/test-if-unless.xml | 33 +++++++
tools/rosmaster/CHANGELOG.rst | 4 +
tools/rosmaster/package.xml | 3 +-
tools/rosmaster/src/rosmaster/util.py | 4 +
tools/rosmsg/CHANGELOG.rst | 3 +
tools/rosmsg/package.xml | 2 +-
tools/rosnode/CHANGELOG.rst | 3 +
tools/rosnode/package.xml | 2 +-
tools/rosout/CHANGELOG.rst | 4 +
tools/rosout/CMakeLists.txt | 2 +-
tools/rosout/package.xml | 2 +-
tools/rosparam/CHANGELOG.rst | 3 +
tools/rosparam/package.xml | 2 +-
tools/rosservice/CHANGELOG.rst | 3 +
tools/rosservice/package.xml | 2 +-
tools/rostest/CHANGELOG.rst | 4 +
tools/rostest/cmake/rostest-extras.cmake.em | 1 +
tools/rostest/package.xml | 2 +-
tools/rostopic/CHANGELOG.rst | 3 +
tools/rostopic/package.xml | 2 +-
tools/topic_tools/CHANGELOG.rst | 4 +
tools/topic_tools/CMakeLists.txt | 2 +-
tools/topic_tools/package.xml | 2 +-
tools/topic_tools/src/drop.cpp | 1 -
utilities/message_filters/CHANGELOG.rst | 4 +
utilities/message_filters/CMakeLists.txt | 2 +-
utilities/message_filters/package.xml | 2 +-
utilities/roslz4/CHANGELOG.rst | 4 +
utilities/roslz4/CMakeLists.txt | 8 +-
utilities/roslz4/package.xml | 2 +-
utilities/roslz4/src/_roslz4module.c | 2 +
utilities/roswtf/CHANGELOG.rst | 3 +
utilities/roswtf/CMakeLists.txt | 4 +-
utilities/roswtf/package.xml | 2 +-
.../test/check_roswtf_command_line_online.py | 22 ++++-
.../test/test_roswtf_command_line_offline.py | 23 ++++-
utilities/xmlrpcpp/CHANGELOG.rst | 4 +
utilities/xmlrpcpp/CMakeLists.txt | 2 +-
utilities/xmlrpcpp/package.xml | 2 +-
80 files changed, 383 insertions(+), 101 deletions(-)
diff --git a/clients/roscpp/CHANGELOG.rst b/clients/roscpp/CHANGELOG.rst
index ad4a20c..1550a5a 100644
--- a/clients/roscpp/CHANGELOG.rst
+++ b/clients/roscpp/CHANGELOG.rst
@@ -2,6 +2,10 @@
Changelog for package roscpp
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* use directory specific compiler flags (`#785 <https://github.com/ros/ros_comm/pull/785>`_)
+
1.12.0 (2016-03-18)
-------------------
* improve TopicManager::instance (`#770 <https://github.com/ros/ros_comm/issues/770>`_)
diff --git a/clients/roscpp/CMakeLists.txt b/clients/roscpp/CMakeLists.txt
index c194a56..6331029 100644
--- a/clients/roscpp/CMakeLists.txt
+++ b/clients/roscpp/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.3)
project(roscpp)
if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra")
+ set_directory_properties(PROPERTIES COMPILE_OPTIONS "-std=c++11;-Wall;-Wextra")
endif()
find_package(catkin REQUIRED COMPONENTS
diff --git a/clients/roscpp/package.xml b/clients/roscpp/package.xml
index f5d08a4..fdd947a 100644
--- a/clients/roscpp/package.xml
+++ b/clients/roscpp/package.xml
@@ -1,6 +1,6 @@
<package>
<name>roscpp</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
roscpp is a C++ implementation of ROS. It provides
a <a href="http://www.ros.org/wiki/Client%20Libraries">client
diff --git a/clients/rospy/CHANGELOG.rst b/clients/rospy/CHANGELOG.rst
index 5dc38eb..4e5e35c 100644
--- a/clients/rospy/CHANGELOG.rst
+++ b/clients/rospy/CHANGELOG.rst
@@ -2,6 +2,9 @@
Changelog for package rospy
^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+
1.12.0 (2016-03-18)
-------------------
diff --git a/clients/rospy/package.xml b/clients/rospy/package.xml
index 7b8c415..5e1ad90 100644
--- a/clients/rospy/package.xml
+++ b/clients/rospy/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rospy</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
rospy is a pure Python client library for ROS. The rospy client
API enables Python programmers to quickly interface with ROS <a
diff --git a/ros_comm/CHANGELOG.rst b/ros_comm/CHANGELOG.rst
index 0a35df3..2908dd9 100644
--- a/ros_comm/CHANGELOG.rst
+++ b/ros_comm/CHANGELOG.rst
@@ -2,6 +2,9 @@
Changelog for package ros_comm
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+
1.12.0 (2016-03-18)
-------------------
diff --git a/ros_comm/package.xml b/ros_comm/package.xml
index ee0e7b7..c4771cf 100644
--- a/ros_comm/package.xml
+++ b/ros_comm/package.xml
@@ -1,6 +1,6 @@
<package>
<name>ros_comm</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
ROS communications-related packages, including core client libraries (roscpp, rospy) and graph introspection tools (rostopic, rosnode, rosservice, rosparam).
</description>
diff --git a/test/test_rosbag/CMakeLists.txt b/test/test_rosbag/CMakeLists.txt
index 5c8b3ef..41f60b4 100644
--- a/test/test_rosbag/CMakeLists.txt
+++ b/test/test_rosbag/CMakeLists.txt
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8.3)
project(test_rosbag)
if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
+ set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Wextra")
endif()
find_package(catkin REQUIRED COMPONENTS message_generation rosbag rosconsole roscpp rosgraph_msgs rostest rosunit topic_tools xmlrpcpp)
diff --git a/test/test_rosbag/bag_migration_tests/CMakeLists.txt b/test/test_rosbag/bag_migration_tests/CMakeLists.txt
index 419776e..687b080 100644
--- a/test/test_rosbag/bag_migration_tests/CMakeLists.txt
+++ b/test/test_rosbag/bag_migration_tests/CMakeLists.txt
@@ -55,9 +55,15 @@ catkin_add_nosetests(${PROJECT_BINARY_DIR}/test/migrate_test.py)
configure_file(test/random_record.xml.in
${PROJECT_BINARY_DIR}/test/random_record.xml)
add_rostest(${PROJECT_BINARY_DIR}/test/random_record.xml)
+# Make sure that the random_record test runs before either of the random_play
+# tests, both of which require a .bag file that the random_record test will
+# write into /tmp. We're making an assumption about the target names generated
+# by add_rostest(), but that naming scheme seems to be pretty stable.
configure_file(test/random_play.xml.in
${PROJECT_BINARY_DIR}/test/random_play.xml)
-add_rostest(${PROJECT_BINARY_DIR}/test/random_play.xml)
+add_rostest(${PROJECT_BINARY_DIR}/test/random_play.xml
+ DEPENDENCIES run_tests_test_rosbag_rostest_test_random_record.xml)
configure_file(test/random_play_sim.xml.in
${PROJECT_BINARY_DIR}/test/random_play_sim.xml)
-add_rostest(${PROJECT_BINARY_DIR}/test/random_play_sim.xml)
+add_rostest(${PROJECT_BINARY_DIR}/test/random_play_sim.xml
+ DEPENDENCIES run_tests_test_rosbag_rostest_test_random_record.xml)
diff --git a/test/test_rosbag/package.xml b/test/test_rosbag/package.xml
index 5752ce4..91bc8d9 100644
--- a/test/test_rosbag/package.xml
+++ b/test/test_rosbag/package.xml
@@ -1,6 +1,6 @@
<package>
<name>test_rosbag</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
A package containing the unit tests for rosbag.
</description>
diff --git a/test/test_rosbag_storage/package.xml b/test/test_rosbag_storage/package.xml
index 9f0c663..e140251 100644
--- a/test/test_rosbag_storage/package.xml
+++ b/test/test_rosbag_storage/package.xml
@@ -1,6 +1,6 @@
<package>
<name>test_rosbag_storage</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
A package containing the unit tests for rosbag_storage.
</description>
diff --git a/test/test_roscpp/CMakeLists.txt b/test/test_roscpp/CMakeLists.txt
index 508590e..7dd052a 100644
--- a/test/test_roscpp/CMakeLists.txt
+++ b/test/test_roscpp/CMakeLists.txt
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8.3)
project(test_roscpp)
if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
+ set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Wextra")
endif()
find_package(catkin REQUIRED COMPONENTS
diff --git a/test/test_roscpp/package.xml b/test/test_roscpp/package.xml
index b5352b0..fdfa45c 100644
--- a/test/test_roscpp/package.xml
+++ b/test/test_roscpp/package.xml
@@ -1,6 +1,6 @@
<package>
<name>test_roscpp</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
Tests for roscpp which depend on rostest.
</description>
diff --git a/test/test_rosgraph/package.xml b/test/test_rosgraph/package.xml
index 1155be3..fd98825 100644
--- a/test/test_rosgraph/package.xml
+++ b/test/test_rosgraph/package.xml
@@ -1,6 +1,6 @@
<package>
<name>test_rosgraph</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
Tests for rosgraph which depend on rostest.
</description>
diff --git a/test/test_roslaunch/package.xml b/test/test_roslaunch/package.xml
index 12efcd0..a0ae0dc 100644
--- a/test/test_roslaunch/package.xml
+++ b/test/test_roslaunch/package.xml
@@ -1,6 +1,6 @@
<package>
<name>test_roslaunch</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
Tests for roslaunch which depend on rostest.
</description>
diff --git a/test/test_roslib_comm/package.xml b/test/test_roslib_comm/package.xml
index 5c5d01b..629225a 100644
--- a/test/test_roslib_comm/package.xml
+++ b/test/test_roslib_comm/package.xml
@@ -1,6 +1,6 @@
<package>
<name>test_roslib_comm</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
Unit tests verifying that roslib is operating as expected.
</description>
diff --git a/test/test_rosmaster/package.xml b/test/test_rosmaster/package.xml
index e55df88..c84d510 100644
--- a/test/test_rosmaster/package.xml
+++ b/test/test_rosmaster/package.xml
@@ -1,6 +1,6 @@
<package>
<name>test_rosmaster</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
Tests for rosmaster which depend on rostest.
</description>
diff --git a/test/test_rosparam/package.xml b/test/test_rosparam/package.xml
index fcc7397..a35826e 100644
--- a/test/test_rosparam/package.xml
+++ b/test/test_rosparam/package.xml
@@ -1,6 +1,6 @@
<package>
<name>test_rosparam</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
A package containing the unit tests for rosparam.
</description>
diff --git a/test/test_rospy/package.xml b/test/test_rospy/package.xml
index 16b9f81..839ae75 100644
--- a/test/test_rospy/package.xml
+++ b/test/test_rospy/package.xml
@@ -1,6 +1,6 @@
<package>
<name>test_rospy</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
rospy unit and integration test framework.
</description>
diff --git a/test/test_rosservice/package.xml b/test/test_rosservice/package.xml
index 694f9e8..98559ae 100644
--- a/test/test_rosservice/package.xml
+++ b/test/test_rosservice/package.xml
@@ -1,6 +1,6 @@
<package>
<name>test_rosservice</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
Tests for the rosservice tool.
</description>
diff --git a/test/test_rostopic/package.xml b/test/test_rostopic/package.xml
index 736c1d9..8f30fb1 100644
--- a/test/test_rostopic/package.xml
+++ b/test/test_rostopic/package.xml
@@ -1,6 +1,6 @@
<package>
<name>test_rostopic</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
Tests for rostopic.
</description>
diff --git a/tools/rosbag/CHANGELOG.rst b/tools/rosbag/CHANGELOG.rst
index b1e8ab9..62588a6 100644
--- a/tools/rosbag/CHANGELOG.rst
+++ b/tools/rosbag/CHANGELOG.rst
@@ -2,6 +2,11 @@
Changelog for package rosbag
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* promote the result of read_messages to a namedtuple (`#777 <https://github.com/ros/ros_comm/pull/777>`_)
+* use directory specific compiler flags (`#785 <https://github.com/ros/ros_comm/pull/785>`_)
+
1.12.0 (2016-03-18)
-------------------
* add missing parameter to AdvertiseOptions::createAdvertiseOptions (`#733 <https://github.com/ros/ros_comm/issues/733>`_)
diff --git a/tools/rosbag/CMakeLists.txt b/tools/rosbag/CMakeLists.txt
index e821090..8656ac3 100644
--- a/tools/rosbag/CMakeLists.txt
+++ b/tools/rosbag/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.3)
project(rosbag)
if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
+ set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Wextra")
endif()
find_package(catkin REQUIRED COMPONENTS rosbag_storage rosconsole roscpp topic_tools xmlrpcpp)
diff --git a/tools/rosbag/package.xml b/tools/rosbag/package.xml
index 971bcd1..d5c0066 100644
--- a/tools/rosbag/package.xml
+++ b/tools/rosbag/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rosbag</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
This is a set of tools for recording from and playing back to ROS
topics. It is intended to be high performance and avoids
diff --git a/tools/rosbag/src/rosbag/bag.py b/tools/rosbag/src/rosbag/bag.py
index 97620b2..f907b0a 100644
--- a/tools/rosbag/src/rosbag/bag.py
+++ b/tools/rosbag/src/rosbag/bag.py
@@ -103,6 +103,8 @@ class Compression:
BZ2 = 'bz2'
LZ4 = 'lz4'
+BagMessage = collections.namedtuple('BagMessage', 'topic message timestamp')
+
class Bag(object):
"""
Bag serialize messages to and from a single file on disk using the bag format.
@@ -261,7 +263,7 @@ class Bag(object):
@type connection_filter: function taking (topic, datatype, md5sum, msg_def, header) and returning bool
@param raw: if True, then generate tuples of (datatype, (data, md5sum, position), pytype)
@type raw: bool
- @return: generator of (topic, message, timestamp) tuples for each message in the bag file
+ @return: generator of BagMessage(topic, message, timestamp) namedtuples for each message in the bag file
@rtype: generator of tuples of (str, U{genpy.Message}, U{genpy.Time}) [not raw] or (str, (str, str, str, tuple, class), U{genpy.Time}) [raw]
"""
self.flush()
@@ -1842,7 +1844,7 @@ class _BagReader102_Unindexed(_BagReader):
msg = msg_type()
msg.deserialize(data)
- yield (topic, msg, t)
+ yield BagMessage(topic, msg, t)
self.bag._connection_indexes_read = True
@@ -2061,7 +2063,7 @@ class _BagReader102_Indexed(_BagReader102_Unindexed):
msg = msg_type()
msg.deserialize(data)
- return (topic, msg, t)
+ return BagMessage(topic, msg, t)
class _BagReader200(_BagReader):
"""
@@ -2478,7 +2480,7 @@ class _BagReader200(_BagReader):
msg = msg_type()
msg.deserialize(data)
- return (connection_info.topic, msg, t)
+ return BagMessage(connection_info.topic, msg, t)
def _time_to_str(secs):
secs_frac = secs - int(secs)
diff --git a/tools/rosbag_storage/CHANGELOG.rst b/tools/rosbag_storage/CHANGELOG.rst
index bcae642..ce492e5 100644
--- a/tools/rosbag_storage/CHANGELOG.rst
+++ b/tools/rosbag_storage/CHANGELOG.rst
@@ -2,6 +2,10 @@
Changelog for package rosbag_storage
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* use directory specific compiler flags (`#785 <https://github.com/ros/ros_comm/pull/785>`_)
+
1.12.0 (2016-03-18)
-------------------
diff --git a/tools/rosbag_storage/CMakeLists.txt b/tools/rosbag_storage/CMakeLists.txt
index 5f64a1b..a951ddb 100644
--- a/tools/rosbag_storage/CMakeLists.txt
+++ b/tools/rosbag_storage/CMakeLists.txt
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8.3)
project(rosbag_storage)
if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
+ set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Wextra")
endif()
find_package(console_bridge REQUIRED)
diff --git a/tools/rosbag_storage/package.xml b/tools/rosbag_storage/package.xml
index c1a640e..1af1fb9 100644
--- a/tools/rosbag_storage/package.xml
+++ b/tools/rosbag_storage/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rosbag_storage</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
This is a set of tools for recording from and playing back ROS
message without relying on the ROS client library.
diff --git a/tools/rosconsole/CHANGELOG.rst b/tools/rosconsole/CHANGELOG.rst
index 01ab8f9..f5a6644 100644
--- a/tools/rosconsole/CHANGELOG.rst
+++ b/tools/rosconsole/CHANGELOG.rst
@@ -2,6 +2,10 @@
Changelog for package rosconsole
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* use directory specific compiler flags (`#785 <https://github.com/ros/ros_comm/pull/785>`_)
+
1.12.0 (2016-03-18)
-------------------
* make LogAppender and Token destructor virtual (`#729 <https://github.com/ros/ros_comm/issues/729>`_)
diff --git a/tools/rosconsole/CMakeLists.txt b/tools/rosconsole/CMakeLists.txt
index b31a9d6..d2b34d2 100644
--- a/tools/rosconsole/CMakeLists.txt
+++ b/tools/rosconsole/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.3)
project(rosconsole)
if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
+ set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Wextra")
endif()
find_package(catkin REQUIRED COMPONENTS cpp_common rostime rosunit)
diff --git a/tools/rosconsole/package.xml b/tools/rosconsole/package.xml
index a41eba7..4e0757a 100644
--- a/tools/rosconsole/package.xml
+++ b/tools/rosconsole/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rosconsole</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>ROS console output library.</description>
<maintainer email="dthomas at osrfoundation.org">Dirk Thomas</maintainer>
<license>BSD</license>
diff --git a/tools/rosgraph/CHANGELOG.rst b/tools/rosgraph/CHANGELOG.rst
index a15164e..f2c5f09 100644
--- a/tools/rosgraph/CHANGELOG.rst
+++ b/tools/rosgraph/CHANGELOG.rst
@@ -2,6 +2,10 @@
Changelog for package rosgraph
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* fix str conversion in encode_ros_handshake_header (`#792 <https://github.com/ros/ros_comm/pull/792>`_)
+
1.12.0 (2016-03-18)
-------------------
diff --git a/tools/rosgraph/package.xml b/tools/rosgraph/package.xml
index cafd2f0..0f3b412 100644
--- a/tools/rosgraph/package.xml
+++ b/tools/rosgraph/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rosgraph</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
rosgraph contains the rosgraph command-line tool, which prints
information about the ROS Computation Graph. It also provides an
diff --git a/tools/rosgraph/src/rosgraph/network.py b/tools/rosgraph/src/rosgraph/network.py
index 7e7cd57..35c35ed 100644
--- a/tools/rosgraph/src/rosgraph/network.py
+++ b/tools/rosgraph/src/rosgraph/network.py
@@ -398,11 +398,15 @@ def encode_ros_handshake_header(header):
str_cls = str if python3 else unicode
# encode all unicode keys in the header. Ideally, the type of these would be specified by the api
- for k, v in sorted(header.items()):
- if isinstance(k, str_cls): k = k.encode('utf-8')
- if isinstance(v, str_cls): v = v.encode('utf-8')
-
- fields = [k + b"=" + v for k, v in sorted(header.items())]
+ encoded_header = {}
+ for k, v in header.items():
+ if isinstance(k, str_cls):
+ k = k.encode('utf-8')
+ if isinstance(v, str_cls):
+ v = v.encode('utf-8')
+ encoded_header[k] = v
+
+ fields = [k + b"=" + v for k, v in sorted(encoded_header.items())]
s = b''.join([struct.pack('<I', len(f)) + f for f in fields])
return struct.pack('<I', len(s)) + s
diff --git a/tools/rosgraph/test/test_network.py b/tools/rosgraph/test/test_network.py
index 482b04d..8511204 100644
--- a/tools/rosgraph/test/test_network.py
+++ b/tools/rosgraph/test/test_network.py
@@ -71,6 +71,19 @@ class NetworkTest(unittest.TestCase):
encoded = encoded+struct.pack('<I', len(s))+s
assert struct.pack('<I', len(encoded))+encoded == \
encode_ros_handshake_header(d)
+ if sys.version_info > (3, 0):
+ assert \
+ encode_ros_handshake_header(
+ {'a': 'b', 'c': 'd', 'e': 'f'}) == \
+ encode_ros_handshake_header(
+ {b'a': 'b', 'c': b'd', b'e': b'f'})
+ else:
+ assert \
+ encode_ros_handshake_header(
+ {'a': 'b', 'c': 'd', 'e': 'f'}) == \
+ encode_ros_handshake_header(
+ {u'a': 'b', 'c': u'd', u'e': u'f'})
+
def test_decode_ros_handshake_header(self):
from rosgraph.network import decode_ros_handshake_header, ROSHandshakeException
diff --git a/tools/roslaunch/CHANGELOG.rst b/tools/roslaunch/CHANGELOG.rst
index a716572..79c45eb 100644
--- a/tools/roslaunch/CHANGELOG.rst
+++ b/tools/roslaunch/CHANGELOG.rst
@@ -2,6 +2,10 @@
Changelog for package roslaunch
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* add support for Python expressions (`#784 <https://github.com/ros/ros_comm/pull/784>`_, `#793 <https://github.com/ros/ros_comm/pull/793>`_)
+
1.12.0 (2016-03-18)
-------------------
diff --git a/tools/roslaunch/package.xml b/tools/roslaunch/package.xml
index 9b0664c..58b4b9f 100644
--- a/tools/roslaunch/package.xml
+++ b/tools/roslaunch/package.xml
@@ -1,6 +1,6 @@
<package>
<name>roslaunch</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
roslaunch is a tool for easily launching multiple ROS <a
href="http://ros.org/wiki/Nodes">nodes</a> locally and remotely
diff --git a/tools/roslaunch/src/roslaunch/substitution_args.py b/tools/roslaunch/src/roslaunch/substitution_args.py
index 1ad0185..6e06bef 100644
--- a/tools/roslaunch/src/roslaunch/substitution_args.py
+++ b/tools/roslaunch/src/roslaunch/substitution_args.py
@@ -46,6 +46,8 @@ except ImportError:
import rosgraph.names
import rospkg
+from roslaunch.loader import convert_value
+import math
_rospack = None
@@ -60,6 +62,12 @@ class ArgException(SubstitutionException):
"""
pass
+def _eval_env(name):
+ try:
+ return os.environ[name]
+ except KeyError as e:
+ raise SubstitutionException("environment variable %s is not set" % str(e))
+
def _env(resolved, a, args, context):
"""
process $(env) arg
@@ -69,10 +77,12 @@ def _env(resolved, a, args, context):
"""
if len(args) != 1:
raise SubstitutionException("$(env var) command only accepts one argument [%s]"%a)
- try:
- return resolved.replace("$(%s)"%a, os.environ[args[0]])
- except KeyError as e:
- raise SubstitutionException("environment variable %s is not set"%str(e))
+ return resolved.replace("$(%s)" % a, _eval_env(args[0]))
+
+def _eval_optenv(name, default=''):
+ if name in os.environ:
+ return os.environ[name]
+ return default
def _optenv(resolved, a, args, context):
"""
@@ -83,13 +93,15 @@ def _optenv(resolved, a, args, context):
"""
if len(args) == 0:
raise SubstitutionException("$(optenv var) must specify an environment variable [%s]"%a)
- if args[0] in os.environ:
- return resolved.replace("$(%s)"%a, os.environ[args[0]])
- elif len(args) > 1:
- return resolved.replace("$(%s)"%a, ' '.join(args[1:]))
- else:
- return resolved.replace("$(%s)"%a, '')
-
+ return resolved.replace("$(%s)" % a, _eval_optenv(args[0], default=' '.join(args[1:])))
+
+def _eval_anon(id, anons):
+ if id in anons:
+ return anons[id]
+ resolve_to = rosgraph.names.anonymous_name(id)
+ anons[id] = resolve_to
+ return resolve_to
+
def _anon(resolved, a, args, context):
"""
process $(anon) arg
@@ -102,17 +114,14 @@ def _anon(resolved, a, args, context):
raise SubstitutionException("$(anon var) must specify a name [%s]"%a)
elif len(args) > 1:
raise SubstitutionException("$(anon var) may only specify one name [%s]"%a)
- id = args[0]
if 'anon' not in context:
context['anon'] = {}
anon_context = context['anon']
- if id in anon_context:
- return resolved.replace("$(%s)"%a, anon_context[id])
- else:
- resolve_to = rosgraph.names.anonymous_name(id)
- anon_context[id] = resolve_to
- return resolved.replace("$(%s)"%a, resolve_to)
+ return resolved.replace("$(%s)" % a, _eval_anon(id=args[0], anons=anon_context))
+def _eval_find(pkg):
+ rp = _get_rospack()
+ return rp.get_path(pkg)
def _find(resolved, a, args, context):
"""
@@ -245,6 +254,12 @@ def _get_rospack():
return _rospack
+def _eval_arg(name, args):
+ try:
+ return args[name]
+ except KeyError:
+ raise ArgException(name)
+
def _arg(resolved, a, args, context):
"""
process $(arg) arg
@@ -253,21 +268,58 @@ def _arg(resolved, a, args, context):
:raises: :exc:`ArgException` If arg invalidly specified
"""
if len(args) == 0:
- raise SubstitutionException("$(arg var) must specify an environment variable [%s]"%(a))
+ raise SubstitutionException("$(arg var) must specify a variable name [%s]"%(a))
elif len(args) > 1:
raise SubstitutionException("$(arg var) may only specify one arg [%s]"%(a))
if 'arg' not in context:
context['arg'] = {}
- arg_context = context['arg']
+ return resolved.replace("$(%s)" % a, _eval_arg(name=args[0], args=context['arg']))
+
+# Create a dictionary of global symbols that will be available in the eval
+# context. We disable all the builtins, then add back True and False, and also
+# add true and false for convenience (because we accept those lower-case strings
+# as boolean values in XML).
+_eval_dict={
+ 'true': True, 'false': False,
+ 'True': True, 'False': False,
+ '__builtins__': {k: __builtins__[k] for k in ['list', 'dict', 'map', 'str', 'float', 'int']},
+ 'env': _eval_env,
+ 'optenv': _eval_optenv,
+ 'find': _eval_find
+}
+# also define all math symbols and functions
+_eval_dict.update(math.__dict__)
+
+class _DictWrapper(object):
+ def __init__(self, args, functions):
+ self._args = args
+ self._functions = functions
+
+ def __getitem__(self, key):
+ try:
+ return self._functions[key]
+ except KeyError:
+ return convert_value(self._args[key], 'auto')
- arg_name = args[0]
- if arg_name in arg_context:
- arg_value = arg_context[arg_name]
- return resolved.replace("$(%s)"%a, arg_value)
- else:
- raise ArgException(arg_name)
+def _eval(s, context):
+ if 'anon' not in context:
+ context['anon'] = {}
+ if 'arg' not in context:
+ context['arg'] = {}
+
+ # inject correct anon context
+ def _eval_anon_context(id): return _eval_anon(id, anons=context['anon'])
+ # inject arg context
+ def _eval_arg_context(name): return convert_value(_eval_arg(name, args=context['arg']), 'auto')
+ functions = dict(anon=_eval_anon_context, arg=_eval_arg_context)
+ functions.update(_eval_dict)
+ # ignore values containing double underscores (for safety)
+ # http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html
+ if s.find('__') >= 0:
+ raise SubstitutionException("$(eval ...) may not contain double underscore expressions")
+ return str(eval(s, {}, _DictWrapper(context['arg'], functions)))
def resolve_args(arg_str, context=None, resolve_anon=True):
"""
@@ -294,9 +346,11 @@ def resolve_args(arg_str, context=None, resolve_anon=True):
"""
if context is None:
context = {}
- #parse found substitution args
if not arg_str:
return arg_str
+ # special handling of $(eval ...)
+ if arg_str.startswith('$(eval ') and arg_str.endswith(')'):
+ return _eval(arg_str[7:-1], context)
# first resolve variables like 'env' and 'arg'
commands = {
'env': _env,
@@ -305,7 +359,7 @@ def resolve_args(arg_str, context=None, resolve_anon=True):
'arg': _arg,
}
resolved = _resolve_args(arg_str, context, resolve_anon, commands)
- # than resolve 'find' as it requires the subsequent path to be expanded already
+ # then resolve 'find' as it requires the subsequent path to be expanded already
commands = {
'find': _find,
}
diff --git a/tools/roslaunch/test/unit/test_substitution_args.py b/tools/roslaunch/test/unit/test_substitution_args.py
index adc3d72..630896c 100644
--- a/tools/roslaunch/test/unit/test_substitution_args.py
+++ b/tools/roslaunch/test/unit/test_substitution_args.py
@@ -95,7 +95,7 @@ def test_resolve_args():
assert roslaunch_dir
anon_context = {'foo': 'bar'}
- arg_context = {'fuga': 'hoge', 'car': 'cdr'}
+ arg_context = {'fuga': 'hoge', 'car': 'cdr', 'arg': 'foo', 'True': 'False'}
context = {'anon': anon_context, 'arg': arg_context }
tests = [
@@ -130,9 +130,31 @@ def test_resolve_args():
('$(arg fuga)$(arg fuga)', 'hogehoge'),
('$(arg car)$(arg fuga)', 'cdrhoge'),
('$(arg fuga)hoge', 'hogehoge'),
- ]
+
+ # $(eval ...) versions of those tests
+ ("$(eval find('roslaunch'))", roslaunch_dir),
+ ("$(eval env('ROS_ROOT'))", os.environ['ROS_ROOT']),
+ ("$(eval optenv('ROS_ROOT', 'alternate text'))", os.environ['ROS_ROOT']),
+ ("$(eval optenv('NOT_ROS_ROOT', 'alternate text'))", "alternate text"),
+ ("$(eval optenv('NOT_ROS_ROOT'))", ""),
+ ("$(eval anon('foo'))", 'bar'),
+ ("$(eval arg('fuga'))", 'hoge'),
+ ('$(eval arg("fuga"))', 'hoge'),
+ ('$(eval arg("arg"))', 'foo'),
+ ('$(eval arg("True"))', 'False'),
+ ('$(eval 1==1)', 'True'),
+ ('$(eval [0,1,2][1])', '1'),
+ # test implicit arg access
+ ('$(eval fuga)', 'hoge'),
+ ('$(eval True)', 'True'),
+ # math expressions
+ ('$(eval round(sin(pi),1))', '0.0'),
+ ('$(eval cos(0))', '1.0'),
+ # str, map
+ ("$(eval ''.join(map(str, [4,2])))", '42'),
+ ]
for arg, val in tests:
- assert val == resolve_args(arg, context=context)
+ assert val == resolve_args(arg, context=context), arg
# more #1776
r = resolve_args('$(anon foo)/bar')
diff --git a/tools/roslaunch/test/unit/test_xmlloader.py b/tools/roslaunch/test/unit/test_xmlloader.py
index 0ffab6c..a796de4 100644
--- a/tools/roslaunch/test/unit/test_xmlloader.py
+++ b/tools/roslaunch/test/unit/test_xmlloader.py
@@ -816,11 +816,17 @@ class TestXmlLoader(unittest.TestCase):
for k in keys:
self.assert_('/'+k+'_pass' in param_d, param_d)
self.failIf('/'+k+'_fail' in param_d, k)
+ # Also check the result of Python-parsed expressions
+ self.assert_('/py_'+k+'_pass' in param_d, param_d)
+ self.failIf('/py_'+k+'_fail' in param_d, k)
n = mock.nodes[0]
for k in ['if', 'unless']:
self.assert_(['from_%s_pass'%k, 'to_%s_pass'%k] in n.remap_args)
self.failIf(['from_%s_fail'%k, 'to_%s_fail'%k] in n.remap_args)
+ # Also check the result of Python-parsed expressions
+ self.assert_(['py_from_%s_pass'%k, 'py_to_%s_pass'%k] in n.remap_args)
+ self.failIf(['py_from_%s_fail'%k, 'py_to_%s_fail'%k] in n.remap_args)
def test_if_unless_invalid(self):
mock = RosLaunchMock()
@@ -877,11 +883,15 @@ class TestXmlLoader(unittest.TestCase):
self.assertEquals(param_d['/p2_test'], 'not_set')
self.assertEquals(param_d['/p3_test'], 'set')
self.assertEquals(param_d['/succeed'], 'yes')
+ self.assertEquals(param_d['/py_succeed'], 'yes')
self.assertEquals(param_d['/if_test'], 'not_ran')
+ self.assertEquals(param_d['/py_if_test'], 'not_ran')
self.assertEquals(param_d['/if_param'], False)
+ self.assertEquals(param_d['/py_if_param'], False)
self.assertEquals(param_d['/int_param'], 1234)
self.assertAlmostEquals(param_d['/float_param'], 3.)
self.failIf('/fail' in param_d)
+ self.failIf('/py_fail' in param_d)
# context tests
# - args are scoped to their context, and thus can be rebound in a sibling context
@@ -918,9 +928,13 @@ class TestXmlLoader(unittest.TestCase):
self.assertEquals(param_d['/context1'], 'group1')
self.assertEquals(param_d['/context2'], 'group2')
self.assertEquals(param_d['/succeed'], 'yes')
+ self.assertEquals(param_d['/py_succeed'], 'yes')
self.assertEquals(param_d['/if_test'], 'ran')
+ self.assertEquals(param_d['/py_if_test'], 'ran')
self.assertEquals(param_d['/if_param'], True)
+ self.assertEquals(param_d['/py_if_param'], True)
self.failIf('/fail' in param_d)
+ self.failIf('/py_fail' in param_d)
# include tests
self.assertEquals(param_d['/include_test/p1_test'], 'required1')
diff --git a/tools/roslaunch/test/xml/test-arg.xml b/tools/roslaunch/test/xml/test-arg.xml
index 44b8133..b951150 100644
--- a/tools/roslaunch/test/xml/test-arg.xml
+++ b/tools/roslaunch/test/xml/test-arg.xml
@@ -2,7 +2,7 @@
<arg name="required" />
<arg name="if_test" />
-
+
<arg name="optional" default="not_set" />
<arg name="grounded" value="set" />
@@ -22,11 +22,15 @@
<arg if="$(arg if_test)" name="if_param_value" value="true" />
<arg unless="$(arg if_test)" name="if_param_value" value="false" />
+ <arg if="$(arg if_test)" name="py_if_param_value" value="$(eval 1 == 1)"/>
+ <arg unless="$(arg if_test)" name="py_if_param_value" value="$(eval 1 == 0)"/>
+
<param name="$(arg param1_name)_test" value="$(arg param1_value)" />
<param name="$(arg param2_name)_test" value="$(arg param2_value)" />
<param name="$(arg param3_name)_test" value="$(arg param3_value)" />
<param name="if_param" value="$(arg if_param_value)" />
+ <param name="py_if_param" value="$(arg py_if_param_value)" />
<param name="int_param" value="$(arg int_value)" />
<param name="float_param" value="$(arg float_value)" />
@@ -57,6 +61,23 @@
<param name="if_test" value="not_ran" />
</group>
+ <arg name="py_fail" value="$(eval 0 > 1)"/>
+ <group if="$(eval py_fail == True)">
+ <param name="py_fail" value="fail" />
+ </group>
+
+ <group unless="$(eval arg('py_fail') == True)">
+ <param name="py_succeed" value="yes" />
+ </group>
+
+ <group if="$(eval if_test == True)">
+ <param name="py_if_test" value="ran" />
+ </group>
+
+ <group unless="$(eval arg('if_test') == True)">
+ <param name="py_if_test" value="not_ran" />
+ </group>
+
<include file="$(find roslaunch)/test/xml/test-arg-include.xml">
<arg name="required" value="required1" />
<arg name="include_arg" value="$(arg include_arg)" />
@@ -74,6 +95,4 @@
<arg name="include_arg" value="new3" />
</include>
-
-
</launch>
diff --git a/tools/roslaunch/test/xml/test-if-unless.xml b/tools/roslaunch/test/xml/test-if-unless.xml
index 5e29ca8..b450bde 100644
--- a/tools/roslaunch/test/xml/test-if-unless.xml
+++ b/tools/roslaunch/test/xml/test-if-unless.xml
@@ -25,6 +25,39 @@
<remap from="from_unless_pass" to="to_unless_pass" unless="0" />
<remap from="from_unless_fail" to="to_unless_fail" unless="1" />
+ <!-- Test Python parsing -->
+ <group if="$(eval 1 == 1)">
+ <param name="py_group_if_pass" value="1" />
+ </group>
+ <group if="$(eval 0 == 1)">
+ <param name="py_group_if_fail" value="1" />
+ </group>
+ <group unless="$(eval 0 == 1)">
+ <param name="py_group_unless_pass" value="1" />
+ </group>
+ <group unless="$(eval 1 == 1)">
+ <param name="py_group_unless_fail" value="1" />
+ </group>
+
+ <arg name="true_lower" value="true"/>
+ <arg name="true_upper" value="True"/>
+ <arg name="false_lower" value="false"/>
+ <arg name="false_upper" value="False"/>
+
+ <param name="py_param_if_pass" value="1" if="$(eval arg('true_lower') and (40+2) == 42)"/>
+ <param name="py_param_if_fail" value="1" if="$(eval false_lower or (40-2) != 38)"/>
+
+ <param name="py_param_unless_pass" value="1" unless="$(eval arg('false_upper') or 1 < 1)"/>
+ <param name="py_param_unless_fail" value="1" unless="$(eval true_upper and 1 >= 1)"/>
+
+ <remap from="py_from_if_pass" to="py_to_if_pass" if="$(eval arg('true_upper') == True)"/>
+ <remap from="py_from_if_fail" to="py_to_if_fail" if="$(eval false_upper != False)"/>
+
+ <remap from="py_from_unless_pass" to="py_to_unless_pass"
+ unless="$(eval arg('false_lower') or false_upper or arg('false_upper') != False)"/>
+ <remap from="py_from_unless_fail" to="py_to_unless_fail"
+ unless="$(eval arg('true_lower') and true_upper and arg('true_upper') == True)"/>
+
<node name="remap" pkg="rospy" type="talker.py" />
</launch>
diff --git a/tools/rosmaster/CHANGELOG.rst b/tools/rosmaster/CHANGELOG.rst
index 2cbd710..93f1311 100644
--- a/tools/rosmaster/CHANGELOG.rst
+++ b/tools/rosmaster/CHANGELOG.rst
@@ -2,6 +2,10 @@
Changelog for package rosmaster
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* use defusedxml to prevent common xml issues (`#782 <https://github.com/ros/ros_comm/pull/782>`_)
+
1.12.0 (2016-03-18)
-------------------
diff --git a/tools/rosmaster/package.xml b/tools/rosmaster/package.xml
index bbbd9f1..d322b65 100644
--- a/tools/rosmaster/package.xml
+++ b/tools/rosmaster/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rosmaster</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
ROS <a href="http://ros.org/wiki/Master">Master</a> implementation.
</description>
@@ -13,6 +13,7 @@
<buildtool_depend version_gte="0.5.68">catkin</buildtool_depend>
<run_depend>rosgraph</run_depend>
+ <run_depend>python-defusedxml</run_depend>
<export>
<rosdoc config="rosdoc.yaml"/>
diff --git a/tools/rosmaster/src/rosmaster/util.py b/tools/rosmaster/src/rosmaster/util.py
index e774629..5b9e3d1 100644
--- a/tools/rosmaster/src/rosmaster/util.py
+++ b/tools/rosmaster/src/rosmaster/util.py
@@ -45,6 +45,10 @@ try:
except ImportError:
from xmlrpclib import ServerProxy
+from defusedxml.xmlrpc import monkey_patch
+monkey_patch()
+del monkey_patch
+
_proxies = {} #cache ServerProxys
def xmlrpcapi(uri):
"""
diff --git a/tools/rosmsg/CHANGELOG.rst b/tools/rosmsg/CHANGELOG.rst
index 43f6050..e633098 100644
--- a/tools/rosmsg/CHANGELOG.rst
+++ b/tools/rosmsg/CHANGELOG.rst
@@ -2,6 +2,9 @@
Changelog for package rosmsg
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+
1.12.0 (2016-03-18)
-------------------
diff --git a/tools/rosmsg/package.xml b/tools/rosmsg/package.xml
index 12fdd8b..b6bf964 100644
--- a/tools/rosmsg/package.xml
+++ b/tools/rosmsg/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rosmsg</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
rosmsg contains two command-line tools: <tt>rosmsg</tt> and
<tt>rossrv</tt>. <tt>rosmsg</tt> is a command-line tool for
diff --git a/tools/rosnode/CHANGELOG.rst b/tools/rosnode/CHANGELOG.rst
index 5c613fe..b1bb3e5 100644
--- a/tools/rosnode/CHANGELOG.rst
+++ b/tools/rosnode/CHANGELOG.rst
@@ -2,6 +2,9 @@
Changelog for package rosnode
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+
1.12.0 (2016-03-18)
-------------------
diff --git a/tools/rosnode/package.xml b/tools/rosnode/package.xml
index a3f1cab..2022ad3 100644
--- a/tools/rosnode/package.xml
+++ b/tools/rosnode/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rosnode</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
rosnode is a command-line tool for displaying debug information
about ROS <a href="http://www.ros.org/wiki/Nodes">Nodes</a>,
diff --git a/tools/rosout/CHANGELOG.rst b/tools/rosout/CHANGELOG.rst
index 3ea36f8..c2e2544 100644
--- a/tools/rosout/CHANGELOG.rst
+++ b/tools/rosout/CHANGELOG.rst
@@ -2,6 +2,10 @@
Changelog for package rosout
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* use directory specific compiler flags (`#785 <https://github.com/ros/ros_comm/pull/785>`_)
+
1.12.0 (2016-03-18)
-------------------
diff --git a/tools/rosout/CMakeLists.txt b/tools/rosout/CMakeLists.txt
index 526cb62..eeed244 100644
--- a/tools/rosout/CMakeLists.txt
+++ b/tools/rosout/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.3)
project(rosout)
if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
+ set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Wextra")
endif()
find_package(catkin REQUIRED COMPONENTS roscpp)
diff --git a/tools/rosout/package.xml b/tools/rosout/package.xml
index b40e309..fc99e11 100644
--- a/tools/rosout/package.xml
+++ b/tools/rosout/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rosout</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
System-wide logging mechanism for messages sent to the /rosout topic.
</description>
diff --git a/tools/rosparam/CHANGELOG.rst b/tools/rosparam/CHANGELOG.rst
index c090b47..c6da53b 100644
--- a/tools/rosparam/CHANGELOG.rst
+++ b/tools/rosparam/CHANGELOG.rst
@@ -2,6 +2,9 @@
Changelog for package rosparam
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+
1.12.0 (2016-03-18)
-------------------
diff --git a/tools/rosparam/package.xml b/tools/rosparam/package.xml
index ac07ed8..3a53fdd 100644
--- a/tools/rosparam/package.xml
+++ b/tools/rosparam/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rosparam</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
rosparam contains the rosparam command-line tool for getting and
setting ROS Parameters on the <a
diff --git a/tools/rosservice/CHANGELOG.rst b/tools/rosservice/CHANGELOG.rst
index bdfb496..3fa7761 100644
--- a/tools/rosservice/CHANGELOG.rst
+++ b/tools/rosservice/CHANGELOG.rst
@@ -2,6 +2,9 @@
Changelog for package rosservice
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+
1.12.0 (2016-03-18)
-------------------
diff --git a/tools/rosservice/package.xml b/tools/rosservice/package.xml
index e9de2a1..501772e 100644
--- a/tools/rosservice/package.xml
+++ b/tools/rosservice/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rosservice</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
rosservice contains the rosservice command-line tool for listing
and querying ROS <a
diff --git a/tools/rostest/CHANGELOG.rst b/tools/rostest/CHANGELOG.rst
index 36be185..7edb9fe 100644
--- a/tools/rostest/CHANGELOG.rst
+++ b/tools/rostest/CHANGELOG.rst
@@ -2,6 +2,10 @@
Changelog for package rostest
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* fix passing multiple args to add_rostest (fix `#790 <https://github.com/ros/ros_comm/issues/790>`_)
+
1.12.0 (2016-03-18)
-------------------
diff --git a/tools/rostest/cmake/rostest-extras.cmake.em b/tools/rostest/cmake/rostest-extras.cmake.em
index e2562aa..6c13124 100644
--- a/tools/rostest/cmake/rostest-extras.cmake.em
+++ b/tools/rostest/cmake/rostest-extras.cmake.em
@@ -52,6 +52,7 @@ function(add_rostest file)
get_filename_component(_output_name ${_testname} NAME_WE)
set(_output_name "${_output_name}.xml")
+ string(REPLACE ";" " " _rostest_ARGS "${_rostest_ARGS}")
set(cmd "${ROSTEST_EXE} --pkgdir=${PROJECT_SOURCE_DIR} --package=${PROJECT_NAME} --results-filename ${_output_name} --results-base-dir \"${CATKIN_TEST_RESULTS_DIR}\" ${_file_name} ${_rostest_ARGS}")
catkin_run_tests_target("rostest" ${_testname} "rostest-${_output_name}" COMMAND ${cmd} WORKING_DIRECTORY ${_rostest_WORKING_DIRECTORY} DEPENDENCIES ${_rostest_DEPENDENCIES})
endfunction()
diff --git a/tools/rostest/package.xml b/tools/rostest/package.xml
index f020963..e45e8e9 100644
--- a/tools/rostest/package.xml
+++ b/tools/rostest/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rostest</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
Integration test suite based on roslaunch that is compatible with xUnit frameworks.
</description>
diff --git a/tools/rostopic/CHANGELOG.rst b/tools/rostopic/CHANGELOG.rst
index 6f90023..9e06c99 100644
--- a/tools/rostopic/CHANGELOG.rst
+++ b/tools/rostopic/CHANGELOG.rst
@@ -2,6 +2,9 @@
Changelog for package rostopic
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+
1.12.0 (2016-03-18)
-------------------
diff --git a/tools/rostopic/package.xml b/tools/rostopic/package.xml
index 540245f..1e372fa 100644
--- a/tools/rostopic/package.xml
+++ b/tools/rostopic/package.xml
@@ -1,6 +1,6 @@
<package>
<name>rostopic</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
rostopic contains the rostopic command-line tool for displaying
debug information about
diff --git a/tools/topic_tools/CHANGELOG.rst b/tools/topic_tools/CHANGELOG.rst
index 3dc5643..2eb7b11 100644
--- a/tools/topic_tools/CHANGELOG.rst
+++ b/tools/topic_tools/CHANGELOG.rst
@@ -2,6 +2,10 @@
Changelog for package topic_tools
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* use directory specific compiler flags (`#785 <https://github.com/ros/ros_comm/pull/785>`_)
+
1.12.0 (2016-03-18)
-------------------
diff --git a/tools/topic_tools/CMakeLists.txt b/tools/topic_tools/CMakeLists.txt
index b76dc63..bea81dd 100644
--- a/tools/topic_tools/CMakeLists.txt
+++ b/tools/topic_tools/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.3)
project(topic_tools)
if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
+ set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Wextra")
endif()
find_package(catkin COMPONENTS cpp_common message_generation rosconsole roscpp rostime std_msgs xmlrpcpp)
diff --git a/tools/topic_tools/package.xml b/tools/topic_tools/package.xml
index 90cb33d..882eb8b 100644
--- a/tools/topic_tools/package.xml
+++ b/tools/topic_tools/package.xml
@@ -1,6 +1,6 @@
<package>
<name>topic_tools</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
Tools for directing, throttling, selecting, and otherwise messing with
ROS topics at a meta level. None of the programs in this package actually
diff --git a/tools/topic_tools/src/drop.cpp b/tools/topic_tools/src/drop.cpp
index 7139b63..1261f75 100644
--- a/tools/topic_tools/src/drop.cpp
+++ b/tools/topic_tools/src/drop.cpp
@@ -91,4 +91,3 @@ int main(int argc, char **argv)
ros::spin();
return 0;
}
-
diff --git a/utilities/message_filters/CHANGELOG.rst b/utilities/message_filters/CHANGELOG.rst
index bbe9934..1778874 100644
--- a/utilities/message_filters/CHANGELOG.rst
+++ b/utilities/message_filters/CHANGELOG.rst
@@ -2,6 +2,10 @@
Changelog for package message_filters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* use directory specific compiler flags (`#785 <https://github.com/ros/ros_comm/pull/785>`_)
+
1.12.0 (2016-03-18)
-------------------
diff --git a/utilities/message_filters/CMakeLists.txt b/utilities/message_filters/CMakeLists.txt
index 67cb359..03e906a 100644
--- a/utilities/message_filters/CMakeLists.txt
+++ b/utilities/message_filters/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.3)
project(message_filters)
if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
+ set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Wextra")
endif()
find_package(catkin REQUIRED COMPONENTS roscpp xmlrpcpp rosconsole)
diff --git a/utilities/message_filters/package.xml b/utilities/message_filters/package.xml
index f734151..c734f14 100644
--- a/utilities/message_filters/package.xml
+++ b/utilities/message_filters/package.xml
@@ -1,6 +1,6 @@
<package>
<name>message_filters</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
A set of message filters which take in messages and may output those messages at a later time, based on the conditions that filter needs met.
</description>
diff --git a/utilities/roslz4/CHANGELOG.rst b/utilities/roslz4/CHANGELOG.rst
index b14f2f6..19243a7 100644
--- a/utilities/roslz4/CHANGELOG.rst
+++ b/utilities/roslz4/CHANGELOG.rst
@@ -2,6 +2,10 @@
Changelog for package roslz4
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* use directory specific compiler flags (`#785 <https://github.com/ros/ros_comm/pull/785>`_)
+
1.12.0 (2016-03-18)
-------------------
diff --git a/utilities/roslz4/CMakeLists.txt b/utilities/roslz4/CMakeLists.txt
index 85dbe0a..ab1e99f 100644
--- a/utilities/roslz4/CMakeLists.txt
+++ b/utilities/roslz4/CMakeLists.txt
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8.3)
project(roslz4)
if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
+ set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Wextra")
endif()
find_package(catkin REQUIRED)
@@ -27,6 +27,9 @@ catkin_package(
include_directories(include ${lz4_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS})
add_library(roslz4 src/lz4s.c src/xxhash.c)
+set_source_files_properties(
+ src/lz4s.c
+PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
target_link_libraries(roslz4 ${lz4_LIBRARIES} ${catkin_LIBRARIES})
if(NOT ANDROID)
@@ -36,6 +39,9 @@ find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" REQUIR
include_directories(${PYTHON_INCLUDE_PATH})
add_library(roslz4_py src/_roslz4module.c)
+set_source_files_properties(
+ src/_roslz4module.c
+PROPERTIES COMPILE_FLAGS "-Wno-missing-field-initializers -Wno-unused-variable")
set_target_properties(
roslz4_py PROPERTIES OUTPUT_NAME roslz4 PREFIX "_" SUFFIX ".so"
LIBRARY_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${PYTHON_INSTALL_DIR}/roslz4)
diff --git a/utilities/roslz4/package.xml b/utilities/roslz4/package.xml
index fb59d06..c293240 100644
--- a/utilities/roslz4/package.xml
+++ b/utilities/roslz4/package.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<package>
<name>roslz4</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
A Python and C++ implementation of the LZ4 streaming format. Large data
streams are split into blocks which are compressed using the very fast LZ4
diff --git a/utilities/roslz4/src/_roslz4module.c b/utilities/roslz4/src/_roslz4module.c
index 4d75c72..6be1ae9 100644
--- a/utilities/roslz4/src/_roslz4module.c
+++ b/utilities/roslz4/src/_roslz4module.c
@@ -82,6 +82,7 @@ LZ4Compressor_dealloc(LZ4Compressor *self)
static int
LZ4Compressor_init(LZ4Compressor *self, PyObject *args, PyObject *kwds)
{
+ (void)kwds;
if (!PyArg_ParseTuple(args, ":__init__")) {
return -1;
}
@@ -252,6 +253,7 @@ LZ4Decompressor_dealloc(LZ4Decompressor *self)
static int
LZ4Decompressor_init(LZ4Decompressor *self, PyObject *args, PyObject *kwds)
{
+ (void)kwds;
if (!PyArg_ParseTuple(args, ":__init__")) {
return -1;
}
diff --git a/utilities/roswtf/CHANGELOG.rst b/utilities/roswtf/CHANGELOG.rst
index 6d490dd..cf9f565 100644
--- a/utilities/roswtf/CHANGELOG.rst
+++ b/utilities/roswtf/CHANGELOG.rst
@@ -2,6 +2,9 @@
Changelog for package roswtf
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+
1.12.0 (2016-03-18)
-------------------
diff --git a/utilities/roswtf/CMakeLists.txt b/utilities/roswtf/CMakeLists.txt
index ff7ffa9..97a34ff 100644
--- a/utilities/roswtf/CMakeLists.txt
+++ b/utilities/roswtf/CMakeLists.txt
@@ -6,6 +6,6 @@ catkin_python_setup()
if(CATKIN_ENABLE_TESTING)
find_package(rostest)
- # add_rostest(test/roswtf.test)
- # catkin_add_nosetests(test)
+ add_rostest(test/roswtf.test)
+ catkin_add_nosetests(test)
endif()
diff --git a/utilities/roswtf/package.xml b/utilities/roswtf/package.xml
index 7e3782e..04dcb6c 100644
--- a/utilities/roswtf/package.xml
+++ b/utilities/roswtf/package.xml
@@ -1,6 +1,6 @@
<package>
<name>roswtf</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
roswtf is a tool for diagnosing issues with a running ROS system. Think of it as a FAQ implemented in code.
</description>
diff --git a/utilities/roswtf/test/check_roswtf_command_line_online.py b/utilities/roswtf/test/check_roswtf_command_line_online.py
index 4200d85..f4a9fe2 100755
--- a/utilities/roswtf/test/check_roswtf_command_line_online.py
+++ b/utilities/roswtf/test/check_roswtf_command_line_online.py
@@ -107,15 +107,27 @@ class TestRostopicOnline(unittest.TestCase):
# every package in the ROS stack, which doesn't work.
output, err = Popen([cmd], **kwds).communicate()
- self.assert_('No errors or warnings' in output, "OUTPUT[%s]\nstderr[%s}"%(output, err))
- self.assert_('ERROR' not in output, "CMD [%s] KWDS[%s] OUTPUT[%s]"%(cmd, kwds, output))
+ self._check_output([cmd], output, err)
# run roswtf on a simple launch file online
rospack = rospkg.RosPack()
p = os.path.join(rospack.get_path('roswtf'), 'test', 'min.launch')
output = Popen([cmd, p], **kwds).communicate()[0]
- self.assert_('No errors or warnings' in output, "CMD[%s] OUTPUT[%s]"%([cmd, p], output))
- self.assert_('ERROR' not in output, "OUTPUT[%s]"%output)
-
+ self._check_output([cmd, p], output)
+
+ def _check_output(self, cmd, output, error=None):
+ # do both a positive and negative test
+ self.assert_(
+ 'No errors or warnings' in output or 'Found 1 error' in output,
+ 'CMD[%s] OUTPUT[%s]%s' %
+ (' '.join(cmd), output, '\nstderr[%s]' % error if error else ''))
+ if 'No errors or warnings' in output:
+ self.assert_('ERROR' not in output, 'OUTPUT[%s]' % output)
+ if 'Found 1 error' in output:
+ self.assert_(output.count('ERROR') == 1, 'OUTPUT[%s]' % output)
+ self.assert_(
+ 'Error: the rosdep view is empty' not in output,
+ 'OUTPUT[%s]' % output)
+
if __name__ == '__main__':
rostest.run(PKG, NAME, TestRostopicOnline, sys.argv)
diff --git a/utilities/roswtf/test/test_roswtf_command_line_offline.py b/utilities/roswtf/test/test_roswtf_command_line_offline.py
index 5a7aec0..e91b055 100644
--- a/utilities/roswtf/test/test_roswtf_command_line_offline.py
+++ b/utilities/roswtf/test/test_roswtf_command_line_offline.py
@@ -94,13 +94,26 @@ class TestRoswtfOffline(unittest.TestCase):
# run roswtf nakedly
output = Popen([cmd], **kwds).communicate()
output = [o.decode() for o in output]
- # - due both a positive and negative test
- self.assert_('No errors or warnings' in output[0], "OUTPUT[%s]"%str(output))
- self.assert_('ERROR' not in output[0], "OUTPUT[%s]"%str(output))
+
+ # there should either be no errors or warnings or
+ # there should be exactly one error about rosdep not being initialized
+ self._check_output(output[0])
# run roswtf on a simple launch file offline
p = os.path.join(get_test_path(), 'min.launch')
output = Popen([cmd, p], **kwds).communicate()[0]
output = output.decode()
- self.assert_('No errors or warnings' in output, "OUTPUT[%s]"%output)
- self.assert_('ERROR' not in output, "OUTPUT[%s]"%output)
+ self._check_output(output)
+
+ def _check_output(self, output):
+ # do both a positive and negative test
+ self.assert_(
+ 'No errors or warnings' in output or 'Found 1 error' in output,
+ 'OUTPUT[%s]' % output)
+ if 'No errors or warnings' in output:
+ self.assert_('ERROR' not in output, 'OUTPUT[%s]' % output)
+ if 'Found 1 error' in output:
+ self.assert_(output.count('ERROR') == 1, 'OUTPUT[%s]' % output)
+ self.assert_(
+ 'Error: the rosdep view is empty' not in output,
+ 'OUTPUT[%s]' % output)
diff --git a/utilities/xmlrpcpp/CHANGELOG.rst b/utilities/xmlrpcpp/CHANGELOG.rst
index 3474466..955f4f7 100644
--- a/utilities/xmlrpcpp/CHANGELOG.rst
+++ b/utilities/xmlrpcpp/CHANGELOG.rst
@@ -2,6 +2,10 @@
Changelog for package xmlrpcpp
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1.12.1 (2016-04-18)
+-------------------
+* use directory specific compiler flags (`#785 <https://github.com/ros/ros_comm/pull/785>`_)
+
1.12.0 (2016-03-18)
-------------------
diff --git a/utilities/xmlrpcpp/CMakeLists.txt b/utilities/xmlrpcpp/CMakeLists.txt
index a4f6bec..dfcd0a5 100644
--- a/utilities/xmlrpcpp/CMakeLists.txt
+++ b/utilities/xmlrpcpp/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.3)
project(xmlrpcpp)
if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
+ set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Wextra")
endif()
find_package(catkin REQUIRED COMPONENTS cpp_common)
diff --git a/utilities/xmlrpcpp/package.xml b/utilities/xmlrpcpp/package.xml
index a9703b7..8ffe384 100644
--- a/utilities/xmlrpcpp/package.xml
+++ b/utilities/xmlrpcpp/package.xml
@@ -1,6 +1,6 @@
<package>
<name>xmlrpcpp</name>
- <version>1.12.0</version>
+ <version>1.12.1</version>
<description>
XmlRpc++ is a C++ implementation of the XML-RPC protocol. This version is
heavily modified from the package available on SourceForge in order to
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ros/ros-ros-comm.git
More information about the debian-science-commits
mailing list