Fwd: YAFI or Yet Another FreeBSD Installer

From: Garrett Cooper <youshi10_at_u.washington.edu>
Date: Tue, 18 Dec 2007 19:41:50 -0800
> From: Garrett Cooper <youshi10_at_u.washington.edu>
> Date: December 18, 2007 4:55:41 PM PST
> To: mtm_at_FreeBSD.Org
> Subject: Re: YAFI or Yet Another FreeBSD Installer
>
> On Dec 18, 2007, at 3:24 PM, Mike Makonnen wrote:
>
>> Hi folks,
>>
>> I've been working on an installer for FreeBSD for the past month,
>> and I've finally come along far enough that I have something usable
>> that people can play with and provide feedback.
>>
>> Our sysinstall(8) is actually pretty darn nice. No really. Think  
>> about
>> it. Forget for a moment that it doesn't have a spiffy GUI and look at
>> some of the things it does right:
>>   1. It doesn't have any 3rd party dependency (it builds out of  
>> the src
>>      tree).
>>   2. You're not limited by the physical media the installer is on.
>>      You can install from CD, FTP, HTTP, NFS, UFS, FAT, etc.
>>   3. If you want to build your own release you can use a  
>> configuration
>>      file for unattended setup.
>>   4. libdisk(3)
>>
>> On the other hand it suffers from one major flaw (which is the root
>> cause of its other problems): the presentation and logic is so  
>> tightly
>> coupled together that it's damn hard to make non-trivial changes  
>> without
>> breaking it. So, it hasn't been able to move with the times or change
>> significantly over the years because it would essentially have  
>> meant a
>> complete rewrite.
>>
>> The DragonFly folks went ahead and did a complete re-write, but while
>> their implementation addressed sysinstall's major problem, they  
>> didn't
>> keep (or re-implement) its good points. Worse, from our stand-point,
>> the BSD Installer (www.bsdinstaller.org) only works from a live-cd
>> and depends on messy command lines and string-parsing to install the
>> system. Recently, I believe they've gone even further and re- 
>> implemented
>> the back-end using the Lua scripting language (making it even more
>> unusable for us). Having said that; however, there is one thing that
>> I really like about it: they've managed to completely divorce the
>> presentation layer from the installer logic. All the logic for
>> installing the system is contained in the back-end application, and
>> all the front-end does is essentially just display forms and return
>> the user's choices to the back-end. What I like even better is that
>> the front-end and the back-end don't even have to be on the same
>> machine, which opens up a whole new area of installation options.
>>
>> So essentially, what I'm doing is taking all the parts I like about
>> sysinstall(8), putting it on the framework provided by the BSD  
>> Installer
>> folks, and adding a couple of ideas of my own. Here's what I envision
>> the end-product to look like:
>>   1. One back-end (in C), multiple front-ends (curses, web  
>> browser, X)
>>   2. Supports multiple installation media
>>   3. XML based application configuration
>>         - no hard coded options/distributions/packages in source  
>> files
>>         - no flat file (key=value) configuration files
>>   4. Supports Internationalization
>>   5. Clean and modular backend so that the installer can grow right
>>      along FreeBSD itself (i.e. - ZFS support, etc)
>>
>> What I have so far is alpha quality. It will install a basic FreeBSD
>> system that you can boot into, but that's about it. It works on
>> i386/amd64, uses libdisk(3) for slicing and dicing disks, and looks
>> for the install cd on the first IDE CD-Rom. It installs the complete
>> base system (all distributions), and doesn't know about packages yet.
>>
>> You can find the tarball at: http://people.freebsd.org/~mtm/ 
>> fin.tar.bz2
>> The tarball contains the modified BSD Installer source code, a script
>> to copy the code into the right places in the source tree, and a diff
>> against src/ to integrate it into the build system and make a release
>> CD.
>> The script I use to build a release is here:
>> http://people.freebsd.org/~mtm/scripts/makerelease
>>
>> I'm very much interested in your comments and suggestions.
>>
>> Cheers.
>> -- 
>> Mike Makonnen         | GPG-KEY: http://people.freebsd.org/~mtm/ 
>> mtm.asc
>> mmakonnen _at_ gmail.com | AC7B 5672 2D11 F4D0 EBF8 5279 5359 2B82  
>> 7CD4 1F55
>> mtm _at_ FreeBSD.Org     | FreeBSD - http://www.freebsd.org
>
> That's awesome! I assume that certain GUI~ish features can now be  
> invoked via the command line like the disklabel editor? That would  
> be the ultimate next step if it's not already in the works :)..
>
> Thanks Mike!
> -Garrett

Forgot to include current_at_.
-Garrett
Received on Wed Dec 19 2007 - 02:41:47 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:24 UTC