sys-process/lsof: fix for Darwin, bug #648084
authorFabian Groffen <grobian@gentoo.org>
Tue, 27 Mar 2018 09:00:47 +0000 (11:00 +0200)
committerFabian Groffen <grobian@gentoo.org>
Tue, 27 Mar 2018 09:00:47 +0000 (11:00 +0200)
This is based on the work by jsteward in bug #648084.

Closes: https://bugs.gentoo.org/648084
Package-Manager: Portage-2.3.24, Repoman-2.3.6

sys-process/lsof/files/lsof-4.90-darwin-cppfix.patch [new file with mode: 0644]
sys-process/lsof/lsof-4.90.ebuild
sys-process/lsof/lsof-4.91.ebuild

diff --git a/sys-process/lsof/files/lsof-4.90-darwin-cppfix.patch b/sys-process/lsof/files/lsof-4.90-darwin-cppfix.patch
new file mode 100644 (file)
index 0000000..fcbfeba
--- /dev/null
@@ -0,0 +1,12 @@
+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) */
+ 
+ 
index f22dd0eaae84bd5dfc27c35c947c4a077294d46a..8a1faa697af26a01aafcb471f59f0128c32c26c7 100644 (file)
@@ -14,7 +14,7 @@ SRC_URI="ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/${MY_P}.tar.bz2
 
 LICENSE="lsof"
 SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
 IUSE="examples ipv6 rpc selinux static"
 
 RDEPEND="rpc? ( net-libs/libtirpc )
@@ -26,6 +26,7 @@ S="${WORKDIR}/${MY_P}/${MY_P}_src"
 
 PATCHES=(
        "${FILESDIR}"/${PN}-4.85-cross.patch #432120
+       "${FILESDIR}"/${PN}-4.90-darwin-cppfix.patch #648084
 )
 
 src_unpack() {
@@ -66,6 +67,15 @@ src_configure() {
        append-cppflags $(use rpc && $(tc-getPKG_CONFIG) libtirpc --cflags || echo "-DHASNOTRPC -DHASNORPC_H")
        append-cppflags $(usex ipv6 -{D,U}HASIPv6)
        [[ ${CHOST} == *-solaris2.11 ]] && append-cppflags -DHAS_PAD_MUTEX
+       if [[ ${CHOST} == *-darwin* ]] ; then
+               # make sys/proc_info.h available in ${T} because of LSOF_INCLUDE
+               # dummy location -- Darwin needs this for a Configure check to
+               # succeed
+               if [[ -e /usr/include/sys/proc_info.h ]] ; then
+                       mkdir -p "${T}"/sys || die
+                       ( cd "${T}"/sys && ln -s /usr/include/sys/proc_info.h ) || die
+               fi
+       fi
 
        export LSOF_CFGL="${CFLAGS} ${LDFLAGS} \
                $(use rpc && $(tc-getPKG_CONFIG) libtirpc --libs)"
index f22dd0eaae84bd5dfc27c35c947c4a077294d46a..8a1faa697af26a01aafcb471f59f0128c32c26c7 100644 (file)
@@ -14,7 +14,7 @@ SRC_URI="ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/${MY_P}.tar.bz2
 
 LICENSE="lsof"
 SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
 IUSE="examples ipv6 rpc selinux static"
 
 RDEPEND="rpc? ( net-libs/libtirpc )
@@ -26,6 +26,7 @@ S="${WORKDIR}/${MY_P}/${MY_P}_src"
 
 PATCHES=(
        "${FILESDIR}"/${PN}-4.85-cross.patch #432120
+       "${FILESDIR}"/${PN}-4.90-darwin-cppfix.patch #648084
 )
 
 src_unpack() {
@@ -66,6 +67,15 @@ src_configure() {
        append-cppflags $(use rpc && $(tc-getPKG_CONFIG) libtirpc --cflags || echo "-DHASNOTRPC -DHASNORPC_H")
        append-cppflags $(usex ipv6 -{D,U}HASIPv6)
        [[ ${CHOST} == *-solaris2.11 ]] && append-cppflags -DHAS_PAD_MUTEX
+       if [[ ${CHOST} == *-darwin* ]] ; then
+               # make sys/proc_info.h available in ${T} because of LSOF_INCLUDE
+               # dummy location -- Darwin needs this for a Configure check to
+               # succeed
+               if [[ -e /usr/include/sys/proc_info.h ]] ; then
+                       mkdir -p "${T}"/sys || die
+                       ( cd "${T}"/sys && ln -s /usr/include/sys/proc_info.h ) || die
+               fi
+       fi
 
        export LSOF_CFGL="${CFLAGS} ${LDFLAGS} \
                $(use rpc && $(tc-getPKG_CONFIG) libtirpc --libs)"