From owner-freebsd-arch@FreeBSD.ORG Sun Jan 2 19:22:14 2011 Return-Path: Delivered-To: freebsd-arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0B684106566C; Sun, 2 Jan 2011 19:22:14 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from mail.icecube.wisc.edu (trout.icecube.wisc.edu [128.104.255.119]) by mx1.freebsd.org (Postfix) with ESMTP id C73888FC08; Sun, 2 Jan 2011 19:22:13 +0000 (UTC) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.icecube.wisc.edu (Postfix) with ESMTP id DDE4A58134; Sun, 2 Jan 2011 12:49:36 -0600 (CST) X-Virus-Scanned: amavisd-new at icecube.wisc.edu Received: from mail.icecube.wisc.edu ([127.0.0.1]) by localhost (trout.icecube.wisc.edu [127.0.0.1]) (amavisd-new, port 10030) with ESMTP id yJhBET4LLuoO; Sun, 2 Jan 2011 12:49:36 -0600 (CST) Received: from wanderer.tachypleus.net (unknown [76.210.75.5]) by mail.icecube.wisc.edu (Postfix) with ESMTP id 607365811B; Sun, 2 Jan 2011 12:49:36 -0600 (CST) Message-ID: <4D20C8BF.701@freebsd.org> Date: Sun, 02 Jan 2011 12:49:35 -0600 From: Nathan Whitehorn User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.13) Gecko/20101227 Thunderbird/3.1.7 MIME-Version: 1.0 To: freebsd-arch@FreeBSD.org, freebsd-sysinstall@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Subject: BSDInstall: I want the bikeshed painted plaid X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Jan 2011 19:22:14 -0000 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. -Nathan