commit:     f9c67b7c3fb6f1fe8660564c024e7e59b7057902
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 19 10:12:57 2018 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Wed Sep 19 10:12:57 2018 +0000
URL:        https://gitweb.gentoo.org/proj/gnome.git/commit/?id=f9c67b7c

gnome-base/gnome-shell-3.26.2: revbump with many fixes

* Require correct mutter subslot after fixing mutter-3.26 subslot.
* Fix bluetooth optionality patch to work off of USE=bluetooth, not
  USE=networkmanager due to missed option name update in patch.
* Support elogind and get rid of unnecessary openrc-force hacks;
  gnome-shell systemd code only handles journald integration - logging
  structured data to it itself, instead of plain g_prints and telling
  it about launched apps, so they get to log under their own identifier
  instead of gnome-session. The -Denable-systemd option only deals with
  that, so we can safely just not pass it on non-systemd systems. The
  suspend support is handled purely via logind dbus interfaces and is
  build unconditionally - at runtime it is conditional on
  /run/systemd/seats existing and being accessible, which should be the
  case with newer elogind (with relevant bugs fixed) by my quick
  research, but I have not tested personally. Don't make a big deal
  about lacking suspend and seat inhibition support and just pull in
  a logind interface provider (techically this is runtime only, but
  not bothering with a separate DEPEND-free RDEPEND block for elogind).
  The alternative (to require logind) would be to require one of the
  systemd or elogind USE flags instead of at-most-one-of, but this is
  runtime optional anyways, so don't block it - user could just build
  with systemd and boot with something else, for example, and similarly
  not have this work at runtime). Also remove some warns appropriately.
* Build-time depend on systemd with USE=systemd for the aforementioned
  journald integration, which needs systemd present at build time already.
* More appropriately use python-single-r1 instead of python-r1 for the two
  small python utilities. Hack meson to update to the correct shebang.
* Make telepathy optional - it was made runtime optional in 3.24 already,
  and with empathy being in the state it's in, the chat integration is
  rather unused on a desktop system.
* Port to direct use of gnoem2-utils, meson and xdg eclasses, as that's
  what we'll be able to add to main tree at this point.
* Remove bogus GNOME2_LA_PUNT and GNOME2_EAUTORECONF variables in a
  meson-based build.
* Remove questionable glib USE=dbus requirement - if dconf is required,
  it should be depended upon directly; but as this is just your typical
  GSettings memory vs dconf backend scenario, I don't see why that'd be.
* Remove unnecessary libXtst depend - I can't find any usage of it in
  current version (only mentions of caribou using it, which has its own
  dep and is optional on-screen keyboard support, gone in newer versions).
* Move dbus-glib depend inside USE=networkmanager, as this legacy thing
  is for some reason (instead of GDbus) still used only in a NM specific
  source file that doesn't get compiled with USE=-networkmanager afaics.
* Require introspection on nm-applet with USE=networkmanager, as NMGtk
  GIR is used.
* Remove bogus mesa-progs depend - no glxinfo/glxgears usages here..
* Remove wrong gtk-doc-am, gnome-common and autoconf-archive build
  depends - these are for autotools, not meson..
* Add glib-utils build depend.
* Drop dejavu font depend - I don't think we should be pulling in a
  specific font these days for some glyphs; and if we should, then it
  probably should be cantarell..
* Require 3.26 for the adwaita-icon-theme dep, as new icons used by
  gnome-shell-3.26 are introduced there (at least the monitor configuration
  popup icons when the new display configuration keyboard shortcuts are
  used).
* Require >=libgweather-3.26 because new API from it is used (the
  NO_CAPITALIZATION formatting options stuff for fixing weather information
  capitalization below the gnome-shell calendar).
* Require USE=glib on pulseaudio, as libpulse-mainloop-glib is linked to
  in a subproject, not just libpulse.
* Install nsplugin in the correct directory for us, instead of just losing
  the correct BROWSER_PLUGIN_DIR stuff from autotools version. Upstream has
  some sort of meson variable support to apparently try to support
  overriding this, but as this isn't an envvar, we actually can't until it's
  not properly made a meson_options.txt thing instead - so instead just
  change the install path /mozilla components to /nsbrowser as we need.
* Add notes about broken gtk-doc building (with our outdated gtk-doc), but
  due to the build failures don't introduce USE=gtk-doc for the time being.
* Simplify the pax-mark logic, as we don't use so old spidermonkey for so
  long, and pax-mark stuff is not tested by us. But the old complicated
  conditionals don't apply in many cases, so simplify it to just the common
  case. Additionally newer spidermonkey (60) will lose jit USE flag and
  have that unconditional on arches where it's supported, so these
  conditionals will then result in wrong code paths being taken. Therefore
  just simplify it to the basics and hope it works and rely on any incoming
  bugs about it to modernize this.
* PDEPEND on >=gnome-control-center-3.26 instead of older, as older is
  not able to apply display configuration, because mutter 3.26 has a
  different dbus API now, which gnome-control-center-3.26 uses directly.
  3.24 control-center used GnomeRR API from gnome-desktop, which is still
  there (in gnome-desktop-3.26), but does not function with mutter-3.26
  due to the dbus interface having been replaced.

Package-Manager: Portage-2.3.49, Repoman-2.3.10

 .../files/3.26-optional-bluetooth.patch            |  73 ++++++++
 .../gnome-shell/gnome-shell-3.26.2-r3.ebuild       | 183 +++++++++++++++++++++
 gnome-base/gnome-shell/metadata.xml                |  10 ++
 3 files changed, 266 insertions(+)

diff --git a/gnome-base/gnome-shell/files/3.26-optional-bluetooth.patch 
b/gnome-base/gnome-shell/files/3.26-optional-bluetooth.patch
new file mode 100644
index 00000000..9f7e5aea
--- /dev/null
+++ b/gnome-base/gnome-shell/files/3.26-optional-bluetooth.patch
@@ -0,0 +1,73 @@
+From 7ca3e1a9d18e6f6154b4479bcd94d420bc69798c Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <[email protected]>
+Date: Mon, 10 Sep 2018 13:17:39 +0200
+Subject: [PATCH] Make bluetooth support optional
+
+https://bugs.gentoo.org/show_bug.cgi?id=398145
+leio: Fixed enable_bluetooth get_option string
+---
+ js/misc/meson.build |  2 +-
+ meson.build         | 15 ++++++++++++++-
+ meson_options.txt   |  7 +++++++
+ 3 files changed, 22 insertions(+), 2 deletions(-)
+
+diff --git a/js/misc/meson.build b/js/misc/meson.build
+index 20489496c..3071f9dfb 100644
+--- a/js/misc/meson.build
++++ b/js/misc/meson.build
+@@ -3,7 +3,7 @@ jsconf.set('PACKAGE_NAME', meson.project_name())
+ jsconf.set('PACKAGE_VERSION', meson.project_version())
+ jsconf.set('GETTEXT_PACKAGE', meson.project_name())
+ jsconf.set('LIBMUTTER_API_VERSION', mutter_api_version)
+-jsconf.set10('HAVE_BLUETOOTH', bt_dep.found())
++jsconf.set10('HAVE_BLUETOOTH', have_bluetooth)
+ jsconf.set10('HAVE_NETWORKMANAGER', have_networkmanager)
+ jsconf.set('datadir', datadir)
+ jsconf.set('libexecdir', libexecdir)
+diff --git a/meson.build b/meson.build
+index b82c41398..7d342ff61 100644
+--- a/meson.build
++++ b/meson.build
+@@ -91,7 +91,20 @@ startup_dep = dependency('libstartup-notification-1.0', 
version: startup_req)
+ x11_dep = dependency('x11')
+ schemas_dep = dependency('gsettings-desktop-schemas', version: schemas_req)
+ 
+-bt_dep = dependency('gnome-bluetooth-1.0', version: bt_req, required: false)
++bt_dep = []
++enable_bluetooth = get_option('enable-bluetooth')
++if enable_bluetooth != 'no'
++  want_bluetooth = enable_bluetooth == 'yes'
++  bt_dep = dependency('gnome-bluetooth-1.0', version: bt_req, required: 
want_bluetooth)
++  have_bluetooth = bt_dep.found()
++
++  if not have_bluetooth
++    bt_dep = []
++  endif
++else
++  have_bluetooth = false
++endif
++
+ gst_dep = dependency('gstreamer-1.0', version: gst_req, required: false)
+ gst_base_dep = dependency('gstreamer-base-1.0', required: false)
+ 
+diff --git a/meson_options.txt b/meson_options.txt
+index 18899ffdb..9191f8c0e 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -16,6 +16,13 @@ option('enable-man',
+   description: 'Generate man pages'
+ )
+ 
++option('enable-bluetooth',
++  type: 'combo',
++  choices: ['yes', 'no', 'auto'],
++  value: 'auto',
++  description: 'Enable bluetooth support'
++)
++
+ option('enable-networkmanager',
+   type: 'combo',
+   choices: ['yes', 'no', 'auto'],
+-- 
+2.18.0
+

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
new file mode 100644
index 00000000..8ec8d239
--- /dev/null
+++ b/gnome-base/gnome-shell/gnome-shell-3.26.2-r3.ebuild
@@ -0,0 +1,183 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python3_{4,5,6} )
+
+inherit gnome.org gnome2-utils meson pax-utils python-single-r1 virtualx xdg
+
+DESCRIPTION="Provides core UI functions for the GNOME 3 desktop"
+HOMEPAGE="https://wiki.gnome.org/Projects/GnomeShell";
+
+LICENSE="GPL-2+ LGPL-2+"
+SLOT="0"
+IUSE="+bluetooth +browser-extension elogind +ibus +networkmanager nsplugin 
systemd telepathy"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+       ?? ( elogind systemd )"
+
+KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~x86"
+
+# libXfixes-5.0 needed for pointer barriers and #include 
<X11/extensions/Xfixes.h>
+# FIXME:
+#  * gstreamer support is currently automagic
+COMMON_DEPEND="
+       >=dev-libs/libcroco-0.6.8:0.6
+       >=gnome-extra/evolution-data-server-3.17.2:=
+       >=app-crypt/gcr-3.7.5[introspection]
+       >=gnome-base/gnome-desktop-3.7.90:3=[introspection]
+       >=dev-libs/glib-2.53.0:2
+       >=dev-libs/gobject-introspection-1.49.1:=
+       >=dev-libs/gjs-1.47.0
+       >=x11-libs/gtk+-3.15.0:3[introspection]
+       nsplugin? ( >=dev-libs/json-glib-0.13.2 )
+       >=x11-wm/mutter-3.24.0:0/1[introspection]
+       >=sys-auth/polkit-0.100[introspection]
+       >=gnome-base/gsettings-desktop-schemas-3.21.3
+       >=x11-libs/startup-notification-0.11
+       bluetooth? ( >=net-wireless/gnome-bluetooth-3.9[introspection] )
+       >=media-libs/gstreamer-0.11.92:1.0
+       networkmanager? (
+               >=gnome-extra/nm-applet-0.9.8[introspection]
+               >=net-misc/networkmanager-0.9.8:=[introspection]
+               >=app-crypt/libsecret-0.18
+               dev-libs/dbus-glib )
+       systemd? ( >=sys-apps/systemd-31 )
+       elogind? ( >=sys-auth/elogind-237 )
+
+       >=app-accessibility/at-spi2-atk-2.5.3
+       media-libs/libcanberra[gtk3]
+       x11-libs/gdk-pixbuf:2[introspection]
+       dev-libs/libxml2:2
+       >=net-libs/libsoup-2.40:2.4[introspection]
+       x11-libs/libX11
+
+       >=media-sound/pulseaudio-2[glib]
+       >=dev-libs/atk-2[introspection]
+       dev-libs/libical:=
+       >=x11-libs/libXfixes-5.0
+
+       ${PYTHON_DEPS}
+       dev-python/pygobject:3[${PYTHON_USEDEP}]
+       media-libs/mesa
+"
+# Runtime-only deps are probably incomplete and approximate.
+# Introspection deps generated using:
+#  grep -roe "imports.gi.*" gnome-shell-* | cut -f2 -d: | sort | uniq
+# Each block:
+# 1. Introspection stuff needed via imports.gi.*
+# 2. gnome-session needed for shutdown/reboot/inhibitors/etc
+# 3. Control shell settings
+# 4. logind interface needed for suspending support
+# 5. xdg-utils needed for xdg-open, used by extension tool
+# 6. adwaita-icon-theme needed for various icons & arrows (3.26 for new 
video-joined-displays-symbolic and co icons; review for 3.28+)
+# 7. mobile-broadband-provider-info, timezone-data for 
shell-mobile-providers.c  # TODO: Review
+# 8. IBus is needed for nls integration
+# 9. Optional telepathy chat integration
+# 10. TODO: semi-optional webkit-gtk[introspection] for captive portal helper
+RDEPEND="${COMMON_DEPEND}
+       >=sys-apps/accountsservice-0.6.14[introspection]
+       app-accessibility/at-spi2-core:2[introspection]
+       >=app-accessibility/caribou-0.4.8
+       app-misc/geoclue[introspection]
+       >=dev-libs/libgweather-3.26:2[introspection]
+       >=sys-power/upower-0.99:=[introspection]
+       x11-libs/pango[introspection]
+       gnome-base/librsvg:2[introspection]
+
+       >=gnome-base/gnome-session-2.91.91
+       >=gnome-base/gnome-settings-daemon-3.8.3
+
+       x11-misc/xdg-utils
+
+       >=x11-themes/adwaita-icon-theme-3.26
+
+       networkmanager? (
+               net-misc/mobile-broadband-provider-info
+               sys-libs/timezone-data )
+       ibus? ( >=app-i18n/ibus-1.4.99[dconf(+),gtk,introspection] )
+       telepathy? (
+               >=net-im/telepathy-logger-0.2.4[introspection]
+               >=net-libs/telepathy-glib-0.19[introspection] )
+"
+# avoid circular dependency, see bug #546134
+PDEPEND="
+       >=gnome-base/gdm-3.5[introspection]
+       >=gnome-base/gnome-control-center-3.26[bluetooth(+)?,networkmanager(+)?]
+       browser-extension? ( gnome-extra/chrome-gnome-shell )
+"
+DEPEND="${COMMON_DEPEND}
+       dev-libs/libxslt
+       >=dev-util/gdbus-codegen-2.45.3
+       dev-util/glib-utils
+       >=sys-devel/gettext-0.19.6
+       virtual/pkgconfig
+" #gtk-doc? ( >=dev-util/gtk-doc-1.17 )
+
+PATCHES=(
+       # Change favorites defaults, bug #479918
+       "${FILESDIR}"/${PN}-3.22.0-defaults.patch
+       # Fix automagic gnome-bluetooth dep, bug #398145
+       "${FILESDIR}"/3.26-optional-bluetooth.patch
+)
+
+src_prepare() {
+       xdg_src_prepare
+       # We want nsplugins in /usr/$(get_libdir)/nsbrowser/plugins not 
.../mozilla/plugins
+       sed -e 's/mozilla/nsbrowser/' -i meson.build || die
+       # Hack in correct python shebang
+       sed -e "s:python\.path():'/usr/bin/env ${EPYTHON}':" -i src/meson.build 
|| die
+}
+
+src_configure() {
+       local emesonargs=(
+               $(meson_use nsplugin enable-browser-plugin)
+               #$(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
+               -Denable-man=true
+               -Denable-bluetooth=$(usex bluetooth yes no)
+               -Denable-networkmanager=$(usex networkmanager yes no)
+               -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)
+               # suspend support is runtime optional via /run/systemd/seats 
presence and org.freedesktop.login1.Manager dbus interface; elogind should 
provide what's necessary
+       )
+       meson_src_configure
+}
+
+src_install() {
+       meson_src_install
+
+       # Required for gnome-shell on hardened/PaX, bug #398941; FIXME: Is this 
still relevant?
+       pax-mark m "${ED}usr/bin/gnome-shell"{,-extension-prefs}
+}
+
+src_test() {
+       virtx meson_src_test
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+       gnome2_schemas_update
+
+       if ! has_version 'media-libs/gst-plugins-good:1.0' || \
+          ! has_version 'media-plugins/gst-plugins-vpx:1.0'; then
+               ewarn "To make use of GNOME Shell's built-in screen recording 
utility,"
+               ewarn "you need to either install 
media-libs/gst-plugins-good:1.0"
+               ewarn "and media-plugins/gst-plugins-vpx:1.0, or use 
dconf-editor to change"
+               ewarn "apps.gnome-shell.recorder/pipeline to what you want to 
use."
+       fi
+
+       if ! has_version "media-libs/mesa[llvm]"; then
+               elog "llvmpipe is used as fallback when no 3D acceleration"
+               elog "is available. You will need to enable llvm USE for"
+               elog "media-libs/mesa if you do not have hardware 3D setup."
+       fi
+
+       # https://bugs.gentoo.org/show_bug.cgi?id=563084
+       if has_version "x11-drivers/nvidia-drivers[-kms]"; then
+               ewarn "You will need to enable kms support in 
x11-drivers/nvidia-drivers,"
+               ewarn "otherwise Gnome will fail to start"
+       fi
+}
+
+pkg_postrm() {
+       xdg_pkg_postrm
+       gnome2_schemas_update
+}

diff --git a/gnome-base/gnome-shell/metadata.xml 
b/gnome-base/gnome-shell/metadata.xml
index 3d91d2b5..301d00be 100644
--- a/gnome-base/gnome-shell/metadata.xml
+++ b/gnome-base/gnome-shell/metadata.xml
@@ -5,14 +5,24 @@
        <email>[email protected]</email>
        <name>Gentoo GNOME Desktop</name>
 </maintainer>
+<longdescription>
+       GNOME Shell provides core user interface functions for the GNOME 3
+       desktop, like switching to windows and launching applications.
+       GNOME Shell takes advantage of the capabilities of modern graphics
+       hardware and introduces innovative user interface concepts to
+       provide a visually attractive and easy to use experience.
+</longdescription>
 <use>
        <flag name="browser-extension">Ensure the presence of 
extensions.gnome.org
                native connector 
<pkg>gnome-extra/chrome-gnome-shell</pkg></flag>
+       <flag name="elogind">Use <pkg>sys-auth/elogind</pkg> for session 
tracking
+               and suspend support.</flag>
        <flag name="ibus">Enable support for enhanced input methods through
                <pkg>app-i18n/ibus</pkg></flag>
        <flag name="openrc-force">Skip systemd dependency (#480336),
                enabling this flag will become your setup to be fully
                unsupported by upstream and downstream Gnome team. Do not
                try to enable it unless completely needed</flag>
+       <flag name="telepathy">Ensure presence of telepathy chat 
integration</flag>
 </use>
 </pkgmetadata>

Reply via email to