In 2014, the update of the diagnostics recipes from 1.8.3 to 1.8.4
failed due to reasons that seem not to be relevant anymore in the
current version 1.8.10. As the diagnostic-aggregator recipe failed
with gcc6 (cf. https://github.com/bmwcarit/meta-ros/issues/392),
I revisited the diagnostics recipes and this commit updates them.
The current diagnostics recipes in version 1.8.10 do not fail with
gcc6, and is one step forward to build meta-ros with gcc6.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
The recent versions of the rosbridge_library package does not depend
on python-pytz anymore. So, this commit removes the dependency in
the recipe file and removes the now unneeded python-pytz recipe.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Bitbake gives a dependency error when IMAGE_FEATURES += " dev-pkgs" is set.
This is because the urdfdom-headers package contains headers only, as a
result bitbake packages them into urdfdom-headers-dev and leaves
urdfdom-headers empty.
Since there are no files to be packaged into urdfdom-headers bitbake
doesn't create the package. urdfdom-headers is a dependency
of urdfdom-headers-dev by default so bitbake errors when building an image
with dev-pkgs enabled.
ALLOW_EMPTY tells bitbake to create a package even when nothing is in it.
This resolves the dependency issue of urdfdom-headers-dev
http://www.embeddedlinux.org.cn/OEManual/recipes_packages.html
While testing the version updates, I noticed that the
camera-calibration-parsers were missing the roscpp dependencies,
and hence do_configure failed with:
```
| Could not find a package configuration file provided by "roscpp" with any
| of the following names:
|
| roscppConfig.cmake
| roscpp-config.cmake
|
| Add the installation prefix of "roscpp" to CMAKE_PREFIX_PATH or set
| "roscpp_DIR" to a directory containing one of the above files. If "roscpp"
| provides a separate development package or SDK, be sure it has been
| installed.
| Call Stack (most recent call first):
| CMakeLists.txt:4 (find_package)
|
|
| -- Configuring incomplete, errors occurred!
```
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
This patch fixes the continuous integration test by dropping
the sound-play recipe from ros-world, as it would fail with
the master branches (addresses issue #388).
https://github.com/bmwcarit/meta-ros/issues/388
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>
This commit adds recipes for rosbridge_suite and its dependencies.
Its main content is based on the commits of pull request #364 by
Christoph Schultz.
As maintainer, Lukas Bulwahn just included the contributions
with a proper commit message, added the new packages to the
packagegroup-ros-world, and slightly improved the line breaking.
The internal CI build detected that bitbake robot-state-publisher
fails after the recent version update. Hence, this commit adjusts
the dependencies to those dependencies stated in the package.xml.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Some of the gst-plugins-good modules were missing to setup a cam for some basic scenarios/tutorials. I added it so they'll be added to the default build set.
The openslam_gmapping commit
07b0c7ef62
corrects the license information of that package, and hence, we
adjust the recipe in meta-ros accordingly.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
This commit drops all patches as they have been merged upstream
since 0.9.1. Furthermore, this commit completes the dependencies
of the velocity_controllers and the forward_command_controller
package.
The ROS packages, rosgraph_msgs and std_srvs, previously
in the ros_comm repository, have been moved into a separate
ros-comm-msgs repository for the ROS indigo distribution.
This commit:
- removes std-srvs and rosgraph-msgs recipes, as their sources
now are located in the ros_comm_msgs repository.
- adds a recipe for the new roslz4 package, which rosbag-storage
depends on.
- removes the patch that has been merged upstream.
The resource_retriever package's source was moved into
its own repository, and needs now python-urlgrabber.
Hence, this commit provides the recipe for python-urlgrabber, moves
the resource-retriever to its own location, and updates all other
packages in the robot_model repository.
This commit also drops the patch provided upstream, and since
version 0.5.1, the ar_track_alvar package now provides an archive
with more default directory structure.
This commit also corrects the license information in the recipe to
LGPL-2.1.
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>
Bump from Velodyne version 1.1.2 (Nov 2013) to the latest release,
1.2.0 (Aug 2014). This version includes a fix to support yaml-cpp
1.5+ so resolves#325 [1].
[1] https://github.com/bmwcarit/meta-ros/issues/325
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>
The frontier-exploration recipe stated that the software is under
BSD license, probably due to a copy-and-paste inattention. The
commit now points to the license line for version 0.2.2 and changes
the license to GPLv3, which is stated in the package.xml.
Strangely, the package.xml states that the frontier_exploration
ROS package is licensed under GPLv3, but the license text in the
LICENSE file is the GPLv2.1 terms and conditions; so the actual
intended license by the copyright holders remain unclear.
However, assuming the conditions for GPLv3 must be fulfilled
for usage and distribution is a 'safe' approximation, even if
the conditions for GPLv2.1 apply.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
With the poky-dizzy distribution, the do_rootfs task for
core-image-ros-world fails with:
ERROR: Unable to install packages. Command '/[...]/build/tmp/sysroots/x86_64-linux/usr/bin/smart --quiet --data-dir=/[...]/core-image-ros-world/1.0-r0/rootfs/var/lib/smart install -y run-postinsts@all packagegroup-core-boot@beaglebone packagegroup-ros-world@all' returned 1:
error: Can't install ar-track-alvar-0.4.1-r0@cortexa8hf_vfp_neon: no package provides libmedianFilter.so
Build Configuration: poky 1.7.1;
poky: "dizzy:ec75238f6cc2d2d8d40e0268f6d2acc070cbe9a4";
meta-openembedded: "dizzy:9efaed99125b1c4324663d9a1b2d3319c74e7278"
To resolve this problem, this commit updates ar-track-alvar to the
latest Hydro version 0.4.2. Unfortunately, there is no archive file
for version 0.4.2, so the recipe uses the git repository with the
commit intended to mark version 0.4.2 to fetch the source code.
Due to the update, this commit also removes the upstream-accepted
patch file from this repository here.
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>
When roslaunch is started, it checks the file size of the local log
directory by calling:
disk_usage = rosclean.get_disk_usage(d) [1]
The function `get_disk_usage` [2] in rosclean creates a subprocess and
calls `du -sb` on Linux systems (cf. [3]).
However, the `du` command, which busybox usually provides on an
embedded Linux image, does not support the `-b` option, and only the
`du` command from the coreutils [4] supports this option.
This issue was first reported in April 2013 on the meta-ros issue
tracker [5]. Hence, on the first iteration of this issue, the
commit db0c8d5c [6] simply adds the dependency on coreutils to
roslaunch.
However, this has certain disadvantages:
- coreutils is licensed under GPLv3 and must not be deployed in a
product, which is massively distributed to customers.
- coreutils has larger file-system foot print than busybox and makes
the minimal Linux images considerably larger.
As a fortuitous circumstance, Alexis Ballier [7] had already observed
this disadvantage and provides a patch [8, 9] that makes
`get_disk_usage` use `du -k`, which works with busybox and coreutils.
So, on the second iteration of this issue, this commit here patches
rosclean's `get_disk_usage` function with the aforementioned patch.
This slightly modifies the semantics of this function. However, I
believe this plays only a minor role for the overall intended
functionality to check if the log usage has reached a critical file-size
limit, and it allows us to remove the dependency on coreutils, which is
much more critical.
Andreas Baak reported the disadvantages of the previous solution, which
triggered the re-investigation. The current resolution has been
discussed and worked out in collaboration with Andreas Baak.
[1] 9da29441f3/tools/roslaunch/src/roslaunch/rlutil.py (L63)
[2] c6e91f9af1/tools/rosclean/src/rosclean/__init__.py (L120)
[3] c6e91f9af1/tools/rosclean/src/rosclean/__init__.py (L130)
[4] http://cgit.openembedded.org/cgit.cgi/openembedded-core/tree/meta/recipes-core/coreutils/coreutils_8.23.bb?h=master
[5] https://github.com/bmwcarit/meta-ros/issues/60
[6] db0c8d5cd1
[7] https://github.com/aballier
[8] https://github.com/ros/ros/pull/76
[9] bbf1f945c7
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Signed-off-by: Andreas Baak <andreas.baak@bmw-carit.de>
When I investigated the issue #291 with Kristof's patch applied,
I noticed that `bitbake octomap` failed.
Due to my inspection, I believe that the inheritance on ros
was only needed as the ROS_SPN and ROS_SP variables were used in
the recipe. After simply using the default variables, BPN and BP,
I removed the inheritance on ros.
Furthermore, as meta-ros only has one recipe for octomap base
library for now, we do not need to split the recipe definition
in an include and a recipe file.
Probably, this was done as premature optimization believing
that the libraries from the octomap repository, e.g., octovis,
would be added shortly after.
Testing with `bitbake packagegroup-ros-world` reported no errors.
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.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.
roscore-default: Removing not supported variable in variable
roscore-default: Adding PATH, LD_LIBRARY_PATH and PYTHONPATH
roscore.service: Using /opt/ros/hydro/bin instead of /usr/bin to launch
roscore
You can now install roslaunch-systemd :
opkg install roslaunch-systemd
and start roscore :
systemctl start roscore
Since version 1.7.15, the bondcpp package needs the cmake_modules
package. The dependency was added with this commit:
f4265d6b28
This issue was reported by Gauthier Monserand (simkim -at- simkim.net).
This commit also adds cmake-modules to the dependencies of
clear-costmap-recovery, while looking into an build issue of the
intermediate version 1.11.12(!) of navigation.
The urdfdom-headers package was removed from packagegroup-ros-world
in #182, because it is an empty package and causes the image
creation to fail (cf. #177).
In commit 9ff8d1f7e9, urdfdom-headers
was added again while adding new ROS packages to
packagegroup-ros-world. As part of the manual regression testing,
executing 'bitbake packagegroup-ros-world' for the different qemu
architectures, but not building full images, this problem has
slipped through the regression testing the last few months. This
issue was reported on the meta-ros mailing list by Parag
Batavia [1].
[1] https://groups.google.com/forum/#!topic/meta-ros/VZo3IUsI_48
In commit 53796fc4, bitbake fails at parsing. It slipped through,
as I did not invoke any testing before submitting 53796fc4. This
commit resolves the obvious shortcoming.
The description is not indented after line breaks. All other
information, i.e., the dependencies and SRCURI, are indented with
four spaces after line breaks. Shell scripts are indented with
multiples of four spaces.
In recipes-ros, I located and checked for tabulators and spacing
with these bash commands:
egrep '^ [^ ]+' . --exclude *.patch -R
egrep '^ [^ ]+' . --exclude *.patch -R
egrep '^ [^ ]+' . --exclude *.patch -R
egrep '^ [ ]+[^ ]+' . --exclude *.patch -R
While going through the recipes and manually improving the layout,
I also adjusted the descriptions to use maximal 100 characters
per line.
After running oe-stylize.py on all recipes in recipes-ros, this
commit improves the formatting of some recipes.
To achieve this, I executed these commands in recipes-ros:
find . -name *.bb | sed 's#\(.*\)#./oe-stylize.py \1 > \1_sanitized#' | sh
find . -name *.bb | sed 's#\(.*\)#diff -Naur \1 \1_sanitized#' | sh > diffs
Then, I manually inspected the diffs file, and improved the
recipes.
For the DESCRIPTION line in the addressed recipes, the line width
of 100 characters was chosen, as the LIC_FILES_CHKSUM line and
SRC_URI line usually are also around about 100 characters long.
Hence, choosing a shorter line width, e.g. 80 characters, would
have only created more line breaks, but not reduced the need to
use a file viewer with which 100 characters line width can be
displayed. For the github file and diff viewer and most editors
on reasonably-sized screens, 100 character line width is no
problem.
Executing 'bitbake packagegroup-ros-world' showed the warning:
WARNING: QA Issue: image-rotate rdepends on nodelet but its not a build dependency? [build-deps]
On a clean build, 'bitbake image-rotate' failed with:
| Could not find a package configuration file provided by "nodelet" with any
| of the following names:
|
| nodeletConfig.cmake
| nodelet-config.cmake
|
Hence, this commit adds the missing dependency on nodelet.
It seems as if the archive was updated at some point in time
without spending a new version number. This commit was needed
after I cleaned all downloads from the meta-ros layer.