From owner-freebsd-current@FreeBSD.ORG Wed Dec 19 03:41:47 2007 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F28F616A418 for ; Wed, 19 Dec 2007 03:41:47 +0000 (UTC) (envelope-from youshi10@u.washington.edu) Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by mx1.freebsd.org (Postfix) with ESMTP id DFBCB13C448 for ; Wed, 19 Dec 2007 03:41:47 +0000 (UTC) (envelope-from youshi10@u.washington.edu) Received: from smtp.washington.edu (smtp.washington.edu [140.142.32.139]) by mxout2.cac.washington.edu (8.13.7+UW06.06/8.13.7+UW07.09) with ESMTP id lBJ3fkVO007548 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 18 Dec 2007 19:41:47 -0800 X-Auth-Received: from [128.208.5.27] (shiina-1.dyn.cs.washington.edu [128.208.5.27]) (authenticated authid=youshi10) by smtp.washington.edu (8.13.7+UW06.06/8.13.7+UW07.09) with ESMTP id lBJ3fkrT004150 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT) for ; Tue, 18 Dec 2007 19:41:46 -0800 Mime-Version: 1.0 (Apple Message framework v752.2) References: <239A880E-674A-4A45-A742-3A45E12700CF@u.washington.edu> X-Gpgmail-State: !signed Message-Id: <766AE492-7772-4D22-AD68-36FA34612636@u.washington.edu> From: Garrett Cooper Date: Tue, 18 Dec 2007 19:41:50 -0800 To: current@freebsd.org X-Mailer: Apple Mail (2.752.2) X-PMX-Version: 5.3.3.310218, Antispam-Engine: 2.5.2.313940, Antispam-Data: 2007.12.18.192138 X-Uwash-Spam: Gauge=IIIIIII, Probability=7%, Report='HTML_70_90 0.1, __CP_URI_IN_BODY 0, __CT 0, __CTYPE_HAS_BOUNDARY 0, __CTYPE_MULTIPART 0, __CTYPE_MULTIPART_ALT 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __MIME_HTML 0, __MIME_VERSION 0, __SANE_MSGID 0, __TAG_EXISTS_HTML 0' Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: Fwd: YAFI or Yet Another FreeBSD Installer X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Dec 2007 03:41:48 -0000 > From: Garrett Cooper > Date: December 18, 2007 4:55:41 PM PST > To: mtm@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 @ gmail.com | AC7B 5672 2D11 F4D0 EBF8 5279 5359 2B82 >> 7CD4 1F55 >> mtm @ 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@. -Garrett