[RFC] Rewriting sade(8)
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.
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.
More information about the freebsd-current