Gentoo Archives: gentoo-commits

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