Debian hosts

A package named by the PackageName parameter will be generated, as well as a custom kernel-image package.

Currently these packages hard-code the host-name, so that one package has to be produced for each machine, which is very inconvenient. This will be fixed.

Since all configuration files, in Debian like in any other FHS-compliant OS, are located under /etc/, this is the only place where we install files. The /etc/ directory on the host will be adjusted from data in templates/etc/.

As there is no such thing as "default" installation as of Debian 3.0, we hereby define it as installing from a medium that is left to be defined in lower levels in the hierarchy, using the following answers to the installer, augmented by answers found at lower levels:

In the future we may find better way to define this - for example provide a "default install" non-interactive procedure, possibly based on FAI or another tool.

Mandatory fields:

Description

a one-liner that will be the "short description" for the package.

DebianRelease

the code-name (eg: potato, woody) of the release to use. This will be used for the generation of the package repository.

DebianDist

The name of the distribution to be used in the repository. This is similar to main and contrib in Debian.

KernelVersion

you guess

DnsServer

you guess

KernelSourceDir

a directory that contains the needed kernel source, in tar.bz2 format. This is set to /usr/src by the default host-pkg.conf, but should usually be overridden in /etc/host-pkg.conf or ~/.host-pkg.conf.

DebianRepository

The directory under which dists directory will be found. This is set to /var/lib/host-package by the default host-pkg.conf, but should usually be overridden in /etc/host-pkg.conf or ~/.host-pkg.conf.

Mandatory files (rooted at the templates/ or target/ dir):

kconfig

kernel .config file. Its own RCS revision will be used to version the kernel-image package.

fresh-install.list

list of packages on a freshly installed Debian default installation, as output by dpkg --get-selections, before ever running dselect.

fresh-plus-dselect.list

list of packages on a freshly installed Debian default installation, as output by dpkg --get-selections, after running dselect and going though update, then select without selecting anything, then install.

wished-packages.list

list of packages we want on the machine. The debian/generic layer provides some required lines, and the debian/distro layer provides the initial package list, so that this should usually be supplemented using the "append" feature.

Other mandatory files:

linux-version.tar.bz2

plain kernel tarball from ftp.kernel.org, that should be available in the directory named by the KernelSourceDir (see above).


Bootstrapping a new Debian release

  1. build an initial config file from an existing one

  2. do an initial minimal installation as defined above

  3. build fresh-install.list and fresh-plus-dselect.list described above, and commit them into templates/

  4. build a templates/wished-packages.list$append file, with expand | cut -d' ' -f1

  5. import into templates/etc/ original files that need parametrisation, and modify them as needed

  6. commit, and tag