Skip to content

Conversation

@traversaro
Copy link
Member

No description provided.

wep21 added 2 commits December 1, 2025 00:13
Signed-off-by: wep21 <[email protected]>
Signed-off-by: wep21 <[email protected]>
@wep21
Copy link
Contributor

wep21 commented Nov 30, 2025

need to wait this migration?
https://conda-forge.org/status/migration/?name=fmt12_spdlog116

@traversaro

This comment was marked as outdated.

@traversaro

This comment was marked as outdated.

@traversaro
Copy link
Member Author

Actually, indeed pcl and vtk have not migrated to spdlog 1.16, see conda-forge/vtk-feedstock#413 (I am trying to unblock this in conda-forge/vtk-feedstock#417). How was it possible for PCL to be installed here?

Ok, I think by demangling the problematic symbol, the issue is more clear:

spdlog::details::log_msg::log_msg(spdlog::source_loc, fmt::v12::basic_string_view<char>, spdlog::level::level_enum, fmt::v12::basic_string_view<char>)

rclpy expects spdlog with fmt 12, but somehow fmt 11 is installed instead, resulting in error. However, this should be handled at the level of runexports of fmt in the librcl_logging_spdlog library, perhaps there is some missing rosdep key or fmt dep.

@traversaro
Copy link
Member Author

However, this should be handled at the level of runexports of fmt in the librcl_logging_spdlog library, perhaps there is some missing rosdep key or fmt dep.

Ok, this is indeed the output of:

2025-11-30T15:28:23.0502526Z  │ │ [lib/librcl_logging_spdlog.so] links against:
2025-11-30T15:28:23.0503013Z  │ │  ├─ lib/librcutils.so (ros-jazzy-rcutils)
2025-11-30T15:28:23.0503757Z  │ │  ├─ lib/libgcc_s.so.1 (libgcc)
2025-11-30T15:28:23.0504282Z  │ │  ├─ lib/librcl_logging_interface.so (ros-jazzy-rcl-logging-interface)
2025-11-30T15:28:23.0504798Z  │ │  ├─ libpthread.so.0 (system)
2025-11-30T15:28:23.0505139Z  │ │  ├─ libc.so.6 (system)
2025-11-30T15:28:23.0505490Z  │ │  ├─ lib/libstdc++.so.6.0.34 (libstdcxx)
2025-11-30T15:28:23.0505884Z  │ │  ├─ lib/libspdlog.so.1.16.0 (spdlog)
2025-11-30T15:28:23.0506330Z  │ │  └─ lib/librcpputils.so (ros-jazzy-rcpputils)

So fmt is not directly linked, but as spdlog ABI depends on fmt, we need anyhow to ensure that fmt is always a host dep if spdlog is a host dep, so in 7f5da0c I added fmt to spdlog rosdep key.

@traversaro
Copy link
Member Author

Ok, now it fails at package installation time as expected. This should unblocked by conda-forge/vtk-feedstock#417 and conda-forge/vtk-feedstock#413 .

wep21 added 2 commits December 3, 2025 15:43
Signed-off-by: wep21 <[email protected]>
Signed-off-by: wep21 <[email protected]>
@wep21

This comment was marked as outdated.

@traversaro
Copy link
Member Author

Checked in .pixi folder. #136

6df054a

* [ament_clang_format (tidy?) doesn't work on Windows #98](https://github.com/RoboStack/ros-jazzy/issues/98)

I backported ament/ament_lint#563 in aeef077, fyi @tony-p

@traversaro
Copy link
Member Author

#146
#147
#144
#127
#143
#145

05a9ed5

@traversaro
Copy link
Member Author

@gftabor if you want to check this pre-merge, I can also enable the SAVE_CACHE_AS_ARTIFACT option in the CI job.

@gftabor
Copy link
Contributor

gftabor commented Jan 19, 2026

@gftabor if you want to check this pre-merge, I can also enable the SAVE_CACHE_AS_ARTIFACT option in the CI job.

Ya I can test it. Presumably it would make a conda channel somewhere?

@traversaro
Copy link
Member Author

@gftabor if you want to check this pre-merge, I can also enable the SAVE_CACHE_AS_ARTIFACT option in the CI job.

Ya I can test it. Presumably it would make a conda channel somewhere?

No, the option itself just saves the cache of .conda files in a .zip artifacts. Then you can use it as a local conda channel, or upload it on a test channel (for example on prefix.dev).

@traversaro
Copy link
Member Author

#141
#124

For this two, I would need to more time to investigate, probably we can investigate them post-build as anyhow they would probably not need full rebuild to add a patch.

@Tobias-Fischer
Copy link
Contributor

I think for osx-arm64, we are just missing a full rebuild so the mavlink patch gets applied.

On osx-64 there is a weird iconv issue – I tried to find a solution, but failed. Personally, I think we can stop supporting – people still working on Intel Macs probably have other issues than getting ROS to run :P

@traversaro
Copy link
Member Author

On osx-64 there is a weird iconv issue – I tried to find a solution, but failed. Personally, I think we can stop supporting – people still working on Intel Macs probably have other issues than getting ROS to run :P

I think the actual issues is:

2026-01-20T00:06:50.7862980Z  │ │ Undefined symbols for architecture x86_64:
2026-01-20T00:06:50.7864370Z  │ │   "GeographicLib::Geocentric::Geocentric(double, double)", referenced from:
2026-01-20T00:06:50.7866460Z  │ │       mavros::extra_plugins::FakeGPSPlugin::FakeGPSPlugin(std::__1::shared_ptr<mavros::uas::UAS>) in fake_gps.cpp.o
2026-01-20T00:06:50.7869200Z  │ │       mavros::extra_plugins::GuidedTargetPlugin::gp_origin_cb(std::__1::shared_ptr<geographic_msgs::msg::GeoPointStamped_<std::__1::allocator<void>>>) in guided_target.cpp.o
2026-01-20T00:06:50.7873180Z  │ │       mavros::extra_plugins::GuidedTargetPlugin::handle_position_target_global_int(mavlink::__mavlink_message const*, mavlink::common::msg::POSITION_TARGET_GLOBAL_INT&, mavros::plugin::filter::SystemAndOk) in guided_target.cpp.o
2026-01-20T00:06:50.7877570Z  │ │   "void tf2::fromMsg<geometry_msgs::msg::Transform_<std::__1::allocator<void>>, Eigen::Transform<double, 3, 2, 0>>(geometry_msgs::msg::Transform_<std::__1::allocator<void>> const&, Eigen::Transform<double, 3, 2, 0>&)", referenced from:
2026-01-20T00:06:50.7881160Z  │ │       mavros::extra_plugins::FakeGPSPlugin::mocap_tf_cb(std::__1::shared_ptr<geometry_msgs::msg::TransformStamped_<std::__1::allocator<void>>>) in fake_gps.cpp.o
2026-01-20T00:06:50.7884280Z  │ │       mavros::extra_plugins::FakeGPSPlugin::transform_cb(geometry_msgs::msg::TransformStamped_<std::__1::allocator<void>> const&) in fake_gps.cpp.o
2026-01-20T00:06:50.7886930Z  │ │   "GeographicLib::Geocentric::IntForward(double, double, double, double&, double&, double&, double*) const", referenced from:
2026-01-20T00:06:50.7889220Z  │ │       mavros::extra_plugins::FakeGPSPlugin::FakeGPSPlugin(std::__1::shared_ptr<mavros::uas::UAS>) in fake_gps.cpp.o
2026-01-20T00:06:50.7892620Z  │ │       mavros::extra_plugins::GuidedTargetPlugin::handle_position_target_global_int(mavlink::__mavlink_message const*, mavlink::common::msg::POSITION_TARGET_GLOBAL_INT&, mavros::plugin::filter::SystemAndOk) in guided_target.cpp.o
2026-01-20T00:06:50.7896090Z  │ │   "GeographicLib::Geocentric::IntReverse(double, double, double, double&, double&, double&, double*) const", referenced from:
2026-01-20T00:06:50.7898800Z  │ │       mavros::extra_plugins::FakeGPSPlugin::send_fake_gps(rclcpp::Time const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in fake_gps.cpp.o
2026-01-20T00:06:50.7901750Z  │ │       mavros::extra_plugins::GuidedTargetPlugin::gp_origin_cb(std::__1::shared_ptr<geographic_msgs::msg::GeoPointStamped_<std::__1::allocator<void>>>) in guided_target.cpp.o
2026-01-20T00:06:50.7904220Z  │ │   "GeographicLib::Geoid::height(double, double) const", referenced from:
2026-01-20T00:06:50.7908440Z  │ │       mavros::extra_plugins::CameraPlugin::handle_camera_image_captured(mavlink::__mavlink_message const*, mavlink::common::msg::CAMERA_IMAGE_CAPTURED&, mavros::plugin::filter::SystemAndOk) in camera.cpp.o
2026-01-20T00:06:50.7913320Z  │ │       mavros::extra_plugins::FakeGPSPlugin::send_fake_gps(rclcpp::Time const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in fake_gps.cpp.o

the path of least resistance is just to remove mavros_extras from osx-64. On dropping osx-64, I would like to do some announcments on that somehow, not sure what is the best place to do that (social media? website?).

@Tobias-Fischer
Copy link
Contributor

On osx-64 there is a weird iconv issue – I tried to find a solution, but failed. Personally, I think we can stop supporting – people still working on Intel Macs probably have other issues than getting ROS to run :P

the path of least resistance is just to remove mavros_extras from osx-64. On dropping osx-64, I would like to do some announcments on that somehow, not sure what is the best place to do that (social media? website?).

Yes, that is a lot neater and works for me :)

@traversaro
Copy link
Member Author

Perfect, now also osx-arm64 fails with:

2026-01-20T10:34:44.9939620Z  │ │ Undefined symbols for architecture arm64:
2026-01-20T10:34:44.9950980Z  │ │   "GeographicLib::Geocentric::Geocentric(double, double)", referenced from:
2026-01-20T10:34:44.9952200Z  │ │       mavros::extra_plugins::FakeGPSPlugin::FakeGPSPlugin(std::__1::shared_ptr<mavros::uas::UAS>) in fake_gps.cpp.o
2026-01-20T10:34:44.9953390Z  │ │       mavros::extra_plugins::GuidedTargetPlugin::gp_origin_cb(std::__1::shared_ptr<geographic_msgs::msg::GeoPointStamped_<std::__1::allocator<void>>>) in guided_target.cpp.o
2026-01-20T10:34:44.9955740Z  │ │       mavros::extra_plugins::GuidedTargetPlugin::handle_position_target_global_int(mavlink::__mavlink_message const*, mavlink::common::msg::POSITION_TARGET_GLOBAL_INT&, mavros::plugin::filter::SystemAndOk) in guided_target.cpp.o
2026-01-20T10:34:44.9958110Z  │ │   "void tf2::fromMsg<geometry_msgs::msg::Transform_<std::__1::allocator<void>>, Eigen::Transform<double, 3, 2, 0>>(geometry_msgs::msg::Transform_<std::__1::allocator<void>> const&, Eigen::Transform<double, 3, 2, 0>&)", referenced from:
2026-01-20T10:34:44.9978570Z  │ │       mavros::extra_plugins::FakeGPSPlugin::mocap_tf_cb(std::__1::shared_ptr<geometry_msgs::msg::TransformStamped_<std::__1::allocator<void>>>) in fake_gps.cpp.o
2026-01-20T10:34:44.9980540Z  │ │       mavros::extra_plugins::FakeGPSPlugin::transform_cb(geometry_msgs::msg::TransformStamped_<std::__1::allocator<void>> const&) in fake_gps.cpp.o
2026-01-20T10:34:44.9996210Z  │ │   "GeographicLib::Geocentric::IntForward(double, double, double, double&, double&, double&, double*) const", referenced from:
2026-01-20T10:34:44.9998730Z  │ │       mavros::extra_plugins::FakeGPSPlugin::FakeGPSPlugin(std::__1::shared_ptr<mavros::uas::UAS>) in fake_gps.cpp.o
2026-01-20T10:34:45.0002800Z  │ │       mavros::extra_plugins::GuidedTargetPlugin::handle_position_target_global_int(mavlink::__mavlink_message const*, mavlink::common::msg::POSITION_TARGET_GLOBAL_INT&, mavros::plugin::filter::SystemAndOk) in guided_target.cpp.o
2026-01-20T10:34:45.0004850Z  │ │   "GeographicLib::Geocentric::IntReverse(double, double, double, double&, double&, double&, double*) const", referenced from:
2026-01-20T10:34:45.0014360Z  │ │       mavros::extra_plugins::FakeGPSPlugin::send_fake_gps(rclcpp::Time const&, Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) in fake_gps.cpp.o
2026-01-20T10:34:45.0018340Z  │ │       mavros::extra_plugins::GuidedTargetPlugin::gp_origin_cb(std::__1::shared_ptr<geographic_msgs::msg::GeoPointStamped_<std::__1::allocator<void>>>) in guided_target.cpp.o
2026-01-20T10:34:45.0019320Z  │ │   "GeographicLib::Geoid::height(double, double) const", referenced from:
2026-01-20T10:34:45.0020810Z  │ │       mavros::extra_plugins::CameraPlugin::handle_camera_image_captured(mavlink::__mavlink_message const*, mavlink::common::msg::CAMERA_IMAGE_CAPTURED&, mavros::plugin::filter::SystemAndOk) in camera.cpp.o

@traversaro
Copy link
Member Author

@gftabor if you want to check this pre-merge, I can also enable the SAVE_CACHE_AS_ARTIFACT option in the CI job.

Ya I can test it. Presumably it would make a conda channel somewhere?

The artifacts containg the all conda package built can found under "artifacts" in https://github.com/RoboStack/ros-jazzy/actions/runs/21168426529, (for win-64) can be found at https://github.com/RoboStack/ros-jazzy/actions/runs/21168426529/artifacts/5188060468 . Let me know if you can't access that files, I can upload them somewhere else.

@gftabor
Copy link
Contributor

gftabor commented Jan 20, 2026

@traversaro , I confirmed this closes #57 and tested #125 while I was there. LGTM

@traversaro
Copy link
Member Author

@traversaro , I confirmed this closes #57 and tested #125 while I was there. LGTM

Great! @Tobias-Fischer ready for me, feel free to merge if it is ok for you.

@Tobias-Fischer
Copy link
Contributor

Yay!

@Tobias-Fischer Tobias-Fischer merged commit fcd0db1 into RoboStack:main Jan 20, 2026
5 checks passed
@Tobias-Fischer
Copy link
Contributor

Our new test repeatedly fails for osx-arm64, blocking package uploads:

│ Installing test environment
 │ ✔ Successfully updated the test environment
 │ Testing commands:
 │ [INFO] [launch]: All log files can be found below /Users/runner/.ros/log/2026-01-21-22-33-08-701961-sjc20-bb713-cfce5978-1427-4fa0-8c99-2d02f419a456-F632AC8EBA91.local-4588
 │ [INFO] [launch]: Default logging verbosity is set to INFO
 │ [INFO] [robot_state_publisher-1]: process started with pid [4590]
 │ [robot_state_publisher-1] Problem to set affinity of thread with id [0x16b543000,dds.log] to value 0. Error 'Protocol family not supported'
 │ [robot_state_publisher-1] 2026-01-21 22:33:08.913 [SYSTEM Error] Problem to set affinity of thread with id [0x16b4b7000,dds.shm.wdog] to value 0. Error 'Protocol family not supported' -> Function configure_current_thread_affinity
 │ [robot_state_publisher-1] 2026-01-21 22:33:08.916 [SYSTEM Error] Problem to set affinity of thread with id [0x16b5cf000,dds.ev.0] to value 0. Error 'Protocol family not supported' -> Function configure_current_thread_affinity
 │ [robot_state_publisher-1] 2026-01-21 22:33:08.916 [SYSTEM Error] Problem to set affinity of thread with id [0x16b65b000,dds.udp.7410] to value 0. Error 'Protocol family not supported' -> Function configure_current_thread_affinity
 │ [robot_state_publisher-1] 2026-01-21 22:33:08.916 [SYSTEM Error] Problem to set affinity of thread with id [0x16b6e7000,dds.udp.7400] to value 0. Error 'Protocol family not supported' -> Function configure_current_thread_affinity
 │ [robot_state_publisher-1] 2026-01-21 22:33:08.919 [SYSTEM Error] Problem to set affinity of thread with id [0x16b773000,dds.shm.7411] to value 0. Error 'Protocol family not supported' -> Function configure_current_thread_affinity
 │ [robot_state_publisher-1] 2026-01-21 22:33:08.919 [SYSTEM Error] Problem to set affinity of thread with id [0x16b7ff000,dds.udp.7411] to value 0. Error 'Protocol family not supported' -> Function configure_current_thread_affinity
 │ [robot_state_publisher-1] 2026-01-21 22:33:08.922 [SYSTEM Error] Problem to set affinity of thread with id [0x16b88b000,dds.asyn.0.0] to value 0. Error 'Protocol family not supported' -> Function configure_current_thread_affinity
 │ [robot_state_publisher-1] 2026-01-21 22:33:09.165 [SYSTEM Error] Problem to set affinity of thread with id [0x16b917000,dds.shm.7000] to value 0. Error 'Protocol family not supported' -> Function configure_current_thread_affinity
 │ [robot_state_publisher-1] 2026-01-21 22:33:09.166 [SYSTEM Error] Problem to set affinity of thread with id [0x16b9a3000,dds.udp.7000] to value 0. Error 'Protocol family not supported' -> Function configure_current_thread_affinity
 │ test_node_output (robot_state_publisher_smoke_test_launch.TestRobotStatePublisher.test_node_output) ... FAIL
 │ ======================================================================
 │ FAIL: test_node_output (robot_state_publisher_smoke_test_launch.TestRobotStatePublisher.test_node_output)
 │ ----------------------------------------------------------------------
 │ Traceback (most recent call last):
 │   File "$PREFIX/etc/conda/test-files/ros-jazzy-robot-state-publisher/0/robot_state_publisher_smoke_test_launch.py", line 45, in test_node_output
 │     proc_output.assertWaitFor(
 │   File "$PREFIX/lib/python3.12/site-packages/launch_testing/io_handler.py", line 146, in assertWaitFor
 │     assert success, 'Waiting for output timed out'
 │            ^^^^^^^
 │ AssertionError: Waiting for output timed out
 │ ----------------------------------------------------------------------
 │ Ran 1 test in 0.510s
 │ FAILED (failures=1)

@Tobias-Fischer
Copy link
Contributor

I also don't understand why we don't use cyclonedds, we have https://github.com/RoboStack/ros-jazzy/blob/main/patch/ros-jazzy-rwm-implementation-cmake.osx.patch .. and that error should only happen with fastrtps?!?

@Tobias-Fischer
Copy link
Contributor

Now I'm wondering if we need to backport eProsima/Fast-DDS#5971 which hasn't landed in fastrtps 2.14.5 which is used in jazzy

@wep21 wep21 deleted the decrebuild branch January 22, 2026 02:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants