debian-cd-clone/docs
Steve McIntyre 89c274c415 debian-cd (3.1.13) unstable; urgency=medium
* The traditional "last upload before the stable release" upload...

  [ Robert Spencer ]
  * Use ARCHIVE_KEYRING_PACKAGE and ARCHIVE_KEYRING_FILE parameters to
    not hardcode debian-archive-keyring and let derivatives use their
    own keyring.
  * Add further support for missing win32-loader.ini. Closes: #705594
  * Allow for override of distro name etc. in grub.cfg for EFI boot too.
    Closes: #705610

  [ Steve McIntyre ]
  * Tweak handling of {udeb,base}_{include,exclude} files so multi-arch
    builds should work better. Closes: #703436
  * Remove the dpkg check for debootstrap version before passing the
    --no-check-gpg option; we're not going to support debootstrap versions
    so old that they don't support this flag, *and* the dpkg-query call
    doesn't give us the right version anyway - we're using an extracted
    copy from the archive, not the one that (might be) installed on our
    build machine.

# imported from the archive
2013-04-30 17:54:32 -04:00
..
README.variants debian-cd (3.1.13) unstable; urgency=medium 2013-04-30 17:54:32 -04:00
getting.html debian-cd (3.1.13) unstable; urgency=medium 2013-04-30 17:54:32 -04:00
index.html debian-cd (3.1.13) unstable; urgency=medium 2013-04-30 17:54:32 -04:00
makefile.html debian-cd (3.1.13) unstable; urgency=medium 2013-04-30 17:54:32 -04:00
requirements.html debian-cd (3.1.13) unstable; urgency=medium 2013-04-30 17:54:32 -04:00
running.html debian-cd (3.1.13) unstable; urgency=medium 2013-04-30 17:54:32 -04:00
setup.html debian-cd (3.1.13) unstable; urgency=medium 2013-04-30 17:54:32 -04:00

README.variants

Introduction
------------

Variants enable debian-cd to include extra functionality in a built
image which is somewhat orthogonal to the usual DISKTYPE and ARCH
configurations.

Variants are enabled by setting the VARIANTS environment variable to a
space separated list of the variants to enable or by passing the -V
option (multiple times if desired) to the easy-build.sh script.

Available Variants
------------------

* `xen' [i386, amd64 only]

  This variant includes a kernel and installer initrd which is
  compatible with the Xen hypervisor in `install.<arch>/xen' and
  includes matching kernel module .udebs as well as a suitable kernel
  .deb for installation into the final system.

Implementation
--------------

Variants impact several aspects of the debian-cd infrastructure:

  environment variable
  --------------------

  The $VARIANTS environment variable is available to any scripts etc
  which are run as part of the build process and is a space separated
  list of the variants which are enabled.

  In particular this maybe used by the per-archtecture
  tools/boot/<distro>/boot-* scripts which make an image bootable on a
  particular architecure. To facilitate this
  tools/boot/<distro>/common.sh defines a function `variant_enabled'
  which takes a variant name as an argument and returns true if that
  variant is enabled.

  deb package lists
  -----------------

  A variant may wish to include extra .deb packages in the image. The
  package lists are preprocessed using `cpp' as part of the build
  process and a C-preprocessor variable `VARIANT_<x>' will be defined
  to 1 for each variant which is enabled.

  udeb package lists
  ------------------

  Similarly a variant may which to include extra .udeb packages in the
  image. The list of udebs to include in an image is generated using
  tools/generate_di_list which reads one or more udeb exclude files
  from data/<distribution>/*. The syntax of these exclude files allows
  a udeb to be excluded or included based on which variants are
  enabled.

  Each line in an exclude file specifies a glob pattern, a udeb whose
  name matches the glob will _not_ be included in the image. After the
  udeb glob each line can optionally contain on or more space
  separated conditions. At least one of these conditions must be met
  in order to exclude the udeb. A condition may either be:
     - a positive `variant' condition, in which case the udeb is
       excluded when that variant is enabled
     - a negative `!variant' condition, in which case the udeb is
       excluded when that variant is not enabled.