ros-infrastructure/rospkg

CentOs 6.6 detection not working

Closed this issue · 7 comments

Has anyone got CentOS os dection working with ROS ??

I tried following the following.

[1] http://ros.org/doc/independent/api/rosdep/html/developers_guide.html
[2] http://ros.org/doc/independent/api/rosdep/html/contributing_rules.html

I get the following after following 1,2

codeuser@localhost ros_catkin_ws]$ /usr/local/bin/rosdep resolve python-rospkg
Unsupported OS: centos
Supported OSes are [osx, fedora, gentoo, opensuse, cygwin, ubuntu, arch, debian, rhel]
[codeuser@localhost ros_catkin_ws]$

Tried --os option
ROS_OS_OVERRIDE

Nothing seems to work.

Also

[codeuser@localhost ros_catkin_ws]$ /usr/local/bin/rosdep install --from-paths src --ignore-src --rosdistro indigo -y
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
rosconsole: Unsupported OS [centos]
rosparam: Unsupported OS [centos]
catkin: Unsupported OS [centos]
rosgraph: Unsupported OS [centos]
rospack: Unsupported OS [centos]
rosmake: Unsupported OS [centos]
roscpp: Unsupported OS [centos]
roslib: Unsupported OS [centos]
rosbuild: Unsupported OS [centos]
rostest: Unsupported OS [centos]
roswtf: Unsupported OS [centos]
genpy: Unsupported OS [centos]
roslisp: Unsupported OS [centos]
message_filters: Unsupported OS [centos]
rostime: Unsupported OS [centos]
roscreate: Unsupported OS [centos]
rospy: Unsupported OS [centos]
rosunit: Unsupported OS [centos]
rosbag_storage: Unsupported OS [centos]
roslaunch: Unsupported OS [centos]
cpp_common: Unsupported OS [centos]
roslz4: Unsupported OS [centos]
rosmsg: Unsupported OS [centos]
rosbag: Unsupported OS [centos]
rosclean: Unsupported OS [centos]
[codeuser@localhost ros_catkin_ws]$

Looked at all the posts but I am at a loss... Any help would be greatly appreciated.

I added a centos.py file in the rosdep2/platforms directory... Also in my forked rosdistro I added centos lines in the base.yaml file similar to rhel lines... Also added a 19-default.list pointing to my changes in the forked distro.

Thank You

Carlo

Here is more info..

[codeuser@localhost ros_catkin_ws]$ python -m rospkg.os_detect
OS Name: centos
OS Version: final/usr/local/bin/rosdep
OS Codename:
[codeuser@localhost ros_catkin_ws]$

not sure why /usr/local/bin/rosdep was added to the version.

[codeuser@localhost ros_catkin_ws]$ more /etc/redhat-release
CentOS release 6.6 (Final)

Ok I am not sure how to register my new centos.py file in rosdep2/platforms.. Not looking for it.
Any thoughts ?

[codeuser@localhost ros_catkin_ws]$ rosdep -v db
using matcher with tags [centos]
loading cached data source:
file:///home/codeuser/rosdistro/rosdep/osx-homebrew.yaml
/home/codeuser/.ros/rosdep/sources.cache/755538f3706e5e1be0d726a4ec9657fceb41de84.pickle
loading cached data source:
file:///home/codeuser/rosdistro/rosdep/base.yaml
/home/codeuser/.ros/rosdep/sources.cache/dd9b2cdf9bf4579d7a3c9774da150113103d902c.pickle
loading cached data source:
file:///home/codeuser/rosdistro/rosdep/python.yaml
/home/codeuser/.ros/rosdep/sources.cache/cbbf5fbb256f76d121f892260736ce24dfdb085f.pickle
loading cached data source:
file:///home/codeuser/rosdistro/rosdep/ruby.yaml
/home/codeuser/.ros/rosdep/sources.cache/40d41ad67888b40c2b1533571a87b411d3990fc6.pickle
loading cached data source:
file:///home/codeuser/rosdistro/releases/fuerte.yaml
/home/codeuser/.ros/rosdep/sources.cache/030171ef9dfe8ff5405ba1fbdbe60b315dc5fb21.pickle
loading cached data source:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
/home/codeuser/.ros/rosdep/sources.cache/a4b3c8956ab7a3e6d293ba33b57fac42799e69e6.pickle
loading cached data source:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
/home/codeuser/.ros/rosdep/sources.cache/b4931581ca7c5741f7ee4ac9767a1174838296f7.pickle
loading cached data source:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
/home/codeuser/.ros/rosdep/sources.cache/7cfbeed211a3f9a6507c86cebaeedb3e3c4387f8.pickle
loading cached data source:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
/home/codeuser/.ros/rosdep/sources.cache/825fae71ab9ea366e0b22e8dbe1e2948232cb2e8.pickle
loading cached data source:
https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
/home/codeuser/.ros/rosdep/sources.cache/b67f64890f6d5269c51a68744711f115a8f207ae.pickle
loading cached data source:
https://raw.githubusercontent.com/ros/rosdistro/master/groovy/distribution.yaml
/home/codeuser/.ros/rosdep/sources.cache/a75d3a0d86182afb2eb92f6c5473bf18db157d0e.pickle
loading cached data source:
https://raw.githubusercontent.com/ros/rosdistro/master/hydro/distribution.yaml
/home/codeuser/.ros/rosdep/sources.cache/6a3d722dfe2d09a104a761d77901e00b2e7a540c.pickle
loading cached data source:
https://raw.githubusercontent.com/ros/rosdistro/master/indigo/distribution.yaml
/home/codeuser/.ros/rosdep/sources.cache/f7622dadcf19914a1d2d3d8417ec62c3060c5d3e.pickle
loading cached data source:
https://raw.githubusercontent.com/ros/rosdistro/master/jade/distribution.yaml
/home/codeuser/.ros/rosdep/sources.cache/0ce507007835947045d89dfa382199f6e83de08c.pickle
loaded 14 sources
6 sources match current tags
registering installers for rosdep2.platforms.source
registering installer [source]
registering installers for rosdep2.platforms.pip
registering installer [pip]
registering installers for rosdep2.platforms.gem
registering installer [gem]
registering installers for rosdep2.platforms.arch
registering installer [pacman]
registering installers for rosdep2.platforms.cygwin
registering installer [apt-cyg]
registering installers for rosdep2.platforms.debian
registering installer [apt]
registering installers for rosdep2.platforms.gentoo
registering installer [portage]
registering installers for rosdep2.platforms.opensuse
registering installer [zypper]
registering installers for rosdep2.platforms.osx
registering installer [macports]
registering installer [homebrew]
registering installers for rosdep2.platforms.redhat
registering installer [dnf]
registering installer [yum]
registering platforms for rosdep2.platforms.arch
add installer [source] to OS [arch]
add installer [pacman] to OS [arch]
set default installer [pacman] for OS [arch]
registering platforms for rosdep2.platforms.cygwin
add installer [source] to OS [cygwin]
add installer [apt-cyg] to OS [cygwin]
set default installer [apt-cyg] for OS [cygwin]
registering platforms for rosdep2.platforms.debian
add installer [apt] to OS [debian]
add installer [pip] to OS [debian]
add installer [gem] to OS [debian]
add installer [source] to OS [debian]
set default installer [apt] for OS [debian]
add installer [apt] to OS [ubuntu]
add installer [pip] to OS [ubuntu]
add installer [gem] to OS [ubuntu]
add installer [source] to OS [ubuntu]
set default installer [apt] for OS [ubuntu]
registering platforms for rosdep2.platforms.gentoo
add installer [portage] to OS [gentoo]
add installer [source] to OS [gentoo]
set default installer [portage] for OS [gentoo]
registering platforms for rosdep2.platforms.opensuse
add installer [source] to OS [opensuse]
add installer [zypper] to OS [opensuse]
set default installer [zypper] for OS [opensuse]
registering platforms for rosdep2.platforms.osx
add installer [homebrew] to OS [osx]
add installer [macports] to OS [osx]
add installer [pip] to OS [osx]
add installer [source] to OS [osx]
set default installer [homebrew] for OS [osx]
registering platforms for rosdep2.platforms.redhat
add installer [pip] to OS [fedora]
add installer [dnf] to OS [fedora]
add installer [yum] to OS [fedora]
add installer [source] to OS [fedora]
set default installer [yum] for OS [fedora]
add installer [pip] to OS [rhel]
add installer [yum] to OS [rhel]
add installer [source] to OS [rhel]
set default installer [yum] for OS [rhel]
Unsupported OS: centos
Supported OSes are [osx, fedora, gentoo, opensuse, cygwin, ubuntu, arch, debian, rhel]

It looks like the version detection is not quite working correctly on 6.6: I'd debug this method: https://github.com/ros-infrastructure/rospkg/blob/master/src/rospkg/os_detect.py#L324

For registering your new os platform in rosdep you should look here: https://github.com/ros-infrastructure/rosdep/blob/master/src/rosdep2/__init__.py#L57

And you'll want to extend the redhat.py to register centos: https://github.com/ros-infrastructure/rosdep/blob/master/src/rosdep2/platforms/redhat.py

And you'll probably want to alias centos versions to rhel versions so as to reuse the package definitions instead of maintaining parallel versions. Like linaro is an alias to ubuntu: https://github.com/ros-infrastructure/rosdep/blob/master/src/rosdep2/platforms/debian.py#L61

Yes I have been trying to debugging the method by running the os_detect.py .. Something is does not appear to be working right.

Also I have tried modifying the init.py to register new platform but it seems like it is not taking my changes. I am pointing to python2.7 but when I make changes it does not take 2.7 changes. I also have 2.6 due to CentOs yum needs it and I had started with 2.6 without knowing later a package needed 2.7.. So I have been trying to keep 2.7 seperate

Then same with extending redhat.py to registger Centos.

Ok will look into aliasing centos versions to rhel versions...

How do you suggest I alias the centos version to rhel ?

Thank You

I'm not familiar with the version series of centos and rhel, but if you can do it semi programiatically that would be great. Otherwise it may need a lookup table.

There's a new detector which might be able to be reused for this purpose added in #88

I will go ahead and close this asssuming that nobody has an interest in CentOs 6.6 support anymore.