Line 0
Link Here
|
0 |
- |
1 |
# Copyright 1999-2012 Gentoo Foundation |
|
|
2 |
# Distributed under the terms of the GNU General Public License v2 |
3 |
# $Header: $ |
4 |
|
5 |
EAPI="4" |
6 |
GCONF_DEBUG="no" |
7 |
GNOME2_LA_PUNT="yes" |
8 |
PYTHON_DEPEND="2:2.5" |
9 |
|
10 |
inherit autotools eutils gnome2 multilib pax-utils python |
11 |
if [[ ${PV} = 9999 ]]; then |
12 |
inherit gnome2-live |
13 |
fi |
14 |
|
15 |
DESCRIPTION="Provides core UI functions for the GNOME 3 desktop" |
16 |
HOMEPAGE="http://live.gnome.org/GnomeShell" |
17 |
|
18 |
LICENSE="GPL-2+ LGPL-2+" |
19 |
SLOT="0" |
20 |
IUSE="+bluetooth +i18n +networkmanager systemd" |
21 |
if [[ ${PV} = 9999 ]]; then |
22 |
KEYWORDS="" |
23 |
else |
24 |
KEYWORDS="~amd64 ~x86" |
25 |
fi |
26 |
|
27 |
# libXfixes-5.0 needed for pointer barriers |
28 |
# TODO: gstreamer support is currently automagical: |
29 |
# gstreamer? ( >=media-libs/gstreamer-0.11.92 ) |
30 |
COMMON_DEPEND=" |
31 |
>=app-accessibility/at-spi2-atk-2.5.3 |
32 |
>=app-crypt/gcr-3.3.90[introspection] |
33 |
>=dev-libs/glib-2.31.6:2 |
34 |
>=dev-libs/gjs-1.33.2 |
35 |
>=dev-libs/gobject-introspection-0.10.1 |
36 |
>=x11-libs/gtk+-3.3.9:3[introspection] |
37 |
>=media-libs/clutter-1.11.11:1.0[introspection] |
38 |
>=dev-libs/json-glib-0.13.2 |
39 |
>=dev-libs/libcroco-0.6.2:0.6 |
40 |
>=gnome-base/gnome-desktop-3.5.1:3[introspection] |
41 |
>=gnome-base/gsettings-desktop-schemas-3.5.4 |
42 |
>=gnome-base/gnome-keyring-3.3.90 |
43 |
>=gnome-base/gnome-menus-3.5.3:3[introspection] |
44 |
gnome-base/libgnome-keyring |
45 |
>=gnome-extra/evolution-data-server-3.5.3 |
46 |
>=media-libs/gst-plugins-base-0.10.16:0.10 |
47 |
>=net-im/telepathy-logger-0.2.4[introspection] |
48 |
>=net-libs/telepathy-glib-0.17.5[introspection] |
49 |
>=sys-auth/polkit-0.100[introspection] |
50 |
>=x11-libs/libXfixes-5.0 |
51 |
>=x11-wm/mutter-${PV}[introspection] |
52 |
>=x11-libs/startup-notification-0.11 |
53 |
|
54 |
dev-libs/dbus-glib |
55 |
dev-libs/libxml2:2 |
56 |
gnome-base/librsvg |
57 |
media-libs/libcanberra |
58 |
media-libs/mesa |
59 |
media-sound/pulseaudio |
60 |
net-libs/libsoup:2.4[introspection] |
61 |
x11-libs/libX11 |
62 |
x11-libs/gdk-pixbuf:2[introspection] |
63 |
x11-libs/pango[introspection] |
64 |
x11-apps/mesa-progs |
65 |
|
66 |
bluetooth? ( >=net-wireless/gnome-bluetooth-3.5[introspection] ) |
67 |
networkmanager? ( >=net-misc/networkmanager-0.8.999[introspection] ) |
68 |
systemd? ( >=sys-apps/systemd-31 ) |
69 |
" |
70 |
# Runtime-only deps are probably incomplete and approximate. |
71 |
# Introspection deps generated using: |
72 |
# grep -roe "imports.gi.*" gnome-shell-* | cut -f2 -d: | sort | uniq |
73 |
# Each block: |
74 |
# 1. Pull in polkit-0.101 for pretty authorization dialogs |
75 |
# 2. Introspection stuff needed via imports.gi.* |
76 |
# 3. gnome-session is needed for gnome-session-quit |
77 |
# 4. Control shell settings |
78 |
# 5. xdg-utils needed for xdg-open, used by extension tool |
79 |
# 6. gnome-icon-theme-symbolic and dejavu font neeed for various icons & arrows |
80 |
# 7. IBus is needed for i18n integration |
81 |
# 8. mobile-broadband-provider-info, timezone-data for shell-mobile-providers.c |
82 |
RDEPEND="${COMMON_DEPEND} |
83 |
>=sys-auth/polkit-0.101[introspection] |
84 |
|
85 |
>=app-accessibility/caribou-0.3 |
86 |
>=gnome-base/gdm-3.5[introspection] |
87 |
>=gnome-base/libgnomekbd-2.91.4[introspection] |
88 |
media-libs/cogl[introspection] |
89 |
>=sys-apps/accountsservice-0.6.14[introspection] |
90 |
sys-power/upower[introspection] |
91 |
|
92 |
>=gnome-base/gnome-session-2.91.91 |
93 |
|
94 |
>=gnome-base/gnome-settings-daemon-2.91 |
95 |
>=gnome-base/gnome-control-center-2.91.92-r1[bluetooth(+)?] |
96 |
|
97 |
x11-misc/xdg-utils |
98 |
|
99 |
media-fonts/dejavu |
100 |
x11-themes/gnome-icon-theme-symbolic |
101 |
|
102 |
i18n? ( >=app-i18n/ibus-1.4.99[dconf,gtk3,introspection] ) |
103 |
networkmanager? ( |
104 |
net-misc/mobile-broadband-provider-info |
105 |
sys-libs/timezone-data ) |
106 |
|
107 |
!systemd? ( sys-auth/consolekit ) |
108 |
" |
109 |
DEPEND="${COMMON_DEPEND} |
110 |
>=sys-devel/gettext-0.17 |
111 |
>=dev-util/intltool-0.40 |
112 |
gnome-base/gnome-common |
113 |
virtual/pkgconfig |
114 |
!!=dev-lang/spidermonkey-1.8.2*" |
115 |
# libmozjs.so is picked up from /usr/lib while compiling, so block at build-time |
116 |
# https://bugs.gentoo.org/show_bug.cgi?id=360413 |
117 |
|
118 |
pkg_setup() { |
119 |
python_set_active_version 2 |
120 |
python_pkg_setup |
121 |
} |
122 |
|
123 |
src_prepare() { |
124 |
DOCS="AUTHORS NEWS README" |
125 |
# Don't error out on warnings |
126 |
G2CONF="${G2CONF} |
127 |
--enable-compile-warnings=maximum |
128 |
--disable-schemas-compile |
129 |
--disable-jhbuild-wrapper-script |
130 |
$(use_with bluetooth) |
131 |
$(use_enable networkmanager) |
132 |
$(use_with systemd) |
133 |
BROWSER_PLUGIN_DIR=${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins" |
134 |
# Fix automagic gnome-bluetooth dep, bug #398145 |
135 |
epatch "${FILESDIR}/${PN}-3.5.x-bluetooth-flag.patch" |
136 |
|
137 |
# Make networkmanager optional, bug #398593 |
138 |
epatch "${FILESDIR}/${PN}-3.6.0-networkmanager-flag.patch" |
139 |
|
140 |
[[ ${PV} != 9999 ]] && eautoreconf |
141 |
gnome2_src_prepare |
142 |
|
143 |
# Drop G_DISABLE_DEPRECATED for sanity on glib upgrades; bug #384765 |
144 |
# Note: sed Makefile.in because it is generated from several Makefile.ams |
145 |
sed -e 's/-DG_DISABLE_DEPRECATED//g' \ |
146 |
-i src/Makefile.in browser-plugin/Makefile.in || die "sed failed" |
147 |
} |
148 |
|
149 |
src_install() { |
150 |
gnome2_src_install |
151 |
python_convert_shebangs 2 "${ED}/usr/bin/gnome-shell-extension-tool" |
152 |
|
153 |
# Required for gnome-shell on hardened/PaX, bug #398941 |
154 |
# Future-proof for >=spidermonkey-1.8.7 following polkit's example |
155 |
if has_version '<dev-lang/spidermonkey-1.8.7'; then |
156 |
pax-mark mr "${ED}usr/bin/gnome-shell" |
157 |
elif has_version '>=dev-lang/spidermonkey-1.8.7[jit]'; then |
158 |
pax-mark m "${ED}usr/bin/gnome-shell" |
159 |
fi |
160 |
} |
161 |
|
162 |
pkg_postinst() { |
163 |
gnome2_pkg_postinst |
164 |
|
165 |
if ! has_version '>=media-libs/gst-plugins-good-0.10.23' || \ |
166 |
! has_version 'media-plugins/gst-plugins-vp8'; then |
167 |
ewarn "To make use of GNOME Shell's built-in screen recording utility," |
168 |
ewarn "you need to either install >=media-libs/gst-plugins-good-0.10.23" |
169 |
ewarn "and media-plugins/gst-plugins-vp8, or use dconf-editor to change" |
170 |
ewarn "apps.gnome-shell.recorder/pipeline to what you want to use." |
171 |
fi |
172 |
|
173 |
if ! has_version ">=x11-base/xorg-server-1.11"; then |
174 |
ewarn "If you use multiple screens, it is highly recommended that you" |
175 |
ewarn "upgrade to >=x11-base/xorg-server-1.11 to be able to make use of" |
176 |
ewarn "pointer barriers which will make it easier to use hot corners." |
177 |
fi |
178 |
|
179 |
if has_version "<x11-drivers/ati-drivers-12"; then |
180 |
ewarn "GNOME Shell has been reported to show graphical corruption under" |
181 |
ewarn "x11-drivers/ati-drivers-11.*; you may want to use GNOME in" |
182 |
ewarn "fallback mode, or switch to open-source drivers." |
183 |
fi |
184 |
|
185 |
if has_version "media-libs/mesa[video_cards_radeon]" || |
186 |
has_version "media-libs/mesa[video_cards_r300]" || |
187 |
has_version "media-libs/mesa[video_cards_r600]"; then |
188 |
elog "GNOME Shell is unstable under classic-mode r300/r600 mesa drivers." |
189 |
elog "Make sure that gallium architecture for r300 and r600 drivers is" |
190 |
elog "selected using 'eselect mesa'." |
191 |
if ! has_version "media-libs/mesa[gallium]"; then |
192 |
ewarn "You will need to emerge media-libs/mesa with USE=gallium." |
193 |
fi |
194 |
fi |
195 |
|
196 |
if has_version "media-libs/mesa[video_cards_intel]" || |
197 |
has_version "media-libs/mesa[video_cards_i915]" || |
198 |
has_version "media-libs/mesa[video_cards_i965]"; then |
199 |
elog "GNOME Shell is unstable under gallium-mode i915/i965 mesa drivers." |
200 |
elog "Make sure that classic architecture for i915 and i965 drivers is" |
201 |
elog "selected using 'eselect mesa'." |
202 |
if ! has_version "media-libs/mesa[classic]"; then |
203 |
ewarn "You will need to emerge media-libs/mesa with USE=classic." |
204 |
fi |
205 |
fi |
206 |
} |