sys-apps/iproute2: Sync with latest upstream

This commit is contained in:
David Michael 2017-08-24 12:39:06 -07:00
parent d5b45e9a24
commit cfd3764619
6 changed files with 114 additions and 80 deletions

View File

@ -1 +1 @@
DIST iproute2-3.19.0.tar.xz 455004 SHA256 e2f9f8c36e166f2ba6c0e1e7a9ad84cdf7c1615b93df49dac44563d7b57fd7b0 SHA512 fc533b6a526cfda234f043ac25302a3206a81ab2a740640b997b6bfb22e6f94ddc21b704191a358ea8721a327ba785e0224a4b4129111ef5008b4003379c3706 WHIRLPOOL 6a0aa1a948286d7dcb3663d787167c27760d756385295bf0ca631920aed50fbd984c19204247097116ef0d4e293c3c8dbe13b0b44c6ec83e7815a7461293c89f DIST iproute2-4.12.0.tar.xz 662424 SHA256 2e0a4c4262d9f6c169885a6e16c4c5c5f1ef6fd57b6a0e7b41f42be5bb6ebd7d SHA512 275147f71e7c4698654f0d6d0981ab42f6f108066508c15cfcd5d9e0d3aaf8d33291968d9f06cb03f5494d801cfabf8d53308aaf56fc4fa92c52b137e970a3b0 WHIRLPOOL 590cc191e96ff0b777373603186e4416f064931d529878ec783759f31fd99e1119bb0604e8a89dc98d350f80eca2bfef05a13bca7ce24302408072002c0b17b2

View File

@ -1,28 +0,0 @@
--- tc/Makefile
+++ tc/Makefile
@@ -89,7 +89,7 @@
endif
TCOBJ += $(TCMODULES)
-LDLIBS += -L. -ltc -lm
+LDLIBS += -L. -lm
ifeq ($(SHARED_LIBS),y)
LDLIBS += -ldl
@@ -117,12 +117,13 @@
$(CC) $(CFLAGS) $(LDFLAGS) -shared -fpic $< -o $@
-all: libtc.a tc $(TCSO)
+all: tc $(TCSO)
-tc: $(TCOBJ) $(TCLIB)
+tc: $(TCOBJ) libtc.a
+ $(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@
libtc.a: $(TCLIB)
- $(AR) rcs $@ $(TCLIB)
+ $(AR) rcs $@ $^
install: all
mkdir -p $(MODDESTDIR)

View File

@ -1,10 +1,16 @@
https://bugs.gentoo.org/326849 --- iproute2-4.11.0/ip/ipmonitor.c
+++ iproute2-4.11.0/ip/ipmonitor.c
allow ipv6 to be disabled @@ -114,7 +114,6 @@
}
--- a/ip/iptunnel.c if (n->nlmsg_type == RTM_NEWPREFIX) {
+++ b/ip/iptunnel.c print_headers(fp, "[PREFIX]", ctrl);
@@ -629,13 +629,6 @@ int do_iptunnel(int argc, char **argv) - print_prefix(who, n, arg);
return 0;
}
if (n->nlmsg_type == RTM_NEWRULE || n->nlmsg_type == RTM_DELRULE) {
--- iproute2-4.11.0/ip/iptunnel.c
+++ iproute2-4.11.0/ip/iptunnel.c
@@ -589,13 +589,6 @@
break; break;
case AF_INET: case AF_INET:
break; break;
@ -18,24 +24,14 @@ allow ipv6 to be disabled
default: default:
fprintf(stderr, "Unsupported protocol family: %d\n", preferred_family); fprintf(stderr, "Unsupported protocol family: %d\n", preferred_family);
exit(-1); exit(-1);
--- a/ip/Makefile --- iproute2-4.11.0/ip/Makefile
+++ b/ip/Makefile +++ iproute2-4.11.0/ip/Makefile
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
IPOBJ=ip.o ipaddress.o ipaddrlabel.o iproute.o iprule.o ipnetns.o \ IPOBJ=ip.o ipaddress.o ipaddrlabel.o iproute.o iprule.o ipnetns.o \
- rtm_map.o iptunnel.o ip6tunnel.o tunnel.o ipneigh.o ipntable.o iplink.o \ - rtm_map.o iptunnel.o ip6tunnel.o tunnel.o ipneigh.o ipntable.o iplink.o \
- ipmaddr.o ipmonitor.o ipmroute.o ipprefix.o iptuntap.o iptoken.o \ - ipmaddr.o ipmonitor.o ipmroute.o ipprefix.o iptuntap.o iptoken.o \
+ rtm_map.o iptunnel.o tunnel.o ipneigh.o ipntable.o iplink.o \ + rtm_map.o iptunnel.o tunnel.o ipneigh.o ipntable.o iplink.o \
+ ipmaddr.o ipmonitor.o ipmroute.o iptuntap.o iptoken.o \ + ipmaddr.o ipmonitor.o ipmroute.o iptuntap.o iptoken.o \
ipxfrm.o xfrm_state.o xfrm_policy.o xfrm_monitor.o \ ipxfrm.o xfrm_state.o xfrm_policy.o xfrm_monitor.o iplink_dummy.o \
iplink_vlan.o link_veth.o link_gre.o iplink_can.o \ iplink_ifb.o iplink_nlmon.o iplink_team.o iplink_vcan.o \
iplink_macvlan.o iplink_macvtap.o ipl2tp.o link_vti.o \ iplink_vlan.o link_veth.o link_gre.o iplink_can.o iplink_xdp.o \
--- a/ip/ipmonitor.c
+++ b/ip/ipmonitor.c
@@ -96,7 +96,6 @@ static int accept_msg(const struct socka
if (n->nlmsg_type == RTM_NEWPREFIX) {
if (prefix_banner)
fprintf(fp, "[PREFIX]");
- print_prefix(who, n, arg);
return 0;
}
if (n->nlmsg_type == RTM_NEWRULE || n->nlmsg_type == RTM_DELRULE) {

View File

@ -0,0 +1,38 @@
From 2ac2f416072d9968a9ea2dd9f48168223a1147b0 Mon Sep 17 00:00:00 2001
From: Baruch Siach <baruch@tkos.co.il>
Date: Tue, 18 Jul 2017 14:09:06 +0300
Subject: [PATCH] Fix build with uClibc-ng
Add a local definition for IPPROTO_MH to fix build with uClibc-ng. As of
version 1.0.25, the uClibc-ng netinet/in.h header does not provide this
definition. The kernel provided definition is masked by libc-compat.h. Add
this local fix until uClibc-ng syncs netinet/in.h with glibc.
This partially reverts upstream commit a9ae195a2169 (xfrm: get #define's from
linux includes)
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
Upstream status: non upstreamable; local uClibc-ng compatibility fix
---
ip/xfrm.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/ip/xfrm.h b/ip/xfrm.h
index 54d80ce5e949..50b85550fb45 100644
--- a/ip/xfrm.h
+++ b/ip/xfrm.h
@@ -30,6 +30,10 @@
#include <linux/xfrm.h>
#include <linux/ipsec.h>
+#ifndef IPPROTO_MH
+# define IPPROTO_MH 135
+#endif
+
#define XFRMS_RTA(x) ((struct rtattr*)(((char*)(x)) + NLMSG_ALIGN(sizeof(struct xfrm_usersa_info))))
#define XFRMS_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct xfrm_usersa_info))
--
2.13.2

View File

@ -1,8 +1,7 @@
# Copyright 1999-2015 Gentoo Foundation # Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/iproute2/iproute2-3.19.0.ebuild,v 1.1 2015/02/15 02:54:06 radhermit Exp $
EAPI="5" EAPI=5
inherit eutils toolchain-funcs flag-o-matic multilib inherit eutils toolchain-funcs flag-o-matic multilib
@ -11,36 +10,59 @@ if [[ ${PV} == "9999" ]] ; then
inherit git-2 inherit git-2
else else
SRC_URI="mirror://kernel/linux/utils/net/${PN}/${P}.tar.xz" SRC_URI="mirror://kernel/linux/utils/net/${PN}/${P}.tar.xz"
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
fi fi
DESCRIPTION="kernel routing and traffic control utilities" DESCRIPTION="kernel routing and traffic control utilities"
HOMEPAGE="http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2" HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2"
LICENSE="GPL-2" LICENSE="GPL-2"
SLOT="0" SLOT="0"
IUSE="atm berkdb +iptables ipv6 minimal selinux" IUSE="atm berkdb +iptables ipv6 minimal selinux"
RDEPEND="!net-misc/arpd # We could make libmnl optional, but it's tiny, so eh
RDEPEND="
!net-misc/arpd
!minimal? ( net-libs/libmnl )
iptables? ( >=net-firewall/iptables-1.4.20:= ) iptables? ( >=net-firewall/iptables-1.4.20:= )
!minimal? ( berkdb? ( sys-libs/db ) ) berkdb? ( sys-libs/db:= )
atm? ( net-dialup/linux-atm ) atm? ( net-dialup/linux-atm )
selinux? ( sys-libs/libselinux )" selinux? ( sys-libs/libselinux )
DEPEND="${RDEPEND} "
# We require newer linux-headers for ipset support #549948 and some defines #553876
DEPEND="
${RDEPEND}
app-arch/xz-utils app-arch/xz-utils
iptables? ( virtual/pkgconfig ) iptables? ( virtual/pkgconfig )
sys-devel/bison sys-devel/bison
sys-devel/flex sys-devel/flex
>=sys-kernel/linux-headers-2.6.27 >=sys-kernel/linux-headers-3.16
elibc_glibc? ( >=sys-libs/glibc-2.7 )" elibc_glibc? ( >=sys-libs/glibc-2.7 )
"
PATCHES=(
"${FILESDIR}"/${PN}-3.1.0-mtu.patch #291907
)
src_prepare() { src_prepare() {
epatch "${FILESDIR}"/${PN}-3.1.0-mtu.patch #291907 if ! use ipv6 ; then
use ipv6 || epatch "${FILESDIR}"/${PN}-3.10.0-no-ipv6.patch #326849 PATCHES+=(
epatch "${FILESDIR}"/${PN}-3.19.0-fix-build.patch "${FILESDIR}"/${PN}-4.11.0-no-ipv6.patch #326849
)
fi
# Local uclibc-ng compat fix until uclibc-ng upstream can sync
# netinet/in.h with glibc. Resolves #626546.
if use elibc_uclibc ; then
PATCHES+=(
"${FILESDIR}"/${PN}-4.12.0-uclibc-ng-add-ipproto_mh.patch
)
fi
epatch "${PATCHES[@]}"
sed -i \ sed -i \
-e '/^CC =/d' \ -e '/^CC :=/d' \
-e "/^LIBDIR/s:=.*:=/$(get_libdir):" \ -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \
-e "s:-O2:${CFLAGS} ${CPPFLAGS}:" \ -e "s:-O2:${CFLAGS} ${CPPFLAGS}:" \
-e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \ -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \
@ -51,17 +73,14 @@ src_prepare() {
# Use /run instead of /var/run. # Use /run instead of /var/run.
sed -i \ sed -i \
-e 's:/var/run:/run:g' \ -e 's:/var/run:/run:g' \
ip/ipnetns.c \ include/namespace.h \
man/man8/ip-netns.8 || die man/man8/ip-netns.8 || die
# build against system headers # build against system headers
rm -r include/netinet #include/linux include/ip{,6}tables{,_common}.h include/libiptc rm -r include/netinet #include/linux include/ip{,6}tables{,_common}.h include/libiptc
sed -i 's:TCPI_OPT_ECN_SEEN:16:' misc/ss.c || die sed -i 's:TCPI_OPT_ECN_SEEN:16:' misc/ss.c || die
# don't build arpd if USE=-berkdb #81660 use minimal && sed -i -e '/^SUBDIRS=/s:=.*:=lib tc ip:' Makefile
use berkdb || sed -i '/^TARGETS=/s: arpd : :' misc/Makefile
use minimal && sed -i -e '/^SUBDIRS=/s:=.*:=lib tc:' Makefile
} }
src_configure() { src_configure() {
@ -70,15 +89,20 @@ src_configure() {
# 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 local setns
pushd "${T}" >/dev/null pushd "${T}" >/dev/null
echo 'main(){return setns();};' > test.c printf '#include <sched.h>\nint main(){return setns(0, 0);}\n' > test.c
${CC} ${CFLAGS} ${LDFLAGS} test.c >&/dev/null && setns=y || setns=n ${CC} ${CFLAGS} ${CPPFLAGS} -D_GNU_SOURCE ${LDFLAGS} test.c >&/dev/null && setns=y || setns=n
echo 'main(){};' > test.c echo 'int main(){return 0;}' > test.c
${CC} ${CFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null || sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null || sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile
popd >/dev/null popd >/dev/null
cat <<-EOF > Config cat <<-EOF > Config
TC_CONFIG_ATM := $(usex atm y n) TC_CONFIG_ATM := $(usex atm y n)
TC_CONFIG_XT := $(usex iptables 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_MNL := $(usex minimal n y)
HAVE_SELINUX := $(usex selinux y n) HAVE_SELINUX := $(usex selinux y n)
IP_CONFIG_SETNS := ${setns} IP_CONFIG_SETNS := ${setns}
# Use correct iptables dir, #144265 #293709 # Use correct iptables dir, #144265 #293709
@ -90,6 +114,7 @@ src_install() {
if use minimal ; then if use minimal ; then
into / into /
dosbin tc/tc dosbin tc/tc
dobin ip/ip
return 0 return 0
fi fi
@ -97,7 +122,7 @@ src_install() {
DESTDIR="${D}" \ DESTDIR="${D}" \
LIBDIR="${EPREFIX}"/$(get_libdir) \ LIBDIR="${EPREFIX}"/$(get_libdir) \
SBINDIR="${EPREFIX}"/sbin \ SBINDIR="${EPREFIX}"/sbin \
CONFDIR="${EPREFIX}"/usr/share/iproute2 \ CONFDIR="${EPREFIX}"/etc/iproute2 \
DOCDIR="${EPREFIX}"/usr/share/doc/${PF} \ DOCDIR="${EPREFIX}"/usr/share/doc/${PF} \
MANDIR="${EPREFIX}"/usr/share/man \ MANDIR="${EPREFIX}"/usr/share/man \
ARPDDIR="${EPREFIX}"/var/lib/arpd \ ARPDDIR="${EPREFIX}"/var/lib/arpd \

View File

@ -1,10 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<herd>base-system</herd> <maintainer type="project">
<email>base-system@gentoo.org</email>
<name>Gentoo Base System</name>
</maintainer>
<use> <use>
<flag name='berkdb'>build programs that use berkdb (just arpd)</flag> <flag name="berkdb">build programs that use berkdb (just arpd)</flag>
<flag name='iptables'>include support for iptables filtering</flag> <flag name="iptables">include support for iptables filtering</flag>
<flag name='minimal'>only install ip and tc programs</flag> <flag name="minimal">only install ip and tc programs</flag>
</use> </use>
</pkgmetadata> </pkgmetadata>