$OpenBSD: README-main,v 1.16 2013/01/06 10:41:14 ajacoutot Exp $

+-----------------------------------------------------------------------
| Running gnome-3.6.2p4 on OpenBSD
+-----------------------------------------------------------------------

(see "Cheat sheet" at the end of this file for a quick setup)

The GNOME desktop is composed of 2 meta-packages:
    * gnome, for a standard GNOME installation
    * gnome-extra, for a full GNOME installation

The "gnome" package is focused on generic usage to give the user the
choice to install his favorite applications for daily usage (i.e. PIM,
office and development type packages have been left out on purpose).

OpenGL and drm(4)
=================
GNOME requires a 3D accelerated display. By default, the drm(4) device
is only accessible by "root" and members of the "wheel" group. Both GDM
(when used to login) and users need access to /dev/drm0 which can be
done by running the following command as root (note that there may be
some security implications in doing this):
    chmod 0666 /dev/drm0

Another solution would be to create a new group (e.g. "video"), change
the group ownership of /dev/drm0 accordingly and put the users and
"_gdm" into that group.

Default limits
=============
The default shared memory limits on OpenBSD are too low for the Cogl 3D
graphics API to function properly so kern.shminfo.shmall must be raised:
    sysctl kern.shminfo.shmall=32768

To make it permanent, add the following line to /etc/sysctl.conf(5):
kern.shminfo.shmall=32768

Starting GNOME
==============

DBus
----
Before running gnome-session(1), a system-wide D-Bus daemon needs to be
running ("dbus_daemon" needs to be added to the "pkg_scripts" variable
in rc.conf.local(8)).

GDM
---
It is _strongly_ advised to use GDM as the login manager otherwise some
features like screen locking will not work properly. To do so, "gdm"
must be added at the end of "pkg_scripts" in rc.conf.local(8) (and
"xdm_flags" commented or removed).

Alternatively, to start GNOME without GDM (not recommended), the
following line needs to be added:
    exec /usr/local/bin/ck-launch-session /usr/local/bin/gnome-session
in ~/.xinitrc when using startx(1) (console login)
in ~/.xsession when using xdm(1) (xdm(1) or similar login)

mDNS/DNS-SD support
===================
The avahi-daemon(8) daemon provides Zeroconf support (aka. Bonjour /
Rendezvous) in GNOME. Several applications can optionally benefit from
it (e.g. the "Network" shortcut in nautilus(1)) while some others
will not work at all without it (e.g. seahorse-sharing(1)).

To make use of it, rc.conf.local(5) needs to contain the following line:
    multicast_host=YES
and "avahi_daemon" needs to be added to the "pkg_scripts" variable
_after_ "dbus_daemon".

Cheat sheet
===========
# chmod 0666 /dev/drm0
# echo 'kern.shminfo.shmall=32768' >> /etc/sysctl.conf
# echo 'multicast_host=YES' >> /etc/rc.conf.local
# echo 'pkg_scripts="${pkg_scripts} dbus_daemon avahi_daemon gdm"' >> /etc/rc.conf.local
