Skip to content
Snippets Groups Projects
  • Andreas Baak's avatar
    18588242
    catkin: split up catkin in order to reduce runtime dependencies · 18588242
    Andreas Baak authored
    
    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: default avatarAndreas Baak <andreas.baak@bmw-carit.de>
    18588242
    History
    catkin: split up catkin in order to reduce runtime dependencies
    Andreas Baak authored
    
    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: default avatarAndreas Baak <andreas.baak@bmw-carit.de>