Building ROS on Fedora 19

About ROS

ROS (Robot Operating System) provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under an open source, BSD license.

—Source: http://www.ros.org/wiki/

ROS is really a huge software package (a big mess!) and is unlikely that the official installation guide for Fedora (http://www.ros.org/wiki/groovy/Installation/Fedora) will work without issues. Last time it took me several days to fix all build failures. This time I will document my odyssey.

Note

Never use ROS! Today I’ve tried to build ROS again and gave up. ROS is currently really broken on Fedora and Fedora was also removed from the official installation instructions in hydro: http://wiki.ros.org/groovy/Installation / http://wiki.ros.org/hydro/Installation. I don’t have the time to fix all these bugs.

Dependencies

I have most dependencies already installed on my machine (my software list: packages_thinkpad_F19.log), you may need to install additional software packages to be able to compile everything, just have a look at the compilation errors to find the missing packages.

As a first step you can install the following packages as written in the official guide:

[chris@thinkpad ~]$ sudo yum install gcc-c++ patch git python-pip
[chris@thinkpad ~]$ sudo ln -s /usr/bin/pip-python /usr/bin/pip

Installation

Now install ROS:

[chris@thinkpad ~]$ sudo pip-python install -U wstool rosdep rosinstall rospkg catkin-pkg
[chris@thinkpad ~]$ sudo mkdir -p /opt/ros/groovy/ros_catkin_ws
[chris@thinkpad ~]$ sudo chown -R $USER:$USER /opt/ros
[chris@thinkpad ~]$ cd /opt/ros/groovy
[chris@thinkpad groovy]$ sudo rosdep init
[chris@thinkpad groovy]$ rosdep update
[chris@thinkpad groovy]$ cd ros_catkin_ws
[chris@thinkpad ros_catkin_ws]$ wstool init src -j1 http://packages.ros.org/web/rosinstall/generate/raw/groovy/desktop

I’m using -j1 here to do only one concurrent download at any time to better find 404’s and the like but it seems to work fine today.

Note

Yesterday I had some errors like this:

Using initial elements from: http://packages.ros.org/web/rosinstall/generate/raw/groovy/desktop-full
Writing /opt/ros/groovy/ros_catkin_ws/src/.rosinstall
[rosconsole,ivcon,catkin] still active
[ivcon] Fetching https://github.com/ros-gbp/ivcon-release/archive/release/ivcon/0.1.4.tar.gz (version ivcon-release-release-ivcon-0.1.4) to /opt/ros/groovy/ros_catkin_ws/src/ivcon
[rosconsole] Fetching https://github.com/ros-gbp/ros_comm-release/archive/release/groovy/rosconsole/1.9.44-0.tar.gz (version ros_comm-release-release-groovy-rosconsole-1.9.44-0) to /opt/ros/groovy/ros_catkin_ws/src/rosconsole
[catkin] Fetching https://github.com/ros-gbp/catkin-release/archive/release/groovy/catkin/0.5.65-3.tar.gz (version catkin-release-release-groovy-catkin-0.5.65-3) to /opt/ros/groovy/ros_catkin_ws/src/catkin
[rosconsole] Done.
[ivcon] Done.
[catkin] still active
[catkin,qt_dotgraph,image_view] still active
[qt_dotgraph] Fetching https://github.com/ros-gbp/qt_gui_core-release/archive/release/groovy/qt_dotgraph/0.2.15-1.tar.gz (version qt_gui_core-release-release-groovy-qt_dotgraph-0.2.15-1) to /opt/ros/groovy/ros_catkin_ws/src/qt_dotgraph
[image_view] Fetching https://github.com/ros-gbp/image_pipeline-release/archive/release/groovy/image_view/1.10.8-0.tar.gz (version image_pipeline-release-release-groovy-image_view-1.10.8-0) to /opt/ros/groovy/ros_catkin_ws/src/image_view
ERROR [vcstools] Tarball download unpack failed: file could not be opened successfully[/vcstools]

And I tried to fix the error by installing the latest version of vcstools:

[chris@thinkpad Downloads]$ git clone https://github.com/vcstools/vcstools.git
[chris@thinkpad Downloads]$ cd vcstools/
[chris@thinkpad vcstools]$ sudo python setup.py install

But I got nevertheless the same error:

ERROR [vcstools] Tarball download unpack failed: file could not be opened successfully[/vcstools]

So it seems some URLs weren’t available:

[chris@thinkpad Downloads]$ wget http://packages.ros.org/web/rosinstall/generate/raw/groovy/desktop-full
[chris@thinkpad Downloads]$ head desktop-full

- tar: {local-name: rosconsole, uri: 'https://github.com/ros-gbp/ros_comm-release/archive/release/groovy/rosconsole/1.9.44-0.tar.gz',
    version: ros_comm-release-release-groovy-rosconsole-1.9.44-0}

- tar: {local-name: ivcon, uri: 'https://github.com/ros-gbp/ivcon-release/archive/release/ivcon/0.1.4.tar.gz',
    version: ivcon-release-release-ivcon-0.1.4}

- tar: {local-name: catkin, uri: 'https://github.com/ros-gbp/catkin-release/archive/release/groovy/catkin/0.5.65-3.tar.gz',
    version: catkin-release-release-groovy-catkin-0.5.65-3}

[chris@thinkpad Downloads]$ wget https://github.com/ros-gbp/catkin-release/archive/release/groovy/catkin/0.5.65-3.tar.gz
--2013-04-29 18:30:20--  https://github.com/ros-gbp/catkin-release/archive/release/groovy/catkin/0.5.65-3.tar.gz
Resolving github.com (github.com)... 204.232.175.90
Connecting to github.com (github.com)|204.232.175.90|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/ros-gbp/catkin-release/tar.gz/release/groovy/catkin/0.5.65-3 [following]
--2013-04-29 18:30:21--  https://codeload.github.com/ros-gbp/catkin-release/tar.gz/release/groovy/catkin/0.5.65-3
Resolving codeload.github.com (codeload.github.com)... 204.232.175.86
Connecting to codeload.github.com (codeload.github.com)|204.232.175.86|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-gzip]
Saving to: ‘0.5.65-3.tar.gz’

    [ <=>                                      ] 0           --.-K/s   in 0s

2013-04-29 18:30:25 (0.00 B/s) - Read error at byte 0 (Success).Retrying.

--2013-04-29 18:30:26--  (try: 2)  https://codeload.github.com/ros-gbp/catkin-release/tar.gz/release/groovy/catkin/0.5.65-3
Connecting to codeload.github.com (codeload.github.com)|204.232.175.86|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-gzip]
Saving to: ‘0.5.65-3.tar.gz’

    [<=>                                       ] 0           --.-K/s      ^C
[chris@thinkpad Downloads]$ curl https://github.com/ros-gbp/catkin-release/archive/release/groovy/catkin/0.5.65-3.tar.gz
<html><body>You are being <a href="https://codeload.github.com/ros-gbp/catkin-release/tar.gz/release/groovy/catkin/0.5.65-3">redirected</a>.</body></html>
[chris@thinkpad Downloads]$

rosdep install

Now we can continue with the installation:

[chris@thinkpad ros_catkin_ws]$ rosdep install --from-paths src --ignore-src --rosdistro groovy -y
WARNING: Metapackage "diagnostics" must buildtool_depend on catkin.
WARNING: Metapackage "common_msgs" must buildtool_depend on catkin.
WARNING: Metapackage "geometry" must buildtool_depend on catkin.
WARNING: Metapackage "vision_opencv" must buildtool_depend on catkin.
WARNING: Metapackage "image_common" must buildtool_depend on catkin.
WARNING: Metapackage "geometry_experimental" must buildtool_depend on catkin.
WARNING: Metapackage "nodelet_core" must buildtool_depend on catkin.
WARNING: Metapackage "driver_common" must buildtool_depend on catkin.
WARNING: Metapackage "diagnostics" must buildtool_depend on catkin.
WARNING: Metapackage "common_msgs" must buildtool_depend on catkin.
WARNING: Metapackage "geometry" must buildtool_depend on catkin.
WARNING: Metapackage "vision_opencv" must buildtool_depend on catkin.
WARNING: Metapackage "image_common" must buildtool_depend on catkin.
WARNING: Metapackage "geometry_experimental" must buildtool_depend on catkin.
WARNING: Metapackage "nodelet_core" must buildtool_depend on catkin.
WARNING: Metapackage "driver_common" must buildtool_depend on catkin.
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
opencv2: No definition of [texlive-latex-recommended] for OS version [schrödinger’s]
[chris@thinkpad ros_catkin_ws]$

So we have a simple missing package, just search for it and install it:

[chris@thinkpad ~]$ sudo yum search texlive- |grep recommended
texlive-collection-fontsrecommended.noarch : Recommended fonts
texlive-collection-genericrecommended.noarch : Recommended generic packages
texlive-collection-latexrecommended.noarch : LaTeX recommended packages
[chris@thinkpad ~]$
[chris@thinkpad ~]$ sudo yum install texlive-collection-genericrecommended
...
[chris@thinkpad ~]$

And try again to build ROS:

[chris@thinkpad ros_catkin_ws]$ rosdep install --from-paths src --ignore-src --rosdistro groovy -y
WARNING: Metapackage "diagnostics" must buildtool_depend on catkin.
WARNING: Metapackage "common_msgs" must buildtool_depend on catkin.
WARNING: Metapackage "geometry" must buildtool_depend on catkin.
WARNING: Metapackage "vision_opencv" must buildtool_depend on catkin.
WARNING: Metapackage "image_common" must buildtool_depend on catkin.
WARNING: Metapackage "geometry_experimental" must buildtool_depend on catkin.
WARNING: Metapackage "nodelet_core" must buildtool_depend on catkin.
WARNING: Metapackage "driver_common" must buildtool_depend on catkin.
WARNING: Metapackage "diagnostics" must buildtool_depend on catkin.
WARNING: Metapackage "common_msgs" must buildtool_depend on catkin.
WARNING: Metapackage "geometry" must buildtool_depend on catkin.
WARNING: Metapackage "vision_opencv" must buildtool_depend on catkin.
WARNING: Metapackage "image_common" must buildtool_depend on catkin.
WARNING: Metapackage "geometry_experimental" must buildtool_depend on catkin.
WARNING: Metapackage "nodelet_core" must buildtool_depend on catkin.
WARNING: Metapackage "driver_common" must buildtool_depend on catkin.
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
opencv2: No definition of [texlive-latex-recommended] for OS version [schrödinger’s]
[chris@thinkpad ros_catkin_ws]$

It still fails, so I will just disable the dependency checking since I have already the most important texlive packages installed:

[chris@thinkpad ros_catkin_ws]$ cp src/opencv2/package.xml  src/opencv2/package.xml.orig
[chris@thinkpad ros_catkin_ws]$ vim src/opencv2/package.xml
[chris@thinkpad ros_catkin_ws]$ git diff src/opencv2/package.xml.orig src/opencv2/package.xml
diff --git a/src/opencv2/package.xml.orig b/src/opencv2/package.xml
index 6cba2f7..eb8db0a 100644
--- a/src/opencv2/package.xml.orig
+++ b/src/opencv2/package.xml
@@ -23,11 +23,11 @@
  <build_depend>python-numpy</build_depend>
  <build_depend>python-sphinx</build_depend>
  <build_depend>python-support</build_depend>
-  <build_depend>texlive-fonts-extra</build_depend>
+ <!-- <build_depend>texlive-fonts-extra</build_depend>
  <build_depend>texlive-fonts-recommended</build_depend>
  <build_depend>texlive-latex-base</build_depend>
  <build_depend>texlive-latex-extra</build_depend>
-  <build_depend>texlive-latex-recommended</build_depend>
+  <build_depend>texlive-latex-recommended</build_depend>-->
  <build_depend>zlib</build_depend>

  <buildtool_depend>cmake</buildtool_depend>
[chris@thinkpad ros_catkin_ws]$

Now try it again:

[chris@thinkpad ros_catkin_ws]$ rosdep install --from-paths src --ignore-src --rosdistro groovy -y
WARNING: Metapackage "diagnostics" must buildtool_depend on catkin.
WARNING: Metapackage "common_msgs" must buildtool_depend on catkin.
WARNING: Metapackage "geometry" must buildtool_depend on catkin.
WARNING: Metapackage "vision_opencv" must buildtool_depend on catkin.
WARNING: Metapackage "image_common" must buildtool_depend on catkin.
WARNING: Metapackage "geometry_experimental" must buildtool_depend on catkin.
WARNING: Metapackage "nodelet_core" must buildtool_depend on catkin.
WARNING: Metapackage "driver_common" must buildtool_depend on catkin.
WARNING: Metapackage "diagnostics" must buildtool_depend on catkin.
WARNING: Metapackage "common_msgs" must buildtool_depend on catkin.
WARNING: Metapackage "geometry" must buildtool_depend on catkin.
WARNING: Metapackage "vision_opencv" must buildtool_depend on catkin.
WARNING: Metapackage "image_common" must buildtool_depend on catkin.
WARNING: Metapackage "geometry_experimental" must buildtool_depend on catkin.
WARNING: Metapackage "nodelet_core" must buildtool_depend on catkin.
WARNING: Metapackage "driver_common" must buildtool_depend on catkin.
executing command [sudo yum -y --skip-broken install python-imaging]
Loaded plugins: auto-update-debuginfo, fastestmirror, langpacks, refresh-packagekit
Loading mirror speeds from cached hostfile
* fedora: ftp.uni-erlangen.de
* rpmfusion-free: fedora.tu-chemnitz.de
* rpmfusion-free-updates: ftp.nluug.nl
* rpmfusion-free-updates-testing: fedora.tu-chemnitz.de
* rpmfusion-nonfree: fedora.tu-chemnitz.de
* rpmfusion-nonfree-updates: ftp.nluug.nl
* rpmfusion-nonfree-updates-testing: fedora.tu-chemnitz.de
* updates: ftp.halifax.rwth-aachen.de
* updates-testing: ftp.uni-erlangen.de
Package python-pillow-2.0.0-7.gitd1c6db8.fc19.x86_64 already installed and latest version
Nothing to do
ERROR: the following rosdeps failed to install
  yum: Failed to detect successful installation of [python-imaging]
[chris@thinkpad ros_catkin_ws]$

So after running rosdep --help I will use the option -r to continue installing despite errors, you can also use the option -v to show more verbose debug output but it still fails:

[chris@thinkpad ros_catkin_ws]$ rosdep install --from-paths src --ignore-src --rosdistro groovy -y -r -v
...
resolution: yum [qt, libpng-devel, PyQwt-devel, pkgconfig]
uninstalled: []
uninstalled dependencies are: [python-imaging]
install options: reinstall[False] simulate[False] interactive[False]
install: uninstalled keys are python-imaging
executing command [sudo yum -y --skip-broken install python-imaging]
Loaded plugins: auto-update-debuginfo, fastestmirror, langpacks, refresh-packagekit
Loading mirror speeds from cached hostfile
* fedora: ftp.uni-erlangen.de
* rpmfusion-free: fedora.tu-chemnitz.de
* rpmfusion-free-updates: ftp.nluug.nl
* rpmfusion-free-updates-testing: fedora.tu-chemnitz.de
* rpmfusion-nonfree: fedora.tu-chemnitz.de
* rpmfusion-nonfree-updates: ftp.nluug.nl
* rpmfusion-nonfree-updates-testing: fedora.tu-chemnitz.de
* updates: ftp.halifax.rwth-aachen.de
* updates-testing: ftp.uni-erlangen.de
Package python-pillow-2.0.0-7.gitd1c6db8.fc19.x86_64 already installed and latest version
Nothing to do
command return code [sudo yum -y --skip-broken install python-imaging]: 0
ERROR: the following rosdeps failed to install
  yum: Failed to detect successful installation of [python-imaging]
[chris@thinkpad ros_catkin_ws]$

It seems the dependency python-imaging is satisfied by the package python-pillow but ROS does not parse the yum output correctly. I will just create a dummy python-imaging package. Ensure that you have the rpm-build package installed then do the following:

[chris@thinkpad ~]$ vim python-imaging.spec
[chris@thinkpad ~]$ cat python-imaging.spec
Name: python-imaging
Version:        1.0
Release:        1%{?dist}
Summary:        Dummy Package to provide python-imaging

License: Beerware
BuildArch: noarch
Provides: python-imaging
%description

Dummy Package to provide python-imaging

%files
[chris@thinkpad ~]$ rpmbuild -bb python-imaging.spec
Processing files: python-imaging-1.0-1.fc19.noarch
Provides: python-imaging python-imaging = 1.0-1.fc19
Requires(rpmlib): rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/chris/rpmbuild/BUILDROOT/python-imaging-1.0-1.fc19.x86_64
Wrote: /home/chris/rpmbuild/RPMS/noarch/python-imaging-1.0-1.fc19.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.hLl1ai
+ umask 022
+ cd /home/chris/rpmbuild/BUILD
+ /usr/bin/rm -rf /home/chris/rpmbuild/BUILDROOT/python-imaging-1.0-1.fc19.x86_64
+ exit 0
[chris@thinkpad ~]$ sudo rpm -i rpmbuild/RPMS/noarch/python-imaging-1.0-1.fc19.noarch.rpm
error: Failed dependencies:
        python-imaging <= 1.1.7-12 is obsoleted by (installed) python-pillow-2.0.0-7.gitd1c6db8.fc19.x86_64
[chris@thinkpad ~]$

Fuck we can not install this dummy package because it will break other packages that depend on python-pillow.

As seen here create a rosdep-fedora.yaml file:

[chris@thinkpad ros_catkin_ws]$ vim /opt/ros/groovy/rosdep-fedora.yaml
[chris@thinkpad ros_catkin_ws]$ cat /opt/ros/groovy/rosdep-fedora.yaml
python-imaging:
  fedora:
    yum:
        packages: [ python-pillow ]
[chris@thinkpad ros_catkin_ws]$ sudo vim /etc/ros/rosdep/sources.list.d/20-default.list
[chris@thinkpad ros_catkin_ws]$ head -n 2 /etc/ros/rosdep/sources.list.d/20-default.list
# os-specific listings first
yaml file://localhost/opt/ros/groovy/rosdep-fedora.yaml fedora
[chris@thinkpad ros_catkin_ws]$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit file://localhost/opt/ros/groovy/rosdep-fedora.yaml
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/rosdep/ruby.yaml
Hit https://github.com/ros/rosdistro/raw/master/releases/fuerte.yaml
Ignore legacy gbpdistro "groovy"
Ignore legacy gbpdistro "hydro"
Query rosdistro index https://raw.github.com/ros/rosdistro/master/index.yaml
Add distro "groovy"
Add distro "hydro"
updated cache in /home/chris/.ros/rosdep/sources.cache
[chris@thinkpad ros_catkin_ws]$

Now it works:

[chris@thinkpad ros_catkin_ws]$ rosdep install --from-paths src --ignore-src --rosdistro groovy -y
WARNING: Metapackage "diagnostics" must buildtool_depend on catkin.
WARNING: Metapackage "common_msgs" must buildtool_depend on catkin.
WARNING: Metapackage "geometry" must buildtool_depend on catkin.
WARNING: Metapackage "vision_opencv" must buildtool_depend on catkin.
WARNING: Metapackage "image_common" must buildtool_depend on catkin.
WARNING: Metapackage "geometry_experimental" must buildtool_depend on catkin.
WARNING: Metapackage "nodelet_core" must buildtool_depend on catkin.
WARNING: Metapackage "driver_common" must buildtool_depend on catkin.
WARNING: Metapackage "diagnostics" must buildtool_depend on catkin.
WARNING: Metapackage "common_msgs" must buildtool_depend on catkin.
WARNING: Metapackage "geometry" must buildtool_depend on catkin.
WARNING: Metapackage "vision_opencv" must buildtool_depend on catkin.
WARNING: Metapackage "image_common" must buildtool_depend on catkin.
WARNING: Metapackage "geometry_experimental" must buildtool_depend on catkin.
WARNING: Metapackage "nodelet_core" must buildtool_depend on catkin.
WARNING: Metapackage "driver_common" must buildtool_depend on catkin.
#All required rosdeps installed successfully
[chris@thinkpad ros_catkin_ws]$

catkin_make_isolated

In this step we will compile the ROS packages. I’m already waiting for the next problems :-(

[chris@thinkpad ros_catkin_ws]$ ./src/catkin/bin/catkin_make_isolated --install -DSETUPTOOLS_DEB_LAYOUT=OFF
...
==> Processing catkin package: 'class_loader'
==> Creating build directory: 'build_isolated/class_loader'
==> Building with env: '/opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh'
==> cmake /opt/ros/groovy/ros_catkin_ws/src/class_loader -DCATKIN_DEVEL_PREFIX=/opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader -DCMAKE_INSTALL_PREFIX=/opt/ros/groovy/ros_catkin_ws/install_isolated -DSETUPTOOLS_DEB_LAYOUT=OFF
-- The C compiler identification is GNU 4.8.0
-- The CXX compiler identification is GNU 4.8.0
-- Check for working C compiler: /usr/lib64/ccache/cc
-- Check for working C compiler: /usr/lib64/ccache/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/lib64/ccache/c++
-- Check for working CXX compiler: /usr/lib64/ccache/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Searching for Poco library...
--   Found Poco!
-- components found: Foundation.
-- Boost version: 1.53.0
-- Found the following Boost libraries:
--   thread
-- Using CATKIN_DEVEL_PREFIX: /opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader
-- Using CMAKE_PREFIX_PATH: /opt/ros/groovy/ros_catkin_ws/install_isolated
-- This workspace overlays: /opt/ros/groovy/ros_catkin_ws/install_isolated
-- Found PythonInterp: /usr/bin/python (found version "2.7.4")
-- Found PY_em: /usr/lib/python2.7/site-packages/em.pyc
-- Found gtest: gtests will be built
-- Using CATKIN_TEST_RESULTS_DIR: /opt/ros/groovy/ros_catkin_ws/build_isolated/class_loader/test_results
-- catkin 0.5.65
-- Boost version: 1.53.0
-- Found the following Boost libraries:
--   thread
CMake Error at /opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader/share/class_loader/cmake/class_loaderConfig.cmake:95 (message):
  Project 'class_loader' specifies '/usr/include/CppUnit/include' as an
  include dir, which is not found.  It does neither exist as an absolute
  directory nor in
  '/opt/ros/groovy/ros_catkin_ws/src/class_loader//usr/include/CppUnit/include'.
  Ask the maintainer 'Mirza Shah <mshah@willowgarage.com>' to fix it.
Call Stack (most recent call first):
  /opt/ros/groovy/ros_catkin_ws/install_isolated/share/catkin/cmake/catkinConfig.cmake:72 (find_package)
  test/CMakeLists.txt:4 (find_package)


-- Configuring incomplete, errors occurred!
Traceback (most recent call last):
  File "./src/catkin/bin/../python/catkin/builder.py", line 658, in build_workspace_isolated
    number=index + 1, of=len(ordered_packages)
  File "./src/catkin/bin/../python/catkin/builder.py", line 443, in build_package
    install, jobs, force_cmake, quiet, last_env, cmake_args, make_args
  File "./src/catkin/bin/../python/catkin/builder.py", line 278, in build_catkin_package
    os.remove(makefile)
OSError: [Errno 2] No such file or directory: '/opt/ros/groovy/ros_catkin_ws/build_isolated/class_loader/Makefile'
<== Failed to process package 'class_loader':
  [Errno 2] No such file or directory: '/opt/ros/groovy/ros_catkin_ws/build_isolated/class_loader/Makefile'
Command failed, exiting.
[chris@thinkpad ros_catkin_ws]$

I hope that error can be solved by installing cppunit-devel:

[chris@thinkpad ~]$ sudo yum search CppUnit
Swipe your right index finger across the fingerprint reader
Loaded plugins: auto-update-debuginfo, fastestmirror, langpacks, refresh-packagekit
Loading mirror speeds from cached hostfile
* fedora: ftp.uni-erlangen.de
* rpmfusion-free: fedora.tu-chemnitz.de
* rpmfusion-free-updates: ftp.nluug.nl
* rpmfusion-free-updates-testing: fedora.tu-chemnitz.de
* rpmfusion-nonfree: fedora.tu-chemnitz.de
* rpmfusion-nonfree-updates: ftp.nluug.nl
* rpmfusion-nonfree-updates-testing: fedora.tu-chemnitz.de
* updates: ftp.halifax.rwth-aachen.de
* updates-testing: ftp.uni-erlangen.de
=============== N/S matched: CppUnit =========================
cppunit-devel.i686 : Libraries and headers for cppunit development
cppunit-devel.x86_64 : Libraries and headers for cppunit development
cppunit-doc.x86_64 : HTML formatted API documention for cppunit
cppunit.i686 : C++ unit testing framework
cppunit.x86_64 : C++ unit testing framework
mingw32-cppunit.noarch : MinGW Windows C++ unit testing framework

  Name and summary matches only, use "search all" for everything.
[chris@thinkpad ~]$ sudo yum install cppunit-devel
Loaded plugins: auto-update-debuginfo, fastestmirror, langpacks, refresh-packagekit
Loading mirror speeds from cached hostfile
* fedora: ftp.uni-erlangen.de
* rpmfusion-free: fedora.tu-chemnitz.de
* rpmfusion-free-updates: ftp.nluug.nl
* rpmfusion-free-updates-testing: fedora.tu-chemnitz.de
* rpmfusion-nonfree: fedora.tu-chemnitz.de
* rpmfusion-nonfree-updates: ftp.nluug.nl
* rpmfusion-nonfree-updates-testing: fedora.tu-chemnitz.de
* updates: ftp.halifax.rwth-aachen.de
* updates-testing: ftp.uni-erlangen.de
Package cppunit-devel-1.12.1-9.fc19.x86_64 already installed and latest version
Nothing to do
[chris@thinkpad ~]$

Fuck this package is already installed, we can check which files get installed by this package with the command rpm -ql cppunit-devel.

[chris@thinkpad ~]$ rpm -ql cppunit-devel
/usr/bin/cppunit-config
/usr/include/cppunit
/usr/include/cppunit/AdditionalMessage.h
/usr/include/cppunit/Asserter.h
/usr/include/cppunit/BriefTestProgressListener.h
/usr/include/cppunit/CompilerOutputter.h
/usr/include/cppunit/Exception.h
/usr/include/cppunit/Message.h
/usr/include/cppunit/Outputter.h
/usr/include/cppunit/Portability.h
/usr/include/cppunit/Protector.h
/usr/include/cppunit/SourceLine.h
/usr/include/cppunit/SynchronizedObject.h
/usr/include/cppunit/Test.h
/usr/include/cppunit/TestAssert.h
/usr/include/cppunit/TestCaller.h
/usr/include/cppunit/TestCase.h
/usr/include/cppunit/TestComposite.h
/usr/include/cppunit/TestFailure.h
/usr/include/cppunit/TestFixture.h
/usr/include/cppunit/TestLeaf.h
/usr/include/cppunit/TestListener.h
/usr/include/cppunit/TestPath.h
/usr/include/cppunit/TestResult.h
/usr/include/cppunit/TestResultCollector.h
/usr/include/cppunit/TestRunner.h
/usr/include/cppunit/TestSuccessListener.h
/usr/include/cppunit/TestSuite.h
/usr/include/cppunit/TextOutputter.h
/usr/include/cppunit/TextTestProgressListener.h
/usr/include/cppunit/TextTestResult.h
/usr/include/cppunit/TextTestRunner.h
/usr/include/cppunit/XmlOutputter.h
/usr/include/cppunit/XmlOutputterHook.h
/usr/include/cppunit/config
/usr/include/cppunit/config-auto.h
/usr/include/cppunit/config/CppUnitApi.h
/usr/include/cppunit/config/SelectDllLoader.h
/usr/include/cppunit/config/SourcePrefix.h
/usr/include/cppunit/config/config-bcb5.h
/usr/include/cppunit/config/config-evc4.h
/usr/include/cppunit/config/config-mac.h
/usr/include/cppunit/config/config-msvc6.h
/usr/include/cppunit/extensions
/usr/include/cppunit/extensions/AutoRegisterSuite.h
/usr/include/cppunit/extensions/ExceptionTestCaseDecorator.h
/usr/include/cppunit/extensions/HelperMacros.h
/usr/include/cppunit/extensions/Orthodox.h
/usr/include/cppunit/extensions/RepeatedTest.h
/usr/include/cppunit/extensions/TestCaseDecorator.h
/usr/include/cppunit/extensions/TestDecorator.h
/usr/include/cppunit/extensions/TestFactory.h
/usr/include/cppunit/extensions/TestFactoryRegistry.h
/usr/include/cppunit/extensions/TestFixtureFactory.h
/usr/include/cppunit/extensions/TestNamer.h
/usr/include/cppunit/extensions/TestSetUp.h
/usr/include/cppunit/extensions/TestSuiteBuilderContext.h
/usr/include/cppunit/extensions/TestSuiteFactory.h
/usr/include/cppunit/extensions/TypeInfoHelper.h
/usr/include/cppunit/plugin
/usr/include/cppunit/plugin/DynamicLibraryManager.h
/usr/include/cppunit/plugin/DynamicLibraryManagerException.h
/usr/include/cppunit/plugin/PlugInManager.h
/usr/include/cppunit/plugin/PlugInParameters.h
/usr/include/cppunit/plugin/TestPlugIn.h
/usr/include/cppunit/plugin/TestPlugInDefaultImpl.h
/usr/include/cppunit/portability
/usr/include/cppunit/portability/CppUnitDeque.h
/usr/include/cppunit/portability/CppUnitMap.h
/usr/include/cppunit/portability/CppUnitSet.h
/usr/include/cppunit/portability/CppUnitStack.h
/usr/include/cppunit/portability/CppUnitVector.h
/usr/include/cppunit/portability/FloatingPoint.h
/usr/include/cppunit/portability/Stream.h
/usr/include/cppunit/tools
/usr/include/cppunit/tools/Algorithm.h
/usr/include/cppunit/tools/StringTools.h
/usr/include/cppunit/tools/XmlDocument.h
/usr/include/cppunit/tools/XmlElement.h
/usr/include/cppunit/ui
/usr/include/cppunit/ui/mfc
/usr/include/cppunit/ui/mfc/MfcTestRunner.h
/usr/include/cppunit/ui/mfc/TestRunner.h
/usr/include/cppunit/ui/qt
/usr/include/cppunit/ui/qt/Config.h
/usr/include/cppunit/ui/qt/QtTestRunner.h
/usr/include/cppunit/ui/qt/TestRunner.h
/usr/include/cppunit/ui/text
/usr/include/cppunit/ui/text/TestRunner.h
/usr/include/cppunit/ui/text/TextTestRunner.h
/usr/lib64/libcppunit.so
/usr/lib64/pkgconfig/cppunit.pc
/usr/share/aclocal/cppunit.m4
/usr/share/man/man1/cppunit-config.1.gz
[chris@thinkpad ~]$

It seems these Ubuntu people have again decided to do something stupid like using non-standard directory names for the include directory.

Edit the file /opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader/share/class_loader/cmake/class_loaderConfig.cmake and replace /usr/include/CppUnit/include with /usr/include/cppunit/:

[chris@thinkpad ros_catkin_ws]$ cp /opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader/share/class_loader/cmake/class_loaderConfig.cmake /opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader/share/class_loader/cmake/class_loaderConfig.cmake.bak
[chris@thinkpad ros_catkin_ws]$ sed -i 's/CppUnit\/include/cppunit/g' /opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader/share/class_loader/cmake/class_loaderConfig.cmake

Continue with the installation:

[chris@thinkpad ros_catkin_ws]$ ./src/catkin/bin/catkin_make_isolated --install -DSETUPTOOLS_DEB_LAYOUT=OFF
...
[chris@thinkpad ros_catkin_ws]$

The error is still there, the file class_loaderConfig.cmake gets overridden every time.

Maybe a symlink can solve this:

[chris@thinkpad ros_catkin_ws]$ sudo mkdir /usr/include/CppUnit/
[chris@thinkpad ros_catkin_ws]$ sudo ln -s /usr/include/cppunit/ /usr/include/CppUnit/include
[chris@thinkpad ros_catkin_ws]$ ls -l /usr/include/CppUnit
total 0
lrwxrwxrwx. 1 root root 21 Apr 30 16:44 include -> /usr/include/cppunit/
[chris@thinkpad ros_catkin_ws]$

And the next error:

[chris@thinkpad ros_catkin_ws]$ ./src/catkin/bin/catkin_make_isolated --install -DSETUPTOOLS_DEB_LAYOUT=OFF
...
==> Processing catkin package: 'class_loader'
==> Building with env: '/opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh'
==> cmake /opt/ros/groovy/ros_catkin_ws/src/class_loader -DCATKIN_DEVEL_PREFIX=/opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader -DCMAKE_INSTALL_PREFIX=/opt/ros/groovy/ros_catkin_ws/install_isolated -DSETUPTOOLS_DEB_LAYOUT=OFF
-- Searching for Poco library...
--   Found Poco!
-- components found: Foundation.
-- Boost version: 1.53.0
-- Found the following Boost libraries:
--   thread
-- Using CATKIN_DEVEL_PREFIX: /opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader
-- Using CMAKE_PREFIX_PATH: /opt/ros/groovy/ros_catkin_ws/install_isolated
-- This workspace overlays: /opt/ros/groovy/ros_catkin_ws/install_isolated
-- Found gtest: gtests will be built
-- Using CATKIN_TEST_RESULTS_DIR: /opt/ros/groovy/ros_catkin_ws/build_isolated/class_loader/test_results
-- catkin 0.5.65
-- Boost version: 1.53.0
-- Found the following Boost libraries:
--   thread
CMake Error at /opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader/share/class_loader/cmake/class_loaderConfig.cmake:95 (message):
  Project 'class_loader' specifies '/usr/include/Foundation/include' as an
  include dir, which is not found.  It does neither exist as an absolute
  directory nor in
  '/opt/ros/groovy/ros_catkin_ws/src/class_loader//usr/include/Foundation/include'.
  Ask the maintainer 'Mirza Shah <mshah@willowgarage.com>' to fix it.
Call Stack (most recent call first):
  /opt/ros/groovy/ros_catkin_ws/install_isolated/share/catkin/cmake/catkinConfig.cmake:72 (find_package)
  test/CMakeLists.txt:4 (find_package)


-- Configuring incomplete, errors occurred!
Traceback (most recent call last):
  File "./src/catkin/bin/../python/catkin/builder.py", line 658, in build_workspace_isolated
    number=index + 1, of=len(ordered_packages)
  File "./src/catkin/bin/../python/catkin/builder.py", line 443, in build_package
    install, jobs, force_cmake, quiet, last_env, cmake_args, make_args
  File "./src/catkin/bin/../python/catkin/builder.py", line 278, in build_catkin_package
    os.remove(makefile)
OSError: [Errno 2] No such file or directory: '/opt/ros/groovy/ros_catkin_ws/build_isolated/class_loader/Makefile'
<== Failed to process package 'class_loader':
  [Errno 2] No such file or directory: '/opt/ros/groovy/ros_catkin_ws/build_isolated/class_loader/Makefile'
Command failed, exiting.
[chris@thinkpad ros_catkin_ws]$

Since this error is similar to the last one maybe we have to find another way to fix this.

[chris@thinkpad ~]$ rpm -ql poco-devel |grep Foun
/usr/include/Poco/Foundation.h
/usr/lib64/libPocoFoundation.so
/usr/lib64/libPocoFoundationd.so
[chris@thinkpad ~]$

The correct include directory is probably /usr/include/Poco/.

[chris@thinkpad ros_catkin_ws]$ sudo mkdir /usr/include/Foundation/
mkdir: cannot create directory ‘/usr/include/Foundation/’: File exists
[chris@thinkpad ros_catkin_ws]$ sudo yum whatprovides /usr/include/Foundation/Foundation.h
...
gnustep-base-devel-1.24.4-1.fc19.i686 : Header of the GNUstep Base library packes
Repo        : fedora
Matched from:
Filename    : /usr/include/Foundation/Foundation.h
...
[chris@thinkpad ros_catkin_ws]$

So the Foundation directory already exists and is not part of the Poco library, I will just place a temporary symlink in it and try it again:

[chris@thinkpad ros_catkin_ws]$ sudo ln -s /usr/include/Poco/ /usr/include/Foundation/include
[chris@thinkpad ros_catkin_ws]$ ./src/catkin/bin/catkin_make_isolated --install -DSETUPTOOLS_DEB_LAYOUT=OFF
==> Processing catkin package: 'class_loader'
==> Building with env: '/opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh'
==> cmake /opt/ros/groovy/ros_catkin_ws/src/class_loader -DCATKIN_DEVEL_PREFIX=/opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader -DCMAKE_INSTALL_PREFIX=/opt/ros/groovy/ros_catkin_ws/install_isolated -DSETUPTOOLS_DEB_LAYOUT=OFF
-- Searching for Poco library...
--   Found Poco!
-- components found: Foundation.
-- Boost version: 1.53.0
-- Found the following Boost libraries:
--   thread
-- Using CATKIN_DEVEL_PREFIX: /opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader
-- Using CMAKE_PREFIX_PATH: /opt/ros/groovy/ros_catkin_ws/install_isolated
-- This workspace overlays: /opt/ros/groovy/ros_catkin_ws/install_isolated
-- Found gtest: gtests will be built
-- Using CATKIN_TEST_RESULTS_DIR: /opt/ros/groovy/ros_catkin_ws/build_isolated/class_loader/test_results
-- catkin 0.5.65
-- Boost version: 1.53.0
-- Found the following Boost libraries:
--   thread
CMake Error at /opt/ros/groovy/ros_catkin_ws/devel_isolated/class_loader/share/class_loader/cmake/class_loaderConfig.cmake:95 (message):
  Project 'class_loader' specifies '/usr/include/Net/include' as an include
  dir, which is not found.  It does neither exist as an absolute directory
  nor in
  '/opt/ros/groovy/ros_catkin_ws/src/class_loader//usr/include/Net/include'.
  Ask the maintainer 'Mirza Shah <mshah@willowgarage.com>' to fix it.
Call Stack (most recent call first):
  /opt/ros/groovy/ros_catkin_ws/install_isolated/share/catkin/cmake/catkinConfig.cmake:72 (find_package)
  test/CMakeLists.txt:4 (find_package)


-- Configuring incomplete, errors occurred!
Traceback (most recent call last):
  File "./src/catkin/bin/../python/catkin/builder.py", line 658, in build_workspace_isolated
    number=index + 1, of=len(ordered_packages)
  File "./src/catkin/bin/../python/catkin/builder.py", line 443, in build_package
    install, jobs, force_cmake, quiet, last_env, cmake_args, make_args
  File "./src/catkin/bin/../python/catkin/builder.py", line 278, in build_catkin_package
    os.remove(makefile)
OSError: [Errno 2] No such file or directory: '/opt/ros/groovy/ros_catkin_ws/build_isolated/class_loader/Makefile'
<== Failed to process package 'class_loader':
  [Errno 2] No such file or directory: '/opt/ros/groovy/ros_catkin_ws/build_isolated/class_loader/Makefile'
Command failed, exiting.
[chris@thinkpad ros_catkin_ws]$

We have to create some more symlinks. It is not perfect but it works. It would be better to find the correct CMake file and fix it.

[chris@thinkpad ros_catkin_ws]$ sudo mkdir /usr/include/Net/
[chris@thinkpad ros_catkin_ws]$ sudo ln -s /usr/include/Poco/ /usr/include/Net/include
[chris@thinkpad ros_catkin_ws]$ sudo mkdir /usr/include/Util
[chris@thinkpad ros_catkin_ws]$ sudo ln -s /usr/include/Poco /usr/include/Util/include
[chris@thinkpad ros_catkin_ws]$ sudo mkdir /usr/include/XML
[chris@thinkpad ros_catkin_ws]$ sudo ln -s /usr/include/Poco /usr/include/XML/include
[chris@thinkpad ros_catkin_ws]$

Now wait for the next error:

[chris@thinkpad ros_catkin_ws]$ ./src/catkin/bin/catkin_make_isolated --install -DSETUPTOOLS_DEB_LAYOUT=OFF
...
done
build succeeded.
Scanning dependencies of target pch_Generate_opencv_superres
[ 27%] Generating precomp.hpp
[ 27%] Generating precomp.hpp.gch/opencv_superres_Release.gch
Generating opencv2refman.pdf
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013)
restricted \write18 enabled.
entering extended mode
[ 27%] Built target pch_Generate_opencv_test_superres
Scanning dependencies of target pch_Generate_opencv_videostab
Scanning dependencies of target pch_Generate_opencv_perf_superres
[ 27%] [ 28%] Generating perf_precomp.hpp
Generating precomp.hpp
[ 28%] [ 28%] Generating perf_precomp.hpp.gch/opencv_perf_superres_Release.gch
Generating precomp.hpp.gch/opencv_videostab_Release.gch
make[2]: *** [doc/CMakeFiles/docs] Error 1
make[1]: *** [doc/CMakeFiles/docs.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 28%] Built target pch_Generate_opencv_videostab
[ 28%] Built target pch_Generate_opencv_superres
[ 28%] Built target pch_Generate_opencv_perf_superres
make: *** [all] Error 2
Traceback (most recent call last):
  File "./src/catkin/bin/../python/catkin/builder.py", line 658, in build_workspace_isolated
    number=index + 1, of=len(ordered_packages)
  File "./src/catkin/bin/../python/catkin/builder.py", line 456, in build_package
    install, jobs, force_cmake, quiet, last_env, cmake_args, make_args
  File "./src/catkin/bin/../python/catkin/builder.py", line 359, in build_cmake_package
    run_command(make_cmd, build_dir, quiet)
  File "./src/catkin/bin/../python/catkin/builder.py", line 186, in run_command
    raise subprocess.CalledProcessError(proc.returncode, ' '.join(cmd))
CalledProcessError: Command '/opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh make -j4 -l4' returned non-zero exit status 2
<== Failed to process package 'opencv2':
  Command '/opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh make -j4 -l4' returned non-zero exit status 2

Reproduce this error by running:
==> /opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh make -j4 -l4

Command failed, exiting.
[chris@thinkpad ros_catkin_ws]$

Again you can add -j1 to the build command (./src/catkin/bin/catkin_make_isolated --install -DSETUPTOOLS_DEB_LAYOUT=OFF -j1) to run only one job simultaneously to find the reason for the build failure more easily.

It seems that there is a problem with generating the documentation:

...
images/Smoothing_Tutorial_Cover.jpg
copying TeX support files...
done
build succeeded, 1721 warnings.
Generating opencv2refman.pdf
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013)
restricted \write18 enabled.
entering extended mode
make[2]: *** [doc/CMakeFiles/docs] Error 1
make[1]: *** [doc/CMakeFiles/docs.dir/all] Error 2
make: *** [all] Error 2
Traceback (most recent call last):
  File "./src/catkin/bin/../python/catkin/builder.py", line 658, in build_workspace_isolated
    number=index + 1, of=len(ordered_packages)
  File "./src/catkin/bin/../python/catkin/builder.py", line 456, in build_package
    install, jobs, force_cmake, quiet, last_env, cmake_args, make_args
  File "./src/catkin/bin/../python/catkin/builder.py", line 359, in build_cmake_package
    run_command(make_cmd, build_dir, quiet)
  File "./src/catkin/bin/../python/catkin/builder.py", line 186, in run_command
    raise subprocess.CalledProcessError(proc.returncode, ' '.join(cmd))
CalledProcessError: Command '/opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh make -j1 -l1' returned non-zero exit status 2
<== Failed to process package 'opencv2':
  Command '/opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh make -j1 -l1' returned non-zero exit status 2

Reproduce this error by running:
==> /opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh make -j1 -l1

Command failed, exiting.
[chris@thinkpad ros_catkin_ws]$

I think the easiest solution is to disable building the opencv documentation:

[chris@thinkpad ros_catkin_ws]$ cp /opt/ros/groovy/ros_catkin_ws/src/opencv2/CMakeLists.txt /opt/ros/groovy/ros_catkin_ws/src/opencv2/CMakeLists.txt.bak
[chris@thinkpad ros_catkin_ws]$ sed -i 's/OpenCV Documentation\" ON/OpenCV Documentation\" OFF/g' /opt/ros/groovy/ros_catkin_ws/src/opencv2/CMakeLists.txt
[chris@thinkpad ros_catkin_ws]$ rm -rf build_isolated/opencv2/
[chris@thinkpad ros_catkin_ws]$ ./src/catkin/bin/catkin_make_isolated --install -DSETUPTOOLS_DEB_LAYOUT=OFF -j1

And the next error:

==> Processing catkin package: 'collada_urdf'
==> Creating build directory: 'build_isolated/collada_urdf'
==> Building with env: '/opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh'
==> cmake /opt/ros/groovy/ros_catkin_ws/src/collada_urdf -DCATKIN_DEVEL_PREFIX=/opt/ros/groovy/ros_catkin_ws/devel_isolated/collada_urdf -DCMAKE_INSTALL_PREFIX=/opt/ros/groovy/ros_catkin_ws/install_isolated -DSETUPTOOLS_DEB_LAYOUT=OFF
-- The C compiler identification is GNU 4.8.0
-- The CXX compiler identification is GNU 4.8.0
-- Check for working C compiler: /usr/lib64/ccache/cc
-- Check for working C compiler: /usr/lib64/ccache/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/lib64/ccache/c++
-- Check for working CXX compiler: /usr/lib64/ccache/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Using CATKIN_DEVEL_PREFIX: /opt/ros/groovy/ros_catkin_ws/devel_isolated/collada_urdf
-- Using CMAKE_PREFIX_PATH: /opt/ros/groovy/ros_catkin_ws/install_isolated
-- This workspace overlays: /opt/ros/groovy/ros_catkin_ws/install_isolated
-- Found PythonInterp: /usr/bin/python (found version "2.7.4")
-- Found PY_em: /usr/lib/python2.7/site-packages/em.pyc
-- Found gtest: gtests will be built
-- Using CATKIN_TEST_RESULTS_DIR: /opt/ros/groovy/ros_catkin_ws/build_isolated/collada_urdf/test_results
-- catkin 0.5.65
-- Boost version: 1.53.0
-- Found the following Boost libraries:
--   system
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.27.1")
-- checking for module 'assimp'
--   found assimp, version 2.0
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/ros/groovy/ros_catkin_ws/build_isolated/collada_urdf
==> make -j1 -l1 in '/opt/ros/groovy/ros_catkin_ws/build_isolated/collada_urdf'
Scanning dependencies of target collada_urdf
[ 50%] Building CXX object CMakeFiles/collada_urdf.dir/src/collada_urdf.cpp.o
Linking CXX shared library /opt/ros/groovy/ros_catkin_ws/devel_isolated/collada_urdf/lib/libcollada_urdf.so
[ 50%] Built target collada_urdf
Scanning dependencies of target urdf_to_collada
[100%] Building CXX object CMakeFiles/urdf_to_collada.dir/src/urdf_to_collada.cpp.o
Linking CXX executable /opt/ros/groovy/ros_catkin_ws/devel_isolated/collada_urdf/lib/collada_urdf/urdf_to_collada
/opt/ros/groovy/ros_catkin_ws/devel_isolated/collada_urdf/lib/libcollada_urdf.so: undefined reference to `aiScene::aiScene()'
collect2: error: ld returned 1 exit status
make[2]: *** [/opt/ros/groovy/ros_catkin_ws/devel_isolated/collada_urdf/lib/collada_urdf/urdf_to_collada] Error 1
make[1]: *** [CMakeFiles/urdf_to_collada.dir/all] Error 2
make: *** [all] Error 2
Traceback (most recent call last):
  File "./src/catkin/bin/../python/catkin/builder.py", line 658, in build_workspace_isolated
    number=index + 1, of=len(ordered_packages)
  File "./src/catkin/bin/../python/catkin/builder.py", line 443, in build_package
    install, jobs, force_cmake, quiet, last_env, cmake_args, make_args
  File "./src/catkin/bin/../python/catkin/builder.py", line 297, in build_catkin_package
    run_command(make_cmd, build_dir, quiet)
  File "./src/catkin/bin/../python/catkin/builder.py", line 186, in run_command
    raise subprocess.CalledProcessError(proc.returncode, ' '.join(cmd))
CalledProcessError: Command '/opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh make -j1 -l1' returned non-zero exit status 2
<== Failed to process package 'collada_urdf':
  Command '/opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh make -j1 -l1' returned non-zero exit status 2

Reproduce this error by running:
==> /opt/ros/groovy/ros_catkin_ws/install_isolated/env.sh make -j1 -l1

Command failed, exiting.
[chris@thinkpad ros_catkin_ws]$

A possible solution is to move collada_urdf out of the src directory (source):

[chris@thinkpad ros_catkin_ws]$ mv src/collada_urdf .
[chris@thinkpad ros_catkin_ws]$ ./src/catkin/bin/catkin_make_isolated --install -DSETUPTOOLS_DEB_LAYOUT=OFF -j1
...
-- Removed runtime path from "/opt/ros/groovy/ros_catkin_ws/install_isolated/lib/libdefault_plugin.so"
-- Installing: /opt/ros/groovy/ros_catkin_ws/install_isolated/lib/python2.7/site-packages/rviz/librviz_sip.so
<== Finished processing package [153 of 153]: 'rviz'
[chris@thinkpad ros_catkin_ws]$

Finished!

Post installation steps

Now you only need to add /opt/ros/groovy/ros_catkin_ws/install_isolated/setup.bash to your .bashrc and ROS can be used.

[chris@thinkpad ~]$ echo "source /opt/ros/groovy/ros_catkin_ws/install_isolated/setup.bash" >> ~/.bashrc

Have fun!

Last updated: 2013-05-01