[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