The following fix seems to create the udev rule for me:

diff -u udev-167/debian/udev.init udev-167/debian/udev.init
--- udev-167/debian/udev.init
+++ udev-167/debian/udev.init
@@ -88,19 +88,6 @@
   sleep 60
 }
 
-create_dev_root_rule() {
-  local udevroot="$1"
-  [ -e $udevroot/rules.d/61-dev-root-link.rules ] && return 0
-
-  eval $(udevadm info --export --export-prefix=ROOT_ --device-id-of-file=/ \
-    || true)
-  [ "$ROOT_MAJOR" -a "$ROOT_MINOR" ] || return 0
-
-  echo 'ACTION=="add|change", SUBSYSTEM=="block", ENV{MAJOR}=="'$ROOT_MAJOR'", 
ENV{MINOR}=="'$ROOT_MINOR'", SYMLINK+="root"' \
-    > $udevroot/root-link-rule
-  mv $udevroot/root-link-rule $udevroot/rules.d/61-dev-root-link.rules
-}
-
 ##############################################################################
 
 [ -x /sbin/udevd ] || exit 0
@@ -182,13 +169,7 @@
        log_end_msg $?
     fi
 
-    if [ -d /run/udev/ ]; then
-      mkdir -p /run/udev/rules.d/
-      create_dev_root_rule /run/udev/
-    else
-      mkdir -p $udev_root/.udev/rules.d/
-      create_dev_root_rule $udev_root/.udev/
-    fi
+    /lib/udev/write_dev_root_rule
 
     log_action_begin_msg "Synthesizing initial hotplug events"
     if udevadm trigger --action=add; then
diff -u udev-167/debian/changelog udev-167/debian/changelog
--- udev-167/debian/changelog
+++ udev-167/debian/changelog
@@ -1,3 +1,9 @@
+udev (167-4) unstable; urgency=low
+
+  * Fix 621738, Closes: #621738
+
+ -- Tollef Fog Heen <[email protected]>  Fri, 22 Apr 2011 15:25:38 +0200
+
 udev (167-3) unstable; urgency=high
 
   * postinst: do not move /dev/.udev/ to /run/udev/ when upgrading a chroot.
diff -u udev-167/debian/rules udev-167/debian/rules
--- udev-167/debian/rules
+++ udev-167/debian/rules
@@ -112,6 +112,7 @@
        cp rules/debian/*.rules $D/lib/udev/rules.d/
        perl extra/subst_lib_name $D
        cp extra/links.conf $D/etc/udev/
+       install --mode=755 debian/write_dev_root_rule $D/lib/udev/
 
        install --mode=644 extra/blacklist.conf extra/fbdev-blacklist.conf \
                $D/etc/modprobe.d/
only in patch2:
unchanged:
--- udev-167.orig/debian/write_dev_root_rule
+++ udev-167/debian/write_dev_root_rule
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+if [ -d /run/udev/ ]; then
+    mkdir -p /run/udev/rules.d/
+    udevroot=/run/udev/
+else
+    mkdir -p $udev_root/.udev/rules.d/
+    udevroot=$udev_root/.udev/
+fi
+
+[ -e $udevroot/rules.d/61-dev-root-link.rules ] && return 0
+
+eval $(udevadm info --export --export-prefix=ROOT_ --device-id-of-file=/ || 
true)
+[ "$ROOT_MAJOR" -a "$ROOT_MINOR" ] || return 0
+
+echo 'ACTION=="add|change", SUBSYSTEM=="block", ENV{MAJOR}=="'$ROOT_MAJOR'", 
ENV{MINOR}=="'$ROOT_MINOR'", SYMLINK+="root"' \
+    > $udevroot/root-link-rule
+mv $udevroot/root-link-rule $udevroot/rules.d/61-dev-root-link.rules
only in patch2:
unchanged:
--- udev-167.orig/init/udev.service.in
+++ udev-167/init/udev.service.in
@@ -8,3 +8,4 @@
 [Service]
 Type=notify
 ExecStart=@sbindir@/udevd
+ExecStartPre=@libexecdir@/write_dev_root_rule

-- 
Tollef Fog Heen
UNIX is user friendly, it's just picky about who its friends are



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to