-Completely rewrite the installer to be much simpler to maintain. It will still have to be an ncurses-based installer written in C, or in Python (but with C bindings for every single library that will be created - see below). A text interface UI library (e.g. newt [see examples on http://gnewt.sourceforge.net/tutorial-4.html] - which seems very easy and handy) should be used to make the handling of the graphical part as easy as possible.

-

-As part of rewriting the installer, several functions scattered around in other base utils should be factored out into libraries that both the installer and the util it comes from can use, e.g.:

-

-* partitioning (both GPT and MBR) should be factored out into two libraries, that the fdisk and the gpt tools use, but the installer can make use of, too.

-* disklabel32/64 functionality

-* adduser (and other user/group management)

-

-The new installer should then make use of all these new libraries and other ones that are already available (libcryptsetup, libluks, liblvm, libtcplay) to offer more advanced features.

-

-NOTE: The new installer should maintain most if not all of the functionality of the old installer in addition to adding features taking advantage of the aforementioned libraries.

Extend/modify the dsched framework to take into account jails and etc. instead of always allocating a 'tdio'. This would allow different process groupings (such as all processes in a jail) to be scheduled together. A new jail-specific policy would have to be written to support this, or an existing policy modified.

@@ -460,3+435,29 @@ This project will only allow us to execute a few command-line utilities, most of

Beeing able to run Mac-OSX graphical applications will be a multi-year undertaking on top of it. Wine has been trying to reimplement Microsoft Windows APIs for 20 years already. (comment added on 2013-02-21)

---

+

+##### Complete installer rewrite

+Completely rewrite the installer to be much simpler to maintain. It will still have to be an ncurses-based installer written in C, or in Python (but with C bindings for every single library that will be created - see below). A text interface UI library (e.g. newt [see examples on http://gnewt.sourceforge.net/tutorial-4.html] - which seems very easy and handy) should be used to make the handling of the graphical part as easy as possible.

+

+As part of rewriting the installer, several functions scattered around in other base utils should be factored out into libraries that both the installer and the util it comes from can use, e.g.:

+

+* partitioning (both GPT and MBR) should be factored out into two libraries, that the fdisk and the gpt tools use, but the installer can make use of, too.

+* disklabel32/64 functionality

+* adduser (and other user/group management)

+

+The new installer should then make use of all these new libraries and other ones that are already available (libcryptsetup, libluks, liblvm, libtcplay) to offer more advanced features.

+

+NOTE: The new installer should maintain most if not all of the functionality of the old installer in addition to adding features taking advantage of the aforementioned libraries.