commit:     5325dae5e32f45af0a3c9805d7e37ba3b594f1b6
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Sat May 21 08:20:22 2022 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Sat May 21 08:34:59 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5325dae5

sys-process/htop: Added live ebuild

Introducing cap_sys_ptrace file capability for htop

Bug: https://bugs.gentoo.org/846635
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 sys-process/htop/htop-9999.ebuild | 113 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 113 insertions(+)

diff --git a/sys-process/htop/htop-9999.ebuild 
b/sys-process/htop/htop-9999.ebuild
new file mode 100644
index 000000000000..f8aa53177141
--- /dev/null
+++ b/sys-process/htop/htop-9999.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit autotools fcaps linux-info python-any-r1 xdg-utils
+
+DESCRIPTION="interactive process viewer"
+HOMEPAGE="https://htop.dev/ https://github.com/htop-dev/htop";
+if [[ ${PV} == *9999 ]] ; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/htop-dev/htop.git";
+else
+       SRC_URI="https://github.com/htop-dev/${PN}/archive/${PV/_}.tar.gz -> 
${P}.tar.gz"
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+fi
+
+LICENSE="BSD GPL-2+"
+SLOT="0"
+IUSE="caps debug delayacct hwloc lm-sensors llvm-libunwind openvz unicode 
unwind vserver"
+
+BDEPEND="virtual/pkgconfig"
+RDEPEND="
+       sys-libs/ncurses:=[unicode(+)?]
+       hwloc? ( sys-apps/hwloc:= )
+       unwind? (
+               !llvm-libunwind? ( sys-libs/libunwind:= )
+               llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+       )
+       kernel_linux? (
+               caps? ( sys-libs/libcap )
+               delayacct? ( dev-libs/libnl:3 )
+               lm-sensors? ( sys-apps/lm-sensors )
+       )
+"
+DEPEND="${RDEPEND}
+       ${PYTHON_DEPS}"
+
+DOCS=( ChangeLog README )
+
+CONFIG_CHECK="~TASKSTATS ~TASK_XACCT ~TASK_IO_ACCOUNTING ~CGROUPS"
+
+S="${WORKDIR}/${P/_}"
+
+pkg_setup() {
+       if ! has_version sys-process/lsof ; then
+               ewarn "To use lsof features in htop (what processes are 
accessing"
+               ewarn "what files), you must have sys-process/lsof installed."
+       fi
+
+       python-any-r1_pkg_setup
+       linux-info_pkg_setup
+}
+
+src_prepare() {
+       default
+
+       eautoreconf
+}
+
+src_configure() {
+       if [[ ${CBUILD} != ${CHOST} ]] ; then
+               export ac_cv_file__proc_{meminfo,stat}=yes #328971
+       fi
+
+       local myeconfargs=(
+               --enable-unicode
+               $(use_enable debug)
+               $(use_enable hwloc)
+               $(use_enable !hwloc affinity)
+               $(use_enable openvz)
+               $(use_enable unicode)
+               $(use_enable unwind)
+               $(use_enable vserver)
+       )
+
+       if use kernel_linux ; then
+               myeconfargs+=(
+                       $(use_enable caps capabilities)
+                       $(use_enable delayacct)
+                       $(use_enable lm-sensors sensors)
+               )
+       else
+               if use kernel_Darwin ; then
+                       # Upstream default to checking but --enable-affinity
+                       # overrides this. Simplest to just disable on Darwin
+                       # given it works on BSD anyway.
+                       myeconfargs+=( --disable-affinity )
+               fi
+
+               myeconfargs+=(
+                       --disable-capabilities
+                       --disable-delayacct
+                       --disable-sensors
+               )
+       fi
+
+       econf ${myeconfargs[@]}
+}
+
+pkg_postinst() {
+       xdg_desktop_database_update
+       xdg_icon_cache_update
+
+       fcaps cap_sys_ptrace /usr/bin/${PN}
+}
+
+pkg_postrm() {
+       xdg_desktop_database_update
+       xdg_icon_cache_update
+}

Reply via email to