Gentoo Archives: gentoo-commits

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