Subject: RFD: release installation/ organization
To: None <tech-install@netbsd.org>
From: Michael Wolfson <michael@nosflow.com>
List: tech-install
Date: 03/22/2003 16:19:10
Not sure if this is entirely the right forum, but here goes:

I've got a problem with the way we currently store files in our
installation directories.  To be more specific, each port seems to have its
own scheme.  We do just about everything else in a machine independent
fashion, why not this?

I realize that there are MD aspects of this problem, such as the filenames
permissible by the native OS, firmware, boot ROM, or PROM.  If we were to
clean up as much as possible, documentation gets easier and thus it's
easier for users.  Therefore, consider this a request for discussion which
we can hopefully use to reach some sort of guideline.

Please bear with me, as I have quite a few name change suggestions, as
there is a lot of legacy in our current naming.  Additionally, correct me
if I'm wrong, but we can probably assume that filenames can be quite a bit
longer.  That's one of the things I always hated about Windows -- that
you've got cryptic filenames, even though they've been capable of using
longer filenames since '96.  I see no need to hold all platforms down to
8.3 just because there are a few i386 MS-DOS holdouts.  Those holdouts can
rename their files if it makes installation easier for the other 99% of our
users.

How about:

bootloader
        netbsd-arch-boot.type           bootloader (if necessary) to be copied
                                        to the native filesystem and booted
from
                                        native OS or firmware

cd-rom
        link to iso directory or file saying "no CD-ROM images available
        for this release" -- why make them search for it

diskimage/
        netbsd-arch-installdisk.fs      filesystem that can be dd or
                                        rawrite'd to an empty partition or disk

floppy/
        netbsd-arch-floppy-1of1.fs      floppy disk image(s)

kernel/
        netbsd-GENERIC.gz               GENERIC kernel to be copied to
                                        native filesystem and booted from
                                        native OS or firmware
        netbsd-GENERIC_INSTALL.gz       same, but installation kernel
                                        (if available)
        netbsd-TINY_INSTALL.gz          same, but lacking unnecessary drivers
                                        for an installation
        netbsd-OTHER.gz                 same

netboot/
        netbsd-arch-netboot.type        bootloader (if necessary) where
                                        type is .exe, .xcf, .elf, etc...
        netbsd-GENERIC.gz               netbootable kernel
        netbsd-GENERIC_INSTALL.gz       netbootable installation kernel
                                        (if available)
        netbsd-TINY_INSTALL.gz          same, but lacking unnecessary drivers
                                        for an installation
        netbsd-arch-installfiles.tgz    diskimage contents as tar archive
                                        for platforms without ramdisk kernel

tapeimage/
        netbsd-arch-tape-1of1.fs        tape image(s)

tools/
        most stuff currently in "misc" directories is really tools and
        should called "tools" or "utilities"

A few things to note:

1) rename "miniroot" to "diskimage".

2) ditch "netbsd-INSTALL" and "netbsd-GENERIC_MD" for the stripped and
   full sysinst ramdisk kernels.  Call them -GENERIC_INSTALL and -TINY_INSTALL.

3) bootloaders called something other than "boot".  netboot loader
   distinguished from non-netboot loader if they're different.

4) mirror sites that don't carry ISO images can have a directory with a file
   listing the mirrors that do carry them and yet still have the same soft
   link from each arch's cd-rom directory.

5) all filenames using this scheme will end up conforming to ISO level 2
   (32), unix (256), HFS (MacOS =< 9.2) (31), and FAT32 (Windows >= 95) (256)
   which probably covers most user systems.

6) netboot directory should have either a ramdisk kernel or a tar.gz file with
   the miniroot files that can be extracted on the netboot server (thus
   providing a netboot installation).

7) diskimage directory should have (depending on availability) a filesystem
   image that can be dumped to an empty partition or disk with the ramdisk
   kernel or miniroot.

8) I know the "netbsd-" at the beginning of all files might seem redundant,
   but for users that run other OSes on their system it makes things simpler
   to know what the files are for.

9) We could include the release version number in the file name but it might
   then be too long for ISO level 2 and MacOS =< 9.2.


The only problems arise when copying these files to an MS-DOS floppy or ISO
level 1 CD-R for firmware booting.  Most OSes will provide a truncated name
as well as the long name, but the user may have to figure it out before
trying to boot or rename the file.

Comments?  Did I miss anything important?
  -- MW