Open andy9a9 opened 4 months ago
Hi @andy9a9,
Yes, it is possible to use meta-ros2-jazzy with Scarthgap, Kirkstone, and with Styhead (ie "master"). You can see the kas configurations here: https://github.com/ros/meta-ros/tree/build/kas
I will update the table to reflect that soon. Most of my testing lately has been on Rolling while I have been working to set up CI/CD builds. If you encounter any problems with Jazzy let me know and I can backport any fixes you need.
Regards, Rob
Hello @robwoolley ,
That's a great news, thanks!
iron
branch to jazzy
, here are my changes which I had to do (I'm not at the end yet):
native
variantrqt-runtime-monitor
-> python3-pyqt5-sip
-> python3-pyqt5
-> qtquickcontrols2
python3-pyqt5-native
recipe doesn't exist since kirkstone
liblz4-vendor
ros-base
, rosbag2
, rosbag2-storage-default-plugins
, rosbag2-storage-mcap
, mcap-vendor
, liblz4-vendor
, ROS_UNRESOLVED_DEP-liblz4-dev
More info will come once I move forward...
Hi @andy9a9 ,
The sip tool jumped several major releases between kirkstone and scarthgap.
Some major fixes were required. I need to upstream them to oe-core and meta-qt5.
Details can be found in the working group minutes: https://docs.google.com/document/d/1LqUjcu6vdlqVJO62SreCyjzddNDZhfO2n-7qYghY_cQ/edit?usp=drivesdk
Let me know if there's anything I can help with.
Regards, Rob
Good to know :).
But have can I proceed with the liblz4-vendor
error? I see there an options:
liblz4-vendor
from mcap-vendor
SKIP_RECIPE[liblz4-vendor] ?= "${@bb.utils.contains('ROS_WORLD_SKIP_GROUPS', 'liblz4-vendor', 'Depends on unavailable ROS_UNRESOLVED_DEP-liblz4-dev', '', d)}"
mcap-vendor
to get rid of liblz4-vendor
dependency just for nowAs a temporary measure, I set the variable in ros-distro.inc (in master-next meta-ros2-rolling) ROS_UNRESOLVED_DEP-liblz4 = "lz4"
The correct long-term fix is to add an entry for OpenEmbedded under liblz4 in the rosdep metadata files.
Hi @robwoolley ,
thanks for ROS_UNRESOLVED_DEP-liblz4 = "lz4"
hint. I made a little progress here:
[buildpaths
] in final
ros2_distro.bbclass
which is dealing with that, but not fully, while is not handling paths under ros_prefix
+ROS_PREFIX_PATH ?= "${datadir}"
do_install:append:class-target() {
ROS_PREFIX_PATH =
"${ros_datadir}"`
eigen3-cmake-module
orocos-kdl-vendor
shared-queues-vendor
shared-queues-vendor_0.26.1-2
dc17fed08353f30a7e20676df7c8fc5e842ed011
release/jazzy/shared_queues_vendor
doesn't exist anymore and release/rolling/shared_queues_vendor/0.24.0-1
is not a tag
ROS_BRANCH = "nobranch=1"
has to be setorocos-kdl-vendor_0.5.0-3
shared-queues-vendor_0.26.1-2
nobranch
0001-CMakeLists.txt-use-system-orocos-kdl.patch
0001-CMakeLists.txt-fetch-orocos-kdl-with-bitbake-fetcher.patch
python-orocos-kdl
as a build-dep, but this component requires orocos-kdl-vendor
maybe...
ROS_BRANCH = "nobranch=1"
LIC_FILES_CHKSUM = "file://package.xml;beginline=13;endline=13;md5=557f7c2686192731d23aed84d2eebcb9"
S = "${WORKDIR}/git/orocos-kdl/orocos_kdl"
yaml-cpp-vendor_9.0.0-2
https://github.com/ros/meta-ros/commit/ad82ae26c7d098ab8d9bccf59de971e089e862f2
but for different version--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,26 +9,18 @@ ament_add_default_options()
# 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 0.8.0 QUIET NO_CMAKE_PACKAGE_REGISTRY)
-
+find_package(yaml-cpp 0.8.0 QUIET NO_CMAKE_PACKAGE_REGISTRY)
+if(yaml-cpp_FOUND)
+ message(STATUS "Found yaml-cpp ${yaml-cpp_VERSION}")
+else()
+ message(FATAL_ERROR "yaml-cpp not found -- missing from DEPENDS?")
+endif()
+
set(YAML_CPP_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
if(MSVC)
set(YAML_CPP_CXX_FLAGS "/wd4251 /wd4275 ${YAML_CPP_CXX_FLAGS}")
endif()
-ament_vendor(yaml_cpp_vendor
- SATISFIED ${yaml-cpp_FOUND}
- VCS_URL https://github.com/jbeder/yaml-cpp.git
- VCS_VERSION 0.8.0
- GLOBAL_HOOK
- CMAKE_ARGS
- "-DCMAKE_CXX_FLAGS=${YAML_CPP_CXX_FLAGS}"
- -DYAML_CPP_BUILD_CONTRIB:BOOL=OFF
- -DYAML_CPP_BUILD_TESTS:BOOL=OFF
- -DYAML_CPP_BUILD_TOOLS:BOOL=OFF
- -DYAML_BUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-)
-
ament_package(
CONFIG_EXTRAS "yaml_cpp_vendor-extras.cmake.in"
)
I'm still not at the end :)
Hello again,
so I went into end of compilation. Here are the latest changes which I had to made:
python-qt-binding
# python3-pyqt5-native dependency which wasn't needed
DEPENDS:remove = "sip3-native python3-pyqt5-native"
DEPENDS:append = "sip-native "
ros2_distro.bbclass
do_install:append:class-target() {
ament-cmake-gen-version-h
diff --git a/cmake/ament_generate_version_header.cmake b/cmake/ament_generate_version_header.cmake
index d9470b40..5d2a2795 100644
--- a/cmake/ament_generate_version_header.cmake
+++ b/cmake/ament_generate_version_header.cmake
@@ -147,7 +147,7 @@ function(ament_generate_version_header target)
"${SCRIPT_TEMPLATE_FILE}"
COMMENT "Generating ${ARG_HEADER_PATH}")
- add_custom_target("ament_generate_version_header__${target}"
+ add_custom_target("ament_generate_version_header__${target}" ALL
DEPENDS "${GENERATED_HEADER_FILE}")
add_dependencies("${target}" "ament_generate_version_header__${target}")
control-toolbox
ROS_BUILDTOOL_DEPENDS += "generate-parameter-library-py-native"
orocos-kdl-vendor
f1bbaed1b5190dbfefd08ca445e53d20d1a0066e
has a problem with compilation, switching back to original versionSRCREV_release = "92eb6e580958a6834df2c1c1ecee92cdbac2f363"
0001-CMakeLists.txt-fetch-orocos-kdl-with-bitbake-fetcher
# remove ros_prefix from pkconfig files
do_install:append:class-target() {
for f in ${D}${ros_libdir}/pkgconfig/* ; do
sed -i $f -e 's@${STAGING_DIR_HOST}${includedir}@\$\{includedir}@g' -e 's@${STAGING_DIR_NATIVE}${includedir}@\$\{includedir}@g'
done
}
disable-compiler-warnings
patch
controller-interface
controller-manager
hardware-interface
forward-command-controller
imu-sensor-broadcaster
joint-state-broadcaster
joint-trajectory-controller
pid-controller
ROS_BUILDTOOL_DEPENDS += "generate-parameter-library-py-native"
position-controllers
range-sensor-broadcaster
velocity-controllers
rosbag2-compression-zstd
0001-CMakeLists.txt-drop-dependency-on-zstd_vendor
rsl
ROS_BUILDTOOL_DEPENDS += "rosidl-default-runtime-native"
Basically that it! :) I didn't try to run it yet, so lets see... .
@robwoolley Are there any news? :)
Dear community!
I would like to ask you a question about release plan. On the https://docs.ros.org/en/rolling/Releases.html I can see, that Jazzy has EOL set to 2029, which seems to me the LTS version.
If I look at the Release table I don't see such a combination. Yocto's
Scarthgap
branch is a LTS and I would like to use it withJazzy
I see here ameta-ros2-jazzy
layer but not in a table. So is it possible to use such a combination? Would it be possible to update the table and mark aJazzy
as a LTS as well?Thank you