diff --git a/README.md b/README.md index 3e5943b39c3..c8f4f800e39 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** | diff --git a/meta-ros-common/classes/ros_cmake.bbclass b/meta-ros-common/classes/ros_cmake.bbclass index 75e53c5304c..fd4a0d00600 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-ros-common/classes/ros_opt_prefix.bbclass b/meta-ros-common/classes/ros_opt_prefix.bbclass index 4f0e7cc3663..ac53ecea8c9 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" @@ -30,8 +31,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}" diff --git a/meta-ros-common/conf/layer.conf b/meta-ros-common/conf/layer.conf index 7c8b127bb6d..df9dcc406be 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-ros-common/recipes-dbs/postgresql/postgresql_%.bbappend b/meta-ros-common/recipes-dbs/postgresql/postgresql_%.bbappend new file mode 100644 index 00000000000..d1f8a7200a7 --- /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" 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 00000000000..f5173038766 --- /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" 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 00000000000..117a9f953c8 --- /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" 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 e15448e2e5b..2b235a6f4eb 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 3ba6016f7e0..13d64990803 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 820c82231f7..7237b2d8d1c 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 49a5be51227..e9cc20885d5 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 22573ac1fb8..00000000000 --- 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/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 00000000000..d39bacde257 --- /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.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 c0826580c3c..b74214014f5 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,9 @@ 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 \ + file://0002-Force-shebang-to-usr-bin-env-python3.patch" +SRC_URI[sha256sum] = "8b3dcf0b140b2851a9169c60b3ed2ca78a6e48fec8ececdeefa287a6715f2e17" inherit pypi setuptools3 @@ -16,6 +15,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 e592a6da8ed..3d8c47353da 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 f5ad3e73dd0..085e748a14f 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 a430002b4b3..b949c6f2876 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 08ddb28463a..2b0c1c1bb4f 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 90c3db1a216..a183d579203 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 8d909914362..c34816b680f 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 520e8dc0ed3..d4f202dc94d 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 b73b8440532..f0162a3cefb 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 fbabf6fafd7..86b69855916 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 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 00000000000..45f7afebaa9 --- /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 00000000000..8940a8c9fb4 --- /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 00000000000..e16ba4bc530 --- /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 00000000000..f145f108d30 --- /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 00000000000..c38d6ea1c5f --- /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 00000000000..70852adce3f --- /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" 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 00000000000..367290bbabd --- /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 00000000000..2f98565e704 --- /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 00000000000..da670e07b77 --- /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 00000000000..4a270c3c364 --- /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 00000000000..097e31390b6 --- /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 00000000000..4ca6ec7820a --- /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 00000000000..99fac52e7c6 --- /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 00000000000..c9728f67c0b --- /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 00000000000..691e1fb4796 --- /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 00000000000..41c430774a2 --- /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 00000000000..40a755640c1 --- /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 00000000000..2346af8c167 --- /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 00000000000..93174a56cee --- /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 00000000000..fe1eebb567d --- /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 00000000000..6957ecbe768 --- /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 00000000000..8d64bc38603 --- /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 00000000000..e365e576fac --- /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 00000000000..f23cbd0b4a1 --- /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 00000000000..9718d3c25e2 --- /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 00000000000..038c12cbb02 --- /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 00000000000..18a43878e61 --- /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 00000000000..48997159973 --- /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" 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 00000000000..773ac17f257 --- /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 00000000000..dd31e973bd3 --- /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 00000000000..4c95add7b1d --- /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 00000000000..4bf13f554fd --- /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 00000000000..ddc319acf8c --- /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 00000000000..31b6385f14f --- /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 00000000000..c111d95547a --- /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 00000000000..cd4245830f7 --- /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 00000000000..5ea53a86938 --- /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 00000000000..23c84a76a61 --- /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 00000000000..a1b2208bf13 --- /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 00000000000..25f9356e26d --- /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 00000000000..a57d077dce9 --- /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 00000000000..90875cb932b --- /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 00000000000..3e73d7c5e73 --- /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 00000000000..402355d6924 --- /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 00000000000..3b9cf3e783c --- /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 00000000000..7c65acee013 --- /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 00000000000..ad8ef8e8c21 --- /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 00000000000..bd006438f25 --- /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 00000000000..76ee04e61ea --- /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 00000000000..7c9f26a18ec --- /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 00000000000..3a635aeee28 --- /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" 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 00000000000..253ad0f0459 --- /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 00000000000..fbe23b524f2 --- /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/* \ +" 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 00000000000..9aae8066b48 --- /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 00000000000..fc6593d67d2 --- /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 00000000000..08855c450a7 --- /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 00000000000..d5a160942bc --- /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 00000000000..440f07251cc --- /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 00000000000..09e5f600b5f --- /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 00000000000..9985d9ace3b --- /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" diff --git a/meta-ros-common/recipes-devtools/python/python-pydot.inc b/meta-ros-common/recipes-devtools/python/python-pydot.inc index 8088f8b1f3b..e302b287266 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" 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 00000000000..2a590838b56 --- /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 00000000000..2a590838b56 --- /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 00000000000..2a590838b56 --- /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 00000000000..2a590838b56 --- /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 14989f873bb..b1c5e4aa56d 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-devtools/python/python3-pyproj_%.bbappend b/meta-ros-common/recipes-devtools/python/python3-pyproj_%.bbappend new file mode 100644 index 00000000000..d1f8a7200a7 --- /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" 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 bea6a320a30..244c03e1581 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" 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 f4d106fe481..69a1a3e6add 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" 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 00000000000..b83c751853c --- /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 diff --git a/meta-ros2/recipes-devtools/libdeflate/libdeflate_1.19.bb b/meta-ros-common/recipes-extended/libdeflate/libdeflate_1.19.bb similarity index 92% rename from meta-ros2/recipes-devtools/libdeflate/libdeflate_1.19.bb rename to meta-ros-common/recipes-extended/libdeflate/libdeflate_1.19.bb index 11cdb829052..e5668ae0d43 100644 --- a/meta-ros2/recipes-devtools/libdeflate/libdeflate_1.19.bb +++ b/meta-ros-common/recipes-extended/libdeflate/libdeflate_1.19.bb @@ -13,3 +13,4 @@ SRCREV = "dd12ff2b36d603dbb7fa8838fe7e7176fcbd4f6f" inherit cmake pkgconfig +BBCLASSEXTEND = "native nativesdk" 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 00000000000..0243600ac5b --- /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" diff --git a/meta-ros-common/recipes-extended/pcl/pcl.inc b/meta-ros-common/recipes-extended/pcl/pcl.inc index 18928f7eefd..49c3554ed42 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" @@ -35,8 +34,15 @@ 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" # 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 +} 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 00000000000..cba4f9a1bf9 --- /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 00000000000..0bfc2bec9b5 --- /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.10.1.bb b/meta-ros-common/recipes-extended/pcl/pcl_1.10.1.bb index e5acbf9f7a8..cde17bc522f 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 13f027361d9..30c8c05f694 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,8 @@ 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 \ + file://0002-Do-not-leak-build-directory-paths-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 56e0d989e07..d30617fa97f 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,8 @@ 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 \ + file://0002-Do-not-leak-build-directory-paths-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 00000000000..ef3af21f29e --- /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" 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 00000000000..5101d862272 --- /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 7d28b9fff97..7c3e9516ff1 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 00000000000..4086dbc3590 --- /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 6e48af2e5c0..16632727dfc 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 00000000000..41626f3c3a3 --- /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 6063eecee21..efeebcc4610 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 00000000000..deafcfd4e40 --- /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 39037b80f57..92e408ccb57 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 5f2a4aaa18a..74fc234d5be 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 00000000000..95f689a649f --- /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 7de4f7bdddb..af36f5eada0 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 00000000000..15306b77da9 --- /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 e49f203d8cf..c2def57740c 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 00000000000..709324e3df7 --- /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 5d2039c025a..a7e8f84a354 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 00000000000..4259363c4f6 --- /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 08ca5210a41..6fe23325b82 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 b9a1f16be83..d1e2efd96b5 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 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 5f9d3555f85..71574aaa024 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" 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 00000000000..d1f8a7200a7 --- /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" 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 00000000000..d1f8a7200a7 --- /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" 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 00000000000..79dd9bc3511 --- /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 00000000000..5774165a67b --- /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 00000000000..6206a1cae8f --- /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 00000000000..47394b70bd1 --- /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 00000000000..4f2c5c67046 --- /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 00000000000..7844a7ee5e8 --- /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 00000000000..628545b52de --- /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 00000000000..a08bbf91e17 --- /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 00000000000..4add170a352 --- /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 00000000000..a3ae2453d9c --- /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 00000000000..7e516527a7d --- /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 00000000000..f3aaca12e5a --- /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 00000000000..f63f3b8c7c4 --- /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 00000000000..3c832de46dd --- /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 00000000000..952fb3b4da2 --- /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 00000000000..62edae8e7f8 --- /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 00000000000..6d5f8349702 --- /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 00000000000..d3193ca5647 --- /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 00000000000..a4da6a12455 --- /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 00000000000..e69c0a2d8b3 --- /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 00000000000..27b5a45c332 --- /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 00000000000..8d2a580d25d --- /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 00000000000..af79c7b866e --- /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 00000000000..240bb8e81ae --- /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 00000000000..95c42a2861c --- /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" 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 00000000000..60c461887bd --- /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 00000000000..6d607e8c255 --- /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 00000000000..6611537020a --- /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" 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 00000000000..66af9afdc4c --- /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 00000000000..328a938d662 --- /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 00000000000..06cce14d184 --- /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 00000000000..54bf84fc97e --- /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 00000000000..a9ca33c73e1 --- /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 00000000000..d2d8e720944 --- /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 00000000000..b9e7b8d93f4 --- /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 00000000000..a292730f204 --- /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 00000000000..e339161942f --- /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 00000000000..bbee01d6144 --- /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 00000000000..6c92902bb3d --- /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 00000000000..9de45d60026 --- /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 00000000000..36dad57f177 --- /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 00000000000..6ba07f01949 --- /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" 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 00000000000..d1f8a7200a7 --- /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" 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 00000000000..d1f8a7200a7 --- /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" 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 00000000000..d1f8a7200a7 --- /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" 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 00000000000..d1f8a7200a7 --- /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" 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 00000000000..a6d738eed47 --- /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" 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 ec3ef75477c..40d6e1e3ccd 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 --- 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 2ae2b6c8456..6582a4fc4d9 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" diff --git a/meta-ros-common/recipes-support/asio/asio_%.bbappend b/meta-ros-common/recipes-support/asio/asio_%.bbappend index 13661a581e9..821ee7e7596 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/ceres-solver/ceres-solver_%.bbappend b/meta-ros-common/recipes-support/ceres-solver/ceres-solver_%.bbappend index 3881a219a24..a8569de3ad0 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" 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 e626c048b54..25aeb967ffa 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" 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 00000000000..c56d4ceff47 --- /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" 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 00000000000..19c97f32e08 --- /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 +} 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 00000000000..2a590838b56 --- /dev/null +++ b/meta-ros-common/recipes-support/libtinyxml2/libtinyxml2_%.bbappend @@ -0,0 +1 @@ +BBCLASSEXTEND += "nativesdk" 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 00000000000..8fcc68ae16e --- /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 \ +" 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 00000000000..fc0c0020fdc --- /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 \ +" 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 00000000000..a19dc62da73 --- /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" diff --git a/meta-ros1-noetic/conf/layer.conf b/meta-ros1-noetic/conf/layer.conf index dea2e6ef0e5..c69554a0b14 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-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 00000000000..267b1e1daad --- /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 cb3fbe7b043..f038acff557 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" 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 00000000000..6e4d61cb899 --- /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')}" 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 00000000000..c2ca72ac10b --- /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" diff --git a/meta-ros1/classes/ros_catkin.bbclass b/meta-ros1/classes/ros_catkin.bbclass index 92788608bfe..d493badbaf4 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 @@ -55,3 +60,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' +} diff --git a/meta-ros1/conf/layer.conf b/meta-ros1/conf/layer.conf index ef30d535936..350daf70c98 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-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-humble/conf/layer.conf b/meta-ros2-humble/conf/layer.conf index 7b9b8e60b16..70d4ac4c5ad 100644 --- a/meta-ros2-humble/conf/layer.conf +++ b/meta-ros2-humble/conf/layer.conf @@ -21,6 +21,7 @@ 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 +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 00000000000..aa9bfbf70a8 --- /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 \ +" 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 00000000000..d05b178f17d --- /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/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 00000000000..6ab14b05d3c --- /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 2e8afcb9691..288d2e1c346 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" 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 00000000000..991e30694a6 --- /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" 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 459c2f54b71..4e04055f3b4 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) 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 00000000000..10da6a76f09 --- /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" 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 00000000000..db57bd890ef --- /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 df173150d87..00000000000 --- 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 93e9e23ba1c..a5fc022473b 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" 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 8ac82ad1275..bad7e40dd52 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 +} 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 00000000000..6e4d61cb899 --- /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')}" diff --git a/meta-ros2-iron/conf/layer.conf b/meta-ros2-iron/conf/layer.conf index ab0c6707f9e..195593bb1a7 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-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 00000000000..d05b178f17d --- /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 00000000000..991e30694a6 --- /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" 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 8ac82ad1275..bad7e40dd52 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 +} diff --git a/meta-ros2-jazzy/conf/layer.conf b/meta-ros2-jazzy/conf/layer.conf index 37f2d6ee500..378ff685cd4 100644 --- a/meta-ros2-jazzy/conf/layer.conf +++ b/meta-ros2-jazzy/conf/layer.conf @@ -21,6 +21,7 @@ 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 +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 00000000000..a8874e44fd6 --- /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 \ +" 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 00000000000..d05b178f17d --- /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/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 00000000000..6ab14b05d3c --- /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 e9ebdc0a717..288d2e1c346 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" 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 00000000000..991e30694a6 --- /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" 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 8ac82ad1275..bad7e40dd52 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 +} diff --git a/meta-ros2-rolling/conf/layer.conf b/meta-ros2-rolling/conf/layer.conf index d19c079c9e0..72da2d03384 100644 --- a/meta-ros2-rolling/conf/layer.conf +++ b/meta-ros2-rolling/conf/layer.conf @@ -21,6 +21,7 @@ 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 +require conf/ros-distro/include/rolling/ros-sdk.inc 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 36a92102f04..56afd3dd680 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" 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 ec7ba1709cd..92e05b67fe0 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)}" @@ -199,3 +184,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" 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 09c17f20059..13a8a594260 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 @@ -386,3 +379,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" 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 00000000000..444d0cc96eb --- /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 \ +" 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 00000000000..506b1167d56 --- /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 00000000000..f752590e108 --- /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" 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 00000000000..80dd34f52ba --- /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 \ +" 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 7a3f2da3644..790b2528552 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 \ 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 873664669a5..6f754933a67 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 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 96b8e8f71f2..33973334098 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 e06bd2adb73..157ff8ddd02 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 e8bb4fa7ae7..848674837c5 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 cda9f783671..a8aae5320e7 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 6c34b6aa7f0..afc217e610f 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 b01c57b3bb8..c8247f89676 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 289ba82d996..0bf2e266b68 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 06b11c8fcdb..29a3a8fec2e 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 fcda4464917..efe8379e3d0 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 d7bc48355af..031ee6989e2 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 290fd12ef2b..a69dcb4d5f0 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 8776a7f4cb1..a68db8f76aa 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 3bb5417ee6b..e333abbd2d6 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,10 @@ # 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 + +# 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-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 bfcb0bafad5..b698e71f5fd 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 3ef4467598b..c323468f6de 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 c86416f0036..db65f71f616 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,10 @@ # 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 + +# 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/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 c169329a667..053db079ad4 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 \ " 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 00000000000..d05b178f17d --- /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/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 00000000000..6ab14b05d3c --- /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 e9ebdc0a717..288d2e1c346 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" 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 00000000000..991e30694a6 --- /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" 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 00000000000..a4c8a08c13b --- /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 \ +" 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 8c1e9604b7b..c0add02a575 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" 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 00000000000..ddd798ff434 --- /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 41236f366ea..75440582f04 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] 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 782e64c397b..51423cab9c6 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. 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 8c93b5ea705..d5bb9553adf 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 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 00000000000..473f5dd0978 --- /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 00000000000..e67bf132558 --- /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-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 00000000000..2a496911d4f --- /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 00000000000..e014894deb4 --- /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 00000000000..93cbcd17243 --- /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 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 00000000000..627bc99850d --- /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 00000000000..955635d2471 --- /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 c63a28b645c..e7b81f7827a 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 00000000000..13ee7c2936f --- /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 00000000000..d80c625d7fd --- /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-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 00000000000..612c9d901d5 --- /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 00000000000..049ef7d1f4f --- /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" 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 00000000000..b4693dddad9 --- /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 00000000000..2d44762b8c0 --- /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 00000000000..59cf3cda259 --- /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 00000000000..d9df8b34c26 --- /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 00000000000..8196c459d55 --- /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 00000000000..f9f6b133e7d --- /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 00000000000..934260ea4e3 --- /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 00000000000..6c2b0a945a7 --- /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 00000000000..c5a7c4bb824 --- /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" 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 3cf05b8ce4a..00000000000 --- 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 3019c2f127b..00000000000 --- 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 230c555c5ad..e9cef866df9 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 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 00000000000..3c6296ed412 --- /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 00000000000..3c6296ed412 --- /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/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 00000000000..f029d52adf8 --- /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 00000000000..a381fe76640 --- /dev/null +++ b/meta-ros2-rolling/recipes-bbappends/image-pipeline/image-proc_6.0.0-2.bbappend @@ -0,0 +1,6 @@ +# Copyright (c) 2024 Wind River Systems, Inc. + +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/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 6458765a447..dc190d354a7 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 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 00000000000..e9e03b893ec --- /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 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 a4285df5218..00000000000 --- 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 d508d80df20..f29b6b0fc9c 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" 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 00000000000..66406b8490d --- /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 00000000000..9e5e3870a21 --- /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" 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 94e9e4e697d..c7d2cc22ef2 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 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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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-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 00000000000..714418d1c47 --- /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 +} 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 00000000000..ef15d2882b5 --- /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 00000000000..ef15d2882b5 --- /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}" 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 0f2e015bd09..0872bba0d34 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 14d12189807..9ba53b74757 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 c6d179c9b5f..ecc9a09c0d9 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 37758b3cd20..65b3184a5f8 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 19573f123ef..3b4a299f77f 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 70263d34e0c..7ff839b3adf 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 e2462658931..ca6344fa4df 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 3b02986c063..f743561f5ec 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 00000000000..ff0ce6c3191 --- /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 00000000000..ff0ce6c3191 --- /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 00000000000..ff0ce6c3191 --- /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 00000000000..ff0ce6c3191 --- /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 e6b61bd63f2..0515afa63eb 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 00000000000..ff0ce6c3191 --- /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)} 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 00000000000..ef15d2882b5 --- /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}" 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 00000000000..ef15d2882b5 --- /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}" 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 00000000000..727c1ef2fad --- /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 00000000000..38249d98360 --- /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 00000000000..e293bddba1e --- /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 00000000000..1407d626f64 --- /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 00000000000..cc2ea800327 --- /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}" 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 de099e512af..3523030d422 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" 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 4474ad65d17..00000000000 --- 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" diff --git a/meta-ros2-rolling/recipes-bbappends/pinocchio/pinocchio_%.bbappend b/meta-ros2-rolling/recipes-bbappends/pinocchio/pinocchio_%.bbappend index 1a12b6c8833..53820415eff 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 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 00000000000..59760b7a5c9 --- /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 3c4e43e1cda..05e4952a64b 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}:" 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 00000000000..07c50d9eee0 --- /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 df8ec276cda..4a543780617 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,5 +1,5 @@ # 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" @@ -7,6 +7,11 @@ inherit ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'cmake_qt5', '', inherit python3native +export SIP_PROJECT_INCLUDE_DIRS="${STAGING_DIR_TARGET}/${libdir}/${PYTHON_DIR}/site-packages/PyQt5/bindings" + +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") # | CMake Warning at ros2-foxy-dunfell/tmp-glibc/work/core2-64-oe-linux/qt-gui-cpp/1.0.8-1-r0/recipe-sysroot/usr/lib/cmake/Qt5/Qt5Config.cmake:7 (message): @@ -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 -} 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 4403b8818f0..853dd258fc3 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 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 674ea2b89b0..347dffa0df7 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 \ " 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 86569524327..572d656edeb 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) 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 c35cf275e0e..24257ea9ea1 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 00000000000..b07939820d5 --- /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 ac5f93a1bad..57100c3ca77 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 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 00000000000..94652923c41 --- /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 00000000000..94652923c41 --- /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 00000000000..067e3809f7f --- /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)} 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 8ac82ad1275..bad7e40dd52 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 +} 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 ca1e8ce7382..59364420eab 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 \ " 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 33e30500c24..c13ffb6d573 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 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 29016e0a2a8..1c496786cf4 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" 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 00000000000..5a00745a029 --- /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 25b5e4b6958..c535d6e42b6 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" 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 00000000000..9a230ccac8c --- /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 a93bc880d7d..747b3ee4c26 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" 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 00000000000..0ae85ba6853 --- /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 a4e5226d5e7..76c602d52a0 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" 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 00000000000..7965fd4442d --- /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 b522c1af9a4..ccf5cd3481f 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 \ " 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 00000000000..efffedd5252 --- /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 b522c1af9a4..0ef98d5913d 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 \ 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 00000000000..4d83fc7d3cd --- /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 00000000000..b34b6b8a1ec --- /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/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 00000000000..73780b36755 --- /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 a4e5226d5e7..c186ee8113b 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" 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 00000000000..a026a5f7972 --- /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 00000000000..b34b6b8a1ec --- /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" 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 eb989b1298c..24e3851cfde 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 = "(^$)" 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 5254ae444b4..e9c16d35448 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 6a9c78fa9a7..f2ceedfdef7 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 = "${SRCREV}" SRCREV_singleproducerconsumer-upstream = "ef7dfbf553288064347d51b8ac335f1ca489032a" -SRCREV_concurrentqueue-upstream = "8f65a8734d77c3cc00d74c0532efca872931d3ce" -SRCREV_FORMAT = "release_singleproducerconsumer-upstream_concurrentqueue-upstream" +SRCREV_FORMAT = "release_singleproducerconsumer-upstream" diff --git a/meta-ros2-rolling/recipes-bbappends/rqt/rqt-gui_%.bbappend b/meta-ros2-rolling/recipes-bbappends/rqt/rqt-gui_%.bbappend index 5c360dbe24b..fa306126f7f 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" 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 39eba151cb0..6fcee07b027 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 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 00000000000..558f54bb720 --- /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" 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 00000000000..23412023d46 --- /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 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 f3a192155cd..bdfcc9ab3a5 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,13 @@ 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 \ " + +# 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 +} 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 317b0394e89..c20e3a82fbf 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" 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 5ae0f0e6094..675ef8b8ef4 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" 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 00000000000..2c44b482c7f --- /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 3d06757d62a..99719c427e2 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" 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 a81f9ff6901..5fa74d6ca45 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" 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 6f73c3fc38a..00000000000 --- 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" 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 878ce540a3d..c8ff8be6237 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 \ diff --git a/meta-ros2/classes/ros_ament_cmake.bbclass b/meta-ros2/classes/ros_ament_cmake.bbclass index 49249dea79b..64eedb4590b 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: @@ -25,11 +26,14 @@ 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 \ " +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}' \ " @@ -38,3 +42,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}' \ +" diff --git a/meta-ros2/classes/ros_ament_python.bbclass b/meta-ros2/classes/ros_ament_python.bbclass index b6251b18600..03e3aa1bd79 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 = " \ diff --git a/meta-ros2/conf/layer.conf b/meta-ros2/conf/layer.conf index aa2c26ffb12..24163772204 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)" 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 54d4cd063d9..2463446919d 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" 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 00000000000..32668ba631e --- /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 \ +" 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 00000000000..4e0e9d25f2d --- /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" 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 00000000000..56951c88cae --- /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