iproute2: update to 4.3.0
authorFelix Fietkau <nbd@openwrt.org>
Sun, 3 Jan 2016 20:56:45 +0000 (20:56 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 3 Jan 2016 20:56:45 +0000 (20:56 +0000)
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@countercultured.net>
SVN-Revision: 48098

package/network/utils/iproute2/Makefile
package/network/utils/iproute2/patches/007-no_arpd.patch
package/network/utils/iproute2/patches/008-no_netem.patch
package/network/utils/iproute2/patches/110-extra-ccopts.patch
package/network/utils/iproute2/patches/130-missing_include.patch
package/network/utils/iproute2/patches/210-add-act_connmark.patch [deleted file]
package/network/utils/iproute2/patches/300-ip_tiny.patch
package/network/utils/iproute2/patches/911-fix_in_h_include.patch [new file with mode: 0644]

index e5015db..3979269 100644 (file)
@@ -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
 
index 6a7e24e..d33dfe6 100644 (file)
@@ -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)
+
index 165ce0c..232a6ea 100644 (file)
@@ -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)
+
index 0e36230..611b1bc 100644 (file)
@@ -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
index 8856963..6dc63e4 100644 (file)
@@ -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 (file)
index 10167ae..0000000
+++ /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@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,
-+};
index 14518dc..c0ebfd3 100644 (file)
@@ -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
  };
 --- 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 (file)
index 0000000..cce086c
--- /dev/null
@@ -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 */