1 |
commit: f9c67b7c3fb6f1fe8660564c024e7e59b7057902 |
2 |
Author: Mart Raudsepp <leio <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Sep 19 10:12:57 2018 +0000 |
4 |
Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Sep 19 10:12:57 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=f9c67b7c |
7 |
|
8 |
gnome-base/gnome-shell-3.26.2: revbump with many fixes |
9 |
|
10 |
* Require correct mutter subslot after fixing mutter-3.26 subslot. |
11 |
* Fix bluetooth optionality patch to work off of USE=bluetooth, not |
12 |
USE=networkmanager due to missed option name update in patch. |
13 |
* Support elogind and get rid of unnecessary openrc-force hacks; |
14 |
gnome-shell systemd code only handles journald integration - logging |
15 |
structured data to it itself, instead of plain g_prints and telling |
16 |
it about launched apps, so they get to log under their own identifier |
17 |
instead of gnome-session. The -Denable-systemd option only deals with |
18 |
that, so we can safely just not pass it on non-systemd systems. The |
19 |
suspend support is handled purely via logind dbus interfaces and is |
20 |
build unconditionally - at runtime it is conditional on |
21 |
/run/systemd/seats existing and being accessible, which should be the |
22 |
case with newer elogind (with relevant bugs fixed) by my quick |
23 |
research, but I have not tested personally. Don't make a big deal |
24 |
about lacking suspend and seat inhibition support and just pull in |
25 |
a logind interface provider (techically this is runtime only, but |
26 |
not bothering with a separate DEPEND-free RDEPEND block for elogind). |
27 |
The alternative (to require logind) would be to require one of the |
28 |
systemd or elogind USE flags instead of at-most-one-of, but this is |
29 |
runtime optional anyways, so don't block it - user could just build |
30 |
with systemd and boot with something else, for example, and similarly |
31 |
not have this work at runtime). Also remove some warns appropriately. |
32 |
* Build-time depend on systemd with USE=systemd for the aforementioned |
33 |
journald integration, which needs systemd present at build time already. |
34 |
* More appropriately use python-single-r1 instead of python-r1 for the two |
35 |
small python utilities. Hack meson to update to the correct shebang. |
36 |
* Make telepathy optional - it was made runtime optional in 3.24 already, |
37 |
and with empathy being in the state it's in, the chat integration is |
38 |
rather unused on a desktop system. |
39 |
* Port to direct use of gnoem2-utils, meson and xdg eclasses, as that's |
40 |
what we'll be able to add to main tree at this point. |
41 |
* Remove bogus GNOME2_LA_PUNT and GNOME2_EAUTORECONF variables in a |
42 |
meson-based build. |
43 |
* Remove questionable glib USE=dbus requirement - if dconf is required, |
44 |
it should be depended upon directly; but as this is just your typical |
45 |
GSettings memory vs dconf backend scenario, I don't see why that'd be. |
46 |
* Remove unnecessary libXtst depend - I can't find any usage of it in |
47 |
current version (only mentions of caribou using it, which has its own |
48 |
dep and is optional on-screen keyboard support, gone in newer versions). |
49 |
* Move dbus-glib depend inside USE=networkmanager, as this legacy thing |
50 |
is for some reason (instead of GDbus) still used only in a NM specific |
51 |
source file that doesn't get compiled with USE=-networkmanager afaics. |
52 |
* Require introspection on nm-applet with USE=networkmanager, as NMGtk |
53 |
GIR is used. |
54 |
* Remove bogus mesa-progs depend - no glxinfo/glxgears usages here.. |
55 |
* Remove wrong gtk-doc-am, gnome-common and autoconf-archive build |
56 |
depends - these are for autotools, not meson.. |
57 |
* Add glib-utils build depend. |
58 |
* Drop dejavu font depend - I don't think we should be pulling in a |
59 |
specific font these days for some glyphs; and if we should, then it |
60 |
probably should be cantarell.. |
61 |
* Require 3.26 for the adwaita-icon-theme dep, as new icons used by |
62 |
gnome-shell-3.26 are introduced there (at least the monitor configuration |
63 |
popup icons when the new display configuration keyboard shortcuts are |
64 |
used). |
65 |
* Require >=libgweather-3.26 because new API from it is used (the |
66 |
NO_CAPITALIZATION formatting options stuff for fixing weather information |
67 |
capitalization below the gnome-shell calendar). |
68 |
* Require USE=glib on pulseaudio, as libpulse-mainloop-glib is linked to |
69 |
in a subproject, not just libpulse. |
70 |
* Install nsplugin in the correct directory for us, instead of just losing |
71 |
the correct BROWSER_PLUGIN_DIR stuff from autotools version. Upstream has |
72 |
some sort of meson variable support to apparently try to support |
73 |
overriding this, but as this isn't an envvar, we actually can't until it's |
74 |
not properly made a meson_options.txt thing instead - so instead just |
75 |
change the install path /mozilla components to /nsbrowser as we need. |
76 |
* Add notes about broken gtk-doc building (with our outdated gtk-doc), but |
77 |
due to the build failures don't introduce USE=gtk-doc for the time being. |
78 |
* Simplify the pax-mark logic, as we don't use so old spidermonkey for so |
79 |
long, and pax-mark stuff is not tested by us. But the old complicated |
80 |
conditionals don't apply in many cases, so simplify it to just the common |
81 |
case. Additionally newer spidermonkey (60) will lose jit USE flag and |
82 |
have that unconditional on arches where it's supported, so these |
83 |
conditionals will then result in wrong code paths being taken. Therefore |
84 |
just simplify it to the basics and hope it works and rely on any incoming |
85 |
bugs about it to modernize this. |
86 |
* PDEPEND on >=gnome-control-center-3.26 instead of older, as older is |
87 |
not able to apply display configuration, because mutter 3.26 has a |
88 |
different dbus API now, which gnome-control-center-3.26 uses directly. |
89 |
3.24 control-center used GnomeRR API from gnome-desktop, which is still |
90 |
there (in gnome-desktop-3.26), but does not function with mutter-3.26 |
91 |
due to the dbus interface having been replaced. |
92 |
|
93 |
Package-Manager: Portage-2.3.49, Repoman-2.3.10 |
94 |
|
95 |
.../files/3.26-optional-bluetooth.patch | 73 ++++++++ |
96 |
.../gnome-shell/gnome-shell-3.26.2-r3.ebuild | 183 +++++++++++++++++++++ |
97 |
gnome-base/gnome-shell/metadata.xml | 10 ++ |
98 |
3 files changed, 266 insertions(+) |
99 |
|
100 |
diff --git a/gnome-base/gnome-shell/files/3.26-optional-bluetooth.patch b/gnome-base/gnome-shell/files/3.26-optional-bluetooth.patch |
101 |
new file mode 100644 |
102 |
index 00000000..9f7e5aea |
103 |
--- /dev/null |
104 |
+++ b/gnome-base/gnome-shell/files/3.26-optional-bluetooth.patch |
105 |
@@ -0,0 +1,73 @@ |
106 |
+From 7ca3e1a9d18e6f6154b4479bcd94d420bc69798c Mon Sep 17 00:00:00 2001 |
107 |
+From: Gilles Dartiguelongue <eva@g.o> |
108 |
+Date: Mon, 10 Sep 2018 13:17:39 +0200 |
109 |
+Subject: [PATCH] Make bluetooth support optional |
110 |
+ |
111 |
+https://bugs.gentoo.org/show_bug.cgi?id=398145 |
112 |
+leio: Fixed enable_bluetooth get_option string |
113 |
+--- |
114 |
+ js/misc/meson.build | 2 +- |
115 |
+ meson.build | 15 ++++++++++++++- |
116 |
+ meson_options.txt | 7 +++++++ |
117 |
+ 3 files changed, 22 insertions(+), 2 deletions(-) |
118 |
+ |
119 |
+diff --git a/js/misc/meson.build b/js/misc/meson.build |
120 |
+index 20489496c..3071f9dfb 100644 |
121 |
+--- a/js/misc/meson.build |
122 |
++++ b/js/misc/meson.build |
123 |
+@@ -3,7 +3,7 @@ jsconf.set('PACKAGE_NAME', meson.project_name()) |
124 |
+ jsconf.set('PACKAGE_VERSION', meson.project_version()) |
125 |
+ jsconf.set('GETTEXT_PACKAGE', meson.project_name()) |
126 |
+ jsconf.set('LIBMUTTER_API_VERSION', mutter_api_version) |
127 |
+-jsconf.set10('HAVE_BLUETOOTH', bt_dep.found()) |
128 |
++jsconf.set10('HAVE_BLUETOOTH', have_bluetooth) |
129 |
+ jsconf.set10('HAVE_NETWORKMANAGER', have_networkmanager) |
130 |
+ jsconf.set('datadir', datadir) |
131 |
+ jsconf.set('libexecdir', libexecdir) |
132 |
+diff --git a/meson.build b/meson.build |
133 |
+index b82c41398..7d342ff61 100644 |
134 |
+--- a/meson.build |
135 |
++++ b/meson.build |
136 |
+@@ -91,7 +91,20 @@ startup_dep = dependency('libstartup-notification-1.0', version: startup_req) |
137 |
+ x11_dep = dependency('x11') |
138 |
+ schemas_dep = dependency('gsettings-desktop-schemas', version: schemas_req) |
139 |
+ |
140 |
+-bt_dep = dependency('gnome-bluetooth-1.0', version: bt_req, required: false) |
141 |
++bt_dep = [] |
142 |
++enable_bluetooth = get_option('enable-bluetooth') |
143 |
++if enable_bluetooth != 'no' |
144 |
++ want_bluetooth = enable_bluetooth == 'yes' |
145 |
++ bt_dep = dependency('gnome-bluetooth-1.0', version: bt_req, required: want_bluetooth) |
146 |
++ have_bluetooth = bt_dep.found() |
147 |
++ |
148 |
++ if not have_bluetooth |
149 |
++ bt_dep = [] |
150 |
++ endif |
151 |
++else |
152 |
++ have_bluetooth = false |
153 |
++endif |
154 |
++ |
155 |
+ gst_dep = dependency('gstreamer-1.0', version: gst_req, required: false) |
156 |
+ gst_base_dep = dependency('gstreamer-base-1.0', required: false) |
157 |
+ |
158 |
+diff --git a/meson_options.txt b/meson_options.txt |
159 |
+index 18899ffdb..9191f8c0e 100644 |
160 |
+--- a/meson_options.txt |
161 |
++++ b/meson_options.txt |
162 |
+@@ -16,6 +16,13 @@ option('enable-man', |
163 |
+ description: 'Generate man pages' |
164 |
+ ) |
165 |
+ |
166 |
++option('enable-bluetooth', |
167 |
++ type: 'combo', |
168 |
++ choices: ['yes', 'no', 'auto'], |
169 |
++ value: 'auto', |
170 |
++ description: 'Enable bluetooth support' |
171 |
++) |
172 |
++ |
173 |
+ option('enable-networkmanager', |
174 |
+ type: 'combo', |
175 |
+ choices: ['yes', 'no', 'auto'], |
176 |
+-- |
177 |
+2.18.0 |
178 |
+ |
179 |
|
180 |
diff --git a/gnome-base/gnome-shell/gnome-shell-3.26.2-r3.ebuild b/gnome-base/gnome-shell/gnome-shell-3.26.2-r3.ebuild |
181 |
new file mode 100644 |
182 |
index 00000000..8ec8d239 |
183 |
--- /dev/null |
184 |
+++ b/gnome-base/gnome-shell/gnome-shell-3.26.2-r3.ebuild |
185 |
@@ -0,0 +1,183 @@ |
186 |
+# Copyright 1999-2018 Gentoo Foundation |
187 |
+# Distributed under the terms of the GNU General Public License v2 |
188 |
+ |
189 |
+EAPI=6 |
190 |
+PYTHON_COMPAT=( python3_{4,5,6} ) |
191 |
+ |
192 |
+inherit gnome.org gnome2-utils meson pax-utils python-single-r1 virtualx xdg |
193 |
+ |
194 |
+DESCRIPTION="Provides core UI functions for the GNOME 3 desktop" |
195 |
+HOMEPAGE="https://wiki.gnome.org/Projects/GnomeShell" |
196 |
+ |
197 |
+LICENSE="GPL-2+ LGPL-2+" |
198 |
+SLOT="0" |
199 |
+IUSE="+bluetooth +browser-extension elogind +ibus +networkmanager nsplugin systemd telepathy" |
200 |
+REQUIRED_USE="${PYTHON_REQUIRED_USE} |
201 |
+ ?? ( elogind systemd )" |
202 |
+ |
203 |
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~x86" |
204 |
+ |
205 |
+# libXfixes-5.0 needed for pointer barriers and #include <X11/extensions/Xfixes.h> |
206 |
+# FIXME: |
207 |
+# * gstreamer support is currently automagic |
208 |
+COMMON_DEPEND=" |
209 |
+ >=dev-libs/libcroco-0.6.8:0.6 |
210 |
+ >=gnome-extra/evolution-data-server-3.17.2:= |
211 |
+ >=app-crypt/gcr-3.7.5[introspection] |
212 |
+ >=gnome-base/gnome-desktop-3.7.90:3=[introspection] |
213 |
+ >=dev-libs/glib-2.53.0:2 |
214 |
+ >=dev-libs/gobject-introspection-1.49.1:= |
215 |
+ >=dev-libs/gjs-1.47.0 |
216 |
+ >=x11-libs/gtk+-3.15.0:3[introspection] |
217 |
+ nsplugin? ( >=dev-libs/json-glib-0.13.2 ) |
218 |
+ >=x11-wm/mutter-3.24.0:0/1[introspection] |
219 |
+ >=sys-auth/polkit-0.100[introspection] |
220 |
+ >=gnome-base/gsettings-desktop-schemas-3.21.3 |
221 |
+ >=x11-libs/startup-notification-0.11 |
222 |
+ bluetooth? ( >=net-wireless/gnome-bluetooth-3.9[introspection] ) |
223 |
+ >=media-libs/gstreamer-0.11.92:1.0 |
224 |
+ networkmanager? ( |
225 |
+ >=gnome-extra/nm-applet-0.9.8[introspection] |
226 |
+ >=net-misc/networkmanager-0.9.8:=[introspection] |
227 |
+ >=app-crypt/libsecret-0.18 |
228 |
+ dev-libs/dbus-glib ) |
229 |
+ systemd? ( >=sys-apps/systemd-31 ) |
230 |
+ elogind? ( >=sys-auth/elogind-237 ) |
231 |
+ |
232 |
+ >=app-accessibility/at-spi2-atk-2.5.3 |
233 |
+ media-libs/libcanberra[gtk3] |
234 |
+ x11-libs/gdk-pixbuf:2[introspection] |
235 |
+ dev-libs/libxml2:2 |
236 |
+ >=net-libs/libsoup-2.40:2.4[introspection] |
237 |
+ x11-libs/libX11 |
238 |
+ |
239 |
+ >=media-sound/pulseaudio-2[glib] |
240 |
+ >=dev-libs/atk-2[introspection] |
241 |
+ dev-libs/libical:= |
242 |
+ >=x11-libs/libXfixes-5.0 |
243 |
+ |
244 |
+ ${PYTHON_DEPS} |
245 |
+ dev-python/pygobject:3[${PYTHON_USEDEP}] |
246 |
+ media-libs/mesa |
247 |
+" |
248 |
+# Runtime-only deps are probably incomplete and approximate. |
249 |
+# Introspection deps generated using: |
250 |
+# grep -roe "imports.gi.*" gnome-shell-* | cut -f2 -d: | sort | uniq |
251 |
+# Each block: |
252 |
+# 1. Introspection stuff needed via imports.gi.* |
253 |
+# 2. gnome-session needed for shutdown/reboot/inhibitors/etc |
254 |
+# 3. Control shell settings |
255 |
+# 4. logind interface needed for suspending support |
256 |
+# 5. xdg-utils needed for xdg-open, used by extension tool |
257 |
+# 6. adwaita-icon-theme needed for various icons & arrows (3.26 for new video-joined-displays-symbolic and co icons; review for 3.28+) |
258 |
+# 7. mobile-broadband-provider-info, timezone-data for shell-mobile-providers.c # TODO: Review |
259 |
+# 8. IBus is needed for nls integration |
260 |
+# 9. Optional telepathy chat integration |
261 |
+# 10. TODO: semi-optional webkit-gtk[introspection] for captive portal helper |
262 |
+RDEPEND="${COMMON_DEPEND} |
263 |
+ >=sys-apps/accountsservice-0.6.14[introspection] |
264 |
+ app-accessibility/at-spi2-core:2[introspection] |
265 |
+ >=app-accessibility/caribou-0.4.8 |
266 |
+ app-misc/geoclue[introspection] |
267 |
+ >=dev-libs/libgweather-3.26:2[introspection] |
268 |
+ >=sys-power/upower-0.99:=[introspection] |
269 |
+ x11-libs/pango[introspection] |
270 |
+ gnome-base/librsvg:2[introspection] |
271 |
+ |
272 |
+ >=gnome-base/gnome-session-2.91.91 |
273 |
+ >=gnome-base/gnome-settings-daemon-3.8.3 |
274 |
+ |
275 |
+ x11-misc/xdg-utils |
276 |
+ |
277 |
+ >=x11-themes/adwaita-icon-theme-3.26 |
278 |
+ |
279 |
+ networkmanager? ( |
280 |
+ net-misc/mobile-broadband-provider-info |
281 |
+ sys-libs/timezone-data ) |
282 |
+ ibus? ( >=app-i18n/ibus-1.4.99[dconf(+),gtk,introspection] ) |
283 |
+ telepathy? ( |
284 |
+ >=net-im/telepathy-logger-0.2.4[introspection] |
285 |
+ >=net-libs/telepathy-glib-0.19[introspection] ) |
286 |
+" |
287 |
+# avoid circular dependency, see bug #546134 |
288 |
+PDEPEND=" |
289 |
+ >=gnome-base/gdm-3.5[introspection] |
290 |
+ >=gnome-base/gnome-control-center-3.26[bluetooth(+)?,networkmanager(+)?] |
291 |
+ browser-extension? ( gnome-extra/chrome-gnome-shell ) |
292 |
+" |
293 |
+DEPEND="${COMMON_DEPEND} |
294 |
+ dev-libs/libxslt |
295 |
+ >=dev-util/gdbus-codegen-2.45.3 |
296 |
+ dev-util/glib-utils |
297 |
+ >=sys-devel/gettext-0.19.6 |
298 |
+ virtual/pkgconfig |
299 |
+" #gtk-doc? ( >=dev-util/gtk-doc-1.17 ) |
300 |
+ |
301 |
+PATCHES=( |
302 |
+ # Change favorites defaults, bug #479918 |
303 |
+ "${FILESDIR}"/${PN}-3.22.0-defaults.patch |
304 |
+ # Fix automagic gnome-bluetooth dep, bug #398145 |
305 |
+ "${FILESDIR}"/3.26-optional-bluetooth.patch |
306 |
+) |
307 |
+ |
308 |
+src_prepare() { |
309 |
+ xdg_src_prepare |
310 |
+ # We want nsplugins in /usr/$(get_libdir)/nsbrowser/plugins not .../mozilla/plugins |
311 |
+ sed -e 's/mozilla/nsbrowser/' -i meson.build || die |
312 |
+ # Hack in correct python shebang |
313 |
+ sed -e "s:python\.path():'/usr/bin/env ${EPYTHON}':" -i src/meson.build || die |
314 |
+} |
315 |
+ |
316 |
+src_configure() { |
317 |
+ local emesonargs=( |
318 |
+ $(meson_use nsplugin enable-browser-plugin) |
319 |
+ #$(meson_use gtk-doc enable-documentation) # fails in gtkdoc-scangobj call with gtk-doc-1.25 (perl regex parenthesis issue); probably needs newer python-based gtk-doc to work |
320 |
+ -Denable-man=true |
321 |
+ -Denable-bluetooth=$(usex bluetooth yes no) |
322 |
+ -Denable-networkmanager=$(usex networkmanager yes no) |
323 |
+ -Denable-systemd=$(usex systemd yes no) # this controls journald integration only as of 3.26.2 (structured logging and having gnome-shell launched apps use its own identifier instead of gnome-session) |
324 |
+ # suspend support is runtime optional via /run/systemd/seats presence and org.freedesktop.login1.Manager dbus interface; elogind should provide what's necessary |
325 |
+ ) |
326 |
+ meson_src_configure |
327 |
+} |
328 |
+ |
329 |
+src_install() { |
330 |
+ meson_src_install |
331 |
+ |
332 |
+ # Required for gnome-shell on hardened/PaX, bug #398941; FIXME: Is this still relevant? |
333 |
+ pax-mark m "${ED}usr/bin/gnome-shell"{,-extension-prefs} |
334 |
+} |
335 |
+ |
336 |
+src_test() { |
337 |
+ virtx meson_src_test |
338 |
+} |
339 |
+ |
340 |
+pkg_postinst() { |
341 |
+ xdg_pkg_postinst |
342 |
+ gnome2_schemas_update |
343 |
+ |
344 |
+ if ! has_version 'media-libs/gst-plugins-good:1.0' || \ |
345 |
+ ! has_version 'media-plugins/gst-plugins-vpx:1.0'; then |
346 |
+ ewarn "To make use of GNOME Shell's built-in screen recording utility," |
347 |
+ ewarn "you need to either install media-libs/gst-plugins-good:1.0" |
348 |
+ ewarn "and media-plugins/gst-plugins-vpx:1.0, or use dconf-editor to change" |
349 |
+ ewarn "apps.gnome-shell.recorder/pipeline to what you want to use." |
350 |
+ fi |
351 |
+ |
352 |
+ if ! has_version "media-libs/mesa[llvm]"; then |
353 |
+ elog "llvmpipe is used as fallback when no 3D acceleration" |
354 |
+ elog "is available. You will need to enable llvm USE for" |
355 |
+ elog "media-libs/mesa if you do not have hardware 3D setup." |
356 |
+ fi |
357 |
+ |
358 |
+ # https://bugs.gentoo.org/show_bug.cgi?id=563084 |
359 |
+ if has_version "x11-drivers/nvidia-drivers[-kms]"; then |
360 |
+ ewarn "You will need to enable kms support in x11-drivers/nvidia-drivers," |
361 |
+ ewarn "otherwise Gnome will fail to start" |
362 |
+ fi |
363 |
+} |
364 |
+ |
365 |
+pkg_postrm() { |
366 |
+ xdg_pkg_postrm |
367 |
+ gnome2_schemas_update |
368 |
+} |
369 |
|
370 |
diff --git a/gnome-base/gnome-shell/metadata.xml b/gnome-base/gnome-shell/metadata.xml |
371 |
index 3d91d2b5..301d00be 100644 |
372 |
--- a/gnome-base/gnome-shell/metadata.xml |
373 |
+++ b/gnome-base/gnome-shell/metadata.xml |
374 |
@@ -5,14 +5,24 @@ |
375 |
<email>gnome@g.o</email> |
376 |
<name>Gentoo GNOME Desktop</name> |
377 |
</maintainer> |
378 |
+<longdescription> |
379 |
+ GNOME Shell provides core user interface functions for the GNOME 3 |
380 |
+ desktop, like switching to windows and launching applications. |
381 |
+ GNOME Shell takes advantage of the capabilities of modern graphics |
382 |
+ hardware and introduces innovative user interface concepts to |
383 |
+ provide a visually attractive and easy to use experience. |
384 |
+</longdescription> |
385 |
<use> |
386 |
<flag name="browser-extension">Ensure the presence of extensions.gnome.org |
387 |
native connector <pkg>gnome-extra/chrome-gnome-shell</pkg></flag> |
388 |
+ <flag name="elogind">Use <pkg>sys-auth/elogind</pkg> for session tracking |
389 |
+ and suspend support.</flag> |
390 |
<flag name="ibus">Enable support for enhanced input methods through |
391 |
<pkg>app-i18n/ibus</pkg></flag> |
392 |
<flag name="openrc-force">Skip systemd dependency (#480336), |
393 |
enabling this flag will become your setup to be fully |
394 |
unsupported by upstream and downstream Gnome team. Do not |
395 |
try to enable it unless completely needed</flag> |
396 |
+ <flag name="telepathy">Ensure presence of telepathy chat integration</flag> |
397 |
</use> |
398 |
</pkgmetadata> |