Subject: Re: Creating bootable CDs as part of the release process
To: NetBSD Current Users <current-users@NetBSD.org>
From: Peter Eisch <peter@boku.net>
List: tech-install
Date: 06/07/2006 10:03:59
On 6/7/06 2:37 AM, "Hubert Feyrer" <hubert@feyrer.de> wrote:

> On Tue, 6 Jun 2006, Steven M. Bellovin wrote:
>> Thanks you -- a very useful step.  Just to be clear -- 'build.sh release'
>> for these platforms will automatically build the .iso files if mkisofs
>> exists?  There's no need to use 'build.sh iso-image'?
> 
> s/mkisofs/makefs/, which is part of NetBSD -> always, for the named
> platforms. I don't know if there's demand for bootable kernel-only ISOs
> for other platforms. If so, we have to see if makefs can create
> appropriate bootable floppies - right now it's unfortunately not a 100%
> replacement for mkisofs.

I do have a wrapper around the macppc build that fiddles with making the cd
bootable.  What other platforms need such helpers?

>> Let me make a suggestion: provide some mechanism for user additions to the
>> generated .iso file.  My personal BUILDCD script includes tarballs
>> of /usr/src and /usr/xsrc on the CD -- they fit, and they're useful when
>> I'm installing -current snapshots of random vintages.  Other people may
>> want to include other things, such as their favorite collection of binary
>> packages.
> 
> Some larger framework than my work will have to in include this work.
> E.g. I'd like to see a hook to run something in some directory _after the
> full build_, so we can make a bootable install-CD (i.e. including the
> sets).

Unless augmenting build.sh is really easy it might be a good point to
introduce a call a hook or just have a different tool.  My "BUILDCD" script
ends up generating:

    /builds/current/src/build.sh -j 3 -u -U -N 0 -x -M \
    /builds/current/i386/obj -m i386 -D /builds/current/i386/dest -R \
    /builds/current/i386/release -T /builds/current/i386/tools \
    kernel=PETER-FW2 releasekernel=PETER-FW2 kernel=PETER-FW \
    releasekernel=PETER-FW release

(Where the kernels are glob'd based on what conf files I've built.
Unfortunately I copy them into the src tree and then delete them after the
build.)

Adding another arg or sets of args to build.sh might be confusing to someone
who is simply trying to take a release and re-roll it.  Perhaps something
that uses pkg_comp might make sense?  It's framework already creates an
environment that seems to be suited to be an arg for makefs.

Maybe I'm missing something simpler or too obvious for me?

peter