Gentoo Archives: gentoo-commits

From: Lars Wendler <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/iproute2/, sys-apps/iproute2/files/
Date: Tue, 03 Apr 2018 10:24:17
Message-Id: 1522751048.a828c0687225ce4a3a310986c41160fd63576412.polynomial-c@gentoo
1 commit: a828c0687225ce4a3a310986c41160fd63576412
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Tue Apr 3 10:23:26 2018 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Tue Apr 3 10:24:08 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a828c068
7
8 sys-apps/iproute2: Bump to version 4.16.0
9
10 Package-Manager: Portage-2.3.28, Repoman-2.3.9
11
12 sys-apps/iproute2/Manifest | 1 +
13 .../files/iproute2-4.16.0-configure-nomagic.patch | 191 +++++++++++++++++++++
14 sys-apps/iproute2/iproute2-4.16.0.ebuild | 152 ++++++++++++++++
15 3 files changed, 344 insertions(+)
16
17 diff --git a/sys-apps/iproute2/Manifest b/sys-apps/iproute2/Manifest
18 index ad319ef1cd9..eedf9e981d9 100644
19 --- a/sys-apps/iproute2/Manifest
20 +++ b/sys-apps/iproute2/Manifest
21 @@ -4,6 +4,7 @@ DIST iproute2-4.12.0.tar.xz 662424 BLAKE2B 6c6608d4a157e46932834c09e91d6a786a04c
22 DIST iproute2-4.13.0.tar.xz 670340 BLAKE2B 379072c0865e8960b46065454e9bdf3a9cb7af45b32a2fff8e89bef8d60e837419bea60df1343b4bb15db624feb3ce4acbe621b4c44405c43fa729e770bb04a3 SHA512 f96d2839aec1f439bfac504c8e3881c063dacbf4c67b15f0e3da9882d2fa013cba33c23602de3eab624e0eecbb911a13967d60bddcdf097f47a580a5a77b5e3a
23 DIST iproute2-4.14.1.tar.xz 636876 BLAKE2B 232dbe29b9af516d8345c86c044359d3b0cfe73fb88a2ba1dcd05534b52dea37c9155d2b273a4a0d40b55fba8b5503a0fbe5bc71f37864c0a2ba9d6f08b6bf41 SHA512 e593b68c46ef5f98bd6911ee7beb38388a14935a29fefabdeccc96aa012593b6f3a49b3bb1baed7d77e54f1f4a857172e058b73407f4070f158b8713f44f5d2c
24 DIST iproute2-4.15.0.tar.xz 648836 BLAKE2B e7f3a027ec88de7c6ac82c5529b37fdf22311bc9290e71662bc3b1e32d4cb6a1845e2badb961a21b50b5ed1b9d23130e512a011767183f7df1b33eb05101044b SHA512 bcc54b8dc83d7b0e759a2de77eb38fed483d7f7f82698f482e0259000f2f55ba79c556b721730eb999e85c865ad136fd7549304ebe936545e02e848ba7f698bc
25 +DIST iproute2-4.16.0.tar.xz 661336 BLAKE2B 4efb08c88a60b1bbbeef807c0731e610032bfb11d022562c1df052d324eb43cb25b9523f49730d22a3f92eb06bd5037c70d8ed0b58276a0cf0854a0f82800b64 SHA512 a8fbc92665a8d4ca6ee1e894bfb27373cf6b16dac9e2ab3831e418fcc9b895acc7d6fc64efa0b0e37b3affd4ef8eacf4dae5715536138d6a05c65ad49a2becad
26 DIST iproute2-4.4.0.tar.xz 528552 BLAKE2B cad90d2734647a5a5e90b0a8b1337656c6480471caa06beee54fb3abd9c3bc64fc21da349d9b8aa0decf6208de325dd37a9e02fd9e994b024f9142dcd229b87c SHA512 48236fc6103a55d977efa4f93ad7fdfc0944df975ce771d57fd3dcfb13b761b0c05dbe749978ac86c7a471d023bee62a2f1648a6ca75f50da9252acfde174b69
27 DIST iproute2-4.5.0.tar.xz 554500 BLAKE2B b64933bd0bf572796705ce2559b1c6cf7faf2f9ac11e1a94a09a428b0039216df8b2ce72a9783e84825a12baaa08526f724d385c6c7e5f6a0d86c3d1662ab822 SHA512 d12be24cf7a1102be8e449d1e95fa67b784d505e98fcf2f18caedf0136fb378dc439f74a75bc0d6ef5b2893e5ca1968e122054404c1f4d1a212aeb0fba1c5860
28 DIST iproute2-4.6.0.tar.xz 570960 BLAKE2B e49dc56615490aa7d7cec20830b2866c3e00b08a25ab92bf94d30cc1d7e60e5f10982aa379502a0e5279748c9504e67603f0b947376b6d2991838516b55ef4c9 SHA512 1e3868ced65012da6724744eb15e6bb8e2c5bf8d7a46cf2b655526de1a9e1224c7b7e9bd4a88e40516b5648955987eb9001600ca5afbd507bc664f92b51ede9f
29
30 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
31 new file mode 100644
32 index 00000000000..01a1fe2d812
33 --- /dev/null
34 +++ b/sys-apps/iproute2/files/iproute2-4.16.0-configure-nomagic.patch
35 @@ -0,0 +1,191 @@
36 +The hand-rolled configure script, for multiple options (selinux,mnl,elf), sets
37 +a variable as well as modifying CFLAGS & LDLIBS.
38 +
39 +If config.mk is later amended to disable a feature, the CFLAGS/LDLIBS tweaks
40 +are still in place.
41 +
42 +Push the CFLAGS/LDLIBS changes into new conditional Makefile code, so that they
43 +are only passed when correctly needed.
44 +
45 +Prior Gentoo testcase for reproduction:
46 +USE=minimal ebuild ... compile.
47 +- Linking with libelf & libmnl based only on presence.
48 +- Links based on libselinux based only on presence.
49 +
50 +Closes: https://bugs.gentoo.org/643722
51 +Signed-off-by: Robin H. Johnson <robbat2@g.o>
52 +
53 +Forward-ported from v4.14.1 to v4.16.0 by Lars Wendler <polynomial-c@g.o>
54 +
55 +--- iproute2-4.16.0/bridge/Makefile
56 ++++ iproute2-4.16.0/bridge/Makefile
57 +@@ -2,6 +2,7 @@
58 + BROBJ = bridge.o fdb.o monitor.o link.o mdb.o vlan.o
59 +
60 + include ../config.mk
61 ++include ../config.include
62 +
63 + all: bridge
64 +
65 +--- iproute2-4.16.0/config.include
66 ++++ iproute2-4.16.0/config.include
67 +@@ -0,0 +1,22 @@
68 ++# We can only modify CFLAGS/LDLIBS after all the config options are known.
69 ++ifeq ($(IP_CONFIG_SETNS),y)
70 ++ CFLAGS += $(IP_CONFIG_SETNS_CFLAGS)
71 ++endif
72 ++ifeq ($(HAVE_ELF),y)
73 ++ CFLAGS += $(HAVE_ELF_CFLAGS)
74 ++ LDLIBS += $(HAVE_ELF_LDLIBS)
75 ++endif
76 ++ifeq ($(HAVE_SELINUX),y)
77 ++ CFLAGS += $(HAVE_SELINUX_CFLAGS)
78 ++ LDLIBS += $(HAVE_SELINUX_LDLIBS)
79 ++endif
80 ++ifeq ($(HAVE_MNL),y)
81 ++ CFLAGS += $(HAVE_MNL_CFLAGS)
82 ++ LDLIBS += $(HAVE_MNL_LDLIBS)
83 ++endif
84 ++
85 ++# Rules can only be declared after all variables in them are known.
86 ++%.o: %.c
87 ++ $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
88 ++
89 ++# vim: ft=make:
90 +--- iproute2-4.16.0/configure
91 ++++ iproute2-4.16.0/configure
92 +@@ -212,7 +212,7 @@
93 + then
94 + echo "IP_CONFIG_SETNS:=y" >>$CONFIG
95 + echo "yes"
96 +- echo "CFLAGS += -DHAVE_SETNS" >>$CONFIG
97 ++ echo "IP_CONFIG_SETNS_CFLAGS += -DHAVE_SETNS" >>$CONFIG
98 + else
99 + echo "no"
100 + fi
101 +@@ -257,8 +257,8 @@
102 + echo "HAVE_ELF:=y" >>$CONFIG
103 + echo "yes"
104 +
105 +- echo 'CFLAGS += -DHAVE_ELF' `${PKG_CONFIG} libelf --cflags` >> $CONFIG
106 +- echo 'LDLIBS += ' `${PKG_CONFIG} libelf --libs` >>$CONFIG
107 ++ echo 'HAVE_ELF_CFLAGS += -DHAVE_ELF' `${PKG_CONFIG} libelf --cflags` >> $CONFIG
108 ++ echo 'HAVE_ELF_LDLIBS += ' `${PKG_CONFIG} libelf --libs` >>$CONFIG
109 + else
110 + echo "no"
111 + fi
112 +@@ -272,8 +272,8 @@
113 + echo "HAVE_SELINUX:=y" >>$CONFIG
114 + echo "yes"
115 +
116 +- echo 'LDLIBS +=' `${PKG_CONFIG} --libs libselinux` >>$CONFIG
117 +- echo 'CFLAGS += -DHAVE_SELINUX' `${PKG_CONFIG} --cflags libselinux` >>$CONFIG
118 ++ echo 'HAVE_SELINUX_CFLAGS += -DHAVE_SELINUX' `${PKG_CONFIG} --cflags libselinux` >>$CONFIG
119 ++ echo 'HAVE_SELINUX_LDLIBS +=' `${PKG_CONFIG} --libs libselinux` >>$CONFIG
120 + else
121 + echo "no"
122 + fi
123 +@@ -286,8 +286,8 @@
124 + echo "HAVE_MNL:=y" >>$CONFIG
125 + echo "yes"
126 +
127 +- echo 'CFLAGS += -DHAVE_LIBMNL' `${PKG_CONFIG} libmnl --cflags` >>$CONFIG
128 +- echo 'LDLIBS +=' `${PKG_CONFIG} libmnl --libs` >> $CONFIG
129 ++ echo 'HAVE_MNL_CFLAGS += -DHAVE_LIBMNL' `${PKG_CONFIG} libmnl --cflags` >>$CONFIG
130 ++ echo 'HAVE_MNL_LDLIBS +=' `${PKG_CONFIG} libmnl --libs` >> $CONFIG
131 + else
132 + echo "no"
133 + fi
134 +@@ -426,7 +426,3 @@
135 +
136 + echo -n "libcap support: "
137 + check_cap
138 +-
139 +-echo >> $CONFIG
140 +-echo "%.o: %.c" >> $CONFIG
141 +-echo ' $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<' >> $CONFIG
142 +--- iproute2-4.16.0/devlink/Makefile
143 ++++ iproute2-4.16.0/devlink/Makefile
144 +@@ -1,5 +1,6 @@
145 + # SPDX-License-Identifier: GPL-2.0
146 + include ../config.mk
147 ++include ../config.include
148 +
149 + TARGETS :=
150 +
151 +--- iproute2-4.16.0/genl/Makefile
152 ++++ iproute2-4.16.0/genl/Makefile
153 +@@ -2,6 +2,7 @@
154 + GENLOBJ=genl.o
155 +
156 + include ../config.mk
157 ++include ../config.include
158 + SHARED_LIBS ?= y
159 +
160 + CFLAGS += -fno-strict-aliasing
161 +--- iproute2-4.16.0/ip/Makefile
162 ++++ iproute2-4.16.0/ip/Makefile
163 +@@ -15,6 +15,7 @@
164 + RTMONOBJ=rtmon.o
165 +
166 + include ../config.mk
167 ++include ../config.include
168 +
169 + ALLOBJ=$(IPOBJ) $(RTMONOBJ)
170 + SCRIPTS=ifcfg rtpr routel routef
171 +--- iproute2-4.16.0/lib/Makefile
172 ++++ iproute2-4.16.0/lib/Makefile
173 +@@ -1,5 +1,6 @@
174 + # SPDX-License-Identifier: GPL-2.0
175 + include ../config.mk
176 ++include ../config.include
177 +
178 + CFLAGS += -fPIC
179 +
180 +--- iproute2-4.16.0/misc/Makefile
181 ++++ iproute2-4.16.0/misc/Makefile
182 +@@ -5,6 +5,7 @@
183 + TARGETS=ss nstat ifstat rtacct lnstat
184 +
185 + include ../config.mk
186 ++include ../config.include
187 +
188 + ifeq ($(HAVE_BERKELEY_DB),y)
189 + TARGETS += arpd
190 +--- iproute2-4.16.0/netem/Makefile
191 ++++ iproute2-4.16.0/netem/Makefile
192 +@@ -1,5 +1,6 @@
193 + # SPDX-License-Identifier: GPL-2.0
194 + include ../config.mk
195 ++include ../config.include
196 +
197 + DISTGEN = maketable normal pareto paretonormal
198 + DISTDATA = normal.dist pareto.dist paretonormal.dist experimental.dist
199 +--- iproute2-4.16.0/rdma/Makefile
200 ++++ iproute2-4.16.0/rdma/Makefile
201 +@@ -1,5 +1,6 @@
202 + # SPDX-License-Identifier: GPL-2.0
203 + include ../config.mk
204 ++include ../config.include
205 +
206 + TARGETS :=
207 +
208 +--- iproute2-4.16.0/tc/Makefile
209 ++++ iproute2-4.16.0/tc/Makefile
210 +@@ -4,6 +4,7 @@
211 + emp_ematch.yacc.o emp_ematch.lex.o
212 +
213 + include ../config.mk
214 ++include ../config.include
215 +
216 + SHARED_LIBS ?= y
217 +
218 +--- iproute2-4.16.0/tipc/Makefile
219 ++++ iproute2-4.16.0/tipc/Makefile
220 +@@ -1,5 +1,6 @@
221 + # SPDX-License-Identifier: GPL-2.0
222 + include ../config.mk
223 ++include ../config.include
224 +
225 + TARGETS :=
226 +
227
228 diff --git a/sys-apps/iproute2/iproute2-4.16.0.ebuild b/sys-apps/iproute2/iproute2-4.16.0.ebuild
229 new file mode 100644
230 index 00000000000..0181e8c6b83
231 --- /dev/null
232 +++ b/sys-apps/iproute2/iproute2-4.16.0.ebuild
233 @@ -0,0 +1,152 @@
234 +# Copyright 1999-2018 Gentoo Foundation
235 +# Distributed under the terms of the GNU General Public License v2
236 +
237 +EAPI=6
238 +
239 +inherit toolchain-funcs flag-o-matic multilib
240 +
241 +if [[ ${PV} == "9999" ]] ; then
242 + EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git"
243 + inherit git-r3
244 +else
245 + SRC_URI="mirror://kernel/linux/utils/net/${PN}/${P}.tar.xz"
246 + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
247 +fi
248 +
249 +DESCRIPTION="kernel routing and traffic control utilities"
250 +HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2"
251 +
252 +LICENSE="GPL-2"
253 +SLOT="0"
254 +IUSE="atm berkdb elf +iptables ipv6 minimal selinux"
255 +
256 +# We could make libmnl optional, but it's tiny, so eh
257 +RDEPEND="
258 + !net-misc/arpd
259 + !minimal? ( net-libs/libmnl )
260 + elf? ( virtual/libelf )
261 + iptables? ( >=net-firewall/iptables-1.4.20:= )
262 + berkdb? ( sys-libs/db:= )
263 + atm? ( net-dialup/linux-atm )
264 + selinux? ( sys-libs/libselinux )
265 +"
266 +# We require newer linux-headers for ipset support #549948 and some defines #553876
267 +DEPEND="
268 + ${RDEPEND}
269 + app-arch/xz-utils
270 + iptables? ( virtual/pkgconfig )
271 + >=sys-devel/bison-2.4
272 + sys-devel/flex
273 + >=sys-kernel/linux-headers-3.16
274 + elibc_glibc? ( >=sys-libs/glibc-2.7 )
275 +"
276 +
277 +PATCHES=(
278 + "${FILESDIR}"/${PN}-3.1.0-mtu.patch #291907
279 + "${FILESDIR}"/${PN}-4.16.0-configure-nomagic.patch # bug 643722
280 +)
281 +
282 +src_prepare() {
283 + if ! use ipv6 ; then
284 + PATCHES+=(
285 + "${FILESDIR}"/${PN}-4.11.0-no-ipv6.patch #326849
286 + )
287 + fi
288 +
289 + default
290 +
291 + sed -i \
292 + -e '/^CC :\?=/d' \
293 + -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \
294 + -e "s:-O2:${CFLAGS} ${CPPFLAGS}:" \
295 + -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \
296 + -e "/^WFLAGS/s:-Werror::" \
297 + -e "/^DBM_INCLUDE/s:=.*:=${T}:" \
298 + Makefile || die
299 +
300 + # Use /run instead of /var/run.
301 + sed -i \
302 + -e 's:/var/run:/run:g' \
303 + include/namespace.h \
304 + man/man8/ip-netns.8 || die
305 +
306 + # build against system headers
307 + rm -r include/netinet #include/linux include/ip{,6}tables{,_common}.h include/libiptc
308 + sed -i 's:TCPI_OPT_ECN_SEEN:16:' misc/ss.c || die
309 +
310 + use minimal && sed -i -e '/^SUBDIRS=/s:=.*:=lib tc ip:' Makefile
311 +}
312 +
313 +src_configure() {
314 + tc-export AR CC PKG_CONFIG
315 +
316 + # This sure is ugly. Should probably move into toolchain-funcs at some point.
317 + local setns
318 + pushd "${T}" >/dev/null
319 + printf '#include <sched.h>\nint main(){return setns(0, 0);}\n' > test.c
320 + ${CC} ${CFLAGS} ${CPPFLAGS} -D_GNU_SOURCE ${LDFLAGS} test.c >&/dev/null && setns=y || setns=n
321 + echo 'int main(){return 0;}' > test.c
322 + ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null || sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile
323 + popd >/dev/null
324 +
325 + # run "configure" script first which will create "config.mk"...
326 + econf
327 +
328 + # ...now switch on/off requested features via USE flags
329 + # this is only useful if the test did not set other things, per bug #643722
330 + cat <<-EOF >> config.mk
331 + TC_CONFIG_ATM := $(usex atm y n)
332 + TC_CONFIG_XT := $(usex iptables y n)
333 + TC_CONFIG_NO_XT := $(usex iptables n y)
334 + # We've locked in recent enough kernel headers #549948
335 + TC_CONFIG_IPSET := y
336 + HAVE_BERKELEY_DB := $(usex berkdb y n)
337 + HAVE_MNL := $(usex minimal n y)
338 + HAVE_ELF := $(usex elf y n)
339 + HAVE_SELINUX := $(usex selinux y n)
340 + IP_CONFIG_SETNS := ${setns}
341 + # Use correct iptables dir, #144265 #293709
342 + IPT_LIB_DIR := $(use iptables && ${PKG_CONFIG} xtables --variable=xtlibdir)
343 + EOF
344 +}
345 +
346 +src_compile() {
347 + emake V=1
348 +}
349 +
350 +src_install() {
351 + if use minimal ; then
352 + into /
353 + dosbin tc/tc
354 + dobin ip/ip
355 + return 0
356 + fi
357 +
358 + emake \
359 + DESTDIR="${D}" \
360 + LIBDIR="${EPREFIX%/}"/$(get_libdir) \
361 + SBINDIR="${EPREFIX%/}"/sbin \
362 + CONFDIR="${EPREFIX%/}"/etc/iproute2 \
363 + DOCDIR="${EPREFIX%/}"/usr/share/doc/${PF} \
364 + MANDIR="${EPREFIX%/}"/usr/share/man \
365 + ARPDDIR="${EPREFIX%/}"/var/lib/arpd \
366 + install
367 +
368 + dodir /bin
369 + mv "${ED%/}"/{s,}bin/ip || die #330115
370 +
371 + dolib.a lib/libnetlink.a
372 + insinto /usr/include
373 + doins include/libnetlink.h
374 + # This local header pulls in a lot of linux headers it
375 + # doesn't directly need. Delete this header that requires
376 + # linux-headers-3.8 until that goes stable. #467716
377 + sed -i '/linux\/netconf.h/d' "${ED%/}"/usr/include/libnetlink.h || die
378 +
379 + if use berkdb ; then
380 + dodir /var/lib/arpd
381 + # bug 47482, arpd doesn't need to be in /sbin
382 + dodir /usr/bin
383 + mv "${ED%/}"/sbin/arpd "${ED%/}"/usr/bin/ || die
384 + fi
385 +}