summaryrefslogtreecommitdiff
path: root/sys-apps/iproute2/iproute2-9999.ebuild
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-06-29 12:04:12 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-06-29 12:04:12 +0100
commit0f558761aa2dee1017b4751e4017205e015a9560 (patch)
tree037df795519468a25d9362b4e95cdaeb84eb1cf9 /sys-apps/iproute2/iproute2-9999.ebuild
parent752d6256e5204b958b0ef7905675a940b5e9172f (diff)
gentoo resync : 29.12.2022
Diffstat (limited to 'sys-apps/iproute2/iproute2-9999.ebuild')
-rw-r--r--sys-apps/iproute2/iproute2-9999.ebuild85
1 files changed, 63 insertions, 22 deletions
diff --git a/sys-apps/iproute2/iproute2-9999.ebuild b/sys-apps/iproute2/iproute2-9999.ebuild
index 11dfd239d1a7..c0e45a9ec79e 100644
--- a/sys-apps/iproute2/iproute2-9999.ebuild
+++ b/sys-apps/iproute2/iproute2-9999.ebuild
@@ -3,14 +3,14 @@
EAPI=7
-inherit toolchain-funcs
+inherit eapi8-dosym edo toolchain-funcs
-if [[ ${PV} == "9999" ]] ; then
+if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git"
inherit git-r3
else
SRC_URI="https://www.kernel.org/pub/linux/utils/net/${PN}/${P}.tar.xz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
fi
DESCRIPTION="kernel routing and traffic control utilities"
@@ -18,7 +18,7 @@ HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2"
LICENSE="GPL-2"
SLOT="0"
-IUSE="atm berkdb bpf caps elf +iptables libbsd minimal selinux"
+IUSE="atm berkdb bpf caps elf +iptables libbsd minimal nfs selinux split-usr"
# We could make libmnl optional, but it's tiny, so eh
RDEPEND="
@@ -31,9 +31,10 @@ RDEPEND="
elf? ( virtual/libelf:= )
iptables? ( >=net-firewall/iptables-1.4.20:= )
libbsd? ( dev-libs/libbsd )
+ nfs? ( net-libs/libtirpc:= )
selinux? ( sys-libs/libselinux )
"
-# We require newer linux-headers for ipset support #549948 and some defines #553876
+# We require newer linux-headers for ipset support (bug #549948) and some defines (bug #553876)
DEPEND="
${RDEPEND}
>=sys-kernel/linux-headers-3.16
@@ -52,17 +53,12 @@ PATCHES=(
"${FILESDIR}"/${PN}-5.7.0-mix-signal.h-include.patch
)
-doecho() {
- echo "${@}"
- "${@}" || die
-}
-
src_prepare() {
default
# Fix version if necessary
local versionfile="include/version.h"
- if [[ "${PV}" != 9999 ]] && ! grep -Fq "${PV}" ${versionfile} ; then
+ if [[ ${PV} != 9999 ]] && ! grep -Fq "${PV}" ${versionfile} ; then
einfo "Fixing version string"
sed "s@\"[[:digit:]\.]\+\"@\"${PV}\"@" \
-i ${versionfile} || die
@@ -91,21 +87,62 @@ src_prepare() {
src_configure() {
tc-export AR CC PKG_CONFIG
- # This sure is ugly. Should probably move into toolchain-funcs at some point.
+ # This sure is ugly. Should probably move into toolchain-funcs at some point.
local setns
pushd "${T}" >/dev/null || die
- printf '#include <sched.h>\nint main(){return setns(0, 0);}\n' > test.c
- ${CC} ${CFLAGS} ${CPPFLAGS} -D_GNU_SOURCE ${LDFLAGS} test.c >&/dev/null && setns=y || setns=n
- echo 'int main(){return 0;}' > test.c
- ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null || sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile
+ printf '#include <sched.h>\nint main(){return setns(0, 0);}\n' > test.c || die
+ if ${CC} ${CFLAGS} ${CPPFLAGS} -D_GNU_SOURCE ${LDFLAGS} test.c >&/dev/null ; then
+ setns=y
+ else
+ setns=n
+ fi
+
+ echo 'int main(){return 0;}' > test.c || die
+ if ! ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null ; then
+ sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile || die
+ fi
popd >/dev/null || die
# run "configure" script first which will create "config.mk"...
# Using econf breaks since 5.14.0 (a9c3d70d902a0473ee5c13336317006a52ce8242)
- doecho ./configure --libbpf_force $(usex bpf on off)
+ edo ./configure --libbpf_force $(usex bpf on off)
+
+ # Remove the definitions made by configure and allow them to be overridden
+ # by USE flags below.
+ # We have to do the cheesy only-sed-if-disabled because otherwise
+ # the *_FLAGS etc stuff found by configure will be used but result
+ # in a broken build.
+ if ! use berkdb ; then
+ sed -i -e '/HAVE_BERKELEY_DB/d' config.mk || die
+ fi
+
+ if ! use caps ; then
+ sed -i -e '/HAVE_CAP/d' config.mk || die
+ fi
+
+ if use minimal ; then
+ sed -i -e '/HAVE_MNL/d' config.mk || die
+ fi
- # ...now switch on/off requested features via USE flags
+ if ! use elf ; then
+ sed -i -e '/HAVE_ELF/d' config.mk || die
+ fi
+
+ if ! use nfs ; then
+ sed -i -e '/HAVE_RPC/d' config.mk || die
+ fi
+
+ if ! use selinux ; then
+ sed -i -e '/HAVE_SELINUX/d' config.mk || die
+ fi
+
+ if ! use libbsd ; then
+ sed -i -e '/HAVE_LIBBSD/d' config.mk || die
+ fi
+
+ # ...Now switch on/off requested features via USE flags
# this is only useful if the test did not set other things, per bug #643722
+ # Keep in sync with ifs above, or refactor to be unified.
cat <<-EOF >> config.mk
TC_CONFIG_ATM := $(usex atm y n)
TC_CONFIG_XT := $(usex iptables y n)
@@ -116,6 +153,7 @@ src_configure() {
HAVE_CAP := $(usex caps y n)
HAVE_MNL := $(usex minimal n y)
HAVE_ELF := $(usex elf y n)
+ HAVE_RPC := $(usex nfs y n)
HAVE_SELINUX := $(usex selinux y n)
IP_CONFIG_SETNS := ${setns}
# Use correct iptables dir, bug #144265, bug #293709
@@ -153,10 +191,13 @@ src_install() {
dolib.a lib/libnetlink.a
insinto /usr/include
doins include/libnetlink.h
- # This local header pulls in a lot of linux headers it
- # doesn't directly need. Delete this header that requires
- # linux-headers-3.8 until that goes stable. # bug #467716
- sed -i '/linux\/netconf.h/d' "${ED}"/usr/include/libnetlink.h || die
+
+ if use split-usr ; then
+ # Can remove compatibility symlink in a year: 2023-05-28.
+ # bug #547264
+ mv "${ED}"/sbin/ss "${ED}"/bin/ss || die
+ dosym8 -r /bin/ss /sbin/ss
+ fi
if use berkdb ; then
keepdir /var/lib/arpd