[ros-ros-comm] 01/03: New upstream version 1.12.6

Jochen Sprickerhof jspricke at moszumanska.debian.org
Fri Nov 4 08:29:49 UTC 2016


This is an automated email from the git hooks/post-receive script.

jspricke pushed a commit to annotated tag debian/1.12.6-1
in repository ros-ros-comm.

commit e8b1a76bd38e3b49aca27ea5219d2a0ddd8a2af8
Author: Jochen Sprickerhof <git at jochen.sprickerhof.de>
Date:   Fri Nov 4 09:26:55 2016 +0100

    New upstream version 1.12.6
---
 clients/roscpp/CHANGELOG.rst                       |  3 ++
 clients/roscpp/package.xml                         |  2 +-
 clients/rospy/CHANGELOG.rst                        |  5 +++
 clients/rospy/package.xml                          |  2 +-
 clients/rospy/src/rospy/impl/masterslave.py        | 16 ++++----
 clients/rospy/src/rospy/impl/tcpros_base.py        | 25 ++++++++---
 clients/rospy/src/rospy/impl/tcpros_pubsub.py      |  4 +-
 clients/rospy/src/rospy/rostime.py                 | 25 ++---------
 ros_comm/CHANGELOG.rst                             |  3 ++
 ros_comm/package.xml                               |  2 +-
 test/test_rosbag/package.xml                       |  2 +-
 test/test_rosbag_storage/package.xml               |  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                         |  4 ++
 tools/rosbag/package.xml                           |  2 +-
 tools/rosbag/src/rosbag/migration.py               |  2 +-
 tools/rosbag_storage/CHANGELOG.rst                 |  3 ++
 tools/rosbag_storage/package.xml                   |  2 +-
 tools/rosconsole/CHANGELOG.rst                     |  5 +++
 tools/rosconsole/include/ros/console.h             |  1 +
 tools/rosconsole/package.xml                       |  2 +-
 tools/rosconsole/src/rosconsole/rosconsole.cpp     | 21 +++++++---
 tools/rosgraph/CHANGELOG.rst                       |  5 +++
 tools/rosgraph/package.xml                         |  2 +-
 tools/rosgraph/src/rosgraph/roslogging.py          | 48 ++++++++++------------
 tools/rosgraph/src/rosgraph/xmlrpc.py              |  3 ++
 tools/roslaunch/CHANGELOG.rst                      |  4 ++
 tools/roslaunch/cmake/roslaunch-extras.cmake.em    | 11 ++++-
 tools/roslaunch/package.xml                        |  2 +-
 tools/rosmaster/CHANGELOG.rst                      |  3 ++
 tools/rosmaster/package.xml                        |  2 +-
 tools/rosmsg/CHANGELOG.rst                         |  3 ++
 tools/rosmsg/package.xml                           |  2 +-
 tools/rosnode/CHANGELOG.rst                        |  3 ++
 tools/rosnode/package.xml                          |  2 +-
 tools/rosout/CHANGELOG.rst                         |  3 ++
 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                        |  3 ++
 tools/rostest/package.xml                          |  2 +-
 tools/rostopic/CHANGELOG.rst                       |  4 ++
 tools/rostopic/package.xml                         |  2 +-
 tools/rostopic/src/rostopic/__init__.py            |  4 +-
 tools/topic_tools/CHANGELOG.rst                    |  3 ++
 tools/topic_tools/package.xml                      |  2 +-
 utilities/message_filters/CHANGELOG.rst            |  4 ++
 .../include/message_filters/simple_filter.h        |  3 +-
 utilities/message_filters/package.xml              |  2 +-
 utilities/roslz4/CHANGELOG.rst                     |  3 ++
 utilities/roslz4/package.xml                       |  2 +-
 utilities/roswtf/CHANGELOG.rst                     |  3 ++
 utilities/roswtf/package.xml                       |  2 +-
 utilities/xmlrpcpp/CHANGELOG.rst                   |  3 ++
 utilities/xmlrpcpp/package.xml                     |  2 +-
 65 files changed, 194 insertions(+), 106 deletions(-)

diff --git a/clients/roscpp/CHANGELOG.rst b/clients/roscpp/CHANGELOG.rst
index a73db2f..8107a5d 100644
--- a/clients/roscpp/CHANGELOG.rst
+++ b/clients/roscpp/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package roscpp
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/clients/roscpp/package.xml b/clients/roscpp/package.xml
index 64bc9df..f8ea44c 100644
--- a/clients/roscpp/package.xml
+++ b/clients/roscpp/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>roscpp</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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 c7187ea..b8ac0e8 100644
--- a/clients/rospy/CHANGELOG.rst
+++ b/clients/rospy/CHANGELOG.rst
@@ -2,6 +2,11 @@
 Changelog for package rospy
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+* improve reconnection logic on timeout and other common errors (`#851 <https://github.com/ros/ros_comm/pull/851>`_)
+* remove duplicated function (`#783 <https://github.com/ros/ros_comm/pull/783>`_)
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/clients/rospy/package.xml b/clients/rospy/package.xml
index 60ddd23..e0ca818 100644
--- a/clients/rospy/package.xml
+++ b/clients/rospy/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rospy</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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/clients/rospy/src/rospy/impl/masterslave.py b/clients/rospy/src/rospy/impl/masterslave.py
index 5af6df4..d25261c 100644
--- a/clients/rospy/src/rospy/impl/masterslave.py
+++ b/clients/rospy/src/rospy/impl/masterslave.py
@@ -437,20 +437,22 @@ class ROSHandler(XmlRpcHandler):
         #    individual socket timeouts, but this could potentially
         #    affect user code.
         socket.setdefaulttimeout(60.)
-        tries = 0
-        max_num_tries = 3
         success = False
-        while not success:
-            tries += 1
+        interval = 0.5  # seconds
+        # while the ROS node is not shutdown try to get the topic information
+        # and retry on connections problems after some wait
+        while not success and not is_shutdown():
             try:
                 code, msg, result = \
                       xmlrpcapi(pub_uri).requestTopic(caller_id, topic, protocols)
                 success = True
             except Exception as e:
-                if tries >= max_num_tries:
-                    return 0, "unable to requestTopic: %s"%str(e), 0
-                else:
+                if not is_shutdown():
                     _logger.debug("Retrying for %s" % topic)
+                    if interval < 30.0:
+                        # exponential backoff (maximum 32 seconds)
+                        interval = interval * 2
+                    time.sleep(interval)
 
         #Create the connection (if possible)
         if code <= 0:
diff --git a/clients/rospy/src/rospy/impl/tcpros_base.py b/clients/rospy/src/rospy/impl/tcpros_base.py
index 40179c6..134af0a 100644
--- a/clients/rospy/src/rospy/impl/tcpros_base.py
+++ b/clients/rospy/src/rospy/impl/tcpros_base.py
@@ -562,10 +562,23 @@ class TCPROSTransport(Transport):
             raise
         except Exception as e:
             #logerr("Unknown error initiating TCP/IP socket to %s:%s (%s): %s"%(dest_addr, dest_port, endpoint_id, str(e)))
-            rospywarn("Unknown error initiating TCP/IP socket to %s:%s (%s): %s"%(dest_addr, dest_port, endpoint_id, traceback.format_exc()))            
-
-            # FATAL: no reconnection as error is unknown
-            self.close()
+            rospywarn("Unknown error initiating TCP/IP socket to %s:%s (%s): %s"%(dest_addr, dest_port, endpoint_id, traceback.format_exc()))
+            # check for error type and reason. On unknown errors the socket will be closed
+            # to avoid reconnection and error reproduction
+            if not isinstance(e, socket.error):
+                # FATAL: no reconnection as error is unknown
+                self.close()
+            elif not isinstance(e, socket.timeout) and e.errno not in [100, 101, 102, 103, 110, 112, 113]:
+                # reconnect in follow cases, otherwise close the socket:
+                # 1. socket.timeout: on timeouts caused by delays on wireless links
+                # 2. ENETDOWN (100), ENETUNREACH (101), ENETRESET (102), ECONNABORTED (103):
+                #     while using ROS_HOSTNAME ros binds to a specific interface. Theses errors
+                #     are thrown on interface shutdown e.g. on reconnection in LTE networks
+                # 3. ETIMEDOUT (110): same like 1. (for completeness)
+                # 4. EHOSTDOWN (112), EHOSTUNREACH (113): while network and/or DNS-server is not reachable
+                #
+                # no reconnection as error is not 1.-4.
+                self.close()
             raise TransportInitError(str(e)) #re-raise i/o error
                 
     def _validate_header(self, header):
@@ -737,8 +750,8 @@ class TCPROSTransport(Transport):
             except TransportInitError:
                 self.socket = None
                 
-            if self.socket is None:
-                # exponential backoff
+            if self.socket is None and interval < 30.:
+                # exponential backoff (maximum 32 seconds)
                 interval = interval * 2
                 
             time.sleep(interval)
diff --git a/clients/rospy/src/rospy/impl/tcpros_pubsub.py b/clients/rospy/src/rospy/impl/tcpros_pubsub.py
index 1abcf29..a30d1b6 100644
--- a/clients/rospy/src/rospy/impl/tcpros_pubsub.py
+++ b/clients/rospy/src/rospy/impl/tcpros_pubsub.py
@@ -173,7 +173,9 @@ def robust_connect_subscriber(conn, dest_addr, dest_port, pub_uri, receive_cb, r
                 conn.done = True
                 break
             rospyerr("unable to create subscriber transport: %s.  Will try again in %ss", e, interval)
-            interval = interval * 2
+            if interval < 30.0:
+              # exponential backoff (maximum 32 seconds)
+              interval = interval * 2
             time.sleep(interval)
             
             # check to see if publisher state has changed
diff --git a/clients/rospy/src/rospy/rostime.py b/clients/rospy/src/rospy/rostime.py
index 0b87179..86cf9a7 100644
--- a/clients/rospy/src/rospy/rostime.py
+++ b/clients/rospy/src/rospy/rostime.py
@@ -154,9 +154,8 @@ class Time(genpy.Time):
         """
         return get_rostime()
 
-    # have to reproduce super class implementation to return correct typing
-    
-    def from_seconds(float_secs):
+    @classmethod
+    def from_seconds(cls, float_secs):
         """
         Use Time.from_sec() instead. Retained for backwards compatibility.
         
@@ -165,25 +164,7 @@ class Time(genpy.Time):
         @return: Time instance for specified time
         @rtype: L{Time}
         """
-        return Time.from_sec(float_secs)
-    
-    from_seconds = staticmethod(from_seconds)
-
-    def from_sec(float_secs):
-        """
-        Create new Time instance from a float seconds representation
-        (e.g. time.time()).
-        
-        @param float_secs: time value in time.time() format
-        @type  float_secs: float
-        @return: Time instance for specified time
-        @rtype: L{Time}
-        """
-        secs = int(float_secs)
-        nsecs = int((float_secs - secs) * 1000000000)
-        return Time(secs, nsecs)
-    
-    from_sec = staticmethod(from_sec)
+        return cls.from_sec(float_secs)
     
 def _set_rostime(t):
     """Callback to update ROS time from a ROS Topic"""
diff --git a/ros_comm/CHANGELOG.rst b/ros_comm/CHANGELOG.rst
index 0f0d28b..e861184 100644
--- a/ros_comm/CHANGELOG.rst
+++ b/ros_comm/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package ros_comm
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/ros_comm/package.xml b/ros_comm/package.xml
index 381c34e..fc9d10e 100644
--- a/ros_comm/package.xml
+++ b/ros_comm/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>ros_comm</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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/package.xml b/test/test_rosbag/package.xml
index cba9adf..ab8234c 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.5</version>
+  <version>1.12.6</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 7cff6ad..7d79e04 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.5</version>
+  <version>1.12.6</version>
   <description>
     A package containing the unit tests for rosbag_storage.
   </description>
diff --git a/test/test_roscpp/package.xml b/test/test_roscpp/package.xml
index 19cc171..52fd0e1 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.5</version>
+  <version>1.12.6</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 8f6caf7..363dbb7 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.5</version>
+  <version>1.12.6</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 685d3be..8172738 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.5</version>
+  <version>1.12.6</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 24182ee..41513cf 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.5</version>
+  <version>1.12.6</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 db222e4..12da827 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.5</version>
+  <version>1.12.6</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 a6beb71..ba45758 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.5</version>
+  <version>1.12.6</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 1484c04..9fe275a 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.5</version>
+  <version>1.12.6</version>
   <description>
     rospy unit and integration test framework.
   </description>
diff --git a/test/test_rosservice/package.xml b/test/test_rosservice/package.xml
index a761e56..f790c24 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.5</version>
+  <version>1.12.6</version>
   <description>
     Tests for the rosservice tool.
   </description>
diff --git a/test/test_rostopic/package.xml b/test/test_rostopic/package.xml
index 32daaa8..c1718d3 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.5</version>
+  <version>1.12.6</version>
   <description>
     Tests for rostopic.
   </description>
diff --git a/tools/rosbag/CHANGELOG.rst b/tools/rosbag/CHANGELOG.rst
index 0f00c7a..59bd38e 100644
--- a/tools/rosbag/CHANGELOG.rst
+++ b/tools/rosbag/CHANGELOG.rst
@@ -2,6 +2,10 @@
 Changelog for package rosbag
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+* fix BagMigrationException in migrate_raw (`#917 <https://github.com/ros/ros_comm/issues/917>`_)
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/rosbag/package.xml b/tools/rosbag/package.xml
index b7f1b85..bad816c 100644
--- a/tools/rosbag/package.xml
+++ b/tools/rosbag/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rosbag</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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/migration.py b/tools/rosbag/src/rosbag/migration.py
index 840c292..19ea6b1 100644
--- a/tools/rosbag/src/rosbag/migration.py
+++ b/tools/rosbag/src/rosbag/migration.py
@@ -1039,7 +1039,7 @@ class MessageMigrator(object):
         path = self.find_path(msg_from[4], msg_to[4])
 
         if False in [sn.rule.valid for sn in path]:
-            raise BagMigrationException("Migrate called, but no valid migration path from [%s] to [%s]"%(msg_from._type, msg_to._type))
+            raise BagMigrationException("Migrate called, but no valid migration path from [%s] to [%s]"%(msg_from[0], msg_to[0]))
 
         # Short cut to speed up case of matching md5sum:
         if path == [] or msg_from[2] == msg_to[2]:
diff --git a/tools/rosbag_storage/CHANGELOG.rst b/tools/rosbag_storage/CHANGELOG.rst
index 57f356f..0b13730 100644
--- a/tools/rosbag_storage/CHANGELOG.rst
+++ b/tools/rosbag_storage/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package rosbag_storage
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/rosbag_storage/package.xml b/tools/rosbag_storage/package.xml
index a33a9c6..d88f581 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.5</version>
+  <version>1.12.6</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 5b06dd6..bcb9060 100644
--- a/tools/rosconsole/CHANGELOG.rst
+++ b/tools/rosconsole/CHANGELOG.rst
@@ -2,6 +2,11 @@
 Changelog for package rosconsole
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+* add missing walltime to roscpp logging (`#879 <https://github.com/ros/ros_comm/pull/879>`_)
+* fix building on GCC-6 (`#911 <https://github.com/ros/ros_comm/pull/911>`_)
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/rosconsole/include/ros/console.h b/tools/rosconsole/include/ros/console.h
index 4d2a86b..28901d7 100644
--- a/tools/rosconsole/include/ros/console.h
+++ b/tools/rosconsole/include/ros/console.h
@@ -40,6 +40,7 @@
 #include <cstdarg>
 #include <ros/macros.h>
 #include <map>
+#include <vector>
 
 #ifdef ROSCONSOLE_BACKEND_LOG4CXX
 #include "log4cxx/level.h"
diff --git a/tools/rosconsole/package.xml b/tools/rosconsole/package.xml
index bae2984..8fc34d9 100644
--- a/tools/rosconsole/package.xml
+++ b/tools/rosconsole/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rosconsole</name>
-  <version>1.12.5</version>
+  <version>1.12.6</version>
   <description>ROS console output library.</description>
   <maintainer email="dthomas at osrfoundation.org">Dirk Thomas</maintainer>
   <license>BSD</license>
diff --git a/tools/rosconsole/src/rosconsole/rosconsole.cpp b/tools/rosconsole/src/rosconsole/rosconsole.cpp
index 1331ae1..d07d90a 100644
--- a/tools/rosconsole/src/rosconsole/rosconsole.cpp
+++ b/tools/rosconsole/src/rosconsole/rosconsole.cpp
@@ -203,18 +203,25 @@ struct TimeToken : public Token
   virtual std::string getString(void*, ::ros::console::Level, const char*, const char*, const char*, int)
   {
     std::stringstream ss;
+    ss << ros::WallTime::now();
     if (ros::Time::isValid() && ros::Time::isSimTime())
     {
-      ss << ros::WallTime::now() << ", " << ros::Time::now();
-    }
-    else
-    {
-      ss << ros::WallTime::now();
+      ss << ", " << ros::Time::now();
     }
     return ss.str();
   }
 };
 
+struct WallTimeToken : public Token
+{
+  virtual std::string getString(void*, ::ros::console::Level, const char*, const char*, const char*, int)
+  {
+    std::stringstream ss;
+    ss << ros::WallTime::now();
+    return ss.str();
+  }
+};
+
 struct ThreadToken : public Token
 {
   virtual std::string getString(void*, ::ros::console::Level, const char*, const char*, const char*, int)
@@ -278,6 +285,10 @@ TokenPtr createTokenFromType(const std::string& type)
   {
     return TokenPtr(boost::make_shared<TimeToken>());
   }
+  else if (type == "walltime")
+  {
+    return TokenPtr(boost::make_shared<WallTimeToken>());
+  }
   else if (type == "thread")
   {
     return TokenPtr(boost::make_shared<ThreadToken>());
diff --git a/tools/rosgraph/CHANGELOG.rst b/tools/rosgraph/CHANGELOG.rst
index a7bb6da..88eae1a 100644
--- a/tools/rosgraph/CHANGELOG.rst
+++ b/tools/rosgraph/CHANGELOG.rst
@@ -2,6 +2,11 @@
 Changelog for package rosgraph
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+* change rospy default rosconsole format for consistency with roscpp (`#879 <https://github.com/ros/ros_comm/pull/879>`_)
+* increase request_queue_size for xmlrpc server (`#849 <https://github.com/ros/ros_comm/issues/849>`_)
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/rosgraph/package.xml b/tools/rosgraph/package.xml
index 23a694e..7de8943 100644
--- a/tools/rosgraph/package.xml
+++ b/tools/rosgraph/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rosgraph</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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/roslogging.py b/tools/rosgraph/src/rosgraph/roslogging.py
index 2f0a7cd..e4cfafe 100644
--- a/tools/rosgraph/src/rosgraph/roslogging.py
+++ b/tools/rosgraph/src/rosgraph/roslogging.py
@@ -174,33 +174,27 @@ class RosStreamHandler(logging.Handler):
     def emit(self, record):
         level, color = _logging_to_rospy_names[record.levelname]
         record_message = _defaultFormatter.format(record)
-        if 'ROSCONSOLE_FORMAT' in os.environ.keys():
-            msg = os.environ['ROSCONSOLE_FORMAT']
-            msg = msg.replace('${severity}', level)
-            msg = msg.replace('${message}', str(record_message))
-            msg = msg.replace('${walltime}', '%f' % time.time())
-            msg = msg.replace('${thread}', str(record.thread))
-            msg = msg.replace('${logger}', str(record.name))
-            msg = msg.replace('${file}', str(record.pathname))
-            msg = msg.replace('${line}', str(record.lineno))
-            msg = msg.replace('${function}', str(record.funcName))
-            try:
-                from rospy import get_name
-                node_name = get_name()
-            except ImportError:
-                node_name = '<unknown_node_name>'
-            msg = msg.replace('${node}', node_name)
-            if self._get_time is not None and not self._is_wallclock():
-                t = self._get_time()
-            else:
-                t = time.time()
-            msg = msg.replace('${time}', '%f' % t)
-            msg += '\n'
-        else:
-            msg = '[%s] [WallTime: %f]' % (level, time.time())
-            if self._get_time is not None and not self._is_wallclock():
-                msg += ' [%f]' % self._get_time()
-            msg += ' %s\n' % record_message
+        msg = os.environ.get(
+            'ROSCONSOLE_FORMAT', '[${severity}] [${time}]: ${message}')
+        msg = msg.replace('${severity}', level)
+        msg = msg.replace('${message}', str(record_message))
+        msg = msg.replace('${walltime}', '%f' % time.time())
+        msg = msg.replace('${thread}', str(record.thread))
+        msg = msg.replace('${logger}', str(record.name))
+        msg = msg.replace('${file}', str(record.pathname))
+        msg = msg.replace('${line}', str(record.lineno))
+        msg = msg.replace('${function}', str(record.funcName))
+        try:
+            from rospy import get_name
+            node_name = get_name()
+        except ImportError:
+            node_name = '<unknown_node_name>'
+        msg = msg.replace('${node}', node_name)
+        time_str = '%f' % time.time()
+        if self._get_time is not None and not self._is_wallclock():
+            time_str += ', %f' % self._get_time()
+        msg = msg.replace('${time}', time_str)
+        msg += '\n'
         if record.levelno < logging.WARNING:
             self._write(sys.stdout, msg, color)
         else:
diff --git a/tools/rosgraph/src/rosgraph/xmlrpc.py b/tools/rosgraph/src/rosgraph/xmlrpc.py
index 7d9aad8..2cf043f 100644
--- a/tools/rosgraph/src/rosgraph/xmlrpc.py
+++ b/tools/rosgraph/src/rosgraph/xmlrpc.py
@@ -93,6 +93,9 @@ class ThreadingXMLRPCServer(socketserver.ThreadingMixIn, SimpleXMLRPCServer):
         # to True to allow quick restart on the same port.  This is equivalent 
         # to calling setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
         self.allow_reuse_address = True
+        # Increase request_queue_size to handle issues with many simultaneous
+        # connections in OSX 10.11
+        self.request_queue_size = min(socket.SOMAXCONN, 128)
         if rosgraph.network.use_ipv6():
             logger = logging.getLogger('xmlrpc')
             # The XMLRPC library does not support IPv6 out of the box
diff --git a/tools/roslaunch/CHANGELOG.rst b/tools/roslaunch/CHANGELOG.rst
index 3482750..5e2ff47 100644
--- a/tools/roslaunch/CHANGELOG.rst
+++ b/tools/roslaunch/CHANGELOG.rst
@@ -2,6 +2,10 @@
 Changelog for package roslaunch
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+* add USE_TEST_DEPENDENCIES option to roslaunch_add_file_check() (`#910 <https://github.com/ros/ros_comm/pull/910>`_)
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/roslaunch/cmake/roslaunch-extras.cmake.em b/tools/roslaunch/cmake/roslaunch-extras.cmake.em
index 533c083..cb23fd0 100644
--- a/tools/roslaunch/cmake/roslaunch-extras.cmake.em
+++ b/tools/roslaunch/cmake/roslaunch-extras.cmake.em
@@ -17,12 +17,15 @@ set(roslaunch_check_script ${roslaunch_DIR}/../scripts/roslaunch-check)
 # :param DEPENDENCIES: the targets which must be built before executing
 #   the test
 # :type DEPENDENCIES: list of strings
+# :param USE_TEST_DEPENDENCIES: beside run dependencies also consider test
+#   dependencies when checking if all dependencies of a launch file are present
+# :type USE_TEST_DEPENDENCIES: option
 # :param ARGV: arbitrary arguments in the form 'key=value'
 #   which will be set as environment variables
 # :type ARGV: string
 #
 function(roslaunch_add_file_check path)
-  cmake_parse_arguments(_roslaunch "" "" "DEPENDENCIES" ${ARGN})
+  cmake_parse_arguments(_roslaunch "USE_TEST_DEPENDENCIES" "" "DEPENDENCIES" ${ARGN})
   if(IS_ABSOLUTE ${path})
     set(abspath ${path})
   else()
@@ -52,6 +55,10 @@ function(roslaunch_add_file_check path)
   set(cmd "${CMAKE_COMMAND} -E make_directory ${output_path}")
   set(output_file_name "roslaunch-check_${testname}.xml")
   string(REPLACE ";" " " _roslaunch_UNPARSED_ARGUMENTS "${_roslaunch_UNPARSED_ARGUMENTS}")
-  set(cmd ${cmd} "${roslaunch_check_script} -o '${output_path}/${output_file_name}' '${abspath}' ${_roslaunch_UNPARSED_ARGUMENTS}")
+  set(use_test_dependencies "")
+  if(${_roslaunch_USE_TEST_DEPENDENCIES})
+    set(use_test_dependencies " -t")
+  endif()
+  set(cmd ${cmd} "${roslaunch_check_script} -o '${output_path}/${output_file_name}'${use_test_dependencies} '${abspath}' ${_roslaunch_UNPARSED_ARGUMENTS}")
   catkin_run_tests_target("roslaunch-check" ${testname} "${output_file_name}" COMMAND ${cmd} DEPENDENCIES ${_roslaunch_DEPENDENCIES})
 endfunction()
diff --git a/tools/roslaunch/package.xml b/tools/roslaunch/package.xml
index b54ebf7..dcafa2f 100644
--- a/tools/roslaunch/package.xml
+++ b/tools/roslaunch/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>roslaunch</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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/rosmaster/CHANGELOG.rst b/tools/rosmaster/CHANGELOG.rst
index bca6e1d..2e0e405 100644
--- a/tools/rosmaster/CHANGELOG.rst
+++ b/tools/rosmaster/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package rosmaster
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/rosmaster/package.xml b/tools/rosmaster/package.xml
index a5ea5ad..ded9c60 100644
--- a/tools/rosmaster/package.xml
+++ b/tools/rosmaster/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rosmaster</name>
-  <version>1.12.5</version>
+  <version>1.12.6</version>
   <description>
     ROS <a href="http://ros.org/wiki/Master">Master</a> implementation.
   </description>
diff --git a/tools/rosmsg/CHANGELOG.rst b/tools/rosmsg/CHANGELOG.rst
index a3d1ae9..9a6eeca 100644
--- a/tools/rosmsg/CHANGELOG.rst
+++ b/tools/rosmsg/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package rosmsg
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/rosmsg/package.xml b/tools/rosmsg/package.xml
index a944199..f2acb02 100644
--- a/tools/rosmsg/package.xml
+++ b/tools/rosmsg/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rosmsg</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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 33995e8..c2b403b 100644
--- a/tools/rosnode/CHANGELOG.rst
+++ b/tools/rosnode/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package rosnode
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/rosnode/package.xml b/tools/rosnode/package.xml
index 2a5f045..f1e4063 100644
--- a/tools/rosnode/package.xml
+++ b/tools/rosnode/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rosnode</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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 f9de7d9..99af09f 100644
--- a/tools/rosout/CHANGELOG.rst
+++ b/tools/rosout/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package rosout
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/rosout/package.xml b/tools/rosout/package.xml
index d15e540..84c8b1c 100644
--- a/tools/rosout/package.xml
+++ b/tools/rosout/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rosout</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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 0dfff96..89892f0 100644
--- a/tools/rosparam/CHANGELOG.rst
+++ b/tools/rosparam/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package rosparam
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/rosparam/package.xml b/tools/rosparam/package.xml
index a448ad9..394e80f 100644
--- a/tools/rosparam/package.xml
+++ b/tools/rosparam/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rosparam</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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 35fdfba..00ea319 100644
--- a/tools/rosservice/CHANGELOG.rst
+++ b/tools/rosservice/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package rosservice
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/rosservice/package.xml b/tools/rosservice/package.xml
index 1f89c3d..a0a3b67 100644
--- a/tools/rosservice/package.xml
+++ b/tools/rosservice/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rosservice</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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 c4755dd..f491436 100644
--- a/tools/rostest/CHANGELOG.rst
+++ b/tools/rostest/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package rostest
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/rostest/package.xml b/tools/rostest/package.xml
index 0765631..947f681 100644
--- a/tools/rostest/package.xml
+++ b/tools/rostest/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rostest</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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 c476e8a..f851856 100644
--- a/tools/rostopic/CHANGELOG.rst
+++ b/tools/rostopic/CHANGELOG.rst
@@ -2,6 +2,10 @@
 Changelog for package rostopic
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+* fix typo of arg for _str_plot function (`#915 <https://github.com/ros/ros_comm/issues/915>`_)
+
 1.12.5 (2016-09-30)
 -------------------
 * fix regression with rostopic echo for primitive fields from 1.12.3 (`#909 <https://github.com/ros/ros_comm/issues/909>`_)
diff --git a/tools/rostopic/package.xml b/tools/rostopic/package.xml
index 9e8d0c8..212b1b1 100644
--- a/tools/rostopic/package.xml
+++ b/tools/rostopic/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>rostopic</name>
-  <version>1.12.5</version>
+  <version>1.12.6</version>
   <description>
     rostopic contains the rostopic command-line tool for displaying
     debug information about
diff --git a/tools/rostopic/src/rostopic/__init__.py b/tools/rostopic/src/rostopic/__init__.py
index abc41fd..f33bf0a 100644
--- a/tools/rostopic/src/rostopic/__init__.py
+++ b/tools/rostopic/src/rostopic/__init__.py
@@ -722,7 +722,7 @@ def _sub_str_plot_fields(val, f, field_filter):
     return None
 
 
-def _str_plot(val, time_offset=None, current_time=None, field_filter=None, type_information=None, fixed_numeric_width=None, value_transform_fn=None):
+def _str_plot(val, time_offset=None, current_time=None, field_filter=None, type_information=None, fixed_numeric_width=None, value_transform=None):
     """
     Convert value to matlab/octave-friendly CSV string representation.
 
@@ -730,7 +730,7 @@ def _str_plot(val, time_offset=None, current_time=None, field_filter=None, type_
     :param current_time: current :class:`genpy.Time` to use if message does not contain its own timestamp.
     :param time_offset: (optional) for time printed for message, print as offset against this :class:`genpy.Time`
     :param field_filter: filter the fields that are stringified for Messages, ``fn(Message)->iter(str)``
-    :param value_transform_fn: Not used but for same API as CallbackEcho.custom_strify_message
+    :param value_transform: Not used but for same API as CallbackEcho.custom_strify_message
     :returns: comma-separated list of field values in val, ``str``
     """
         
diff --git a/tools/topic_tools/CHANGELOG.rst b/tools/topic_tools/CHANGELOG.rst
index b207f57..7e87fb1 100644
--- a/tools/topic_tools/CHANGELOG.rst
+++ b/tools/topic_tools/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package topic_tools
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/tools/topic_tools/package.xml b/tools/topic_tools/package.xml
index 174ec70..341e3fc 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.5</version>
+  <version>1.12.6</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/utilities/message_filters/CHANGELOG.rst b/utilities/message_filters/CHANGELOG.rst
index d9031b5..ba69af8 100644
--- a/utilities/message_filters/CHANGELOG.rst
+++ b/utilities/message_filters/CHANGELOG.rst
@@ -2,6 +2,10 @@
 Changelog for package message_filters
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+* use boost::bind to bind the callback function (`#906 <https://github.com/ros/ros_comm/pull/906>`_)
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/utilities/message_filters/include/message_filters/simple_filter.h b/utilities/message_filters/include/message_filters/simple_filter.h
index 4d434c0..2201211 100644
--- a/utilities/message_filters/include/message_filters/simple_filter.h
+++ b/utilities/message_filters/include/message_filters/simple_filter.h
@@ -93,7 +93,8 @@ public:
   template<typename P>
   Connection registerCallback(void(*callback)(P))
   {
-    return Connection(boost::bind(&Signal::removeCallback, &signal_, signal_.addCallback(callback)));
+    typename CallbackHelper1<M>::Ptr helper = signal_.template addCallback<P>(boost::bind(callback, _1));
+    return Connection(boost::bind(&Signal::removeCallback, &signal_, helper));
   }
 
   /**
diff --git a/utilities/message_filters/package.xml b/utilities/message_filters/package.xml
index 20858d1..f5d88ff 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.5</version>
+  <version>1.12.6</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 e9b3eb9..5b38e47 100644
--- a/utilities/roslz4/CHANGELOG.rst
+++ b/utilities/roslz4/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package roslz4
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/utilities/roslz4/package.xml b/utilities/roslz4/package.xml
index 48ac241..29bb773 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.5</version>
+  <version>1.12.6</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/roswtf/CHANGELOG.rst b/utilities/roswtf/CHANGELOG.rst
index bc6064c..ebadb28 100644
--- a/utilities/roswtf/CHANGELOG.rst
+++ b/utilities/roswtf/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package roswtf
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/utilities/roswtf/package.xml b/utilities/roswtf/package.xml
index eb3cb2f..140f792 100644
--- a/utilities/roswtf/package.xml
+++ b/utilities/roswtf/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>roswtf</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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/xmlrpcpp/CHANGELOG.rst b/utilities/xmlrpcpp/CHANGELOG.rst
index b46ede1..2b8a7bc 100644
--- a/utilities/xmlrpcpp/CHANGELOG.rst
+++ b/utilities/xmlrpcpp/CHANGELOG.rst
@@ -2,6 +2,9 @@
 Changelog for package xmlrpcpp
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+1.12.6 (2016-10-26)
+-------------------
+
 1.12.5 (2016-09-30)
 -------------------
 
diff --git a/utilities/xmlrpcpp/package.xml b/utilities/xmlrpcpp/package.xml
index 711e0f1..b7c3956 100644
--- a/utilities/xmlrpcpp/package.xml
+++ b/utilities/xmlrpcpp/package.xml
@@ -1,6 +1,6 @@
 <package>
   <name>xmlrpcpp</name>
-  <version>1.12.5</version>
+  <version>1.12.6</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