# Gazebo on Gentoo

**URL:** <https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786>\
**Category:** Projects\
**Created:** [May 2, 2017, 11:19pm UTC](https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786 "2017-05-02T23:19:37Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![allenh1](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/allenh1/32/7076_2.png) [@allenh1](https://discourse.openrobotics.org/u/allenh1)\
**Post date:** [May 2, 2017, 11:19pm UTC](https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786/1 "2017-05-02T23:19:37Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![jrivero](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/jrivero/32/239_2.png) [@jrivero](https://discourse.openrobotics.org/u/jrivero)\
**Post date:** [May 4, 2017, 5:01pm UTC](https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786/2 "2017-05-04T17:01:28Z")

</div>

Hello @allenh1:

Thanks for your efforts of maintaining Gazebo in Gentoo. According to the [information in the Gazebo website](http://gazebosim.org/#status), 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.

---

<div class="post-metadata">

**Author:** ![allenh1](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/allenh1/32/7076_2.png) [@allenh1](https://discourse.openrobotics.org/u/allenh1)\
**Post date:** [May 4, 2017, 7:08pm UTC](https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786/3 "2017-05-04T19:08:16Z")

</div>

@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?

---

<div class="post-metadata">

**Author:** ![jrivero](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/jrivero/32/239_2.png) [@jrivero](https://discourse.openrobotics.org/u/jrivero)\
**Post date:** [May 4, 2017, 9:17pm UTC](https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786/4 "2017-05-04T21:17:32Z")

</div>

> [@allenh1](#):
>
> Maybe it would be best to have a gazebo-kinetic and gazebo-lunar ebuild (along with the proper versioning, of course).

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 `gazebo7`and `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)

---

<div class="post-metadata">

**Author:** ![allenh1](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/allenh1/32/7076_2.png) [@allenh1](https://discourse.openrobotics.org/u/allenh1)\
**Post date:** [May 5, 2017, 4:25pm UTC](https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786/5 "2017-05-05T16:25:51Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![gbiggs](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/gbiggs/32/30361_2.png) [@gbiggs](https://discourse.openrobotics.org/u/gbiggs)\
**Post date:** [May 7, 2017, 10:27pm UTC](https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786/6 "2017-05-07T22:27:56Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![jrivero](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/jrivero/32/239_2.png) [@jrivero](https://discourse.openrobotics.org/u/jrivero)\
**Post date:** [May 8, 2017, 1:16pm UTC](https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786/7 "2017-05-08T13:16:27Z")

</div>

> [@gbiggs](#):
>
> So it should be called “gazebo”, there should be versions available for 7 and 8 (and minor/patch releases as appropriate)

Agree. +1 for using the slots.

> [@gbiggs](#):
>
> it should be slotted so that a user can have one version 7 and one version 8 installed simultaneously.

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.

---

<div class="post-metadata">

**Author:** ![gbiggs](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/gbiggs/32/30361_2.png) [@gbiggs](https://discourse.openrobotics.org/u/gbiggs)\
**Post date:** [May 8, 2017, 11:47pm UTC](https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786/8 "2017-05-08T23:47:25Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![allenh1](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/allenh1/32/7076_2.png) [@allenh1](https://discourse.openrobotics.org/u/allenh1)\
**Post date:** [May 9, 2017, 5:58pm UTC](https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786/9 "2017-05-09T17:58:56Z")

</div>

> [@gbiggs](#):
>
> 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.

---

<div class="post-metadata">

**Author:** ![allenh1](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/allenh1/32/7076_2.png) [@allenh1](https://discourse.openrobotics.org/u/allenh1)\
**Post date:** [May 18, 2017, 1:47am UTC](https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786/10 "2017-05-18T01:47:47Z")

</div>

Ok, so there is an update here…

> **[Lunar to target Gazebo 7](https://discourse.openrobotics.org/t/lunar-to-target-gazebo-7)**
>
> Hi ROS users! Recent Lunar testing unveiled that Gazebo7 and Gazebo8 won’t by side by side installable. We will thus have a last minute change and ROS Lunar will target Gazebo 7 (that is available upstream for all supported platforms). The...

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.

---

<div class="post-metadata">

**Author:** ![gbiggs](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/gbiggs/32/30361_2.png) [@gbiggs](https://discourse.openrobotics.org/u/gbiggs)\
**Post date:** [May 18, 2017, 11:08pm UTC](https://discourse.openrobotics.org/t/gazebo-on-gentoo/1786/11 "2017-05-18T23:08:52Z")

</div>

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.
