summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMart Raudsepp <leio@gentoo.org>2018-09-28 00:36:24 +0300
committerMart Raudsepp <leio@gentoo.org>2018-09-28 16:49:13 +0300
commit4f874177a1bcee5a10fde56cd58ab5860a7a07b8 (patch)
treec1c7e9247cb1b0f114c253bda395d1b69aa7beed /gnome-base
parentx11-wm/mutter: bump to 3.26.2 (diff)
downloadgentoo-4f874177a1bcee5a10fde56cd58ab5860a7a07b8.tar.gz
gentoo-4f874177a1bcee5a10fde56cd58ab5860a7a07b8.tar.bz2
gentoo-4f874177a1bcee5a10fde56cd58ab5860a7a07b8.zip
gnome-base/gnome-shell: bump to 3.26.2, support elogind, many tweaks
* Port ebuild to use meson (no autotools upstream anymore) * 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 ewarns 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. * 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. * 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 USE=glib on pulseaudio, as libpulse-mainloop-glib is linked to in a subproject, not just libpulse. * 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. Closes: https://bugs.gentoo.org/655426 Closes: https://bugs.gentoo.org/553966 Signed-off-by: Mart Raudsepp <leio@gentoo.org> Package-Manager: Portage-2.3.49, Repoman-2.3.11
Diffstat (limited to 'gnome-base')
-rw-r--r--gnome-base/gnome-shell/Manifest2
-rw-r--r--gnome-base/gnome-shell/files/3.26-optional-bluetooth.patch73
-rw-r--r--gnome-base/gnome-shell/gnome-shell-3.26.2-r4.ebuild186
-rw-r--r--gnome-base/gnome-shell/metadata.xml3
4 files changed, 264 insertions, 0 deletions
diff --git a/gnome-base/gnome-shell/Manifest b/gnome-base/gnome-shell/Manifest
index 0547ae48f8e0..5ade3713a46d 100644
--- a/gnome-base/gnome-shell/Manifest
+++ b/gnome-base/gnome-shell/Manifest
@@ -1,2 +1,4 @@
DIST gnome-shell-3.22.3.tar.xz 1952576 BLAKE2B 26d974bc45b93342db3d23f9a999734b571c6819c1fdddc20e019e282bcfbdf6d9f40850667756046187e0e3a52a57ba60962cc49b7b4b49909ec5f992e518e6 SHA512 47d67910b321a182d3ecd41f20cd923ec433cc93ab04b0b31351ca0229505ecbf343b1307585e557ee757845dc09b2371b0c2197717ed532b71878c186337ee9
DIST gnome-shell-3.24.3.tar.xz 1982088 BLAKE2B 608b3e73d546dea543a23c31a64b03c32f35d118cd79fd0371a9e392377b4dd03bc16413443d643ed604a2fa81c2838939d92ef4c89a54469a8bd83dc9661f8f SHA512 369ed80b975369b79d4ac9b3f1fbd469fdde331e9079d09eeac6398a9b3c349b09f7570dfce1ed6e1cdfaf514b4b40c6038f34b6c3c7928470b2cd65b702ff15
+DIST gnome-shell-3.26.2-patchset.tar.xz 55492 BLAKE2B 745b8549f7480b004f4df9b81508c94c9224f77a5a503f45dfda20105e9c305f8cae6ae5e420e597cea9f98899933bb19efd8cf0e9811dc35d0844a3c2920143 SHA512 93a730082e84807c23f4b7e390c2d0fb02d3666fc32241de02b3534cc271b160bd9a6a6a2e908ed5bdde91cef383c1e400b0f7cbf04ac104f7f9758218e635ed
+DIST gnome-shell-3.26.2.tar.xz 1405580 BLAKE2B ccbb8ad374931335fdc6e752a7feedcba4fe2b61112404b62bc9711b1736216d46fd6e85c6f06439cae50af86a174359d7df0e111e8db6ffed567e91b4292b14 SHA512 0e13bc7abff2367d24ea748cd69a1879ff14a6755ef27d17cf20cef61bc6d15bf6e9d18362142a2d6462689f64eada833f9bba21ebaac3a33765a5be0ae48d3a
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 000000000000..9f7e5aea4da3
--- /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 <eva@gentoo.org>
+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-r4.ebuild b/gnome-base/gnome-shell/gnome-shell-3.26.2-r4.ebuild
new file mode 100644
index 000000000000..e8bb212e6a83
--- /dev/null
+++ b/gnome-base/gnome-shell/gnome-shell-3.26.2-r4.ebuild
@@ -0,0 +1,186 @@
+# Copyright 1999-2018 Gentoo Authors
+# 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"
+SRC_URI+=" https://dev.gentoo.org/~leio/distfiles/${P}-patchset.tar.xz"
+
+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=(
+ # Patches from gnome-3-26 branch on top of 3.26.2
+ "${WORKDIR}"/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 72552c21f405..301d00be45ca 100644
--- a/gnome-base/gnome-shell/metadata.xml
+++ b/gnome-base/gnome-shell/metadata.xml
@@ -15,11 +15,14 @@
<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>