Skip to content

Full rebuild Septmber 2026 : bump ros2-distro-mutex to 0.21.0 and build number to 26 and switch to new pinning mechanism - #43

Open
traversaro wants to merge 7 commits into
mainfrom
update202609
Open

Full rebuild Septmber 2026 : bump ros2-distro-mutex to 0.21.0 and build number to 26 and switch to new pinning mechanism#43
traversaro wants to merge 7 commits into
mainfrom
update202609

Conversation

@traversaro

@traversaro traversaro commented Sep 1, 2026

Copy link
Copy Markdown
Member

In particular, I would like to test the new pinning machinery introduced in RoboStack/vinca#138 . This effectively updates OpenCV to 5.* that I guess is mostly untested in ROS world (also other rolling distro efforts like's idesign0's brew one, nix overlay and bazel just ping opencv to 4.*) so I would expect a few failures due to that.

@traversaro

traversaro commented Sep 2, 2026

Copy link
Copy Markdown
Member Author
RoboStack patch Package version Classification Upstream resolution / required action
ros-rolling-foxglove-bridge.patch 3.5.0 Needs updating Upstream changed substantially for Foxglove SDK 0.27.0. Refresh the platform selection, archive hashes and Apple framework linking.
ros-rolling-gz-ros2-control.osx.patch 4.0.1 Upstreamed Remove. Fixed by ros-controls/gz_ros2_control#900.
ros-rolling-moveit-ros-control-interface.patch 2.15.1 Upstreamed Remove. Fixed by moveit/moveit2#3818, specifically commit 73a9f195.
ros-rolling-moveit-ros-perception.patch 2.15.1 Upstreamed Remove. Fixed by moveit/moveit2#3818, specifically commit 6af0c951.
ros-rolling-rcl-yaml-param-parser.patch 10.5.2 Upstreamed Remove. Fixed by ros2/rcl#1325.
ros-rolling-rcutils.patch 7.2.2 Upstreamed Remove. The thread-linking part is ros2/rcutils#579; the atomic-initializer compatibility was subsequently incorporated in the same 7.2.2 release series.
ros-rolling-ros-gz-bridge.win.patch 4.0.1 Upstreamed Remove. Fixed by gazebosim/ros_gz#930.
ros-rolling-sbg-driver.patch 3.4.0 Upstreamed Remove. Upstream commit 8c7d9d1d; no associated PR was found.

Comment thread conda_build_config.yaml
- 2.17 # [linux and not riscv64]
- 2.39 # [linux and riscv64]
- 2.17 # [linux and (x86_64 or aarch64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
- 12.0 # [osx]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we will run into quite a few errors on macOS if we pin this below 14.0. I'm curious whether there's any way to "force update" this generated file. #31 (comment)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we can add the override in vinca_pinning.yaml's pinning_overrides.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, okay, cool. I didn't notice that

@traversaro

Copy link
Copy Markdown
Member Author

The build fails with:

Run pixi run rattler-build build --recipe-dir recipes --target-platform linux-64 -m ./conda_build_config.yaml -c https://prefix.dev/conda-forge -c https://prefix.dev/robostack-rolling --skip-existing

 ╭─ Finding outputs from recipe
 │ Loading variant config file: "./conda_build_config.yaml"
 │ Found 1 variants
 │ 
 │ Build variant: ros2-ament-cmake-cpplint-0.21.1-np2py314hbf8ec49_26
 │ 
 │ ╭──────────────────────┬────────────────────╮
 │ │ Variant              ┆ Version            │
 │ ╞══════════════════════╪════════════════════╡
 │ │ build_platform       ┆ "linux-64"         │
 │ │ c_compiler           ┆ "gcc"              │
 │ │ c_compiler_version   ┆ "15"               │
 │ │ c_stdlib             ┆ "sysroot"          │
 │ │ c_stdlib_version     ┆ "2.17"             │
 │ │ channel_sources      ┆ "conda-forge"      │
 │ │ channel_targets      ┆ "conda-forge main" │
 │ │ cxx_compiler         ┆ "gxx"              │
 │ │ cxx_compiler_version ┆ "15"               │
 │ │ numpy                ┆ "2"                │
 │ │ python               ┆ "3.14.* *_cp314"   │
 │ │ target_platform      ┆ "linux-64"         │
 │ ╰──────────────────────┴────────────────────╯
 │
 ╰─────────────────── (took 0 seconds)
Error:   × channel_sources and channels cannot both be set at the same time

Error: Process completed with exit code 1.

probably we need to remove the channels from the invocation, and override that.

@traversaro

traversaro commented Sep 2, 2026

Copy link
Copy Markdown
Member Author

Also updating the compiler bring its own regressions:

 │ │ [15/28] Building C object CMakeFiles/rmw.dir/src/time.c.o
 │ │ FAILED: [code=1] CMakeFiles/rmw.dir/src/time.c.o 
 │ │ $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -DROS_PACKAGE_NAME=\"rmw\" -D__STDC_WANT_LIB_EXT1__=1 -Drmw_EXPORTS -I$SRC_DIR/ros2-rmw/src/work/include -isystem $PREFIX/include/rcutils -isystem $PREFIX/include/rosidl_dynamic_typesupport -isystem $PREFIX/include/rosidl_runtime_c -isystem $PREFIX/include/rosidl_buffer -isystem $PREFIX/include/rosidl_typesupport_interface -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -fno-merge-constants -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ros2-rmw-7.11.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D__STDC_FORMAT_MACROS=1 -O3 -DNDEBUG -std=gnu17 -fPIC -Wall -Wextra -Wpedantic -fvisibility=hidden -MD -MT CMakeFiles/rmw.dir/src/time.c.o -MF CMakeFiles/rmw.dir/src/time.c.o.d -o CMakeFiles/rmw.dir/src/time.c.o -c $SRC_DIR/ros2-rmw/src/work/src/time.c
 │ │ In file included from $SRC_DIR/ros2-rmw/src/work/src/time.c:15:
 │ │ $SRC_DIR/ros2-rmw/src/work/include/rmw/time.h:60:1: error: unknown type name 'bool'
 │ │    60 | bool
 │ │       | ^~~~
 │ │ $SRC_DIR/ros2-rmw/src/work/include/rmw/time.h:29:1: note: 'bool' is defined in header '<stdbool.h>'; this is probably fixable by adding '#include <stdbool.h>'
 │ │    28 | #include "rmw/visibility_control.h"
 │ │   +++ |+#include <stdbool.h>
 │ │    29 | 
 │ │ $SRC_DIR/ros2-rmw/src/work/src/time.c:21:1: error: unknown type name 'bool'
 │ │    21 | bool
 │ │       | ^~~~
 │ │ $SRC_DIR/ros2-rmw/src/work/src/time.c:16:1: note: 'bool' is defined in header '<stdbool.h>'; this is probably fixable by adding '#include <stdbool.h>'
 │ │    15 | #include "rmw/time.h"
 │ │   +++ |+#include <stdbool.h>
 │ │    16 | 
 │ │ [16/28] Building C object CMakeFiles/rmw.dir/src/security_options.c.o
 │ │ [17/28] Building C object CMakeFiles/rmw.dir/src/qos_string_conversions.c.o
 │ │ [18/28] Building C object CMakeFiles/rmw.dir/src/subscription_content_filter_options.c.o
 │ │ [19/28] Building C object CMakeFiles/rmw.dir/src/subscription_options.c.o

fixed upstream in ros2/rmw#423 .

The inclusion of <stdbool.h> in time.h resolves compilation issues caused by changes in the include chain of rcutils.
@traversaro

traversaro commented Sep 2, 2026

Copy link
Copy Markdown
Member Author

New failure:

2026-09-02T08:53:05.9228526Z │ │ -- Build files have been written to: $SRC_DIR/build 2026-09-02T08:53:05.9402960Z │ │ [1/9] Generating rcl_yaml_param_parser/version.h 
2026-09-02T08:53:05.9877985Z │ │ [2/9] Building C object CMakeFiles/rcl_yaml_param_parser.dir/src/parse.c.o 2026-09-02T08:53:05.9907717Z │ │ FAILED: [code=1] CMakeFiles/rcl_yaml_param_parser.dir/src/parse.c.o 2026-09-02T08:53:05.9942071Z │ │ $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -DRCL_YAML_PARAM_PARSER_BUILDING_DLL -DROS_PACKAGE_NAME=\"rcl_yaml_param_parser\" -D__STDC_WANT_LIB_EXT1__=1 -Drcl_yaml_param_parser_EXPORTS -I$SRC_DIR/ros2-rcl-yaml-param-parser/src/work/include -I$SRC_DIR/build/ament_generate_version_header/rcl_yaml_param_parser -isystem $PREFIX/include/rcutils -isystem $PREFIX/include/rmw -isystem $PREFIX/include/rosidl_dynamic_typesupport -isystem $PREFIX/include/rosidl_runtime_c -isystem $PREFIX/include/rosidl_buffer -isystem $PREFIX/include/rosidl_typesupport_interface -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -fno-merge-constants -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ros2-rcl-yaml-param-parser-10.5.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D__STDC_FORMAT_MACROS=1 -O3 -DNDEBUG -fPIC -fvisibility=hidden -Wall -Wextra -Wpedantic -Wformat=2 -Wconversion -Wsign-conversion -MD -MT CMakeFiles/rcl_yaml_param_parser.dir/src/parse.c.o -MF CMakeFiles/rcl_yaml_param_parser.dir/src/parse.c.o.d -o CMakeFiles/rcl_yaml_param_parser.dir/src/parse.c.o -c $SRC_DIR/ros2-rcl-yaml-param-parser/src/work/src/parse.c 2026-09-02T08:53:06.0008107Z │ │ $SRC_DIR/ros2-rcl-yaml-param-parser/src/work/src/parse.c:32:10: fatal error: threads.h: No such file or directory 
2026-09-02T08:53:06.0037688Z │ │ 32 | #include <threads.h> 2026-09-02T08:53:06.0097697Z │ │ | ^~~~~~~~~~~ 2026-09-02T08:53:06.0127350Z │ │ compilation terminated. 2026-09-02T08:53:06.0197898Z │ │ [3/9] Building C object CMakeFiles/rcl_yaml_param_parser.dir/src/namespace.c.o 2026-09-02T08:53:06.0309272Z │ │ [4/9] Building C object CMakeFiles/rcl_yaml_param_parser.dir/src/node_params.c.o 2026-09-02T08:53:06.0465583Z │ │ [5/9] Building C object CMakeFiles/rcl_yaml_param_parser.dir/src/add_to_arrays.c.o 2026-09-02T08:53:06.0681625Z │ │ [6/9] Building C object CMakeFiles/rcl_yaml_param_parser.dir/src/yaml_variant.c.o 2026-09-02T08:53:06.0918668Z │ │ [7/9] Building C object CMakeFiles/rcl_yaml_param_parser.dir/src/parser.c.o 2026-09-02T08:53:06.0919762Z │ │ ninja: build stopped: subcommand failed. 2026-09-02T08:53:06.0936849Z │ │ × error Script failed with status 1 2026-09-02T08:53:06.0937206Z │ │ × error

this is similar to what @mini-1235 mentioned, we need to override an higher c_stdlib_version version for linux-* platforms w.r.t. to the default one used in conda-forge, as we had before.

@traversaro

Copy link
Copy Markdown
Member Author

On macOS we have an actual failure OpenCV 5 failure:

2026-09-02T09:13:14.4951450Z  │ │ +CXX_FOR_BUILD=$BUILD_PREFIX/bin/arm64-apple-darwin20.0.0-clang++
2026-09-02T09:13:14.4954540Z  │ │ +CXX=arm64-apple-darwin20.0.0-clang++
2026-09-02T09:13:14.4959630Z  │ │ +CXXFLAGS=-ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ros2-image-geometry-4.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix
2026-09-02T09:13:14.4963680Z  │ │ +DEBUG_CXXFLAGS=-ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ros2-image-geometry-4.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix
2026-09-02T09:13:14.5110180Z  │ │ USING PYTHON_EXECUTABLE=$PREFIX/bin/python
2026-09-02T09:13:14.5112470Z  │ │ USING PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config
2026-09-02T09:13:14.5265940Z  │ │ Using Python 3.14
2026-09-02T09:13:14.5577170Z  │ │ Using PYTHON_INSTALL_DIR: lib/python3.14/site-packages
2026-09-02T09:13:14.6518060Z  │ │ CMake Warning (deprecated) at CMakeLists.txt:1 (cmake_minimum_required):
2026-09-02T09:13:14.6519840Z  │ │   Compatibility with CMake < 3.10 will be removed from a future version of
2026-09-02T09:13:14.6520820Z  │ │ Ignoring COMPILE_WARNING_AS_ERROR target property and CMAKE_COMPILE_WARNING_AS_ERROR variable.
2026-09-02T09:13:14.6521380Z  │ │   CMake.
2026-09-02T09:13:14.6523970Z  │ │   Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
2026-09-02T09:13:14.6525460Z  │ │   to tell CMake that the project requires at least <min> but has been updated
2026-09-02T09:13:14.6526100Z  │ │   to work with policies introduced by <max> or earlier.
2026-09-02T09:13:14.6526990Z  │ │ This warning is for project developers.  Use -Wno-author or -Wno-deprecated
2026-09-02T09:13:14.6527400Z  │ │ to suppress it.
2026-09-02T09:13:15.7194830Z  │ │ -- The C compiler identification is Clang 21.1.8
2026-09-02T09:13:16.0564250Z  │ │ -- The CXX compiler identification is Clang 21.1.8
2026-09-02T09:13:16.1075260Z  │ │ -- Detecting C compiler ABI info
2026-09-02T09:13:16.3369340Z  │ │ -- Detecting C compiler ABI info - done
2026-09-02T09:13:16.3595210Z  │ │ -- Check for working C compiler: $BUILD_PREFIX/bin/arm64-apple-darwin20.0.0-clang - skipped
2026-09-02T09:13:16.3616320Z  │ │ -- Detecting C compile features
2026-09-02T09:13:16.3622020Z  │ │ -- Detecting C compile features - done
2026-09-02T09:13:16.3697550Z  │ │ -- Detecting CXX compiler ABI info
2026-09-02T09:13:16.5651430Z  │ │ -- Detecting CXX compiler ABI info - done
2026-09-02T09:13:16.5830690Z  │ │ -- Check for working CXX compiler: $BUILD_PREFIX/bin/arm64-apple-darwin20.0.0-clang++ - skipped
2026-09-02T09:13:16.5832800Z  │ │ -- Detecting CXX compile features
2026-09-02T09:13:16.5892550Z  │ │ -- Detecting CXX compile features - done
2026-09-02T09:13:16.6201790Z  │ │ -- Found ament_cmake_python: 2.9.1 ($PREFIX/share/ament_cmake_python/cmake)
2026-09-02T09:13:16.6326320Z  │ │ -- Found ament_cmake_ros: 0.16.0 ($PREFIX/share/ament_cmake_ros/cmake)
2026-09-02T09:13:17.4304200Z  │ │ CMake Error at $BUILD_PREFIX/share/cmake-4.4/Modules/FindPackageHandleStandardArgs.cmake:290 (message):
2026-09-02T09:13:17.4305910Z  │ │   Could NOT find OpenCV (missing: calib3d) (found version "5.0.0")
2026-09-02T09:13:17.4307050Z  │ │ Call Stack (most recent call first):
2026-09-02T09:13:17.4312230Z  │ │   $BUILD_PREFIX/share/cmake-4.4/Modules/FindPackageHandleStandardArgs.cmake:654 (_FPHSA_FAILURE_MESSAGE)
2026-09-02T09:13:17.4314820Z  │ │ -- Configuring incomplete, errors occurred!
2026-09-02T09:13:17.4316870Z  │ │   $PREFIX/lib/cmake/opencv5/OpenCVConfig.cmake:356 (find_package_handle_standard_args)
2026-09-02T09:13:17.4318190Z  │ │   CMakeLists.txt:18 (find_package)
2026-09-02T09:13:17.4348790Z  │ │ × error Script failed with status 1

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.

2 participants