Compiling rosconsole failed with:
```
[...]/ros_comm-1.11.20/tools/rosconsole/include/ros/console.h:121:14: error: 'vector' in namespace 'std' does not name a template type
typedef std::vector<TokenPtr> V_Token;
```
The console.h assumed that vector is included already by one of its
dependencies. This bold assumption has been uncovered by the update
of the boost library to version 1.62.0 [1, 2] in openembedded-core
repository.
Coincidently, this issue was also noticed by ROS users on Gentoo and
Arch Linux, which probably also use the latest boost library and gcc6,
and they opened pull requests on the indigo and kinetic branches [3, 4, 5]
with commits to address the issue. The patch in the kinetic branch has
been merged, the others to the indigo branch have been rejected as the
ros-comm maintainers intend to simply backport the patch from the
kinetic branch for the next release.
This commit applies the patch merged in the kinetic branch in our
recipe for the current indigo release version.
[1] http://cgit.openembedded.org/openembedded-core/commit/?id=c31030d87cd1741a4186d711325b8eab9c70b327
[2] http://cgit.openembedded.org/openembedded-core/commit/?id=42b4fa2f923244bc047874752d2e0381ff6f0a25
[3] https://github.com/ros/ros_comm/pull/911
[4] https://github.com/ros/ros_comm/pull/930
[5] https://github.com/ros/ros_comm/pull/939
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
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.
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>
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
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.
In the commit 21f7799ee9, I manually
modified the patch, but it slipped my eyes to adjust the line
information in the patch accordingly.
This commit corrects the line information, so that the patch can
now be applied correctly.
When CATKIN_ENABLE_TESTING is deactivated, the ROS packages do not
require the rostest package.
This commit includes a number of patches to be submitted in the
upstream repositories and removes the rostest dependencies from
the recipes.
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 ros-comm recipes are updated to 1.9.48 to be in line with
4551e7c32d/hydro/release.yaml.
The previously applied patches have been included in 1.9.48 and are
removed from the recipe and this repository.
When updating from 1.9.41 to 1.9.47, the commit
c5dfa6305e
adds a routine in the CMakeLists.txt to find the pthread library.
This routine is not suitable for the use with our tool chain, i.e.,
it reports an error (cf. #125) when using roscpp-native.
This commit adds a patch that reverts that change in roscpp's
CMakeLists.txt.
The rostest package requires that the rostest executable can be
found by cmake's find during configure. Hence, rostest depends on
rostest-native.
To implement this, rostest and rostest-native are defined with
different dependencies.
This commit resolves issue #83.
| CMake Warning at /build/v2012.12/build/tmp-angstrom_v2012_12-eglibc/sysroots/x86_64-linux/usr/share/catkin/cmake/test/nosetests.cmake:90 (message):
| nosetests not found, Python tests can not be run (try installing package
| 'python-nose')
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>