Code Monkey home page Code Monkey logo

rosdep's Introduction

rosdep

Build status codecov

rosdep is a command-line tool for installing system dependencies. For end-users, rosdep helps you install system dependencies for software that you are building from source. For developers, rosdep simplifies the problem of installing system dependencies on different platforms. Instead of having to figure out which debian package on Ubuntu Oneiric contains Boost, you can just specify a dependency on 'boost'.

rosdep Users/Developers Guide

rosdep's People

Contributors

andre-rosa avatar at-wat avatar christophebedard avatar clalancette avatar cottsay avatar de-vri-es avatar dirk-thomas avatar gavanderhoorn avatar gstavrinos avatar jamuraa avatar jksrecko avatar k-okada avatar kwc avatar lwisteria avatar mathias-luedtke avatar mikaelarguedas avatar murph avatar ngrennan avatar nickolaim avatar nikolausdemmel avatar nikonikolov avatar nuclearsandwich avatar roehling avatar russkel avatar sloretz avatar subaruarai avatar tfoote avatar wjwwood avatar wkentaro avatar yeison avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rosdep's Issues

improve rosdep error on yaml not found to suggest rosdep update (ros ticket #1577)

I've fielded several questions and there have been multiple tickets related to new rosdeps that just need a rosdep update.

I know this tools slated for deprecation, but it'll be around for the next few weeks and in that time there will still be lots of questions.

BTW the existing error has made people ask about how to get dependency_name.yaml they haven't even known to look for rosdep.yaml. I don't know if that's reader error, but that's what the people coming by my office have been asking.

trac data:

fails on non-existent directories in ROS_PACKAGE_PATH

If some directories which are already listed in the ROS_PACKAGE_PATH don't exist yet, because the complete system is not yet installed it fails:

$ rosdep install --from-paths src --ignore-src -s

ERROR: Rosdep experienced an internal error: given path '/opt/ros/groovy/stacks' does not exist
Please go to the rosdep page [1] and file a bug report with the stack trace below.
[1] : http://www.ros.org/wiki/rosdep

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/rosdep2/main.py", line 116, in rosdep_main
exit_code = _rosdep_main(args)
File "/usr/local/lib/python2.7/dist-packages/rosdep2/main.py", line 257, in _rosdep_main
return _package_args_handler(command, parser, options, args)
File "/usr/local/lib/python2.7/dist-packages/rosdep2/main.py", line 327, in _package_args_handler
pkgs = find_catkin_packages_in(path, options.verbose)
File "/usr/local/lib/python2.7/dist-packages/rosdep2/catkin_packages.py", line 24, in find_catkin_packages_in
raise OSError("given path '{0}' does not exist".format(path))
OSError: given path '/opt/ros/groovy/stacks' does not exist

rosdep update should be forced when database was generated

rosdep should store the version of rosdep in the database. When it queries the database and the version is different an update should be enforced.

This is crucial when rosdep is changed, since it might require an updated db format.

Test for issue #30 fails if not in a ROS environment

When running the tests for rosdep I get this:

======================================================================
ERROR: testIssue30 (test.test_rosdep_issue30.Issue30TestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/william/devel/rosdep/test/test_rosdep_issue30.py", line 28, in testIssue30
    keys = rdmain.get_keys(lookup, ['spacenav_node'], recursive=True)
  File "/Users/william/devel/rosdep/src/rosdep2/main.py", line 364, in get_keys
    deps = lookup.get_rosdeps(package_name, implicit=recursive)
  File "/Users/william/devel/rosdep/src/rosdep2/lookup.py", line 250, in get_rosdeps
    return self.loader.get_rosdeps(resource_name, implicit=implicit)
  File "/Users/william/devel/rosdep/src/rosdep2/rospkg_loader.py", line 140, in get_rosdeps
    raise rospkg.ResourceNotFound(resource_name)
ResourceNotFound: spacenav_node

This is most likely because I am not in a ROS environment. It seems like some assumptions were made in order to do this test which don't hold everywhere (like my mac book in a clean terminal and on the CI server). Also depending on a particular git repository controlled by someone else to not change is probably fragile, maybe we should tar that git repo up and extract it for the tests.

System wide cache

it does not make sense to me that the rosdep cache is stored on a per-user basis

Making the cache optionally storable in /etc/ros/rosdep/sources.cache seems like a better idea, and it could be made updatable by making it group writeable by group 'ros'

rosdep install errors on intrepid (ros ticket #1551)

{{{
tfoote@axx:/home/tfoote/stable_ros/ros-pkg/stacks/visual_feature_detectors/checkerboard_detector$ rosdep install ogre
sh: scripts/satisfy: Permission denied
tfoote@axx:/home/tfoote/stable_ros/ros-pkg/stacks/visual_feature_detectors/checkerboard_detector$ rosdep satisfy ogre
couldn't find a rosdep.yaml entry for freeimage
tfoote@axx:/home/tfoote/stable_ros/ros-pkg/stacks/visual_feature_detectors/checkerboard_detector$ rosdep update
backing up your current rosdep.yaml file to /home/tfoote/stable_ros/ros/tools/rosdep/rosdep.yaml.2009-08-07-20-28-25
downloading the latest rosdep.yaml from sourceforge...
dependency database updated successfully.
tfoote@axx:/home/tfoote/stable_ros/ros-pkg/stacks/visual_feature_detectors/checkerboard_detector$ rosdep satisfy ogre

!/bin/bash

set -o errexit
set -o verbose

sudo apt-get -y install libzzip-0-13 libzzip-dev libxaw7-dev libgl1-mesa-dev libglu1-mesa-dev libxxf86vm-dev libgtk2.0-dev libfreeimage-dev nvidia-cg-toolkit

tfoote@axx:/home/tfoote/stable_ros/ros-pkg/stacks/visual_feature_detectors/checkerboard_detector$ rosdep install ogre
sh: scripts/satisfy: Permission denied
tfoote@axx:/home/tfoote/stable_ros/ros-pkg/stacks/visual_feature_detectors/checkerboard_detector$ sudo rosdep install ogre
[sudo] password for tfoote:
sudo: rosdep: command not found
tfoote@axx:/home/tfoote/stable_ros/ros-pkg/stacks/visual_feature_detectors/checkerboard_detector$ bash <(rosdep satisfy ogre)

sudo apt-get -y install libzzip-0-13 libzzip-dev libxaw7-dev libgl1-mesa-dev libglu1-mesa-dev libxxf86vm-dev libgtk2.0-dev libfreeimage-dev nvidia-cg-toolkit
Reading package lists... Done
Building dependency tree
Reading state information... Done
libzzip-0-13 is already the newest version.
libzzip-dev is already the newest version.
libxaw7-dev is already the newest version.
libgl1-mesa-dev is already the newest version.
libglu1-mesa-dev is already the newest version.
libxxf86vm-dev is already the newest version.
libgtk2.0-dev is already the newest version.
libfreeimage-dev is already the newest version.
libfreeimage-dev set to manually installed.
The following packages were automatically installed and are no longer required:
libopenexr-dev libilmbase-dev
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
nvidia-cg-toolkit
}}}

trac data:

init should be run during install

Not a catkin expert yet but this should be possible.

Since we are installing rosdep via packages we should be able to have a debian/postinstall that runs
'rosdep init'

Move to federated model for rosdep (ros ticket #1495)

This proposed federated model for rosdep will lock in common dependencies, but allow higher-level "distributions" (e.g. WG PR2,
Stanford STAIR, Bosch Foo, CMU Bar) to define higher level 3rdparty
dependencies in an independent manner.

rosdep.yaml:

  1. Each stack has a rosdep.yaml
  2. A repo can also have a rosdep.yaml

resolving "rosdep satisfy foo":

  1. Go to the 'foo' package
  2. Search upwards until a rosdep.yaml is found
  3. If a stack.xml is found next to it, load all the rosdep.yamls of the dependencies first. If there is a conflict, i.e. multiple rosdep.yamls define the same key, this is a FATAL error.

The one loophole right now is what to do about the rosdep.yaml for a
repository, as this proposal is very stack-based. The answer there is either to:

a. require that outside institutions turn their repos into temporary Stacks by adding a top-level stack.xml, e.g. the sail-ros-pkg 'Stack'
b. add syntax directly to rosdep.yaml to also allow it to specify a dependent stack.

I think I am leaning towards (a), even if it means an ugly transitional period where entire repos are stacks. In the long term, when everything is in a proper stack, this will be much cleaner.

The approach does much of what a Linux distribution does, but in a
slightly more federated model. ROS naturally defines what boost has to be for all other dependencies of it. There are similar such
definitions created in lower level stacks that higher level stacks
must adopt if they wish to depend on those stacks. But it also allows outside institutions to do the same work that we are doing here, i.e. defining the common libraries for work within their institution and enforcing it within their distribution.

The other benefits of this approach are:

  1. The rosdep.yaml is versioned with each release
  2. rosdep.yaml files will generally be very stable as people will generally modify the trunk version of their own rosdep.yaml prior to
    release
  3. stack owners retain control over the definitions of their dependencies that they introduce. Similarly, it is easier to assign responsibility for a particular dependency to a particular person

NOTE: this approach does not preclude having a Web service in the
future that does the work of extending the ability of the community to provide key->installation mappings. One possible way we could do this is define a new type of entry in the rosdep.yaml file, such as:

magicservice: boost

Which says that instead of matching a platform key, load the platform keys from magicservice.

trac data:

rosdep update fails on lucid before rosdep init

If you run rosdep update before rosdep init on Lucid you get:

∫ rosdep update

ERROR: Rosdep experienced an internal error: [Errno 2] No such file or directory: '/etc/ros/rosdep/sources.list.d'
Please go to the rosdep page [1] and file a bug report with the stack trace below.
[1] : http://www.ros.org/wiki/rosdep

Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/rosdep2/main.py", line 111, in rosdep_main
    exit_code = _rosdep_main(args)
  File "/usr/local/lib/python2.6/dist-packages/rosdep2/main.py", line 230, in _rosdep_main
    return _no_args_handler(command, parser, options, args)
  File "/usr/local/lib/python2.6/dist-packages/rosdep2/main.py", line 238, in _no_args_handler
    return command_handlers[command](options)
  File "/usr/local/lib/python2.6/dist-packages/rosdep2/main.py", line 341, in command_update
    filelist = [f for f in os.listdir(sources_list_dir) if f.endswith('.list')]
OSError: [Errno 2] No such file or directory: '/etc/ros/rosdep/sources.list.d'

This should probably be a little nicer error message.

add a method to add a repo easily

As groovy is coming up there are going to be a bunch of people needing to add the groovy gbp repo to rosdeps sources.

apt-add-repository is a very easy way to do that for debian sources. Something similar would be useful.

reinit throws error

running sudo rosdep init twice should update the list of sources instead of throwing an error

$ sudo rosdep init
Wrote /etc/ros/rosdep/sources.list.d/20-default.list
Recommended: please run

    rosdep update
$ sudo rosdep init
ERROR: default sources list file already exists:
    /etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize

rosdep needs to "degrade more gracefully"

on the farm, this can happen:

Updating certificates in /etc/ssl/certs... 151 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
--2012-11-17 19:04:36-- https://code.ros.org/svn/release/download/stacks/filters/filters-1.6.0/filters-1.6.0.tar.bz2
Resolving code.ros.org (code.ros.org)... 70.35.54.198
Connecting to code.ros.org (code.ros.org)|70.35.54.198|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 16996 (17K) [application/octet-stream]
Saving to: `/tmp/buildd/filters-1.6.0.tar.bz2'

 0K .......... ......                                     100%  237K=0.07s

2012-11-17 19:04:36 (237 KB/s) - `/tmp/buildd/filters-1.6.0.tar.bz2' saved [16996/16996]

ERROR: unable to process source [https://github.com/ros/rosdistro/raw/master/rosdep/osx-homebrew.yaml]:

ERROR: unable to process source [https://github.com/ros/rosdistro/raw/master/releases/groovy.yaml]:
Failed to download target platform data for gbpdistro:

reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://github.com/ros/rosdistro/raw/master/rosdep/gentoo.yaml
Hit https://github.com/ros/rosdistro/raw/master/rosdep/base.yaml
Hit https://github.com/ros/rosdistro/raw/master/rosdep/python.yaml
Hit https://github.com/ros/rosdistro/raw/master/rosdep/ruby.yaml
Hit https://github.com/ros/rosdistro/raw/master/releases/fuerte.yaml
updated cache in /tmp/buildd/.ros/rosdep/sources.cache

apt

libgtest-dev
I: user script /tmp/tmpiKJii0/pbuilder/29105/tmp/hooks/A50fetch finished

Add rosdep festival, festvox-kallpc16k (ros ticket #1543)

festival ubuntu festival
festvox-kallpc16k ubuntu festvox-kallpc16k

(festvox-kallpc16k is one of festival voices. It is a reasonable choice of name for this package, but something more generic may be desirable. I don't know, for example if other distributions have the same selection of names so festvox-voice might be preferable for this rosdep name)

trac data:

Add rosdep FILLME (ros ticket #1330)

I have been working on getting ROS to compile on OSX 10.5.7 and I had to add the following to ros/tools/rosdep/rosdep.yaml

fltk:
macports: fltk

automake:
macports: automake

python-imaging:
macports: py25-pil

NOTE: py-pil is for python 2.4

sdl:
macports: libsdl

sdl-image:
macports: libsdl_image

libxext:
macports: xorg-libXext

python-numpy:
macports: py25-numpy

again py-numpy is for python 2.4

glut:
macports: glut

graphviz:
macports: graphviz

autoconf:
macports: autoconf

This has gotten me further, but I am now getting more errors:

eval "export ROS_ROOT=/Users/avoot/ros/ros ; export PATH=/Users/avoot/ros/ros/bin:${PATH} ; export PYTHONPATH=/Users/avoot/ros/ros/core/roslib/src:${PYTHONPATH} ; export OCTAVE_PATH=/Users/avoot/ros/ros/core/experimental/rosoct/octave:${OCTAVE_PATH} ; if [ ! "$ROS_MASTER_URI" ] ; then export ROS_MASTER_URI=http://localhost:11311 ; fi ; export ROS_PACKAGE_PATH=/Users/avoot/ros/ros-pkg ; export ROS_STACK_PATH=/Users/avoot/ros/ros:/Users/avoot/ros/ros-pkg ; . /Users/avoot/ros/ros/tools/rosbash/rosbash " && rosdep satisfy roslaunch move_base_stage > /Users/avoot/ros/.rosdep_satisfy_script
terminate called after throwing an instance of 'YAML::ParserException'
what(): N4YAML15ParserExceptionE
/bin/sh: line 1: 45860 Abort trap rosdep satisfy roslaunch move_base_stage > /Users/avoot/ros/.rosdep_satisfy_script
failed to install roslaunch via rosdep [exit code 134]

Thanks

trac data:

rosdep backtrace when cache file update fails

ca-certificates is already the newest version.
ca-certificates set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
--2012-11-14 18:41:01--  https://code.ros.org/svn/release/download/stacks/pr2_calibration/pr2_calibration-1.4.0/pr2_calibration-1.4.0.tar.bz2
Resolving code.ros.org (code.ros.org)... 70.35.54.198
Connecting to code.ros.org (code.ros.org)|70.35.54.198|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 55549 (54K) [application/octet-stream]
Saving to: `/tmp/buildd/pr2_calibration-1.4.0.tar.bz2'

     0K .......... .......... .......... .......... .......... 92%  263K 0s
    50K ....                                                  100%  849K=0.2s

2012-11-14 18:41:01 (286 KB/s) - `/tmp/buildd/pr2_calibration-1.4.0.tar.bz2' saved [55549/55549]

ERROR: unable to process source [https://github.com/ros/rosdistro/raw/master/rosdep/ruby.yaml]:
    <urlopen error _ssl.c:489: The handshake operation timed out>
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://github.com/ros/rosdistro/raw/master/rosdep/osx-homebrew.yaml
Hit https://github.com/ros/rosdistro/raw/master/rosdep/gentoo.yaml
Hit https://github.com/ros/rosdistro/raw/master/rosdep/base.yaml
Hit https://github.com/ros/rosdistro/raw/master/rosdep/python.yaml
Hit https://github.com/ros/rosdistro/raw/master/releases/fuerte.yaml
Hit https://github.com/ros/rosdistro/raw/master/releases/groovy.yaml
updated cache in /tmp/buildd/.ros/rosdep/sources.cache

ERROR: Rosdep experienced an internal error: 'NoneType' object has no attribute 'copy'
Please go to the rosdep page [1] and file a bug report with the stack trace below.
[1] : http://www.ros.org/wiki/rosdep

Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/rosdep2/main.py", line 111, in rosdep_main
    exit_code = _rosdep_main(args)
  File "/usr/lib/pymodules/python2.7/rosdep2/main.py", line 228, in _rosdep_main
    return _rosdep_args_handler(command, parser, options, args)
  File "/usr/lib/pymodules/python2.7/rosdep2/main.py", line 248, in _rosdep_args_handler
    return command_handlers[command](args, options)
  File "/usr/lib/pymodules/python2.7/rosdep2/main.py", line 525, in command_resolve
    lookup = _get_default_RosdepLookup(options)
  File "/usr/lib/pymodules/python2.7/rosdep2/main.py", line 103, in _get_default_RosdepLookup
    lookup = RosdepLookup.create_from_rospkg(sources_loader=sources_loader)
  File "/usr/lib/pymodules/python2.7/rosdep2/lookup.py", line 299, in create_from_rospkg
    lookup._load_all_views(loader=sources_loader)
  File "/usr/lib/pymodules/python2.7/rosdep2/lookup.py", line 443, in _load_all_views
    self._load_view_dependencies(resource_name, loader)
  File "/usr/lib/pymodules/python2.7/rosdep2/lookup.py", line 465, in _load_view_dependencies
    loader.load_view(view_key, db, verbose=self.verbose)
  File "/usr/lib/pymodules/python2.7/rosdep2/sources_list.py", line 525, in load_view
    rosdep_db.set_view_data(view_name, source.rosdep_data, view_dependencies, view_name)
  File "/usr/lib/pymodules/python2.7/rosdep2/model.py", line 89, in set_view_data
    self._rosdep_db[view_name] = RosdepDatabaseEntry(rosdep_data.copy(), view_dependencies, origin)
AttributeError: 'NoneType' object has no attribute 'copy'


I: unmounting /var/cache/pbuilder/ccache filesystem

python-rosdep package should depend on python-catking-pkg

The current python-rosdep package in ubuntu precise fails with the following error:
ImportError: No module named catkin_pkg.package

It can be solved by manually installing python-catkin-pkg but the dependency should be explicitly added to python-rosdep.

Add support for "best effort" install

Rather than failing and not doing anything when a package can't be resolved, instead install all packages that we could find, warn, and continue.

Behavior should be toggle-able.

In rosmake, calls to rospack for catkin packages should print an easily readable error instead of causing a traceback

mkdir -p bin
cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=/opt/ros/groovy/share/ros/core/rosbuild/rostoolchain.cmake  ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found PythonInterp: /usr/bin/python (found version "2.7.3")
[rosbuild] Building package rqt_shell
[rosbuild] Cached build flags older than manifests; calling rospack to get flags
Failed to invoke /opt/ros/groovy/bin/rospack cflags-only-I;--deps-only rqt_shell
Package qt_gui was not found in the pkg-config search path.
Perhaps you should add the directory containing `qt_gui.pc'
to the PKG_CONFIG_PATH environment variable
No package 'qt_gui' found
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/rosdep2/rospack.py", line 45, in call_pkg_config
    value = subprocess.check_output(['pkg-config', option, pkg_name])
  File "/usr/lib/python2.7/subprocess.py", line 544, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['pkg-config', '--cflags-only-I', 'qt_gui']' returned non-zero exit status 1
[rospack] Error: could not call python function 'rosdep2.rospack.call_pkg_config'


CMake Error at /opt/ros/groovy/share/ros/core/rosbuild/public.cmake:129 (message):


  Failed to invoke rospack to get compile flags for package 'rqt_shell'.
  Look above for errors from rospack itself.  Aborting.  Please fix the
  broken dependency!

Call Stack (most recent call first):
  /opt/ros/groovy/share/ros/core/rosbuild/public.cmake:227 (rosbuild_invoke_rospack)
  CMakeLists.txt:12 (rosbuild_init)


-- Configuring incomplete, errors occurred!

rosdep should skip catkin packages that are in source

Consider:

mkdir ~/catkin_ws
cd ~/catkin_ws
wstool init src http://packages.ros.org/web/rosinstall/generate/raw/groovy/desktop

If I then run something like this:

ROS_PACKAGE_PATH=`pwd`/src rosdep keys geometry_msgs

I get:

std_msgs
langs-dev
langs
genmsg
catkin

Which is correct, but if I were to run something like:

ROS_DISTRO=groovy rosdep install std_msgs -s

I get:

#[homebrew] Installation commands:
  brew install ros/groovy/langs-dev
  brew install ros/groovy/catkin
  brew install ros/groovy/genmsg
  brew install ros/groovy/langs

Which again is technically correct, but since those are in my catkin workspace it should consider it 'resolved' and not try to install it. So maybe something like this:

ROS_PACKAGE_PATH=`pwd`/src ROS_DISTRO=groovy rosdep install std_msgs -s

Would not try to install anything, because it found those dependencies in source on my ROS_PACKAGE_PATH.

rosdep: fails to install deps (ros ticket #1593)

I ran rosdep install prosilica_cam got it failed to finish

{{{
mwise@aqy:~/ros/ros-pkg/stacks/sound_drivers/sound_play$ rosdep install prosilica_cam

sudo apt-get -y install libapr1-dev libaprutil1-dev python-dev python-yaml libbz2-dev zlib1g-dev python-imaging libavformat-dev libavcodec-dev libjasper-dev libswscale-dev libgraphicsmagick++1-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libapr1-dev is already the newest version.
libaprutil1-dev is already the newest version.
python-dev is already the newest version.
python-yaml is already the newest version.
libbz2-dev is already the newest version.
zlib1g-dev is already the newest version.
python-imaging is already the newest version.
libavformat-dev is already the newest version.
libavcodec-dev is already the newest version.
libjasper-dev is already the newest version.
libswscale-dev is already the newest version.
libgraphicsmagick++1-dev is already the newest version.
The following packages were automatically installed and are no longer required:
xserver-xorg-video-amd dvipng python-enthought-traits python-configobj blt
python-tk python-tz libt1-5 python-matplotlib-data libsdl-ttf2.0-0
linux-headers-2.6.24-23-generic python-dateutil tcl8.4 libsdl-mixer1.2 tk8.4
python-matplotlib libestools1.2 linux-headers-2.6.24-23 libsmpeg0
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 70 not upgraded.
2 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Setting up python-tz (2007k-0ubuntu2) ...
pycentral: pycentral pkginstall: not overwriting local files
pycentral pkginstall: not overwriting local files
dpkg: error processing python-tz (--configure):
subprocess post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of python-matplotlib:
python-matplotlib depends on python-tz; however:
Package python-tz is not configured yet.
dpkg: error processing python-matplotlib (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
python-tz
python-matplotlib
E: Sub-process /usr/bin/dpkg returned an error code (1)
}}}

trac data:

rosdep run as root

Hi,

I think there is a problem when rosdep is run as root, because root has no command sudo.

Here is the full error message:
executing command [sudo apt-get install libjson-glib-dev]

ERROR: Rosdep experienced an internal error: [Errno 2] No such file or directory
Please go to the rosdep page [1] and file a bug report with the stack trace below.
[1] : http://www.ros.org/wiki/rosdep

Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/rosdep2/main.py", line 116, in rosdep_main
exit_code = _rosdep_main(args)
File "/usr/lib/pymodules/python2.7/rosdep2/main.py", line 257, in _rosdep_main
return _package_args_handler(command, parser, options, args)
File "/usr/lib/pymodules/python2.7/rosdep2/main.py", line 338, in _package_args_handler
return command_handlers[command](lookup, packages, options)
File "/usr/lib/pymodules/python2.7/rosdep2/main.py", line 494, in command_install
installer.install(uninstalled, *_install_options)
File "/usr/lib/pymodules/python2.7/rosdep2/installers.py", line 477, in install
verbose=verbose)
File "/usr/lib/pymodules/python2.7/rosdep2/installers.py", line 526, in install_resolved
result = subprocess.call(sub_command)
File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(_popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in init
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

ROS_OS_OVERRIDE is not parsed right

I am getting different results in this two cases, where i think the programm should act in the same way:

case 1: "rosdep install -a --os="debian:squeeze"
case 2: "rosdep install -a" with the ROS_OS_OVERRIDE environment variable set to "debian:squeeze"

I suppose, in case 1 rosdep is working correctly, while in case 2 i get the following error for a example:
package: No definiton of [boost] for OS version[]

Add support for alternate installer support

It would be a great extension to allow definitions for installing from multiple installers if possible and let the user define their preferences in order.

Possibly also allow pip and gem to be at a higher level outside the platform specific tags as a fallback if no specific rule is defined.

Need a way to tell rosdep that a package is provided outside of any package manager.

The case where I am managing the dependency manually, with no need for rosdep to try to install it.

For an example, see portage's "package.provided". An excerpt from "http://dev.gentoo.org/~zmedico/portage/doc/man/portage.5.html":

 For example, if you manage your own copy of a 2.6 kernel, then you  can  tell  portage  that
'sys-kernel/development-sources-2.6.7'  is  already taken care of and it should get off your
back about it.

Note that on a system using portage, I can create a fake ebuild (portage package), a fake rosdep mapping to it, and then add it to package.provided to get this effect, but I'm looking for support directly in portage (so the various fake items above can be removed).

Automatice Cache updates

Once #46 is implemented, we should be able to automatically update a system wide rosdep cache.

Possible solutions

  1. make the cache available as a separate package we can update automatically via the package manager

  2. Use debconf and dplg-reconfigure to allow users to enable a weekly(?) cronjob to pull down rosdep cache updates
    This ensures that the user consents to running a cron that accesses the network

rosdep gentoo support (ros ticket #1579)

Here is a patch for the rosdep package to add support for gentoo, I've
included a preinstall.gentoo file that should mimic the functionality
of the preinstall.ubuntu. Here's and overview of what I've done:

  1. modified os.cpp to find /etc/gentoo-releases (no funky stuff to
    find versions yet) to confirm a gentoo environment
  2. modified os.cpp to prepend 'sudo emerge -u' to the package list,
    this will update a package or install it if it is not currently
    installed, but will do nothing if the package is already installed at
    the full version
  3. modified rosdep.yaml to add gentoo rules to satisfy roscpp and
    gazebo, should be enough to make an effective install script.
  4. created preinstall.gentoo which will emerge
    Enjoy.

Here is what is left over:

  1. There are some packages that are "masked", where certain version
    numbers are disallowed, while others are not, it would be great if the
    script could automatically unmask packages, when needed. I'm still
    working on that.
  2. there are a lot of rules that I have not filled in, and probably
    won't on my own, I just wanted to clear the way for an install script

-Dave

trac data:

rosdep doesn't parse dependencies for source packages in a groovy catkin workspace

[ moldy-crow: ~/versioned/ros/maintain_catkin/ws/build ] source buildspace/setup.sh 
[ moldy-crow: ~/versioned/ros/maintain_catkin/ws/build ] roscd spacenav_node/
[ moldy-crow: ~/versioned/ros/maintain_catkin/ws/src/joystick_drivers/spacenav_node ] rosdep keys spacenav_node

[ moldy-crow: ~/versioned/ros/maintain_catkin/ws/src/joystick_drivers/spacenav_node ] 

This package should list libspnav-dev and spacenavd as rosdeps.

rosdep resolve in groovy yields fuerte package name

Running rosdep resolve PKG in a ROS groovy environments yields ros-fuerte-PKG instead of ros-groovy-PKG for a package released with bloom (octomap). This was after I manually extended /etc/ros/rosdep/sources.list.d/20-default.list with the line
gbpdistro https://github.com/ros/rosdistro/raw/master/releases/groovy.yaml groovy
and ran rosdep update.

As a result, running the release script for a groovy package results in an invalid release that depends on the wrong debian package of PKG which will fail building.

wxPython_swig_interface breaks rosdep -a due to missing package.xml

#4070: (fuerte) rosdep install -a FAILS

---------------------------+------------------------------------------------
Reporter: jay | Owner: tfoote
Type: defect | Status: new
Priority: major | Milestone: fuerte-release
Component: rosdep | Version:
Keywords: | Include_gantt: 0
Dependencies: | Due_assign: DD/MM/YYYY
Due_close: DD/MM/YYYY |
---------------------------+------------------------------------------------
I'm installing ROS from source on Debian testing following the Debian
install instructions. I get the following error when running rosdep for
the first time (http://www.ros.org/wiki/fuerte/Installation/Debian Step
1.5)

$ rosdep install -a

ERROR: Rosdep experienced an internal error: Directory
"/opt/ros/fuerte/share/wxPython_swig_interface" does not contain a
"package.xml"
Please go to the rosdep page [1] and file a bug report with the stack
trace below.
[1] : http://www.ros.org/wiki/rosdep

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/rosdep2/main.py", line 116,
in rosdep_main
exit_code = _rosdep_main(args)
File "/usr/local/lib/python2.7/dist-packages/rosdep2/main.py", line 257,
in _rosdep_main
return _package_args_handler(command, parser, options, args)
File "/usr/local/lib/python2.7/dist-packages/rosdep2/main.py", line 338,
in _package_args_handler
return command_handlers[command](lookup, packages, options)
File "/usr/local/lib/python2.7/dist-packages/rosdep2/main.py", line 483,
in command_install
uninstalled, errors = installer.get_uninstalled(packages,
implicit=options.recursive, verbose=options.verbose)
File "/usr/local/lib/python2.7/dist-packages/rosdep2/installers.py",
line 401, in get_uninstalled
resolutions, errors = self.lookup.resolve_all(resources,
installer_context, implicit=implicit)
File "/usr/local/lib/python2.7/dist-packages/rosdep2/lookup.py", line
348, in resolve_all
rosdep_keys = self.get_rosdeps(resource_name, implicit=implicit)
File "/usr/local/lib/python2.7/dist-packages/rosdep2/lookup.py", line
270, in get_rosdeps
return self.loader.get_rosdeps(resource_name, implicit=implicit)
File "/usr/local/lib/python2.7/dist-packages/rosdep2/rospkg_loader.py",
line 131, in get_rosdeps
pkg = catkin_pkg.package.parse_package(path)
File "/usr/local/lib/python2.7/dist-packages/catkin_pkg/package.py",
line 251, in parse_package
raise IOError('Directory "%s" does not contain a "%s"' % (path,
PACKAGE_MANIFEST_FILENAME))
IOError: Directory "/opt/ros/fuerte/share/wxPython_swig_interface" does
not contain a "package.xml"

option to act on a glob of catkin packages in a given folder

When working with catkin workspaces it would be nice to easily specify the src folder and have rosdep act on all of those packages there in. Consider:

mkdir -p ~/ros_core_ws
cd ~/ros_core_ws
wstool init src http://packages.ros.org/web/rosinstall/generate/raw/groovy/desktop

Then I would like to do things like this:

rosdep keys --catkin-workspace ./src
rosdep install --catkin-workspace ./src

Or maybe like this:

rosdep install --from-path ./src
OR
rosdep install --all-in-path ./src

This optional argument, whatever it is called, will cause rosdep to consider the positional argument(s) given to the rosdep verb as a folder containing packages.

Open question:
Should this work for a folder of rosbuild packages/stacks not on the ROS_PACKAGE_PATH (or on it for that matter)?

This is really needed for the source install instructions.

dpkg-reconfigure should update default sources

dpkg-reconfigure should rerun rosdep init or update the files directly, so when hydro or later comes out and someone runs apt-get upgrade it should actually update the default list of sources instead of leaving this as a challenge for the user to debug.

rosdep does not use os_override in all code paths

Was: Failed to detect wheezy OS running rosdep on raspberry

I was stepping through the generic source installation steps to try and install groovy on a raspberry pi.

At step 2.1.3 I ran the command rosdep and failed to find (in my case override) the OS.

pi@raspberrypi ~/ros_catkin_ws $ rosdep install --os=debian:wheezy --from-paths src --ignore-src --rosdistro groovy -y

ERROR: Rosdep experienced an internal error: Could not detect OS, tried ['ubuntu', 'rhel', 'osx', 'opensuse', 'mint', 'gentoo', 'freebsd', 'fedora', 'debian', 'cygwin', 'arch']
Please go to the rosdep page [1] and file a bug report with the stack trace below.
[1] : http://www.ros.org/wiki/rosdep

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/rosdep-0.10.11-py2.7.egg/rosdep2/main.py", line 116, in rosdep_main
    exit_code = _rosdep_main(args)
  File "/usr/local/lib/python2.7/dist-packages/rosdep-0.10.11-py2.7.egg/rosdep2/main.py", line 257, in _rosdep_main
    return _package_args_handler(command, parser, options, args)
  File "/usr/local/lib/python2.7/dist-packages/rosdep-0.10.11-py2.7.egg/rosdep2/main.py", line 338, in _package_args_handler
    return command_handlers[command](lookup, packages, options)
  File "/usr/local/lib/python2.7/dist-packages/rosdep-0.10.11-py2.7.egg/rosdep2/main.py", line 483, in command_install
    uninstalled, errors = installer.get_uninstalled(packages, implicit=options.recursive, verbose=options.verbose)
  File "/usr/local/lib/python2.7/dist-packages/rosdep-0.10.11-py2.7.egg/rosdep2/installers.py", line 401, in get_uninstalled
    resolutions, errors = self.lookup.resolve_all(resources, installer_context, implicit=implicit)
  File "/usr/local/lib/python2.7/dist-packages/rosdep-0.10.11-py2.7.egg/rosdep2/lookup.py", line 348, in resolve_all
    rosdep_keys = self.get_rosdeps(resource_name, implicit=implicit)
  File "/usr/local/lib/python2.7/dist-packages/rosdep-0.10.11-py2.7.egg/rosdep2/lookup.py", line 270, in get_rosdeps
    return self.loader.get_rosdeps(resource_name, implicit=implicit)
  File "/usr/local/lib/python2.7/dist-packages/rosdep-0.10.11-py2.7.egg/rosdep2/rospkg_loader.py", line 128, in get_rosdeps
    m = self._rospack.get_manifest(resource_name)
  File "/usr/local/lib/python2.7/dist-packages/rospkg-1.0.17-py2.7.egg/rospkg/rospack.py", line 133, in get_manifest
    return self._load_manifest(name)
  File "/usr/local/lib/python2.7/dist-packages/rospkg-1.0.17-py2.7.egg/rospkg/rospack.py", line 172, in _load_manifest
    retval = self._manifests[name] = parse_manifest_file(self.get_path(name), self._manifest_name)
  File "/usr/local/lib/python2.7/dist-packages/rospkg-1.0.17-py2.7.egg/rospkg/manifest.py", line 376, in parse_manifest_file
    _static_rosdep_view = init_rospack_interface()
  File "/usr/local/lib/python2.7/dist-packages/rosdep-0.10.11-py2.7.egg/rosdep2/rospack.py", line 55, in init_rospack_interface
    lookup = _get_default_RosdepLookup(Options())
  File "/usr/local/lib/python2.7/dist-packages/rosdep-0.10.11-py2.7.egg/rosdep2/main.py", line 107, in _get_default_RosdepLookup
    verbose=options.verbose)
  File "/usr/local/lib/python2.7/dist-packages/rosdep-0.10.11-py2.7.egg/rosdep2/sources_list.py", line 497, in create_default
    matcher = DataSourceMatcher.create_default(os_override=os_override)
  File "/usr/local/lib/python2.7/dist-packages/rosdep-0.10.11-py2.7.egg/rosdep2/sources_list.py", line 229, in create_default
    os_name, os_version, os_codename = os_detect.detect_os()
  File "/usr/local/lib/python2.7/dist-packages/rospkg-1.0.17-py2.7.egg/rospkg/os_detect.py", line 405, in detect_os
    raise OsNotDetected("Could not detect OS, tried %s"%attempted)
OsNotDetected: Could not detect OS, tried ['ubuntu', 'rhel', 'osx', 'opensuse', 'mint', 'gentoo', 'freebsd', 'fedora', 'debian', 'cygwin', 'arch']

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.