summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Ballier <aballier@gentoo.org>2019-12-12 14:49:12 +0100
committerAlexis Ballier <aballier@gentoo.org>2019-12-12 15:46:57 +0100
commitb7071607a41b9f1a1c1c19164075db4d103841b3 (patch)
tree1ae594027ad27604775d74784320026e54f49e67 /dev-ros
parentdev-ros/rostopic: Remove old (diff)
downloadgentoo-b7071607a41b9f1a1c1c19164075db4d103841b3.tar.gz
gentoo-b7071607a41b9f1a1c1c19164075db4d103841b3.tar.bz2
gentoo-b7071607a41b9f1a1c1c19164075db4d103841b3.zip
dev-ros/rostopic: upstream yaml & py3 fixes
Package-Manager: Portage-2.3.81, Repoman-2.3.20 Signed-off-by: Alexis Ballier <aballier@gentoo.org>
Diffstat (limited to 'dev-ros')
-rw-r--r--dev-ros/rostopic/files/py3.patch89
-rw-r--r--dev-ros/rostopic/files/yaml.patch71
-rw-r--r--dev-ros/rostopic/rostopic-1.14.3-r1.ebuild (renamed from dev-ros/rostopic/rostopic-1.14.3.ebuild)1
3 files changed, 161 insertions, 0 deletions
diff --git a/dev-ros/rostopic/files/py3.patch b/dev-ros/rostopic/files/py3.patch
new file mode 100644
index 000000000000..51f5da5aa778
--- /dev/null
+++ b/dev-ros/rostopic/files/py3.patch
@@ -0,0 +1,89 @@
+From 1933acfa8107a164ec825d3223d14589fefd1b5b Mon Sep 17 00:00:00 2001
+From: Dirk Thomas <dirk-thomas@users.noreply.github.com>
+Date: Tue, 6 Aug 2019 16:06:51 -0700
+Subject: [PATCH] more Python 3 compatibility (#1783)
+
+---
+ test/test_rospy/test/unit/test_genmsg_py.py | 6 +--
+ tools/rosgraph/src/rosgraph/roslogging.py | 2 +-
+ .../test/test_roslogging_user_logger.py | 8 +++-
+ tools/roslaunch/test/unit/test_xmlloader.py | 2 +-
+ tools/rosmsg/src/rosmsg/__init__.py | 2 +-
+ tools/rosmsg/test/test_rosmsg_command_line.py | 46 +++++++++----------
+ .../test/test_rosmsgproto_command_line.py | 20 ++++----
+ .../test_rostopic_command_line_offline.py | 44 +++++++++---------
+ 8 files changed, 67 insertions(+), 63 deletions(-)
+
+diff --git a/tools/rostopic/test/test_rostopic_command_line_offline.py b/tools/rostopic/test/test_rostopic_command_line_offline.py
+index 5dab1ad16..37a81faaa 100644
+--- a/tools/rostopic/test/test_rostopic_command_line_offline.py
++++ b/tools/rostopic/test/test_rostopic_command_line_offline.py
+@@ -48,9 +48,9 @@ def test_cmd_help(self):
+ cmd = 'rostopic'
+
+ sub = ['bw', 'echo', 'hz', 'delay', 'info', 'list', 'pub', 'type','find']
+- output = Popen([cmd], stdout=PIPE).communicate()[0]
++ output = Popen([cmd], stdout=PIPE).communicate()[0].decode()
+ self.assert_('Commands' in output)
+- output = Popen([cmd, '-h'], stdout=PIPE).communicate()[0]
++ output = Popen([cmd, '-h'], stdout=PIPE).communicate()[0].decode()
+ self.assert_('Commands' in output)
+ # make sure all the commands are in the usage
+ for c in sub:
+@@ -59,16 +59,16 @@ def test_cmd_help(self):
+
+ for c in sub:
+ output = Popen([cmd, c, '-h'], stdout=PIPE, stderr=PIPE).communicate()
+- self.assert_("usage:" in output[0].lower(), output)
++ self.assert_("usage:" in output[0].decode().lower(), output)
+ # make sure usage refers to the command
+- self.assert_("%s %s"%(cmd, c) in output[0], output)
++ self.assert_("%s %s"%(cmd, c) in output[0].decode(), output)
+
+ # test no args on commands that require args
+ for c in ['bw', 'echo', 'hz', 'delay', 'info', 'pub', 'type', 'find']:
+ output = Popen([cmd, c], stdout=PIPE, stderr=PIPE).communicate()
+- self.assert_("usage:" in output[0].lower() or "usage:" in output[1].lower(), output)
++ self.assert_("usage:" in output[0].decode().lower() or "usage:" in output[1].decode().lower(), output)
+ # make sure usage refers to the command
+- self.assert_("%s %s"%(cmd, c) in output[1], output)
++ self.assert_("%s %s"%(cmd, c) in output[1].decode(), output)
+
+ def test_offline(self):
+ cmd = 'rostopic'
+@@ -80,19 +80,19 @@ def test_offline(self):
+
+ msg = "ERROR: Unable to communicate with master!\n"
+
+- output = Popen([cmd, 'bw', 'chatter'], **kwds).communicate()
+- self.assert_(output[1].endswith(msg))
+- output = Popen([cmd, 'echo', 'chatter'], **kwds).communicate()
+- self.assert_(output[1].endswith(msg))
+- output = Popen([cmd, 'hz', 'chatter'], **kwds).communicate()
+- self.assert_(output[1].endswith(msg))
+- output = Popen([cmd, 'delay', 'chatter'], **kwds).communicate()
+- self.assert_(output[1].endswith(msg))
+- output = Popen([cmd, 'list'], **kwds).communicate()
+- self.assert_(output[1].endswith(msg))
+- output = Popen([cmd, 'pub', 'chatter', 'std_msgs/String', 'hello'], **kwds).communicate()
+- self.assert_(output[1].endswith(msg))
+- output = Popen([cmd, 'type', 'chatter'], **kwds).communicate()
+- self.assert_(output[1].endswith(msg))
+- output = Popen([cmd, 'type', 'std_msgs/String'], **kwds).communicate()
+- self.assert_(output[1].endswith(msg))
++ output = Popen([cmd, 'bw', 'chatter'], **kwds).communicate()[1].decode()
++ self.assert_(output.endswith(msg))
++ output = Popen([cmd, 'echo', 'chatter'], **kwds).communicate()[1].decode()
++ self.assert_(output.endswith(msg))
++ output = Popen([cmd, 'hz', 'chatter'], **kwds).communicate()[1].decode()
++ self.assert_(output.endswith(msg))
++ output = Popen([cmd, 'delay', 'chatter'], **kwds).communicate()[1].decode()
++ self.assert_(output.endswith(msg))
++ output = Popen([cmd, 'list'], **kwds).communicate()[1].decode()
++ self.assert_(output.endswith(msg))
++ output = Popen([cmd, 'pub', 'chatter', 'std_msgs/String', 'hello'], **kwds).communicate()[1].decode()
++ self.assert_(output.endswith(msg))
++ output = Popen([cmd, 'type', 'chatter'], **kwds).communicate()[1].decode()
++ self.assert_(output.endswith(msg))
++ output = Popen([cmd, 'type', 'std_msgs/String'], **kwds).communicate()[1].decode()
++ self.assert_(output.endswith(msg))
diff --git a/dev-ros/rostopic/files/yaml.patch b/dev-ros/rostopic/files/yaml.patch
new file mode 100644
index 000000000000..e96337b50546
--- /dev/null
+++ b/dev-ros/rostopic/files/yaml.patch
@@ -0,0 +1,71 @@
+From 29053c4832229efa7160fb944c05e3bc82e11540 Mon Sep 17 00:00:00 2001
+From: Martijn Buijs <Martijn.buijs@gmail.com>
+Date: Tue, 23 Apr 2019 18:20:12 +0200
+Subject: [PATCH] Switch to yaml.safe_load(_all) to prevent YAMLLoadWarning
+ (#1688)
+
+* Switch to yaml.safe_load(_all) to prevent YAMLLoadWarning
+
+* Change all usages of yaml.load to yaml.safe_load
+
+* Extend PyYAML's SafeLoader and use it with `yaml.load`
+
+Also added convenience functions for using this loader for reuse in
+`roslaunch`
+
+* fix typo in rosparam.yaml_load_all
+
+* Modify Loader and SafeLoader in yaml module directly
+
+* Revert whitespace change
+
+* Revert unrelated change to import through global variable construction
+---
+ clients/rospy/src/rospy/client.py | 2 +-
+ .../test/test_roslib_message.py | 2 +-
+ .../client_verification/test_slave_api.py | 2 +-
+ test/test_rosparam/test/check_rosparam.py | 8 ++---
+ .../check_rosparam_command_line_online.py | 2 +-
+ .../check_rosservice_command_line_online.py | 4 +--
+ test/test_rostopic/test/test_rostopic_unit.py | 30 +++++++++----------
+ tools/rosbag/src/rosbag/bag.py | 2 +-
+ tools/rosgraph/src/rosgraph/roslogging.py | 2 +-
+ tools/roslaunch/src/roslaunch/loader.py | 4 +--
+ .../test/unit/test_roslaunch_dump_params.py | 4 +--
+ tools/rosparam/src/rosparam/__init__.py | 7 ++++-
+ tools/rosservice/src/rosservice/__init__.py | 4 +--
+ tools/rostopic/src/rostopic/__init__.py | 6 ++--
+ tools/topic_tools/scripts/relay_field | 2 +-
+ 15 files changed, 43 insertions(+), 38 deletions(-)
+
+diff --git a/tools/rostopic/src/rostopic/__init__.py b/tools/rostopic/src/rostopic/__init__.py
+index ad244b0f0..41138562e 100644
+--- a/tools/rostopic/src/rostopic/__init__.py
++++ b/tools/rostopic/src/rostopic/__init__.py
+@@ -1779,7 +1779,7 @@ def _rostopic_cmd_pub(argv):
+ try:
+ pub_args = []
+ for arg in args[2:]:
+- pub_args.append(yaml.load(arg))
++ pub_args.append(yaml.safe_load(arg))
+ except Exception as e:
+ parser.error("Argument error: "+str(e))
+
+@@ -1822,7 +1822,7 @@ def bagy_iter():
+ try:
+ with open(filename, 'r') as f:
+ # load all documents
+- data = yaml.load_all(f)
++ data = yaml.safe_load_all(f)
+ for d in data:
+ yield [d]
+ except yaml.YAMLError as e:
+@@ -2014,7 +2014,7 @@ def stdin_yaml_arg():
+
+ if arg.strip() == '---': # End of document
+ try:
+- loaded = yaml.load(buff.rstrip())
++ loaded = yaml.safe_load(buff.rstrip())
+ except Exception as e:
+ sys.stderr.write("Invalid YAML: %s\n"%str(e))
+ if loaded is not None:
diff --git a/dev-ros/rostopic/rostopic-1.14.3.ebuild b/dev-ros/rostopic/rostopic-1.14.3-r1.ebuild
index bc869fd3fbe8..db7295a22db1 100644
--- a/dev-ros/rostopic/rostopic-1.14.3.ebuild
+++ b/dev-ros/rostopic/rostopic-1.14.3-r1.ebuild
@@ -25,3 +25,4 @@ DEPEND="${RDEPEND}
dev-python/nose[${PYTHON_USEDEP}]
)
"
+PATCHES=( "${FILESDIR}/yaml.patch" "${FILESDIR}/py3.patch" )