Package: autopartkit
Version: 1.19
Severity: wishlist

Instead of the sleep() hack, autopartkit should come into line with the
rest of d-i and use update-dev from di-utils to poke the kernel and udev
into creating devices. The attached patch should do the job, but I
haven't committed it because I can't test it myself. Could somebody
please try this out and commit it if it works?

Changelog entry:

  * Use update-dev rather than the sleep() hack to get the kernel and
    udev to create device nodes.

Thanks,

-- 
Colin Watson                                       [EMAIL PROTECTED]
Index: debian/control
===================================================================
--- debian/control      (revision 40452)
+++ debian/control      (working copy)
@@ -9,7 +9,7 @@
 Package: autopartkit
 XC-Package-Type: udeb
 Architecture: any
-Depends: ${shlibs:Depends}, e2fsprogs-udeb, cdebconf-udeb (>= 0.43), 
disk-detect, md-modules, lvm10-udeb | lvm2-udeb, partconf-mkfstab, di-utils (>= 
1.15)
+Depends: ${shlibs:Depends}, e2fsprogs-udeb, cdebconf-udeb (>= 0.43), 
disk-detect, md-modules, lvm10-udeb | lvm2-udeb, partconf-mkfstab, di-utils (>= 
1.19)
 Provides: mounted-partitions, created-fstab, made-filesystems, 
partitioned-harddrives
 XB-Installer-Menu-Item: 50
 Description: Automatically Partition Hard Drives (unsafe)
Index: autopartkit.c
===================================================================
--- autopartkit.c       (revision 40452)
+++ autopartkit.c       (working copy)
@@ -106,9 +106,6 @@
 /* Ignore devfs devices, used in choose_dev */
 #define IGNORE_DEVFS_DEVICES 1
 
-/* sleep period to give udev time to create the devices */
-#define UDEV_SLEEP_HACK 3
-
 #if 1
 #define log_line() \
   autopartkit_log(2, "  Error bounding: %s %d\n",__FILE__,__LINE__)
@@ -1155,7 +1152,7 @@
                  * sure the device file is available when we need it.
                 */
                 ped_disk_commit(disk_maybe);
-                sleep(UDEV_SLEEP_HACK); /* Give the kernel a moment to create 
the device */
+                system("update-dev"); /* persuade the kernel to create the 
device */
 
                 makefs(mountmap[partcount].devpath, req_tmp->fstype);
            }
@@ -1186,7 +1183,7 @@
                   make sure the device file is available when we need
                   it. */
                ped_disk_commit(disk_maybe);
-               sleep(UDEV_SLEEP_HACK); /* Give the kernel a moment to create 
the device */
+               system("update-dev"); /* persuade the kernel to create the 
device */
 
                lvm_pv_stack_push(lvm_pv_stack, req_tmp->mountpoint, devpath);
            }
@@ -1265,7 +1262,7 @@
         free(vgname);
         free(devpath);
     }
-    sleep(UDEV_SLEEP_HACK); /* Give the kernel a moment to create the devices 
*/
+    system("update-dev"); /* persuade the kernel to create the devices */
 
     /* Distribute logical volumes ([EMAIL PROTECTED]) */
     lvm_vg_stack = lvm_vg_stack_new();
@@ -1363,7 +1360,7 @@
                autopartkit_log(1, "  LVM lv created ok, devpath=%s\n",
                                devpath);
                autopartkit_log(1, "  LVM creating fs: %s\n", fstype);
-               sleep(UDEV_SLEEP_HACK); /* Give the kernel a moment to create 
the device */
+               system("update-dev"); /* persuade the kernel to create the 
device */
                if (0 == makefs(devpath, fstype))
                  { /* Replace devpath placeholder with real path */
                    char buf[1024];

Reply via email to