Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Jan 2011 11:51:33 -0800
From:      Garrett Cooper <yanegomi@gmail.com>
To:        Nathan Whitehorn <nwhitehorn@freebsd.org>
Cc:        freebsd-sysinstall@freebsd.org, freebsd-arch@FreeBSD.org
Subject:   Re: BSDInstall: I want the bikeshed painted plaid
Message-ID:  <A8ADEA5D-DE5D-43EE-A123-364EB6593FEF@gmail.com>
In-Reply-To: <4D20C8BF.701@freebsd.org>
References:  <4D20C8BF.701@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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.
>=20
> 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.
>=20
> 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.
>=20
> 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.
>=20
> 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.
>=20
> 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.
>=20
> 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.
>=20
> 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.
Thanks,
-Garrett=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A8ADEA5D-DE5D-43EE-A123-364EB6593FEF>