Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

catkin_make_isolated crashing on plain cmake package #340

Closed
piyushk opened this issue Jan 30, 2013 · 2 comments
Closed

catkin_make_isolated crashing on plain cmake package #340

piyushk opened this issue Jan 30, 2013 · 2 comments
Assignees

Comments

@piyushk
Copy link

piyushk commented Jan 30, 2013

I am trying to build https://github.com/segwayrmp/libsegwayrmp locally in my catkin workspace. When I try and build the package, catkin_make_isolated crashed out.

This crash was produced using Catkin 0.5.63

Steps to reproduce the error:

mkdir -p ~/test_catkin_ws/src
cd ~/test_catkin_ws/src
git clone https://github.com/segwayrmp/libsegwayrmp
cd ../
catkin_make_isolated

Output:

Base path: /home/piyushk/test_catkin_ws
Source space: /home/piyushk/test_catkin_ws/src
Build space: /home/piyushk/test_catkin_ws/build_isolated
Devel space: /home/piyushk/test_catkin_ws/devel_isolated
Install space: /home/piyushk/test_catkin_ws/install_isolated
\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\~~  traversing packages in topological order:
\~~  - libsegwayrmp (plain cmake)
\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Warning: packages or cmake arguments have changed, forcing cmake
==> Processing plain cmake package: 'libsegwayrmp'
==> Creating build directory: 'build_isolated/libsegwayrmp'
==> cmake /home/piyushk/test_catkin_ws/src/libsegwayrmp -DCMAKE_INSTALL_PREFIX=/home/piyushk/test_catkin_ws/devel_isolated/libsegwayrmp
==> make -j8 -l8 in '/home/piyushk/test_catkin_ws/build_isolated/libsegwayrmp'
==> make install in '/home/piyushk/test_catkin_ws/build_isolated/libsegwayrmp'
==> Generating an env.sh
<== Failed to process package 'libsegwayrmp': 
  'NoneType' object has no attribute 'rfind'
Command failed, exiting.

On the other hand, the following instructions will work, though some of the output seems suspect.

mkdir -p test2_catkin_ws/src
cd test2_catkin_ws/src
git clone https://github.com/segwayrmp/libsegwayrmp
git clone https://github.com/wjwwood/serial
cd ../
catkin_make_isolated

Output:

Base path: /home/piyushk/test2_catkin_ws
Source space: /home/piyushk/test2_catkin_ws/src
Build space: /home/piyushk/test2_catkin_ws/build_isolated
Devel space: /home/piyushk/test2_catkin_ws/devel_isolated
Install space: /home/piyushk/test2_catkin_ws/install_isolated

~~ traversing packages in topological order:
~~ - serial
~~ - libsegwayrmp (plain cmake)

Warning: packages or cmake arguments have changed, forcing cmake
==> Processing catkin package: 'serial'
==> Creating build directory: 'build_isolated/serial'
==> cmake /home/piyushk/test2_catkin_ws/src/serial -DCATKIN_DEVEL_PREFIX=/home/piyushk/test2_catkin_ws/devel_isolated/serial -DCMAKE_INSTALL_PREFIX=/home/piyushk/test2_catkin_ws/install_isolated
==> make -j8 -l8 in '/home/piyushk/test2_catkin_ws/build_isolated/serial'
<== Finished processing package [1 of 2]: 'serial'
==> Processing plain cmake package: 'libsegwayrmp'
==> Creating build directory: 'build_isolated/libsegwayrmp'
==> Building with env: '/home/piyushk/test2_catkin_ws/devel_isolated/serial/env.sh'
==> cmake /home/piyushk/test2_catkin_ws/src/libsegwayrmp -DCMAKE_INSTALL_PREFIX=/home/piyushk/test2_catkin_ws/devel_isolated/libsegwayrmp
==> make -j8 -l8 in '/home/piyushk/test2_catkin_ws/build_isolated/libsegwayrmp'
==> make install in '/home/piyushk/test2_catkin_ws/build_isolated/libsegwayrmp'
==> Generating an env.sh
<== Finished processing package [2 of 2]: 'libsegwayrmp'

The reason I was testing this is that a pkg-config file was not generated for this package using an older version of catkin (and is also missing for the system package ros-groovy-libsegwayrmp). Shouldn't catkin_make_isolated be producing it?

@smits
Copy link
Contributor

smits commented Feb 15, 2013

This issue is not yet fixed: I'm using catkin version fb7b1c6 on a workspace with only plain cmake packages:

~~  traversing packages in topological order:
~~  - log4cpp (plain cmake)
~~  - rtt (plain cmake)
~~  - ocl (plain cmake)
~~  - utilmm (plain cmake)
~~  - typelib (plain cmake)
~~  - rtt_typelib (plain cmake)

and get the following:

==> Generating an env.sh
<== Finished processing package [1 of 6]: 'log4cpp'
==> Processing plain cmake package: 'rtt'
==> Building with env: '/home/rsmits/ros_orocos_catkin_ws/devel_isolated/log4cpp/env.sh'
==> cmake /home/rsmits/ros_orocos_catkin_ws/src/orocos_toolchain/rtt -DCMAKE_INSTALL_PREFIX=/home/rsmits/ros_orocos_catkin_ws/devel_isolated/rtt
/home/rsmits/ros_orocos_catkin_ws/devel_isolated/log4cpp/env.sh: 5: .: None: not found

The generated log4cpp/env.sh indeed looks as follows:

#!/bin/sh                                                                                                

# Autogenerated from caktin.builder module                                                               

. None

...

Which indeed is erroneous sh code.

@dirk-thomas
Copy link
Member

Another issue appears when the install folder does not exist when the env.sh is created.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants