ROS

Preface
There are currently (June 2016) three ways of installing ROS on Gentoo:
 * 1) Following the official (but experimental) guide using an overlay
 * 2) Following the official Linux distribution agnostic guide
 * 3) Using ROS provided by portage's Gentoo repository

If you are unsure which one to pick, stick with the overlay-based method since the other two methods may require some troubleshooting. The other two options may be more attractive to purists.

Following the official guide and using the overlay
This section is intended to be complementary to the official ROS Jade Installation Guide.

Prerequisites
ROS jade has an overlay that is currently being maintained by the ROS Organization found here.

You will need to set up the ROS Overlay. This removes the need for layman.

Then sync the overlay (future operations will do this automatically):

In system dependencies:

It is not recommended to use pip in Gentoo. A large effort was made to ensure that all dependencies for primarily supported OS's (e.g. Ubuntu) are also resolved for Gentoo. Core ROS packages can be installed from the overlay.

Installation
The instructions from the official guide can be followed from this point.

Linux distro agnostic ROS install
This section is intended to be complementary to http://wiki.ros.org/Installation/Source.

The method suggested will install all ROS packages directly into your catkin workspace (so they won't be available in other workspaces) and installs ROS software dependencies from portage. As in the overlay based guide, avoid pip and install the required software for bootstrapping the ROS installation instead.

Installing ROS from Portage
ROS is already represented in Portage. For example:

Troubleshooting

 * ROScore won't start (it will appear inactive for some minutes and then display a message) unless the hostname is resolved correctly. The message will refer to http://wiki.ros.org/ROS/NetworkSetup
 * If you miss rosrun and other shell commands, install
 * Sourcing /etc/profile may help
 * requires use-flag rendering
 * requires use-flags ros_messages_eus ros_messages_lisp ros_messages_nodejs if you want to avoid warning at compile time
 * the same use-flags should also be set for  and other msgs as required