[OpenWrt-Devel] [PATCH] Update iproute2 to 4.3.0

Rob Mosher nyt-openwrt at countercultured.net
Wed Dec 23 19:14:21 EST 2015


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 <nyt-openwrt at countercultured.net>
---
 package/network/utils/iproute2/Makefile            |  6 +-
 .../utils/iproute2/patches/007-no_arpd.patch       | 21 ++++--
 .../utils/iproute2/patches/008-no_netem.patch      | 13 ++--
 .../utils/iproute2/patches/110-extra-ccopts.patch  |  7 +-
 .../iproute2/patches/130-missing_include.patch     |  6 +-
 .../iproute2/patches/210-add-act_connmark.patch    | 87 ----------------------
 .../utils/iproute2/patches/300-ip_tiny.patch       | 18 ++---
 .../iproute2/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 e5015db..3979269 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 6a7e24e..d33dfe6 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 165ce0c..232a6ea 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 0e36230..611b1bc 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 8856963..6dc63e4 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 <fcntl.h>
  #include <dirent.h>
+ #include <limits.h>
 +#include <sys/param.h>
- 
+
  #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 10167ae..0000000
--- 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 <nbd at openwrt.org>
-+ *
-+ * 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 <stdio.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <string.h>
-+#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 14518dc..c0ebfd3 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 0000000..cce086c
--- /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.1.4
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list