Rosjava BitBake recipe

112 views
Skip to first unread message

travi...@gmail.com

unread,
Apr 4, 2016, 3:07:32 PM4/4/16
to Mailing List of ROS Layer for OpenEmbedded Linux
The following is a copy of an email I sent to Lukas Bulwahn which I've reposted here so that discussion can be open:

I'm interested in developing a BitBake recipe for installation of the indigo version of rosjava (http://wiki.ros.org/rosjava). My initial questions are:

    1. Is this email the best way to get assistance or should I perhaps ask questions by some other method?
    2. Does what I'm asking make sense?
    3. Has this problem already been solved?
    4. Can this problem be easily solved by metadata included in the meta-ros layer?

Best Regards,
Travis Pressler
Message has been deleted
Message has been deleted
Message has been deleted

travi...@gmail.com

unread,
Apr 7, 2016, 10:14:26 AM4/7/16
to Mailing List of ROS Layer for OpenEmbedded Linux
I've tried to make a rough draft for the rosjava recipe. This is an attempt to adapt these installation instructions.

     S="${WORKDIR}/git"
     INSANE_SKIP_${PN} += "dev-deps"

     SRCREV_latest = "389b657eacbb2428a05915385696f26ceaa71848"

     DEPENDS += " \
        catkin \
        catkin-dev \ 
        catkin-runtime \
        catkin-runtime-dev \
        python \
        ros-config \
        cpp-common-dev \ 
        genmsg-dev \ 
        genpy-dev \ 
        geometry-msgs-dev \ 
        message-generation-dev \
        nav-msgs-dev \
        sensor-msgs-dev \ 
        std-msgs-dev \ 
        tf2-msgs-dev \
        catkin \
        catkin-runtime \
        gradle \
        python \
        python-catkin-pkg \
        ros-config \
       "
do_configure_prepend() {
        install -d ${D}/home/root/rosjava/src
        wstool init -j4 ${D}/home/root/rosjava/src https://raw.githubusercontent.com/rosjava/rosjava/indigo/rosjava.rosinstall
        cd ${D}/home/root/rosjava
        rosdep update
        rosdep install --rosdistro indigo --from-paths src -i -y
        export PYTHONPATH="${STAGING_DIR_HOST}/opt/ros/indigo/lib/python2.7/site-packages"
        export CMAKE_PREFIX_PATH="/opt/ros/indigo"
        export RT_LIBRARY=${libdir}
        catkin_make
}
           FILES_${PN} +="/home/root/rosjava" 
     

During this task, the catkin_make instruction fails with this error message:

| CMake Error at /opt/ros/indigo/share/catkin/cmake/assert.cmake:17 (message):
|   Assertion failed: check for file existence, but filename
|   (RT_LIBRARY-NOTFOUND) unset.  Message: RT Library
| Call Stack (most recent call first):
|   /opt/ros/indigo/share/catkin/cmake/tools/rt.cmake:42 (assert_file_exists)
|   /opt/ros/indigo/share/catkin/cmake/all.cmake:147 (include)
|   /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:20 (include)
|   CMakeLists.txt:52 (find_package)

There isn't a setup.bash which is created for me to use, as this appears to be created in catkin.inc within the ${PN}-dev package.  Adding catkin-dev and catkin-runtime-dev to the DEPENDS variable of my recipe appears to do nothing (setup.bash isn't available during the build).

Some of my questions include: 

    1. Is setup.bash actually required to install rosjava?
    2. If setup.bash is required, how can I generate one?
    3. Does it make sense to run catkin_make during a BitBake task?
    4. If catkin_make can be run, how can the recipe be modified so that it finishes as if run from the target machine?
    5. If catkin_make can't be run, will I need to replicate all the commands run with catkin_make?
    6. What is the intent of catkin.bbclass, and does it relate to catkin_make?

I have the creeping suspicion that I've gone in completely the wrong direction here.  Any help at all would be greatly appreciated.

Thanks,
Travis Pressler
Reply all
Reply to author
Forward
0 new messages