> The patches are ready. I am going to split them into 3 series:
>
> - generic parted patches (parted stuff will be used if /sbin/parted is here)
Done. This code will stay inactive unless /sbin/parted is found.
--- boot-floppies-cvs.orig/utilities/dbootstrap/partition_config.c
+++ boot-floppies-cvs/utilities/dbootstrap/partition_config.c
@@ -59,7 +61,7 @@
int partition_disk (void) {
struct fdisk_disk *d;
struct fdisk_partition *p;
- char *mounts, *swaps, *tmpbuf;
+ char *mounts, *swaps, *tmpbuf, *myfdisk;
int root_on_disk=0, status=0;
struct stat statbuf;
@@ -135,6 +137,21 @@
}
free (swaps);
}
+ if(fopen("/sbin/parted", "r")) { /* check whether we have parted */
+ if(twoButtonBox( _("This set of boot floppies has varios programs for
+partitioning of the harddisk. However, to partition with other programs then cfdisk
+(default) is dangerous, you should not try them if you are not an expert or if you
+don't exactly know what you are doing. Which way do you want to go?"), _("CFDISK or
+Expert mode?"), _("default"), _("expert only"), 1) == DLG_YES)
+ myfdisk="/sbin/cfdisk";
+ else {
+ if(twoButtonBox( _("Now you have the choice between: fdisk and parted. Fdisk
+is the old program, but allows to do some tricks with the partition table. GNU parted
+is new, not complete and not 100\% stable, but has features like fs resizing and
+moving of the partitions. Which one should be invoked now?"), _("fdisk or parted?"),
+_("fdisk"), _("parted"), 2) == DLG_YES)
+ myfdisk="/sbin/fdisk";
+ else
+ myfdisk="/sbin/parted";
+ }
+ }
+ else { /* no parted present, use default cfdisk */
+ myfdisk="/sbin/cfdisk";
+ }
+
+
#if #cpu(i386)
if (! bootargs.isquiet)
wideMessageBox(_(
@@ -215,7 +232,7 @@
#endif
INFOMSG("running cfdisk to partition %s", d->name);
- sprintf(prtbuf, "cfdisk %s", d->name);
+ sprintf(prtbuf, "%s %s", myfdisk, d->name);
status = fullscreen_execlog(prtbuf);
#ifdef pc_use_cfdisk_err_ret_switch
switch (status) {
PGP signature