From 9ca0cb0619be40f95d5f8ef88892ce14e0b8dfa7 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Tue, 30 Nov 2021 09:05:05 -0800 Subject: [PATCH] packagegroup-ros-turtlebot3-core: include raspicam-node only with opengl in DISTRO_FEATURES and blacklist otherwise * now when we're building for arm with ROS DISTRO and aarch64 with webOS OSE DISTRO it fails to build raspicam-node because default DISTRO configuration doesn't have 'opengl' in DISTRO_FEATURES * fixes: NOTE: Resolving any missing task queue dependencies ERROR: Nothing PROVIDES 'userland' (but /jenkins/home/anaconda/ros1-noetic-honister/meta-ros/meta-ros1/recipes-extended/raspicam-node/raspicam-node_git.bb DEPENDS on or otherwise requires it) userland was skipped: Recipe is blacklisted: depends on libegl-mesa from mesa-gl which is not available without opengl in DISTRO_FEATURES ERROR: Nothing RPROVIDES 'raspicam-node' (but /jenkins/home/anaconda/ros1-noetic-honister/meta-ros/meta-ros-common/recipes-core/packagegroups/packagegroup-ros-turtlebot3-core.bb, /jenkins/home/anaconda/ros1-noetic-honister/meta-ros/meta-ros1/recipes-extended/raspicam-node/raspicam-node_git.bb RDEPENDS on or otherwise requires it) No eligible RPROVIDERs exist for 'raspicam-node' NOTE: Runtime target 'raspicam-node' is unbuildable, removing... Missing or unbuildable dependency chain was: ['raspicam-node'] ERROR: Nothing RPROVIDES 'packagegroup-ros-turtlebot3-core' (but /jenkins/home/anaconda/ros1-noetic-honister/meta-ros/meta-ros-common/recipes-core/packagegroups/packagegroup-ros-turtlebot3-core.bb RDEPENDS on or otherwise requires it) No eligible RPROVIDERs exist for 'packagegroup-ros-turtlebot3-core' NOTE: Runtime target 'packagegroup-ros-turtlebot3-core' is unbuildable, removing... Missing or unbuildable dependency chain was: ['packagegroup-ros-turtlebot3-core'] ERROR: Nothing RPROVIDES 'raspicam-node-dev' (but /jenkins/home/anaconda/ros1-noetic-honister/meta-ros/meta-ros1/recipes-extended/raspicam-node/raspicam-node_git.bb RDEPENDS on or otherwise requires it) No eligible RPROVIDERs exist for 'raspicam-node-dev' NOTE: Runtime target 'raspicam-node-dev' is unbuildable, removing... Missing or unbuildable dependency chain was: ['raspicam-node-dev'] * this mess with userland is hopefully temporary and turtlebot3 will eventually use the new implementation introduced in Raspberry Pi OS image based on Debian Bullseye https://www.raspberrypi.com/news/bullseye-camera-system/ there are already some changes for this in meta-raspberrypi: https://github.com/agherzan/meta-raspberrypi/pull/963 and meta-oe: https://github.com/openembedded/meta-openembedded/pull/496 Signed-off-by: Martin Jansa --- .../ros-distro/include/ros-world-recipe-blacklist.inc | 1 + .../packagegroups/packagegroup-ros-turtlebot3-core.bb | 9 ++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/meta-ros-common/conf/ros-distro/include/ros-world-recipe-blacklist.inc b/meta-ros-common/conf/ros-distro/include/ros-world-recipe-blacklist.inc index 2409797d241..d8a2c0c3082 100644 --- a/meta-ros-common/conf/ros-distro/include/ros-world-recipe-blacklist.inc +++ b/meta-ros-common/conf/ros-distro/include/ros-world-recipe-blacklist.inc @@ -47,3 +47,4 @@ PNBLACKLIST[python-networkmanager] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROU PNBLACKLIST[packagegroup-meta-oe] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['world-issues'], 'world-issues: Depends on blacklisted packages like libvncserver,x11vnc', '', d)}" PNBLACKLIST[userland] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'opengl', 'depends on libegl-mesa from mesa-gl which is not available without opengl in DISTRO_FEATURES', '', d)}" +PNBLACKLIST[raspicam-node] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'opengl', 'depends on userland which is not available without opengl in DISTRO_FEATURES', '', d)}" diff --git a/meta-ros-common/recipes-core/packagegroups/packagegroup-ros-turtlebot3-core.bb b/meta-ros-common/recipes-core/packagegroups/packagegroup-ros-turtlebot3-core.bb index 505c6eb6e89..32004c17421 100644 --- a/meta-ros-common/recipes-core/packagegroups/packagegroup-ros-turtlebot3-core.bb +++ b/meta-ros-common/recipes-core/packagegroups/packagegroup-ros-turtlebot3-core.bb @@ -15,15 +15,14 @@ TURTLEBOT3_PACKAGES_LIDAR:qemux86 = "" # From just above here http://emanual.robotis.com/docs/en/platform/turtlebot3/appendix_raspi_cam/#run-raspicam-node (also see # http://emanual.robotis.com/docs/en/platform/turtlebot3/applications/#turtlebot-panorama-demo): -TURTLEBOT3_PACKAGES_CAMERA:rpi ??= " \ +TURTLEBOT3_PACKAGES_CAMERA:append:rpi ??= " \ camera-info-manager \ compressed-image-transport \ " -TURTLEBOT3_PACKAGES_CAMERA:rpi:append:ros1-distro = " \ - raspicam-node \ -" # raspicam-node depends on userland to provide mmal, but for aarch64 it doesn't provide it. -TURTLEBOT3_PACKAGES_CAMERA:remove:aarch64 = "raspicam-node" +TURTLEBOT3_PACKAGES_CAMERA:append:rpi:ros1-distro:arm = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'raspicam-node', '', d)} \ +" TURTLEBOT3_PACKAGES_CAMERA ??= ""