rpms/udev/devel start_udev, 1.67, 1.68 udev-post.init, 1.2, 1.3 udev.spec, 1.234, 1.235

Harald Hoyer (harald) fedora-extras-commits at redhat.com
Thu Mar 13 13:00:48 UTC 2008


Author: harald

Update of /cvs/pkgs/rpms/udev/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv23342

Modified Files:
	start_udev udev-post.init udev.spec 
Log Message:
* Thu Mar 13 2008 Harald Hoyer <harald at 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



Index: start_udev
===================================================================
RCS file: /cvs/pkgs/rpms/udev/devel/start_udev,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -r1.67 -r1.68
--- start_udev	20 Feb 2008 11:07:27 -0000	1.67
+++ start_udev	13 Mar 2008 13:00:09 -0000	1.68
@@ -81,14 +81,34 @@
 	[ -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 @@
 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 + $?]
 


Index: udev-post.init
===================================================================
RCS file: /cvs/pkgs/rpms/udev/devel/udev-post.init,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- udev-post.init	20 Feb 2008 11:26:02 -0000	1.2
+++ udev-post.init	13 Mar 2008 13:00:10 -0000	1.3
@@ -4,11 +4,12 @@
 #
 # Authors:      Harald Hoyer <harald at 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 @@
 	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


Index: udev.spec
===================================================================
RCS file: /cvs/pkgs/rpms/udev/devel/udev.spec,v
retrieving revision 1.234
retrieving revision 1.235
diff -u -r1.234 -r1.235
--- udev.spec	20 Feb 2008 17:33:26 -0000	1.234
+++ udev.spec	13 Mar 2008 13:00:10 -0000	1.235
@@ -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 @@
 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 @@
 		/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 @@
 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 @@
 %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 @@
 %{_libdir}/pkgconfig/libvolume_id.pc 
 
 %changelog
+* Thu Mar 13 2008 Harald Hoyer <harald at 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 at redhat.com> 118-4
 - made symlinks relative (rhbz#432878)
 - removed the backgrounding of node creation (rhbz#381461)




More information about the fedora-extras-commits mailing list