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/files/, sys-apps/iproute2/
Date: Wed, 28 Apr 2021 09:53:41
Message-Id: 1619603610.7f8ab74f5b22137d75758d7c5456f81b9f0aab4f.polynomial-c@gentoo
1 commit: 7f8ab74f5b22137d75758d7c5456f81b9f0aab4f
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Wed Apr 28 09:50:32 2021 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Wed Apr 28 09:53:30 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7f8ab74f
7
8 sys-apps/iproute2: Bump to version 5.12.0
9
10 Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
11
12 sys-apps/iproute2/Manifest | 1 +
13 .../files/iproute2-5.12.0-configure-nomagic.patch | 245 +++++++++++++++++++++
14 sys-apps/iproute2/iproute2-5.12.0.ebuild | 170 ++++++++++++++
15 3 files changed, 416 insertions(+)
16
17 diff --git a/sys-apps/iproute2/Manifest b/sys-apps/iproute2/Manifest
18 index f91943551f4..8070033bca7 100644
19 --- a/sys-apps/iproute2/Manifest
20 +++ b/sys-apps/iproute2/Manifest
21 @@ -1,3 +1,4 @@
22 DIST iproute2-5.10.0.tar.xz 798776 BLAKE2B 8c17e65f03427f45b71dc17b289b272545549a6687257498676a23e4fdc4a590a7215bfdba3c7ac4b1ccde6c38ba8e3eb222eea2532374fa9680633aa198d347 SHA512 a468eefa797898b6de452212aa432c0a931434defacae5fb4335754c1292c5d86a8c8dbf3017f90cec266d71a2a17ae469aac17e1a85a5cbddc70814313e4c13
23 DIST iproute2-5.11.0.tar.xz 822044 BLAKE2B e52e2334a4f6271a23e9393a3b11fc7e8e070ecff178bda1cf87705a55b59018edc8c28751e4fc6a7d877c19e6da772765afbdc5944800f98bf176513595e5bb SHA512 f592728ec819fc34cba04b1c04275e783aed86084fe31948e1776e6e473c8c1416aaf8101c19b51ddb4044af1cd2157827c0f91546b33badb448466eae9a2fda
24 +DIST iproute2-5.12.0.tar.xz 835880 BLAKE2B 8e3e1b7188d7ab5014d06d7edaae2cb0c1dc65862999a2ca9f31902256d7f3d166de8a1c76e4e137acce2b445d72ea6850bfec3640d1919cb82351d45dd3e47e SHA512 9249beb67b30ceef178b60b2b61a5e6c45277e747ae4c865e739b7ab84192549e8e94ebaee43c0a87c0291037746ffb6936346245220786e369201ee13d60fac
25 DIST iproute2-5.7.0.tar.xz 764436 BLAKE2B 842229730139f8931c4ff3d548fe56c7c86b6bb7be5cc1a7dd896ddce34c039467fb90d0c258cdc91276edc59b9b19f53c39a36c79b54b15a78436b44c595eed SHA512 d5ef68e0eb8e84fbff68c2e7dd4097b9ceb438c928d17ede4130876802dfeafe8bf08d82b4fd39005314e0679c0b261aaa3d6a0a2ff364074a43a043a855a634
26
27 diff --git a/sys-apps/iproute2/files/iproute2-5.12.0-configure-nomagic.patch b/sys-apps/iproute2/files/iproute2-5.12.0-configure-nomagic.patch
28 new file mode 100644
29 index 00000000000..7dbb3a6dcb1
30 --- /dev/null
31 +++ b/sys-apps/iproute2/files/iproute2-5.12.0-configure-nomagic.patch
32 @@ -0,0 +1,245 @@
33 +The hand-rolled configure script, for multiple options (selinux,mnl,elf), sets
34 +a variable as well as modifying CFLAGS & LDLIBS.
35 +
36 +If config.mk is later amended to disable a feature, the CFLAGS/LDLIBS tweaks
37 +are still in place.
38 +
39 +Push the CFLAGS/LDLIBS changes into new conditional Makefile code, so that they
40 +are only passed when correctly needed.
41 +
42 +Prior Gentoo testcase for reproduction:
43 +USE=minimal ebuild ... compile.
44 +- Linking with libbsd, libelf, libmnl & libcap based only on presence.
45 +- Links based on libselinux based only on presence.
46 +
47 +Closes: https://bugs.gentoo.org/643722
48 +Signed-off-by: Robin H. Johnson <robbat2@g.o>
49 +
50 +Forward-ported from v4.14.1 to v4.16.0 by Lars Wendler <polynomial-c@g.o>
51 +Added libcap to v4.17.0 by Lars Wendler <polynomial-c@g.o>
52 +Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@g.o>
53 +Forward-ported from v4.20.0 to v5.11.0 by Lars Wendler <polynomial-c@g.o>
54 +Forward-ported from v5.11.0 to v5.12.0 by Lars Wendler <polynomial-c@g.o>
55 +
56 +--- iproute2-5.12.0/bridge/Makefile
57 ++++ iproute2-5.12.0/bridge/Makefile
58 +@@ -2,6 +2,7 @@
59 + BROBJ = bridge.o fdb.o monitor.o link.o mdb.o vlan.o
60 +
61 + include ../config.mk
62 ++include ../config.include
63 +
64 + all: bridge
65 +
66 +--- iproute2-5.12.0/config.include
67 ++++ iproute2-5.12.0/config.include
68 +@@ -0,0 +1,32 @@
69 ++# We can only modify CFLAGS/LDLIBS after all the config options are known.
70 ++ifeq ($(IP_CONFIG_SETNS),y)
71 ++ CFLAGS += $(IP_CONFIG_SETNS_CFLAGS)
72 ++endif
73 ++ifeq ($(HAVE_ELF),y)
74 ++ CFLAGS += $(HAVE_ELF_CFLAGS)
75 ++ LDLIBS += $(HAVE_ELF_LDLIBS)
76 ++endif
77 ++ifeq ($(HAVE_SELINUX),y)
78 ++ CFLAGS += $(HAVE_SELINUX_CFLAGS)
79 ++ LDLIBS += $(HAVE_SELINUX_LDLIBS)
80 ++endif
81 ++ifeq ($(HAVE_MNL),y)
82 ++ CFLAGS += $(HAVE_MNL_CFLAGS)
83 ++ LDLIBS += $(HAVE_MNL_LDLIBS)
84 ++endif
85 ++ifeq ($(HAVE_CAP),y)
86 ++ CFLAGS += $(HAVE_CAP_CFLAGS)
87 ++ LDLIBS += $(HAVE_CAP_LDLIBS)
88 ++endif
89 ++ifeq ($(HAVE_LIBBSD),y)
90 ++ CFLAGS += $(HAVE_LIBBSD_CFLAGS)
91 ++ LDLIBS += $(HAVE_LIBBSD_LDLIBS)
92 ++else
93 ++ CFLAGS += -DNEED_STRLCPY
94 ++endif
95 ++
96 ++# Rules can only be declared after all variables in them are known.
97 ++%.o: %.c
98 ++ $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c -o $@ $<
99 ++
100 ++# vim: ft=make:
101 +--- iproute2-5.12.0/configure
102 ++++ iproute2-5.12.0/configure
103 +@@ -195,7 +195,7 @@
104 + if $CC -I$INCLUDE -o $TMPDIR/setnstest $TMPDIR/setnstest.c >/dev/null 2>&1; then
105 + echo "IP_CONFIG_SETNS:=y" >>$CONFIG
106 + echo "yes"
107 +- echo "CFLAGS += -DHAVE_SETNS" >>$CONFIG
108 ++ echo "IP_CONFIG_SETNS_CFLAGS += -DHAVE_SETNS" >>$CONFIG
109 + else
110 + echo "no"
111 + fi
112 +@@ -238,8 +238,8 @@
113 + echo "HAVE_ELF:=y" >>$CONFIG
114 + echo "yes"
115 +
116 +- echo 'CFLAGS += -DHAVE_ELF' `${PKG_CONFIG} libelf --cflags` >> $CONFIG
117 +- echo 'LDLIBS += ' `${PKG_CONFIG} libelf --libs` >>$CONFIG
118 ++ echo 'HAVE_ELF_CFLAGS += -DHAVE_ELF' `${PKG_CONFIG} libelf --cflags` >> $CONFIG
119 ++ echo 'HAVE_ELF_LDLIBS += ' `${PKG_CONFIG} libelf --libs` >>$CONFIG
120 + else
121 + echo "no"
122 + fi
123 +@@ -357,8 +357,8 @@
124 + echo "HAVE_SELINUX:=y" >>$CONFIG
125 + echo "yes"
126 +
127 +- echo 'LDLIBS +=' `${PKG_CONFIG} --libs libselinux` >>$CONFIG
128 +- echo 'CFLAGS += -DHAVE_SELINUX' `${PKG_CONFIG} --cflags libselinux` >>$CONFIG
129 ++ echo 'HAVE_SELINUX_CFLAGS += -DHAVE_SELINUX' `${PKG_CONFIG} --cflags libselinux` >>$CONFIG
130 ++ echo 'HAVE_SELINUX_LDLIBS +=' `${PKG_CONFIG} --libs libselinux` >>$CONFIG
131 + else
132 + echo "no"
133 + fi
134 +@@ -370,8 +370,8 @@
135 + echo "HAVE_MNL:=y" >>$CONFIG
136 + echo "yes"
137 +
138 +- echo 'CFLAGS += -DHAVE_LIBMNL' `${PKG_CONFIG} libmnl --cflags` >>$CONFIG
139 +- echo 'LDLIBS +=' `${PKG_CONFIG} libmnl --libs` >> $CONFIG
140 ++ echo 'HAVE_MNL_CFLAGS += -DHAVE_LIBMNL' `${PKG_CONFIG} libmnl --cflags` >>$CONFIG
141 ++ echo 'HAVE_MNL_LDLIBS +=' `${PKG_CONFIG} libmnl --libs` >> $CONFIG
142 + else
143 + echo "no"
144 + fi
145 +@@ -411,8 +411,8 @@
146 + echo "no"
147 + else
148 + if ${PKG_CONFIG} libbsd --exists; then
149 +- echo 'CFLAGS += -DHAVE_LIBBSD' `${PKG_CONFIG} libbsd --cflags` >>$CONFIG
150 +- echo 'LDLIBS +=' `${PKG_CONFIG} libbsd --libs` >> $CONFIG
151 ++ echo 'HAVE_LIBBSD_CFLAGS += -DHAVE_LIBBSD' `${PKG_CONFIG} libbsd --cflags` >>$CONFIG
152 ++ echo 'HAVE_LIBBSD_LDLIBS +=' `${PKG_CONFIG} libbsd --libs` >> $CONFIG
153 + echo "no"
154 + else
155 + echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
156 +@@ -428,8 +428,8 @@
157 + echo "HAVE_CAP:=y" >>$CONFIG
158 + echo "yes"
159 +
160 +- echo 'CFLAGS += -DHAVE_LIBCAP' `${PKG_CONFIG} libcap --cflags` >>$CONFIG
161 +- echo 'LDLIBS +=' `${PKG_CONFIG} libcap --libs` >> $CONFIG
162 ++ echo 'HAVE_CAP_CFLAGS += -DHAVE_LIBCAP' `${PKG_CONFIG} libcap --cflags` >>$CONFIG
163 ++ echo 'HAVE_CAP_LDLIBS +=' `${PKG_CONFIG} libcap --libs` >> $CONFIG
164 + else
165 + echo "no"
166 + fi
167 +@@ -512,7 +512,3 @@
168 +
169 + echo -n "libcap support: "
170 + check_cap
171 +-
172 +-echo >> $CONFIG
173 +-echo "%.o: %.c" >> $CONFIG
174 +-echo ' $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c -o $@ $<' >> $CONFIG
175 +--- iproute2-5.12.0/dcb/Makefile
176 ++++ iproute2-5.12.0/dcb/Makefile
177 +@@ -1,5 +1,6 @@
178 + # SPDX-License-Identifier: GPL-2.0
179 + include ../config.mk
180 ++include ../config.include
181 +
182 + TARGETS :=
183 +
184 +--- iproute2-5.12.0/devlink/Makefile
185 ++++ iproute2-5.12.0/devlink/Makefile
186 +@@ -1,5 +1,6 @@
187 + # SPDX-License-Identifier: GPL-2.0
188 + include ../config.mk
189 ++include ../config.include
190 +
191 + TARGETS :=
192 +
193 +--- iproute2-5.12.0/genl/Makefile
194 ++++ iproute2-5.12.0/genl/Makefile
195 +@@ -2,6 +2,7 @@
196 + GENLOBJ=genl.o
197 +
198 + include ../config.mk
199 ++include ../config.include
200 + SHARED_LIBS ?= y
201 +
202 + CFLAGS += -fno-strict-aliasing
203 +--- iproute2-5.12.0/ip/Makefile
204 ++++ iproute2-5.12.0/ip/Makefile
205 +@@ -16,6 +16,7 @@
206 + RTMONOBJ=rtmon.o
207 +
208 + include ../config.mk
209 ++include ../config.include
210 +
211 + ALLOBJ=$(IPOBJ) $(RTMONOBJ)
212 + SCRIPTS=ifcfg rtpr routel routef
213 +--- iproute2-5.12.0/lib/Makefile
214 ++++ iproute2-5.12.0/lib/Makefile
215 +@@ -1,5 +1,6 @@
216 + # SPDX-License-Identifier: GPL-2.0
217 + include ../config.mk
218 ++include ../config.include
219 +
220 + CFLAGS += -fPIC
221 +
222 +--- iproute2-5.12.0/misc/Makefile
223 ++++ iproute2-5.12.0/misc/Makefile
224 +@@ -5,6 +5,7 @@
225 + TARGETS=ss nstat ifstat rtacct lnstat
226 +
227 + include ../config.mk
228 ++include ../config.include
229 +
230 + ifeq ($(HAVE_BERKELEY_DB),y)
231 + TARGETS += arpd
232 +--- iproute2-5.12.0/netem/Makefile
233 ++++ iproute2-5.12.0/netem/Makefile
234 +@@ -1,5 +1,6 @@
235 + # SPDX-License-Identifier: GPL-2.0
236 + include ../config.mk
237 ++include ../config.include
238 +
239 + DISTGEN = maketable normal pareto paretonormal
240 + DISTDATA = normal.dist pareto.dist paretonormal.dist experimental.dist
241 +--- iproute2-5.12.0/rdma/Makefile
242 ++++ iproute2-5.12.0/rdma/Makefile
243 +@@ -1,5 +1,6 @@
244 + # SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
245 + include ../config.mk
246 ++include ../config.include
247 +
248 + TARGETS :=
249 +
250 +--- iproute2-5.12.0/tc/Makefile
251 ++++ iproute2-5.12.0/tc/Makefile
252 +@@ -4,6 +4,7 @@
253 + emp_ematch.tab.o emp_ematch.lex.o
254 +
255 + include ../config.mk
256 ++include ../config.include
257 +
258 + SHARED_LIBS ?= y
259 +
260 +--- iproute2-5.12.0/tipc/Makefile
261 ++++ iproute2-5.12.0/tipc/Makefile
262 +@@ -1,5 +1,6 @@
263 + # SPDX-License-Identifier: GPL-2.0
264 + include ../config.mk
265 ++include ../config.include
266 +
267 + TARGETS :=
268 +
269 +--- iproute2-5.12.0/vdpa/Makefile
270 ++++ iproute2-5.12.0/vdpa/Makefile
271 +@@ -1,5 +1,6 @@
272 + # SPDX-License-Identifier: GPL-2.0
273 + include ../config.mk
274 ++include ../config.include
275 +
276 + TARGETS :=
277 +
278
279 diff --git a/sys-apps/iproute2/iproute2-5.12.0.ebuild b/sys-apps/iproute2/iproute2-5.12.0.ebuild
280 new file mode 100644
281 index 00000000000..475fe98775b
282 --- /dev/null
283 +++ b/sys-apps/iproute2/iproute2-5.12.0.ebuild
284 @@ -0,0 +1,170 @@
285 +# Copyright 1999-2021 Gentoo Authors
286 +# Distributed under the terms of the GNU General Public License v2
287 +
288 +EAPI=7
289 +
290 +inherit toolchain-funcs flag-o-matic multilib
291 +
292 +if [[ ${PV} == "9999" ]] ; then
293 + EGIT_REPO_URI="https://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git"
294 + inherit git-r3
295 +else
296 + SRC_URI="https://www.kernel.org/pub/linux/utils/net/${PN}/${P}.tar.xz"
297 + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
298 +fi
299 +
300 +DESCRIPTION="kernel routing and traffic control utilities"
301 +HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2"
302 +
303 +LICENSE="GPL-2"
304 +SLOT="0"
305 +IUSE="atm berkdb bpf caps elf +iptables ipv6 libbsd minimal selinux"
306 +
307 +# We could make libmnl optional, but it's tiny, so eh
308 +RDEPEND="
309 + !net-misc/arpd
310 + !minimal? ( net-libs/libmnl )
311 + atm? ( net-dialup/linux-atm )
312 + berkdb? ( sys-libs/db:= )
313 + bpf? ( dev-libs/libbpf )
314 + caps? ( sys-libs/libcap )
315 + elf? ( virtual/libelf )
316 + iptables? ( >=net-firewall/iptables-1.4.20:= )
317 + libbsd? ( dev-libs/libbsd )
318 + selinux? ( sys-libs/libselinux )
319 +"
320 +# We require newer linux-headers for ipset support #549948 and some defines #553876
321 +DEPEND="
322 + ${RDEPEND}
323 + >=sys-kernel/linux-headers-3.16
324 +"
325 +BDEPEND="
326 + app-arch/xz-utils
327 + >=sys-devel/bison-2.4
328 + sys-devel/flex
329 + virtual/pkgconfig
330 +"
331 +
332 +PATCHES=(
333 + "${FILESDIR}"/${PN}-3.1.0-mtu.patch #291907
334 + "${FILESDIR}"/${PN}-5.12.0-configure-nomagic.patch # bug 643722
335 + #"${FILESDIR}"/${PN}-5.1.0-portability.patch
336 + "${FILESDIR}"/${PN}-5.7.0-mix-signal.h-include.patch
337 +)
338 +
339 +src_prepare() {
340 + if ! use ipv6 ; then
341 + PATCHES+=(
342 + "${FILESDIR}"/${PN}-4.20.0-no-ipv6.patch #326849
343 + )
344 + fi
345 +
346 + default
347 +
348 + # Fix version if necessary
349 + local versionfile="include/version.h"
350 + if [[ "${PV}" != 9999 ]] && ! grep -Fq "${PV}" ${versionfile} ; then
351 + einfo "Fixing version string"
352 + sed "s@\"[[:digit:]\.]\+\"@\"${PV}\"@" \
353 + -i ${versionfile} || die
354 + fi
355 +
356 + # echo -n is not POSIX compliant
357 + sed 's@echo -n@printf@' -i configure || die
358 +
359 + sed -i \
360 + -e '/^CC :\?=/d' \
361 + -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \
362 + -e "s|-O2|${CFLAGS} ${CPPFLAGS}|" \
363 + -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \
364 + -e "/^DBM_INCLUDE/s:=.*:=${T}:" \
365 + Makefile || die
366 +
367 + # build against system headers
368 + rm -r include/netinet || die #include/linux include/ip{,6}tables{,_common}.h include/libiptc
369 + sed -i 's:TCPI_OPT_ECN_SEEN:16:' misc/ss.c || die
370 +
371 + if use minimal ; then
372 + sed -i -e '/^SUBDIRS=/s:=.*:=lib tc ip:' Makefile || die
373 + fi
374 +}
375 +
376 +src_configure() {
377 + tc-export AR CC PKG_CONFIG
378 +
379 + # This sure is ugly. Should probably move into toolchain-funcs at some point.
380 + local setns
381 + pushd "${T}" >/dev/null
382 + printf '#include <sched.h>\nint main(){return setns(0, 0);}\n' > test.c
383 + ${CC} ${CFLAGS} ${CPPFLAGS} -D_GNU_SOURCE ${LDFLAGS} test.c >&/dev/null && setns=y || setns=n
384 + echo 'int main(){return 0;}' > test.c
385 + ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null || sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile
386 + popd >/dev/null
387 +
388 + # run "configure" script first which will create "config.mk"...
389 + LIBBPF_FORCE="$(usex bpf on off)" \
390 + econf
391 +
392 + # ...now switch on/off requested features via USE flags
393 + # this is only useful if the test did not set other things, per bug #643722
394 + cat <<-EOF >> config.mk
395 + TC_CONFIG_ATM := $(usex atm y n)
396 + TC_CONFIG_XT := $(usex iptables y n)
397 + TC_CONFIG_NO_XT := $(usex iptables n y)
398 + # We've locked in recent enough kernel headers #549948
399 + TC_CONFIG_IPSET := y
400 + HAVE_BERKELEY_DB := $(usex berkdb y n)
401 + HAVE_CAP := $(usex caps y n)
402 + HAVE_MNL := $(usex minimal n y)
403 + HAVE_ELF := $(usex elf y n)
404 + HAVE_SELINUX := $(usex selinux y n)
405 + IP_CONFIG_SETNS := ${setns}
406 + # Use correct iptables dir, #144265 #293709
407 + IPT_LIB_DIR := $(use iptables && ${PKG_CONFIG} xtables --variable=xtlibdir)
408 + HAVE_LIBBSD := $(usex libbsd y n)
409 + EOF
410 +}
411 +
412 +src_compile() {
413 + emake V=1 NETNS_RUN_DIR=/run/netns
414 +}
415 +
416 +src_install() {
417 + if use minimal ; then
418 + into /
419 + dosbin tc/tc
420 + dobin ip/ip
421 + return 0
422 + fi
423 +
424 + emake \
425 + DESTDIR="${D}" \
426 + PREFIX="${EPREFIX}/usr" \
427 + LIBDIR="${EPREFIX}"/$(get_libdir) \
428 + SBINDIR="${EPREFIX}"/sbin \
429 + CONFDIR="${EPREFIX}"/etc/iproute2 \
430 + DOCDIR="${EPREFIX}"/usr/share/doc/${PF} \
431 + MANDIR="${EPREFIX}"/usr/share/man \
432 + ARPDDIR="${EPREFIX}"/var/lib/arpd \
433 + install
434 +
435 + dodir /bin
436 + mv "${ED}"/{s,}bin/ip || die #330115
437 +
438 + dolib.a lib/libnetlink.a
439 + insinto /usr/include
440 + doins include/libnetlink.h
441 + # This local header pulls in a lot of linux headers it
442 + # doesn't directly need. Delete this header that requires
443 + # linux-headers-3.8 until that goes stable. #467716
444 + sed -i '/linux\/netconf.h/d' "${ED}"/usr/include/libnetlink.h || die
445 +
446 + if use berkdb ; then
447 + keepdir /var/lib/arpd
448 + # bug 47482, arpd doesn't need to be in /sbin
449 + dodir /usr/bin
450 + mv "${ED}"/sbin/arpd "${ED}"/usr/bin/ || die
451 + elif [[ -d "${ED}"/var/lib/arpd ]]; then
452 + rmdir --ignore-fail-on-non-empty -p "${ED}"/var/lib/arpd || die
453 + fi
454 +}