iproute2: 4.5.0 -> 4.7.0 (#18435)

iproute now packages a bash-completion file which it installs to
$BASH_COMPDIR.

* fanpatch: adjust for new version

- The patch did not apply because the code around the additions changed.
- The patch uses functions that got changed [1] & [2], I adjusted the
patch to use the safe version. Probably not needed but better safe
than sorry.
[1] format_host: http://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git/commit/?id=a418e451643e77fe36861e53359587ba8aa41873
[2] rt_addr_n2a: http://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git/commit/?id=7faf1588a755edb9c9cabbe1d3211265e9826d28

authored by Alexander Ried and committed by Franz Pletz 7615d638 30ae9391

+13 -11
+1 -1
pkgs/os-specific/linux/iproute/1000-ubuntu-poc-fan-driver.patch
··· 57 + 58 + if (addr) 59 + fprintf(f, "underlay %s ", 60 - + format_host(AF_INET, 4, &addr, s1, sizeof(s1))); 61 + } 62 + 63 if (tb[IFLA_IPTUN_LINK] && rta_getattr_u32(tb[IFLA_IPTUN_LINK])) {
··· 57 + 58 + if (addr) 59 + fprintf(f, "underlay %s ", 60 + + format_host_r(AF_INET, 4, &addr, s1, sizeof(s1))); 61 + } 62 + 63 if (tb[IFLA_IPTUN_LINK] && rta_getattr_u32(tb[IFLA_IPTUN_LINK])) {
+2 -2
pkgs/os-specific/linux/iproute/1001-ubuntu-poc-fan-driver-v3.patch
··· 111 + p = RTA_PAYLOAD(i); 112 + m = RTA_DATA(i); 113 + fprintf(f, "%s/%d:%s/%d ", 114 - + rt_addr_n2a(AF_INET, p, &m->overlay, b1, INET_ADDRSTRLEN), 115 + m->overlay_prefix, 116 - + rt_addr_n2a(AF_INET, p, &m->underlay, b2, INET_ADDRSTRLEN), 117 + m->underlay_prefix); 118 + } 119 +}
··· 111 + p = RTA_PAYLOAD(i); 112 + m = RTA_DATA(i); 113 + fprintf(f, "%s/%d:%s/%d ", 114 + + rt_addr_n2a_r(AF_INET, p, &m->overlay, b1, INET_ADDRSTRLEN), 115 + m->overlay_prefix, 116 + + rt_addr_n2a_r(AF_INET, p, &m->underlay, b2, INET_ADDRSTRLEN), 117 + m->underlay_prefix); 118 + } 119 +}
+6 -6
pkgs/os-specific/linux/iproute/1002-ubuntu-poc-fan-driver-vxlan.patch
··· 6 --- iproute2-4.3.0.orig/include/linux/if_link.h 7 +++ iproute2-4.3.0/include/linux/if_link.h 8 @@ -392,6 +392,7 @@ enum { 9 - IFLA_VXLAN_GBP, 10 - IFLA_VXLAN_REMCSUM_NOPARTIAL, 11 IFLA_VXLAN_COLLECT_METADATA, 12 + IFLA_VXLAN_FAN_MAP = 33, 13 __IFLA_VXLAN_MAX 14 }; ··· 88 struct nlmsghdr *n) 89 { 90 @@ -201,6 +243,10 @@ static int vxlan_parse_opt(struct link_u 91 - udp6zerocsumrx = 0; 92 - } else if (!matches(*argv, "gbp")) { 93 gbp = 1; 94 + } else if (!matches(*argv, "fan-map")) { 95 + NEXT_ARG(); 96 + if (fan_parse_map(&argc, &argv, n)) ··· 117 + p = RTA_PAYLOAD(i); 118 + m = RTA_DATA(i); 119 + fprintf(f, "%s/%d:%s/%d ", 120 - + rt_addr_n2a(AF_INET, p, &m->overlay, b1, INET_ADDRSTRLEN), 121 + m->overlay_prefix, 122 - + rt_addr_n2a(AF_INET, p, &m->underlay, b2, INET_ADDRSTRLEN), 123 + m->underlay_prefix); 124 + } 125 +}
··· 6 --- iproute2-4.3.0.orig/include/linux/if_link.h 7 +++ iproute2-4.3.0/include/linux/if_link.h 8 @@ -392,6 +392,7 @@ enum { 9 IFLA_VXLAN_COLLECT_METADATA, 10 + IFLA_VXLAN_LABEL, 11 + IFLA_VXLAN_GPE, 12 + IFLA_VXLAN_FAN_MAP = 33, 13 __IFLA_VXLAN_MAX 14 }; ··· 88 struct nlmsghdr *n) 89 { 90 @@ -201,6 +243,10 @@ static int vxlan_parse_opt(struct link_u 91 gbp = 1; 92 + } else if (!matches(*argv, "gpe")) { 93 + gpe = 1; 94 + } else if (!matches(*argv, "fan-map")) { 95 + NEXT_ARG(); 96 + if (fan_parse_map(&argc, &argv, n)) ··· 117 + p = RTA_PAYLOAD(i); 118 + m = RTA_DATA(i); 119 + fprintf(f, "%s/%d:%s/%d ", 120 + + rt_addr_n2a_r(AF_INET, p, &m->overlay, b1, INET_ADDRSTRLEN), 121 + m->overlay_prefix, 122 + + rt_addr_n2a_r(AF_INET, p, &m->underlay, b2, INET_ADDRSTRLEN), 123 + m->underlay_prefix); 124 + } 125 +}
+4 -2
pkgs/os-specific/linux/iproute/default.nix
··· 3 }: 4 5 stdenv.mkDerivation rec { 6 - name = "iproute2-4.5.0"; 7 8 src = fetchurl { 9 url = "mirror://kernel/linux/utils/net/iproute2/${name}.tar.xz"; 10 - sha256 = "0jj9phsi8m2sbnz7bbh9cf9vckm67hs62ab5srdwnrg4acpjj59z"; 11 }; 12 13 patches = lib.optionals enableFan [ ··· 28 "LIBDIR=$(out)/lib" 29 "SBINDIR=$(out)/sbin" 30 "MANDIR=$(out)/share/man" 31 "DOCDIR=$(TMPDIR)/share/doc/${name}" # Don't install docs 32 ]; 33
··· 3 }: 4 5 stdenv.mkDerivation rec { 6 + name = "iproute2-${version}"; 7 + version = "4.7.0"; 8 9 src = fetchurl { 10 url = "mirror://kernel/linux/utils/net/iproute2/${name}.tar.xz"; 11 + sha256 = "14kvpdlxq8204f5ayfdfb6mc0423mbf3px9q0spdly9sng7xnq4g"; 12 }; 13 14 patches = lib.optionals enableFan [ ··· 29 "LIBDIR=$(out)/lib" 30 "SBINDIR=$(out)/sbin" 31 "MANDIR=$(out)/share/man" 32 + "BASH_COMPDIR=$(out)/share/bash-completion/completions/iproute2" 33 "DOCDIR=$(TMPDIR)/share/doc/${name}" # Don't install docs 34 ]; 35