[RFC] Rewriting sade(8)

Andrey V. Elsukov bu7cher at yandex.ru
Wed Apr 7 16:35:57 UTC 2010

Hi, All.

Some days ago i begun rewriting sade(8) to libgeom(3). Just for fun :-)
Today i have progress and you can see some screenshoots here:

What is done:
1. It's fully rewritten, but yes, i reuse some code from old sade.
2. I wrote small framework "customdlg" for creating custom dialogs (not yet fully finished, but works).
3. Now sade use libgeom for searching providers and it can use:
        {"DISK",        "disk device"},
        {"MD",          "memory backed virtual disk"},
        {"ZFS::ZVOL",   "ZFS volume"},
        {"MIRROR",      "GEOM based mirror (RAID1)"},
        {"STRIPE",      "GEOM based stripe (RAID0)"},
        {"RAID3",       "GEOM based RAID3 array"},
        {"CONCAT",      "GEOM based concatenated disk"},
        {"ELI",         "GEOM based encrypted disk"},
        {"JOURNAL",     "GEOM based journalled disk"},
        {"MULTIPATH",   "GEOM based disk with multiple path"}
4. Access to partitions based on geom_part.so library. I made some changes in geom_part.c and
sent it to Marcel, but currently didn't receive answer. Any way if these changes is not acceptable
i can rewrite it for using libgeom(3) only.
5. Undo/Commit features are based on internal implementation of geom class PART. I found there
two bugs:
6. All "device" related code can be placed in shared library and in future can be reused in another
7. New Partition Editor:
* partitions list now scrollable;
* all operations based on geom_part.so and similar to gpart(8);
* opening partition editor on empty provider opens new "Selech Partitioning Scheme" dialog
and create selected scheme;
* new add slice dialog;
* deleting slice from empty table destroys scheme;

1. Refine customdlg.
2. Waiting for fixes in geom_part_mbr, geom_part and geom_part.so.
3. "Set Type and Label" dialog.
4. Better wording needed for messages and help. My english is bad :(
Missing functions:
Creating filesystem and save them into /etc/fstab.

What new can be added:
1. Creating ZFS pools and datasets.
2. Creating GEOM-based raids.

Any comments are welcome.
WBR, Andrey V. Elsukov

More information about the freebsd-current mailing list