From cfd3764619cb684c099de57a778ba8ace186cffc Mon Sep 17 00:00:00 2001 From: David Michael Date: Thu, 24 Aug 2017 12:39:06 -0700 Subject: [PATCH] sys-apps/iproute2: Sync with latest upstream --- .../coreos-overlay/sys-apps/iproute2/Manifest | 2 +- .../files/iproute2-3.19.0-fix-build.patch | 28 ------- ...v6.patch => iproute2-4.11.0-no-ipv6.patch} | 40 +++++----- ...ute2-4.12.0-uclibc-ng-add-ipproto_mh.patch | 38 ++++++++++ ...2-3.19.0.ebuild => iproute2-4.12.0.ebuild} | 75 ++++++++++++------- .../sys-apps/iproute2/metadata.xml | 11 ++- 6 files changed, 114 insertions(+), 80 deletions(-) delete mode 100644 sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-3.19.0-fix-build.patch rename sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/{iproute2-3.10.0-no-ipv6.patch => iproute2-4.11.0-no-ipv6.patch} (62%) create mode 100644 sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-4.12.0-uclibc-ng-add-ipproto_mh.patch rename sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/{iproute2-3.19.0.ebuild => iproute2-4.12.0.ebuild} (60%) diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/Manifest b/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/Manifest index 9de65ae0ac..63398361e4 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/Manifest +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/Manifest @@ -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 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-3.19.0-fix-build.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-3.19.0-fix-build.patch deleted file mode 100644 index 9c1240d753..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-3.19.0-fix-build.patch +++ /dev/null @@ -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) diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-3.10.0-no-ipv6.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-4.11.0-no-ipv6.patch similarity index 62% rename from sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-3.10.0-no-ipv6.patch rename to sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-4.11.0-no-ipv6.patch index 86d80d2d87..fc855dcf22 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-3.10.0-no-ipv6.patch +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-4.11.0-no-ipv6.patch @@ -1,10 +1,16 @@ -https://bugs.gentoo.org/326849 - -allow ipv6 to be disabled - ---- a/ip/iptunnel.c -+++ b/ip/iptunnel.c -@@ -629,13 +629,6 @@ int do_iptunnel(int argc, char **argv) +--- iproute2-4.11.0/ip/ipmonitor.c ++++ iproute2-4.11.0/ip/ipmonitor.c +@@ -114,7 +114,6 @@ + } + if (n->nlmsg_type == RTM_NEWPREFIX) { + print_headers(fp, "[PREFIX]", ctrl); +- 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; case AF_INET: break; @@ -18,24 +24,14 @@ allow ipv6 to be disabled default: fprintf(stderr, "Unsupported protocol family: %d\n", preferred_family); exit(-1); ---- a/ip/Makefile -+++ b/ip/Makefile +--- iproute2-4.11.0/ip/Makefile ++++ iproute2-4.11.0/ip/Makefile @@ -1,6 +1,6 @@ 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 \ - 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 \ + ipmaddr.o ipmonitor.o ipmroute.o iptuntap.o iptoken.o \ - ipxfrm.o xfrm_state.o xfrm_policy.o xfrm_monitor.o \ - iplink_vlan.o link_veth.o link_gre.o iplink_can.o \ - iplink_macvlan.o iplink_macvtap.o ipl2tp.o link_vti.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) { + ipxfrm.o xfrm_state.o xfrm_policy.o xfrm_monitor.o iplink_dummy.o \ + iplink_ifb.o iplink_nlmon.o iplink_team.o iplink_vcan.o \ + iplink_vlan.o link_veth.o link_gre.o iplink_can.o iplink_xdp.o \ diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-4.12.0-uclibc-ng-add-ipproto_mh.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-4.12.0-uclibc-ng-add-ipproto_mh.patch new file mode 100644 index 0000000000..48cae70143 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/files/iproute2-4.12.0-uclibc-ng-add-ipproto_mh.patch @@ -0,0 +1,38 @@ +From 2ac2f416072d9968a9ea2dd9f48168223a1147b0 Mon Sep 17 00:00:00 2001 +From: Baruch Siach +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 +--- +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 + #include + ++#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 + diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/iproute2-3.19.0.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/iproute2-4.12.0.ebuild similarity index 60% rename from sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/iproute2-3.19.0.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/iproute2-4.12.0.ebuild index b1919b6e48..3443e720d9 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/iproute2-3.19.0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/iproute2-4.12.0.ebuild @@ -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 -# $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 @@ -11,36 +10,59 @@ if [[ ${PV} == "9999" ]] ; then inherit git-2 else 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 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" SLOT="0" 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:= ) - !minimal? ( berkdb? ( sys-libs/db ) ) + berkdb? ( sys-libs/db:= ) atm? ( net-dialup/linux-atm ) - selinux? ( sys-libs/libselinux )" -DEPEND="${RDEPEND} + selinux? ( sys-libs/libselinux ) +" +# We require newer linux-headers for ipset support #549948 and some defines #553876 +DEPEND=" + ${RDEPEND} app-arch/xz-utils iptables? ( virtual/pkgconfig ) sys-devel/bison sys-devel/flex - >=sys-kernel/linux-headers-2.6.27 - elibc_glibc? ( >=sys-libs/glibc-2.7 )" + >=sys-kernel/linux-headers-3.16 + elibc_glibc? ( >=sys-libs/glibc-2.7 ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-3.1.0-mtu.patch #291907 +) src_prepare() { - epatch "${FILESDIR}"/${PN}-3.1.0-mtu.patch #291907 - use ipv6 || epatch "${FILESDIR}"/${PN}-3.10.0-no-ipv6.patch #326849 - epatch "${FILESDIR}"/${PN}-3.19.0-fix-build.patch + if ! use ipv6 ; then + PATCHES+=( + "${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 \ - -e '/^CC =/d' \ + -e '/^CC :=/d' \ -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \ -e "s:-O2:${CFLAGS} ${CPPFLAGS}:" \ -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \ @@ -51,17 +73,14 @@ src_prepare() { # Use /run instead of /var/run. sed -i \ -e 's:/var/run:/run:g' \ - ip/ipnetns.c \ + include/namespace.h \ man/man8/ip-netns.8 || die # build against system headers 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 - # don't build arpd if USE=-berkdb #81660 - use berkdb || sed -i '/^TARGETS=/s: arpd : :' misc/Makefile - - use minimal && sed -i -e '/^SUBDIRS=/s:=.*:=lib tc:' Makefile + use minimal && sed -i -e '/^SUBDIRS=/s:=.*:=lib tc ip:' Makefile } src_configure() { @@ -70,15 +89,20 @@ src_configure() { # This sure is ugly. Should probably move into toolchain-funcs at some point. local setns pushd "${T}" >/dev/null - echo 'main(){return setns();};' > test.c - ${CC} ${CFLAGS} ${LDFLAGS} test.c >&/dev/null && setns=y || setns=n - echo 'main(){};' > test.c - ${CC} ${CFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null || sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile + printf '#include \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 cat <<-EOF > Config 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_MNL := $(usex minimal n y) HAVE_SELINUX := $(usex selinux y n) IP_CONFIG_SETNS := ${setns} # Use correct iptables dir, #144265 #293709 @@ -90,6 +114,7 @@ src_install() { if use minimal ; then into / dosbin tc/tc + dobin ip/ip return 0 fi @@ -97,7 +122,7 @@ src_install() { DESTDIR="${D}" \ LIBDIR="${EPREFIX}"/$(get_libdir) \ SBINDIR="${EPREFIX}"/sbin \ - CONFDIR="${EPREFIX}"/usr/share/iproute2 \ + CONFDIR="${EPREFIX}"/etc/iproute2 \ DOCDIR="${EPREFIX}"/usr/share/doc/${PF} \ MANDIR="${EPREFIX}"/usr/share/man \ ARPDDIR="${EPREFIX}"/var/lib/arpd \ diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/metadata.xml b/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/metadata.xml index fb2e46a5ae..0fa0b4cd78 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/metadata.xml +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/iproute2/metadata.xml @@ -1,10 +1,13 @@ -base-system + + base-system@gentoo.org + Gentoo Base System + - build programs that use berkdb (just arpd) - include support for iptables filtering - only install ip and tc programs + build programs that use berkdb (just arpd) + include support for iptables filtering + only install ip and tc programs