Difference between revisions of "Funtoo Beyond Gnome 3.6"

From Funtoo
Jump to: navigation, search
 
Line 44: Line 44:
 
There are no special actions to perform as ConsoleKit is still supported by GNOME as of 3.12 in the event that systemd is not found, however, be aware that ConsoleKit is no longer actively maintained as the focus has shifted to the development of systemd and consequently, may not always behave as expected.
 
There are no special actions to perform as ConsoleKit is still supported by GNOME as of 3.12 in the event that systemd is not found, however, be aware that ConsoleKit is no longer actively maintained as the focus has shifted to the development of systemd and consequently, may not always behave as expected.
  
== Special Notes about gdm ==
+
== Special Note about gdm ==
  
gdm 3.4 to 3.6 can still be used with gnome 3.10
+
Unlike gdm 3.8 and 3.10, gdm 3.12 no longer has a hard dependency on systemd. However, if for some reason you do not wish to use the latest version, you can downgrade to a version as low as 3.5.
  
gdm 3.8 and 3.10 has a hard dependency on systemd
+
== Special Note about gnome-system-log and gnome-logs ==
  
gdm 3.12 no longer has a hard dependency on systemd
+
As mentioned earlier, gnome-logs has a hard dependency on systemd since it is now a log viewer for the systemd journal. If you want the old functionality use gnome-system-log instead (this is done for you if you later emerge gnome instead of gnome-light). However, it is further recommended you use the live version of gnome-system-log instead of 3.9.90 as there have been a considerable amount of updates since that release:
  
== Special Notes about gnome-system-log and gnome-logs ==
+
Add the following to /etc/portage/package.keywords/gnome-system-log:
  
gnome-logs has a hard dependency on systemd since it is now a log view for the systemd journal. If you want the old functionality use gnome-system-log instead however it is recommended you use the live version instead of 3.9.90 as their have been a considerable amount of updates since that release:
+
<pre>
 
+
=app-admin/gnome-system-log-9999 **
Add "=app-admin/gnome-system-log-9999 **" to /etc/portage/package.keywords/gnome-system-log
+
</pre>
  
 
== Adding the GNOME Overlay ==
 
== Adding the GNOME Overlay ==
Line 83: Line 83:
 
== Unmasking GNOME 3.12 and Lesser ==
 
== Unmasking GNOME 3.12 and Lesser ==
  
{{fancynote|You do not need to unmask gnome 3.12 and lesser if you do not use the gnome mix-in but I have provided the list for your convenience should you wish to do so.}}
+
{{fancynote|You do not need to unmask gnome 3.12 and lesser if you do not use the gnome mix-in but I have provided the list for your convenience should you wish to do so. This unmask list is also useful as a template for upgrading beyond GNOME 3.12 before it is offically supported.}}
  
 
Add the following to /etc/portage/package/unmask/gnome-3.12:
 
Add the following to /etc/portage/package/unmask/gnome-3.12:
Line 177: Line 177:
 
== Masking GNOME 3.13 and Greater ==
 
== Masking GNOME 3.13 and Greater ==
  
{{fancynote|You do not need to mask gnome 3.13 and greater if you do not use the gnome overlay but I advise you to do so as a precaution.}}
+
{{fancynote|You do not need to mask gnome 3.13 and greater if you do not use the gnome overlay but I advise you to do so as a precaution. This mask list is also useful as a template for upgrading beyond GNOME 3.12 before it is offically supported}}
  
 
Add the following to /etc/portage/package/mask/gnome-3.13:
 
Add the following to /etc/portage/package/mask/gnome-3.13:
Line 259: Line 259:
  
 
== Masking Problem Packages ==
 
== Masking Problem Packages ==
 +
 +
=== telepathy-mission-control ===
  
 
{{fancynote|You do not need to mask the gentoo version of this package if successfully builds.}}
 
{{fancynote|You do not need to mask the gentoo version of this package if successfully builds.}}
Line 288: Line 290:
 
This is the version of GNOME that you want:
 
This is the version of GNOME that you want:
  
1. The gdm trick is no longer required and unlike in gnome 3.10, I can confirm that in gnome 3.12 gdm works 100% for session management (including screen locking).
+
1. gdm 3.12 works 100% for session management (including screen locking).
  
2. GNOME Classic is better than ever (gnome-shell -r --mode=classic).
+
2. GNOME Classic is better than ever (gnome-shell -r --mode=classic) for those who want a more traditional experience.
  
 
3. A minor annoyance with nautilus has been corrected.
 
3. A minor annoyance with nautilus has been corrected.
 
== Installing GNOME ==
 
 
To pull in everything do:
 
 
<console>
 
emerge -vauDN gnome
 
</console>
 
 
For a minimal install do:
 
 
<console>
 
emerge -vauDN gnome-light
 
</console>
 
  
 
== Patching GNOME 3.12 (Suspend and Hibernation) ==
 
== Patching GNOME 3.12 (Suspend and Hibernation) ==
  
{{fancywarning|Until further notice, this patch should be considered highly experimental}}
+
{{fancywarning|Until further notice, this patch should be considered experimental.}}
 
+
{{fancynote|Be aware that once this patch has been confirmed to work correctly, it may added directly to upower instead of remaining in upower-pm-utils.}}
+
 
+
GNOME 3.12 depends on upower-0.99.0 in which support for pm-utils has been removed (and for good reasons mind you). However I am opinion that leaving the deprecated features in the code harms no one, so I have taken the liberty of reverting those changes.
+
  
To use this patch, add the attachment found on [https://bugs.funtoo.org/browse/FL-1329 FL-1329] to the sys-power directory of your local overlay.
+
Add the attachment found on [https://bugs.funtoo.org/browse/FL-1329 FL-1329] to a new local overlay (to prevent clutter).
  
 
If you do not have a local overlay, create one:
 
If you do not have a local overlay, create one:
  
 
<console>
 
<console>
mkdir -p /usr/local/portage/profiles
+
mkdir -p /usr/local/portage-experimental
echo "local" >> /usr/local/portage/profiles/repo_name
+
  
chown root:portage /usr/local/portage
+
chown root:portage /usr/local/portage-experimental
chmod g+s /usr/local/portage
+
chmod g+s /usr/local/portage-experimental
chmod 775 /usr/local/portage
+
chmod 775 /usr/local/portage-experimental
  
echo "PORTDIR_OVERLAY=/usr/local/portage" >> /etc/portage/make.conf
+
echo "PORTDIR_OVERLAY=${PORTDIR_OVERLAY} /usr/local/portage-experimental" >> /etc/portage/make.conf
 
</console>
 
</console>
  
Line 334: Line 317:
  
 
<console>
 
<console>
mkdir -p /usr/local/portage/sys-power/upower-pm-utils
+
cd /usr/local/portage-experimental
cd /usr/local/portage/sys-power/upower-pm-utils
+
  
wget https://bugs.funtoo.org/secure/attachment/12001/upower-pm-utils.tar.xz && tar xvJf upower-pm-utils.tar.xz
+
wget https://bugs.funtoo.org/secure/attachment/12027/gnome-3.12-reintegrate-pm-utils-support.tar.xz && tar xvJf gnome-3.12-reintegrate-pm-utils-support.tar.xz
  
rm upower-pm-utils.tar.xz
+
rm gnome-3.12-reintegrate-pm-utils-support.tar.xz
 
+
eix-update
+
 
</console>
 
</console>
  
Now, remove upower:
+
Now, add the following to /etc/portage/package.use/_pm-utils:
  
<console>
+
<pre>
emerge -vaC upower
+
sys-power/acpid gnome
</console>
+
sys-power/upower deprecated
 +
gnome-base/gnome-control-center deprecated
 +
gnome-base/gnome-session deprecated
 +
gnome-base/gnome-settings-daemon deprecated
 +
gnome-base/gnome-shell deprecated
 +
</pre>
  
Then, install your choice of the patched upower:
+
== Installing GNOME ==
 +
 
 +
To pull in everything do:
  
 
<console>
 
<console>
emerge -va =upower-pm-utils-0.99.0
+
emerge -vauDN gnome
 
</console>
 
</console>
  
or
+
For a minimal install do:
  
 
<console>
 
<console>
emerge -va =upower-pm-utils-9999
+
emerge -vauDN gnome-light
 
</console>
 
</console>
 
Finally, add the following to /etc/portage/profile/package.provided
 
 
{{fancynote|This is a temporary measure until it is decided what form the patch upower will take should it be successful.}}
 
 
<pre>
 
sys-power/upower-0.99.0-r1
 
</pre>
 
  
 
== Verify the inode/directory MimeType Handler ==
 
== Verify the inode/directory MimeType Handler ==
Line 381: Line 360:
 
== Summary ==
 
== Summary ==
  
GNOME 3.10 works without systemd but gdm functionality is wonky (don't count on session management, screen locking, suspend or hibernation support).
+
GNOME 3.12 works without systemd (excluding support for pm-utils which must be added through the provided patchset).
 
+
GNOME 3.12 works without systemd and gdm functionality is confirmed to work 100% (excluding suspend and hibernation support which must be added through the provided upower patch).
+

Latest revision as of 05:33, 14 July 2014

Funtoo Beyond GNOME 3.6

As you may know, Funtoo is still on GNOME 3.6. The main issue with moving forward id the dependency of GNOME 3.8 and greater on systemd and by a lesser extension, logind.

However, through extensive research and testing, I have confirmed the position of the GNOME team dated 2012-11-04 that systemd is not a hard compile time dependency of GNOME itself but rather of what they consider basic functionality. As of GNOME 3.12, this basic functionality includes power management (specifically suspend and hibernation) and viewing the system log. There are ways to work around this, but more on that later.

Important Changes Between GNOME 3.6 and 3.12

Core

  • gnome-fallback was obsoleted in 3.10 in favor of MATE
  • gnome-panel was integrated with gnome-shell as of 3.10
  • gnome-screensaver was integrated with gnome-shell as of 3.8
  • metacity was fully replaced by mutter as of gnome 3.10

Games

  • gnome-games was obsoleted in gnome 3.8 in favor of separate packages

Apps

  • alacarate was broken as of gnome 3.12
  • gcalctool was replaced by gnome-calculator as of gnome 3.10
  • gnome-system-log was replaced by gnome-logs as of 3.10
  • menulibre was broken as of gnome 3.12
  • nautilus-open-terminal was integrated with gnome-terminal as of 3.10

Dealing with systemd

Add the following to your global USE flags in /etc/make.conf or /etc/portage/make.conf:

USE="openrc-force -systemd"

Add the following to /etc/portage/profile/use.mask:

-openrc-force

Dealing with logind

There are no special actions to perform as ConsoleKit is still supported by GNOME as of 3.12 in the event that systemd is not found, however, be aware that ConsoleKit is no longer actively maintained as the focus has shifted to the development of systemd and consequently, may not always behave as expected.

Special Note about gdm

Unlike gdm 3.8 and 3.10, gdm 3.12 no longer has a hard dependency on systemd. However, if for some reason you do not wish to use the latest version, you can downgrade to a version as low as 3.5.

Special Note about gnome-system-log and gnome-logs

As mentioned earlier, gnome-logs has a hard dependency on systemd since it is now a log viewer for the systemd journal. If you want the old functionality use gnome-system-log instead (this is done for you if you later emerge gnome instead of gnome-light). However, it is further recommended you use the live version of gnome-system-log instead of 3.9.90 as there have been a considerable amount of updates since that release:

Add the following to /etc/portage/package.keywords/gnome-system-log:

=app-admin/gnome-system-log-9999 **

Adding the GNOME Overlay

Note: Funtoo has removed certain packages that are still in Gentoo (>gtk+-3.8.7 and networkmanager-0.9.8.10) and in some cases, certain packages that are in both Funtoo and Gentoo fail to build (telepathy-mission-control). The easiest way to presently resolve this, is simply to add the GNOME overlay.

You will need layman, if you don't have it installed do:

emerge -va layman
layman -S

Then, make sure portage picks it up by adding the following to your /etc/make.conf or /etc/portage/make.conf:

source /var/lib/layman/make.conf

Finally, add the GNOME overlay:

layman -a gnome

Unmasking GNOME 3.12 and Lesser

Note: You do not need to unmask gnome 3.12 and lesser if you do not use the gnome mix-in but I have provided the list for your convenience should you wish to do so. This unmask list is also useful as a template for upgrading beyond GNOME 3.12 before it is offically supported.

Add the following to /etc/portage/package/unmask/gnome-3.12:

<app-accessibility/accerciser-3.13
<app-accessibility/orca-3.13
<app-cdr/brasero-3.13
<app-crypt/gcr-3.13
<app-dicts/gnome-dictionary-3.13.0
<app-editors/ghex-3.13
<app-misc/bijiben-3.13
<app-misc/gnote-3.13
<dev-libs/gdl-3.13
<dev-libs/seed-3.13
<dev-python/pygobject-3.13
<dev-util/anjuta-3.13
<dev-util/devhelp-3.13
<dev-util/gnome-devel-docs-3.13
<gnome-base/gdm-3.13
<gnome-base/gnome-3.13
<gnome-base/gnome-common-3.13.0
<gnome-base/gnome-control-center-3.13
<gnome-base/gnome-core-apps-3.13.0
<gnome-base/gnome-core-libs-3.13.0
<gnome-base/gnome-desktop-3.13
<gnome-base/gnome-extra-apps-3.13.0
<gnome-base/gnome-fallback-3.13.0
<gnome-base/gnome-keyring-3.13
<gnome-base/gnome-light-3.13
<gnome-base/gnome-menus-3.13
<gnome-base/gnome-session-3.13
<gnome-base/gnome-settings-daemon-3.13
<gnome-base/gnome-shell-3.13
<gnome-base/gsettings-desktop-schemas-3.13
<gnome-base/libgnome-keyring-3.13
<gnome-base/nautilus-3.13
<gnome-extra/evolution-data-server-3.13
<gnome-extra/evolution-ews-3.13
<gnome-extra/evolution-kolab-3.13
<gnome-extra/gnome-calculator-3.13
<gnome-extra/gnome-clocks-3.13
<gnome-extra/gnome-color-manager-3.13
<gnome-extra/gnome-contacts-3.13
<gnome-extra/gnome-documents-3.13
<gnome-extra/gnome-getting-started-docs-3.13
<gnome-extra/gnome-power-manager-3.13
<gnome-extra/gnome-shell-extensions-3.13
<gnome-extra/gnome-system-monitor-3.13
<gnome-extra/gnome-user-docs-3.13
<gnome-extra/gnome-user-share-3.13
<gnome-extra/gnome-weather-3.13
<gnome-extra/gucharmap-3.13
<gnome-extra/mousetweaks-3.13
<gnome-extra/sushi-3.13
<gnome-extra/yelp-3.13
<gnome-extra/yelp-xsl-3.13
<gnome-extra/zenity-3.13
<mail-client/evolution-3.13
<media-gfx/eog-3.13
<media-gfx/eog-plugins-3.13
<media-gfx/gnome-font-viewer-3.13
<media-gfx/gnome-photos-3.13
<media-gfx/gnome-screenshot-3.13
<media-video/totem-3.13
<net-im/empathy-3.13
<net-misc/vinagre-3.13
<sys-apps/gnome-disk-utility-3.13
<www-client/epiphany-3.13
<x11-libs/gtksourceview-3.13
<x11-libs/libcryptui-3.13
<x11-libs/libwnck-3.13
<x11-misc/alacarte-3.13.0
<x11-terms/gnome-terminal-3.13
<x11-themes/gnome-backgrounds-3.13
<x11-themes/gnome-icon-theme-3.13
<x11-themes/gnome-icon-theme-symbolic-3.13
<x11-themes/gnome-themes-standard-3.13
<x11-wm/mutter-3.13
games-arcade/gnome-robots
games-board/four-in-a-row
games-board/gnome-chess
games-board/gnome-mines
games-board/iagno
games-puzzle/five-or-more
games-puzzle/gnome-klotski
games-puzzle/gnome-sudoku
games-puzzle/gnome-tetravex
games-puzzle/quadrapassel
games-puzzle/swell-foop

Masking GNOME 3.13 and Greater

Note: You do not need to mask gnome 3.13 and greater if you do not use the gnome overlay but I advise you to do so as a precaution. This mask list is also useful as a template for upgrading beyond GNOME 3.12 before it is offically supported

Add the following to /etc/portage/package/mask/gnome-3.13:

>=app-accessibility/accerciser-3.13
>=app-accessibility/orca-3.13
>=app-cdr/brasero-3.13
>=app-crypt/gcr-3.13
>=app-dicts/gnome-dictionary-3.13.0
>=app-editors/ghex-3.13
>=app-misc/bijiben-3.13
>=app-misc/gnote-3.13
>=dev-libs/gdl-3.13
>=dev-libs/seed-3.13
>=dev-python/pygobject-3.13
>=dev-util/anjuta-3.13
>=dev-util/devhelp-3.13
>=dev-util/gnome-devel-docs-3.13
>=gnome-base/gdm-3.13
>=gnome-base/gnome-3.13
>=gnome-base/gnome-common-3.13.0
>=gnome-base/gnome-control-center-3.13
>=gnome-base/gnome-core-apps-3.13.0
>=gnome-base/gnome-core-libs-3.13.0
>=gnome-base/gnome-desktop-3.13
>=gnome-base/gnome-extra-apps-3.13.0
>=gnome-base/gnome-fallback-3.13.0
>=gnome-base/gnome-keyring-3.13
>=gnome-base/gnome-light-3.13
>=gnome-base/gnome-menus-3.13
>=gnome-base/gnome-session-3.13
>=gnome-base/gnome-settings-daemon-3.13
>=gnome-base/gnome-shell-3.13
>=gnome-base/gsettings-desktop-schemas-3.13
>=gnome-base/libgnome-keyring-3.13
>=gnome-base/nautilus-3.13
>=gnome-extra/evolution-data-server-3.13
>=gnome-extra/evolution-ews-3.13
>=gnome-extra/evolution-kolab-3.13
>=gnome-extra/gnome-calculator-3.13
>=gnome-extra/gnome-clocks-3.13
>=gnome-extra/gnome-color-manager-3.13
>=gnome-extra/gnome-contacts-3.13
>=gnome-extra/gnome-documents-3.13
>=gnome-extra/gnome-getting-started-docs-3.13
>=gnome-extra/gnome-power-manager-3.13
>=gnome-extra/gnome-shell-extensions-3.13
>=gnome-extra/gnome-system-monitor-3.13
>=gnome-extra/gnome-user-docs-3.13
>=gnome-extra/gnome-user-share-3.13
>=gnome-extra/gnome-weather-3.13
>=gnome-extra/gucharmap-3.13
>=gnome-extra/mousetweaks-3.13
>=gnome-extra/sushi-3.13
>=gnome-extra/yelp-3.13
>=gnome-extra/yelp-xsl-3.13
>=gnome-extra/zenity-3.13
>=mail-client/evolution-3.13
>=media-gfx/eog-3.13
>=media-gfx/eog-plugins-3.13
>=media-gfx/gnome-font-viewer-3.13
>=media-gfx/gnome-photos-3.13
>=media-gfx/gnome-screenshot-3.13
>=media-video/totem-3.13
>=net-im/empathy-3.13
>=net-misc/vinagre-3.13
>=sys-apps/gnome-disk-utility-3.13
>=www-client/epiphany-3.13
>=x11-libs/gtksourceview-3.13
>=x11-libs/libcryptui-3.13
>=x11-libs/libwnck-3.13
>=x11-misc/alacarte-3.13.0
>=x11-terms/gnome-terminal-3.13
>=x11-themes/gnome-backgrounds-3.13
>=x11-themes/gnome-icon-theme-3.13
>=x11-themes/gnome-icon-theme-symbolic-3.13
>=x11-themes/gnome-themes-standard-3.13
>=x11-wm/mutter-3.13

Masking Problem Packages

telepathy-mission-control

Note: You do not need to mask the gentoo version of this package if successfully builds.

Add the following to /etc/portage/package/mask/telepathy-mission-control:

# We want to use the gnome version of this package.
net-im/telepathy-mission-control::gentoo

Building Problem Packages

libical

If libical-1.0-r2 fails to build you need to emerge libical-0.48-r2 first (for reference see Gentoo Bug #507974).

emerge -va1 =libical-0.48-r2
emerge -va1 =libical-1.0-r2

spidermonkey

If spidermonkey-24.2.0-r2 fails to build ensure that you are not in a chroot environment.

Preparing for GNOME 3.12

This is the version of GNOME that you want:

1. gdm 3.12 works 100% for session management (including screen locking).

2. GNOME Classic is better than ever (gnome-shell -r --mode=classic) for those who want a more traditional experience.

3. A minor annoyance with nautilus has been corrected.

Patching GNOME 3.12 (Suspend and Hibernation)

Warning: Until further notice, this patch should be considered experimental.

Add the attachment found on FL-1329 to a new local overlay (to prevent clutter).

If you do not have a local overlay, create one:

mkdir -p /usr/local/portage-experimental

chown root:portage /usr/local/portage-experimental
chmod g+s /usr/local/portage-experimental
chmod 775 /usr/local/portage-experimental

echo "PORTDIR_OVERLAY=${PORTDIR_OVERLAY} /usr/local/portage-experimental" >> /etc/portage/make.conf

Then, retrieve the tarball:

cd /usr/local/portage-experimental

wget https://bugs.funtoo.org/secure/attachment/12027/gnome-3.12-reintegrate-pm-utils-support.tar.xz && tar xvJf gnome-3.12-reintegrate-pm-utils-support.tar.xz

rm gnome-3.12-reintegrate-pm-utils-support.tar.xz

Now, add the following to /etc/portage/package.use/_pm-utils:

sys-power/acpid gnome
sys-power/upower deprecated
gnome-base/gnome-control-center deprecated
gnome-base/gnome-session deprecated
gnome-base/gnome-settings-daemon deprecated
gnome-base/gnome-shell deprecated

Installing GNOME

To pull in everything do:

emerge -vauDN gnome

For a minimal install do:

emerge -vauDN gnome-light

Verify the inode/directory MimeType Handler

In some odd instances, baobab might take priority over nautilus when handling the inode/directory MimeType. If this behavior is not desired, add the following to /home/~/.local/share/applications/mimeapps.list:

[Added Associations]
inode/directory=nautilus.desktop;baobab.desktop;

Summary

GNOME 3.12 works without systemd (excluding support for pm-utils which must be added through the provided patchset).