public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Mart Raudsepp" <leio@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: gnome-base/gnome-shell/files/, gnome-base/gnome-shell/
Date: Fri, 28 Sep 2018 13:51:27 +0000 (UTC)	[thread overview]
Message-ID: <1538142553.4f874177a1bcee5a10fde56cd58ab5860a7a07b8.leio@gentoo> (raw)

commit:     4f874177a1bcee5a10fde56cd58ab5860a7a07b8
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 27 21:36:24 2018 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Fri Sep 28 13:49:13 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4f874177

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 <AT> gentoo.org>
Package-Manager: Portage-2.3.49, Repoman-2.3.11

 gnome-base/gnome-shell/Manifest                    |   2 +
 .../files/3.26-optional-bluetooth.patch            |  73 ++++++++
 .../gnome-shell/gnome-shell-3.26.2-r4.ebuild       | 186 +++++++++++++++++++++
 gnome-base/gnome-shell/metadata.xml                |   3 +
 4 files changed, 264 insertions(+)

diff --git a/gnome-base/gnome-shell/Manifest b/gnome-base/gnome-shell/Manifest
index 0547ae48f8e..5ade3713a46 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 00000000000..9f7e5aea4da
--- /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 00000000000..e8bb212e6a8
--- /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 72552c21f40..301d00be45c 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>


             reply	other threads:[~2018-09-28 13:51 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-28 13:51 Mart Raudsepp [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-08-09 12:04 [gentoo-commits] repo/gentoo:master commit in: gnome-base/gnome-shell/files/, gnome-base/gnome-shell/ Pacho Ramos
2024-07-08  3:19 Eli Schwartz
2021-04-05 16:54 Matt Turner
2020-03-15 17:38 Mart Raudsepp
2020-03-01 16:18 Mart Raudsepp
2019-09-06 21:47 Mart Raudsepp
2019-05-18 20:46 Mart Raudsepp
2019-05-05 11:55 Mart Raudsepp
2019-02-27 23:57 Mart Raudsepp
2018-02-03 20:56 Mart Raudsepp
2017-04-29 17:51 Mart Raudsepp
2016-11-12  0:37 Gilles Dartiguelongue
2016-03-14 23:16 Ole Reifschneider

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1538142553.4f874177a1bcee5a10fde56cd58ab5860a7a07b8.leio@gentoo \
    --to=leio@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox