From 2c0624ccf76981790caa0155fa9d2e6d67759eb4 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 11:18:35 -0700 Subject: [PATCH 001/152] meta-ros-common: Preserve PYTHONPATH in ros_opt_prefix.bbclass Ensure that the previous value of PYTHONPATH is preserved when the ROS opt prefix Python site-packages directory is added. Signed-off-by: Rob Woolley --- meta-ros-common/classes/ros_opt_prefix.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-ros-common/classes/ros_opt_prefix.bbclass b/meta-ros-common/classes/ros_opt_prefix.bbclass index 4f0e7cc366..1b919c781c 100644 --- a/meta-ros-common/classes/ros_opt_prefix.bbclass +++ b/meta-ros-common/classes/ros_opt_prefix.bbclass @@ -30,8 +30,8 @@ inherit ${@'python3-dir' if d.getVar('ROS_PYTHON_VERSION') == '3' else 'python-d PKG_CONFIG_PATH .= ":${PKG_CONFIG_DIR}:${STAGING_DIR_HOST}${ros_libdir}/pkgconfig:${STAGING_DATADIR}/pkgconfig" PYTHON_SITEPACKAGES_DIR = "${ros_libdir}/${PYTHON_DIR}/site-packages" -export PYTHONPATH = "${STAGING_DIR_NATIVE}${PYTHON_SITEPACKAGES_DIR}" -PYTHONPATH:class-native = "${PYTHON_SITEPACKAGES_DIR}" +export PYTHONPATH = "${STAGING_DIR_NATIVE}${PYTHON_SITEPACKAGES_DIR}:$PYTHONPATH" +PYTHONPATH:class-native = "${PYTHON_SITEPACKAGES_DIR}:$PYTHONPATH" FILES_SOLIBSDEV += " ${ros_libdir}/lib*${SOLIBSDEV}" From 69eacc58144f518861cac42e856d87383839dd48 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 11:37:09 -0700 Subject: [PATCH 002/152] meta-ros2: Add missing copyright to ros_ament_cmake.bbclass Signed-off-by: Rob Woolley --- meta-ros2/classes/ros_ament_cmake.bbclass | 1 + 1 file changed, 1 insertion(+) diff --git a/meta-ros2/classes/ros_ament_cmake.bbclass b/meta-ros2/classes/ros_ament_cmake.bbclass index 49249dea79..fcd8e837ed 100644 --- a/meta-ros2/classes/ros_ament_cmake.bbclass +++ b/meta-ros2/classes/ros_ament_cmake.bbclass @@ -1,3 +1,4 @@ +# Copyright (c) 2019-2021 LG Electronics, Inc. # Copyright (c) Qualcomm Innovation Center, Inc. All rights reserved # The SOABI setting changed in newer python3 with: From 4aae71174faa8cdd984cdc23864d38735f2f37a1 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 11:37:45 -0700 Subject: [PATCH 003/152] meta-ros2: Disable prefix-path generation for ros_ament_cmake packages The prefix-path file contains references to TMPDIR which causes package QA warnings. Disable the generation of the prefix-path files as we presently are not using them to build on the target. Signed-off-by: Rob Woolley --- meta-ros2/classes/ros_ament_cmake.bbclass | 1 + 1 file changed, 1 insertion(+) diff --git a/meta-ros2/classes/ros_ament_cmake.bbclass b/meta-ros2/classes/ros_ament_cmake.bbclass index fcd8e837ed..7cc55f6219 100644 --- a/meta-ros2/classes/ros_ament_cmake.bbclass +++ b/meta-ros2/classes/ros_ament_cmake.bbclass @@ -29,6 +29,7 @@ inherit cmake python3native FILES:${PN}:prepend = " \ ${datadir}/ament_index \ " +EXTRA_OECMAKE:append = " -DAMENT_CMAKE_ENVIRONMENT_PARENT_PREFIX_PATH_GENERATION=OFF" EXTRA_OECMAKE:prepend = "\ -DCMAKE_PREFIX_PATH='${STAGING_DIR_HOST}${ros_prefix};${STAGING_DIR_HOST}${prefix}' \ From 4e4129e0ff4c2a83d04d794a25459ec2717b72c0 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:09:17 -0700 Subject: [PATCH 004/152] meta-ros2: Add setuptools3 workaround to ros_ament_python.bbclass Duplicate workaround in setuptools3_legacy.bbclass but customized for the ROS opt prefix. Resolves problems in setuptools3 packages which add a redundant directory (eg. /opt/ros/rolling/share/ament_package/ament_package) Substitute mv for cp and rm to avoid condition where mv failed when there was an existing directory with the same name. Signed-off-by: Rob Woolley --- meta-ros2/classes/ros_ament_python.bbclass | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/meta-ros2/classes/ros_ament_python.bbclass b/meta-ros2/classes/ros_ament_python.bbclass index b6251b1860..03e3aa1bd7 100644 --- a/meta-ros2/classes/ros_ament_python.bbclass +++ b/meta-ros2/classes/ros_ament_python.bbclass @@ -1,3 +1,4 @@ +# Copyright OpenEmbedded Contributors # Copyright (c) 2018-2019 LG Electronics, Inc. # Copyright (c) Qualcomm Innovation Center, Inc. All rights reserved @@ -20,6 +21,15 @@ do_install:append() { sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i fi done + + # + # FIXME: Bandaid against wrong datadir computation + # (ament_index ament_index_python ament_package rosidl_cli) + # + if [ -e ${D}${ros_datadir}/share ]; then + cp -r ${D}${ros_datadir}/share/* ${D}${ros_datadir}/ + rm -rf ${D}${ros_datadir}/share + fi } FILES:${PN}:prepend = " \ From e10ec681019d7b478d2c9508fac2ffdf568259ec Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:18:46 -0700 Subject: [PATCH 005/152] meta-ros2: libfyaml: Add new recipe Add libfyaml recipe needed as a dependency for mrpt2. Signed-off-by: Rob Woolley --- meta-ros2/recipes-support/libfyaml/libfyaml_0.9.bb | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 meta-ros2/recipes-support/libfyaml/libfyaml_0.9.bb diff --git a/meta-ros2/recipes-support/libfyaml/libfyaml_0.9.bb b/meta-ros2/recipes-support/libfyaml/libfyaml_0.9.bb new file mode 100644 index 0000000000..56951c88ca --- /dev/null +++ b/meta-ros2/recipes-support/libfyaml/libfyaml_0.9.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Fully feature complete YAML parser and emitter, supporting the latest YAML spec and passing the full YAML testsuite." +HOMEPAGE = "https://github.com/pantoniou/libfyaml" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6399094fbc639a289cfca2d660c010aa" + +SRC_URI = "git://github.com/pantoniou/libfyaml.git;protocol=https;branch=master" +SRCREV = "8054c66e0454a09a810f756996d1b280738594e5" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig From 03352ec2e6dbc858faff06e1e86efd73ef2645c1 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:21:59 -0700 Subject: [PATCH 006/152] meta-ros2: google-benchmark: Update to 1.8.3 Signed-off-by: Rob Woolley --- .../google-benchmark/google-benchmark_git.bb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meta-ros2/recipes-benchmark/google-benchmark/google-benchmark_git.bb b/meta-ros2/recipes-benchmark/google-benchmark/google-benchmark_git.bb index 54d4cd063d..2463446919 100644 --- a/meta-ros2/recipes-benchmark/google-benchmark/google-benchmark_git.bb +++ b/meta-ros2/recipes-benchmark/google-benchmark/google-benchmark_git.bb @@ -6,10 +6,10 @@ SECTION = "devel" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" -PV = "1.7.0+git${SRCPV}" +PV = "1.8.3" -# matches with tag 1.7.0 -SRCREV = "361e8d1cfe0c6c36d30b39f1b61302ece5507320" +# matches with tag 1.8.3 +SRCREV = "344117638c8ff7e239044fd0fa7085839fc03021" SRC_URI = "git://github.com/google/benchmark;branch=main;protocol=https" S = "${WORKDIR}/git" From 23e5923257a9ba6622263f76b94826aa9d5537c7 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:23:43 -0700 Subject: [PATCH 007/152] meta-ros-common: yaml-cpp: Update to 0.8.0 Signed-off-by: Rob Woolley --- .../yaml-cpp/{yaml-cpp_0.6.2.bb => yaml-cpp_0.8.0.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta-ros-common/recipes-devtools/yaml-cpp/{yaml-cpp_0.6.2.bb => yaml-cpp_0.8.0.bb} (93%) diff --git a/meta-ros-common/recipes-devtools/yaml-cpp/yaml-cpp_0.6.2.bb b/meta-ros-common/recipes-devtools/yaml-cpp/yaml-cpp_0.8.0.bb similarity index 93% rename from meta-ros-common/recipes-devtools/yaml-cpp/yaml-cpp_0.6.2.bb rename to meta-ros-common/recipes-devtools/yaml-cpp/yaml-cpp_0.8.0.bb index bea6a320a3..244c03e158 100644 --- a/meta-ros-common/recipes-devtools/yaml-cpp/yaml-cpp_0.6.2.bb +++ b/meta-ros-common/recipes-devtools/yaml-cpp/yaml-cpp_0.8.0.bb @@ -9,7 +9,7 @@ PR = "r0" S = "${WORKDIR}/git" SRC_URI = "git://github.com/jbeder/${BPN}.git;branch=master;protocol=https" -SRCREV = "562aefc114938e388457e6a531ed7b54d9dc1b62" +SRCREV = "f7320141120f720aecc4c32be25586e7da9eb978" EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON -DYAML_CPP_BUILD_TESTS=OFF -DYAML_CPP_BUILD_TOOLS=OFF -DYAML_CPP_BUILD_CONTRIB=OFF" From ad82ae26c7d098ab8d9bccf59de971e089e862f2 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:24:26 -0700 Subject: [PATCH 008/152] {rolling} yaml-cpp-vendor: Use system yaml-cpp Signed-off-by: Rob Woolley --- .../0001-Use-platform-yaml-cpp.patch | 104 ++++++++++++++++++ .../yaml-cpp-vendor_%.bbappend | 4 + 2 files changed, 108 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/yaml-cpp-vendor/yaml-cpp-vendor/0001-Use-platform-yaml-cpp.patch diff --git a/meta-ros2-rolling/recipes-bbappends/yaml-cpp-vendor/yaml-cpp-vendor/0001-Use-platform-yaml-cpp.patch b/meta-ros2-rolling/recipes-bbappends/yaml-cpp-vendor/yaml-cpp-vendor/0001-Use-platform-yaml-cpp.patch new file mode 100644 index 0000000000..2c44b482c7 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/yaml-cpp-vendor/yaml-cpp-vendor/0001-Use-platform-yaml-cpp.patch @@ -0,0 +1,104 @@ +From da4fad4eca3ecd54d3cf02e47168791651df439f Mon Sep 17 00:00:00 2001 +From: Herb Kuta +Date: Tue, 31 Dec 2019 10:17:22 -0800 +Subject: [PATCH] Use platform yaml-cpp + +Upstream-Status: Pending + +--- + CMakeLists.txt | 79 ++++---------------------------------------------- + 1 file changed, 6 insertions(+), 73 deletions(-) + +Index: git/CMakeLists.txt +=================================================================== +--- git.orig/CMakeLists.txt ++++ git/CMakeLists.txt +@@ -14,82 +14,13 @@ if (POLICY CMP0135) + cmake_policy(SET CMP0135 NEW) + endif() + +-macro(build_yaml_cpp) +- set(extra_cmake_args) +- +- if(DEFINED CMAKE_BUILD_TYPE) +- list(APPEND extra_cmake_args -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) +- endif() +- if(NOT WIN32) +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -w") +- endif() +- +- list(APPEND extra_cmake_args "-DYAML_CPP_BUILD_TESTS=OFF") +- list(APPEND extra_cmake_args "-DYAML_CPP_BUILD_TOOLS=OFF") +- list(APPEND extra_cmake_args "-DYAML_CPP_BUILD_CONTRIB=OFF") +- if(BUILD_SHARED_LIBS) +- list(APPEND extra_cmake_args "-DYAML_BUILD_SHARED_LIBS=ON") +- endif() +- list(APPEND extra_cmake_args "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") +- list(APPEND extra_cmake_args "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}") +- +- if(WIN32 AND NOT ${CMAKE_VERBOSE_MAKEFILE}) +- set(should_log ON) # prevent warnings in Windows CI +- else() +- set(should_log OFF) +- endif() +- +- if(DEFINED CMAKE_TOOLCHAIN_FILE) +- list(APPEND extra_cmake_args "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") +- endif() +- +- include(ExternalProject) +- ExternalProject_Add(yaml_cpp-0.7.0 +- URL https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.7.0.tar.gz +- URL_MD5 74d646a3cc1b5d519829441db96744f0 +- TIMEOUT 600 +- LOG_CONFIGURE ${should_log} +- LOG_BUILD ${should_log} +- CMAKE_ARGS +- -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/yaml_cpp_install +- ${extra_cmake_args} +- -Wno-dev +- ) +- +- # The external project will install to the build folder, but we'll install that on make install. +- install( +- DIRECTORY +- ${CMAKE_CURRENT_BINARY_DIR}/yaml_cpp_install/ +- DESTINATION +- ${CMAKE_INSTALL_PREFIX}/opt/yaml_cpp_vendor +- USE_SOURCE_PERMISSIONS +- ) +-endmacro() +- +-# NO_CMAKE_PACKAGE_REGISTRY used to avoid finding the library downloaded in WORKSPACE B +-# when building workspace A. +-# This should only find a system installed yaml-cpp and thus the environment hook isn't needed. +-find_package(yaml-cpp QUIET NO_CMAKE_PACKAGE_REGISTRY) +-if(FORCE_BUILD_VENDOR_PKG OR NOT yaml-cpp_FOUND) +- build_yaml_cpp() +- +- if(WIN32) +- ament_environment_hooks(env_hook/yaml_cpp_vendor_library_path.bat) +- set(ENV_VAR_NAME "PATH") +- set(ENV_VAR_VALUE "opt\\yaml_cpp_vendor\\bin") +- else() +- ament_environment_hooks(env_hook/yaml_cpp_vendor_library_path.sh) +- if(APPLE) +- set(ENV_VAR_NAME "DYLD_LIBRARY_PATH") +- else() +- set(ENV_VAR_NAME "LD_LIBRARY_PATH") +- endif() +- set(ENV_VAR_VALUE "opt/yaml_cpp_vendor/lib") +- endif() +- ament_environment_hooks(env_hook/yaml_cpp_vendor_library_path.dsv.in) ++# We arrange for the platform yaml-cpp to be built from the same commit as that from which the ExternalProject is built => no ++# invocation of ament_environment_hooks(). ++find_package(yaml-cpp) ++if(yaml-cpp_FOUND) ++ message(STATUS "Found yaml-cpp ${yaml-cpp_VERSION}") + else() +- message(STATUS "Found yaml-cpp ${yaml-cpp_VERSION} in path ${yaml-cpp_CONFIG}") ++ message(FATAL_ERROR "yaml-cpp not found -- missing from DEPENDS?") + endif() + + ament_package( diff --git a/meta-ros2-rolling/recipes-bbappends/yaml-cpp-vendor/yaml-cpp-vendor_%.bbappend b/meta-ros2-rolling/recipes-bbappends/yaml-cpp-vendor/yaml-cpp-vendor_%.bbappend index 3d06757d62..99719c427e 100644 --- a/meta-ros2-rolling/recipes-bbappends/yaml-cpp-vendor/yaml-cpp-vendor_%.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/yaml-cpp-vendor/yaml-cpp-vendor_%.bbappend @@ -1,3 +1,7 @@ # Copyright (c) 2019-2020 LG Electronics, Inc. DESCRIPTION = "Wrapper around yaml-cpp, it provides a fixed CMake module." + +# We arrange for the platform yaml-cpp to be built from the same commit as that from which the ExternalProject is built. If the +# commit changes, the patch will not apply cleanly and we'll know we need to update the .bbappend for yaml-cpp. +DEPENDS += "yaml-cpp" From a6ecccabc1b52812bcafa9ec246ecf8925fe060f Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:28:41 -0700 Subject: [PATCH 009/152] meta-ros-common: fcl: Add octomap for moveit The optional dependency on octomap is necessary for building moveit. Signed-off-by: Rob Woolley --- meta-ros-common/recipes-extended/fcl/fcl_0.6.1.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-ros-common/recipes-extended/fcl/fcl_0.6.1.bb b/meta-ros-common/recipes-extended/fcl/fcl_0.6.1.bb index f4d106fe48..69a1a3e6ad 100644 --- a/meta-ros-common/recipes-extended/fcl/fcl_0.6.1.bb +++ b/meta-ros-common/recipes-extended/fcl/fcl_0.6.1.bb @@ -3,8 +3,8 @@ HOMEPAGE = "https://github.com/flexible-collision-library/fcl" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=7de20b14c33be61ee0c714b41e286d0b" -# Octomap dependency not included as it is optional. -DEPENDS = "boost libccd libeigen" +# octomap support in fcl is needed by moveit +DEPENDS = "boost libccd libeigen octomap" SRCREV = "97455a46de121fb7c0f749e21a58b1b54cd2c6be" ROS_BRANCH ?= "branch=master" From ed4150e6186d43ce90c5464e29a2cddce87c65c2 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:29:29 -0700 Subject: [PATCH 010/152] meta-ros-common: fcl: Add recipe for 0.7.0 Signed-off-by: Rob Woolley --- .../recipes-extended/fcl/fcl_0.7.0.bb | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 meta-ros-common/recipes-extended/fcl/fcl_0.7.0.bb diff --git a/meta-ros-common/recipes-extended/fcl/fcl_0.7.0.bb b/meta-ros-common/recipes-extended/fcl/fcl_0.7.0.bb new file mode 100644 index 0000000000..b83c751853 --- /dev/null +++ b/meta-ros-common/recipes-extended/fcl/fcl_0.7.0.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "FCL is a library for performing three types of proximity queries on a pair of geometric models composed of triangles and octrees." +HOMEPAGE = "https://github.com/flexible-collision-library/fcl" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7de20b14c33be61ee0c714b41e286d0b" + +# octomap support in fcl is needed by moveit +DEPENDS = "boost libccd libeigen octomap" + +SRCREV = "df2702ca5e703dec98ebd725782ce13862e87fc8" +ROS_BRANCH ?= "branch=master" +SRC_URI = " \ + git://github.com/flexible-collision-library/fcl;${ROS_BRANCH};protocol=https \ +" + +S = "${WORKDIR}/git" + +EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=Release -DFCL_NO_DEFAULT_RPATH=OFF ${EXTRA_OECMAKE_SSE}" +EXTRA_OECMAKE_SSE = "-DFCL_USE_X64_SSE=OFF" +EXTRA_OECMAKE_SSE:x86-64 = "" + +inherit pkgconfig cmake From ad68a583d4f36eefc49faf348f698c785615b723 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:30:34 -0700 Subject: [PATCH 011/152] meta-ros-common: libfreenect: Add recipe for 0.6.4 Signed-off-by: Rob Woolley --- .../libfreenect/libfreenect_0.6.4.bb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 meta-ros-common/recipes-extended/libfreenect/libfreenect_0.6.4.bb diff --git a/meta-ros-common/recipes-extended/libfreenect/libfreenect_0.6.4.bb b/meta-ros-common/recipes-extended/libfreenect/libfreenect_0.6.4.bb new file mode 100644 index 0000000000..0243600ac5 --- /dev/null +++ b/meta-ros-common/recipes-extended/libfreenect/libfreenect_0.6.4.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "Drivers and libraries for the Xbox Kinect device" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://GPL2;md5=eb723b61539feef013de476e68b5c50a" + +DEPENDS = "libusb1 freeglut libxi libxmu" + +SRCREV = "f6de60f5291258920ca7d03e8d593f1bab3f7867" +ROS_BRANCH ?= "branch=master" +SRC_URI = "git://github.com/OpenKinect/libfreenect;${ROS_BRANCH};protocol=https" + +S = "${WORKDIR}/git" + +inherit cmake + +#force libs always into /usr/lib, even when compiling on 64bit arch +##EXTRA_OECMAKE += " -DLIB_SUFFIX=''" + +FILES:${PN} += "\ + ${libdir}/fakenect/*.so.* \ + ${datadir}/fwfetcher.py \ +" +FILES:${PN}-dev += "${libdir}/fakenect/*.so" +FILES:${PN}-dbg += "${libdir}/fakenect/.debug" + +RDEPENDS:${PN} += "bash" + +inherit features_check +# Depends on freeglut with this restriction: +REQUIRED_DISTRO_FEATURES = "opengl" +# and libxi, libxmu, freeglut with this +REQUIRED_DISTRO_FEATURES += "x11" From 3ecd28599a1645c1f58421a7301e70ccc872a108 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:33:06 -0700 Subject: [PATCH 012/152] meta-ros-common: pcl: Add multiple recipe versions Signed-off-by: Rob Woolley --- meta-ros-common/recipes-extended/pcl/pcl.inc | 3 +-- meta-ros-common/recipes-extended/pcl/pcl_1.10.1.bb | 3 ++- meta-ros-common/recipes-extended/pcl/pcl_1.12.1.bb | 4 ++-- meta-ros-common/recipes-extended/pcl/pcl_1.13.0.bb | 4 ++-- meta-ros-common/recipes-extended/pcl/pcl_1.14.1.bb | 6 ++++++ 5 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 meta-ros-common/recipes-extended/pcl/pcl_1.14.1.bb diff --git a/meta-ros-common/recipes-extended/pcl/pcl.inc b/meta-ros-common/recipes-extended/pcl/pcl.inc index 18928f7eef..88ca6df098 100644 --- a/meta-ros-common/recipes-extended/pcl/pcl.inc +++ b/meta-ros-common/recipes-extended/pcl/pcl.inc @@ -7,8 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5b8a2a1aa14e6de44b4273134946a34c" DEPENDS = "boost libflann libeigen qhull" -SRC_URI = "git://github.com/PointCloudLibrary/pcl.git;branch=master;protocol=https \ - file://0001-MovingLeastSquares-reduce-the-number.patch" +SRC_URI = "git://github.com/PointCloudLibrary/pcl.git;branch=master;protocol=https" S = "${WORKDIR}/git" diff --git a/meta-ros-common/recipes-extended/pcl/pcl_1.10.1.bb b/meta-ros-common/recipes-extended/pcl/pcl_1.10.1.bb index e5acbf9f7a..cde17bc522 100644 --- a/meta-ros-common/recipes-extended/pcl/pcl_1.10.1.bb +++ b/meta-ros-common/recipes-extended/pcl/pcl_1.10.1.bb @@ -2,5 +2,6 @@ require pcl.inc -PV = "1.10.1+git${SRCPV}" +SRC_URI += "file://0001-MovingLeastSquares-reduce-the-number.patch" + SRCREV = "cbed174ba0a0c9ef021015d54d3b60320d808593" diff --git a/meta-ros-common/recipes-extended/pcl/pcl_1.12.1.bb b/meta-ros-common/recipes-extended/pcl/pcl_1.12.1.bb index 13f027361d..f99b7159d3 100644 --- a/meta-ros-common/recipes-extended/pcl/pcl_1.12.1.bb +++ b/meta-ros-common/recipes-extended/pcl/pcl_1.12.1.bb @@ -3,7 +3,7 @@ require pcl.inc -SRC_URI += "file://0001-Make-PCL-compatible-with-Boost-1.84-1.12.1.patch" +SRC_URI += "file://0001-MovingLeastSquares-reduce-the-number.patch \ + file://0001-Make-PCL-compatible-with-Boost-1.84-1.12.1.patch" -PV = "1.12.1+git${SRCPV}" SRCREV = "e8ed4be802f7d0b1acff2f8b01d7c5f381190e05" diff --git a/meta-ros-common/recipes-extended/pcl/pcl_1.13.0.bb b/meta-ros-common/recipes-extended/pcl/pcl_1.13.0.bb index 56e0d989e0..a485a4cbfb 100644 --- a/meta-ros-common/recipes-extended/pcl/pcl_1.13.0.bb +++ b/meta-ros-common/recipes-extended/pcl/pcl_1.13.0.bb @@ -3,7 +3,7 @@ require pcl.inc -SRC_URI += "file://0001-Make-PCL-compatible-with-Boost-1.84-1.13.0.patch" +SRC_URI += "file://0001-MovingLeastSquares-reduce-the-number.patch \ + file://0001-Make-PCL-compatible-with-Boost-1.84-1.13.0.patch" -PV = "1.13.0+git${SRCPV}" SRCREV = "371a8e1373f7b2f66bbb92291be2f3e50dc19856" diff --git a/meta-ros-common/recipes-extended/pcl/pcl_1.14.1.bb b/meta-ros-common/recipes-extended/pcl/pcl_1.14.1.bb new file mode 100644 index 0000000000..ef3af21f29 --- /dev/null +++ b/meta-ros-common/recipes-extended/pcl/pcl_1.14.1.bb @@ -0,0 +1,6 @@ +# Copyright (c) 2021 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. + +require pcl.inc + +SRCREV = "5f608cfb5397fe848c7d61c4ae5f5b1ab760ba80" From c2bff0ae4b54b708d61ab0fec5102d98eccf9033 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:35:02 -0700 Subject: [PATCH 013/152] meta-ros-common: assimp: Enable internal zlib build Signed-off-by: Rob Woolley --- meta-ros-common/recipes-graphics/assimp/assimp_5.2.5.bb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/meta-ros-common/recipes-graphics/assimp/assimp_5.2.5.bb b/meta-ros-common/recipes-graphics/assimp/assimp_5.2.5.bb index 5f9d3555f8..71574aaa02 100644 --- a/meta-ros-common/recipes-graphics/assimp/assimp_5.2.5.bb +++ b/meta-ros-common/recipes-graphics/assimp/assimp_5.2.5.bb @@ -17,7 +17,12 @@ S = "${WORKDIR}/git" inherit cmake -EXTRA_OECMAKE = "-DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF -DASSIMP_LIB_INSTALL_DIR=${baselib}" +EXTRA_OECMAKE = " \ + -DASSIMP_BUILD_ASSIMP_TOOLS=OFF \ + -DASSIMP_BUILD_TESTS=OFF \ + -DASSIMP_LIB_INSTALL_DIR=${baselib} \ + -DASSIMP_BUILD_ZLIB=ON \ +" # error: 'void* __builtin_memmove(void*, const void*, long unsigned int)' forming offset 4 is out of the bounds [0, 4] [-Werror=array-bounds=] CXXFLAGS += "-Wno-error=array-bounds" From 2184c59daa308768e3d840e4a554ef66a8ef2656 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:35:50 -0700 Subject: [PATCH 014/152] meta-ros-common: gdal: Extend recipe for native support Signed-off-by: Rob Woolley --- meta-ros-common/recipes-support/gdal/gdal_3.8.3.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-ros-common/recipes-support/gdal/gdal_3.8.3.bb b/meta-ros-common/recipes-support/gdal/gdal_3.8.3.bb index e626c048b5..25aeb967ff 100644 --- a/meta-ros-common/recipes-support/gdal/gdal_3.8.3.bb +++ b/meta-ros-common/recipes-support/gdal/gdal_3.8.3.bb @@ -92,3 +92,5 @@ do_install:append() { sed -i -e '1s|^#!.*|#!${bindir}/env python3|' ${D}${bindir}/gdal_edit.py sed -i -e '1s|^#!.*|#!${bindir}/env python3|' ${D}${bindir}/gdal_retile.py } + +BBCLASSEXTEND = "native nativesdk" From 8d9ad464e1a83af2b8ce223c351ed6648378fdd3 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:46:15 -0700 Subject: [PATCH 015/152] meta-ros-common: suitesparse: Add newer versions of recipes Add new recipes for suitesparse, leaving the older recipes if needed by older ROS 2 distros. Update the WORKDIR variable for old recipes to use git directory name. The suitesparse-cholmod and suitesparse-spqr recipes had incorrect version numbers that were ahead of the latest versions. Reset the versions to correspond to CMakeLists.txt in the latest releases. Signed-off-by: Rob Woolley --- .../suitesparse/suitesparse-7.7.0.inc | 13 +++++++++++ .../suitesparse/suitesparse-amd_2.4.6.bb | 2 +- .../suitesparse/suitesparse-amd_3.3.2.bb | 22 +++++++++++++++++++ .../suitesparse/suitesparse-camd_2.4.6.bb | 2 +- .../suitesparse/suitesparse-camd_3.3.2.bb | 22 +++++++++++++++++++ .../suitesparse/suitesparse-ccolamd_2.9.6.bb | 2 +- .../suitesparse/suitesparse-ccolamd_3.3.3.bb | 22 +++++++++++++++++++ ..._5.4.0.bb => suitesparse-cholmod_5.2.1.bb} | 19 +++++----------- .../suitesparse/suitesparse-colamd_2.9.6.bb | 2 +- .../suitesparse/suitesparse-colamd_3.3.3.bb | 22 +++++++++++++++++++ .../suitesparse/suitesparse-config_5.4.0.bb | 2 +- .../suitesparse/suitesparse-config_7.7.0.bb | 22 +++++++++++++++++++ .../suitesparse/suitesparse-csparse_5.4.0.bb | 2 +- .../suitesparse/suitesparse-csparse_7.7.0.bb | 18 +++++++++++++++ .../suitesparse/suitesparse-cxsparse_5.4.0.bb | 2 +- .../suitesparse/suitesparse-cxsparse_7.7.0.bb | 20 +++++++++++++++++ .../suitesparse/suitesparse-metis_5.1.0.bb | 2 +- ...pqr_5.4.0.bb => suitesparse-spqr_4.3.3.bb} | 17 +++++--------- 18 files changed, 181 insertions(+), 32 deletions(-) create mode 100644 meta-ros-common/recipes-extended/suitesparse/suitesparse-7.7.0.inc create mode 100644 meta-ros-common/recipes-extended/suitesparse/suitesparse-amd_3.3.2.bb create mode 100644 meta-ros-common/recipes-extended/suitesparse/suitesparse-camd_3.3.2.bb create mode 100644 meta-ros-common/recipes-extended/suitesparse/suitesparse-ccolamd_3.3.3.bb rename meta-ros-common/recipes-extended/suitesparse/{suitesparse-cholmod_5.4.0.bb => suitesparse-cholmod_5.2.1.bb} (69%) create mode 100644 meta-ros-common/recipes-extended/suitesparse/suitesparse-colamd_3.3.3.bb create mode 100644 meta-ros-common/recipes-extended/suitesparse/suitesparse-config_7.7.0.bb create mode 100644 meta-ros-common/recipes-extended/suitesparse/suitesparse-csparse_7.7.0.bb create mode 100644 meta-ros-common/recipes-extended/suitesparse/suitesparse-cxsparse_7.7.0.bb rename meta-ros-common/recipes-extended/suitesparse/{suitesparse-spqr_5.4.0.bb => suitesparse-spqr_4.3.3.bb} (77%) diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-7.7.0.inc b/meta-ros-common/recipes-extended/suitesparse/suitesparse-7.7.0.inc new file mode 100644 index 0000000000..5101d86227 --- /dev/null +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-7.7.0.inc @@ -0,0 +1,13 @@ +# Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. + +SUMMARY = "SuiteSparse is a suite of sparse matrix algorithms" +DESCRIPTION = "SuiteSparse is a suite of sparse matrix algorithms, including: UMFPACK(multifrontal LU factorization), CHOLMOD(supernodal Cholesky, with CUDA acceleration), SPQR(multifrontal QR) and many other packages." + +LIC_FILES_CHKSUM = "file://../LICENSE.txt;md5=f412ac88bc7d8314b59d3d103e0ffb75" + +S = "${WORKDIR}/git" + +SRC_URI = "git://github.com/DrTimothyAldenDavis/SuiteSparse.git;branch=stable;protocol=https" + +SRCREV = "13806726cbf470914d012d132a85aea1aff9ee77" diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-amd_2.4.6.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-amd_2.4.6.bb index 7d28b9fff9..7c3e9516ff 100644 --- a/meta-ros-common/recipes-extended/suitesparse/suitesparse-amd_2.4.6.bb +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-amd_2.4.6.bb @@ -10,7 +10,7 @@ DEPENDS = " \ " -S = "${WORKDIR}/SuiteSparse/AMD" +S = "${WORKDIR}/git/AMD" EXTRA_OEMAKE = "CC='${CC}'" diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-amd_3.3.2.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-amd_3.3.2.bb new file mode 100644 index 0000000000..4086dbc359 --- /dev/null +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-amd_3.3.2.bb @@ -0,0 +1,22 @@ +# Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. + +require suitesparse-7.7.0.inc + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM += "file://Doc/License.txt;md5=5ba3300acc9ddc20a56f6c843e2d5e13" + +DEPENDS = " \ + suitesparse-config \ +" + +S = "${WORKDIR}/git/AMD" + +inherit cmake pkgconfig + +DEPENDS:append:class-target = " chrpath-replacement-native" +# For some reason ends with bad RPATH +# WARNING: suitesparse-amd-2.4.6-r0 do_package_qa: QA Issue: package suitesparse-amd contains bad RPATH /jenkins/mjansa/build-ros/ros2-dashing-master/tmp-glibc/work/core2-32-oe-linux/suitesparse-amd/2.4.6-r0/image/usr/lib in file /jenkins/mjansa/build-ros/ros2-dashing-master/tmp-glibc/work/core2-32-oe-linux/suitesparse-amd/2.4.6-r0/packages-split/suitesparse-amd/usr/lib/libamd.so.2.4.6 [rpaths] +do_install:append() { + chrpath --delete ${D}${libdir}/*${SOLIBS} +} diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-camd_2.4.6.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-camd_2.4.6.bb index 6e48af2e5c..16632727df 100644 --- a/meta-ros-common/recipes-extended/suitesparse/suitesparse-camd_2.4.6.bb +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-camd_2.4.6.bb @@ -9,7 +9,7 @@ DEPENDS = " \ suitesparse-config \ " -S = "${WORKDIR}/SuiteSparse/CAMD" +S = "${WORKDIR}/git/CAMD" EXTRA_OEMAKE = "CC='${CC}'" diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-camd_3.3.2.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-camd_3.3.2.bb new file mode 100644 index 0000000000..41626f3c3a --- /dev/null +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-camd_3.3.2.bb @@ -0,0 +1,22 @@ +# Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. + +require suitesparse-7.7.0.inc + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM += "file://Doc/License.txt;md5=9207c2ee27101a898ff5fc1c60636cee" + +DEPENDS = " \ + suitesparse-config \ +" + +S = "${WORKDIR}/git/CAMD" + +inherit cmake pkgconfig + +DEPENDS:append:class-target = " chrpath-replacement-native" +# For some reason ends with bad RPATH +# WARNING: suitesparse-camd-2.4.6-r0 do_package_qa: QA Issue: package suitesparse-camd contains bad RPATH /jenkins/mjansa/build-ros/ros2-dashing-master/tmp-glibc/work/core2-32-oe-linux/suitesparse-camd/2.4.6-r0/image/usr/lib in file /jenkins/mjansa/build-ros/ros2-dashing-master/tmp-glibc/work/core2-32-oe-linux/suitesparse-camd/2.4.6-r0/packages-split/suitesparse-camd/usr/lib/libcamd.so.2.4.6 [rpaths] +do_install:append() { + chrpath --delete ${D}${libdir}/*${SOLIBS} +} diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-ccolamd_2.9.6.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-ccolamd_2.9.6.bb index 6063eecee2..efeebcc461 100644 --- a/meta-ros-common/recipes-extended/suitesparse/suitesparse-ccolamd_2.9.6.bb +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-ccolamd_2.9.6.bb @@ -9,7 +9,7 @@ DEPENDS = " \ suitesparse-config \ " -S = "${WORKDIR}/SuiteSparse/CCOLAMD" +S = "${WORKDIR}/git/CCOLAMD" EXTRA_OEMAKE = "CC='${CC}'" diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-ccolamd_3.3.3.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-ccolamd_3.3.3.bb new file mode 100644 index 0000000000..deafcfd4e4 --- /dev/null +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-ccolamd_3.3.3.bb @@ -0,0 +1,22 @@ +# Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. + +require suitesparse-7.7.0.inc + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM += "file://Doc/License.txt;md5=6f2bad59ec6185e681f66425faaf13f6" + +DEPENDS = " \ + suitesparse-config \ +" + +S = "${WORKDIR}/git/CCOLAMD" + +inherit cmake pkgconfig + +DEPENDS:append:class-target = " chrpath-replacement-native" +# For some reason ends with bad RPATH +# WARNING: suitesparse-ccolamd-2.9.6-r0 do_package_qa: QA Issue: package suitesparse-ccolamd contains bad RPATH /jenkins/mjansa/build-ros/ros2-dashing-master/tmp-glibc/work/core2-32-oe-linux/suitesparse-ccolamd/2.9.6-r0/image/usr/lib in file /jenkins/mjansa/build-ros/ros2-dashing-master/tmp-glibc/work/core2-32-oe-linux/suitesparse-ccolamd/2.9.6-r0/packages-split/suitesparse-ccolamd/usr/lib/libccolamd.so.2.9.6 [rpaths] +do_install:append() { + chrpath --delete ${D}${libdir}/*${SOLIBS} +} diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-cholmod_5.4.0.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-cholmod_5.2.1.bb similarity index 69% rename from meta-ros-common/recipes-extended/suitesparse/suitesparse-cholmod_5.4.0.bb rename to meta-ros-common/recipes-extended/suitesparse/suitesparse-cholmod_5.2.1.bb index 39037b80f5..92e408ccb5 100644 --- a/meta-ros-common/recipes-extended/suitesparse/suitesparse-cholmod_5.4.0.bb +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-cholmod_5.2.1.bb @@ -1,9 +1,10 @@ # Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. -require suitesparse-5.4.0.inc +require suitesparse-7.7.0.inc LICENSE = "LGPL-2.1-or-later" -LIC_FILES_CHKSUM += "file://Doc/License.txt;md5=5d8c39b6ee2eb7c9e0e226a333be30cc" +LIC_FILES_CHKSUM += "file://Doc/License.txt;md5=56def293641dc4b931815801e87b5aea" DEPENDS = " \ suitesparse-config \ @@ -11,23 +12,15 @@ DEPENDS = " \ suitesparse-colamd \ suitesparse-ccolamd \ suitesparse-camd \ - suitesparse-metis \ lapack \ openblas \ " -S = "${WORKDIR}/SuiteSparse/CHOLMOD" +S = "${WORKDIR}/git/CHOLMOD" -EXTRA_OEMAKE = "CC='${CC}' BLAS='-lblas'" +inherit cmake pkgconfig -do_compile() { - # build only the library, not the demo - oe_runmake library -} - -do_install() { - oe_runmake install INSTALL=${D}${prefix} -} +EXTRA_OECMAKE = "-DSUITESPARSE_USE_64BIT_BLAS=ON -DBLA_PREFER_PKGCONFIG=ON" DEPENDS:append:class-target = " chrpath-replacement-native" # For some reason ends with bad RPATH diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-colamd_2.9.6.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-colamd_2.9.6.bb index 5f2a4aaa18..74fc234d5b 100644 --- a/meta-ros-common/recipes-extended/suitesparse/suitesparse-colamd_2.9.6.bb +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-colamd_2.9.6.bb @@ -9,7 +9,7 @@ DEPENDS = " \ suitesparse-config \ " -S = "${WORKDIR}/SuiteSparse/COLAMD" +S = "${WORKDIR}/git/COLAMD" EXTRA_OEMAKE = "CC='${CC}'" diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-colamd_3.3.3.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-colamd_3.3.3.bb new file mode 100644 index 0000000000..95f689a649 --- /dev/null +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-colamd_3.3.3.bb @@ -0,0 +1,22 @@ +# Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. + +require suitesparse-7.7.0.inc + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM += "file://Doc/License.txt;md5=93997dd55f2c98be2351a1e84f528ecc" + +DEPENDS = " \ + suitesparse-config \ +" + +S = "${WORKDIR}/git/COLAMD" + +inherit cmake pkgconfig + +DEPENDS:append:class-target = " chrpath-replacement-native" +# For some reason ends with bad RPATH +# WARNING: suitesparse-colamd-2.9.6-r0 do_package_qa: QA Issue: package suitesparse-colamd contains bad RPATH /jenkins/mjansa/build-ros/ros2-dashing-master/tmp-glibc/work/core2-32-oe-linux/suitesparse-colamd/2.9.6-r0/image/usr/lib in file /jenkins/mjansa/build-ros/ros2-dashing-master/tmp-glibc/work/core2-32-oe-linux/suitesparse-colamd/2.9.6-r0/packages-split/suitesparse-colamd/usr/lib/libcolamd.so.2.9.6 [rpaths] +do_install:append() { + chrpath --delete ${D}${libdir}/*${SOLIBS} +} diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-config_5.4.0.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-config_5.4.0.bb index 7de4f7bddd..af36f5eada 100644 --- a/meta-ros-common/recipes-extended/suitesparse/suitesparse-config_5.4.0.bb +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-config_5.4.0.bb @@ -5,7 +5,7 @@ require suitesparse-5.4.0.inc LICENSE = "PD" LIC_FILES_CHKSUM += "file://README.txt;md5=9da0dd2832f2ab6d304cae1d28eecc11" -S = "${WORKDIR}/SuiteSparse/SuiteSparse_config" +S = "${WORKDIR}/git/SuiteSparse_config" EXTRA_OEMAKE = "CC='${CC}'" diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-config_7.7.0.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-config_7.7.0.bb new file mode 100644 index 0000000000..15306b77da --- /dev/null +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-config_7.7.0.bb @@ -0,0 +1,22 @@ +# Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. + +require suitesparse-7.7.0.inc + +LICENSE = "PD" +LIC_FILES_CHKSUM += "file://README.txt;md5=dabbb8fc940f88cfe4fde254fad9dd68" + +S = "${WORKDIR}/git/SuiteSparse_config" + +inherit cmake pkgconfig + +DEPENDS = "openblas" + +EXTRA_OECMAKE = "-DSUITESPARSE_USE_64BIT_BLAS=ON -DBLA_PREFER_PKGCONFIG=ON" + +DEPENDS:append:class-target = " chrpath-replacement-native" +# For some reason ends with bad RPATH +# WARNING: suitesparse-config-5.4.0-r0 do_package_qa: QA Issue: package suitesparse-config contains bad RPATH /jenkins/mjansa/build-ros/ros2-dashing-master/tmp-glibc/work/core2-32-oe-linux/suitesparse-config/5.4.0-r0/image/usr/lib in file /jenkins/mjansa/build-ros/ros2-dashing-master/tmp-glibc/work/core2-32-oe-linux/suitesparse-config/5.4.0-r0/packages-split/suitesparse-config/usr/lib/libsuitesparseconfig.so.5.4.0 [rpaths] +do_install:append() { + chrpath --delete ${D}${libdir}/*${SOLIBS} +} diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-csparse_5.4.0.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-csparse_5.4.0.bb index e49f203d8c..c2def57740 100644 --- a/meta-ros-common/recipes-extended/suitesparse/suitesparse-csparse_5.4.0.bb +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-csparse_5.4.0.bb @@ -5,7 +5,7 @@ require suitesparse-5.4.0.inc LICENSE = "LGPL-2.1-or-later" LIC_FILES_CHKSUM += "file://Doc/License.txt;md5=c2a06105a6d78da59c0d0c5d0d9b1394" -S = "${WORKDIR}/SuiteSparse/CSparse" +S = "${WORKDIR}/git/CSparse" EXTRA_OEMAKE = "CC='${CC}'" diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-csparse_7.7.0.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-csparse_7.7.0.bb new file mode 100644 index 0000000000..709324e3df --- /dev/null +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-csparse_7.7.0.bb @@ -0,0 +1,18 @@ +# Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. + +require suitesparse-7.7.0.inc + +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM += "file://Doc/License.txt;md5=c2a06105a6d78da59c0d0c5d0d9b1394" + +S = "${WORKDIR}/git/CSparse" + +inherit cmake pkgconfig + +do_install() { + install -D -m0644 ${B}/libcsparse.a ${D}${libdir}/libcsparse.a + install -D -m0644 ${B}/libcsparse.so.4.3.2 ${D}${libdir}/libcsparse.so.4.3.2 + ln -sf libcsparse.so.4.3.2 ${D}${libdir}/libcsparse.so.4 + ln -sf libcsparse.so.4 ${D}${libdir}/libcsparse.so +} diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-cxsparse_5.4.0.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-cxsparse_5.4.0.bb index 5d2039c025..a7e8f84a35 100644 --- a/meta-ros-common/recipes-extended/suitesparse/suitesparse-cxsparse_5.4.0.bb +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-cxsparse_5.4.0.bb @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM += "file://Doc/License.txt;md5=0e5191611fba4aac850756c5d598ff23 DEPENDS = "suitesparse-config" -S = "${WORKDIR}/SuiteSparse/CXSparse" +S = "${WORKDIR}/git/CXSparse" EXTRA_OEMAKE = "CC='${CC}'" diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-cxsparse_7.7.0.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-cxsparse_7.7.0.bb new file mode 100644 index 0000000000..4259363c4f --- /dev/null +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-cxsparse_7.7.0.bb @@ -0,0 +1,20 @@ +# Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. + +require suitesparse-7.7.0.inc + +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM += "file://Doc/License.txt;md5=0e5191611fba4aac850756c5d598ff23" + +DEPENDS = "suitesparse-config" + +S = "${WORKDIR}/git/CXSparse" + +inherit cmake pkgconfig + +DEPENDS:append:class-target = " chrpath-replacement-native" +# For some reason ends with bad RPATH +# WARNING: suitesparse-cxsparse-5.4.0-r0 do_package_qa: QA Issue: package suitesparse-cxsparse contains bad RPATH /jenkins/mjansa/build-ros/ros2-dashing-master/tmp-glibc/work/core2-32-oe-linux/suitesparse-cxsparse/5.4.0-r0/image/usr/lib in file /jenkins/mjansa/build-ros/ros2-dashing-master/tmp-glibc/work/core2-32-oe-linux/suitesparse-cxsparse/5.4.0-r0/packages-split/suitesparse-cxsparse/usr/lib/libcxsparse.so.3.2.0 [rpaths] +do_install:append() { + chrpath --delete ${D}${libdir}/*${SOLIBS} +} diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-metis_5.1.0.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-metis_5.1.0.bb index 08ca5210a4..6fe23325b8 100644 --- a/meta-ros-common/recipes-extended/suitesparse/suitesparse-metis_5.1.0.bb +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-metis_5.1.0.bb @@ -5,7 +5,7 @@ require suitesparse-5.4.0.inc LICENSE = "Apache-2.0" LIC_FILES_CHKSUM += "file://LICENSE.txt;md5=b46727c71b60d35ad5d2f927c4a3929b" -S = "${WORKDIR}/SuiteSparse/metis-${PV}" +S = "${WORKDIR}/git/metis-${PV}" inherit cmake diff --git a/meta-ros-common/recipes-extended/suitesparse/suitesparse-spqr_5.4.0.bb b/meta-ros-common/recipes-extended/suitesparse/suitesparse-spqr_4.3.3.bb similarity index 77% rename from meta-ros-common/recipes-extended/suitesparse/suitesparse-spqr_5.4.0.bb rename to meta-ros-common/recipes-extended/suitesparse/suitesparse-spqr_4.3.3.bb index b9a1f16be8..d1e2efd96b 100644 --- a/meta-ros-common/recipes-extended/suitesparse/suitesparse-spqr_5.4.0.bb +++ b/meta-ros-common/recipes-extended/suitesparse/suitesparse-spqr_4.3.3.bb @@ -1,6 +1,7 @@ # Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. -require suitesparse-5.4.0.inc +require suitesparse-7.7.0.inc LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM += "file://Doc/License.txt;md5=1c0c48edf24526b3cda72ce1a8a20b1d" @@ -11,20 +12,14 @@ DEPENDS = " \ suitesparse-colamd \ suitesparse-cholmod \ lapack \ + openblas \ " -S = "${WORKDIR}/SuiteSparse/SPQR" +S = "${WORKDIR}/git/SPQR" -EXTRA_OEMAKE = "CC='${CC}' BLAS='-lblas'" +inherit cmake pkgconfig -do_compile() { - # build only the library, not the demo - oe_runmake library -} - -do_install() { - oe_runmake install INSTALL=${D}${prefix} -} +EXTRA_OECMAKE = "-DSUITESPARSE_USE_64BIT_BLAS=ON -DBLA_PREFER_PKGCONFIG=ON" DEPENDS:append:class-target = " chrpath-replacement-native" # For some reason ends with bad RPATH From 8bfafec466d6d3cfb0f5b92a3585a3b6b8b55855 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:52:14 -0700 Subject: [PATCH 016/152] meta-ros-common: ceres-solver: Remove suitesparse-metis This removes suitesparse-metis as it is reportedly broken in the latest version of ceres-solver in meta-openembedded. Signed-off-by: Rob Woolley --- .../recipes-support/ceres-solver/ceres-solver_%.bbappend | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/meta-ros-common/recipes-support/ceres-solver/ceres-solver_%.bbappend b/meta-ros-common/recipes-support/ceres-solver/ceres-solver_%.bbappend index 3881a219a2..a8569de3ad 100644 --- a/meta-ros-common/recipes-support/ceres-solver/ceres-solver_%.bbappend +++ b/meta-ros-common/recipes-support/ceres-solver/ceres-solver_%.bbappend @@ -1,3 +1,9 @@ # Copyright (c) 2019-2021 LG Electronics, Inc. +# Remove suitesparse-metis +PACKAGECONFIG[suitesparse] = "-DSUITESPARSE=ON,-DSUITESPARSE=OFF,suitesparse-config suitesparse-amd suitesparse-camd suitesparse-colamd suitesparse-ccolamd suitesparse-cholmod suitesparse-spqr" PACKAGECONFIG ??= "suitesparse cxsparse lapack" + +# Temporarily disable using Eigen Metis in ceres-solver +# https://github.com/ceres-solver/ceres-solver/issues/828 +# EXTRA_OECMAKE += "-DCERES_NO_EIGEN_METIS=ON" From 2b289fbf376534d9705228fdb1a06a0e3b04b130 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:54:24 -0700 Subject: [PATCH 017/152] meta-ros-common: postgresql: Extend recipe for native support Signed-off-by: Rob Woolley --- meta-ros-common/recipes-dbs/postgresql/postgresql_%.bbappend | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 meta-ros-common/recipes-dbs/postgresql/postgresql_%.bbappend diff --git a/meta-ros-common/recipes-dbs/postgresql/postgresql_%.bbappend b/meta-ros-common/recipes-dbs/postgresql/postgresql_%.bbappend new file mode 100644 index 0000000000..d1f8a7200a --- /dev/null +++ b/meta-ros-common/recipes-dbs/postgresql/postgresql_%.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2023 Wind River Systems, Inc. + +BBCLASSEXTEND = "native nativesdk" From 4f31a7e73f0a4e8d9daefbc83c50514accf04e66 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:54:59 -0700 Subject: [PATCH 018/152] meta-ros-common: ffmpeg: Extend recipe for native support Signed-off-by: Rob Woolley --- meta-ros-common/recipes-graphics/ffmpeg/ffmpeg_%.bbappend | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 meta-ros-common/recipes-graphics/ffmpeg/ffmpeg_%.bbappend diff --git a/meta-ros-common/recipes-graphics/ffmpeg/ffmpeg_%.bbappend b/meta-ros-common/recipes-graphics/ffmpeg/ffmpeg_%.bbappend new file mode 100644 index 0000000000..d1f8a7200a --- /dev/null +++ b/meta-ros-common/recipes-graphics/ffmpeg/ffmpeg_%.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2023 Wind River Systems, Inc. + +BBCLASSEXTEND = "native nativesdk" From 489f58256754307f80edff14b5f383d1f5ee59ee Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:55:34 -0700 Subject: [PATCH 019/152] meta-ros-common: freeglut: Extend recipe for native support Signed-off-by: Rob Woolley --- meta-ros-common/recipes-graphics/freeglut/freeglut_%.bbappend | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 meta-ros-common/recipes-graphics/freeglut/freeglut_%.bbappend diff --git a/meta-ros-common/recipes-graphics/freeglut/freeglut_%.bbappend b/meta-ros-common/recipes-graphics/freeglut/freeglut_%.bbappend new file mode 100644 index 0000000000..d1f8a7200a --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeglut/freeglut_%.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2023 Wind River Systems, Inc. + +BBCLASSEXTEND = "native nativesdk" From d1f293cd0ce00c023f61d83b04022c2fd74a9b80 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:56:40 -0700 Subject: [PATCH 020/152] meta-ros-common: backward-cpp: Add new recipe Add new recipe for backward-ros and gz-tools2. Signed-off-by: Rob Woolley --- .../backward-cpp/backward-cpp_1.6.bb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 meta-ros-common/recipes-devtools/backward-cpp/backward-cpp_1.6.bb diff --git a/meta-ros-common/recipes-devtools/backward-cpp/backward-cpp_1.6.bb b/meta-ros-common/recipes-devtools/backward-cpp/backward-cpp_1.6.bb new file mode 100644 index 0000000000..f517303876 --- /dev/null +++ b/meta-ros-common/recipes-devtools/backward-cpp/backward-cpp_1.6.bb @@ -0,0 +1,16 @@ +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=74ea9734864a5514a5d672f385e3b382" + +SRC_URI = "git://github.com/bombela/backward-cpp.git;protocol=https;branch=master" + +SRCREV = "3bb9240cb15459768adb3e7d963a20e1523a6294" + +S = "${WORKDIR}/git" + +DEPENDS = "libunwind elfutils" + +inherit cmake + +FILES:${PN}-dev += "${libdir}/backward/BackwardConfig.cmake" + +BBCLASSEXTEND = "native nativesdk" From 8266ac9b66182203739e67a411d475ce8a52e7af Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 13:58:13 -0700 Subject: [PATCH 021/152] meta-ros-common: coinor-buildtools: Add new recipe Add new recipe as needed dependency for ipopt. Signed-off-by: Rob Woolley --- .../coinor/coinor-buildtools_git.bb | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 meta-ros-common/recipes-devtools/coinor/coinor-buildtools_git.bb diff --git a/meta-ros-common/recipes-devtools/coinor/coinor-buildtools_git.bb b/meta-ros-common/recipes-devtools/coinor/coinor-buildtools_git.bb new file mode 100644 index 0000000000..117a9f953c --- /dev/null +++ b/meta-ros-common/recipes-devtools/coinor/coinor-buildtools_git.bb @@ -0,0 +1,22 @@ +LICENSE = "EPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fa146738cbe7d5c7435f87912e8b77" + +SRC_URI = "git://github.com/coin-or-tools/BuildTools.git;protocol=https;branch=master" + +SRCREV = "20208f47f7bbc0056a92adefdfd43fded969f674" + +PV = "0.8.10+git" +S = "${WORKDIR}/git" + +do_install () { + install -d -m 0755 ${D}/${datadir}/coinor + install -D -m 0755 ${S}/coin.m4 ${D}${datadir}/coinor + install -D -m 0755 ${S}/coin-functions ${D}${datadir}/coinor + install -D -m 0755 ${S}/coin_chk_lapack.m4 ${D}${datadir}/coinor + install -D -m 0755 ${S}/coin_chk_libhdr.m4 ${D}${datadir}/coinor + install -D -m 0755 ${S}/coin_chk_pkg.m4 ${D}${datadir}/coinor + install -D -m 0755 ${S}/coin_fortran.m4 ${D}${datadir}/coinor + install -D -m 0755 ${S}/coin_math.m4 ${D}${datadir}/coinor +} + +BBCLASSEXTEND = "native nativesdk" From 398862984b913c9177dd2d109cb945f96f3d1182 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:01:16 -0700 Subject: [PATCH 022/152] meta-ros-common: libdeflate: Add new recipe New recipe required for libtiff, openexr, and gdal. Signed-off-by: Rob Woolley --- .../recipes-extended/libdeflate/libdeflate_1.19.bb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 meta-ros-common/recipes-extended/libdeflate/libdeflate_1.19.bb diff --git a/meta-ros-common/recipes-extended/libdeflate/libdeflate_1.19.bb b/meta-ros-common/recipes-extended/libdeflate/libdeflate_1.19.bb new file mode 100644 index 0000000000..2f0cfa8b9d --- /dev/null +++ b/meta-ros-common/recipes-extended/libdeflate/libdeflate_1.19.bb @@ -0,0 +1,14 @@ +SUMMARY = "libdeflate is a library for fast, whole-buffer DEFLATE-based compression and decompression." +HOMEPAGE = "https://github.com/ebiggers/libdeflate" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://COPYING;md5=7b6977026437092191e9da699ed9f780" + +DEPENDS += "gzip zlib" + +SRC_URI = "git://github.com/ebiggers/libdeflate.git;protocol=https;branch=master" + +S = "${WORKDIR}/git" +SRCREV = "dd12ff2b36d603dbb7fa8838fe7e7176fcbd4f6f" + +inherit cmake pkgconfig From 6484578d2ffd1b564e3b5d87a336bca95fef60e3 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:02:13 -0700 Subject: [PATCH 023/152] meta-ros-common: python3-pyproj: Extend recipe for native support Signed-off-by: Rob Woolley --- .../recipes-devtools/python/python3-pyproj_%.bbappend | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 meta-ros-common/recipes-devtools/python/python3-pyproj_%.bbappend diff --git a/meta-ros-common/recipes-devtools/python/python3-pyproj_%.bbappend b/meta-ros-common/recipes-devtools/python/python3-pyproj_%.bbappend new file mode 100644 index 0000000000..d1f8a7200a --- /dev/null +++ b/meta-ros-common/recipes-devtools/python/python3-pyproj_%.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2023 Wind River Systems, Inc. + +BBCLASSEXTEND = "native nativesdk" From f8c33cca2cecb25ff1b3e1af9c1c1fe81668d884 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:12:53 -0700 Subject: [PATCH 024/152] meta-ros-common: gts: Add new recipe Add gts recipe for gz-common5. Signed-off-by: Rob Woolley --- .../gts/gts/fix-includes.patch | 46 +++++++++++++++++++ .../gts/gts/fix-predicates_init.patch | 30 ++++++++++++ .../recipes-graphics/gts/gts_0.7.6.bb | 19 ++++++++ 3 files changed, 95 insertions(+) create mode 100644 meta-ros-common/recipes-graphics/gts/gts/fix-includes.patch create mode 100644 meta-ros-common/recipes-graphics/gts/gts/fix-predicates_init.patch create mode 100644 meta-ros-common/recipes-graphics/gts/gts_0.7.6.bb diff --git a/meta-ros-common/recipes-graphics/gts/gts/fix-includes.patch b/meta-ros-common/recipes-graphics/gts/gts/fix-includes.patch new file mode 100644 index 0000000000..60c461887b --- /dev/null +++ b/meta-ros-common/recipes-graphics/gts/gts/fix-includes.patch @@ -0,0 +1,46 @@ +Use the build directory to find the generated header files. + +Remove -I$(includedir) from the Makefile to avoid host contamination: + + cc1: warning: include location "/usr/include" is unsafe for cross-compilation [-Wpoison-system-directories] + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Rob Woolley + +Index: git/examples/Makefile.am +=================================================================== +--- git.orig/examples/Makefile.am ++++ git/examples/Makefile.am +@@ -1,6 +1,6 @@ + ## Process this file with automake to produce Makefile.in + +-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src -I$(includedir)\ ++INCLUDES = -I$(top_builddir) -I$(top_srcdir)/src -I$(top_builddir)/src \ + -DG_LOG_DOMAIN=\"Gts-examples\" + LDADD = $(top_builddir)/src/libgts.la -lm + DEPS = $(top_builddir)/src/libgts.la +Index: git/src/Makefile.am +=================================================================== +--- git.orig/src/Makefile.am ++++ git/src/Makefile.am +@@ -1,6 +1,6 @@ + ## Process this file with automake to produce Makefile.in + +-INCLUDES = -I$(top_srcdir) -I$(includedir) -DG_LOG_DOMAIN=\"Gts\" ++INCLUDES = -I$(top_builddir) -DG_LOG_DOMAIN=\"Gts\" + + bin_SCRIPTS=gts-config + +Index: git/tools/Makefile.am +=================================================================== +--- git.orig/tools/Makefile.am ++++ git/tools/Makefile.am +@@ -1,6 +1,6 @@ + ## Process this file with automake to produce Makefile.in + +-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src -I$(includedir)\ ++INCLUDES = -I$(top_builddir) -I$(top_srcdir)/src -I$(top_builddir)/src \ + -DG_LOG_DOMAIN=\"Gts-tools\" + LDADD = $(top_builddir)/src/libgts.la -lm + DEPS = $(top_builddir)/src/libgts.la diff --git a/meta-ros-common/recipes-graphics/gts/gts/fix-predicates_init.patch b/meta-ros-common/recipes-graphics/gts/gts/fix-predicates_init.patch new file mode 100644 index 0000000000..6d607e8c25 --- /dev/null +++ b/meta-ros-common/recipes-graphics/gts/gts/fix-predicates_init.patch @@ -0,0 +1,30 @@ +Use the native compiler to build the predicates_init build tool. + +Execute the native binary, predicates_init, located in the build directory. + + /bin/bash: line 1: ./predicates_init: No such file or directory + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Rob Woolley + +Index: git/src/Makefile.am +=================================================================== +--- git.orig/src/Makefile.am ++++ git/src/Makefile.am +@@ -63,13 +63,13 @@ include_HEADERS = \ + gts.h gtsconfig.h + + predicates.o: predicates.c predicates_init.h predicates.h +- $(COMPILE) -c $(srcdir)/predicates.c ++ $(BUILD_CC) $(INCLUDES) $(BUILD_CPPFLAGS) $(BUILD_CFLAGS) -c $(srcdir)/predicates.c + + predicates_init: predicates_init.c rounding.h +- $(COMPILE) $(srcdir)/predicates_init.c -o $(srcdir)/predicates_init ++ $(BUILD_CC) $(INCLUDES) $(BUILD_CPPFLAGS) $(BUILD_CFLAGS) $(srcdir)/predicates_init.c -o $(builddir)/predicates_init + + predicates_init.h: predicates_init +- ./predicates_init > $(srcdir)/predicates_init.h ++ $(builddir)/predicates_init > $(srcdir)/predicates_init.h + + CLEANFILES = $(BUILT_SOURCES) diff --git a/meta-ros-common/recipes-graphics/gts/gts_0.7.6.bb b/meta-ros-common/recipes-graphics/gts/gts_0.7.6.bb new file mode 100644 index 0000000000..6611537020 --- /dev/null +++ b/meta-ros-common/recipes-graphics/gts/gts_0.7.6.bb @@ -0,0 +1,19 @@ +LICENSE = "LGPL-2.0-only & Unknown" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://debian/copyright;md5=98f2cb72cc54864f096332707c784f81" + +SRC_URI = "git://anonscm.debian.org/git/debian-science/packages/gts.git;protocol=https;branch=master \ + file://fix-includes.patch \ + file://fix-predicates_init.patch \ +" + +PV = "0.7.6+git${SRCPV}" +SRCREV = "7cfcef0d9fc44f4fe424455027e78b73864590ec" + +S = "${WORKDIR}/git" + +DEPENDS = "glib-2.0" + +inherit autotools pkgconfig + +BBCLASSEXTEND = "native nativesdk" From bc08e2883532c4d24a4e26ea3b2ecfb0ec1904db Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:16:50 -0700 Subject: [PATCH 025/152] meta-ros2: libdeflate: Remove duplicate recipe Recipe was moved to meta-ros-common. Signed-off-by: Rob Woolley --- .../libdeflate/libdeflate_1.19.bb | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 meta-ros2/recipes-devtools/libdeflate/libdeflate_1.19.bb diff --git a/meta-ros2/recipes-devtools/libdeflate/libdeflate_1.19.bb b/meta-ros2/recipes-devtools/libdeflate/libdeflate_1.19.bb deleted file mode 100644 index 11cdb82905..0000000000 --- a/meta-ros2/recipes-devtools/libdeflate/libdeflate_1.19.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "libdeflate is a library for fast, whole-buffer DEFLATE-based compression and decompression." -HOMEPAGE = "https://github.com/ebiggers/libdeflate" -LICENSE = "MIT" - -LIC_FILES_CHKSUM = "file://COPYING;md5=7b6977026437092191e9da699ed9f780" - -DEPENDS += "gzip zlib" - -SRC_URI = "git://github.com/ebiggers/libdeflate.git;protocol=https;branch=master" - -S = "${WORKDIR}/git" -SRCREV = "dd12ff2b36d603dbb7fa8838fe7e7176fcbd4f6f" - -inherit cmake pkgconfig - From e7ea438a7a67826405243e5b4d1d83781a86b61b Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:18:02 -0700 Subject: [PATCH 026/152] meta-ros-common: libdeflate: Extend recipe for native support Signed-off-by: Rob Woolley --- meta-ros-common/recipes-extended/libdeflate/libdeflate_1.19.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-ros-common/recipes-extended/libdeflate/libdeflate_1.19.bb b/meta-ros-common/recipes-extended/libdeflate/libdeflate_1.19.bb index 2f0cfa8b9d..e5668ae0d4 100644 --- a/meta-ros-common/recipes-extended/libdeflate/libdeflate_1.19.bb +++ b/meta-ros-common/recipes-extended/libdeflate/libdeflate_1.19.bb @@ -12,3 +12,5 @@ S = "${WORKDIR}/git" SRCREV = "dd12ff2b36d603dbb7fa8838fe7e7176fcbd4f6f" inherit cmake pkgconfig + +BBCLASSEXTEND = "native nativesdk" From fb4ca47799b8472f67f6b2477f82fbfd72340097 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:19:12 -0700 Subject: [PATCH 027/152] meta-ros-common: libraw: Extend recipe for native support Signed-off-by: Rob Woolley --- meta-ros-common/recipes-graphics/libraw/libraw_%.bbappend | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 meta-ros-common/recipes-graphics/libraw/libraw_%.bbappend diff --git a/meta-ros-common/recipes-graphics/libraw/libraw_%.bbappend b/meta-ros-common/recipes-graphics/libraw/libraw_%.bbappend new file mode 100644 index 0000000000..d1f8a7200a --- /dev/null +++ b/meta-ros-common/recipes-graphics/libraw/libraw_%.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2023 Wind River Systems, Inc. + +BBCLASSEXTEND = "native nativesdk" From bf1cbf5adf2052895327cc50a252c1c51cb8b19d Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:19:30 -0700 Subject: [PATCH 028/152] meta-ros-common: libtheora: Extend recipe for native support Signed-off-by: Rob Woolley --- .../recipes-graphics/libtheora/libtheora_%.bbappend | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 meta-ros-common/recipes-graphics/libtheora/libtheora_%.bbappend diff --git a/meta-ros-common/recipes-graphics/libtheora/libtheora_%.bbappend b/meta-ros-common/recipes-graphics/libtheora/libtheora_%.bbappend new file mode 100644 index 0000000000..d1f8a7200a --- /dev/null +++ b/meta-ros-common/recipes-graphics/libtheora/libtheora_%.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2023 Wind River Systems, Inc. + +BBCLASSEXTEND = "native nativesdk" From 7ee2b4f56bcddd2bacf215e72150e5fa540a756f Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:19:51 -0700 Subject: [PATCH 029/152] meta-ros-common: libxv: Extend recipe for native support Signed-off-by: Rob Woolley --- meta-ros-common/recipes-graphics/libxv/libxv_%.bbappend | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 meta-ros-common/recipes-graphics/libxv/libxv_%.bbappend diff --git a/meta-ros-common/recipes-graphics/libxv/libxv_%.bbappend b/meta-ros-common/recipes-graphics/libxv/libxv_%.bbappend new file mode 100644 index 0000000000..d1f8a7200a --- /dev/null +++ b/meta-ros-common/recipes-graphics/libxv/libxv_%.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2023 Wind River Systems, Inc. + +BBCLASSEXTEND = "native nativesdk" From b65e38ddbf4114d68299a8f488df2a77242c884b Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:20:11 -0700 Subject: [PATCH 030/152] meta-ros-common: libglu: Extend recipe for native support Signed-off-by: Rob Woolley --- meta-ros-common/recipes-graphics/mesa/libglu_%.bbappend | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 meta-ros-common/recipes-graphics/mesa/libglu_%.bbappend diff --git a/meta-ros-common/recipes-graphics/mesa/libglu_%.bbappend b/meta-ros-common/recipes-graphics/mesa/libglu_%.bbappend new file mode 100644 index 0000000000..d1f8a7200a --- /dev/null +++ b/meta-ros-common/recipes-graphics/mesa/libglu_%.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2023 Wind River Systems, Inc. + +BBCLASSEXTEND = "native nativesdk" From 11aa5b043411d11ee7952ad3a64fdda67f61040f Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:22:06 -0700 Subject: [PATCH 031/152] meta-ros-common: openexr: Add new recipe Add openexr for freeimage. Signed-off-by: Rob Woolley --- .../recipes-graphics/openexr/openexr_3.2.1.bb | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 meta-ros-common/recipes-graphics/openexr/openexr_3.2.1.bb diff --git a/meta-ros-common/recipes-graphics/openexr/openexr_3.2.1.bb b/meta-ros-common/recipes-graphics/openexr/openexr_3.2.1.bb new file mode 100644 index 0000000000..a6d738eed4 --- /dev/null +++ b/meta-ros-common/recipes-graphics/openexr/openexr_3.2.1.bb @@ -0,0 +1,20 @@ +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=b0f98dc4bafd54ae93bbd833040c68a3" + +SRC_URI = "git://github.com/AcademySoftwareFoundation/openexr.git;protocol=https;branch=main" + +PV = "3.2.1+git${SRCPV}" +SRCREV = "6258740337bf3859ed8abcf8d99a1671b2cdd06d" + +S = "${WORKDIR}/git" + +DEPENDS += " \ + doxygen \ + libdeflate \ + imath \ + clang-native \ +" + +inherit cmake python3-dir python3native pkgconfig + +BBCLASSEXTEND = "native nativesdk" From 6cf8bf3e4953834c0409358db4fe2a877ec4c168 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:33:19 -0700 Subject: [PATCH 032/152] meta-ros-common: imath: Add new recipe Add new recipe for openexr. Signed-off-by: Rob Woolley --- .../recipes-support/imath/imath_3.1.9.bb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 meta-ros-common/recipes-support/imath/imath_3.1.9.bb diff --git a/meta-ros-common/recipes-support/imath/imath_3.1.9.bb b/meta-ros-common/recipes-support/imath/imath_3.1.9.bb new file mode 100644 index 0000000000..c56d4ceff4 --- /dev/null +++ b/meta-ros-common/recipes-support/imath/imath_3.1.9.bb @@ -0,0 +1,18 @@ +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=0f34c2a8b1c102d683feca7a5835e921" + +SRC_URI = "git://github.com/AcademySoftwareFoundation/Imath.git;protocol=https;branch=main" + +PV = "3.1.9+git${SRCPV}" +SRCREV = "642312b48e4c054198a3887b9e4e53da08fb7531" + +S = "${WORKDIR}/git" + +DEPENDS = " \ + boost \ + python3-pybind11 \ +" + +inherit cmake python3native + +BBCLASSEXTEND = "native nativesdk" From 163820f3cbcb93ea2cbe63ca9ac77c6001a821b6 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:34:02 -0700 Subject: [PATCH 033/152] meta-ros-common: ipopt: Add new recipe Add new recipe for dartsim and pagmo. Signed-off-by: Rob Woolley --- .../recipes-support/ipopt/ipopt_3.14.16.bb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 meta-ros-common/recipes-support/ipopt/ipopt_3.14.16.bb diff --git a/meta-ros-common/recipes-support/ipopt/ipopt_3.14.16.bb b/meta-ros-common/recipes-support/ipopt/ipopt_3.14.16.bb new file mode 100644 index 0000000000..19c97f32e0 --- /dev/null +++ b/meta-ros-common/recipes-support/ipopt/ipopt_3.14.16.bb @@ -0,0 +1,17 @@ +LICENSE = "EPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fa146738cbe7d5c7435f87912e8b77" + +SRC_URI = "git://github.com/coin-or/Ipopt.git;protocol=https;branch=stable/3.14" + +SRCREV = "43a63412f73d9ad3ff9074d38b49362fc9d7f8f1" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +DEPENDS = "coinor-buildtools-native lapack" + +do_configure:prepend () { + mkdir -p ${S}/coinor-m4 + cp ${STAGING_DIR_NATIVE}/${datadir}/coinor/* ${S}/coinor-m4 +} From 1b69e289dcf24021c7e02b84a14ff706ddafc14d Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:34:42 -0700 Subject: [PATCH 034/152] meta-ros-common: pagmo: Add new recipe Add new recipe for dartsim. Signed-off-by: Rob Woolley --- .../recipes-support/pagmo/pagmo_2.19.0.bb | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 meta-ros-common/recipes-support/pagmo/pagmo_2.19.0.bb diff --git a/meta-ros-common/recipes-support/pagmo/pagmo_2.19.0.bb b/meta-ros-common/recipes-support/pagmo/pagmo_2.19.0.bb new file mode 100644 index 0000000000..fc0c0020fd --- /dev/null +++ b/meta-ros-common/recipes-support/pagmo/pagmo_2.19.0.bb @@ -0,0 +1,20 @@ +LICENSE = "LGPL-3.0-only & MIT & GPL-3.0-only" +LIC_FILES_CHKSUM = "file://COPYING.gpl3;md5=11cc2d3ee574f9d6b7ee797bdce4d423 \ + file://COPYING.lgpl3;md5=6a6a8e020838b23406c81b19c1d46df6 \ + file://cmake_modules/yacma/LICENSE;md5=28912171f281b7a4e03f7917f542a27c" + +SRC_URI = "git://github.com/esa/pagmo2.git;protocol=https;branch=master" + +SRCREV = "27ae9159f4fcd11bb93de0ae8189d15352655b0a" + +S = "${WORKDIR}/git" + +inherit cmake + +DEPENDS = " \ + boost \ + ipopt \ + libeigen \ + nlopt \ + tbb \ +" From 360943831629f1361acc13a1d953e70e2d05ce2b Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:35:38 -0700 Subject: [PATCH 035/152] meta-ros-common: zziplib: Add new recipe Add new recipe for ogre-next. Signed-off-by: Rob Woolley --- .../zziplib/zziplib_0.13.74.bb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 meta-ros-common/recipes-support/zziplib/zziplib_0.13.74.bb diff --git a/meta-ros-common/recipes-support/zziplib/zziplib_0.13.74.bb b/meta-ros-common/recipes-support/zziplib/zziplib_0.13.74.bb new file mode 100644 index 0000000000..a19dc62da7 --- /dev/null +++ b/meta-ros-common/recipes-support/zziplib/zziplib_0.13.74.bb @@ -0,0 +1,19 @@ +SUMMARY = "ZZipLib - libZ-based ZIP-access Library with an Easy-to-Use API" +LICENSE = "LGPL-2.0-only & MPL-1.1 & Zlib" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://docs/COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://docs/COPYING.MPL;md5=48ff35a6e75247e702019cddd0eacc21 \ + file://docs/COPYING.ZLIB;md5=391a94bf6bcc911c019db84f178be0d4" + +SRC_URI = "git://github.com/gdraheim/zziplib;protocol=https;branch=master" + +PV = "0.13.74+git" +SRCREV = "df9e9c06634cb0c48bdc42efe9f7ac55847503a5" + +S = "${WORKDIR}/git" + +DEPENDS = "zlib libsdl2" + +inherit cmake pkgconfig python3native + +EXTRA_OECMAKE = "-DZZIPTEST=OFF" From c9b56b5939eae0743f7776f412cf4f5e098e93be Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:36:59 -0700 Subject: [PATCH 036/152] meta-ros-common: freeimage: Add new recipe Add freeimage recipe based on Debian-supported version. Needed by ogre-next and Gazebo. Signed-off-by: Rob Woolley --- .../freeimage/Amend-jxrlib-include-dir.patch | 13 + .../freeimage/CVE-2019-12211-13.patch | 162 ++++++ .../Disable-testing-of-JPEG-transform.patch | 42 ++ .../Disable-testing-of-JXR-MemIO.patch | 24 + ...-usage-of-HTML-timestamps-in-doxygen.patch | 22 + .../Disable-vendored-dependencies.patch | 469 ++++++++++++++++++ .../Enable-substitution-of-pkg-config.patch | 39 ++ .../freeimage/freeimage/Fix-big-endian.patch | 63 +++ ...Fix-compatibility-with-system-libpng.patch | 99 ++++ .../freeimage/Fix-encoding-of-fi-header.patch | 21 + .../freeimage/Fix-libraw-compilation-2.patch | 13 + .../freeimage/Fix-libraw-compilation.patch | 76 +++ ...edefinition-for-64-bit-integer-types.patch | 26 + .../Fix_compilation_external-static.patch | 16 + .../freeimage/Use-system-dependencies.patch | 184 +++++++ .../Use-system-jpeg_read_icc_profile.patch | 128 +++++ .../fix-freeimage-with-libraw-0.21.1.patch | 20 + .../freeimage/fix-include-dirs.patch | 19 + .../freeimage/r1830-minor-refactoring.patch | 15 + ...n-when-working-with-malicious-images.patch | 455 +++++++++++++++++ ...n-when-working-with-malicious-images.patch | 159 ++++++ ...-PFM-plugin-against-malicious-images.patch | 227 +++++++++ ...-DDS-plugin-against-malicious-images.patch | 15 + .../freeimage/freeimage/revert-xtiff.patch | 114 +++++ .../freeimage/freeimage_3.18.0-2.bb | 81 +++ 25 files changed, 2502 insertions(+) create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Amend-jxrlib-include-dir.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/CVE-2019-12211-13.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-testing-of-JPEG-transform.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-testing-of-JXR-MemIO.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-usage-of-HTML-timestamps-in-doxygen.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-vendored-dependencies.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Enable-substitution-of-pkg-config.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-big-endian.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-compatibility-with-system-libpng.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-encoding-of-fi-header.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-libraw-compilation-2.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-libraw-compilation.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-macro-redefinition-for-64-bit-integer-types.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Fix_compilation_external-static.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Use-system-dependencies.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/Use-system-jpeg_read_icc_profile.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/fix-freeimage-with-libraw-0.21.1.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/fix-include-dirs.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/r1830-minor-refactoring.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/r1832-improved-BMP-plugin-when-working-with-malicious-images.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/r1836-improved-BMP-plugin-when-working-with-malicious-images.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/r1848-improved-PFM-plugin-against-malicious-images.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/r1877-improved-DDS-plugin-against-malicious-images.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage/revert-xtiff.patch create mode 100644 meta-ros-common/recipes-graphics/freeimage/freeimage_3.18.0-2.bb diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Amend-jxrlib-include-dir.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Amend-jxrlib-include-dir.patch new file mode 100644 index 0000000000..79dd9bc351 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Amend-jxrlib-include-dir.patch @@ -0,0 +1,13 @@ +Index: git/Source/FreeImage/PluginJXR.cpp +=================================================================== +--- git.orig/Source/FreeImage/PluginJXR.cpp ++++ git/Source/FreeImage/PluginJXR.cpp +@@ -23,7 +23,7 @@ + #include "Utilities.h" + #include "../Metadata/FreeImageTag.h" + +-#include ++#include + + // ========================================================== + // Plugin Interface diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/CVE-2019-12211-13.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/CVE-2019-12211-13.patch new file mode 100644 index 0000000000..5774165a67 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/CVE-2019-12211-13.patch @@ -0,0 +1,162 @@ +Index: freeimage/Source/FreeImage/PluginTIFF.cpp +=================================================================== +--- freeimage.orig/Source/FreeImage/PluginTIFF.cpp ++++ freeimage/Source/FreeImage/PluginTIFF.cpp +@@ -122,9 +122,14 @@ static void ReadThumbnail(FreeImageIO *i + static int s_format_id; + + typedef struct { ++ //! FreeImage IO functions + FreeImageIO *io; ++ //! FreeImage handle + fi_handle handle; ++ //! LibTIFF handle + TIFF *tif; ++ //! Count the number of thumbnails already read (used to avoid recursion on loading) ++ unsigned thumbnailCount; + } fi_TIFFIO; + + // ---------------------------------------------------------- +@@ -184,10 +189,8 @@ Open a TIFF file descriptor for reading + */ + TIFF * + TIFFFdOpen(thandle_t handle, const char *name, const char *mode) { +- TIFF *tif; +- + // Open the file; the callback will set everything up +- tif = TIFFClientOpen(name, mode, handle, ++ TIFF *tif = TIFFClientOpen(name, mode, handle, + _tiffReadProc, _tiffWriteProc, _tiffSeekProc, _tiffCloseProc, + _tiffSizeProc, _tiffMapProc, _tiffUnmapProc); + +@@ -460,9 +463,9 @@ CreateImageType(BOOL header_only, FREE_I + } + + } +- else { ++ else if (bpp <= 32) { + +- dib = FreeImage_AllocateHeader(header_only, width, height, MIN(bpp, 32), FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK); ++ dib = FreeImage_AllocateHeader(header_only, width, height, bpp, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK); + } + + +@@ -1053,6 +1056,7 @@ Open(FreeImageIO *io, fi_handle handle, + if(!fio) return NULL; + fio->io = io; + fio->handle = handle; ++ fio->thumbnailCount = 0; + + if (read) { + fio->tif = TIFFFdOpen((thandle_t)fio, "", "r"); +@@ -1108,6 +1112,27 @@ check for uncommon bitspersample values + */ + static BOOL + IsValidBitsPerSample(uint16 photometric, uint16 bitspersample, uint16 samplesperpixel) { ++ // get the pixel depth in bits ++ const uint16 pixel_depth = bitspersample * samplesperpixel; ++ ++ // check for a supported pixel depth ++ switch (pixel_depth) { ++ case 1: ++ case 4: ++ case 8: ++ case 16: ++ case 24: ++ case 32: ++ case 48: ++ case 64: ++ case 96: ++ case 128: ++ // OK, go on ++ break; ++ default: ++ // unsupported pixel depth ++ return FALSE; ++ } + + switch(bitspersample) { + case 1: +@@ -1148,6 +1173,8 @@ IsValidBitsPerSample(uint16 photometric, + default: + return FALSE; + } ++ ++ return FALSE; + } + + static TIFFLoadMethod +@@ -1237,16 +1264,32 @@ Read embedded thumbnail + static void + ReadThumbnail(FreeImageIO *io, fi_handle handle, void *data, TIFF *tiff, FIBITMAP *dib) { + FIBITMAP* thumbnail = NULL; ++ ++ fi_TIFFIO *fio = (fi_TIFFIO*)data; ++ ++ /* ++ Thumbnail loading can cause recursions because of the way ++ functions TIFFLastDirectory and TIFFSetSubDirectory are working. ++ We use here a hack to count the number of times the ReadThumbnail function was called. ++ We only allow one call, check for this ++ */ ++ if (fio->thumbnailCount > 0) { ++ return; ++ } ++ else { ++ // update the thumbnail count (used to avoid recursion) ++ fio->thumbnailCount++; ++ } + + // read exif thumbnail (IFD 1) ... + +- /* +- // this code can cause unwanted recursion causing an overflow, it is thus disabled until we have a better solution +- // do we really need to read a thumbnail from the Exif segment ? knowing that TIFF store the thumbnail in the subIFD ... +- // + toff_t exif_offset = 0; + if(TIFFGetField(tiff, TIFFTAG_EXIFIFD, &exif_offset)) { + ++ // this code can cause unwanted recursion causing an overflow, ++ // because of the way TIFFLastDirectory work => this is checked ++ // using ++ + if(!TIFFLastDirectory(tiff)) { + // save current position + const long tell_pos = io->tell_proc(handle); +@@ -1264,7 +1307,6 @@ ReadThumbnail(FreeImageIO *io, fi_handle + TIFFSetDirectory(tiff, cur_dir); + } + } +- */ + + // ... or read the first subIFD + +@@ -1281,6 +1323,10 @@ ReadThumbnail(FreeImageIO *io, fi_handle + const long tell_pos = io->tell_proc(handle); + const uint16 cur_dir = TIFFCurrentDirectory(tiff); + ++ // this code can cause unwanted recursion ++ // causing an overflow, because of the way ++ // TIFFSetSubDirectory work ++ + if(TIFFSetSubDirectory(tiff, subIFD_offsets[0])) { + // load the thumbnail + int page = -1; +@@ -2041,7 +2087,7 @@ Load(FreeImageIO *io, fi_handle handle, + } + + // calculate src line and dst pitch +- int dst_pitch = FreeImage_GetPitch(dib); ++ unsigned dst_pitch = FreeImage_GetPitch(dib); + uint32 tileRowSize = (uint32)TIFFTileRowSize(tif); + uint32 imageRowSize = (uint32)TIFFScanlineSize(tif); + +@@ -2071,7 +2117,7 @@ Load(FreeImageIO *io, fi_handle handle, + BYTE *src_bits = tileBuffer; + BYTE *dst_bits = bits + rowSize; + for(int k = 0; k < nrows; k++) { +- memcpy(dst_bits, src_bits, src_line); ++ memcpy(dst_bits, src_bits, MIN(dst_pitch, src_line)); + src_bits += tileRowSize; + dst_bits -= dst_pitch; + } diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-testing-of-JPEG-transform.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-testing-of-JPEG-transform.patch new file mode 100644 index 0000000000..6206a1cae8 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-testing-of-JPEG-transform.patch @@ -0,0 +1,42 @@ +From: Ghislain Antony Vaillant +Date: Tue, 3 Nov 2015 18:15:18 +0000 +Subject: Disable testing of JPEG transform. + +Reason: the JPEG transform features are disabled from the Debian build as a +result of the stripping of the vendored dependencies. +--- + TestAPI/testJPEG.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +Index: FreeImage/TestAPI/testJPEG.cpp +=================================================================== +--- FreeImage.orig/TestAPI/testJPEG.cpp ++++ FreeImage/TestAPI/testJPEG.cpp +@@ -25,6 +25,7 @@ + // Local test functions + // ---------------------------------------------------------- + ++#if 0 + void testJPEGTransform(const char *src_file) { + BOOL bResult; + BOOL perfect; +@@ -193,11 +194,13 @@ void testJPEGSameFile(const char *src_fi + bResult = FreeImage_JPEGTransform("test.jpg", "test.jpg", FIJPEG_OP_ROTATE_270, perfect); + assert(bResult); + } ++#endif + + // Main test function + // ---------------------------------------------------------- + + void testJPEG() { ++#if 0 + const char *src_file = "exif.jpg"; + + printf("testJPEG (should throw exceptions) ...\n"); +@@ -213,4 +216,5 @@ void testJPEG() { + + // using the same file for src & dst is allowed + testJPEGSameFile(src_file); ++#endif + } diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-testing-of-JXR-MemIO.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-testing-of-JXR-MemIO.patch new file mode 100644 index 0000000000..47394b70bd --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-testing-of-JXR-MemIO.patch @@ -0,0 +1,24 @@ +From: Ghislain Antony Vaillant +Date: Thu, 5 Nov 2015 23:47:23 +0000 +Subject: Disable testing of JXR MemIO. + +Reason: The JXR MemIO test raises an assertion error, whose origin is unknown +and needs to be assessed with upstream. Meanwhile the failing test should be +temporarily disabled. +--- + TestAPI/MainTestSuite.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: FreeImage/TestAPI/MainTestSuite.cpp +=================================================================== +--- FreeImage.orig/TestAPI/MainTestSuite.cpp ++++ FreeImage/TestAPI/MainTestSuite.cpp +@@ -76,7 +76,7 @@ int main(int argc, char *argv[]) { + + // test memory IO + testMemIO("sample.png"); +- testMemIO("exif.jxr"); ++ //testMemIO("exif.jxr"); + + // test multipage functions + testMultiPage("sample.png"); diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-usage-of-HTML-timestamps-in-doxygen.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-usage-of-HTML-timestamps-in-doxygen.patch new file mode 100644 index 0000000000..4f2c5c6704 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-usage-of-HTML-timestamps-in-doxygen.patch @@ -0,0 +1,22 @@ +From: Ghislain Antony Vaillant +Date: Tue, 10 Nov 2015 13:50:59 +0000 +Subject: Disable usage of HTML timestamps in doxygen. + +Improves package reproducibility. +--- + Wrapper/FreeImagePlus/doc/FreeImagePlus.dox | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: FreeImage/Wrapper/FreeImagePlus/doc/FreeImagePlus.dox +=================================================================== +--- FreeImage.orig/Wrapper/FreeImagePlus/doc/FreeImagePlus.dox ++++ FreeImage/Wrapper/FreeImagePlus/doc/FreeImagePlus.dox +@@ -1166,7 +1166,7 @@ HTML_COLORSTYLE_GAMMA = 80 + # The default value is: NO. + # This tag requires that the tag GENERATE_HTML is set to YES. + +-HTML_TIMESTAMP = YES ++HTML_TIMESTAMP = NO + + # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML + # documentation will contain sections that can be hidden and shown after the diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-vendored-dependencies.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-vendored-dependencies.patch new file mode 100644 index 0000000000..7844a7ee5e --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Disable-vendored-dependencies.patch @@ -0,0 +1,469 @@ +From: Ghislain Antony Vaillant +Date: Tue, 3 Nov 2015 14:39:33 +0000 +Subject: Disable vendored dependencies. + +This commit disables usage of the embedded dependencies for building +FreeImage and FreeImagePlus. Functionalities which could not use the +packaged dependencies are delibarately disabled for security reasons. + +This patch is based on Fedora's FreeImage-3.17.0_unbundle patch. +--- + Source/FreeImage.h | 9 ++++- + Source/FreeImage/J2KHelper.cpp | 2 +- + Source/FreeImage/PluginEXR.cpp | 20 +++++----- + Source/FreeImage/PluginG3.cpp | 9 +++-- + Source/FreeImage/PluginJ2K.cpp | 2 +- + Source/FreeImage/PluginJP2.cpp | 2 +- + Source/FreeImage/PluginJPEG.cpp | 6 +-- + Source/FreeImage/PluginJXR.cpp | 2 +- + Source/FreeImage/PluginPNG.cpp | 4 +- + Source/FreeImage/PluginRAW.cpp | 2 +- + Source/FreeImage/PluginTIFF.cpp | 4 +- + Source/FreeImage/PluginWebP.cpp | 8 ++-- + Source/FreeImage/ZLibInterface.cpp | 5 +-- + Source/Metadata/XTIFF.cpp | 80 +++++++++++++++++++------------------- + genfipsrclist.sh | 9 +---- + gensrclist.sh | 11 ++---- + 16 files changed, 85 insertions(+), 90 deletions(-) + +Index: freeimage-3.18.0+ds2/Source/FreeImage.h +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage.h ++++ freeimage-3.18.0+ds2/Source/FreeImage.h +@@ -473,6 +473,9 @@ FI_ENUM(FREE_IMAGE_DITHER) { + FID_BAYER16x16 = 6 //! Bayer ordered dispersed dot dithering (order 4 dithering matrix) + }; + ++/* Debian: The JPEGTransform functions are deliberately disabled in our build ++ of FreeImage, since they require usage of the vendored copy of libjpeg. */ ++#if 0 + /** Lossless JPEG transformations + Constants used in FreeImage_JPEGTransform + */ +@@ -486,6 +489,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) { + FIJPEG_OP_ROTATE_180 = 6, //! 180-degree rotation + FIJPEG_OP_ROTATE_270 = 7 //! 270-degree clockwise (or 90 ccw) + }; ++#endif + + /** Tone mapping operators. + Constants used in FreeImage_ToneMapping. +@@ -1088,7 +1092,9 @@ DLL_API const char* DLL_CALLCONV FreeIma + // -------------------------------------------------------------------------- + // JPEG lossless transformation routines + // -------------------------------------------------------------------------- +- ++/* Debian: The JPEGTransform functions are deliberately disabled in our build ++ of FreeImage, since they require usage of the vendored copy of libjpeg. */ ++#if 0 + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE)); + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE)); + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom); +@@ -1097,6 +1103,7 @@ DLL_API BOOL DLL_CALLCONV FreeImage_JPEG + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); + DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); ++#endif + + + // -------------------------------------------------------------------------- +Index: freeimage-3.18.0+ds2/Source/FreeImage/J2KHelper.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/J2KHelper.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/J2KHelper.cpp +@@ -21,7 +21,7 @@ + + #include "FreeImage.h" + #include "Utilities.h" +-#include "../LibOpenJPEG/openjpeg.h" ++#include + #include "J2KHelper.h" + + // -------------------------------------------------------------------------- +Index: freeimage-3.18.0+ds2/Source/FreeImage/PluginEXR.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginEXR.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginEXR.cpp +@@ -28,16 +28,17 @@ + #pragma warning (disable : 4800) // ImfVersion.h - 'const int' : forcing value to bool 'true' or 'false' (performance warning) + #endif + +-#include "../OpenEXR/IlmImf/ImfIO.h" +-#include "../OpenEXR/Iex/Iex.h" +-#include "../OpenEXR/IlmImf/ImfOutputFile.h" +-#include "../OpenEXR/IlmImf/ImfInputFile.h" +-#include "../OpenEXR/IlmImf/ImfRgbaFile.h" +-#include "../OpenEXR/IlmImf/ImfChannelList.h" +-#include "../OpenEXR/IlmImf/ImfRgba.h" +-#include "../OpenEXR/IlmImf/ImfArray.h" +-#include "../OpenEXR/IlmImf/ImfPreviewImage.h" +-#include "../OpenEXR/Half/half.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + + // ========================================================== +Index: freeimage-3.18.0+ds2/Source/FreeImage/PluginG3.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginG3.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginG3.cpp +@@ -20,8 +20,6 @@ + // Use at your own risk! + // ========================================================== + +-#include "../LibTIFF4/tiffiop.h" +- + #include "FreeImage.h" + #include "Utilities.h" + +@@ -31,6 +29,7 @@ + + static int s_format_id; + ++#if 0 + // ========================================================== + // Constant/Macro declarations + // ========================================================== +@@ -192,6 +191,7 @@ copyFaxFile(FreeImageIO *io, fi_handle h + + return (row); + } ++#endif + + + // ========================================================== +@@ -229,7 +229,7 @@ SupportsExportDepth(int depth) { + } + + // ---------------------------------------------------------- +- ++#if 0 + static FIBITMAP * DLL_CALLCONV + Load(FreeImageIO *io, fi_handle handle, int page, int flags, void *data) { + TIFF *faxTIFF = NULL; +@@ -406,6 +406,7 @@ Load(FreeImageIO *io, fi_handle handle, + return dib; + + } ++#endif + + // ========================================================== + // Init +@@ -423,7 +424,7 @@ InitG3(Plugin *plugin, int format_id) { + plugin->close_proc = NULL; + plugin->pagecount_proc = NULL; + plugin->pagecapability_proc = NULL; +- plugin->load_proc = Load; ++ plugin->load_proc = NULL; + plugin->save_proc = NULL; + plugin->validate_proc = NULL; + plugin->mime_proc = MimeType; +Index: freeimage-3.18.0+ds2/Source/FreeImage/PluginJ2K.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginJ2K.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginJ2K.cpp +@@ -21,7 +21,7 @@ + + #include "FreeImage.h" + #include "Utilities.h" +-#include "../LibOpenJPEG/openjpeg.h" ++#include + #include "J2KHelper.h" + + // ========================================================== +Index: freeimage-3.18.0+ds2/Source/FreeImage/PluginJP2.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginJP2.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginJP2.cpp +@@ -21,7 +21,7 @@ + + #include "FreeImage.h" + #include "Utilities.h" +-#include "../LibOpenJPEG/openjpeg.h" ++#include + #include "J2KHelper.h" + + // ========================================================== +Index: freeimage-3.18.0+ds2/Source/FreeImage/PluginJPEG.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginJPEG.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginJPEG.cpp +@@ -35,9 +35,9 @@ extern "C" { + #undef FAR + #include + +-#include "../LibJPEG/jinclude.h" +-#include "../LibJPEG/jpeglib.h" +-#include "../LibJPEG/jerror.h" ++#include ++#include ++#include + } + + #include "FreeImage.h" +Index: freeimage-3.18.0+ds2/Source/FreeImage/PluginJXR.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginJXR.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginJXR.cpp +@@ -23,7 +23,7 @@ + #include "Utilities.h" + #include "../Metadata/FreeImageTag.h" + +-#include "../LibJXR/jxrgluelib/JXRGlue.h" ++#include + + // ========================================================== + // Plugin Interface +Index: freeimage-3.18.0+ds2/Source/FreeImage/PluginPNG.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginPNG.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginPNG.cpp +@@ -40,8 +40,8 @@ + + // ---------------------------------------------------------- + +-#include "../ZLib/zlib.h" +-#include "../LibPNG/png.h" ++#include ++#include + + // ---------------------------------------------------------- + +Index: freeimage-3.18.0+ds2/Source/FreeImage/PluginRAW.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginRAW.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginRAW.cpp +@@ -19,7 +19,7 @@ + // Use at your own risk! + // ========================================================== + +-#include "../LibRawLite/libraw/libraw.h" ++#include + + #include "FreeImage.h" + #include "Utilities.h" +Index: freeimage-3.18.0+ds2/Source/FreeImage/ZLibInterface.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/ZLibInterface.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/ZLibInterface.cpp +@@ -19,10 +19,9 @@ + // Use at your own risk! + // ========================================================== + +-#include "../ZLib/zlib.h" ++#include + #include "FreeImage.h" + #include "Utilities.h" +-#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */ + + /** + Compresses a source buffer into a target buffer, using the ZLib library. +@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t + return 0; + case Z_OK: { + // patch header, setup crc and length (stolen from mod_trace_output) +- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code ++ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix) + crc = crc32(crc, source, source_size); + memcpy(target + 4 + dest_len, &crc, 4); + memcpy(target + 8 + dest_len, &source_size, 4); +Index: freeimage-3.18.0+ds2/Source/Metadata/XTIFF.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/Metadata/XTIFF.cpp ++++ freeimage-3.18.0+ds2/Source/Metadata/XTIFF.cpp +@@ -29,7 +29,7 @@ + #pragma warning (disable : 4786) // identifier was truncated to 'number' characters + #endif + +-#include "../LibTIFF4/tiffiop.h" ++#include + + #include "FreeImage.h" + #include "Utilities.h" +@@ -224,6 +224,33 @@ tiff_write_geotiff_profile(TIFF *tif, FI + // TIFF EXIF tag reading & writing + // ---------------------------------------------------------- + ++static uint32 exif_tag_ids[] = { ++ EXIFTAG_EXPOSURETIME, EXIFTAG_FNUMBER, EXIFTAG_EXPOSUREPROGRAM, ++ EXIFTAG_SPECTRALSENSITIVITY, EXIFTAG_ISOSPEEDRATINGS, EXIFTAG_OECF, ++ EXIFTAG_EXIFVERSION, EXIFTAG_DATETIMEORIGINAL, EXIFTAG_DATETIMEDIGITIZED, ++ EXIFTAG_COMPONENTSCONFIGURATION, EXIFTAG_COMPRESSEDBITSPERPIXEL, ++ EXIFTAG_SHUTTERSPEEDVALUE, EXIFTAG_APERTUREVALUE, ++ EXIFTAG_BRIGHTNESSVALUE, EXIFTAG_EXPOSUREBIASVALUE, ++ EXIFTAG_MAXAPERTUREVALUE, EXIFTAG_SUBJECTDISTANCE, EXIFTAG_METERINGMODE, ++ EXIFTAG_LIGHTSOURCE, EXIFTAG_FLASH, EXIFTAG_FOCALLENGTH, ++ EXIFTAG_SUBJECTAREA, EXIFTAG_MAKERNOTE, EXIFTAG_USERCOMMENT, ++ EXIFTAG_SUBSECTIME, EXIFTAG_SUBSECTIMEORIGINAL, ++ EXIFTAG_SUBSECTIMEDIGITIZED, EXIFTAG_FLASHPIXVERSION, EXIFTAG_COLORSPACE, ++ EXIFTAG_PIXELXDIMENSION, EXIFTAG_PIXELYDIMENSION, ++ EXIFTAG_RELATEDSOUNDFILE, EXIFTAG_FLASHENERGY, ++ EXIFTAG_SPATIALFREQUENCYRESPONSE, EXIFTAG_FOCALPLANEXRESOLUTION, ++ EXIFTAG_FOCALPLANEYRESOLUTION, EXIFTAG_FOCALPLANERESOLUTIONUNIT, ++ EXIFTAG_SUBJECTLOCATION, EXIFTAG_EXPOSUREINDEX, EXIFTAG_SENSINGMETHOD, ++ EXIFTAG_FILESOURCE, EXIFTAG_SCENETYPE, EXIFTAG_CFAPATTERN, ++ EXIFTAG_CUSTOMRENDERED, EXIFTAG_EXPOSUREMODE, EXIFTAG_WHITEBALANCE, ++ EXIFTAG_DIGITALZOOMRATIO, EXIFTAG_FOCALLENGTHIN35MMFILM, ++ EXIFTAG_SCENECAPTURETYPE, EXIFTAG_GAINCONTROL, EXIFTAG_CONTRAST, ++ EXIFTAG_SATURATION, EXIFTAG_SHARPNESS, EXIFTAG_DEVICESETTINGDESCRIPTION, ++ EXIFTAG_SUBJECTDISTANCERANGE, EXIFTAG_GAINCONTROL, EXIFTAG_GAINCONTROL, ++ EXIFTAG_IMAGEUNIQUEID ++}; ++static int nExifTags = sizeof(exif_tag_ids) / sizeof(exif_tag_ids[0]); ++ + /** + Read a single Exif tag + +@@ -575,43 +602,10 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M + + // loop over all Core Directory Tags + // ### uses private data, but there is no other way ++ // -> Fedora: Best we can do without private headers is to hard-code a list of known EXIF tags and read those + if(md_model == TagLib::EXIF_MAIN) { +- const TIFFDirectory *td = &tif->tif_dir; +- +- uint32 lastTag = 0; //<- used to prevent reading some tags twice (as stored in tif_fieldinfo) +- +- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) { +- const TIFFField *fld = tif->tif_fields[fi]; +- +- const uint32 tag_id = TIFFFieldTag(fld); +- +- if(tag_id == lastTag) { +- continue; +- } +- +- // test if tag value is set +- // (lifted directly from LibTiff _TIFFWriteDirectory) +- +- if( fld->field_bit == FIELD_CUSTOM ) { +- int is_set = FALSE; +- +- for(int ci = 0; ci < td->td_customValueCount; ci++ ) { +- is_set |= (td->td_customValues[ci].info == fld); +- } +- +- if( !is_set ) { +- continue; +- } +- +- } else if(!TIFFFieldSet(tif, fld->field_bit)) { +- continue; +- } +- +- // process *all* other tags (some will be ignored) +- +- tiff_read_exif_tag(tif, tag_id, dib, md_model); +- +- lastTag = tag_id; ++ for (int i = 0; i < nExifTags; ++i) { ++ tiff_read_exif_tag(tif, exif_tag_ids[i], dib, md_model); + } + + } +@@ -723,10 +717,9 @@ tiff_write_exif_tags(TIFF *tif, TagLib:: + + TagLib& tag_lib = TagLib::instance(); + +- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) { +- const TIFFField *fld = tif->tif_fields[fi]; +- +- const uint32 tag_id = TIFFFieldTag(fld); ++ for (int fi = 0, nfi = nExifTags; nfi > 0; nfi--, fi++) { ++ const uint32 tag_id = exif_tag_ids[fi]; ++ const TIFFField *fld = TIFFFieldWithTag(tif, tag_id); + + if(skip_write_field(tif, tag_id)) { + // skip tags that are already handled by the LibTIFF writing process +@@ -749,7 +742,7 @@ tiff_write_exif_tags(TIFF *tif, TagLib:: + continue; + } + // type of storage may differ (e.g. rationnal array vs float array type) +- if((unsigned)_TIFFDataSize(tif_tag_type) != FreeImage_TagDataWidth(tag_type)) { ++ if((unsigned)TIFFFieldSetGetSize(fld) != FreeImage_TagDataWidth(tag_type)) { + // skip tag or _TIFFmemcpy will fail + continue; + } +Index: freeimage-3.18.0+ds2/Source/FreeImage/PluginTIFF.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginTIFF.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginTIFF.cpp +@@ -37,9 +37,9 @@ + + #include "FreeImage.h" + #include "Utilities.h" +-#include "../LibTIFF4/tiffiop.h" ++#include + #include "../Metadata/FreeImageTag.h" +-#include "../OpenEXR/Half/half.h" ++#include "Imath/half.h" + + #include "FreeImageIO.h" + #include "PSDParser.h" +Index: freeimage-3.18.0+ds2/Source/FreeImage/PluginWebP.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginWebP.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginWebP.cpp +@@ -24,9 +24,9 @@ + + #include "../Metadata/FreeImageTag.h" + +-#include "../LibWebP/src/webp/decode.h" +-#include "../LibWebP/src/webp/encode.h" +-#include "../LibWebP/src/webp/mux.h" ++#include "webp/decode.h" ++#include "webp/encode.h" ++#include "webp/mux.h" + + // ========================================================== + // Plugin Interface +Index: freeimage-3.18.0+ds2/gensrclist.sh +=================================================================== +--- freeimage-3.18.0+ds2.orig/gensrclist.sh ++++ freeimage-3.18.0+ds2/gensrclist.sh +@@ -6,16 +6,11 @@ echo "VER_MAJOR = 3" > Makefile.srcs + echo "VER_MINOR = 18.0" >> Makefile.srcs + + echo -n "SRCS = " >> Makefile.srcs +-for DIR in $DIRLIST; do +- VCPRJS=`echo $DIR/*.2013.vcxproj` +- if [ "$VCPRJS" != "$DIR/*.2013.vcxproj" ]; then +- egrep 'ClCompile Include=.*\.(c|cpp)' $DIR/*.2013.vcxproj | cut -d'"' -f2 | tr '\\' '/' | awk '{print "'$DIR'/"$0}' | tr '\r\n' ' ' | tr -s ' ' >> Makefile.srcs +- fi +-done ++find Source -name '*.c' -or -name '*.cpp' -not -name 'JPEGTransform.cpp' | LC_ALL=C sort | xargs echo -n >> Makefile.srcs + echo >> Makefile.srcs + + echo -n "INCLS = " >> Makefile.srcs +-find . -name "*.h" -print | xargs echo >> Makefile.srcs ++find Source -name '*.h' | LC_ALL=C sort | xargs echo -n >> Makefile.srcs + echo >> Makefile.srcs + + echo -n "INCLUDE =" >> Makefile.srcs +Index: freeimage-3.18.0+ds2/genfipsrclist.sh +=================================================================== +--- freeimage-3.18.0+ds2.orig/genfipsrclist.sh ++++ freeimage-3.18.0+ds2/genfipsrclist.sh +@@ -7,12 +7,7 @@ echo "VER_MAJOR = 3" > fipMakefile.srcs + echo "VER_MINOR = 18.0" >> fipMakefile.srcs + + echo -n "SRCS = " >> fipMakefile.srcs +-for DIR in $DIRLIST; do +- VCPRJS=`echo $DIR/*.2013.vcxproj` +- if [ "$VCPRJS" != "$DIR/*.2013.vcxproj" ]; then +- egrep 'ClCompile Include=.*\.(c|cpp)' $DIR/*.2013.vcxproj | cut -d'"' -f2 | tr '\\' '/' | awk '{print "'$DIR'/"$0}' | tr '\r\n' ' ' | tr -s ' ' >> fipMakefile.srcs +- fi +-done ++find Wrapper/FreeImagePlus/src -name '*.cpp' -print | LC_ALL=C sort | xargs echo -n >> fipMakefile.srcs + echo >> fipMakefile.srcs + + echo -n "INCLUDE =" >> fipMakefile.srcs diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Enable-substitution-of-pkg-config.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Enable-substitution-of-pkg-config.patch new file mode 100644 index 0000000000..628545b52d --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Enable-substitution-of-pkg-config.patch @@ -0,0 +1,39 @@ +From: Helmut Grohne +Date: Tue, 13 Dec 2016 15:59:00 +0000 +Subject: Enable substitution of pkg-config + +--- + Makefile.gnu | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +Index: FreeImage/Makefile.gnu +=================================================================== +--- FreeImage.orig/Makefile.gnu ++++ FreeImage/Makefile.gnu +@@ -11,7 +11,10 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib + # Converts cr/lf to just lf + DOS2UNIX = dos2unix + +-LIBRARIES = -lstdc++ -ljxrglue $(shell pkg-config --libs libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) -lm ++# See Bug-Debian #845279 ++PKG_CONFIG ?= pkg-config ++ ++LIBRARIES = -lstdc++ -ljxrglue $(shell $(PKG_CONFIG) --libs libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) -lm + + MODULES = $(SRCS:.c=.o) + MODULES := $(MODULES:.cpp=.o) +@@ -23,12 +26,12 @@ override CFLAGS += -DOPJ_STATIC + override CFLAGS += -DNO_LCMS + # LibJXR + override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ +-override CFLAGS += $(INCLUDE) -I/usr/include/jxrlib $(shell pkg-config --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) ++override CFLAGS += $(INCLUDE) -I/usr/include/jxrlib $(shell $(PKG_CONFIG) --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) + CXXFLAGS ?= -O3 -fPIC + override CXXFLAGS += -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy + # LibJXR + override CXXFLAGS += -D__ANSI__ +-override CXXFLAGS += $(INCLUDE) -I/usr/include/jxrlib $(shell pkg-config --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) ++override CXXFLAGS += $(INCLUDE) -I/usr/include/jxrlib $(shell $(PKG_CONFIG) --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) + + TARGET = freeimage + STATICLIB = lib$(TARGET).a diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-big-endian.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-big-endian.patch new file mode 100644 index 0000000000..a08bbf91e1 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-big-endian.patch @@ -0,0 +1,63 @@ +Description: Fix FTBFS on some big-endian targets +Bug-Debian: https://bugs.debian.org/1002610 +Origin: backport, https://sourceforge.net/p/freeimage/svn/1809/ + +Index: freeimage-3.18.0+ds2/Source/FreeImage/PluginBMP.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginBMP.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginBMP.cpp +@@ -518,7 +518,7 @@ LoadWindowsBMP(FreeImageIO *io, fi_handl + io->read_proc(FreeImage_GetPalette(dib), used_colors * sizeof(RGBQUAD), 1, handle); + #if FREEIMAGE_COLORORDER == FREEIMAGE_COLORORDER_RGB + RGBQUAD *pal = FreeImage_GetPalette(dib); +- for(int i = 0; i < used_colors; i++) { ++ for(unsigned i = 0; i < used_colors; i++) { + INPLACESWAP(pal[i].rgbRed, pal[i].rgbBlue); + } + #endif +@@ -1419,7 +1419,7 @@ Save(FreeImageIO *io, FIBITMAP *dib, fi_ + + free(buffer); + #ifdef FREEIMAGE_BIGENDIAN +- } else if (bpp == 16) { ++ } else if (dst_bpp == 16) { + int padding = dst_pitch - dst_width * sizeof(WORD); + WORD pad = 0; + WORD pixel; +@@ -1440,7 +1440,7 @@ Save(FreeImageIO *io, FIBITMAP *dib, fi_ + } + #endif + #if FREEIMAGE_COLORORDER == FREEIMAGE_COLORORDER_RGB +- } else if (bpp == 24) { ++ } else if (dst_bpp == 24) { + int padding = dst_pitch - dst_width * sizeof(FILE_BGR); + DWORD pad = 0; + FILE_BGR bgr; +@@ -1461,7 +1461,7 @@ Save(FreeImageIO *io, FIBITMAP *dib, fi_ + } + } + } +- } else if (bpp == 32) { ++ } else if (dst_bpp == 32) { + FILE_BGRA bgra; + for(unsigned y = 0; y < dst_height; y++) { + BYTE *line = FreeImage_GetScanLine(dib, y); +Index: freeimage-3.18.0+ds2/Source/FreeImage/PluginDDS.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginDDS.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginDDS.cpp +@@ -356,14 +356,6 @@ SwapHeader(DDSHEADER *header) { + for(int i=0; i<11; i++) { + SwapLong(&header->surfaceDesc.dwReserved1[i]); + } +- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwSize); +- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwFlags); +- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwFourCC); +- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwRGBBitCount); +- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwRBitMask); +- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwGBitMask); +- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwBBitMask); +- SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwRGBAlphaBitMask); + SwapLong(&header->surfaceDesc.ddsCaps.dwCaps1); + SwapLong(&header->surfaceDesc.ddsCaps.dwCaps2); + SwapLong(&header->surfaceDesc.ddsCaps.dwReserved[0]); diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-compatibility-with-system-libpng.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-compatibility-with-system-libpng.patch new file mode 100644 index 0000000000..4add170a35 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-compatibility-with-system-libpng.patch @@ -0,0 +1,99 @@ +From: Ghislain Antony Vaillant +Date: Tue, 3 Nov 2015 15:20:45 +0000 +Subject: Fix compatibility with system libpng. + +[Ghislain Antony Vaillant] +The PNG plugin of FreeImage makes use of optional features of libpng, which +are not enabled in Debian. This commit adds the necessary guards for FreeImage +to compile and run without these features. + +[Tobias Frost] +Fix FTBFS with libpng 1.6. +--- + Source/FreeImage/PluginPNG.cpp | 35 ++++++++++++++++++++++++++++------- + 1 file changed, 28 insertions(+), 7 deletions(-) + +Index: FreeImage/Source/FreeImage/PluginPNG.cpp +=================================================================== +--- FreeImage.orig/Source/FreeImage/PluginPNG.cpp ++++ FreeImage/Source/FreeImage/PluginPNG.cpp +@@ -115,9 +115,11 @@ ReadMetadata(png_structp png_ptr, png_in + // create a tag + tag = FreeImage_CreateTag(); + if(!tag) return FALSE; +- ++#ifdef PNG_iTXt_SUPPORTED + DWORD tag_length = (DWORD) MAX(text_ptr[i].text_length, text_ptr[i].itxt_length); +- ++#else ++ DWORD tag_length = text_ptr[i].text_length; ++#endif + FreeImage_SetTagLength(tag, tag_length); + FreeImage_SetTagCount(tag, tag_length); + FreeImage_SetTagType(tag, FIDT_ASCII); +@@ -185,14 +187,19 @@ WriteMetadata(png_structp png_ptr, png_i + if(mdhandle) { + do { + memset(&text_metadata, 0, sizeof(png_text)); ++#ifdef PNG_iTXt_SUPPORTED + text_metadata.compression = 1; // iTXt, none ++#else ++ text_metadata.compression = -1; ++#endif + text_metadata.key = (char*)FreeImage_GetTagKey(tag); // keyword, 1-79 character description of "text" + text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "") + text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string ++#ifdef PNG_iTXt_SUPPORTED + text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string + text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer + text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer +- ++#endif + // set the tag + png_set_text(png_ptr, info_ptr, &text_metadata, 1); + +@@ -211,10 +218,11 @@ WriteMetadata(png_structp png_ptr, png_i + text_metadata.key = (char*)g_png_xmp_keyword; // keyword, 1-79 character description of "text" + text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "") + text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string ++#ifdef PNG_iTXt_SUPPORTED + text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string + text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer + text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer +- ++#endif + // set the tag + png_set_text(png_ptr, info_ptr, &text_metadata, 1); + bResult &= TRUE; +@@ -707,11 +715,19 @@ Load(FreeImageIO *io, fi_handle handle, + + if (png_get_valid(png_ptr, info_ptr, PNG_INFO_iCCP)) { + png_charp profile_name = NULL; +- png_bytep profile_data = NULL; ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ png_bytepp profile_data = NULL; ++#else ++ png_charp profile_data = NULL; ++#endif + png_uint_32 profile_length = 0; + int compression_type; + ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ png_get_iCCP(png_ptr, info_ptr, &profile_name, &compression_type, profile_data, &profile_length); ++#else + png_get_iCCP(png_ptr, info_ptr, &profile_name, &compression_type, &profile_data, &profile_length); ++#endif + + // copy ICC profile data (must be done after FreeImage_AllocateHeader) + +@@ -746,8 +762,9 @@ Load(FreeImageIO *io, fi_handle handle, + for (png_uint_32 k = 0; k < height; k++) { + row_pointers[height - 1 - k] = FreeImage_GetScanLine(dib, k); + } +- ++#ifdef PNG_BENIGN_ERRORS_SUPPORTED + png_set_benign_errors(png_ptr, 1); ++#endif + png_read_image(png_ptr, row_pointers); + + // check if the bitmap contains transparency, if so enable it in the header diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-encoding-of-fi-header.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-encoding-of-fi-header.patch new file mode 100644 index 0000000000..a3ae2453d9 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-encoding-of-fi-header.patch @@ -0,0 +1,21 @@ +From: Ghislain Antony Vaillant +Date: Sun, 10 Jan 2016 16:03:12 +0000 +Subject: Fix encoding of fi header. + +--- + Source/FreeImage.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: FreeImage/Source/FreeImage.h +=================================================================== +--- FreeImage.orig/Source/FreeImage.h ++++ FreeImage/Source/FreeImage.h +@@ -3,7 +3,7 @@ + // + // Design and implementation by + // - Floris van den Berg (flvdberg@wxs.nl) +-// - Hervé Drolon (drolon@infonie.fr) ++// - Herve Drolon (drolon@infonie.fr) + // + // Contributors: + // - see changes log named 'Whatsnew.txt', see header of each .h and .cpp file diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-libraw-compilation-2.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-libraw-compilation-2.patch new file mode 100644 index 0000000000..7e516527a7 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-libraw-compilation-2.patch @@ -0,0 +1,13 @@ +Index: Source/FreeImage/PluginRAW.cpp +=================================================================== +--- a/Source/FreeImage/PluginRAW.cpp (revision 1894) ++++ b/Source/FreeImage/PluginRAW.cpp (revision 1895) +@@ -701,7 +701,7 @@ + // -------------------------------------------- + + // (-s [0..N-1]) Select one raw image from input file +- RawProcessor->imgdata.params.shot_select = 0; ++ RawProcessor->imgdata.rawparams.shot_select = 0; + // (-w) Use camera white balance, if possible (otherwise, fallback to auto_wb) + RawProcessor->imgdata.params.use_camera_wb = 1; + // (-M) Use any color matrix from the camera metadata. This option only affects Olympus, Leaf, and Phase One cameras. diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-libraw-compilation.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-libraw-compilation.patch new file mode 100644 index 0000000000..f3aaca12e5 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-libraw-compilation.patch @@ -0,0 +1,76 @@ +Description: Fix FTBFS against libraw 0.20.0 +Origin: https://sourceforge.net/p/freeimage/svn/1842/ +Acked-By: Anton Gladky +Bug-Debian: https://bugs.debian.org/968637 +Last-update: 2020-08-27 + +Index: freeimage/Source/FreeImage/PluginRAW.cpp +=================================================================== +--- freeimage.orig/Source/FreeImage/PluginRAW.cpp ++++ freeimage/Source/FreeImage/PluginRAW.cpp +@@ -59,21 +59,18 @@ public: + } + + int valid() { +- return (_io && _handle); ++ return (_io && _handle) ? 1 : 0; + } + + int read(void *buffer, size_t size, size_t count) { +- if(substream) return substream->read(buffer, size, count); + return _io->read_proc(buffer, (unsigned)size, (unsigned)count, _handle); + } + + int seek(INT64 offset, int origin) { +- if(substream) return substream->seek(offset, origin); + return _io->seek_proc(_handle, (long)offset, origin); + } + + INT64 tell() { +- if(substream) return substream->tell(); + return _io->tell_proc(_handle); + } + +@@ -83,19 +80,21 @@ public: + + int get_char() { + int c = 0; +- if(substream) return substream->get_char(); +- if(!_io->read_proc(&c, 1, 1, _handle)) return -1; ++ if (!_io->read_proc(&c, 1, 1, _handle)) { ++ return -1; ++ } + return c; + } + + char* gets(char *buffer, int length) { +- if (substream) return substream->gets(buffer, length); + memset(buffer, 0, length); + for(int i = 0; i < length; i++) { +- if(!_io->read_proc(&buffer[i], 1, 1, _handle)) ++ if (!_io->read_proc(&buffer[i], 1, 1, _handle)) { + return NULL; +- if(buffer[i] == 0x0A) ++ } ++ if (buffer[i] == 0x0A) { + break; ++ } + } + return buffer; + } +@@ -104,7 +103,6 @@ public: + std::string buffer; + char element = 0; + bool bDone = false; +- if(substream) return substream->scanf_one(fmt,val); + do { + if(_io->read_proc(&element, 1, 1, _handle) == 1) { + switch(element) { +@@ -127,7 +125,6 @@ public: + } + + int eof() { +- if(substream) return substream->eof(); + return (_io->tell_proc(_handle) >= _eof); + } + diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-macro-redefinition-for-64-bit-integer-types.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-macro-redefinition-for-64-bit-integer-types.patch new file mode 100644 index 0000000000..f63f3b8c7c --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix-macro-redefinition-for-64-bit-integer-types.patch @@ -0,0 +1,26 @@ +From: Debian QA Group +Date: Fri, 6 Nov 2015 13:51:20 +0000 +Subject: Fix macro redefinition for 64-bit integer types. + +Both FreeImage and LibRAW defines INT64 and UINT64 aliases in their respective +public headers via macros. This commit guards against macro redefinitions for +these types inside the FreeImage.h public header. +--- + Source/FreeImage.h | 2 ++ + 1 file changed, 2 insertions(+) + +Index: FreeImage/Source/FreeImage.h +=================================================================== +--- FreeImage.orig/Source/FreeImage.h ++++ FreeImage/Source/FreeImage.h +@@ -155,8 +155,10 @@ typedef uint8_t BYTE; + typedef uint16_t WORD; + typedef uint32_t DWORD; + typedef int32_t LONG; ++#ifndef _LIBRAW_TYPES_H + typedef int64_t INT64; + typedef uint64_t UINT64; ++#endif + #else + // MS is not C99 ISO compliant + typedef long BOOL; diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix_compilation_external-static.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix_compilation_external-static.patch new file mode 100644 index 0000000000..3c832de46d --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Fix_compilation_external-static.patch @@ -0,0 +1,16 @@ +Description: Fix compilation due to external-static mismatch +Author: Anton Gladky +Bug-Debian: https://bugs.debian.org/964653 +Last-Update: 2020-07-15 + +--- freeimage-3.18.0+ds2.orig/Source/FreeImage/PluginJPEG.cpp ++++ freeimage-3.18.0+ds2/Source/FreeImage/PluginJPEG.cpp +@@ -502,7 +502,7 @@ marker_is_icc(jpeg_saved_marker_ptr mark + NOTE: if the file contains invalid ICC APP2 markers, we just silently + return FALSE. You might want to issue an error message instead. + */ +-static BOOL ++BOOL + jpeg_read_icc_profile(j_decompress_ptr cinfo, JOCTET **icc_data_ptr, unsigned *icc_data_len) { + jpeg_saved_marker_ptr marker; + int num_markers = 0; diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Use-system-dependencies.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Use-system-dependencies.patch new file mode 100644 index 0000000000..952fb3b4da --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Use-system-dependencies.patch @@ -0,0 +1,184 @@ +From: Ghislain Antony Vaillant +Date: Thu, 5 Nov 2015 22:47:13 +0000 +Subject: Use system dependencies. + +This commit patches the build system to use the packaged dependencies +for building FreeImage and FreeImagePlus. This patch also modifies some +targets in the corresponding Makefiles to help with the package build process. +--- + Makefile.fip | 45 +++++++++++++++++---------------------------- + Makefile.gnu | 41 ++++++++++++++++++++--------------------- + 2 files changed, 37 insertions(+), 49 deletions(-) + +diff --git a/Makefile.fip b/Makefile.fip +index b59c419..98733cf 100644 +--- a/Makefile.fip ++++ b/Makefile.fip +@@ -11,27 +11,16 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib + # Converts cr/lf to just lf + DOS2UNIX = dos2unix + +-LIBRARIES = -lstdc++ ++LIBRARIES = -lstdc++ -ljxrglue $(shell pkg-config --libs libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) -lm + + MODULES = $(SRCS:.c=.o) + MODULES := $(MODULES:.cpp=.o) +-CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden +-# OpenJPEG +-CFLAGS += -DOPJ_STATIC +-# LibRaw +-CFLAGS += -DNO_LCMS +-# LibJXR +-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ +-CFLAGS += $(INCLUDE) +-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy +-# LibJXR +-CXXFLAGS += -D__ANSI__ +-CXXFLAGS += $(INCLUDE) +- +-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) +- CFLAGS += -fPIC +- CXXFLAGS += -fPIC +-endif ++CFLAGS ?= -O3 -fPIC ++override CFLAGS += -fexceptions -fvisibility=hidden ++override CFLAGS += $(INCLUDE) -IDist ++CXXFLAGS ?= -O3 -fPIC ++override CXXFLAGS += -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy ++override CXXFLAGS += $(INCLUDE) -IDist + + TARGET = freeimageplus + STATICLIB = lib$(TARGET).a +@@ -48,31 +37,31 @@ all: dist + + dist: FreeImage + mkdir -p Dist +- cp *.a Dist/ +- cp *.so Dist/ +- cp Source/FreeImage.h Dist/ +- cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist/ ++ cp $(STATICLIB) Dist/ ++ cp $(SHAREDLIB) Dist/ ++ cp $(HEADERFIP) Dist/ ++ ln -sf $(SHAREDLIB) Dist/$(VERLIBNAME) ++ ln -sf $(VERLIBNAME) Dist/$(LIBNAME) + + dos2unix: +- @$(DOS2UNIX) $(SRCS) ++ @$(DOS2UNIX) $(SRCS) $(HEADERFIP) + + FreeImage: $(STATICLIB) $(SHAREDLIB) + + .c.o: +- $(CC) $(CFLAGS) -c $< -o $@ ++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + + .cpp.o: +- $(CXX) $(CXXFLAGS) -c $< -o $@ ++ $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ + + $(STATICLIB): $(MODULES) + $(AR) r $@ $(MODULES) + + $(SHAREDLIB): $(MODULES) +- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) ++ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) + + install: + install -d $(INCDIR) $(INSTALLDIR) +- install -m 644 -o root -g root $(HEADER) $(INCDIR) + install -m 644 -o root -g root $(HEADERFIP) $(INCDIR) + install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) + install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) +@@ -80,5 +69,5 @@ install: + ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) + + clean: +- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME) ++ rm -f Dist/lib$(TARGET)* Dist/FreeImagePlus.h $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME) + +diff --git a/Makefile.gnu b/Makefile.gnu +index 92f6358..4e61efa 100644 +--- a/Makefile.gnu ++++ b/Makefile.gnu +@@ -11,27 +11,24 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib + # Converts cr/lf to just lf + DOS2UNIX = dos2unix + +-LIBRARIES = -lstdc++ ++LIBRARIES = -lstdc++ -ljxrglue $(shell pkg-config --libs libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) -lm + + MODULES = $(SRCS:.c=.o) + MODULES := $(MODULES:.cpp=.o) +-CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden ++CFLAGS ?= -O3 -fPIC ++override CFLAGS += -fexceptions -fvisibility=hidden + # OpenJPEG +-CFLAGS += -DOPJ_STATIC ++override CFLAGS += -DOPJ_STATIC + # LibRaw +-CFLAGS += -DNO_LCMS ++override CFLAGS += -DNO_LCMS + # LibJXR +-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ +-CFLAGS += $(INCLUDE) +-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy ++override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ ++override CFLAGS += $(INCLUDE) -I/usr/include/jxrlib $(shell pkg-config --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) ++CXXFLAGS ?= -O3 -fPIC ++override CXXFLAGS += -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy + # LibJXR +-CXXFLAGS += -D__ANSI__ +-CXXFLAGS += $(INCLUDE) +- +-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) +- CFLAGS += -fPIC +- CXXFLAGS += -fPIC +-endif ++override CXXFLAGS += -D__ANSI__ ++override CXXFLAGS += $(INCLUDE) -I/usr/include/jxrlib $(shell pkg-config --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) + + TARGET = freeimage + STATICLIB = lib$(TARGET).a +@@ -48,9 +45,11 @@ all: dist + + dist: FreeImage + mkdir -p Dist +- cp *.a Dist/ +- cp *.so Dist/ +- cp Source/FreeImage.h Dist/ ++ cp $(STATICLIB) Dist/ ++ cp $(SHAREDLIB) Dist/ ++ cp $(HEADER) Dist/ ++ ln -sf $(SHAREDLIB) Dist/$(VERLIBNAME) ++ ln -sf $(VERLIBNAME) Dist/$(LIBNAME) + + dos2unix: + @$(DOS2UNIX) $(SRCS) $(INCLS) +@@ -58,16 +57,16 @@ dos2unix: + FreeImage: $(STATICLIB) $(SHAREDLIB) + + .c.o: +- $(CC) $(CFLAGS) -c $< -o $@ ++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + + .cpp.o: +- $(CXX) $(CXXFLAGS) -c $< -o $@ ++ $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ + + $(STATICLIB): $(MODULES) + $(AR) r $@ $(MODULES) + + $(SHAREDLIB): $(MODULES) +- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) ++ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES) + + install: + install -d $(INCDIR) $(INSTALLDIR) +@@ -79,5 +78,5 @@ install: + # ldconfig + + clean: +- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME) ++ rm -f Dist/lib$(TARGET)* Dist/FreeImage.h $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME) + diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/Use-system-jpeg_read_icc_profile.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/Use-system-jpeg_read_icc_profile.patch new file mode 100644 index 0000000000..62edae8e7f --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/Use-system-jpeg_read_icc_profile.patch @@ -0,0 +1,128 @@ +Description: Use jpeg_read_icc_profile() from libjpeg + Current version of libjpeg8-turbo provides jpeg_read_icc_profile(), which + means our static definition now conflicts with the system headers. Drop + the local implementation in favor of the (compatible) libjpeg one. +Author: Steve Langasek +Last-Modified: 2018-11-14 + +Index: freeimage-3.17.0+ds1/Source/FreeImage/PluginJPEG.cpp +=================================================================== +--- freeimage-3.17.0+ds1.orig/Source/FreeImage/PluginJPEG.cpp ++++ freeimage-3.17.0+ds1/Source/FreeImage/PluginJPEG.cpp +@@ -485,116 +485,6 @@ + } + + /** +- See if there was an ICC profile in the JPEG file being read; +- if so, reassemble and return the profile data. +- +- TRUE is returned if an ICC profile was found, FALSE if not. +- If TRUE is returned, *icc_data_ptr is set to point to the +- returned data, and *icc_data_len is set to its length. +- +- IMPORTANT: the data at **icc_data_ptr has been allocated with malloc() +- and must be freed by the caller with free() when the caller no longer +- needs it. (Alternatively, we could write this routine to use the +- IJG library's memory allocator, so that the data would be freed implicitly +- at jpeg_finish_decompress() time. But it seems likely that many apps +- will prefer to have the data stick around after decompression finishes.) +- +- NOTE: if the file contains invalid ICC APP2 markers, we just silently +- return FALSE. You might want to issue an error message instead. +-*/ +-BOOL +-jpeg_read_icc_profile(j_decompress_ptr cinfo, JOCTET **icc_data_ptr, unsigned *icc_data_len) { +- jpeg_saved_marker_ptr marker; +- int num_markers = 0; +- int seq_no; +- JOCTET *icc_data; +- unsigned total_length; +- +- const int MAX_SEQ_NO = 255; // sufficient since marker numbers are bytes +- BYTE marker_present[MAX_SEQ_NO+1]; // 1 if marker found +- unsigned data_length[MAX_SEQ_NO+1]; // size of profile data in marker +- unsigned data_offset[MAX_SEQ_NO+1]; // offset for data in marker +- +- *icc_data_ptr = NULL; // avoid confusion if FALSE return +- *icc_data_len = 0; +- +- /** +- this first pass over the saved markers discovers whether there are +- any ICC markers and verifies the consistency of the marker numbering. +- */ +- +- memset(marker_present, 0, (MAX_SEQ_NO + 1)); +- +- for(marker = cinfo->marker_list; marker != NULL; marker = marker->next) { +- if (marker_is_icc(marker)) { +- if (num_markers == 0) { +- // number of markers +- num_markers = GETJOCTET(marker->data[13]); +- } +- else if (num_markers != GETJOCTET(marker->data[13])) { +- return FALSE; // inconsistent num_markers fields +- } +- // sequence number +- seq_no = GETJOCTET(marker->data[12]); +- if (seq_no <= 0 || seq_no > num_markers) { +- return FALSE; // bogus sequence number +- } +- if (marker_present[seq_no]) { +- return FALSE; // duplicate sequence numbers +- } +- marker_present[seq_no] = 1; +- data_length[seq_no] = marker->data_length - ICC_HEADER_SIZE; +- } +- } +- +- if (num_markers == 0) +- return FALSE; +- +- /** +- check for missing markers, count total space needed, +- compute offset of each marker's part of the data. +- */ +- +- total_length = 0; +- for(seq_no = 1; seq_no <= num_markers; seq_no++) { +- if (marker_present[seq_no] == 0) { +- return FALSE; // missing sequence number +- } +- data_offset[seq_no] = total_length; +- total_length += data_length[seq_no]; +- } +- +- if (total_length <= 0) +- return FALSE; // found only empty markers ? +- +- // allocate space for assembled data +- icc_data = (JOCTET *) malloc(total_length * sizeof(JOCTET)); +- if (icc_data == NULL) +- return FALSE; // out of memory +- +- // and fill it in +- for (marker = cinfo->marker_list; marker != NULL; marker = marker->next) { +- if (marker_is_icc(marker)) { +- JOCTET FAR *src_ptr; +- JOCTET *dst_ptr; +- unsigned length; +- seq_no = GETJOCTET(marker->data[12]); +- dst_ptr = icc_data + data_offset[seq_no]; +- src_ptr = marker->data + ICC_HEADER_SIZE; +- length = data_length[seq_no]; +- while (length--) { +- *dst_ptr++ = *src_ptr++; +- } +- } +- } +- +- *icc_data_ptr = icc_data; +- *icc_data_len = total_length; +- +- return TRUE; +-} +- +-/** + Read JPEG_APPD marker (IPTC or Adobe Photoshop profile) + */ + static BOOL diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/fix-freeimage-with-libraw-0.21.1.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/fix-freeimage-with-libraw-0.21.1.patch new file mode 100644 index 0000000000..6d5f834970 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/fix-freeimage-with-libraw-0.21.1.patch @@ -0,0 +1,20 @@ +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1040259 +Signed-off-by: Rob Woolley + +Description: Fix FTBFS on some big-endian targets +Bug-Debian: https://bugs.debian.org/1002610 +Origin: backport, https://sourceforge.net/p/freeimage/svn/1809/ + +Index: git/Source/FreeImage/PluginRAW.cpp +=================================================================== +--- git.orig/Source/FreeImage/PluginRAW.cpp ++++ git/Source/FreeImage/PluginRAW.cpp +@@ -691,7 +691,7 @@ Load(FreeImageIO *io, fi_handle handle, + // -------------------------------------------- + + // (-s [0..N-1]) Select one raw image from input file +- RawProcessor->imgdata.params.shot_select = 0; ++ RawProcessor->imgdata.rawparams.shot_select = 0; + // (-w) Use camera white balance, if possible (otherwise, fallback to auto_wb) + RawProcessor->imgdata.params.use_camera_wb = 1; + // (-M) Use any color matrix from the camera metadata. This option only affects Olympus, Leaf, and Phase One cameras. diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/fix-include-dirs.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/fix-include-dirs.patch new file mode 100644 index 0000000000..d3193ca564 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/fix-include-dirs.patch @@ -0,0 +1,19 @@ +Index: git/Makefile.gnu +=================================================================== +--- git.orig/Makefile.gnu ++++ git/Makefile.gnu +@@ -26,12 +26,12 @@ override CFLAGS += -DOPJ_STATIC + override CFLAGS += -DNO_LCMS + # LibJXR + override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__ +-override CFLAGS += $(INCLUDE) -I/usr/include/jxrlib $(shell $(PKG_CONFIG) --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) ++override CFLAGS += $(INCLUDE) $(shell $(PKG_CONFIG) --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib libjxr) + CXXFLAGS ?= -O3 -fPIC + override CXXFLAGS += -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy + # LibJXR + override CXXFLAGS += -D__ANSI__ +-override CXXFLAGS += $(INCLUDE) -I/usr/include/jxrlib $(shell $(PKG_CONFIG) --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) ++override CXXFLAGS += $(INCLUDE) $(shell $(PKG_CONFIG) --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib libjxr) + + TARGET = freeimage + STATICLIB = lib$(TARGET).a diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/r1830-minor-refactoring.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/r1830-minor-refactoring.patch new file mode 100644 index 0000000000..a4da6a1245 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/r1830-minor-refactoring.patch @@ -0,0 +1,15 @@ +Index: Source/Utilities.h +=================================================================== +diff --git a/Source/Utilities.h b/Source/Utilities.h +--- a/Source/Utilities.h (revision 1829) ++++ b/Source/Utilities.h (revision 1830) +@@ -529,7 +529,8 @@ + static const char *FI_MSG_ERROR_DIB_MEMORY = "DIB allocation failed, maybe caused by an invalid image size or by a lack of memory"; + static const char *FI_MSG_ERROR_PARSING = "Parsing error"; + static const char *FI_MSG_ERROR_MAGIC_NUMBER = "Invalid magic number"; +-static const char *FI_MSG_ERROR_UNSUPPORTED_FORMAT = "Unsupported format"; ++static const char *FI_MSG_ERROR_UNSUPPORTED_FORMAT = "Unsupported image format"; ++static const char *FI_MSG_ERROR_INVALID_FORMAT = "Invalid file format"; + static const char *FI_MSG_ERROR_UNSUPPORTED_COMPRESSION = "Unsupported compression type"; + static const char *FI_MSG_WARNING_INVALID_THUMBNAIL = "Warning: attached thumbnail cannot be written to output file (invalid format) - Thumbnail saving aborted"; + diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/r1832-improved-BMP-plugin-when-working-with-malicious-images.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/r1832-improved-BMP-plugin-when-working-with-malicious-images.patch new file mode 100644 index 0000000000..e69c0a2d8b --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/r1832-improved-BMP-plugin-when-working-with-malicious-images.patch @@ -0,0 +1,455 @@ +Origin: upstream, r1832 +Index: Source/FreeImage/PluginBMP.cpp +--- +diff --git a/Source/FreeImage/PluginBMP.cpp b/Source/FreeImage/PluginBMP.cpp +--- a/Source/FreeImage/PluginBMP.cpp (revision 1831) ++++ b/Source/FreeImage/PluginBMP.cpp (revision 1832) +@@ -181,6 +181,7 @@ + } + } + #endif ++ + #if FREEIMAGE_COLORORDER == FREEIMAGE_COLORORDER_RGB + if (bit_count == 24 || bit_count == 32) { + for(unsigned y = 0; y < FreeImage_GetHeight(dib); y++) { +@@ -202,7 +203,7 @@ + @param handle FreeImage IO handle + @param width Image width + @param height Image height +-@param dib Image to be loaded ++@param dib 4-bit image to be loaded + @return Returns TRUE if successful, returns FALSE otherwise + */ + static BOOL +@@ -217,7 +218,9 @@ + height = abs(height); + + pixels = (BYTE*)malloc(width * height * sizeof(BYTE)); +- if(!pixels) throw(1); ++ if (!pixels) { ++ throw(1); ++ } + memset(pixels, 0, width * height * sizeof(BYTE)); + + BYTE *q = pixels; +@@ -237,7 +240,7 @@ + throw(1); + } + for (int i = 0; i < status_byte; i++) { +- *q++=(BYTE)((i & 0x01) ? (second_byte & 0x0f) : ((second_byte >> 4) & 0x0f)); ++ *q++ = (BYTE)((i & 0x01) ? (second_byte & 0x0f) : ((second_byte >> 4) & 0x0f)); + } + bits += status_byte; + } +@@ -252,7 +255,7 @@ + // End of line + bits = 0; + scanline++; +- q = pixels + scanline*width; ++ q = pixels + scanline * width; + } + break; + +@@ -264,7 +267,6 @@ + case RLE_DELTA: + { + // read the delta values +- + BYTE delta_x = 0; + BYTE delta_y = 0; + +@@ -276,7 +278,6 @@ + } + + // apply them +- + bits += delta_x; + scanline += delta_y; + q = pixels + scanline*width+bits; +@@ -293,7 +294,7 @@ + throw(1); + } + } +- *q++=(BYTE)((i & 0x01) ? (second_byte & 0x0f) : ((second_byte >> 4) & 0x0f)); ++ *q++ = (BYTE)((i & 0x01) ? (second_byte & 0x0f) : ((second_byte >> 4) & 0x0f)); + } + bits += status_byte; + // Read pad byte +@@ -334,7 +335,9 @@ + return TRUE; + + } catch(int) { +- if(pixels) free(pixels); ++ if (pixels) { ++ free(pixels); ++ } + return FALSE; + } + } +@@ -345,7 +348,7 @@ + @param handle FreeImage IO handle + @param width Image width + @param height Image height +-@param dib Image to be loaded ++@param dib 8-bit image to be loaded + @return Returns TRUE if successful, returns FALSE otherwise + */ + static BOOL +@@ -354,103 +357,85 @@ + BYTE second_byte = 0; + int scanline = 0; + int bits = 0; ++ int count = 0; ++ BYTE delta_x = 0; ++ BYTE delta_y = 0; + +- for (;;) { +- if( io->read_proc(&status_byte, sizeof(BYTE), 1, handle) != 1) { ++ height = abs(height); ++ ++ while(scanline < height) { ++ ++ if (io->read_proc(&status_byte, sizeof(BYTE), 1, handle) != 1) { + return FALSE; + } + +- switch (status_byte) { +- case RLE_COMMAND : +- if(io->read_proc(&status_byte, sizeof(BYTE), 1, handle) != 1) { +- return FALSE; +- } ++ if (status_byte == RLE_COMMAND) { ++ if (io->read_proc(&status_byte, sizeof(BYTE), 1, handle) != 1) { ++ return FALSE; ++ } + +- switch (status_byte) { +- case RLE_ENDOFLINE : +- bits = 0; +- scanline++; +- break; ++ switch (status_byte) { ++ case RLE_ENDOFLINE: ++ bits = 0; ++ scanline++; ++ break; + +- case RLE_ENDOFBITMAP : +- return TRUE; ++ case RLE_ENDOFBITMAP: ++ return TRUE; + +- case RLE_DELTA : +- { +- // read the delta values ++ case RLE_DELTA: ++ // read the delta values ++ delta_x = 0; ++ delta_y = 0; ++ if (io->read_proc(&delta_x, sizeof(BYTE), 1, handle) != 1) { ++ return FALSE; ++ } ++ if (io->read_proc(&delta_y, sizeof(BYTE), 1, handle) != 1) { ++ return FALSE; ++ } ++ // apply them ++ bits += delta_x; ++ scanline += delta_y; ++ break; + +- BYTE delta_x = 0; +- BYTE delta_y = 0; +- +- if(io->read_proc(&delta_x, sizeof(BYTE), 1, handle) != 1) { +- return FALSE; +- } +- if(io->read_proc(&delta_y, sizeof(BYTE), 1, handle) != 1) { +- return FALSE; +- } +- +- // apply them +- +- bits += delta_x; +- scanline += delta_y; +- +- break; ++ default: ++ // absolute mode ++ count = MIN((int)status_byte, width - bits); ++ if (count < 0) { ++ return FALSE; + } +- +- default : +- { +- if(scanline >= abs(height)) { +- return TRUE; +- } +- +- int count = MIN((int)status_byte, width - bits); +- +- BYTE *sline = FreeImage_GetScanLine(dib, scanline); +- +- if(io->read_proc((void *)(sline + bits), sizeof(BYTE) * count, 1, handle) != 1) { ++ BYTE *sline = FreeImage_GetScanLine(dib, scanline); ++ if (io->read_proc((void *)(sline + bits), sizeof(BYTE) * count, 1, handle) != 1) { ++ return FALSE; ++ } ++ // align run length to even number of bytes ++ if ((status_byte & 1) == 1) { ++ if (io->read_proc(&second_byte, sizeof(BYTE), 1, handle) != 1) { + return FALSE; + } +- +- // align run length to even number of bytes +- +- if ((status_byte & 1) == 1) { +- if(io->read_proc(&second_byte, sizeof(BYTE), 1, handle) != 1) { +- return FALSE; +- } +- } +- +- bits += status_byte; +- +- break; + } +- } ++ bits += status_byte; ++ break; + +- break; +- +- default : +- { +- if(scanline >= abs(height)) { +- return TRUE; +- } +- +- int count = MIN((int)status_byte, width - bits); +- +- BYTE *sline = FreeImage_GetScanLine(dib, scanline); +- +- if(io->read_proc(&second_byte, sizeof(BYTE), 1, handle) != 1) { +- return FALSE; +- } +- +- for (int i = 0; i < count; i++) { +- *(sline + bits) = second_byte; +- +- bits++; +- } +- +- break; ++ } // switch (status_byte) ++ } ++ else { ++ count = MIN((int)status_byte, width - bits); ++ if (count < 0) { ++ return FALSE; + } ++ BYTE *sline = FreeImage_GetScanLine(dib, scanline); ++ if (io->read_proc(&second_byte, sizeof(BYTE), 1, handle) != 1) { ++ return FALSE; ++ } ++ for (int i = 0; i < count; i++) { ++ *(sline + bits) = second_byte; ++ bits++; ++ } + } + } ++ ++ return FALSE; + } + + // -------------------------------------------------------------------------- +@@ -463,10 +448,12 @@ + BOOL header_only = (flags & FIF_LOAD_NOPIXELS) == FIF_LOAD_NOPIXELS; + + // load the info header +- + BITMAPINFOHEADER bih; ++ memset(&bih, 0, sizeof(BITMAPINFOHEADER)); ++ if (io->read_proc(&bih, sizeof(BITMAPINFOHEADER), 1, handle) != 1) { ++ throw FI_MSG_ERROR_INVALID_FORMAT; ++ } + +- io->read_proc(&bih, sizeof(BITMAPINFOHEADER), 1, handle); + #ifdef FREEIMAGE_BIGENDIAN + SwapInfoHeader(&bih); + #endif +@@ -514,8 +501,8 @@ + } + + // load the palette ++ io->read_proc(FreeImage_GetPalette(dib), used_colors * sizeof(RGBQUAD), 1, handle); + +- io->read_proc(FreeImage_GetPalette(dib), used_colors * sizeof(RGBQUAD), 1, handle); + #if FREEIMAGE_COLORORDER == FREEIMAGE_COLORORDER_RGB + RGBQUAD *pal = FreeImage_GetPalette(dib); + for(unsigned i = 0; i < used_colors; i++) { +@@ -544,7 +531,7 @@ + break; + + case BI_RLE4 : +- if( LoadPixelDataRLE4(io, handle, width, height, dib) ) { ++ if( (bit_count == 4) && LoadPixelDataRLE4(io, handle, width, height, dib) ) { + return dib; + } else { + throw "Error encountered while decoding RLE4 BMP data"; +@@ -552,7 +539,7 @@ + break; + + case BI_RLE8 : +- if( LoadPixelDataRLE8(io, handle, width, height, dib) ) { ++ if( (bit_count == 8) && LoadPixelDataRLE8(io, handle, width, height, dib) ) { + return dib; + } else { + throw "Error encountered while decoding RLE8 BMP data"; +@@ -602,7 +589,7 @@ + + return dib; + } +- break; // 16-bit ++ break; // 16-bit RGB + + case 24 : + case 32 : +@@ -679,10 +666,12 @@ + BOOL header_only = (flags & FIF_LOAD_NOPIXELS) == FIF_LOAD_NOPIXELS; + + // load the info header +- + BITMAPINFOHEADER bih; ++ memset(&bih, 0, sizeof(BITMAPINFOHEADER)); ++ if (io->read_proc(&bih, sizeof(BITMAPINFOHEADER), 1, handle) != 1) { ++ throw FI_MSG_ERROR_INVALID_FORMAT; ++ } + +- io->read_proc(&bih, sizeof(BITMAPINFOHEADER), 1, handle); + #ifdef FREEIMAGE_BIGENDIAN + SwapInfoHeader(&bih); + #endif +@@ -767,17 +756,19 @@ + return dib; + + case BI_RLE4 : +- if( LoadPixelDataRLE4(io, handle, width, height, dib) ) { ++ if ((bit_count == 4) && LoadPixelDataRLE4(io, handle, width, height, dib)) { + return dib; +- } else { ++ } ++ else { + throw "Error encountered while decoding RLE4 BMP data"; + } + break; + + case BI_RLE8 : +- if( LoadPixelDataRLE8(io, handle, width, height, dib) ) { ++ if ((bit_count == 8) && LoadPixelDataRLE8(io, handle, width, height, dib)) { + return dib; +- } else { ++ } ++ else { + throw "Error encountered while decoding RLE8 BMP data"; + } + break; +@@ -863,9 +854,9 @@ + } + } + } catch(const char *message) { +- if(dib) ++ if (dib) { + FreeImage_Unload(dib); +- ++ } + FreeImage_OutputMessageProc(s_format_id, message); + } + +@@ -881,9 +872,13 @@ + try { + BOOL header_only = (flags & FIF_LOAD_NOPIXELS) == FIF_LOAD_NOPIXELS; + ++ // load the info header + BITMAPINFOOS2_1X_HEADER bios2_1x; ++ memset(&bios2_1x, 0, sizeof(BITMAPINFOOS2_1X_HEADER)); ++ if (io->read_proc(&bios2_1x, sizeof(BITMAPINFOOS2_1X_HEADER), 1, handle) != 1) { ++ throw FI_MSG_ERROR_INVALID_FORMAT; ++ } + +- io->read_proc(&bios2_1x, sizeof(BITMAPINFOOS2_1X_HEADER), 1, handle); + #ifdef FREEIMAGE_BIGENDIAN + SwapOS21XHeader(&bios2_1x); + #endif +@@ -1005,9 +1000,9 @@ + } + } + } catch(const char *message) { +- if(dib) ++ if (dib) { + FreeImage_Unload(dib); +- ++ } + FreeImage_OutputMessageProc(s_format_id, message); + } + +@@ -1090,19 +1085,20 @@ + BITMAPFILEHEADER bitmapfileheader; + DWORD type = 0; + +- // we use this offset value to make seemingly absolute seeks relative in the file +- ++ // we use this offset value to make seemingly absolute seeks relative in the file + long offset_in_file = io->tell_proc(handle); + + // read the fileheader ++ memset(&bitmapfileheader, 0, sizeof(BITMAPFILEHEADER)); ++ if (io->read_proc(&bitmapfileheader, sizeof(BITMAPFILEHEADER), 1, handle) != 1) { ++ return NULL; ++ } + +- io->read_proc(&bitmapfileheader, sizeof(BITMAPFILEHEADER), 1, handle); + #ifdef FREEIMAGE_BIGENDIAN + SwapFileHeader(&bitmapfileheader); + #endif + + // check the signature +- + if((bitmapfileheader.bfType != 0x4D42) && (bitmapfileheader.bfType != 0x4142)) { + FreeImage_OutputMessageProc(s_format_id, FI_MSG_ERROR_MAGIC_NUMBER); + return NULL; +@@ -1109,9 +1105,9 @@ + } + + // read the first byte of the infoheader +- + io->read_proc(&type, sizeof(DWORD), 1, handle); + io->seek_proc(handle, 0 - (long)sizeof(DWORD), SEEK_CUR); ++ + #ifdef FREEIMAGE_BIGENDIAN + SwapLong(&type); + #endif +@@ -1138,7 +1134,7 @@ + break; + } + +- FreeImage_OutputMessageProc(s_format_id, "unknown bmp subtype with id %d", type); ++ FreeImage_OutputMessageProc(s_format_id, "Unknown bmp subtype with id %d", type); + } + + return NULL; +@@ -1418,6 +1414,7 @@ + } + + free(buffer); ++ + #ifdef FREEIMAGE_BIGENDIAN + } else if (dst_bpp == 16) { + int padding = dst_pitch - dst_width * sizeof(WORD); +@@ -1439,6 +1436,7 @@ + } + } + #endif ++ + #if FREEIMAGE_COLORORDER == FREEIMAGE_COLORORDER_RGB + } else if (dst_bpp == 24) { + int padding = dst_pitch - dst_width * sizeof(FILE_BGR); diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/r1836-improved-BMP-plugin-when-working-with-malicious-images.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/r1836-improved-BMP-plugin-when-working-with-malicious-images.patch new file mode 100644 index 0000000000..27b5a45c33 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/r1836-improved-BMP-plugin-when-working-with-malicious-images.patch @@ -0,0 +1,159 @@ +Origin: upstream, r1836 +Index: Source/FreeImage/PluginBMP.cpp +--- +diff --git a/Source/FreeImage/PluginBMP.cpp b/Source/FreeImage/PluginBMP.cpp +--- a/Source/FreeImage/PluginBMP.cpp (revision 1835) ++++ b/Source/FreeImage/PluginBMP.cpp (revision 1836) +@@ -139,6 +139,75 @@ + // -------------------------------------------------------------------------- + + /** ++Check if a BITMAPINFOHEADER is valid ++@return Returns TRUE if successful, returns FALSE otherwise ++*/ ++static BOOL ++CheckBitmapInfoHeader(BITMAPINFOHEADER *bih) { ++ if (bih->biSize != sizeof(BITMAPINFOHEADER)) { ++ // The size, in bytes, of the image.This may be set to zero for BI_RGB bitmaps. ++ // If biCompression is BI_JPEG or BI_PNG, biSizeImage indicates the size of the JPEG or PNG image buffer, respectively. ++ if ((bih->biSize == 0) && (bih->biCompression != BI_RGB)) { ++ return FALSE; ++ } ++ else if ((bih->biCompression == BI_JPEG) || (bih->biCompression == BI_PNG)) { ++ // JPEG or PNG is not yet supported ++ return FALSE; ++ } ++ else { ++ return FALSE; ++ } ++ } ++ if (bih->biWidth < 0) { ++ return FALSE; ++ } ++ if (bih->biHeight < 0) { ++ // If biHeight is negative, indicating a top-down DIB, biCompression must be either BI_RGB or BI_BITFIELDS. ++ // Top-down DIBs cannot be compressed. ++ // If biCompression is BI_JPEG or BI_PNG, the biHeight member specifies the height of the decompressed JPEG or PNG image file, respectively. ++ if ((bih->biCompression != BI_RGB) && (bih->biCompression != BI_BITFIELDS)) { ++ return FALSE; ++ } ++ } ++ if (bih->biPlanes != 1) { ++ // The number of planes for the target device. This value must be set to 1. ++ return FALSE; ++ } ++ switch (bih->biBitCount) { ++ case 0: ++ // The number of bits-per-pixel is specified or is implied by the JPEG or PNG format. ++ // JPEG or PNG is not yet supported ++ return FALSE; ++ break; ++ case 1: ++ case 4: ++ case 8: ++ case 16: ++ case 24: ++ case 32: ++ break; ++ default: ++ // Unsupported bitdepth ++ return FALSE; ++ } ++ switch (bih->biCompression) { ++ case BI_RGB: ++ case BI_RLE8: ++ case BI_RLE4: ++ case BI_BITFIELDS: ++ break; ++ case BI_JPEG: ++ case BI_PNG: ++ default: ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++// -------------------------------------------------------------------------- ++ ++/** + Load uncompressed image pixels for 1-, 4-, 8-, 16-, 24- and 32-bit dib + @param io FreeImage IO + @param handle FreeImage IO handle +@@ -458,6 +527,10 @@ + SwapInfoHeader(&bih); + #endif + ++ if (CheckBitmapInfoHeader(&bih) == FALSE) { ++ throw FI_MSG_ERROR_INVALID_FORMAT; ++ } ++ + // keep some general information about the bitmap + + unsigned used_colors = bih.biClrUsed; +@@ -555,10 +628,18 @@ + case 16 : + { + int use_bitfields = 0; +- if (bih.biCompression == BI_BITFIELDS) use_bitfields = 3; +- else if (bih.biCompression == BI_ALPHABITFIELDS) use_bitfields = 4; +- else if (type == 52) use_bitfields = 3; +- else if (type >= 56) use_bitfields = 4; ++ if (bih.biCompression == BI_BITFIELDS) { ++ use_bitfields = 3; ++ } ++ else if (bih.biCompression == BI_ALPHABITFIELDS) { ++ use_bitfields = 4; ++ } ++ else if (type == 52) { ++ use_bitfields = 3; ++ } ++ else if (type >= 56) { ++ use_bitfields = 4; ++ } + + if (use_bitfields > 0) { + DWORD bitfields[4]; +@@ -595,10 +676,18 @@ + case 32 : + { + int use_bitfields = 0; +- if (bih.biCompression == BI_BITFIELDS) use_bitfields = 3; +- else if (bih.biCompression == BI_ALPHABITFIELDS) use_bitfields = 4; +- else if (type == 52) use_bitfields = 3; +- else if (type >= 56) use_bitfields = 4; ++ if (bih.biCompression == BI_BITFIELDS) { ++ use_bitfields = 3; ++ } ++ else if (bih.biCompression == BI_ALPHABITFIELDS) { ++ use_bitfields = 4; ++ } ++ else if (type == 52) { ++ use_bitfields = 3; ++ } ++ else if (type >= 56) { ++ use_bitfields = 4; ++ } + + if (use_bitfields > 0) { + DWORD bitfields[4]; +@@ -676,6 +765,10 @@ + SwapInfoHeader(&bih); + #endif + ++ if (CheckBitmapInfoHeader(&bih) == FALSE) { ++ throw FI_MSG_ERROR_INVALID_FORMAT; ++ } ++ + // keep some general information about the bitmap + + unsigned used_colors = bih.biClrUsed; +@@ -780,7 +873,7 @@ + + case 16 : + { +- if (bih.biCompression == 3) { ++ if (bih.biCompression == BI_BITFIELDS) { + DWORD bitfields[3]; + + io->read_proc(bitfields, 3 * sizeof(DWORD), 1, handle); diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/r1848-improved-PFM-plugin-against-malicious-images.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/r1848-improved-PFM-plugin-against-malicious-images.patch new file mode 100644 index 0000000000..8d2a580d25 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/r1848-improved-PFM-plugin-against-malicious-images.patch @@ -0,0 +1,227 @@ +Origin: upstream, r1848 +Index: Source/FreeImage/PluginPFM.cpp +--- +diff --git a/Source/FreeImage/PluginPFM.cpp b/Source/FreeImage/PluginPFM.cpp +--- a/Source/FreeImage/PluginPFM.cpp (revision 1847) ++++ b/Source/FreeImage/PluginPFM.cpp (revision 1848) +@@ -23,6 +23,12 @@ + #include "Utilities.h" + + // ========================================================== ++// Plugin Interface ++// ========================================================== ++ ++static int s_format_id; ++ ++// ========================================================== + // Internal functions + // ========================================================== + +@@ -59,6 +65,9 @@ + + /** + Get an integer value from the actual position pointed by handle ++@param io ++@param handle ++@return Returns -1 in case of failure, returns the found number otherwise + */ + static int + pfm_get_int(FreeImageIO *io, fi_handle handle) { +@@ -65,70 +74,72 @@ + char c = 0; + BOOL bFirstChar; + +- // skip forward to start of next number ++ try { + +- if(!io->read_proc(&c, 1, 1, handle)) { +- throw FI_MSG_ERROR_PARSING; +- } ++ // skip forward to start of next number + +- while (1) { +- // eat comments ++ if (io->read_proc(&c, 1, 1, handle) != 1) { ++ throw FI_MSG_ERROR_PARSING; ++ } + +- if (c == '#') { +- // if we're at a comment, read to end of line ++ while (1) { ++ // eat comments + +- bFirstChar = TRUE; ++ if (c == '#') { ++ // if we're at a comment, read to end of line + +- while (1) { +- if(!io->read_proc(&c, 1, 1, handle)) { +- throw FI_MSG_ERROR_PARSING; +- } ++ bFirstChar = TRUE; + +- if (bFirstChar && c == ' ') { +- // loop off 1 sp after # +- bFirstChar = FALSE; +- } else if (c == '\n') { +- break; ++ while (1) { ++ if (io->read_proc(&c, 1, 1, handle) != 1) { ++ throw FI_MSG_ERROR_PARSING; ++ } ++ ++ if (bFirstChar && c == ' ') { ++ // loop off 1 sp after # ++ bFirstChar = FALSE; ++ } ++ else if (c == '\n') { ++ break; ++ } + } + } +- } + +- if (c >= '0' && c <='9') { +- // we've found what we were looking for +- break; +- } ++ if (c >= '0' && c <= '9') { ++ // we've found what we were looking for ++ break; ++ } + +- if(!io->read_proc(&c, 1, 1, handle)) { +- throw FI_MSG_ERROR_PARSING; ++ if (io->read_proc(&c, 1, 1, handle) != 1) { ++ throw FI_MSG_ERROR_PARSING; ++ } + } +- } + +- // we're at the start of a number, continue until we hit a non-number ++ // we're at the start of a number, continue until we hit a non-number + +- int i = 0; ++ int i = 0; + +- while (1) { +- i = (i * 10) + (c - '0'); ++ while (1) { ++ i = (i * 10) + (c - '0'); + +- if(!io->read_proc(&c, 1, 1, handle)) { +- throw FI_MSG_ERROR_PARSING; +- } ++ if (io->read_proc(&c, 1, 1, handle) != 1) { ++ throw FI_MSG_ERROR_PARSING; ++ } + +- if (c < '0' || c > '9') { +- break; ++ if (c < '0' || c > '9') { ++ break; ++ } + } +- } + +- return i; ++ return i; ++ } ++ catch (const char *message) { ++ FreeImage_OutputMessageProc(s_format_id, message); ++ return -1; ++ } + } + + // ========================================================== +-// Plugin Interface +-// ========================================================== +- +-static int s_format_id; +- +-// ========================================================== + // Plugin Implementation + // ========================================================== + +@@ -230,8 +241,12 @@ + } + + // Read the header information: width, height and the scale value +- unsigned width = (unsigned) pfm_get_int(io, handle); +- unsigned height = (unsigned) pfm_get_int(io, handle); ++ int width = pfm_get_int(io, handle); ++ int height = pfm_get_int(io, handle); ++ if ((width <= 0) || (height <= 0)) { ++ throw FI_MSG_ERROR_PARSING; ++ } ++ + float scalefactor = 1; + + BOOL bResult = pfm_get_line(io, handle, line_buffer, PFM_MAXLINE); +@@ -262,7 +277,7 @@ + throw FI_MSG_ERROR_MEMORY; + } + +- for (unsigned y = 0; y < height; y++) { ++ for (int y = 0; y < height; y++) { + FIRGBF *bits = (FIRGBF*)FreeImage_GetScanLine(dib, height - 1 - y); + + if(io->read_proc(lineBuffer, sizeof(float), lineWidth, handle) != lineWidth) { +@@ -271,7 +286,7 @@ + float *channel = lineBuffer; + if(scalefactor > 0) { + // MSB +- for (unsigned x = 0; x < width; x++) { ++ for (int x = 0; x < width; x++) { + REVERSEBYTES(channel++, &bits[x].red); + REVERSEBYTES(channel++, &bits[x].green); + REVERSEBYTES(channel++, &bits[x].blue); +@@ -278,7 +293,7 @@ + } + } else { + // LSB +- for (unsigned x = 0; x < width; x++) { ++ for (int x = 0; x < width; x++) { + bits[x].red = *channel++; + bits[x].green = *channel++; + bits[x].blue = *channel++; +@@ -296,7 +311,7 @@ + throw FI_MSG_ERROR_MEMORY; + } + +- for (unsigned y = 0; y < height; y++) { ++ for (int y = 0; y < height; y++) { + float *bits = (float*)FreeImage_GetScanLine(dib, height - 1 - y); + + if(io->read_proc(lineBuffer, sizeof(float), lineWidth, handle) != lineWidth) { +@@ -305,12 +320,12 @@ + float *channel = lineBuffer; + if(scalefactor > 0) { + // MSB - File is Big endian +- for (unsigned x = 0; x < width; x++) { ++ for (int x = 0; x < width; x++) { + REVERSEBYTES(channel++, &bits[x]); + } + } else { + // LSB - File is Little Endian +- for (unsigned x = 0; x < width; x++) { ++ for (int x = 0; x < width; x++) { + bits[x] = *channel++; + } + } +@@ -323,9 +338,12 @@ + return dib; + + } catch (const char *text) { +- if(lineBuffer) free(lineBuffer); +- if(dib) FreeImage_Unload(dib); +- ++ if (lineBuffer) { ++ free(lineBuffer); ++ } ++ if (dib) { ++ FreeImage_Unload(dib); ++ } + if(NULL != text) { + FreeImage_OutputMessageProc(s_format_id, text); + } diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/r1877-improved-DDS-plugin-against-malicious-images.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/r1877-improved-DDS-plugin-against-malicious-images.patch new file mode 100644 index 0000000000..af79c7b866 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/r1877-improved-DDS-plugin-against-malicious-images.patch @@ -0,0 +1,15 @@ +Origin: upstream, r1877 +Index: Source/FreeImage/PluginDDS.cpp +=================================================================== +diff --git a/Source/FreeImage/PluginDDS.cpp b/Source/FreeImage/PluginDDS.cpp +--- a/Source/FreeImage/PluginDDS.cpp (revision 1876) ++++ b/Source/FreeImage/PluginDDS.cpp (revision 1877) +@@ -617,7 +617,7 @@ + // read the file + // ------------------------------------------------------------------------- + +- const int line = CalculateLine(width, bpp); ++ const int line = CalculateLine(width, FreeImage_GetBPP(dib)); + const int filePitch = ((desc->dwFlags & DDSD_PITCH) == DDSD_PITCH) ? (int)desc->dwPitchOrLinearSize : line; + const long delta = (long)filePitch - (long)line; + diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage/revert-xtiff.patch b/meta-ros-common/recipes-graphics/freeimage/freeimage/revert-xtiff.patch new file mode 100644 index 0000000000..240bb8e81a --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage/revert-xtiff.patch @@ -0,0 +1,114 @@ +From: Ghislain Antony Vaillant +Date: Tue, 3 Nov 2015 14:39:33 +0000 +Subject: (Revert) Disable vendored dependencies. + +Revert changes to XTIFF from previous Debian patch. + +Index: freeimage-3.18.0+ds2/Source/Metadata/XTIFF.cpp +=================================================================== +--- freeimage-3.18.0+ds2.orig/Source/Metadata/XTIFF.cpp ++++ freeimage-3.18.0+ds2/Source/Metadata/XTIFF.cpp +@@ -224,33 +224,6 @@ tiff_write_geotiff_profile(TIFF *tif, FI + // TIFF EXIF tag reading & writing + // ---------------------------------------------------------- + +-static uint32 exif_tag_ids[] = { +- EXIFTAG_EXPOSURETIME, EXIFTAG_FNUMBER, EXIFTAG_EXPOSUREPROGRAM, +- EXIFTAG_SPECTRALSENSITIVITY, EXIFTAG_ISOSPEEDRATINGS, EXIFTAG_OECF, +- EXIFTAG_EXIFVERSION, EXIFTAG_DATETIMEORIGINAL, EXIFTAG_DATETIMEDIGITIZED, +- EXIFTAG_COMPONENTSCONFIGURATION, EXIFTAG_COMPRESSEDBITSPERPIXEL, +- EXIFTAG_SHUTTERSPEEDVALUE, EXIFTAG_APERTUREVALUE, +- EXIFTAG_BRIGHTNESSVALUE, EXIFTAG_EXPOSUREBIASVALUE, +- EXIFTAG_MAXAPERTUREVALUE, EXIFTAG_SUBJECTDISTANCE, EXIFTAG_METERINGMODE, +- EXIFTAG_LIGHTSOURCE, EXIFTAG_FLASH, EXIFTAG_FOCALLENGTH, +- EXIFTAG_SUBJECTAREA, EXIFTAG_MAKERNOTE, EXIFTAG_USERCOMMENT, +- EXIFTAG_SUBSECTIME, EXIFTAG_SUBSECTIMEORIGINAL, +- EXIFTAG_SUBSECTIMEDIGITIZED, EXIFTAG_FLASHPIXVERSION, EXIFTAG_COLORSPACE, +- EXIFTAG_PIXELXDIMENSION, EXIFTAG_PIXELYDIMENSION, +- EXIFTAG_RELATEDSOUNDFILE, EXIFTAG_FLASHENERGY, +- EXIFTAG_SPATIALFREQUENCYRESPONSE, EXIFTAG_FOCALPLANEXRESOLUTION, +- EXIFTAG_FOCALPLANEYRESOLUTION, EXIFTAG_FOCALPLANERESOLUTIONUNIT, +- EXIFTAG_SUBJECTLOCATION, EXIFTAG_EXPOSUREINDEX, EXIFTAG_SENSINGMETHOD, +- EXIFTAG_FILESOURCE, EXIFTAG_SCENETYPE, EXIFTAG_CFAPATTERN, +- EXIFTAG_CUSTOMRENDERED, EXIFTAG_EXPOSUREMODE, EXIFTAG_WHITEBALANCE, +- EXIFTAG_DIGITALZOOMRATIO, EXIFTAG_FOCALLENGTHIN35MMFILM, +- EXIFTAG_SCENECAPTURETYPE, EXIFTAG_GAINCONTROL, EXIFTAG_CONTRAST, +- EXIFTAG_SATURATION, EXIFTAG_SHARPNESS, EXIFTAG_DEVICESETTINGDESCRIPTION, +- EXIFTAG_SUBJECTDISTANCERANGE, EXIFTAG_GAINCONTROL, EXIFTAG_GAINCONTROL, +- EXIFTAG_IMAGEUNIQUEID +-}; +-static int nExifTags = sizeof(exif_tag_ids) / sizeof(exif_tag_ids[0]); +- + /** + Read a single Exif tag + +@@ -575,10 +602,43 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M + + // loop over all Core Directory Tags + // ### uses private data, but there is no other way +- // -> Fedora: Best we can do without private headers is to hard-code a list of known EXIF tags and read those + if(md_model == TagLib::EXIF_MAIN) { ++ const TIFFDirectory *td = &tif->tif_dir; ++ ++ uint32 lastTag = 0; //<- used to prevent reading some tags twice (as stored in tif_fieldinfo) ++ ++ for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) { ++ const TIFFField *fld = tif->tif_fields[fi]; ++ ++ const uint32 tag_id = TIFFFieldTag(fld); ++ ++ if(tag_id == lastTag) { ++ continue; ++ } ++ ++ // test if tag value is set ++ // (lifted directly from LibTiff _TIFFWriteDirectory) ++ ++ if( fld->field_bit == FIELD_CUSTOM ) { ++ int is_set = FALSE; ++ ++ for(int ci = 0; ci < td->td_customValueCount; ci++ ) { ++ is_set |= (td->td_customValues[ci].info == fld); ++ } ++ ++ if( !is_set ) { ++ continue; ++ } ++ ++ } else if(!TIFFFieldSet(tif, fld->field_bit)) { ++ continue; ++ } ++ ++ // process *all* other tags (some will be ignored) ++ ++ tiff_read_exif_tag(tif, tag_id, dib, md_model); ++ ++ lastTag = tag_id; +- for (int i = 0; i < nExifTags; ++i) { +- tiff_read_exif_tag(tif, exif_tag_ids[i], dib, md_model); + } + + } +@@ -723,9 +717,10 @@ tiff_write_exif_tags(TIFF *tif, TagLib:: + + TagLib& tag_lib = TagLib::instance(); + ++ for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) { ++ const TIFFField *fld = tif->tif_fields[fi]; ++ ++ const uint32 tag_id = TIFFFieldTag(fld); +- for (int fi = 0, nfi = nExifTags; nfi > 0; nfi--, fi++) { +- const uint32 tag_id = exif_tag_ids[fi]; +- const TIFFField *fld = TIFFFieldWithTag(tif, tag_id); + + if(skip_write_field(tif, tag_id)) { + // skip tags that are already handled by the LibTIFF writing process +@@ -749,7 +742,7 @@ tiff_write_exif_tags(TIFF *tif, TagLib:: + continue; + } + // type of storage may differ (e.g. rationnal array vs float array type) ++ if((unsigned)_TIFFDataSize(tif_tag_type) != FreeImage_TagDataWidth(tag_type)) { +- if((unsigned)TIFFFieldSetGetSize(fld) != FreeImage_TagDataWidth(tag_type)) { + // skip tag or _TIFFmemcpy will fail + continue; + } diff --git a/meta-ros-common/recipes-graphics/freeimage/freeimage_3.18.0-2.bb b/meta-ros-common/recipes-graphics/freeimage/freeimage_3.18.0-2.bb new file mode 100644 index 0000000000..95c42a2861 --- /dev/null +++ b/meta-ros-common/recipes-graphics/freeimage/freeimage_3.18.0-2.bb @@ -0,0 +1,81 @@ +LICENSE = "GPL-2.0-or-later | GPL-3.0-or-later | FIPL-1.0" +LIC_FILES_CHKSUM = "file://Wrapper/Delphi/license.txt;md5=d9993e75dec47df89dbb5da6c939d046 \ + file://license-fi.txt;md5=8e1438cab62c8f655288588dc43daaf6 \ + file://license-gplv2.txt;md5=1fbed70be9d970d3da399f33dae9cc51" + +SRC_URI = " \ + git://salsa.debian.org/science-team/freeimage.git;protocol=https;branch=debian/sid \ + file://Disable-vendored-dependencies.patch \ + file://Use-system-dependencies.patch \ + file://Fix-macro-redefinition-for-64-bit-integer-types.patch \ + file://Fix-compatibility-with-system-libpng.patch \ + file://Disable-usage-of-HTML-timestamps-in-doxygen.patch \ + file://Disable-testing-of-JPEG-transform.patch \ + file://Disable-testing-of-JXR-MemIO.patch \ + file://Fix-encoding-of-fi-header.patch \ + file://Enable-substitution-of-pkg-config.patch \ + file://CVE-2019-12211-13.patch \ + file://Fix_compilation_external-static.patch \ + file://Fix-libraw-compilation.patch \ + file://Use-system-jpeg_read_icc_profile.patch \ + file://Fix-big-endian.patch \ + file://r1830-minor-refactoring.patch \ + file://r1832-improved-BMP-plugin-when-working-with-malicious-images.patch \ + file://r1836-improved-BMP-plugin-when-working-with-malicious-images.patch \ + file://r1848-improved-PFM-plugin-against-malicious-images.patch \ + file://r1877-improved-DDS-plugin-against-malicious-images.patch \ + file://fix-include-dirs.patch \ + file://fix-freeimage-with-libraw-0.21.1.patch \ +" + +PV = "3.18.0-2+git${SRCPV}" +SRCREV = "10780151a1fb824a7fc9f58ca3014624605a50b3" + +S = "${WORKDIR}/git" + +CFLAGS += "-fPIC" +CXXFLAGS += "-fPIC" + +inherit pkgconfig + +DEPENDS = " \ + dos2unix-native \ + libjpeg-turbo \ + libpng \ + libraw \ + libwebp \ + jxrlib \ + openjpeg \ + openexr \ + tiff \ + zlib \ +" + +do_configure () { + # From Debian rules gen-src-list target + sh gensrclist.sh + oe_runmake -f Makefile.gnu dos2unix + sh genfipsrclist.sh + oe_runmake -f Makefile.fip dos2unix +} + +do_compile () { + oe_runmake +} + +do_install () { + oe_runmake DESTDIR="${D}" install +} + +FILES:${PN} = " \ + ${libdir}/libfreeimage-3.18.0.so \ +" + +FILES:${PN}-dev = " \ + ${libdir}/libfreeimage.so \ + ${libdir}/libfreeimage.so.3 \ + ${libdir}/libfreeimage.a \ + ${includedir}/FreeImage.h \ +" + +BBCLASSEXTEND = "native nativesdk" From 11275d13414d2ce9d66c4e005ae2e23411a974e9 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:40:12 -0700 Subject: [PATCH 037/152] meta-ros-common: jxrlib: Add new recipe Add new recipe based on Debian-supported version. Needed by freeimage. Signed-off-by: Rob Woolley --- ...b032be1f6c75173bf603252e4f37bfded9fa.patch | 29 +++ ...7f88539b77d46ebf408b6a215930ae63bbdd.patch | 76 +++++++ ...f95783f2f81bd13bf1f8b03ceb12aa87d661.patch | 36 +++ ...6b78b7ad3205bdb91ef725b09ddbe3c8945d.patch | 56 +++++ .../jxrlib/jxrlib/bug771912.patch | 32 +++ .../jxrlib/jxrlib/bug803743.patch | 70 ++++++ .../jxrlib/jxrlib/bump_version.patch | 16 ++ .../jxrlib/jxrlib/cp1251.patch | 207 ++++++++++++++++++ .../recipes-graphics/jxrlib/jxrlib/pie.patch | 17 ++ .../jxrlib/jxrlib/pkg-config.patch | 23 ++ .../jxrlib/remove-hardcoded-defaults.patch | 22 ++ .../jxrlib/jxrlib/typos.patch | 16 ++ .../jxrlib/jxrlib/usecmake.patch | 144 ++++++++++++ .../recipes-graphics/jxrlib/jxrlib_1.2.bb | 35 +++ 14 files changed, 779 insertions(+) create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/082bb032be1f6c75173bf603252e4f37bfded9fa.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/31df7f88539b77d46ebf408b6a215930ae63bbdd.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/a684f95783f2f81bd13bf1f8b03ceb12aa87d661.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/ab9c6b78b7ad3205bdb91ef725b09ddbe3c8945d.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/bug771912.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/bug803743.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/bump_version.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/cp1251.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/pie.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/pkg-config.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/remove-hardcoded-defaults.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/typos.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib/usecmake.patch create mode 100644 meta-ros-common/recipes-graphics/jxrlib/jxrlib_1.2.bb diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/082bb032be1f6c75173bf603252e4f37bfded9fa.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/082bb032be1f6c75173bf603252e4f37bfded9fa.patch new file mode 100644 index 0000000000..66af9afdc4 --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/082bb032be1f6c75173bf603252e4f37bfded9fa.patch @@ -0,0 +1,29 @@ +From 082bb032be1f6c75173bf603252e4f37bfded9fa Mon Sep 17 00:00:00 2001 +From: Milian Wolff +Date: Mon, 7 Jun 2021 09:45:26 +0200 +Subject: [PATCH] Use mkstemp instead of tmpnam + +tmpnam isn't threadsafe and shouldn't be used. Fixes compiler warning: +``` +warning: the use of 'tmpnam' is dangerous, better use 'mkstemp' +``` +--- + image/encode/strenc.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/image/encode/strenc.c b/image/encode/strenc.c +index d6e970e..65c277e 100644 +--- a/image/encode/strenc.c ++++ b/image/encode/strenc.c +@@ -482,8 +482,10 @@ Int StrIOEncInit(CWMImageStrCodec* pSC) + pSC->ppTempFile[i] = (char *)malloc(FILENAME_MAX * sizeof(char)); + if(pSC->ppTempFile[i] == NULL) return ICERR_ERROR; + +- if ((pFilename = tmpnam(NULL)) == NULL) ++ char tmpnambuf[] = {'f', 'i', 'l', 'e', 'X', 'X', 'X', 'X', 'X', 'X', '\0'}; ++ if (mkstemp(tmpnambuf) == -1) + return ICERR_ERROR; ++ pFilename = tmpnambuf; + strcpy(pSC->ppTempFile[i], pFilename); + #endif + if(CreateWS_File(pSC->ppWStream + i, pFilename, "w+b") != ICERR_OK) return ICERR_ERROR; diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/31df7f88539b77d46ebf408b6a215930ae63bbdd.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/31df7f88539b77d46ebf408b6a215930ae63bbdd.patch new file mode 100644 index 0000000000..328a938d66 --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/31df7f88539b77d46ebf408b6a215930ae63bbdd.patch @@ -0,0 +1,76 @@ +From 31df7f88539b77d46ebf408b6a215930ae63bbdd Mon Sep 17 00:00:00 2001 +From: Milian Wolff +Date: Mon, 7 Jun 2021 10:30:46 +0200 +Subject: [PATCH] Fix memory leaks when handling OOM scenario + +If the second or third allocation failed, the code would leak +the first and/or secon allocation. Free all buffers if we return +early to prevent this. +--- + jxrtestlib/JXRTestYUV.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/jxrtestlib/JXRTestYUV.c b/jxrtestlib/JXRTestYUV.c +index 52dc4ca..b803387 100644 +--- a/jxrtestlib/JXRTestYUV.c ++++ b/jxrtestlib/JXRTestYUV.c +@@ -120,6 +120,9 @@ ERR PKImageEncode_WritePixels_IYUV( + + if(pY == NULL || pU == NULL || pV == NULL) + { ++ free(pY); ++ free(pU); ++ free(pV); + return ICERR_ERROR; + } + +@@ -198,6 +201,9 @@ ERR PKImageEncode_WritePixels_YUV422( + + if(pY == NULL || pU == NULL || pV == NULL) + { ++ free(pY); ++ free(pU); ++ free(pV); + return ICERR_ERROR; + } + //YYUV +@@ -273,6 +279,9 @@ ERR PKImageEncode_WritePixels_YUV444( + + if(pY == NULL || pU == NULL || pV == NULL) + { ++ free(pY); ++ free(pU); ++ free(pV); + return ICERR_ERROR; + } + +@@ -491,6 +500,9 @@ ERR PKImageDecode_Copy_IYUV( + + if(pY == NULL || pU == NULL || pV == NULL) + { ++ free(pY); ++ free(pU); ++ free(pV); + return ICERR_ERROR; + } + +@@ -564,6 +576,9 @@ ERR PKImageDecode_Copy_YUV422( + + if(pY == NULL || pU == NULL || pV == NULL) + { ++ free(pY); ++ free(pU); ++ free(pV); + return ICERR_ERROR; + } + +@@ -635,6 +650,9 @@ ERR PKImageDecode_Copy_YUV444( + + if(pY == NULL || pU == NULL || pV == NULL) + { ++ free(pY); ++ free(pU); ++ free(pV); + return ICERR_ERROR; + } + diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/a684f95783f2f81bd13bf1f8b03ceb12aa87d661.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/a684f95783f2f81bd13bf1f8b03ceb12aa87d661.patch new file mode 100644 index 0000000000..06cce14d18 --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/a684f95783f2f81bd13bf1f8b03ceb12aa87d661.patch @@ -0,0 +1,36 @@ +From a684f95783f2f81bd13bf1f8b03ceb12aa87d661 Mon Sep 17 00:00:00 2001 +From: Milian Wolff +Date: Mon, 7 Jun 2021 10:00:09 +0200 +Subject: [PATCH] fix undefined behavior for left-shift of -1 + +My hunch is that (-1 << 31) tries to build INT_MIN, so use that +directly. Compare: + +1 << 31 = 2147483648 +INT_MIN = -2147483648 +--- + image/sys/adapthuff.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/image/sys/adapthuff.c b/image/sys/adapthuff.c +index a690889..cd83034 100644 +--- a/image/sys/adapthuff.c ++++ b/image/sys/adapthuff.c +@@ -28,6 +28,8 @@ + + #include "strcodec.h" + ++#include ++ + #ifdef MEM_TRACE + #define TRACE_MALLOC 1 + #define TRACE_NEW 0 +@@ -459,7 +461,7 @@ Void AdaptDiscriminant (CAdaptiveHuffman *pAdHuff) + assert (t < gMaxTables[iSym]); + + //pAdHuff->m_iDiscriminant >>= 1; +- pAdHuff->m_iLowerBound = (t == 0) ? (-1 << 31) : -THRESHOLD; ++ pAdHuff->m_iLowerBound = (t == 0) ? INT_MIN : -THRESHOLD; + pAdHuff->m_iUpperBound = (t == gMaxTables[iSym] - 1) ? (1 << 30) : THRESHOLD; + + switch (iSym) { diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/ab9c6b78b7ad3205bdb91ef725b09ddbe3c8945d.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/ab9c6b78b7ad3205bdb91ef725b09ddbe3c8945d.patch new file mode 100644 index 0000000000..54bf84fc97 --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/ab9c6b78b7ad3205bdb91ef725b09ddbe3c8945d.patch @@ -0,0 +1,56 @@ +From ab9c6b78b7ad3205bdb91ef725b09ddbe3c8945d Mon Sep 17 00:00:00 2001 +From: Milian Wolff +Date: Mon, 7 Jun 2021 09:56:37 +0200 +Subject: [PATCH] fix warnings about unaligned loads from UBSAN + +Use memcpy instead to ensure that we don't get warnings about +unaligned loads from UBSAN: + +``` +../3rdParty/jxrlib/image/decode/segdec.c:66:12: runtime error: load of misaligned address 0x7fc3a0544006 for type 'U32', which requires 4 byte alignment +0x7fc3a0544006: note: pointer points here + 01 01 a5 c0 b0 7c 0a 06 05 00 0c 14 10 c2 c0 30 80 38 72 41 ae 1a 8f 54 26 c2 9e f6 c1 25 a9 65 + ^ + #0 0x7fc3e137429a in _load4 ../3rdParty/jxrlib/image/decode/segdec.c:66 + #1 0x7fc3e13748b8 in _flushBit16 ../3rdParty/jxrlib/image/decode/segdec.c:80 + #2 0x7fc3e13749a6 in _getBit16 ../3rdParty/jxrlib/image/decode/segdec.c:86 + #3 0x7fc3e1385d75 in DecodeMacroblockDC ../3rdParty/jxrlib/image/decode/segdec.c:1224 + #4 0x7fc3e131924a in processMacroblockDec ../3rdParty/jxrlib/image/decode/strdec.c:412 + #5 0x7fc3e137207a in ImageStrDecDecode ../3rdParty/jxrlib/image/decode/strdec.c:4003 + #6 0x7fc3e126c0b2 in PKImageDecode_Copy_WMP ../3rdParty/jxrlib/jxrgluelib/JXRGlueJxr.c:1874 +``` +--- + image/decode/segdec.c | 4 +++- + image/sys/strcodec.c | 4 +++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/image/decode/segdec.c b/image/decode/segdec.c +index fb83f2b..3c890af 100644 +--- a/image/decode/segdec.c ++++ b/image/decode/segdec.c +@@ -63,7 +63,9 @@ static U32 _FORCEINLINE _load4(void* pv) + v |= ((U32)((U16 *) pv)[1]) << 16; + return _byteswap_ulong(v); + #else // _M_IA64 +- return _byteswap_ulong(*(U32*)pv); ++ U32 v; ++ memcpy(&v, pv, sizeof(U32)); ++ return _byteswap_ulong(v); + #endif // _M_IA64 + #endif // _BIG__ENDIAN_ + } +diff --git a/image/sys/strcodec.c b/image/sys/strcodec.c +index c746d6f..b0989dd 100644 +--- a/image/sys/strcodec.c ++++ b/image/sys/strcodec.c +@@ -694,7 +694,9 @@ U32 load4BE(void* pv) + v |= ((U32)((U16 *) pv)[1]) << 16; + return _byteswap_ulong(v); + #else // _M_IA64 +- return _byteswap_ulong(*(U32*)pv); ++ U32 v; ++ memcpy(&v, pv, sizeof(U32)); ++ return _byteswap_ulong(v); + #endif // _M_IA64 + #endif // _BIG__ENDIAN_ + } diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/bug771912.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/bug771912.patch new file mode 100644 index 0000000000..a9ca33c73e --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/bug771912.patch @@ -0,0 +1,32 @@ +Description: Document PNM output +Author: Mathieu Malaterre +Bug-Debian: https://bugs.debian.org/771912 +Forwarded: https://github.com/4creators/jxrlib/pull/4 +Last-Update: 2021-11-26 + +--- jxrlib-1.2~git20170615.f752187.orig/jxrencoderdecoder/JxrDecApp.c ++++ jxrlib-1.2~git20170615.f752187/jxrencoderdecoder/JxrDecApp.c +@@ -82,8 +82,9 @@ void WmpDecAppUsage(const char* szExe) + printf(CRLF); + printf(" -i input.jxr/wdp Input JPEG XR/HD Photo file name" CRLF); + printf(CRLF); +- printf(" -o output.bmp/tif/jxr Output image file name" CRLF); ++ printf(" -o output.bmp/pnm/tif/jxr Output image file name" CRLF); + printf(" bmp: <=8bpc, BGR" CRLF); ++ printf(" pnm: >=8bpc, RGB" CRLF); + printf(" tif: >=8bpc, RGB" CRLF); + printf(" jxr: for compressed domain transcode" CRLF); + printf(CRLF); +--- jxrlib-1.2~git20170615.f752187.orig/jxrencoderdecoder/JxrEncApp.c ++++ jxrlib-1.2~git20170615.f752187/jxrencoderdecoder/JxrEncApp.c +@@ -55,8 +55,9 @@ void WmpEncAppUsage(const char* szExe) + printf(CRLF); + printf("%s [options]..." CRLF, szExe); + printf(CRLF); +- printf(" -i input.bmp/tif/hdr Input image file name" CRLF); ++ printf(" -i input.bmp/pnm/tif/hdr Input image file name" CRLF); + printf(" bmp: <=8bpc, BGR" CRLF); ++ printf(" pnm: >=8bpc, RGB" CRLF); + printf(" tif: >=8bpc, RGB" CRLF); + printf(" hdr: 32bppRGBE only" CRLF); + printf(CRLF); diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/bug803743.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/bug803743.patch new file mode 100644 index 0000000000..d2d8e72094 --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/bug803743.patch @@ -0,0 +1,70 @@ +Description: libjxr-dev: Missing pkgconfig file +Author: Mathieu Malaterre +Bug-Debian: https://bugs.debian.org/803743 +Forwarded: no +Last-Update: 2021-11-26 + +Index: jxrlib/libjxr.pc.in +=================================================================== +--- jxrlib.orig/libjxr.pc.in ++++ jxrlib/libjxr.pc.in +@@ -1,4 +1,4 @@ +-prefix=%(DIR_INSTALL)s ++prefix=@DIR_INSTALL@ + exec_prefix=${prefix} + libdir=${exec_prefix}/lib + includedir=${prefix}/include +@@ -6,7 +6,7 @@ includedir=${prefix}/include + Name: libjxr + Description: A library for reading JPEG XR images. + +-Version: %(JXR_VERSION)s ++Version: @JXR_VERSION@ + Libs: -L${libdir} -ljpegxr -ljxrglue + Libs.private: -lm +-Cflags: -I${includedir}/libjxr/common -I${includedir}/libjxr/image/x86 -I${includedir}/libjxr/image -I${includedir}/libjxr/glue -I${includedir}/libjxr/test -D__ANSI__ -DDISABLE_PERF_MEASUREMENT %(JXR_ENDIAN)s ++Cflags: -I${includedir}/libjxr/common -I${includedir}/libjxr/image/x86 -I${includedir}/libjxr/image -I${includedir}/libjxr/glue -I${includedir}/libjxr/test -D__ANSI__ -DDISABLE_PERF_MEASUREMENT @JXR_ENDIAN@ +Index: jxrlib/CMakeLists.txt +=================================================================== +--- jxrlib.orig/CMakeLists.txt ++++ jxrlib/CMakeLists.txt +@@ -17,6 +17,7 @@ include(TestBigEndian) + test_big_endian(ISBIGENDIAN) + if(ISBIGENDIAN) + set(DEF_ENDIAN _BIG__ENDIAN_) ++ set(JXR_ENDIAN "-D${DEF_ENDIAN}") + endif() + + set(DIR_SYS image/sys) +@@ -73,7 +74,8 @@ set_property(TARGET jpegxr + set_property(TARGET jpegxr PROPERTY LINK_INTERFACE_LIBRARIES "") + set_property(TARGET jpegxr PROPERTY COMPILE_FLAGS -w) + # VERSION/SOVERSION +-set_property(TARGET jpegxr PROPERTY VERSION 1.1) ++set(JXR_VERSION "1.1") ++set_property(TARGET jpegxr PROPERTY VERSION ${JXR_VERSION}) + set_property(TARGET jpegxr PROPERTY SOVERSION 0) + install(TARGETS jpegxr + EXPORT JXRLibTargets +@@ -94,7 +96,7 @@ set_property(TARGET jxrglue + #set_property(TARGET jxrglue PROPERTY LINK_INTERFACE_LIBRARIES "") + set_property(TARGET jxrglue PROPERTY COMPILE_FLAGS -w) + # VERSION/SOVERSION +-set_property(TARGET jxrglue PROPERTY VERSION 1.1) ++set_property(TARGET jxrglue PROPERTY VERSION ${JXR_VERSION}) + set_property(TARGET jxrglue PROPERTY SOVERSION 0) + install(TARGETS jxrglue + EXPORT JXRLibTargets +@@ -133,3 +135,12 @@ install(FILES jxrgluelib/JXRGlue.h jxrgl + install(DIRECTORY common/include/ DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR} + FILES_MATCHING PATTERN "*.h" + ) ++ ++set(DIR_INSTALL ${CMAKE_INSTALL_PREFIX}) ++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libjxr.pc.in ++ ${CMAKE_CURRENT_BINARY_DIR}/libjxr.pc ++ @ONLY ++) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libjxr.pc ++ DESTINATION ${JXRLIB_INSTALL_LIB_DIR}/pkgconfig COMPONENT Header ++) diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/bump_version.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/bump_version.patch new file mode 100644 index 0000000000..b9e7b8d93f --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/bump_version.patch @@ -0,0 +1,16 @@ +Description: Version is 1.2 +Author: Mathieu Malaterre +Forwarded: not-needed +Last-Update: 2021-11-26 + +--- jxrlib-1.2~git20170615.f752187.orig/CMakeLists.txt ++++ jxrlib-1.2~git20170615.f752187/CMakeLists.txt +@@ -74,7 +74,7 @@ set_property(TARGET jpegxr + set_property(TARGET jpegxr PROPERTY LINK_INTERFACE_LIBRARIES "") + set_property(TARGET jpegxr PROPERTY COMPILE_FLAGS -w) + # VERSION/SOVERSION +-set(JXR_VERSION "1.1") ++set(JXR_VERSION "1.2") + set_property(TARGET jpegxr PROPERTY VERSION ${JXR_VERSION}) + set_property(TARGET jpegxr PROPERTY SOVERSION 0) + install(TARGETS jpegxr diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/cp1251.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/cp1251.patch new file mode 100644 index 0000000000..a292730f20 --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/cp1251.patch @@ -0,0 +1,207 @@ +Description: Convert some national-encoding file to utf-8 + W: libjxr-dev: national-encoding usr/include/jxrlib/wmsal.h + Steps: + % iconv -f CP1251 -t UTF-8 input.h -o input.h +Author: Mathieu Malaterre +Forwarded: not-needed +Last-Update: 2021-11-26 + +Index: jxrlib/jxrgluelib/JXRMeta.h +=================================================================== +--- jxrlib.orig/jxrgluelib/JXRMeta.h ++++ jxrlib/jxrgluelib/JXRMeta.h +@@ -1,14 +1,14 @@ + //*@@@+++@@@@****************************************************************** + // +-// Copyright © Microsoft Corp. ++// Copyright © Microsoft Corp. + // All rights reserved. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are met: + // +-// • Redistributions of source code must retain the above copyright notice, ++// • Redistributions of source code must retain the above copyright notice, + // this list of conditions and the following disclaimer. +-// • Redistributions in binary form must reproduce the above copyright notice, ++// • Redistributions in binary form must reproduce the above copyright notice, + // this list of conditions and the following disclaimer in the documentation + // and/or other materials provided with the distribution. + // +Index: jxrlib/jxrtestlib/JXRTest.h +=================================================================== +--- jxrlib.orig/jxrtestlib/JXRTest.h ++++ jxrlib/jxrtestlib/JXRTest.h +@@ -1,14 +1,14 @@ + //*@@@+++@@@@****************************************************************** + // +-// Copyright © Microsoft Corp. ++// Copyright © Microsoft Corp. + // All rights reserved. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are met: + // +-// • Redistributions of source code must retain the above copyright notice, ++// • Redistributions of source code must retain the above copyright notice, + // this list of conditions and the following disclaimer. +-// • Redistributions in binary form must reproduce the above copyright notice, ++// • Redistributions in binary form must reproduce the above copyright notice, + // this list of conditions and the following disclaimer in the documentation + // and/or other materials provided with the distribution. + // +Index: jxrlib/common/include/guiddef.h +=================================================================== +--- jxrlib.orig/common/include/guiddef.h ++++ jxrlib/common/include/guiddef.h +@@ -1,14 +1,14 @@ + //+--------------------------------------------------------------------------- + // +-// Copyright © Microsoft Corp. ++// Copyright © Microsoft Corp. + // All rights reserved. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are met: + // +-// • Redistributions of source code must retain the above copyright notice, ++// • Redistributions of source code must retain the above copyright notice, + // this list of conditions and the following disclaimer. +-// • Redistributions in binary form must reproduce the above copyright notice, ++// • Redistributions in binary form must reproduce the above copyright notice, + // this list of conditions and the following disclaimer in the documentation + // and/or other materials provided with the distribution. + // +Index: jxrlib/common/include/wmspecstring.h +=================================================================== +--- jxrlib.orig/common/include/wmspecstring.h ++++ jxrlib/common/include/wmspecstring.h +@@ -1,14 +1,14 @@ + //*@@@+++@@@@****************************************************************** + // +-// Copyright © Microsoft Corp. ++// Copyright © Microsoft Corp. + // All rights reserved. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are met: + // +-// • Redistributions of source code must retain the above copyright notice, ++// • Redistributions of source code must retain the above copyright notice, + // this list of conditions and the following disclaimer. +-// • Redistributions in binary form must reproduce the above copyright notice, ++// • Redistributions in binary form must reproduce the above copyright notice, + // this list of conditions and the following disclaimer in the documentation + // and/or other materials provided with the distribution. + // +Index: jxrlib/image/sys/windowsmediaphoto.h +=================================================================== +--- jxrlib.orig/image/sys/windowsmediaphoto.h ++++ jxrlib/image/sys/windowsmediaphoto.h +@@ -1,14 +1,14 @@ + //*@@@+++@@@@****************************************************************** + // +-// Copyright © Microsoft Corp. ++// Copyright © Microsoft Corp. + // All rights reserved. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are met: + // +-// • Redistributions of source code must retain the above copyright notice, ++// • Redistributions of source code must retain the above copyright notice, + // this list of conditions and the following disclaimer. +-// • Redistributions in binary form must reproduce the above copyright notice, ++// • Redistributions in binary form must reproduce the above copyright notice, + // this list of conditions and the following disclaimer in the documentation + // and/or other materials provided with the distribution. + // +Index: jxrlib/common/include/wmspecstrings_adt.h +=================================================================== +--- jxrlib.orig/common/include/wmspecstrings_adt.h ++++ jxrlib/common/include/wmspecstrings_adt.h +@@ -1,14 +1,14 @@ + //*@@@+++@@@@****************************************************************** + // +-// Copyright © Microsoft Corp. ++// Copyright © Microsoft Corp. + // All rights reserved. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are met: + // +-// • Redistributions of source code must retain the above copyright notice, ++// • Redistributions of source code must retain the above copyright notice, + // this list of conditions and the following disclaimer. +-// • Redistributions in binary form must reproduce the above copyright notice, ++// • Redistributions in binary form must reproduce the above copyright notice, + // this list of conditions and the following disclaimer in the documentation + // and/or other materials provided with the distribution. + // +Index: jxrlib/common/include/wmspecstrings_strict.h +=================================================================== +--- jxrlib.orig/common/include/wmspecstrings_strict.h ++++ jxrlib/common/include/wmspecstrings_strict.h +@@ -1,14 +1,14 @@ + //*@@@+++@@@@****************************************************************** + // +-// Copyright © Microsoft Corp. ++// Copyright © Microsoft Corp. + // All rights reserved. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are met: + // +-// • Redistributions of source code must retain the above copyright notice, ++// • Redistributions of source code must retain the above copyright notice, + // this list of conditions and the following disclaimer. +-// • Redistributions in binary form must reproduce the above copyright notice, ++// • Redistributions in binary form must reproduce the above copyright notice, + // this list of conditions and the following disclaimer in the documentation + // and/or other materials provided with the distribution. + // +Index: jxrlib/common/include/wmspecstrings_undef.h +=================================================================== +--- jxrlib.orig/common/include/wmspecstrings_undef.h ++++ jxrlib/common/include/wmspecstrings_undef.h +@@ -1,14 +1,14 @@ + //*@@@+++@@@@****************************************************************** + // +-// Copyright © Microsoft Corp. ++// Copyright © Microsoft Corp. + // All rights reserved. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are met: + // +-// • Redistributions of source code must retain the above copyright notice, ++// • Redistributions of source code must retain the above copyright notice, + // this list of conditions and the following disclaimer. +-// • Redistributions in binary form must reproduce the above copyright notice, ++// • Redistributions in binary form must reproduce the above copyright notice, + // this list of conditions and the following disclaimer in the documentation + // and/or other materials provided with the distribution. + // +Index: jxrlib/common/include/wmsal.h +=================================================================== +--- jxrlib.orig/common/include/wmsal.h ++++ jxrlib/common/include/wmsal.h +@@ -1,15 +1,15 @@ + /*** + *sal.h - markers for documenting the semantics of APIs + * +-* Copyright © Microsoft Corp. ++* Copyright © Microsoft Corp. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * +-* • Redistributions of source code must retain the above copyright notice, ++* • Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. +-* • Redistributions in binary form must reproduce the above copyright notice, ++* • Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/pie.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/pie.patch new file mode 100644 index 0000000000..e339161942 --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/pie.patch @@ -0,0 +1,17 @@ +Description: lintian hardening-no-bindnow +Author: Mathieu Malaterre +Forwarded: not-needed +Last-Update: 2022-01-28 + +--- jxrlib-1.2~git20170615.f752187.orig/CMakeLists.txt ++++ jxrlib-1.2~git20170615.f752187/CMakeLists.txt +@@ -6,6 +6,9 @@ project(jxrlib C) + # Need shared libs for ABI + set(BUILD_SHARED_LIBS ON) + ++# PIE for executables: ++set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) ++ + # helper macro to preserve original Makefile convention + macro(JXR_MAKE_OBJ SET_NAME) + foreach(src ${SRC_${SET_NAME}}) diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/pkg-config.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/pkg-config.patch new file mode 100644 index 0000000000..bbee01d614 --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/pkg-config.patch @@ -0,0 +1,23 @@ +Description: Incorrect path to include directory in pkg-config (libjxr.pc) + The pkg-config file for libjxr contains incorrect paths to the headers: it + refers to paths used by the upstream Makefile (sub-directories of + /usr/include/libjxr) whereas the Debian package actually installs the headers + directly into a different directory (/usr/include/jxrlib). Therefore, + packages that depend on jxrlib via the pkg-config file fail to build. + . + Original patch did not apply cleanly, rework it (malat) +Author: Yann Leprince +Reviewed-By: Mathieu Malaterre +Forwarded: no +Last-Update: 2022-01-28 + +Index: jxrlib/libjxr.pc.in +=================================================================== +--- jxrlib.orig/libjxr.pc.in ++++ jxrlib/libjxr.pc.in +@@ -9,4 +9,4 @@ Description: A library for reading JPEG + Version: @JXR_VERSION@ + Libs: -L${libdir} -ljpegxr -ljxrglue + Libs.private: -lm +-Cflags: -I${includedir}/libjxr/common -I${includedir}/libjxr/image/x86 -I${includedir}/libjxr/image -I${includedir}/libjxr/glue -I${includedir}/libjxr/test -D__ANSI__ -DDISABLE_PERF_MEASUREMENT @JXR_ENDIAN@ ++Cflags: -I${includedir}/jxrlib -D__ANSI__ -DDISABLE_PERF_MEASUREMENT @JXR_ENDIAN@ diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/remove-hardcoded-defaults.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/remove-hardcoded-defaults.patch new file mode 100644 index 0000000000..6c92902bb3 --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/remove-hardcoded-defaults.patch @@ -0,0 +1,22 @@ +Index: git/Makefile +=================================================================== +--- git.orig/Makefile ++++ git/Makefile +@@ -29,8 +29,6 @@ + ## + build: all + +-CC=cc +- + JXR_VERSION=1.1 + + DIR_SRC=$(CURDIR) +@@ -65,7 +63,7 @@ endif + + CD=cd + MK_DIR=mkdir -p +-CFLAGS=-I. -Icommon/include -I$(DIR_SYS) $(ENDIANFLAG) -D__ANSI__ -DDISABLE_PERF_MEASUREMENT -w $(PICFLAG) -O ++CFLAGS+=$(ENDIANFLAG) -D__ANSI__ -DDISABLE_PERF_MEASUREMENT -w $(PICFLAG) -O + + STATIC_LIBRARIES=$(DIR_BUILD)/libjxrglue.a $(DIR_BUILD)/libjpegxr.a + SHARED_LIBRARIES=$(DIR_BUILD)/libjxrglue.so $(DIR_BUILD)/libjpegxr.so diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/typos.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/typos.patch new file mode 100644 index 0000000000..9de45d6002 --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/typos.patch @@ -0,0 +1,16 @@ +Description: Fix typos and remove some warnings +Author: Mathieu Malaterre + +Index: jxrlib/jxrencoderdecoder/JxrEncApp.c +=================================================================== +--- jxrlib.orig/jxrencoderdecoder/JxrEncApp.c ++++ jxrlib/jxrencoderdecoder/JxrEncApp.c +@@ -615,7 +615,7 @@ main(int argc, char* argv[]) + + //================================ + Call(PKCreateCodecFactory(&pCodecFactory, WMP_SDK_VERSION)); +- Call(pCodecFactory->CreateCodec(&IID_PKImageWmpEncode, &pEncoder)); ++ Call(pCodecFactory->CreateCodec(&IID_PKImageWmpEncode, (void**)&pEncoder)); + + //---------------------------------------------------------------- + Call(PKCreateTestFactory(&pTestFactory, WMP_SDK_VERSION)); diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib/usecmake.patch b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/usecmake.patch new file mode 100644 index 0000000000..36dad57f17 --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib/usecmake.patch @@ -0,0 +1,144 @@ +Description: Prefer a cmake based build system +Author: Mathieu Malaterre +Forwarded: https://jxrlib.codeplex.com/discussions/440294 + +Index: jxrlib/CMakeLists.txt +=================================================================== +--- /dev/null ++++ jxrlib/CMakeLists.txt +@@ -0,0 +1,135 @@ ++# Copyright Mathieu Malaterre ++# BSD (Same as jxrlib) ++cmake_minimum_required(VERSION 3.13) ++project(jxrlib C) ++ ++# Need shared libs for ABI ++set(BUILD_SHARED_LIBS ON) ++ ++# helper macro to preserve original Makefile convention ++macro(JXR_MAKE_OBJ SET_NAME) ++ foreach(src ${SRC_${SET_NAME}}) ++ list(APPEND OBJ_${SET_NAME} ${DIR_${SET_NAME}}/${src}) ++ endforeach() ++endmacro() ++ ++include(TestBigEndian) ++test_big_endian(ISBIGENDIAN) ++if(ISBIGENDIAN) ++ set(DEF_ENDIAN _BIG__ENDIAN_) ++endif() ++ ++set(DIR_SYS image/sys) ++set(DIR_DEC image/decode) ++set(DIR_ENC image/encode) ++ ++set(DIR_GLUE jxrgluelib) ++set(DIR_TEST jxrtestlib) ++set(DIR_EXEC jxrencoderdecoder) ++ ++if(NOT JXRLIB_INSTALL_BIN_DIR) ++ set(JXRLIB_INSTALL_BIN_DIR "bin") ++endif() ++ ++if(NOT JXRLIB_INSTALL_LIB_DIR) ++ set(JXRLIB_INSTALL_LIB_DIR "lib") ++endif() ++ ++if(NOT JXRLIB_INSTALL_INCLUDE_DIR) ++ set(JXRLIB_INSTALL_INCLUDE_DIR "include/jxrlib") ++endif() ++ ++include_directories( ++ common/include ++ ${DIR_SYS} ++ ${DIR_GLUE} ++ ${DIR_TEST} ++) ++ ++# where is strlcpy ? ++include(CheckSymbolExists) ++check_symbol_exists(strlcpy "string.h" HAVE_STRLCPY) ++#set(CMAKE_REQUIRED_LIBRARIES bsd) ++#CHECK_SYMBOL_EXISTS(strlcpy "string.h" HAVE_STRLCPY4) ++# on linux, strlcpy is in -lbsd: ++#if(NOT HAVE_STRLCPY) ++# include(CheckLibraryExists) ++# find_library(BSD_LIBRARY bsd) ++# check_library_exists(bsd "strlcpy" ${BSD_LIBRARY} HAVE_STRLCPY_BSD) ++#endif() ++ ++# JPEG-XR ++set(SRC_SYS adapthuff.c image.c strcodec.c strPredQuant.c strTransform.c perfTimerANSI.c) ++JXR_MAKE_OBJ(SYS) ++set(SRC_DEC decode.c postprocess.c segdec.c strdec.c strInvTransform.c strPredQuantDec.c JXRTranscode.c) ++JXR_MAKE_OBJ(DEC) ++set(SRC_ENC encode.c segenc.c strenc.c strFwdTransform.c strPredQuantEnc.c) ++JXR_MAKE_OBJ(ENC) ++ ++add_library(jpegxr ${OBJ_ENC} ${OBJ_DEC} ${OBJ_SYS}) ++set_property(TARGET jpegxr ++ PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN} ++) ++set_property(TARGET jpegxr PROPERTY LINK_INTERFACE_LIBRARIES "") ++set_property(TARGET jpegxr PROPERTY COMPILE_FLAGS -w) ++# VERSION/SOVERSION ++set_property(TARGET jpegxr PROPERTY VERSION 1.1) ++set_property(TARGET jpegxr PROPERTY SOVERSION 0) ++install(TARGETS jpegxr ++ EXPORT JXRLibTargets ++ RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR} COMPONENT Applications ++ LIBRARY DESTINATION ${JXRLIB_INSTALL_LIB_DIR} COMPONENT Libraries ++) ++ ++# JXR-GLUE ++set(SRC_GLUE JXRGlue.c JXRMeta.c JXRGluePFC.c JXRGlueJxr.c) ++JXR_MAKE_OBJ(GLUE) ++set(SRC_TEST JXRTest.c JXRTestBmp.c JXRTestHdr.c JXRTestPnm.c JXRTestTif.c JXRTestYUV.c) ++JXR_MAKE_OBJ(TEST) ++ ++add_library(jxrglue ${OBJ_GLUE} ${OBJ_TEST}) ++set_property(TARGET jxrglue ++ PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN} ++) ++#set_property(TARGET jxrglue PROPERTY LINK_INTERFACE_LIBRARIES "") ++set_property(TARGET jxrglue PROPERTY COMPILE_FLAGS -w) ++# VERSION/SOVERSION ++set_property(TARGET jxrglue PROPERTY VERSION 1.1) ++set_property(TARGET jxrglue PROPERTY SOVERSION 0) ++install(TARGETS jxrglue ++ EXPORT JXRLibTargets ++ RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR} COMPONENT Applications ++ LIBRARY DESTINATION ${JXRLIB_INSTALL_LIB_DIR} COMPONENT Libraries ++) ++#if(HAVE_STRLCPY_BSD) ++# target_link_libraries(jxrglue ${BSD_LIBRARY}) ++#endif() ++#target_link_libraries(jxrglue m) ++target_link_libraries(jxrglue PRIVATE jpegxr m) ++# Enc app files ++set(ENCAPP JxrEncApp) ++add_executable(${ENCAPP} ${DIR_EXEC}/${ENCAPP}.c) ++set_property(TARGET ${ENCAPP} ++ PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN} ++) ++#set_property(TARGET ${ENCAPP} PROPERTY COMPILE_FLAGS -w) ++target_link_libraries(${ENCAPP} jxrglue) # jpegxr) ++install(TARGETS ${ENCAPP} RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR}) ++# Dec app files ++set(DECAPP JxrDecApp) ++add_executable(${DECAPP} ${DIR_EXEC}/${DECAPP}.c) ++set_property(TARGET ${DECAPP} ++ PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN} ++) ++set_property(TARGET ${DECAPP} PROPERTY COMPILE_FLAGS -w) ++target_link_libraries(${DECAPP} jxrglue) # jpegxr) ++install(TARGETS ${DECAPP} RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR}) ++ ++# install rules ++install(FILES jxrgluelib/JXRGlue.h jxrgluelib/JXRMeta.h jxrtestlib/JXRTest.h ++ image/sys/windowsmediaphoto.h ++ DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR} COMPONENT Headers ++) ++install(DIRECTORY common/include/ DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR} ++ FILES_MATCHING PATTERN "*.h" ++) diff --git a/meta-ros-common/recipes-graphics/jxrlib/jxrlib_1.2.bb b/meta-ros-common/recipes-graphics/jxrlib/jxrlib_1.2.bb new file mode 100644 index 0000000000..6ba07f0194 --- /dev/null +++ b/meta-ros-common/recipes-graphics/jxrlib/jxrlib_1.2.bb @@ -0,0 +1,35 @@ +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ea034eb982f97aff03a4704f608ed2b4" + +SRC_URI = " \ + git://salsa.debian.org/debian-phototools-team/jxrlib.git;protocol=https;branch=master \ + file://usecmake.patch \ + file://typos.patch \ + file://cp1251.patch \ + file://bug771912.patch \ + file://bug803743.patch \ + file://bump_version.patch \ + file://pkg-config.patch \ + file://pie.patch \ + file://082bb032be1f6c75173bf603252e4f37bfded9fa.patch \ + file://31df7f88539b77d46ebf408b6a215930ae63bbdd.patch \ + file://a684f95783f2f81bd13bf1f8b03ceb12aa87d661.patch \ + file://ab9c6b78b7ad3205bdb91ef725b09ddbe3c8945d.patch \ + file://remove-hardcoded-defaults.patch \ +" + +# Modify these as desired +PV = "1.2+git${SRCPV}" +SRCREV = "1b84578fa80eae689c2677970cda64f53953880b" + +S = "${WORKDIR}/git" + +inherit cmake + +# JXRGlueJxr.c:66:48: error: implicit declaration of function 'wcslen' [-Wimplicit-function-declaration] +CFLAGS += "-Wno-error=implicit-function-declaration" + +# JXRTest.c:211:33: error: passing argument 2 of 'GetTestDecodeIID' from incompatible pointer type [-Wincompatible-pointer-types] +CFLAGS += "-Wno-error=incompatible-pointer-types" + +BBCLASSEXTEND = "native nativesdk" From f8d27f6b7ba1f150b1da8c39b6b9c27ee7d7d625 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:42:04 -0700 Subject: [PATCH 038/152] meta-ros-common: Add octomap recipe Add a system-provided version of octomap to replace the one provided by ROS itself. This allows non-ROS packages to use it like dartsim. Signed-off-by: Rob Woolley --- .../recipes-support/octomap/octomap_1.10.0.bb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 meta-ros-common/recipes-support/octomap/octomap_1.10.0.bb diff --git a/meta-ros-common/recipes-support/octomap/octomap_1.10.0.bb b/meta-ros-common/recipes-support/octomap/octomap_1.10.0.bb new file mode 100644 index 0000000000..8fcc68ae16 --- /dev/null +++ b/meta-ros-common/recipes-support/octomap/octomap_1.10.0.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "The OctoMap library implements a 3D occupancy grid mapping approach, providing data structures and mapping algorithms in C++. The map implementation is based on an octree. See http://octomap.github.io for details." +AUTHOR = "Armin Hornung " +HOMEPAGE = "http://octomap.github.io" +SECTION = "devel" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9b0e1f01a68f441eeaf7b5e18812d3c8" + +SRC_URI = "git://github.com/OctoMap/octomap.git;protocol=https;branch=devel" + +SRCREV = "863e069489ef619d7179e3b21480dffb41b2af66" + +S = "${WORKDIR}/git/octomap" + +inherit cmake + +FILES:${PN}:prepend = " \ + ${datadir}/ament_index \ +" From ccd5473473b3513af3d7f2b7943a2c83855d8a55 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:49:04 -0700 Subject: [PATCH 039/152] meta-ros-common: ogre-next: Add new recipe This recipe is needed for newer releases of Gazebo. Signed-off-by: Rob Woolley --- .../0001-Fixed-compile-error-2.2.0.patch | 75 +++++++++++ .../0001-Fixed-compile-error-2.3.3.patch | 118 ++++++++++++++++++ .../ogre-next/0001-Fixed-macOS-build.patch | 53 ++++++++ ...01-Neon-is-architectural-for-AArch64.patch | 25 ++++ ...2-Use_OGRE_NEXT_prefix_for_libraries.patch | 75 +++++++++++ .../ogre-next/ogre-next_2.2.0.bb | 68 ++++++++++ .../ogre-next/ogre-next_2.3.3.bb | 82 ++++++++++++ 7 files changed, 496 insertions(+) create mode 100644 meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Fixed-compile-error-2.2.0.patch create mode 100644 meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Fixed-compile-error-2.3.3.patch create mode 100644 meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Fixed-macOS-build.patch create mode 100644 meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Neon-is-architectural-for-AArch64.patch create mode 100644 meta-ros-common/recipes-devtools/ogre-next/ogre-next/0002-Use_OGRE_NEXT_prefix_for_libraries.patch create mode 100644 meta-ros-common/recipes-devtools/ogre-next/ogre-next_2.2.0.bb create mode 100644 meta-ros-common/recipes-devtools/ogre-next/ogre-next_2.3.3.bb diff --git a/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Fixed-compile-error-2.2.0.patch b/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Fixed-compile-error-2.2.0.patch new file mode 100644 index 0000000000..9aae8066b4 --- /dev/null +++ b/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Fixed-compile-error-2.2.0.patch @@ -0,0 +1,75 @@ +Upstream-Status: Submitted [https://github.com/OGRECave/ogre-next/issues/430] + +From 480fb368e288f0a4e1c73f6b0a60f27743d5cb63 Mon Sep 17 00:00:00 2001 +From: bchoi +Date: Mon, 22 Jan 2024 16:22:31 +0900 +Subject: [PATCH] Fixed compile error + +--- + .../Hlms/Pbs/src/Vct/OgreVctCascadedVoxelizer.cpp | 2 +- + .../include/Math/Array/NEON/Single/OgreMathlibNEON.h | 2 +- + OgreMain/src/OgreDefaultSceneQueries.cpp | 2 +- + OgreMain/src/OgreMovableObject.cpp | 2 +- + Samples/2.0/ApiUsage/AnimationTagPoint/CMakeLists.txt | 6 ++++-- + 4 files changed, 17 insertions(+), 7 deletions(-) + +Index: git/OgreMain/include/Math/Array/NEON/Single/OgreMathlibNEON.h +=================================================================== +--- git.orig/OgreMain/include/Math/Array/NEON/Single/OgreMathlibNEON.h ++++ git/OgreMain/include/Math/Array/NEON/Single/OgreMathlibNEON.h +@@ -645,7 +645,7 @@ namespace Ogre + //Netwon-Raphson, 2 iterations. + ArrayReal fStep0 = vrsqrteq_f32( f ); + //Nuke NaN when f == 0 +- fStep0 = vreinterpretq_f32_u32( vandq_u32( vtstq_u32( f, f ), ++ fStep0 = vreinterpretq_f32_u32( vandq_u32( vtstq_u32((uint32x4_t)f, (uint32x4_t)f ), + vreinterpretq_u32_f32( fStep0 ) ) ); + // step fStep0 = 1 / sqrt(x) + const ArrayReal fStepParm0 = vmulq_f32( f, fStep0 ); +Index: git/OgreMain/src/OgreDefaultSceneQueries.cpp +=================================================================== +--- git.orig/OgreMain/src/OgreDefaultSceneQueries.cpp ++++ git/OgreMain/src/OgreDefaultSceneQueries.cpp +@@ -535,7 +535,7 @@ namespace Ogre { + { + //For each volume test all planes and AND the dot product. + //If one is false, then we dont intersect with this volume +- ArrayMaskR singleVolumeMask = CastIntToReal( Mathlib::SetAll( 0xffffffff ) ); ++ ArrayMaskR singleVolumeMask = (ArrayMaskR) CastIntToReal( Mathlib::SetAll( 0xffffffff ) ); + ArrayReal dotResult; + ArrayVector3 centerPlusFlippedHS; + +Index: git/OgreMain/src/OgreMovableObject.cpp +=================================================================== +--- git.orig/OgreMain/src/OgreMovableObject.cpp ++++ git/OgreMain/src/OgreMovableObject.cpp +@@ -472,7 +472,7 @@ namespace Ogre { + planes[i].planeNegD = Mathlib::SetAll( -frustumPlanes[i].d ); + } + +- const ArrayMaskR ignoreRenderingDistance = CastIntToReal( ++ const ArrayMaskR ignoreRenderingDistance = (ArrayMaskR) CastIntToReal( + Mathlib::SetAll( lodCamera->getUseRenderingDistance() ? 0 : 0xffffffff ) ); + + //TODO: Profile whether we should use XOR to flip the sign or simple multiplication. +Index: git/Samples/2.0/ApiUsage/AnimationTagPoint/CMakeLists.txt +=================================================================== +--- git.orig/Samples/2.0/ApiUsage/AnimationTagPoint/CMakeLists.txt ++++ git/Samples/2.0/ApiUsage/AnimationTagPoint/CMakeLists.txt +@@ -11,12 +11,14 @@ macro( add_recursive dir retVal ) + file( GLOB_RECURSE ${retVal} ${dir}/*.h ${dir}/*.cpp ${dir}/*.c ) + endmacro() + ++set(OGRE_LIBRARIES ${OGRE_LIBRARIES} OgreMain) ++ + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) + + add_recursive( ./ SOURCE_FILES ) + +-ogre_add_executable(Sample_AnimationTagPoint WIN32 MACOSX_BUNDLE ${SOURCE_FILES} ${SAMPLE_COMMON_RESOURCES}) ++ogre_add_executable(Sample_AnimationTagPoint ${SOURCE_FILES} ${SAMPLE_COMMON_RESOURCES}) + +-target_link_libraries(Sample_AnimationTagPoint ${OGRE_LIBRARIES} ${OGRE_SAMPLES_LIBRARIES}) ++target_link_libraries(Sample_AnimationTagPoint ${OGRE_SAMPLES_LIBRARIES} ${OGRE_LIBRARIES}) + ogre_config_sample_lib(Sample_AnimationTagPoint) + ogre_config_sample_pkg(Sample_AnimationTagPoint) diff --git a/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Fixed-compile-error-2.3.3.patch b/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Fixed-compile-error-2.3.3.patch new file mode 100644 index 0000000000..fc6593d67d --- /dev/null +++ b/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Fixed-compile-error-2.3.3.patch @@ -0,0 +1,118 @@ +Upstream-Status: Submitted [https://github.com/OGRECave/ogre-next/issues/430] + +From 480fb368e288f0a4e1c73f6b0a60f27743d5cb63 Mon Sep 17 00:00:00 2001 +From: bchoi +Date: Mon, 22 Jan 2024 16:22:31 +0900 +Subject: [PATCH] Fixed compile error + +--- + .../Hlms/Pbs/src/Vct/OgreVctCascadedVoxelizer.cpp | 2 +- + .../include/Math/Array/NEON/Single/OgreMathlibNEON.h | 2 +- + OgreMain/src/OgreDefaultSceneQueries.cpp | 2 +- + OgreMain/src/OgreMovableObject.cpp | 2 +- + Samples/2.0/ApiUsage/AnimationTagPoint/CMakeLists.txt | 6 ++++-- + Tools/CmgenToCubemap/CMakeLists.txt | 10 +++++++++- + 6 files changed, 17 insertions(+), 7 deletions(-) + +diff --git a/Components/Hlms/Pbs/src/Vct/OgreVctCascadedVoxelizer.cpp b/Components/Hlms/Pbs/src/Vct/OgreVctCascadedVoxelizer.cpp +index 797f3d68a8..852dab96ec 100644 +--- a/Components/Hlms/Pbs/src/Vct/OgreVctCascadedVoxelizer.cpp ++++ b/Components/Hlms/Pbs/src/Vct/OgreVctCascadedVoxelizer.cpp +@@ -29,8 +29,8 @@ THE SOFTWARE. + #include "OgreStableHeaders.h" + + #include "Vct/OgreVctCascadedVoxelizer.h" +- + #include "Compositor/OgreCompositorManager2.h" ++#include "Math/Array/OgreMathlib.h" + #include "Math/Array/OgreBooleanMask.h" + #include "OgreItem.h" + #include "OgreSceneManager.h" +diff --git a/OgreMain/include/Math/Array/NEON/Single/OgreMathlibNEON.h b/OgreMain/include/Math/Array/NEON/Single/OgreMathlibNEON.h +index 94f7bdfd1d..6cfea95135 100644 +--- a/OgreMain/include/Math/Array/NEON/Single/OgreMathlibNEON.h ++++ b/OgreMain/include/Math/Array/NEON/Single/OgreMathlibNEON.h +@@ -601,7 +601,7 @@ namespace Ogre + //Netwon-Raphson, 2 iterations. + ArrayReal fStep0 = vrsqrteq_f32( f ); + //Nuke NaN when f == 0 +- fStep0 = vreinterpretq_f32_u32( vandq_u32( vtstq_u32( f, f ), ++ fStep0 = vreinterpretq_f32_u32( vandq_u32( vtstq_u32((uint32x4_t)f, (uint32x4_t)f ), + vreinterpretq_u32_f32( fStep0 ) ) ); + // step fStep0 = 1 / sqrt(x) + const ArrayReal fStepParm0 = vmulq_f32( f, fStep0 ); +diff --git a/OgreMain/src/OgreDefaultSceneQueries.cpp b/OgreMain/src/OgreDefaultSceneQueries.cpp +index b275a7df66..3dee473700 100644 +--- a/OgreMain/src/OgreDefaultSceneQueries.cpp ++++ b/OgreMain/src/OgreDefaultSceneQueries.cpp +@@ -537,7 +537,7 @@ namespace Ogre { + { + //For each volume test all planes and AND the dot product. + //If one is false, then we dont intersect with this volume +- ArrayMaskR singleVolumeMask = CastIntToReal( Mathlib::SetAll( 0xffffffff ) ); ++ ArrayMaskR singleVolumeMask = (ArrayMaskR) CastIntToReal( Mathlib::SetAll( 0xffffffff ) ); + ArrayReal dotResult; + ArrayVector3 centerPlusFlippedHS; + +diff --git a/OgreMain/src/OgreMovableObject.cpp b/OgreMain/src/OgreMovableObject.cpp +index 860e405c9a..16fcd67f1c 100644 +--- a/OgreMain/src/OgreMovableObject.cpp ++++ b/OgreMain/src/OgreMovableObject.cpp +@@ -500,7 +500,7 @@ namespace Ogre { + planes[i].planeNegD = Mathlib::SetAll( -frustumPlanes[i].d ); + } + +- const ArrayMaskR ignoreRenderingDistance = CastIntToReal( ++ const ArrayMaskR ignoreRenderingDistance = (ArrayMaskR) CastIntToReal( + Mathlib::SetAll( lodCamera->getUseRenderingDistance() ? 0 : 0xffffffff ) ); + + //TODO: Profile whether we should use XOR to flip the sign or simple multiplication. +diff --git a/Samples/2.0/ApiUsage/AnimationTagPoint/CMakeLists.txt b/Samples/2.0/ApiUsage/AnimationTagPoint/CMakeLists.txt +index c19bdd5cce..8b9a115aab 100644 +--- a/Samples/2.0/ApiUsage/AnimationTagPoint/CMakeLists.txt ++++ b/Samples/2.0/ApiUsage/AnimationTagPoint/CMakeLists.txt +@@ -11,12 +11,14 @@ macro( add_recursive dir retVal ) + file( GLOB_RECURSE ${retVal} ${dir}/*.h ${dir}/*.cpp ${dir}/*.c ) + endmacro() + ++set(OGRE_LIBRARIES ${OGRE_LIBRARIES} OgreMain) ++ + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) + + add_recursive( ./ SOURCE_FILES ) + +-ogre_add_executable(Sample_AnimationTagPoint WIN32 MACOSX_BUNDLE ${SOURCE_FILES} ${SAMPLE_COMMON_RESOURCES}) ++ogre_add_executable(Sample_AnimationTagPoint ${SOURCE_FILES} ${SAMPLE_COMMON_RESOURCES}) + +-target_link_libraries(Sample_AnimationTagPoint ${OGRE_LIBRARIES} ${OGRE_SAMPLES_LIBRARIES}) ++target_link_libraries(Sample_AnimationTagPoint ${OGRE_SAMPLES_LIBRARIES} ${OGRE_LIBRARIES}) + ogre_config_sample_lib(Sample_AnimationTagPoint) + ogre_config_sample_pkg(Sample_AnimationTagPoint) +diff --git a/Tools/CmgenToCubemap/CMakeLists.txt b/Tools/CmgenToCubemap/CMakeLists.txt +index c3d67a6c0c..c55fa27bf4 100644 +--- a/Tools/CmgenToCubemap/CMakeLists.txt ++++ b/Tools/CmgenToCubemap/CMakeLists.txt +@@ -13,11 +13,19 @@ macro( add_recursive dir retVal ) + file( GLOB_RECURSE ${retVal} ${dir}/*.h ${dir}/*.cpp ${dir}/*.c ) + endmacro() + ++find_package(JPEG REQUIRED) ++find_package(PNG REQUIRED) ++find_package(TIFF REQUIRED) ++find_package(ZLIB REQUIRED) ++ ++set(PICTURE_LIBS ${JPEG} ${PNG} ${TIFF} ${ZLIB}) ++set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${OGRE_NEXT}Main) ++ + add_recursive( ./ SOURCE_FILES ) + + ogre_add_executable(OgreCmgenToCubemap ${SOURCE_FILES}) + +-target_link_libraries(OgreCmgenToCubemap ${OGRE_LIBRARIES}) ++target_link_libraries(OgreCmgenToCubemap ${OGRE_LIBRARIES} ${PICTURE_LIBS}) + + if (APPLE) + set_target_properties(OgreCmgenToCubemap PROPERTIES +-- +2.25.1 + diff --git a/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Fixed-macOS-build.patch b/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Fixed-macOS-build.patch new file mode 100644 index 0000000000..08855c450a --- /dev/null +++ b/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Fixed-macOS-build.patch @@ -0,0 +1,53 @@ +From 16e2bd3c06fee6039d411c9f2867985fd931e492 Mon Sep 17 00:00:00 2001 +From: Eugene Golushkov +Date: Thu, 3 Dec 2020 12:35:58 +0200 +Subject: [PATCH] Fixed macOS build + +--- + OgreMain/src/OgrePlatformInformation.cpp | 27 +++++++----------------- + 1 file changed, 8 insertions(+), 19 deletions(-) + +Index: git/OgreMain/src/OgrePlatformInformation.cpp +=================================================================== +--- git.orig/OgreMain/src/OgrePlatformInformation.cpp ++++ git/OgreMain/src/OgrePlatformInformation.cpp +@@ -39,31 +39,19 @@ THE SOFTWARE. + #elif (OGRE_COMPILER == OGRE_COMPILER_GNUC || OGRE_COMPILER == OGRE_COMPILER_CLANG) && OGRE_PLATFORM != OGRE_PLATFORM_NACL + #include + #include +-#if OGRE_PLATFORM != OGRE_PLATFORM_WIN32 +- #if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID +- #include +- #else +- #include +- #endif + #endif + +- #if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID +- #include +- #elif OGRE_CPU == OGRE_CPU_ARM +- #if __MACH__ +- #include +- #ifndef CPU_SUBTYPE_ARM64_V8 +- #define CPU_SUBTYPE_ARM64_V8 ((cpu_subtype_t) 1) +- #endif +- #ifndef CPU_SUBTYPE_ARM_V8 +- #define CPU_SUBTYPE_ARM_V8 ((cpu_subtype_t) 13) +- #endif +- #endif +- #endif ++#if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID ++ #include ++ #include ++#endif ++#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE || OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS ++ #include ++ #include + #endif + + #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WINRT +- #include "windows.h" ++ #include + #endif + + // Yes, I know, this file looks very ugly, but there aren't other ways to do it better. diff --git a/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Neon-is-architectural-for-AArch64.patch b/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Neon-is-architectural-for-AArch64.patch new file mode 100644 index 0000000000..d5a160942b --- /dev/null +++ b/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0001-Neon-is-architectural-for-AArch64.patch @@ -0,0 +1,25 @@ +From f2769df973af39e56538c70ebf2950929135f777 Mon Sep 17 00:00:00 2001 +From: Eugene Golushkov +Date: Mon, 15 Nov 2021 19:41:27 +0200 +Subject: [PATCH] Neon is architectural for AArch64 + +--- + OgreMain/include/OgrePlatform.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/OgreMain/include/OgrePlatform.h b/OgreMain/include/OgrePlatform.h +index 8a9826bd80..c94904aebe 100644 +--- a/OgreMain/include/OgrePlatformInformation.h ++++ b/OgreMain/include/OgrePlatformInformation.h +@@ -101,7 +101,7 @@ + + /* Define whether or not Ogre compiled with NEON support. + */ +- #if OGRE_DOUBLE_PRECISION == 0 && OGRE_CPU == OGRE_CPU_ARM && (OGRE_COMPILER == OGRE_COMPILER_GNUC || OGRE_COMPILER == OGRE_COMPILER_CLANG) && defined(__ARM_NEON__) ++ #if OGRE_DOUBLE_PRECISION == 0 && OGRE_CPU == OGRE_CPU_ARM && ( defined(__aarch64__) || defined(__ARM_NEON__) ) + # define __OGRE_HAVE_NEON 1 + #endif + #endif +-- +2.43.0 + diff --git a/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0002-Use_OGRE_NEXT_prefix_for_libraries.patch b/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0002-Use_OGRE_NEXT_prefix_for_libraries.patch new file mode 100644 index 0000000000..440f07251c --- /dev/null +++ b/meta-ros-common/recipes-devtools/ogre-next/ogre-next/0002-Use_OGRE_NEXT_prefix_for_libraries.patch @@ -0,0 +1,75 @@ +Index: git/CMake/Templates/OGREConfig.cmake.in +=================================================================== +--- git.orig/CMake/Templates/OGREConfig.cmake.in ++++ git/CMake/Templates/OGREConfig.cmake.in +@@ -21,7 +21,7 @@ include(FindPackageMessage) + set(OGRE_PREFIX_DIR "@CMAKE_INSTALL_PREFIX@") + get_filename_component(OGRE_LIBRARY_DIRS "${OGRE_PREFIX_DIR}/lib" ABSOLUTE) + get_filename_component(OGRE_INCLUDE_DIRS "${OGRE_PREFIX_DIR}/include/OGRE" ABSOLUTE) +-set(OGRE_LIBRARIES "OgreMain") ++set(OGRE_LIBRARIES "@OGRE_NEXT@Main") + + message(STATUS "Found OGRE") + message(STATUS " libraries : '${OGRE_LIBRARIES}' from ${OGRE_LIBRARY_DIRS}") +Index: git/Samples/2.0/ApiUsage/AnimationTagPoint/CMakeLists.txt +=================================================================== +--- git.orig/Samples/2.0/ApiUsage/AnimationTagPoint/CMakeLists.txt ++++ git/Samples/2.0/ApiUsage/AnimationTagPoint/CMakeLists.txt +@@ -11,7 +11,7 @@ macro( add_recursive dir retVal ) + file( GLOB_RECURSE ${retVal} ${dir}/*.h ${dir}/*.cpp ${dir}/*.c ) + endmacro() + +-set(OGRE_LIBRARIES ${OGRE_LIBRARIES} OgreMain) ++set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${OGRE_NEXT}Main) + + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) + +Index: git/Tests/CMakeLists.txt +=================================================================== +--- git.orig/Tests/CMakeLists.txt ++++ git/Tests/CMakeLists.txt +@@ -113,7 +113,7 @@ if (OGRE_BUILD_TESTS) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Components/Paging/include) + ogre_add_component_include_dir(Paging) + +- set(OGRE_LIBRARIES ${OGRE_LIBRARIES} OgrePaging) ++ set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${OGRE_NEXT}Paging) + list(APPEND HEADER_FILES Components/Paging/include/PageCoreTests.h) + list(APPEND SOURCE_FILES Components/Paging/src/PageCoreTests.cpp) + endif () +@@ -121,7 +121,7 @@ if (OGRE_BUILD_TESTS) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Components/MeshLodGenerator/include) + ogre_add_component_include_dir(MeshLodGenerator) + +- set(OGRE_LIBRARIES ${OGRE_LIBRARIES} OgreMeshLodGenerator) ++ set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${OGRE_NEXT}MeshLodGenerator) + list(APPEND HEADER_FILES Components/MeshLodGenerator/include/MeshLodTests.h) + list(APPEND SOURCE_FILES Components/MeshLodGenerator/src/MeshLodTests.cpp) + endif () +@@ -129,7 +129,7 @@ if (OGRE_BUILD_TESTS) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Components/Terrain/include) + ogre_add_component_include_dir(Terrain) + +- set(OGRE_LIBRARIES ${OGRE_LIBRARIES} OgreTerrain) ++ set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${OGRE_NEXT}Terrain) + list(APPEND HEADER_FILES Components/Terrain/include/TerrainTests.h) + list(APPEND SOURCE_FILES Components/Terrain/src/TerrainTests.cpp) + endif () +@@ -137,7 +137,7 @@ if (OGRE_BUILD_TESTS) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Components/Property/include + ${OGRE_SOURCE_DIR}/Components/Property/include) + +- set(OGRE_LIBRARIES ${OGRE_LIBRARIES} OgreProperty) ++ set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${OGRE_NEXT}Property) + list(APPEND HEADER_FILES Components/Property/include/PropertyTests.h) + list(APPEND SOURCE_FILES Components/Property/src/PropertyTests.cpp) + endif () +@@ -265,7 +265,7 @@ if (OGRE_BUILD_TESTS) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Components/MeshLodGenerator/include) + ogre_add_component_include_dir(MeshLodGenerator) + +- set(OGRE_LIBRARIES ${OGRE_LIBRARIES} OgreMeshLodGenerator) ++ set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${OGRE_NEXT}MeshLodGenerator) + list(APPEND HEADER_FILES Components/MeshLodGenerator/include/MeshLodTests.h) + list(APPEND SOURCE_FILES Components/MeshLodGenerator/src/MeshLodTests.cpp) + endif () diff --git a/meta-ros-common/recipes-devtools/ogre-next/ogre-next_2.2.0.bb b/meta-ros-common/recipes-devtools/ogre-next/ogre-next_2.2.0.bb new file mode 100644 index 0000000000..09e5f600b5 --- /dev/null +++ b/meta-ros-common/recipes-devtools/ogre-next/ogre-next_2.2.0.bb @@ -0,0 +1,68 @@ +# Copyright (c) 2023 Wind River Systems, Inc. + +LICENSE = "MIT & Unknown" +LIC_FILES_CHKSUM = "file://CMake/Templates/DemoLicense.rtf;md5=2711c49576d18cf781ec81aad76f40d6 \ + file://COPYING;md5=65d1ee510d57bbd05663424f2ff8d660 \ + file://OgreMain/src/nedmalloc/License.txt;md5=e4224ccaecb14d942c71d31bef20d78c \ + file://Samples/Media/DeferredShadingMedia/COPYING;md5=e3b8d8073136f13f04ebb6f8b84efba6 \ + file://Samples/Media/materials/textures/Cubemaps/License.txt;md5=81b3db517e68c27c535791b2276d5ffd \ + file://Tools/Common/setup/License.rtf;md5=e1311ad52d6fe736b3819ce831a2a595 \ + file://Tools/MaterialEditor/wxscintilla_1.69.2/src/scintilla/License.txt;md5=d680acd8db69807fdfb587a342690eac \ + file://Tools/MilkshapeExport/setup/License.rtf;md5=e1311ad52d6fe736b3819ce831a2a595 \ + file://Tools/XSIExport/setup/License.rtf;md5=e1311ad52d6fe736b3819ce831a2a595" + +SRC_URI = "git://github.com/OGRECave/ogre-next.git;protocol=https;branch=master \ + file://0001-Fixed-compile-error-2.2.0.patch \ + file://0001-Neon-is-architectural-for-AArch64.patch \ + file://0001-Fixed-macOS-build.patch \ +" + +PV = "2.2.0" +SRCREV = "6a814a02e69dfe3c006baf8ec6399aeb611452ca" + +S = "${WORKDIR}/git" + +inherit cmake features_check pkgconfig + +DEPENDS = " \ + cppunit \ + doxygen-native \ + freeimage \ + freetype \ + libsdl2 \ + libx11 \ + libxaw \ + rapidjson \ + renderdoc \ + tbb \ + libtinyxml \ + zlib \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl libglu', '', d)} \ +" + +FILES:${PN}-dev += "${libdir}/OGRE-Next/cmake ${libdir}/OGRE-Next/*${SOLIBSDEV}" +FILES:${PN} += "${datadir}/OGRE-Next ${libdir}/OGRE-Next" + +REQUIRED_DISTRO_FEATURES = "x11" + +EXTRA_OECMAKE += " \ + -DOGRE_SIMD_NEON:BOOL=FALSE \ + -DOGRE_SIMD_SSE2:BOOL=FALSE \ +" + +do_install:append() { + # pkgconfig + sed -i -e "s|/OGRE|/OGRE-Next|g" ${D}${libdir}/pkgconfig/*.pc + + # CMake + sed -i -e "s|share/OGRE/media|share/OGRE-Next/media|g" ${D}${libdir}/OGRE/cmake/FindOGRE.cmake + mv ${D}${libdir}/OGRE/cmake/FindOGRE.cmake ${D}${libdir}/OGRE/cmake/FindOGRE2.cmake + + # Data files + sed -i -e "s|${datadir}/OGRE|${datadir}/OGRE-Next|g" ${D}${datadir}/OGRE/resources.cfg + sed -i -e "s|share/OGRE/docs|share/OGRE-Next/docs|g" ${D}${datadir}/OGRE/docs/CMakeLists.txt + + mv ${D}${datadir}/OGRE ${D}${datadir}/OGRE-Next + + mv ${D}${libdir}/OGRE ${D}${libdir}/OGRE-Next +} diff --git a/meta-ros-common/recipes-devtools/ogre-next/ogre-next_2.3.3.bb b/meta-ros-common/recipes-devtools/ogre-next/ogre-next_2.3.3.bb new file mode 100644 index 0000000000..9985d9ace3 --- /dev/null +++ b/meta-ros-common/recipes-devtools/ogre-next/ogre-next_2.3.3.bb @@ -0,0 +1,82 @@ +# Copyright (c) 2023 Wind River Systems, Inc. + +LICENSE = "MIT & Unknown" +LIC_FILES_CHKSUM = "file://CMake/Templates/DemoLicense.rtf;md5=2711c49576d18cf781ec81aad76f40d6 \ + file://COPYING;md5=65d1ee510d57bbd05663424f2ff8d660 \ + file://OgreMain/src/nedmalloc/License.txt;md5=e4224ccaecb14d942c71d31bef20d78c \ + file://Samples/Media/DeferredShadingMedia/COPYING;md5=e3b8d8073136f13f04ebb6f8b84efba6 \ + file://Samples/Media/materials/textures/Cubemaps/License.txt;md5=81b3db517e68c27c535791b2276d5ffd \ + file://Tools/Common/setup/License.rtf;md5=e1311ad52d6fe736b3819ce831a2a595 \ + file://Tools/MaterialEditor/wxscintilla_1.69.2/src/scintilla/License.txt;md5=d680acd8db69807fdfb587a342690eac \ + file://Tools/MilkshapeExport/setup/License.rtf;md5=e1311ad52d6fe736b3819ce831a2a595 \ + file://Tools/XSIExport/setup/License.rtf;md5=e1311ad52d6fe736b3819ce831a2a595" + +SRC_URI = "git://github.com/OGRECave/ogre-next.git;protocol=https;branch=master \ + file://0001-Fixed-compile-error-2.3.3.patch \ + file://0002-Use_OGRE_NEXT_prefix_for_libraries.patch" + +PV = "2.3.3" +SRCREV = "8d4daeaf46d7d8f85f1833f17daedd7dac05daec" + +S = "${WORKDIR}/git" + +inherit cmake features_check pkgconfig + +DEPENDS = " \ + cppunit \ + doxygen-native \ + freeimage \ + freetype \ + glslang \ + libsdl2 \ + libtinyxml \ + libx11 \ + libxaw \ + libxcb \ + libxrandr \ + rapidjson \ + renderdoc \ + mesa \ + poco \ + shaderc \ + tbb \ + vulkan-headers \ + zlib \ + zziplib \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl libglu', '', d)} \ +" + +EXTRA_OECMAKE += " \ + -DOGRE_USE_NEW_PROJECT_NAME=ON \ + -DOGRE_FULL_RPATH:BOOL=FALSE \ + -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS:BOOL=TRUE \ + -DOGRE_BUILD_RENDERSYSTEM_GLES2:BOOL=FALSE \ + -DOGRE_BUILD_RENDERSYSTEM_VULKAN:BOOL=TRUE \ + -DOGRE_BUILD_COMPONENT_HLMS:BOOL=TRUE \ + -DOGRE_BUILD_COMPONENT_PLANAR_REFLECTIONS:BOOL=TRUE \ + -DOGRE_INSTALL_DOCS:BOOL=TRUE \ + -DOGRE_BUILD_SAMPLES2:BOOL=FALSE \ + -DOGRE_INSTALL_SAMPLES:BOOL=FALSE \ + -DOGRE_VULKAN_WINDOW_NULL:BOOL=TRUE \ + -DOGRE_CONFIG_UNIX_NO_X11:BOOL=FALSE \ + -DOGRE_GLSUPPORT_USE_EGL_HEADLESS:BOOL=TRUE \ + -DOGRE_GLSUPPORT_USE_GLX:BOOL=TRUE \ +" + +# This may be necessary if the GLES2 render system is enabled instead of GL3PLUS: +# +# do_configure:append() { +# # Remove the old copy of glxext.h to use the system one that defines PFNGLXSWAPINTERVALMESAPROC +# # https://gitlab.freedesktop.org/mesa/mesa/-/commit/cc93f08f1e3e84f09cb2bb587d6de702dc836478 +# # +# # These resolves a build error when using GL3Plus: +# # git/RenderSystems/GL3Plus/src/windowing/GLX/OgreGLXWindow.cpp:720:9: error: 'PFNGLXSWAPINTERVALMESAPROC' +# # was not declared in this scope; did you mean 'PFNGLXSWAPINTERVALEXTPROC'? +# # git/RenderSystems/GL3Plus/src/windowing/GLX/OgreGLXWindow.cpp:721:9: error: '_glXSwapInterval +# rm ${S}/RenderSystems/GL3Plus/include/GL/glxext.h +#} + +FILES:${PN}-dev += "${libdir}/OGRE-Next/cmake ${libdir}/OGRE-Next/*${SOLIBSDEV}" +FILES:${PN} += "${datadir}/OGRE-Next ${libdir}/OGRE-Next " + +REQUIRED_DISTRO_FEATURES = "x11" From de0f7880eb894369f8c1c6609ca811dcc6515668 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:51:22 -0700 Subject: [PATCH 040/152] meta-ros-common: dartsim: Add new recipe Add new dartsim recipe as a dependency for gz-physics and gz-sim. Signed-off-by: Rob Woolley --- .../dartsim/fix-pkgconfig-cflags.patch | 19 +++++++ .../dartsim/dartsim/python3-fixes.patch | 42 ++++++++++++++ .../dartsim/dartsim/remove-buildpath.patch | 32 +++++++++++ .../dartsim/use-system-googletest.patch | 29 ++++++++++ .../dartsim/dartsim/use-system-pybind11.patch | 25 ++++++++ .../dartsim/dartsim_6.14.4.bb | 57 +++++++++++++++++++ 6 files changed, 204 insertions(+) create mode 100644 meta-ros-common/recipes-devtools/dartsim/dartsim/fix-pkgconfig-cflags.patch create mode 100644 meta-ros-common/recipes-devtools/dartsim/dartsim/python3-fixes.patch create mode 100644 meta-ros-common/recipes-devtools/dartsim/dartsim/remove-buildpath.patch create mode 100644 meta-ros-common/recipes-devtools/dartsim/dartsim/use-system-googletest.patch create mode 100644 meta-ros-common/recipes-devtools/dartsim/dartsim/use-system-pybind11.patch create mode 100644 meta-ros-common/recipes-devtools/dartsim/dartsim_6.14.4.bb diff --git a/meta-ros-common/recipes-devtools/dartsim/dartsim/fix-pkgconfig-cflags.patch b/meta-ros-common/recipes-devtools/dartsim/dartsim/fix-pkgconfig-cflags.patch new file mode 100644 index 0000000000..45f7afebaa --- /dev/null +++ b/meta-ros-common/recipes-devtools/dartsim/dartsim/fix-pkgconfig-cflags.patch @@ -0,0 +1,19 @@ +Use includedir to avoid host contamination + +The dart pkgconfig contains CMAKE_CXX_FLAGS which contains paths from the +build host. Set Cflags to includedir for a better default value. + +Upstream-Status: Pending + +Signed-off-by: Rob Woolley + +diff --git a/cmake/dart.pc.in b/cmake/dart.pc.in +index 402c496c4298..31e0a80c5c4d 100644 +--- a/cmake/dart.pc.in ++++ b/cmake/dart.pc.in +@@ -9,4 +9,4 @@ Description: @DART_PKG_DESC@ + Version: @DART_VERSION@ + Requires: @DART_PKG_EXTERNAL_DEPS@ + Libs: -L${libdir} -ldart +-Cflags: @CMAKE_CXX_FLAGS@ ++Cflags: -I${includedir} diff --git a/meta-ros-common/recipes-devtools/dartsim/dartsim/python3-fixes.patch b/meta-ros-common/recipes-devtools/dartsim/dartsim/python3-fixes.patch new file mode 100644 index 0000000000..8940a8c9fb --- /dev/null +++ b/meta-ros-common/recipes-devtools/dartsim/dartsim/python3-fixes.patch @@ -0,0 +1,42 @@ +Replace outdated distuils.log with logging + +Upstream-Status: Pending + +Signed-off-by: Rob Woolley + +diff --git a/python/dartpy/CMakeLists.txt b/python/dartpy/CMakeLists.txt +index b316e8671479..6e9e92089cdb 100644 +--- a/python/dartpy/CMakeLists.txt ++++ b/python/dartpy/CMakeLists.txt +@@ -7,8 +7,7 @@ + # This file is provided under the "BSD-style" License + + execute_process(COMMAND ${Python3_EXECUTABLE} -c +- "from distutils.sysconfig import get_python_lib;\ +- print(get_python_lib(plat_specific=True))" ++ "import sysconfig; print(sysconfig.get_path('platlib'))" + OUTPUT_VARIABLE PYTHON_SITE_PACKAGES + OUTPUT_STRIP_TRAILING_WHITESPACE + ) +diff --git a/setup.py b/setup.py +index e24332b0bd9c..ed5a6388514d 100644 +--- a/setup.py ++++ b/setup.py +@@ -4,7 +4,7 @@ + # References: + # - https://pybind11.readthedocs.io/en/stable/compiling.html + +-import distutils.log ++import logging + import os + import re + import subprocess +@@ -32,7 +32,7 @@ with open(os.path.join(dart_root, "README.md"), encoding="utf-8") as f: + long_description = f.read() + description = "Python API of Dynamic Animation and Robotics Toolkit." + +-distutils.log.set_verbosity(distutils.log.DEBUG) # Set DEBUG level ++logging.basicConfig(level=logging.DEBUG) # Set DEBUG level + + + # A CMakeExtension needs a sourcedir instead of a file list. diff --git a/meta-ros-common/recipes-devtools/dartsim/dartsim/remove-buildpath.patch b/meta-ros-common/recipes-devtools/dartsim/dartsim/remove-buildpath.patch new file mode 100644 index 0000000000..e16ba4bc53 --- /dev/null +++ b/meta-ros-common/recipes-devtools/dartsim/dartsim/remove-buildpath.patch @@ -0,0 +1,32 @@ +Remove reference to build path + +The dart config.hpp file is generated using CMAKE_CURRENT_SOURCE_DIR as +the value for DART_SOURCE_DIR. + +This results in host contamination with the build path being in the target: + + WARNING: dartsim-6.13.2-r0 do_package_qa: QA Issue: File /usr/lib/libdart-utils.so.6.14.0 in package dartsim contains reference to TMPDIR [buildpaths] + +Replacing it with the installation path ensure that it reflects where the +header file is located on the target. + +Upstream-Status: Pending + +Signed-off-by: Rob Woolley + +diff --git a/dart/config.hpp.in b/dart/config.hpp.in +index 7ee2997fd7a8..15dc0d872af9 100644 +--- a/dart/config.hpp.in ++++ b/dart/config.hpp.in +@@ -81,9 +81,9 @@ + + // Deprecated in DART 6.2 and will be removed in DART 7. +-#define DART_ROOT_PATH "@DART_SOURCE_DIR@/" ++#define DART_ROOT_PATH "@DART_ADDITIONAL_DOCUMENTATION_INSTALL_PATH@/" +-#define DART_DATA_PATH "@DART_SOURCE_DIR@/data/" ++#define DART_DATA_PATH "@DART_ADDITIONAL_DOCUMENTATION_INSTALL_PATH@/data/" + +-#define DART_DATA_LOCAL_PATH "@DART_SOURCE_DIR@/data/" ++#define DART_DATA_LOCAL_PATH "@DART_ADDITIONAL_DOCUMENTATION_INSTALL_PATH@/data/" + #define DART_DATA_GLOBAL_PATH \ + "@CMAKE_INSTALL_PREFIX@/@DART_ADDITIONAL_DOCUMENTATION_INSTALL_PATH@/data/" diff --git a/meta-ros-common/recipes-devtools/dartsim/dartsim/use-system-googletest.patch b/meta-ros-common/recipes-devtools/dartsim/dartsim/use-system-googletest.patch new file mode 100644 index 0000000000..f145f108d3 --- /dev/null +++ b/meta-ros-common/recipes-devtools/dartsim/dartsim/use-system-googletest.patch @@ -0,0 +1,29 @@ +Direct dartsim to use the system-provided GoogleTest + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Rob Woolley + +Index: git/tests/CMakeLists.txt +=================================================================== +--- git.orig/tests/CMakeLists.txt ++++ git/tests/CMakeLists.txt +@@ -31,17 +31,11 @@ + # + + # Set up GoogleTest +-include(FetchContent) +-FetchContent_Declare( +- googletest +- GIT_REPOSITORY https://github.com/google/googletest +- GIT_TAG v1.14.0 +-) ++find_package(GTest REQUIRED) + set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + set(gtest_disable_pthreads ON CACHE BOOL "" FORCE) + set(BUILD_GMOCK ON CACHE BOOL "" FORCE) + set(INSTALL_GTEST OFF CACHE BOOL "" FORCE) +-FetchContent_MakeAvailable(googletest) + + #=============================================================================== + # This function uses following global properties: diff --git a/meta-ros-common/recipes-devtools/dartsim/dartsim/use-system-pybind11.patch b/meta-ros-common/recipes-devtools/dartsim/dartsim/use-system-pybind11.patch new file mode 100644 index 0000000000..c38d6ea1c5 --- /dev/null +++ b/meta-ros-common/recipes-devtools/dartsim/dartsim/use-system-pybind11.patch @@ -0,0 +1,25 @@ +Use system pybind11 + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Rob Woolley + +Index: git/python/CMakeLists.txt +=================================================================== +--- git.orig/python/CMakeLists.txt ++++ git/python/CMakeLists.txt +@@ -6,13 +6,7 @@ if(NOT DART_BUILD_DARTPY) + endif() + + # Set up pybind11 +-include(FetchContent) +-FetchContent_Declare( +- pybind11 +- GIT_REPOSITORY https://github.com/pybind/pybind11 +- GIT_TAG v2.12.0 +-) +-FetchContent_MakeAvailable(pybind11) ++find_package(pybind11) + + if(NOT pybind11_FOUND) + message(WARNING "Disabling [dartpy] due to missing pybind11 >= 2.2.0.") diff --git a/meta-ros-common/recipes-devtools/dartsim/dartsim_6.14.4.bb b/meta-ros-common/recipes-devtools/dartsim/dartsim_6.14.4.bb new file mode 100644 index 0000000000..70852adce3 --- /dev/null +++ b/meta-ros-common/recipes-devtools/dartsim/dartsim_6.14.4.bb @@ -0,0 +1,57 @@ +HOMEPAGE = "https://github.com/dartsim/dart" +LICENSE = "BSD-2-Clause & BSD-3-Clause & MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a89a91ad8b0e80a94a412a7a37b5b492 \ + file://data/mjcf/openai/LICENSE.md;md5=b7fcc920c21836f90e2ba40fd8fad0a7" + +SRC_URI = "git://github.com/dartsim/dart.git;protocol=https;branch=release-6.14 \ + file://python3-fixes.patch \ + file://use-system-googletest.patch \ + file://use-system-pybind11.patch \ + file://fix-pkgconfig-cflags.patch \ + file://remove-buildpath.patch \ +" + +SRCREV = "2b6abb557652fe4eb7f80a7be52706d7ca20cf86" + +S = "${WORKDIR}/git" + +DEPENDS = " \ + assimp \ + bullet \ + doxygen-native \ + fmt-native \ + fcl \ + google-benchmark \ + googletest-native \ + libccd \ + libeigen \ + libtinyxml2 \ + ipopt \ + nlopt \ + octomap \ + ode \ + openscenegraph \ + pagmo \ + python3-pybind11 \ + python3-requests \ + python3-pytest \ + urdfdom \ + urdfdom-headers \ + virtual/libgl \ +" + + +inherit setuptools3 cmake pkgconfig + +inherit ros_opt_prefix +EXTRA_OECMAKE:prepend = "\ + -DCMAKE_PREFIX_PATH='${STAGING_DIR_HOST}${ros_prefix};${STAGING_DIR_HOST}${prefix}' \ + -DDART_ENABLE_SIMD=OFF \ +" + +CXXFLAGS += "-Wno-error=deprecated-copy -Wno-error=reorder" + +FILES:${PN} += "${datadir}/dart" + +# ERROR: dartsim-6.13.2-r0 do_package_qa: QA Issue: File ... in package dartsim doesn't have GNU_HASH (didn't pass LDFLAGS?) +INSANE_SKIP:${PN} += "ldflags" From bcf74f3958b05bffac174d87e0480058269b2ae5 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:58:36 -0700 Subject: [PATCH 041/152] meta-ros-common: Add sdformat recipes Add versions of the sdformat recipe needed for Ignition / Gazebo. Signed-off-by: Rob Woolley --- .../gazebo/sdformat_12.0.0.bb | 30 +++++++++++++++++++ .../gazebo/sdformat_14.4.0.bb | 29 ++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 meta-ros-common/recipes-devtools/gazebo/sdformat_12.0.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/sdformat_14.4.0.bb diff --git a/meta-ros-common/recipes-devtools/gazebo/sdformat_12.0.0.bb b/meta-ros-common/recipes-devtools/gazebo/sdformat_12.0.0.bb new file mode 100644 index 0000000000..253ad0f045 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/sdformat_12.0.0.bb @@ -0,0 +1,30 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://LICENSE;md5=881ceadb4a5b6db70a8a48a5f5f0050f" + +SRC_URI = "git://github.com/gazebosim/sdformat.git;protocol=https;branch=main" + +PV = "12.0.0+git${SRCPV}" +SRCREV = "c9494fbeaa36f45f085921f2b509a4074f3984ca" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig + +DEPENDS = " \ + ignition-cmake2 \ + ignition-math6 \ + ignition-tools1 \ + ignition-utils1 \ + libtinyxml2 \ + urdfdom \ + python3-psutil-native \ + ruby-native \ +" + +FILES:${PN} += " \ + ${libdir}/ruby/ignition/cmdsdformat12.rb \ + ${datadir}/ignition/sdformat12.yaml \ + ${datadir}/sdformat12/* \ +" diff --git a/meta-ros-common/recipes-devtools/gazebo/sdformat_14.4.0.bb b/meta-ros-common/recipes-devtools/gazebo/sdformat_14.4.0.bb new file mode 100644 index 0000000000..fbe23b524f --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/sdformat_14.4.0.bb @@ -0,0 +1,29 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/sdformat.git;protocol=https;branch=sdf14" + +SRCREV = "f05f4e7ad1a6784f9ff1a6c1b362191677baa70d" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig + +DEPENDS = " \ + gz-cmake-vendor \ + gz-math-vendor \ + gz-tools-vendor \ + gz-utils-vendor \ + libtinyxml2 \ + python3-pybind11 \ + python3-psutil-native \ + ruby-native \ + urdfdom \ +" + +FILES:${PN} += " \ + ${libdir}/ruby/gz \ + ${datadir}/gz \ + ${datadir}/sdformat14/* \ +" From dfa63660cc2bfbde9fedc2e1b6e6fddb2f5b942a Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 14:59:48 -0700 Subject: [PATCH 042/152] meta-ros-common: ignition: Add ignition recipes Ignition is the older Gazebo release before they reverted to the Gazebo name. Signed-off-by: Rob Woolley --- .../gazebo/ignition-cmake2_2.17.1.bb | 24 + .../cleanup-long-deprecated-ifdefs.patch | 851 ++++++++++++++++++ .../missing-cstdint-header.patch | 26 + .../gazebo/ignition-common4_2.17.1.bb | 42 + .../gazebo/ignition-fuel-tools7_2.17.1.bb | 31 + .../gazebo/ignition-gazebo6_6.15.0.bb | 32 + .../gazebo/ignition-gui6_6.8.0.bb | 42 + .../gazebo/ignition-launch5_5.3.0.bb | 30 + .../gazebo/ignition-math6_6.15.0.bb | 27 + .../gazebo/ignition-msgs8-native_8.7.0.bb | 7 + .../gazebo/ignition-msgs8.inc | 13 + .../add-libabsl-dependencies.patch | 36 + .../use-cmake-protobuf-module.patch | 49 + .../gazebo/ignition-msgs8_8.7.0.bb | 12 + .../gazebo/ignition-physics5_5.0.0.bb | 24 + .../gazebo/ignition-plugin_1.4.0.bb | 22 + .../freeimage_optional.patch | 32 + .../gazebo/ignition-rendering6_6.6.1.bb | 53 ++ .../gazebo/ignition-sensors6_6.0.0.bb | 22 + .../backward-ros-include-dir.patch | 10 + .../gazebo/ignition-tools1_15.0.bb | 39 + .../gazebo/ignition-transport11_11.4.1.bb | 36 + .../gazebo/ignition-utils1_1.5.1.bb | 17 + 23 files changed, 1477 insertions(+) create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-cmake2_2.17.1.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-common4/cleanup-long-deprecated-ifdefs.patch create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-common4/missing-cstdint-header.patch create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-common4_2.17.1.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-fuel-tools7_2.17.1.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-gazebo6_6.15.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-gui6_6.8.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-launch5_5.3.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-math6_6.15.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-msgs8-native_8.7.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-msgs8.inc create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-msgs8/add-libabsl-dependencies.patch create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-msgs8/use-cmake-protobuf-module.patch create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-msgs8_8.7.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-physics5_5.0.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-plugin_1.4.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-rendering6/freeimage_optional.patch create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-rendering6_6.6.1.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-sensors6_6.0.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-tools1/backward-ros-include-dir.patch create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-tools1_15.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-transport11_11.4.1.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/ignition-utils1_1.5.1.bb diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-cmake2_2.17.1.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-cmake2_2.17.1.bb new file mode 100644 index 0000000000..773ac17f25 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-cmake2_2.17.1.bb @@ -0,0 +1,24 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-cmake.git;protocol=https;branch=ign-cmake2" + +SRCREV = "7e694a02c412d4595d92cb3351a5f7b6e0b44b0d" + +S = "${WORKDIR}/git" + +FILES:${PN} += "${datadir}/ignition/ignition-cmake2/*" +inherit cmake + +# Specify any options you want to pass to cmake using EXTRA_OECMAKE: +EXTRA_OECMAKE = "" + +FILES:${PN}-dev += " \ + pkgconfig/ignition-cmake2.pc \ + ${includedir} \ + ${datadir}/cmake/ignition-cmake2/cmake2/ \ + ${datadir}/ignition/ignition-cmake2/ \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-common4/cleanup-long-deprecated-ifdefs.patch b/meta-ros-common/recipes-devtools/gazebo/ignition-common4/cleanup-long-deprecated-ifdefs.patch new file mode 100644 index 0000000000..dd31e973bd --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-common4/cleanup-long-deprecated-ifdefs.patch @@ -0,0 +1,851 @@ +# https://github.com/gazebosim/gz-common/commit/870eaf029e43ec52d34e0dd026d78fbb961a5f77.patch +From 870eaf029e43ec52d34e0dd026d78fbb961a5f77 Mon Sep 17 00:00:00 2001 +From: Michael Carroll +Date: Wed, 31 Aug 2022 13:13:24 -0500 +Subject: [PATCH] Cleanup long-deprecated ifdefs (#329) + +Signed-off-by: Michael Carroll + +Co-authored-by: Louise Poubel +--- + CMakeLists.txt | 1 + + av/include/gz/common/ffmpeg_inc.hh | 60 +++++++++- + av/src/AudioDecoder.cc | 97 ++-------------- + av/src/Video.cc | 58 ++++++---- + av/src/VideoEncoder.cc | 175 ++++++----------------------- + av/src/ffmpeg_inc.cc | 25 ----- + 6 files changed, 135 insertions(+), 281 deletions(-) + +Index: git/CMakeLists.txt +=================================================================== +--- git.orig/CMakeLists.txt ++++ git/CMakeLists.txt +@@ -103,6 +103,7 @@ ign_find_package(SWSCALE REQUIRED_BY av + #------------------------------------ + # Find avdevice + ign_find_package(AVDEVICE VERSION 56.4.100 REQUIRED_BY av PRETTY libavdevice) ++set(HAVE_AVDEVICE ${AVDEVICE_FOUND}) + + #------------------------------------ + # Find avformat +Index: git/av/include/gz/common/ffmpeg_inc.hh +=================================================================== +--- git.orig/av/include/gz/common/ffmpeg_inc.hh ++++ git/av/include/gz/common/ffmpeg_inc.hh +@@ -17,6 +17,60 @@ + #ifndef GZ_COMMON_FFMPEG_INC_HH_ + #define GZ_COMMON_FFMPEG_INC_HH_ + ++/// Versions of FFMPEG on Gazebo supported platforms ++// v4.2.7 (Ubuntu Focal) ++// libavutil 56. 31.100 / 56. 31.100 ++// libavcodec 58. 54.100 / 58. 54.100 ++// libavformat 58. 29.100 / 58. 29.100 ++// libavdevice 58. 8.100 / 58. 8.100 ++// libavfilter 7. 57.100 / 7. 57.100 ++// libavresample 4. 0. 0 / 4. 0. 0 ++// libswscale 5. 5.100 / 5. 5.100 ++// libswresample 3. 5.100 / 3. 5.100 ++// libpostproc 55. 5.100 / 55. 5.100 ++ ++// v4.4.1 (Windows CI vcpkg) ++// libavutil 56. 70.100 / 56. 70.100 ++// libavcodec 58.134.100 / 58.134.100 ++// libavformat 58. 76.100 / 58. 76.100 ++// libavdevice 58. 13.100 / 58. 13.100 ++// libavfilter 7.110.100 / 7.110.100 ++// libswscale 5. 9.100 / 5. 9.100 ++// libswresample 3. 9.100 / 3. 9.100 ++// libpostproc 55. 9.100 / 55. 9.100 ++ ++// v4.4.2 (Ubuntu Jammy) ++// libavutil 56. 70.100 / 56. 70.100 ++// libavcodec 58.134.100 / 58.134.100 ++// libavformat 58. 76.100 / 58. 76.100 ++// libavdevice 58. 13.100 / 58. 13.100 ++// libavfilter 7.110.100 / 7.110.100 ++// libswscale 5. 9.100 / 5. 9.100 ++// libswresample 3. 9.100 / 3. 9.100 ++// libpostproc 55. 9.100 / 55. 9.100 ++ ++// v5.1 (homebrew) ++// libavutil 57. 28.100 / 57. 28.100 ++// libavcodec 59. 37.100 / 59. 37.100 ++// libavformat 59. 27.100 / 59. 27.100 ++// libavdevice 59. 7.100 / 59. 7.100 ++// libavfilter 8. 44.100 / 8. 44.100 ++// libswscale 6. 7.100 / 6. 7.100 ++// libswresample 4. 7.100 / 4. 7.100 ++// libpostproc 56. 6.100 / 56. 6.100 ++ ++/// Additional versions of FFMPEG not officially supported ++// v5.0.1 (conda-forge) ++// libavutil 57. 17.100 / 57. 17.100 ++// libavcodec 59. 18.100 / 59. 18.100 ++// libavformat 59. 16.100 / 59. 16.100 ++// libavdevice 59. 4.100 / 59. 4.100 ++// libavfilter 8. 24.100 / 8. 24.100 ++// libswscale 6. 4.100 / 6. 4.100 ++// libswresample 4. 3.100 / 4. 3.100 ++// libpostproc 56. 3.100 / 56. 3.100 ++ ++ + #include + + #include +@@ -44,7 +98,7 @@ extern "C" { + #include + #include + +-#if defined(__linux__) && defined(HAVE_AVDEVICE) ++#if defined(HAVE_AVDEVICE) + #include + #endif + } +@@ -57,15 +111,18 @@ namespace ignition + { + /// \brief Helper function to avoid deprecation warnings. + IGNITION_COMMON_AV_VISIBLE ++ IGN_DEPRECATED(5) + AVFrame *AVFrameAlloc(void); + + /// \brief Helper function to avoid deprecation warnings. + IGNITION_COMMON_AV_VISIBLE ++ IGN_DEPRECATED(5) + void AVFrameUnref(AVFrame *_frame); + + /// \brief Helper function to avoid deprecation warnings. + /// \param[in] _packet AVPacket structure that stores compressed data + IGNITION_COMMON_AV_VISIBLE ++ IGN_DEPRECATED(5) + void AVPacketUnref(AVPacket *_packet); + + /// \brief Helper function to avoid deprecation warnings +@@ -80,6 +137,7 @@ namespace ignition + /// \note If the codec is in draining mode, _packet can be null. The return + /// value on success will then be 0, but _gotFrame will be non-zero. + IGNITION_COMMON_AV_VISIBLE ++ IGN_DEPRECATED(5) + int AVCodecDecode(AVCodecContext *_codecCtx, + AVFrame *_frame, int *_gotFrame, AVPacket *_packet); + +Index: git/av/src/AudioDecoder.cc +=================================================================== +--- git.orig/av/src/AudioDecoder.cc ++++ git/av/src/AudioDecoder.cc +@@ -35,7 +35,7 @@ class common::AudioDecoderPrivate + public: AVCodecContext *codecCtx; + + /// \brief libavcodec audio codec. +- public: const AVCodec *codec; ++ public: const AVCodec *codec {nullptr}; + + /// \brief Index of the audio stream. + public: int audioStream; +@@ -77,12 +77,7 @@ void AudioDecoder::Cleanup() + ///////////////////////////////////////////////// + bool AudioDecoder::Decode(uint8_t **_outBuffer, unsigned int *_outBufferSize) + { +-#if LIBAVFORMAT_VERSION_MAJOR < 59 +- AVPacket *packet, packet1; +- int bytesDecoded = 0; +-#else + AVPacket *packet; +-#endif + unsigned int maxBufferSize = 0; + AVFrame *decodedFrame = nullptr; + +@@ -108,7 +103,7 @@ bool AudioDecoder::Decode(uint8_t **_out + + bool result = true; + +- if (!(decodedFrame = AVFrameAlloc())) ++ if (!(decodedFrame = av_frame_alloc())) + { + ignerr << "Audio decoder out of memory\n"; + result = false; +@@ -125,7 +120,6 @@ bool AudioDecoder::Decode(uint8_t **_out + { + if (packet->stream_index == this->data->audioStream) + { +-#if LIBAVFORMAT_VERSION_MAJOR >= 59 + // Inspired from + // https://github.com/FFmpeg/FFmpeg/blob/n5.0/doc/examples/decode_audio.c#L71 + +@@ -152,12 +146,18 @@ bool AudioDecoder::Decode(uint8_t **_out + return false; + } + ++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59, 24, 100) ++ int numChannels = this->data->codecCtx->ch_layout.nb_channels; ++#else ++ int numChannels = this->data->codecCtx->channels; ++#endif ++ + // Total size of the data. Some padding can be added to + // decodedFrame->data[0], which is why we can't use + // decodedFrame->linesize[0]. + int size = decodedFrame->nb_samples * + av_get_bytes_per_sample(this->data->codecCtx->sample_fmt) * +- this->data->codecCtx->ch_layout.nb_channels; ++ numChannels; + // Resize the audio buffer as necessary + if (*_outBufferSize + size > maxBufferSize) + { +@@ -170,51 +170,7 @@ bool AudioDecoder::Decode(uint8_t **_out + size); + *_outBufferSize += size; + } +-#else +- int gotFrame = 0; +- +- packet1 = *packet; +- while (packet1.size) +- { +- // Some frames rely on multiple packets, so we have to make sure +- // the frame is finished before we can use it +-#ifndef _WIN32 +-# pragma GCC diagnostic push +-# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +-#endif +- bytesDecoded = avcodec_decode_audio4(this->data->codecCtx, decodedFrame, +- &gotFrame, &packet1); +-#ifndef _WIN32 +-# pragma GCC diagnostic pop +-#endif +- +- if (gotFrame) +- { +- // Total size of the data. Some padding can be added to +- // decodedFrame->data[0], which is why we can't use +- // decodedFrame->linesize[0]. +- int size = decodedFrame->nb_samples * +- av_get_bytes_per_sample(this->data->codecCtx->sample_fmt) * +- this->data->codecCtx->channels; +- +- // Resize the audio buffer as necessary +- if (*_outBufferSize + size > maxBufferSize) +- { +- maxBufferSize += size * 5; +- *_outBuffer = reinterpret_cast(realloc(*_outBuffer, +- maxBufferSize * sizeof(*_outBuffer[0]))); +- } +- +- memcpy(*_outBuffer + *_outBufferSize, decodedFrame->data[0], +- size); +- *_outBufferSize += size; +- } +- +- packet1.data += bytesDecoded; +- packet1.size -= bytesDecoded; +- } +-#endif + } + av_packet_unref(packet); + } + +@@ -271,20 +226,8 @@ bool AudioDecoder::SetFile(const std::st + this->data->audioStream = -1; + for (i = 0; i < this->data->formatCtx->nb_streams; ++i) + { +-#ifndef _WIN32 +-# pragma GCC diagnostic push +-# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +-#endif +-#if LIBAVFORMAT_VERSION_MAJOR >= 59 + if (this->data->formatCtx->streams[i]->codecpar->codec_type == // NOLINT(*) + AVMEDIA_TYPE_AUDIO) +-#else +- if (this->data->formatCtx->streams[i]->codec->codec_type == // NOLINT(*) +- AVMEDIA_TYPE_AUDIO) +-#endif +-#ifndef _WIN32 +-# pragma GCC diagnostic pop +-#endif + { + this->data->audioStream = i; + break; +@@ -300,21 +243,7 @@ bool AudioDecoder::SetFile(const std::st + return false; + } + +- // Get the audio stream codec +-#ifndef _WIN32 +-# pragma GCC diagnostic push +-# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +-#endif +-#if LIBAVFORMAT_VERSION_MAJOR < 59 +- this->data->codecCtx = this->data->formatCtx->streams[ +- this->data->audioStream]->codec; +-#endif +-#ifndef _WIN32 +-# pragma GCC diagnostic pop +-#endif +- + // Find a decoder +-#if LIBAVFORMAT_VERSION_MAJOR >= 59 + this->data->codec = avcodec_find_decoder(this->data->formatCtx->streams[ + this->data->audioStream]->codecpar->codec_id); + if (!this->data->codec) +@@ -331,9 +260,6 @@ bool AudioDecoder::SetFile(const std::st + // Copy all relevant parameters from codepar to codecCtx + avcodec_parameters_to_context(this->data->codecCtx, + this->data->formatCtx->streams[this->data->audioStream]->codecpar); +-#else +- this->data->codec = avcodec_find_decoder(this->data->codecCtx->codec_id); +-#endif + + if (this->data->codec == nullptr) + { +@@ -344,13 +270,8 @@ bool AudioDecoder::SetFile(const std::st + return false; + } + +-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(56, 60, 100) + if (this->data->codec->capabilities & AV_CODEC_CAP_TRUNCATED) + this->data->codecCtx->flags |= AV_CODEC_FLAG_TRUNCATED; +-#else +- if (this->data->codec->capabilities & CODEC_CAP_TRUNCATED) +- this->data->codecCtx->flags |= CODEC_FLAG_TRUNCATED; +-#endif + + // Open codec + if (avcodec_open2(this->data->codecCtx, this->data->codec, nullptr) < 0) +Index: git/av/src/Video.cc +=================================================================== +--- git.orig/av/src/Video.cc ++++ git/av/src/Video.cc +@@ -59,6 +59,37 @@ class common::VideoPrivate + public: bool drainingMode = false; + }; + ++int AVCodecDecode(AVCodecContext *_codecCtx, ++ AVFrame *_frame, int *_gotFrame, AVPacket *_packet) ++{ ++ // from https://blogs.gentoo.org/lu_zero/2016/03/29/new-avcodec-api/ ++ int ret; ++ ++ *_gotFrame = 0; ++ ++ if (_packet) ++ { ++ ret = avcodec_send_packet(_codecCtx, _packet); ++ if (ret < 0) ++ { ++ return ret == AVERROR_EOF ? 0 : ret; ++ } ++ } ++ ++ ret = avcodec_receive_frame(_codecCtx, _frame); ++ if (ret < 0 && ret != AVERROR(EAGAIN)) ++ { ++ return ret; ++ } ++ if (ret >= 0) ++ { ++ *_gotFrame = 1; ++ } ++ ++ // new API always consumes the whole packet ++ return _packet ? _packet->size : 0; ++} ++ + ///////////////////////////////////////////////// + Video::Video() + : dataPtr(new VideoPrivate) +@@ -100,7 +131,7 @@ bool Video::Load(const std::string &_fil + this->Cleanup(); + } + +- this->dataPtr->avFrame = AVFrameAlloc(); ++ this->dataPtr->avFrame = av_frame_alloc(); + + // Open video file + if (avformat_open_input(&this->dataPtr->formatCtx, _filename.c_str(), +@@ -121,13 +152,7 @@ bool Video::Load(const std::string &_fil + for (unsigned int i = 0; i < this->dataPtr->formatCtx->nb_streams; ++i) + { + enum AVMediaType codec_type; +- // codec parameter deprecated in ffmpeg version 3.1 +- // github.com/FFmpeg/FFmpeg/commit/9200514ad8717c +-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 48, 101) + codec_type = this->dataPtr->formatCtx->streams[i]->codecpar->codec_type; +-#else +- codec_type = this->dataPtr->formatCtx->streams[i]->codec->codec_type; +-#endif + if (codec_type == AVMEDIA_TYPE_VIDEO) + { + this->dataPtr->videoStream = static_cast(i); +@@ -143,18 +168,13 @@ bool Video::Load(const std::string &_fil + + // Find the decoder for the video stream + auto stream = this->dataPtr->formatCtx->streams[this->dataPtr->videoStream]; +-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 48, 101) + codec = avcodec_find_decoder(stream->codecpar->codec_id); +-#else +- codec = avcodec_find_decoder(stream->codec->codec_id); +-#endif + if (codec == nullptr) + { + ignerr << "Codec not found\n"; + return false; + } + +-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 48, 101) + // AVCodecContext is not included in an AVStream as of ffmpeg 3.1 + // allocate a codec context based on updated example + // github.com/FFmpeg/FFmpeg/commit/bba6a03b2816d805d44bce4f9701a71f7d3f8dad +@@ -173,21 +193,11 @@ bool Video::Load(const std::string &_fil + << std::endl; + return false; + } +-#else +- // Get a pointer to the codec context for the video stream +- this->dataPtr->codecCtx = this->dataPtr->formatCtx->streams[ +- this->dataPtr->videoStream]->codec; +-#endif + + // Inform the codec that we can handle truncated bitstreams -- i.e., + // bitstreams where frame boundaries can fall in the middle of packets +-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(56, 60, 100) + if (codec->capabilities & AV_CODEC_CAP_TRUNCATED) + this->dataPtr->codecCtx->flags |= AV_CODEC_FLAG_TRUNCATED; +-#else +- if (codec->capabilities & CODEC_CAP_TRUNCATED) +- this->dataPtr->codecCtx->flags |= CODEC_FLAG_TRUNCATED; +-#endif + + // Open codec + if (avcodec_open2(this->dataPtr->codecCtx, codec, nullptr) < 0) +@@ -212,7 +222,7 @@ bool Video::Load(const std::string &_fil + } + + // swscale needs 32-byte-aligned output frame on some systems +- this->dataPtr->avFrameDst = AVFrameAlloc(); ++ this->dataPtr->avFrameDst = av_frame_alloc(); + this->dataPtr->avFrameDst->format = this->dataPtr->dstPixelFormat; + this->dataPtr->avFrameDst->width = this->dataPtr->codecCtx->width; + this->dataPtr->avFrameDst->height = this->dataPtr->codecCtx->height; +@@ -291,7 +301,7 @@ bool Video::NextFrame(unsigned char **_b + } + + // Process all the data in the frame +- ret = AVCodecDecode( ++ ret = ::AVCodecDecode( + this->dataPtr->codecCtx, this->dataPtr->avFrame, &frameAvailable, + this->dataPtr->drainingMode ? nullptr : packet); + +Index: git/av/src/VideoEncoder.cc +=================================================================== +--- git.orig/av/src/VideoEncoder.cc ++++ git/av/src/VideoEncoder.cc +@@ -14,6 +14,7 @@ + * limitations under the License. + * + */ ++ + #include + + #include +@@ -32,6 +33,14 @@ using namespace ignition; + using namespace common; + using namespace std; + ++// After AVDevice 59.0.100, const pointers are used. ++#if LIBAVDEVICE_VERSION_INT >= AV_VERSION_INT(59, 0, 100) ++using OutputFormat = const AVOutputFormat*; ++#else ++using OutputFormat = AVOutputFormat*; ++#endif ++ ++ + // Private data class + // hidden visibility specifier has to be explicitly set to silent a gcc warning + class IGNITION_COMMON_AV_HIDDEN common::VideoEncoderPrivate +@@ -53,11 +62,7 @@ class IGNITION_COMMON_AV_HIDDEN common:: + public: AVFrame *avOutFrame = nullptr; + + /// \brief libav input image data (aligned to 32 bytes) +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 24, 1) +- public: AVPicture *avInFrame = nullptr; +-#else + public: AVFrame *avInFrame = nullptr; +-#endif + + /// \brief Pixel format of the input frame. So far it is hardcoded. + public: AVPixelFormat inPixFormat = AV_PIX_FMT_RGB24; +@@ -340,34 +345,37 @@ bool VideoEncoder::Start( + // Special case for video4linux2. Here we attempt to find the v4l2 device + if (this->dataPtr->format.compare("v4l2") == 0) + { +-#if LIBAVDEVICE_VERSION_INT >= AV_VERSION_INT(56, 4, 100) +- AVOutputFormat *outputFormat = nullptr; +- while ((outputFormat = av_output_video_device_next(outputFormat)) +- != nullptr) +- { +- // Break when the output device name matches 'v4l2' +- if (this->dataPtr->format.compare(outputFormat->name) == 0) ++#if defined(HAVE_AVDEVICE) ++ OutputFormat outputFormat = nullptr; ++ do ++ { ++ outputFormat = av_output_video_device_next(outputFormat); ++ ++ if (outputFormat) + { +- // Allocate the context using the correct outputFormat +- auto result = avformat_alloc_output_context2(&this->dataPtr->formatCtx, +- outputFormat, nullptr, this->dataPtr->filename.c_str()); +- if (result < 0) ++ // Break when the output device name matches 'v4l2' ++ if (this->dataPtr->format.compare(outputFormat->name) == 0) + { +- ignerr << "Failed to allocate AV context [" << av_err2str_cpp(result) +- << "]" << std::endl; ++ // Allocate the context using the correct outputFormat ++ auto result = avformat_alloc_output_context2(&this->dataPtr->formatCtx, ++ outputFormat, nullptr, this->dataPtr->filename.c_str()); ++ if (result < 0) ++ { ++ ignerr << "Failed to allocate AV context [" << av_err2str_cpp(result) ++ << "]" << std::endl; ++ } ++ break; + } +- break; + } + } +-#else +- ignerr << "libavdevice version >= 56.4.100 is required for v4l2 recording. " +- << "This version is available on Ubuntu Xenial or greater.\n"; +- return false; ++ while (outputFormat); ++ ++ + #endif + } + else + { +- const AVOutputFormat *outputFormat = av_guess_format(nullptr, ++ auto* outputFormat = av_guess_format(nullptr, + this->dataPtr->filename.c_str(), nullptr); + + if (!outputFormat) +@@ -376,28 +384,6 @@ bool VideoEncoder::Start( + << "Using MPEG.\n"; + } + +-#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(56, 40, 1) +- this->dataPtr->formatCtx = avformat_alloc_context(); +- if (outputFormat) +- { +- this->dataPtr->formatCtx->oformat = outputFormat; +- } +- else +- { +- this->dataPtr->formatCtx->oformat = +- av_guess_format("mpeg", nullptr, nullptr); +- } +-#ifdef WIN32 +- _sprintf(this->dataPtr->formatCtx->filename, +- sizeof(this->dataPtr->formatCtx->filename), +- "%s", _filename.c_str()); +-#else +- snprintf(this->dataPtr->formatCtx->filename, +- sizeof(this->dataPtr->formatCtx->filename), +- "%s", _filename.c_str()); +-#endif +- +-#else + auto result = avformat_alloc_output_context2(&this->dataPtr->formatCtx, + nullptr, nullptr, this->dataPtr->filename.c_str()); + if (result < 0) +@@ -405,7 +391,6 @@ bool VideoEncoder::Start( + ignerr << "Failed to allocate AV context [" << av_err2str_cpp(result) + << "]" << std::endl; + } +-#endif + } + + // Make sure allocation occurred. +@@ -428,11 +413,7 @@ bool VideoEncoder::Start( + if (!encoder) + { + ignerr << "Codec for[" +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 24, 1) +- << this->dataPtr->formatCtx->oformat->name +-#else + << avcodec_get_name(codecId) +-#endif + << "] not found. Video encoding is not started.\n"; + this->Reset(); + return false; +@@ -441,13 +422,8 @@ bool VideoEncoder::Start( + ignmsg << "Using encoder " << encoder->name << std::endl; + + // Create a new video stream +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 24, 1) +- this->dataPtr->videoStream = avformat_new_stream(this->dataPtr->formatCtx, +- encoder); +-#else + this->dataPtr->videoStream = avformat_new_stream(this->dataPtr->formatCtx, + nullptr); +-#endif + + if (!this->dataPtr->videoStream) + { +@@ -458,11 +434,7 @@ bool VideoEncoder::Start( + this->dataPtr->videoStream->id = this->dataPtr->formatCtx->nb_streams-1; + + // Allocate a new video context +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 24, 1) +- this->dataPtr->codecCtx = this->dataPtr->videoStream->codec; +-#else + this->dataPtr->codecCtx = avcodec_alloc_context3(encoder); +-#endif + + if (!this->dataPtr->codecCtx) + { +@@ -475,11 +447,7 @@ bool VideoEncoder::Start( + // some formats want stream headers to be separate + if (this->dataPtr->formatCtx->oformat->flags & AVFMT_GLOBALHEADER) + { +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 24, 1) +- this->dataPtr->codecCtx->flags |= CODEC_FLAG_GLOBAL_HEADER; +-#else + this->dataPtr->codecCtx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; +-#endif + } + + // Frames per second +@@ -517,13 +485,7 @@ bool VideoEncoder::Start( + if (this->dataPtr->codecCtx->codec_id == AV_CODEC_ID_H264) + { + av_opt_set(this->dataPtr->codecCtx->priv_data, "preset", "slow", 0); +- +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 24, 1) +- av_opt_set(this->dataPtr->videoStream->codec->priv_data, +- "preset", "slow", 0); +-#else + av_opt_set(this->dataPtr->videoStream->priv_data, "preset", "slow", 0); +-#endif + } + + // we misuse this field a bit, as docs say it is unused in encoders +@@ -560,11 +522,7 @@ bool VideoEncoder::Start( + return false; + } + +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55, 28, 1) +- this->dataPtr->avOutFrame = avcodec_alloc_frame(); +-#else + this->dataPtr->avOutFrame = av_frame_alloc(); +-#endif + + if (!this->dataPtr->avOutFrame) + { +@@ -589,14 +547,9 @@ bool VideoEncoder::Start( + } + + // Copy parameters from the context to the video stream +-#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(57, 40, 101) +-// ret = avcodec_copy_context(this->dataPtr->videoStream->codec, +-// this->dataPtr->codecCtx); +-#else + // codecpar was implemented in ffmpeg version 3.1 + ret = avcodec_parameters_from_context( + this->dataPtr->videoStream->codecpar, this->dataPtr->codecCtx); +-#endif + if (ret < 0) + { + ignerr << "Could not copy the stream parameters:" << av_err2str_cpp(ret) +@@ -690,11 +643,7 @@ bool VideoEncoder::AddFrame(const unsign + this->dataPtr->swsCtx = nullptr; + + if (this->dataPtr->avInFrame) +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 24, 1) +- av_free(this->dataPtr->avInFrame); +-#else + av_frame_free(&this->dataPtr->avInFrame); +-#endif + this->dataPtr->avInFrame = nullptr; + } + +@@ -705,19 +654,12 @@ bool VideoEncoder::AddFrame(const unsign + + if (!this->dataPtr->avInFrame) + { +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 24, 1) +- this->dataPtr->avInFrame = new AVPicture; +- avpicture_alloc(this->dataPtr->avInFrame, +- this->dataPtr->inPixFormat, this->dataPtr->inWidth, +- this->dataPtr->inHeight); +-#else + this->dataPtr->avInFrame = av_frame_alloc(); + this->dataPtr->avInFrame->width = this->dataPtr->inWidth; + this->dataPtr->avInFrame->height = this->dataPtr->inHeight; + this->dataPtr->avInFrame->format = this->dataPtr->inPixFormat; + + av_frame_get_buffer(this->dataPtr->avInFrame, 32); +-#endif + } + + av_image_fill_linesizes(this->dataPtr->inputLineSizes, +@@ -779,24 +721,6 @@ bool VideoEncoder::AddFrame(const unsign + { + frameToEncode->pts = this->dataPtr->frameCount++; + +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 40, 101) +- int gotOutput = 0; +- AVPacket avPacket; +- av_init_packet(&avPacket); +- avPacket.data = nullptr; +- avPacket.size = 0; +- +- ret = avcodec_encode_video2(this->dataPtr->codecCtx, &avPacket, +- frameToEncode, &gotOutput); +- +- if (ret >= 0 && gotOutput == 1) +- ret = ProcessPacket(&avPacket); +- +- av_free_packet(&avPacket); +- +- // #else for libavcodec version check +-#else +- + AVPacket* avPacket = av_packet_alloc(); + + avPacket->data = nullptr; +@@ -817,7 +741,6 @@ bool VideoEncoder::AddFrame(const unsign + } + + av_packet_unref(avPacket); +-#endif + } + return ret >= 0 || ret == AVERROR(EAGAIN); + } +@@ -859,31 +782,6 @@ bool VideoEncoder::Stop() + // drain remaining packets from the encoder + if (this->dataPtr->encoding && this->dataPtr->codecCtx) + { +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 40, 101) +- if ((this->dataPtr->codecCtx->capabilities & AV_CODEC_CAP_DELAY) > 0) +- { +- int gotOutput = 1; +- int ret = 0; +- AVPacket avPacket; +- av_init_packet(&avPacket); +- avPacket.data = nullptr; +- avPacket.size = 0; +- +- while (ret >= 0 && gotOutput == 1) +- { +- ret = avcodec_encode_video2(this->dataPtr->codecCtx, &avPacket, +- nullptr, &gotOutput); +- +- if (ret >= 0 && gotOutput == 1) +- ret = ProcessPacket(&avPacket); +- } +- +- av_free_packet(&avPacket); +- } +- +-// #else for libavcodec version check +-#else +- + int ret = 0; + // enter drain state + ret = avcodec_send_frame(this->dataPtr->codecCtx, nullptr); +@@ -906,32 +804,21 @@ bool VideoEncoder::Stop() + } + av_packet_unref(avPacket); + } +-#endif + } + + if (this->dataPtr->encoding && this->dataPtr->formatCtx) + av_write_trailer(this->dataPtr->formatCtx); + +-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 24, 1) + if (this->dataPtr->codecCtx) + avcodec_free_context(&this->dataPtr->codecCtx); +-#endif + this->dataPtr->codecCtx = nullptr; + + if (this->dataPtr->avInFrame) +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 24, 1) +- av_free(this->dataPtr->avInFrame); +-#else + av_frame_free(&this->dataPtr->avInFrame); +-#endif + this->dataPtr->avInFrame = nullptr; + + if (this->dataPtr->avOutFrame) +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 24, 1) +- av_free(this->dataPtr->avOutFrame); +-#else + av_frame_free(&this->dataPtr->avOutFrame); +-#endif + this->dataPtr->avOutFrame = nullptr; + + if (this->dataPtr->swsCtx) +Index: git/av/src/ffmpeg_inc.cc +=================================================================== +--- git.orig/av/src/ffmpeg_inc.cc ++++ git/av/src/ffmpeg_inc.cc +@@ -21,38 +21,25 @@ using namespace ignition; + ////////////////////////////////////////////////// + AVFrame *common::AVFrameAlloc(void) + { +-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55, 28, 1) + return av_frame_alloc(); +-#else +- return avcodec_alloc_frame(); +-#endif + } + + ////////////////////////////////////////////////// + void common::AVFrameUnref(AVFrame *_frame) + { +-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55, 28, 1) + av_frame_unref(_frame); +-#else +- avcodec_get_frame_defaults(_frame); +-#endif + } + + ////////////////////////////////////////////////// + void common::AVPacketUnref(AVPacket *_packet) + { +-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 24, 102) + av_packet_unref(_packet); +-#else +- av_free_packet(_packet); +-#endif + } + + ////////////////////////////////////////////////// + int common::AVCodecDecode(AVCodecContext *_codecCtx, + AVFrame *_frame, int *_gotFrame, AVPacket *_packet) + { +-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 48, 101) + // from https://blogs.gentoo.org/lu_zero/2016/03/29/new-avcodec-api/ + int ret; + +@@ -79,16 +66,4 @@ int common::AVCodecDecode(AVCodecContext + + // new API always consumes the whole packet + return _packet ? _packet->size : 0; +-#else +- // this was deprecated in ffmpeg version 3.1 +- // github.com/FFmpeg/FFmpeg/commit/7fc329e2dd6226dfecaa4a1d7adf353bf2773726 +-# ifndef _WIN32 +-# pragma GCC diagnostic push +-# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +-# endif +- return avcodec_decode_video2(_codecCtx, _frame, _gotFrame, _packet); +-# ifndef _WIN32 +-# pragma GCC diagnostic pop +-# endif +-#endif + } diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-common4/missing-cstdint-header.patch b/meta-ros-common/recipes-devtools/gazebo/ignition-common4/missing-cstdint-header.patch new file mode 100644 index 0000000000..4c95add7b1 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-common4/missing-cstdint-header.patch @@ -0,0 +1,26 @@ +Upstream-Status: Backport + +Signed-off-by: Rob Woolley + +From 1243852c4bd8525ffc760a620e7d97f94cc2375c Mon Sep 17 00:00:00 2001 +From: Jose Luis Rivero +Date: Thu, 10 Aug 2023 17:44:13 +0200 +Subject: [PATCH] Missing cstdint header to use uint32_t with gcc-13 (#528) + +Signed-off-by: Jose Luis Rivero +--- + profiler/src/ProfilerImpl.hh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/profiler/src/ProfilerImpl.hh b/profiler/src/ProfilerImpl.hh +index 82d3ddad2..02d4a3769 100644 +--- a/profiler/src/ProfilerImpl.hh ++++ b/profiler/src/ProfilerImpl.hh +@@ -18,6 +18,7 @@ + #ifndef GZ_COMMON_PROFILERIMPL_HH_ + #define GZ_COMMON_PROFILERIMPL_HH_ + ++#include + #include + + namespace ignition diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-common4_2.17.1.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-common4_2.17.1.bb new file mode 100644 index 0000000000..4bf13f554f --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-common4_2.17.1.bb @@ -0,0 +1,42 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://LICENSE;md5=2e9f68f022747514564aa13818fcb7c6 \ + file://profiler/src/Remotery/LICENSE;md5=34400b68072d710fecd0a2940a0d1658" + +SRC_URI = "git://github.com/gazebosim/gz-common.git;protocol=https;branch=ign-common4 \ + file://cleanup-long-deprecated-ifdefs.patch \ + file://missing-cstdint-header.patch \ +" + +SRCREV = "ade3fa20db31a094388d1fca96bbddaf5eeb262d" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig + +# CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately: +# FREEIMAGE_RUNS (advanced) +# FREEIMAGE_RUNS__TRYRUN_OUTPUT (advanced) +EXTRA_OECMAKE += " -DFREEIMAGE_RUNS=1 -DFREEIMAGE_RUNS__TRYRUN_OUTPUT=0" + +DEPENDS = " \ + cppcheck-native \ + doxygen-native \ + graphviz-native \ + gts \ + ffmpeg \ + freeimage \ + ignition-cmake2 \ + ignition-math6 \ + ignition-utils1 \ + libtinyxml2 \ + util-linux \ +" + +FILES:${PN} += " \ + ${datadir}/ignition/ignition-common4/profiler_vis/* \ + ${datadir}/ignition/ignition-common4/ignition-common4.tag.xml \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-fuel-tools7_2.17.1.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-fuel-tools7_2.17.1.bb new file mode 100644 index 0000000000..ddc319acf8 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-fuel-tools7_2.17.1.bb @@ -0,0 +1,31 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-fuel-tools;protocol=https;branch=ign-fuel-tools7" + +SRCREV = "0bdbb7a0f54a6db260abcc391de064662f193d3e" + +S = "${WORKDIR}/git" + +inherit cmake + +# Specify any options you want to pass to cmake using EXTRA_OECMAKE: +EXTRA_OECMAKE = "" + +DEPENDS = " \ + ignition-cmake2 \ + ignition-common4 \ + ignition-msgs8 \ + jsoncpp \ + libyaml \ + libzip \ + curl \ +" + +FILES:${PN} += " \ + ${libdir}/ruby/ignition/cmdfuel7.rb \ + ${datadir}/gz/gz1.completion.d/fuel7.bash_completion.sh \ + ${datadir}/ignition/fuel7.yaml \ + ${datadir}/ignition/fuel_tools7/config.yaml \ +" diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-gazebo6_6.15.0.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-gazebo6_6.15.0.bb new file mode 100644 index 0000000000..31b6385f14 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-gazebo6_6.15.0.bb @@ -0,0 +1,32 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0 & Artistic-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://src/systems/elevator/vender/afsm/LICENSE;md5=ec4341a201f4b801aba0191a5d2d8f39 \ + file://src/systems/elevator/vender/metapushkin/LICENSE;md5=ec4341a201f4b801aba0191a5d2d8f39" + +SRC_URI = "git://github.com/gazebosim/gz-sim.git;protocol=https;branch=ign-gazebo6" + +SRCREV = "326cef2b4a177bf6ea957fe9e2841c4719d598db" + +S = "${WORKDIR}/git" + +inherit cmake python3-dir + +DEPENDS = " \ + ignition-cmake2 \ + ignition-common4 \ + ignition-fuel-tools7 \ + ignition-gui6 \ + ignition-math6 \ + ignition-msgs8 \ + ignition-physics5 \ + ignition-plugin \ + ignition-rendering6 \ + ignition-sensors6 \ + ignition-tools1 \ + ignition-transport11 \ + ignition-utils1 \ + sdformat \ +" + +RPROVIDES:${PN} += " gazebo" diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-gui6_6.8.0.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-gui6_6.8.0.bb new file mode 100644 index 0000000000..c111d95547 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-gui6_6.8.0.bb @@ -0,0 +1,42 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-gui.git;protocol=https;branch=ign-gui6" + +SRCREV = "982aafca1b96dbc6d12ea5de4d8df27c288be532" + +S = "${WORKDIR}/git" + +inherit cmake + +# CMake Error at src/plugins/CMakeLists.txt:26 (QT5_WRAP_CPP): +# Unknown CMake command "QT5_WRAP_CPP". +inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'pyqt5'], '', 'cmake_qt5', d)} + +DEPENDS = " \ + ignition-cmake2 \ + ignition-common4 \ + ignition-math6 \ + ignition-msgs8 \ + ignition-plugin \ + ignition-rendering6 \ + ignition-tools1 \ + ignition-transport11 \ + ignition-utils1 \ + protobuf \ + libtinyxml2 \ + qtbase \ + qtquickcontrols2 \ +" +DEPENDS:append:class-target = "xserver-xorg" + +FILES:${PN} += " \ + ${libdir}/ign-gui-6/plugins/* \ + ${libdir}/ruby/ignition/* \ + ${datadir}/gz/* \ + ${datadir}/ignition/* \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-launch5_5.3.0.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-launch5_5.3.0.bb new file mode 100644 index 0000000000..cd4245830f --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-launch5_5.3.0.bb @@ -0,0 +1,30 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-launch.git;protocol=https;branch=ign-launch5" + +SRCREV = "894e2e2319617fbde652960b847e13436391ec9c" + +S = "${WORKDIR}/git" + +DEPENDS = "elfutils" + +inherit cmake +inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'pyqt5'], '', 'cmake_qt5', d)} + +DEPENDS = " \ + elfutils \ + ignition-cmake2 \ + ignition-common4 \ + ignition-gazebo6 \ + ignition-gui6 \ + ignition-math6 \ + ignition-msgs8 \ + ignition-plugin \ + ignition-rendering6 \ + ignition-tools1 \ + ignition-transport11 \ + ignition-utils1 \ + libwebsockets \ +" diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-math6_6.15.0.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-math6_6.15.0.bb new file mode 100644 index 0000000000..5ea53a8693 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-math6_6.15.0.bb @@ -0,0 +1,27 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-math.git;protocol=https;branch=ign-math6" + +SRCREV = "62768395a0386e596f5a761fb5f426e0a3f1d050" + +S = "${WORKDIR}/git" + +DEPENDS = " \ + ruby-native \ + swig-native \ + python3 \ + python3-pybind11 \ + ignition-cmake2 \ +" + +inherit cmake python3-dir + +DEPENDS = " \ + ignition-cmake2 \ + ignition-cmake2-native \ + libeigen \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8-native_8.7.0.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8-native_8.7.0.bb new file mode 100644 index 0000000000..23c84a76a6 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8-native_8.7.0.bb @@ -0,0 +1,7 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +include ignition-msgs8.inc + +DEPENDS = "ignition-cmake2-native ignition-math6-native libtinyxml2-native protobuf-native" +EXTRA_OECMAKE += "-DINSTALL_IGN_MSGS_GEN_EXECUTABLE:BOOL=ON" + +inherit native diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8.inc b/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8.inc new file mode 100644 index 0000000000..a1b2208bf1 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8.inc @@ -0,0 +1,13 @@ +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://LICENSE;md5=2e9f68f022747514564aa13818fcb7c6" + +SRC_URI = "git://github.com/gazebosim/gz-msgs.git;protocol=https;branch=ign-msgs8 \ + file://add-libabsl-dependencies.patch" + +PV = "8.7.0" +SRCREV = "f9acd44dd926433799e5e0c6f5f4af281bc72c57" + +S = "${WORKDIR}/git" + +inherit cmake diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8/add-libabsl-dependencies.patch b/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8/add-libabsl-dependencies.patch new file mode 100644 index 0000000000..25f9356e26 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8/add-libabsl-dependencies.patch @@ -0,0 +1,36 @@ +Newer versions of Protobuf require libabsl + +Upstream-Status: Pending + +Signed-off-by: Rob Woolley +Index: git/src/CMakeLists.txt +=================================================================== +--- git.orig/src/CMakeLists.txt ++++ git/src/CMakeLists.txt +@@ -3,7 +3,13 @@ + ign_add_executable(ign_msgs_gen Generator.cc generator_main.cc) + target_link_libraries(ign_msgs_gen + protobuf::libprotoc +- protobuf::libprotobuf) ++ protobuf::libprotobuf ++ absl_log_internal_check_op ++ absl_log_internal_message ++ absl_raw_hash_set ++ absl_hash ++ absl_raw_logging_internal ++) + target_include_directories(ign_msgs_gen PRIVATE ${PROTOBUF_INCLUDE_DIR}) + target_compile_features(ign_msgs_gen PRIVATE ${IGN_CXX_11_FEATURES}) + +@@ -186,6 +192,11 @@ target_link_libraries(${PROJECT_LIBRARY_ + PUBLIC + protobuf::libprotobuf + ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER} ++ absl_log_internal_check_op ++ absl_log_internal_message ++ absl_raw_hash_set ++ absl_hash ++ absl_raw_logging_internal + PRIVATE + TINYXML2::TINYXML2 + ) diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8/use-cmake-protobuf-module.patch b/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8/use-cmake-protobuf-module.patch new file mode 100644 index 0000000000..a57d077dce --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8/use-cmake-protobuf-module.patch @@ -0,0 +1,49 @@ +Index: git/CMakeLists.txt +=================================================================== +--- git.orig/CMakeLists.txt ++++ git/CMakeLists.txt +@@ -62,12 +62,7 @@ message(STATUS "\n\n-- ====== Finding De + + #-------------------------------------- + # Find Protobuf +-set(REQ_PROTOBUF_VER 3) +-ign_find_package(IgnProtobuf +- VERSION ${REQ_PROTOBUF_VER} +- REQUIRED +- COMPONENTS all +- PRETTY Protobuf) ++find_package(Protobuf MODULE REQUIRED) + + #-------------------------------------- + # Find ignition-math +Index: git/src/CMakeLists.txt +=================================================================== +--- git.orig/src/CMakeLists.txt ++++ git/src/CMakeLists.txt +@@ -3,7 +3,13 @@ + ign_add_executable(ign_msgs_gen Generator.cc generator_main.cc) + target_link_libraries(ign_msgs_gen + protobuf::libprotoc +- protobuf::libprotobuf) ++ protobuf::libprotobuf ++ absl_log_internal_check_op ++ absl_log_internal_message ++ absl_raw_hash_set ++ absl_hash ++ absl_raw_logging_internal ++) + target_include_directories(ign_msgs_gen PRIVATE ${PROTOBUF_INCLUDE_DIR}) + target_compile_features(ign_msgs_gen PRIVATE ${IGN_CXX_11_FEATURES}) + +@@ -186,6 +192,11 @@ target_link_libraries(${PROJECT_LIBRARY_ + PUBLIC + protobuf::libprotobuf + ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER} ++ absl_log_internal_check_op ++ absl_log_internal_message ++ absl_raw_hash_set ++ absl_hash ++ absl_raw_logging_internal + PRIVATE + TINYXML2::TINYXML2 + ) diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8_8.7.0.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8_8.7.0.bb new file mode 100644 index 0000000000..90875cb932 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-msgs8_8.7.0.bb @@ -0,0 +1,12 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +include ignition-msgs8.inc + +DEPENDS = "ignition-cmake2 ignition-math6 libtinyxml2 protobuf protobuf-native ${PN}-native" +EXTRA_OECMAKE += " -DINSTALL_IGN_MSGS_GEN_EXECUTABLE:BOOL=OFF -DIGN_MSGS_GEN_EXECUTABLE=${WORKDIR}/recipe-sysroot-native/usr/bin/ign_msgs_gen" + +FILES:${PN} += " \ + ${libdir}/ruby/ignition/cmdmsgs8.rb \ + ${libdir}/ruby/ignition/msgs8/* \ + ${datadir}/gz/gz1.completion.d/msgs8.bash_completion.sh \ + ${datadir}/ignition/msgs8.yaml \ +" diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-physics5_5.0.0.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-physics5_5.0.0.bb new file mode 100644 index 0000000000..3e73d7c5e7 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-physics5_5.0.0.bb @@ -0,0 +1,24 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://LICENSE;md5=2e9f68f022747514564aa13818fcb7c6 \ + file://tpe/lib/src/aabb_tree/LICENSE;md5=fd0ac4e17e55ad320e9429c05b5c23c7" + +SRC_URI = "git://github.com/gazebosim/gz-physics.git;protocol=https;branch=ign-physics5" + +SRCREV = "ba3eb2c7f32660eef82e27f24401783f80cfcf2b" + +S = "${WORKDIR}/git" + +DEPENDS += " \ + ignition-cmake2 \ + ignition-math6 \ + ignition-common4 \ + ignition-transport11 \ + ignition-rendering6 \ + ignition-msgs8 \ + protobuf \ + sdformat \ +" + +inherit cmake diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-plugin_1.4.0.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-plugin_1.4.0.bb new file mode 100644 index 0000000000..402355d692 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-plugin_1.4.0.bb @@ -0,0 +1,22 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://LICENSE;md5=2e9f68f022747514564aa13818fcb7c6" + +SRC_URI = "git://github.com/gazebosim/gz-plugin.git;protocol=https;branch=ign-plugin1" + +SRCREV = "1d5a4c987668ed0584ddbf4398dc81b519412c54" + +S = "${WORKDIR}/git" + +inherit cmake + +DEPENDS = "ignition-cmake2" + +FILES:${PN} += " \ + ${datadir}/gz/gz1.completion.d/plugin1.bash_completion.sh \ + ${datadir}/ignition/plugin1.yaml \ + ${libdir}/ruby/ignition/cmdplugin1.rb \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-rendering6/freeimage_optional.patch b/meta-ros-common/recipes-devtools/gazebo/ignition-rendering6/freeimage_optional.patch new file mode 100644 index 0000000000..3b9cf3e783 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-rendering6/freeimage_optional.patch @@ -0,0 +1,32 @@ +Index: git/CMakeLists.txt +=================================================================== +--- git.orig/CMakeLists.txt ++++ git/CMakeLists.txt +@@ -48,12 +48,6 @@ ign_find_package(ignition-plugin1 REQUIR + set(IGN_PLUGIN_VER ${ignition-plugin1_VERSION_MAJOR}) + + #-------------------------------------- +-# Find FreeImage +-ign_find_package(FreeImage VERSION 3.9 +- REQUIRED_BY optix +- PRIVATE_FOR optix) +- +-#-------------------------------------- + # Find OpenGL + # See CMP0072 for more details (cmake --help-policy CMP0072) + if ((NOT ${CMAKE_VERSION} VERSION_LESS 3.11) AND (NOT OpenGL_GL_PREFERENCE)) +@@ -139,7 +133,14 @@ if(NOT MSVC) + + if (OptiX_FOUND AND CUDA_FOUND) + set(HAVE_OPTIX TRUE) ++ ++ #-------------------------------------- ++ # Find FreeImage ++ ign_find_package(FreeImage VERSION 3.9 ++ REQUIRED_BY optix ++ PRIVATE_FOR optix) + endif() ++ + endif() + + ##################################### diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-rendering6_6.6.1.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-rendering6_6.6.1.bb new file mode 100644 index 0000000000..7c65acee01 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-rendering6_6.6.1.bb @@ -0,0 +1,53 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0 & OFL-1.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://ogre/src/media/fonts/liberation-sans/SIL%20Open%20Font%20License.txt;md5=a4b00b7892bfb2fc9398e7f292af5b3d" + +SRC_URI = "git://github.com/gazebosim/gz-rendering.git;protocol=https;branch=main \ + file://freeimage_optional.patch" + +SRCREV = "c2c5fdfb889f449a0c7665dc492ee6b67591cadd" + +S = "${WORKDIR}/git" + +DEPENDS = "boost" + +inherit cmake pkgconfig + +# Copied from rviz_ogre_vendor CMakeLists.txt +OGRE_CXX_FLAGS += " \ + -Wno-deprecated-declarations \ + -Wno-mismatched-new-delete \ + -Wno-range-loop-construct \ + -Wno-undef \ + -Wno-misleading-indentation \ + -Wno-implicit-const-int-float-conversion \ +" + +EXTRA_OECMAKE = " \ + -DSKIP_optix:BOOL=TRUE \ + -DCMAKE_CXX_FLAGS=${OGRE_CXX_FLAGS} \ +" + +DEPENDS = " \ + ignition-cmake2 \ + ignition-common4 \ + ignition-math6 \ + ignition-plugin \ + freeimage \ + ogre \ +" + +OECMAKE_GENERATOR = "Unix Makefiles" + +FILES:${PN} += " \ + ${datadir}/ignition/* \ + ${libdir}/ign-rendering-6/engine-plugins/libignition-rendering6-ogre${SOLIBS} \ +" + +FILES:${PN}-dev += " \ + ${libdir}/ign-rendering-6/engine-plugins/libignition-rendering-ogre.so \ + ${libdir}/ign-rendering-6/engine-plugins/libignition-rendering6-ogre.so \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-sensors6_6.0.0.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-sensors6_6.0.0.bb new file mode 100644 index 0000000000..ad8ef8e8c2 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-sensors6_6.0.0.bb @@ -0,0 +1,22 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://LICENSE;md5=403837d405a17669732f6a98e3f42aed" + +SRC_URI = "git://github.com/gazebosim/gz-sensors.git;protocol=https;branch=ign-sensors6" + +SRCREV = "b0c61c5853f204372018161c5224c17dc523ad9c" + +S = "${WORKDIR}/git" + +DEPENDS += " \ + ignition-cmake2 \ + ignition-common4 \ + ignition-math6 \ + ignition-msgs8 \ + ignition-rendering6 \ + ignition-transport11 \ + protobuf \ +" + +inherit cmake diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-tools1/backward-ros-include-dir.patch b/meta-ros-common/recipes-devtools/gazebo/ignition-tools1/backward-ros-include-dir.patch new file mode 100644 index 0000000000..bd006438f2 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-tools1/backward-ros-include-dir.patch @@ -0,0 +1,10 @@ +Index: git/src/backward.cc +=================================================================== +--- git.orig/src/backward.cc ++++ git/src/backward.cc +@@ -1,4 +1,4 @@ +-#include "backward.hpp" ++#include "backward_ros/backward.hpp" + + namespace ignition { + namespace tools { diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-tools1_15.0.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-tools1_15.0.bb new file mode 100644 index 0000000000..76ee04e61e --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-tools1_15.0.bb @@ -0,0 +1,39 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://LICENSE;md5=ba86179b62e9e2c25dd9184dd87e2464" + +SRC_URI = " \ + git://github.com/gazebosim/gz-tools.git;protocol=https;branch=ign-tools1 \ + file://backward-ros-include-dir.patch \ +" + +SRCREV = "67d9d473aca6d33fb849e93e309cd678a75ccd71" + +S = "${WORKDIR}/git" + +inherit cmake + +EXTRA_OECMAKE = "-DUSE_SYSTEM_BACKWARDCPP:BOOL=ON" + +DEPENDS = " \ + doxygen \ + jsoncpp \ + libyaml \ + libzip \ + backward-ros \ +" + +FILES:${PN} = " \ + ${bindir}/ign \ + ${libdir}/libignition-tools-backward.so \ + ${datadir}/bash-completion/completions/ign \ + ${datadir}/gz/gz1.completion \ +" + +FILES:${PN}-dev = " \ + ${libdir}/pkgconfig/ignition-tools.pc \ + ${libdir}/cmake/ignition-tools/ignition-tools-config.cmake \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-transport11_11.4.1.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-transport11_11.4.1.bb new file mode 100644 index 0000000000..7c9f26a18e --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-transport11_11.4.1.bb @@ -0,0 +1,36 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-transport.git;protocol=https;branch=ign-transport11" + +SRCREV = "69e9592544c36d4e10eed74953258662569d91fd" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig + +DEPENDS = " \ + ignition-cmake2 \ + ignition-msgs8 \ + ignition-utils1 \ + sqlite3 \ + util-linux-libuuid \ + zeromq \ + cppzmq \ +" + +RDEPENDS:${PN} += "ruby" + +FILES:${PN} += " \ + /usr/lib/ruby/gz/cmdtransport11.rb \ + /usr/lib/ruby/ignition/cmdparam11.rb \ + /usr/lib/ruby/ignition/cmdlog11.rb \ + /usr/share/gz/gz1.completion.d/transport11.bash_completion.sh \ + /usr/share/ignition/transport11.yaml \ + /usr/share/ignition/transportparam11.yaml \ + /usr/share/ignition/transportlog11.yaml \ + /usr/share/ignition/ignition-transport11/sql/0.1.0.sql \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/ignition-utils1_1.5.1.bb b/meta-ros-common/recipes-devtools/gazebo/ignition-utils1_1.5.1.bb new file mode 100644 index 0000000000..3a635aeee2 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/ignition-utils1_1.5.1.bb @@ -0,0 +1,17 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://LICENSE;md5=881ceadb4a5b6db70a8a48a5f5f0050f \ + file://cli/LICENSE;md5=b73927b18d5c6cd8d2ed28a6ad539733" + +SRC_URI = "git://github.com/gazebosim/gz-utils.git;protocol=https;branch=ign-utils1" + +SRCREV = "36f5dfdbccd6cce7e02df14a2db19c6c2e784c49" + +S = "${WORKDIR}/git" + +inherit cmake + +DEPENDS = "ignition-cmake2" + +BBCLASSEXTEND = "native nativesdk" From 20e7f48555da3d72a5fa887c02017a27f747b276 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:00:50 -0700 Subject: [PATCH 043/152] meta-ros-common: gazebo: Add new recipes Add recipes for the latest Gazebo release. Signed-off-by: Rob Woolley --- .../gz-cmake3/Fix-pkgconfig-install-dir.patch | 27 ++++++++ .../gazebo/gz-cmake3_3.5.3.bb | 23 +++++++ .../gz-common5/add-missing-headers.patch | 42 +++++++++++++ .../gazebo/gz-common5_5.6.0.bb | 41 ++++++++++++ .../gazebo/gz-fuel-tools9_9.0.3.bb | 28 +++++++++ .../recipes-devtools/gazebo/gz-gui8_8.3.0.bb | 48 ++++++++++++++ .../recipes-devtools/gazebo/gz-math7_7.5.0.bb | 26 ++++++++ .../gazebo/gz-msgs10-native_10.1.2.bb | 9 +++ .../gazebo/gz-msgs10-native_10.2.0.bb | 11 ++++ .../recipes-devtools/gazebo/gz-msgs10.inc | 15 +++++ .../override-generator-scripts.patch | 28 +++++++++ .../gazebo/gz-msgs10_10.1.2.bb | 18 ++++++ .../gazebo/gz-msgs10_10.2.0.bb | 18 ++++++ .../gazebo/gz-physics7_7.3.0.bb | 37 +++++++++++ .../gazebo/gz-plugin2_2.0.3.bb | 24 +++++++ .../gazebo/gz-rendering8_8.2.0.bb | 63 +++++++++++++++++++ .../gazebo/gz-sensors8_8.2.0.bb | 31 +++++++++ .../recipes-devtools/gazebo/gz-sim8_8.5.0.bb | 62 ++++++++++++++++++ .../gz-tools2/backward-ros-include-dir.patch | 13 ++++ .../gazebo/gz-tools2_2.0.1.bb | 43 +++++++++++++ .../gazebo/gz-transport13_13.3.0.bb | 41 ++++++++++++ .../gazebo/gz-utils2_2.2.0.bb | 16 +++++ 22 files changed, 664 insertions(+) create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-cmake3/Fix-pkgconfig-install-dir.patch create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-cmake3_3.5.3.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-common5/add-missing-headers.patch create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-common5_5.6.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-fuel-tools9_9.0.3.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-gui8_8.3.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-math7_7.5.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-msgs10-native_10.1.2.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-msgs10-native_10.2.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-msgs10.inc create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-msgs10/override-generator-scripts.patch create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-msgs10_10.1.2.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-msgs10_10.2.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-physics7_7.3.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-plugin2_2.0.3.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-rendering8_8.2.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-sensors8_8.2.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-sim8_8.5.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-tools2/backward-ros-include-dir.patch create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-tools2_2.0.1.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-transport13_13.3.0.bb create mode 100644 meta-ros-common/recipes-devtools/gazebo/gz-utils2_2.2.0.bb diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-cmake3/Fix-pkgconfig-install-dir.patch b/meta-ros-common/recipes-devtools/gazebo/gz-cmake3/Fix-pkgconfig-install-dir.patch new file mode 100644 index 0000000000..367290bbab --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-cmake3/Fix-pkgconfig-install-dir.patch @@ -0,0 +1,27 @@ + +Fix pkgconfig installation directory + +Packages which use gz-cmake3 will fail to install when +building cross-platform and CMAKE_INSTALL_PREFIX is set. + +This happens because pkgconfig_install_dir uses +CMAKE_INSTALL_FULL_LIBDIR/pkgconfig which is an absolute path. + +We should use CMAKE_INSTALL_LIBDIR instead so that it is a +relative path and CMAKE_INSTALL_PREFIX can be used. + +Signed-off by: Rob Woolley + +diff --git a/cmake/GzPackaging.cmake b/cmake/GzPackaging.cmake +index f3a8ae0..4a2b633 100644 +--- a/cmake/GzPackaging.cmake ++++ b/cmake/GzPackaging.cmake +@@ -227,7 +227,7 @@ function(_gz_create_pkgconfig) + + install( + FILES ${pkgconfig_output} +- DESTINATION ${pkgconfig_install_dir} ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" + COMPONENT pkgconfig) + + endfunction() diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-cmake3_3.5.3.bb b/meta-ros-common/recipes-devtools/gazebo/gz-cmake3_3.5.3.bb new file mode 100644 index 0000000000..2f98565e70 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-cmake3_3.5.3.bb @@ -0,0 +1,23 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-cmake.git;protocol=https;branch=gz-cmake3 \ + file://Fix-pkgconfig-install-dir.patch" + +SRCREV = "ddd38ff196640024d6e054ff59cf5fea1ef01d73" + +S = "${WORKDIR}/git" + +inherit cmake + +FILES:${PN} += "${datadir}/gz/gz-cmake3/*" + +FILES:${PN}-dev += " \ + pkgconfig/gz-cmake3.pc \ + ${includedir} \ + ${datadir}/cmake/gz-cmake3/cmake3/ \ + ${datadir}/gz/gz-cmake3/ \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-common5/add-missing-headers.patch b/meta-ros-common/recipes-devtools/gazebo/gz-common5/add-missing-headers.patch new file mode 100644 index 0000000000..da670e07b7 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-common5/add-missing-headers.patch @@ -0,0 +1,42 @@ +Add missing standard headers + +The build fails with the following errors due to standard C++ headers not being +explicitly included. + +git/test/performance/logging.cc:79:16: error: 'max_element' is not a member of 'std'; did you mean 'tuple_element'? +git/test/performance/logging.cc:109:12: error: 'max_element' is not a member of 'std'; did you mean 'tuple_element'? +git/testing/include/gz/common/testing/detail/AutoLogFixture.hh:79:8: error: 'replace' is not a member of 'std' +git/testing/include/gz/common/testing/detail/AutoLogFixture.hh:79:8: error: 'replace' is not a member of 'std' +git/testing/include/gz/common/testing/detail/AutoLogFixture.hh:79:8: error: 'replace' is not a member of 'std' + +Upstream-Status: Pending + +Signed-off-by: Rob Woolley + +diff --git a/test/performance/logging.cc b/test/performance/logging.cc +index 8d1d77e6..52194013 100644 +--- a/test/performance/logging.cc ++++ b/test/performance/logging.cc +@@ -16,6 +16,7 @@ + */ + #include + ++#include + #include + #include + #include +diff --git a/testing/include/gz/common/testing/detail/AutoLogFixture.hh b/testing/include/gz/common/testing/detail/AutoLogFixture.hh +index 658d3ba8..8238cc0f 100644 +--- a/testing/include/gz/common/testing/detail/AutoLogFixture.hh ++++ b/testing/include/gz/common/testing/detail/AutoLogFixture.hh +@@ -17,6 +17,10 @@ + #ifndef GZ_COMMON_TESTING_DETAIL_AUTOLOGFIXTURE_HH_ + #define GZ_COMMON_TESTING_DETAIL_AUTOLOGFIXTURE_HH_ + ++#include ++#include ++#include ++#include + #include + #include + diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-common5_5.6.0.bb b/meta-ros-common/recipes-devtools/gazebo/gz-common5_5.6.0.bb new file mode 100644 index 0000000000..4a270c3c36 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-common5_5.6.0.bb @@ -0,0 +1,41 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://profiler/src/Remotery/LICENSE;md5=34400b68072d710fecd0a2940a0d1658" + +SRC_URI = "git://github.com/gazebosim/gz-common.git;protocol=https;branch=gz-common5 \ + file://add-missing-headers.patch" + +SRCREV = "84df3704bfcffb85fa476c29e6181fba55c904dd" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig + +# CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately: +# FREEIMAGE_RUNS (advanced) +# FREEIMAGE_RUNS__TRYRUN_OUTPUT (advanced) +EXTRA_OECMAKE += " -DFREEIMAGE_RUNS=1 -DFREEIMAGE_RUNS__TRYRUN_OUTPUT=0" + +DEPENDS = " \ + assimp \ + cppcheck-native \ + doxygen-native \ + gdal \ + graphviz-native \ + gz-cmake3 \ + gz-math7 \ + gz-utils2 \ + gts \ + ffmpeg \ + freeimage \ + libtinyxml2 \ + util-linux \ +" + +FILES:${PN} += " \ + ${datadir}/gz/gz-common5/profiler_vis/* \ + ${datadir}/gz/gz-common5/gz-common5.tag.xml \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-fuel-tools9_9.0.3.bb b/meta-ros-common/recipes-devtools/gazebo/gz-fuel-tools9_9.0.3.bb new file mode 100644 index 0000000000..097e31390b --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-fuel-tools9_9.0.3.bb @@ -0,0 +1,28 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-fuel-tools;protocol=https;branch=gz-fuel-tools9" + +SRCREV = "c7cd3dd6580db102bbaabfcf4835ae68be9ff66e" + +S = "${WORKDIR}/git" + +inherit cmake + +DEPENDS = " \ + gz-cmake3 \ + gz-common5 \ + gz-msgs10 \ + jsoncpp \ + libyaml \ + libzip \ + curl \ +" + +FILES:${PN} += " \ + ${libdir}/ruby/gz/cmdfuel9.rb \ + ${datadir}/gz/gz2.completion.d/fuel9.bash_completion.sh \ + ${datadir}/gz/fuel9.yaml \ + ${datadir}/gz/fuel_tools9/config.yaml \ +" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-gui8_8.3.0.bb b/meta-ros-common/recipes-devtools/gazebo/gz-gui8_8.3.0.bb new file mode 100644 index 0000000000..4ca6ec7820 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-gui8_8.3.0.bb @@ -0,0 +1,48 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-gui.git;protocol=https;branch=gz-gui8" + +SRCREV = "036df090d5fb9323617ad186156e295a85e38421" + +S = "${WORKDIR}/git" + +inherit cmake + +# CMake Error at src/plugins/CMakeLists.txt:26 (QT5_WRAP_CPP): +# Unknown CMake command "QT5_WRAP_CPP". +inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'pyqt5'], '', 'cmake_qt5', d)} + +DEPENDS = " \ + cppcheck-native \ + doxygen-native \ + gz-cmake3 \ + gz-common5 \ + gz-math7 \ + gz-msgs10 \ + gz-plugin2 \ + gz-rendering8 \ + gz-tools2 \ + gz-transport13 \ + gz-utils2 \ + protobuf \ + protobuf-native \ + libtinyxml2 \ + qtbase \ + qtquickcontrols2 \ +" +DEPENDS:append:class-target = "xserver-xorg" + +EXTRA_OECMAKE += " \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" + +FILES:${PN} += " \ + ${libdir}/gz-gui-8/plugins/* \ + ${libdir}/ruby/gz/* \ + ${datadir}/gz/* \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-math7_7.5.0.bb b/meta-ros-common/recipes-devtools/gazebo/gz-math7_7.5.0.bb new file mode 100644 index 0000000000..99fac52e7c --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-math7_7.5.0.bb @@ -0,0 +1,26 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-math.git;protocol=https;branch=gz-math7" + +SRCREV = "7a595ca81b2914c765e09075c656ae08078e9021" + +S = "${WORKDIR}/git" + +DEPENDS = " \ + gz-cmake3 \ + gz-cmake3-native \ + gz-utils2 \ + libeigen \ + python3 \ + python3-pybind11 \ + ruby \ + swig-native \ +" + +inherit cmake python3targetconfig + +FILES:${PN} += "${libdir}/python/" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-msgs10-native_10.1.2.bb b/meta-ros-common/recipes-devtools/gazebo/gz-msgs10-native_10.1.2.bb new file mode 100644 index 0000000000..c9728f67c0 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-msgs10-native_10.1.2.bb @@ -0,0 +1,9 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +include gz-msgs10.inc + +SRCREV = "78e664a544cdc17e39a86507eec8aaf753a3dbc4" + +DEPENDS = "gz-cmake3-native gz-math7-native gz-utils2-native libtinyxml2-native protobuf-native" +EXTRA_OECMAKE += "-DINSTALL_GZ_MSGS_GEN_EXECUTABLE:BOOL=ON" + +inherit native diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-msgs10-native_10.2.0.bb b/meta-ros-common/recipes-devtools/gazebo/gz-msgs10-native_10.2.0.bb new file mode 100644 index 0000000000..691e1fb479 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-msgs10-native_10.2.0.bb @@ -0,0 +1,11 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +include gz-msgs10.inc + +SRCREV = "876b89d5cab32d9ddfd5f95ce8cf365ce77f27ef" + +DEPENDS = "gz-cmake3-native gz-math7-native gz-utils2-native libtinyxml2-native protobuf-native" +EXTRA_OECMAKE += "-DINSTALL_GZ_MSGS_GEN_EXECUTABLE:BOOL=ON" + +SYSROOT_DIRS_NATIVE = "${bindir}" + +inherit native diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-msgs10.inc b/meta-ros-common/recipes-devtools/gazebo/gz-msgs10.inc new file mode 100644 index 0000000000..41c430774a --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-msgs10.inc @@ -0,0 +1,15 @@ +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-msgs.git;protocol=https;branch=gz-msgs10 \ + file://override-generator-scripts.patch" + +S = "${WORKDIR}/git" + +inherit cmake + +FILES:${PN} += " \ + ${datadir}/gz \ + ${libdir}/python/gz \ + ${libdir}/ruby/gz \ +" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-msgs10/override-generator-scripts.patch b/meta-ros-common/recipes-devtools/gazebo/gz-msgs10/override-generator-scripts.patch new file mode 100644 index 0000000000..40a755640c --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-msgs10/override-generator-scripts.patch @@ -0,0 +1,28 @@ +Override msgs10 generator scripts + +Allows packages like gz-sim to override the generator script locations. + +This allows them to be executed from the native sysroot instead of +the target sysroot. + +Upstream-Status: Pending + +Signed-off-by: Rob Woolley + +diff --git a/gz-msgs-extras.cmake.in b/gz-msgs-extras.cmake.in +index 8bbdbe5..7317d84 100644 +--- a/gz-msgs-extras.cmake.in ++++ b/gz-msgs-extras.cmake.in +@@ -46,8 +46,12 @@ endif() + if(NOT DEFINED @PROJECT_NAME@_PYTHON_INTERPRETER) + set(@PROJECT_NAME@_PYTHON_INTERPRETER Python3::Interpreter) + endif() ++if(NOT DEFINED @PROJECT_NAME@_PROTO_GENERATOR_SCRIPT) + set(@PROJECT_NAME@_PROTO_GENERATOR_SCRIPT ${@PROJECT_NAME@_INSTALL_PATH}/bin/${PROTO_SCRIPT_NAME}) ++endif() ++if(NOT DEFINED @PROJECT_NAME@_FACTORY_GENERATOR_SCRIPT) + set(@PROJECT_NAME@_FACTORY_GENERATOR_SCRIPT ${@PROJECT_NAME@_INSTALL_PATH}/bin/${FACTORY_SCRIPT_NAME}) ++endif() + + ################################################## + # A function to generate a target mesage library from a group of protobuf files . diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-msgs10_10.1.2.bb b/meta-ros-common/recipes-devtools/gazebo/gz-msgs10_10.1.2.bb new file mode 100644 index 0000000000..2346af8c16 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-msgs10_10.1.2.bb @@ -0,0 +1,18 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +include gz-msgs10.inc + +SRCREV = "78e664a544cdc17e39a86507eec8aaf753a3dbc4" + +DEPENDS = "gz-math7 gz-cmake3 gz-utils2 gz-msgs10-native libtinyxml2 protobuf protobuf-native ${PN}-native" +DEPENDS += "${PN}-native" +EXTRA_OECMAKE += " \ + -Dgz-msgs10_PROTO_GENERATOR_PLUGIN=${STAGING_BINDIR_NATIVE}/gz-msgs10_protoc_plugin \ + -Dgz-msgs10_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ + -Dgz-msgs10_PYTHON_INTERPRETER=${PYTHON} \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" + +FILES:${PN} += " \ + ${datadir}/gz/gz1.completion.d/msgs8.bash_completion.sh \ + ${datadir}/gz/msgs8.yaml \ +" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-msgs10_10.2.0.bb b/meta-ros-common/recipes-devtools/gazebo/gz-msgs10_10.2.0.bb new file mode 100644 index 0000000000..93174a56ce --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-msgs10_10.2.0.bb @@ -0,0 +1,18 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +include gz-msgs10.inc + +SRCREV = "876b89d5cab32d9ddfd5f95ce8cf365ce77f27ef" + +DEPENDS = "gz-math7 gz-cmake3 gz-utils2 gz-msgs10-native libtinyxml2 protobuf protobuf-native ${PN}-native" +DEPENDS += "${PN}-native" +EXTRA_OECMAKE += " \ + -Dgz-msgs10_PROTO_GENERATOR_PLUGIN=${STAGING_BINDIR_NATIVE}/gz-msgs10_protoc_plugin \ + -Dgz-msgs10_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ + -Dgz-msgs10_PYTHON_INTERPRETER=${PYTHON} \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" + +FILES:${PN} += " \ + ${datadir}/gz/gz1.completion.d/msgs8.bash_completion.sh \ + ${datadir}/gz/msgs8.yaml \ +" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-physics7_7.3.0.bb b/meta-ros-common/recipes-devtools/gazebo/gz-physics7_7.3.0.bb new file mode 100644 index 0000000000..fe1eebb567 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-physics7_7.3.0.bb @@ -0,0 +1,37 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://tpe/lib/src/aabb_tree/LICENSE;md5=fd0ac4e17e55ad320e9429c05b5c23c7" + +SRC_URI = "git://github.com/gazebosim/gz-physics.git;protocol=https;branch=gz-physics7" + +SRCREV = "f54d4ded615626d3cff34a5dcfa0cedfe8bd903f" + +S = "${WORKDIR}/git" + +DEPENDS += " \ + gz-cmake3 \ + gz-common5 \ + gz-dartsim-vendor \ + gz-math7 \ + gz-msgs10 \ + gz-rendering8 \ + gz-transport13 \ + protobuf \ + sdformat \ + bullet \ + cppcheck-native \ + google-benchmark-vendor \ +" + +EXTRA_OECMAKE += " -DBUILD_TESTING=OFF" + +inherit cmake + +FILES:${PN} += " \ + ${libdir}/gz-physics-7/engine-plugins/lib*${SOLIBS} \ +" + +FILES:${PN}-dev += " \ + ${libdir}/gz-physics-7/engine-plugins/lib*${SOLIBSDEV} \ +" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-plugin2_2.0.3.bb b/meta-ros-common/recipes-devtools/gazebo/gz-plugin2_2.0.3.bb new file mode 100644 index 0000000000..6957ecbe76 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-plugin2_2.0.3.bb @@ -0,0 +1,24 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-plugin.git;protocol=https;branch=gz-plugin2" + +SRCREV = "23c28a25aa0c52c87378a28543723b73d475c417" + +S = "${WORKDIR}/git" + +inherit cmake + +DEPENDS = " \ + gz-cmake3 \ + gz-utils2 \ +" + +FILES:${PN} += " \ + ${datadir}/gz/gz2.completion.d/plugin2.bash_completion.sh \ + ${datadir}/gz/plugin2.yaml \ + ${libdir}/ruby/gz/cmdplugin2.rb \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-rendering8_8.2.0.bb b/meta-ros-common/recipes-devtools/gazebo/gz-rendering8_8.2.0.bb new file mode 100644 index 0000000000..8d64bc3860 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-rendering8_8.2.0.bb @@ -0,0 +1,63 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0 & OFL-1.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0 \ + file://ogre/src/media/fonts/liberation-sans/SIL%20Open%20Font%20License.txt;md5=a4b00b7892bfb2fc9398e7f292af5b3d" + +SRC_URI = "git://github.com/gazebosim/gz-rendering.git;protocol=https;branch=gz-rendering8" + +SRCREV = "8a547d5386a33789313abbb5bbbe1b2ec4c04741" + +S = "${WORKDIR}/git" + +DEPENDS = " \ + boost \ + freeglut \ + freeimage \ + glew \ + gz-cmake3 \ + gz-common5 \ + gz-math7 \ + gz-plugin2 \ + libglu \ + libxi \ + libxmu \ + ogre \ + ogre-next \ + virtual/libgl \ + virtual/libglx \ +" + +inherit cmake pkgconfig + +# Copied from rviz_ogre_vendor CMakeLists.txt +OGRE_CXX_FLAGS += " \ + -Wno-deprecated-declarations \ + -Wno-mismatched-new-delete \ + -Wno-range-loop-construct \ + -Wno-undef \ + -Wno-misleading-indentation \ + -Wno-implicit-const-int-float-conversion \ +" + +EXTRA_OECMAKE = " \ + -DSKIP_optix:BOOL=TRUE \ + -DCMAKE_CXX_FLAGS=${OGRE_CXX_FLAGS} \ +" + +# CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately: +# FREEIMAGE_RUNS (advanced) +# FREEIMAGE_RUNS__TRYRUN_OUTPUT (advanced) +EXTRA_OECMAKE += " -DFREEIMAGE_RUNS=1 -DFREEIMAGE_RUNS__TRYRUN_OUTPUT=0" + +OECMAKE_GENERATOR = "Unix Makefiles" + +FILES:${PN} += " \ + ${datadir}/gz/* \ + ${libdir}/gz-rendering-8/engine-plugins/lib*${SOLIBS} \ +" + +FILES:${PN}-dev += " \ + ${libdir}/gz-rendering-8/engine-plugins/lib*${SOLIBSDEV} \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-sensors8_8.2.0.bb b/meta-ros-common/recipes-devtools/gazebo/gz-sensors8_8.2.0.bb new file mode 100644 index 0000000000..e365e576fa --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-sensors8_8.2.0.bb @@ -0,0 +1,31 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-sensors.git;protocol=https;branch=gz-sensors8" + +SRCREV = "410a999f1e0e91bdcf81c6aff70fa3e95e369757" + +S = "${WORKDIR}/git" + +DEPENDS += " \ + cppcheck-native \ + doxygen-native \ + gz-cmake3 \ + gz-common5 \ + gz-math7 \ + gz-msgs10 \ + gz-rendering8 \ + gz-transport13 \ + protobuf \ + protobuf-native \ + sdformat \ +" + +inherit cmake + +EXTRA_OECMAKE += " \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" + +FILES:${PN} += "${datadir}/gz/gz-sensors8" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-sim8_8.5.0.bb b/meta-ros-common/recipes-devtools/gazebo/gz-sim8_8.5.0.bb new file mode 100644 index 0000000000..f23cbd0b4a --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-sim8_8.5.0.bb @@ -0,0 +1,62 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +LICENSE = "Apache-2.0 & Artistic-2.0 & BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e23fadd6ceef8c618fc1c65191d846fa \ + file://src/systems/elevator/vender/afsm/LICENSE;md5=ed0f22fa6f2ee0a77567130e0e8c8d15 \ + file://src/systems/elevator/vender/metapushkin/LICENSE;md5=ed0f22fa6f2ee0a77567130e0e8c8d15 \ + file://test/gtest_vendor/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a" + +SRC_URI = "git://github.com/gazebosim/gz-sim.git;protocol=https;branch=gz-sim8" + +PV = "8.5.0" +SRCREV = "055e969bba59bc8b28510a0b67263e7f9ccf8cce" + +S = "${WORKDIR}/git" + +inherit cmake + +DEPENDS += " \ + gz-cmake3 \ + gz-common5 \ + gz-dartsim-vendor \ + gz-fuel-tools9 \ + gz-gui8 \ + gz-math7 \ + gz-msgs10 \ + gz-msgs10-native \ + gz-physics7 \ + gz-plugin2 \ + gz-rendering8 \ + gz-sensors8 \ + gz-transport13 \ + gz-tools2 \ + gz-utils2 \ + protobuf \ + pybind11-vendor \ + sdformat \ +" + +EXTRA_OECMAKE += " \ + -Dgz-msgs10_PROTO_GENERATOR_PLUGIN=${STAGING_BINDIR_NATIVE}/gz-msgs10_protoc_plugin \ + -Dgz-msgs10_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ + -Dgz-msgs10_PYTHON_INTERPRETER=${PYTHON} \ + -Dgz-msgs10_PROTO_GENERATOR_SCRIPT=${STAGING_BINDIR_NATIVE}/gz-msgs10_generate.py \ + -Dgz-msgs10_FACTORY_GENERATOR_SCRIPT=${STAGING_BINDIR_NATIVE}/gz-msgs10_generate_factory.py \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" + +# CMake Error at src/gui/plugins/CMakeLists.txt:26 (QT5_WRAP_CPP): +# Unknown CMake command "QT5_WRAP_CPP". +# Call Stack (most recent call first): +# src/gui/plugins/modules/CMakeLists.txt:5 (gz_add_gui_library) +inherit ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'cmake_qt5', '', d)} + +FILES:${PN} += " \ + ${libdir}/ruby/gz \ + ${libdir}/gz-sim-8 \ + ${datadir}/gz/ \ +" + +FILES:${PN}-dev += " \ + ${libdir}/gz-sim-8/plugins/lib*${SOLIBSDEV} \ +" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-tools2/backward-ros-include-dir.patch b/meta-ros-common/recipes-devtools/gazebo/gz-tools2/backward-ros-include-dir.patch new file mode 100644 index 0000000000..9718d3c25e --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-tools2/backward-ros-include-dir.patch @@ -0,0 +1,13 @@ +Index: git/src/backward.cc +=================================================================== +--- git.orig/src/backward.cc ++++ git/src/backward.cc +@@ -15,7 +15,7 @@ + * + */ + +-#include "backward.hpp" ++#include "backward_ros/backward.hpp" + + namespace gz { + namespace tools { diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-tools2_2.0.1.bb b/meta-ros-common/recipes-devtools/gazebo/gz-tools2_2.0.1.bb new file mode 100644 index 0000000000..038c12cbb0 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-tools2_2.0.1.bb @@ -0,0 +1,43 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = " \ + git://github.com/gazebosim/gz-tools.git;protocol=https;branch=gz-tools2 \ +" + +SRCREV = "efcc504bd3665151266f38db627c9095e5a5773f" + +S = "${WORKDIR}/git" + +inherit cmake + +EXTRA_OECMAKE = "-DUSE_SYSTEM_BACKWARDCPP:BOOL=ON" + +DEPENDS = " \ + doxygen \ + jsoncpp \ + libyaml \ + libzip \ + backward-cpp \ + gz-cmake3 \ +" + + +FILES:${PN} = " \ + ${bindir}/gz \ + ${datadir}/bash-completion/completions/gz \ + ${libdir}/libgz-tools2-backward.so.2 \ + ${libdir}/libgz-tools2-backward.so.2.0.1 \ + ${datadir}/gz/gz.completion \ +" + +FILES:${PN}-dev = " \ + ${libdir}/libgz-tools2-backward.so \ + ${libdir}/pkgconfig/gz-tools.pc \ + ${libdir}/cmake/gz-tools2-all/gz-tools2-all-config-version.cmake \ + ${libdir}/cmake/gz-tools2-all/gz-tools2-all-targets.cmake \ + ${libdir}/cmake/gz-tools2-all/gz-tools2-all-config.cmake \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-transport13_13.3.0.bb b/meta-ros-common/recipes-devtools/gazebo/gz-transport13_13.3.0.bb new file mode 100644 index 0000000000..18a43878e6 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-transport13_13.3.0.bb @@ -0,0 +1,41 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2a461be67a1edf991251f85f3aadd1d0" + +SRC_URI = "git://github.com/gazebosim/gz-transport.git;protocol=https;branch=gz-transport13" + +SRCREV = "a5af52592810c2aa4f2fec417cc736a18f616e93" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig python3targetconfig + +DEPENDS = " \ + gz-cmake3 \ + gz-msgs10 \ + gz-utils2 \ + sqlite3 \ + util-linux-libuuid \ + zeromq \ + cppzmq \ + doxygen-native \ + graphviz-native \ + protobuf \ + protobuf-native \ + cppcheck-native \ + python3-pytest-native \ +" + +RDEPENDS:${PN} += "ruby" + +EXTRA_OECMAKE += " \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" + +FILES:${PN} += " \ + ${libdir}/ruby/gz \ + ${libdir}/python/gz \ + ${datadir}/gz \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-devtools/gazebo/gz-utils2_2.2.0.bb b/meta-ros-common/recipes-devtools/gazebo/gz-utils2_2.2.0.bb new file mode 100644 index 0000000000..4899715997 --- /dev/null +++ b/meta-ros-common/recipes-devtools/gazebo/gz-utils2_2.2.0.bb @@ -0,0 +1,16 @@ +# Copyright (c) 2024 Wind River Systems, Inc. +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=388d6baacb3a7c79a82bd82a679c65f3 \ + file://cli/LICENSE;md5=b73927b18d5c6cd8d2ed28a6ad539733" + +SRC_URI = "git://github.com/gazebosim/gz-utils.git;protocol=https;branch=gz-utils2" + +SRCREV = "9e80552d723ee8f1ba0ed4fcb300d4d9551a138e" + +S = "${WORKDIR}/git" + +inherit cmake + +DEPENDS = "gz-cmake3" + +BBCLASSEXTEND = "native nativesdk" From 83a27163f1acdf282293f6ef2d5113840542c12b Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:05:13 -0700 Subject: [PATCH 044/152] {rolling} ros-distro-recipe-blacklist.inc: Add BBMASK for octomap We wish to ignore the generated recipe for octomap in favour of the recipe in meta-ros-common. Signed-off-by: Rob Woolley --- .../ros-distro/include/rolling/ros-distro-recipe-blacklist.inc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro-recipe-blacklist.inc b/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro-recipe-blacklist.inc index ec7ba1709c..79360cdae8 100644 --- a/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro-recipe-blacklist.inc +++ b/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro-recipe-blacklist.inc @@ -199,3 +199,6 @@ SKIP_RECIPE[zenoh-bridge-dds] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUP BBMASK += "generated-recipes/fuse/fuse_1.0.1-3.bb" # And renamed fuse-doc to fuse-ros-doc to avoid conflict with PN-doc package created by fuse recipe BBMASK += "generated-recipes/fuse/fuse-doc_1.0.1-3.bb" + +# meta-ros provides a recipe for octomap to use instead of the generated one +BBMASK += "generated-recipes/octomap/octomap_1.10.0-3.bb" From 533350509672e9e693d4e7e98392438ccb95686d Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:06:58 -0700 Subject: [PATCH 045/152] {rolling} octomap: Remove the bbappend for the generated recipe Signed-off-by: Rob Woolley --- .../octomap/octomap_1.10.0-3.bbappend | 38 ------------------- 1 file changed, 38 deletions(-) delete mode 100644 meta-ros2-rolling/recipes-bbappends/octomap/octomap_1.10.0-3.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/octomap/octomap_1.10.0-3.bbappend b/meta-ros2-rolling/recipes-bbappends/octomap/octomap_1.10.0-3.bbappend deleted file mode 100644 index 4474ad65d1..0000000000 --- a/meta-ros2-rolling/recipes-bbappends/octomap/octomap_1.10.0-3.bbappend +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (c) 2021 LG Electronics, Inc. - -# ERROR: octomap-1.9.7-1-r0 do_package: QA Issue: octomap: Files/directories were installed but not shipped in any package: -# /usr/share/ament_index -# /usr/share/ament_index/resource_index -# /usr/share/ament_index/resource_index/packages -# /usr/share/ament_index/resource_index/packages/octomap -# Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install. -# octomap: 4 installed and not shipped files. [installed-vs-shipped] -# -# ros_ament_cmake.bbclass does this automatically, but this recipe inherits just ros_cmake.bbclass -FILES:${PN}:prepend = " \ - ${datadir}/ament_index \ -" - -# ERROR: octomap-1.9.7-1-r0 do_package_qa: QA Issue: -# non -dev/-dbg/nativesdk- package octomap contains symlink .so '/usr/lib/liboctomath.so' -# non -dev/-dbg/nativesdk- package octomap contains symlink .so '/usr/lib/liboctomap.so' [dev-so] -inherit ros_insane_dev_so - -# ERROR: octomap-1.9.7-1-r0 do_package_qa: QA Issue: -# octomap: /usr/lib/liboctomath.so.1.9.7 contains probably-redundant RPATH /usr/lib -# octomap: /usr/lib/liboctomap.so.1.9.7 contains probably-redundant RPATH /usr/lib -# octomap: /usr/bin/log2graph contains probably-redundant RPATH /usr/lib -# octomap: /usr/bin/compare_octrees contains probably-redundant RPATH /usr/lib -# octomap: /usr/bin/binvox2bt contains probably-redundant RPATH /usr/lib -# octomap: /usr/bin/bt2vrml contains probably-redundant RPATH /usr/lib -# octomap: /usr/bin/convert_octree contains probably-redundant RPATH /usr/lib -# octomap: /usr/bin/graph2tree contains probably-redundant RPATH /usr/lib -# octomap: /usr/bin/edit_octree contains probably-redundant RPATH /usr/lib -# octomap: /usr/bin/eval_octree_accuracy contains probably-redundant RPATH /usr/lib [useless-rpaths] -DEPENDS:append:class-target = " chrpath-replacement-native" -do_install:append() { - chrpath --delete ${D}${ros_bindir}/* ${D}${ros_libdir}/*${SOLIBS} -} - -# OcTreeIterator.hxx:42:39: error: 'template struct std::iterator' is deprecated [-Werror=deprecated-declarations] -CXXFLAGS += "-Wno-error=deprecated-declarations" From bcafc3d0519185f5a6978b06bde30e9980b73089 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:09:32 -0700 Subject: [PATCH 046/152] {rolling} ecl-*: Add exception for solibs The ecl packages provide shared libraries without a version suffix. We must inherit ros_insane_dev to skip the dev-so QA check and add the library to the main package. Signed-off-by: Rob Woolley --- .../recipes-bbappends/ecl-core/ecl-devices_1.2.1-4.bbappend | 4 +--- .../ecl-core/ecl-exceptions_1.2.1-4.bbappend | 4 +--- .../ecl-core/ecl-filesystem_1.2.1-4.bbappend | 4 +--- .../ecl-core/ecl-formatters_1.2.1-4.bbappend | 4 +--- .../recipes-bbappends/ecl-core/ecl-geometry_1.2.1-4.bbappend | 4 +--- .../recipes-bbappends/ecl-core/ecl-ipc_1.2.1-4.bbappend | 4 +--- .../ecl-core/ecl-linear-algebra_1.2.1-4.bbappend | 4 +--- .../ecl-core/ecl-manipulators_1.2.1-4.bbappend | 4 +--- .../ecl-core/ecl-mobile-robot_1.2.1-4.bbappend | 4 +--- .../ecl-core/ecl-statistics_1.2.1-4.bbappend | 4 +--- .../recipes-bbappends/ecl-core/ecl-streams_1.2.1-4.bbappend | 4 +--- .../recipes-bbappends/ecl-core/ecl-threads_1.2.1-4.bbappend | 4 +--- .../recipes-bbappends/ecl-core/ecl-time_1.2.1-4.bbappend | 4 +--- .../ecl-core/ecl-type-traits_1.2.1-4.bbappend | 4 +--- .../recipes-bbappends/ecl-lite/ecl-errors_1.2.0-4.bbappend | 4 +--- .../recipes-bbappends/ecl-lite/ecl-time-lite_1.2.0-4.bbappend | 4 +--- 16 files changed, 16 insertions(+), 48 deletions(-) diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-devices_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-devices_1.2.1-4.bbappend index 96b8e8f71f..3397333409 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-devices_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-devices_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-devices contains symlink .so '/usr/lib/libecl_devices.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_devices.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-exceptions_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-exceptions_1.2.1-4.bbappend index e06bd2adb7..157ff8ddd0 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-exceptions_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-exceptions_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-exceptions contains symlink .so '/usr/lib/libecl_exceptions.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_exceptions.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-filesystem_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-filesystem_1.2.1-4.bbappend index e8bb4fa7ae..848674837c 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-filesystem_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-filesystem_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-filesystem contains symlink .so '/usr/lib/libecl_filesystem.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_filesystem.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-formatters_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-formatters_1.2.1-4.bbappend index cda9f78367..a8aae5320e 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-formatters_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-formatters_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-formatters contains symlink .so '/usr/lib/libecl_formatters.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_formatters.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-geometry_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-geometry_1.2.1-4.bbappend index 6c34b6aa7f..afc217e610 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-geometry_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-geometry_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-geometry contains symlink .so '/usr/lib/libecl_geometry.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_geometry.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-ipc_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-ipc_1.2.1-4.bbappend index b01c57b3bb..c8247f8967 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-ipc_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-ipc_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2024 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-ipc contains symlink .so '/usr/lib/libecl_ipc.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_ipc.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-linear-algebra_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-linear-algebra_1.2.1-4.bbappend index 289ba82d99..0bf2e266b6 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-linear-algebra_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-linear-algebra_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-linear-algebra contains symlink .so '/usr/lib/libecl_linear_algebra.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_linear_algebra.so \ -" +inherit ros_insane_dev_so # sophus provides headers and does not have a runtime package ROS_EXEC_DEPENDS:remove = "sophus" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-manipulators_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-manipulators_1.2.1-4.bbappend index 06b11c8fcd..29a3a8fec2 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-manipulators_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-manipulators_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-manipulators contains symlink .so '/usr/lib/libecl_manipulators.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_manipulators.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-mobile-robot_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-mobile-robot_1.2.1-4.bbappend index fcda446491..efe8379e3d 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-mobile-robot_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-mobile-robot_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-mobile-robot contains symlink .so '/usr/lib/libecl_mobile_robot.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_mobile_robot.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-statistics_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-statistics_1.2.1-4.bbappend index d7bc48355a..031ee6989e 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-statistics_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-statistics_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-statistics contains symlink .so '/usr/lib/libecl_statistics.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_statistics.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-streams_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-streams_1.2.1-4.bbappend index 290fd12ef2..a69dcb4d5f 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-streams_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-streams_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-streams contains symlink .so '/usr/lib/libecl_streams.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_streams.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-threads_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-threads_1.2.1-4.bbappend index 8776a7f4cb..a68db8f76a 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-threads_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-threads_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-threads contains symlink .so '/usr/lib/libecl_threads.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_threads.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-time_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-time_1.2.1-4.bbappend index 3bb5417ee6..26d1582272 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-time_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-time_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-time contains symlink .so '/usr/lib/libecl_time.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_time.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-type-traits_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-type-traits_1.2.1-4.bbappend index bfcb0bafad..b698e71f5f 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-type-traits_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-type-traits_1.2.1-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-type-traits contains symlink .so '/usr/lib/libecl_type_traits.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_type_traits.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-lite/ecl-errors_1.2.0-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-lite/ecl-errors_1.2.0-4.bbappend index 3ef4467598..c323468f6d 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-lite/ecl-errors_1.2.0-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-lite/ecl-errors_1.2.0-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-errors contains symlink .so '/usr/lib/libecl_errors.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_errors.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-lite/ecl-time-lite_1.2.0-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-lite/ecl-time-lite_1.2.0-4.bbappend index c86416f003..efa1de4e34 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-lite/ecl-time-lite_1.2.0-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-lite/ecl-time-lite_1.2.0-4.bbappend @@ -1,9 +1,7 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-time-lite contains symlink .so '/usr/lib/libecl_time_lite.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libecl_time_lite.so \ -" +inherit ros_insane_dev_so # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" From 7080666c5e69cf97cf7fc711bf1ffab5178ac134 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:13:04 -0700 Subject: [PATCH 047/152] {rolling} ecl-time: Disable compiler warnings as errors Signed-off-by: Rob Woolley --- .../recipes-bbappends/ecl-core/ecl-time_1.2.1-4.bbappend | 3 +++ .../recipes-bbappends/ecl-lite/ecl-time-lite_1.2.0-4.bbappend | 3 +++ 2 files changed, 6 insertions(+) diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-time_1.2.1-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-time_1.2.1-4.bbappend index 26d1582272..e333abbd2d 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-time_1.2.1-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-core/ecl-time_1.2.1-4.bbappend @@ -3,5 +3,8 @@ # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-time contains symlink .so '/usr/lib/libecl_time.so' [dev-so] inherit ros_insane_dev_so +# handlers.hpp:73:22: error: 'virtual void ecl::Error::operator=(const ecl::ErrorFlag&)' was hidden [-Werror=overloaded-virtual=] +CXXFLAGS += "-Wno-error=overloaded-virtual" + # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/ecl-lite/ecl-time-lite_1.2.0-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecl-lite/ecl-time-lite_1.2.0-4.bbappend index efa1de4e34..db65f71f61 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecl-lite/ecl-time-lite_1.2.0-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecl-lite/ecl-time-lite_1.2.0-4.bbappend @@ -3,5 +3,8 @@ # ERROR: QA Issue: non -dev/-dbg/nativesdk- package ecl-time-lite contains symlink .so '/usr/lib/libecl_time_lite.so' [dev-so] inherit ros_insane_dev_so +# handlers.hpp:73:22: error: 'virtual void ecl::Error::operator=(const ecl::ErrorFlag&)' was hidden [-Werror=overloaded-virtual=] +CXXFLAGS += " -Wno-error=overloaded-virtual" + # Setting LICENSE from BSD to BSD-3-Clause to be SPDX compliant LICENSE = "BSD-3-Clause" From a182bb0428b399dbb1d22a5264ae4590313ba866 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:38:44 -0700 Subject: [PATCH 048/152] {rolling} fcl: Remove old bbappend Signed-off-by: Rob Woolley --- meta-ros2-rolling/recipes-extended/fcl/fcl_0.6.1.bbappend | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 meta-ros2-rolling/recipes-extended/fcl/fcl_0.6.1.bbappend diff --git a/meta-ros2-rolling/recipes-extended/fcl/fcl_0.6.1.bbappend b/meta-ros2-rolling/recipes-extended/fcl/fcl_0.6.1.bbappend deleted file mode 100644 index 6f73c3fc38..0000000000 --- a/meta-ros2-rolling/recipes-extended/fcl/fcl_0.6.1.bbappend +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2021 LG Electronics, Inc. - -# Add dependency on foxy's octomap: -# meta-ros2-foxy/generated-recipes/octomap/octomap_1.9.5-2.bb -# it's not enabled as optional dependency on common recipe: -# meta-ros-common/recipes-extended/fcl/fcl_0.6.1.bb -# but moveit-core from foxy, needs octomap support to be enabled -DEPENDS += "octomap" From 25036a1bfc1b9c1d0a00d7e6b680820b37c250e0 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:39:51 -0700 Subject: [PATCH 049/152] {rolling} hpp-fcl: Remove unneeded patches Signed-off-by: Rob Woolley --- .../hpp-fcl/add-missing-boost-include.patch | 21 ---------- .../hpp-fcl/make-cmake-target-relative.patch | 42 ------------------- .../hpp-fcl/hpp-fcl_2.4.4-2.bbappend | 6 --- 3 files changed, 69 deletions(-) delete mode 100644 meta-ros2-rolling/recipes-bbappends/hpp-fcl/hpp-fcl/add-missing-boost-include.patch delete mode 100644 meta-ros2-rolling/recipes-bbappends/hpp-fcl/hpp-fcl/make-cmake-target-relative.patch diff --git a/meta-ros2-rolling/recipes-bbappends/hpp-fcl/hpp-fcl/add-missing-boost-include.patch b/meta-ros2-rolling/recipes-bbappends/hpp-fcl/hpp-fcl/add-missing-boost-include.patch deleted file mode 100644 index 3cf05b8ce4..0000000000 --- a/meta-ros2-rolling/recipes-bbappends/hpp-fcl/hpp-fcl/add-missing-boost-include.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 2313893292844742b9e915dbd2373fe236106e89 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?St=C3=A9phane=20Caron?= -Date: Thu, 20 Apr 2023 16:18:57 +0200 -Subject: [PATCH] Add missing boost include - ---- - python/broadphase/broadphase_collision_manager.hh | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/python/broadphase/broadphase_collision_manager.hh b/python/broadphase/broadphase_collision_manager.hh -index 045c2d567..45a0743e2 100644 ---- a/python/broadphase/broadphase_collision_manager.hh -+++ b/python/broadphase/broadphase_collision_manager.hh -@@ -49,6 +49,7 @@ - #endif - - #include -+#include - - namespace hpp { - namespace fcl { diff --git a/meta-ros2-rolling/recipes-bbappends/hpp-fcl/hpp-fcl/make-cmake-target-relative.patch b/meta-ros2-rolling/recipes-bbappends/hpp-fcl/hpp-fcl/make-cmake-target-relative.patch deleted file mode 100644 index 3019c2f127..0000000000 --- a/meta-ros2-rolling/recipes-bbappends/hpp-fcl/hpp-fcl/make-cmake-target-relative.patch +++ /dev/null @@ -1,42 +0,0 @@ -It is necessary for the install() macro to receive absolute paths. This -ensures that _IMPORT_PREFIX is used instead of /usr. - -Otherwise packages using hpp-fcl will complain that the provided libraries -aren't present on the build host. - -See also "TOPDIR/tmp-glibc/work/core2-64-oe-linux/pinocchio/2.6.17-1-r0/build/CMakeFiles/CMakeOutput.log". -CMake Error at TOPDIR/tmp-glibc/work/core2-64-oe-linux/pinocchio/2.6.17-1-r0/recipe-sysroot/usr/lib/cmake/hpp-fcl/hpp-fclTargets.cmake:89 (message): - The imported target "hpp-fcl::hpp-fcl" references the file - - "/usr/lib/libhpp-fcl.so" - - but this file does not exist. Possible reasons include: - - * The file was deleted, renamed, or moved to another location. - - * An install or uninstall procedure did not complete successfully. - - * The installation package was faulty and contained - - "TOPDIR/tmp-glibc/work/core2-64-oe-linux/pinocchio/2.6.17-1-r0/recipe-sysroot/usr/lib/cmake/hpp-fcl/hpp-fclTargets.cmake" - - but not all the files it references. - -Index: git/src/CMakeLists.txt -=================================================================== ---- git.orig/src/CMakeLists.txt -+++ git/src/CMakeLists.txt -@@ -233,8 +233,8 @@ ENDIF(octomap_FOUND) - - install(TARGETS ${LIBRARY_NAME} - EXPORT ${TARGETS_EXPORT_NAME} -- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} -- INCLUDES DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} -- LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} -- ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} -- RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) -+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} -+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/meta-ros2-rolling/recipes-bbappends/hpp-fcl/hpp-fcl_2.4.4-2.bbappend b/meta-ros2-rolling/recipes-bbappends/hpp-fcl/hpp-fcl_2.4.4-2.bbappend index 230c555c5a..e9cef866df 100644 --- a/meta-ros2-rolling/recipes-bbappends/hpp-fcl/hpp-fcl_2.4.4-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/hpp-fcl/hpp-fcl_2.4.4-2.bbappend @@ -4,12 +4,6 @@ ROS_BUILD_DEPENDS += "python3-numpy-native" inherit python3native -FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" -SRC_URI += " \ - file://make-cmake-target-relative.patch \ - file://add-missing-boost-include.patch \ -" - # ERROR: hpp-fcl-2.1.3-1-r0 do_package: QA Issue: hpp-fcl: Files/directories were installed but not shipped in any package: # /usr/share/ament_index # /usr/share/ament_index/resource_index From 77897992a679a9fc4659ba2bea3c59983dfc7ecd Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:40:35 -0700 Subject: [PATCH 050/152] {rolling} lely-core: Disable compiler warnings as errors Signed-off-by: Rob Woolley --- .../recipes-support/lely-core/lely-core_2.3.2.bb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meta-ros2-rolling/recipes-support/lely-core/lely-core_2.3.2.bb b/meta-ros2-rolling/recipes-support/lely-core/lely-core_2.3.2.bb index 878ce540a3..c8ff8be623 100644 --- a/meta-ros2-rolling/recipes-support/lely-core/lely-core_2.3.2.bb +++ b/meta-ros2-rolling/recipes-support/lely-core/lely-core_2.3.2.bb @@ -17,6 +17,10 @@ DEPENDS += "python3-setuptools-native python3-wheel-native" EXTRA_OECONF += " --disable-cython --disable-tests --disable-python2" +# include/lely/coapp/device.hpp:1003:3: error: 'virtual void lely::canopen::Device::OnWrite(uint16_t, uint8_t)' was hidden [-Werror=overloaded-virtual=] +CXXFLAGS += "-Wno-error=overloaded-virtual" + + PACKAGES =+ " \ liblely-can \ liblely-can1 \ From 28480136ac6393191b5ea18f6153c3e86bd54693 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:41:26 -0700 Subject: [PATCH 051/152] {rolling} libphidget22-upstream: Fix description The old description was true for libphidget22, however this recipe actually contains the drivers themselves. Signed-off-by: Rob Woolley --- .../libphidget22/libphidget22-upstream_1.19.20240304.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-ros2-rolling/recipes-devtools/libphidget22/libphidget22-upstream_1.19.20240304.bb b/meta-ros2-rolling/recipes-devtools/libphidget22/libphidget22-upstream_1.19.20240304.bb index a81f9ff690..5fa74d6ca4 100644 --- a/meta-ros2-rolling/recipes-devtools/libphidget22/libphidget22-upstream_1.19.20240304.bb +++ b/meta-ros2-rolling/recipes-devtools/libphidget22/libphidget22-upstream_1.19.20240304.bb @@ -1,7 +1,7 @@ # Copyright (c) 2019-2021 LG Electronics, Inc. # Copyright (c) 2023 Wind River Systems, Inc. -DESCRIPTION = "This package wraps the libphidget22 to use it as a ROS dependency" +DESCRIPTION = "Drivers for various Phidgets devices" AUTHOR = "Martin Günther " HOMEPAGE = "https://www.phidgets.com/" SECTION = "devel" From e1bd3d6b85fba932c59617ea56fc0c8a2ec8264b Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:43:54 -0700 Subject: [PATCH 052/152] {rolling} shared-queues-vendor: Refresh integration patch Update the SRCREV to match the release/rolling/shared_queues_vendor branch. Signed-off-by: Rob Woolley --- ...keLists.txt-fetch-readerwriterqueue.patch} | 34 +++++-------------- .../shared-queues-vendor_0.27.0-1.bbappend | 9 ++--- 2 files changed, 12 insertions(+), 31 deletions(-) rename meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor/{0001-CMakeLists.txt-fetch-readerwriterqueue-and-concurren.patch => 0001-CMakeLists.txt-fetch-readerwriterqueue.patch} (53%) diff --git a/meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor/0001-CMakeLists.txt-fetch-readerwriterqueue-and-concurren.patch b/meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor/0001-CMakeLists.txt-fetch-readerwriterqueue.patch similarity index 53% rename from meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor/0001-CMakeLists.txt-fetch-readerwriterqueue-and-concurren.patch rename to meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor/0001-CMakeLists.txt-fetch-readerwriterqueue.patch index 5254ae444b..e9c16d3544 100644 --- a/meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor/0001-CMakeLists.txt-fetch-readerwriterqueue-and-concurren.patch +++ b/meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor/0001-CMakeLists.txt-fetch-readerwriterqueue.patch @@ -1,7 +1,9 @@ +Signed-off-by: Rob Woolley + From 10a0f06654b5db1dca9521a97128d3f375a4b283 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Fri, 27 Nov 2020 09:12:58 -0800 -Subject: [PATCH] CMakeLists.txt: fetch readerwriterqueue and concurrentqueue +Subject: [PATCH] CMakeLists.txt: fetch readerwriterqueue with bitbake fetcher Upstream-Status: Pending @@ -11,11 +13,11 @@ Signed-off-by: Martin Jansa CMakeLists.txt | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 0daf4672..465367f2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -6,11 +6,7 @@ find_package(ament_cmake REQUIRED) +Index: git/CMakeLists.txt +=================================================================== +--- git.orig/CMakeLists.txt ++++ git/CMakeLists.txt +@@ -11,11 +11,7 @@ endif() include(ExternalProject) # Single producer single consumer queue by moodycamel - header only, don't build, install ExternalProject_Add(ext-singleproducerconsumer @@ -28,31 +30,13 @@ index 0daf4672..465367f2 100644 INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR} CONFIGURE_COMMAND "" BUILD_COMMAND "" -@@ -19,11 +15,7 @@ ExternalProject_Add(ext-singleproducerconsumer - - # Concurrent and blocking concurrent queue by moodycamel - header only, don't build, install - ExternalProject_Add(ext-concurrentqueue -- PREFIX concurrentqueue -- DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/download -- URL https://github.com/cameron314/concurrentqueue/archive/8f65a8734d77c3cc00d74c0532efca872931d3ce.zip -- URL_MD5 71a0d932cc89150c2ade85f0d9cac9dc -- TIMEOUT 60 -+ SOURCE_DIR ${PROJECT_SOURCE_DIR}/concurrentqueue-upstream - INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR} - CONFIGURE_COMMAND "" - BUILD_COMMAND "" -@@ -45,10 +37,10 @@ install( +@@ -34,8 +30,8 @@ install( # Install headers install( FILES - "${CMAKE_CURRENT_BINARY_DIR}/singleproducerconsumer/src/ext-singleproducerconsumer/atomicops.h" - "${CMAKE_CURRENT_BINARY_DIR}/singleproducerconsumer/src/ext-singleproducerconsumer/readerwriterqueue.h" -- "${CMAKE_CURRENT_BINARY_DIR}/concurrentqueue/src/ext-concurrentqueue/concurrentqueue.h" -- "${CMAKE_CURRENT_BINARY_DIR}/concurrentqueue/src/ext-concurrentqueue/blockingconcurrentqueue.h" + "${PROJECT_SOURCE_DIR}/singleproducerconsumer-upstream/atomicops.h" + "${PROJECT_SOURCE_DIR}/singleproducerconsumer-upstream/readerwriterqueue.h" -+ "${PROJECT_SOURCE_DIR}/concurrentqueue-upstream/concurrentqueue.h" -+ "${PROJECT_SOURCE_DIR}/concurrentqueue-upstream/blockingconcurrentqueue.h" DESTINATION ${CMAKE_INSTALL_PREFIX}/include/moodycamel ) - diff --git a/meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor_0.27.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor_0.27.0-1.bbappend index 6a9c78fa9a..6f7d5f874c 100644 --- a/meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor_0.27.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor_0.27.0-1.bbappend @@ -2,17 +2,14 @@ # Instead of fetching # https://github.com/cameron314/readerwriterqueue/archive/ef7dfbf553288064347d51b8ac335f1ca489032a.zip -# https://github.com/cameron314/concurrentqueue/archive/8f65a8734d77c3cc00d74c0532efca872931d3ce.zip # with curl during do_compile use bitbake git fetcher FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" SRC_URI = " \ git://github.com/ros2-gbp/rosbag2-release;name=release;${ROS_BRANCH};protocol=https \ - file://0001-CMakeLists.txt-fetch-readerwriterqueue-and-concurren.patch \ + file://0001-CMakeLists.txt-fetch-readerwriterqueue.patch \ git://github.com/cameron314/readerwriterqueue.git;protocol=https;name=singleproducerconsumer-upstream;destsuffix=git/singleproducerconsumer-upstream;branch=master \ - git://github.com/cameron314/concurrentqueue.git;protocol=https;name=concurrentqueue-upstream;destsuffix=git/concurrentqueue-upstream;branch=master \ " -SRCREV_release = "dc17fed08353f30a7e20676df7c8fc5e842ed011" +SRCREV_release = "2d211121749c26978f1957f8fa0351c243bb2347" SRCREV_singleproducerconsumer-upstream = "ef7dfbf553288064347d51b8ac335f1ca489032a" -SRCREV_concurrentqueue-upstream = "8f65a8734d77c3cc00d74c0532efca872931d3ce" -SRCREV_FORMAT = "release_singleproducerconsumer-upstream_concurrentqueue-upstream" +SRCREV_FORMAT = "release_singleproducerconsumer-upstream" From 6ad4048d03113289564b4bd3de7a1689b5d0f2be Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:47:43 -0700 Subject: [PATCH 053/152] {rolling} action-tutorials-interfaces: Update build deps The action-msgs and service-msgs are needed at build-time. Signed-off-by: Rob Woolley --- .../demos/action-tutorials-interfaces_0.34.0-1.bbappend | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-ros2-rolling/recipes-bbappends/demos/action-tutorials-interfaces_0.34.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/demos/action-tutorials-interfaces_0.34.0-1.bbappend index 7a3f2da364..790b252855 100644 --- a/meta-ros2-rolling/recipes-bbappends/demos/action-tutorials-interfaces_0.34.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/demos/action-tutorials-interfaces_0.34.0-1.bbappend @@ -12,15 +12,15 @@ ROS_BUILDTOOL_DEPENDS += " \ # Without the target rosidl-typesupport-{c,cpp}, ament finds the native packages and then fails to link (error: incompatible # target). ROS_BUILD_DEPENDS += " \ + action-msgs \ rosidl-typesupport-c \ rosidl-typesupport-cpp \ + service-msgs \ " ROS_EXEC_DEPENDS += " \ - action-msgs \ builtin-interfaces \ fastcdr \ - service-msgs \ unique-identifier-msgs \ rosidl-typesupport-fastrtps-c \ rosidl-typesupport-fastrtps-cpp \ From 7ebaed11864b54a569e387e6409a6f183123a60d Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:48:42 -0700 Subject: [PATCH 054/152] {rolling} ecal: Inherit ros_insane_dev Signed-off-by: Rob Woolley --- .../recipes-bbappends/ecal/ecal_5.12.0-4.bbappend | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/meta-ros2-rolling/recipes-bbappends/ecal/ecal_5.12.0-4.bbappend b/meta-ros2-rolling/recipes-bbappends/ecal/ecal_5.12.0-4.bbappend index 873664669a..6f754933a6 100644 --- a/meta-ros2-rolling/recipes-bbappends/ecal/ecal_5.12.0-4.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ecal/ecal_5.12.0-4.bbappend @@ -13,14 +13,4 @@ DEPENDS += " \ # non -dev/-dbg/nativesdk- package ecal contains symlink .so '/usr/lib/libecal_app_pb.so' # non -dev/-dbg/nativesdk- package ecal contains symlink .so '/usr/lib/libecal_core_pb.so' # non -dev/-dbg/nativesdk- package ecal contains symlink .so '/usr/lib/libecaltime-simtime.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libnlohmann_json_schema_validator.so \ - ${libdir}/libecal_core_c.so \ - ${libdir}/libecal_ecaltime_pb.so \ - ${libdir}/libecaltime-linuxptp.so \ - ${libdir}/libecal_core.so \ - ${libdir}/libecaltime-localtime.so \ - ${libdir}/libecal_app_pb.so \ - ${libdir}/libecal_core_pb.so \ - ${libdir}/libecaltime-simtime.so \ -" +inherit ros_insane_dev_so From 5c45d5de6c2b6f9a507ba63afe2f3c0a4e0fde40 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:49:08 -0700 Subject: [PATCH 055/152] {rolling} example-interfaces: Update build deps Apply dependencies at build-time. Signed-off-by: Rob Woolley --- .../example-interfaces/example-interfaces_0.13.0-1.bbappend | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-ros2-rolling/recipes-bbappends/example-interfaces/example-interfaces_0.13.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/example-interfaces/example-interfaces_0.13.0-1.bbappend index c169329a66..053db079ad 100644 --- a/meta-ros2-rolling/recipes-bbappends/example-interfaces/example-interfaces_0.13.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/example-interfaces/example-interfaces_0.13.0-1.bbappend @@ -12,16 +12,16 @@ ROS_BUILDTOOL_DEPENDS += " \ # Without the target rosidl-typesupport-{c,cpp}, ament finds the native packages and then fails to link (error: incompatible # target). ROS_BUILD_DEPENDS += " \ + action-msgs \ rosidl-typesupport-c \ rosidl-typesupport-cpp \ + service-msgs \ " ROS_EXEC_DEPENDS += " \ - action-msgs \ builtin-interfaces \ fastcdr \ rosidl-typesupport-fastrtps-c \ rosidl-typesupport-fastrtps-cpp \ - service-msgs \ unique-identifier-msgs \ " From 3d754fe1eb767aff6cdcaffef1d9a607df8fb05b Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:49:55 -0700 Subject: [PATCH 056/152] {rolling} fuse-constraints: Add exception for compiler warning Signed-off-by: Rob Woolley --- .../recipes-bbappends/fuse/fuse-constraints_1.2.0-1.bbappend | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meta-ros2-rolling/recipes-bbappends/fuse/fuse-constraints_1.2.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/fuse/fuse-constraints_1.2.0-1.bbappend index 8c1e9604b7..c0add02a57 100644 --- a/meta-ros2-rolling/recipes-bbappends/fuse/fuse-constraints_1.2.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/fuse/fuse-constraints_1.2.0-1.bbappend @@ -1,4 +1,8 @@ # Copyright (c) 2021 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. # Doesn't need runtime dependency on ceres-solver ROS_EXEC_DEPENDS:remove = "ceres-solver" + +# received_message_period.hpp:175:32: error: unused parameter 'message_info' [-Werror=unused-parameter] +CXXFLAGS += "-Wno-error=unused-parameter" From beeab4548cf2245adc20a9251810bd15f8003fab Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:51:00 -0700 Subject: [PATCH 057/152] {rolling} geometric-shapes: Allow new octomap version Signed-off-by: Rob Woolley --- .../allow-new-octomap-version.patch | 13 +++++++++++++ .../geometric-shapes_2.2.0-1.bbappend | 9 +++++++++ 2 files changed, 22 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/geometric-shapes/geometric-shapes/allow-new-octomap-version.patch diff --git a/meta-ros2-rolling/recipes-bbappends/geometric-shapes/geometric-shapes/allow-new-octomap-version.patch b/meta-ros2-rolling/recipes-bbappends/geometric-shapes/geometric-shapes/allow-new-octomap-version.patch new file mode 100644 index 0000000000..ddd798ff43 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/geometric-shapes/geometric-shapes/allow-new-octomap-version.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c0b0ed0..c874ef7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -45,7 +45,7 @@ find_package(eigen_stl_containers REQUIRED) + find_package(geometry_msgs REQUIRED) + # Enforce the system package version on Ubuntu jammy and noble which is also used by libfcl-dev + # The version is fixed to prevent ABI conflicts with ros-octomap +-find_package(octomap 1.9.7...<1.10.0 REQUIRED) ++find_package(octomap 1.9.7...1.10.0 REQUIRED) + find_package(QHULL REQUIRED) + find_package(random_numbers REQUIRED) + find_package(rclcpp REQUIRED) diff --git a/meta-ros2-rolling/recipes-bbappends/geometric-shapes/geometric-shapes_2.2.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/geometric-shapes/geometric-shapes_2.2.0-1.bbappend index 41236f366e..75440582f0 100644 --- a/meta-ros2-rolling/recipes-bbappends/geometric-shapes/geometric-shapes_2.2.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/geometric-shapes/geometric-shapes_2.2.0-1.bbappend @@ -1,4 +1,13 @@ # Copyright (c) 2021 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. + + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://allow-new-octomap-version.patch" + +inherit pkgconfig + +ROS_BUILD_DEPENDS += "octomap" # ERROR: geometric-shapes-2.0.0-1-r0 do_package_qa: QA Issue: # non -dev/-dbg/nativesdk- package contains symlink .so: geometric-shapes path '/work/raspberrypi4-webos-linux-gnueabi/geometric-shapes/2.0.0-1-r0/packages-split/geometric-shapes/usr/lib/libgeometric_shapes.so' [dev-so] From 39dabdf6bb7665c050efb8e5a46a38fe473cbbe6 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:51:56 -0700 Subject: [PATCH 058/152] {rolling} google-benchmark-vendor: Refresh integration patch Signed-off-by: Rob Woolley --- ...CMakeLists.txt-prevent-building-google-benchmark-wit.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-ros2-rolling/recipes-bbappends/google-benchmark-vendor/google-benchmark-vendor/0001-CMakeLists.txt-prevent-building-google-benchmark-wit.patch b/meta-ros2-rolling/recipes-bbappends/google-benchmark-vendor/google-benchmark-vendor/0001-CMakeLists.txt-prevent-building-google-benchmark-wit.patch index 782e64c397..51423cab9c 100644 --- a/meta-ros2-rolling/recipes-bbappends/google-benchmark-vendor/google-benchmark-vendor/0001-CMakeLists.txt-prevent-building-google-benchmark-wit.patch +++ b/meta-ros2-rolling/recipes-bbappends/google-benchmark-vendor/google-benchmark-vendor/0001-CMakeLists.txt-prevent-building-google-benchmark-wit.patch @@ -18,9 +18,9 @@ Index: git/CMakeLists.txt @@ -81,15 +81,15 @@ macro(build_benchmark) endmacro() - if(NOT benchmark_FOUND OR "${benchmark_VERSION}" VERSION_LESS 1.6.1) + if(NOT benchmark_FOUND OR "${benchmark_VERSION}" VERSION_LESS 1.8.3) - build_benchmark() -+ message(FATAL_ERROR "benchmark not found, missing dependency on google-benchmark or version less than 1.6.1, found ${benchmark_VERSION}") ++ message(FATAL_ERROR "benchmark not found, missing dependency on google-benchmark or version less than 1.8.3, found ${benchmark_VERSION}") elseif(benchmark_FOUND) # Ubuntu Focal and Jammy have a packaging bug where libbenchmark_main has no symbols, # causing linker failures. I'm pretty sure it shouldn't be a static library. From 76d17710e8992f6704e632c8e0982a278b493ea2 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:52:32 -0700 Subject: [PATCH 059/152] {rolling} gtsam: Inherit ros_insane_dev Signed-off-by: Rob Woolley --- .../recipes-bbappends/gtsam/gtsam_4.2.0-5.bbappend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-ros2-rolling/recipes-bbappends/gtsam/gtsam_4.2.0-5.bbappend b/meta-ros2-rolling/recipes-bbappends/gtsam/gtsam_4.2.0-5.bbappend index 8c93b5ea70..d5bb9553ad 100644 --- a/meta-ros2-rolling/recipes-bbappends/gtsam/gtsam_4.2.0-5.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/gtsam/gtsam_4.2.0-5.bbappend @@ -2,4 +2,4 @@ # ERROR: QA Issue: non -dev/-dbg/nativesdk- package gtsam contains symlink .so '/usr/lib/libgtsam.so' # non -dev/-dbg/nativesdk- package gtsam contains symlink .so '/usr/lib/libgtsam_unstable.so' [dev-so] -FILES:${PN}-dev += "${libdir}/libgtsam.so ${libdir}/libgtsam_unstable.so" +inherit ros_insane_dev_so From 8f1c19ee8c382c5e86a2b78fa6c653db383a1d9a Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:54:20 -0700 Subject: [PATCH 060/152] {rolling} gz-*-vendor: Fix Gazebo vendor packages This relaxes the version check to ensure we use the existing Gazebo recipes and don't rebuild them ourselves. The dependencies on protobuf, cppcheck, and doxygen don't get used however they are required to pass the find_package checks in CMakeLists.txt Signed-off-by: Rob Woolley --- .../gz-cmake-vendor_0.1.1-1.bbappend | 11 +++++++++++ .../gz-common-vendor_0.1.1-1.bbappend | 9 +++++++++ .../gz-fuel-tools-vendor_0.1.0-1.bbappend | 5 +++++ .../gz-gui-vendor_0.1.0-1.bbappend | 10 ++++++++++ .../gz-math-vendor_0.1.0-1.bbappend | 4 ++-- .../Set-protoc-executable.patch | 11 +++++++++++ .../gz-msgs-vendor_0.1.1-1.bbappend | 13 +++++++++++++ .../gz-physics-vendor_0.1.0-1.bbappend | 5 +++++ .../gz-plugin-vendor_0.1.0-1.bbappend | 6 ++++++ .../gz-rendering-vendor_0.1.0-1.bbappend | 7 +++++++ .../gz-sensors-vendor_0.1.1-1.bbappend | 10 ++++++++++ .../gz-sim-vendor_0.1.0-1.bbappend | 14 ++++++++++++++ .../use-system-backwardcpp.patch | 11 +++++++++++ .../gz-tools-vendor_0.1.0-1.bbappend | 12 ++++++++++++ .../gz-transport-vendor_0.1.1-1.bbappend | 19 +++++++++++++++++++ .../gz-utils-vendor_0.1.0-1.bbappend | 8 ++++++++ 16 files changed, 153 insertions(+), 2 deletions(-) create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-cmake-vendor/gz-cmake-vendor_0.1.1-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-common-vendor/gz-common-vendor_0.1.1-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-fuel-tools-vendor/gz-fuel-tools-vendor_0.1.0-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-gui-vendor/gz-gui-vendor_0.1.0-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-msgs-vendor/gz-msgs-vendor/Set-protoc-executable.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-msgs-vendor/gz-msgs-vendor_0.1.1-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-physics-vendor/gz-physics-vendor_0.1.0-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-plugin-vendor/gz-plugin-vendor_0.1.0-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-rendering-vendor/gz-rendering-vendor_0.1.0-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-sensors-vendor/gz-sensors-vendor_0.1.1-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-sim-vendor/gz-sim-vendor_0.1.0-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-tools-vendor/gz-tools-vendor/use-system-backwardcpp.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-tools-vendor/gz-tools-vendor_0.1.0-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-transport-vendor/gz-transport-vendor_0.1.1-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-utils-vendor/gz-utils-vendor_0.1.0-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/gz-cmake-vendor/gz-cmake-vendor_0.1.1-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-cmake-vendor/gz-cmake-vendor_0.1.1-1.bbappend new file mode 100644 index 0000000000..473f5dd097 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-cmake-vendor/gz-cmake-vendor_0.1.1-1.bbappend @@ -0,0 +1,11 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +export GZ_RELAX_VERSION_MATCH="1" + +ROS_BUILD_DEPENDS += "gz-cmake3" + +# See CMakeLists.txt for details on why /usr/opt/gz_cmake_vendor/ is used +FILES:${PN} += "${datadir}/gz/gz-cmake3/* \ + ${prefix}/opt/gz_cmake_vendor/extra_cmake/lib/cmake/gz-cmake/*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros2-rolling/recipes-bbappends/gz-common-vendor/gz-common-vendor_0.1.1-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-common-vendor/gz-common-vendor_0.1.1-1.bbappend new file mode 100644 index 0000000000..e67bf13255 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-common-vendor/gz-common-vendor_0.1.1-1.bbappend @@ -0,0 +1,9 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +export GZ_RELAX_VERSION_MATCH="1" + +ROS_BUILD_DEPENDS += "gz-common5" + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros2-rolling/recipes-bbappends/gz-fuel-tools-vendor/gz-fuel-tools-vendor_0.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-fuel-tools-vendor/gz-fuel-tools-vendor_0.1.0-1.bbappend new file mode 100644 index 0000000000..627bc99850 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-fuel-tools-vendor/gz-fuel-tools-vendor_0.1.0-1.bbappend @@ -0,0 +1,5 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILD_DEPENDS += "gz-fuel-tools9" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros2-rolling/recipes-bbappends/gz-gui-vendor/gz-gui-vendor_0.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-gui-vendor/gz-gui-vendor_0.1.0-1.bbappend new file mode 100644 index 0000000000..955635d247 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-gui-vendor/gz-gui-vendor_0.1.0-1.bbappend @@ -0,0 +1,10 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +export GZ_RELAX_VERSION_MATCH="1" + +EXTRA_OECMAKE += " \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" + +ROS_BUILD_DEPENDS += "gz-gui8" +ROS_BUILDTOOL_DEPENDS += "protobuf-native" diff --git a/meta-ros2-rolling/recipes-bbappends/gz-math-vendor/gz-math-vendor_0.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-math-vendor/gz-math-vendor_0.1.0-1.bbappend index c63a28b645..e7b81f7827 100644 --- a/meta-ros2-rolling/recipes-bbappends/gz-math-vendor/gz-math-vendor_0.1.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/gz-math-vendor/gz-math-vendor_0.1.0-1.bbappend @@ -3,8 +3,8 @@ # ERROR: QA Issue: non -dev/-dbg/nativesdk- package gz-math-vendor contains symlink .so '/opt/ros/rolling/lib/libgz-math7.so' [dev-so] inherit ros_insane_dev_so -DEPENDS += "gz-math7" +ROS_BUILD_DEPENDS += "gz-math7" -SYSROOT_DIRS += "${ros_prefix}/opt/gz_math_vendor/extra_cmake/lib/cmake/gz-math" +export GZ_RELAX_VERSION_MATCH="1" BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros2-rolling/recipes-bbappends/gz-msgs-vendor/gz-msgs-vendor/Set-protoc-executable.patch b/meta-ros2-rolling/recipes-bbappends/gz-msgs-vendor/gz-msgs-vendor/Set-protoc-executable.patch new file mode 100644 index 0000000000..13ee7c2936 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-msgs-vendor/gz-msgs-vendor/Set-protoc-executable.patch @@ -0,0 +1,11 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1ca5fc1..9641111 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -44,6 +44,7 @@ ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + VCS_VERSION ${GITHUB_NAME}${LIB_VER_MAJOR}_${LIB_VER} + CMAKE_ARGS + -DBUILD_DOCS:BOOL=OFF ++ -DPROTOBUF_PROTOC_EXECUTABLE=${PROTOBUF_PROTOC_EXECUTABLE} + GLOBAL_HOOK + ) diff --git a/meta-ros2-rolling/recipes-bbappends/gz-msgs-vendor/gz-msgs-vendor_0.1.1-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-msgs-vendor/gz-msgs-vendor_0.1.1-1.bbappend new file mode 100644 index 0000000000..d80c625d7f --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-msgs-vendor/gz-msgs-vendor_0.1.1-1.bbappend @@ -0,0 +1,13 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILD_DEPENDS += "gz-msgs10" +ROS_BUILDTOOL_DEPENDS += "gz-msgs10-native protobuf-native" + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://Set-protoc-executable.patch" + +EXTRA_OECMAKE += " \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros2-rolling/recipes-bbappends/gz-physics-vendor/gz-physics-vendor_0.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-physics-vendor/gz-physics-vendor_0.1.0-1.bbappend new file mode 100644 index 0000000000..b4693dddad --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-physics-vendor/gz-physics-vendor_0.1.0-1.bbappend @@ -0,0 +1,5 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +export GZ_RELAX_VERSION_MATCH="1" + +ROS_BUILD_DEPENDS += "gz-physics7" diff --git a/meta-ros2-rolling/recipes-bbappends/gz-plugin-vendor/gz-plugin-vendor_0.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-plugin-vendor/gz-plugin-vendor_0.1.0-1.bbappend new file mode 100644 index 0000000000..2d44762b8c --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-plugin-vendor/gz-plugin-vendor_0.1.0-1.bbappend @@ -0,0 +1,6 @@ + +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILD_DEPENDS += "gz-plugin2" + +inherit ros_insane_dev_so diff --git a/meta-ros2-rolling/recipes-bbappends/gz-rendering-vendor/gz-rendering-vendor_0.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-rendering-vendor/gz-rendering-vendor_0.1.0-1.bbappend new file mode 100644 index 0000000000..59cf3cda25 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-rendering-vendor/gz-rendering-vendor_0.1.0-1.bbappend @@ -0,0 +1,7 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +export GZ_RELAX_VERSION_MATCH="1" + +ROS_BUILD_DEPENDS += "gz-rendering8" + +ROS_BUILDTOOL_DEPENDS += "cppcheck-native doxygen-native" diff --git a/meta-ros2-rolling/recipes-bbappends/gz-sensors-vendor/gz-sensors-vendor_0.1.1-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-sensors-vendor/gz-sensors-vendor_0.1.1-1.bbappend new file mode 100644 index 0000000000..d9df8b34c2 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-sensors-vendor/gz-sensors-vendor_0.1.1-1.bbappend @@ -0,0 +1,10 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +export GZ_RELAX_VERSION_MATCH="1" + +EXTRA_OECMAKE += " \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" + +ROS_BUILD_DEPENDS += "gz-sensors8" +ROS_BUILDTOOL_DEPENDS += "protobuf-native" diff --git a/meta-ros2-rolling/recipes-bbappends/gz-sim-vendor/gz-sim-vendor_0.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-sim-vendor/gz-sim-vendor_0.1.0-1.bbappend new file mode 100644 index 0000000000..8196c459d5 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-sim-vendor/gz-sim-vendor_0.1.0-1.bbappend @@ -0,0 +1,14 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +export GZ_RELAX_VERSION_MATCH="1" + +# CMake Warning at gz-sim-vendor/0.1.0-1/recipe-sysroot/usr/lib/cmake/Qt5/Qt5Config.cmake:7 (message): +# SkippingbecauseOE_QMAKE_PATH_EXTERNAL_HOST_BINSisnotdefined +inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'qt5-widgets'], '', 'cmake_qt5', d)} + +ROS_BUILD_DEPENDS += "gz-sim8" +ROS_BUILDTOOL_DEPENDS += "protobuf-native" + +EXTRA_OECMAKE += " \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" diff --git a/meta-ros2-rolling/recipes-bbappends/gz-tools-vendor/gz-tools-vendor/use-system-backwardcpp.patch b/meta-ros2-rolling/recipes-bbappends/gz-tools-vendor/gz-tools-vendor/use-system-backwardcpp.patch new file mode 100644 index 0000000000..f9f6b133e7 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-tools-vendor/gz-tools-vendor/use-system-backwardcpp.patch @@ -0,0 +1,11 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b30781b..f872685 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -34,6 +34,7 @@ ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + VCS_VERSION ${GITHUB_NAME}${LIB_VER_MAJOR}_${LIB_VER} + CMAKE_ARGS + -DBUILD_DOCS:BOOL=OFF ++ -DUSE_SYSTEM_BACKWARDCPP=ON + GLOBAL_HOOK + ) diff --git a/meta-ros2-rolling/recipes-bbappends/gz-tools-vendor/gz-tools-vendor_0.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-tools-vendor/gz-tools-vendor_0.1.0-1.bbappend new file mode 100644 index 0000000000..934260ea4e --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-tools-vendor/gz-tools-vendor_0.1.0-1.bbappend @@ -0,0 +1,12 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILD_DEPENDS += " gz-tools2" +ROS_BUILDTOOL_DEPENDS += " gz-tools2-native" + +# See CMakeLists.txt for details on why /usr/opt/gz_tools_vendor/ is used +FILES:${PN} += " \ + ${prefix}/opt/gz_tools_vendor/extra_cmake/lib/cmake/gz-tools/gz-tools-config-version.cmake \ + ${prefix}/opt/gz_tools_vendor/extra_cmake/lib/cmake/gz-tools/gz-tools-config.cmake \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros2-rolling/recipes-bbappends/gz-transport-vendor/gz-transport-vendor_0.1.1-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-transport-vendor/gz-transport-vendor_0.1.1-1.bbappend new file mode 100644 index 0000000000..6c2b0a945a --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-transport-vendor/gz-transport-vendor_0.1.1-1.bbappend @@ -0,0 +1,19 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +export GZ_RELAX_VERSION_MATCH="1" + +inherit pkgconfig + +ROS_BUILD_DEPENDS += " \ + gz-transport13 \ + protobuf \ +" + +ROS_BUILDTOOL_DEPENDS += " \ + protobuf-native \ + cppcheck-native \ +" + +EXTRA_OECMAKE += " \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" diff --git a/meta-ros2-rolling/recipes-bbappends/gz-utils-vendor/gz-utils-vendor_0.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-utils-vendor/gz-utils-vendor_0.1.0-1.bbappend new file mode 100644 index 0000000000..c5a7c4bb82 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-utils-vendor/gz-utils-vendor_0.1.0-1.bbappend @@ -0,0 +1,8 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +# ERROR: QA Issue: non -dev/-dbg/nativesdk- package gz-utils-vendor contains symlink .so '/opt/ros/rolling/lib/libgz-utils2.so' [dev-so] +inherit ros_insane_dev_so + +ROS_BUILD_DEPENDS += "gz-utils2" + +BBCLASSEXTEND = "native nativesdk" From b29d7e06b90dc7ad4113e33eb58ebca68f62718a Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:56:57 -0700 Subject: [PATCH 061/152] {rolling} gz-dartsim-vendor: Use dartsim Ensure that we can use the existing dartsim recipe instead of compiling dartsim ourselves. Signed-off-by: Rob Woolley --- .../use-oe-compiler-flags.patch | 12 +++++++++ .../use-system-dartsim.patch | 18 +++++++++++++ .../gz-dartsim-vendor_0.1.0-1.bbappend | 25 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-dartsim-vendor/gz-dartsim-vendor/use-oe-compiler-flags.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-dartsim-vendor/gz-dartsim-vendor/use-system-dartsim.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-dartsim-vendor/gz-dartsim-vendor_0.1.0-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/gz-dartsim-vendor/gz-dartsim-vendor/use-oe-compiler-flags.patch b/meta-ros2-rolling/recipes-bbappends/gz-dartsim-vendor/gz-dartsim-vendor/use-oe-compiler-flags.patch new file mode 100644 index 0000000000..2a496911d4 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-dartsim-vendor/gz-dartsim-vendor/use-oe-compiler-flags.patch @@ -0,0 +1,12 @@ +Index: git/CMakeLists.txt +=================================================================== +--- git.orig/CMakeLists.txt ++++ git/CMakeLists.txt +@@ -11,6 +11,7 @@ ament_vendor(${PROJECT_NAME} + -DDART_BUILD_GUI_OSG:BOOL=FALSE + -DDART_BUILD_DARTPY:BOOL=FALSE + -DDART_BUILD_EXTRAS:BOOL=FALSE ++ -DDART_VERBOSE:BOOL=TRUE + GLOBAL_HOOK + PATCHES patches + ) diff --git a/meta-ros2-rolling/recipes-bbappends/gz-dartsim-vendor/gz-dartsim-vendor/use-system-dartsim.patch b/meta-ros2-rolling/recipes-bbappends/gz-dartsim-vendor/gz-dartsim-vendor/use-system-dartsim.patch new file mode 100644 index 0000000000..e014894deb --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-dartsim-vendor/gz-dartsim-vendor/use-system-dartsim.patch @@ -0,0 +1,18 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6b642f8..6145f19 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -4,7 +4,13 @@ project(gz_dartsim_vendor) + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_vendor_package REQUIRED) + ++include(FindPkgConfig) ++pkg_search_module(DART REQUIRED dart) ++ ++message("DART_FOUND: ${DART_FOUND}") ++ + ament_vendor(${PROJECT_NAME} ++ SATISFIED $(DART_FOUND) + VCS_URL https://github.com/dartsim/dart.git + VCS_VERSION v6.13.2 + CMAKE_ARGS diff --git a/meta-ros2-rolling/recipes-bbappends/gz-dartsim-vendor/gz-dartsim-vendor_0.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-dartsim-vendor/gz-dartsim-vendor_0.1.0-1.bbappend new file mode 100644 index 0000000000..93cbcd1724 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-dartsim-vendor/gz-dartsim-vendor_0.1.0-1.bbappend @@ -0,0 +1,25 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +# ERROR: gz-dartsim-vendor-0.1.0-1-r0 do_package_qa: QA Issue: non -dev/-dbg/nativesdk- package gz-dartsim-vendor contains symlink .so +inherit ros_insane_dev_so + +ROS_BUILD_DEPENDS = "dartsim" + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://use-system-dartsim.patch" + +# do_install:append:class-target () { +# sed -i -e "s,--sysroot=${STAGING_DIR_TARGET},,g" ${D}${ros_libdir}/pkgconfig/dart.pc +# sed -i -e "s,-fdebug-prefix-map=${STAGING_DIR_HOST}=,,g" ${D}${ros_libdir}/pkgconfig/dart.pc +# sed -i -e "s,-fmacro-prefix-map=${STAGING_DIR_HOST}=,,g" ${D}${ros_libdir}/pkgconfig/dart.pc +# sed -i -e "s,-fdebug-prefix-map=${STAGING_DIR_NATIVE}=,,g" ${D}${ros_libdir}/pkgconfig/dart.pc +# sed -i -e "s, -fmacro-prefix-map=${S}=${TARGET_DBGSRC_DIR},,g" ${D}${ros_libdir}/pkgconfig/dart.pc +# sed -i -e "s, -fdebug-prefix-map=${S}=${TARGET_DBGSRC_DIR},,g" ${D}${ros_libdir}/pkgconfig/dart.pc +# sed -i -e "s, -fmacro-prefix-map=${B}=${TARGET_DBGSRC_DIR},,g" ${D}${ros_libdir}/pkgconfig/dart.pc +# sed -i -e "s, -fdebug-prefix-map=${B}=${TARGET_DBGSRC_DIR},,g" ${D}${ros_libdir}/pkgconfig/dart.pc +# sed -i -e "s, -fdebug-prefix-map=${STAGING_DIR_HOST}=,,g" ${D}${ros_libdir}/pkgconfig/dart.pc +# sed -i -e "s, -fmacro-prefix-map=${STAGING_DIR_HOST}=,,g" ${D}${ros_libdir}/pkgconfig/dart.pc +# sed -i -e "s, -fdebug-prefix-map=${STAGING_DIR_NATIVE}=,,g" ${D}${ros_libdir}/pkgconfig/dart.pc +# } + +inherit pkgconfig From 4e28a1c26df5056535e80c0158df9d63ea7d509a Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:58:20 -0700 Subject: [PATCH 062/152] {rolling} gz-ogre-next-vendor: Use system ogre-next This ensures that we use the existing ogre-next recipe instead of building it ourselves. Signed-off-by: Rob Woolley --- .../use-system-ogre-next.patch | 15 +++++++++++++++ .../gz-ogre-next-vendor_0.1.0-1.bbappend | 6 ++++++ 2 files changed, 21 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-ogre-next-vendor/gz-ogre-next-vendor/use-system-ogre-next.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/gz-ogre-next-vendor/gz-ogre-next-vendor_0.1.0-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/gz-ogre-next-vendor/gz-ogre-next-vendor/use-system-ogre-next.patch b/meta-ros2-rolling/recipes-bbappends/gz-ogre-next-vendor/gz-ogre-next-vendor/use-system-ogre-next.patch new file mode 100644 index 0000000000..612c9d901d --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-ogre-next-vendor/gz-ogre-next-vendor/use-system-ogre-next.patch @@ -0,0 +1,15 @@ +Index: git/CMakeLists.txt +=================================================================== +--- git.orig/CMakeLists.txt ++++ git/CMakeLists.txt +@@ -11,7 +11,10 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aar + set(EXTRA_CMAKE_FLAGS -DOGRE_SIMD_NEON:BOOL=FALSE -DOGRE_SIMD_SSE2:BOOL=FALSE) + endif() + ++find_package(OGRE-Next) ++ + ament_vendor(${PROJECT_NAME} ++ SATISFIED OGRE-Next_FOUND + VCS_URL https://github.com/OGRECave/ogre-next.git + VCS_VERSION v2.3.3 + CMAKE_ARGS diff --git a/meta-ros2-rolling/recipes-bbappends/gz-ogre-next-vendor/gz-ogre-next-vendor_0.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/gz-ogre-next-vendor/gz-ogre-next-vendor_0.1.0-1.bbappend new file mode 100644 index 0000000000..049ef7d1f4 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/gz-ogre-next-vendor/gz-ogre-next-vendor_0.1.0-1.bbappend @@ -0,0 +1,6 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://use-system-ogre-next.patch" + +DEPENDS += "ogre-next" From 1c50b98dfaaa0d5786f0cf242b04e63d1877ceef Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:59:08 -0700 Subject: [PATCH 063/152] {rolling} kobuki-core: Inherit ros_insane_dev_so Signed-off-by: Rob Woolley --- .../recipes-bbappends/kobuki-core/kobuki-core_1.4.0-3.bbappend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-ros2-rolling/recipes-bbappends/kobuki-core/kobuki-core_1.4.0-3.bbappend b/meta-ros2-rolling/recipes-bbappends/kobuki-core/kobuki-core_1.4.0-3.bbappend index 6458765a44..dc190d354a 100644 --- a/meta-ros2-rolling/recipes-bbappends/kobuki-core/kobuki-core_1.4.0-3.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/kobuki-core/kobuki-core_1.4.0-3.bbappend @@ -1,4 +1,4 @@ # Copyright (c) 2024 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package kobuki-core contains symlink .so '/usr/lib/libkobuki_core.so' [dev-so] -FILES:${PN}-dev += "${libdir}/libkobuki_core.so" +inherit ros_insane_dev_so From dff9cbe8d4e5426f3dda036848e2947c8a583d23 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 15:59:54 -0700 Subject: [PATCH 064/152] {rolling} libpointmatcher: Remove unneeded patch Signed-off-by: Rob Woolley --- ...0001-Make-yaml-cpp-pm-use-cmake-clean.patch | 18 ------------------ .../libpointmatcher_1.4.1-1.bbappend | 4 ---- 2 files changed, 22 deletions(-) delete mode 100644 meta-ros2-rolling/recipes-bbappends/libpointmatcher/libpointmatcher/0001-Make-yaml-cpp-pm-use-cmake-clean.patch diff --git a/meta-ros2-rolling/recipes-bbappends/libpointmatcher/libpointmatcher/0001-Make-yaml-cpp-pm-use-cmake-clean.patch b/meta-ros2-rolling/recipes-bbappends/libpointmatcher/libpointmatcher/0001-Make-yaml-cpp-pm-use-cmake-clean.patch deleted file mode 100644 index a4285df521..0000000000 --- a/meta-ros2-rolling/recipes-bbappends/libpointmatcher/libpointmatcher/0001-Make-yaml-cpp-pm-use-cmake-clean.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/contrib/yaml-cpp-pm/CMakeLists.txt b/contrib/yaml-cpp-pm/CMakeLists.txt -index 2689856..9274e14 100644 ---- a/contrib/yaml-cpp-pm/CMakeLists.txt -+++ b/contrib/yaml-cpp-pm/CMakeLists.txt -@@ -91,11 +91,11 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_C - # - set(CMAKE_CXX_FLAGS "-Wall ${GCC_EXTRA_OPTIONS} -fPIC -pedantic -Wno-long-long ${CMAKE_CXX_FLAGS}") - # -- add_custom_target(debuggable $(MAKE) clean -+ add_custom_target(debuggable ${CMAKE_PROGRAM} --target clean - COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_SOURCE_DIR} - COMMENT "Adjusting settings for debug compilation" - VERBATIM) -- add_custom_target(releasable $(MAKE) clean -+ add_custom_target(releasable ${CMAKE_PROGRAM} --target clean - COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${CMAKE_SOURCE_DIR} - COMMENT "Adjusting settings for release compilation" - VERBATIM) diff --git a/meta-ros2-rolling/recipes-bbappends/libpointmatcher/libpointmatcher_1.4.1-1.bbappend b/meta-ros2-rolling/recipes-bbappends/libpointmatcher/libpointmatcher_1.4.1-1.bbappend index d508d80df2..f29b6b0fc9 100644 --- a/meta-ros2-rolling/recipes-bbappends/libpointmatcher/libpointmatcher_1.4.1-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/libpointmatcher/libpointmatcher_1.4.1-1.bbappend @@ -1,11 +1,7 @@ # Copyright (c) 2022 Wind River Systems, Inc. -FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" - # CMake Error at CMakeLists.txt:40 (MESSAGE): # 32 bits compiler detected. Libpointmatcher is only supported in 64 bits. COMPATIBLE_MACHINE = "(^$)" COMPATIBLE_MACHINE:aarch64 = "(.*)" COMPATIBLE_MACHINE:x86-64 = "(.*)" - -SRC_URI += "file://0001-Make-yaml-cpp-pm-use-cmake-clean.patch" From a0509bc9c91d20760a08c2bfb31e09b21f67f9b9 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:00:19 -0700 Subject: [PATCH 065/152] {rolling} microstrain-inertial-driver: Inherit ros_insane_dev_so Signed-off-by: Rob Woolley --- .../microstrain-inertial-driver_4.3.0-1.bbappend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-ros2-rolling/recipes-bbappends/microstrain-inertial/microstrain-inertial-driver_4.3.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/microstrain-inertial/microstrain-inertial-driver_4.3.0-1.bbappend index 94e9e4e697..c7d2cc22ef 100644 --- a/meta-ros2-rolling/recipes-bbappends/microstrain-inertial/microstrain-inertial-driver_4.3.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/microstrain-inertial/microstrain-inertial-driver_4.3.0-1.bbappend @@ -60,7 +60,7 @@ FILES:${PN}-prebuilt-boost = "${libdir}/libboost_*" # non -dev/-dbg/nativesdk- package microstrain-inertial-driver contains symlink .so '/usr/opt/ros/galactic/lib/libboost_prg_exec_monitor.so' # non -dev/-dbg/nativesdk- package microstrain-inertial-driver contains symlink .so '/usr/opt/ros/galactic/lib/libboost_unit_test_framework.so' # non -dev/-dbg/nativesdk- package microstrain-inertial-driver contains symlink .so '/usr/opt/ros/galactic/lib/libboost_system.so' [dev-so] -INSANE_SKIP:${PN} += "dev-so" +inherit ros_insane_dev_so # ERROR: microstrain-inertial-driver-2.0.4-1-r0 do_package_qa: QA Issue: # microstrain-inertial-driver-prebuilt-boost: found library in wrong location: /usr/opt/ros/galactic/lib/libboost_timer.so.1.68.0 From e0100bc87eab576f8bd247380182b479e3b77d17 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:02:16 -0700 Subject: [PATCH 066/152] {rolling} moveit: Resolve build failures Adds necessary build tools and fixes packaging problems for moveit recipes. Signed-off-by: Rob Woolley --- .../moveit/chomp-motion-planner_2.9.0-2.bbappend | 2 +- .../moveit/moveit-core_2.9.0-2.bbappend | 3 +++ .../moveit/moveit-hybrid-planning_2.9.0-2.bbappend | 11 +---------- .../moveit/moveit-planners-chomp_2.9.0-2.bbappend | 2 +- .../moveit/moveit-planners-ompl_2.9.0-2.bbappend | 5 +---- .../moveit/moveit-py_2.9.0-2.bbappend | 2 +- .../moveit/moveit-ros-perception_2.9.0-2.bbappend | 11 +---------- .../moveit-ros-visualization_2.9.0-2.bbappend | 13 +------------ .../moveit-setup-app-plugins_2.9.0-2.bbappend | 14 ++++++++++++++ .../moveit/moveit-setup-assistant_2.9.0-2.bbappend | 14 ++++++++++++++ .../moveit-setup-controllers_2.9.0-2.bbappend | 14 ++++++++++++++ .../moveit-setup-core-plugins_2.9.0-2.bbappend | 14 ++++++++++++++ .../moveit/moveit-setup-framework_2.9.0-2.bbappend | 6 ++++++ .../moveit-setup-srdf-plugins_2.9.0-2.bbappend | 14 ++++++++++++++ 14 files changed, 86 insertions(+), 39 deletions(-) create mode 100644 meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-app-plugins_2.9.0-2.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-assistant_2.9.0-2.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-controllers_2.9.0-2.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-core-plugins_2.9.0-2.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-srdf-plugins_2.9.0-2.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/chomp-motion-planner_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/chomp-motion-planner_2.9.0-2.bbappend index 0f2e015bd0..0872bba0d3 100644 --- a/meta-ros2-rolling/recipes-bbappends/moveit/chomp-motion-planner_2.9.0-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/moveit/chomp-motion-planner_2.9.0-2.bbappend @@ -1,4 +1,4 @@ # Copyright (c) 2022 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package chomp-motion-planner contains symlink .so '/usr/lib/libchomp_motion_planner.so' [dev-so] -FILES:${PN}-dev += "${libdir}/libchomp_motion_planner.so" +inherit ros_insane_dev_so diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-core_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-core_2.9.0-2.bbappend index 14d1218980..9ba53b7475 100644 --- a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-core_2.9.0-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-core_2.9.0-2.bbappend @@ -40,3 +40,6 @@ DEPENDS += "\ # [dev-so] inherit ros_insane_dev_so inherit pkgconfig + +# collision_common.cpp:578:40: error: ISO C++ forbids declaration of 'type name' with no type [-fpermissive] +# CXXFLAGS:append = " -fpermissive" diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-hybrid-planning_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-hybrid-planning_2.9.0-2.bbappend index c6d179c9b5..ecc9a09c0d 100644 --- a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-hybrid-planning_2.9.0-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-hybrid-planning_2.9.0-2.bbappend @@ -8,13 +8,4 @@ # non -dev/-dbg/nativesdk- package moveit-hybrid-planning contains symlink .so '/usr/lib/libreplan_invalidated_trajectory_plugin.so' # non -dev/-dbg/nativesdk- package moveit-hybrid-planning contains symlink .so '/usr/lib/libmoveit_hybrid_planning_manager.so' # non -dev/-dbg/nativesdk- package moveit-hybrid-planning contains symlink .so '/usr/lib/libmoveit_global_planner_component.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libforward_trajectory_plugin.so \ - ${libdir}/libsingle_plan_execution_plugin.so \ - ${libdir}/libsimple_sampler_plugin.so \ - ${libdir}/libmotion_planning_pipeline_plugin.so \ - ${libdir}/libmoveit_local_planner_component.so \ - ${libdir}/libreplan_invalidated_trajectory_plugin.so \ - ${libdir}/libmoveit_hybrid_planning_manager.so \ - ${libdir}/libmoveit_global_planner_component.so \ -" +inherit ros_insane_dev_so diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-planners-chomp_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-planners-chomp_2.9.0-2.bbappend index 37758b3cd2..65b3184a5f 100644 --- a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-planners-chomp_2.9.0-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-planners-chomp_2.9.0-2.bbappend @@ -1,4 +1,4 @@ # Copyright (c) 2022 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package moveit-planners-chomp contains symlink .so '/usr/lib/libmoveit_chomp_interface.so' [dev-so] -FILES:${PN}-dev += "${libdir}/libmoveit_chomp_interface.so" +inherit ros_insane_dev_so diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-planners-ompl_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-planners-ompl_2.9.0-2.bbappend index 19573f123e..3b4a299f77 100644 --- a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-planners-ompl_2.9.0-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-planners-ompl_2.9.0-2.bbappend @@ -2,7 +2,4 @@ # ERROR: QA Issue: non -dev/-dbg/nativesdk- package moveit-planners-ompl contains symlink .so '/usr/lib/libmoveit_ompl_interface.so' # non -dev/-dbg/nativesdk- package moveit-planners-ompl contains symlink .so '/usr/lib/libmoveit_ompl_planner_plugin.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libmoveit_ompl_interface.so \ - ${libdir}/libmoveit_ompl_planner_plugin.so \ -" +inherit ros_insane_dev_so diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-py_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-py_2.9.0-2.bbappend index 70263d34e0..7ff839b3ad 100644 --- a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-py_2.9.0-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-py_2.9.0-2.bbappend @@ -1,4 +1,4 @@ # Copyright (c) 2023 Wind River Systems, Inc. # ERROR: QA Issue: non -dev/-dbg/nativesdk- package moveit-py contains symlink .so '/usr/lib/libmoveit_py_utils.so' [dev-so] -FILES:${PN}-dev += "${libdir}/libmoveit_py_utils.so" +inherit ros_insane_dev_so diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-ros-perception_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-ros-perception_2.9.0-2.bbappend index e246265893..ca6344fa4d 100644 --- a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-ros-perception_2.9.0-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-ros-perception_2.9.0-2.bbappend @@ -8,13 +8,4 @@ # non -dev/-dbg/nativesdk- package moveit-ros-perception contains symlink .so '/usr/lib/libmoveit_mesh_filter.so' # non -dev/-dbg/nativesdk- package moveit-ros-perception contains symlink .so '/usr/lib/libmoveit_depth_image_octomap_updater.so' # non -dev/-dbg/nativesdk- package moveit-ros-perception contains symlink .so '/usr/lib/libmoveit_semantic_world.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libmoveit_pointcloud_octomap_updater_core.so \ - ${libdir}/libmoveit_depth_image_octomap_updater_core.so \ - ${libdir}/libmoveit_point_containment_filter.so \ - ${libdir}/libmoveit_pointcloud_octomap_updater.so \ - ${libdir}/libmoveit_lazy_free_space_updater.so \ - ${libdir}/libmoveit_mesh_filter.so \ - ${libdir}/libmoveit_depth_image_octomap_updater.so \ - ${libdir}/libmoveit_semantic_world.so \ -" +inherit ros_insane_dev_so diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-ros-visualization_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-ros-visualization_2.9.0-2.bbappend index 3b02986c06..f743561f5e 100644 --- a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-ros-visualization_2.9.0-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-ros-visualization_2.9.0-2.bbappend @@ -14,15 +14,4 @@ ROS_BUILDTOOL_DEPENDS += " \ # Unknown CMake command "qt5_wrap_ui". inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'qt5-widgets'], '', 'cmake_qt5', d)} -# QA Issue: non -dev/-dbg/nativesdk- package moveit-ros-visualization contains symlink .so -FILES:${PN}-dev += " \ - ${libdir}/libmoveit_motion_planning_rviz_plugin.so \ - ${libdir}/libmoveit_motion_planning_rviz_plugin_core.so \ - ${libdir}/libmoveit_planning_scene_rviz_plugin.so \ - ${libdir}/libmoveit_planning_scene_rviz_plugin_core.so \ - ${libdir}/libmoveit_robot_state_rviz_plugin.so \ - ${libdir}/libmoveit_robot_state_rviz_plugin_core.so \ - ${libdir}/libmoveit_rviz_plugin_render_tools.so \ - ${libdir}/libmoveit_trajectory_rviz_plugin.so \ - ${libdir}/libmoveit_trajectory_rviz_plugin_core.so \ -" +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-app-plugins_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-app-plugins_2.9.0-2.bbappend new file mode 100644 index 0000000000..ff0ce6c319 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-app-plugins_2.9.0-2.bbappend @@ -0,0 +1,14 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILDTOOL_DEPENDS += " \ + ament-cmake-ros \ + ament-cmake-gmock \ + ament-cmake-gtest \ + ament-cmake-pytest \ +" + +# CMake Warning at moveit-setup-srdf-plugins/2.9.0-2/recipe-sysroot/usr/lib/cmake/Qt5/Qt5Config.cmake:7 (message): +# SkippingbecauseOE_QMAKE_PATH_EXTERNAL_HOST_BINSisnotdefined +# CMake Error at CMakeLists.txt:13 (qt5_wrap_cpp): +# Unknown CMake command "qt5_wrap_cpp". +inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'qt5-widgets'], '', 'cmake_qt5', d)} diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-assistant_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-assistant_2.9.0-2.bbappend new file mode 100644 index 0000000000..ff0ce6c319 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-assistant_2.9.0-2.bbappend @@ -0,0 +1,14 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILDTOOL_DEPENDS += " \ + ament-cmake-ros \ + ament-cmake-gmock \ + ament-cmake-gtest \ + ament-cmake-pytest \ +" + +# CMake Warning at moveit-setup-srdf-plugins/2.9.0-2/recipe-sysroot/usr/lib/cmake/Qt5/Qt5Config.cmake:7 (message): +# SkippingbecauseOE_QMAKE_PATH_EXTERNAL_HOST_BINSisnotdefined +# CMake Error at CMakeLists.txt:13 (qt5_wrap_cpp): +# Unknown CMake command "qt5_wrap_cpp". +inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'qt5-widgets'], '', 'cmake_qt5', d)} diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-controllers_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-controllers_2.9.0-2.bbappend new file mode 100644 index 0000000000..ff0ce6c319 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-controllers_2.9.0-2.bbappend @@ -0,0 +1,14 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILDTOOL_DEPENDS += " \ + ament-cmake-ros \ + ament-cmake-gmock \ + ament-cmake-gtest \ + ament-cmake-pytest \ +" + +# CMake Warning at moveit-setup-srdf-plugins/2.9.0-2/recipe-sysroot/usr/lib/cmake/Qt5/Qt5Config.cmake:7 (message): +# SkippingbecauseOE_QMAKE_PATH_EXTERNAL_HOST_BINSisnotdefined +# CMake Error at CMakeLists.txt:13 (qt5_wrap_cpp): +# Unknown CMake command "qt5_wrap_cpp". +inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'qt5-widgets'], '', 'cmake_qt5', d)} diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-core-plugins_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-core-plugins_2.9.0-2.bbappend new file mode 100644 index 0000000000..ff0ce6c319 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-core-plugins_2.9.0-2.bbappend @@ -0,0 +1,14 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILDTOOL_DEPENDS += " \ + ament-cmake-ros \ + ament-cmake-gmock \ + ament-cmake-gtest \ + ament-cmake-pytest \ +" + +# CMake Warning at moveit-setup-srdf-plugins/2.9.0-2/recipe-sysroot/usr/lib/cmake/Qt5/Qt5Config.cmake:7 (message): +# SkippingbecauseOE_QMAKE_PATH_EXTERNAL_HOST_BINSisnotdefined +# CMake Error at CMakeLists.txt:13 (qt5_wrap_cpp): +# Unknown CMake command "qt5_wrap_cpp". +inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'qt5-widgets'], '', 'cmake_qt5', d)} diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-framework_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-framework_2.9.0-2.bbappend index e6b61bd63f..0515afa63e 100644 --- a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-framework_2.9.0-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-framework_2.9.0-2.bbappend @@ -3,3 +3,9 @@ ROS_BUILD_DEPENDS += " \ ament-cmake-ros-native \ " +# +# CMake Warning at octomap-rviz-plugins/2.0.0-3-r0/recipe-sysroot/usr/lib/cmake/Qt5/Qt5Config.cmake:7 (message): +# SkippingbecauseOE_QMAKE_PATH_EXTERNAL_HOST_BINSisnotdefined +# CMake Error at CMakeLists.txt:25 (qt5_wrap_cpp): +# Unknown CMake command "qt5_wrap_cpp". +inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'qt5-widgets'], '', 'cmake_qt5', d)} diff --git a/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-srdf-plugins_2.9.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-srdf-plugins_2.9.0-2.bbappend new file mode 100644 index 0000000000..ff0ce6c319 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/moveit/moveit-setup-srdf-plugins_2.9.0-2.bbappend @@ -0,0 +1,14 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILDTOOL_DEPENDS += " \ + ament-cmake-ros \ + ament-cmake-gmock \ + ament-cmake-gtest \ + ament-cmake-pytest \ +" + +# CMake Warning at moveit-setup-srdf-plugins/2.9.0-2/recipe-sysroot/usr/lib/cmake/Qt5/Qt5Config.cmake:7 (message): +# SkippingbecauseOE_QMAKE_PATH_EXTERNAL_HOST_BINSisnotdefined +# CMake Error at CMakeLists.txt:13 (qt5_wrap_cpp): +# Unknown CMake command "qt5_wrap_cpp". +inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'qt5-widgets'], '', 'cmake_qt5', d)} From 6529dfa8f1ee322816fb30c7e00baf8dd2095a3b Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:03:15 -0700 Subject: [PATCH 067/152] {rolling} nlohmann-json-schema-validator-vendor: Inherit ros_insane_dev_so Signed-off-by: Rob Woolley --- .../nlohmann-json-schema-validator-vendor_0.4.0-2.bbappend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-ros2-rolling/recipes-bbappends/nlohmann-json-schema-validator-vendor/nlohmann-json-schema-validator-vendor_0.4.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/nlohmann-json-schema-validator-vendor/nlohmann-json-schema-validator-vendor_0.4.0-2.bbappend index de099e512a..3523030d42 100644 --- a/meta-ros2-rolling/recipes-bbappends/nlohmann-json-schema-validator-vendor/nlohmann-json-schema-validator-vendor_0.4.0-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/nlohmann-json-schema-validator-vendor/nlohmann-json-schema-validator-vendor_0.4.0-2.bbappend @@ -14,7 +14,7 @@ SRCREV_FORMAT = "release_upstream" EXTRA_OECMAKE += "-Dnlohmann_json_DIR=${STAGING_INCDIR}" # ERROR: QA Issue: non -dev/-dbg/nativesdk- package nlohmann-json-schema-validator-vendor contains symlink .so '/usr/lib/libnlohmann_json_schema_validator.so' [dev-so] -FILES:${PN}-dev += "${libdir}/libnlohmann_json_schema_validator.so" +inherit ros_insane_dev_so # Doesn't need runtime dependency on nlohmann-json ROS_EXEC_DEPENDS:remove = "nlohmann-json" From 0ea1d82bb08e16cfca7e9937e36a2c16bb214977 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:03:50 -0700 Subject: [PATCH 068/152] {rolling} pinocchio: Inherit ros_insane_dev_so Signed-off-by: Rob Woolley --- .../recipes-bbappends/pinocchio/pinocchio_%.bbappend | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/meta-ros2-rolling/recipes-bbappends/pinocchio/pinocchio_%.bbappend b/meta-ros2-rolling/recipes-bbappends/pinocchio/pinocchio_%.bbappend index 1a12b6c883..53820415ef 100644 --- a/meta-ros2-rolling/recipes-bbappends/pinocchio/pinocchio_%.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/pinocchio/pinocchio_%.bbappend @@ -20,7 +20,4 @@ FILES:${PN} += "${datadir}/ament_index/resource_index/packages/pinocchio" # ERROR: pinocchio-2.6.17-4-r0 do_package_qa: QA Issue: non -dev/-dbg/nativesdk- package pinocchio contains symlink .so '/usr/lib/libpinocchio.so' # non -dev/-dbg/nativesdk- package pinocchio contains symlink .so '/usr/lib/python3.11/site-packages/pinocchio/pinocchio_pywrap.cpython-311-x86_64-linux-gnu.so' [dev-so] -FILES:${PN}-dev += " \ - ${libdir}/libpinocchio.so \ - ${PYTHON_SITEPACKAGES_DIR}/pinocchio/pinocchio_pywrap.cpython-311-x86_64-linux-gnu.so \ -" +inherit ros_insane_dev_so From 22e1243ffff3c474227e18ba8c5a4c7a0a016977 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:04:30 -0700 Subject: [PATCH 069/152] {rolling} python-qt-binding: Add integration for newer SIP This updates the python-qt-binding CMake files to work properly with the latest SIP version. This was SIP v5 at the time of the origin patch but it has been tested with SIP v6. Signed-off-by: Rob Woolley --- .../adding-sip5-integration.patch | 236 ++++++++++++++++++ .../python-qt-binding_%.bbappend | 9 +- 2 files changed, 243 insertions(+), 2 deletions(-) create mode 100644 meta-ros2-rolling/recipes-bbappends/python-qt-binding/python-qt-binding/adding-sip5-integration.patch diff --git a/meta-ros2-rolling/recipes-bbappends/python-qt-binding/python-qt-binding/adding-sip5-integration.patch b/meta-ros2-rolling/recipes-bbappends/python-qt-binding/python-qt-binding/adding-sip5-integration.patch new file mode 100644 index 0000000000..59760b7a5c --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/python-qt-binding/python-qt-binding/adding-sip5-integration.patch @@ -0,0 +1,236 @@ +Based on work done by Sean Yen and Jochen Sprickerhof. + +Signed-off-by: Rob Woolley + +https://github.com/ros-o/python_qt_binding/pull/1 + +From 04d693309c473bcfa32094651c66254799b48eaf Mon Sep 17 00:00:00 2001 +From: Jochen Sprickerhof +Date: Mon, 28 Sep 2020 18:26:33 +0200 +Subject: [PATCH 1/8] workaround for new path sip dir in pyqt5 >= + 5.15.0+dfsg-1+exp1 + +--- + cmake/sip_configure.py | 5 +++++ + 1 file changed, 5 insertions(+) + + +https://github.com/ros-visualization/python_qt_binding/pull/94 + +From f639d5ea3218dd48dcfe5e16d4d36300ee963f84 Mon Sep 17 00:00:00 2001 +From: seanyen +Date: Fri, 7 Aug 2020 14:30:18 -0700 +Subject: [PATCH] Adding SIP 5 integration. + +--- + CMakeLists.txt | 1 + + cmake/pyproject.toml.in | 26 ++++++++++ + cmake/sip_helper.cmake | 107 ++++++++++++++++++++++++++++++++-------- + 3 files changed, 113 insertions(+), 21 deletions(-) + create mode 100644 cmake/pyproject.toml.in + +Index: git/CMakeLists.txt +=================================================================== +--- git.orig/CMakeLists.txt ++++ git/CMakeLists.txt +@@ -11,6 +11,7 @@ install(FILES + cmake/shiboken_helper.cmake + cmake/sip_configure.py + cmake/sip_helper.cmake ++ cmake/pyproject.toml.in + DESTINATION share/${PROJECT_NAME}/cmake) + + if(BUILD_TESTING) +Index: git/cmake/pyproject.toml.in +=================================================================== +--- /dev/null ++++ git/cmake/pyproject.toml.in +@@ -0,0 +1,30 @@ ++# Specify sip v5 as the build system for the package. ++[build-system] ++requires = ["PyQt-builder >=1, <2"] ++build-backend = "sipbuild.api" ++ ++[tool.sip] ++project-factory = "pyqtbuild:PyQtProject" ++ ++[tool.sip.builder] ++qmake = "@QMAKE_EXECUTABLE@" ++ ++[tool.sip.project] ++sip-files-dir = "@SIP_FILES_DIR@" ++build-dir = "@SIP_BUILD_DIR@" ++sip-include-dirs = ["@SIP_PROJECT_INCLUDE_DIRS@"] ++ ++# Specify the PEP 566 metadata for the project. ++[project] ++name = "lib@PROJECT_NAME@" ++ ++[tool.sip.bindings.libqt_gui_cpp_sip] ++sip-file = "@SIP_FILE@" ++include-dirs = [@SIP_INCLUDE_DIRS@] ++libraries = [@SIP_LIBRARIES@] ++library-dirs = [@SIP_LIBRARY_DIRS@] ++# this should be extra-objects, but these break inside pybuild with sip modules ++extra-link-args = [@SIP_ABS_LIBRARIES@] ++qmake-QT = ["widgets"] ++define-macros = [@SIP_EXTRA_DEFINES@] ++exceptions = true +Index: git/cmake/sip_helper.cmake +=================================================================== +--- git.orig/cmake/sip_helper.cmake ++++ git/cmake/sip_helper.cmake +@@ -31,9 +31,11 @@ execute_process( + if(PYTHON_SIP_EXECUTABLE) + string(STRIP ${PYTHON_SIP_EXECUTABLE} SIP_EXECUTABLE) + else() +- find_program(SIP_EXECUTABLE sip) ++ find_program(SIP_EXECUTABLE NAMES sip sip-build) + endif() + ++set(SIP_PROJECT_INCLUDE_DIRS "$ENV{SIP_PROJECT_INCLUDE_DIRS}") ++ + if(SIP_EXECUTABLE) + message(STATUS "SIP binding generator available at: ${SIP_EXECUTABLE}") + set(sip_helper_FOUND TRUE) +@@ -42,6 +42,20 @@ else() + set(sip_helper_NOTFOUND TRUE) + endif() + ++if(sip_helper_FOUND) ++ execute_process( ++ COMMAND ${SIP_EXECUTABLE} -V ++ OUTPUT_VARIABLE SIP_VERSION ++ ERROR_QUIET) ++ string(STRIP ${SIP_VERSION} SIP_VERSION) ++ message(STATUS "SIP binding generator version: ${SIP_VERSION}") ++endif() ++ ++execute_process( ++ COMMAND ${Python3_EXECUTABLE} -c "import sysconfig as c; print(c.get_config_var('EXT_SUFFIX'), end='')" ++ OUTPUT_VARIABLE PYTHON_EXTENSION_MODULE_SUFFIX ++ ERROR_QUIET) ++ + # + # Run the SIP generator and compile the generated code into a library. + # +@@ -93,37 +107,95 @@ function(build_sip_binding PROJECT_NAME + set(LIBRARY_DIRS ${${PROJECT_NAME}_LIBRARY_DIRS}) + set(LDFLAGS_OTHER ${${PROJECT_NAME}_LDFLAGS_OTHER}) + +- add_custom_command( +- OUTPUT ${SIP_BUILD_DIR}/Makefile +- COMMAND ${Python3_EXECUTABLE} ${sip_SIP_CONFIGURE} ${SIP_BUILD_DIR} ${SIP_FILE} ${sip_LIBRARY_DIR} +- \"${INCLUDE_DIRS}\" \"${LIBRARIES}\" \"${LIBRARY_DIRS}\" \"${LDFLAGS_OTHER}\" +- DEPENDS ${sip_SIP_CONFIGURE} ${SIP_FILE} ${sip_DEPENDS} +- WORKING_DIRECTORY ${sip_SOURCE_DIR} +- COMMENT "Running SIP generator for ${PROJECT_NAME} Python bindings..." +- ) ++ if(${SIP_VERSION} VERSION_GREATER_EQUAL "5.0.0") ++ # Since v5, SIP implements the backend per PEP 517, PEP 518 ++ # Here we synthesize `pyproject.toml` and run `pip install` + +- if(NOT EXISTS "${sip_LIBRARY_DIR}") ++ find_program(QMAKE_EXECUTABLE NAMES qmake REQUIRED) ++ ++ file(REMOVE_RECURSE ${SIP_BUILD_DIR}) + file(MAKE_DIRECTORY ${sip_LIBRARY_DIR}) +- endif() ++ set(SIP_FILES_DIR ${sip_SOURCE_DIR}) + +- if(WIN32) +- set(MAKE_EXECUTABLE NMake.exe) ++ set(SIP_INCLUDE_DIRS "") ++ foreach(_x ${INCLUDE_DIRS}) ++ set(SIP_INCLUDE_DIRS "${SIP_INCLUDE_DIRS},\"${_x}\"") ++ endforeach() ++ string(REGEX REPLACE "^," "" SIP_INCLUDE_DIRS "${SIP_INCLUDE_DIRS}") ++ ++ # pyproject.toml expects libraries listed as such to be added to the linker command ++ # via `-l`, but this does not work for libraries with absolute paths ++ # instead we have to pass them to the linker via a different parameter ++ set(_SIP_REL_LIBRARIES "") ++ set(_SIP_ABS_LIBRARIES "") ++ foreach(_x ${LIBRARIES} ${Python3_LIBRARIES}) ++ cmake_path(IS_ABSOLUTE _x is_abs) ++ if(is_abs) ++ list(APPEND _SIP_ABS_LIBRARIES "\"${_x}\"") ++ else() ++ list(APPEND _SIP_REL_LIBRARIES "\"${_x}\"") ++ endif() ++ endforeach() ++ list(JOIN _SIP_REL_LIBRARIES "," SIP_LIBRARIES) ++ list(JOIN _SIP_ABS_LIBRARIES "," SIP_ABS_LIBRARIES) ++ ++ set(SIP_LIBRARY_DIRS "") ++ foreach(_x ${LIBRARY_DIRS}) ++ set(SIP_LIBRARY_DIRS "${SIP_LIBRARY_DIRS},\"${_x}\"") ++ endforeach() ++ string(REGEX REPLACE "^," "" SIP_LIBRARY_DIRS "${SIP_LIBRARY_DIRS}") ++ ++ set(SIP_EXTRA_DEFINES "") ++ foreach(_x ${EXTRA_DEFINES}) ++ set(SIP_EXTRA_DEFINES "${SIP_EXTRA_DEFINES},\"${_x}\"") ++ endforeach() ++ string(REGEX REPLACE "^," "" SIP_EXTRA_DEFINES "${SIP_EXTRA_DEFINES}") ++ ++ # TODO: ++ # I don't know what to do about LDFLAGS_OTHER ++ # what's the equivalent construct in sip5? ++ ++ configure_file( ++ ${__PYTHON_QT_BINDING_SIP_HELPER_DIR}/pyproject.toml.in ++ ${sip_BINARY_DIR}/sip/pyproject.toml ++ ) ++ add_custom_command( ++ OUTPUT ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${PYTHON_EXTENSION_MODULE_SUFFIX} ++ COMMAND ${Python3_EXECUTABLE} -m pip install . --target ${sip_LIBRARY_DIR} --no-deps --no-build-isolation ++ DEPENDS ${sip_SIP_CONFIGURE} ${SIP_FILE} ${sip_DEPENDS} ++ WORKING_DIRECTORY ${sip_BINARY_DIR}/sip ++ COMMENT "Running SIP-build generator for ${PROJECT_NAME} Python bindings..." ++ ) + else() +- find_program(MAKE_PROGRAM NAMES make) +- message(STATUS "Found required make: ${MAKE_PROGRAM}") +- set(MAKE_EXECUTABLE ${MAKE_PROGRAM}) ++ add_custom_command( ++ OUTPUT ${SIP_BUILD_DIR}/Makefile ++ COMMAND ${Python3_EXECUTABLE} ${sip_SIP_CONFIGURE} ${SIP_BUILD_DIR} ${SIP_FILE} ${sip_LIBRARY_DIR} \"${INCLUDE_DIRS}\" \"${LIBRARIES}\" \"${LIBRARY_DIRS}\" \"${LDFLAGS_OTHER}\" \"${EXTRA_DEFINES}\" ++ DEPENDS ${sip_SIP_CONFIGURE} ${SIP_FILE} ${sip_DEPENDS} ++ WORKING_DIRECTORY ${sip_SOURCE_DIR} ++ COMMENT "Running SIP generator for ${PROJECT_NAME} Python bindings..." ++ ) ++ ++ if(NOT EXISTS "${sip_LIBRARY_DIR}") ++ file(MAKE_DIRECTORY ${sip_LIBRARY_DIR}) ++ endif() ++ ++ if(WIN32) ++ set(MAKE_EXECUTABLE NMake.exe) ++ else() ++ set(MAKE_EXECUTABLE "\$(MAKE)") ++ endif() ++ ++ add_custom_command( ++ OUTPUT ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${PYTHON_EXTENSION_MODULE_SUFFIX} ++ COMMAND ${MAKE_EXECUTABLE} ++ DEPENDS ${SIP_BUILD_DIR}/Makefile ++ WORKING_DIRECTORY ${SIP_BUILD_DIR} ++ COMMENT "Compiling generated code for ${PROJECT_NAME} Python bindings..." ++ ) + endif() + +- add_custom_command( +- OUTPUT ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} +- COMMAND ${MAKE_EXECUTABLE} +- DEPENDS ${SIP_BUILD_DIR}/Makefile +- WORKING_DIRECTORY ${SIP_BUILD_DIR} +- COMMENT "Compiling generated code for ${PROJECT_NAME} Python bindings..." +- ) +- + add_custom_target(lib${PROJECT_NAME} ALL +- DEPENDS ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ++ DEPENDS ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${PYTHON_EXTENSION_MODULE_SUFFIX} + COMMENT "Meta target for ${PROJECT_NAME} Python bindings..." + ) + add_dependencies(lib${PROJECT_NAME} ${sip_DEPENDENCIES}) diff --git a/meta-ros2-rolling/recipes-bbappends/python-qt-binding/python-qt-binding_%.bbappend b/meta-ros2-rolling/recipes-bbappends/python-qt-binding/python-qt-binding_%.bbappend index 3c4e43e1cd..05e4952a64 100644 --- a/meta-ros2-rolling/recipes-bbappends/python-qt-binding/python-qt-binding_%.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/python-qt-binding/python-qt-binding_%.bbappend @@ -1,3 +1,8 @@ -# Copyright (c) 2023 Wind River Systems, Inc. +# Copyright (c) 2023-2024 Wind River Systems, Inc. -DEPENDS += "sip3-native python3-pyqt5-native" +SRC_URI += "file://adding-sip5-integration.patch" + +inherit python3targetconfig + +DEPENDS += "sip-native python3-pyqt5-native" +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" From 3c007dc7e85dc378ae12e2e500cb998972e047f9 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:07:21 -0700 Subject: [PATCH 070/152] {rolling} qt-gui-cpp: Update to do a cross-build Changes were needed to ensure that qt-gui-cpp used the correct include directories for SIP and that the Python extension module suffix matched the target architecture instead of the host. Signed-off-by: Rob Woolley --- .../use-cmake-target-libraries.patch | 48 +++++++++++++++++++ .../qt-gui-core/qt-gui-cpp_2.8.0-1.bbappend | 27 ++++------- 2 files changed, 58 insertions(+), 17 deletions(-) create mode 100644 meta-ros2-rolling/recipes-bbappends/qt-gui-core/qt-gui-cpp/use-cmake-target-libraries.patch diff --git a/meta-ros2-rolling/recipes-bbappends/qt-gui-core/qt-gui-cpp/use-cmake-target-libraries.patch b/meta-ros2-rolling/recipes-bbappends/qt-gui-core/qt-gui-cpp/use-cmake-target-libraries.patch new file mode 100644 index 0000000000..07c50d9eee --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/qt-gui-core/qt-gui-cpp/use-cmake-target-libraries.patch @@ -0,0 +1,48 @@ +This uses the CMake target variables for libraries instead of the generator. + +The generator approach was resulting in TARGET_FILE:Python3::Python appearing +directly in the generated pyproject.toml and libqt_gui_cpp_sip.pro files. + +Eventually, pip install was invoked which called QMake then Make. The linker +did not like it and would fail. + +This resulted in pip reporting "error: subprocess-exited-with-error" + +Signed-off-by: Rob Woolley + +Upstream-status: Pending + +Index: git/src/qt_gui_cpp_sip/CMakeLists.txt +=================================================================== +--- git.orig/src/qt_gui_cpp_sip/CMakeLists.txt ++++ git/src/qt_gui_cpp_sip/CMakeLists.txt +@@ -55,8 +55,8 @@ find_package(Python3 REQUIRED COMPONENTS + + set(_qt_gui_cpp_sip_LIBRARIES + ${deps_libraries} +- Python3::Python +- qt_gui_cpp ++ ${Python3_LIBRARIES} ++ ${qt_gui_cpp_LIBRARIES} + ) + + # sip needs libraries to have resolved paths and cannot link to cmake targets +@@ -90,12 +90,17 @@ if(sip_helper_FOUND) + DEPENDENCIES qt_gui_cpp + ) + ++ execute_process( ++ COMMAND ${Python3_EXECUTABLE} -c "import sysconfig as c; print(c.get_config_var('EXT_SUFFIX'), end='')" ++ OUTPUT_VARIABLE PYTHON_EXTENSION_MODULE_SUFFIX ++ ERROR_QUIET) ++ + if(APPLE) + set(LIBQT_GUI_CPP_SIP_SUFFIX .so) + elseif(WIN32) + set(LIBQT_GUI_CPP_SIP_SUFFIX .pyd) + else() +- set(LIBQT_GUI_CPP_SIP_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}) ++ set(LIBQT_GUI_CPP_SIP_SUFFIX ${PYTHON_EXTENSION_MODULE_SUFFIX}) + endif() + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libqt_gui_cpp_sip${LIBQT_GUI_CPP_SIP_SUFFIX} diff --git a/meta-ros2-rolling/recipes-bbappends/qt-gui-core/qt-gui-cpp_2.8.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/qt-gui-core/qt-gui-cpp_2.8.0-1.bbappend index df8ec276cd..709dcf79ea 100644 --- a/meta-ros2-rolling/recipes-bbappends/qt-gui-core/qt-gui-cpp_2.8.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/qt-gui-core/qt-gui-cpp_2.8.0-1.bbappend @@ -1,11 +1,16 @@ # Copyright (c) 2020 LG Electronics, Inc. -# Copyright (c) 2023 Wind River Systems, Inc. +# Copyright (c) 2023-2024 Wind River Systems, Inc. LICENSE = "BSD-3-Clause" -inherit ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'cmake_qt5', '', d)} +inherit python3targetconfig + +inherit qmake5_base + +export SIP_PROJECT_INCLUDE_DIRS="${STAGING_DIR_TARGET}/${libdir}/${PYTHON_DIR}/site-packages/PyQt5/bindings" -inherit python3native +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://use-cmake-target-libraries.patch" # This is needed to set OE_QMAKE_PATH_EXTERNAL_HOST_BINS to resolve: # | -- Found PythonLibs: ros2-foxy-dunfell/tmp-glibc/work/core2-64-oe-linux/qt-gui-cpp/1.0.8-1-r0/recipe-sysroot/usr/lib/libpython3.8.so (found suitable version "3.8.2", minimum required is "3.8") @@ -17,11 +22,11 @@ inherit python3native # | # | CMake Error at src/qt_gui_cpp/CMakeLists.txt:35 (qt5_wrap_cpp): # | Unknown CMake command "qt5_wrap_cpp". -inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'pyqt5'], '', 'cmake_qt5', d)} +inherit ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'cmake_qt5', '', d)} # | CMake Warning at ros2-foxy-dunfell/tmp-glibc/work/core2-64-oe-linux/qt-gui-cpp/1.0.8-1-r0/recipe-sysroot/usr/share/python_qt_binding/cmake/sip_helper.cmake:27 (message): # | SIP binding generator NOT available. -DEPENDS += "python3-pyqt5-native sip3-native" +ROS_BUILDTOOL_DEPENDS += "python3-pyqt5-native python3-pyqt-builder-native sip-native" # | CMake Error: # | Running @@ -32,15 +37,3 @@ DEPENDS += "python3-pyqt5-native sip3-native" # This is caused by sip_helper.cmake from python_qt_binding containing a # hard-coded command that violates ninja syntax: cd && $(MAKE) OECMAKE_GENERATOR = "Unix Makefiles" - -do_compile:prepend () { - cp ${STAGING_LIBDIR}/${PYTHON_DIR}${PYTHON_ABI}/site-packages/sipconfig.py ${STAGING_DATADIR}/python_qt_binding/cmake/ - sed -i -e "s|--sysroot |--sysroot ${STAGING_DIR_TARGET}|g" ${STAGING_DATADIR}/python_qt_binding/cmake/sipconfig.py - sed -i -e "s|--sysroot=[^ ']*|--sysroot=${STAGING_DIR_TARGET}|g" ${STAGING_DATADIR}/python_qt_binding/cmake/sipconfig.py - sed -i -e "s|\('[a-z_]*_dir': *'\)\([^']*',\)|\1${STAGING_DIR_TARGET}\2|g" ${STAGING_DATADIR}/python_qt_binding/cmake/sipconfig.py - sed -i -e "s|\('sip_bin': *'\)\(/usr/bin/sip',\)|\1${STAGING_DIR_NATIVE}\2|" ${STAGING_DATADIR}/python_qt_binding/cmake/sipconfig.py -} - -do_install:append () { - chrpath --delete ${D}${libdir}/${PYTHON_DIR}/site-packages/qt_gui_cpp/libqt_gui_cpp_sip.so -} From f02ebb5a34b9cb80a1765419860073d06699feef Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:11:18 -0700 Subject: [PATCH 071/152] {rolling} rcutils: Inherit ros_insane_dev_so Signed-off-by: Rob Woolley --- .../recipes-bbappends/rcutils/rcutils_6.8.0-1.bbappend | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-ros2-rolling/recipes-bbappends/rcutils/rcutils_6.8.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/rcutils/rcutils_6.8.0-1.bbappend index 4403b8818f..853dd258fc 100644 --- a/meta-ros2-rolling/recipes-bbappends/rcutils/rcutils_6.8.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/rcutils/rcutils_6.8.0-1.bbappend @@ -12,3 +12,5 @@ ROS_EXEC_DEPENDS:remove = "gcc-runtime" ROS_EXEC_DEPENDS:append-class-target = " libatomic" # and also remove it from build time depends when buiding native rc-utils DEPENDS:remove:class-native = "gcc-runtime-native gcc-runtime" + +inherit ros_faulty_solibs From 8712209b2512f1c749d33d97020e56db6b8beb30 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:11:42 -0700 Subject: [PATCH 072/152] {rolling} rmf-building-map-msgs: Use target dependencies Signed-off-by: Rob Woolley --- .../rmf-building-map-msgs_1.4.0-2.bbappend | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-ros2-rolling/recipes-bbappends/rmf-building-map-msgs/rmf-building-map-msgs_1.4.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/rmf-building-map-msgs/rmf-building-map-msgs_1.4.0-2.bbappend index 674ea2b89b..347dffa0df 100644 --- a/meta-ros2-rolling/recipes-bbappends/rmf-building-map-msgs/rmf-building-map-msgs_1.4.0-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/rmf-building-map-msgs/rmf-building-map-msgs_1.4.0-2.bbappend @@ -9,7 +9,7 @@ ROS_BUILD_DEPENDS += " \ rosidl-typesupport-fastrtps-c \ rosidl-typesupport-fastrtps-cpp \ rosidl-typesupport-introspection-cpp \ - rosidl-typesupport-fastrtps-c-native \ - rosidl-typesupport-fastrtps-cpp-native \ + rosidl-typesupport-fastrtps-c \ + rosidl-typesupport-fastrtps-cpp \ service-msgs \ " From 93afa612f6da6879795eed3f4e1eae23d908bc88 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:13:31 -0700 Subject: [PATCH 073/152] {rolling} rmf-fleet-adapter: Refresh integration patches Signed-off-by: Rob Woolley --- ...e-use-uint64_t-instead-of-std-size_t.patch | 28 +++++++-------- .../Remove-const-for-error-ptr.patch | 36 +++++++++++++++++++ .../rmf-fleet-adapter_2.7.1-1.bbappend | 1 + 3 files changed, 51 insertions(+), 14 deletions(-) create mode 100644 meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter/Remove-const-for-error-ptr.patch diff --git a/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter/0001-FleetUpdateHandle-use-uint64_t-instead-of-std-size_t.patch b/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter/0001-FleetUpdateHandle-use-uint64_t-instead-of-std-size_t.patch index c35cf275e0..24257ea9ea 100644 --- a/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter/0001-FleetUpdateHandle-use-uint64_t-instead-of-std-size_t.patch +++ b/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter/0001-FleetUpdateHandle-use-uint64_t-instead-of-std-size_t.patch @@ -48,12 +48,12 @@ Signed-off-by: Martin Jansa src/rmf_fleet_adapter/agv/FleetUpdateHandle.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) -diff --git a/include/rmf_fleet_adapter/agv/FleetUpdateHandle.hpp b/include/rmf_fleet_adapter/agv/FleetUpdateHandle.hpp -index 9740163..de07931 100644 ---- a/include/rmf_fleet_adapter/agv/FleetUpdateHandle.hpp -+++ b/include/rmf_fleet_adapter/agv/FleetUpdateHandle.hpp -@@ -71,10 +71,10 @@ public: - std::function handle)> handle_cb); +Index: git/include/rmf_fleet_adapter/agv/FleetUpdateHandle.hpp +=================================================================== +--- git.orig/include/rmf_fleet_adapter/agv/FleetUpdateHandle.hpp ++++ git/include/rmf_fleet_adapter/agv/FleetUpdateHandle.hpp +@@ -205,10 +205,10 @@ public: + ConsiderRequest consider); /// Specify a set of lanes that should be closed. - void close_lanes(std::vector lane_indices); @@ -63,13 +63,13 @@ index 9740163..de07931 100644 - void open_lanes(std::vector lane_indices); + void open_lanes(std::vector lane_indices); - /// Set the parameters required for task planning. Without calling this - /// function, this fleet will not bid for and accept tasks. -diff --git a/src/rmf_fleet_adapter/agv/FleetUpdateHandle.cpp b/src/rmf_fleet_adapter/agv/FleetUpdateHandle.cpp -index 67a0864..c341141 100644 ---- a/src/rmf_fleet_adapter/agv/FleetUpdateHandle.cpp -+++ b/src/rmf_fleet_adapter/agv/FleetUpdateHandle.cpp -@@ -1101,7 +1101,7 @@ void FleetUpdateHandle::add_robot( + /// During a fire emergency, real-life lifts might be required to move to a + /// specific level and refuse to stop or go to any other level. This function +Index: git/src/rmf_fleet_adapter/agv/FleetUpdateHandle.cpp +=================================================================== +--- git.orig/src/rmf_fleet_adapter/agv/FleetUpdateHandle.cpp ++++ git/src/rmf_fleet_adapter/agv/FleetUpdateHandle.cpp +@@ -1798,7 +1798,7 @@ FleetUpdateHandle& FleetUpdateHandle::co } //============================================================================== @@ -78,7 +78,7 @@ index 67a0864..c341141 100644 { _pimpl->worker.schedule( [w = weak_from_this(), lane_indices = std::move(lane_indices)](const auto&) -@@ -1141,7 +1141,7 @@ void FleetUpdateHandle::close_lanes(std::vector lane_indices) +@@ -1850,7 +1850,7 @@ void FleetUpdateHandle::close_lanes(std: } //============================================================================== diff --git a/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter/Remove-const-for-error-ptr.patch b/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter/Remove-const-for-error-ptr.patch new file mode 100644 index 0000000000..b07939820d --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter/Remove-const-for-error-ptr.patch @@ -0,0 +1,36 @@ +rmf-fleet-adapter fails to build due to error in rxcpp header + +rmf_rxcpp/RxCpp-4.1.0/Rx/v2/src/rxcpp/rx-notification.hpp: In member function 'rxcpp::notifications::notification::on_error_notification& rxcpp::notifications::notification::on_error_notification::operator=(rxcpp::notifications::notification::on_error_notification)': +rmf_rxcpp/RxCpp-4.1.0/Rx/v2/src/rxcpp/rx-notification.hpp:153:88: error: no match for 'operator=' (operand types are 'const rxcpp::util::error_ptr' {aka 'const std::__exception_ptr::exception_ptr'} and 'std::remove_reference::type' {aka 'const std::__exception_ptr::exception_ptr'}) + 153 | on_error_notification& operator=(on_error_notification o) { ep = std::move(o.ep); return *this; } + | ^ +In file included from rmf-fleet-adapter/2.6.0-1/recipe-sysroot/usr/include/c++/14.1.0/exception:166, + from rmf-fleet-adapter/2.6.0-1/recipe-sysroot/usr/include/c++/14.1.0/ios:41, + from rmf-fleet-adapter/2.6.0-1/recipe-sysroot/usr/include/c++/14.1.0/ostream:40, + from rmf-fleet-adapter/2.6.0-1/recipe-sysroot/usr/include/c++/14.1.0/iostream:41, + from rmf_rxcpp/RxCpp-4.1.0/Rx/v2/src/rxcpp/rx-trace.hpp:8, + from rmf_rxcpp/RxCpp-4.1.0/Rx/v2/src/rxcpp/rx-includes.hpp:8: +rmf-fleet-adapter/2.6.0-1/recipe-sysroot/usr/include/c++/14.1.0/bits/exception_ptr.h:213:5: note: candidate: 'std::__exception_ptr::exception_ptr& std::__exception_ptr::exception_ptr::operator=(const std::__exception_ptr::exception_ptr&)' (near match) + 213 | exception_ptr::operator=(const exception_ptr& __other) _GLIBCXX_USE_NOEXCEPT + | ^~~~~~~~~~~~~ +rmf-fleet-adapter/2.6.0-1/recipe-sysroot/usr/include/c++/14.1.0/bits/exception_ptr.h:213:5: note: passing 'const rxcpp::util::error_ptr*' {aka 'const std::__exception_ptr::exception_ptr*'} as 'this' argument discards qualifiers +rmf-fleet-adapter/2.6.0-1/recipe-sysroot/usr/include/c++/14.1.0/bits/exception_ptr.h:140:7: note: candidate: 'std::__exception_ptr::exception_ptr& std::__exception_ptr::exception_ptr::operator=(std::__exception_ptr::exception_ptr&&)' (near match) + 140 | operator=(exception_ptr&& __o) noexcept + | ^~~~~~~~ +rmf-fleet-adapter/2.6.0-1/recipe-sysroot/usr/include/c++/14.1.0/bits/exception_ptr.h:140:7: note: conversion of argument 1 would be ill-formed: + +Signed-off-by: Rob Woolley + +diff --git a/rmf_rxcpp/RxCpp-4.1.0/Rx/v2/src/rxcpp/rx-notification.hpp b/rmf_rxcpp/RxCpp-4.1.0/Rx/v2/src/rxcpp/rx-notification.hpp +index 20e0c694..3f13619b 100644 +--- a/rmf_rxcpp/RxCpp-4.1.0/Rx/v2/src/rxcpp/rx-notification.hpp ++++ b/rmf_rxcpp/RxCpp-4.1.0/Rx/v2/src/rxcpp/rx-notification.hpp +@@ -167,7 +167,7 @@ private: + virtual void accept(const typename base::observer_type& o) const { + o.on_error(ep); + } +- const rxu::error_ptr ep; ++ rxu::error_ptr ep; + }; + + struct on_completed_notification : public base { diff --git a/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter_2.7.1-1.bbappend b/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter_2.7.1-1.bbappend index ac5f93a1ba..57100c3ca7 100644 --- a/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter_2.7.1-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter_2.7.1-1.bbappend @@ -4,6 +4,7 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" SRC_URI += " \ file://0001-FleetUpdateHandle-use-uint64_t-instead-of-std-size_t.patch \ + file://Remove-const-for-error-ptr.patch \ " # Doesn't need runtime dependency on nlohmann-json From 72d9a7b39225300e952e15fb04515985e9536975 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:14:03 -0700 Subject: [PATCH 074/152] {rolling} rmf-fleet-adapter-python: Refresh integration patch Signed-off-by: Rob Woolley --- ...1-CMakeLists-search-for-Python3-Development.patch | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter-python/0001-CMakeLists-search-for-Python3-Development.patch b/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter-python/0001-CMakeLists-search-for-Python3-Development.patch index 8656952432..572d656ede 100644 --- a/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter-python/0001-CMakeLists-search-for-Python3-Development.patch +++ b/meta-ros2-rolling/recipes-bbappends/rmf-ros2/rmf-fleet-adapter-python/0001-CMakeLists-search-for-Python3-Development.patch @@ -20,15 +20,15 @@ Signed-off-by: Martin Jansa CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b201f69..ab70e03 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -29,6 +29,7 @@ include_directories( +Index: git/CMakeLists.txt +=================================================================== +--- git.orig/CMakeLists.txt ++++ git/CMakeLists.txt +@@ -30,6 +30,7 @@ include_directories( ${rmf_fleet_adapter_INCLUDE_DIRS} ) +find_package(Python3 COMPONENTS Development Interpreter REQUIRED) find_package(pybind11_vendor REQUIRED) find_package(pybind11 REQUIRED) - + find_package(nlohmann_json REQUIRED) From f49652bb1222d07aa55d58bd1d24571923c67473 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:15:04 -0700 Subject: [PATCH 075/152] {rolling} canopen-interfaces: Add service-msgs at build-time Signed-off-by: Rob Woolley --- .../ros2-canopen/canopen-interfaces_0.2.12-2.bbappend | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-canopen/canopen-interfaces_0.2.12-2.bbappend b/meta-ros2-rolling/recipes-bbappends/ros2-canopen/canopen-interfaces_0.2.12-2.bbappend index ca1e8ce738..59364420ea 100644 --- a/meta-ros2-rolling/recipes-bbappends/ros2-canopen/canopen-interfaces_0.2.12-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ros2-canopen/canopen-interfaces_0.2.12-2.bbappend @@ -25,5 +25,8 @@ ROS_EXEC_DEPENDS += " \ rosidl-typesupport-fastrtps-cpp \ rosidl-typesupport-introspection-c \ rosidl-typesupport-introspection-cpp \ +" + +ROS_BUILD_DEPENDS += " \ service-msgs \ " From a1174b1c779bb90f68c7d7acad0d64a7323a0f25 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:16:17 -0700 Subject: [PATCH 076/152] {rolling} lely-core-libraries: Update for ros_opt_prefix Signed-off-by: Rob Woolley --- .../ros2-canopen/lely-core-libraries_0.2.12-2.bbappend | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-canopen/lely-core-libraries_0.2.12-2.bbappend b/meta-ros2-rolling/recipes-bbappends/ros2-canopen/lely-core-libraries_0.2.12-2.bbappend index 29016e0a2a..1c496786cf 100644 --- a/meta-ros2-rolling/recipes-bbappends/ros2-canopen/lely-core-libraries_0.2.12-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ros2-canopen/lely-core-libraries_0.2.12-2.bbappend @@ -19,9 +19,9 @@ OECMAKE_GENERATOR = "Unix Makefiles" PACKAGES += "python3-cogen" FILES:python3-cogen = " \ - ${libdir}/python*/site-packages/cogen/cogen.py \ - ${libdir}/cogen/cogen \ - ${bindir}/cogen \ + ${ros_libdir}/python*/site-packages/cogen/cogen.py \ + ${ros_libdir}/cogen/cogen \ + ${ros_bindir}/cogen \ " # QA Issue: python3-cogen: /usr/lib/cogen/cogen maximum shebang size exceeded, the maximum size is 128. [shebang-size] @@ -30,8 +30,8 @@ FILES:python3-cogen = " \ # QA Issue: /usr/bin/cogen contained in package lely-core-libraries requires .../python3, but no providers found in RDEPENDS:lely-core-libraries? [file-rdeps] do_install:append() { # Modify the Python scripts to use the runtime path to Python - sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' ${D}${bindir}/cogen - sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' ${D}${libdir}/cogen/cogen + sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' ${D}${ros_bindir}/cogen + sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' ${D}${ros_libdir}/cogen/cogen } BBCLASSEXTEND = "native nativesdk" From 818d0cc600c9be6b4805f9f1e9e3b623fe981c08 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:17:18 -0700 Subject: [PATCH 077/152] {rolling} lely-core-libraries: Update SRCREV for lely-core Signed-off-by: Rob Woolley --- .../ros2-canopen/lely-core-libraries/repackage-lely-core.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-canopen/lely-core-libraries/repackage-lely-core.patch b/meta-ros2-rolling/recipes-bbappends/ros2-canopen/lely-core-libraries/repackage-lely-core.patch index 33e30500c2..c13ffb6d57 100644 --- a/meta-ros2-rolling/recipes-bbappends/ros2-canopen/lely-core-libraries/repackage-lely-core.patch +++ b/meta-ros2-rolling/recipes-bbappends/ros2-canopen/lely-core-libraries/repackage-lely-core.patch @@ -13,7 +13,7 @@ Index: git/CMakeLists.txt - INSTALL_DIR "${CMAKE_INSTALL_PREFIX}" # Installation prefix - BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/build - GIT_REPOSITORY https://gitlab.com/lely_industries/lely-core.git -- GIT_TAG 7824cbb2ac08d091c4fa2fb397669b938de9e3f5 +- GIT_TAG b63a0b6f79d3ea91dc221724b42dae49894449fc - TIMEOUT 60 - #UPDATE step apply patch to fix dcf-tools install - UPDATE_COMMAND From 795a1620a2d2724333c565572063e32cc9e88e83 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:18:33 -0700 Subject: [PATCH 078/152] {rolling} controller-manager: Disable compiler options Signed-off-by: Rob Woolley --- .../disable-compiler-options.patch | 24 +++++++++++++++++++ .../controller-manager_4.11.0-1.bbappend | 11 +++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 meta-ros2-rolling/recipes-bbappends/ros2-control/controller-manager/disable-compiler-options.patch diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-control/controller-manager/disable-compiler-options.patch b/meta-ros2-rolling/recipes-bbappends/ros2-control/controller-manager/disable-compiler-options.patch new file mode 100644 index 0000000000..5a00745a02 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros2-control/controller-manager/disable-compiler-options.patch @@ -0,0 +1,24 @@ +Disable compiler options + +We prefer to use the compiler options set by bitbake. + +Upstream-status: Inappropriate [oe specific] + +Signed-off-by: Rob Woolley + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c3c0de773..402514fd6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,11 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + project(controller_manager LANGUAGES CXX) + +-if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") +- add_compile_options(-Wall -Wextra -Werror=conversion -Werror=unused-but-set-variable -Werror=return-type -Werror=shadow +- -Werror=missing-braces) +-endif() +- + set(THIS_PACKAGE_INCLUDE_DEPENDS + ament_index_cpp + controller_interface diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-control/controller-manager_4.11.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ros2-control/controller-manager_4.11.0-1.bbappend index 25b5e4b695..c535d6e42b 100644 --- a/meta-ros2-rolling/recipes-bbappends/ros2-control/controller-manager_4.11.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ros2-control/controller-manager_4.11.0-1.bbappend @@ -1,5 +1,5 @@ # Copyright (c) 2021 LG Electronics, Inc. -# Copyright (c) 2022 Wind River Systems, Inc. +# Copyright (c) 2022-2024 Wind River Systems, Inc. ROS_BUILDTOOL_DEPENDS += " \ ament-cmake-ros-native \ @@ -15,4 +15,11 @@ ROS_BUILDTOOL_DEPENDS += " \ " FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" -SRC_URI += "file://0001-setuptools-fix-executable.patch" +SRC_URI += " \ + file://0001-setuptools-fix-executable.patch \ + file://disable-compiler-options.patch \ +" + +# exceptions.hpp:71:79: error: declaration of 'invalid_index' shadows a member of 'rclcpp::exceptions::InvalidNodeNameError' [-Werror=shadow] +# qos_parameters.hpp:57:5: error: missing braces around initializer for 'std::__array_traits::_Type' {aka 'rclcpp::QosPolicyKind [9]'} [-Werror=missing-braces] +CXXFLAGS += "-Wno-error=shadow -Wno-error=missing-braces" From 6fb1d5e7d8f98bc9807f4cfc37364edfd0f4bb14 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:19:12 -0700 Subject: [PATCH 079/152] {rolling} force-torque-sensor-broadcaster: Disable compiler options Signed-off-by: Rob Woolley --- .../disable-compiler-options.patch | 16 ++++++++++++++++ ...ce-torque-sensor-broadcaster_4.9.0-1.bbappend | 5 ++++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 meta-ros2-rolling/recipes-bbappends/ros2-controllers/force-torque-sensor-broadcaster/disable-compiler-options.patch diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/force-torque-sensor-broadcaster/disable-compiler-options.patch b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/force-torque-sensor-broadcaster/disable-compiler-options.patch new file mode 100644 index 0000000000..9a230ccac8 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/force-torque-sensor-broadcaster/disable-compiler-options.patch @@ -0,0 +1,16 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 38c984192..6f26bad86 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,11 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + project(force_torque_sensor_broadcaster LANGUAGES CXX) + +-if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") +- add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable +- -Werror=return-type -Werror=shadow -Werror=format) +-endif() +- + set(THIS_PACKAGE_INCLUDE_DEPENDS + controller_interface + generate_parameter_library diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/force-torque-sensor-broadcaster_4.9.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/force-torque-sensor-broadcaster_4.9.0-1.bbappend index a93bc880d7..747b3ee4c2 100644 --- a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/force-torque-sensor-broadcaster_4.9.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/force-torque-sensor-broadcaster_4.9.0-1.bbappend @@ -1,6 +1,9 @@ -# Copyright (c) 2022 Wind River Systems, Inc. +# Copyright (c) 2022-2024 Wind River Systems, Inc. ROS_BUILDTOOL_DEPENDS += " \ generate-parameter-library-py-native \ python3-pyyaml-native \ " + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://disable-compiler-options.patch" From 856556bbb2ad5747bf2c6b52e4e1878862b76f7c Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:19:36 -0700 Subject: [PATCH 080/152] {rolling} forward-command-controller: Disable compiler options Signed-off-by: Rob Woolley --- .../disable-compiler-options.patch | 16 ++++++++++++++++ .../forward-command-controller_4.9.0-1.bbappend | 5 ++++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 meta-ros2-rolling/recipes-bbappends/ros2-controllers/forward-command-controller/disable-compiler-options.patch diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/forward-command-controller/disable-compiler-options.patch b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/forward-command-controller/disable-compiler-options.patch new file mode 100644 index 0000000000..0ae85ba685 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/forward-command-controller/disable-compiler-options.patch @@ -0,0 +1,16 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4885c69c8..aa2a03222 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,11 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + project(forward_command_controller LANGUAGES CXX) + +-if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") +- add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable +- -Werror=return-type -Werror=shadow -Werror=format) +-endif() +- + set(THIS_PACKAGE_INCLUDE_DEPENDS + controller_interface + generate_parameter_library diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/forward-command-controller_4.9.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/forward-command-controller_4.9.0-1.bbappend index a4e5226d5e..76c602d52a 100644 --- a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/forward-command-controller_4.9.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/forward-command-controller_4.9.0-1.bbappend @@ -1,6 +1,9 @@ -# Copyright (c) 2023 Wind River Systems, Inc. +# Copyright (c) 2023-2024 Wind River Systems, Inc. ROS_BUILDTOOL_DEPENDS += " \ rosidl-default-generators-native \ generate-parameter-library-py-native \ " + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://disable-compiler-options.patch" From 632d4dcc9a9ee4ce0d2f524979f47a9ebd1ff94c Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:19:59 -0700 Subject: [PATCH 081/152] {rolling} joint-state-broadcaster: Disable compiler options Signed-off-by: Rob Woolley --- .../disable-compiler-options.patch | 16 ++++++++++++++++ .../joint-state-broadcaster_4.9.0-1.bbappend | 3 +++ 2 files changed, 19 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-state-broadcaster/disable-compiler-options.patch diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-state-broadcaster/disable-compiler-options.patch b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-state-broadcaster/disable-compiler-options.patch new file mode 100644 index 0000000000..7965fd4442 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-state-broadcaster/disable-compiler-options.patch @@ -0,0 +1,16 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5c383897c..726eaa206 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,11 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + project(joint_state_broadcaster LANGUAGES CXX) + +-if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") +- add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable +- -Werror=return-type -Werror=shadow -Werror=format) +-endif() +- + set(THIS_PACKAGE_INCLUDE_DEPENDS + builtin_interfaces + control_msgs diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-state-broadcaster_4.9.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-state-broadcaster_4.9.0-1.bbappend index b522c1af9a..ccf5cd3481 100644 --- a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-state-broadcaster_4.9.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-state-broadcaster_4.9.0-1.bbappend @@ -1,5 +1,8 @@ # Copyright (c) 2021 LG Electronics, Inc. +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://disable-compiler-options.patch" + ROS_BUILDTOOL_DEPENDS += " \ generate-parameter-library-py-native \ " From 1fb025503e3849288e5a56ae4af4db824559f622 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:20:19 -0700 Subject: [PATCH 082/152] {rolling} joint-trajectory-controller: Disable compiler options Signed-off-by: Rob Woolley --- .../disable-compiler-options.patch | 21 +++++++++++++++++++ ...int-trajectory-controller_4.9.0-1.bbappend | 4 ++++ 2 files changed, 25 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-trajectory-controller/disable-compiler-options.patch diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-trajectory-controller/disable-compiler-options.patch b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-trajectory-controller/disable-compiler-options.patch new file mode 100644 index 0000000000..efffedd525 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-trajectory-controller/disable-compiler-options.patch @@ -0,0 +1,21 @@ +Disable compiler options + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Rob Woolley + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4b0ca82df..2b7455731 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,10 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + project(joint_trajectory_controller LANGUAGES CXX) + +-if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") +- add_compile_options(-Wall -Wextra -Werror=conversion -Werror=unused-but-set-variable -Werror=return-type -Werror=shadow -Werror=format) +-endif() +- + set(THIS_PACKAGE_INCLUDE_DEPENDS + angles + control_msgs diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-trajectory-controller_4.9.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-trajectory-controller_4.9.0-1.bbappend index b522c1af9a..0ef98d5913 100644 --- a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-trajectory-controller_4.9.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/joint-trajectory-controller_4.9.0-1.bbappend @@ -1,4 +1,8 @@ # Copyright (c) 2021 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://disable-compiler-options.patch" ROS_BUILDTOOL_DEPENDS += " \ generate-parameter-library-py-native \ From fe2d55483fd06832c88ebccaed9dbd88a1d54bac Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:20:43 -0700 Subject: [PATCH 083/152] {rolling} steering-controllers-library: Disable compiler options Signed-off-by: Rob Woolley --- .../disable-compiler-options.patch | 16 ++++++++++++++++ ...steering-controllers-library_4.9.0-1.bbappend | 3 +++ 2 files changed, 19 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/ros2-controllers/steering-controllers-library/disable-compiler-options.patch diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/steering-controllers-library/disable-compiler-options.patch b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/steering-controllers-library/disable-compiler-options.patch new file mode 100644 index 0000000000..73780b3675 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/steering-controllers-library/disable-compiler-options.patch @@ -0,0 +1,16 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e2bfdbab7..4be2f2fa3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,11 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + project(steering_controllers_library LANGUAGES CXX) + +-if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") +- add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable +- -Werror=return-type -Werror=shadow -Werror=format) +-endif() +- + # find dependencies + set(THIS_PACKAGE_INCLUDE_DEPENDS + control_msgs diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/steering-controllers-library_4.9.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/steering-controllers-library_4.9.0-1.bbappend index a4e5226d5e..c186ee8113 100644 --- a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/steering-controllers-library_4.9.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/steering-controllers-library_4.9.0-1.bbappend @@ -4,3 +4,6 @@ ROS_BUILDTOOL_DEPENDS += " \ rosidl-default-generators-native \ generate-parameter-library-py-native \ " + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://disable-compiler-options.patch" From ffd66c82216c0edea1da9b69999d170238e3bb09 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:21:36 -0700 Subject: [PATCH 084/152] {rolling} kortex-api: Set COMPATIBLE_MACHINE The kortex-api SDK only supports Intel 64 (x86-64) architectures. Signed-off-by: Rob Woolley --- .../ros2-kortex/kortex-api_0.2.2-2.bbappend | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-kortex/kortex-api_0.2.2-2.bbappend b/meta-ros2-rolling/recipes-bbappends/ros2-kortex/kortex-api_0.2.2-2.bbappend index eb989b1298..24e3851cfd 100644 --- a/meta-ros2-rolling/recipes-bbappends/ros2-kortex/kortex-api_0.2.2-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ros2-kortex/kortex-api_0.2.2-2.bbappend @@ -8,3 +8,10 @@ SRC_URI += " \ file://0001-use-bitbake-fetcher.patch \ file://0002-install-libraries.patch \ " + +COMPATIBLE_MACHINE = "(^$)" +COMPATIBLE_MACHINE:x86-64 = "(.*)" +COMPATIBLE_MACHINE:x86 = "(^$)" +COMPATIBLE_MACHINE:aarch64 = "(^$)" +COMPATIBLE_MACHINE:armv7a = "(^$)" +COMPATIBLE_MACHINE:armv7ve = "(^$)" From d398c5b9b24ce323fd990ccf0a80cefd8aea75e8 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:23:16 -0700 Subject: [PATCH 085/152] {rolling} rqt-gui: Package files in datadir Signed-off-by: Rob Woolley --- meta-ros2-rolling/recipes-bbappends/rqt/rqt-gui_%.bbappend | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-ros2-rolling/recipes-bbappends/rqt/rqt-gui_%.bbappend b/meta-ros2-rolling/recipes-bbappends/rqt/rqt-gui_%.bbappend index 5c360dbe24..fa306126f7 100644 --- a/meta-ros2-rolling/recipes-bbappends/rqt/rqt-gui_%.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/rqt/rqt-gui_%.bbappend @@ -1 +1,3 @@ LICENSE = "BSD-3-Clause" + +FILES:${PN} += "${datadir}/lib/rqt_gui/rqt_gui" From 7faf675124bd091b4f596312fa76988b1420b9c9 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:24:05 -0700 Subject: [PATCH 086/152] {rolling} rviz-ogre-vendor: Refresh integration patch Signed-off-by: Rob Woolley --- .../0001-CMakeLists-remove-all-ament_vendor-calls.patch | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/meta-ros2-rolling/recipes-bbappends/rviz/rviz-ogre-vendor/0001-CMakeLists-remove-all-ament_vendor-calls.patch b/meta-ros2-rolling/recipes-bbappends/rviz/rviz-ogre-vendor/0001-CMakeLists-remove-all-ament_vendor-calls.patch index 39eba151cb..6fcee07b02 100644 --- a/meta-ros2-rolling/recipes-bbappends/rviz/rviz-ogre-vendor/0001-CMakeLists-remove-all-ament_vendor-calls.patch +++ b/meta-ros2-rolling/recipes-bbappends/rviz/rviz-ogre-vendor/0001-CMakeLists-remove-all-ament_vendor-calls.patch @@ -7,7 +7,7 @@ Index: git/CMakeLists.txt =================================================================== --- git.orig/CMakeLists.txt +++ git/CMakeLists.txt -@@ -4,115 +4,12 @@ project(rviz_ogre_vendor) +@@ -4,122 +4,12 @@ project(rviz_ogre_vendor) find_package(ament_cmake REQUIRED) find_package(ament_cmake_vendor_package REQUIRED) @@ -66,6 +66,8 @@ Index: git/CMakeLists.txt - set(OGRE_CXX_FLAGS "-Wno-mismatched-new-delete ${OGRE_CXX_FLAGS}") - set(OGRE_CXX_FLAGS "-Wno-range-loop-construct ${OGRE_CXX_FLAGS}") - set(OGRE_CXX_FLAGS "-Wno-undef ${OGRE_CXX_FLAGS}") +- set(OGRE_CXX_FLAGS "-Wno-misleading-indentation ${OGRE_CXX_FLAGS}") +- set(OGRE_CXX_FLAGS "-Wno-implicit-const-int-float-conversion ${OGRE_CXX_FLAGS}") - - if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(OGRE_CXX_FLAGS "-Wno-maybe-uninitialized ${OGRE_CXX_FLAGS}") @@ -80,6 +82,11 @@ Index: git/CMakeLists.txt - list(APPEND OGRE_CMAKE_ARGS -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON) -endif() - +-if(APPLE) +- list(APPEND OGRE_CMAKE_ARGS -DOGRE_ENABLE_PRECOMPILED_HEADERS:BOOL=OFF) +- list(APPEND OGRE_CMAKE_ARGS -DCMAKE_OSX_ARCHITECTURES=arm64;x86_64) +-endif() +- -ament_vendor(ogre_vendor - VCS_URL https://github.com/OGRECave/ogre.git - VCS_VERSION v1.12.10 From d6cc89d8afc4aa79cd237b31580dbed628ed0126 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:24:58 -0700 Subject: [PATCH 087/152] {rolling} vrpn-mocap: Update FILES for ros_opt_prefix Signed-off-by: Rob Woolley --- .../recipes-bbappends/vrpn-mocap/vrpn-mocap_1.1.0-3.bbappend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-ros2-rolling/recipes-bbappends/vrpn-mocap/vrpn-mocap_1.1.0-3.bbappend b/meta-ros2-rolling/recipes-bbappends/vrpn-mocap/vrpn-mocap_1.1.0-3.bbappend index 5ae0f0e609..675ef8b8ef 100644 --- a/meta-ros2-rolling/recipes-bbappends/vrpn-mocap/vrpn-mocap_1.1.0-3.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/vrpn-mocap/vrpn-mocap_1.1.0-3.bbappend @@ -2,4 +2,4 @@ # ERROR: vrpn-mocap-1.0.4-1-r0 do_package_qa: QA Issue: non -staticdev package contains static .a library: vrpn-mocap path '/usr/lib/vrpn_mocap/libvrpn_mocap.a' [staticdev] # ERROR: vrpn-mocap-1.0.4-1-r0 do_package_qa: Fatal QA errors were found, failing task. -FILES:${PN}-staticdev += "${libdir}/${ROS_BPN}/libvrpn_mocap.a" +FILES:${PN}-staticdev += "${ros_libdir}/${ROS_BPN}/libvrpn_mocap.a" From 21129ddcac769120f827cfc3a215cbf388d3c3f6 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:25:54 -0700 Subject: [PATCH 088/152] {rolling} ament-cmake-python: Use DESTDIR for install Signed-off-by: Rob Woolley --- .../use-DESTDIR-for-install.patch | 26 +++++++++++++++++++ .../ament-cmake-python_2.6.0-1.bbappend | 4 +++ 2 files changed, 30 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python/use-DESTDIR-for-install.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python_2.6.0-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python/use-DESTDIR-for-install.patch b/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python/use-DESTDIR-for-install.patch new file mode 100644 index 0000000000..96bc63c622 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python/use-DESTDIR-for-install.patch @@ -0,0 +1,26 @@ +Index: git/cmake/ament_python_install_module.cmake +=================================================================== +--- git.orig/cmake/ament_python_install_module.cmake ++++ git/cmake/ament_python_install_module.cmake +@@ -65,7 +65,7 @@ function(_ament_cmake_python_install_mod + "execute_process( + COMMAND + \"${python_interpreter}\" \"-m\" \"compileall\" +- \"${CMAKE_INSTALL_PREFIX}/${destination}/${module_file}\" ++ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${destination}/${module_file}\" + )" + ) + endif() +Index: git/cmake/ament_python_install_package.cmake +=================================================================== +--- git.orig/cmake/ament_python_install_package.cmake ++++ git/cmake/ament_python_install_package.cmake +@@ -195,7 +195,7 @@ setup( + "execute_process( + COMMAND + \"${python_interpreter_config}\" \"-m\" \"compileall\" +- \"${CMAKE_INSTALL_PREFIX}/${ARG_DESTINATION}/${package_name}\" ++ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${ARG_DESTINATION}/${package_name}\" + )" + ) + endif() diff --git a/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python_2.6.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python_2.6.0-1.bbappend new file mode 100644 index 0000000000..61d5fbfe32 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python_2.6.0-1.bbappend @@ -0,0 +1,4 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://use-DESTDIR-for-install.patch" From b11004b48723829ce317a7ee5b7e9fed992eecd3 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:30:24 -0700 Subject: [PATCH 089/152] {rolling} aruco-ros: Add rclpy build dependency Signed-off-by: Rob Woolley --- .../recipes-bbappends/aruco-ros/aruco-ros_5.0.5-1.bbappend | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/aruco-ros/aruco-ros_5.0.5-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/aruco-ros/aruco-ros_5.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/aruco-ros/aruco-ros_5.0.5-1.bbappend new file mode 100644 index 0000000000..80dd34f52b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/aruco-ros/aruco-ros_5.0.5-1.bbappend @@ -0,0 +1,5 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILD_DEPENDS += " \ + rclpy \ +" From 44ed4e7be011b613e335d74f3da3ab8e5cfe7366 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:30:55 -0700 Subject: [PATCH 090/152] {rolling} ffmpeg-image-transport-msgs: Add build dependencies Signed-off-by: Rob Woolley --- ...mpeg-image-transport-msgs_1.0.2-2.bbappend | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/ffmpeg-image-transport-msgs/ffmpeg-image-transport-msgs_1.0.2-2.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/ffmpeg-image-transport-msgs/ffmpeg-image-transport-msgs_1.0.2-2.bbappend b/meta-ros2-rolling/recipes-bbappends/ffmpeg-image-transport-msgs/ffmpeg-image-transport-msgs_1.0.2-2.bbappend new file mode 100644 index 0000000000..a4c8a08c13 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ffmpeg-image-transport-msgs/ffmpeg-image-transport-msgs_1.0.2-2.bbappend @@ -0,0 +1,23 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILDTOOL_DEPENDS += " \ + ament-cmake-ros \ + ament-cmake-gmock \ + ament-cmake-gtest \ + ament-cmake-pytest \ + python3-numpy-native \ + rosidl-adapter-native \ + rosidl-generator-c-native \ + rosidl-generator-cpp-native \ + rosidl-generator-py-native \ + rosidl-generator-type-description-native \ + rosidl-typesupport-c-native \ + rosidl-typesupport-cpp-native \ + rosidl-typesupport-fastrtps-c-native \ + rosidl-typesupport-fastrtps-cpp-native \ + rosidl-typesupport-introspection-cpp-native \ +" + +ROS_BUILD_DEPENDS += " \ + rosidl-core-generators \ +" From 719fe6e421af07a16e4958036beadd50ae0ef5fb Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:31:26 -0700 Subject: [PATCH 091/152] {rolling} imace-proc: New API for Aruco in OpenCV Use the new API present in OpenCV 4.x for accessing aruco::DetectorParameters. Signed-off-by: Rob Woolley --- .../image-proc/new-api-for-opencv-aruco.patch | 30 +++++++++++++++++++ .../image-proc_6.0.0-2.bbappend | 5 ++++ 2 files changed, 35 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc/new-api-for-opencv-aruco.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc_6.0.0-2.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc/new-api-for-opencv-aruco.patch b/meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc/new-api-for-opencv-aruco.patch new file mode 100644 index 0000000000..f029d52adf --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc/new-api-for-opencv-aruco.patch @@ -0,0 +1,30 @@ +New API for Aruco in OpenCV + +Use the new API present in OpenCV 4.x for accessing aruco::DetectorParameters. + +Upstream-Status: Pending + +Signed-off-by: Rob Woolley + +diff --git a/src/track_marker.cpp b/src/track_marker.cpp +index c0586e47..b396a3ee 100644 +--- a/src/track_marker.cpp ++++ b/src/track_marker.cpp +@@ -64,8 +64,17 @@ TrackMarkerNode::TrackMarkerNode(const rclcpp::NodeOptions & options) + // Default dictionary is cv::aruco::DICT_6X6_250 + int dict_id = this->declare_parameter("dictionary", 10); + ++ #if CV_VERSION_MAJOR > 4 || CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 7 ++ detector_params_ = cv::makePtr(); ++ #else + detector_params_ = cv::aruco::DetectorParameters::create(); ++ #endif ++ ++ #if CV_VERSION_MAJOR > 4 || CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 7 ++ dictionary_ = cv::makePtr(cv::aruco::getPredefinedDictionary(dict_id)); ++ #else + dictionary_ = cv::aruco::getPredefinedDictionary(dict_id); ++ #endif + + // Setup lazy subscriber using publisher connection callback + rclcpp::PublisherOptions pub_options; diff --git a/meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc_6.0.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc_6.0.0-2.bbappend new file mode 100644 index 0000000000..0362f0456d --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc_6.0.0-2.bbappend @@ -0,0 +1,5 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://new-api-for-opencv-aruco.patch" + From 9a2d36ec1a2f26a6adeb307a192a8089810f6637 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 16:32:17 -0700 Subject: [PATCH 092/152] {rolling} swri-transform-util: Replace deprecated boost APIs Signed-off-by: Rob Woolley --- .../boost_replace_deprecated_features.patch | 17 +++++++++++++++++ .../swri-transform-util_3.6.1-2.bbappend | 4 ++++ 2 files changed, 21 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/marti-common/swri-transform-util/boost_replace_deprecated_features.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/marti-common/swri-transform-util_3.6.1-2.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/marti-common/swri-transform-util/boost_replace_deprecated_features.patch b/meta-ros2-rolling/recipes-bbappends/marti-common/swri-transform-util/boost_replace_deprecated_features.patch new file mode 100644 index 0000000000..66406b8490 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/marti-common/swri-transform-util/boost_replace_deprecated_features.patch @@ -0,0 +1,17 @@ +Index: git/src/georeference.cpp +=================================================================== +--- git.orig/src/georeference.cpp ++++ git/src/georeference.cpp +@@ -108,10 +108,10 @@ namespace swri_transform_util + // If we have an absolute path, we don't need to change it + // Otherwise, we want to create a relative path from the .geo file + // location +- if (imagePath.is_complete() == false) ++ if (imagePath.is_absolute() == false) + { + boost::filesystem::path geoPath(path_); +- image_path_ = (geoPath.parent_path() / imagePath.relative_path()).normalize().string(); ++ image_path_ = (geoPath.parent_path() / imagePath.relative_path()).lexically_normal().string(); + + RCLCPP_INFO(logger_, "georeference: Image path is %s", image_path_.c_str()); + } diff --git a/meta-ros2-rolling/recipes-bbappends/marti-common/swri-transform-util_3.6.1-2.bbappend b/meta-ros2-rolling/recipes-bbappends/marti-common/swri-transform-util_3.6.1-2.bbappend new file mode 100644 index 0000000000..9e5e3870a2 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/marti-common/swri-transform-util_3.6.1-2.bbappend @@ -0,0 +1,4 @@ +# Copyright (c) 2024 Wind River Systems, Inc.. + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://boost_replace_deprecated_features.patch" From a0fa3b705792ef871a232ab47597f8db58df7a4e Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:12:32 -0700 Subject: [PATCH 093/152] {rolling} mola-*: Add SOLIBDEV to -dev packages Signed-off-by: Rob Woolley --- .../recipes-bbappends/mola/mola-bridge-ros2_1.0.5-1.bbappend | 3 +++ .../mola/mola-imu-preintegration_1.0.5-1.bbappend | 3 +++ .../mola/mola-input-euroc-dataset_1.0.5-1.bbappend | 3 +++ .../mola/mola-input-kitti-dataset_1.0.5-1.bbappend | 3 +++ .../mola/mola-input-kitti360-dataset_1.0.5-1.bbappend | 3 +++ .../mola/mola-input-mulran-dataset_1.0.5-1.bbappend | 3 +++ .../mola/mola-input-paris-luco-dataset_1.0.5-1.bbappend | 3 +++ .../recipes-bbappends/mola/mola-input-rawlog_1.0.5-1.bbappend | 3 +++ .../recipes-bbappends/mola/mola-kernel_1.0.5-1.bbappend | 3 +++ .../recipes-bbappends/mola/mola-launcher_1.0.5-1.bbappend | 3 +++ .../recipes-bbappends/mola/mola-metric-maps_1.0.5-1.bbappend | 3 +++ .../recipes-bbappends/mola/mola-navstate-fuse_1.0.5-1.bbappend | 3 +++ .../recipes-bbappends/mola/mola-pose-list_1.0.5-1.bbappend | 3 +++ .../mola/mola-relocalization_1.0.5-1.bbappend | 3 +++ .../recipes-bbappends/mola/mola-viz_1.0.5-1.bbappend | 3 +++ .../recipes-bbappends/mola/mola-yaml_1.0.5-1.bbappend | 3 +++ 16 files changed, 48 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-bridge-ros2_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-imu-preintegration_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-input-euroc-dataset_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-input-kitti-dataset_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-input-kitti360-dataset_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-input-mulran-dataset_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-input-paris-luco-dataset_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-input-rawlog_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-kernel_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-launcher_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-metric-maps_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-navstate-fuse_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-pose-list_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-relocalization_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-viz_1.0.5-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-yaml_1.0.5-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-bridge-ros2_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-bridge-ros2_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-bridge-ros2_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-imu-preintegration_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-imu-preintegration_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-imu-preintegration_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-input-euroc-dataset_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-input-euroc-dataset_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-input-euroc-dataset_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-input-kitti-dataset_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-input-kitti-dataset_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-input-kitti-dataset_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-input-kitti360-dataset_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-input-kitti360-dataset_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-input-kitti360-dataset_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-input-mulran-dataset_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-input-mulran-dataset_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-input-mulran-dataset_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-input-paris-luco-dataset_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-input-paris-luco-dataset_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-input-paris-luco-dataset_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-input-rawlog_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-input-rawlog_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-input-rawlog_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-kernel_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-kernel_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-kernel_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-launcher_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-launcher_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-launcher_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-metric-maps_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-metric-maps_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-metric-maps_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-navstate-fuse_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-navstate-fuse_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-navstate-fuse_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-pose-list_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-pose-list_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-pose-list_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-relocalization_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-relocalization_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-relocalization_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-viz_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-viz_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-viz_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-yaml_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-yaml_1.0.5-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-yaml_1.0.5-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" From 21f5ab3af925e834a3fd82e316896d0aebe388b9 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:13:33 -0700 Subject: [PATCH 094/152] {rolling} mola-traj-tools: Modify shell script shebang This resolves an error raised during the do_package_qa() task where it detects a missing runtime dependency on /bin/env. Adding a hardcoded, runtime dependency on coreutils or busybox is not ideal as it removes the flexibility to choose. The bitbake file-rdeps code has an exception for /usr/bin/env. Thus, by changing the shebang we eliminate the error. Signed-off-by: Rob Woolley --- .../mola/mola-traj-tools_1.0.5-1.bbappend | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/mola/mola-traj-tools_1.0.5-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/mola/mola-traj-tools_1.0.5-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mola/mola-traj-tools_1.0.5-1.bbappend new file mode 100644 index 0000000000..714418d1c4 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mola/mola-traj-tools_1.0.5-1.bbappend @@ -0,0 +1,7 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +# ERROR: mola-traj-tools-1.0.5-1-r0 do_package_qa: QA Issue: /opt/ros/rolling/bin/ncd-csv2tum contained in package mola-traj-tools requires /bin/env, but no providers found in RDEPENDS:mola-traj-tools? [file-rdeps] +do_install:append() { + # Modify the scripts to use /usr/bin/env + sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' ${D}${ros_bindir}/ncd-csv2tum +} From 85f14d347044854b8b27bd081f97faffe91c0796 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:21:31 -0700 Subject: [PATCH 095/152] {rolling} mp2p-icp: Add SOLIBDEV to -dev package Signed-off-by: Rob Woolley --- .../recipes-bbappends/mp2p-icp/mp2p-icp_1.4.3-1.bbappend | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/mp2p-icp/mp2p-icp_1.4.3-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/mp2p-icp/mp2p-icp_1.4.3-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mp2p-icp/mp2p-icp_1.4.3-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mp2p-icp/mp2p-icp_1.4.3-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" From 82adc4a3f3dab39a0ec5adce5ad5d39b500de93f Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:22:25 -0700 Subject: [PATCH 096/152] {rolling} mrpt-sensorlib: Add SOLIBDEV to -dev package Signed-off-by: Rob Woolley --- .../mrpt-sensors/mrpt-sensorlib_0.2.0-1.bbappend | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/mrpt-sensors/mrpt-sensorlib_0.2.0-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/mrpt-sensors/mrpt-sensorlib_0.2.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mrpt-sensors/mrpt-sensorlib_0.2.0-1.bbappend new file mode 100644 index 0000000000..ef15d2882b --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mrpt-sensors/mrpt-sensorlib_0.2.0-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" From d60353f783e967eeb78e306a2ab7e185d6483453 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:22:57 -0700 Subject: [PATCH 097/152] {rolling} mrpt2: Resolve build failures Add a missing = prefix to isystem to use the sysroot directory as the base. Backport an upstream fix for a missing deconstructor symbol. Disable using CMAKE_FIND_ROOT_PATH when searching for a font in the same directory. Set the CMAKE_TOOLCHAIN_FILE for a subproject to ensure that it uses the correct compiler configuration. Signed-off-by: Rob Woolley --- .../add-prefix-to-hwdrivers-isystem.patch | 38 ++++++++++++ ...-dtor-to-its-proper-translation-unit.patch | 41 +++++++++++++ ...cmake-find-root-path-for-nanogui-ttf.patch | 28 +++++++++ ...t-cmake-toolchain-file-for-nanoflann.patch | 22 +++++++ .../mrpt2/mrpt2_2.13.1-1.bbappend | 60 +++++++++++++++++++ 5 files changed, 189 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/add-prefix-to-hwdrivers-isystem.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/move-dtor-to-its-proper-translation-unit.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/no-cmake-find-root-path-for-nanogui-ttf.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/set-cmake-toolchain-file-for-nanoflann.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2_2.13.1-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/add-prefix-to-hwdrivers-isystem.patch b/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/add-prefix-to-hwdrivers-isystem.patch new file mode 100644 index 0000000000..727c1ef2fa --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/add-prefix-to-hwdrivers-isystem.patch @@ -0,0 +1,38 @@ +The pkg-config tool obtains a value of /usr/include for LIBAVCODEC_INCLUDEDIR +from libavcodec.pc. We must add '=' as a prefix to the -I option so +that the sysroot path used as the root directory. Note that we have also +converted -isystem to -I to avoid complications with reordering the list +of include paths and #include_next. + +Upstream-Status: Pending + +Signed-off-by: Rob Woolley + +diff --git a/libs/hwdrivers/CMakeLists.txt b/libs/hwdrivers/CMakeLists.txt +index 8e1a80ed..a79ada0c 100644 +--- a/libs/hwdrivers/CMakeLists.txt ++++ b/libs/hwdrivers/CMakeLists.txt +@@ -205,19 +205,19 @@ endif() + if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_MRPT_HAS_FFMPEG_SYSTEM) + set(EXTRA_ISYSTEMS "") + if(EXISTS "${LIBAVCODEC_INCLUDEDIR}") +- set(EXTRA_ISYSTEMS "-isystem ${LIBAVCODEC_INCLUDEDIR} ") ++ set(EXTRA_ISYSTEMS "-I =${LIBAVCODEC_INCLUDEDIR} ") + endif() + + if(EXISTS "${LIBAVCODEC_INCLUDEDIR}/ffmpeg") +- set(EXTRA_ISYSTEMS "-isystem ${LIBAVCODEC_INCLUDEDIR}/ffmpeg ") ++ set(EXTRA_ISYSTEMS "-I =${LIBAVCODEC_INCLUDEDIR}/ffmpeg ") + endif() + + if(EXISTS "${LIBAVCODEC_INCLUDEDIR}/libavcodec") +- set(EXTRA_ISYSTEMS "-isystem ${LIBAVCODEC_INCLUDEDIR}/libavcodec ") ++ set(EXTRA_ISYSTEMS "-I =${LIBAVCODEC_INCLUDEDIR}/libavcodec ") + endif() + + if(EXISTS "${LIBAVCODEC_INCLUDEDIR}/libavformat") +- set(EXTRA_ISYSTEMS "-isystem ${LIBAVCODEC_INCLUDEDIR}/libavformat ") ++ set(EXTRA_ISYSTEMS "-I =${LIBAVCODEC_INCLUDEDIR}/libavformat ") + endif() + + if (NOT "${EXTRA_ISYSTEMS}" STREQUAL "") diff --git a/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/move-dtor-to-its-proper-translation-unit.patch b/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/move-dtor-to-its-proper-translation-unit.patch new file mode 100644 index 0000000000..38249d9836 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/move-dtor-to-its-proper-translation-unit.patch @@ -0,0 +1,41 @@ +Upstream-Status: Backport + +Signed-off-by: Rob Woolley + +From d83b49b1395721faea5215c3da63337db2f02653 Mon Sep 17 00:00:00 2001 +From: Jose Luis Blanco-Claraco +Date: Fri, 21 Jun 2024 13:01:25 +0200 +Subject: [PATCH] move dtor to its proper translation unit + +--- + libs/gui/include/mrpt/3rdparty/mathplot/mathplot.h | 2 +- + libs/gui/src/mathplots/mathplot.cpp | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/libs/gui/include/mrpt/3rdparty/mathplot/mathplot.h b/libs/gui/include/mrpt/3rdparty/mathplot/mathplot.h +index 83fe45936c..32b4acfdaa 100644 +--- a/libs/gui/include/mrpt/3rdparty/mathplot/mathplot.h ++++ b/libs/gui/include/mrpt/3rdparty/mathplot/mathplot.h +@@ -1684,7 +1684,7 @@ class WXDLLIMPEXP_MATHPLOT mpMovableObject : public mpLayer + */ + mpMovableObject() : m_shape_xs(0), m_shape_ys(0) { m_type = mpLAYER_PLOT; } + +- ~mpMovableObject() override = default; ++ ~mpMovableObject() override; + + /** Get the current coordinate transformation. + */ +diff --git a/libs/gui/src/mathplots/mathplot.cpp b/libs/gui/src/mathplots/mathplot.cpp +index 9ec0dc26d3..a03eb7c95d 100644 +--- a/libs/gui/src/mathplots/mathplot.cpp ++++ b/libs/gui/src/mathplots/mathplot.cpp +@@ -2646,6 +2646,9 @@ bool mpPrintout::HasPage(int page) { return (page == 1); } + //----------------------------------------------------------------------------- + // mpMovableObject - provided by Jose Luis Blanco + //----------------------------------------------------------------------------- ++ ++mpMovableObject::~mpMovableObject() = default; ++ + void mpMovableObject::TranslatePoint(double x, double y, double& out_x, double& out_y) + { + double ccos = cos(m_reference_phi); // Avoid computing cos/sin twice. diff --git a/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/no-cmake-find-root-path-for-nanogui-ttf.patch b/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/no-cmake-find-root-path-for-nanogui-ttf.patch new file mode 100644 index 0000000000..e293bddba1 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/no-cmake-find-root-path-for-nanogui-ttf.patch @@ -0,0 +1,28 @@ +Set NO_CMAKE_FIND_ROOT_PATH + +The truetype fonts are provided locally with an absolute path to find them. + +Without NO_CMAKE_FIND_ROOT_PATH, they cannot be found because the +CMAKE_PREFIX_PATH is applied to the suggested path. + +Upstream-Status: Pending + +Signed-off-by: Rob Woolley + +diff --git a/3rdparty/nanogui/CMakeLists.txt b/3rdparty/nanogui/CMakeLists.txt +index fb22011d..2c966b73 100644 +--- a/3rdparty/nanogui/CMakeLists.txt ++++ b/3rdparty/nanogui/CMakeLists.txt +@@ -260,9 +260,9 @@ endif() + # * Roboto-Bold.ttf, Roboto-Regular.ttf => apt install fonts-roboto-fontface + # * entypo+ is a custom font from: https://github.com/svenevs/nanogui-entypo + # (it is NOT the same one as provided by the entypo debian package) +-find_file(ENTYPO_TTF_FILE entypo.ttf PATHS "${CMAKE_CURRENT_SOURCE_DIR}/resources" REQUIRED) +-find_file(ROBOTO_BOLD_TTF_FILE Roboto-Bold.ttf PATHS /usr/share/fonts/truetype/roboto-fontface/roboto/ "${CMAKE_CURRENT_SOURCE_DIR}/resources" REQUIRED) +-find_file(ROBOTO_REGULAR_TTF_FILE Roboto-Regular.ttf PATHS /usr/share/fonts/truetype/roboto-fontface/roboto/ "${CMAKE_CURRENT_SOURCE_DIR}/resources" REQUIRED) ++find_file(ENTYPO_TTF_FILE entypo.ttf PATHS "${CMAKE_CURRENT_SOURCE_DIR}/resources" REQUIRED NO_CMAKE_FIND_ROOT_PATH) ++find_file(ROBOTO_BOLD_TTF_FILE Roboto-Bold.ttf PATHS "${CMAKE_CURRENT_SOURCE_DIR}/resources" REQUIRED NO_CMAKE_FIND_ROOT_PATH) ++find_file(ROBOTO_REGULAR_TTF_FILE Roboto-Regular.ttf PATHS "${CMAKE_CURRENT_SOURCE_DIR}/resources" REQUIRED NO_CMAKE_FIND_ROOT_PATH) + + # Glob up resource files + set(resources ${ENTYPO_TTF_FILE} ${ROBOTO_BOLD_TTF_FILE} ${ROBOTO_REGULAR_TTF_FILE}) diff --git a/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/set-cmake-toolchain-file-for-nanoflann.patch b/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/set-cmake-toolchain-file-for-nanoflann.patch new file mode 100644 index 0000000000..1407d626f6 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2/set-cmake-toolchain-file-for-nanoflann.patch @@ -0,0 +1,22 @@ +Set CMAKE_TOOLCHAIN_FILE for nanoflann build + +Otherwise, the CMakeTestCCompiler.cmake test will fail. The additional compiler options +will be lost when invoking the compiler driver, resulting in the linker failing to +find the crt libraries. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Rob Woolley + +diff --git a/cmakemodules/script_nanoflann.cmake b/cmakemodules/script_nanoflann.cmake +index 82a07cae..98078469 100644 +--- a/cmakemodules/script_nanoflann.cmake ++++ b/cmakemodules/script_nanoflann.cmake +@@ -19,6 +19,7 @@ if (NOT nanoflann_FOUND) + -DNANOFLANN_BUILD_EXAMPLES=OFF + -DNANOFLANN_BUILD_TESTS=OFF + -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} ++ -DCMAKE_TOOLCHAIN_FILE=${PROJECT_SOURCE_DIR}/../toolchain.cmake + RESULT_VARIABLE result + WORKING_DIRECTORY "${nanoflann_EMBEDDED_BUILD_DIR}" + ${echo_flag} diff --git a/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2_2.13.1-1.bbappend b/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2_2.13.1-1.bbappend new file mode 100644 index 0000000000..cc2ea80032 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/mrpt2/mrpt2_2.13.1-1.bbappend @@ -0,0 +1,60 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +inherit pkgconfig + +# See package.xml: "Required for cmake scripts to find ament_cmake and +# then realize we are in ROS 2, not ROS 1" +ROS_BUILD_TYPE = "ament_cmake" +inherit ros_${ROS_BUILD_TYPE} + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://no-cmake-find-root-path-for-nanogui-ttf.patch \ + file://set-cmake-toolchain-file-for-nanoflann.patch \ + file://add-prefix-to-hwdrivers-isystem.patch \ + file://move-dtor-to-its-proper-translation-unit.patch \ +" + +# Remove the suitesparse libraries from the generated recipe +# This is necessary to use the package's internal copy of CSparse +ROS_BUILD_DEPENDS:remove = "suitesparse-cholmod" +ROS_BUILD_DEPENDS:remove = "suitesparse-cxsparse" +ROS_EXPORT_DEPENDS:remove = "suitesparse-cholmod" +ROS_EXPORT_DEPENDS:remove = "suitesparse-cxsparse" +ROS_EXEC_DEPENDS:remove = "suitesparse-cholmod" +ROS_EXEC_DEPENDS:remove = "suitesparse-cxsparse" + +# ament-package-native +# do_configure: ModuleNotFoundError: No module named 'ament_package.templates' +# wx-widgets-native +# needed for wx-config in cmakemodules/script_wxwidgets.cmake +ROS_BUILDTOOL_DEPENDS += " \ + ament-package-native \ + wxwidgets-native \ +" + +export VERBOSE="1" + +ROS_BUILD_DEPENDS += " \ + ament-cmake-libraries \ + ament-cmake-export-definitions \ + ament-cmake-export-include-directories \ + ament-cmake-export-interfaces \ + ament-cmake-export-libraries \ + ament-cmake-export-link-flags \ + ament-cmake-export-interfaces \ + ament-cmake-export-targets \ + ament-cmake-gen-version-h \ + ament-cmake-include-directories \ + ament-cmake-python \ + ament-cmake-target-dependencies \ + ament-cmake-test \ + ament-cmake-version \ + octomap \ + rosidl-typesupport-c \ + rosidl-typesupport-cpp \ + rosidl-typesupport-fastrtps-c \ + rosidl-typesupport-fastrtps-cpp \ + rosidl-typesupport-introspection-cpp \ +" + +FILES:${PN}-dev =+ "${ros_libdir}/lib*${SOLIBSDEV}" From 2513d5cec6b4cc0fa1fe405cb6b56c4a43d8f42a Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:26:07 -0700 Subject: [PATCH 098/152] {rolling} ros-gz: Add protobuf and qt5 build dependencies Signed-off-by: Rob Woolley --- .../ros-gz/ros-gz-bridge_1.0.0-1.bbappend | 7 +++++++ .../ros-gz/ros-gz-image_1.0.0-1.bbappend | 7 +++++++ .../ros-gz/ros-gz-sim_1.0.0-1.bbappend | 17 +++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/ros-gz/ros-gz-bridge_1.0.0-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/ros-gz/ros-gz-image_1.0.0-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/ros-gz/ros-gz-sim_1.0.0-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/ros-gz/ros-gz-bridge_1.0.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ros-gz/ros-gz-bridge_1.0.0-1.bbappend new file mode 100644 index 0000000000..94652923c4 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros-gz/ros-gz-bridge_1.0.0-1.bbappend @@ -0,0 +1,7 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILDTOOL_DEPS += "protobuf-native" + +EXTRA_OECMAKE += " \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" diff --git a/meta-ros2-rolling/recipes-bbappends/ros-gz/ros-gz-image_1.0.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ros-gz/ros-gz-image_1.0.0-1.bbappend new file mode 100644 index 0000000000..94652923c4 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros-gz/ros-gz-image_1.0.0-1.bbappend @@ -0,0 +1,7 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILDTOOL_DEPS += "protobuf-native" + +EXTRA_OECMAKE += " \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" diff --git a/meta-ros2-rolling/recipes-bbappends/ros-gz/ros-gz-sim_1.0.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ros-gz/ros-gz-sim_1.0.0-1.bbappend new file mode 100644 index 0000000000..067e3809f7 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros-gz/ros-gz-sim_1.0.0-1.bbappend @@ -0,0 +1,17 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_BUILD_DEPENDS += " \ + protobuf \ +" + +ROS_BUILDTOOL_DEPENDS += " \ + protobuf-native \ +" + +EXTRA_OECMAKE += " \ + -DPROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \ +" + +# CMake Warning at /ala-lpggp31/rwoolley/pr1144/build/tmp-glibc/work/cortexa72-oe-linux/ros-gz-sim/1.0.0-1/recipe-sysroot/usr/lib/cmake/Qt5/Qt5Config.cmake:7 (message): +# SkippingbecauseOE_QMAKE_PATH_EXTERNAL_HOST_BINSisnotdefined +inherit ${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'qt5-widgets'], '', 'cmake_qt5', d)} From 38d15269e46c56f6d70c2172ef01cac8029b96da Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:26:57 -0700 Subject: [PATCH 099/152] {rolling} ros2-controllers: Disable compiler options Signed-off-by: Rob Woolley --- .../disable-compiler-options.patch | 16 ++++++++++++++++ .../position-controllers_4.9.0-1.bbappend | 4 ++++ .../disable-compiler-options.patch | 16 ++++++++++++++++ .../velocity-controllers_4.9.0-1.bbappend | 4 ++++ 4 files changed, 40 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/ros2-controllers/position-controllers/disable-compiler-options.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/ros2-controllers/position-controllers_4.9.0-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/ros2-controllers/velocity-controllers/disable-compiler-options.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/ros2-controllers/velocity-controllers_4.9.0-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/position-controllers/disable-compiler-options.patch b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/position-controllers/disable-compiler-options.patch new file mode 100644 index 0000000000..4d83fc7d3c --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/position-controllers/disable-compiler-options.patch @@ -0,0 +1,16 @@ +Index: git/CMakeLists.txt +=================================================================== +--- git.orig/CMakeLists.txt ++++ git/CMakeLists.txt +@@ -1,11 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + project(position_controllers LANGUAGES CXX) + +-if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") +- add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable +- -Werror=return-type -Werror=shadow -Werror=format) +-endif() +- + set(THIS_PACKAGE_INCLUDE_DEPENDS + forward_command_controller + pluginlib diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/position-controllers_4.9.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/position-controllers_4.9.0-1.bbappend new file mode 100644 index 0000000000..b34b6b8a1e --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/position-controllers_4.9.0-1.bbappend @@ -0,0 +1,4 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://disable-compiler-options.patch" diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/velocity-controllers/disable-compiler-options.patch b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/velocity-controllers/disable-compiler-options.patch new file mode 100644 index 0000000000..a026a5f797 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/velocity-controllers/disable-compiler-options.patch @@ -0,0 +1,16 @@ +Index: git/CMakeLists.txt +=================================================================== +--- git.orig/CMakeLists.txt ++++ git/CMakeLists.txt +@@ -1,11 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + project(velocity_controllers LANGUAGES CXX) + +-if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") +- add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable +- -Werror=return-type -Werror=shadow -Werror=format) +-endif() +- + set(THIS_PACKAGE_INCLUDE_DEPENDS + forward_command_controller + pluginlib diff --git a/meta-ros2-rolling/recipes-bbappends/ros2-controllers/velocity-controllers_4.9.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/velocity-controllers_4.9.0-1.bbappend new file mode 100644 index 0000000000..b34b6b8a1e --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ros2-controllers/velocity-controllers_4.9.0-1.bbappend @@ -0,0 +1,4 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://disable-compiler-options.patch" From 0f2e39a8f9a67f430e5e754880a02c809985be15 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:28:08 -0700 Subject: [PATCH 100/152] {rolling} sdformat-urdf: Add missing build dependency Signed-off-by: Rob Woolley --- .../sdformat-urdf/sdformat-urdf_2.0.1-1.bbappend | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/sdformat-urdf/sdformat-urdf_2.0.1-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/sdformat-urdf/sdformat-urdf_2.0.1-1.bbappend b/meta-ros2-rolling/recipes-bbappends/sdformat-urdf/sdformat-urdf_2.0.1-1.bbappend new file mode 100644 index 0000000000..558f54bb72 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/sdformat-urdf/sdformat-urdf_2.0.1-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +ROS_EXEC_DEPENDS += "gz-math-vendor" From e33816344ed8e71053bcd194e844c9cc107e5e7c Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:28:29 -0700 Subject: [PATCH 101/152] {rolling} sdformat-vendor: Use system sdformat This ensures that sdformat-vendor depends on the sdformat recipe instead of building sdformat itself. Signed-off-by: Rob Woolley --- .../sdformat-vendor/sdformat-vendor_0.1.1-1.bbappend | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/sdformat-vendor/sdformat-vendor_0.1.1-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/sdformat-vendor/sdformat-vendor_0.1.1-1.bbappend b/meta-ros2-rolling/recipes-bbappends/sdformat-vendor/sdformat-vendor_0.1.1-1.bbappend new file mode 100644 index 0000000000..23412023d4 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/sdformat-vendor/sdformat-vendor_0.1.1-1.bbappend @@ -0,0 +1,7 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +DEPENDS += "sdformat" + +export GZ_RELAX_VERSION_MATCH="1" + +inherit ros_insane_dev_so From f47dea2ee8d8e7e1346dacd834fe133af13106b6 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:29:40 -0700 Subject: [PATCH 102/152] {rolling} libcamera: Fix up build dependencies Signed-off-by: Rob Woolley --- .../libcamera/libcamera_0.3.0-3.bbappend | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/libcamera/libcamera_0.3.0-3.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/libcamera/libcamera_0.3.0-3.bbappend b/meta-ros2-rolling/recipes-bbappends/libcamera/libcamera_0.3.0-3.bbappend new file mode 100644 index 0000000000..e9e03b893e --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/libcamera/libcamera_0.3.0-3.bbappend @@ -0,0 +1,29 @@ +# Copyright (c) 2021 LG Electronics, Inc. +# Copyright (c) 2023 Wind River Systems, Inc. + +# ERROR: Nothing RPROVIDES 'gcc-runtime' (but libcamera_0.1.0-1.bb RDEPENDS on or otherwise requires it) +# libatomic is just one of the packages provided by gcc-runtime recipe +# but gcc-runtime recipe doesn't have libatomic in PROVIDES, so we cannot map +# libatomic in rosdep to libatomic (without adding libatomic to PROVIDES in gcc-runtime +# bbappend). And we cannot leave gcc-runtime in ROS_EXEC_DEPENDS, because +# gcc-runtime recipe doesn't have PN in PACKAGES (and we would still depend +# on do_package shlibs handling to add runtime dependency on actual package +# with libatomic library) +ROS_EXEC_DEPENDS:remove = "gcc-runtime" +# there is no native support for gcc-runtime, so also no libatomic, add it only for target builds +ROS_EXEC_DEPENDS:append-class-target = " libatomic" +# and also remove it from build time depends when buiding native rc-utils +DEPENDS:remove:class-native = "gcc-runtime-native gcc-runtime" + +# ERROR: Task (libcamera_0.3.0-2.bb:do_configure) failed with exit code '1' +# ../git/meson.build:269:7: ERROR: python3 is missing modules: jinja2, ply, jinja2, yaml +ROS_BUILDTOOL_DEPENDS += " \ + python3-jinja2-native \ + python3-ply-native \ + python3-pyyaml-native \ +" + +# ERROR: libcamera-0.3.0-2-r0 do_package_qa: QA Issue: +# non -dev/-dbg/nativesdk- package libcamera contains symlink .so '/usr/lib/libcamera.so' +# non -dev/-dbg/nativesdk- package libcamera contains symlink .so '/usr/lib/libcamera-base.so' [dev-so] +inherit ros_insane_dev_so From b7bfefc6bfb168b39b22afacf5bd89391b2a8d87 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:30:46 -0700 Subject: [PATCH 103/152] {rolling} Update pcl version in ros-distro-preferred-versions.inc Signed-off-by: Rob Woolley --- .../include/rolling/ros-distro-preferred-versions.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro-preferred-versions.inc b/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro-preferred-versions.inc index 36a92102f0..56afd3dd68 100644 --- a/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro-preferred-versions.inc +++ b/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro-preferred-versions.inc @@ -6,7 +6,7 @@ # set in ros-distro-platform-preferred-versions.inc . # REP-0003 specifies 1.10.1 for noetic -# REP-2000 specifies 1.12.1 for humble and iron and 1.13.0 for jazzy +# REP-2000 specifies 1.12.1 for humble and iron and 1.14.0 for jazzy # This is necessary as with ROS1 many recipes fail to build # as documented in https://github.com/ros/meta-ros/pull/936 -PREFERRED_VERSION_pcl = "1.13.0+git" +PREFERRED_VERSION_pcl = "1.14.1" From 27a7ee18ae0a91401b59757e91c1853e0ac48797 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:32:09 -0700 Subject: [PATCH 104/152] {rolling} Update ros-distro-recipe-blacklist.inc Signed-off-by: Rob Woolley --- .../rolling/ros-distro-recipe-blacklist.inc | 27 +++++-------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro-recipe-blacklist.inc b/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro-recipe-blacklist.inc index 79360cdae8..92e05b67fe 100644 --- a/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro-recipe-blacklist.inc +++ b/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro-recipe-blacklist.inc @@ -12,9 +12,6 @@ SKIP_RECIPE[ament-cmake-clang-tidy] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GRO SKIP_RECIPE[aws-sdk-cpp-vendor] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'aws', 'aws: depends on recipes provided by meta-aws, but not yet tested with meta-ros', '', d)}" SKIP_RECIPE[aws-robomaker-small-warehouse-world] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'gazebo', 'gazebo: depends on gazebo-plugins and gazebo-ros->gazebo-rosdev->gazebo which is not available', '', d)}" SKIP_RECIPE[cartographer] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'cartographer', 'cartographer: depends on ROS_UNRESOLVED_DEP-libabsl-dev', '', d)}" -SKIP_RECIPE[clearpath-gz] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on ros-gz which depends on ros-gz-sim and ros-gz-sim-demos which depends on unavailable ROS_UNRESOLVED_DEP-ignition-msgs8, ROS_UNRESOLVED_DEP-ignition-transport11, ROS_UNRESOLVED_DEP-ignition-math6', '', d)}" -SKIP_RECIPE[clearpath-simulator] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on clearpath-gz which depends on ros-gz which depends on ros-gz-sim and ros-gz-sim-demos which depends on unavailable ROS_UNRESOLVED_DEP-ignition-msgs8, ROS_UNRESOLVED_DEP-ignition-transport11, ROS_UNRESOLVED_DEP-ignition-math6', '', d)}" -SKIP_RECIPE[clearpath-viz] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on ros-gz which depends on ros-gz-sim and ros-gz-sim-demos which depends on unavailable ROS_UNRESOLVED_DEP-ignition-msgs8, ROS_UNRESOLVED_DEP-ignition-transport11, ROS_UNRESOLVED_DEP-ignition-math6', '', d)}" SKIP_RECIPE[color-names] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'opengl', 'x11'], 'qt5: depends on rviz2 which depends on qtbase; opengl: depends on rviz2 which depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz2 which depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" SKIP_RECIPE[connext-cmake-module] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'connext', 'connext: depends on rti-connext-dds which is not available', '', d)}" SKIP_RECIPE[connext-cmake-module-native] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'connext', 'connext: depends on rti-connext-dds-native which is not available', '', d)}" @@ -25,9 +22,8 @@ SKIP_RECIPE[depthai-examples] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', SKIP_RECIPE[depthai-ros] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'hunter', 'Depends on hunter', '', d)}" SKIP_RECIPE[depthai-ros-msgs] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'hunter', 'Depends on hunter', '', d)}" SKIP_RECIPE[desktop] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'pyqt5', 'opengl', 'x11'], 'qt5: rdepends on rviz2, rviz-default-plugins, rqt-common-plugins which rdepends on rqt-image-view which depends on qt-gui-cpp, rqt-gui, rqt-gui-cpp which depend on qtbase; pyqt5: rdepends on rqt-common-plugins which rdepends on rqt-image-view which depends on qt-gui-cpp, rqt-gui, rqt-gui-cpp which depend on python3-pyqt5 which requires pyqt5; opengl: rdepends on rviz2, rviz-default-plugins which depend on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: rdepends on rviz2, rviz-default-plugins which depend on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" -SKIP_RECIPE[dolly] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['ignition', 'gazebo', 'qt5', 'opengl', 'x11'], 'ignition: depends on dolly-ignition which depends on ros-ign-bridge and ros-ign-gazebo which depend on unavailable ROS_UNRESOLVED_DEP-ignition-math6, ROS_UNRESOLVED_DEP-ignition-msgs5, ROS_UNRESOLVED_DEP-ignition-transport8; gazebo: depends on dolly-gazebo which depends on gazebo-ros-pkgs which depends on gazebo-rosdev->gazebo which is not available; qt5: depends on dolly-gazebo which depends on rviz2 which depends on qtbase; opengl: depends on dolly-gazebo which depends on rviz2 which depends on depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on dolly-gazebo which depends on rviz2 which depends on depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" +SKIP_RECIPE[dolly] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['gazebo', 'qt5', 'opengl', 'x11'], 'gazebo: depends on dolly-gazebo which depends on gazebo-ros-pkgs which depends on gazebo-rosdev->gazebo which is not available; qt5: depends on dolly-gazebo which depends on rviz2 which depends on qtbase; opengl: depends on dolly-gazebo which depends on rviz2 which depends on depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on dolly-gazebo which depends on rviz2 which depends on depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" SKIP_RECIPE[dolly-gazebo] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['gazebo', 'qt5', 'opengl', 'x11'], 'gazebo: depends on gazebo-ros-pkgs which depends on gazebo-rosdev->gazebo which is not available; qt5: depends on rviz2 which depends on qtbase; opengl: depends on rviz2 which depends on depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz2 which depends on depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" -SKIP_RECIPE[dolly-ignition] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on ros-ign-bridge and ros-ign-gazebo which depend on unavailable ROS_UNRESOLVED_DEP-ignition-math6, ROS_UNRESOLVED_DEP-ignition-msgs5, ROS_UNRESOLVED_DEP-ignition-transport8', '', d)}" SKIP_RECIPE[gazebo-plugins] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'gazebo', 'gazebo: depends on gazebo-rosdev->gazebo which is not available', '', d)}" SKIP_RECIPE[gazebo-ros2-control] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'gazebo', 'gazebo: depends on gazebo-rosdev->gazebo which is not available', '', d)}" SKIP_RECIPE[gazebo-ros2-control-demos] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'gazebo', 'gazebo: depends on gazebo-ros2-control which depends on gazebo-rosdev->gazebo which is not available', '', d)}" @@ -35,11 +31,6 @@ SKIP_RECIPE[gazebo-ros] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'gazeb SKIP_RECIPE[gazebo-rosdev] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'gazebo11', 'gazebo: depends on gazebo11 which is not available', '', d)}" SKIP_RECIPE[gazebo-ros-pkgs] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'gazebo', 'gazebo: depends on gazebo-rosdev->gazebo which is not available', '', d)}" SKIP_RECIPE[gurumdds-cmake-module] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'gurumdds', 'gurumdds: depends on gurumdds-2.6 which is not available', '', d)}" -SKIP_RECIPE[ignition-cmake2-vendor] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on unavailable ROS_UNRESOLVED_DEP-ignition-cmake2', '', d)}" -SKIP_RECIPE[ignition-math6-vendor] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on unavailable ROS_UNRESOLVED_DEP-ignition-math6', '', d)}" -SKIP_RECIPE[ign-rviz] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on unavailable ROS_UNRESOLVED_DEP-ignition-math6, ROS_UNRESOLVED_DEP-ignition-common4, ROS_UNRESOLVED_DEP-ignition-gui5', '', d)}" -SKIP_RECIPE[ign-rviz-common] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on unavailable ROS_UNRESOLVED_DEP-ignition-math6, ROS_UNRESOLVED_DEP-ignition-gui5', '', d)}" -SKIP_RECIPE[ign-rviz-plugins] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on unavailable ROS_UNRESOLVED_DEP-ignition-math6, ROS_UNRESOLVED_DEP-ignition-rendering5, ROS_UNRESOLVED_DEP-ignition-common4, ROS_UNRESOLVED_DEP-ignition-gui5', '', d)}" SKIP_RECIPE[joint-state-publisher-gui] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'pyqt5'], 'qt5: depends on python-qt-binding which depends on qtbase; pyqt5: depends on python-qt-binding which depends on python3-pyqt5 which requires pyqt5', '', d)}" SKIP_RECIPE[libg2o] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['opengl', 'x11'], 'opengl: depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on libglu which requires x11 in DISTRO_FEATURES', '', d)}" SKIP_RECIPE[librealsense2] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['opengl', 'glfw'], 'opengl: depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; glfw: depends on librealsense2 which depends on glfw which is available only in dunfell and requires x11 in DISTRO_FEATURES', '', d)}" @@ -63,6 +54,7 @@ SKIP_RECIPE[octovis] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5 SKIP_RECIPE[openvslam] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['opengl', 'x11'], 'opengl: depends on libg2o which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on libg2o which depends on libglu which requires x11 in DISTRO_FEATURES', '', d)}" SKIP_RECIPE[packagegroup-ros-turtlebot3-core] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'turtlebot3', 'turtlebot3: rdepends on turtlebot3-bringup,hls-lfcd-lds-driver,turtlebot3-msgs,ros-base which were not ported to foxy yet', '', d)}" SKIP_RECIPE[packagegroup-ros-turtlebot3-extended] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'turtlebot3', 'turtlebot3: rdepends on slam-karto, compressed-image-transport, depthimage-to-laserscan turtlebot3-applications-msgs, turtlebot3-autorace, cartographer-ros, turtlebot3, turtlebot3-applications which were not ported to foxy yet', '', d)}" +SKIP_RECIPE[pinocchio] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'scipy', 'pinocchio: depends on eigenpy which depends on python3-scipy which requires meta-scipy layer', '', d)}" SKIP_RECIPE[plansys2-bringup] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'coinor-libipopt', 'coinor-libipopt: depends on plansys2-executor which depends on popf which depends on unavailable ROS_UNRESOLVED_DEP-coinor-libcbc-dev, ROS_UNRESOLVED_DEP-coinor-libclp-dev, ROS_UNRESOLVED_DEP-coinor-libcoinutils-dev, ROS_UNRESOLVED_DEP-coinor-libcgl-dev', '', d)}" SKIP_RECIPE[plansys2-bt-actions] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'coinor-libipopt', 'coinor-libipopt: depends on plansys2-executor which depends on popf which depends on unavailable ROS_UNRESOLVED_DEP-coinor-libcbc-dev, ROS_UNRESOLVED_DEP-coinor-libclp-dev, ROS_UNRESOLVED_DEP-coinor-libcoinutils-dev, ROS_UNRESOLVED_DEP-coinor-libcgl-dev', '', d)}" SKIP_RECIPE[plansys2-domain-expert] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'coinor-libipopt', 'coinor-libipopt: depends on plansys2-popf-plan-solver which depends on popf which depends on unavailable ROS_UNRESOLVED_DEP-coinor-libcbc-dev, ROS_UNRESOLVED_DEP-coinor-libclp-dev, ROS_UNRESOLVED_DEP-coinor-libcoinutils-dev, ROS_UNRESOLVED_DEP-coinor-libcgl-dev', '', d)}" @@ -112,13 +104,6 @@ SKIP_RECIPE[rosbag2-bag-v2-plugins] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GRO SKIP_RECIPE[rosidl-typesupport-connext-c] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'connext', 'connext: depends on (rosidl-typesupport-connext-cpp-native,connext-cmake-module-native)->rti-connext-dds-native which is not available', '', d)}" SKIP_RECIPE[rosidl-typesupport-connext-cpp] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'connext', 'connext: depends on rti-connext-dds-native which is not available', '', d)}" SKIP_RECIPE[rosidl-typesupport-connext-cpp-native] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'connext', 'connext: depends on rti-connext-dds-native which is not available', '', d)}" -SKIP_RECIPE[ros-gz] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on ros-gz-sim and ros-gz-sim-demos which depends on unavailable ROS_UNRESOLVED_DEP-ignition-msgs8, ROS_UNRESOLVED_DEP-ignition-transport11, ROS_UNRESOLVED_DEP-ignition-math6', '', d)}" -SKIP_RECIPE[ros-gz-sim-demos] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on ros-gz-sim which depends on unavailable ROS_UNRESOLVED_DEP-ignition-msgs8, ROS_UNRESOLVED_DEP-ignition-transport11, ROS_UNRESOLVED_DEP-ignition-math6', '', d)}" -SKIP_RECIPE[ros-ign] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: rdepends on ros-ign-image, ros-ign-bridge, ros-ign-gazebo which depend on unavailable ROS_UNRESOLVED_DEP-ignition-gazebo5, ROS_UNRESOLVED_DEP-ignition-math6, ROS_UNRESOLVED_DEP-ignition-msgs7, ROS_UNRESOLVED_DEP-ignition-transport10', '', d)}" -SKIP_RECIPE[ros-ign-bridge] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on unavailable ROS_UNRESOLVED_DEP-ignition-msgs7, ROS_UNRESOLVED_DEP-ignition-transport10', '', d)}" -SKIP_RECIPE[ros-ign-gazebo] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on unavailable ROS_UNRESOLVED_DEP-ignition-gazebo5, ROS_UNRESOLVED_DEP-ignition-math6', '', d)}" -SKIP_RECIPE[ros-ign-gazebo-demos] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on unavailable ROS_UNRESOLVED_DEP-ignition-gazebo5', '', d)}" -SKIP_RECIPE[ros-ign-image] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'ignition', 'ignition: depends on unavailable ROS_UNRESOLVED_DEP-ignition-msgs7, ROS_UNRESOLVED_DEP-ignition-transport10', '', d)}" SKIP_RECIPE[ros-image-turtlebot3-all] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'turtlebot3', 'turtlebot3: Rdepends on packagegroup-ros-turtlebot3-core, packagegroup-ros-turtlebot3-extended which rdepend turtlebot3-bringup,hls-lfcd-lds-driver,turtlebot3-msgs,ros-base,slam-karto, compressed-image-transport, depthimage-to-laserscan turtlebot3-applications-msgs, turtlebot3-autorace, cartographer-ros, turtlebot3, turtlebot3-applications which were not ported to foxy yet', '', d)}" SKIP_RECIPE[ros-image-turtlebot3-core] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'turtlebot3', 'turtlebot3: Rdepends on packagegroup-ros-turtlebot3-core, packagegroup-ros-turtlebot3-extended which rdepend turtlebot3-bringup,hls-lfcd-lds-driver,turtlebot3-msgs,ros-base,slam-karto, compressed-image-transport, depthimage-to-laserscan turtlebot3-applications-msgs, turtlebot3-autorace, cartographer-ros, turtlebot3, turtlebot3-applications which were not ported to foxy yet', '', d)}" SKIP_RECIPE[rqt-action] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'pyqt5'], 'qt5: rdepends on rqt-gui-py which depends qt-gui which depends on qtbase; pyqt5: rdepends on rqt-gui-py which depends on qt-gui which depends on python3-pyqt5 which requires pyqt5', '', d)}" @@ -153,10 +138,10 @@ SKIP_RECIPE[rti-connext-dds-cmake-module] ?= "${@bb.utils.contains('ROS_WORLD_SK SKIP_RECIPE[run-move-group] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'pyqt5', 'opengl', 'x11'], 'qt5: rdepends on moveit-resources-panda-moveit-config which rdepends on joint-state-publisher-gui which depends on python-qt-binding which depends on qtbase; pyqt5: rdepends on moveit-resources-panda-moveit-config which rdepends on joint-state-publisher-gui which depends on python-qt-binding which depends on python3-pyqt5 which requires pyqt5; opengl: depends on rviz2 which depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz2 which depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" SKIP_RECIPE[run-moveit-cpp] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'pyqt5', 'opengl', 'x11'], 'qt5: rdepends on moveit-resources-panda-moveit-config which rdepends on joint-state-publisher-gui which depends on python-qt-binding which depends on qtbase; pyqt5: rdepends on moveit-resources-panda-moveit-config which rdepends on joint-state-publisher-gui which depends on python-qt-binding which depends on python3-pyqt5 which requires pyqt5; opengl: depends on rviz2 which depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz2 which depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" SKIP_RECIPE[run-ompl-constrained-planning] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['mongodb', 'mongodb-legacy-cxx-driver'], 'mongodb: rdepends on warehouse-ros-mongo which requires mongodb; mongodb-legacy-cxx-driver: rdepends on warehouse-ros-mongo which requires unavailable mongo-cxx-driver-legacy', '', d)}" -SKIP_RECIPE[rviz2] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'opengl', 'x11', 'ignition'], 'qt5: depends on qtbase; opengl: depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES; ignition: depends on rviz-default-plugins which depends on unavailable ROS_UNRESOLVED_DEP-ignition-math6', '', d)}" +SKIP_RECIPE[rviz2] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'opengl', 'x11'], 'qt5: depends on qtbase; opengl: depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" SKIP_RECIPE[rviz-common] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'opengl', 'x11'], 'qt5: depends on qtbase; opengl: depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" SKIP_RECIPE[rviz-ogre-vendor] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['opengl', 'x11'], 'opengl: depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" -SKIP_RECIPE[rviz-default-plugins] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'opengl', 'x11', 'ignition'], 'qt5: depends on qtbase; opengl: depends on rviz-common which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES; ignition: depends on unavailable ROS_UNRESOLVED_DEP-ignition-math6', '', d)}" +SKIP_RECIPE[rviz-default-plugins] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'opengl', 'x11'], 'qt5: depends on qtbase; opengl: depends on rviz-common which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" SKIP_RECIPE[rviz-imu-plugin] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5'], 'qt5: depends on qtbase', '', d)}" SKIP_RECIPE[rviz-rendering] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'opengl', 'x11'], 'qt5: depends on qtbase; opengl: depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" SKIP_RECIPE[rviz-rendering-tests] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'opengl', 'x11'], 'qt5: depends on qtbase; opengl: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" @@ -173,8 +158,8 @@ SKIP_RECIPE[turtlebot3-simulations] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP SKIP_RECIPE[turtlesim] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'qt5-widgets'], 'qt5: depends on qtbase; qt5-widgets: needs widgets enabled in qtbase PACKAGECONFIG', '', d)}" SKIP_RECIPE[turtle-tf2-cpp] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'qt5-widgets'], 'Requires turtlesim->qtbase which requires meta-qt5 to be included; qt5-widgets: needs widgets enabled in qtbase PACKAGECONFIG', '', d)}" SKIP_RECIPE[turtle-tf2-py] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'qt5-widgets'], 'Requires turtlesim->qtbase which requires meta-qt5 to be included; qt5-widgets: needs widgets enabled in qtbase PACKAGECONFIG', '', d)}" -SKIP_RECIPE[ur-description] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'opengl', 'x11', 'ignition'], 'qt5: depends on qtbase; opengl: depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES; ignition: depends on rviz2 which depends on rviz-default-plugins which depends on unavailable ROS_UNRESOLVED_DEP-ignition-math6', '', d)}" -SKIP_RECIPE[ur-robot-driver] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'opengl', 'x11', 'ignition'], 'qt5: depends on qtbase; opengl: depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES; ignition: depends on rviz2 which depends on rviz-default-plugins which depends on unavailable ROS_UNRESOLVED_DEP-ignition-math6', '', d)}" +SKIP_RECIPE[ur-description] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'opengl', 'x11'], 'qt5: depends on qtbase; opengl: depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" +SKIP_RECIPE[ur-robot-driver] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['qt5', 'opengl', 'x11'], 'qt5: depends on qtbase; opengl: depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES', '', d)}" SKIP_RECIPE[usb-cam] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['ffmpeg', 'x264'], 'ffmpeg: Depends on ffmpeg which requires commercial license; x264: Depends on ffmpeg which depends on x264 which requires commercial license', '', d)}" SKIP_RECIPE[warehouse-ros-mongo] ?= "${@bb.utils.contains_any('ROS_WORLD_SKIP_GROUPS', ['mongodb', 'mongodb-legacy-cxx-driver'], 'Requires mongodb; mongodb-legacy-cxx-driver: requires unavailable mongo-cxx-driver-legacy', '', d)}" SKIP_RECIPE[webots-ros2-abb] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'webots-python-modules', 'webots-python-modules: rdepends on webots-ros2-core which requires python-transforms3d-pip which is not available in OE yet', '', d)}" From 8779bf55b87489b15f317c476285eb5274e5c87d Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 17:32:48 -0700 Subject: [PATCH 105/152] {rolling} ros-distro.inc: Add missing ROS_UNRESOLVED_DEP entries This is a temporary measure until the changes can be made in the rosdep YAML files in the ros/rosdistro git repo. Signed-off-by: Rob Woolley --- .../ros-distro/include/rolling/ros-distro.inc | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro.inc b/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro.inc index 09c17f2005..bdbb18e229 100644 --- a/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro.inc +++ b/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro.inc @@ -386,3 +386,55 @@ ROS_UNRESOLVED_DEP-libgdal-dev = "gdal" ROS_UNRESOLVED_DEP-python3-smbus = "python3-smbus" ROS_UNRESOLVED_DEP-libxkbcommon-dev = "libxkbcommon" ROS_UNRESOLVED_DEP-libavdevice-dev = "ffmpeg" + +ROS_UNRESOLVED_DEP-glslc = "shaderc" +ROS_UNRESOLVED_DEP-libshaderc-dev = "shaderc" +ROS_UNRESOLVED_DEP-libgts = "gts" +ROS_UNRESOLVED_DEP-liblz4 = "lz4" +ROS_UNRESOLVED_DEP-liblz4-dev = "lz4" +ROS_UNRESOLVED_DEP-qml-module-qtquick-extras = "qtdeclarative" +ROS_UNRESOLVED_DEP-qml-module-qtcharts = "qtcharts" +ROS_UNRESOLVED_DEP-qml-module-qtgraphicaleffects = "qtgraphicaleffects" +ROS_UNRESOLVED_DEP-qml-module-qt-labs-folderlistmodel = "qtdeclarative" +ROS_UNRESOLVED_DEP-qml-module-qt-labs-platform = "qtdeclarative" +ROS_UNRESOLVED_DEP-qml-module-qt-labs-settings = "qtdeclarative" +ROS_UNRESOLVED_DEP-qml-module-qtlocation = "qtlocation" +ROS_UNRESOLVED_DEP-qml-module-qtpositioning = "qtlocation" +ROS_UNRESOLVED_DEP-qml-module-qtquick2 = "qtdeclarative" +ROS_UNRESOLVED_DEP-qml-module-qtquick-controls = "qtquickcontrols" +ROS_UNRESOLVED_DEP-qml-module-qtquick-controls2 = "qtquickcontrols2" +ROS_UNRESOLVED_DEP-qml-module-qtquick-dialogs = "qtdeclarative" +ROS_UNRESOLVED_DEP-qml-module-qtquick-layouts = "qtdeclarative" +ROS_UNRESOLVED_DEP-qml-module-qtquick-templates2 = "qtdeclarative" +ROS_UNRESOLVED_DEP-qml-module-qtquick-window2 = "qtdeclarative" +ROS_UNRESOLVED_DEP-ruby = "ruby" +ROS_UNRESOLVED_DEP-zziplib = "zziplib" +ROS_UNRESOLVED_DEP-libnlopt-dev = "nlopt" +ROS_UNRESOLVED_DEP-libnlopt-cxx-dev = "nlopt" +ROS_UNRESOLVED_DEP-rapidjson-dev = "rapidjson" +ROS_UNRESOLVED_DEP-libwebsockets = "libwebsockets" +ROS_UNRESOLVED_DEP-qtquickcontrols2-5-dev = "qtquickcontrols2" +ROS_UNRESOLVED_DEP-qtquickcontrols2-5 = "qtquickcontrols2" +ROS_UNRESOLVED_DEP-libfreeimage = "freeimage" +ROS_UNRESOLVED_DEP-libfreeimage-dev = "freeimage" + +ROS_UNRESOLVED_DEP-libxcb-randr0-dev = "libxcb" +ROS_UNRESOLVED_DEP-glslang-dev = "glslang" +ROS_UNRESOLVED_DEP-libx11-xcb-dev = "libxcb" +ROS_UNRESOLVED_DEP-libwebsockets-dev = "libwebsockets" +ROS_UNRESOLVED_DEP-libcurl-dev = "curl" +ROS_UNRESOLVED_DEP-libzip-dev = "libzip" +ROS_UNRESOLVED_DEP-ignition-math6 = "ignition-math6" + +ROS_UNRESOLVED_DEP-ros-ign = "ros-gz" +ROS_UNRESOLVED_DEP-ros-ign-gazebo = "ros-gz-sim" +ROS_UNRESOLVED_DEP-ros-ign-gazebo-demos = "ros-gz-sim-demos" +ROS_UNRESOLVED_DEP-ros-ign-image = "ros-gz-image" +ROS_UNRESOLVED_DEP-ros-ign-interfaces = "ros-gz-interfaces" +ROS_UNRESOLVED_DEP-ros-ign-bridge = "ros-gz-bridge" + +ROS_UNRESOLVED_DEP-python3-deprecated = "python3-deprecated" +ROS_UNRESOLVED_DEP-coinor-libipopt-dev = "ipopt" + +ROS_UNRESOLVED_DEP-python3-semver = "python3-semver" +ROS_UNRESOLVED_DEP-libusb = "libusb-compat" From 2c69e713071f0f6c80d37e2204efba4c9d1661d9 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sun, 7 Jul 2024 18:55:14 -0700 Subject: [PATCH 106/152] {rolling} Update ros-distro.inc Signed-off-by: Rob Woolley --- .../conf/ros-distro/include/rolling/ros-distro.inc | 7 ------- 1 file changed, 7 deletions(-) diff --git a/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro.inc b/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro.inc index bdbb18e229..13a8a59426 100644 --- a/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro.inc +++ b/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-distro.inc @@ -102,8 +102,6 @@ ROS_WORLD_SKIP_GROUPS += "opensplice" ROS_WORLD_SKIP_GROUPS += "gurumdds" # 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 @@ -118,8 +116,6 @@ ROS_WORLD_SKIP_GROUPS += "libspnav" ROS_WORLD_SKIP_GROUPS += "libopen3d" # recipes depends on aws ROS_WORLD_SKIP_GROUPS += "aws" -# recipes depends on mrpt2 -ROS_WORLD_SKIP_GROUPS += "mrpt2" # recipes depending on 'x11' in DISTRO_FEATURES ROS_WORLD_SKIP_GROUPS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'x11', d)}" @@ -145,9 +141,6 @@ ROS_WORLD_SKIP_GROUPS += "gazebo" # recipes depending on libqglviewer (https://packages.debian.org/source/stretch/libqglviewer https://packages.debian.org/stretch/libqglviewer2-qt5) ROS_WORLD_SKIP_GROUPS += "libqglviewer" -# recipes depending on ignition-* (ROS_UNRESOLVED_DEP-ignition-gazebo5, ROS_UNRESOLVED_DEP-ignition-math6, ROS_UNRESOLVED_DEP-ignition-msgs7, ROS_UNRESOLVED_DEP-ignition-transport10, ROS_UNRESOLVED_DEP-ignition-rendering5, ROS_UNRESOLVED_DEP-ignition-common4, ROS_UNRESOLVED_DEP-ignition-gui5) -ROS_WORLD_SKIP_GROUPS += "ignition" - # recipes depending on legacy mongo-cxx-driver (https://packages.debian.org/source/stretch/mongo-cxx-driver-legacy) # the mongodb recipe in meta-oe installs just the binaries mongoc, mongos, install_compass # the header files searched by mongo-store, warehouse-ros-mongo cmake files cmake/FindMongoClient.cmake and cmake/FindMongoDB.cmake From dd90b7c1577cd58d2b00e382947480e4408bbce3 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Wed, 6 Nov 2024 07:56:41 -0800 Subject: [PATCH 107/152] ROS_OE_RELEASE_SERIES: switch from scarthgap to styhead and walnascar Signed-off-by: Rob Woolley --- meta-ros-common/conf/layer.conf | 2 +- meta-ros1-noetic/conf/layer.conf | 2 +- meta-ros1/conf/layer.conf | 2 +- meta-ros2-humble/conf/layer.conf | 2 +- meta-ros2-iron/conf/layer.conf | 2 +- meta-ros2-jazzy/conf/layer.conf | 2 +- meta-ros2-rolling/conf/layer.conf | 2 +- meta-ros2/conf/layer.conf | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/meta-ros-common/conf/layer.conf b/meta-ros-common/conf/layer.conf index 7c8b127bb6..df9dcc406b 100644 --- a/meta-ros-common/conf/layer.conf +++ b/meta-ros-common/conf/layer.conf @@ -22,6 +22,6 @@ LAYERDEPENDS_ros-common-layer = " \ openembedded-layer \ " -LAYERSERIES_COMPAT_ros-common-layer = "scarthgap" +LAYERSERIES_COMPAT_ros-common-layer = "walnascar styhead" require conf/ros-distro/ros-distro.conf diff --git a/meta-ros1-noetic/conf/layer.conf b/meta-ros1-noetic/conf/layer.conf index dea2e6ef0e..c69554a0b1 100644 --- a/meta-ros1-noetic/conf/layer.conf +++ b/meta-ros1-noetic/conf/layer.conf @@ -21,6 +21,6 @@ LAYERDEPENDS_ros1-noetic-layer = " \ ros1-layer \ " -LAYERSERIES_COMPAT_ros1-noetic-layer = "scarthgap" +LAYERSERIES_COMPAT_ros1-noetic-layer = "walnascar styhead" require conf/ros-distro/include/noetic/ros-distro.inc diff --git a/meta-ros1/conf/layer.conf b/meta-ros1/conf/layer.conf index ef30d53593..350daf70c9 100644 --- a/meta-ros1/conf/layer.conf +++ b/meta-ros1/conf/layer.conf @@ -20,6 +20,6 @@ LAYERDEPENDS_ros1-layer = " \ ros-common-layer \ " -LAYERSERIES_COMPAT_ros1-layer = "scarthgap" +LAYERSERIES_COMPAT_ros1-layer = "walnascar styhead" ROS_OE_DISTRO_NAME ?= "Robot Operating System (ROS 1)" diff --git a/meta-ros2-humble/conf/layer.conf b/meta-ros2-humble/conf/layer.conf index 7b9b8e60b1..9c55d92d7b 100644 --- a/meta-ros2-humble/conf/layer.conf +++ b/meta-ros2-humble/conf/layer.conf @@ -21,6 +21,6 @@ LAYERDEPENDS_ros2-humble-layer = " \ ros2-layer \ " -LAYERSERIES_COMPAT_ros2-humble-layer = "scarthgap" +LAYERSERIES_COMPAT_ros2-humble-layer = "walnascar styhead" require conf/ros-distro/include/humble/ros-distro.inc diff --git a/meta-ros2-iron/conf/layer.conf b/meta-ros2-iron/conf/layer.conf index ab0c6707f9..195593bb1a 100644 --- a/meta-ros2-iron/conf/layer.conf +++ b/meta-ros2-iron/conf/layer.conf @@ -21,6 +21,6 @@ LAYERDEPENDS_ros2-iron-layer = " \ ros2-layer \ " -LAYERSERIES_COMPAT_ros2-iron-layer = "scarthgap" +LAYERSERIES_COMPAT_ros2-iron-layer = "walnascar styhead" require conf/ros-distro/include/iron/ros-distro.inc diff --git a/meta-ros2-jazzy/conf/layer.conf b/meta-ros2-jazzy/conf/layer.conf index 37f2d6ee50..1c5e4dd4fb 100644 --- a/meta-ros2-jazzy/conf/layer.conf +++ b/meta-ros2-jazzy/conf/layer.conf @@ -21,6 +21,6 @@ LAYERDEPENDS_ros2-jazzy-layer = " \ ros2-layer \ " -LAYERSERIES_COMPAT_ros2-jazzy-layer = "scarthgap" +LAYERSERIES_COMPAT_ros2-jazzy-layer = "walnascar styhead" require conf/ros-distro/include/jazzy/ros-distro.inc diff --git a/meta-ros2-rolling/conf/layer.conf b/meta-ros2-rolling/conf/layer.conf index d19c079c9e..7e4cc1faa3 100644 --- a/meta-ros2-rolling/conf/layer.conf +++ b/meta-ros2-rolling/conf/layer.conf @@ -21,6 +21,6 @@ LAYERDEPENDS_ros2-rolling-layer = " \ ros2-layer \ " -LAYERSERIES_COMPAT_ros2-rolling-layer = "scarthgap" +LAYERSERIES_COMPAT_ros2-rolling-layer = "walnascar styhead" require conf/ros-distro/include/rolling/ros-distro.inc diff --git a/meta-ros2/conf/layer.conf b/meta-ros2/conf/layer.conf index aa2c26ffb1..2416377220 100644 --- a/meta-ros2/conf/layer.conf +++ b/meta-ros2/conf/layer.conf @@ -20,6 +20,6 @@ LAYERDEPENDS_ros2-layer = " \ ros-common-layer \ " -LAYERSERIES_COMPAT_ros2-layer = "scarthgap" +LAYERSERIES_COMPAT_ros2-layer = "walnascar styhead" ROS_OE_DISTRO_NAME ?= "Robot Operating System 2 (ROS 2)" From dc09dd39ab5772cc98fcca1b976b39f56cc5bd7b Mon Sep 17 00:00:00 2001 From: Trevor Woerner Date: Wed, 6 Nov 2024 07:57:35 -0800 Subject: [PATCH 108/152] {humble} sick-scan-xd: fix license string The license string in the upstream project's xml is not a standard license string. Replace with one that will be recognized by bitbake. Signed-off-by: Trevor Woerner --- .../recipes-bbappends/sick-scan/sick-scan-xd_3.2.5-1.bbappend | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 meta-ros2-humble/recipes-bbappends/sick-scan/sick-scan-xd_3.2.5-1.bbappend diff --git a/meta-ros2-humble/recipes-bbappends/sick-scan/sick-scan-xd_3.2.5-1.bbappend b/meta-ros2-humble/recipes-bbappends/sick-scan/sick-scan-xd_3.2.5-1.bbappend new file mode 100644 index 0000000000..6e4d61cb89 --- /dev/null +++ b/meta-ros2-humble/recipes-bbappends/sick-scan/sick-scan-xd_3.2.5-1.bbappend @@ -0,0 +1,4 @@ +# Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved. + +_LICENSE := "${LICENSE}" +LICENSE = "${@'${_LICENSE}'.replace('Apache-License,-Version-2.0,-see-"http-www.apache.org-licenses-LICENSE-2.0"', 'Apache-2.0')}" From 813bbee08d0f079ad2930ec861b16d6325d3633c Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Wed, 6 Nov 2024 07:58:09 -0800 Subject: [PATCH 109/152] {humble} off-highway-can: Fix syntax of LICENSE variable Signed-off-by: Rob Woolley --- .../off-highway-can_0.6.2-1.bbappend | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 meta-ros2-humble/recipes-bbappends/off-highway-sensor-drivers/off-highway-can_0.6.2-1.bbappend diff --git a/meta-ros2-humble/recipes-bbappends/off-highway-sensor-drivers/off-highway-can_0.6.2-1.bbappend b/meta-ros2-humble/recipes-bbappends/off-highway-sensor-drivers/off-highway-can_0.6.2-1.bbappend new file mode 100644 index 0000000000..10da6a76f0 --- /dev/null +++ b/meta-ros2-humble/recipes-bbappends/off-highway-sensor-drivers/off-highway-can_0.6.2-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +LICENSE = "Apache-2.0 & MIT" From 16a05d4d4aabb3abb35a709498fa00736360133c Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Wed, 6 Nov 2024 11:18:16 -0800 Subject: [PATCH 110/152] {humble} ros-workspace: Remove host path from local_setup.sh Signed-off-by: Rob Woolley --- .../ros-workspace/ros-workspace_1.0.2-2.bbappend | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta-ros2-humble/recipes-bbappends/ros-workspace/ros-workspace_1.0.2-2.bbappend b/meta-ros2-humble/recipes-bbappends/ros-workspace/ros-workspace_1.0.2-2.bbappend index 8ac82ad127..bad7e40dd5 100644 --- a/meta-ros2-humble/recipes-bbappends/ros-workspace/ros-workspace_1.0.2-2.bbappend +++ b/meta-ros2-humble/recipes-bbappends/ros-workspace/ros-workspace_1.0.2-2.bbappend @@ -1,4 +1,5 @@ # Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. ROS_BUILD_DEPENDS:remove = "ament-cmake-core" ROS_BUILD_DEPENDS:remove = "ament-package" @@ -12,3 +13,7 @@ ROS_BUILDTOOL_DEPENDS += " \ export STAGING_DIR_NATIVE FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" SRC_URI:append = " file://0001-Set-cross-compile-prefix-to-CMAKE_INSTALL_PREFIX.patch" + +do_install:append() { + sed -i -e 's,${PYTHON},${bindir}/env python${ROS_PYTHON_VERSION},' ${D}${ros_prefix}/local_setup.sh +} From e84a575b48d41d7203480d7b220431a8bd89c9f4 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Wed, 6 Nov 2024 14:53:20 -0800 Subject: [PATCH 111/152] {humble} fastrtps: Link tinyxml2 library by name Use tinyxml2 package name instead of library path to link libraries. Otherwise, a reference to the host build path gets implanted in the CMake files installed on the target. Signed-off-by: Rob Woolley --- ...0001-CMakeLists-use-tinyxml2-by-name.patch | 20 +++++++++++++++++++ .../fastrtps/fastrtps_2.6.8-1.bbappend | 4 ++++ 2 files changed, 24 insertions(+) create mode 100644 meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch create mode 100644 meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps_2.6.8-1.bbappend diff --git a/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch b/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch new file mode 100644 index 0000000000..d05b178f17 --- /dev/null +++ b/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch @@ -0,0 +1,20 @@ +Use tinyxml2 package name instead of library path to link libraries. + +Otherwise, a reference to the host build path gets implanted in the CMake +files installed on the target. + +Upstream-Status: Inappropriate [oe specific] + +Index: git/src/cpp/CMakeLists.txt +=================================================================== +--- git.orig/src/cpp/CMakeLists.txt ++++ git/src/cpp/CMakeLists.txt +@@ -482,7 +482,7 @@ endif() + # Link library to external libraries. + target_link_libraries(${PROJECT_NAME} ${PRIVACY} fastcdr foonathan_memory + ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} +- ${TINYXML2_LIBRARY} ++ tinyxml2 + $<$:OpenSSL::SSL$OpenSSL::Crypto$<$:$crypt32.lib>> + $<$:iphlpapi$Shlwapi> + ${THIRDPARTY_BOOST_LINK_LIBS} diff --git a/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps_2.6.8-1.bbappend b/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps_2.6.8-1.bbappend new file mode 100644 index 0000000000..991e30694a --- /dev/null +++ b/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps_2.6.8-1.bbappend @@ -0,0 +1,4 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://0001-CMakeLists-use-tinyxml2-by-name.patch" From 4061ecd3327c6e6680254777a4f623efdcf412b9 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Thu, 7 Nov 2024 03:29:47 -0800 Subject: [PATCH 112/152] {humble} libyaml-vendor: Export dependencies Add ament_export_dependencies back in so that downstream packages can link against libyaml by name instead of by absolute path. This fixes do_package_qa warnings seen in rcl-yaml-param-parser when host build paths were found in generated CMake files. Signed-off-by: Rob Woolley --- ...ts.txt-use-platform-libyaml-when-available-i.patch | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/meta-ros2-humble/recipes-bbappends/libyaml-vendor/libyaml-vendor/0002-CMakeLists.txt-use-platform-libyaml-when-available-i.patch b/meta-ros2-humble/recipes-bbappends/libyaml-vendor/libyaml-vendor/0002-CMakeLists.txt-use-platform-libyaml-when-available-i.patch index 459c2f54b7..4e04055f3b 100644 --- a/meta-ros2-humble/recipes-bbappends/libyaml-vendor/libyaml-vendor/0002-CMakeLists.txt-use-platform-libyaml-when-available-i.patch +++ b/meta-ros2-humble/recipes-bbappends/libyaml-vendor/libyaml-vendor/0002-CMakeLists.txt-use-platform-libyaml-when-available-i.patch @@ -1,3 +1,10 @@ +Updated to reintroduce ament_export_dependencies(yaml). + +This was necessary to avoid host paths leaking into generated CMake +files in packages that use libyaml-vendor. (eg. rcl-yaml-param-parser) + +Signed-off-by: Rob Woolley + From cb4604bb0cbc3eb2c9b65fbe451213ebf624f7e3 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Thu, 9 Jul 2020 01:34:26 -0700 @@ -15,7 +22,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt index 86446c1..c4d5ec9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -82,11 +82,18 @@ macro(build_libyaml) +@@ -82,11 +82,19 @@ macro(build_libyaml) set(yaml_LIBRARIES yaml) endmacro() @@ -33,7 +40,7 @@ index 86446c1..c4d5ec9 100644 +endif() ament_export_libraries(yaml) --ament_export_dependencies(yaml) + ament_export_dependencies(yaml) if(BUILD_TESTING) find_package(ament_lint_auto REQUIRED) From 673147ad20adb0aafbc941f8be9d2e9a1afcff69 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Thu, 7 Nov 2024 04:12:00 -0800 Subject: [PATCH 113/152] {iron} ros-workspace: Remove host path from local_setup.sh Signed-off-by: Rob Woolley --- .../ros-workspace/ros-workspace_1.0.3-4.bbappend | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta-ros2-iron/recipes-bbappends/ros-workspace/ros-workspace_1.0.3-4.bbappend b/meta-ros2-iron/recipes-bbappends/ros-workspace/ros-workspace_1.0.3-4.bbappend index 8ac82ad127..bad7e40dd5 100644 --- a/meta-ros2-iron/recipes-bbappends/ros-workspace/ros-workspace_1.0.3-4.bbappend +++ b/meta-ros2-iron/recipes-bbappends/ros-workspace/ros-workspace_1.0.3-4.bbappend @@ -1,4 +1,5 @@ # Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. ROS_BUILD_DEPENDS:remove = "ament-cmake-core" ROS_BUILD_DEPENDS:remove = "ament-package" @@ -12,3 +13,7 @@ ROS_BUILDTOOL_DEPENDS += " \ export STAGING_DIR_NATIVE FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" SRC_URI:append = " file://0001-Set-cross-compile-prefix-to-CMAKE_INSTALL_PREFIX.patch" + +do_install:append() { + sed -i -e 's,${PYTHON},${bindir}/env python${ROS_PYTHON_VERSION},' ${D}${ros_prefix}/local_setup.sh +} From 54a5d08fb494a792e47d14ce21a281b1cbb70abb Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Thu, 7 Nov 2024 04:12:53 -0800 Subject: [PATCH 114/152] {iron} fastrtps: Link tinyxml2 library by name Use tinyxml2 package name instead of library path to link libraries. Otherwise, a reference to the host build path gets implanted in the CMake files installed on the target. Signed-off-by: Rob Woolley --- ...0001-CMakeLists-use-tinyxml2-by-name.patch | 20 +++++++++++++++++++ .../fastrtps/fastrtps_2.10.4-1.bbappend | 4 ++++ 2 files changed, 24 insertions(+) create mode 100644 meta-ros2-iron/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch create mode 100644 meta-ros2-iron/recipes-bbappends/fastrtps/fastrtps_2.10.4-1.bbappend diff --git a/meta-ros2-iron/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch b/meta-ros2-iron/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch new file mode 100644 index 0000000000..d05b178f17 --- /dev/null +++ b/meta-ros2-iron/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch @@ -0,0 +1,20 @@ +Use tinyxml2 package name instead of library path to link libraries. + +Otherwise, a reference to the host build path gets implanted in the CMake +files installed on the target. + +Upstream-Status: Inappropriate [oe specific] + +Index: git/src/cpp/CMakeLists.txt +=================================================================== +--- git.orig/src/cpp/CMakeLists.txt ++++ git/src/cpp/CMakeLists.txt +@@ -482,7 +482,7 @@ endif() + # Link library to external libraries. + target_link_libraries(${PROJECT_NAME} ${PRIVACY} fastcdr foonathan_memory + ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} +- ${TINYXML2_LIBRARY} ++ tinyxml2 + $<$:OpenSSL::SSL$OpenSSL::Crypto$<$:$crypt32.lib>> + $<$:iphlpapi$Shlwapi> + ${THIRDPARTY_BOOST_LINK_LIBS} diff --git a/meta-ros2-iron/recipes-bbappends/fastrtps/fastrtps_2.10.4-1.bbappend b/meta-ros2-iron/recipes-bbappends/fastrtps/fastrtps_2.10.4-1.bbappend new file mode 100644 index 0000000000..991e30694a --- /dev/null +++ b/meta-ros2-iron/recipes-bbappends/fastrtps/fastrtps_2.10.4-1.bbappend @@ -0,0 +1,4 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://0001-CMakeLists-use-tinyxml2-by-name.patch" From fe1c425b6a748518a6966240b44b9317f23f6654 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Thu, 7 Nov 2024 04:12:00 -0800 Subject: [PATCH 115/152] {jazzy} ros-workspace: Remove host path from local_setup.sh Signed-off-by: Rob Woolley --- .../ros-workspace/ros-workspace_1.0.3-6.bbappend | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta-ros2-jazzy/recipes-bbappends/ros-workspace/ros-workspace_1.0.3-6.bbappend b/meta-ros2-jazzy/recipes-bbappends/ros-workspace/ros-workspace_1.0.3-6.bbappend index 8ac82ad127..bad7e40dd5 100644 --- a/meta-ros2-jazzy/recipes-bbappends/ros-workspace/ros-workspace_1.0.3-6.bbappend +++ b/meta-ros2-jazzy/recipes-bbappends/ros-workspace/ros-workspace_1.0.3-6.bbappend @@ -1,4 +1,5 @@ # Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. ROS_BUILD_DEPENDS:remove = "ament-cmake-core" ROS_BUILD_DEPENDS:remove = "ament-package" @@ -12,3 +13,7 @@ ROS_BUILDTOOL_DEPENDS += " \ export STAGING_DIR_NATIVE FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" SRC_URI:append = " file://0001-Set-cross-compile-prefix-to-CMAKE_INSTALL_PREFIX.patch" + +do_install:append() { + sed -i -e 's,${PYTHON},${bindir}/env python${ROS_PYTHON_VERSION},' ${D}${ros_prefix}/local_setup.sh +} From b7c64d58bf6acc87cbd157b9c600946138924349 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Thu, 7 Nov 2024 04:48:20 -0800 Subject: [PATCH 116/152] {jazzy} fastrtps: Link tinyxml2 library by name Use tinyxml2 package name instead of library path to link libraries. Otherwise, a reference to the host build path gets implanted in the CMake files installed on the target. Signed-off-by: Rob Woolley --- ...0001-CMakeLists-use-tinyxml2-by-name.patch | 20 +++++++++++++++++++ .../fastrtps/fastrtps_2.14.0-2.bbappend | 4 ++++ 2 files changed, 24 insertions(+) create mode 100644 meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch create mode 100644 meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps_2.14.0-2.bbappend diff --git a/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch b/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch new file mode 100644 index 0000000000..d05b178f17 --- /dev/null +++ b/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch @@ -0,0 +1,20 @@ +Use tinyxml2 package name instead of library path to link libraries. + +Otherwise, a reference to the host build path gets implanted in the CMake +files installed on the target. + +Upstream-Status: Inappropriate [oe specific] + +Index: git/src/cpp/CMakeLists.txt +=================================================================== +--- git.orig/src/cpp/CMakeLists.txt ++++ git/src/cpp/CMakeLists.txt +@@ -482,7 +482,7 @@ endif() + # Link library to external libraries. + target_link_libraries(${PROJECT_NAME} ${PRIVACY} fastcdr foonathan_memory + ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} +- ${TINYXML2_LIBRARY} ++ tinyxml2 + $<$:OpenSSL::SSL$OpenSSL::Crypto$<$:$crypt32.lib>> + $<$:iphlpapi$Shlwapi> + ${THIRDPARTY_BOOST_LINK_LIBS} diff --git a/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps_2.14.0-2.bbappend b/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps_2.14.0-2.bbappend new file mode 100644 index 0000000000..991e30694a --- /dev/null +++ b/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps_2.14.0-2.bbappend @@ -0,0 +1,4 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://0001-CMakeLists-use-tinyxml2-by-name.patch" From e9387d9fdc297d25136e34905a5ca8551f28199a Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Thu, 7 Nov 2024 04:12:00 -0800 Subject: [PATCH 117/152] {rolling} ros-workspace: Remove host path from local_setup.sh Signed-off-by: Rob Woolley --- .../ros-workspace/ros-workspace_1.0.3-5.bbappend | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta-ros2-rolling/recipes-bbappends/ros-workspace/ros-workspace_1.0.3-5.bbappend b/meta-ros2-rolling/recipes-bbappends/ros-workspace/ros-workspace_1.0.3-5.bbappend index 8ac82ad127..bad7e40dd5 100644 --- a/meta-ros2-rolling/recipes-bbappends/ros-workspace/ros-workspace_1.0.3-5.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/ros-workspace/ros-workspace_1.0.3-5.bbappend @@ -1,4 +1,5 @@ # Copyright (c) 2019 LG Electronics, Inc. +# Copyright (c) 2024 Wind River Systems, Inc. ROS_BUILD_DEPENDS:remove = "ament-cmake-core" ROS_BUILD_DEPENDS:remove = "ament-package" @@ -12,3 +13,7 @@ ROS_BUILDTOOL_DEPENDS += " \ export STAGING_DIR_NATIVE FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" SRC_URI:append = " file://0001-Set-cross-compile-prefix-to-CMAKE_INSTALL_PREFIX.patch" + +do_install:append() { + sed -i -e 's,${PYTHON},${bindir}/env python${ROS_PYTHON_VERSION},' ${D}${ros_prefix}/local_setup.sh +} From 63a95eb69c7c844acaecf2073819c796b0d84b6e Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Thu, 7 Nov 2024 04:12:53 -0800 Subject: [PATCH 118/152] {rolling} fastrtps: Link tinyxml2 library by name Use tinyxml2 package name instead of library path to link libraries. Otherwise, a reference to the host build path gets implanted in the CMake files installed on the target. Signed-off-by: Rob Woolley --- ...0001-CMakeLists-use-tinyxml2-by-name.patch | 20 +++++++++++++++++++ .../fastrtps/fastrtps_2.14.0-1.bbappend | 4 ++++ 2 files changed, 24 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps_2.14.0-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch b/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch new file mode 100644 index 0000000000..d05b178f17 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps/0001-CMakeLists-use-tinyxml2-by-name.patch @@ -0,0 +1,20 @@ +Use tinyxml2 package name instead of library path to link libraries. + +Otherwise, a reference to the host build path gets implanted in the CMake +files installed on the target. + +Upstream-Status: Inappropriate [oe specific] + +Index: git/src/cpp/CMakeLists.txt +=================================================================== +--- git.orig/src/cpp/CMakeLists.txt ++++ git/src/cpp/CMakeLists.txt +@@ -482,7 +482,7 @@ endif() + # Link library to external libraries. + target_link_libraries(${PROJECT_NAME} ${PRIVACY} fastcdr foonathan_memory + ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} +- ${TINYXML2_LIBRARY} ++ tinyxml2 + $<$:OpenSSL::SSL$OpenSSL::Crypto$<$:$crypt32.lib>> + $<$:iphlpapi$Shlwapi> + ${THIRDPARTY_BOOST_LINK_LIBS} diff --git a/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps_2.14.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps_2.14.0-1.bbappend new file mode 100644 index 0000000000..991e30694a --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps_2.14.0-1.bbappend @@ -0,0 +1,4 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://0001-CMakeLists-use-tinyxml2-by-name.patch" From a2d5e299e3e3bc7965e715567088d9f5094b2ccf Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Thu, 7 Nov 2024 05:46:21 -0800 Subject: [PATCH 119/152] {rolling} ament-cmake-python: Add Upstream-Status to patch Signed-off-by: Rob Woolley --- .../ament-cmake-python/use-DESTDIR-for-install.patch | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python/use-DESTDIR-for-install.patch b/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python/use-DESTDIR-for-install.patch index 96bc63c622..ec40d1d1b2 100644 --- a/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python/use-DESTDIR-for-install.patch +++ b/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python/use-DESTDIR-for-install.patch @@ -1,3 +1,9 @@ +Use DESTDIR as a prefix for the install directory + +Upstream-Status: Pending + +Signed-off-by: Rob Woolley + Index: git/cmake/ament_python_install_module.cmake =================================================================== --- git.orig/cmake/ament_python_install_module.cmake From 984cccb85b75c808a502e2c67d393ddffc9edc64 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Thu, 7 Nov 2024 11:55:57 -0800 Subject: [PATCH 120/152] {rolling} ament-cmake-python: Remove DESTDIR from prefix This previous fix is no longer required. Reverting the fix as it now causes a do_package_qa warning due to host contamination. Signed-off-by: Rob Woolley --- .../use-DESTDIR-for-install.patch | 32 ------------------- .../ament-cmake-python_2.6.0-1.bbappend | 4 --- 2 files changed, 36 deletions(-) delete mode 100644 meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python/use-DESTDIR-for-install.patch delete mode 100644 meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python_2.6.0-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python/use-DESTDIR-for-install.patch b/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python/use-DESTDIR-for-install.patch deleted file mode 100644 index ec40d1d1b2..0000000000 --- a/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python/use-DESTDIR-for-install.patch +++ /dev/null @@ -1,32 +0,0 @@ -Use DESTDIR as a prefix for the install directory - -Upstream-Status: Pending - -Signed-off-by: Rob Woolley - -Index: git/cmake/ament_python_install_module.cmake -=================================================================== ---- git.orig/cmake/ament_python_install_module.cmake -+++ git/cmake/ament_python_install_module.cmake -@@ -65,7 +65,7 @@ function(_ament_cmake_python_install_mod - "execute_process( - COMMAND - \"${python_interpreter}\" \"-m\" \"compileall\" -- \"${CMAKE_INSTALL_PREFIX}/${destination}/${module_file}\" -+ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${destination}/${module_file}\" - )" - ) - endif() -Index: git/cmake/ament_python_install_package.cmake -=================================================================== ---- git.orig/cmake/ament_python_install_package.cmake -+++ git/cmake/ament_python_install_package.cmake -@@ -195,7 +195,7 @@ setup( - "execute_process( - COMMAND - \"${python_interpreter_config}\" \"-m\" \"compileall\" -- \"${CMAKE_INSTALL_PREFIX}/${ARG_DESTINATION}/${package_name}\" -+ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${ARG_DESTINATION}/${package_name}\" - )" - ) - endif() diff --git a/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python_2.6.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python_2.6.0-1.bbappend deleted file mode 100644 index 61d5fbfe32..0000000000 --- a/meta-ros2-rolling/recipes-bbappends/ament-cmake/ament-cmake-python_2.6.0-1.bbappend +++ /dev/null @@ -1,4 +0,0 @@ -# Copyright (c) 2024 Wind River Systems, Inc. - -FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" -SRC_URI += "file://use-DESTDIR-for-install.patch" From 5ed3d56204a653d8dec7ab5f7850d7f4da64ff47 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Thu, 7 Nov 2024 12:04:51 -0800 Subject: [PATCH 121/152] {rolling} qt-gui-cpp: Conditionally inherit classes Bitbake will fail to execute if the meta-qt5 layer is not included and the inherited class files cannot be found. This change makes inheriting the classes conditional so that bitbake may parse the recipe. There is a SKIP_RECIPE in place that will avoid building the recipe if it is attempted without the meta-qt5 layer. Signed-off-by: Rob Woolley --- .../recipes-bbappends/qt-gui-core/qt-gui-cpp_2.8.0-1.bbappend | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta-ros2-rolling/recipes-bbappends/qt-gui-core/qt-gui-cpp_2.8.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/qt-gui-core/qt-gui-cpp_2.8.0-1.bbappend index 709dcf79ea..4a54378061 100644 --- a/meta-ros2-rolling/recipes-bbappends/qt-gui-core/qt-gui-cpp_2.8.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/qt-gui-core/qt-gui-cpp_2.8.0-1.bbappend @@ -3,9 +3,9 @@ LICENSE = "BSD-3-Clause" -inherit python3targetconfig +inherit ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'cmake_qt5', '', d)} -inherit qmake5_base +inherit python3native export SIP_PROJECT_INCLUDE_DIRS="${STAGING_DIR_TARGET}/${libdir}/${PYTHON_DIR}/site-packages/PyQt5/bindings" From 976b0603a1ce83cb27d542bd87f1a97380a4ada7 Mon Sep 17 00:00:00 2001 From: Matthias Schoepfer Date: Thu, 7 Nov 2024 12:42:39 -0800 Subject: [PATCH 122/152] {rolling} fix recipe append for shared-queues-vendor Updating the hash of the generated recipe. Unfortunately, a good solution (i.e. pulling the sources upstream & expect them to be in the same location) is a bit tricky. Signed-off-by: Matthias Schoepfer --- .../rosbag2/shared-queues-vendor_0.27.0-1.bbappend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor_0.27.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor_0.27.0-1.bbappend index 6f7d5f874c..f2ceedfdef 100644 --- a/meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor_0.27.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/rosbag2/shared-queues-vendor_0.27.0-1.bbappend @@ -9,7 +9,7 @@ SRC_URI = " \ file://0001-CMakeLists.txt-fetch-readerwriterqueue.patch \ git://github.com/cameron314/readerwriterqueue.git;protocol=https;name=singleproducerconsumer-upstream;destsuffix=git/singleproducerconsumer-upstream;branch=master \ " -SRCREV_release = "2d211121749c26978f1957f8fa0351c243bb2347" +SRCREV_release = "${SRCREV}" SRCREV_singleproducerconsumer-upstream = "ef7dfbf553288064347d51b8ac335f1ca489032a" SRCREV_FORMAT = "release_singleproducerconsumer-upstream" From c6327b8458fb2cf0e538ab26c5dacaaad36a4318 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Fri, 8 Nov 2024 12:04:31 -0800 Subject: [PATCH 123/152] meta-ros1: ros_catkin.bbclass: Remove host paths Catkin provides a template file (pkgConfig.cmake.in) with a section of code that is unreachable on the target. This section references CMAKE_CURRENT_SOURCE_DIR which causes host paths to leak into generated CMake files. This causes do_package_qa to fail on ROS packages that use catkin. We can safely remove the host paths when building for the target without making any changes to the end result Signed-off-by: Rob Woolley --- meta-ros1/classes/ros_catkin.bbclass | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/meta-ros1/classes/ros_catkin.bbclass b/meta-ros1/classes/ros_catkin.bbclass index 92788608bf..945437e8dd 100644 --- a/meta-ros1/classes/ros_catkin.bbclass +++ b/meta-ros1/classes/ros_catkin.bbclass @@ -55,3 +55,14 @@ do_install:append() { fi done } + +# catkin provides a template file (pkgConfig.cmake.in) with a section of code that is unreachable on the target +# this section references CMAKE_CURRENT_SOURCE_DIR which causes host paths to leak into generated CMake files +# this causes do_package_qa to fail on ROS packages that use catkin +# we can safely remove the host paths for the target recipes without making any changes to the end result +do_install:append:class-target() { + find ${D}${ros_prefix}/share -name '*cmake' -type f \ + | xargs --no-run-if-empty sed -i \ + -e 's@set(\([a-zA-Z0-9_]*\)_SOURCE_PREFIX ${WORKDIR}/git)@set(\1_SOURCE_PREFIX "")@g' \ + -e 's@set(\([a-zA-Z0-9_]*\)_DEVEL_PREFIX ${WORKDIR}/devel)@set(\1_DEVEL_PREFIX "")@g' +} From 879db380e43e503f5f0e79e1a31bcece797ba8c0 Mon Sep 17 00:00:00 2001 From: Trevor Woerner Date: Fri, 8 Nov 2024 12:08:38 -0800 Subject: [PATCH 124/152] {noetic} sick-scan-xd: fix license string The license string in the upstream project's xml is not a standard license string. Replace with one that will be recognized by bitbake. Signed-off-by: Trevor Woerner --- .../sick-scan-xd/sick-scan-xd_3.2.6-1.bbappend | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 meta-ros1-noetic/recipes-bbappends/sick-scan-xd/sick-scan-xd_3.2.6-1.bbappend diff --git a/meta-ros1-noetic/recipes-bbappends/sick-scan-xd/sick-scan-xd_3.2.6-1.bbappend b/meta-ros1-noetic/recipes-bbappends/sick-scan-xd/sick-scan-xd_3.2.6-1.bbappend new file mode 100644 index 0000000000..6e4d61cb89 --- /dev/null +++ b/meta-ros1-noetic/recipes-bbappends/sick-scan-xd/sick-scan-xd_3.2.6-1.bbappend @@ -0,0 +1,4 @@ +# Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved. + +_LICENSE := "${LICENSE}" +LICENSE = "${@'${_LICENSE}'.replace('Apache-License,-Version-2.0,-see-"http-www.apache.org-licenses-LICENSE-2.0"', 'Apache-2.0')}" From 87d37d57d4ab9793ed129cf73f6e346aa6bb218d Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Fri, 8 Nov 2024 12:10:19 -0800 Subject: [PATCH 125/152] {noetic} ur-description: Set LICENSE The value from package.xml breaks parsing the recipe with bitbake. The recipe generated by superflore uses ASCII single quotes instead of UTF-8 right single quotation mark. This causes bitbake to have syntax errors if we try to use string replacement like with the ROS 2 ur-description recipe. Signed-off-by: Rob Woolley --- .../universal-robots/ur-description_1.3.3-1.bbappend | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 meta-ros1-noetic/recipes-bbappends/universal-robots/ur-description_1.3.3-1.bbappend diff --git a/meta-ros1-noetic/recipes-bbappends/universal-robots/ur-description_1.3.3-1.bbappend b/meta-ros1-noetic/recipes-bbappends/universal-robots/ur-description_1.3.3-1.bbappend new file mode 100644 index 0000000000..c2ca72ac10 --- /dev/null +++ b/meta-ros1-noetic/recipes-bbappends/universal-robots/ur-description_1.3.3-1.bbappend @@ -0,0 +1,9 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +# The value from package.xml breaks parsing the recipe it with bitbake. +# +# The recipe generated by superflore uses ASCII single quotes instead +# of UTF-8 right single quotation mark. This causes bitbake to have +# syntax errors if we try to use string replacement like with the ROS 2 +# ur-description recipe. +LICENSE = "BSD-3-Clause & Universal-Robots-A-S" From 31fe10ee81fe25f5f8175429fcef3598896db5f8 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sat, 9 Nov 2024 03:41:57 -0800 Subject: [PATCH 126/152] {noetic} genmsg: Replace embedded source file path with destination path This corrects the embedded file path inserted into the pyc files. This is necessary to avoid build failures when host build paths are found in do_package_qa. Signed-off-by: Rob Woolley --- .../0001-fix-embedded-path-in-pyc-files.patch | 24 +++++++++++++++++++ .../genmsg/genmsg_0.6.0-1.bbappend | 5 +++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 meta-ros1-noetic/recipes-bbappends/genmsg/genmsg/0001-fix-embedded-path-in-pyc-files.patch diff --git a/meta-ros1-noetic/recipes-bbappends/genmsg/genmsg/0001-fix-embedded-path-in-pyc-files.patch b/meta-ros1-noetic/recipes-bbappends/genmsg/genmsg/0001-fix-embedded-path-in-pyc-files.patch new file mode 100644 index 0000000000..267b1e1daa --- /dev/null +++ b/meta-ros1-noetic/recipes-bbappends/genmsg/genmsg/0001-fix-embedded-path-in-pyc-files.patch @@ -0,0 +1,24 @@ +Replace embedded source file path with destination path + +This corrects the embedded file path inserted into the pyc files. + +This is necessary to avoid build failures when host build paths +are found in do_package_qa. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Rob Woolley + +diff --git a/cmake/pkg-genmsg.cmake.em b/cmake/pkg-genmsg.cmake.em +index eca9adc..a991870 100644 +--- a/cmake/pkg-genmsg.cmake.em ++++ b/cmake/pkg-genmsg.cmake.em +@@ -137,7 +137,7 @@ list(APPEND ${PROJECT_NAME}_EXPORTED_TARGETS @(pkg_name)_generate_messages_@(l[3 + + if(@(l)_INSTALL_DIR AND EXISTS ${CATKIN_DEVEL_PREFIX}/${@(l)_INSTALL_DIR}/@pkg_name) + @[if l == 'genpy']@ +- install(CODE "execute_process(COMMAND \"@(PYTHON_EXECUTABLE)\" -m compileall \"${CATKIN_DEVEL_PREFIX}/${@(l)_INSTALL_DIR}/@pkg_name\")") ++ install(CODE "execute_process(COMMAND \"@(PYTHON_EXECUTABLE)\" -m compileall -s \"${CATKIN_DEVEL_PREFIX}\" -p \"${CMAKE_INSTALL_PREFIX}\" \"${CATKIN_DEVEL_PREFIX}/${@(l)_INSTALL_DIR}/@pkg_name\")") + @[end if]@ + # install generated code + install( diff --git a/meta-ros1-noetic/recipes-bbappends/genmsg/genmsg_0.6.0-1.bbappend b/meta-ros1-noetic/recipes-bbappends/genmsg/genmsg_0.6.0-1.bbappend index cb3fbe7b04..f038acff55 100644 --- a/meta-ros1-noetic/recipes-bbappends/genmsg/genmsg_0.6.0-1.bbappend +++ b/meta-ros1-noetic/recipes-bbappends/genmsg/genmsg_0.6.0-1.bbappend @@ -1,6 +1,9 @@ # Copyright (c) 2020 LG Electronics, Inc. -# Copyright (c) 2023 Wind River Systems, Inc. +# Copyright (c) 2023-2024 Wind River Systems, Inc. LICENSE = "BSD-3-Clause" DEPENDS += "catkin" + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +SRC_URI += "file://0001-fix-embedded-path-in-pyc-files.patch" From 0037586da4f681a567f9578492933477c26edea1 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sat, 9 Nov 2024 03:42:51 -0800 Subject: [PATCH 127/152] meta-ros1: ros_catkin.bbclass: Add DEBUG_PREFIX_MAP Many packages (like roscpp, topic-tools, and *-msgs) fail in do_package_qa due to having embedded references to the host build paths in debug files. This is caused by the non-standard devel directory used by catkin builds. By adding these directories to the DEBUG_PREFIX_MAP variable in the ros_catkin class file we can ensure that all references are converted to their on-target equivalent. Signed-off-by: Rob Woolley --- meta-ros1/classes/ros_catkin.bbclass | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta-ros1/classes/ros_catkin.bbclass b/meta-ros1/classes/ros_catkin.bbclass index 945437e8dd..d493badbaf 100644 --- a/meta-ros1/classes/ros_catkin.bbclass +++ b/meta-ros1/classes/ros_catkin.bbclass @@ -43,6 +43,11 @@ EXTRA_OECMAKE:prepend = "\ -DCATKIN_ENABLE_TESTING=0 \ " +DEBUG_PREFIX_MAP += " \ + -fdebug-prefix-map=${WORKDIR}/devel=${ros_prefix} \ + -fmacro-prefix-map=${WORKDIR}/devel=${ros_prefix} \ +" + # similar to what distutil3.bbclass does here: # https://git.openembedded.org/openembedded-core/tree/meta/classes/distutils3.bbclass?h=hardknott#n46 # but catkin recipe don't inherit whole distutils3 (only distutils3-base) and also with ros_opt_prefix.bbclass From cd289dff95322eb3c02a9463be0bc825d895fadd Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Sat, 9 Nov 2024 03:57:22 -0800 Subject: [PATCH 128/152] README.md: Update table of supported combinations Add new Yocto releases Styhead and Walnascar and new ROS 2 Jazzy Distro. Signed-off-by: Rob Woolley --- README.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3e5943b39c..c8f4f800e3 100644 --- a/README.md +++ b/README.md @@ -13,16 +13,17 @@ Releases and ROS Distros. Releases and distros not shown in the table above can be presumed unsupported. -| Yocto Release | | ROS1 Distros | ROS 2 Distros | | -| --- | --- | --- | --- | --- | -| | *(Rolling)* | **Noetic** | **Humble (LTS)** | **Iron** | -| | | May 2025 | May 2027 | Nov 2024 | -| **Styhead (Dev)** | (Future) | **May 2025** | (Future) | **Nov 2024** | -| **Scarthgap (LTS)** | Apr 2028 | **May 2025** | **May 2027** | **Nov 2024** | -| Nanbield | ~~Apr 2024~~ | ~~Apr 2024~~ | ~~Apr 2024~~ | ~~Apr 2024~~ | -| Mickledore | ~~Nov 2023~~ | ~~Nov 2023~~ | Nov 2023 1 | ~~Nov 2023~~ | -| Langdale | ~~May 2023~~ | ~~May 2023~~ | ~~May 2023~~ | ~~May 2023~~ | -| **Kirkstone (LTS)** | Apr 2026 | **Apr 2024** | **Apr 2026** | **Nov 2024** | +| Yocto Release | | ROS1 Distros | ROS 2 Distros | | | +| --- | --- | --- | --- | --- | --- | +| | *(Rolling)* | **Noetic** | **Humble (LTS)** | **Iron** | *Jazzy* | +| | | May 2025 | May 2027 | Nov 2024 | May 2029 | +| **Walnascar (Dev)** | (Future) | **May 2025** | **May 2027** | **Nov 2024** | (Future) | +| **Styhead** | May 2025 | **May 2025** | **May 2025** | **Nov 2024** | **May 2025** | +| **Scarthgap (LTS)** | Apr 2028 | **May 2025** | **May 2027** | **Nov 2024** | **Apr 2028** | +| Nanbield | ~~Apr 2024~~ | ~~Apr 2024~~ | ~~Apr 2024~~ | ~~Apr 2024~~ | ~~Apr 2024~~ | +| Mickledore | ~~Nov 2023~~ | ~~Nov 2023~~ | Nov 2023 1 | ~~Nov 2023~~ | ~~Nov 2023~~ | +| Langdale | ~~May 2023~~ | ~~May 2023~~ | ~~May 2023~~ | ~~May 2023~~ | ~~May 2023~~ | +| **Kirkstone (LTS)** | Apr 2026 | **Apr 2024** | **Apr 2026** | **Nov 2024** | **Apr 2026** | From 5df4384dcba921487e8dd9180e7d93db80d94e1a Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Mon, 18 Nov 2024 07:35:43 -0800 Subject: [PATCH 129/152] {common} colcon: Update recipes to latest versions Signed-off-by: Rob Woolley --- ..._0.4.2.bb => python3-colcon-bash_0.5.0.bb} | 2 +- ...2.26.bb => python3-colcon-cmake_0.2.28.bb} | 2 +- ...python3-colcon-common-extensions_0.3.0.bb} | 2 +- ...-Remove-optional-pytest-dependencies.patch | 16 ++++++------ ...n-when-enitre-workspace-is-symlinked.patch | 25 ------------------- ...0.6.1.bb => python3-colcon-core_0.18.3.bb} | 7 +++--- ....5.bb => python3-colcon-defaults_0.2.8.bb} | 2 +- ....2.bb => python3-colcon-devtools_0.3.0.bb} | 2 +- ...b => python3-colcon-notification_0.3.0.bb} | 2 +- ....12.bb => python3-colcon-output_0.2.13.bb} | 2 +- ...thon3-colcon-package-information_0.4.0.bb} | 2 +- ...python3-colcon-parallel-executor_0.3.0.bb} | 2 +- ...> python3-colcon-python-setup-py_0.2.9.bb} | 2 +- ...> python3-colcon-recursive-crawl_0.2.3.bb} | 2 +- ..._0.3.21.bb => python3-colcon-ros_0.5.0.bb} | 2 +- 15 files changed, 23 insertions(+), 49 deletions(-) rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-bash_0.4.2.bb => python3-colcon-bash_0.5.0.bb} (78%) rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-cmake_0.2.26.bb => python3-colcon-cmake_0.2.28.bb} (81%) rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-common-extensions_0.2.1.bb => python3-colcon-common-extensions_0.3.0.bb} (92%) delete mode 100644 meta-ros-common/recipes-devtools/colcon/python3-colcon-core/0002-Fix-regression-when-enitre-workspace-is-symlinked.patch rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-core_0.6.1.bb => python3-colcon-core_0.18.3.bb} (70%) rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-defaults_0.2.5.bb => python3-colcon-defaults_0.2.8.bb} (80%) rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-devtools_0.2.2.bb => python3-colcon-devtools_0.3.0.bb} (80%) rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-notification_0.2.13.bb => python3-colcon-notification_0.3.0.bb} (83%) rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-output_0.2.12.bb => python3-colcon-output_0.2.13.bb} (79%) rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-package-information_0.3.3.bb => python3-colcon-package-information_0.4.0.bb} (78%) rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-parallel-executor_0.2.4.bb => python3-colcon-parallel-executor_0.3.0.bb} (78%) rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-python-setup-py_0.2.7.bb => python3-colcon-python-setup-py_0.2.9.bb} (81%) rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-recursive-crawl_0.2.1.bb => python3-colcon-recursive-crawl_0.2.3.bb} (78%) rename meta-ros-common/recipes-devtools/colcon/{python3-colcon-ros_0.3.21.bb => python3-colcon-ros_0.5.0.bb} (85%) diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-bash_0.4.2.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-bash_0.5.0.bb similarity index 78% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-bash_0.4.2.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-bash_0.5.0.bb index e15448e2e5..2b235a6f4e 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-bash_0.4.2.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-bash_0.5.0.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=21;endline=21;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI[sha256sum] = "86950ca62293b655ef8d655d2994d110321fff2fc6739c46a64f005a0cee1bdd" +SRC_URI[sha256sum] = "29a223a66828e18aad9b8db5087f7114e388601830091830ca17b095ada2cbac" inherit pypi setuptools3 diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-cmake_0.2.26.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-cmake_0.2.28.bb similarity index 81% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-cmake_0.2.26.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-cmake_0.2.28.bb index 3ba6016f7e..13d6499080 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-cmake_0.2.26.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-cmake_0.2.28.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI[sha256sum] = "5a227fe812766be5fc3895c821bf9190f571e8c25eb73962967310d6b524349f" +SRC_URI[sha256sum] = "5e910890148d9d3c7f82f5c0e97904478e0e0bf156b786729099ead73d6ec4f0" inherit pypi setuptools3 diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-common-extensions_0.2.1.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-common-extensions_0.3.0.bb similarity index 92% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-common-extensions_0.2.1.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-common-extensions_0.3.0.bb index 820c82231f..7237b2d8d1 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-common-extensions_0.2.1.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-common-extensions_0.3.0.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI[sha256sum] = "73af96598efc24748234d68c0f3a7419cb1e47a4c3c90f6b0d70bcffef034826" +SRC_URI[sha256sum] = "84408d13f8a46044851a7a4e686749940539d2b3d02e6752746cbbc9a89049ff" inherit pypi setuptools3 diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-core/0001-Remove-optional-pytest-dependencies.patch b/meta-ros-common/recipes-devtools/colcon/python3-colcon-core/0001-Remove-optional-pytest-dependencies.patch index 49a5be5122..e9cc20885d 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-core/0001-Remove-optional-pytest-dependencies.patch +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-core/0001-Remove-optional-pytest-dependencies.patch @@ -9,18 +9,18 @@ Upstream-Status: Pending setup.cfg | 4 ---- 1 file changed, 4 deletions(-) -diff --git a/setup.cfg b/setup.cfg -index 64b4562..09afd3c 100644 ---- a/setup.cfg -+++ b/setup.cfg -@@ -30,10 +30,6 @@ install_requires = - coloredlogs; sys_platform == 'win32' - distlib +Index: colcon-core-0.18.3/setup.cfg +=================================================================== +--- colcon-core-0.18.3.orig/setup.cfg ++++ colcon-core-0.18.3/setup.cfg +@@ -32,10 +32,6 @@ install_requires = EmPy + importlib-metadata; python_version < "3.8" + packaging - pytest - pytest-cov - pytest-repeat - pytest-rerunfailures setuptools>=30.3.0 + tomli>=1.0.0; python_version < "3.11" packages = find: - tests_require = diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-core/0002-Fix-regression-when-enitre-workspace-is-symlinked.patch b/meta-ros-common/recipes-devtools/colcon/python3-colcon-core/0002-Fix-regression-when-enitre-workspace-is-symlinked.patch deleted file mode 100644 index 22573ac1fb..0000000000 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-core/0002-Fix-regression-when-enitre-workspace-is-symlinked.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b1dadc6f0ca2456f8a3320198653c1aad550e22d Mon Sep 17 00:00:00 2001 -From: Windel Bouwman -Date: Fri, 12 Nov 2021 15:21:02 +0100 -Subject: [PATCH] Fix regression when enitre workspace is symlinked - -Upstream-Status: Backport [https://github.com/colcon/colcon-core/pull/412] - ---- - colcon_core/task/python/build.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/colcon_core/task/python/build.py b/colcon_core/task/python/build.py -index 27059b5..7181d20 100644 ---- a/colcon_core/task/python/build.py -+++ b/colcon_core/task/python/build.py -@@ -70,7 +70,8 @@ class PythonBuildTask(TaskExtensionPoint): - cmd = [ - executable, 'setup.py', - 'egg_info', '--egg-base', os.path.relpath( -- args.build_base, args.path), -+ os.path.realpath(args.build_base), -+ os.path.realpath(args.path)), - 'build', '--build-base', os.path.join( - args.build_base, 'build'), - 'install', '--prefix', args.install_base, diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-core_0.6.1.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-core_0.18.3.bb similarity index 70% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-core_0.6.1.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-core_0.18.3.bb index c0826580c3..a9636a416b 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-core_0.6.1.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-core_0.18.3.bb @@ -4,10 +4,8 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI += "file://0001-Remove-optional-pytest-dependencies.patch \ - file://0002-Fix-regression-when-enitre-workspace-is-symlinked.patch \ - " -SRC_URI[sha256sum] = "fc14534b2ce745fcc332afc0bb0ddf3e45d5d69c15da15b9471cfb7b0b9edbe9" +SRC_URI = "file://0001-Remove-optional-pytest-dependencies.patch" +SRC_URI[sha256sum] = "8b3dcf0b140b2851a9169c60b3ed2ca78a6e48fec8ececdeefa287a6715f2e17" inherit pypi setuptools3 @@ -16,6 +14,7 @@ RDEPENDS:${PN} += "\ ${PYTHON_PN}-coloredlogs \ ${PYTHON_PN}-distlib \ ${PYTHON_PN}-empy \ + ${PYTHON_PN}-packaging \ " # The pytest dependencies are optional: diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-defaults_0.2.5.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-defaults_0.2.8.bb similarity index 80% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-defaults_0.2.5.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-defaults_0.2.8.bb index e592a6da8e..3d8c47353d 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-defaults_0.2.5.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-defaults_0.2.8.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI[sha256sum] = "ac40fc4ec85cc0633d6c56aa6ebb43203c373cd919d554b1f07fb8f27fdaa2d2" +SRC_URI[sha256sum] = "053e8a18fbae04cf182a2968d7f7ed474c5125bf3b306b8049250574f4096fa1" inherit pypi setuptools3 diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-devtools_0.2.2.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-devtools_0.3.0.bb similarity index 80% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-devtools_0.2.2.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-devtools_0.3.0.bb index f5ad3e73dd..085e748a14 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-devtools_0.2.2.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-devtools_0.3.0.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI[sha256sum] = "6ed3f29052c44e021b64106d5ae338e2b8936ba58c9f1c0496478327973d3f7b" +SRC_URI[sha256sum] = "34ae3877f60ce04f50acbf11ceadb660e6eaebde837e6d8b035ab9fb8ca36e05" inherit pypi setuptools3 diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-notification_0.2.13.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-notification_0.3.0.bb similarity index 83% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-notification_0.2.13.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-notification_0.3.0.bb index a430002b4b..b949c6f287 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-notification_0.2.13.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-notification_0.3.0.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI[sha256sum] = "6aae1ffe73ae956bcb36e330822cd230a2a88c9181b3170aafd1a446638e69b3" +SRC_URI[sha256sum] = "c45b898073a8e98c4518333b7587f9ea49ac1bc129a7bc4e1390059057031fb8" inherit pypi setuptools3 diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-output_0.2.12.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-output_0.2.13.bb similarity index 79% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-output_0.2.12.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-output_0.2.13.bb index 08ddb28463..2b0c1c1bb4 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-output_0.2.12.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-output_0.2.13.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI[sha256sum] = "a211e9f1f70edb1567c0747532ad222e47799cef25cb863e4a43af4660798b30" +SRC_URI[sha256sum] = "44d2d349ebdb61688b41e00d565ea1a199e8fc5c2c77af279cfaac74dc01c04d" inherit pypi setuptools3 diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-package-information_0.3.3.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-package-information_0.4.0.bb similarity index 78% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-package-information_0.3.3.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-package-information_0.4.0.bb index 90c3db1a21..a183d57920 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-package-information_0.3.3.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-package-information_0.4.0.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI[sha256sum] = "db0b1200bfec91fcf396d9d7671eb410f0eb5a18a0819f778f335ebac82e0b9e" +SRC_URI[sha256sum] = "20f5184ae1b05db0a76f244bc85622f6b25e48ef7398f55784ccfe455d40bcfb" inherit pypi setuptools3 diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-parallel-executor_0.2.4.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-parallel-executor_0.3.0.bb similarity index 78% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-parallel-executor_0.2.4.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-parallel-executor_0.3.0.bb index 8d90991436..c34816b680 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-parallel-executor_0.2.4.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-parallel-executor_0.3.0.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI[sha256sum] = "6c04ec240ce0a6b6bae69b13d8859ea1eac03469424fa220be43a99e7d1d3123" +SRC_URI[sha256sum] = "e7137fcaf4c61db792955fd641bfad7dbad4b41928c6b81ff87a78339e116644" inherit pypi setuptools3 diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-python-setup-py_0.2.7.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-python-setup-py_0.2.9.bb similarity index 81% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-python-setup-py_0.2.7.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-python-setup-py_0.2.9.bb index 520e8dc0ed..d4f202dc94 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-python-setup-py_0.2.7.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-python-setup-py_0.2.9.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI[sha256sum] = "eec293085c4301797706d9e61634fa0cb2136be9b820aa556b2b8baa0bde412d" +SRC_URI[sha256sum] = "4d8bab2e05ba334e29eee3715fbde490281342ed8e000e252130e5c51915383a" inherit pypi setuptools3 diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-recursive-crawl_0.2.1.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-recursive-crawl_0.2.3.bb similarity index 78% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-recursive-crawl_0.2.1.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-recursive-crawl_0.2.3.bb index b73b844053..f0162a3cef 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-recursive-crawl_0.2.1.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-recursive-crawl_0.2.3.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI[sha256sum] = "80a11b3a203960aff4187e9b562930ffe4bb54c061178ae1daedbf06b6da1b96" +SRC_URI[sha256sum] = "fca5f619214d20306daaf012f91399d4d3b605364b121e5df80399432c55c603" inherit pypi setuptools3 diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-ros_0.3.21.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-ros_0.5.0.bb similarity index 85% rename from meta-ros-common/recipes-devtools/colcon/python3-colcon-ros_0.3.21.bb rename to meta-ros-common/recipes-devtools/colcon/python3-colcon-ros_0.5.0.bb index fbabf6fafd..86b6985591 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-ros_0.3.21.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-ros_0.5.0.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI[sha256sum] = "9dccfa4bce1a18a06e1edcd589aa287e1807afc853af26c25e716830a8b6eaa3" +SRC_URI[sha256sum] = "79a7e89f6fa636f7e4fd44a88b7860fb1da99d51f0ba7bcf0b9b624a1a578365" inherit pypi setuptools3 From a81aa611b908e68159800af2bebe973e7eede902 Mon Sep 17 00:00:00 2001 From: Stephen Street Date: Tue, 23 Jul 2024 09:33:10 -0700 Subject: [PATCH 130/152] {common} Add native sdk class extentions Signed-off-by: Stephen Street --- .../recipes-devtools/python/python3-coloredlogs_%.bbappend | 1 + .../recipes-devtools/python/python3-dateutil_%.bbappend | 1 + .../recipes-devtools/python/python3-docutils_%.bbappend | 1 + .../recipes-devtools/python/python3-humanfriendly_%.bbappend | 1 + .../recipes-devtools/python/python3-lark-parser_0.7.0.bb | 2 ++ meta-ros-common/recipes-support/asio/asio_%.bbappend | 2 +- .../recipes-support/libtinyxml2/libtinyxml2_%.bbappend | 1 + 7 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 meta-ros-common/recipes-devtools/python/python3-coloredlogs_%.bbappend create mode 100644 meta-ros-common/recipes-devtools/python/python3-dateutil_%.bbappend create mode 100644 meta-ros-common/recipes-devtools/python/python3-docutils_%.bbappend create mode 100644 meta-ros-common/recipes-devtools/python/python3-humanfriendly_%.bbappend create mode 100644 meta-ros-common/recipes-support/libtinyxml2/libtinyxml2_%.bbappend diff --git a/meta-ros-common/recipes-devtools/python/python3-coloredlogs_%.bbappend b/meta-ros-common/recipes-devtools/python/python3-coloredlogs_%.bbappend new file mode 100644 index 0000000000..2a590838b5 --- /dev/null +++ b/meta-ros-common/recipes-devtools/python/python3-coloredlogs_%.bbappend @@ -0,0 +1 @@ +BBCLASSEXTEND += "nativesdk" diff --git a/meta-ros-common/recipes-devtools/python/python3-dateutil_%.bbappend b/meta-ros-common/recipes-devtools/python/python3-dateutil_%.bbappend new file mode 100644 index 0000000000..2a590838b5 --- /dev/null +++ b/meta-ros-common/recipes-devtools/python/python3-dateutil_%.bbappend @@ -0,0 +1 @@ +BBCLASSEXTEND += "nativesdk" diff --git a/meta-ros-common/recipes-devtools/python/python3-docutils_%.bbappend b/meta-ros-common/recipes-devtools/python/python3-docutils_%.bbappend new file mode 100644 index 0000000000..2a590838b5 --- /dev/null +++ b/meta-ros-common/recipes-devtools/python/python3-docutils_%.bbappend @@ -0,0 +1 @@ +BBCLASSEXTEND += "nativesdk" diff --git a/meta-ros-common/recipes-devtools/python/python3-humanfriendly_%.bbappend b/meta-ros-common/recipes-devtools/python/python3-humanfriendly_%.bbappend new file mode 100644 index 0000000000..2a590838b5 --- /dev/null +++ b/meta-ros-common/recipes-devtools/python/python3-humanfriendly_%.bbappend @@ -0,0 +1 @@ +BBCLASSEXTEND += "nativesdk" diff --git a/meta-ros-common/recipes-devtools/python/python3-lark-parser_0.7.0.bb b/meta-ros-common/recipes-devtools/python/python3-lark-parser_0.7.0.bb index 14989f873b..b1c5e4aa56 100644 --- a/meta-ros-common/recipes-devtools/python/python3-lark-parser_0.7.0.bb +++ b/meta-ros-common/recipes-devtools/python/python3-lark-parser_0.7.0.bb @@ -5,3 +5,5 @@ require python-lark-parser.inc inherit setuptools3 + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-support/asio/asio_%.bbappend b/meta-ros-common/recipes-support/asio/asio_%.bbappend index 13661a581e..821ee7e759 100644 --- a/meta-ros-common/recipes-support/asio/asio_%.bbappend +++ b/meta-ros-common/recipes-support/asio/asio_%.bbappend @@ -1,3 +1,3 @@ # Copyright (c) 2019-2020 LG Electronics, Inc. -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-ros-common/recipes-support/libtinyxml2/libtinyxml2_%.bbappend b/meta-ros-common/recipes-support/libtinyxml2/libtinyxml2_%.bbappend new file mode 100644 index 0000000000..2a590838b5 --- /dev/null +++ b/meta-ros-common/recipes-support/libtinyxml2/libtinyxml2_%.bbappend @@ -0,0 +1 @@ +BBCLASSEXTEND += "nativesdk" From 5ba6428c96062c2c64b9e9d4c168eb19ca724fae Mon Sep 17 00:00:00 2001 From: Stephen Street Date: Mon, 12 Aug 2024 15:13:05 -0700 Subject: [PATCH 131/152] {common}{ros2} Combine overrides in EXTRA_OECMAKE The original code used EXTRA_OECMAKE:prepend multiple times to define CMAKE_PREFIX_PATH and CMAKE_INSTALL_PATH. This led to incorrect values as only the last value was selected. Signed-off-by: Stephen Street --- meta-ros-common/classes/ros_cmake.bbclass | 7 ++++++- meta-ros2/classes/ros_ament_cmake.bbclass | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/meta-ros-common/classes/ros_cmake.bbclass b/meta-ros-common/classes/ros_cmake.bbclass index 75e53c5304..fd4a0d0060 100644 --- a/meta-ros-common/classes/ros_cmake.bbclass +++ b/meta-ros-common/classes/ros_cmake.bbclass @@ -3,7 +3,7 @@ inherit cmake -EXTRA_OECMAKE:prepend = "\ +EXTRA_OECMAKE:prepend:class-target = "\ -DCMAKE_PREFIX_PATH='${STAGING_DIR_HOST}${ros_prefix};${STAGING_DIR_HOST}${prefix}' \ -DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}' \ -DCMAKE_MODULE_PATH='${STAGING_DIR_HOST}${ros_datadir}/cmake/Modules/' \ @@ -13,3 +13,8 @@ EXTRA_OECMAKE:prepend:class-native = "\ -DCMAKE_PREFIX_PATH='${STAGING_DIR_NATIVE}${ros_prefix};${STAGING_DIR_NATIVE}${prefix}' \ -DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}' \ " + +EXTRA_OECMAKE:prepend:class-nativesdk = "\ + -DCMAKE_PREFIX_PATH='${STAGING_DIR_NATIVE}${ros_prefix};${STAGING_DIR_NATIVE}${prefix}' \ + -DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}' \ +" diff --git a/meta-ros2/classes/ros_ament_cmake.bbclass b/meta-ros2/classes/ros_ament_cmake.bbclass index 7cc55f6219..42a9b147d7 100644 --- a/meta-ros2/classes/ros_ament_cmake.bbclass +++ b/meta-ros2/classes/ros_ament_cmake.bbclass @@ -31,7 +31,7 @@ FILES:${PN}:prepend = " \ " EXTRA_OECMAKE:append = " -DAMENT_CMAKE_ENVIRONMENT_PARENT_PREFIX_PATH_GENERATION=OFF" -EXTRA_OECMAKE:prepend = "\ +EXTRA_OECMAKE:prepend:class-target = "\ -DCMAKE_PREFIX_PATH='${STAGING_DIR_HOST}${ros_prefix};${STAGING_DIR_HOST}${prefix}' \ -DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}' \ " @@ -40,3 +40,8 @@ EXTRA_OECMAKE:prepend:class-native = "\ -DCMAKE_PREFIX_PATH='${ros_prefix}' \ -DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}' \ " + +EXTRA_OECMAKE:prepend:class-nativesdk = "\ + -DCMAKE_PREFIX_PATH='${STAGING_DIR_NATIVE}${ros_base_prefix};${STAGING_DIR_NATIVE}${ros_prefix};${STAGING_DIR_NATIVE}${prefix}' \ + -DCMAKE_INSTALL_PREFIX:PATH='${ros_prefix}' \ +" From 00fefd006ab58710fbbe55334381674ee4a4a130 Mon Sep 17 00:00:00 2001 From: Stephen Street Date: Wed, 2 Oct 2024 15:42:10 -0700 Subject: [PATCH 132/152] {common} python3-colcon-core: Fix python interpreter This ensures that the colcon-core Python module sets the correct Python executable when building scripts with setuptools. Signed-off-by: Stephen Street --- ...Force-shebang-to-usr-bin-env-python3.patch | 22 +++++++++++++++++++ .../colcon/python3-colcon-core_0.18.3.bb | 3 ++- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 meta-ros-common/recipes-devtools/colcon/python3-colcon-core/0002-Force-shebang-to-usr-bin-env-python3.patch diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-core/0002-Force-shebang-to-usr-bin-env-python3.patch b/meta-ros-common/recipes-devtools/colcon/python3-colcon-core/0002-Force-shebang-to-usr-bin-env-python3.patch new file mode 100644 index 0000000000..d39bacde25 --- /dev/null +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-core/0002-Force-shebang-to-usr-bin-env-python3.patch @@ -0,0 +1,22 @@ +python3-colcon-core: Fix python interpreter + +This ensures that the colcon-core Python module sets the correct +Python executable when building scripts with setuptools. + +Upstream-Status: Pending + +Signed-off-by: Stephen Street + +Index: colcon-core-0.18.3/colcon_core/task/python/build.py +=================================================================== +--- colcon-core-0.18.3.orig/colcon_core/task/python/build.py ++++ colcon-core-0.18.3/colcon_core/task/python/build.py +@@ -113,7 +113,7 @@ class PythonBuildTask(TaskExtensionPoint + os.path.realpath(args.path))] + cmd += [ + 'build', '--build-base', os.path.join( +- args.build_base, 'build'), ++ args.build_base, 'build'), '--executable', '/usr/bin/env python3', + 'install', + '--record', os.path.join(args.build_base, 'install.log')] + # Extract and explicitly pass install-scripts to setuptools. diff --git a/meta-ros-common/recipes-devtools/colcon/python3-colcon-core_0.18.3.bb b/meta-ros-common/recipes-devtools/colcon/python3-colcon-core_0.18.3.bb index a9636a416b..b74214014f 100644 --- a/meta-ros-common/recipes-devtools/colcon/python3-colcon-core_0.18.3.bb +++ b/meta-ros-common/recipes-devtools/colcon/python3-colcon-core_0.18.3.bb @@ -4,7 +4,8 @@ SECTION = "devel/python" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://setup.cfg;beginline=22;endline=22;md5=3d0bd1ac53c1dd582844ed15eee7f8e2" -SRC_URI = "file://0001-Remove-optional-pytest-dependencies.patch" +SRC_URI = "file://0001-Remove-optional-pytest-dependencies.patch \ + file://0002-Force-shebang-to-usr-bin-env-python3.patch" SRC_URI[sha256sum] = "8b3dcf0b140b2851a9169c60b3ed2ca78a6e48fec8ececdeefa287a6715f2e17" inherit pypi setuptools3 From 23939d490a0294647051daa65a6c4266a4c22c6c Mon Sep 17 00:00:00 2001 From: Jiaxing Shi Date: Wed, 23 Oct 2024 14:19:18 -0700 Subject: [PATCH 133/152] {rolling} Add package lists for ROS 2 SDKs Signed-off-by: Jiaxing Shi Signed-off-by: Stephen Street --- meta-ros2-rolling/conf/layer.conf | 1 + .../ros-distro/include/rolling/ros-sdk.inc | 60 +++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 meta-ros2-rolling/conf/ros-distro/include/rolling/ros-sdk.inc diff --git a/meta-ros2-rolling/conf/layer.conf b/meta-ros2-rolling/conf/layer.conf index 7e4cc1faa3..72da2d0338 100644 --- a/meta-ros2-rolling/conf/layer.conf +++ b/meta-ros2-rolling/conf/layer.conf @@ -24,3 +24,4 @@ LAYERDEPENDS_ros2-rolling-layer = " \ LAYERSERIES_COMPAT_ros2-rolling-layer = "walnascar styhead" require conf/ros-distro/include/rolling/ros-distro.inc +require conf/ros-distro/include/rolling/ros-sdk.inc diff --git a/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-sdk.inc b/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-sdk.inc new file mode 100644 index 0000000000..444d0cc96e --- /dev/null +++ b/meta-ros2-rolling/conf/ros-distro/include/rolling/ros-sdk.inc @@ -0,0 +1,60 @@ +ROS_SDK_HOST_PACKAGES = " \ + nativesdk-ament-package \ + nativesdk-python3-colcon-common-extensions \ + nativesdk-python3-numpy \ + nativesdk-rosidl-adapter \ + nativesdk-rosidl-cli \ + nativesdk-rosidl-cmake \ + nativesdk-rosidl-default-generators \ + nativesdk-rosidl-generator-c \ + nativesdk-rosidl-generator-cpp \ + nativesdk-rosidl-parser \ + nativesdk-rosidl-typesupport-c \ + nativesdk-rosidl-typesupport-cpp \ + nativesdk-rosidl-typesupport-fastrtps-c \ + nativesdk-rosidl-typesupport-fastrtps-cpp \ + nativesdk-rosidl-typesupport-introspection-c \ + nativesdk-rosidl-typesupport-introspection-cpp \ +" + +ROS_SDK_TARGET_PACKAGES = " \ + ament-cmake-python \ + ament-cmake-ros \ + ament-package \ + ament-lint \ + ament-lint-auto \ + ament-cmake \ + ament-cmake-auto \ + ament-cmake-core \ + ament-cmake-export-definitions \ + ament-cmake-export-dependencies \ + ament-cmake-export-include-directories \ + ament-cmake-export-interfaces \ + ament-cmake-export-libraries \ + ament-cmake-export-link-flags \ + ament-cmake-export-targets \ + ament-cmake-gen-version-h \ + ament-cmake-gmock \ + ament-cmake-gtest \ + ament-cmake-include-directories \ + ament-cmake-libraries \ + ament-cmake-pytest \ + ament-cmake-python \ + ament-cmake-target-dependencies \ + ament-cmake-test \ + ament-cmake-vendor-package \ + ament-cmake-version \ + foonathan-memory-staticdev \ + rclcpp \ + rclcpp-lifecycle \ + rclcpp-action \ + rclcpp-components \ + builtin-interfaces \ + common-interfaces \ + fastrtps-cmake-module \ + rosidl-default-generators \ + rosidl-core-generators \ + rosidl-cmake \ + ros-environment \ + ros-workspace \ +" From c3383a5b0941d447bac7abda824aa1ac78b53ceb Mon Sep 17 00:00:00 2001 From: Jiaxing Shi Date: Wed, 23 Oct 2024 14:19:35 -0700 Subject: [PATCH 134/152] {jazzy} Add package lists for ROS 2 SDKs Signed-off-by: Jiaxing Shi Signed-off-by: Stephen Street --- meta-ros2-jazzy/conf/layer.conf | 1 + .../conf/ros-distro/include/jazzy/ros-sdk.inc | 61 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 meta-ros2-jazzy/conf/ros-distro/include/jazzy/ros-sdk.inc diff --git a/meta-ros2-jazzy/conf/layer.conf b/meta-ros2-jazzy/conf/layer.conf index 1c5e4dd4fb..378ff685cd 100644 --- a/meta-ros2-jazzy/conf/layer.conf +++ b/meta-ros2-jazzy/conf/layer.conf @@ -24,3 +24,4 @@ LAYERDEPENDS_ros2-jazzy-layer = " \ LAYERSERIES_COMPAT_ros2-jazzy-layer = "walnascar styhead" require conf/ros-distro/include/jazzy/ros-distro.inc +require conf/ros-distro/include/jazzy/ros-sdk.inc diff --git a/meta-ros2-jazzy/conf/ros-distro/include/jazzy/ros-sdk.inc b/meta-ros2-jazzy/conf/ros-distro/include/jazzy/ros-sdk.inc new file mode 100644 index 0000000000..a8874e44fd --- /dev/null +++ b/meta-ros2-jazzy/conf/ros-distro/include/jazzy/ros-sdk.inc @@ -0,0 +1,61 @@ +ROS_SDK_HOST_PACKAGES = " \ + nativesdk-ament-package \ + nativesdk-python3-colcon-common-extensions \ + nativesdk-python3-numpy \ + nativesdk-rosidl-adapter \ + nativesdk-rosidl-cli \ + nativesdk-rosidl-cmake \ + nativesdk-rosidl-default-generators \ + nativesdk-rosidl-generator-c \ + nativesdk-rosidl-generator-cpp \ + nativesdk-rosidl-parser \ + nativesdk-rosidl-typesupport-c \ + nativesdk-rosidl-typesupport-cpp \ + nativesdk-rosidl-typesupport-fastrtps-c \ + nativesdk-rosidl-typesupport-fastrtps-cpp \ + nativesdk-rosidl-typesupport-introspection-c \ + nativesdk-rosidl-typesupport-introspection-cpp \ +" + +ROS_SDK_TARGET_PACKAGES = " \ + ament-cmake-python \ + ament-cmake-ros \ + ament-package \ + ament-lint \ + ament-lint-auto \ + ament-cmake \ + ament-cmake-auto \ + ament-cmake-core \ + ament-cmake-export-definitions \ + ament-cmake-export-dependencies \ + ament-cmake-export-include-directories \ + ament-cmake-export-interfaces \ + ament-cmake-export-libraries \ + ament-cmake-export-link-flags \ + ament-cmake-export-targets \ + ament-cmake-gen-version-h \ + ament-cmake-gmock \ + ament-cmake-gtest \ + ament-cmake-include-directories \ + ament-cmake-libraries \ + ament-cmake-pytest \ + ament-cmake-python \ + ament-cmake-target-dependencies \ + ament-cmake-test \ + ament-cmake-vendor-package \ + ament-cmake-version \ + foonathan-memory-staticdev \ + rclcpp \ + rclcpp-lifecycle \ + rclcpp-action \ + rclcpp-components \ + builtin-interfaces \ + common-interfaces \ + fastrtps-cmake-module \ + rosidl-default-generators \ + rosidl-core-generators \ + rosidl-cmake \ + ros-environment \ + ros-workspace \ + pluginlib \ +" From a8969dba1908b8c2b49487562df188b9e179276c Mon Sep 17 00:00:00 2001 From: Jiaxing Shi Date: Wed, 23 Oct 2024 14:20:01 -0700 Subject: [PATCH 135/152] {humble} Add package lists for ROS 2 SDKs Signed-off-by: Jiaxing Shi Signed-off-by: Stephen Street --- meta-ros2-humble/conf/layer.conf | 1 + .../ros-distro/include/humble/ros-sdk.inc | 62 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 meta-ros2-humble/conf/ros-distro/include/humble/ros-sdk.inc diff --git a/meta-ros2-humble/conf/layer.conf b/meta-ros2-humble/conf/layer.conf index 9c55d92d7b..70d4ac4c5a 100644 --- a/meta-ros2-humble/conf/layer.conf +++ b/meta-ros2-humble/conf/layer.conf @@ -24,3 +24,4 @@ LAYERDEPENDS_ros2-humble-layer = " \ LAYERSERIES_COMPAT_ros2-humble-layer = "walnascar styhead" require conf/ros-distro/include/humble/ros-distro.inc +require conf/ros-distro/include/humble/ros-sdk.inc diff --git a/meta-ros2-humble/conf/ros-distro/include/humble/ros-sdk.inc b/meta-ros2-humble/conf/ros-distro/include/humble/ros-sdk.inc new file mode 100644 index 0000000000..aa9bfbf70a --- /dev/null +++ b/meta-ros2-humble/conf/ros-distro/include/humble/ros-sdk.inc @@ -0,0 +1,62 @@ +ROS_SDK_HOST_PACKAGES = " \ + nativesdk-ament-package \ + nativesdk-python3-colcon-common-extensions \ + nativesdk-python3-numpy \ + nativesdk-rosidl-adapter \ + nativesdk-rosidl-cli \ + nativesdk-rosidl-cmake \ + nativesdk-rosidl-default-generators \ + nativesdk-rosidl-generator-c \ + nativesdk-rosidl-generator-cpp \ + nativesdk-rosidl-parser \ + nativesdk-rosidl-typesupport-c \ + nativesdk-rosidl-typesupport-cpp \ + nativesdk-rosidl-typesupport-fastrtps-c \ + nativesdk-rosidl-typesupport-fastrtps-cpp \ + nativesdk-rosidl-typesupport-introspection-c \ + nativesdk-rosidl-typesupport-introspection-cpp \ +" + +ROS_SDK_TARGET_PACKAGES = " \ + ament-cmake-python \ + ament-cmake-ros \ + ament-package \ + ament-lint \ + ament-lint-auto \ + ament-cmake \ + ament-cmake-auto \ + ament-cmake-core \ + ament-cmake-export-definitions \ + ament-cmake-export-dependencies \ + ament-cmake-export-include-directories \ + ament-cmake-export-interfaces \ + ament-cmake-export-libraries \ + ament-cmake-export-link-flags \ + ament-cmake-export-targets \ + ament-cmake-gen-version-h \ + ament-cmake-gmock \ + ament-cmake-gtest \ + ament-cmake-include-directories \ + ament-cmake-libraries \ + ament-cmake-pytest \ + ament-cmake-python \ + ament-cmake-target-dependencies \ + ament-cmake-test \ + ament-cmake-vendor-package \ + ament-cmake-version \ + foonathan-memory-staticdev \ + rclcpp \ + rclcpp-lifecycle \ + rclcpp-action \ + rclcpp-components \ + builtin-interfaces \ + common-interfaces \ + fastrtps-cmake-module \ + rosidl-default-generators \ + rosidl-generator-c \ + rosidl-generator-cpp \ + rosidl-cmake \ + ros-environment \ + ros-workspace \ + pluginlib \ +" From 7d50c8ad3d4e263ffc643338c2e20ebbb39b0693 Mon Sep 17 00:00:00 2001 From: Stephen Street Date: Mon, 12 Aug 2024 15:13:29 -0700 Subject: [PATCH 136/152] {common} Update sdktest image recipes for ROS and ROS 2 ros2-image-sdktest: Add a new image recipe for testing ROS 2 SDKs ros1-image-sdktest: Rename and move the image recipe for testing ROS SDKs Signed-off-by: Stephen Street Signed-off-by: Rob Woolley --- .../recipes-core/ros1-image-sdktest.bb | 0 .../recipes-core/images/ros2-image-sdktest.bb | 36 +++++++++++++++++++ 2 files changed, 36 insertions(+) rename meta-ros-common/recipes-core/images/ros-image-sdktest.bb => meta-ros1/recipes-core/ros1-image-sdktest.bb (100%) create mode 100644 meta-ros2/recipes-core/images/ros2-image-sdktest.bb diff --git a/meta-ros-common/recipes-core/images/ros-image-sdktest.bb b/meta-ros1/recipes-core/ros1-image-sdktest.bb similarity index 100% rename from meta-ros-common/recipes-core/images/ros-image-sdktest.bb rename to meta-ros1/recipes-core/ros1-image-sdktest.bb diff --git a/meta-ros2/recipes-core/images/ros2-image-sdktest.bb b/meta-ros2/recipes-core/images/ros2-image-sdktest.bb new file mode 100644 index 0000000000..32668ba631 --- /dev/null +++ b/meta-ros2/recipes-core/images/ros2-image-sdktest.bb @@ -0,0 +1,36 @@ +SUMMARY = "ROS 2 SDK Test Image" +DESCRIPTION = "${SUMMARY}" + +inherit core-image +inherit ros_distro_${ROS_DISTRO} +inherit ${ROS_DISTRO_TYPE}_image + +IMAGE_INSTALL = " \ + packagegroup-core-boot \ + ${CORE_IMAGE_EXTRA_INSTALL} \ + ${ROS_SDK_EXTRA_INSTALL} \ +" +TOOLCHAIN_HOST_TASK:append = "${ROS_SDK_HOST_PACKAGES}" +TOOLCHAIN_TARGET_TASK:append = "${ROS_SDK_TARGET_PACKAGES}" + +ROS_SDK_EXTRA_INSTALL = " \ + boost \ + bullet \ + eigen3-cmake-module \ + libeigen \ + libstdc++-staticdev \ + opencv-staticdev \ + orocos-kdl \ + pcl-dev \ + pybind11-vendor \ + python-cmake-module \ + python3-numpy-staticdev \ + python3-opencv \ + python3-pykdl \ + qhull-staticdev \ + rttest \ + tlsf-staticdev \ + tlsf-cpp \ + tinyxml-vendor \ + yaml-cpp-vendor \ +" From 43070e84bb1ba36eace7918c26e4142b3ae277f0 Mon Sep 17 00:00:00 2001 From: Stephen Street Date: Tue, 5 Nov 2024 09:08:57 -0800 Subject: [PATCH 137/152] {common} pcl: Remove build path references Signed-off-by: Stephen Street --- ...ot-leak-build-directory-paths-1.12.1.patch | 55 +++++++++++++++++++ ...ot-leak-build-directory-paths-1.13.0.patch | 55 +++++++++++++++++++ .../recipes-extended/pcl/pcl_1.12.1.bb | 3 +- .../recipes-extended/pcl/pcl_1.13.0.bb | 3 +- 4 files changed, 114 insertions(+), 2 deletions(-) create mode 100644 meta-ros-common/recipes-extended/pcl/pcl/0002-Do-not-leak-build-directory-paths-1.12.1.patch create mode 100644 meta-ros-common/recipes-extended/pcl/pcl/0002-Do-not-leak-build-directory-paths-1.13.0.patch diff --git a/meta-ros-common/recipes-extended/pcl/pcl/0002-Do-not-leak-build-directory-paths-1.12.1.patch b/meta-ros-common/recipes-extended/pcl/pcl/0002-Do-not-leak-build-directory-paths-1.12.1.patch new file mode 100644 index 0000000000..cba4f9a1bf --- /dev/null +++ b/meta-ros-common/recipes-extended/pcl/pcl/0002-Do-not-leak-build-directory-paths-1.12.1.patch @@ -0,0 +1,55 @@ +From 4dc28976e88af60e273e670f824cf9b30281e86d Mon Sep 17 00:00:00 2001 +From: Stephen Street +Date: Tue, 5 Nov 2024 09:04:23 -0800 +Subject: [PATCH] Do not leak build directory paths in sdk + +Signed-off-by: Stephen Street +--- + PCLConfig.cmake.in | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/PCLConfig.cmake.in b/PCLConfig.cmake.in +index 1e923a3e9..4a8a3a35e 100644 +--- a/PCLConfig.cmake.in ++++ b/PCLConfig.cmake.in +@@ -23,6 +23,7 @@ if(POLICY CMP0074) + # NEW behavior, we need to push a policy stack. + cmake_policy(SET CMP0074 NEW) + endif() ++cmake_policy(SET CMP0144 NEW) + + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/Modules") + +@@ -91,9 +92,9 @@ macro(find_boost) + if(PCL_ALL_IN_ONE_INSTALLER) + set(BOOST_ROOT "${PCL_ROOT}/3rdParty/Boost") + elseif(NOT BOOST_INCLUDEDIR) +- set(BOOST_INCLUDEDIR "@Boost_INCLUDE_DIR@") ++ set(BOOST_INCLUDEDIR "/usr/include") + endif() +- ++ + set(Boost_ADDITIONAL_VERSIONS + "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@.@Boost_SUBMINOR_VERSION@" "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@" + "1.84.0" "1.84" "1.83.0" "1.83" "1.82.0" "1.82" "1.81.0" "1.81" "1.80.0" "1.80" +@@ -117,7 +118,7 @@ macro(find_eigen) + if(PCL_ALL_IN_ONE_INSTALLER) + set(EIGEN_ROOT "${PCL_ROOT}/3rdParty/Eigen") + elseif(NOT EIGEN_ROOT) +- get_filename_component(EIGEN_ROOT "@EIGEN_INCLUDE_DIRS@" ABSOLUTE) ++ get_filename_component(EIGEN_ROOT "/usr/include/eigen3" ABSOLUTE) + endif() + find_package(Eigen 3.1) + endmacro() +@@ -225,7 +226,7 @@ macro(find_flann) + if(PCL_ALL_IN_ONE_INSTALLER) + set(FLANN_ROOT "${PCL_ROOT}/3rdParty/Flann") + elseif(NOT FLANN_ROOT) +- set(FLANN_ROOT "@FLANN_ROOT@") ++ set(FLANN_ROOT "/usr") + endif() + + set(PCL_FLANN_REQUIRED_TYPE @PCL_FLANN_REQUIRED_TYPE@) +-- +2.43.0 + diff --git a/meta-ros-common/recipes-extended/pcl/pcl/0002-Do-not-leak-build-directory-paths-1.13.0.patch b/meta-ros-common/recipes-extended/pcl/pcl/0002-Do-not-leak-build-directory-paths-1.13.0.patch new file mode 100644 index 0000000000..0bfc2bec9b --- /dev/null +++ b/meta-ros-common/recipes-extended/pcl/pcl/0002-Do-not-leak-build-directory-paths-1.13.0.patch @@ -0,0 +1,55 @@ +From 15cfff0eb7fb7ca58550f6259f0935ca7710a6b4 Mon Sep 17 00:00:00 2001 +From: Stephen Street +Date: Tue, 5 Nov 2024 08:47:17 -0800 +Subject: [PATCH] Do not leak build directory paths in sdk + +Signed-off-by: Stephen Street +--- + PCLConfig.cmake.in | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/PCLConfig.cmake.in b/PCLConfig.cmake.in +index b6322c623..b7e290c23 100644 +--- a/PCLConfig.cmake.in ++++ b/PCLConfig.cmake.in +@@ -23,6 +23,7 @@ if(POLICY CMP0074) + # NEW behavior, we need to push a policy stack. + cmake_policy(SET CMP0074 NEW) + endif() ++cmake_policy(SET CMP0144 NEW) + + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/Modules") + +@@ -91,9 +92,9 @@ macro(find_boost) + if(PCL_ALL_IN_ONE_INSTALLER) + set(BOOST_ROOT "${PCL_ROOT}/3rdParty/Boost") + elseif(NOT BOOST_INCLUDEDIR) +- set(BOOST_INCLUDEDIR "@Boost_INCLUDE_DIR@") ++ set(BOOST_INCLUDEDIR "/usr/include") + endif() +- ++ + set(Boost_ADDITIONAL_VERSIONS + "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@.@Boost_SUBMINOR_VERSION@" "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@" + "1.84.0" "1.84" "1.83.0" "1.83" "1.82.0" "1.82" "1.81.0" "1.81" "1.80.0" "1.80" +@@ -117,7 +118,7 @@ macro(find_eigen) + if(PCL_ALL_IN_ONE_INSTALLER) + set(EIGEN_ROOT "${PCL_ROOT}/3rdParty/Eigen") + elseif(NOT EIGEN_ROOT) +- get_filename_component(EIGEN_ROOT "@EIGEN_INCLUDE_DIRS@" ABSOLUTE) ++ get_filename_component(EIGEN_ROOT "/usr/include/eigen3" ABSOLUTE) + endif() + find_package(Eigen 3.3) + endmacro() +@@ -225,7 +226,7 @@ macro(find_flann) + if(PCL_ALL_IN_ONE_INSTALLER) + set(FLANN_ROOT "${PCL_ROOT}/3rdParty/Flann") + elseif(NOT FLANN_ROOT) +- set(FLANN_ROOT "@FLANN_ROOT@") ++ set(FLANN_ROOT "/usr") + endif() + + set(PCL_FLANN_REQUIRED_TYPE @PCL_FLANN_REQUIRED_TYPE@) +-- +2.43.0 + diff --git a/meta-ros-common/recipes-extended/pcl/pcl_1.12.1.bb b/meta-ros-common/recipes-extended/pcl/pcl_1.12.1.bb index f99b7159d3..30c8c05f69 100644 --- a/meta-ros-common/recipes-extended/pcl/pcl_1.12.1.bb +++ b/meta-ros-common/recipes-extended/pcl/pcl_1.12.1.bb @@ -4,6 +4,7 @@ require pcl.inc SRC_URI += "file://0001-MovingLeastSquares-reduce-the-number.patch \ - file://0001-Make-PCL-compatible-with-Boost-1.84-1.12.1.patch" + file://0001-Make-PCL-compatible-with-Boost-1.84-1.12.1.patch \ + file://0002-Do-not-leak-build-directory-paths-1.12.1.patch" SRCREV = "e8ed4be802f7d0b1acff2f8b01d7c5f381190e05" diff --git a/meta-ros-common/recipes-extended/pcl/pcl_1.13.0.bb b/meta-ros-common/recipes-extended/pcl/pcl_1.13.0.bb index a485a4cbfb..d30617fa97 100644 --- a/meta-ros-common/recipes-extended/pcl/pcl_1.13.0.bb +++ b/meta-ros-common/recipes-extended/pcl/pcl_1.13.0.bb @@ -4,6 +4,7 @@ require pcl.inc SRC_URI += "file://0001-MovingLeastSquares-reduce-the-number.patch \ - file://0001-Make-PCL-compatible-with-Boost-1.84-1.13.0.patch" + file://0001-Make-PCL-compatible-with-Boost-1.84-1.13.0.patch \ + file://0002-Do-not-leak-build-directory-paths-1.13.0.patch" SRCREV = "371a8e1373f7b2f66bbb92291be2f3e50dc19856" From 68a97f0477a9b52675e20a740a2a63e13476c323 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Tue, 12 Nov 2024 16:24:26 -0800 Subject: [PATCH 138/152] {common} orocos-kdl: Fix Upstream-Status syntax on patch Signed-off-by: Rob Woolley --- ...1-CMakeLists.txt-resolving-host-path-injection-in-.pc-.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-ros-common/recipes-orocos-kdl/orocos-kdl/orocos-kdl/0001-CMakeLists.txt-resolving-host-path-injection-in-.pc-.patch b/meta-ros-common/recipes-orocos-kdl/orocos-kdl/orocos-kdl/0001-CMakeLists.txt-resolving-host-path-injection-in-.pc-.patch index ec3ef75477..40d6e1e3cc 100644 --- a/meta-ros-common/recipes-orocos-kdl/orocos-kdl/orocos-kdl/0001-CMakeLists.txt-resolving-host-path-injection-in-.pc-.patch +++ b/meta-ros-common/recipes-orocos-kdl/orocos-kdl/orocos-kdl/0001-CMakeLists.txt-resolving-host-path-injection-in-.pc-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] CMakeLists.txt: resolving host path injection in .pc file Removing the addition of eigen include path into the pc file, which will cause a TMPDIR leakage. -Upstream-Status: inappropriate [embedded specific] +Upstream-Status: Inappropriate [oe specific] Signed-off-by: Matthias Schoepfer --- From 7b6596744a2ad98930c87b33a5910ed6668f3de7 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Tue, 12 Nov 2024 16:26:51 -0800 Subject: [PATCH 139/152] {common} python3-pykdl: Add exception for QA warning The PyKDL.so file is being stripped by the build system. Add a temporary workaround to ignore the QA warning. Signed-off-by: Rob Woolley --- .../recipes-orocos-kdl/orocos-kdl/python3-pykdl_1.5.1-87.bb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meta-ros-common/recipes-orocos-kdl/orocos-kdl/python3-pykdl_1.5.1-87.bb b/meta-ros-common/recipes-orocos-kdl/orocos-kdl/python3-pykdl_1.5.1-87.bb index 2ae2b6c845..6582a4fc4d 100644 --- a/meta-ros-common/recipes-orocos-kdl/orocos-kdl/python3-pykdl_1.5.1-87.bb +++ b/meta-ros-common/recipes-orocos-kdl/orocos-kdl/python3-pykdl_1.5.1-87.bb @@ -24,4 +24,7 @@ inherit cmake python3-dir python3native FILES:${PN}:append = " \ ${PYTHON_SITEPACKAGES_DIR}/PyKDL.so \ -" \ No newline at end of file +" + +# QA Issue: File '/usr/lib/python3.13/site-packages/PyKDL.so' from python3-pykdl was already stripped, this will prevent future debugging! [already-stripped] +INSANE_SKIP:${PN} += "already-stripped" From a5154adbcbc5b36fd5277359ac1e3284e5918206 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Tue, 12 Nov 2024 16:36:58 -0800 Subject: [PATCH 140/152] {common} pcl: Use pkgconfig to find dependencies Signed-off-by: Rob Woolley --- meta-ros-common/recipes-extended/pcl/pcl.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-ros-common/recipes-extended/pcl/pcl.inc b/meta-ros-common/recipes-extended/pcl/pcl.inc index 88ca6df098..db81978819 100644 --- a/meta-ros-common/recipes-extended/pcl/pcl.inc +++ b/meta-ros-common/recipes-extended/pcl/pcl.inc @@ -34,7 +34,7 @@ EXTRA_OECMAKE += "\ #Setting -ffloat-store to alleviate 32bit vs 64bit discrepancies on non-SSE platforms. CXXFLAGS += "${@bb.utils.contains("TARGET_CC_ARCH", "-mfpmath=sse", "", "-ffloat-store", d)}" -inherit cmake +inherit cmake pkgconfig FILES:${PN}-dev += "${datadir}/${BPN}-*/*.cmake ${datadir}/${BPN}-*/Modules/*.cmake" From 6bd60a2444fe1dfa8f449edbd42df075aa30d07e Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Tue, 12 Nov 2024 16:37:34 -0800 Subject: [PATCH 141/152] {common} pcl: Remove build paths from PCLconfig.cmake The dependencies Boost and Flann use absolute paths to specify where to find the headers and libraries. Remove the host recipe sysroot prefix from these paths to remove the QA warning about buildpaths. Signed-off-by: Rob Woolley --- meta-ros-common/recipes-extended/pcl/pcl.inc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/meta-ros-common/recipes-extended/pcl/pcl.inc b/meta-ros-common/recipes-extended/pcl/pcl.inc index db81978819..49c3554ed4 100644 --- a/meta-ros-common/recipes-extended/pcl/pcl.inc +++ b/meta-ros-common/recipes-extended/pcl/pcl.inc @@ -39,3 +39,10 @@ inherit cmake pkgconfig FILES:${PN}-dev += "${datadir}/${BPN}-*/*.cmake ${datadir}/${BPN}-*/Modules/*.cmake" # EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=Release" + +BPV = "${@'.'.join(d.getVar('PV').split('.')[0:2])}" + +do_install:append() { + # Fix for QA warning [buildpaths] + sed -i -e "s#${RECIPE_SYSROOT}##g" ${D}${datadir}/pcl-${BPV}/PCLConfig.cmake +} From e6d236f7dcee0b59dfdf80f53aa2a798bdfee312 Mon Sep 17 00:00:00 2001 From: Stephen Street Date: Mon, 18 Nov 2024 11:30:45 -0800 Subject: [PATCH 142/152] {common} ros_ament_cmake: Add ROS prefix site-packages to PYTHONPATH Signed-off-by: Stephen Street --- meta-ros2/classes/ros_ament_cmake.bbclass | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-ros2/classes/ros_ament_cmake.bbclass b/meta-ros2/classes/ros_ament_cmake.bbclass index 42a9b147d7..64eedb4590 100644 --- a/meta-ros2/classes/ros_ament_cmake.bbclass +++ b/meta-ros2/classes/ros_ament_cmake.bbclass @@ -26,6 +26,8 @@ export AMENT_PREFIX_PATH="${STAGING_DIR_HOST}${prefix};${STAGING_DIR_NATIVE}${pr inherit cmake python3native +PYTHONPATH:prepend:class-nativesdk = "${STAGING_DIR_NATIVE}${ros_base_prefix}/lib/python${PYTHON_BASEVERSION}/site-packages:" + FILES:${PN}:prepend = " \ ${datadir}/ament_index \ " From cb6849cfd39bcd260caa206dc9c2cf499029c6c5 Mon Sep 17 00:00:00 2001 From: Stephen Street Date: Mon, 18 Nov 2024 18:56:12 -0800 Subject: [PATCH 143/152] {common} ros_opt_prefix: Create ros_base_prefix When building nativesdk packages the base_prefix value is set to SDKPATHNATIVE. This prevents ros_prefix from being used to extend STAGING_DIR_NATIVE. Create ros_base_prefix for this purpose. Signed-off-by: Stephen Street Signed-off-by: Rob Woolley --- meta-ros-common/classes/ros_opt_prefix.bbclass | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta-ros-common/classes/ros_opt_prefix.bbclass b/meta-ros-common/classes/ros_opt_prefix.bbclass index 1b919c781c..ac53ecea8c 100644 --- a/meta-ros-common/classes/ros_opt_prefix.bbclass +++ b/meta-ros-common/classes/ros_opt_prefix.bbclass @@ -4,7 +4,8 @@ # Copyright (c) Qualcomm Innovation Center, Inc. All rights reserved # -ros_prefix ?= "${base_prefix}/opt/ros/${ROS_DISTRO}" +ros_base_prefix ?= "/opt/ros/${ROS_DISTRO}" +ros_prefix ?= "${base_prefix}${ros_base_prefix}" ros_bindir = "${ros_prefix}/bin" ros_sbindir = "${ros_prefix}/sbin" From ad9d3f3380f33b1d5b01214766f5b1439fc7c42a Mon Sep 17 00:00:00 2001 From: Romain Gimenez Date: Mon, 12 Aug 2024 15:11:31 -0700 Subject: [PATCH 144/152] {rolling} fastrtps: Find TinyXML2 Use TinyXML2 from the target sysroot directory. Signed-off-by: Romain Gimenez Signed-off-by: Stephen Street --- ...2.cmake-fix-find_library-libtinyxml2.patch | 22 +++++++++++++++++++ .../fastrtps/fastrtps_%.bbappend | 3 +++ 2 files changed, 25 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps/0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch diff --git a/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps/0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch b/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps/0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch new file mode 100644 index 0000000000..6ab14b05d3 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps/0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch @@ -0,0 +1,22 @@ +Use TinyXML2 from the target sysroot directory. + +Upstream-Status: Pending + +Signed-off-by: Romain Gimenez +Signed-off-by: Stephen Street +diff --git a/cmake/modules/FindTinyXML2.cmake b/cmake/modules/FindTinyXML2.cmake +index 44b8e645..ba964578 100644 +--- a/cmake/modules/FindTinyXML2.cmake ++++ b/cmake/modules/FindTinyXML2.cmake +@@ -39,7 +39,10 @@ else() + if(TINYXML2_FROM_SOURCE) + find_path(TINYXML2_SOURCE_DIR NAMES tinyxml2.cpp NO_CMAKE_FIND_ROOT_PATH) + else() +- find_library(TINYXML2_LIBRARY tinyxml2) ++ find_library(TINYXML2_LIBRARIES tinyxml2) ++ add_library(tinyxml2 SHARED IMPORTED) ++ set_property(TARGET tinyxml2 APPEND PROPERTY IMPORTED_LOCATION "${TINYXML2_LIBRARIES}") ++ set(TINYXML2_LIBRARY tinyxml2) + endif() + + include(FindPackageHandleStandardArgs) diff --git a/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps_%.bbappend b/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps_%.bbappend index e9ebdc0a71..288d2e1c34 100644 --- a/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps_%.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/fastrtps/fastrtps_%.bbappend @@ -22,3 +22,6 @@ EXTRA_OECMAKE += " -DSM_RUN_RESULT=0 -DSM_RUN_RESULT__TRYRUN_OUTPUT=PTHREAD_RWLO sysroot_stage_all:append() { sysroot_stage_dir ${D}${bindir} ${SYSROOT_DESTDIR}${bindir} } + +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" +SRC_URI += "file://0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch" From d9e0a2e7106a755b6c5a28690c9631d488b6a9c3 Mon Sep 17 00:00:00 2001 From: Romain Gimenez Date: Tue, 22 Oct 2024 10:08:17 -0700 Subject: [PATCH 145/152] {jazzy} fastrtps: Find TinyXML2 Use TinyXML2 from the target sysroot directory. Signed-off-by: Romain Gimenez Signed-off-by: Stephen Street --- ...2.cmake-fix-find_library-libtinyxml2.patch | 22 +++++++++++++++++++ .../fastrtps/fastrtps_%.bbappend | 3 +++ 2 files changed, 25 insertions(+) create mode 100644 meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps/0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch diff --git a/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps/0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch b/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps/0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch new file mode 100644 index 0000000000..6ab14b05d3 --- /dev/null +++ b/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps/0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch @@ -0,0 +1,22 @@ +Use TinyXML2 from the target sysroot directory. + +Upstream-Status: Pending + +Signed-off-by: Romain Gimenez +Signed-off-by: Stephen Street +diff --git a/cmake/modules/FindTinyXML2.cmake b/cmake/modules/FindTinyXML2.cmake +index 44b8e645..ba964578 100644 +--- a/cmake/modules/FindTinyXML2.cmake ++++ b/cmake/modules/FindTinyXML2.cmake +@@ -39,7 +39,10 @@ else() + if(TINYXML2_FROM_SOURCE) + find_path(TINYXML2_SOURCE_DIR NAMES tinyxml2.cpp NO_CMAKE_FIND_ROOT_PATH) + else() +- find_library(TINYXML2_LIBRARY tinyxml2) ++ find_library(TINYXML2_LIBRARIES tinyxml2) ++ add_library(tinyxml2 SHARED IMPORTED) ++ set_property(TARGET tinyxml2 APPEND PROPERTY IMPORTED_LOCATION "${TINYXML2_LIBRARIES}") ++ set(TINYXML2_LIBRARY tinyxml2) + endif() + + include(FindPackageHandleStandardArgs) diff --git a/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps_%.bbappend b/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps_%.bbappend index e9ebdc0a71..288d2e1c34 100644 --- a/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps_%.bbappend +++ b/meta-ros2-jazzy/recipes-bbappends/fastrtps/fastrtps_%.bbappend @@ -22,3 +22,6 @@ EXTRA_OECMAKE += " -DSM_RUN_RESULT=0 -DSM_RUN_RESULT__TRYRUN_OUTPUT=PTHREAD_RWLO sysroot_stage_all:append() { sysroot_stage_dir ${D}${bindir} ${SYSROOT_DESTDIR}${bindir} } + +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" +SRC_URI += "file://0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch" From adbd95b755befb45918df4617f87c4ff477063d1 Mon Sep 17 00:00:00 2001 From: Romain Gimenez Date: Tue, 22 Oct 2024 10:10:13 -0700 Subject: [PATCH 146/152] {humble} fastrtps: Find TinyXML2 Use TinyXML2 from the target sysroot directory. Signed-off-by: Romain Gimenez Signed-off-by: Stephen Street --- ...2.cmake-fix-find_library-libtinyxml2.patch | 22 +++++++++++++++++++ .../fastrtps/fastrtps_%.bbappend | 6 +++++ 2 files changed, 28 insertions(+) create mode 100644 meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps/0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch diff --git a/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps/0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch b/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps/0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch new file mode 100644 index 0000000000..6ab14b05d3 --- /dev/null +++ b/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps/0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch @@ -0,0 +1,22 @@ +Use TinyXML2 from the target sysroot directory. + +Upstream-Status: Pending + +Signed-off-by: Romain Gimenez +Signed-off-by: Stephen Street +diff --git a/cmake/modules/FindTinyXML2.cmake b/cmake/modules/FindTinyXML2.cmake +index 44b8e645..ba964578 100644 +--- a/cmake/modules/FindTinyXML2.cmake ++++ b/cmake/modules/FindTinyXML2.cmake +@@ -39,7 +39,10 @@ else() + if(TINYXML2_FROM_SOURCE) + find_path(TINYXML2_SOURCE_DIR NAMES tinyxml2.cpp NO_CMAKE_FIND_ROOT_PATH) + else() +- find_library(TINYXML2_LIBRARY tinyxml2) ++ find_library(TINYXML2_LIBRARIES tinyxml2) ++ add_library(tinyxml2 SHARED IMPORTED) ++ set_property(TARGET tinyxml2 APPEND PROPERTY IMPORTED_LOCATION "${TINYXML2_LIBRARIES}") ++ set(TINYXML2_LIBRARY tinyxml2) + endif() + + include(FindPackageHandleStandardArgs) diff --git a/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps_%.bbappend b/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps_%.bbappend index 2e8afcb969..288d2e1c34 100644 --- a/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps_%.bbappend +++ b/meta-ros2-humble/recipes-bbappends/fastrtps/fastrtps_%.bbappend @@ -1,8 +1,11 @@ # Copyright (c) 2019-2021 LG Electronics, Inc. +# Copyright (c) 2023 Wind River Systems, Inc. inherit ros_insane_dev_so FILES:${PN} += "${prefix}/tools" +# ERROR: fastrtps-2.10.2-1-r0 do_package: QA Issue: fastrtps: Files/directories were installed but not shipped in any package: +FILES:${PN} += "${datadir}/fastRTPS_profiles.xsd ${datadir}/fastdds_static_discovery.xsd" # CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the # following cache variables appropriately: @@ -19,3 +22,6 @@ EXTRA_OECMAKE += " -DSM_RUN_RESULT=0 -DSM_RUN_RESULT__TRYRUN_OUTPUT=PTHREAD_RWLO sysroot_stage_all:append() { sysroot_stage_dir ${D}${bindir} ${SYSROOT_DESTDIR}${bindir} } + +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" +SRC_URI += "file://0001-FindTinyXML2.cmake-fix-find_library-libtinyxml2.patch" From 71b394f211af64f3f432f5eaf7bcb634be43db96 Mon Sep 17 00:00:00 2001 From: Stephen Street Date: Tue, 5 Nov 2024 08:26:40 -0800 Subject: [PATCH 147/152] {humble} Use find package for yaml to prevent sdk build failures Signed-off-by: Stephen Street --- ...CMakeLists.txt-use-find-package-yaml.patch | 12 ++++ ...ists.txt-use-pkg-config-to-find-yaml.patch | 64 ------------------- .../rcl-yaml-param-parser_5.3.8-1.bbappend | 4 +- 3 files changed, 13 insertions(+), 67 deletions(-) create mode 100644 meta-ros2-humble/recipes-bbappends/rcl/rcl-yaml-param-parser/0001-CMakeLists.txt-use-find-package-yaml.patch delete mode 100644 meta-ros2-humble/recipes-bbappends/rcl/rcl-yaml-param-parser/0001-CMakeLists.txt-use-pkg-config-to-find-yaml.patch diff --git a/meta-ros2-humble/recipes-bbappends/rcl/rcl-yaml-param-parser/0001-CMakeLists.txt-use-find-package-yaml.patch b/meta-ros2-humble/recipes-bbappends/rcl/rcl-yaml-param-parser/0001-CMakeLists.txt-use-find-package-yaml.patch new file mode 100644 index 0000000000..db57bd890e --- /dev/null +++ b/meta-ros2-humble/recipes-bbappends/rcl/rcl-yaml-param-parser/0001-CMakeLists.txt-use-find-package-yaml.patch @@ -0,0 +1,12 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 96ef1b3e..b7487bf6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -6,6 +6,7 @@ find_package(ament_cmake_ros REQUIRED) + find_package(rcutils REQUIRED) + find_package(rmw REQUIRED) + find_package(libyaml_vendor REQUIRED) ++find_package(yaml) + + # Default to C++14 + if(NOT CMAKE_CXX_STANDARD) diff --git a/meta-ros2-humble/recipes-bbappends/rcl/rcl-yaml-param-parser/0001-CMakeLists.txt-use-pkg-config-to-find-yaml.patch b/meta-ros2-humble/recipes-bbappends/rcl/rcl-yaml-param-parser/0001-CMakeLists.txt-use-pkg-config-to-find-yaml.patch deleted file mode 100644 index df173150d8..0000000000 --- a/meta-ros2-humble/recipes-bbappends/rcl/rcl-yaml-param-parser/0001-CMakeLists.txt-use-pkg-config-to-find-yaml.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 1eb7cb44355b3bbc39a14570d3dc81bd69825c39 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Thu, 9 Jul 2020 01:44:31 -0700 -Subject: [PATCH] CMakeLists.txt: use pkg-config to find yaml - -* yaml-0.1.8 built with CMake in libyaml-vendor ExternalProject_add call - provides yamlConfig, but platform yaml-0.2* from oe-core built with - autotools provides only pkg-config file yaml-1.0.pc, I've tried to change - oe-core recipe from autotools to cmake, but it seems to be broken in - upstream libyaml as shown bellow, we should continue to use upstream preferred autotools - https://github.com/yaml/libyaml/issues/141 - https://github.com/yaml/libyaml/issues/138 - -| CMake Error: File /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/libyaml/0.2.5-r0/yaml-0.2.5/cmake/config.h.in does not exist. -| CMake Error at CMakeLists.txt:51 (configure_file): -| configure_file Problem configuring file -| -| -| CMake Error at CMakeLists.txt:103 (add_subdirectory): -| The source directory -| -| /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/libyaml/0.2.5-r0/yaml-0.2.5/tests -| -| does not contain a CMakeLists.txt file. -| -| -| CMake Error: File /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/libyaml/0.2.5-r0/yaml-0.2.5/yamlConfig.cmake.in does not exist. -| CMake Error at /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/libyaml/0.2.5-r0/recipe-sysroot-native/usr/share/cmake-3.17/Modules/CMakePackageConfigHelpers.cmake:330 (configure_file): -| configure_file Problem configuring file -| Call Stack (most recent call first): -| CMakeLists.txt:114 (configure_package_config_file) -| -| -| CMake Error: File /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/libyaml/0.2.5-r0/yaml-0.2.5/yamlConfig.cmake.in does not exist. -| CMake Error at /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/libyaml/0.2.5-r0/recipe-sysroot-native/usr/share/cmake-3.17/Modules/CMakePackageConfigHelpers.cmake:330 (configure_file): -| configure_file Problem configuring file -| Call Stack (most recent call first): -| CMakeLists.txt:130 (configure_package_config_file) -| -| -| -- Configuring incomplete, errors occurred! -| See also "/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/libyaml/0.2.5-r0/build/CMakeFiles/CMakeOutput.log". -| WARNING: exit code 1 from a shell command. - -Upstream-Status: Pending - -Signed-off-by: Martin Jansa ---- - CMakeLists.txt | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 397f662..341aeaf 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -6,6 +6,8 @@ find_package(ament_cmake_ros REQUIRED) - find_package(rcutils REQUIRED) - find_package(rmw REQUIRED) - find_package(libyaml_vendor REQUIRED) -+find_package(PkgConfig REQUIRED) -+pkg_check_modules(yaml REQUIRED yaml-0.1) - - # Default to C++14 - if(NOT CMAKE_CXX_STANDARD) diff --git a/meta-ros2-humble/recipes-bbappends/rcl/rcl-yaml-param-parser_5.3.8-1.bbappend b/meta-ros2-humble/recipes-bbappends/rcl/rcl-yaml-param-parser_5.3.8-1.bbappend index 93e9e23ba1..a5fc022473 100644 --- a/meta-ros2-humble/recipes-bbappends/rcl/rcl-yaml-param-parser_5.3.8-1.bbappend +++ b/meta-ros2-humble/recipes-bbappends/rcl/rcl-yaml-param-parser_5.3.8-1.bbappend @@ -1,8 +1,6 @@ # Copyright (c) 2020-2021 LG Electronics, Inc. -inherit pkgconfig - DEPENDS += "libyaml" FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" -SRC_URI += "file://0001-CMakeLists.txt-use-pkg-config-to-find-yaml.patch" +SRC_URI += "file://0001-CMakeLists.txt-use-find-package-yaml.patch" From d5801d740a171113eb7285bcec72d68e8d8c156c Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Tue, 19 Nov 2024 10:51:29 -0800 Subject: [PATCH 148/152] {rolling} ament-package: Add envvar to skip setting PATH We should not set the PATH or LD_LIBRARY_PATH when using an SDK. This provides the option AMENT_SKIP_SHELL_PATH to allow us to skip setting the variables. Signed-off-by: Rob Woolley --- .../ament-package/skip_shell_path.patch | 29 +++++++++++++++++++ .../ament-package_0.17.0-1.bbappend | 3 ++ 2 files changed, 32 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/ament-package/ament-package/skip_shell_path.patch create mode 100644 meta-ros2-rolling/recipes-bbappends/ament-package/ament-package_0.17.0-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/ament-package/ament-package/skip_shell_path.patch b/meta-ros2-rolling/recipes-bbappends/ament-package/ament-package/skip_shell_path.patch new file mode 100644 index 0000000000..506b1167d5 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ament-package/ament-package/skip_shell_path.patch @@ -0,0 +1,29 @@ +We should not set the PATH or LD_LIBRARY_PATH when using an SDK. + +Upstream-Status: Inappropriate [oe specific] + +Index: git/ament_package/template/prefix_level/_local_setup_util.py +=================================================================== +--- git.orig/ament_package/template/prefix_level/_local_setup_util.py ++++ git/ament_package/template/prefix_level/_local_setup_util.py +@@ -194,6 +194,11 @@ def _include_comments(): + return bool(os.environ.get('AMENT_TRACE_SETUP_FILES')) + + ++def _skip_shell_path(): ++ # skip setting shell PATH envvars when AMENT_SKIP_SHELL_PATH is set ++ return bool(os.environ.get('AMENT_SKIP_SHELL_PATH')) ++ ++ + def get_commands(pkg_name, prefix, primary_extension, additional_extension): + commands = [] + package_dsv_path = os.path.join(prefix, 'share', pkg_name, 'package.dsv') +@@ -322,6 +327,8 @@ def handle_dsv_types_except_source(type_ + env_name = env_name_and_values[0] + values = env_name_and_values[1:] + for value in values: ++ if _skip_shell_path() and ((env_name == "PATH") or (env_name == "LD_LIBRARY_PATH")): ++ break + if not value: + value = prefix + elif not os.path.isabs(value): diff --git a/meta-ros2-rolling/recipes-bbappends/ament-package/ament-package_0.17.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/ament-package/ament-package_0.17.0-1.bbappend new file mode 100644 index 0000000000..f752590e10 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/ament-package/ament-package_0.17.0-1.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" + +SRC_URI:append = " file://skip_shell_path.patch" From f8b6cf00bc33c138f05b0ca92ed6b48348ff0ece Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Mon, 7 Oct 2024 16:43:30 -0600 Subject: [PATCH 149/152] meta-ros-common: python3-pydot: Update branch to main The 'master' branch appears to no longer be present on github, switch to 'main'. Signed-off-by: Mark Hatle Signed-off-by: Trevor Woerner --- meta-ros-common/recipes-devtools/python/python-pydot.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-ros-common/recipes-devtools/python/python-pydot.inc b/meta-ros-common/recipes-devtools/python/python-pydot.inc index 8088f8b1f3..e302b28726 100644 --- a/meta-ros-common/recipes-devtools/python/python-pydot.inc +++ b/meta-ros-common/recipes-devtools/python/python-pydot.inc @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=f5ce36373e1542c5b82d521315da8cc2" SRCNAME = "pydot" SRCREV = "979b0b7685c911fd8ef05feec1d3fe8c62e3247d" -ROS_BRANCH ?= "branch=master" +ROS_BRANCH ?= "branch=main" SRC_URI = "git://github.com/pydot/pydot;${ROS_BRANCH};protocol=https" S = "${WORKDIR}/git" From 232e7249618164a6501c7704357f14e6dd563185 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Tue, 19 Nov 2024 12:30:03 -0800 Subject: [PATCH 150/152] {rolling} Set SPDX-compliant LICENSE values Signed-off-by: Rob Woolley --- .../image-common/camera-calibration-parsers_5.2.1-1.bbappend | 3 +++ .../image-common/image-transport_5.2.1-1.bbappend | 3 +++ .../image-pipeline/image-proc_6.0.0-2.bbappend | 1 + .../recipes-bbappends/vision-opencv/cv-bridge_4.1.0-1.bbappend | 2 ++ .../vision-opencv/image-geometry_4.1.0-1.bbappend | 2 ++ 5 files changed, 11 insertions(+) create mode 100644 meta-ros2-rolling/recipes-bbappends/image-common/camera-calibration-parsers_5.2.1-1.bbappend create mode 100644 meta-ros2-rolling/recipes-bbappends/image-common/image-transport_5.2.1-1.bbappend diff --git a/meta-ros2-rolling/recipes-bbappends/image-common/camera-calibration-parsers_5.2.1-1.bbappend b/meta-ros2-rolling/recipes-bbappends/image-common/camera-calibration-parsers_5.2.1-1.bbappend new file mode 100644 index 0000000000..3c6296ed41 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/image-common/camera-calibration-parsers_5.2.1-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/image-common/image-transport_5.2.1-1.bbappend b/meta-ros2-rolling/recipes-bbappends/image-common/image-transport_5.2.1-1.bbappend new file mode 100644 index 0000000000..3c6296ed41 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/image-common/image-transport_5.2.1-1.bbappend @@ -0,0 +1,3 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc_6.0.0-2.bbappend b/meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc_6.0.0-2.bbappend index 0362f0456d..a381fe7664 100644 --- a/meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc_6.0.0-2.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc_6.0.0-2.bbappend @@ -3,3 +3,4 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" SRC_URI += "file://new-api-for-opencv-aruco.patch" +LICENSE = "BSD-3-Clause" diff --git a/meta-ros2-rolling/recipes-bbappends/vision-opencv/cv-bridge_4.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/vision-opencv/cv-bridge_4.1.0-1.bbappend index f3a192155c..4b75301a23 100644 --- a/meta-ros2-rolling/recipes-bbappends/vision-opencv/cv-bridge_4.1.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/vision-opencv/cv-bridge_4.1.0-1.bbappend @@ -3,6 +3,8 @@ ROS_BUILD_DEPENDS:remove = "python-numpy" ROS_BUILD_DEPENDS:remove = "python3-numpy" +LICENSE = "Apache-2.0 & BSD-3-Clause" + ROS_BUILDTOOL_DEPENDS += " \ ${PYTHON_PN}-numpy-native \ " diff --git a/meta-ros2-rolling/recipes-bbappends/vision-opencv/image-geometry_4.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/vision-opencv/image-geometry_4.1.0-1.bbappend index 317b0394e8..c20e3a82fb 100644 --- a/meta-ros2-rolling/recipes-bbappends/vision-opencv/image-geometry_4.1.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/vision-opencv/image-geometry_4.1.0-1.bbappend @@ -8,3 +8,5 @@ ROS_BUILDTOOL_DEPENDS = " \ ament-cmake-ros-native \ python3-numpy-native \ " + +LICENSE = "BSD-3-Clause" From ed7dfa3e3f67f99a40aff6098b88776a28282e90 Mon Sep 17 00:00:00 2001 From: Rob Woolley Date: Tue, 19 Nov 2024 12:31:36 -0800 Subject: [PATCH 151/152] {rolling} cv-bridge: Fix buildpaths QA issue Signed-off-by: Rob Woolley --- .../vision-opencv/cv-bridge_4.1.0-1.bbappend | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta-ros2-rolling/recipes-bbappends/vision-opencv/cv-bridge_4.1.0-1.bbappend b/meta-ros2-rolling/recipes-bbappends/vision-opencv/cv-bridge_4.1.0-1.bbappend index 4b75301a23..bdfcc9ab3a 100644 --- a/meta-ros2-rolling/recipes-bbappends/vision-opencv/cv-bridge_4.1.0-1.bbappend +++ b/meta-ros2-rolling/recipes-bbappends/vision-opencv/cv-bridge_4.1.0-1.bbappend @@ -8,3 +8,8 @@ LICENSE = "Apache-2.0 & BSD-3-Clause" ROS_BUILDTOOL_DEPENDS += " \ ${PYTHON_PN}-numpy-native \ " + +# QA Issue: File /opt/ros/rolling/share/cv_bridge/cmake/cv_bridge-extras.cmake in package cv-bridge-dev contains reference to TMPDIR [buildpaths] +do_install:append() { + sed -i -e "s#${RECIPE_SYSROOT}##g" ${D}${ros_datadir}/cv_bridge/cmake/cv_bridge-extras.cmake +} From fd2dd6cb4863d2ff972525e7f2bb3d72ad47a372 Mon Sep 17 00:00:00 2001 From: Stephen Street Date: Wed, 20 Nov 2024 15:12:21 -0800 Subject: [PATCH 152/152] {ros2} Add required ROS2 SDK environment variables Signed-off-by: Stephen Street --- .../ros-sdk-env/ros-sdk-env_1.0.bb | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 meta-ros2/recipes-devtools/ros-sdk-env/ros-sdk-env_1.0.bb diff --git a/meta-ros2/recipes-devtools/ros-sdk-env/ros-sdk-env_1.0.bb b/meta-ros2/recipes-devtools/ros-sdk-env/ros-sdk-env_1.0.bb new file mode 100644 index 0000000000..4e0e9d25f2 --- /dev/null +++ b/meta-ros2/recipes-devtools/ros-sdk-env/ros-sdk-env_1.0.bb @@ -0,0 +1,51 @@ +# Copyright (c) Stephen Street stephen@redrocketcomputing.com + +SUMMARY = "Add ROS2 SDK enviroment variable" +HOMEPAGE = "https://github.com/meta-ros" +SECTION = "devel" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit python3native ros_opt_prefix + +FILES:${PN} = "${SDKPATHNATIVE}/post-relocate-setup.d/ros-sdk-env.sh ${SDKPATHNATIVE}/post-relocate-setup.d/ros-sdk-setup.sh" + +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" + +# This was pulled from meta-ros/meta-ros2/classes/ros_ament_cmake.bbclass +PYTHON_SOABI_ARCH = "${TUNE_ARCH}-${TARGET_OS}" +PYTHON_SOABI_ARCH_SUFFIX = "-gnu" + +# The suffix is already included in TARGET_OS +PYTHON_SOABI_ARCH_SUFFIX:arm = "" + +# Another exception is i686 TUNE_ARCH in dunfell and newer with this change: +# https://git.openembedded.org/openembedded-core/commit/?h=dunfell&id=6beab388e73b3ac6157650855a6c1fb1d71e8015 +PYTHON_SOABI_ARCH:i686 = "i386-${TARGET_OS}" + +PYTHON_SOABI = "cpython-${@d.getVar('PYTHON_BASEVERSION').replace('.', '')}${PYTHON_ABI}-${PYTHON_SOABI_ARCH}${PYTHON_SOABI_ARCH_SUFFIX}" + +do_install:append:class-nativesdk () { + echo "export PYTHON_SOABI=${PYTHON_SOABI}" > ${S}/ros-sdk-env.sh + echo "export PYTHON3_NUMPY_INCLUDE_DIR="'$OECORE_TARGET_SYSROOT'"/usr/lib/python${PYTHON_BASEVERSION}/site-packages/numpy/core/include" >> ${S}/ros-sdk-env.sh + echo "export PYTHONWARNINGS=ignore" >> ${S}/ros-sdk-env.sh + echo "export AMENT_SKIP_SHELL_PATH=1" >> ${S}/ros-sdk-env.sh + + if [ -n "${ROS_SDK_UNIFY}" ]; then + echo 'source $OECORE_TARGET_SYSROOT'"${ros_base_prefix}/setup."'$0' >> ${S}/ros-sdk-env.sh + fi + echo "export PYTHONPATH="'$OECORE_TARGET_SYSROOT'"/usr/lib/python${PYTHON_BASEVERSION}/site-packages:"'$PYTHONPATH' >> ${S}/ros-sdk-env.sh + + mkdir -p ${D}${SDKPATHNATIVE}/post-relocate-setup.d + install -m 644 ${UNPACKDIR}/ros-sdk-env.sh ${D}${SDKPATHNATIVE}/post-relocate-setup.d/ros-sdk-env.sh + + echo "#! /usr/bin/env sh" > ${S}/ros-sdk-setup.sh + echo 'mkdir -p $OECORE_NATIVE_SYSROOT/environment-setup.d' >> ${S}/ros-sdk-setup.sh + echo 'install -m 755 $OECORE_NATIVE_SYSROOT/post-relocate-setup.d/ros-sdk-env.sh $OECORE_NATIVE_SYSROOT/environment-setup.d/ros-sdk-env.sh' >> ${S}/ros-sdk-setup.sh + + install -m 755 ${UNPACKDIR}/ros-sdk-setup.sh ${D}${SDKPATHNATIVE}/post-relocate-setup.d/ros-sdk-setup.sh +} + +BBCLASSEXTEND = " nativesdk"