lsof: upgraded package to upstream

Upgraded sys-process/lsof to version 4.94.0-r1 on amd64, arm

BUG=b:187795909
TEST=Local builds on amd64, arm, arm64

Change-Id: I0fb54f1281c75e6a8503a5f0b0dbad3a3deda4ad
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/overlays/portage-stable/+/2972751
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Adrian Ratiu <adrian.ratiu@collabora.corp-partner.google.com>
Tested-by: Luis Lozano <llozano@chromium.org>
Auto-Submit: Adrian Ratiu <adrian.ratiu@collabora.corp-partner.google.com>
Commit-Queue: Luis Lozano <llozano@chromium.org>
diff --git a/metadata/md5-cache/sys-process/lsof-4.91 b/metadata/md5-cache/sys-process/lsof-4.91
deleted file mode 100644
index 7dedb82..0000000
--- a/metadata/md5-cache/sys-process/lsof-4.91
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install postinst prepare unpack
-DEPEND=rpc? ( net-libs/libtirpc ) selinux? ( sys-libs/libselinux ) rpc? ( virtual/pkgconfig )
-DESCRIPTION=Lists open files for running Unix processes
-EAPI=6
-HOMEPAGE=ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
-IUSE=examples ipv6 rpc selinux
-KEYWORDS=*
-LICENSE=lsof
-RDEPEND=rpc? ( net-libs/libtirpc ) selinux? ( sys-libs/libselinux )
-SLOT=0
-SRC_URI=ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_4.91.tar.bz2 ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/OLD/lsof_4.91.tar.bz2 http://www.mirrorservice.org/sites/lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_4.91.tar.bz2
-_eclasses_=desktop	b1d22ac8bdd4679ab79c71aca235009d	epatch	ed88001f77c6dd0d5f09e45c1a5b480e	estack	686eaab303305a908fd57b2fd7617800	eutils	fcb2aa98e1948b835b5ae66ca52868c5	flag-o-matic	5d5921a298e95441da2f85be419894c0	ltprune	2729691420b6deeda2a90b1f1183fb55	multilib	2477ebe553d3e4d2c606191fe6c33602	preserve-libs	ef207dc62baddfddfd39a164d9797648	toolchain-funcs	605c126bed8d87e4378d5ff1645330cb	vcs-clean	2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=dc4fab23793ad21831fc5eeccaa6be50
diff --git a/metadata/md5-cache/sys-process/lsof-4.94.0-r1 b/metadata/md5-cache/sys-process/lsof-4.94.0-r1
new file mode 100644
index 0000000..31e051b
--- /dev/null
+++ b/metadata/md5-cache/sys-process/lsof-4.94.0-r1
@@ -0,0 +1,15 @@
+BDEPEND=sys-apps/groff rpc? ( virtual/pkgconfig )
+DEFINED_PHASES=compile configure install postinst prepare
+DEPEND=rpc? ( net-libs/libtirpc ) selinux? ( sys-libs/libselinux )
+DESCRIPTION=Lists open files for running Unix processes
+EAPI=7
+HOMEPAGE=https://github.com/lsof-org/lsof
+IUSE=examples ipv6 rpc selinux
+KEYWORDS=*
+LICENSE=lsof
+RDEPEND=rpc? ( net-libs/libtirpc ) selinux? ( sys-libs/libselinux )
+RESTRICT=test
+SLOT=0
+SRC_URI=https://github.com/lsof-org/lsof/archive/4.94.0.tar.gz -> lsof-4.94.0.tar.gz
+_eclasses_=eutils	fcb2aa98e1948b835b5ae66ca52868c5	flag-o-matic	5d5921a298e95441da2f85be419894c0	multilib	2477ebe553d3e4d2c606191fe6c33602	toolchain-funcs	605c126bed8d87e4378d5ff1645330cb
+_md5_=7c74078f4d83ab44eb68e994ca26987d
diff --git a/sys-process/lsof/Manifest b/sys-process/lsof/Manifest
index 373269f..dde8512 100644
--- a/sys-process/lsof/Manifest
+++ b/sys-process/lsof/Manifest
@@ -1 +1 @@
-DIST lsof_4.91.tar.bz2 791734 BLAKE2B cd6211caedea34fdbb89266fd78a70902117eda6d4d7fa69115426f4a6f5cb5296fa09bbd946648d8d93483881e4ea4e2190f090be155c1081850e8366cfd05a SHA512 49f811941dd6303f7cb0655fddb8b1177af5d1b18f2bd1edfab09d2c128aea73daecf09c7a5375979c66ba764c88a6e70c9086b55c3634e3be01ab1aa12e9f92
+DIST lsof-4.94.0.tar.gz 1340224 BLAKE2B b3d3c4707dac22c5431ac37c6a9f28ba5057b9a8dce65038934f1148209ef4615012ed887e263ec648679d0d95a06c78ed83a7d76cc8d97c05c013c563938793 SHA512 852b12e621e1dbf71e5f7fd848a200339ca278fbe8c39dcd33f745d1aea4e61552c0f30a3f6469ad9d4b86a9163e677f8c95298159ebd647357734225aa06c0c
diff --git a/sys-process/lsof/files/lsof-4.90-darwin-cppfix.patch b/sys-process/lsof/files/lsof-4.90-darwin-cppfix.patch
deleted file mode 100644
index fcbfeba..0000000
--- a/sys-process/lsof/files/lsof-4.90-darwin-cppfix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur a/dialects/darwin/libproc/dfile.c b/dialects/darwin/libproc/dfile.c
---- a/dialects/darwin/libproc/dfile.c	2018-02-19 15:04:26.011578124 +0800
-+++ b/dialects/darwin/libproc/dfile.c	2018-02-19 15:04:45.006502653 +0800
-@@ -43,7 +43,7 @@
- #include "lsof.h"
- 
- #if	defined(PROC_FP_GUARDED)
--#extern	struct pff_tab	Pgf_tab[];
-+extern	struct pff_tab	Pgf_tab[];
- #endif	/* defined(PROC_FP_GUARDED) */
- 
- 
diff --git a/sys-process/lsof/files/lsof-4.94-arm-sigbus-fix.patch b/sys-process/lsof/files/lsof-4.94-arm-sigbus-fix.patch
new file mode 100644
index 0000000..95bad20
--- /dev/null
+++ b/sys-process/lsof/files/lsof-4.94-arm-sigbus-fix.patch
@@ -0,0 +1,63 @@
+https://bugs.gentoo.org/797358
+
+From 21cb1dad1243f4c0a427d893babab12e48b60f0e Mon Sep 17 00:00:00 2001
+From: Masatake YAMATO <yamato@redhat.com>
+Date: Sun, 20 Jun 2021 21:40:55 +0900
+Subject: [PATCH] Adjust alignment of buffer passed to stat()
+
+Close #160.
+
+The original code passes char[] buffer to stat().
+This can be cause a SIGBUS.
+
+#160 reported an actual crash on armv7a + glibc-2.33 platform.
+See also https://sourceware.org/bugzilla/show_bug.cgi?id=27993.
+
+The issue is reported by @10ne1.
+
+Signed-off-by: Masatake YAMATO <yamato@redhat.com>
+[Adrian: Backported to 4.94]
+Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
+--- a/misc.c
++++ b/misc.c
+@@ -293,7 +293,15 @@ doinchild(fn, fp, rbuf, rbln)
+ 		 */
+ 
+ 		    int r_al, r_rbln;
+-		    char r_arg[MAXPATHLEN+1], r_rbuf[MAXPATHLEN+1];
++		    char r_arg[MAXPATHLEN+1];
++		    union {
++			    char r_rbuf[MAXPATHLEN+1];
++			    /*
++			     * This field is only for adjusting the alignment of r_rbuf that
++			     * can be used as an argument for stat().
++			     */
++			    struct stat _;
++		    } r;
+ 		    int (*r_fn)();
+ 		/*
+ 		 * Close sufficient open file descriptors except Pipes[0] and
+@@ -358,16 +366,16 @@ doinchild(fn, fp, rbuf, rbln)
+ 			||  read(Pipes[0], r_arg, r_al) != r_al
+ 			||  read(Pipes[0], (char *)&r_rbln, sizeof(r_rbln))
+ 			    != (int)sizeof(r_rbln)
+-			||  r_rbln < 1 || r_rbln > (int)sizeof(r_rbuf))
++			||  r_rbln < 1 || r_rbln > (int)sizeof(r.r_rbuf))
+ 			    break;
+-			zeromem (r_rbuf, r_rbln);
+-			rv = r_fn(r_arg, r_rbuf, r_rbln);
++			zeromem (r.r_rbuf, r_rbln);
++			rv = r_fn(r_arg, r.r_rbuf, r_rbln);
+ 			en = errno;
+ 			if (write(Pipes[3], (char *)&rv, sizeof(rv))
+ 			    != sizeof(rv)
+ 			||  write(Pipes[3], (char *)&en, sizeof(en))
+ 			    != sizeof(en)
+-			||  write(Pipes[3], r_rbuf, r_rbln) != r_rbln)
++			||  write(Pipes[3], r.r_rbuf, r_rbln) != r_rbln)
+ 			    break;
+ 		    }
+ 		    (void) _exit(0);
+-- 
+2.32.0
+
diff --git a/sys-process/lsof/lsof-4.91.ebuild b/sys-process/lsof/lsof-4.94.0-r1.ebuild
similarity index 83%
rename from sys-process/lsof/lsof-4.91.ebuild
rename to sys-process/lsof/lsof-4.94.0-r1.ebuild
index fbbca87..348ea37 100644
--- a/sys-process/lsof/lsof-4.91.ebuild
+++ b/sys-process/lsof/lsof-4.94.0-r1.ebuild
@@ -1,16 +1,14 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=7
 
 inherit flag-o-matic toolchain-funcs
 
 MY_P="${P/-/_}"
 DESCRIPTION="Lists open files for running Unix processes"
-HOMEPAGE="ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/"
-SRC_URI="ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/${MY_P}.tar.bz2
-	ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/OLD/${MY_P}.tar.bz2
-	http://www.mirrorservice.org/sites/lsof.itap.purdue.edu/pub/tools/unix/lsof/${MY_P}.tar.bz2"
+HOMEPAGE="https://github.com/lsof-org/lsof"
+SRC_URI="https://github.com/lsof-org/lsof/archive/${PV}.tar.gz -> ${P}.tar.gz"
 
 LICENSE="lsof"
 SLOT="0"
@@ -19,22 +17,20 @@
 
 RDEPEND="rpc? ( net-libs/libtirpc )
 	selinux? ( sys-libs/libselinux )"
-DEPEND="${RDEPEND}
-	rpc? ( virtual/pkgconfig )"
+DEPEND="${RDEPEND}"
+BDEPEND="
+	sys-apps/groff
+	rpc? ( virtual/pkgconfig )
+"
 
-S="${WORKDIR}/${MY_P}/${MY_P}_src"
+# needs fixing first
+RESTRICT="test"
 
 PATCHES=(
 	"${FILESDIR}"/${PN}-4.85-cross.patch #432120
-	"${FILESDIR}"/${PN}-4.90-darwin-cppfix.patch #648084
+	"${FILESDIR}"/${PN}-4.94-arm-sigbus-fix.patch
 )
 
-src_unpack() {
-	unpack ${A}
-	cd ${MY_P} || die
-	unpack ./${MY_P}_src.tar
-}
-
 src_prepare() {
 	default
 	# fix POSIX compliance with `echo`
@@ -49,6 +45,10 @@
 		-e '/test -r/s:test -r \$\{LSOF_INCLUDE\}/([[:alnum:]/._]*):echo "#include <\1>" | ${LSOF_CC} ${LSOF_CFGF} -E - >/dev/null 2>\&1:g' \
 		-e 's:grep (.*) \$\{LSOF_INCLUDE\}/([[:alnum:]/._]*):echo "#include <\2>" | ${LSOF_CC} ${LSOF_CFGF} -E -P -dD - 2>/dev/null | grep \1:' \
 		Configure || die
+
+	# "create" man-page (bug #689462)
+	# inspired by shipped "makeman" ksh script
+	soelim < Lsof.8 > lsof.8 || die
 }
 
 target() {
diff --git a/sys-process/lsof/metadata.xml b/sys-process/lsof/metadata.xml
index 4f913c0..1591821 100644
--- a/sys-process/lsof/metadata.xml
+++ b/sys-process/lsof/metadata.xml
@@ -8,4 +8,7 @@
 <use>
 	<flag name="rpc">support looking up RPC service info</flag>
 </use>
+<upstream>
+	<remote-id type="cpe">cpe:/a:lsof_project:lsof</remote-id>
+</upstream>
 </pkgmetadata>