psmisc: upgraded package to upstream

Upgraded sys-process/psmisc to version 23.3-r1 on amd64, arm, arm64

BUG=None
TEST=emerge-elm psmisc
TEST=test_that <DUT> logging_CrashServices

Change-Id: I8da32d7482c6fb8c37233e1b32b50deff4bf7d4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/overlays/portage-stable/+/2192458
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Anand Mistry <amistry@chromium.org>
Commit-Queue: Anand Mistry <amistry@chromium.org>
diff --git a/metadata/md5-cache/sys-process/psmisc-23.1-r1 b/metadata/md5-cache/sys-process/psmisc-23.3-r1
similarity index 73%
rename from metadata/md5-cache/sys-process/psmisc-23.1-r1
rename to metadata/md5-cache/sys-process/psmisc-23.3-r1
index 708077f..f746afc 100644
--- a/metadata/md5-cache/sys-process/psmisc-23.1-r1
+++ b/metadata/md5-cache/sys-process/psmisc-23.3-r1
@@ -1,12 +1,12 @@
-DEFINED_PHASES=compile configure install
+DEFINED_PHASES=configure install
 DEPEND=>=sys-libs/ncurses-5.7-r7:0= nls? ( virtual/libintl ) selinux? ( sys-libs/libselinux ) >=sys-devel/libtool-2.2.6b nls? ( sys-devel/gettext )
 DESCRIPTION=A set of tools that use the proc filesystem
-EAPI=6
+EAPI=7
 HOMEPAGE=http://psmisc.sourceforge.net/
 IUSE=ipv6 nls selinux X
 KEYWORDS=*
 LICENSE=GPL-2
 RDEPEND=>=sys-libs/ncurses-5.7-r7:0= nls? ( virtual/libintl ) selinux? ( sys-libs/libselinux )
 SLOT=0
-SRC_URI=mirror://sourceforge/psmisc/psmisc-23.1.tar.xz
-_md5_=b5ca396f7aaa9b7a8c7d05eb001029c1
+SRC_URI=mirror://sourceforge/psmisc/psmisc-23.3.tar.xz
+_md5_=30ce123c2930285507661faeedde4a88
diff --git a/sys-process/psmisc/Manifest b/sys-process/psmisc/Manifest
index c193226..8fa00b7 100644
--- a/sys-process/psmisc/Manifest
+++ b/sys-process/psmisc/Manifest
@@ -1 +1 @@
-DIST psmisc-23.1.tar.xz 296136 BLAKE2B e53f7b80f1106622d652dad772d4236a62a1eb58e277f078cf0392d5a0bd7963c66805e28f6d1300999f2e2e5dcb692b1ecb3f6d39cefa77ebbc87302cd730be SHA512 f678869ea555986a2538ada9630b74ce79304f3ee85cc9d69a3912d8d30ad491829eac0dcb69aae7003ee9b5de9645d2135b80a9e0b77824e60c417dc0be5f95
+DIST psmisc-23.3.tar.xz 311896 BLAKE2B f38360dfb037a758633a8ff25af1de70be83ae5b2f2afe856ce237ade7bd2720f7c270c5af884313177022aa70f408dfce0c39e5d847057a6fdba98e3363561c SHA512 791ffef78d87b092d653da98710b338017466a9e1e1935968b9f0194ccef8da941317aa0c39d821d46b20d95d6539ccf78e5ebb71ad1032ae62337a397180d58
diff --git a/sys-process/psmisc/files/psmisc-23.2-killall_check_truncated_16_char.patch b/sys-process/psmisc/files/psmisc-23.2-killall_check_truncated_16_char.patch
new file mode 100644
index 0000000..bfc2a24
--- /dev/null
+++ b/sys-process/psmisc/files/psmisc-23.2-killall_check_truncated_16_char.patch
@@ -0,0 +1,122 @@
+From 1188315cd037d73bf946a0003b70c6423cc330d2 Mon Sep 17 00:00:00 2001
+From: Craig Small <csmall@enc.com.au>
+Date: Wed, 7 Nov 2018 20:13:09 +1100
+Subject: [PATCH] killall: match on 16 character commlen too
+
+The comm length increase meant killall could accomodate the
+larger comm name given out by newer kernels but it meant that
+if a user relied on the previous 16 character truncation then
+processes that used to match would fail.
+
+killall now checks to see if the the comm is the old COMM_LEN
+length and the given name is longer than old COMM_LEN and does
+a truncated match as well.
+
+References:
+ https://bugs.debian.org/912748
+---
+ ChangeLog     |  3 +++
+ src/killall.c | 69 +++++++++++++++++++++++++++++++++++----------------
+ 2 files changed, 50 insertions(+), 22 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index 7fd2abd..37962cb 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,6 @@
++Changes in 23.4
++===============
++	* killall: check also truncated 16 char comm names Debian #912748
+ Changes in 23.2
+ ===============
+ 	* misc: Command names increased from 16 to 64 characters
+diff --git a/src/killall.c b/src/killall.c
+index 2715515..09212a4 100644
+--- a/src/killall.c
++++ b/src/killall.c
+@@ -492,6 +492,49 @@ create_pid_table(int *max_pids, int *pids)
+     return pid_table;
+ }
+ 
++#define strcmp2(A,B,I) (I? strcasecmp((A),(B)):strcmp((A),(B)))
++#define strncmp2(A,B,L,I) (I? strncasecmp((A),(B),(L)):strncmp((A),(B),(L)))
++static int match_process_name(
++    const char *proc_comm,
++    const int comm_len,
++    const char *proc_cmdline,
++    const char *match_name,
++    const int match_len,
++    const int got_long
++                         )
++{
++    /* process is old length but matching longer */
++    if (comm_len == OLD_COMM_LEN - 1 && match_len >= OLD_COMM_LEN - 1)
++    {
++        if (got_long)
++        {
++            return (0 == strncmp2 (match_name, proc_cmdline, OLD_COMM_LEN - 1,
++                                   ignore_case));
++        } else {
++            return (0 == strncmp2 (match_name, proc_comm, OLD_COMM_LEN - 1,
++                                   ignore_case));
++        }
++    }
++
++    if (comm_len == COMM_LEN - 1 && match_len >= COMM_LEN - 1)
++    {
++        if (got_long)
++        {
++            return (0 == strncmp2 (match_name, proc_cmdline, COMM_LEN - 1,
++                                   ignore_case));
++        } else {
++            return (0 == strncmp2 (match_name, proc_comm, COMM_LEN - 1,
++                                   ignore_case));
++        }
++    }
++    /* Not old new COMM_LEN so we match all of it */
++    if (got_long)
++    {
++        return (0 == strcmp2 (match_name, proc_cmdline, ignore_case));
++    }
++    return (0 == strcmp2 (match_name, proc_comm, ignore_case));
++}
++
+ #ifdef WITH_SELINUX
+ static int
+ kill_all(int signal, int name_count, char **namelist, struct passwd *pwent, 
+@@ -599,28 +642,10 @@ kill_all (int signal, int name_count, char **namelist, struct passwd *pwent)
+             {
+                 if (!name_info[j].st.st_dev)
+                 {
+-                    if (length != COMM_LEN - 1 || name_info[j].name_length < COMM_LEN - 1)
+-                    {
+-                        if (ignore_case == 1)
+-                        {
+-                            if (strcasecmp (namelist[j], comm))
+-                                continue;
+-                        } else {
+-                            if (strcmp(namelist[j], comm))
+-                                continue;
+-                        }
+-                    } else {
+-                        if (ignore_case == 1)
+-                        {
+-                            if (got_long ? strcasecmp (namelist[j], command) :
+-                                strncasecmp (namelist[j], comm, COMM_LEN - 1))
+-                                continue;
+-                        } else {
+-                            if (got_long ? strcmp (namelist[j], command) :
+-                                strncmp (namelist[j], comm, COMM_LEN - 1))
+-                                continue;
+-                        }
+-                    }
++                    if (!match_process_name(comm, length, command, namelist[j],
++                                            name_info[j].name_length, got_long))
++                        continue;
++
+                 } else {
+                     int ok = 1; 
+                     if (asprintf (&path, PROC_BASE "/%d/exe", pid_table[i]) < 0)
+-- 
+2.18.1
+
diff --git a/sys-process/psmisc/files/psmisc-23.2-old_comm_len.patch b/sys-process/psmisc/files/psmisc-23.2-old_comm_len.patch
new file mode 100644
index 0000000..ae237e6
--- /dev/null
+++ b/sys-process/psmisc/files/psmisc-23.2-old_comm_len.patch
@@ -0,0 +1,28 @@
+From e2cf9f3e83e0fc0278ff39a4dfc8e3f2730eebca Mon Sep 17 00:00:00 2001
+From: Craig Small <csmall@enc.com.au>
+Date: Wed, 7 Nov 2018 20:19:38 +1100
+Subject: [PATCH] misc: Remember to add comm.h too
+
+The previous commit should have included comm.h too
+---
+ src/comm.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/comm.h b/src/comm.h
+index b54b998..b10eb36 100644
+--- a/src/comm.h
++++ b/src/comm.h
+@@ -33,4 +33,10 @@
+  */
+ #define COMM_LEN 64
+ 
++/*
++ * Older kernels had only 16 characters, which means we may have to check this
++ * too
++ */
++#define OLD_COMM_LEN 16
++
+ #endif
+-- 
+2.18.1
+
diff --git a/sys-process/psmisc/psmisc-23.1-r1.ebuild b/sys-process/psmisc/psmisc-23.3-r1.ebuild
similarity index 65%
rename from sys-process/psmisc/psmisc-23.1-r1.ebuild
rename to sys-process/psmisc/psmisc-23.3-r1.ebuild
index 0665d8a..5537fa3 100644
--- a/sys-process/psmisc/psmisc-23.1-r1.ebuild
+++ b/sys-process/psmisc/psmisc-23.3-r1.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=7
 
 DESCRIPTION="A set of tools that use the proc filesystem"
 HOMEPAGE="http://psmisc.sourceforge.net/"
@@ -23,29 +23,23 @@
 
 src_configure() {
 	local myeconfargs=(
-		$(use_enable selinux)
 		--disable-harden-flags
 		$(use_enable ipv6)
 		$(use_enable nls)
+		$(use_enable selinux)
 	)
 	econf "${myeconfargs[@]}"
 }
 
-src_compile() {
-	# peekfd is a fragile crap hack #330631
-	nonfatal emake -C src peekfd || touch src/peekfd{.o,}
-	emake
-}
-
 src_install() {
 	default
 
-	use X || rm -f "${ED%/}"/usr/bin/pstree.x11
+	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
+	[[ -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
+	mv "${ED}"/usr/bin/*fuser "${ED}"/bin || die
 }