public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-process/psmisc/, sys-process/psmisc/files/
Date: Fri, 28 Oct 2022 07:01:59 +0000 (UTC)	[thread overview]
Message-ID: <1666940162.1df78d697b62b92988a676d7a89714f9bf1f9716.sam@gentoo> (raw)

commit:     1df78d697b62b92988a676d7a89714f9bf1f9716
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 28 06:55:38 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct 28 06:56:02 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1df78d69

sys-process/psmisc: add 23.5

Closes: https://bugs.gentoo.org/802414
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-process/psmisc/Manifest                        |  1 +
 ...psmisc-23.5-fix-killall-pidfd_send_signal.patch | 40 ++++++++++++
 sys-process/psmisc/psmisc-23.5.ebuild              | 73 ++++++++++++++++++++++
 3 files changed, 114 insertions(+)

diff --git a/sys-process/psmisc/Manifest b/sys-process/psmisc/Manifest
index ed6b89da2914..e52f80aa82b4 100644
--- a/sys-process/psmisc/Manifest
+++ b/sys-process/psmisc/Manifest
@@ -1 +1,2 @@
 DIST psmisc-23.4.tar.xz 370000 BLAKE2B e762171c4d3252421a49b352fadb3e892f66862f003a313a0cc692f973364b06d2652a51d331314462784d94ad55189e74c4d7a023d5d7c917c5e5c05009f46b SHA512 b05781fdb283a6f132bd385d64437f8080e6bc0e11cd2e3e02227678682bb67b3c89edec34a6d067d77312811d072dc60b47ebb32b168c4c69bbc36df643a471
+DIST psmisc-23.5.tar.xz 394012 BLAKE2B 258b82c9fff3765f33cdcd4150489b3e585a47b9065b1cb4f5b432bea4aa7766aab15b160cfb948df9e835c7ac09a9f185d663ab1cd376bedea53bdaf73fd776 SHA512 e908220350491a595ceaf96025a9aa14d832cacc8901545d0864152053fedaf9dc10f45fb2870aa2a00e4d9d8947243038357e14a82b04ab5d20c53e7f841a8d

diff --git a/sys-process/psmisc/files/psmisc-23.5-fix-killall-pidfd_send_signal.patch b/sys-process/psmisc/files/psmisc-23.5-fix-killall-pidfd_send_signal.patch
new file mode 100644
index 000000000000..0fc9c30a9635
--- /dev/null
+++ b/sys-process/psmisc/files/psmisc-23.5-fix-killall-pidfd_send_signal.patch
@@ -0,0 +1,40 @@
+https://gitlab.com/psmisc/psmisc/-/commit/6892e321e7042e3df60a5501a1c59d076e8a856f
+
+From 6892e321e7042e3df60a5501a1c59d076e8a856f Mon Sep 17 00:00:00 2001
+From: Craig Small <csmall@dropbear.xyz>
+Date: Mon, 18 Jul 2022 20:16:42 +1000
+Subject: [PATCH] killall: use kill if pidfd_send_signal() fails
+
+The pidfd_send_signal() system call appeared in Linux 5.1
+If psmisc is build on a system before then, or a non-Linux
+system, then kill() is used instead. However if psmisc is
+built on a Linux >= 5.1 system but run on a < 5.1 Linux
+system the system call fails and killall doesn't work.
+
+The fix, as proposed by Peter T. Breuer, is to try
+pidfd_send_signal() and if the return value is < 0 and
+errno is ENOSYS then we know at runtime the system call
+failed and we fall through to trusty old kill().
+
+Note, this means that killall on systems below 5.1 still
+have the race PID condition that the pidfd calls fix.
+
+References:
+ https://bugs.debian.org/1015228
+--- a/src/killall.c
++++ b/src/killall.c
+@@ -326,7 +326,12 @@ my_send_signal(
+ {
+ #ifdef __NR_pidfd_send_signal
+     if (pid > 0) /* Not PGID */
+-        return syscall(__NR_pidfd_send_signal, pidfd, sig, NULL, 0);
++    {
++	int ret = syscall(__NR_pidfd_send_signal, pidfd, sig, NULL, 0);
++	if (ret >= 0 || errno != ENOSYS)
++	    return ret;
++	// fall through if no such syscall
++    }
+ #endif
+     return kill(pid, sig);
+ }
+GitLab

diff --git a/sys-process/psmisc/psmisc-23.5.ebuild b/sys-process/psmisc/psmisc-23.5.ebuild
new file mode 100644
index 000000000000..221b3631be6d
--- /dev/null
+++ b/sys-process/psmisc/psmisc-23.5.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="A set of tools that use the proc filesystem"
+HOMEPAGE="http://psmisc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="nls selinux test X"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	!=app-i18n/man-pages-l10n-4.0.0-r0
+	>=sys-libs/ncurses-5.7-r7:=
+	nls? ( virtual/libintl )
+	selinux? ( sys-libs/libselinux )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+	>=sys-devel/libtool-2.2.6b
+	nls? ( sys-devel/gettext )
+	test? ( dev-util/dejagnu )
+"
+
+DOCS=( AUTHORS ChangeLog NEWS README )
+
+PATCHES=(
+	"${FILESDIR}"/${P}-fix-killall-pidfd_send_signal.patch
+)
+
+src_configure() {
+	if tc-is-cross-compiler ; then
+		# This isn't ideal but upstream don't provide a placement
+		# when malloc is missing anyway, leading to errors like:
+		# pslog.c:(.text.startup+0x108): undefined reference to `rpl_malloc'
+		# See https://sourceforge.net/p/psmisc/bugs/71/
+		# (and https://lists.gnu.org/archive/html/autoconf/2011-04/msg00019.html)
+		export ac_cv_func_malloc_0_nonnull=yes \
+			ac_cv_func_realloc_0_nonnull=yes
+	fi
+
+	# No longer needed in > 23.5
+	# https://gitlab.com/psmisc/psmisc/-/commit/3fac667430341bdcec733da6eacd88b03813467a
+	# bug #802414
+	touch testsuite/global-conf.exp || die
+
+	local myeconfargs=(
+		--disable-harden-flags
+		--enable-ipv6
+		$(use_enable nls)
+		$(use_enable selinux)
+	)
+	econf "${myeconfargs[@]}"
+}
+
+src_install() {
+	default
+
+	use X || rm -f "${ED}"/usr/bin/pstree.x11
+
+	[[ -s ${ED}/usr/bin/peekfd ]] || rm -f "${ED}"/usr/bin/peekfd
+	[[ -e ${ED}/usr/bin/peekfd ]] || rm -f "${ED}"/usr/share/man/man1/peekfd.1
+
+	# fuser is needed by init.d scripts; use * wildcard for #458250
+	dodir /bin
+	mv "${ED}"/usr/bin/*fuser "${ED}"/bin || die
+}


             reply	other threads:[~2022-10-28  7:02 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-28  7:01 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-02-06 15:18 [gentoo-commits] repo/gentoo:master commit in: sys-process/psmisc/, sys-process/psmisc/files/ Lars Wendler
2018-09-24 11:27 Lars Wendler
2018-08-14 13:03 Lars Wendler
2016-10-27  6:06 Lars Wendler

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=1666940162.1df78d697b62b92988a676d7a89714f9bf1f9716.sam@gentoo \
    --to=sam@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