commit:     6b3f9fd17401255bb22bc6b62e6607e2992f1e2f
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 23 11:31:14 2019 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Sat Mar 23 11:34:23 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6b3f9fd1

dev-util/sysprof: add elogind support

Allows using sysprof launched more securely as normal user and
wayland support on elogind systems.

Also remove the double icon cache update, now that xdg.eclass does
it too.

Closes: https://bugs.gentoo.org/673406
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>

 dev-util/sysprof/files/3.30.2-elogind.patch | 35 ++++++++++++++
 dev-util/sysprof/metadata.xml               |  4 +-
 dev-util/sysprof/sysprof-3.30.2-r1.ebuild   | 73 +++++++++++++++++++++++++++++
 3 files changed, 111 insertions(+), 1 deletion(-)

diff --git a/dev-util/sysprof/files/3.30.2-elogind.patch 
b/dev-util/sysprof/files/3.30.2-elogind.patch
new file mode 100644
index 00000000000..2a57fff3a9c
--- /dev/null
+++ b/dev-util/sysprof/files/3.30.2-elogind.patch
@@ -0,0 +1,35 @@
+From b30057251d3f2b5860b36505fed440a6bebe0359 Mon Sep 17 00:00:00 2001
+From: Shiba <n...@telling.you>
+Date: Wed, 19 Dec 2018 00:37:57 +0100
+Subject: [PATCH] elogind support
+
+---
+ daemon/meson.build | 11 ++++++++++-
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/daemon/meson.build b/daemon/meson.build
+index d0cf87c..c7f85d7 100644
+--- a/daemon/meson.build
++++ b/daemon/meson.build
+@@ -11,8 +11,17 @@ sysprofd_sources = [
+ # NOTE: This is used in data/meson.build
+ pkglibexecdir = join_paths(get_option('prefix'), get_option('libexecdir'), 
'sysprof')
+ 
++# Check for sd-bus support either by systemd or elogind
++sdbus_dep = dependency('libsystemd', version: '>=222', required: false)
++if not sdbus_dep.found()
++  sdbus_dep = dependency('libelogind', version: '>=239.3', required: false)
++  if not sdbus_dep.found()
++    error('sysprofd requires sd-bus but neither systemd nor elogind were 
found')
++  endif
++endif
++
+ sysprofd_deps = [
+-  dependency('libsystemd', version: '>=222'),
++  sdbus_dep,
+   dependency('glib-2.0'),
+ ]
+ 
+-- 
+2.18.1
+

diff --git a/dev-util/sysprof/metadata.xml b/dev-util/sysprof/metadata.xml
index 5ea946de437..70135f65443 100644
--- a/dev-util/sysprof/metadata.xml
+++ b/dev-util/sysprof/metadata.xml
@@ -12,7 +12,9 @@
        In fact they don't even have to be restarted.
 </longdescription>
 <use>
+       <flag name="elogind">Build the sysprofd daemon service, required to run 
the UI without root permissions.
+               Relies on <pkg>sys-auth/elogind</pkg> for sd-bus API.</flag>
        <flag name="systemd">Build the sysprofd daemon service, required to run 
the UI without root permissions.
-               Relies on <pkg>sys-apps/systemd</pkg> running as the init 
system.</flag>
+               Relies on <pkg>sys-apps/systemd</pkg> for sd-bus API.</flag>
 </use>
 </pkgmetadata>

diff --git a/dev-util/sysprof/sysprof-3.30.2-r1.ebuild 
b/dev-util/sysprof/sysprof-3.30.2-r1.ebuild
new file mode 100644
index 00000000000..11bffd1bedd
--- /dev/null
+++ b/dev-util/sysprof/sysprof-3.30.2-r1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit gnome.org gnome2-utils meson systemd xdg
+
+DESCRIPTION="System-wide Linux Profiler"
+HOMEPAGE="http://sysprof.com/";
+
+LICENSE="GPL-3+ GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="elogind gtk systemd"
+REQUIRED_USE="?? ( elogind systemd )"
+
+RDEPEND="
+       >=dev-libs/glib-2.44:2
+       sys-auth/polkit
+       gtk? ( >=x11-libs/gtk+-3.22.0:3 )
+       elogind? ( >=sys-auth/elogind-239.3 )
+       systemd? ( >=sys-apps/systemd-222:0= )
+"
+# libxml2 required for glib-compile-resources; appstream-glib for appdata.xml 
developer_name tag translation
+DEPEND="${RDEPEND}
+       dev-libs/appstream-glib
+       dev-libs/libxml2:2
+       dev-util/itstool
+       >=sys-devel/gettext-0.19.8
+       >=sys-kernel/linux-headers-2.6.32
+       virtual/pkgconfig
+"
+
+PATCHES=( "${FILESDIR}"/${PV}-elogind.patch )
+
+src_configure() {
+       # -Dwith_sysprofd=host currently unavailable from ebuild
+       local emesonargs=(
+               $(meson_use gtk enable_gtk)
+               -Dwith_sysprofd=$(usex systemd bundled $(usex elogind bundled 
none))
+               -Dsystemdunitdir=$(systemd_get_systemunitdir)
+               # -Ddebugdir
+       )
+       meson_src_configure
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+       gnome2_schemas_update
+
+       elog "On many systems, especially amd64, it is typical that with a 
modern"
+       elog "toolchain -fomit-frame-pointer for gcc is the default, because"
+       elog "debugging is still possible thanks to gcc4/gdb location list 
feature."
+       elog "However sysprof is not able to construct call trees if frame 
pointers"
+       elog "are not present. Therefore -fno-omit-frame-pointer CFLAGS is 
suggested"
+       elog "for the libraries and applications involved in the profiling. 
That"
+       elog "means a CPU register is used for the frame pointer instead of 
other"
+       elog "purposes, which means a very minimal performance loss when there 
is"
+       elog "register pressure."
+       if ! use systemd && ! use elogind; then
+               elog ""
+               elog "Without systemd or elogind, sysprof may not function when 
launched as a"
+               elog "regular user, thus suboptimal running from root account 
may be necessary."
+               if use gtk; then
+                       elog "Under wayland, that limits the recording usage to 
sysprof-cli utility."
+               fi
+       fi
+}
+
+pkg_postrm() {
+       xdg_pkg_postrm
+       gnome2_schemas_update
+}

Reply via email to