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>
