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 +}