rosmake error [melodic - ubuntu 18.04]
Dear all,
I recently faced with the following error whenever I run rosmake * to build a set of packages using rosbuild
Exception in thread 6:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/opt/ros/melodic/lib/python2.7/dist-packages/rosmake/parallel_build.py", line 161, in run
(result, result_string) = self.rosmakeall.build(pkg, self.argument, self.build_queue.robust_build)
File "/opt/ros/melodic/lib/python2.7/dist-packages/rosmake/engine.py", line 436, in build
warning_dict = warnings.analyze()
File "/opt/ros/melodic/lib/python2.7/dist-packages/rosmake/gcc_output_parse.py", line 41, in analyze
return {(t, self.byType(t)) for t, p in self._warning_pattern_map.items()}
File "/opt/ros/melodic/lib/python2.7/dist-packages/rosmake/gcc_output_parse.py", line 41, in <setcomp>
return {(t, self.byType(t)) for t, p in self._warning_pattern_map.items()}
TypeError: unhashable type: 'list'
I am using ROS melodic in Ubuntu 18.04 :
ROS_ETC_DIR=/opt/ros/melodic/etc/ros
ROS_ROOT=/opt/ros/melodic/share/ros
ROS_MASTER_URI=http://localhost
ROS_VERSION=1
ROS_PYTHON_VERSION=2
ROSLISP_PACKAGE_DIRECTORIES=/home/hamidreza/universal_robot_ws/devel/share/common-lisp:/home/hamidreza/catkin_ws/devel/share/common-lisp
ROS_DISTRO=melodic
It should be noted that I can make the packages if I do roscd to the package and then "make" it.
I even installed fresh ubuntu but it was not helpful. Does anyone encounter this issue before?
* [update] I confirmed that it happened after updating the ubuntu by sudo apt-get update && sudo apt-get dist-upgrade
Thanks,
Hamidreza
As a quick sanity check... why are you using
rosmake
withmelodic
and Ubuntu 18.04? Rosmake was deprecated a long time ago in favor ofcatkin
. Rather than debugging some strange issue with a long-deprecated tool, just want to understand why you are even attemptingrosmake
.@jarvisschultz, we have a very big cognitive robotic system, most of the packages have been developed based on the catkin building system, while there are still several rosbuild-based tool packages.
Sounds good. Just wanted to make sure you really needed to debug the
rosmake
problemGlad you were able to fix it! The ros/ros GitHub repo would be the proper place to submit a bug report, or preferably, a PR to fix the issue.
BTW, I updated your comment to be an answer so that this question now shows up as answered. If you do submit a bug or a PR, it would be good to add a comment here linking that issue/PR
@jarvisschultz Where is the evidence that
rosmake
was deprecated? In its official ROS Wiki, the status is maintained, and no mention about the deprecation. Of course I knowcatkin_make
is much more popular, though.@akihiko Maybe deprecation is too strong of a word, but referring to catkin as merely "popular" seems too weak. I suppose you are correct that
rosmake
could still potentially work because under-the-hood it usesrospack
which works with bothrosbuild
andcatkin
packages. It would have been more correct for me to sayrosbuild
is deprecated. I tend to think ofrosmake
as arosbuild
-specific tool, but thinking about it more that is not quite right. All that said, I'm still of the opinion that you would want a compelling reason to userosmake
overcatkin_make
in a ROS1 distribution newer than Indigo.rosmake
cannot build Catkin packages.That immediately makes it unusable on any recent ROS distribution.
It's certainly deprecated -- perhaps if only already de facto.