# Setup

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.

## Necessary configuration

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`.

## More advanced configuration

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!

(c) Steve McIntyre <steve@einval.com>, December 2006. GPL v2
Prev - debian-cd requirements
Next - Running debian-cd to make some disc images