From 6b3f9fd17401255bb22bc6b62e6607e2992f1e2f Mon Sep 17 00:00:00 2001 From: Mart Raudsepp Date: Sat, 23 Mar 2019 13:31:14 +0200 Subject: [PATCH] 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 --- 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(-) create mode 100644 dev-util/sysprof/files/3.30.2-elogind.patch create mode 100644 dev-util/sysprof/sysprof-3.30.2-r1.ebuild 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 000000000000..2a57fff3a9c6 --- /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 +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 5ea946de4371..70135f654431 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. + Build the sysprofd daemon service, required to run the UI without root permissions. + Relies on sys-auth/elogind for sd-bus API. Build the sysprofd daemon service, required to run the UI without root permissions. - Relies on sys-apps/systemd running as the init system. + Relies on sys-apps/systemd for sd-bus API. 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 000000000000..11bffd1beddd --- /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 +} -- 2.26.2