Skip to content

Commit

Permalink
{galactic} initial version from meta-ros2-rolling without generated-r…
Browse files Browse the repository at this point in the history
…ecipes

meta-ros$ cp -ra meta-ros2-rolling meta-ros2-galactic
meta-ros$ cd meta-ros2-galactic
meta-ros2-galactic$ rm -rf generated-recipes/ files/rolling/generated/ conf/ros-distro/include/rolling/generated/
meta-ros2-galactic$ git add .
meta-ros2-galactic$ git mv ./files/rolling ./files/galactic
meta-ros2-galactic$ git mv ./conf/ros-distro/include/rolling ./conf/ros-distro/include/galactic
meta-ros2-galactic$ git mv ./classes/ros_distro_rolling.bbclass ./classes/ros_distro_galactic.bbclass
meta-ros2-galactic$ git mv ./recipes-core/packagegroups/packagegroup-ros-world-rolling.bb ./recipes-core/packagegroups/packagegroup-ros-world-galactic.bb

Update rolling -> galactic in various places:
meta-ros2-galactic$ vi classes/ros_distro_galactic.bbclass \
  conf/layer.conf \
  conf/ros-distro/include/galactic/ros-distro.inc \
  conf/ros-distro/include/galactic/ros-distro-preferred-providers.inc \
  conf/ros-distro/include/galactic/ros-distro-preferred-versions.inc \
  recipes-core/packagegroups/packagegroup-ros-world-galactic.bb

Signed-off-by: Martin Jansa <[email protected]>
  • Loading branch information
shr-project committed Jun 2, 2021
1 parent ed3ba9a commit 83712dd
Show file tree
Hide file tree
Showing 182 changed files with 5,558 additions and 0 deletions.
7 changes: 7 additions & 0 deletions meta-ros2-galactic/classes/ros_distro_galactic.bbclass
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Every ROS recipe, generated or not, must contain "inherit ros_distro_${ROS_DISTRO}".
#
# Copyright (c) 2021 LG Electronics, Inc.

ROS_DISTRO = "galactic"

inherit ${ROS_DISTRO_TYPE}_distro
26 changes: 26 additions & 0 deletions meta-ros2-galactic/conf/layer.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# We have a conf and classes directory, append to BBPATH
BBPATH .= ":${LAYERDIR}"

# We have a recipes directory, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend ${LAYERDIR}/generated-recipes/*/*.bb"

BBFILE_COLLECTIONS += "ros2-galactic-layer"
BBFILE_PATTERN_ros2-galactic-layer := "^${LAYERDIR}/"
BBFILE_PRIORITY_ros2-galactic-layer = "12"

# Version 1 was the manually created meta-ros, prior to the introduction of superflore.
# Version 2 was all ROS distributions in the same meta-ros layer with right subdirectories selected by ROS_DISTRO variable
# Version 3 is with each ROS distribution in separate sublayer of meta-ros git repository (with modifications to generated recipes applied in .bbappends instead of .inc files)
LAYERVERSION_ros2-galactic-layer = "3"

LAYERDEPENDS_ros2-galactic-layer = " \
core \
meta-python \
openembedded-layer \
ros-common-layer \
ros2-layer \
"

LAYERSERIES_COMPAT_ros2-galactic-layer = "${ROS_OE_RELEASE_SERIES}"

require conf/ros-distro/include/galactic/ros-distro.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# galactic/ros-distro-preferred-providers.inc
#
# Copyright (c) 2021 LG Electronics, Inc.

# Set PREFERRED_PROVIDER_<PN> here for non-platform packages and to override those set in
# ros-distro-platform-preferred-providers.inc .
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# galactic/ros-distro-preferred-versions.inc
#
# Copyright (c) 2021 LG Electronics, Inc.

# Set PREFERRED_VERSION_<PN> here for non-platform packages for which the layers provide multiple versions and to override those
# set in ros-distro-platform-preferred-versions.inc .

Large diffs are not rendered by default.

118 changes: 118 additions & 0 deletions meta-ros2-galactic/conf/ros-distro/include/galactic/ros-distro.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# galactic/ros-distro.inc
# General configuration settings that are dependent on ROS_DISTRO.
#
# Copyright (c) 2021 LG Electronics, Inc.

ROS_DISTRO_CODENAME = "Galactic Geochelone"

ROS2_DISTRO = "galactic"

# The platform release that the metadata for this ROS distro targets. This determines the versions of the platform packages that
# OE must provide. It must be one of the values of ROS_DISTRO_RELEASE_PLATFORMS (which is set in
# generated/superflore-ros-distro.inc).
ROS_DISTRO_BASELINE_PLATFORM = "ubuntu-focal"

require conf/ros-distro/include/galactic/generated/superflore-datetime.inc
require conf/ros-distro/include/galactic/generated/superflore-ros-distro.inc
require conf/ros-distro/include/galactic/ros-distro-recipe-blacklist.inc
require conf/ros-distro/include/galactic/ros-distro-preferred-versions.inc
require conf/ros-distro/include/galactic/ros-distro-preferred-providers.inc

# Override settings from generated/superflore-ros-distro.inc here.

# Since superflore doesn't know when it's generating a recipe that it will be for a build tool, it can't know that what's in
# ROS_EXEC_DEPEND are also build tools. Manually add them here.
ROS_SUPERFLORE_GENERATED_BUILDTOOLS += " \
ament-lint-native \
cyclonedds-native \
domain-coordinator-native \
foonathan-memory-vendor-native \
iceoryx-binding-c-native \
iceoryx-posh-native \
iceoryx-utils-native \
rcutils-native \
rcpputils-native \
rmw-dds-common-native \
rmw-fastrtps-cpp-native \
rmw-fastrtps-shared-cpp-native \
rmw-native \
rosidl-adapter-native \
rosidl-cli-native \
rosidl-default-runtime-native \
rosidl-parser-native \
rosidl-typesupport-fastrtps-c-native \
rpyutils-native \
uncrustify-vendor-native \
"

# this needs google-benchmark-vendor-native but we probably don't need native version
ROS_SUPERFLORE_GENERATED_BUILDTOOLS_remove = "ament-cmake-google-benchmark-native"

# alternative not yet supported implementation for fastrtps
ROS_WORLD_SKIP_GROUPS += "connext"
# alternative not yet supported implementation for fastrtps
ROS_WORLD_SKIP_GROUPS += "opensplice"
# alternative not yet supported implementation for fastrtps, there is no recipe for gurumdds-2.6
ROS_WORLD_SKIP_GROUPS += "gurumdds"
# Can't build these until we figure out how to build clang-format, clang-tidy without building all of clang.
ROS_WORLD_SKIP_GROUPS += "clang"
# recipes depending on turtlebot3 specific recipes which weren't ported to eloquent yet
ROS_WORLD_SKIP_GROUPS += "turtlebot3"
# recipes depending on coinor-libipopt
ROS_WORLD_SKIP_GROUPS += "coinor-libipopt"
# Needs work to launch qemu to run tests on image on build machine.
ROS_WORLD_SKIP_GROUPS += "launch"
# recipes depending on ROS_UNRESOLVED_DEP-python3-babeltrace which cannot be just
# set to babeltrace, because python bindings in babeltrace are not enabled as shown in log.do_configure:
# configure: You may configure with --enable-python-bindings if you want Python bindings.
ROS_WORLD_SKIP_GROUPS += "babeltrace-python"
# recipes depends on cwiid
ROS_WORLD_SKIP_GROUPS += "cwiid"
# recipes depends on libspnav
ROS_WORLD_SKIP_GROUPS += "libspnav"

# recipes depending on 'x11' in DISTRO_FEATURES
ROS_WORLD_SKIP_GROUPS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'x11', d)}"
# recipes depending on 'opengl' in DISTRO_FEATURES
ROS_WORLD_SKIP_GROUPS += "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '', 'opengl', d)}"
# recipes depending on 'ffmpeg' which is restricted by 'commercial' LICENSE_FLAG
ROS_WORLD_SKIP_GROUPS += "${@bb.utils.contains_any('LICENSE_FLAGS_WHITELIST', ['commercial', 'ffmpeg', 'commercial_ffmpeg'], '', 'ffmpeg', d)}"
# recipes depending on 'x264' (ffmpeg does depend on it by default as well) which is restricted by 'commercial' LICENSE_FLAG
ROS_WORLD_SKIP_GROUPS += "${@bb.utils.contains_any('LICENSE_FLAGS_WHITELIST', ['commercial', 'x264', 'commercial_x264'], '', 'x264', d)}"
# There is recipe for glfw in meta-oe in dunfell, but it still needs x11 in DISTRO_FEATURES
# use that in dunfell and blacklist explicitly in older releases
ROS_WORLD_SKIP_GROUPS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'glfw', d)}"

# webots recipes depending on unavailable python moules like:
# ERROR: Nothing RPROVIDES 'ROS_UNRESOLVED_DEP-python-transforms3d-pip' (but meta-ros2-galactic/generated-recipes/webots-ros2-desktop/webots-ros2-core_0.0.3-1.bb RDEPENDS on or otherwise requires it)
# ERROR: Nothing RPROVIDES 'ROS_UNRESOLVED_DEP-urdf2webots-pip' (but meta-ros2-galactic/generated-recipes/webots-ros2-desktop/webots-ros2-importer_0.0.3-1.bb RDEPENDS on or otherwise requires it)
# ERROR: Nothing RPROVIDES 'ROS_UNRESOLVED_DEP-python3-collada-pip' (but meta-ros2-galactic/generated-recipes/webots-ros2-desktop/webots-ros2-importer_0.0.3-1.bb RDEPENDS on or otherwise requires it)
ROS_WORLD_SKIP_GROUPS += "webots-python-modules"

# ERROR: Nothing PROVIDES 'ROS_UNRESOLVED_DEP-sdformat' (but /jenkins/mjansa/build/ros/webos-galactic-hardknott/meta-ros/meta-ros2-galactic/generated-recipes/sdformat-urdf/sdformat-urdf_0.1.0-1.bb DEPENDS on or otherwise requires it)
ROS_WORLD_SKIP_GROUPS += "sdformat"

# recipes depending on gazebo, for which there is no OE recipe
ROS_WORLD_SKIP_GROUPS += "gazebo"

# recipes depending on ros1
ROS_WORLD_SKIP_GROUPS += "${@bb.utils.contains('BBFILE_COLLECTIONS', 'ros1-layer', '', 'ros1', d)}"

# recipes depending on something from meta-qt5 layer
ROS_WORLD_SKIP_GROUPS += "${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', '', 'qt5', d)}"

# do_compile failures
ROS_WORLD_SKIP_GROUPS += " \
qt-gui-cpp \
"

# Must use a _pn- override in this file to override the ROS_BUILD_TYPE of a generated recipe,
# because we need to set this variable before the "inherit" line in the recipe is parsed,
# and having it in a .bbappend sets it too late.
# We want ament_cmake instead of plain cmake for ros-workspace:
# https://raw.github.com/ros2-gbp/ros_workspace-release/release/galactic/ros_workspace/1.0.1-2/package.xml
ROS_BUILD_TYPE_pn-ros-workspace = "ament_cmake"

# Used by generated-recipes/cyclonedds/cyclonedds_0.6.0-3.bb
ROS_UNRESOLVED_DEP-java-native = ""
ROS_UNRESOLVED_DEP-maven-native = ""
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Copyright (c) 2020 LG Electronics, Inc.

inherit ros_insane_dev_so
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Copyright (c) 2021 LG Electronics, Inc.

# ERROR: async-web-server-cpp-2.0.0-1-r0 do_package_qa: QA Issue:
# non -dev/-dbg/nativesdk- package contains symlink .so: async-web-server-cpp path '/work/raspberrypi4-webos-linux-gnueabi/async-web-server-cpp/2.0.0-1-r0/packages-split/async-web-server-cpp/usr/lib/libasync_web_server_cpp.so' [dev-so]
inherit ros_insane_dev_so
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Copyright (c) 2020 LG Electronics, Inc.

ROS_BUILD_DEPENDS += " \
ament-cmake-gtest \
cppzmq \
"

FILES_${PN}-dev += "${libdir}/BehaviorTreeV3/cmake"
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Copyright (c) 2021 LG Electronics, Inc.

ROS_BUILDTOOL_DEPENDS += " \
rosidl-typesupport-fastrtps-cpp-native \
rosidl-typesupport-fastrtps-c-native \
"
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Copyright (c) 2021 LG Electronics, Inc.

ROS_BUILDTOOL_DEPENDS += " \
rosidl-typesupport-fastrtps-cpp-native \
rosidl-typesupport-fastrtps-c-native \
"
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Copyright (c) 2019 LG Electronics, Inc.

ROS_BUILDTOOL_DEPENDS += " \
rosidl-parser-native \
rosidl-adapter-native \
rosidl-typesupport-fastrtps-cpp-native \
rosidl-typesupport-fastrtps-c-native \
python3-numpy-native \
python3-lark-parser-native \
"

# Without the target rosidl-typesupport-{c,cpp}, ament finds the native packages and then fails to link (error: incompatible
# target).
ROS_BUILD_DEPENDS += " \
rosidl-typesupport-c \
rosidl-typesupport-cpp \
"
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Copyright (c) 2019-2020 LG Electronics, Inc.

DEPENDS += "eigen3-cmake-module"
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
From 60167d74d788f308ba3c23fa8b72ea7028d840bc Mon Sep 17 00:00:00 2001
From: Martin Jansa <[email protected]>
Date: Fri, 15 May 2020 05:55:56 -0700
Subject: [PATCH] CMakeLists.txt: link with dl

* fixes:
FAILED: cartographer.mapping.internal.motion_filter_test
: && /jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0/recipe-sysroot-native/usr/bin/arm-webos-linux-gnueabi/arm-webos-linux-gnueabi-g++ -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -Werror=return-type --sysroot=/jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0=/usr/src/debug/cartographer/1.0.0-1-r0 -fdebug-prefix-map=/jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0=/usr/src/debug/cartographer/1.0.0-1-r0 -fdebug-prefix-map=/jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0/recipe-sysroot= -fdebug-prefix-map=/jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -Werror=return-type --sysroot=/jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0/recipe-sysroot -fuse-ld=gold -DNDEBUG -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -Werror=return-type --sysroot=/jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0=/usr/src/debug/cartographer/1.0.0-1-r0 -fdebug-prefix-map=/jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0=/usr/src/debug/cartographer/1.0.0-1-r0 -fdebug-prefix-map=/jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0/recipe-sysroot= -fdebug-prefix-map=/jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -Werror=return-type --sysroot=/jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0/recipe-sysroot -fuse-ld=gold -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fstack-protector-strong -Wl,-z,relro,-z,now -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fstack-protector-strong -Wl,-z,relro,-z,now -rdynamic CMakeFiles/cartographer.mapping.internal.motion_filter_test.dir/cartographer/mapping/internal/motion_filter_test.cc.o -o cartographer.mapping.internal.motion_filter_test libcartographer.a -Wl,-Bstatic -lgmock_main -lgmock -lgtest -Wl,-Bdynamic -lpthread libcartographer_test_library.a libcartographer.a /jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0/recipe-sysroot/usr/lib/libceres.a /jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0/recipe-sysroot/usr/lib/libglog.so.0.3.5 -lunwind -lunwind-arm -lspqr -lcholmod -lccolamd -lcamd -lcolamd -lamd -llapack -lblas -lsuitesparseconfig -lrt -lmetis -lcxsparse -llapack -lblas -lsuitesparseconfig -lrt -lmetis -lcxsparse -lgomp -lpthread -Wl,-Bstatic -llua -Wl,-Bdynamic -lm /jenkins/mjansa/build/ros/webos-dashing-gatesgarth/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/cartographer/1.0.0-1-r0/recipe-sysroot/usr/lib/libboost_iostreams.so.1.72.0 -lglog -lgflags -lcairo -lprotobuf -lpthread && :
loadlib.c:134: error: undefined reference to 'dlsym'
loadlib.c:127: error: undefined reference to 'dlopen'
loadlib.c:135: error: undefined reference to 'dlerror'
loadlib.c:128: error: undefined reference to 'dlerror'
loadlib.c:122: error: undefined reference to 'dlclose'
collect2: error: ld returned 1 exit status

Upstream-Status: Pending

Signed-off-by: Martin Jansa <[email protected]>
---
CMakeLists.txt | 3 ++-
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2e3a686..cf040c6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -178,6 +178,7 @@ google_binary(cartographer_compute_relations_metrics
SRCS
cartographer/ground_truth/compute_relations_metrics_main.cc
)
+target_link_libraries(cartographer_compute_relations_metrics PUBLIC -ldl)

google_binary(cartographer_migrate_serialization_format
SRCS
@@ -263,7 +264,7 @@ foreach(ABS_FIL ${ALL_TESTS})
if(${BUILD_PROMETHEUS})
target_link_libraries("${TEST_TARGET_NAME}" PUBLIC prometheus-cpp)
endif()
- target_link_libraries("${TEST_TARGET_NAME}" PUBLIC ${TEST_LIB})
+ target_link_libraries("${TEST_TARGET_NAME}" PUBLIC ${TEST_LIB} -ldl)
endforeach()

# Add the binary directory first, so that port.h is included after it has
Loading

0 comments on commit 83712dd

Please sign in to comment.