GNOME/GNOME without systemd



Brief instructions for using GNOME (3.14, 3.16 or 3.18) under OpenRC (rather than systemd!) in Gentoo, via Dantrell B.'s patchset.

Introduction
Users of GNOME 3 on Gentoo have, until recently, been required either to use systemd as their init system, or else to use a 'shim' overlay to pull in Funtoo's patched version of GNOME (which supports OpenRC).

Now, however, Dantrell B., the primary author of the Funtoo GNOME patchset, has made his work available for Gentoo users directly.

To be clear, this means that you can now enjoy the full GNOME experience (including session tracking and power management), even on a PC running 'stable branch' Gentoo, without systemd.

This brief guide leads you through the steps you need to take to get GNOME up and running under this patchset.

Prerequisites
It is assumed that:
 * having followed the vanilla "Installing Gentoo" process from the official Handbook, you are currently running a stock Gentoo system which has working internet access etc. (it is also fine to be on )
 * you have at least one 'regular' (non-root) user set up;
 * you have prepared your kernel and file for X-server installation ( and  variables set), as described here. You do not have to have actually installed the X-server, however (although since X-related problems are some of the most commonly encountered when installing GNOME, it is recommended that you do);
 * you have a UTF-8 locale selected (as described here).

Setting Global USE Flags
First, if you have the USE flag set in your  file, it is recommended to unset it now, to avoid issues with,  and dependencies later.

Next, ensure everything is up-to-date on your current setup, before proceeding further:

Installing the Overlays
You now have two options: either install Dantrell B.'s overlays under layman, or add them directly (assuming you are using version >= 2.2.16 of ).

Option 1: Installation under layman
To install the overlays, first emerge and configure, as detailed here, with the USE flag enabled (it is by default).

Then, edit the stanza of  so it reads:

Sync the overlay metadata, and add the 'generic' GNOME overlay:

Next, add the desired GNOME 'version' overlay(s); if using the 'stable' branch, you should use at least the one which matches the current stable  in Gentoo (either 3.14 or 3.16 at the time of writing).

For GNOME 3.14, issue:

For GNOME 3.16, issue:

For GNOME 3.18, issue:

Option 2: Direct Installation
Under modern (>= 2.2.16) versions of, it isn't necessary to use layman - you can add the overlays directly if you like.

Begin by ensuring the that you have a directory in place:

Check you have a file; if not, create it following the pattern below (adapt the  appropriately for your location):

Next, we need to create configuration files for Dantrell B.'s external overlays. At the time of writing there are four overlays: a 'common' one, and one for each of GNOME 3.14, and 3.16 and 3.18. Create the following file for the 'common' overlay:

Next, create the desired GNOME 'version' overlay configuration file(s), as shown below; if using the 'stable' branch, you should create at least the one which matches the current stable  in Gentoo (either 3.14 or 3.16 at the time of writing).

For GNOME 3.14, create the following file:

For GNOME 3.16, create the following file:

For GNOME 3.18, create the following file:

Next, if you haven't already got it on your system, install git:

Then sync everything:

Setting the Profile, and Updating
Dantrell's overlays provide a bundled set of profiles. By using one of these, you can conveniently set appropriate USE flags, masks etc., to ensure that installation proceeds smoothly. For any of the GNOME releases (3.14, 3.16 and 3.18) you can choose a 'standard' or 'extended' profile. The latter have more USE flags enabled by default, to yield a similar experience to the familiar profiles in Gentoo.

Select an appropriate profile now (at the time of writing, users on the "stable" branch should use the 3.14 or 3.16 profile;  users may use whichever of the three they choose):

(The numbering etc. on the list you see may well differ from the above.)

With the profile set, re-emerge, to pick up the new USE flags, default packages etc.

Now we need to install some prerequisites for GNOME without. Two of these (dbus and consolekit) will have already been installed as part of the above @world update under the custom profile. However, we still need and, so  these now:

Make sure the various services will come up on boot, and start them:

Preparing USE Flags Prior to GNOME Emerge
If there are any additional applications you would like installed as part of the GNOME emerge, set their USE flags now, as follows:

For example, to add the epiphany browser to the set of installed applications, do:

There are some additional GNOME 'quality of life' improvements in Dantrell's patchset (background resolution etc.), which are controlled by USE flags on certain packages. The defaults will probably be suitable for most users, but for more details please see here.

Emerging GNOME
Right, we are now ready to GNOME! To do so, issue:

Assuming that completes successfully, you should still check that the necessary X11 drivers have been properly emerged: often, they will not have been, particularly if you had to run the step more than once (due to build parallelism errors). To make sure, issue:

Configuring and Running GNOME
Once GNOME is emerged, you need to change the value in the  configuration file, so that the gdm display manager is used:

Then set and  to come up on boot, and disable  if you are using it:

Check if your machine has a plugdev group, and, if it does, add any regular users to it:

Start up GNOME!

You should now have a GNOME login screen visible (and this will also come up automatically on boot). On some machines, you may need to move the mouse or press a key, for the login screen to appear.

Have fun!

Using GNOME
For more information about the GNOME interface (which is generally self-explanatory), see https://gnome.org. Some additional useful setup tips about GNOME may also be found here.

External resources

 * Dantrell B.'s project homepage on GitHub