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.