In _setup_util.py.in, we use python provided by environment instead of
the generated one, as the generated python path can be arbitrarily long
(depending on the location of the build directory), and hence reaches
the shebang line limit, causing the script to fail at start-up.
The catkin developers changed the cmake-generated template _setup_util.py
to use @PYTHON_EXECUTABLE@ instead of /usr/bin/env python in changeset
bf12b40c2 [1]. We revert this change here to address the issue #384 [2].
[1] bf12b40c2a
[2] https://github.com/bmwcarit/meta-ros/issues/384
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
As per Section 24.5.15 of the Yocto Manual [1], use of 'virtclass'
overrides has been deprecated since Yocto version 1.6. Update to
the new syntax.
[1] http://www.yoctoproject.org/docs/1.8/mega-manual/mega-manual.html
Signed-off-by: Ash Charles <ashcharles@gmail.com>
During some code inspections, I discovered that two consecutive
empty lines slipped in with the commit 185882428c.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
On the meta-ros issue tracker, the issue #291 reports a
linking problem with rosconsole if ROS Hydro is also installed
on the host system. Kristof investigated in that, and published
a patch [1] on September 27th, 2014, which resolved the rosconsole
issue, but showed issues with urdfdom.
After reading through the discussion of issue #291, I started
initial testing with Kristof's patch. After testing Kristof's
patch, I also investigated the urdfdom problem, and came up with
the solution to revert the part of his patch, which moved
`-DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}'` to ros.bbclass.
Initially, I believed that the issue that was addressed with
the second part of Kristof's patch, has been resolved with
commit 7e2eb25e51. However,
the issue remains, but is only reproducible with the Ubuntu
saucy distribution.
On my first local setup, I could reproduce the issue #291 with
rosconsole on commit 47eab4263c.
After applying this commit, the issue with rosconsole did not
occur anymore on a clean fresh build.
`bitbake packagegroup-ros-world` did not show any other further
issues.
On my second local setup, on a newly-installed Ubuntu 12.04
(precise) system, I checked that the proposed commit resolves
some linking problems to boost, with some latest
OpenEmbedded-Core repository and the poky-dizzy distribution.
A detailed report of the investigation of this second local
setup is at my Github Gist [2].
In the first review of the pull request #318, Kristof noticed
that on an Ubuntu 13.10 (saucy), an issue with message-filters
still occurs. I could not reproduce this and other reported
errors on the Ubuntu 12.04 system, so I believe certain errors
only appear on certain Ubuntu distributions, which makes them
difficult to pinpoint. Therefore, we decided to defer the
resolution of this problem with Ubuntu 13.10.
To adjust to the concurrent work in pull request #319, during
the rebasing, the patch has been moved from the catkin directory
to the files directory.
Kristof remains the author of the applied patch, as I have not
modified the patch. I have put myself as this author's commit,
as I take the responsibility of the modifications compared to
Kristof's original work and I have tested this commit in my
test setting.
[1] 9ff76ffb7a
[2] https://gist.github.com/bulwahn/a8d5b7c27550b399f866
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
catkin: move to files directory (fixup)
The catkin package has got a runtime dependency to cmake, make,
gcc and other build utilities. These dependencies, however, are
only needed if it is desired to build with catkin on the target
board. If we do not want to build on the target board, i.e., if
we just want to use ros tools like roslaunch, only a small part
of catkin (i.e., the corresponding python packages) is required
to be deployed on the target board.
Therefore, we introduce a new package called catkin-runtime.
It installs only the python packages that are required for
the ros tools to run. The roslib package now depends on
catkin-runtime (previously: catkin).
I also tried an alternative approach which just modifies catkin.bb:
- add a catkin-runtime package
- move PYTHON_SITEPACKAGES_DIR from FILES_catkin to FILES_CATKIN_RUNTIME
- make catkin_runtime RDEPEND on the python stuff
- make catkin RDEPEND on the cmake, binutils, ..., + catkin-runtime
With this setup, for some reason, bitbake thinks that
catkin-runtime still RDEPENDS on binutils. Therefore, I split up
the catkin recipe into two different recipes. Here, the
RDEPENDS are managed correctly.
If we want to deploy catkin as a build tool on the board, we can
simply add a runtime dependency to catkin. However, this should
not be the default setup.
Special thanks go to Tobias Henkel (tobias.henkel@bmw-carit.de)
who deserves most of the credits for this patch.
Signed-off-by: Andreas Baak <andreas.baak@bmw-carit.de>
ROS and catkin packages install their assets to paths prefixed by
ros_prefix. As the recipe was trying to collect the assets for the dev
package in the wrong locations, the dev package was empty.
To address this we use the ros_prefix consistently across the recipe.
Resolves import error in __init__.py files derived from catkin/cmake/templates/__init__.py.in template,
e.g. in tf:
File "/usr/lib/python2.7/site-packages/tf/__init__.py", line 7, in <module>
from pkgutil import extend_path
ImportError: No module named pkgutil
The native packages are not required anymore, because the needed
python scripts during compile time are also provided by the
cross-compiled packages and the python scripts are platform
independent. Only the catkin package is provided as native package.
The catkin recipe was updated to 0.5.73 to be in line with
4551e7c32d/hydro/release.yaml.
The previously applied patch has been included in 0.5.73 and is
removed from the recipe and this repository.
Catkin require a .catkin file in all CMAKE_PREFIX_PATH to add them
to the CATKIN_WORKSPACES. Remove this requirement as it couldn't
be satisfy when catkin packages are installed into the common usr
prefix. Without this adaption catkin couldn't find all files.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
The catkin framework need some modification to support cross compiling
packages via yocto. When we want to upstream patches we need to provide
patches against the current groovy-devel branch. Use this branch as base
for our work to simplify the tests and to unify the developing process
of catkin.
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
* Use configuration options instead of patches
* Use relative paths in CMake installation files
* Use catkin class
Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>