Rosdep and EOL distros

TL;DR if you are using an EOL ROS distribution you will from now on need to pass the option --include-eol-distros to rosdep update.


The tool rosdep uses .yaml files which define the mapping of rosdep keys to system packages as well as enumerate all ROS packages for each ROS distribution.

Until recently when calling rosdep update to fetch the latest information the tool was fetching a .yaml file for every ROS distribution since groovy. Since the number of ROS distributions is continuously increasing the time it takes to fetch these files was increasing to. With the roll out of REP 153 we finally have meta information about each ROS distribution and know which ones are end-of-life. With that knowledge newer versions of rosdep (as of 0.14.0) won’t by default fetch information for EOLed ROS distributions anymore.

I you happen to still use an EOL ROS distro and want to keep using rosdep you can invoke it with the new option --include-eol-distros to keep fetching information about all ROS distributions.

1 Like

Hello,
I am happend to use old ‘hydro’ version and found problem. When they install python-rosdep , it requires python-rosdistro (>= 0.7.0) but hydro only support python-rosdistro of 0.6.9.

root@1fbf52b0247d:~# apt-get install python-rosdep   
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python-rosdep : Depends: python-rosdistro (>= 0.7.0) but 0.6.9-100 is to be installed
E: Unable to correct problems, you have held broken packages.

I’m not sure but just to update python-rosdistro of hydro to 0.6.9 to 0.7.0 may fail, because 0.7.0 require newer dpkg.

root@1fbf52b0247d:~# dpkg -i python-rosdistro_0.7.2-100_all.deb 
dpkg-deb: error: archive 'python-rosdistro_0.7.2-100_all.deb' contains not understood data member control.tar.xz, giving up
dpkg: error processing python-rosdistro_0.7.2-100_all.deb (--install):
 subprocess dpkg-deb --control returned error exit status 2
Errors were encountered while processing:
 python-rosdistro_0.7.2-100_all.deb

The regression you are seeing is unrelated to the announced change. It was introduced in a newer minor release (0.15.0). I commented on the PR which introduced the regression: https://github.com/ros-infrastructure/rosdep/pull/652#issuecomment-458406048 Please continue the conversation there.

1 Like