ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

First of all, geographic_info is a stack and not a system dependency, therefore I must use <depend package="geodesy"/> instead of <rosdep name="geographicinfo"/> in my manifest file. geodesy is a package in the stack geographic_info.

Next, rosmake cannot automatically download missing dependencies like it used to before Fuerte. Therefore, I must manually ensure that the dependencies are fulfilled before calling rosmake. This can be done with apt or rosdep.

For example, sudo apt-get install ros-fuerte-geographic-info works in this particular case. However, I would not recommend this method in general.

The preferred method is to let rosdep find the exact package name for each dependency. For this, I need rosdep rules, and I need to tell rosdep where to find these rules. rosdep builds a database of rules from files found in directory /etc/ros/rosdep/sources.list.d. ROS puts a file there called 20-default.list. I created one called 19-mine.list and put this inside: yaml http://ros.org/rosdoclite/fuerte_bak/api/geographic_info/repo.yaml. This yaml file on the ROS server contains the rules to find geographic_info. I then run rosdep update, which scans both local files and downloads the rules. Then, rosdep install MyPackage should download whatever is missing.

Sadly, I still get: ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: MyPackage: Missing resource geodesy.

As you see, I haven't solved the problem yet. Please comment on my answer if I said anything wrong.

First of all, geographic_info is a stack and not a system dependency, therefore I must use <depend package="geodesy"/> instead of <rosdep name="geographicinfo"/> in my manifest file. geodesy is a package in the stack geographic_info.

Next, rosmake cannot automatically download missing dependencies like it used to before Fuerte. Therefore, I must manually ensure that the dependencies are fulfilled before calling rosmake. This can be done with apt or rosdep.

For example, sudo apt-get install ros-fuerte-geographic-info works in this particular case. However, I would not recommend this method in general.

The preferred method is to let rosdep find the exact package name for each dependency. For this, I need rosdep rules, and I need to tell rosdep where to find these rules. rosdep builds a database of rules from files found in directory /etc/ros/rosdep/sources.list.d. ROS puts a file there called 20-default.list. I created one called 19-mine.list and put this inside: yaml http://ros.org/rosdoclite/fuerte_bak/api/geographic_info/repo.yaml. This yaml file on the ROS server contains the rules to find geographic_info. I then run rosdep update, which scans both local files and downloads the rules. Then, rosdep install MyPackage should download whatever is missing.

Sadly, I still get: ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: MyPackage: Missing resource geodesy.

As you see, I haven't the problem isn't solved the problem yet. yet, but we're half-way there. Please comment on my answer if I said anything wrong.

click to hide/show revision 3
Added a different approach

First of all, geographic_info is a stack and not a system dependency, therefore I must use <depend package="geodesy"/> instead of <rosdep name="geographicinfo"/> in my manifest file. geodesy is a package in the stack geographic_info.

Next, rosmake cannot automatically download missing dependencies like it used to before Fuerte. Therefore, I must manually ensure that the dependencies are fulfilled before calling rosmake. This can be done with apt or rosdep.

For example, sudo apt-get install ros-fuerte-geographic-info works in this particular case. However, I would not recommend this method in general.

The preferred method is to let rosdep find the exact package name for each dependency. For this, I need rosdep rules, and I need to tell rosdep where to find these rules. rosdep builds a database of rules from files found in directory /etc/ros/rosdep/sources.list.d. ROS puts a file there called 20-default.list. I created one called 19-mine.list and put this inside: yaml http://ros.org/rosdoclite/fuerte_bak/api/geographic_info/repo.yaml. This yaml file on the ROS server contains the rules to find geographic_info. I then run rosdep update, which scans both local files and downloads the rules. Then, rosdep install MyPackage should download whatever is missing.

Sadly, I still get: ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: MyPackage: Missing resource geodesy.

As you see, Other approach

I went on git's website, forked https://github.com/ros/rosdistro, and modified file rosdep/base.yaml to add these lines:

geographic_info: 
  ubuntu: 
    apt:
      ros-fuerte-geographic-info

I'm not sure if these lines will work, but I will update this question as soon as I know. I have to wait until the change is accepted by ROS. If it is, then rosdep update would add this rule in my local database and rosdep install MyPackage would work.


In the end, the problem isn't solved yet, but we're half-way there. Please comment on my answer help to complete this solution if I said anything wrong.

you can. :-)

click to hide/show revision 4
Added the rejection of the pull request

First of all, geographic_info is a stack and not a system dependency, therefore I must use <depend package="geodesy"/> instead of <rosdep name="geographicinfo"/> in my manifest file. geodesy is a package in the stack geographic_info.

Next, rosmake cannot automatically download missing dependencies like it used to before Fuerte. Therefore, I must manually ensure that the dependencies are fulfilled before calling rosmake. This can be done with apt or rosdep.

For example, sudo apt-get install ros-fuerte-geographic-info works in this particular case. However, I would not recommend this method in general.

The preferred method is to let rosdep find the exact package name for each dependency. For this, I need rosdep rules, and I need to tell rosdep where to find these rules. rosdep builds a database of rules from files found in directory /etc/ros/rosdep/sources.list.d. ROS puts a file there called 20-default.list. I created one called 19-mine.list and put this inside: yaml http://ros.org/rosdoclite/fuerte_bak/api/geographic_info/repo.yaml. This yaml file on the ROS server contains the rules to find geographic_info. I then run rosdep update, which scans both local files and downloads the rules. Then, rosdep install MyPackage should download whatever is missing.

Sadly, I still get: ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: MyPackage: Missing resource geodesy.

Other approach

I went on git's website, forked https://github.com/ros/rosdistro, and modified file rosdep/base.yaml to add these lines:

geographic_info: 
  ubuntu: 
    apt:
      ros-fuerte-geographic-info

I'm not sure if these lines will work, but I will update In the end, this is the answer that I got from ROS (Vincent Rabaud):

base.yaml is only for upstream dependencies (non-ROS). @tfoote or @tkruse should be able to answer your question as soon as I know. I have to wait until the change is accepted by ROS. If it is, then rosdep update would add this rule in my local database and rosdep install MyPackage would work.

though.


In the end, the problem isn't solved yet, but we're half-way there. Please help to complete this solution if you can. :-)