$NetBSD: README,v 1.4 2009/03/22 15:02:24 tsutsui Exp $

This distrib/cdrom directory was used to create bootable CD images
in the past releases with optional rsync(1) and mkisofs(8) tool.
All necessary binaries for ISOs must be prepared in ${DISTRIBDIR},
which is ${.OBJDIR}/download by default, and the binaries can be fetched
by rsync(1) with the "fetch" target defined in Makefile.

Now build.sh script has the "iso-image" target using our native makefs(8)
and this distrib/cdrom is being superseded, but our makefs(8) still
lacks support for a hybrid ISO9660/HFS file system which is required
to create bootable CD images for mac68k and macppc.

On the other hand, the recent version of mkisofs(8) seems to use
iconv(3) libraries on creating the hybrid ISO9660/HFS file system,
but the latest mkisofs(8) (at least cdrtools-2.01.01.36) from pkgsrc
dumps core on it. cdrtools-2.01 is required to build images. (PR pkg/37643)

Note you can also use compiled release binaries prepared in RELEASEDIR by
"build.sh release" if you need only single ISO image for a specific port.


Environment variables:

RELEASE
  specify target release version (no default, mandatory)

TARGET_CD_IMAGE
  specify target ${MACHINE}cd name
  (default: all targets defined in ${RELEASE}.conf)

MKISOFS
  specify mkisofs(8) path (default: /usr/pkg/bin/mkisofs)

RSYNC
  specify rsync(1) path (default: /usr/pkg/bin/rsync)

RSYNC_HOST
  specify rsync host (default: rsync.NetBSD.org)

RSYNC_PATH_PREFIX
  specify extra prefix path of NetBSD module names for rsync mirrors
   ex. "/pub", "/netbsd" etc. (default: empty)

DAILY_DIR
  specify directory name on using NetBSD-daily snapshot for -current
   ex. "200712060002Z" etc. (no default; mandatory for -current)

BRANCH
  spcify branch name on using NetBSD-daily snapshot (default: current)

RELEASE_SUFFIX
  specify suffix of directory names used for pre-releases
   ex. "_BETA2", "_RC5" etc. (default: empty)

RSYNC_PATH
  specify path used to rsync hosts (default: set from the above variables)


Example usage:

make RELEASE=5.0 TARGET_CD_IMAGE=mac68kcd fetch
 -> fetch 5.0 mac68k sets from
    rsync://rsync.NetBSD.org/NetBSD/NetBSD-5.0/

make RELEASE=4.0 TARGET_CD_IMAGE=mac68kcd RELEASE_SUFFIX=_RC5 fetch
 -> fetch 4.0_RC5 mac68k sets from
    rsync://rsync.NetBSD.org/NetBSD/NetBSD-4.0_RC5/

make RELEASE=current TARGET_CD_IMAGE=mac68kcd \
    DAILY_DIR=200903060000Z fetch
 -> fetch -current mac68k sets from
    rsync://rsync.NetBSD.org/NetBSD-daily/HEAD/200903060000Z/

make RELEASE=4.0 TARGET_CD_IMAGE=mac68kcd RELEASE_SUFFIX=_RC5 \
    RSYNC_HOST=rsync3.jp.NetBSD.org \
    RSYNC_PATH_PREFIX=/pub fetch
 -> fetch 4.0_RC5 mac68k sets from
    rsync://rsync3.jp.NetBSD.org/pub/NetBSD/NetBSD-4.0_RC5/

make RELEASE=5.0 TARGET_CD_IMAGE=mac68kcd \
    RSYNC_HOST=rsync.jp.NetBSD.org \
    RSYNC_PATH=/NetBSD-daily/netbsd-5/200903070000Z fetch
 -> fetch mac68k sets of netbsd-5 branch from
    rsync://rsync.jp.NetBSD.org/pub/NetBSD-daily/netbsd-5/200903070000Z

make RELEASE=5.0 TARGET_CD_IMAGE=mac68kcd all
 -> build an ISO image for mac68k from downloaded files as the above

make RELEASE=5.0 TARGET_CD_IMAGE=macppccd \
    DISTRIBDIR=/usr/obj.macppc/releasedir all
 -> build an ISO image for macppc from release binaries
    built by "build.sh release" in the RELEASEDIR 
    (use appropriate RELEASEDIR on your build environment)
