summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/iproute2/files')
-rw-r--r--sys-apps/iproute2/files/iproute2-4.11.0-no-ipv6.patch37
-rw-r--r--sys-apps/iproute2/files/iproute2-4.14.1-fix-tc-actions.patch222
-rw-r--r--sys-apps/iproute2/files/iproute2-4.17.0-configure-nomagic.patch207
-rw-r--r--sys-apps/iproute2/files/iproute2-4.20.0-no-ipv6.patch38
-rw-r--r--sys-apps/iproute2/files/iproute2-5.1.0-portability.patch32
-rw-r--r--sys-apps/iproute2/files/iproute2-5.7.0-mix-signal.h-include.patch10
-rw-r--r--sys-apps/iproute2/files/iproute2-6.4.0-disable-libbsd-fallback.patch25
-rw-r--r--sys-apps/iproute2/files/iproute2-6.5.0-configure-nomagic-nolibbsd.patch (renamed from sys-apps/iproute2/files/iproute2-4.20.0-configure-nomagic.patch)134
-rw-r--r--sys-apps/iproute2/files/iproute2-6.5.0-mtu.patch (renamed from sys-apps/iproute2/files/iproute2-3.1.0-mtu.patch)18
-rw-r--r--sys-apps/iproute2/files/iproute2-6.6.0-configure-Add-_GNU_SOURCE-to-strlcpy-configure-test.patch25
-rw-r--r--sys-apps/iproute2/files/iproute2-6.6.0-makefile-use-usr-share-config.patch57
-rw-r--r--sys-apps/iproute2/files/iproute2-6.6.0-musl-c99.patch75
-rw-r--r--sys-apps/iproute2/files/iproute2-6.6.0-revert-CONF_USR_DIR.patch38
-rw-r--r--sys-apps/iproute2/files/iproute2-6.8.0-configure-nomagic-nolibbsd.patch243
-rw-r--r--sys-apps/iproute2/files/iproute2-6.8.0-disable-libbsd-fallback.patch25
-rw-r--r--sys-apps/iproute2/files/iproute2-6.9.0-mtu.patch32
16 files changed, 626 insertions, 592 deletions
diff --git a/sys-apps/iproute2/files/iproute2-4.11.0-no-ipv6.patch b/sys-apps/iproute2/files/iproute2-4.11.0-no-ipv6.patch
deleted file mode 100644
index fc855dcf2209..000000000000
--- a/sys-apps/iproute2/files/iproute2-4.11.0-no-ipv6.patch
+++ /dev/null
@@ -1,37 +0,0 @@
---- 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;
-- /*
-- * This is silly enough but we have no easy way to make it
-- * protocol-independent because of unarranged structure between
-- * IPv4 and IPv6.
-- */
-- case AF_INET6:
-- return do_ip6tunnel(argc, argv);
- default:
- fprintf(stderr, "Unsupported protocol family: %d\n", preferred_family);
- exit(-1);
---- 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_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/sys-apps/iproute2/files/iproute2-4.14.1-fix-tc-actions.patch b/sys-apps/iproute2/files/iproute2-4.14.1-fix-tc-actions.patch
deleted file mode 100644
index a8b7aaa9efe0..000000000000
--- a/sys-apps/iproute2/files/iproute2-4.14.1-fix-tc-actions.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-From 3572e01a090a298e2f4c4f796bad6639b652e031 Mon Sep 17 00:00:00 2001
-From: Michal Privoznik <mprivozn@redhat.com>
-Date: Fri, 8 Dec 2017 11:18:07 +0100
-Subject: tc: util: Don't call NEXT_ARG_FWD() in __parse_action_control()
-
-Not all callers want parse_action_control*() to advance the
-arguments. For instance act_parse_police() does the argument
-advancing itself.
-
-Fixes: e67aba559581 ("tc: actions: add helpers to parse and print control actions")
-Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
----
- tc/m_bpf.c | 1 +
- tc/m_connmark.c | 1 +
- tc/m_csum.c | 1 +
- tc/m_gact.c | 10 +++++-----
- tc/m_ife.c | 1 +
- tc/m_mirred.c | 4 +++-
- tc/m_nat.c | 1 +
- tc/m_pedit.c | 1 +
- tc/m_sample.c | 1 +
- tc/m_skbedit.c | 1 +
- tc/m_skbmod.c | 1 +
- tc/m_tunnel_key.c | 1 +
- tc/m_vlan.c | 1 +
- tc/tc_util.c | 1 -
- 14 files changed, 19 insertions(+), 7 deletions(-)
-
-diff --git a/tc/m_bpf.c b/tc/m_bpf.c
-index 1c1f71c..576f69c 100644
---- a/tc/m_bpf.c
-+++ b/tc/m_bpf.c
-@@ -129,6 +129,7 @@ opt_bpf:
-
- parse_action_control_dflt(&argc, &argv, &parm.action,
- false, TC_ACT_PIPE);
-+ NEXT_ARG_FWD();
-
- if (argc) {
- if (matches(*argv, "index") == 0) {
-diff --git a/tc/m_connmark.c b/tc/m_connmark.c
-index 37d7185..47c7a8c 100644
---- a/tc/m_connmark.c
-+++ b/tc/m_connmark.c
-@@ -82,6 +82,7 @@ parse_connmark(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
- }
-
- parse_action_control_dflt(&argc, &argv, &sel.action, false, TC_ACT_PIPE);
-+ NEXT_ARG_FWD();
-
- if (argc) {
- if (matches(*argv, "index") == 0) {
-diff --git a/tc/m_csum.c b/tc/m_csum.c
-index 7b15673..e1352c0 100644
---- a/tc/m_csum.c
-+++ b/tc/m_csum.c
-@@ -124,6 +124,7 @@ parse_csum(struct action_util *a, int *argc_p,
- }
-
- parse_action_control_dflt(&argc, &argv, &sel.action, false, TC_ACT_OK);
-+ NEXT_ARG_FWD();
-
- if (argc) {
- if (matches(*argv, "index") == 0) {
-diff --git a/tc/m_gact.c b/tc/m_gact.c
-index e7d91da..b30b042 100644
---- a/tc/m_gact.c
-+++ b/tc/m_gact.c
-@@ -87,14 +87,13 @@ parse_gact(struct action_util *a, int *argc_p, char ***argv_p,
- if (argc < 0)
- return -1;
-
--
-- if (matches(*argv, "gact") == 0) {
-- argc--;
-- argv++;
-- } else if (parse_action_control(&argc, &argv, &p.action, false) == -1) {
-+ if (matches(*argv, "gact") != 0 &&
-+ parse_action_control(&argc, &argv, &p.action, false) == -1) {
- usage(); /* does not return */
- }
-
-+ NEXT_ARG_FWD();
-+
- #ifdef CONFIG_GACT_PROB
- if (argc > 0) {
- if (matches(*argv, "random") == 0) {
-@@ -114,6 +113,7 @@ parse_gact(struct action_util *a, int *argc_p, char ***argv_p,
- if (parse_action_control(&argc, &argv,
- &pp.paction, false) == -1)
- usage();
-+ NEXT_ARG_FWD();
- if (get_u16(&pp.pval, *argv, 10)) {
- fprintf(stderr,
- "Illegal probability val 0x%x\n",
-diff --git a/tc/m_ife.c b/tc/m_ife.c
-index 205efc9..4647f6a 100644
---- a/tc/m_ife.c
-+++ b/tc/m_ife.c
-@@ -159,6 +159,7 @@ static int parse_ife(struct action_util *a, int *argc_p, char ***argv_p,
-
- parse_action_control_dflt(&argc, &argv, &p.action, false, TC_ACT_PIPE);
-
-+ NEXT_ARG_FWD();
- if (argc) {
- if (matches(*argv, "index") == 0) {
- NEXT_ARG();
-diff --git a/tc/m_mirred.c b/tc/m_mirred.c
-index 3870d3a..aa7ce6d 100644
---- a/tc/m_mirred.c
-+++ b/tc/m_mirred.c
-@@ -202,8 +202,10 @@ parse_direction(struct action_util *a, int *argc_p, char ***argv_p,
- }
-
-
-- if (p.eaction == TCA_EGRESS_MIRROR || p.eaction == TCA_INGRESS_MIRROR)
-+ if (p.eaction == TCA_EGRESS_MIRROR || p.eaction == TCA_INGRESS_MIRROR) {
- parse_action_control(&argc, &argv, &p.action, false);
-+ NEXT_ARG_FWD();
-+ }
-
- if (argc) {
- if (iok && matches(*argv, "index") == 0) {
-diff --git a/tc/m_nat.c b/tc/m_nat.c
-index 1e4ff51..f5de4d4 100644
---- a/tc/m_nat.c
-+++ b/tc/m_nat.c
-@@ -116,6 +116,7 @@ parse_nat(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, struct
-
- parse_action_control_dflt(&argc, &argv, &sel.action, false, TC_ACT_OK);
-
-+ NEXT_ARG_FWD();
- if (argc) {
- if (matches(*argv, "index") == 0) {
- NEXT_ARG();
-diff --git a/tc/m_pedit.c b/tc/m_pedit.c
-index 26549ee..dc57f14 100644
---- a/tc/m_pedit.c
-+++ b/tc/m_pedit.c
-@@ -672,6 +672,7 @@ int parse_pedit(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
-
- parse_action_control_dflt(&argc, &argv, &sel.sel.action, false, TC_ACT_OK);
-
-+ NEXT_ARG_FWD();
- if (argc) {
- if (matches(*argv, "index") == 0) {
- NEXT_ARG();
-diff --git a/tc/m_sample.c b/tc/m_sample.c
-index ff5ee6b..31774c0 100644
---- a/tc/m_sample.c
-+++ b/tc/m_sample.c
-@@ -100,6 +100,7 @@ static int parse_sample(struct action_util *a, int *argc_p, char ***argv_p,
-
- parse_action_control_dflt(&argc, &argv, &p.action, false, TC_ACT_PIPE);
-
-+ NEXT_ARG_FWD();
- if (argc) {
- if (matches(*argv, "index") == 0) {
- NEXT_ARG();
-diff --git a/tc/m_skbedit.c b/tc/m_skbedit.c
-index aa374fc..c41a7bb 100644
---- a/tc/m_skbedit.c
-+++ b/tc/m_skbedit.c
-@@ -123,6 +123,7 @@ parse_skbedit(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
- parse_action_control_dflt(&argc, &argv, &sel.action,
- false, TC_ACT_PIPE);
-
-+ NEXT_ARG_FWD();
- if (argc) {
- if (matches(*argv, "index") == 0) {
- NEXT_ARG();
-diff --git a/tc/m_skbmod.c b/tc/m_skbmod.c
-index 561b73f..bc268df 100644
---- a/tc/m_skbmod.c
-+++ b/tc/m_skbmod.c
-@@ -124,6 +124,7 @@ static int parse_skbmod(struct action_util *a, int *argc_p, char ***argv_p,
-
- parse_action_control_dflt(&argc, &argv, &p.action, false, TC_ACT_PIPE);
-
-+ NEXT_ARG_FWD();
- if (argc) {
- if (matches(*argv, "index") == 0) {
- NEXT_ARG();
-diff --git a/tc/m_tunnel_key.c b/tc/m_tunnel_key.c
-index 1cdd035..2dc9187 100644
---- a/tc/m_tunnel_key.c
-+++ b/tc/m_tunnel_key.c
-@@ -175,6 +175,7 @@ static int parse_tunnel_key(struct action_util *a, int *argc_p, char ***argv_p,
- parse_action_control_dflt(&argc, &argv, &parm.action,
- false, TC_ACT_PIPE);
-
-+ NEXT_ARG_FWD();
- if (argc) {
- if (matches(*argv, "index") == 0) {
- NEXT_ARG();
-diff --git a/tc/m_vlan.c b/tc/m_vlan.c
-index 161759f..edae0d1 100644
---- a/tc/m_vlan.c
-+++ b/tc/m_vlan.c
-@@ -131,6 +131,7 @@ static int parse_vlan(struct action_util *a, int *argc_p, char ***argv_p,
- parse_action_control_dflt(&argc, &argv, &parm.action,
- false, TC_ACT_PIPE);
-
-+ NEXT_ARG_FWD();
- if (argc) {
- if (matches(*argv, "index") == 0) {
- NEXT_ARG();
-diff --git a/tc/tc_util.c b/tc/tc_util.c
-index 1887905..ee9a70a 100644
---- a/tc/tc_util.c
-+++ b/tc/tc_util.c
-@@ -586,7 +586,6 @@ static int __parse_action_control(int *argc_p, char ***argv_p, int *result_p,
- }
- result |= jump_cnt;
- }
-- NEXT_ARG_FWD();
- *argc_p = argc;
- *argv_p = argv;
- *result_p = result;
---
-cgit v1.1
-
diff --git a/sys-apps/iproute2/files/iproute2-4.17.0-configure-nomagic.patch b/sys-apps/iproute2/files/iproute2-4.17.0-configure-nomagic.patch
deleted file mode 100644
index 30b5db3bc3c1..000000000000
--- a/sys-apps/iproute2/files/iproute2-4.17.0-configure-nomagic.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-The hand-rolled configure script, for multiple options (selinux,mnl,elf), sets
-a variable as well as modifying CFLAGS & LDLIBS.
-
-If config.mk is later amended to disable a feature, the CFLAGS/LDLIBS tweaks
-are still in place.
-
-Push the CFLAGS/LDLIBS changes into new conditional Makefile code, so that they
-are only passed when correctly needed.
-
-Prior Gentoo testcase for reproduction:
-USE=minimal ebuild ... compile.
-- Linking with libelf, libmnl & libcap based only on presence.
-- Links based on libselinux based only on presence.
-
-Closes: https://bugs.gentoo.org/643722
-Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
-
-Forward-ported from v4.14.1 to v4.16.0 by Lars Wendler <polynomial-c@gentoo.org>
-Added libcap to v4.17.0 by Lars Wendler <polynomial-c@gentoo.org>
-
---- iproute2-4.17.0/bridge/Makefile
-+++ iproute2-4.17.0/bridge/Makefile
-@@ -2,6 +2,7 @@
- BROBJ = bridge.o fdb.o monitor.o link.o mdb.o vlan.o
-
- include ../config.mk
-+include ../config.include
-
- all: bridge
-
---- iproute2-4.17.0/config.include
-+++ iproute2-4.17.0/config.include
-@@ -0,0 +1,26 @@
-+# We can only modify CFLAGS/LDLIBS after all the config options are known.
-+ifeq ($(IP_CONFIG_SETNS),y)
-+ CFLAGS += $(IP_CONFIG_SETNS_CFLAGS)
-+endif
-+ifeq ($(HAVE_ELF),y)
-+ CFLAGS += $(HAVE_ELF_CFLAGS)
-+ LDLIBS += $(HAVE_ELF_LDLIBS)
-+endif
-+ifeq ($(HAVE_SELINUX),y)
-+ CFLAGS += $(HAVE_SELINUX_CFLAGS)
-+ LDLIBS += $(HAVE_SELINUX_LDLIBS)
-+endif
-+ifeq ($(HAVE_MNL),y)
-+ CFLAGS += $(HAVE_MNL_CFLAGS)
-+ LDLIBS += $(HAVE_MNL_LDLIBS)
-+endif
-+ifeq ($(HAVE_CAP),y)
-+ CFLAGS += $(HAVE_CAP_CFLAGS)
-+ LDLIBS += $(HAVE_CAP_LDLIBS)
-+endif
-+
-+# Rules can only be declared after all variables in them are known.
-+%.o: %.c
-+ $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
-+
-+# vim: ft=make:
---- iproute2-4.17.0/configure
-+++ iproute2-4.17.0/configure
-@@ -212,7 +212,7 @@
- then
- echo "IP_CONFIG_SETNS:=y" >>$CONFIG
- echo "yes"
-- echo "CFLAGS += -DHAVE_SETNS" >>$CONFIG
-+ echo "IP_CONFIG_SETNS_CFLAGS += -DHAVE_SETNS" >>$CONFIG
- else
- echo "no"
- fi
-@@ -257,8 +257,8 @@
- echo "HAVE_ELF:=y" >>$CONFIG
- echo "yes"
-
-- echo 'CFLAGS += -DHAVE_ELF' `${PKG_CONFIG} libelf --cflags` >> $CONFIG
-- echo 'LDLIBS += ' `${PKG_CONFIG} libelf --libs` >>$CONFIG
-+ echo 'HAVE_ELF_CFLAGS += -DHAVE_ELF' `${PKG_CONFIG} libelf --cflags` >> $CONFIG
-+ echo 'HAVE_ELF_LDLIBS += ' `${PKG_CONFIG} libelf --libs` >>$CONFIG
- else
- echo "no"
- fi
-@@ -272,8 +272,8 @@
- echo "HAVE_SELINUX:=y" >>$CONFIG
- echo "yes"
-
-- echo 'LDLIBS +=' `${PKG_CONFIG} --libs libselinux` >>$CONFIG
-- echo 'CFLAGS += -DHAVE_SELINUX' `${PKG_CONFIG} --cflags libselinux` >>$CONFIG
-+ echo 'HAVE_SELINUX_CFLAGS += -DHAVE_SELINUX' `${PKG_CONFIG} --cflags libselinux` >>$CONFIG
-+ echo 'HAVE_SELINUX_LDLIBS +=' `${PKG_CONFIG} --libs libselinux` >>$CONFIG
- else
- echo "no"
- fi
-@@ -286,8 +286,8 @@
- echo "HAVE_MNL:=y" >>$CONFIG
- echo "yes"
-
-- echo 'CFLAGS += -DHAVE_LIBMNL' `${PKG_CONFIG} libmnl --cflags` >>$CONFIG
-- echo 'LDLIBS +=' `${PKG_CONFIG} libmnl --libs` >> $CONFIG
-+ echo 'HAVE_MNL_CFLAGS += -DHAVE_LIBMNL' `${PKG_CONFIG} libmnl --cflags` >>$CONFIG
-+ echo 'HAVE_MNL_LDLIBS +=' `${PKG_CONFIG} libmnl --libs` >> $CONFIG
- else
- echo "no"
- fi
-@@ -343,8 +343,8 @@
- echo "HAVE_CAP:=y" >>$CONFIG
- echo "yes"
-
-- echo 'CFLAGS += -DHAVE_LIBCAP' `${PKG_CONFIG} libcap --cflags` >>$CONFIG
-- echo 'LDLIBS +=' `${PKG_CONFIG} libcap --libs` >> $CONFIG
-+ echo 'HAVE_CAP_CFLAGS += -DHAVE_LIBCAP' `${PKG_CONFIG} libcap --cflags` >>$CONFIG
-+ echo 'HAVE_CAP_LDLIBS +=' `${PKG_CONFIG} libcap --libs` >> $CONFIG
- else
- echo "no"
- fi
-@@ -426,7 +426,3 @@
-
- echo -n "libcap support: "
- check_cap
--
--echo >> $CONFIG
--echo "%.o: %.c" >> $CONFIG
--echo ' $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<' >> $CONFIG
---- iproute2-4.17.0/devlink/Makefile
-+++ iproute2-4.17.0/devlink/Makefile
-@@ -1,5 +1,6 @@
- # SPDX-License-Identifier: GPL-2.0
- include ../config.mk
-+include ../config.include
-
- TARGETS :=
-
---- iproute2-4.17.0/genl/Makefile
-+++ iproute2-4.17.0/genl/Makefile
-@@ -2,6 +2,7 @@
- GENLOBJ=genl.o
-
- include ../config.mk
-+include ../config.include
- SHARED_LIBS ?= y
-
- CFLAGS += -fno-strict-aliasing
---- iproute2-4.17.0/ip/Makefile
-+++ iproute2-4.17.0/ip/Makefile
-@@ -15,6 +15,7 @@
- RTMONOBJ=rtmon.o
-
- include ../config.mk
-+include ../config.include
-
- ALLOBJ=$(IPOBJ) $(RTMONOBJ)
- SCRIPTS=ifcfg rtpr routel routef
---- iproute2-4.17.0/lib/Makefile
-+++ iproute2-4.17.0/lib/Makefile
-@@ -1,5 +1,6 @@
- # SPDX-License-Identifier: GPL-2.0
- include ../config.mk
-+include ../config.include
-
- CFLAGS += -fPIC
-
---- iproute2-4.17.0/misc/Makefile
-+++ iproute2-4.17.0/misc/Makefile
-@@ -5,6 +5,7 @@
- TARGETS=ss nstat ifstat rtacct lnstat
-
- include ../config.mk
-+include ../config.include
-
- ifeq ($(HAVE_BERKELEY_DB),y)
- TARGETS += arpd
---- iproute2-4.17.0/netem/Makefile
-+++ iproute2-4.17.0/netem/Makefile
-@@ -1,5 +1,6 @@
- # SPDX-License-Identifier: GPL-2.0
- include ../config.mk
-+include ../config.include
-
- DISTGEN = maketable normal pareto paretonormal
- DISTDATA = normal.dist pareto.dist paretonormal.dist experimental.dist
---- iproute2-4.17.0/rdma/Makefile
-+++ iproute2-4.17.0/rdma/Makefile
-@@ -1,5 +1,6 @@
- # SPDX-License-Identifier: GPL-2.0
- include ../config.mk
-+include ../config.include
-
- TARGETS :=
-
---- iproute2-4.17.0/tc/Makefile
-+++ iproute2-4.17.0/tc/Makefile
-@@ -4,6 +4,7 @@
- emp_ematch.yacc.o emp_ematch.lex.o
-
- include ../config.mk
-+include ../config.include
-
- SHARED_LIBS ?= y
-
---- iproute2-4.17.0/tipc/Makefile
-+++ iproute2-4.17.0/tipc/Makefile
-@@ -1,5 +1,6 @@
- # SPDX-License-Identifier: GPL-2.0
- include ../config.mk
-+include ../config.include
-
- TARGETS :=
-
diff --git a/sys-apps/iproute2/files/iproute2-4.20.0-no-ipv6.patch b/sys-apps/iproute2/files/iproute2-4.20.0-no-ipv6.patch
deleted file mode 100644
index 31733e99f72c..000000000000
--- a/sys-apps/iproute2/files/iproute2-4.20.0-no-ipv6.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- iproute2-4.20.0/ip/ipmonitor.c
-+++ iproute2-4.20.0/ip/ipmonitor.c
-@@ -118,7 +118,6 @@
-
- case RTM_NEWPREFIX:
- print_headers(fp, "[PREFIX]", ctrl);
-- print_prefix(n, arg);
- return 0;
-
- case RTM_NEWRULE:
---- iproute2-4.20.0/ip/iptunnel.c
-+++ iproute2-4.20.0/ip/iptunnel.c
-@@ -549,13 +549,6 @@
- break;
- case AF_INET:
- break;
-- /*
-- * This is silly enough but we have no easy way to make it
-- * protocol-independent because of unarranged structure between
-- * IPv4 and IPv6.
-- */
-- case AF_INET6:
-- return do_ip6tunnel(argc, argv);
- default:
- fprintf(stderr, "Unsupported protocol family: %d\n", preferred_family);
- exit(-1);
---- iproute2-4.20.0/ip/Makefile
-+++ iproute2-4.20.0/ip/Makefile
-@@ -1,7 +1,7 @@
- # SPDX-License-Identifier: GPL-2.0
- 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_dummy.o \
- iplink_ifb.o iplink_nlmon.o iplink_team.o iplink_vcan.o iplink_vxcan.o \
- iplink_vlan.o link_veth.o link_gre.o iplink_can.o iplink_xdp.o \
diff --git a/sys-apps/iproute2/files/iproute2-5.1.0-portability.patch b/sys-apps/iproute2/files/iproute2-5.1.0-portability.patch
deleted file mode 100644
index e704f65c113f..000000000000
--- a/sys-apps/iproute2/files/iproute2-5.1.0-portability.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 202d79fcf4e184818bd074f8c06e94e700670898 Mon Sep 17 00:00:00 2001
-From: Jory Pratt <anarchy@gentoo.org>
-Date: Tue, 11 Jun 2019 01:48:01 -0500
-Subject: [PATCH] including sysinfo.h from kernel.h makes no sense whatsoever,
- but removing it breaks glibc's userspace header, which includes kernel.h
- instead of sysinfo.h from their sys/sysinfo.h. this seems to be a historical
- mistake. on musl, including any header that uses kernel.h directly or
- indirectly plus sys/sysinfo.h will produce a compile error due to
- redefinition of struct sysinfo. so for now, only include it on glibc in order
- not to break their headers.
-
-Signed-off-by: Jory Pratt <anarchy@gentoo.org>
----
- include/uapi/linux/kernel.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/include/uapi/linux/kernel.h b/include/uapi/linux/kernel.h
-index d99ffa1..f917115 100644
---- a/include/uapi/linux/kernel.h
-+++ b/include/uapi/linux/kernel.h
-@@ -2,7 +2,9 @@
- #ifndef _LINUX_KERNEL_H
- #define _LINUX_KERNEL_H
-
-+#ifdef __GLIBC__
- #include <linux/sysinfo.h>
-+#endif
-
- /*
- * 'kernel.h' contains some often-used function prototypes etc
---
-2.22.0
diff --git a/sys-apps/iproute2/files/iproute2-5.7.0-mix-signal.h-include.patch b/sys-apps/iproute2/files/iproute2-5.7.0-mix-signal.h-include.patch
new file mode 100644
index 000000000000..be606c107fc2
--- /dev/null
+++ b/sys-apps/iproute2/files/iproute2-5.7.0-mix-signal.h-include.patch
@@ -0,0 +1,10 @@
+--- a/devlink/devlink.c
++++ b/devlink/devlink.c
+@@ -15,6 +15,7 @@
+ #include <string.h>
+ #include <stdbool.h>
+ #include <unistd.h>
++#include <signal.h>
+ #include <getopt.h>
+ #include <limits.h>
+ #include <errno.h>
diff --git a/sys-apps/iproute2/files/iproute2-6.4.0-disable-libbsd-fallback.patch b/sys-apps/iproute2/files/iproute2-6.4.0-disable-libbsd-fallback.patch
new file mode 100644
index 000000000000..888091387fe9
--- /dev/null
+++ b/sys-apps/iproute2/files/iproute2-6.4.0-disable-libbsd-fallback.patch
@@ -0,0 +1,25 @@
+
+Disable the optional libbsd fallback in favor of iproute2's own
+strlcat/strlcpy routines. This prevents automagic linking and
+all sorts of other related problems.
+
+Bug: https://bugs.gentoo.org/911727
+Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com>
+
+--- a/configure 2023-09-05 16:20:48.000000000 +0200
++++ b/configure 2023-09-05 16:29:15.850347415 +0200
+@@ -454,14 +454,8 @@ EOF
+ if $CC -I$INCLUDE -o $TMPDIR/strtest $TMPDIR/strtest.c >/dev/null 2>&1; then
+ echo "no"
+ else
+- if ${PKG_CONFIG} libbsd --exists; then
+- echo 'HAVE_LIBBSD_CFLAGS += -DHAVE_LIBBSD' `${PKG_CONFIG} libbsd --cflags` >>$CONFIG
+- echo 'HAVE_LIBBSD_LDLIBS +=' `${PKG_CONFIG} libbsd --libs` >> $CONFIG
+- echo "no"
+- else
+ echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
+ echo "yes"
+- fi
+ fi
+ rm -f $TMPDIR/strtest.c $TMPDIR/strtest
+ }
diff --git a/sys-apps/iproute2/files/iproute2-4.20.0-configure-nomagic.patch b/sys-apps/iproute2/files/iproute2-6.5.0-configure-nomagic-nolibbsd.patch
index 94df85017dfe..4618fb9c94ef 100644
--- a/sys-apps/iproute2/files/iproute2-4.20.0-configure-nomagic.patch
+++ b/sys-apps/iproute2/files/iproute2-6.5.0-configure-nomagic-nolibbsd.patch
@@ -9,7 +9,7 @@ are only passed when correctly needed.
Prior Gentoo testcase for reproduction:
USE=minimal ebuild ... compile.
-- Linking with libelf, libmnl & libcap based only on presence.
+- Linking with libbsd, libelf, libmnl & libcap based only on presence.
- Links based on libselinux based only on presence.
Closes: https://bugs.gentoo.org/643722
@@ -18,19 +18,14 @@ Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Forward-ported from v4.14.1 to v4.16.0 by Lars Wendler <polynomial-c@gentoo.org>
Added libcap to v4.17.0 by Lars Wendler <polynomial-c@gentoo.org>
Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
+Forward-ported from v4.20.0 to v5.11.0 by Lars Wendler <polynomial-c@gentoo.org>
+Forward-ported from v5.11.0 to v5.12.0 by Lars Wendler <polynomial-c@gentoo.org>
---- iproute2-4.20.0/bridge/Makefile
-+++ iproute2-4.20.0/bridge/Makefile
-@@ -2,6 +2,7 @@
- BROBJ = bridge.o fdb.o monitor.o link.o mdb.o vlan.o
-
- include ../config.mk
-+include ../config.include
-
- all: bridge
-
---- iproute2-4.20.0/config.include
-+++ iproute2-4.20.0/config.include
+Update 2023-09-05: Removed libbsd enforcement from config.include for bug #911727
+by Holger Hoffstätte <holger@applied-asynchrony.com>
+
+--- a/config.include
++++ b/config.include
@@ -0,0 +1,26 @@
+# We can only modify CFLAGS/LDLIBS after all the config options are known.
+ifeq ($(IP_CONFIG_SETNS),y)
@@ -58,9 +53,20 @@ Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
+ $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c -o $@ $<
+
+# vim: ft=make:
---- iproute2-4.20.0/configure
-+++ iproute2-4.20.0/configure
-@@ -188,7 +188,7 @@
+
+--- a/bridge/Makefile
++++ b/bridge/Makefile
+@@ -2,6 +2,7 @@
+ BROBJ = bridge.o fdb.o monitor.o link.o mdb.o vlan.o vni.o
+
+ include ../config.mk
++include ../config.include
+
+ all: bridge
+
+--- a/configure
++++ b/configure
+@@ -202,7 +202,7 @@ EOF
if $CC -I$INCLUDE -o $TMPDIR/setnstest $TMPDIR/setnstest.c >/dev/null 2>&1; then
echo "IP_CONFIG_SETNS:=y" >>$CONFIG
echo "yes"
@@ -69,7 +75,7 @@ Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
else
echo "no"
fi
-@@ -231,8 +231,8 @@
+@@ -269,8 +269,8 @@ check_elf()
echo "HAVE_ELF:=y" >>$CONFIG
echo "yes"
@@ -80,7 +86,7 @@ Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
else
echo "no"
fi
-@@ -245,8 +245,8 @@
+@@ -388,8 +388,8 @@ check_selinux()
echo "HAVE_SELINUX:=y" >>$CONFIG
echo "yes"
@@ -91,7 +97,7 @@ Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
else
echo "no"
fi
-@@ -258,8 +258,8 @@
+@@ -414,8 +414,8 @@ check_mnl()
echo "HAVE_MNL:=y" >>$CONFIG
echo "yes"
@@ -102,7 +108,18 @@ Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
else
echo "no"
fi
-@@ -316,8 +316,8 @@
+@@ -455,8 +455,8 @@ EOF
+ echo "no"
+ else
+ if ${PKG_CONFIG} libbsd --exists; then
+- echo 'CFLAGS += -DHAVE_LIBBSD' `${PKG_CONFIG} libbsd --cflags` >>$CONFIG
+- echo 'LDLIBS +=' `${PKG_CONFIG} libbsd --libs` >> $CONFIG
++ echo 'HAVE_LIBBSD_CFLAGS += -DHAVE_LIBBSD' `${PKG_CONFIG} libbsd --cflags` >>$CONFIG
++ echo 'HAVE_LIBBSD_LDLIBS +=' `${PKG_CONFIG} libbsd --libs` >> $CONFIG
+ echo "no"
+ else
+ echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
+@@ -472,8 +472,8 @@ check_cap()
echo "HAVE_CAP:=y" >>$CONFIG
echo "yes"
@@ -113,7 +130,7 @@ Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
else
echo "no"
fi
-@@ -397,7 +397,3 @@
+@@ -633,7 +633,3 @@ check_strlcpy
echo -n "libcap support: "
check_cap
@@ -121,17 +138,26 @@ Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
-echo >> $CONFIG
-echo "%.o: %.c" >> $CONFIG
-echo ' $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c -o $@ $<' >> $CONFIG
---- iproute2-4.20.0/devlink/Makefile
-+++ iproute2-4.20.0/devlink/Makefile
+--- a/dcb/Makefile
++++ b/dcb/Makefile
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
include ../config.mk
+include ../config.include
- TARGETS :=
+ DCBOBJ = dcb.o \
+ dcb_app.o \
+--- a/devlink/Makefile
++++ b/devlink/Makefile
+@@ -1,5 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+ include ../config.mk
++include ../config.include
---- iproute2-4.20.0/genl/Makefile
-+++ iproute2-4.20.0/genl/Makefile
+ DEVLINKOBJ = devlink.o mnlg.o
+ TARGETS += devlink
+--- a/genl/Makefile
++++ b/genl/Makefile
@@ -2,6 +2,7 @@
GENLOBJ=genl.o
@@ -140,18 +166,18 @@ Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
SHARED_LIBS ?= y
CFLAGS += -fno-strict-aliasing
---- iproute2-4.20.0/ip/Makefile
-+++ iproute2-4.20.0/ip/Makefile
-@@ -15,6 +15,7 @@
+--- a/ip/Makefile
++++ b/ip/Makefile
+@@ -18,6 +18,7 @@ IPOBJ=ip.o ipaddress.o ipaddrlabel.o iproute.o iprule.o ipnetns.o \
RTMONOBJ=rtmon.o
include ../config.mk
+include ../config.include
ALLOBJ=$(IPOBJ) $(RTMONOBJ)
- SCRIPTS=ifcfg rtpr routel routef
---- iproute2-4.20.0/lib/Makefile
-+++ iproute2-4.20.0/lib/Makefile
+ SCRIPTS=routel
+--- a/lib/Makefile
++++ b/lib/Makefile
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
include ../config.mk
@@ -159,9 +185,9 @@ Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
CFLAGS += -fPIC
---- iproute2-4.20.0/misc/Makefile
-+++ iproute2-4.20.0/misc/Makefile
-@@ -5,6 +5,7 @@
+--- a/misc/Makefile
++++ b/misc/Makefile
+@@ -5,6 +5,7 @@ LNSTATOBJ=lnstat.o lnstat_util.o
TARGETS=ss nstat ifstat rtacct lnstat
include ../config.mk
@@ -169,8 +195,8 @@ Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
ifeq ($(HAVE_BERKELEY_DB),y)
TARGETS += arpd
---- iproute2-4.20.0/netem/Makefile
-+++ iproute2-4.20.0/netem/Makefile
+--- a/netem/Makefile
++++ b/netem/Makefile
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
include ../config.mk
@@ -178,31 +204,43 @@ Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
DISTGEN = maketable normal pareto paretonormal
DISTDATA = normal.dist pareto.dist paretonormal.dist experimental.dist
---- iproute2-4.20.0/rdma/Makefile
-+++ iproute2-4.20.0/rdma/Makefile
+--- a/rdma/Makefile
++++ b/rdma/Makefile
@@ -1,5 +1,6 @@
- # SPDX-License-Identifier: GPL-2.0
+ # SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
include ../config.mk
+include ../config.include
- TARGETS :=
+ CFLAGS += -I./include/uapi/
---- iproute2-4.20.0/tc/Makefile
-+++ iproute2-4.20.0/tc/Makefile
-@@ -4,6 +4,7 @@
- emp_ematch.yacc.o emp_ematch.lex.o
+--- a/tc/Makefile
++++ b/tc/Makefile
+@@ -4,6 +4,7 @@ TCOBJ= tc.o tc_qdisc.o tc_class.o tc_filter.o tc_util.o tc_monitor.o \
+ emp_ematch.tab.o emp_ematch.lex.o
include ../config.mk
+include ../config.include
SHARED_LIBS ?= y
---- iproute2-4.20.0/tipc/Makefile
-+++ iproute2-4.20.0/tipc/Makefile
+--- a/tipc/Makefile
++++ b/tipc/Makefile
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
include ../config.mk
+include ../config.include
- TARGETS :=
+ TIPCOBJ=bearer.o \
+ cmdl.o link.o \
+--- a/vdpa/Makefile
++++ b/vdpa/Makefile
+@@ -1,5 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+ include ../config.mk
++include ../config.include
+ CFLAGS += -I./include/uapi/
+ VDPAOBJ = vdpa.o
+--
+2.42.0
+
diff --git a/sys-apps/iproute2/files/iproute2-3.1.0-mtu.patch b/sys-apps/iproute2/files/iproute2-6.5.0-mtu.patch
index fa12dad2d79e..f2895021eb1b 100644
--- a/sys-apps/iproute2/files/iproute2-3.1.0-mtu.patch
+++ b/sys-apps/iproute2/files/iproute2-6.5.0-mtu.patch
@@ -17,10 +17,9 @@ to 2048 (disregarding weirdness of setting mtu to such values).
Unless I missed something, this is harmless and feels cleaner, but if it's
not allowed, documentation will have to be changed back to 2047 + extra
explanation as well.
-
---- iproute2/tc/tc_core.c
-+++ iproute2/tc/tc_core.c
-@@ -155,12 +155,12 @@
+--- a/tc/tc_core.c
++++ b/tc/tc_core.c
+@@ -197,12 +197,12 @@ int tc_calc_size_table(struct tc_sizespec *s, __u16 **stab)
}
if (s->mtu == 0)
@@ -35,14 +34,17 @@ explanation as well.
s->cell_log++;
*stab = malloc(s->tsize * sizeof(__u16));
---- iproute2/tc/tc_stab.c
-+++ iproute2/tc/tc_stab.c
-@@ -32,7 +32,7 @@
+--- a/tc/tc_stab.c
++++ b/tc/tc_stab.c
+@@ -27,7 +27,7 @@ static void stab_help(void)
fprintf(stderr,
- "Usage: ... stab [ mtu BYTES ] [ tsize SLOTS ] [ mpu BYTES ] \n"
+ "Usage: ... stab [ mtu BYTES ] [ tsize SLOTS ] [ mpu BYTES ]\n"
" [ overhead BYTES ] [ linklayer TYPE ] ...\n"
- " mtu : max packet size we create rate map for {2047}\n"
+ " mtu : max packet size we create size table for {2048}\n"
" tsize : how many slots should size table have {512}\n"
" mpu : minimum packet size used in rate computations\n"
" overhead : per-packet size overhead used in rate computations\n"
+--
+2.42.0
+
diff --git a/sys-apps/iproute2/files/iproute2-6.6.0-configure-Add-_GNU_SOURCE-to-strlcpy-configure-test.patch b/sys-apps/iproute2/files/iproute2-6.6.0-configure-Add-_GNU_SOURCE-to-strlcpy-configure-test.patch
new file mode 100644
index 000000000000..0969ff0a7ab9
--- /dev/null
+++ b/sys-apps/iproute2/files/iproute2-6.6.0-configure-Add-_GNU_SOURCE-to-strlcpy-configure-test.patch
@@ -0,0 +1,25 @@
+https://lore.kernel.org/netdev/20231202024705.1375296-1-sam@gentoo.org/T/#u
+
+From 3dc0bf34c1571429c08a8d0c08a69502e3e4575c Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 2 Dec 2023 02:46:05 +0000
+Subject: [PATCH] configure: Add _GNU_SOURCE to strlcpy configure test
+
+>=glibc-2.38 adds strlcpy but it's guarded under a feature-test macro. Just
+add _GNU_SOURCE to the configure test because we already pass _GNU_SOURCE unconditionally
+in the Makefiles when building iproute2.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/configure
++++ b/configure
+@@ -445,6 +445,7 @@ EOF
+ check_strlcpy()
+ {
+ cat >$TMPDIR/strtest.c <<EOF
++#define _GNU_SOURCE
+ #include <string.h>
+ int main(int argc, char **argv) {
+ char dst[10];
+--
+2.43.0
+
diff --git a/sys-apps/iproute2/files/iproute2-6.6.0-makefile-use-usr-share-config.patch b/sys-apps/iproute2/files/iproute2-6.6.0-makefile-use-usr-share-config.patch
new file mode 100644
index 000000000000..03c125accc8c
--- /dev/null
+++ b/sys-apps/iproute2/files/iproute2-6.6.0-makefile-use-usr-share-config.patch
@@ -0,0 +1,57 @@
+https://bugs.gentoo.org/920054
+https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/patch/?id=962692356a1cc41932e43575f3c50927e455ab53
+
+From 962692356a1cc41932e43575f3c50927e455ab53 Mon Sep 17 00:00:00 2001
+From: Andrea Claudi <aclaudi@redhat.com>
+Date: Wed, 15 Nov 2023 18:25:35 +0100
+Subject: Makefile: use /usr/share/iproute2 for config files
+
+According to FHS:
+
+"/usr/lib includes object files and libraries. On some systems, it may
+also include internal binaries that are not intended to be executed
+directly by users or shell scripts."
+
+A better directory to store config files is /usr/share:
+
+"The /usr/share hierarchy is for all read-only architecture independent
+data files.
+
+This hierarchy is intended to be shareable among all architecture
+platforms of a given OS; thus, for example, a site with i386, Alpha, and
+PPC platforms might maintain a single /usr/share directory that is
+centrally-mounted."
+
+Accordingly, move configuration files to $(DATADIR)/iproute2.
+
+Fixes: 946753a4459b ("Makefile: ensure CONF_USR_DIR honours the libdir config")
+Reported-by: Luca Boccassi <luca.boccassi@gmail.com>
+Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
+Acked-by: Luca Boccassi <bluca@debian.org>
+Reviewed-by: Simon Horman <horms@kernel.org>
+Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index a24844cf0..8024d45ec 100644
+--- a/Makefile
++++ b/Makefile
+@@ -16,12 +16,12 @@ endif
+
+ PREFIX?=/usr
+ SBINDIR?=/sbin
+-CONF_ETC_DIR?=/etc/iproute2
+-CONF_USR_DIR?=$(PREFIX)/lib/iproute2
+ NETNS_RUN_DIR?=/var/run/netns
+ NETNS_ETC_DIR?=/etc/netns
+ DATADIR?=$(PREFIX)/share
+ HDRDIR?=$(PREFIX)/include/iproute2
++CONF_ETC_DIR?=/etc/iproute2
++CONF_USR_DIR?=$(DATADIR)/iproute2
+ DOCDIR?=$(DATADIR)/doc/iproute2
+ MANDIR?=$(DATADIR)/man
+ ARPDDIR?=/var/lib/arpd
+--
+cgit 1.2.3-korg
diff --git a/sys-apps/iproute2/files/iproute2-6.6.0-musl-c99.patch b/sys-apps/iproute2/files/iproute2-6.6.0-musl-c99.patch
new file mode 100644
index 000000000000..c277bd6d1128
--- /dev/null
+++ b/sys-apps/iproute2/files/iproute2-6.6.0-musl-c99.patch
@@ -0,0 +1,75 @@
+From 12416003e4c691afc732d26f0a07c3890c24b396 Mon Sep 17 00:00:00 2001
+From: Gabi Falk <gabifalk@gmx.com>
+Date: Fri, 10 May 2024 14:36:12 +0000
+Subject: [PATCH] bridge/vlan.c: bridge/vlan.c: fix build with gcc 14 on musl
+ systems
+
+On glibc based systems the definition of 'struct timeval' is pulled in
+with inclusion of <stdlib.h> header, but on musl based systems it
+doesn't work this way. Missing definition triggers an
+incompatible-pointer-types error with gcc 14 (warning on previous
+versions of gcc):
+
+../include/json_print.h:80:30: warning: 'struct timeval' declared inside parameter list will not be visible outside of this definition or declaration
+ 80 | _PRINT_FUNC(tv, const struct timeval *)
+ | ^~~~~~~
+../include/json_print.h:50:37: note: in definition of macro '_PRINT_FUNC'
+ 50 | type value); \
+ | ^~~~
+../include/json_print.h:80:30: warning: 'struct timeval' declared inside parameter list will not be visible outside of this definition or declaration
+ 80 | _PRINT_FUNC(tv, const struct timeval *)
+ | ^~~~~~~
+../include/json_print.h:55:45: note: in definition of macro '_PRINT_FUNC'
+ 55 | type value) \
+ | ^~~~
+../include/json_print.h: In function 'print_tv':
+../include/json_print.h:58:48: error: passing argument 5 of 'print_color_tv' from incompatible pointer type [-Wincompatible-pointer-types]
+ 58 | value); \
+ | ^~~~~
+ | |
+ | const struct timeval *
+
+Link: https://lore.kernel.org/netdev/20240510143613.1531283-1-gabifalk@gmx.com/T/#u
+Signed-off-by: Gabi Falk <gabifalk@gmx.com>
+---
+ bridge/vlan.c | 1 +
+ bridge/vni.c | 1 +
+ vdpa/vdpa.c | 1 +
+ 3 files changed, 3 insertions(+)
+
+diff --git a/bridge/vlan.c b/bridge/vlan.c
+index 5352eb24..0a7e6c45 100644
+--- a/bridge/vlan.c
++++ b/bridge/vlan.c
+@@ -4,6 +4,7 @@
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <sys/socket.h>
++#include <sys/time.h>
+ #include <net/if.h>
+ #include <netinet/in.h>
+ #include <linux/if_bridge.h>
+diff --git a/bridge/vni.c b/bridge/vni.c
+index a7abe6de..e1f981fc 100644
+--- a/bridge/vni.c
++++ b/bridge/vni.c
+@@ -10,6 +10,7 @@
+ #include <string.h>
+ #include <fcntl.h>
+ #include <sys/socket.h>
++#include <sys/time.h>
+ #include <net/if.h>
+ #include <netinet/in.h>
+ #include <linux/if_link.h>
+diff --git a/vdpa/vdpa.c b/vdpa/vdpa.c
+index 6e4a9c11..43f87824 100644
+--- a/vdpa/vdpa.c
++++ b/vdpa/vdpa.c
+@@ -3,6 +3,7 @@
+ #include <stdio.h>
+ #include <getopt.h>
+ #include <errno.h>
++#include <sys/time.h>
+ #include <linux/genetlink.h>
+ #include <linux/if_ether.h>
+ #include <linux/vdpa.h>
diff --git a/sys-apps/iproute2/files/iproute2-6.6.0-revert-CONF_USR_DIR.patch b/sys-apps/iproute2/files/iproute2-6.6.0-revert-CONF_USR_DIR.patch
new file mode 100644
index 000000000000..79be096af231
--- /dev/null
+++ b/sys-apps/iproute2/files/iproute2-6.6.0-revert-CONF_USR_DIR.patch
@@ -0,0 +1,38 @@
+https://bugs.gentoo.org/920054
+https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/patch/?id=deb66acabe44d103c8368b62a76ef37aa074748d
+
+From deb66acabe44d103c8368b62a76ef37aa074748d Mon Sep 17 00:00:00 2001
+From: Luca Boccassi <bluca@debian.org>
+Date: Mon, 6 Nov 2023 00:14:10 +0000
+Subject: Revert "Makefile: ensure CONF_USR_DIR honours the libdir config"
+
+LIBDIR in Debian and derivatives is not /usr/lib/, it's
+/usr/lib/<architecture triplet>/, which is different, and it's the
+wrong location where to install architecture-independent default
+configuration files, which should always go to /usr/lib/ instead.
+Installing these files to the per-architecture directory is not
+the right thing, hence revert the change.
+
+This reverts commit 946753a4459bd035132a27bb2eb87529c1979b90.
+
+Signed-off-by: Luca Boccassi <bluca@debian.org>
+Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 5c559c8dc..a24844cf0 100644
+--- a/Makefile
++++ b/Makefile
+@@ -17,7 +17,7 @@ endif
+ PREFIX?=/usr
+ SBINDIR?=/sbin
+ CONF_ETC_DIR?=/etc/iproute2
+-CONF_USR_DIR?=$(LIBDIR)/iproute2
++CONF_USR_DIR?=$(PREFIX)/lib/iproute2
+ NETNS_RUN_DIR?=/var/run/netns
+ NETNS_ETC_DIR?=/etc/netns
+ DATADIR?=$(PREFIX)/share
+--
+cgit 1.2.3-korg
diff --git a/sys-apps/iproute2/files/iproute2-6.8.0-configure-nomagic-nolibbsd.patch b/sys-apps/iproute2/files/iproute2-6.8.0-configure-nomagic-nolibbsd.patch
new file mode 100644
index 000000000000..04ef44ad826e
--- /dev/null
+++ b/sys-apps/iproute2/files/iproute2-6.8.0-configure-nomagic-nolibbsd.patch
@@ -0,0 +1,243 @@
+The hand-rolled configure script, for multiple options (selinux,mnl,elf), sets
+a variable as well as modifying CFLAGS & LDLIBS.
+
+If config.mk is later amended to disable a feature, the CFLAGS/LDLIBS tweaks
+are still in place.
+
+Push the CFLAGS/LDLIBS changes into new conditional Makefile code, so that they
+are only passed when correctly needed.
+
+Prior Gentoo testcase for reproduction:
+USE=minimal ebuild ... compile.
+- Linking with libbsd, libelf, libmnl & libcap based only on presence.
+- Links based on libselinux based only on presence.
+
+Closes: https://bugs.gentoo.org/643722
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+
+Forward-ported from v4.14.1 to v4.16.0 by Lars Wendler <polynomial-c@gentoo.org>
+Added libcap to v4.17.0 by Lars Wendler <polynomial-c@gentoo.org>
+Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
+Forward-ported from v4.20.0 to v5.11.0 by Lars Wendler <polynomial-c@gentoo.org>
+Forward-ported from v5.11.0 to v5.12.0 by Lars Wendler <polynomial-c@gentoo.org>
+
+Update 2023-09-05: Removed libbsd enforcement from config.include for bug #911727
+by Holger Hoffstätte <holger@applied-asynchrony.com>
+
+--- a/config.include
++++ b/config.include
+@@ -0,0 +1,26 @@
++# We can only modify CFLAGS/LDLIBS after all the config options are known.
++ifeq ($(IP_CONFIG_SETNS),y)
++ CFLAGS += $(IP_CONFIG_SETNS_CFLAGS)
++endif
++ifeq ($(HAVE_ELF),y)
++ CFLAGS += $(HAVE_ELF_CFLAGS)
++ LDLIBS += $(HAVE_ELF_LDLIBS)
++endif
++ifeq ($(HAVE_SELINUX),y)
++ CFLAGS += $(HAVE_SELINUX_CFLAGS)
++ LDLIBS += $(HAVE_SELINUX_LDLIBS)
++endif
++ifeq ($(HAVE_MNL),y)
++ CFLAGS += $(HAVE_MNL_CFLAGS)
++ LDLIBS += $(HAVE_MNL_LDLIBS)
++endif
++ifeq ($(HAVE_CAP),y)
++ CFLAGS += $(HAVE_CAP_CFLAGS)
++ LDLIBS += $(HAVE_CAP_LDLIBS)
++endif
++
++# Rules can only be declared after all variables in them are known.
++%.o: %.c
++ $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c -o $@ $<
++
++# vim: ft=make:
+
+--- a/bridge/Makefile
++++ b/bridge/Makefile
+@@ -2,6 +2,7 @@
+ BROBJ = bridge.o fdb.o monitor.o link.o mdb.o vlan.o vni.o
+
+ include ../config.mk
++include ../config.include
+
+ all: bridge
+
+--- a/configure
++++ b/configure
+@@ -154,7 +154,7 @@ EOF
+ if $CC -I$INCLUDE -o $TMPDIR/setnstest $TMPDIR/setnstest.c >/dev/null 2>&1; then
+ echo "IP_CONFIG_SETNS:=y" >>$CONFIG
+ echo "yes"
+- echo "CFLAGS += -DHAVE_SETNS" >>$CONFIG
++ echo "IP_CONFIG_SETNS_CFLAGS += -DHAVE_SETNS" >>$CONFIG
+ else
+ echo "no"
+ fi
+@@ -221,8 +221,8 @@ check_elf()
+ echo "HAVE_ELF:=y" >>$CONFIG
+ echo "yes"
+
+- echo 'CFLAGS += -DHAVE_ELF' "$(${PKG_CONFIG} libelf --cflags)" >> $CONFIG
+- echo 'LDLIBS += ' "$(${PKG_CONFIG} libelf --libs)" >>$CONFIG
++ echo 'HAVE_ELF_CFLAGS += -DHAVE_ELF' "$(${PKG_CONFIG} libelf --cflags)" >> $CONFIG
++ echo 'HAVE_ELF_LDLIBS += ' "$(${PKG_CONFIG} libelf --libs)" >>$CONFIG
+ else
+ echo "no"
+ fi
+@@ -340,8 +340,8 @@ check_selinux()
+ echo "HAVE_SELINUX:=y" >>$CONFIG
+ echo "yes"
+
+- echo 'LDLIBS +=' "$(${PKG_CONFIG} --libs libselinux)" >>$CONFIG
+- echo 'CFLAGS += -DHAVE_SELINUX' "$(${PKG_CONFIG} --cflags libselinux)" >>$CONFIG
++ echo 'HAVE_SELINUX_LDLIBS +=' "$(${PKG_CONFIG} --libs libselinux)" >>$CONFIG
++ echo 'HAVE_SELINUX_CFLAGS += -DHAVE_SELINUX' "$(${PKG_CONFIG} --cflags libselinux)" >>$CONFIG
+ else
+ echo "no"
+ fi
+@@ -366,8 +366,8 @@ check_mnl()
+ echo "HAVE_MNL:=y" >>$CONFIG
+ echo "yes"
+
+- echo 'CFLAGS += -DHAVE_LIBMNL' "$(${PKG_CONFIG} libmnl --cflags)" >>$CONFIG
+- echo 'LDLIBS +=' "$(${PKG_CONFIG} libmnl --libs)" >> $CONFIG
++ echo 'HAVE_MNL_CFLAGS += -DHAVE_LIBMNL' "$(${PKG_CONFIG} libmnl --cflags)" >>$CONFIG
++ echo 'HAVE_MNL_LDLIBS +=' "$(${PKG_CONFIG} libmnl --libs)" >> $CONFIG
+ else
+ echo "no"
+ fi
+@@ -408,8 +408,8 @@ EOF
+ echo "no"
+ else
+ if ${PKG_CONFIG} libbsd --exists; then
+- echo 'CFLAGS += -DHAVE_LIBBSD' "$(${PKG_CONFIG} libbsd --cflags)" >>$CONFIG
+- echo 'LDLIBS +=' "$(${PKG_CONFIG} libbsd --libs)" >> $CONFIG
++ echo 'HAVE_LIBBSD_CFLAGS += -DHAVE_LIBBSD' "$(${PKG_CONFIG} libbsd --cflags)" >>$CONFIG
++ echo 'HAVE_LIBBSD_LDLIBS +=' "$(${PKG_CONFIG} libbsd --libs)" >> $CONFIG
+ echo "no"
+ else
+ echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
+@@ -425,8 +425,8 @@ check_cap()
+ echo "HAVE_CAP:=y" >>$CONFIG
+ echo "yes"
+
+- echo 'CFLAGS += -DHAVE_LIBCAP' "$(${PKG_CONFIG} libcap --cflags)" >>$CONFIG
+- echo 'LDLIBS +=' "$(${PKG_CONFIG} libcap --libs)" >> $CONFIG
++ echo 'HAVE_CAP_CFLAGS += -DHAVE_LIBCAP' "$(${PKG_CONFIG} libcap --cflags)" >>$CONFIG
++ echo 'HAVE_CAP_LDLIBS +=' "$(${PKG_CONFIG} libcap --libs)" >> $CONFIG
+ else
+ echo "no"
+ fi
+@@ -614,7 +614,3 @@ check_cap
+
+ echo -n "color output: "
+ check_color
+-
+-echo >> $CONFIG
+-echo "%.o: %.c" >> $CONFIG
+-echo ' $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c -o $@ $<' >> $CONFIG
+--- a/dcb/Makefile
++++ b/dcb/Makefile
+@@ -1,5 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+ include ../config.mk
++include ../config.include
+
+ DCBOBJ = dcb.o \
+ dcb_app.o \
+--- a/devlink/Makefile
++++ b/devlink/Makefile
+@@ -1,5 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+ include ../config.mk
++include ../config.include
+
+ DEVLINKOBJ = devlink.o mnlg.o
+ TARGETS += devlink
+--- a/genl/Makefile
++++ b/genl/Makefile
+@@ -2,6 +2,7 @@
+ GENLOBJ=genl.o
+
+ include ../config.mk
++include ../config.include
+ SHARED_LIBS ?= y
+
+ CFLAGS += -fno-strict-aliasing
+--- a/ip/Makefile
++++ b/ip/Makefile
+@@ -18,6 +18,7 @@ IPOBJ=ip.o ipaddress.o ipaddrlabel.o iproute.o iprule.o ipnetns.o \
+ RTMONOBJ=rtmon.o
+
+ include ../config.mk
++include ../config.include
+
+ ALLOBJ=$(IPOBJ) $(RTMONOBJ)
+ SCRIPTS=routel
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -1,5 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+ include ../config.mk
++include ../config.include
+
+ CFLAGS += -fPIC
+
+--- a/misc/Makefile
++++ b/misc/Makefile
+@@ -5,6 +5,7 @@ LNSTATOBJ=lnstat.o lnstat_util.o
+ TARGETS=ss nstat ifstat rtacct lnstat
+
+ include ../config.mk
++include ../config.include
+
+ ifeq ($(HAVE_BERKELEY_DB),y)
+ TARGETS += arpd
+--- a/netem/Makefile
++++ b/netem/Makefile
+@@ -1,5 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+ include ../config.mk
++include ../config.include
+
+ DISTGEN = maketable normal pareto paretonormal
+ DISTDATA = normal.dist pareto.dist paretonormal.dist experimental.dist
+--- a/rdma/Makefile
++++ b/rdma/Makefile
+@@ -1,5 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
+ include ../config.mk
++include ../config.include
+
+ CFLAGS += -I./include/uapi/
+
+--- a/tc/Makefile
++++ b/tc/Makefile
+@@ -4,6 +4,7 @@ TCOBJ= tc.o tc_qdisc.o tc_class.o tc_filter.o tc_util.o tc_monitor.o \
+ emp_ematch.tab.o emp_ematch.lex.o
+
+ include ../config.mk
++include ../config.include
+
+ SHARED_LIBS ?= y
+
+--- a/tipc/Makefile
++++ b/tipc/Makefile
+@@ -1,5 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+ include ../config.mk
++include ../config.include
+
+ TIPCOBJ=bearer.o \
+ cmdl.o link.o \
+--- a/vdpa/Makefile
++++ b/vdpa/Makefile
+@@ -1,5 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+ include ../config.mk
++include ../config.include
+
+ CFLAGS += -I./include/uapi/
+ VDPAOBJ = vdpa.o
diff --git a/sys-apps/iproute2/files/iproute2-6.8.0-disable-libbsd-fallback.patch b/sys-apps/iproute2/files/iproute2-6.8.0-disable-libbsd-fallback.patch
new file mode 100644
index 000000000000..0c1eef227499
--- /dev/null
+++ b/sys-apps/iproute2/files/iproute2-6.8.0-disable-libbsd-fallback.patch
@@ -0,0 +1,25 @@
+
+Disable the optional libbsd fallback in favor of iproute2's own
+strlcat/strlcpy routines. This prevents automagic linking and
+all sorts of other related problems.
+
+Bug: https://bugs.gentoo.org/911727
+Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com>
+
+--- a/configure
++++ b/configure
+@@ -407,14 +407,8 @@ EOF
+ if $CC -I$INCLUDE -o $TMPDIR/strtest $TMPDIR/strtest.c >/dev/null 2>&1; then
+ echo "no"
+ else
+- if ${PKG_CONFIG} libbsd --exists; then
+- echo 'HAVE_LIBBSD_CFLAGS += -DHAVE_LIBBSD' "$(${PKG_CONFIG} libbsd --cflags)" >>$CONFIG
+- echo 'HAVE_LIBBSD_LDLIBS +=' "$(${PKG_CONFIG} libbsd --libs)" >> $CONFIG
+- echo "no"
+- else
+ echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
+ echo "yes"
+- fi
+ fi
+ rm -f $TMPDIR/strtest.c $TMPDIR/strtest
+ }
diff --git a/sys-apps/iproute2/files/iproute2-6.9.0-mtu.patch b/sys-apps/iproute2/files/iproute2-6.9.0-mtu.patch
new file mode 100644
index 000000000000..0e80ea122e06
--- /dev/null
+++ b/sys-apps/iproute2/files/iproute2-6.9.0-mtu.patch
@@ -0,0 +1,32 @@
+diff --git a/tc/tc_core.c b/tc/tc_core.c
+index 37547e9b..58234c9f 100644
+--- a/tc/tc_core.c
++++ b/tc/tc_core.c
+@@ -188,12 +188,12 @@ int tc_calc_size_table(struct tc_sizespec *s, __u16 **stab)
+ }
+
+ if (s->mtu == 0)
+- s->mtu = 2047;
++ s->mtu = 2048;
+ if (s->tsize == 0)
+ s->tsize = 512;
+
+ s->cell_log = 0;
+- while ((s->mtu >> s->cell_log) > s->tsize - 1)
++ while (((s->mtu - 1) >> s->cell_log) > s->tsize - 1)
+ s->cell_log++;
+
+ *stab = malloc(s->tsize * sizeof(__u16));
+diff --git a/tc/tc_stab.c b/tc/tc_stab.c
+index a7733726..f4ffd618 100644
+--- a/tc/tc_stab.c
++++ b/tc/tc_stab.c
+@@ -27,7 +27,7 @@ static void stab_help(void)
+ fprintf(stderr,
+ "Usage: ... stab [ mtu BYTES ] [ tsize SLOTS ] [ mpu BYTES ]\n"
+ " [ overhead BYTES ] [ linklayer TYPE ] ...\n"
+- " mtu : max packet size we create rate map for {2047}\n"
++ " mtu : max packet size we create size table for {2048}\n"
+ " tsize : how many slots should size table have {512}\n"
+ " mpu : minimum packet size used in rate computations\n"
+ " overhead : per-packet size overhead used in rate computations\n"