This commit provides the autotools-brokensep class and uses it for
the wxwidgets recipe.
The autotools-brokensep indicates that this package currently cannot
handle out-of-source builds, and hence the in-source build must be
kept until this is resolved.
The autotools-brokensep class is a copy of the autotools-brokensep
class provided in the openembedded-core commit 006b8a78 [1].
To make this commit backwards compatible to even earlier versions
of openembedded-core, we provide this class in meta-ros ourselves.
[1] http://cgit.openembedded.org/openembedded-core/commit/?id=006b8a7808a58713af16c326dc37d07765334b12
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.
This commit enables to use travis ci for continuous integration.
As bash is not a valid programming language setup for travis,
I simply used the default ruby environment, which also provides
a proper shell interpreter.
The check-patch-files script checks that all patch files in the
given directory are annotated with an 'Upstream-Status', and
that all patch files are at least noted in their top-level
directory (so we can assume they are used).
In case a violation is detected, it returns a non-zero exit code,
so that a travis-ci reports a violation as build failure.
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.
Following standard convention, place ROS/Catkin packages under the
prefix /opt/ros/${ROSDISTRO} (exported as ${ros_prefix}) rather than in
the usual ${prefix}.
Executing 'bitbake packagegroup-ros-world' shows the warning:
WARNING: QA Issue: collada-dom rdepends on libpcrecpp but its not a build dependency? [build-deps]
On a clean build, 'bitbake collada-dom' fails with:
| Linking CXX shared library libcollada-dom2.4-dp.so
...
| .../build/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/4.9.1/ld: external-libs/pcre-8.02/libpcre_local.a(pcre_compile.c.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
| external-libs/pcre-8.02/libpcre_local.a: error adding symbols: Bad value
| collect2: error: ld returned 1 exit status
| make[2]: *** [dom/libcollada-dom2.4-dp.so.2.4.0] Error 1
This commits adds libpcre as dependency, and resolves the issue.
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.