summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2021-09-01 09:17:03 +0200
committerLars Wendler <polynomial-c@gentoo.org>2021-09-01 09:17:26 +0200
commit1efc25075df9726cab1467d87848a6eda46adce5 (patch)
treeba842ab4e40d91965ddbd200a0b503161354bb6f /sys-apps/iproute2
parentsys-apps/iproute2: Synced live ebuild (diff)
downloadgentoo-1efc25075df9726cab1467d87848a6eda46adce5.tar.gz
gentoo-1efc25075df9726cab1467d87848a6eda46adce5.tar.bz2
gentoo-1efc25075df9726cab1467d87848a6eda46adce5.zip
sys-apps/iproute2: Removed old
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
Diffstat (limited to 'sys-apps/iproute2')
-rw-r--r--sys-apps/iproute2/Manifest2
-rw-r--r--sys-apps/iproute2/files/iproute2-5.1.0-portability.patch32
-rw-r--r--sys-apps/iproute2/files/iproute2-5.10.0-configure-nomagic.patch226
-rw-r--r--sys-apps/iproute2/iproute2-5.10.0-r2.ebuild168
-rw-r--r--sys-apps/iproute2/iproute2-5.12.0-r1.ebuild170
5 files changed, 0 insertions, 598 deletions
diff --git a/sys-apps/iproute2/Manifest b/sys-apps/iproute2/Manifest
index 7d50a0780cdf..144ab4b2b343 100644
--- a/sys-apps/iproute2/Manifest
+++ b/sys-apps/iproute2/Manifest
@@ -1,4 +1,2 @@
-DIST iproute2-5.10.0.tar.xz 798776 BLAKE2B 8c17e65f03427f45b71dc17b289b272545549a6687257498676a23e4fdc4a590a7215bfdba3c7ac4b1ccde6c38ba8e3eb222eea2532374fa9680633aa198d347 SHA512 a468eefa797898b6de452212aa432c0a931434defacae5fb4335754c1292c5d86a8c8dbf3017f90cec266d71a2a17ae469aac17e1a85a5cbddc70814313e4c13
-DIST iproute2-5.12.0.tar.xz 835880 BLAKE2B 8e3e1b7188d7ab5014d06d7edaae2cb0c1dc65862999a2ca9f31902256d7f3d166de8a1c76e4e137acce2b445d72ea6850bfec3640d1919cb82351d45dd3e47e SHA512 9249beb67b30ceef178b60b2b61a5e6c45277e747ae4c865e739b7ab84192549e8e94ebaee43c0a87c0291037746ffb6936346245220786e369201ee13d60fac
DIST iproute2-5.13.0.tar.xz 845236 BLAKE2B e1c148e2a720236163e7f4d46aa38d244a02ae36ad86571c5606d54c9ccfd8d0363e2fb793d48cf39aae322b3c36b9f8a43eaf570dbdb8243092926cef3d2786 SHA512 a3286639fb303a7c3c553cb5df0a7336c4c67e53eb05e872d2776b771dbfa36ffdf2df140f570275db6785c882992f469f8eb34a5b506aac876216df7dde245d
DIST iproute2-5.14.0.tar.xz 853572 BLAKE2B 52544021798f2cb716a57998d98dadc2441142b02d38c7e274bc17a6e5f994bdb5bd3ebf0b896bfd7e327a44f00f92c2af8e67367cdc0aac70769d563082f543 SHA512 e2b9b0a2c3e6fc4c67cb50b0a9bf710e749648b83369a49bf905edd7e519d76c50c2cc818bb63cc605c409c66075d4d371f2371796e5f7a8f9d04101b80ef75c
diff --git a/sys-apps/iproute2/files/iproute2-5.1.0-portability.patch b/sys-apps/iproute2/files/iproute2-5.1.0-portability.patch
deleted file mode 100644
index e704f65c113f..000000000000
--- a/sys-apps/iproute2/files/iproute2-5.1.0-portability.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 202d79fcf4e184818bd074f8c06e94e700670898 Mon Sep 17 00:00:00 2001
-From: Jory Pratt <anarchy@gentoo.org>
-Date: Tue, 11 Jun 2019 01:48:01 -0500
-Subject: [PATCH] including sysinfo.h from kernel.h makes no sense whatsoever,
- but removing it breaks glibc's userspace header, which includes kernel.h
- instead of sysinfo.h from their sys/sysinfo.h. this seems to be a historical
- mistake. on musl, including any header that uses kernel.h directly or
- indirectly plus sys/sysinfo.h will produce a compile error due to
- redefinition of struct sysinfo. so for now, only include it on glibc in order
- not to break their headers.
-
-Signed-off-by: Jory Pratt <anarchy@gentoo.org>
----
- include/uapi/linux/kernel.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/include/uapi/linux/kernel.h b/include/uapi/linux/kernel.h
-index d99ffa1..f917115 100644
---- a/include/uapi/linux/kernel.h
-+++ b/include/uapi/linux/kernel.h
-@@ -2,7 +2,9 @@
- #ifndef _LINUX_KERNEL_H
- #define _LINUX_KERNEL_H
-
-+#ifdef __GLIBC__
- #include <linux/sysinfo.h>
-+#endif
-
- /*
- * 'kernel.h' contains some often-used function prototypes etc
---
-2.22.0
diff --git a/sys-apps/iproute2/files/iproute2-5.10.0-configure-nomagic.patch b/sys-apps/iproute2/files/iproute2-5.10.0-configure-nomagic.patch
deleted file mode 100644
index cf8ca335f21b..000000000000
--- a/sys-apps/iproute2/files/iproute2-5.10.0-configure-nomagic.patch
+++ /dev/null
@@ -1,226 +0,0 @@
-The hand-rolled configure script, for multiple options (selinux,mnl,elf), sets
-a variable as well as modifying CFLAGS & LDLIBS.
-
-If config.mk is later amended to disable a feature, the CFLAGS/LDLIBS tweaks
-are still in place.
-
-Push the CFLAGS/LDLIBS changes into new conditional Makefile code, so that they
-are only passed when correctly needed.
-
-Prior Gentoo testcase for reproduction:
-USE=minimal ebuild ... compile.
-- Linking with libelf, libmnl & libcap based only on presence.
-- Links based on libselinux based only on presence.
-
-Closes: https://bugs.gentoo.org/643722
-Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
-
-Forward-ported from v4.14.1 to v4.16.0 by Lars Wendler <polynomial-c@gentoo.org>
-Added libcap to v4.17.0 by Lars Wendler <polynomial-c@gentoo.org>
-Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
-Forward-ported from v4.20.0 to v5.10.0 by Lars Wendler <polynomial-c@gentoo.org>
-
---- iproute2-5.10.0/bridge/Makefile
-+++ iproute2-5.10.0/bridge/Makefile
-@@ -2,6 +2,7 @@
- BROBJ = bridge.o fdb.o monitor.o link.o mdb.o vlan.o
-
- include ../config.mk
-+include ../config.include
-
- all: bridge
-
---- iproute2-5.10.0/config.include
-+++ iproute2-5.10.0/config.include
-@@ -0,0 +1,32 @@
-+# We can only modify CFLAGS/LDLIBS after all the config options are known.
-+ifeq ($(IP_CONFIG_SETNS),y)
-+ CFLAGS += $(IP_CONFIG_SETNS_CFLAGS)
-+endif
-+ifeq ($(HAVE_ELF),y)
-+ CFLAGS += $(HAVE_ELF_CFLAGS)
-+ LDLIBS += $(HAVE_ELF_LDLIBS)
-+endif
-+ifeq ($(HAVE_SELINUX),y)
-+ CFLAGS += $(HAVE_SELINUX_CFLAGS)
-+ LDLIBS += $(HAVE_SELINUX_LDLIBS)
-+endif
-+ifeq ($(HAVE_MNL),y)
-+ CFLAGS += $(HAVE_MNL_CFLAGS)
-+ LDLIBS += $(HAVE_MNL_LDLIBS)
-+endif
-+ifeq ($(HAVE_CAP),y)
-+ CFLAGS += $(HAVE_CAP_CFLAGS)
-+ LDLIBS += $(HAVE_CAP_LDLIBS)
-+endif
-+ifeq ($(HAVE_LIBBSD),y)
-+ CFLAGS += $(HAVE_LIBBSD_CFLAGS)
-+ LDLIBS += $(HAVE_LIBBSD_LDLIBS)
-+else
-+ CFLAGS += -DNEED_STRLCPY
-+endif
-+
-+# Rules can only be declared after all variables in them are known.
-+%.o: %.c
-+ $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c -o $@ $<
-+
-+# vim: ft=make:
---- iproute2-5.10.0/configure
-+++ iproute2-5.10.0/configure
-@@ -190,7 +190,7 @@
- if $CC -I$INCLUDE -o $TMPDIR/setnstest $TMPDIR/setnstest.c >/dev/null 2>&1; then
- echo "IP_CONFIG_SETNS:=y" >>$CONFIG
- echo "yes"
-- echo "CFLAGS += -DHAVE_SETNS" >>$CONFIG
-+ echo "IP_CONFIG_SETNS_CFLAGS += -DHAVE_SETNS" >>$CONFIG
- else
- echo "no"
- fi
-@@ -233,8 +233,8 @@
- echo "HAVE_ELF:=y" >>$CONFIG
- echo "yes"
-
-- echo 'CFLAGS += -DHAVE_ELF' `${PKG_CONFIG} libelf --cflags` >> $CONFIG
-- echo 'LDLIBS += ' `${PKG_CONFIG} libelf --libs` >>$CONFIG
-+ echo 'HAVE_ELF_CFLAGS += -DHAVE_ELF' `${PKG_CONFIG} libelf --cflags` >> $CONFIG
-+ echo 'HAVE_ELF_LDLIBS += ' `${PKG_CONFIG} libelf --libs` >>$CONFIG
- else
- echo "no"
- fi
-@@ -247,8 +247,8 @@
- echo "HAVE_SELINUX:=y" >>$CONFIG
- echo "yes"
-
-- echo 'LDLIBS +=' `${PKG_CONFIG} --libs libselinux` >>$CONFIG
-- echo 'CFLAGS += -DHAVE_SELINUX' `${PKG_CONFIG} --cflags libselinux` >>$CONFIG
-+ echo 'HAVE_SELINUX_CFLAGS += -DHAVE_SELINUX' `${PKG_CONFIG} --cflags libselinux` >>$CONFIG
-+ echo 'HAVE_SELINUX_LDLIBS +=' `${PKG_CONFIG} --libs libselinux` >>$CONFIG
- else
- echo "no"
- fi
-@@ -260,8 +260,8 @@
- echo "HAVE_MNL:=y" >>$CONFIG
- echo "yes"
-
-- echo 'CFLAGS += -DHAVE_LIBMNL' `${PKG_CONFIG} libmnl --cflags` >>$CONFIG
-- echo 'LDLIBS +=' `${PKG_CONFIG} libmnl --libs` >> $CONFIG
-+ echo 'HAVE_MNL_CFLAGS += -DHAVE_LIBMNL' `${PKG_CONFIG} libmnl --cflags` >>$CONFIG
-+ echo 'HAVE_MNL_LDLIBS +=' `${PKG_CONFIG} libmnl --libs` >> $CONFIG
- else
- echo "no"
- fi
-@@ -301,8 +301,8 @@
- echo "no"
- else
- if ${PKG_CONFIG} libbsd --exists; then
-- echo 'CFLAGS += -DHAVE_LIBBSD' `${PKG_CONFIG} libbsd --cflags` >>$CONFIG
-- echo 'LDLIBS +=' `${PKG_CONFIG} libbsd --libs` >> $CONFIG
-+ echo 'HAVE_LIBBSD_CFLAGS += -DHAVE_LIBBSD' `${PKG_CONFIG} libbsd --cflags` >>$CONFIG
-+ echo 'HAVE_LIBBSD_LDLIBS +=' `${PKG_CONFIG} libbsd --libs` >> $CONFIG
- echo "no"
- else
- echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
-@@ -318,8 +318,8 @@
- echo "HAVE_CAP:=y" >>$CONFIG
- echo "yes"
-
-- echo 'CFLAGS += -DHAVE_LIBCAP' `${PKG_CONFIG} libcap --cflags` >>$CONFIG
-- echo 'LDLIBS +=' `${PKG_CONFIG} libcap --libs` >> $CONFIG
-+ echo 'HAVE_CAP_CFLAGS += -DHAVE_LIBCAP' `${PKG_CONFIG} libcap --cflags` >>$CONFIG
-+ echo 'HAVE_CAP_LDLIBS +=' `${PKG_CONFIG} libcap --libs` >> $CONFIG
- else
- echo "no"
- fi
-@@ -399,7 +399,3 @@
-
- echo -n "libcap support: "
- check_cap
--
--echo >> $CONFIG
--echo "%.o: %.c" >> $CONFIG
--echo ' $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c -o $@ $<' >> $CONFIG
---- iproute2-5.10.0/devlink/Makefile
-+++ iproute2-5.10.0/devlink/Makefile
-@@ -1,5 +1,6 @@
- # SPDX-License-Identifier: GPL-2.0
- include ../config.mk
-+include ../config.include
-
- TARGETS :=
-
---- iproute2-5.10.0/genl/Makefile
-+++ iproute2-5.10.0/genl/Makefile
-@@ -2,6 +2,7 @@
- GENLOBJ=genl.o
-
- include ../config.mk
-+include ../config.include
- SHARED_LIBS ?= y
-
- CFLAGS += -fno-strict-aliasing
---- iproute2-5.10.0/ip/Makefile
-+++ iproute2-5.10.0/ip/Makefile
-@@ -16,6 +16,7 @@
- RTMONOBJ=rtmon.o
-
- include ../config.mk
-+include ../config.include
-
- ALLOBJ=$(IPOBJ) $(RTMONOBJ)
- SCRIPTS=ifcfg rtpr routel routef
---- iproute2-5.10.0/lib/Makefile
-+++ iproute2-5.10.0/lib/Makefile
-@@ -1,5 +1,6 @@
- # SPDX-License-Identifier: GPL-2.0
- include ../config.mk
-+include ../config.include
-
- CFLAGS += -fPIC
-
---- iproute2-5.10.0/misc/Makefile
-+++ iproute2-5.10.0/misc/Makefile
-@@ -5,6 +5,7 @@
- TARGETS=ss nstat ifstat rtacct lnstat
-
- include ../config.mk
-+include ../config.include
-
- ifeq ($(HAVE_BERKELEY_DB),y)
- TARGETS += arpd
---- iproute2-5.10.0/netem/Makefile
-+++ iproute2-5.10.0/netem/Makefile
-@@ -1,5 +1,6 @@
- # SPDX-License-Identifier: GPL-2.0
- include ../config.mk
-+include ../config.include
-
- DISTGEN = maketable normal pareto paretonormal
- DISTDATA = normal.dist pareto.dist paretonormal.dist experimental.dist
---- iproute2-5.10.0/rdma/Makefile
-+++ iproute2-5.10.0/rdma/Makefile
-@@ -1,5 +1,6 @@
- # SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
- include ../config.mk
-+include ../config.include
-
- TARGETS :=
-
---- iproute2-5.10.0/tc/Makefile
-+++ iproute2-5.10.0/tc/Makefile
-@@ -4,6 +4,7 @@
- emp_ematch.tab.o emp_ematch.lex.o
-
- include ../config.mk
-+include ../config.include
-
- SHARED_LIBS ?= y
-
---- iproute2-5.10.0/tipc/Makefile
-+++ iproute2-5.10.0/tipc/Makefile
-@@ -1,5 +1,6 @@
- # SPDX-License-Identifier: GPL-2.0
- include ../config.mk
-+include ../config.include
-
- TARGETS :=
-
diff --git a/sys-apps/iproute2/iproute2-5.10.0-r2.ebuild b/sys-apps/iproute2/iproute2-5.10.0-r2.ebuild
deleted file mode 100644
index 09e05b28c60b..000000000000
--- a/sys-apps/iproute2/iproute2-5.10.0-r2.ebuild
+++ /dev/null
@@ -1,168 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit toolchain-funcs flag-o-matic multilib
-
-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"
-fi
-
-DESCRIPTION="kernel routing and traffic control utilities"
-HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="atm berkdb caps elf +iptables ipv6 libbsd minimal selinux"
-
-# We could make libmnl optional, but it's tiny, so eh
-RDEPEND="
- !net-misc/arpd
- !minimal? ( net-libs/libmnl:= )
- atm? ( net-dialup/linux-atm )
- berkdb? ( sys-libs/db:= )
- caps? ( sys-libs/libcap )
- elf? ( virtual/libelf:= )
- iptables? ( >=net-firewall/iptables-1.4.20:= )
- libbsd? ( dev-libs/libbsd )
- selinux? ( sys-libs/libselinux )
-"
-# We require newer linux-headers for ipset support #549948 and some defines #553876
-DEPEND="
- ${RDEPEND}
- >=sys-kernel/linux-headers-3.16
-"
-BDEPEND="
- app-arch/xz-utils
- >=sys-devel/bison-2.4
- sys-devel/flex
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.1.0-mtu.patch #291907
- "${FILESDIR}"/${PN}-5.10.0-configure-nomagic.patch # bug 643722
- "${FILESDIR}"/${PN}-5.1.0-portability.patch
- "${FILESDIR}"/${PN}-5.7.0-mix-signal.h-include.patch
-)
-
-src_prepare() {
- if ! use ipv6 ; then
- PATCHES+=(
- "${FILESDIR}"/${PN}-4.20.0-no-ipv6.patch #326849
- )
- fi
-
- default
-
- # Fix version if necessary
- local versionfile="include/version.h"
- if ! grep -Fq "${PV}" ${versionfile} ; then
- einfo "Fixing version string"
- sed "s@\"[[:digit:]\.]\+\"@\"${PV}\"@" \
- -i ${versionfile} || die
- fi
-
- # echo -n is not POSIX compliant
- sed 's@echo -n@printf@' -i configure || die
-
- sed -i \
- -e '/^CC :\?=/d' \
- -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \
- -e "s|-O2|${CFLAGS} ${CPPFLAGS}|" \
- -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \
- -e "/^DBM_INCLUDE/s:=.*:=${T}:" \
- Makefile || die
-
- # build against system headers
- rm -r include/netinet || die #include/linux include/ip{,6}tables{,_common}.h include/libiptc
- sed -i 's:TCPI_OPT_ECN_SEEN:16:' misc/ss.c || die
-
- if use minimal ; then
- sed -i -e '/^SUBDIRS=/s:=.*:=lib tc ip:' Makefile || die
- fi
-}
-
-src_configure() {
- tc-export AR CC PKG_CONFIG
-
- # This sure is ugly. Should probably move into toolchain-funcs at some point.
- local setns
- pushd "${T}" >/dev/null
- 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
- popd >/dev/null
-
- # run "configure" script first which will create "config.mk"...
- econf
-
- # ...now switch on/off requested features via USE flags
- # this is only useful if the test did not set other things, per bug #643722
- cat <<-EOF >> config.mk
- TC_CONFIG_ATM := $(usex atm y n)
- TC_CONFIG_XT := $(usex iptables y n)
- TC_CONFIG_NO_XT := $(usex iptables n y)
- # We've locked in recent enough kernel headers #549948
- TC_CONFIG_IPSET := y
- HAVE_BERKELEY_DB := $(usex berkdb y n)
- HAVE_CAP := $(usex caps y n)
- HAVE_MNL := $(usex minimal n y)
- HAVE_ELF := $(usex elf y n)
- HAVE_SELINUX := $(usex selinux y n)
- IP_CONFIG_SETNS := ${setns}
- # Use correct iptables dir, #144265 #293709
- IPT_LIB_DIR := $(use iptables && ${PKG_CONFIG} xtables --variable=xtlibdir)
- HAVE_LIBBSD := $(usex libbsd y n)
- EOF
-}
-
-src_compile() {
- emake V=1 NETNS_RUN_DIR=/run/netns
-}
-
-src_install() {
- if use minimal ; then
- into /
- dosbin tc/tc
- dobin ip/ip
- return 0
- fi
-
- emake \
- DESTDIR="${D}" \
- PREFIX="${EPREFIX}/usr" \
- LIBDIR="${EPREFIX}"/$(get_libdir) \
- SBINDIR="${EPREFIX}"/sbin \
- CONFDIR="${EPREFIX}"/etc/iproute2 \
- DOCDIR="${EPREFIX}"/usr/share/doc/${PF} \
- MANDIR="${EPREFIX}"/usr/share/man \
- ARPDDIR="${EPREFIX}"/var/lib/arpd \
- install
-
- dodir /bin
- mv "${ED}"/{s,}bin/ip || die #330115
-
- 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. #467716
- sed -i '/linux\/netconf.h/d' "${ED}"/usr/include/libnetlink.h || die
-
- if use berkdb ; then
- keepdir /var/lib/arpd
- # bug 47482, arpd doesn't need to be in /sbin
- dodir /usr/bin
- mv "${ED}"/sbin/arpd "${ED}"/usr/bin/ || die
- elif [[ -d "${ED}"/var/lib/arpd ]]; then
- rmdir --ignore-fail-on-non-empty -p "${ED}"/var/lib/arpd || die
- fi
-}
diff --git a/sys-apps/iproute2/iproute2-5.12.0-r1.ebuild b/sys-apps/iproute2/iproute2-5.12.0-r1.ebuild
deleted file mode 100644
index 14d225e3e580..000000000000
--- a/sys-apps/iproute2/iproute2-5.12.0-r1.ebuild
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit toolchain-funcs flag-o-matic multilib
-
-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"
-fi
-
-DESCRIPTION="kernel routing and traffic control utilities"
-HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="atm berkdb bpf caps elf +iptables ipv6 libbsd minimal selinux"
-
-# We could make libmnl optional, but it's tiny, so eh
-RDEPEND="
- !net-misc/arpd
- !minimal? ( net-libs/libmnl:= )
- atm? ( net-dialup/linux-atm )
- berkdb? ( sys-libs/db:= )
- bpf? ( dev-libs/libbpf:= )
- caps? ( sys-libs/libcap )
- elf? ( virtual/libelf:= )
- iptables? ( >=net-firewall/iptables-1.4.20:= )
- libbsd? ( dev-libs/libbsd )
- selinux? ( sys-libs/libselinux )
-"
-# We require newer linux-headers for ipset support #549948 and some defines #553876
-DEPEND="
- ${RDEPEND}
- >=sys-kernel/linux-headers-3.16
-"
-BDEPEND="
- app-arch/xz-utils
- >=sys-devel/bison-2.4
- sys-devel/flex
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.1.0-mtu.patch #291907
- "${FILESDIR}"/${PN}-5.12.0-configure-nomagic.patch # bug 643722
- #"${FILESDIR}"/${PN}-5.1.0-portability.patch
- "${FILESDIR}"/${PN}-5.7.0-mix-signal.h-include.patch
-)
-
-src_prepare() {
- if ! use ipv6 ; then
- PATCHES+=(
- "${FILESDIR}"/${PN}-4.20.0-no-ipv6.patch #326849
- )
- fi
-
- default
-
- # Fix version if necessary
- local versionfile="include/version.h"
- if [[ "${PV}" != 9999 ]] && ! grep -Fq "${PV}" ${versionfile} ; then
- einfo "Fixing version string"
- sed "s@\"[[:digit:]\.]\+\"@\"${PV}\"@" \
- -i ${versionfile} || die
- fi
-
- # echo -n is not POSIX compliant
- sed 's@echo -n@printf@' -i configure || die
-
- sed -i \
- -e '/^CC :\?=/d' \
- -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \
- -e "s|-O2|${CFLAGS} ${CPPFLAGS}|" \
- -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \
- -e "/^DBM_INCLUDE/s:=.*:=${T}:" \
- Makefile || die
-
- # build against system headers
- rm -r include/netinet || die #include/linux include/ip{,6}tables{,_common}.h include/libiptc
- sed -i 's:TCPI_OPT_ECN_SEEN:16:' misc/ss.c || die
-
- if use minimal ; then
- sed -i -e '/^SUBDIRS=/s:=.*:=lib tc ip:' Makefile || die
- fi
-}
-
-src_configure() {
- tc-export AR CC PKG_CONFIG
-
- # This sure is ugly. Should probably move into toolchain-funcs at some point.
- local setns
- pushd "${T}" >/dev/null
- 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
- popd >/dev/null
-
- # run "configure" script first which will create "config.mk"...
- LIBBPF_FORCE="$(usex bpf on off)" \
- econf
-
- # ...now switch on/off requested features via USE flags
- # this is only useful if the test did not set other things, per bug #643722
- cat <<-EOF >> config.mk
- TC_CONFIG_ATM := $(usex atm y n)
- TC_CONFIG_XT := $(usex iptables y n)
- TC_CONFIG_NO_XT := $(usex iptables n y)
- # We've locked in recent enough kernel headers #549948
- TC_CONFIG_IPSET := y
- HAVE_BERKELEY_DB := $(usex berkdb y n)
- HAVE_CAP := $(usex caps y n)
- HAVE_MNL := $(usex minimal n y)
- HAVE_ELF := $(usex elf y n)
- HAVE_SELINUX := $(usex selinux y n)
- IP_CONFIG_SETNS := ${setns}
- # Use correct iptables dir, #144265 #293709
- IPT_LIB_DIR := $(use iptables && ${PKG_CONFIG} xtables --variable=xtlibdir)
- HAVE_LIBBSD := $(usex libbsd y n)
- EOF
-}
-
-src_compile() {
- emake V=1 NETNS_RUN_DIR=/run/netns
-}
-
-src_install() {
- if use minimal ; then
- into /
- dosbin tc/tc
- dobin ip/ip
- return 0
- fi
-
- emake \
- DESTDIR="${D}" \
- PREFIX="${EPREFIX}/usr" \
- LIBDIR="${EPREFIX}"/$(get_libdir) \
- SBINDIR="${EPREFIX}"/sbin \
- CONFDIR="${EPREFIX}"/etc/iproute2 \
- DOCDIR="${EPREFIX}"/usr/share/doc/${PF} \
- MANDIR="${EPREFIX}"/usr/share/man \
- ARPDDIR="${EPREFIX}"/var/lib/arpd \
- install
-
- dodir /bin
- mv "${ED}"/{s,}bin/ip || die #330115
-
- 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. #467716
- sed -i '/linux\/netconf.h/d' "${ED}"/usr/include/libnetlink.h || die
-
- if use berkdb ; then
- keepdir /var/lib/arpd
- # bug 47482, arpd doesn't need to be in /sbin
- dodir /usr/bin
- mv "${ED}"/sbin/arpd "${ED}"/usr/bin/ || die
- elif [[ -d "${ED}"/var/lib/arpd ]]; then
- rmdir --ignore-fail-on-non-empty -p "${ED}"/var/lib/arpd || die
- fi
-}