HEADS UP: sysinstall is no longer the default installer

Nathan Whitehorn nwhitehorn at freebsd.org
Mon Mar 14 14:13:34 UTC 2011

I just committed (r219641) changes that make the release infrastructure 
(src/release/Makefile) use bsdinstall by default instead of sysinstall 
on install media. A big thank you is in order to everyone who provided 
advice, criticism, and testing for this project over the last few months!

Along with sysinstall, the original sysinstall build stuff has been 
preserved (now /usr/src/release/Makefile.sysinstall) and will continue 
to be for the lifetime of the 9.x release series, although it will not 
be used by default. This change modifies the process of building 
releases somewhat, so I'll outline changes that people who run snapshot 
buildbots will have to make below, and some next steps planned with the 

Changes to release(7)

Release builds work and look slightly different now, so everyone who 
snapshot tinderboxes will likely find them breaking shortly. The nearest 
analog to the old make release (with version-control checkouts and a 
chroot) is src/release/generate-release.sh, which can be run as 
generate-release.sh head /path/to/chroot/dir. If you want to include 
ports and documentation on the release media, CVSUP_HOST must be defined 
in the environment to point to a cvsup mirror. The output is placed in 
/R in the chroot directory, as before.

If the chroot is unimportant (it ensures a total clean-room build, but 
may not be necessary in most cases), you can get a release build using 
the regular makefile, like so:
cd /usr/src
make buildworld buildkernel
cd /usr/src/release
make obj release

By default, this will include ports and documentation if you have them 
checked out to /usr/ports and /usr/doc, though this behavior can be 
modified (see the top of the makefile). In addition, some architectures 
(i386, amd64, powerpc, powerpc64, and maybe ia64) have release media 
that can be cross-built, so you can set TARGET/TARGET_ARCH appropriately 
for those. Output goes to .OBJDIR, which is /usr/obj/usr/src/release in 
the case of the above commands. The equivalent to disc1 is called 
release.iso, the memstick image (i386, amd64 only) is called memstick, 
and a directory of distfiles for FTP mirrors is generated named ftp.

Next steps

The new installer is feature-complete at this time (except for a merge 
with the pc-sysinstall code base and the possible addition of ZFS 
support in the partition editor), so the next steps mostly involve 
documentation updates to manpages and the handbook. Generation of a 
bootonly ISO is another thing that should happen soon. Given time (or 
external patches), I would also like to update sysinstall to use the 
new-style distribution files so it can be an option on the 9.0 install CDs.

Beyond that, please test this code as much as possible, and report any 
bugs, suspicious behaviors, or bad interfaces (or patch them -- patches 
for anything are always very welcome!). We have another several months 
before 9.0, so let's try to find all the bugs long before then.

Thanks again to everyone who helped this project with comments and 
testing, especially to Bjoern Zeeb who got me irritated enough by 
sysinstall to start working on this project.

More information about the freebsd-arch mailing list