Gentoo Archives: gentoo-commits

From: "Matthias Schwarzott (zzam)" <zzam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-fs/udev/files/136: udev.confd shell-compat-KV.sh udev-start.sh udev-dev-tarball.initd udev-mount.initd udev.initd udev-stop.sh shell-compat-addon.sh udev-postmount.initd
Date: Tue, 20 Jan 2009 13:05:44
Message-Id: E1LPGD3-0007VB-GY@stork.gentoo.org
1 zzam 09/01/20 13:00:01
2
3 Added: udev.confd shell-compat-KV.sh udev-start.sh
4 udev-dev-tarball.initd udev-mount.initd udev.initd
5 udev-stop.sh shell-compat-addon.sh
6 udev-postmount.initd
7 Log:
8 Version bumped. This raises kernel version for reliable udev usage to 2.6.20. Backported one patch. The upstream rule changes still need to be reviewed. For now keep using group uucp instead of dialout as suggested by upstream. Move init-script stuff into a subdir for FILESDIR. Small changes to shell-compat logic.
9 (Portage version: 2.1.6.6/cvs/Linux 2.6.27-gentoo-r1 i686)
10
11 Revision Changes Path
12 1.1 sys-fs/udev/files/136/udev.confd
13
14 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev.confd?rev=1.1&view=markup
15 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev.confd?rev=1.1&content-type=text/plain
16
17 Index: udev.confd
18 ===================================================================
19 # /etc/conf.d/udev: config file for udev
20
21 # We discourage to disable persistent-net!!
22 # this may lead to random interface naming
23
24 # Disable adding new rules for persistent-net
25 persistent_net_disable="no"
26
27 # Set to "yes" if you want to save /dev to a tarball on shutdown
28 # and restore it on startup. This is useful if you have a lot of
29 # custom device nodes that udev does not handle/know about.
30 #
31 # As this option is fragile, we recommend you
32 # to create your devices in /lib/udev/devices.
33 # These will be copied to /dev on boot.
34 #rc_device_tarball="NO"
35
36 # udev can trigger coldplug events which cause services to start and
37 # kernel modules to be loaded.
38 # Services are deferred to start in the boot runlevel.
39 # Set rc_coldplug="NO" if you don't want this.
40 # If you want module coldplugging but not coldplugging of services then you
41 # can disable service coldplugging in baselayout/openrc config files.
42 # The setting is named different in different versions.
43 # in /etc/rc.conf: rc_hotplug="!*" or
44 # in /etc/conf.d/rc: rc_plug_services="!*"
45 #rc_coldplug="YES"
46
47
48
49 1.1 sys-fs/udev/files/136/shell-compat-KV.sh
50
51 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/shell-compat-KV.sh?rev=1.1&view=markup
52 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/shell-compat-KV.sh?rev=1.1&content-type=text/plain
53
54 Index: shell-compat-KV.sh
55 ===================================================================
56 # Copyright 1999-2008 Gentoo Foundation
57 # Distributed under the terms of the GNU General Public License v2
58
59 # provides get_KV and KV_to_int as not all openrc-versions installed via ebuild have these
60
61 cmd_exist()
62 {
63 type "$1" >/dev/null 2>&1
64 }
65
66 # does exist in baselayout-1
67 # does not exist in openrc, but is added by openrc-ebuild since some time
68 if ! cmd_exist KV_to_int; then
69 KV_to_int() {
70 [ -z $1 ] && return 1
71
72 local x=${1%%-*}
73 local KV_MAJOR=${x%%.*}
74 x=${x#*.}
75 local KV_MINOR=${x%%.*}
76 x=${x#*.}
77 local KV_MICRO=${x%%.*}
78 local KV_int=$((${KV_MAJOR} * 65536 + ${KV_MINOR} * 256 + ${KV_MICRO} ))
79
80 # We make version 2.2.0 the minimum version we will handle as
81 # a sanity check ... if its less, we fail ...
82 [ "${KV_int}" -lt 131584 ] && return 1
83
84 echo "${KV_int}"
85 }
86 fi
87
88 # same as KV_to_int
89 if ! cmd_exist get_KV; then
90 _RC_GET_KV_CACHE=""
91 get_KV() {
92 [ -z "${_RC_GET_KV_CACHE}" ] \
93 && _RC_GET_KV_CACHE="$(uname -r)"
94
95 echo "$(KV_to_int "${_RC_GET_KV_CACHE}")"
96
97 return $?
98 }
99 fi
100
101
102
103
104 1.1 sys-fs/udev/files/136/udev-start.sh
105
106 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev-start.sh?rev=1.1&view=markup
107 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev-start.sh?rev=1.1&content-type=text/plain
108
109 Index: udev-start.sh
110 ===================================================================
111 # Copyright 1999-2007 Gentoo Foundation
112 # Distributed under the terms of the GNU General Public License v2
113
114 [ -e /etc/conf.d/udev ] && . /etc/conf.d/udev
115
116 . /lib/udev/shell-compat-addon.sh
117
118 compat_volume_nodes()
119 {
120 # Only do this for baselayout-1*
121 # This check is likely to get false positives due to some multilib stuff,
122 # but that should not matter, as this can only happen on old openrc versions
123 # no longer available as ebuilds.
124 if [ ! -e /lib/librc.so ]; then
125
126 # Create nodes that udev can't
127 [ -x /sbin/lvm ] && \
128 /sbin/lvm vgscan -P --mknodes --ignorelockingfailure &>/dev/null
129 # Running evms_activate on a LiveCD causes lots of headaches
130 [ -z "${CDBOOT}" -a -x /sbin/evms_activate ] && \
131 /sbin/evms_activate -q &>/dev/null
132 fi
133 }
134
135 start_initd()
136 {
137 (
138 . /etc/init.d/"$1"
139 _start
140 )
141 }
142
143 # mount tmpfs on /dev
144 start_initd udev-mount || exit 1
145
146 # Create a file so that our rc system knows it's still in sysinit.
147 # Existance means init scripts will not directly run.
148 # rc will remove the file when done with sysinit.
149 # this is no longer needed as of openrc-0.4.0
150 touch /dev/.rcsysinit
151
152 # load device tarball
153 start_initd udev-dev-tarball
154
155 # run udevd
156 start_initd udev || exit 1
157
158 compat_volume_nodes
159
160 # inject into boot runlevel
161 IN_HOTPLUG=1 /etc/init.d/udev-postmount start >/dev/null 2>&1
162
163 # udev started successfully
164 exit 0
165
166
167
168 1.1 sys-fs/udev/files/136/udev-dev-tarball.initd
169
170 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev-dev-tarball.initd?rev=1.1&view=markup
171 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev-dev-tarball.initd?rev=1.1&content-type=text/plain
172
173 Index: udev-dev-tarball.initd
174 ===================================================================
175 #!/sbin/runscript
176 # Copyright 1999-2008 Gentoo Foundation
177 # Distributed under the terms of the GNU General Public License v2
178
179 description="Maintain a tarball of not udev managed device nodes"
180 [ -e /etc/conf.d/udev ] && . /etc/conf.d/udev
181
182 rc_device_tarball=${rc_device_tarball:-${RC_DEVICE_TARBALL:-NO}}
183 device_tarball=/lib/udev/state/devices.tar.bz2
184
185 depend() {
186 if [ -f /etc/init.d/sysfs ]; then
187 need udev-mount
188 fi
189 }
190
191 start()
192 {
193 _start
194 }
195
196 _start() {
197 if yesno "${rc_device_tarball}" && \
198 [ -s "${device_tarball}" ]
199 then
200 ebegin "Populating /dev with saved device nodes"
201 tar -jxpf "${device_tarball}" -C /dev
202 eend $?
203 fi
204 }
205
206 stop() {
207 if [ -e /dev/.devfsd ] || [ ! -e /dev/.udev ] || [ ! -z "${CDBOOT}" ] || \
208 ! yesno "${rc_device_tarball}" || \
209 ! touch "${device_tarball}" 2>/dev/null
210 then
211 return 0
212 fi
213
214 ebegin "Saving device nodes"
215 # Handle our temp files
216 save_tmp_base=/tmp/udev.savedevices."$$"
217 devices_udev="${save_tmp_base}"/devices.udev
218 devices_real="${save_tmp_base}"/devices.real
219 devices_totar="${save_tmp_base}"/devices.totar
220 device_tmp_tarball="${save_tmp_base}"/devices
221
222 rm -rf "${save_tmp_base}"
223 mkdir "${save_tmp_base}"
224 touch "${devices_udev}" "${devices_real}" \
225 "${devices_totar}" "${device_tmp_tarball}"
226
227 if [ -f "${devices_udev}" -a -f "${devices_real}" -a \
228 -f "${devices_totar}" -a -f "${device_tmp_tarball}" ]
229 then
230 cd /dev
231 # Find all devices, but ignore .udev directory
232 find . -xdev -type b -or -type c -or -type l | \
233 cut -d/ -f2- | \
234 grep -v ^\\.udev >"${devices_real}"
235
236 # Figure out what udev created
237 udevadm info --export-db | sed -ne 's,^[SN]: \(.*\),\1,p' >"${devices_udev}"
238 # These ones we also do not want in there
239 for x in MAKEDEV core fd initctl pts shm stderr stdin stdout root; do
240 echo "${x}" >> "${devices_udev}"
241 done
242 if [ -d /lib/udev/devices ]; then
243 cd /lib/udev/devices
244 find . -xdev -type b -or -type c -or -type l | \
245 cut -d/ -f2- >> "${devices_udev}"
246 cd /dev
247 fi
248
249 fgrep -x -v -f "${devices_udev}" "${devices_real}" > "${devices_totar}"
250
251 # Now only tarball those not created by udev if we have any
252 if [ -s "${devices_totar}" ]; then
253 # we dont want to descend into mounted filesystems (e.g. devpts)
254 # looking up username may involve NIS/network
255 # and net may be down
256 tar --one-file-system --numeric-owner \
257 -jcpf "${device_tmp_tarball}" -T "${devices_totar}"
258 mv -f "${device_tmp_tarball}" "${device_tarball}"
259 else
260 rm -f "${device_tarball}"
261 fi
262 eend 0
263 else
264 eend 1 "Could not create temporary files!"
265 fi
266
267 rm -rf "${save_tmp_base}"
268 }
269
270
271
272
273 1.1 sys-fs/udev/files/136/udev-mount.initd
274
275 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev-mount.initd?rev=1.1&view=markup
276 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev-mount.initd?rev=1.1&content-type=text/plain
277
278 Index: udev-mount.initd
279 ===================================================================
280 #!/sbin/runscript
281 # Copyright 1999-2008 Gentoo Foundation
282 # Distributed under the terms of the GNU General Public License v2
283
284 description="Mount tmpfs on /dev"
285 [ -e /etc/conf.d/udev ] && . /etc/conf.d/udev
286
287 # get_KV and KV_to_int
288 . /lib/udev/shell-compat-KV.sh
289
290 # FIXME
291 # Instead of this script testing kernel version, udev itself should
292 # Maybe something like udevd --test || exit $?
293 check_kernel()
294 {
295 if [ $(get_KV) -lt $(KV_to_int '%KV_MIN%') ]; then
296 eerror "Your kernel is too old to work with this version of udev."
297 eerror "Current udev only supports Linux kernel %KV_MIN% and newer."
298 return 1
299 fi
300 if [ $(get_KV) -lt $(KV_to_int '%KV_MIN_RELIABLE%') ]; then
301 ewarn "You need at least Linux kernel %KV_MIN_RELIABLE% for reliable operation of udev."
302 fi
303 return 0
304 }
305
306
307 mount_dev_directory()
308 {
309 # No options are processed here as they should all be in /etc/fstab
310 ebegin "Mounting /dev"
311 if fstabinfo --quiet /dev; then
312 mount -n /dev
313 else
314 # Some devices require exec, Bug #92921
315 mount -n -t tmpfs -o "exec,nosuid,mode=0755,size=10M" udev /dev
316 fi
317 eend $?
318 }
319
320 seed_dev()
321 {
322 # Seed /dev with some things that we know we need
323
324 # creating /dev/console, /dev/tty and /dev/tty1 to be able to write
325 # to $CONSOLE with/without bootsplash before udevd creates it
326 [ -c /dev/console ] || mknod /dev/console c 5 1
327 [ -c /dev/tty1 ] || mknod /dev/tty1 c 4 1
328 [ -c /dev/tty ] || mknod /dev/tty c 5 0
329
330 # udevd will dup its stdin/stdout/stderr to /dev/null
331 # and we do not want a file which gets buffered in ram
332 [ -c /dev/null ] || mknod /dev/null c 1 3
333
334 # copy over any persistant things
335 if [ -d /lib/udev/devices ]; then
336 cp -RPp /lib/udev/devices/* /dev 2>/dev/null
337 fi
338
339 # Not provided by sysfs but needed
340 ln -snf /proc/self/fd /dev/fd
341 ln -snf fd/0 /dev/stdin
342 ln -snf fd/1 /dev/stdout
343 ln -snf fd/2 /dev/stderr
344 [ -e /proc/kcore ] && ln -snf /proc/kcore /dev/core
345
346 # Create problematic directories
347 mkdir -p /dev/pts /dev/shm
348 return 0
349 }
350
351
352 start()
353 {
354 # do not run this on too old baselayout - udev-addon is already loaded!
355 if [ ! -f /etc/init.d/sysfs ]; then
356 eerror "The $SVCNAME init-script is written for baselayout-2!"
357 eerror "Please do not use it with baselayout-1!".
358 return 1
359 fi
360
361 _start
362 }
363
364 _start()
365 {
366 check_kernel || return 1
367 mount_dev_directory || return 1
368
369 # Selinux lovin; /selinux should be mounted by selinux-patched init
370 if [ -x /sbin/restorecon -a -c /selinux/null ]; then
371 restorecon /dev > /selinux/null
372 fi
373
374 # make sure it exists
375 mkdir -p /dev/.udev
376
377 seed_dev
378
379 return 0
380 }
381
382
383
384 1.1 sys-fs/udev/files/136/udev.initd
385
386 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev.initd?rev=1.1&view=markup
387 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev.initd?rev=1.1&content-type=text/plain
388
389 Index: udev.initd
390 ===================================================================
391 #!/sbin/runscript
392 # Copyright 1999-2008 Gentoo Foundation
393 # Distributed under the terms of the GNU General Public License v2
394
395 description="Run udevd and create the device-nodes"
396
397 [ -e /etc/udev/udev.conf ] && . /etc/udev/udev.conf
398
399 rc_coldplug=${rc_coldplug:-${RC_COLDPLUG:-YES}}
400
401 depend()
402 {
403 if [ -f /etc/init.d/sysfs ]; then
404 # require new enough openrc with sysinit being extra runlevel
405 # on linux we just check if sysfs init-script exists
406 # this is to silence out ugly warnings about not-existing sysfs script
407 provide dev
408 need sysfs udev-mount udev-dev-tarball
409 before checkfs fsck
410
411 # udev does not work inside vservers
412 keyword novserver
413 fi
414 }
415
416 cleanup()
417 {
418 # fail more gracely and not leave udevd running
419 start-stop-daemon --stop --exec /sbin/udevd
420 exit 1
421 }
422
423 disable_hotplug_agent()
424 {
425 if [ -e /proc/sys/kernel/hotplug ]; then
426 echo "" >/proc/sys/kernel/hotplug
427 fi
428 }
429
430 root_link()
431 {
432 /lib/udev/write_root_link_rule
433 }
434
435 persistent_net_switch()
436 {
437 # this function disables rules files
438 # by creating new files with the same name
439 # in a temp rules directory with higher priority
440 local d=/dev/.udev/rules.d
441 if yesno "${persistent_net_disable:-no}"; then
442 mkdir -p "$d"
443 echo "# This file disables persistent-net due to /etc/conf.d/udev" \
444 > "$d"/75-persistent-net-generator.rules
445 fi
446 }
447
448 start_udevd()
449 {
450 # load unix domain sockets if built as module, Bug #221253
451 if [ -e /proc/modules ] ; then
452 modprobe -q unix 2>/dev/null
453 fi
454 ebegin "Starting udevd"
455 start-stop-daemon --start --exec /sbin/udevd -- --daemon
456 eend $?
457 }
458
459 # populate /dev with devices already found by the kernel
460 populate_dev()
461 {
462 if get_bootparam "nocoldplug" ; then
463 rc_coldplug="NO"
464 ewarn "Skipping udev coldplug as requested in kernel cmdline"
465 fi
466
467 ebegin "Populating /dev with existing devices through uevents"
468 if yesno "${rc_coldplug}"; then
469 udevadm trigger
470 else
471 # Do not run any init-scripts, Bug #206518
472 udevadm control --env do_not_run_plug_service=1
473
474 # only create device nodes
475 udevadm trigger --attr-match=dev
476
477 # run persistent-net stuff, bug 191466
478 udevadm trigger --subsystem-match=net
479 fi
480 eend $?
481
482 ebegin "Waiting for uevents to be processed"
483 udevadm settle --timeout=60
484 eend $?
485
486 udevadm control --env do_not_run_plug_service=
487 return 0
488 }
489
490 display_hotplugged_services() {
491 local svcfile= svc= services=
492 for svcfile in "${RC_SVCDIR}"/hotplugged/*; do
493 svc="${svcfile##*/}"
494 [ -x "${svcfile}" ] || continue
495
496 # do not display this - better: do only inject it later :)
497 [ "$svc" = "udev-postmount" ] && continue
498
499 services="${services} ${svc}"
500 done
501 [ -n "${services}" ] && einfo "Device initiated services:${HILITE}${services}${NORMAL}"
502 }
503
504 inject_postmount_initd() {
505 if ! mark_service_hotplugged udev-postmount; then
506 IN_HOTPLUG=1 /etc/init.d/udev-postmount start >/dev/null 2>&1
507 fi
508 #einfo "Injected udev-postmount service"
509 }
510
511 check_persistent_net()
512 {
513 # check if there are problems with persistent-net
514 local syspath= devs= problem=false
515 for syspath in /sys/class/net/*_rename*; do
516 if [ -d "${syspath}" ]; then
517 devs="${devs} ${syspath##*/}"
518 problem=true
519 fi
520 done
521
522 ${problem} || return 0
523
524 eerror "UDEV: Your system has a problem assigning persistent names"
525 eerror "to these network interfaces: ${devs}"
526
527 einfo "Checking persistent-net rules:"
528 # the sed-expression lists all duplicate lines
529 # from the input, like "uniq -d" does, but uniq
530 # is installed into /usr/bin and not available at boot.
531 dups=$(
532 RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules'
533 . /lib/udev/rule_generator.functions
534 find_all_rules 'NAME=' '.*' | \
535 tr ' ' '\n' | \
536 sort | \
537 sed '$!N; s/^\(.*\)\n\1$/\1/; t; D'
538 )
539 if [ -n "${dups}" ]; then
540 ewarn "The rules create multiple entries assigning these names:"
541 eindent
542 ewarn "${dups}"
543 eoutdent
544 else
545 ewarn "Found no duplicate names in persistent-net rules,"
546 ewarn "there must be some other problem!"
547 fi
548 return 1
549 }
550
551 check_udev_works()
552 {
553 # should exist on every system, else udev failed
554 if [ ! -e /dev/zero ]; then
555 eerror "Assuming udev failed somewhere, as /dev/zero does not exist."
556 return 1
557 fi
558 return 0
559 }
560
561 start()
562 {
563 # do not run this on old baselayout where udev-addon gets loaded
564 if [ ! -f /etc/init.d/sysfs ]; then
565 eerror "The $SVCNAME init-script is written for baselayout-2!"
566 eerror "Please do not use it with baselayout-1!".
567 return 1
568 fi
569
570 _start
571
572 display_hotplugged_services
573
574 inject_postmount_initd
575 }
576
577 _start()
578 {
579 root_link
580 persistent_net_switch
581
582 disable_hotplug_agent
583 start_udevd || cleanup
584 populate_dev || cleanup
585
586 check_persistent_net
587
588 check_udev_works || cleanup
589
590 return 0
591 }
592
593 stop() {
594 ebegin "Stopping udevd"
595 start-stop-daemon --stop --exec /sbin/udevd
596 eend $?
597 }
598
599
600
601
602 1.1 sys-fs/udev/files/136/udev-stop.sh
603
604 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev-stop.sh?rev=1.1&view=markup
605 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev-stop.sh?rev=1.1&content-type=text/plain
606
607 Index: udev-stop.sh
608 ===================================================================
609 # Copyright 1999-2007 Gentoo Foundation
610 # Distributed under the terms of the GNU General Public License v2
611
612 # for function yesno
613 . /lib/udev/shell-compat-addon.sh
614
615 # store device tarball
616 (
617 . /etc/init.d/udev-dev-tarball
618 stop
619 )
620
621 exit 0
622
623
624
625 1.1 sys-fs/udev/files/136/shell-compat-addon.sh
626
627 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/shell-compat-addon.sh?rev=1.1&view=markup
628 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/shell-compat-addon.sh?rev=1.1&content-type=text/plain
629
630 Index: shell-compat-addon.sh
631 ===================================================================
632 # Copyright 1999-2008 Gentoo Foundation
633 # Distributed under the terms of the GNU General Public License v2
634
635 # functions that may not be defined, but are used by the udev-start and udev-stop addon
636 # used by baselayout-1 and openrc before version 0.4.0
637
638 cmd_exist()
639 {
640 type "$1" >/dev/null 2>&1
641 }
642
643 # does not exist in baselayout-1, does exist in openrc
644 if ! cmd_exist yesno; then
645 yesno() {
646 [ -z "$1" ] && return 1
647 case "$1" in
648 yes|Yes|YES) return 0 ;;
649 esac
650 return 1
651 }
652 fi
653
654 # does not exist in baselayout-1, does exist in openrc
655 if ! cmd_exist fstabinfo; then
656 fstabinfo() {
657 [ "$1" = "--quiet" ] && shift
658 local dir="$1"
659
660 # only check RC_USE_FSTAB on baselayout-1
661 yesno "${RC_USE_FSTAB}" || return 1
662
663 # check if entry is in /etc/fstab
664 local ret=$(gawk 'BEGIN { found="false"; }
665 $1 ~ "^#" { next }
666 $2 == "'$dir'" { found="true"; }
667 END { print found; }
668 ' /etc/fstab)
669
670 "${ret}"
671 }
672 fi
673
674
675
676
677
678 1.1 sys-fs/udev/files/136/udev-postmount.initd
679
680 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev-postmount.initd?rev=1.1&view=markup
681 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/udev/files/136/udev-postmount.initd?rev=1.1&content-type=text/plain
682
683 Index: udev-postmount.initd
684 ===================================================================
685 #!/sbin/runscript
686 # Copyright 1999-2007 Gentoo Foundation
687 # Distributed under the terms of the GNU General Public License v2
688 # $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/files/136/udev-postmount.initd,v 1.1 2009/01/20 13:00:01 zzam Exp $
689
690 depend() {
691 need localmount
692 }
693
694 start() {
695 # check if this system uses udev
696 [ -d /dev/.udev/ ] || return 0
697
698 # store persistent-rules that got created while booting
699 # when / was still read-only
700 /lib/udev/move_tmp_persistent_rules.sh
701 }
702
703 stop() {
704 :
705 }
706
707 # vim:ts=4