From 8e9eed344245571c7684216aebc38384b6c4be2d Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 3 Jan 2016 20:56:45 +0000 Subject: [PATCH] iproute2: update to 4.3.0 iproute2-4.0 had connmark support added by nbd. This does not work with 4.x kernels. iproute2-4.3 is the latest version and has his changes mainlined. This patch updates the package to iproute2-4.3 and fixes the patches so that it compiles. This should resolve ticket #21374. Signed-off-by: Rob Mosher SVN-Revision: 48098 --- package/network/utils/iproute2/Makefile | 6 +- .../utils/iproute2/patches/007-no_arpd.patch | 21 +++-- .../utils/iproute2/patches/008-no_netem.patch | 13 +-- .../iproute2/patches/110-extra-ccopts.patch | 7 +- .../patches/130-missing_include.patch | 6 +- .../patches/210-add-act_connmark.patch | 87 ------------------- .../utils/iproute2/patches/300-ip_tiny.patch | 18 ++-- .../patches/911-fix_in_h_include.patch | 30 +++++++ 8 files changed, 68 insertions(+), 120 deletions(-) delete mode 100644 package/network/utils/iproute2/patches/210-add-act_connmark.patch create mode 100644 package/network/utils/iproute2/patches/911-fix_in_h_include.patch diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile index e5015dbdfc..3979269160 100644 --- a/package/network/utils/iproute2/Makefile +++ b/package/network/utils/iproute2/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iproute2 -PKG_VERSION:=4.0.0 -PKG_RELEASE:=3 +PKG_VERSION:=4.3.0 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=http://kernel.org/pub/linux/utils/net/iproute2/ -PKG_MD5SUM:=3adc263ade4ee76c35032e8f50b54108 +PKG_MD5SUM:=1a2bbb80cfc7ab3f3e987e18b3207c2f PKG_BUILD_PARALLEL:=1 PKG_LICENSE:=GPL-2.0 diff --git a/package/network/utils/iproute2/patches/007-no_arpd.patch b/package/network/utils/iproute2/patches/007-no_arpd.patch index 6a7e24ecd3..d33dfe60d9 100644 --- a/package/network/utils/iproute2/patches/007-no_arpd.patch +++ b/package/network/utils/iproute2/patches/007-no_arpd.patch @@ -1,11 +1,16 @@ --- a/misc/Makefile +++ b/misc/Makefile -@@ -1,7 +1,7 @@ - SSOBJ=ss.o ssfilter.o - LNSTATOBJ=lnstat.o lnstat_util.o - --TARGETS=ss nstat ifstat rtacct arpd lnstat -+TARGETS=ss nstat ifstat rtacct lnstat - +@@ -5,9 +5,9 @@ + include ../Config - + +-ifeq ($(HAVE_BERKELEY_DB),y) +- TARGETS += arpd +-endif ++#ifeq ($(HAVE_BERKELEY_DB),y) ++# TARGETS += arpd ++#endif + + ifeq ($(HAVE_SELINUX),y) + LDLIBS += $(shell pkg-config --libs libselinux) + diff --git a/package/network/utils/iproute2/patches/008-no_netem.patch b/package/network/utils/iproute2/patches/008-no_netem.patch index 165ce0c9b9..232a6ea973 100644 --- a/package/network/utils/iproute2/patches/008-no_netem.patch +++ b/package/network/utils/iproute2/patches/008-no_netem.patch @@ -1,11 +1,12 @@ --- a/Makefile +++ b/Makefile -@@ -36,7 +36,7 @@ WFLAGS += -Wmissing-declarations -Wold-s - CFLAGS = $(WFLAGS) $(CCOPTS) -I../include $(DEFINES) +@@ -41,7 +41,7 @@ WFLAGS += -Wmissing-declarations -Wold-s + CFLAGS := $(WFLAGS) $(CCOPTS) -I../include $(DEFINES) $(CFLAGS) YACCFLAGS = -d -t -v - --SUBDIRS=lib ip tc bridge misc netem genl man -+SUBDIRS=lib ip tc bridge misc genl man - + +-SUBDIRS=lib ip tc bridge misc netem genl tipc man ++SUBDIRS=lib ip tc bridge misc genl tipc man + LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a LDLIBS += $(LIBNETLINK) + diff --git a/package/network/utils/iproute2/patches/110-extra-ccopts.patch b/package/network/utils/iproute2/patches/110-extra-ccopts.patch index 0e36230012..611b1bce61 100644 --- a/package/network/utils/iproute2/patches/110-extra-ccopts.patch +++ b/package/network/utils/iproute2/patches/110-extra-ccopts.patch @@ -1,11 +1,10 @@ --- a/Makefile +++ b/Makefile -@@ -29,7 +29,7 @@ ADDLIB+=ipx_ntop.o ipx_pton.o - CC = gcc - HOSTCC = gcc +@@ -34,7 +34,7 @@ ADDLIB+=ipx_ntop.o ipx_pton.o DEFINES += -D_GNU_SOURCE + # Turn on transparent support for LFS + DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -CCOPTS = -O2 +CCOPTS = -O2 $(EXTRA_CCOPTS) WFLAGS := -Wall -Wstrict-prototypes -Wmissing-prototypes WFLAGS += -Wmissing-declarations -Wold-style-definition -Wformat=2 - diff --git a/package/network/utils/iproute2/patches/130-missing_include.patch b/package/network/utils/iproute2/patches/130-missing_include.patch index 8856963110..6dc63e4128 100644 --- a/package/network/utils/iproute2/patches/130-missing_include.patch +++ b/package/network/utils/iproute2/patches/130-missing_include.patch @@ -1,10 +1,10 @@ --- a/lib/namespace.c +++ b/lib/namespace.c -@@ -9,6 +9,7 @@ - +@@ -10,6 +10,7 @@ #include #include + #include +#include - + #include "utils.h" #include "namespace.h" diff --git a/package/network/utils/iproute2/patches/210-add-act_connmark.patch b/package/network/utils/iproute2/patches/210-add-act_connmark.patch deleted file mode 100644 index 10167ae50c..0000000000 --- a/package/network/utils/iproute2/patches/210-add-act_connmark.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- a/tc/Makefile -+++ b/tc/Makefile -@@ -44,6 +44,7 @@ TCMODULES += m_mirred.o - TCMODULES += m_nat.o - TCMODULES += m_pedit.o - TCMODULES += m_skbedit.o -+TCMODULES += m_connmark.o - TCMODULES += m_csum.o - TCMODULES += m_simple.o - TCMODULES += m_vlan.o ---- /dev/null -+++ b/tc/m_connmark.c -@@ -0,0 +1,74 @@ -+/* -+ * m_connmark.c Connection tracking marking import -+ * -+ * Copyright (c) 2011 Felix Fietkau -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms and conditions of the GNU General Public License, -+ * version 2, as published by the Free Software Foundation. -+ * -+ * This program is distributed in the hope it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+ * more details. -+ * -+ * You should have received a copy of the GNU General Public License along with -+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple -+ * Place - Suite 330, Boston, MA 02111-1307 USA. -+ */ -+ -+#include -+#include -+#include -+#include -+#include "utils.h" -+#include "tc_util.h" -+ -+static void -+explain(void) -+{ -+ fprintf(stderr, "Usage: ... connmark\n"); -+} -+ -+static void -+usage(void) -+{ -+ explain(); -+ exit(-1); -+} -+ -+static int -+parse_connmark(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, -+ struct nlmsghdr *n) -+{ -+ int argc = *argc_p; -+ char **argv = *argv_p; -+ -+ if (matches(*argv, "connmark") != 0) -+ return -1; -+ -+ NEXT_ARG(); -+ -+ if (matches(*argv, "help") == 0) -+ usage(); -+ -+ *argc_p = argc; -+ *argv_p = argv; -+ return 0; -+} -+ -+static int print_connmark(struct action_util *au, FILE *f, struct rtattr *arg) -+{ -+ if (arg == NULL) -+ return -1; -+ -+ fprintf(f, " connmark"); -+ -+ return 0; -+} -+ -+struct action_util connmark_action_util = { -+ .id = "connmark", -+ .parse_aopt = parse_connmark, -+ .print_aopt = print_connmark, -+}; diff --git a/package/network/utils/iproute2/patches/300-ip_tiny.patch b/package/network/utils/iproute2/patches/300-ip_tiny.patch index 14518dce1c..c0ebfd3ce5 100644 --- a/package/network/utils/iproute2/patches/300-ip_tiny.patch +++ b/package/network/utils/iproute2/patches/300-ip_tiny.patch @@ -25,7 +25,7 @@ sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \ --- a/ip/ip.c +++ b/ip/ip.c -@@ -71,30 +71,42 @@ static const struct cmd { +@@ -73,30 +73,42 @@ static const struct cmd { int (*func)(int argc, char **argv); } cmds[] = { { "address", do_ipaddr }, @@ -44,7 +44,7 @@ { "link", do_iplink }, +#ifndef IPROUTE2_TINY { "l2tp", do_ipl2tp }, - { "fou", do_ipfou }, + { "fou", do_ipfou }, +#endif { "tunnel", do_iptunnel }, { "tunl", do_iptunnel }, @@ -53,7 +53,7 @@ { "tap", do_iptuntap }, { "token", do_iptoken }, { "tcpmetrics", do_tcp_metrics }, - { "tcp_metrics",do_tcp_metrics }, + { "tcp_metrics", do_tcp_metrics }, +#endif { "monitor", do_ipmonitor }, +#ifndef IPROUTE2_TINY @@ -70,22 +70,22 @@ }; --- a/lib/utils.c +++ b/lib/utils.c -@@ -642,6 +642,7 @@ const char *rt_addr_n2a(int af, const vo - case AF_INET: - case AF_INET6: +@@ -675,6 +675,7 @@ const char *rt_addr_n2a(int af, int len, return inet_ntop(af, addr, buf, buflen); + case AF_MPLS: + return mpls_ntop(af, addr, buf, buflen); +#ifndef IPROUTE2_TINY case AF_IPX: return ipx_ntop(af, addr, buf, buflen); case AF_DECnet: -@@ -650,6 +651,7 @@ const char *rt_addr_n2a(int af, const vo +@@ -683,6 +684,7 @@ const char *rt_addr_n2a(int af, int len, memcpy(dna.a_addr, addr, 2); return dnet_ntop(af, &dna, buf, buflen); } +#endif + case AF_PACKET: + return ll_addr_n2a(addr, len, ARPHRD_VOID, buf, buflen); default: - return "???"; - } --- a/lib/Makefile +++ b/lib/Makefile @@ -4,6 +4,10 @@ ifeq ($(IP_CONFIG_SETNS),y) diff --git a/package/network/utils/iproute2/patches/911-fix_in_h_include.patch b/package/network/utils/iproute2/patches/911-fix_in_h_include.patch new file mode 100644 index 0000000000..cce086c3e5 --- /dev/null +++ b/package/network/utils/iproute2/patches/911-fix_in_h_include.patch @@ -0,0 +1,30 @@ +--- a/include/linux/in.h ++++ b/include/linux/in.h +@@ -15,6 +15,7 @@ + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ ++#ifndef _NETINET_IN_H + #ifndef _LINUX_IN_H + #define _LINUX_IN_H + +@@ -297,3 +298,4 @@ struct sockaddr_in { + + + #endif /* _LINUX_IN_H */ ++#endif /* _NETINET_IN_H */ +--- a/include/linux/in6.h ++++ b/include/linux/in6.h +@@ -18,6 +18,7 @@ + * 2 of the License, or (at your option) any later version. + */ + ++#ifndef _NETINET_IN_H + #ifndef _LINUX_IN6_H + #define _LINUX_IN6_H + +@@ -291,3 +292,4 @@ struct in6_flowlabel_req { + * MRT6_MAX + */ + #endif /* _LINUX_IN6_H */ ++#endif /* _NETINET_IN_H */ -- 2.25.1