Gazebo on Gentoo

All,

I’m working on pulling in the other version of Gazebo to the ros-overlay for Gentoo.

I have an open question: would people prefer to emerge specific version of gazebo, or just have one ebuild?

e.g. To emerge Gazebo 8, you’d emerge “gazebo8” instead of just emerge “gazebo”.

Thoughts?

Hello @allenh1:

Thanks for your efforts of maintaining Gazebo in Gentoo. According to the information in the Gazebo website, currently gazebo7 and gazebo8 are supported.

I think that one of the valid points you can consider to support one or more versions of Gazebo ebuilds in the ros-overlay is how many ROS versions you want to support in that overlay: gazebo7 is the version supported in ROS Kinetic and gazebo8 is the one used in ROS Lunar. This can help Gentoo users to have the same simulator experience than the users on Ubuntu/Debian.

@jrivero those are some good points you make there. I suppose it doesn’t make much sense to support gazebo pre 7.0.0.

Maybe it would be best to have a gazebo-kinetic and gazebo-lunar ebuild (along with the proper versioning, of course).

Perhaps this should be extended to other packages in the repo?

I would not recommend using the ROS distros as identifiers for the gazebo packages: they are both independent projects with their own names and versions, it is probably more consistent to keep the naming/versioning scheme of both. I, as a gazebo user/dev, would be surprised to see gazebo versions named with ROS release names. It should be easier to create gazebo7and gazebo8 and make ebuilds to depend on the correct version or create a virtual named gazebo (it should make maintenance more easy and I have some valid use cases where you can use gazebo7 or gazebo8 with the same version of ROS)

Ok, that sounds good. Thank you for the input!

1 Like

Speaking as a very-very-long-time Gentoo user, I would prefer to see the package named following the Gentoo conventions. So it should be called “gazebo”, there should be versions available for 7 and 8 (and minor/patch releases as appropriate), and it should be slotted so that a user can have one version 7 and one version 8 installed simultaneously.

Agree. +1 for using the slots.

This would require patching since upstream does not implement the option of having two versions installed at the same time and some files are going to use the same names.

Yes, patching would be required, but that is fairly common for slotted ebuilds. I think that only the installation target names would need patching. It might alternatively be possible to write the ebuild so that it instructs Gazebo to install to a known directory based on version and then make symbolic links from the /usr/lib etc. locations using version-named files to the actual files.

I like that a lot, actually. I think this would be the best way.

Ok, so there is an update here…

https://discourse.ros.org/t/lunar-to-target-gazebo-7?source_topic_id=1786

Apparently, Gazebo 8 will not be ready for Lunar. So I suppose we should just keep things where they are currently.

Moreover, I am starting my internship at OSRF on Monday (May 22nd) and talking with @tfoote about working on a better solution to using ROS on Gentoo than the ROS overlay approach I am doing currently.

The idea is to generate ebuilds from the ROS buildfarm for all bloom-released packages.

That sounds like an awesome idea. You should be able to create an eclass to handle catkin packages and builds each one using catkin_make_isolated.