- moved all generated files to /var/lib/udev (also 70-persistent-cd.rules

70-persistent-net.rules)
- added a caching mechanism for MAKEDEV (saves some seconds on startup)
- added trigger for selinux-policy and MAKEDEV to remove the udev cache
    files
This commit is contained in:
Harald Hoyer 2008-03-13 13:00:10 +00:00
commit 2a36d8e695
3 changed files with 112 additions and 12 deletions

View file

@ -81,14 +81,34 @@ make_extra_nodes () {
[ -d $udev_root/shm ] || mkdir -m 0755 $udev_root/shm
[ -a /dev/MAKEDEV ] || ln -s $MAKEDEV /dev/MAKEDEV;
if [ -x $MAKEDEV ]; then
[ -d /dev/.udev/makedev.d ] || mkdir -p /dev/.udev/makedev.d
USE_MD5="false"
[ -x /usr/bin/md5sum ] && USE_MD5="true"
if [ -x "$MAKEDEV" ]; then
for i in /etc/udev/makedev.d/*.nodes; do
if [ -f "$i" ]; then
( sed -e 's,#.*,,g' "$i" | \
xargs_simple -n 100 $MAKEDEV -x )
if [ -f "$i" ]; then
# use a little caching to speedup things
if [ "$USE_MD5" == "true" ]; then
md5=$(/usr/bin/md5sum "$i"|(read a b; echo $a))
if [ -f "/var/lib/udev/makedev.d/${md5}.sh" ];then
md5file="/var/lib/udev/makedev.d/${md5}.sh"
else
md5file="/dev/.udev/makedev.d/${md5}.sh"
fi
if [ ! -f "$md5file" ]; then
( sed -e 's,#.*,,g' "$i" | \
xargs_simple -n 100 $MAKEDEV -x -a -S ) \
> "$md5file"
fi
. "$md5file" >/dev/null 2>&1
else
( sed -e 's,#.*,,g' "$i" | \
xargs_simple -n 100 $MAKEDEV -x )
fi
fi
done
fi
for devdir in /etc/udev/devices /lib/udev/devices; do
[ -d "$devdir" ] || continue
pushd $devdir &> "$udev_root/null"
@ -185,6 +205,14 @@ UDEV_OPTS=""
if [ -f "/sys/class/tty/console/uevent" ]; then
# trigger the sorted events
echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
mkdir -p /dev/.udev/rules.d/
for i in /var/lib/udev/rules.d/*.rules; do
if [ -f "$i" ]; then
cp "$i" /dev/.udev/rules.d/ >/dev/null 2>&1
fi
done
/sbin/udevd -d
ret=$[$ret + $?]

View file

@ -4,11 +4,12 @@
#
# Authors: Harald Hoyer <harald@redhat.com>
#
# chkconfig: 345 26 75
# chkconfig: 12345 26 75
# description: Moves the generated persistent udev rules to /etc/udev/rules.d
#
### BEGIN INIT INFO
# Default-Start: 345
# Default-Start: 12345
# Default-Stop: 0 6
# Required-Start: $local_fs
# Short-Description: Moves the generated persistent udev rules to /etc/udev/rules.d
# Description: Moves the generated persistent udev rules to /etc/udev/rules.d
@ -20,15 +21,32 @@
# See how we were called.
case "$1" in
start|reload)
STRING=$"Adding udev persistent rules"
STRING=$"Adding udev makedev cache file"
# copy the MAKEDEV shell scripts generated before / was mounted read-write
for file in /dev/.udev/makedev.d/*; do
if [ -f "$file" ]; then
echo -n $STRING
cp "$file" /var/lib/udev/makedev.d/
rc=$?
rm -f "$file"
if [ "$rc" -eq "0" ]; then
success "$STRING"
echo
elif [ "$rc" -eq "1" ]; then
failure "$STRING"
echo
fi
fi
done
STRING=$"Adding udev persistent rule"
# copy the rules generated before / was mounted read-write
for file in /dev/.udev/tmp-rules--*; do
dest=${file##*tmp-rules--}
# check, if anything is todo
[ "$dest" = '*' ] && exit 0
[ "$dest" = '*' ] && break
echo -n $STRING
cat $file >> /etc/udev/rules.d/$dest
cat $file >> /var/lib/udev/rules.d/$dest && cp /var/lib/udev/rules.d/$dest /dev/.udev/rules.d/
rc=$?
rm -f $file
if [ "$rc" -eq "0" ]; then
@ -43,13 +61,41 @@ case "$1" in
exit 0
;;
stop)
STRING=$"Generating udev makedev cache file"
MAKEDEV="/sbin/MAKEDEV"
USE_MD5="false"
[ -x /usr/bin/md5sum ] && USE_MD5="true"
if [ "$USE_MD5" == "true" -a -x "$MAKEDEV" ]; then
for i in /etc/udev/makedev.d/*.nodes; do
if [ -f "$i" ]; then
# use a little caching to speedup things
md5=$(/usr/bin/md5sum "$i"|(read a b; echo $a))
md5file="/var/lib/udev/makedev.d/${md5}.sh"
if [ ! -f "$md5file" ]; then
echo -n $STRING
( sed -e 's,#.*,,g' "$i" | \
xargs $MAKEDEV -x -a -S ) \
> "$md5file"
rc=$?
if [ "$rc" -eq "0" ]; then
success "$STRING"
echo
elif [ "$rc" -eq "1" ]; then
failure "$STRING"
echo
fi
fi
fi
done
fi
rm -f /var/lock/subsys/udev-post
exit 0
;;
status)
exit 0
;;
*)
echo $"Usage: $0 {start}"
echo $"Usage: $0 {start|stop|reload}"
exit 1
esac
exit 0

View file

@ -6,7 +6,7 @@
Summary: A userspace implementation of devfs
Name: udev
Version: 118
Release: 5%{?dist}
Release: 6%{?dist}
License: GPLv2
Group: System Environment/Base
Provides: udev-persistent = %{version}-%{release}
@ -241,6 +241,10 @@ EOF
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
install -m 0755 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/udev-post
mkdir -p $RPM_BUILD_ROOT/var/lib/udev/
mkdir -p $RPM_BUILD_ROOT/var/lib/udev/makedev.d
mkdir -p $RPM_BUILD_ROOT/var/lib/udev/rules.d
%preun
if [ "$1" = 0 -a -f %{_initrddir}/udev ]; then
if [ -x /sbin/pidof ]; then
@ -264,6 +268,12 @@ if [ "$1" -ge "1" -a -x /sbin/pidof ]; then
/sbin/udevd -d
fi
fi
for i in 70-persistent-cd.rules 70-persistent-net.rules; do
[ -f "/etc/udev/rules.d/$i" ] && ( mv /etc/udev/rules.d/$i /var/lib/udev/rules.d >/dev/null 2>&1 )
done
/sbin/chkconfig --del udev-post >/dev/null 2>&1 || :
/sbin/chkconfig --add udev-post
exit 0
@ -281,6 +291,12 @@ if [ $2 = 0 ]; then
fi
exit 0
%triggerin -- selinux-policy
rm -f /var/lib/udev/makenode.d/* >/dev/null 2>&1 || :
%triggerin -- MAKEDEV
rm -f /var/lib/udev/makenode.d/* >/dev/null 2>&1 || :
%post -n libvolume_id -p /sbin/ldconfig
%postun -n libvolume_id -p /sbin/ldconfig
@ -341,6 +357,10 @@ rm -rf $RPM_BUILD_ROOT
%attr(0644,root,root) %{_mandir}/man8/cdrom_id*.8*
%attr(0644,root,root) %{_mandir}/man8/create_floppy_devices*.8*
%dir %attr(0755,root,root) /var/lib/udev
%dir %attr(0755,root,root) /var/lib/udev/makedev.d
%dir %attr(0755,root,root) /var/lib/udev/rules.d
# Deprecated, but keep the ownership
%ghost %dir %{_sysconfdir}/udev/scripts/
%ghost %dir %{_sysconfdir}/udev/devices/
@ -372,6 +392,12 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/pkgconfig/libvolume_id.pc
%changelog
* Thu Mar 13 2008 Harald Hoyer <harald@redhat.com> 118-6
- moved all generated files to /var/lib/udev
(also 70-persistent-cd.rules 70-persistent-net.rules)
- added a caching mechanism for MAKEDEV (saves some seconds on startup)
- added trigger for selinux-policy and MAKEDEV to remove the udev cache files
* Wed Feb 20 2008 Harald Hoyer <harald@redhat.com> 118-4
- made symlinks relative (rhbz#432878)
- removed the backgrounding of node creation (rhbz#381461)