-
Notifications
You must be signed in to change notification settings - Fork 50
Description
Current situation
The different package managers that use gz-physics to install the DART dependency have different versions available.
At the time of writting:
- 6.12 Ubuntu Jammy official repositories
- 6.13.0 Conda-forge
- 6.13.0 Brew
The developer team would prefer to get rid of the 6.12.x version and move the Debian packages to the 6.13.x for the Ubuntu Jammy distribution. This has several problems:
- 6.12.x is the official version of DART in Jammy. This implies that all packages released in that platform are expect to use it. This includes all previous versions of Gazebo (Garden and Fortress),
- DART does not maintain ABI/API betwen minors, just patch bumps.
- Different major.minor versions of DART packages are not co-installable, 6.12 can not be installed together with the 6.13 version since development files (headers, buildsystem helpers, library symlinks,...) are using the same paths on both version.
- Debian packages for different major.minor would need to declare a conflict between each other, making impossible to maintain software that depend in different versions installed at the same time.
- dart 6.13.x packages could be uploaded to packages.o.o but we won't be covering the case of ROS users that consume ROS repositories + Ubuntu official packages.
Source code using DART
After checking links (ldd $lib
) and binary symbols (nm -D $lib
) in the gazebo libs, I'm think that the gz-physics source code that users DART is limited to the generation of the gz-physics dart plugin. The plugin is not linked against any other lib or being used in other compilation unit.
ldd /usr/lib/x86_64-linux-gnu/gz-physics-7/engine-plugins/libgz-physics7-dartsim-plugin.so.7.0.0~pre2 | grep dart
libdart-collision-bullet.so.6.12 => /lib/x86_64-linux-gnu/libdart-collision-bullet.so.6.12 (0x00007f30d2b58000)
libdart-collision-ode.so.6.12 => /lib/x86_64-linux-gnu/libdart-collision-ode.so.6.12 (0x00007f30d2b20000)
libdart.so.6.12 => /lib/x86_64-linux-gnu/libdart.so.6.12 (0x00007f30d25de000)
libdart-external-odelcpsolver.so.6.12 => /lib/x86_64-linux-gnu/libdart-external-odelcpsolver.so.6.12 (0x00007f30d132c000)
gz-physics dart packages
libgz-physics7-dartsim-dev: mainly CMake/pkg-config stuff and symlinks of the plugins (the .so files are no more than symlinks). The real file interesting here is /usr/include/gz/physics7/gz/physics/dartsim/World.hh
# dpkg -L libgz-physics7-dartsim-dev
/usr/include/gz/physics7/gz/physics/dartsim/World.hh
/usr/include/gz/physics7/gz/physics/dartsim-plugin
/usr/include/gz/physics7/gz/physics/dartsim-plugin/Export.hh
/usr/include/gz/physics7/gz/physics/dartsim-plugin/detail
/usr/include/gz/physics7/gz/physics/dartsim-plugin/detail/Export.hh
/usr/lib/x86_64-linux-gnu/cmake/gz-physics7-dartsim
/usr/lib/x86_64-linux-gnu/cmake/gz-physics7-dartsim/gz-physics7-dartsim-config-version.cmake
/usr/lib/x86_64-linux-gnu/cmake/gz-physics7-dartsim/gz-physics7-dartsim-config.cmake
/usr/lib/x86_64-linux-gnu/cmake/gz-physics7-dartsim/gz-physics7-dartsim-targets.cmake
/usr/lib/x86_64-linux-gnu/cmake/gz-physics7-dartsim-plugin
/usr/lib/x86_64-linux-gnu/cmake/gz-physics7-dartsim-plugin/gz-physics7-dartsim-plugin-config-version.cmake
/usr/lib/x86_64-linux-gnu/cmake/gz-physics7-dartsim-plugin/gz-physics7-dartsim-plugin-config.cmake
/usr/lib/x86_64-linux-gnu/cmake/gz-physics7-dartsim-plugin/gz-physics7-dartsim-plugin-targets-relwithdebinfo.cmake
/usr/lib/x86_64-linux-gnu/cmake/gz-physics7-dartsim-plugin/gz-physics7-dartsim-plugin-targets.cmake
/usr/lib/x86_64-linux-gnu/pkgconfig
/usr/lib/x86_64-linux-gnu/pkgconfig/gz-physics7-dartsim-plugin.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/gz-physics7-dartsim.pc
/usr/lib/x86_64-linux-gnu/gz-physics-7/engine-plugins/libgz-physics-dartsim-plugin.so
(/usr/lib/x86_64-linux-gnu/gz-physics-7/engine-plugins/libgz-physics-dartsim-plugin.so -> libgz-physics7-dartsim-plugin.so)
/usr/lib/x86_64-linux-gnu/gz-physics-7/engine-plugins/libgz-physics7-dartsim-plugin.so
( /usr/lib/x86_64-linux-gnu/gz-physics-7/engine-plugins/libgz-physics7-dartsim-plugin.so -> libgz-physics7-dartsim-plugin.so.7)
/usr/lib/x86_64-linux-gnu/libgz-physics7-dartsim-plugin.so
( /usr/lib/x86_64-linux-gnu/libgz-physics7-dartsim-plugin.so -> libgz-physics7-dartsim-plugin.so.7)
...
libgz-physics7-dartsim: real binary plugins and two symblinks
# dpkg -L libgz-physics7-dartsim
/usr/lib/x86_64-linux-gnu/libgz-physics7-dartsim-plugin.so.7.0.0~pre2
/usr/lib/x86_64-linux-gnu/gz-physics-7/engine-plugins/libgz-physics7-dartsim-plugin.so.7.0.0~pre2
/usr/lib/x86_64-linux-gnu/gz-physics-7/engine-plugins/libgz-physics7-dartsim-plugin.so.7
(/usr/lib/x86_64-linux-gnu/gz-physics-7/engine-plugins/libgz-physics7-dartsim-plugin.so.7 -> libgz-physics7-dartsim-plugin.so.7.0.0~pre2)
/usr/lib/x86_64-linux-gnu/libgz-physics7-dartsim-plugin.so.7
(/usr/lib/x86_64-linux-gnu/libgz-physics7-dartsim-plugin.so.7 -> libgz-physics7-dartsim-plugin.so.7.0.0~pre2)
...
Metadata
Metadata
Assignees
Labels
Type
Projects
Status