BSDInstall: I want the bikeshed painted plaid

Garrett Cooper yanegomi at gmail.com
Sun Jan 2 20:04:25 UTC 2011


On Jan 2, 2011, at 11:51 AM, Garrett Cooper wrote:

> On Jan 2, 2011, at 10:49 AM, Nathan Whitehorn wrote:
> 
>> As those of you who obsessively follow the SVN commit mails may have noticed, I recently began work on a new installer, which I have tentatively named 'bsdinstall'. You can find the code itself at svn://svn.freebsd.org/base/user/nwhitehorn/bsdinstall and a wiki page describing it at http://wiki.freebsd.org/BSDInstall.
>> 
>> Why Plaid?
>> ----------
>> This project started because we have never, in three major releases, shipped an installer on PowerPC capable of installing a booting system without absurd amounts of handholding and use of external tools. This is especially galling when we have tools in the base (gpart, newfs, and tar) fully capable of doing this. As it turns out, by the time you've written a shell script to combine these things, you're well on your way to deciding to write a new installer.
>> 
>> The goal of this project then, was to maximally reuse existing tools and to make the installer a chain of easily modifiable or replaceable components so that future installer-tinkerers will not run away in terror as quickly as I and many others have from sysinstall and libdisk.
>> 
>> Architecture
>> ------------
>> BSDInstall is a set of tools that are called in sequence by a master script. These tools are, for example, the partition editor, the thing that fetches the distributions from the network, the thing that untars them, etc. Since these are just called in sequence from a shell script, a scripted installation can easily replace them with other things, (e.g. hard-coded gpart commands), leave steps out, add new ones, or interleave additional system modifications.
>> 
>> Status
>> ------
>> This provides almost all of the functionality of the existing sysinstall 'Express' track, and works Right Now. It installs working, bootable systems you can ssh into immediately after reboot on i386, amd64, sparc64, powerpc, and powerpc64. There is untested support for pc98. The final architecture on which we use sysinstall, ia64, is currently unsupported, because I don't know how to set up booting on those systems.
>> 
>> Paint Comes in Plaid?
>> ---------------------
>> With only a little more spit and polish, I think this could easily replace sysinstall for the 9.0 release. It works right now on almost all architectures for which we ship install media. There are no dependencies on strange scripting languages, and only one on tools not currently in the base system.
>> 
>> bsdinstall depends on the newer dialog and libdialog from Thomas Dickey (devel/cdialog). This is LGPL2, but that is better than the current dialog's license, and the software is so much better to develop with than the current mess that is libdialog it might be good to have anyway. In addition, I believe he is the sole author, and it's possible he could be persuaded to relicense it.
>> 
>> I don't entirely know how all of this relates to pc-sysinstall. pc-sysinstall has some more features (e.g. installation onto geli disks), and certainly more thought went into it, but requires an immense amount of work to make it work on non-x86 systems and a text front-end is not yet complete. When it is ready, a lot of the infrastructural changes required for bsdinstall (live CDs for installation, a new libdialog, revised distfile format, etc.) will probably help pc-sysinstall as well.
> 
> 	Please see pc-sysinstall if you like to see a different effort in chartreuse. No guarantees as to how many x86-isms are in the infrastructure.

	Should have read down to the bottom of the email... pc-sysinstall really needs to be made non-x86 centric in order to be a usable installer backend -- not sure how much effort has been put into making this happen, but I _do_ have a PowerPC Mac I could test on so we could work together to resolve any x86-isms and I might be able to hack something together with mips in my spare time (I have potential access to systems in my old work group, but I'd need to clear it with them before I did anything with that). text-sysinstall was a WiP but abandoned because some folks claimed that they were going to produce a solution to that with lynx, a webserver, etc on install media. Looks like that idea hasn't panned out though (it's been 2 months and I haven't seen a prototype or mumbles on arch@, sysinstall@, etc), so a libdialog-like solution is needed. Scripting changes should be relatively cakewalk as long as I have a process for producing pc-sysinstall based media, but there are other potential areas that need to be audited for security issues in pc-sysinstall. Once upon a time pc-sysinstall cached passwords on installed media based on some discussions I had with Bruce Cran... not secure in the least; other issues may lurk behind the scenes.
	Bruce Cran and I are interested parties in whatever will transpire, so please let us know what you have planned.
	I think everyone can agree that sysinstall is dying and it's time to sink some nails into its coffin before we send it on its way.
Thanks,
-Garrett


More information about the freebsd-arch mailing list