Installing ros-iron-ros-gz installs Gazebo Garden instead of Fortress
wittenator opened this issue · 9 comments
Environment
- OS Version: 22.04
- Source or binary build?
Binary
Description
- Expected behavior: Gazebo Fortress should be installed
- Actual behavior: Gazebo Garden gets installed
Steps to reproduce
- Execute
sudo apt-get install ros-iron-ros-gz
Output
sudo apt install ros-iron-ros-gz
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
gz-plugin2-cli gz-sim7-cli gz-tools2 gz-transport12-cli libgz-cmake3-dev libgz-common5 libgz-common5-av libgz-common5-av-dev libgz-common5-core-dev
libgz-common5-dev libgz-common5-events libgz-common5-events-dev libgz-common5-geospatial libgz-common5-geospatial-dev libgz-common5-graphics
libgz-common5-graphics-dev libgz-common5-io libgz-common5-io-dev libgz-common5-profiler libgz-common5-profiler-dev libgz-common5-testing libgz-common5-testing-dev
libgz-fuel-tools8 libgz-fuel-tools8-dev libgz-gui7 libgz-gui7-dev libgz-math7 libgz-math7-dev libgz-math7-eigen3-dev libgz-msgs9 libgz-msgs9-dev libgz-physics6
libgz-physics6-bullet libgz-physics6-bullet-dev libgz-physics6-core-dev libgz-physics6-dartsim libgz-physics6-dartsim-dev libgz-physics6-dev
libgz-physics6-heightmap-dev libgz-physics6-mesh-dev libgz-physics6-sdf-dev libgz-physics6-tpe libgz-physics6-tpe-dev libgz-physics6-tpelib
libgz-physics6-tpelib-dev libgz-plugin2 libgz-plugin2-dev libgz-rendering7 libgz-rendering7-core-dev libgz-rendering7-dev libgz-rendering7-ogre1
libgz-rendering7-ogre1-dev libgz-rendering7-ogre2 libgz-rendering7-ogre2-dev libgz-sensors7 libgz-sensors7-air-pressure libgz-sensors7-air-pressure-dev
libgz-sensors7-air-speed libgz-sensors7-air-speed-dev libgz-sensors7-altimeter libgz-sensors7-altimeter-dev libgz-sensors7-boundingbox-camera
libgz-sensors7-boundingbox-camera-dev libgz-sensors7-camera libgz-sensors7-camera-dev libgz-sensors7-core-dev libgz-sensors7-depth-camera
libgz-sensors7-depth-camera-dev libgz-sensors7-dev libgz-sensors7-force-torque libgz-sensors7-force-torque-dev libgz-sensors7-gpu-lidar
libgz-sensors7-gpu-lidar-dev libgz-sensors7-imu libgz-sensors7-imu-dev libgz-sensors7-lidar libgz-sensors7-lidar-dev libgz-sensors7-logical-camera
libgz-sensors7-logical-camera-dev libgz-sensors7-magnetometer libgz-sensors7-magnetometer-dev libgz-sensors7-navsat libgz-sensors7-navsat-dev
libgz-sensors7-rendering libgz-sensors7-rendering-dev libgz-sensors7-rgbd-camera libgz-sensors7-rgbd-camera-dev libgz-sensors7-segmentation-camera
libgz-sensors7-segmentation-camera-dev libgz-sensors7-thermal-camera libgz-sensors7-thermal-camera-dev libgz-sensors7-wide-angle-camera
libgz-sensors7-wide-angle-camera-dev libgz-sim7 libgz-sim7-dev libgz-sim7-plugins libgz-tools2-dev libgz-transport12 libgz-transport12-core-dev
libgz-transport12-dev libgz-transport12-log libgz-transport12-log-dev libgz-transport12-parameters libgz-transport12-parameters-dev libgz-utils2
libgz-utils2-cli-dev libgz-utils2-dev libogre-next-2.3-dev libogre-next-2.3.0 libsdformat13 libsdformat13-dev ros-iron-actuator-msgs
ros-iron-compressed-depth-image-transport ros-iron-compressed-image-transport ros-iron-image-transport-plugins ros-iron-ros-gzgarden-bridge
ros-iron-ros-gzgarden-image ros-iron-ros-gzgarden-interfaces ros-iron-ros-gzgarden-sim ros-iron-ros-gzgarden-sim-demos ros-iron-sdformat-urdf
ros-iron-theora-image-transport ros-iron-xacro sdformat13-sdf
Suggested packages:
ogre-next-2.3-doc
The following NEW packages will be installed:
gz-plugin2-cli gz-sim7-cli gz-tools2 gz-transport12-cli libgz-cmake3-dev libgz-common5 libgz-common5-av libgz-common5-av-dev libgz-common5-core-dev
libgz-common5-dev libgz-common5-events libgz-common5-events-dev libgz-common5-geospatial libgz-common5-geospatial-dev libgz-common5-graphics
libgz-common5-graphics-dev libgz-common5-io libgz-common5-io-dev libgz-common5-profiler libgz-common5-profiler-dev libgz-common5-testing libgz-common5-testing-dev
libgz-fuel-tools8 libgz-fuel-tools8-dev libgz-gui7 libgz-gui7-dev libgz-math7 libgz-math7-dev libgz-math7-eigen3-dev libgz-msgs9 libgz-msgs9-dev libgz-physics6
libgz-physics6-bullet libgz-physics6-bullet-dev libgz-physics6-core-dev libgz-physics6-dartsim libgz-physics6-dartsim-dev libgz-physics6-dev
libgz-physics6-heightmap-dev libgz-physics6-mesh-dev libgz-physics6-sdf-dev libgz-physics6-tpe libgz-physics6-tpe-dev libgz-physics6-tpelib
libgz-physics6-tpelib-dev libgz-plugin2 libgz-plugin2-dev libgz-rendering7 libgz-rendering7-core-dev libgz-rendering7-dev libgz-rendering7-ogre1
libgz-rendering7-ogre1-dev libgz-rendering7-ogre2 libgz-rendering7-ogre2-dev libgz-sensors7 libgz-sensors7-air-pressure libgz-sensors7-air-pressure-dev
libgz-sensors7-air-speed libgz-sensors7-air-speed-dev libgz-sensors7-altimeter libgz-sensors7-altimeter-dev libgz-sensors7-boundingbox-camera
libgz-sensors7-boundingbox-camera-dev libgz-sensors7-camera libgz-sensors7-camera-dev libgz-sensors7-core-dev libgz-sensors7-depth-camera
libgz-sensors7-depth-camera-dev libgz-sensors7-dev libgz-sensors7-force-torque libgz-sensors7-force-torque-dev libgz-sensors7-gpu-lidar
libgz-sensors7-gpu-lidar-dev libgz-sensors7-imu libgz-sensors7-imu-dev libgz-sensors7-lidar libgz-sensors7-lidar-dev libgz-sensors7-logical-camera
libgz-sensors7-logical-camera-dev libgz-sensors7-magnetometer libgz-sensors7-magnetometer-dev libgz-sensors7-navsat libgz-sensors7-navsat-dev
libgz-sensors7-rendering libgz-sensors7-rendering-dev libgz-sensors7-rgbd-camera libgz-sensors7-rgbd-camera-dev libgz-sensors7-segmentation-camera
libgz-sensors7-segmentation-camera-dev libgz-sensors7-thermal-camera libgz-sensors7-thermal-camera-dev libgz-sensors7-wide-angle-camera
libgz-sensors7-wide-angle-camera-dev libgz-sim7 libgz-sim7-dev libgz-sim7-plugins libgz-tools2-dev libgz-transport12 libgz-transport12-core-dev
libgz-transport12-dev libgz-transport12-log libgz-transport12-log-dev libgz-transport12-parameters libgz-transport12-parameters-dev libgz-utils2
libgz-utils2-cli-dev libgz-utils2-dev libogre-next-2.3-dev libogre-next-2.3.0 libsdformat13 libsdformat13-dev ros-iron-actuator-msgs
ros-iron-compressed-depth-image-transport ros-iron-compressed-image-transport ros-iron-image-transport-plugins ros-iron-ros-gz ros-iron-ros-gzgarden-bridge
ros-iron-ros-gzgarden-image ros-iron-ros-gzgarden-interfaces ros-iron-ros-gzgarden-sim ros-iron-ros-gzgarden-sim-demos ros-iron-sdformat-urdf
ros-iron-theora-image-transport ros-iron-xacro sdformat13-sdf
0 upgraded, 125 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/33,1 MB of archives.
After this operation, 201 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Do you have any other PPAs or repositories installed? To me, it looks like you are using one of the "unofficial" binaries that we have packaged here: https://build.osrfoundation.org/job/ros_gzgarden_bridge-install-pkg_iron-ci-jammy-amd64/4/
Those should not be aviailable on packages.ros.org by default, though.
I previously had Gazebo installed separately. Am I supposed to remove the Gazebo PPAs before trying to install Gazebo via ros-gz? As far as I see e.g. ros-iron-ros-gzgarden-image comes from the PPA: http://packages.osrfoundation.org/gazebo/ubuntu-stable jammy/main.
When you want to use the ros_gz packages from a ros distribution (such as humble/iron/rolling), that will source the gazebo packages from packages.ros.org
. This is to provide maximum compatibility for ROS users without having to fuss with PPAs. As a result, the gazebo packages may lag behind, as they are pinned to LTS versions (in this case fortress rather than garden).
The newest gazebo packages are always available from packages.osrfoundation.org
, which is the package mirror for gazebo.
The ros-iron-ros-gz-garden
package that you used from packages.osrfoundation.org
is an unofficial convenience package that we provide for users who want to use unsupported binary combinations. This allows you to skip building the bridge from source.
I think ros-iron-ros-gz
should only install the version of Gazebo in Fortress. The unofficial versions have a suffix (gzgarden
or gzharmonic
). I just did a quick check with apt-cache show ros-iron-ros-gz
and I get
Package: ros-iron-ros-gz
Version: 0.245.0-1002jammy
Architecture: amd64
Maintainer: Louise Poubel <louise@openrobotics.org>
Installed-Size: 43
Depends: ros-iron-ros-gzgarden-bridge, ros-iron-ros-gzgarden-image, ros-iron-ros-gzgarden-sim, ros-iron-ros-gzgarden-sim-demos, ros-iron-ros-workspace
Priority: optional
Section: misc
Filename: pool/main/r/ros-iron-ros-gz/ros-iron-ros-gz_0.245.0-1002jammy_amd64.deb
Size: 6790
SHA256: 8abbdbe70724de061007ae656817f53915e4846a76fff9b49949b1e6da428b7e
SHA1: bbeee5a86b9e0f4787d6ab2760c4ff16f1a6ccb0
MD5sum: 0aa953b8e75e91204ea4c8cde5609f77
Description: Meta-package containing interfaces for using ROS 2 with Gazebo simulation.
Description-md5: 7c163df521e3acf63ef2167539969298
Package: ros-iron-ros-gz
Version: 0.245.0-1jammy.20230908.202510
Architecture: amd64
Maintainer: Louise Poubel <louise@openrobotics.org>
Installed-Size: 43
Depends: ros-iron-ros-gz-bridge, ros-iron-ros-gz-image, ros-iron-ros-gz-sim, ros-iron-ros-gz-sim-demos, ros-iron-ros-workspace
Priority: optional
Section: misc
Filename: pool/main/r/ros-iron-ros-gz/ros-iron-ros-gz_0.245.0-1jammy.20230908.202510_amd64.deb
Size: 6892
SHA256: e6ce382ed8f33f5c5962156208ca90c0e38f0a5a2c78781ed9d36b8904078bce
SHA1: 57a3160cd836161859837be90a22d8aa1fa7be88
MD5sum: 97e5e3215bb308d975f67d0dd342495b
Description: Meta-package containing interfaces for using ROS 2 with Gazebo simulation.
Description-md5: 7c163df521e3acf63ef2167539969298
And apt-cache policy ros-iron-ros-gz
shows:
ros-iron-ros-gz:
Installed: (none)
Candidate: 0.245.0-1002jammy
Version table:
0.245.0-1002jammy 500
500 http://packages.osrfoundation.org/gazebo/ubuntu-prerelease jammy/main amd64 Packages
0.245.0-1jammy.20230908.202510 500
500 http://packages.ros.org/ros2/ubuntu jammy/main amd64 Packages
This shows that there's a ros-iron-ros-gz
in the ubuntu-prerelease
repo that brings us Garden. @wittenator do you happen to have prereleases enabled on your system?
Anyways, we should remove the version in our prereleases to avoid any confusion. cc @j-rivero
Installing ros-iron-ros-gz installs Gazebo Garden instead of Fortress
This is a bug if this it is happening combining {ros,osrfoundation}.packages.org
.
I think
ros-iron-ros-gz
should only install the version of Gazebo in Fortress. The unofficial versions have a suffix (gzgarden
orgzharmonic
). I just did a quick check withapt-cache show ros-iron-ros-gz
and I get
This is correct. We are not generating packages with the same name than official ROS Iron ros_gz packages but change the name to use gzgarden
or gzharmonic
release.
Anyways, we should remove the version in our prereleases to avoid any confusion. cc @j-rivero
Seems a bug indeed while I was producing the prerelease packages. I would prefer not to remove packages but override them with newer versions so the upgrade path is easier. There are some changes in ros_gz
upstream that we can potentially release.
The weird thing is that I didn't enable pre-releases on my system. If I run apt-cache depends ros-iron-ros-gz
, I also get this:
ros-iron-ros-gz Depends: ros-iron-ros-gzgarden-bridge Depends: ros-iron-ros-gzgarden-image Depends: ros-iron-ros-gzgarden-sim Depends: ros-iron-ros-gzgarden-sim-demos Depends: ros-iron-ros-workspace
,
but for humble I get
ros-humble-ros-gz Depends: ros-humble-ros-gz-bridge Depends: ros-humble-ros-gz-image Depends: ros-humble-ros-gz-sim Depends: ros-humble-ros-gz-sim-demos Depends: ros-humble-ros-workspace
The weird thing is that I didn't enable pre-releases on my system. If I run
apt-cache depends ros-iron-ros-gz
, I also get this:
ros-iron-ros-gz Depends: ros-iron-ros-gzgarden-bridge Depends: ros-iron-ros-gzgarden-image Depends: ros-iron-ros-gzgarden-sim Depends: ros-iron-ros-gzgarden-sim-demos Depends: ros-iron-ros-workspace
,
This is wrong indeed. Could you please attach: apt-cache policy ros-iron-ros-gz
I missed the pre-release PPA in my sources list. After removing the offending PPA, I indeed get
ros-iron-ros-gz: Installed: 0.245.0-1jammy.20230908.202510 Candidate: 0.245.0-1jammy.20230908.202510 Version table: *** 0.245.0-1jammy.20230908.202510 500 500 http://packages.ros.org/ros2/ubuntu jammy/main amd64 Packages 100 /var/lib/dpkg/status
as an output of apt-cache policy ros-iron-ros-gz
and the output of apt-cache depends ros-iron-ros-gz
is
ros-iron-ros-gz Depends: ros-iron-ros-gz-bridge Depends: ros-iron-ros-gz-image Depends: ros-iron-ros-gz-sim Depends: ros-iron-ros-gz-sim-demos Depends: ros-iron-ros-workspace
I think that having the prerelease PPA active and trying to install ros-iron-ros-gz
without any modifier should not install the harmonic or garden version despite this, right?
I think that having the prerelease PPA active and trying to install
ros-iron-ros-gz
without any modifier should not install the harmonic or garden version despite this, right?
You are right, the prerelease repository can host code that is not completely stable but should have not generated these kind of errors.