lsof-4.92.1didos
download
# Copyright 1999-2016 Gentoo Foundation
# Copyright 2017-2018 Jan Chren (rindeal)
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit rindeal
## functions: append-ldflags, append-cppflags
inherit flag-o-matic
## functions: tc-getCC, tc-getPKG_CONFIG
inherit toolchain-funcs
DESCRIPTION="Lists open files for running Unix processes"
HOMEPAGE="https://people.freebsd.org/~abe/"
LICENSE="lsof"
MY_P="${P/-/_}_src"
SLOT="0"
SRC_URI_A=(
"https://github.com/lsof-org/lsof/archive/refs/tags/${PV}.tar.gz"
)
KEYWORDS="~amd64 ~arm ~arm64"
IUSE_A=( examples ipv6 rpc selinux static )
CDEPEND_A=(
"rpc? ( net-libs/libtirpc )
selinux? ( sys-libs/libselinux )"
)
DEPEND_A=( "${CDEPEND_A[@]}"
"rpc? ( virtual/pkgconfig )"
)
RDEPEND_A=( "${CDEPEND_A[@]}" )
RESTRICT+=" mirror"
inherit arrays
S="${WORKDIR}/${MY_P}"
src_prepare() {
eapply "${FILESDIR}"/${PN}-4.85-cross.patch #432120
eapply_user
# fix POSIX compliance with `echo`
rsed -e 's:echo -n:printf:' \
-i -- AFSConfig Configure Customize Inventory tests/CkTestDB
# Convert `test -r header.h` into a compile test.
# Make sure we convert `test ... -a ...` into two `test` commands
# so we can then convert both over into a compile test. #601432
rsed -E \
-e '/if test .* -a /s: -a : \&\& test :g' \
-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:' \
-i -- Configure
}
src_configure() {
use static && \
append-ldflags -static
append-cppflags $(use rpc && $(tc-getPKG_CONFIG) libtirpc --cflags || echo "-DHASNOTRPC -DHASNORPC_H")
append-cppflags $(usex ipv6 -{D,U}HASIPv6)
export LSOF_CFGL="${CFLAGS} ${LDFLAGS} $(use rpc && $(tc-getPKG_CONFIG) libtirpc --libs)"
# Set LSOF_INCLUDE to a dummy location so the script doesn't poke
# around in it and mix /usr/include paths with cross-compile/etc.
touch .neverInv
export LINUX_HASSELINUX=$(usex selinux y n)
export LSOF_INCLUDE=${T}
export LSOF_CC=$(tc-getCC)
export LSOF_AR="$(tc-getAR) rc"
export LSOF_RANLIB=$(tc-getRANLIB)
export LSOF_CFGF="${CFLAGS} ${CPPFLAGS}"
./Configure -n linux || die
}
src_compile() {
emake DEBUG="" all
}
src_install() {
dobin "${PN}"
doman "${PN}.8"
if use examples ; then
insinto /usr/share/lsof/scripts
doins scripts/*
fi
dodoc 00*
}