Skip to content

Conversation

scpeters
Copy link
Contributor

Part of gazebosim/gz-jetty#38.

This bumps the gz-cmake version to 5.0.0 and adjusts for the removal of major versions from cmake package names and cmake targets (see gazebo-tooling/release-tools#1244). This removes the need for the extra unversioned cmake config files, since these are now provided by the upstream package.

In order to test the vendor packages before stable releases have been made, a VENDOR_FROM_LIB_VCS_REF option is added. The option is OFF by default, but when enabled allows vendoring from a branch, tag or commit specified in the LIB_VCS_REF variable or main if LIB_VCS_REF is unspecified.

scpeters added 2 commits July 31, 2025 22:03
Major version numbers have been removed from package
names in Gazebo Jetty, so extra cmake config files are
no longer needed.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
This allows vendoring from a specified vcs ref instead
of the hard-coded tag. When this option is set to true,
a branch, tag, or commit can be specified in the
LIB_VCS_REF variable. If LIB_VCS_REF is unspecified,
vendoring will use main.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
@azeey
Copy link
Collaborator

azeey commented Sep 5, 2025

CI to build all ROS core packages above gz_cmake_vendor. This should also test gz_utils_vendor and gz_math_vendor as it will check out the scpeters/jetty branch in each of them.

https://ci.ros2.org/job/ci_launcher/16858

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

Edit: The linux job failed because of an outage of archive.ubuntu.com. Rertry:

  • Linux Build Status

@azeey
Copy link
Collaborator

azeey commented Sep 5, 2025

This builds all the way up to gz_launch_vendor, but does not build any of the other ROS core packages other than the ones needed by the vendor packages.

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

Edit: Update gz-utils to use vendored version of CLI11. New builds:

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@azeey
Copy link
Collaborator

azeey commented Sep 8, 2025

I realized it is not possible to run the build up to gz_launch_vendor on ci.ros2.org since we can't install dependencies via rosdep. Instead, I ran the test on build.osrfoundation.org with one of the ci__colcon_any jobs. Unfortunetly, the existing ones also had an issue where it wasn't possible to install packages from packages.ros.org, so I copied and modified one of them manually to include that repo.

The first build failed due to an issue in gz-gui, which was fixed by gazebosim/gz-gui#713. The second build passed:

Build Status

I did see the following warnings:
gz-tools:

CMake Warning:
  Manually-specified variables were not used by the project:

    BUILD_DOCS

gz-sim:

In file included from /usr/include/pybind11/pybind11.h:16,
                 from /tmp/ws/build_isolated/gz_sim_vendor/gz_sim_vendor-prefix/src/gz_sim_vendor/src/SimulationRunner.cc:25:
In destructor ‘pybind11::gil_scoped_release::~gil_scoped_release()’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_destroy() [with _Tp = pybind11::gil_scoped_release]’ at /usr/include/c++/13/optional:287:35,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_reset() [with _Tp = pybind11::gil_scoped_release]’ at /usr/include/c++/13/optional:318:14,
    inlined from ‘std::_Optional_payload<_Tp, false, _Copy, _Move>::~_Optional_payload() [with _Tp = pybind11::gil_scoped_release; bool _Copy = false; bool _Move = false]’ at /usr/include/c++/13/optional:441:65,
    inlined from ‘std::_Optional_base<pybind11::gil_scoped_release, false, false>::~_Optional_base()’ at /usr/include/c++/13/optional:512:12,
    inlined from ‘std::optional<pybind11::gil_scoped_release>::~optional()’ at /usr/include/c++/13/optional:707:11,
    inlined from ‘{anonymous}::MaybeGilScopedRelease::~MaybeGilScopedRelease()’ at /tmp/ws/build_isolated/gz_sim_vendor/gz_sim_vendor-prefix/src/gz_sim_vendor/src/SimulationRunner.cc:82:8,
    inlined from ‘{anonymous}::MaybeGilScopedRelease::~MaybeGilScopedRelease()’ at /tmp/ws/build_isolated/gz_sim_vendor/gz_sim_vendor-prefix/src/gz_sim_vendor/src/SimulationRunner.cc:82:8,
    inlined from ‘void gz::sim::v10::SimulationRunner::UpdateSystems()’ at /tmp/ws/build_isolated/gz_sim_vendor/gz_sim_vendor-prefix/src/gz_sim_vendor/src/SimulationRunner.cc:647:5:
/usr/include/pybind11/gil.h:171:33: warning: ‘*(pybind11::gil_scoped_release*)((char*)&release + offsetof(<unnamed>::MaybeGilScopedRelease, <unnamed>::MaybeGilScopedRelease::release.std::optional<pybind11::gil_scoped_release>::<unnamed>.std::_Optional_base<pybind11::gil_scoped_release, false, false>::<unnamed>)).pybind11::gil_scoped_release::tstate’ may be used uninitialized [-Wmaybe-uninitialized]
  171 |             PyEval_RestoreThread(tstate);
      |             ~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/tmp/ws/build_isolated/gz_sim_vendor/gz_sim_vendor-prefix/src/gz_sim_vendor/src/SimulationRunner.cc: In member function ‘void gz::sim::v10::SimulationRunner::UpdateSystems()’:
/tmp/ws/build_isolated/gz_sim_vendor/gz_sim_vendor-prefix/src/gz_sim_vendor/src/SimulationRunner.cc:644:29: note: ‘*(pybind11::gil_scoped_release*)((char*)&release + offsetof(<unnamed>::MaybeGilScopedRelease, <unnamed>::MaybeGilScopedRelease::release.std::optional<pybind11::gil_scoped_release>::<unnamed>.std::_Optional_base<pybind11::gil_scoped_release, false, false>::<unnamed>)).pybind11::gil_scoped_release::tstate’ was declared here
  644 |       MaybeGilScopedRelease release;
      |                             ^~~~~~~
lto-wrapper: warning: using serial compilation of 9 LTRANS jobs
lto-wrapper: note: see the ‘-flto’ option documentation for more information
lto-wrapper: warning: using serial compilation of 2 LTRANS jobs
lto-wrapper: note: see the ‘-flto’ option documentation for more information

I'll go ahead and merge all the Jetty PRs now and sort out these warnings later since they dont' seem critical.

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