From 2d446203bcf1a0db08e99abca43513d246dfa73d Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 5 Apr 2018 21:52:00 +0100 Subject: gentoo resync : 05.04.2018 --- sys-apps/iproute2/Manifest | 7 +- .../files/iproute2-4.16.0-configure-nomagic.patch | 191 +++++++++++++++++++++ sys-apps/iproute2/iproute2-4.14.1-r4.ebuild | 1 - sys-apps/iproute2/iproute2-4.15.0.ebuild | 1 - sys-apps/iproute2/iproute2-4.16.0.ebuild | 151 ++++++++++++++++ 5 files changed, 347 insertions(+), 4 deletions(-) create mode 100644 sys-apps/iproute2/files/iproute2-4.16.0-configure-nomagic.patch create mode 100644 sys-apps/iproute2/iproute2-4.16.0.ebuild (limited to 'sys-apps/iproute2') diff --git a/sys-apps/iproute2/Manifest b/sys-apps/iproute2/Manifest index be9031beccbe..99e4f294d2e2 100644 --- a/sys-apps/iproute2/Manifest +++ b/sys-apps/iproute2/Manifest @@ -4,6 +4,7 @@ AUX iproute2-4.12.0-uclibc-ng-add-ipproto_mh.patch 1178 BLAKE2B e00d87fc26faa843 AUX iproute2-4.14.1-configure-nomagic.patch 7334 BLAKE2B d1a79a653cdaa5907bc93a4283aa1576ec31d3d31a13898c7d923365c1f5068c5a76e52b33bfe2b9a190c273e35fb2125788bbd56ea03b4c01965c029660464b SHA512 0d09bc0a11ec32483a10db7e42a1620087f75063ce8bc24fed30f490eed2ee01d19bd092fb6cd392735c0c9434b13f70d562a469ed3d8a3b51b7fb25ceaf5af6 AUX iproute2-4.14.1-fix-tc-actions.patch 6665 BLAKE2B e2ff926f2122973bcbe61e16717b8a1c51b6b76a774b6ce03126b7664fc5beb47e4f38672910e822b19aadd5c369d00553b2e6b6c30c012e03ad37b023cac4f7 SHA512 cdde7bb5a0cb49471472a8412758023529976dcafefc6a759ce758fba1b0420c046ca6faf084df81ac11e7153ac820909b1b9ec41c04f643208b9db456cfda28 AUX iproute2-4.14.1-posix-shell.patch 1841 BLAKE2B ba1ab797c264dc74180b85f842810af120462df3e15523f132b67968f7be0ae68086d9c01f33cc70fb7680ce2229c76960fe7a232ce6bd1069903976c7143349 SHA512 bb4c3c75c25ec551fe006ae15a0e3bc31c1f49861083894d6d51320be52dbac60634951332135b888faf9363857b53695f3cc418029445a4578b5e9233aec4f3 +AUX iproute2-4.16.0-configure-nomagic.patch 5104 BLAKE2B 49c1cb559afe12eccae26f4547bcbcf8a030ee37d1ef287c178f55f01472e3b5f04d14f25834c99d3df25fae06246086197bd11446f1f50970aecc261b595f08 SHA512 b46d7ec009f924cae2d32c16e0f45c49ddb68af70dfa5d1fc0806c2ede85c744261fd1157d8ac4b1b1455604de456e2f68075b838b42265c3bfa88c021752de1 AUX iproute2-4.2.0-no-ipv6.patch 1336 BLAKE2B bafb155e6bbd902eb0fff7d8875cc4ef7956de0071273dd373ebd09ef46ba23eb22f4226a044585faa2a00c9e4c2854e57e0e06eb1ac735edea9dce2721cadcc SHA512 f4219a094f367c9f8fac089beeffca31abbbc5d4ade1681e23a92f3dd2e1a95f331322938936b0b1771ea5a56224e0f14008f4d38a8708357a5d2b2b70efbbd5 AUX iproute2-4.5.0-no-iptables.patch 1022 BLAKE2B 5e073c3e78491ae86b137ecbea2362c25c98011121cd7b59b8791227638918ad34c417f1ecd48459ef1901c7ff015463f15e5f8343d46d4b56e5555311e3c8d8 SHA512 3a3e7a66f1528dc8d03fc6a13f363ce890d0c23c2ab8df966144d8764e95cafca168bdb7dd79cf1a8dd1e54be36939f2e6465ca6176e3bfedd222eb29901f98e DIST iproute2-4.10.0.tar.xz 626944 BLAKE2B 8d37ae67785cd4a3110f989b0ac635c1cbdc8258afeba5894b58dfcee49fdd9a4c86d8c1693ee5c5a933ce54396dbfed054dbf7fb4888c08563c36c13c282a65 SHA512 e54477e167455e7ef5da4adc168d63eaa96091b63dc987fffe918cbb005eceed18a62283ca99ee2512dc0e960f47ae21b39ffbe399c1612fd9cea147c34c581b @@ -12,6 +13,7 @@ DIST iproute2-4.12.0.tar.xz 662424 BLAKE2B 6c6608d4a157e46932834c09e91d6a786a04c DIST iproute2-4.13.0.tar.xz 670340 BLAKE2B 379072c0865e8960b46065454e9bdf3a9cb7af45b32a2fff8e89bef8d60e837419bea60df1343b4bb15db624feb3ce4acbe621b4c44405c43fa729e770bb04a3 SHA512 f96d2839aec1f439bfac504c8e3881c063dacbf4c67b15f0e3da9882d2fa013cba33c23602de3eab624e0eecbb911a13967d60bddcdf097f47a580a5a77b5e3a DIST iproute2-4.14.1.tar.xz 636876 BLAKE2B 232dbe29b9af516d8345c86c044359d3b0cfe73fb88a2ba1dcd05534b52dea37c9155d2b273a4a0d40b55fba8b5503a0fbe5bc71f37864c0a2ba9d6f08b6bf41 SHA512 e593b68c46ef5f98bd6911ee7beb38388a14935a29fefabdeccc96aa012593b6f3a49b3bb1baed7d77e54f1f4a857172e058b73407f4070f158b8713f44f5d2c DIST iproute2-4.15.0.tar.xz 648836 BLAKE2B e7f3a027ec88de7c6ac82c5529b37fdf22311bc9290e71662bc3b1e32d4cb6a1845e2badb961a21b50b5ed1b9d23130e512a011767183f7df1b33eb05101044b SHA512 bcc54b8dc83d7b0e759a2de77eb38fed483d7f7f82698f482e0259000f2f55ba79c556b721730eb999e85c865ad136fd7549304ebe936545e02e848ba7f698bc +DIST iproute2-4.16.0.tar.xz 661336 BLAKE2B 4efb08c88a60b1bbbeef807c0731e610032bfb11d022562c1df052d324eb43cb25b9523f49730d22a3f92eb06bd5037c70d8ed0b58276a0cf0854a0f82800b64 SHA512 a8fbc92665a8d4ca6ee1e894bfb27373cf6b16dac9e2ab3831e418fcc9b895acc7d6fc64efa0b0e37b3affd4ef8eacf4dae5715536138d6a05c65ad49a2becad DIST iproute2-4.4.0.tar.xz 528552 BLAKE2B cad90d2734647a5a5e90b0a8b1337656c6480471caa06beee54fb3abd9c3bc64fc21da349d9b8aa0decf6208de325dd37a9e02fd9e994b024f9142dcd229b87c SHA512 48236fc6103a55d977efa4f93ad7fdfc0944df975ce771d57fd3dcfb13b761b0c05dbe749978ac86c7a471d023bee62a2f1648a6ca75f50da9252acfde174b69 DIST iproute2-4.5.0.tar.xz 554500 BLAKE2B b64933bd0bf572796705ce2559b1c6cf7faf2f9ac11e1a94a09a428b0039216df8b2ce72a9783e84825a12baaa08526f724d385c6c7e5f6a0d86c3d1662ab822 SHA512 d12be24cf7a1102be8e449d1e95fa67b784d505e98fcf2f18caedf0136fb378dc439f74a75bc0d6ef5b2893e5ca1968e122054404c1f4d1a212aeb0fba1c5860 DIST iproute2-4.6.0.tar.xz 570960 BLAKE2B e49dc56615490aa7d7cec20830b2866c3e00b08a25ab92bf94d30cc1d7e60e5f10982aa379502a0e5279748c9504e67603f0b947376b6d2991838516b55ef4c9 SHA512 1e3868ced65012da6724744eb15e6bb8e2c5bf8d7a46cf2b655526de1a9e1224c7b7e9bd4a88e40516b5648955987eb9001600ca5afbd507bc664f92b51ede9f @@ -23,8 +25,9 @@ EBUILD iproute2-4.11.0.ebuild 3986 BLAKE2B 0103b40fa4c1104421e3fac2d002cb8422498 EBUILD iproute2-4.12.0.ebuild 4212 BLAKE2B 8b40329be710f3d8461429dd94a5a4d4d29cff3b2bdec2a69870e4b24db9726f81885dac49e9afe3aecbca99d9039077a5553e87f5558c91cfb08ed903adfaca SHA512 d66105200c18892f642ab4c43fe3d72ab8cbfd7b1c212eb2b6d04b2e16f8389a1b5244abed85fbbefe4da90bf2604c57f6a0e13601b268b04609cf31c73da897 EBUILD iproute2-4.13.0.ebuild 4213 BLAKE2B 4a238544e35502f785f0916ec5bd255787b01fe5368d169d380778a5d514bd39784968073bcfaf2a2a7abaaf14c0fe85ec46f5374b204b46be887f750c823d62 SHA512 9e3d7ac9347a9e92ece5f6d737b688bd76136600264c888e449e0738c53a58de45a3459b1bd94f150bf2147f5232a8fefe571985bc2227f0d29322f8657d1039 EBUILD iproute2-4.14.1-r2.ebuild 4092 BLAKE2B b3e3ae2b24182aa2d99f16120231bd4ac2029b73b9af53f0098046ecce73049e3dac510ee405f4dd12aa8c0e45b0504b7f82425c8063d05b5a958475ac2ce9d6 SHA512 c4f5cb98704d5a78d74a17a057bebb89f059c0a622d5e7ed28c6b36a73ed6be6d2a9205ed6b1ac4401f23ae46372e25d85a1038631d6ed215b2fd68c2e6a4c73 -EBUILD iproute2-4.14.1-r4.ebuild 4305 BLAKE2B cee940c2a0e309cf9fd0c8d652410cc3acf32bd4abcee04055bde9cbfd38704734b3ca7b9ff92ac6f1ff7dd7b8036ac99221be3a9752bec7adcd5310534e49f8 SHA512 a8c6bdd2c21731bf54da7964aece0be7dd1e78948602f9f2534e1978fa783ad917f40f43eb62084046da1ce0ebaac6c840e7886cdcc44987e5b8225e06c40386 -EBUILD iproute2-4.15.0.ebuild 4244 BLAKE2B e422c120a073b1df1246b316eb3d0bc22c0fe5925059b70b170ac5a45e2ac27b9bea7fceba09a1243598990db1535c09bc20f61a2aa0f17a0532226faa3a7003 SHA512 e8f7250b9a2ecd6b0c80c850599bc61f5f22d434a2699f29d712abc317970780e88e14c013498969723d5457f68493eab55b0f260ed5cfee06631ad29b5de9cc +EBUILD iproute2-4.14.1-r4.ebuild 4275 BLAKE2B d8d6a43be5eb593ab7107bff4126cda9f41fff88ccb72fd4d3aee7464457739732b2e3a161114302f7e1d9ff18a5b3c7d73a92ed523254ff4857584bc2baa109 SHA512 ae5db8ad15d20df0ec18e2703d43be081189366f535ff700d83da449eed8c120df869a6d2873e817e07bd2920eea46387bda0866ccce0b48d0e7a71e8faa8752 +EBUILD iproute2-4.15.0.ebuild 4214 BLAKE2B 391db4082541f9f23fef2386194590da5dec77a8dfcaf43b0335d0e6a7ae6417a8515ec206ad8557660c33ff7a31ff6b14dff303d6499a5c3576516a870cd6c4 SHA512 a04301fe1dba7903c6043612e5321bd6b231b7913d67973a80abfa228156c9919c8b959248d4f092776603877fc3661001b529f8ca032a0a996ac93425139d75 +EBUILD iproute2-4.16.0.ebuild 4214 BLAKE2B 4c6a9d68cb27d3b41e8da00e1fc25c083c5277706186414d407c9000b4343dfaad8913ee640e9060b1e9acda5ed43fa642631ab3b2bf8c3a956ed1ae68cebd0f SHA512 30839985403cbda2401bccfb822d394590508836e0e780bf321f64235f372819225afbbd4dcf4ec3d05992435408ebcaba401bb7c7f2872f5e474bb2b3566f5b EBUILD iproute2-4.4.0.ebuild 3874 BLAKE2B 38518bb4f4610a04231e03a0068b0cd232477202c2efeeab9c42883a155707d74535e7398347316bff6d4c7833ebe6893fcac246fc756780febd6e4b61f0a486 SHA512 d21f5f77a404fc3ecd70728c64af64a24080044a4634cb68078699e628120c1cba2c2b508cd34ad92e9202ccdac01596a6e988635b5c1a1e0113815d893a217a EBUILD iproute2-4.5.0.ebuild 3887 BLAKE2B 6788057f29e49ba641f790c571035d2a489a238a2821b3b5fe12c0973fa4c2aeef703826379944defe3b9997b889c071ce51f7ffe0ab5eeff68b644ced49faeb SHA512 a5d957f6660e3d1444a46511f8040f0bc7eb7a489a087e49e90a4e1d356f5346cb39a5dfdc98411d5e3eb1d6aca9e6d88f815ea133d501e5a640e099ef8e9ecc EBUILD iproute2-4.6.0.ebuild 3997 BLAKE2B 4f2a0cf508475c2763b08f8cbe865d8dee51fadacffd070625a54e8419784706ca64918462284be1e9a641e4fbcef27e54bed13cdb91927ce7bac63132520ad2 SHA512 7e90c8bc70a9f3cf477389aa881d58f7e16a8d0a73dce93d0e5aa33d977c549715e0ae86583292bfe2797ef7792ed0ddad6b2bfb7a68d940bc4240313c565617 diff --git a/sys-apps/iproute2/files/iproute2-4.16.0-configure-nomagic.patch b/sys-apps/iproute2/files/iproute2-4.16.0-configure-nomagic.patch new file mode 100644 index 000000000000..01a1fe2d812f --- /dev/null +++ b/sys-apps/iproute2/files/iproute2-4.16.0-configure-nomagic.patch @@ -0,0 +1,191 @@ +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 based only on presence. +- Links based on libselinux based only on presence. + +Closes: https://bugs.gentoo.org/643722 +Signed-off-by: Robin H. Johnson + +Forward-ported from v4.14.1 to v4.16.0 by Lars Wendler + +--- iproute2-4.16.0/bridge/Makefile ++++ iproute2-4.16.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.16.0/config.include ++++ iproute2-4.16.0/config.include +@@ -0,0 +1,22 @@ ++# 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 ++ ++# 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.16.0/configure ++++ iproute2-4.16.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 +@@ -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.16.0/devlink/Makefile ++++ iproute2-4.16.0/devlink/Makefile +@@ -1,5 +1,6 @@ + # SPDX-License-Identifier: GPL-2.0 + include ../config.mk ++include ../config.include + + TARGETS := + +--- iproute2-4.16.0/genl/Makefile ++++ iproute2-4.16.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.16.0/ip/Makefile ++++ iproute2-4.16.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.16.0/lib/Makefile ++++ iproute2-4.16.0/lib/Makefile +@@ -1,5 +1,6 @@ + # SPDX-License-Identifier: GPL-2.0 + include ../config.mk ++include ../config.include + + CFLAGS += -fPIC + +--- iproute2-4.16.0/misc/Makefile ++++ iproute2-4.16.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.16.0/netem/Makefile ++++ iproute2-4.16.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.16.0/rdma/Makefile ++++ iproute2-4.16.0/rdma/Makefile +@@ -1,5 +1,6 @@ + # SPDX-License-Identifier: GPL-2.0 + include ../config.mk ++include ../config.include + + TARGETS := + +--- iproute2-4.16.0/tc/Makefile ++++ iproute2-4.16.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.16.0/tipc/Makefile ++++ iproute2-4.16.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/iproute2-4.14.1-r4.ebuild b/sys-apps/iproute2/iproute2-4.14.1-r4.ebuild index c9c21b326b4e..834e23c06287 100644 --- a/sys-apps/iproute2/iproute2-4.14.1-r4.ebuild +++ b/sys-apps/iproute2/iproute2-4.14.1-r4.ebuild @@ -61,7 +61,6 @@ src_prepare() { -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \ -e "s:-O2:${CFLAGS} ${CPPFLAGS}:" \ -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \ - -e "/^WFLAGS/s:-Werror::" \ -e "/^DBM_INCLUDE/s:=.*:=${T}:" \ Makefile || die diff --git a/sys-apps/iproute2/iproute2-4.15.0.ebuild b/sys-apps/iproute2/iproute2-4.15.0.ebuild index 15efa9acf6c9..34856824f571 100644 --- a/sys-apps/iproute2/iproute2-4.15.0.ebuild +++ b/sys-apps/iproute2/iproute2-4.15.0.ebuild @@ -60,7 +60,6 @@ src_prepare() { -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \ -e "s:-O2:${CFLAGS} ${CPPFLAGS}:" \ -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \ - -e "/^WFLAGS/s:-Werror::" \ -e "/^DBM_INCLUDE/s:=.*:=${T}:" \ Makefile || die diff --git a/sys-apps/iproute2/iproute2-4.16.0.ebuild b/sys-apps/iproute2/iproute2-4.16.0.ebuild new file mode 100644 index 000000000000..7d284f1e5446 --- /dev/null +++ b/sys-apps/iproute2/iproute2-4.16.0.ebuild @@ -0,0 +1,151 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit toolchain-funcs flag-o-matic multilib + +if [[ ${PV} == "9999" ]] ; then + EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git" + inherit git-r3 +else + SRC_URI="mirror://kernel/linux/utils/net/${PN}/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +fi + +DESCRIPTION="kernel routing and traffic control utilities" +HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2" + +LICENSE="GPL-2" +SLOT="0" +IUSE="atm berkdb elf +iptables ipv6 minimal selinux" + +# We could make libmnl optional, but it's tiny, so eh +RDEPEND=" + !net-misc/arpd + !minimal? ( net-libs/libmnl ) + elf? ( virtual/libelf ) + iptables? ( >=net-firewall/iptables-1.4.20:= ) + berkdb? ( sys-libs/db:= ) + atm? ( net-dialup/linux-atm ) + selinux? ( sys-libs/libselinux ) +" +# We require newer linux-headers for ipset support #549948 and some defines #553876 +DEPEND=" + ${RDEPEND} + app-arch/xz-utils + iptables? ( virtual/pkgconfig ) + >=sys-devel/bison-2.4 + sys-devel/flex + >=sys-kernel/linux-headers-3.16 + elibc_glibc? ( >=sys-libs/glibc-2.7 ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-3.1.0-mtu.patch #291907 + "${FILESDIR}"/${PN}-4.16.0-configure-nomagic.patch # bug 643722 +) + +src_prepare() { + if ! use ipv6 ; then + PATCHES+=( + "${FILESDIR}"/${PN}-4.11.0-no-ipv6.patch #326849 + ) + fi + + default + + sed -i \ + -e '/^CC :\?=/d' \ + -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \ + -e "s:-O2:${CFLAGS} ${CPPFLAGS}:" \ + -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \ + -e "/^DBM_INCLUDE/s:=.*:=${T}:" \ + Makefile || die + + # Use /run instead of /var/run. + sed -i \ + -e 's:/var/run:/run:g' \ + include/namespace.h \ + man/man8/ip-netns.8 || die + + # build against system headers + rm -r include/netinet #include/linux include/ip{,6}tables{,_common}.h include/libiptc + sed -i 's:TCPI_OPT_ECN_SEEN:16:' misc/ss.c || die + + use minimal && sed -i -e '/^SUBDIRS=/s:=.*:=lib tc ip:' Makefile +} + +src_configure() { + tc-export AR CC PKG_CONFIG + + # This sure is ugly. Should probably move into toolchain-funcs at some point. + local setns + pushd "${T}" >/dev/null + printf '#include \nint main(){return setns(0, 0);}\n' > test.c + ${CC} ${CFLAGS} ${CPPFLAGS} -D_GNU_SOURCE ${LDFLAGS} test.c >&/dev/null && setns=y || setns=n + echo 'int main(){return 0;}' > test.c + ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null || sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile + popd >/dev/null + + # run "configure" script first which will create "config.mk"... + econf + + # ...now switch on/off requested features via USE flags + # this is only useful if the test did not set other things, per bug #643722 + cat <<-EOF >> config.mk + TC_CONFIG_ATM := $(usex atm y n) + TC_CONFIG_XT := $(usex iptables y n) + TC_CONFIG_NO_XT := $(usex iptables n y) + # We've locked in recent enough kernel headers #549948 + TC_CONFIG_IPSET := y + HAVE_BERKELEY_DB := $(usex berkdb y n) + HAVE_MNL := $(usex minimal n y) + HAVE_ELF := $(usex elf y n) + HAVE_SELINUX := $(usex selinux y n) + IP_CONFIG_SETNS := ${setns} + # Use correct iptables dir, #144265 #293709 + IPT_LIB_DIR := $(use iptables && ${PKG_CONFIG} xtables --variable=xtlibdir) + EOF +} + +src_compile() { + emake V=1 +} + +src_install() { + if use minimal ; then + into / + dosbin tc/tc + dobin ip/ip + return 0 + fi + + emake \ + DESTDIR="${D}" \ + LIBDIR="${EPREFIX%/}"/$(get_libdir) \ + SBINDIR="${EPREFIX%/}"/sbin \ + CONFDIR="${EPREFIX%/}"/etc/iproute2 \ + DOCDIR="${EPREFIX%/}"/usr/share/doc/${PF} \ + MANDIR="${EPREFIX%/}"/usr/share/man \ + ARPDDIR="${EPREFIX%/}"/var/lib/arpd \ + install + + dodir /bin + mv "${ED%/}"/{s,}bin/ip || die #330115 + + dolib.a lib/libnetlink.a + insinto /usr/include + doins include/libnetlink.h + # This local header pulls in a lot of linux headers it + # doesn't directly need. Delete this header that requires + # linux-headers-3.8 until that goes stable. #467716 + sed -i '/linux\/netconf.h/d' "${ED%/}"/usr/include/libnetlink.h || die + + if use berkdb ; then + dodir /var/lib/arpd + # bug 47482, arpd doesn't need to be in /sbin + dodir /usr/bin + mv "${ED%/}"/sbin/arpd "${ED%/}"/usr/bin/ || die + fi +} -- cgit v1.2.3