Gentoo Archives: gentoo-commits

From: "Samuli Suominen (ssuominen)" <ssuominen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-fs/udev: udev-208-r1.ebuild ChangeLog
Date: Mon, 02 Jun 2014 13:32:30
Message-Id: 20140602133227.3FA8C2004E@flycatcher.gentoo.org
1 ssuominen 14/06/02 13:32:26
2
3 Modified: ChangeLog
4 Added: udev-208-r1.ebuild
5 Log:
6 Backport building of multilib libgudev-1.0 to =208-r1 from >=212-r1 because only 208 works with Linux 2.6.32.x series since CONFIG_FHANDLE=y was introduced in Linux 2.6.39.
7
8 (Portage version: 2.2.10/cvs/Linux x86_64, RepoMan options: --force, signed Manifest commit with key 4868F14D)
9
10 Revision Changes Path
11 1.1042 sys-fs/udev/ChangeLog
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/ChangeLog?rev=1.1042&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/ChangeLog?rev=1.1042&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/ChangeLog?r1=1.1041&r2=1.1042
16
17 Index: ChangeLog
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v
20 retrieving revision 1.1041
21 retrieving revision 1.1042
22 diff -u -r1.1041 -r1.1042
23 --- ChangeLog 1 Jun 2014 18:33:31 -0000 1.1041
24 +++ ChangeLog 2 Jun 2014 13:32:26 -0000 1.1042
25 @@ -1,6 +1,13 @@
26 # ChangeLog for sys-fs/udev
27 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
28 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.1041 2014/06/01 18:33:31 zlogene Exp $
29 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.1042 2014/06/02 13:32:26 ssuominen Exp $
30 +
31 +*udev-208-r1 (02 Jun 2014)
32 +
33 + 02 Jun 2014; Samuli Suominen <ssuominen@g.o> +udev-208-r1.ebuild:
34 + Backport building of multilib libgudev-1.0 to =208-r1 from >=212-r1 because
35 + only 208 works with Linux 2.6.32.x series since CONFIG_FHANDLE=y was
36 + introduced in Linux 2.6.39.
37
38 01 Jun 2014; Mikle Kolyada <zlogene@g.o> udev-212-r1.ebuild:
39 ia64 stable wrt big #505962
40
41
42
43 1.1 sys-fs/udev/udev-208-r1.ebuild
44
45 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/udev-208-r1.ebuild?rev=1.1&view=markup
46 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/udev-208-r1.ebuild?rev=1.1&content-type=text/plain
47
48 Index: udev-208-r1.ebuild
49 ===================================================================
50 # Copyright 1999-2014 Gentoo Foundation
51 # Distributed under the terms of the GNU General Public License v2
52 # $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/udev-208-r1.ebuild,v 1.1 2014/06/02 13:32:26 ssuominen Exp $
53
54 EAPI=5
55
56 inherit autotools eutils linux-info multilib toolchain-funcs versionator multilib-minimal
57
58 if [[ ${PV} = 9999* ]]; then
59 EGIT_REPO_URI="git://anongit.freedesktop.org/systemd/systemd"
60 inherit git-2
61 else
62 patchset=1
63 SRC_URI="http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz -> systemd-${PV}-r1.tar.xz"
64 if [[ -n "${patchset}" ]]; then
65 SRC_URI="${SRC_URI}
66 http://dev.gentoo.org/~ssuominen/${P}-patches-${patchset}.tar.xz
67 http://dev.gentoo.org/~williamh/dist/${P}-patches-${patchset}.tar.xz"
68 fi
69 KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86"
70 fi
71
72 DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
73 HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd"
74
75 LICENSE="LGPL-2.1 MIT GPL-2"
76 SLOT="0"
77 IUSE="acl doc +firmware-loader gudev introspection +kmod selinux static-libs"
78
79 RESTRICT="test"
80
81 COMMON_DEPEND=">=sys-apps/util-linux-2.20
82 acl? ( sys-apps/acl )
83 gudev? ( >=dev-libs/glib-2.22[${MULTILIB_USEDEP}] )
84 introspection? ( >=dev-libs/gobject-introspection-1.31.1 )
85 kmod? ( >=sys-apps/kmod-14 )
86 selinux? ( >=sys-libs/libselinux-2.1.9 )
87 !<sys-libs/glibc-2.11
88 !sys-apps/gentoo-systemd-integration
89 !sys-apps/systemd
90 abi_x86_32? (
91 !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
92 !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
93 )"
94 DEPEND="${COMMON_DEPEND}
95 dev-util/gperf
96 >=sys-devel/make-3.82-r4
97 virtual/os-headers
98 virtual/pkgconfig
99 !<sys-kernel/linux-headers-2.6.32
100 doc? ( >=dev-util/gtk-doc-1.18 )"
101 if [[ ${PV} = 9999* ]]; then
102 DEPEND="${DEPEND}
103 app-text/docbook-xml-dtd:4.2
104 app-text/docbook-xsl-stylesheets
105 dev-libs/libxslt
106 >=dev-util/intltool-0.50"
107 fi
108 RDEPEND="${COMMON_DEPEND}
109 !sys-apps/coldplug
110 !<sys-fs/lvm2-2.02.97-r1
111 !sys-fs/device-mapper
112 !<sys-fs/udev-init-scripts-22
113 !<sys-kernel/dracut-017-r1
114 !<sys-kernel/genkernel-3.4.25
115 !<sec-policy/selinux-base-2.20120725-r10"
116 PDEPEND=">=sys-apps/hwids-20130717-r1[udev]
117 >=sys-fs/udev-init-scripts-25"
118
119 S=${WORKDIR}/systemd-${PV}
120
121 # The multilib-build.eclass doesn't handle situation where the installed headers
122 # are different in ABIs. In this case, we install libgudev headers in native
123 # ABI but not for non-native ABI.
124 multilib_check_headers() { :; }
125
126 check_default_rules() {
127 # Make sure there are no sudden changes to upstream rules file
128 # (more for my own needs than anything else ...)
129 local udev_rules_md5=7d3733faee4203fd7c75c3f3c0d55741
130 MD5=$(md5sum < "${S}"/rules/50-udev-default.rules)
131 MD5=${MD5/ -/}
132 if [[ ${MD5} != ${udev_rules_md5} ]]; then
133 eerror "50-udev-default.rules has been updated, please validate!"
134 eerror "md5sum: ${MD5}"
135 die "50-udev-default.rules has been updated, please validate!"
136 fi
137 }
138
139 pkg_setup() {
140 CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL"
141 linux-info_pkg_setup
142
143 # Based on README from tarball:
144 local MINKV=3.0
145 # These arch's have the mandatory accept4() function support in Linux 2.6.32.61, see:
146 # $ grep -r define.*accept4 linux-2.6.32.61/*
147 if use amd64 || use ia64 || use mips || use sparc || use x86; then
148 MINKV=2.6.32
149 fi
150
151 if kernel_is -lt ${MINKV//./ }; then
152 eerror "Your running kernel is too old to run this version of ${P}"
153 eerror "You need to upgrade kernel at least to ${MINKV}"
154 fi
155 }
156
157 src_prepare() {
158 if ! [[ ${PV} = 9999* ]]; then
159 # secure_getenv() disable for non-glibc systems wrt bug #443030
160 if ! [[ $(grep -r secure_getenv * | wc -l) -eq 20 ]]; then
161 eerror "The line count for secure_getenv() failed, see bug #443030"
162 die
163 fi
164 fi
165
166 # backport some patches
167 if [[ -n "${patchset}" ]]; then
168 EPATCH_SUFFIX=patch EPATCH_FORCE=yes epatch
169 fi
170
171 # These are missing from upstream 50-udev-default.rules
172 cat <<-EOF > "${T}"/40-gentoo.rules
173 # Gentoo specific usb group
174 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="usb"
175 # Keep this for Linux 2.6.32 kernels with accept4() support like .60 wrt #457868
176 SUBSYSTEM=="mem", KERNEL=="null|zero|full|random|urandom", MODE="0666"
177 EOF
178
179 # Create link to systemd-udevd.8 here to avoid parallel build problem and
180 # while at it, create convinience link to `man 8 udevd` even if upstream
181 # doesn't do that anymore
182 local man
183 for man in udevd systemd-udevd; do
184 echo '.so systemd-udevd.service.8' > "${T}"/${man}.8
185 done
186
187 # Remove requirements for gettext and intltool wrt bug #443028
188 if ! has_version dev-util/intltool && ! [[ ${PV} = 9999* ]]; then
189 sed -i \
190 -e '/INTLTOOL_APPLIED_VERSION=/s:=.*:=0.40.0:' \
191 -e '/XML::Parser perl module is required for intltool/s|^|:|' \
192 configure || die
193 eval export INTLTOOL_{EXTRACT,MERGE,UPDATE}=/bin/true
194 eval export {MSG{FMT,MERGE},XGETTEXT}=/bin/true
195 fi
196
197 # apply user patches
198 epatch_user
199
200 # compile with older versions of gcc #451110
201 version_is_at_least 4.6 $(gcc-version) || \
202 sed -i 's:static_assert:alsdjflkasjdfa:' src/shared/macro.h
203
204 # change rules back to group uucp instead of dialout for now wrt #454556
205 sed -i -e 's/GROUP="dialout"/GROUP="uucp"/' rules/*.rules || die
206
207 if [[ ! -e configure ]]; then
208 if use doc; then
209 gtkdocize --docdir docs || die "gtkdocize failed"
210 else
211 echo 'EXTRA_DIST =' > docs/gtk-doc.make
212 fi
213 eautoreconf
214 else
215 check_default_rules
216 elibtoolize
217 fi
218
219 # Restore possibility of running --enable-static wrt #472608
220 sed -i \
221 -e '/--enable-static is not supported by systemd/s:as_fn_error:echo:' \
222 configure || die
223
224 if ! use elibc_glibc; then #443030
225 echo '#define secure_getenv(x) NULL' >> config.h.in
226 sed -i -e '/error.*secure_getenv/s:.*:#define secure_getenv(x) NULL:' src/shared/missing.h || die
227 fi
228 }
229
230 multilib_src_configure() {
231 tc-export CC #463846
232
233 local econf_args
234 econf_args=(
235 ac_cv_search_cap_init=
236 ac_cv_header_sys_capability_h=yes
237 DBUS_CFLAGS=' '
238 DBUS_LIBS=' '
239 --docdir=/usr/share/doc/${PF}
240 --libdir=/usr/$(get_libdir)
241 --with-html-dir=/usr/share/doc/${PF}/html
242 --with-rootprefix=
243 --without-python
244 --disable-python-devel
245 --disable-audit
246 --disable-coredump
247 --disable-hostnamed
248 --disable-ima
249 --disable-libcryptsetup
250 --disable-localed
251 --disable-logind
252 --disable-myhostname
253 --disable-nls
254 --disable-pam
255 --disable-quotacheck
256 --disable-readahead
257 $(use_enable gudev)
258 --enable-split-usr
259 --disable-tcpwrap
260 --disable-timedated
261 --disable-xz
262 --disable-polkit
263 --disable-tmpfiles
264 --disable-machined
265 --disable-xattr
266 )
267 # Use pregenerated copies when possible wrt #480924
268 if ! [[ ${PV} = 9999* ]]; then
269 econf_args+=(
270 --disable-manpages
271 )
272 fi
273 if multilib_is_native_abi; then
274 econf_args+=(
275 --with-rootlibdir=/$(get_libdir)
276 $(use_enable acl)
277 $(use_enable doc gtk-doc)
278 $(use_enable kmod)
279 $(use_enable selinux)
280 $(use_enable static-libs static)
281 --enable-introspection=$(usex introspection)
282 )
283 else
284 econf_args+=(
285 --with-rootlibdir=/usr/$(get_libdir)
286 --disable-acl
287 --disable-gtk-doc
288 --disable-kmod
289 --disable-selinux
290 --disable-static
291 --disable-manpages
292 --enable-introspection=no
293 )
294 fi
295 use firmware-loader && econf_args+=( --with-firmware-path="/lib/firmware/updates:/lib/firmware" )
296
297 ECONF_SOURCE=${S} econf "${econf_args[@]}"
298 }
299
300 multilib_src_compile() {
301 echo 'BUILT_SOURCES: $(BUILT_SOURCES)' > "${T}"/Makefile.extra
302 emake -f Makefile -f "${T}"/Makefile.extra BUILT_SOURCES
303
304 # Most of the parallel build problems were solved by >=sys-devel/make-3.82-r4,
305 # but not everything -- separate building of the binaries as a workaround,
306 # which will force internal libraries required for the helpers to be built
307 # early enough, like eg. libsystemd-shared.la
308 if multilib_is_native_abi; then
309 local lib_targets=( libudev.la )
310 use gudev && lib_targets+=( libgudev-1.0.la )
311 emake "${lib_targets[@]}"
312
313 local exec_targets=(
314 systemd-udevd
315 udevadm
316 )
317 emake "${exec_targets[@]}"
318
319 local helper_targets=(
320 ata_id
321 cdrom_id
322 collect
323 scsi_id
324 v4l_id
325 accelerometer
326 mtd_probe
327 )
328 emake "${helper_targets[@]}"
329
330 if [[ ${PV} = 9999* ]]; then
331 local man_targets=(
332 man/udev.7
333 man/udevadm.8
334 man/systemd-udevd.service.8
335 )
336 emake "${man_targets[@]}"
337 fi
338
339 if use doc; then
340 emake -C docs/libudev
341 use gudev && emake -C docs/gudev
342 fi
343 else
344 local lib_targets=( libudev.la )
345 use gudev && lib_targets+=( libgudev-1.0.la )
346 emake "${lib_targets[@]}"
347 fi
348 }
349
350 multilib_src_install() {
351 if multilib_is_native_abi; then
352 local lib_LTLIBRARIES="libudev.la" \
353 pkgconfiglib_DATA="src/libudev/libudev.pc"
354
355 local targets=(
356 install-libLTLIBRARIES
357 install-includeHEADERS
358 install-libgudev_includeHEADERS
359 install-rootbinPROGRAMS
360 install-rootlibexecPROGRAMS
361 install-udevlibexecPROGRAMS
362 install-dist_udevconfDATA
363 install-dist_udevrulesDATA
364 install-girDATA
365 install-pkgconfiglibDATA
366 install-sharepkgconfigDATA
367 install-typelibsDATA
368 install-dist_docDATA
369 libudev-install-hook
370 install-directories-hook
371 install-dist_bashcompletionDATA
372 )
373
374 if use gudev; then
375 lib_LTLIBRARIES+=" libgudev-1.0.la"
376 pkgconfiglib_DATA+=" src/gudev/gudev-1.0.pc"
377 fi
378
379 # add final values of variables:
380 targets+=(
381 rootlibexec_PROGRAMS=systemd-udevd
382 rootbin_PROGRAMS=udevadm
383 lib_LTLIBRARIES="${lib_LTLIBRARIES}"
384 pkgconfiglib_DATA="${pkgconfiglib_DATA}"
385 INSTALL_DIRS='$(sysconfdir)/udev/rules.d \
386 $(sysconfdir)/udev/hwdb.d'
387 dist_bashcompletion_DATA="shell-completion/bash/udevadm"
388 )
389 emake -j1 DESTDIR="${D}" "${targets[@]}"
390
391 if use doc; then
392 emake -C docs/libudev DESTDIR="${D}" install
393 use gudev && emake -C docs/gudev DESTDIR="${D}" install
394 fi
395
396 # install udevadm compatibility symlink
397 dosym {../bin,sbin}/udevadm
398
399 # install udevd to /sbin and remove empty and redudant directory
400 # /lib/systemd because systemd is installed to /usr wrt #462750
401 mv "${D}"/{lib/systemd/systemd-,sbin/}udevd || die
402 rm -r "${D}"/lib/systemd
403
404 if [[ ${PV} = 9999* ]]; then
405 doman man/{udev.7,udevadm.8,systemd-udevd.service.8}
406 else
407 doman "${S}"/man/{udev.7,udevadm.8,systemd-udevd.service.8}
408 fi
409 else
410 local lib_LTLIBRARIES="libudev.la" \
411 pkgconfiglib_DATA="src/libudev/libudev.pc" \
412 include_HEADERS="src/libudev/libudev.h"
413
414 local targets=(
415 install-libLTLIBRARIES
416 install-includeHEADERS
417 install-pkgconfiglibDATA
418 )
419
420 if use gudev; then
421 lib_LTLIBRARIES+=" libgudev-1.0.la"
422 pkgconfiglib_DATA+=" src/gudev/gudev-1.0.pc"
423 fi
424
425 targets+=(
426 lib_LTLIBRARIES="${lib_LTLIBRARIES}"
427 pkgconfiglib_DATA="${pkgconfiglib_DATA}"
428 include_HEADERS="${include_HEADERS}"
429 )
430 emake -j1 DESTDIR="${D}" "${targets[@]}"
431 fi
432 }
433
434 multilib_src_install_all() {
435 dodoc TODO
436
437 prune_libtool_files --all
438 rm -f \
439 "${D}"/lib/udev/rules.d/99-systemd.rules \
440 "${D}"/usr/share/doc/${PF}/LICENSE.*
441
442 # see src_prepare() for content of these files
443 insinto /lib/udev/rules.d
444 doins "${T}"/40-gentoo.rules
445 doman "${T}"/{systemd-,}udevd.8
446 }
447
448 pkg_preinst() {
449 local htmldir
450 for htmldir in gudev libudev; do
451 if [[ -d ${ROOT}usr/share/gtk-doc/html/${htmldir} ]]; then
452 rm -rf "${ROOT}"usr/share/gtk-doc/html/${htmldir}
453 fi
454 if [[ -d ${D}/usr/share/doc/${PF}/html/${htmldir} ]]; then
455 dosym ../../doc/${PF}/html/${htmldir} \
456 /usr/share/gtk-doc/html/${htmldir}
457 fi
458 done
459 }
460
461 pkg_postinst() {
462 mkdir -p "${ROOT}"run
463
464 # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
465 # So try to remove it here (will only work if empty).
466 rmdir "${ROOT}"dev/loop 2>/dev/null
467 if [[ -d ${ROOT}dev/loop ]]; then
468 ewarn "Please make sure your remove /dev/loop,"
469 ewarn "else losetup may be confused when looking for unused devices."
470 fi
471
472 # 64-device-mapper.rules is related to sys-fs/device-mapper which we block
473 # in favor of sys-fs/lvm2
474 old_dm_rules=${ROOT}etc/udev/rules.d/64-device-mapper.rules
475 if [[ -f ${old_dm_rules} ]]; then
476 rm -f "${old_dm_rules}"
477 einfo "Removed unneeded file ${old_dm_rules}"
478 fi
479
480 local fstab="${ROOT}"etc/fstab dev path fstype rest
481 while read -r dev path fstype rest; do
482 if [[ ${path} == /dev && ${fstype} != devtmpfs ]]; then
483 ewarn "You need to edit your /dev line in ${fstab} to have devtmpfs"
484 ewarn "filesystem. Otherwise udev won't be able to boot."
485 ewarn "See, http://bugs.gentoo.org/453186"
486 fi
487 done < "${fstab}"
488
489 if [[ -d ${ROOT}usr/lib/udev ]]; then
490 ewarn
491 ewarn "Please re-emerge all packages on your system which install"
492 ewarn "rules and helpers in /usr/lib/udev. They should now be in"
493 ewarn "/lib/udev."
494 ewarn
495 ewarn "One way to do this is to run the following command:"
496 ewarn "emerge -av1 \$(qfile -q -S -C /usr/lib/udev)"
497 ewarn "Note that qfile can be found in app-portage/portage-utils"
498 fi
499
500 local old_net_name="${ROOT}"etc/udev/rules.d/80-net-name-slot.rules
501 if [[ -f ${old_net_name} ]]; then
502 local old_net_sum=bebf4bd1b6b668e9ff34a3999aa6ff32
503 MD5=$(md5sum < "${old_net_name}")
504 MD5=${MD5/ -/}
505 if [[ ${MD5} == ${old_net_sum} ]]; then
506 ewarn "Removing unmodified file ${old_net_name} from old udev installation to enable"
507 ewarn "the new predictable network interface naming."
508 rm -f "${old_net_name}"
509 fi
510 fi
511
512 local old_cd_rules="${ROOT}"etc/udev/rules.d/70-persistent-cd.rules
513 local old_net_rules="${ROOT}"etc/udev/rules.d/70-persistent-net.rules
514 for old_rules in "${old_cd_rules}" "${old_net_rules}"; do
515 if [[ -f ${old_rules} ]]; then
516 ewarn
517 ewarn "File ${old_rules} is from old udev installation but if you still use it,"
518 ewarn "rename it to something else starting with 70- to silence this deprecation"
519 ewarn "warning."
520 fi
521 done
522
523 elog
524 elog "Starting from version >= 197 the new predictable network interface names are"
525 elog "used by default, see:"
526 elog "http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
527 elog "http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c"
528 elog
529 elog "Example command to get the information for the new interface name before booting"
530 elog "(replace <ifname> with, for example, eth0):"
531 elog "# udevadm test-builtin net_id /sys/class/net/<ifname> 2> /dev/null"
532 elog
533 elog "You can use either kernel parameter \"net.ifnames=0\", create empty"
534 elog "file /etc/udev/rules.d/80-net-name-slot.rules, or symlink it to /dev/null"
535 elog "to disable the feature."
536
537 if has_version 'sys-apps/biosdevname'; then
538 ewarn
539 ewarn "You can replace the functionality of sys-apps/biosdevname which has been"
540 ewarn "detected to be installed with the new predictable network interface names."
541 fi
542
543 ewarn
544 ewarn "You need to restart udev as soon as possible to make the upgrade go"
545 ewarn "into effect."
546 ewarn "The method you use to do this depends on your init system."
547 if has_version 'sys-apps/openrc'; then
548 ewarn "For sys-apps/openrc users it is:"
549 ewarn "# /etc/init.d/udev --nodeps restart"
550 fi
551
552 elog
553 elog "For more information on udev on Gentoo, upgrading, writing udev rules, and"
554 elog "fixing known issues visit:"
555 elog "http://wiki.gentoo.org/wiki/Udev"
556 elog "http://wiki.gentoo.org/wiki/Udev/upgrade"
557
558 # Update hwdb database in case the format is changed by udev version.
559 if has_version 'sys-apps/hwids[udev]'; then
560 udevadm hwdb --update --root="${ROOT%/}"
561 # Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
562 if [[ -z ${REPLACING_VERSIONS} ]]; then
563 # http://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
564 if [[ ${ROOT} != "" ]] && [[ ${ROOT} != "/" ]]; then
565 return 0
566 fi
567 udevadm control --reload
568 fi
569 fi
570 }