Configuration for debian-cd is stored in the file CONF.sh. This file is a shell script that is sourced in by the build scripts; options are set up in the file using standard shell syntax for environment variable handling.
The file that is shipped by default with debian-cd is well-commented, but is rather large and may be initimidating to new users. There are lots of options, but most of them have sane defaults and can be ignored in common use.
The key options that would always be configured by a user are:
CODENAME
- typically "etch", "lenny" or "sid"
DEBVERSION
- the version number to go with that codename
OFFICIAL
- do not claim to be making official Debian CDs here!
MIRROR
- specify the absolute path to your mirror of the Debian archive
TDIR
- a path to a temporary directory; should be on the same filesystem as MIRROR
so that hard links work
OUT
- the directory where ISO images and/or jigdo files will be created
APTTMP
- another temporary directory for layout code; can live anywhere
ARCHES
- (optionally) specify the architecture(s) to
build for. If you you want a multi-arch disc set, specify all the
arches you want as one argument, using quotes (e.g. "amd64 i386
powerpc")
DISKTYPE
- the type of disc you're trying to
build. Recognised values are: BC
, NETINST
,
CD
, CD700
, DVD
and
CUSTOM
. The disc type is mainly used to decide the
allowable size per output image. If you choose CUSTOM
,
then you'll also need to set CUSTOMSIZE
to the size of
your media.
Setting these options is sufficient to allow creation of a standard
set of CDs for your architecture, that should look very similar to the
official Debian builds. To actually start the build for one
architecture, run build.sh $ARCH
. To build for more
architectures, run build_all.sh
.
A larger set of options that might be commonly tweaked by users wanting to make different images include:
DI_WWW_HOME
- specify the location of d-i boot images to go on the first CD rather than the default ones from the mirror
CONTRIB
- whether or not to allow packages from the contrib section onto the CDs
NONFREE
- whether or not to allow packages from the non-free section onto the CDs
EXTRANONFREE
- like NONFREE
, but sort the non-free packages to a separate last CD instead of mixing them in
LOCAL
- if you have a local set of packages that you want to merge into your CDs, specify the location here. The location should look just like the other sections (main, contrib, non-free) with Packages files etc.
LOCALDEBS
- if you have set LOCAL
above
and the local packages are outside of the MIRROR
tree,
specify the local here.
EXCLUDE
- specifies a file listing packages that should be omitted from consideration when laying out the CDs
UNEXCLUDE$N
- a way to re-add excluded packages back into the set, starting with CD number $N. Using EXCLUDE
and UNEXCLUDE
allows some finer-grained control of package placement if desired
DOJIGDO
- specify what to create: 0 means ISOs only; 1 means ISOs and jigdo files; 2 means jigdo files only
JIGDOFALLBACKPATH
- if you're publishing jigdo files, you may specify a location here and debian-cd will create a snapshot tree for you
JIGDOFALLBACKURLS
- this is how to specify the URL that the JIGDOFALLBACKPATH
corresponds to
UDEB_INCLUDE
- a file listing installer udebs that should be pushed into the install system
UDEB_EXCLUDE
- opposite of UDEB_INCLUDE
BASE_INCLUDE
- a file listing packages that should be installed onto the target system by d-i
BASE_EXCLUDE
- packages that should not be installed
INSTALLER_CD
- use this to specify the type of disc to create: 0 means a normal CD/DVD set; 1 means a "business card", i.e. just d-i and no packages; 2 means a "netinst", i.e. d-i and the base system only
MAXCDS
- a way to limit how many CDs will be built; this won't force packages to fit, but will simply cut off the build once the specified number are done
SPLASHPNG
- specify the image to be used on the boot splash screen, on architectures where this is supported
If you do tweak some of these options, it may take quite a few iterations of testing to get exactly what you're looking for. Be warned!
For more information and yet more configuration, please see the comments in the shipped CONF.sh file. Or, if in doubt, ask!