[RFC] Rewriting sade(8)

Kris Moore kris at pcbsd.org
Thu Apr 8 15:13:01 UTC 2010

On 04/08/2010 14:39, Alexander Leidinger wrote:
> Quoting Dag-Erling Smørgrav <des at des.no> (from Thu, 08 Apr 2010 
> 16:15:27 +0200):
>> Alexander Leidinger <Alexander at Leidinger.net> writes:
>>> Dag-Erling Smørgrav <des at des.no> writes:
>>> > There have been at least three or four attempts to do this in the
>>> > past.  One of them was even fully funded by the FreeBSD Foundation.
>>> > They all failed.
>>> I was told a lot of people tried to make the WITH_CTF part working
>>> without the need to use -DWITH_CTF each time at the command line and
>>> failed. Nevertless I did it. So telling something is not possible
>>> because other people tried and failed is ridiculous.
>> It's not ridiculous, it's experience.  *Painful* experience over a
>> period of nearly 15 years.
>>> BTW: I do not think you talk about a partition editor, but about the
>>> complete sysinstall.
>> Yes and no.  I'm talking about making the user interface pluggable,
>> i.e. run the same program (whether sysinstall or sade) with, say, an
>> ncurses interface on the console and a gtk interface in X.
> I did not suggest to run the same program and get different 
> interfaces. My suggestion was to have a backend-lib and a frontend. 
> The backend containing the "business-logic", and the frontend being 
> the presentation layer. If you want a GTK GUI, write a new frontend.
> In the case of sysinstall and sade, both use some kind of curses 
> interface, my suggestion was to the lib as they are both 2 different 
> kind of frontends (two different kinds of point of view regarding the 
> required functionality).
> I was misunderstanding your idea in the beginning, I was understanding 
> the description of jhb better. It surely is an applicable idea (and an 
> improvement to what we have currently), but it looks like it is 
> limiting what we could do with sade (the frontend part, not the 
> backend part) if it would be decoupled from sysinstall.
> Bye,
> Alexander.

That's a pretty similar to the approach we've taken with our new backend 
in PC-BSD 8.x. The notable exception is that instead
of just a lib, our backend is a complete program (written in sh), which 
performs scripted installs, and provides all the functionality
for front-ends to query the system and present data to the end-user.

This has a few advantages, in that the backend can be used stand-alone 
for scripted installations and also provide great flexibility
to the front-end developer. They don't need to worry about performing 
any of the actual installation logic, they just provide a way
for users to select their installation options, generate a configuration 
script, and let the backend run with it.

Kris Moore
PC-BSD Software

More information about the freebsd-current mailing list