% The Official Debian CD Standard 
% Copyright (C) 1998 Gerhard Poul (gp@atnet.at)
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2 of the License, or
% (at your option) any later version.
% 
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

\documentclass[a4paper]{article}
\title{Debian GNU/Linux CD Standard}
\author{Gerhard Poul}

\begin{document}

\maketitle

\section{Introduction}

To allow flexible installation from multi-volume removable media
the following scheme is proposed.  Note that although I will use
the term "CD" to refer to a particular data storage media, this
scheme is quite general, and can be applied to DVD, Zip disks,
removable hard drives or even floppies.

The scheme works by associating each CD with a name.
This name should correspond with the label on the front of the CD.
The name is available on the CD, so the system can find out which CD is in
the drive at any time.

\section{CD Layout}

One CD in any set contains a file in the root directory called "contents".
It is a text file containing the following fields:

\begin{verbatim}
SetName: <name of the CD set>
SetVendor: <name of the vendor who prepared the CD set>
SetDescription:
 <multi line description of the CD set>
\end{verbatim}

This simply describes the name of the CD set, the vendor, and says
what is on it.  The user might be prompted with this information, and
asked whether they want to add all the suggested sets of packages to
their available packages list (see below for suggested sets).
Or the system can just store this information, or even ignore it
if it is not needed.

The rest of the fields are optional, but you would usually expect
one or more of:

\begin{verbatim}
PackagesName: <name of a set of packages>
PackagesMedia: <name of the media>
PackagesPath: <path from the media root to the packages>
PackagesFileMedia: <name of the media>
PackagesFile: <path to the Packages file (relative)>
PackagesSuggested: <yes|no : whether it is the default to install
 these packages>
PackagesDescription:
 <multi line description of this set of packages>
\end{verbatim}

This describes the location of a group of packages.  Note that the
Packages.gz file can be on a different CD to the packages themselves,
if desired (it's probably useful to put them all on the first CD, to
make first time updates easier).  Users can also be prompted to
see if they actually own all the CDs---if not, it would be reasonably
easy to ignore Packages files for packages that are stored on a
different CD.

The suggested field decides whether this is a {\em default} choice of
packages. 

You can have more than one of these.

\subsection{Sample contents}

\begin{verbatim}
    SetName: Debian 2.0r2 for x86
    SetVendor: FunkyLinux Productions
    SetDescription:
     FunkyLinux is proud to present the all singing all
     dancing Debian 2.0r2.
     .
     This CD set consists of the main Debian distribution
     and the non-US section.
     .
     We also include a section of software specifically for
     disco enthusiasts.  This is not in the default selection,
     but be sure to choose it if you want it.

    PackagesName: non-US
    PackagesMedia: Debian 2.0r2 CD 2
    PackagesPath: /debian-non-US
    PackagesFileMedia: Debian 2.0r2 CD 1
    PackagesFile: /extras/Packages-non-US.gz
    PackagesSuggested: no
    PackagesDescription:
     The non-US section.  These packages have export restrictions 
     in some places.  See if you can guess where.

    PackagesName: disco
    PackagesMedia: Debian 2.0r2 Disco CD
    PackagesPath: /debian-disco
    PackagesFileMedia: Debian 2.0r2 CD 1
    PackagesFile: /disco/Packages.gz
    PackagesSuggested: yes
    PackagesDescription:
     Disco utilities.  A special feature of the "FunkyLinux"
     Debian distribution.
\end{verbatim}

\section{First CD Contents}

\subsection{Bootable}

The CD should be made bootable if it's supported by the architecture. 
If there are more than one architecture on one CD it shouldn't be made
bootable.

\subsection{CD root}

Every distributor can decide which additional things will be added to the
CD. But there should be at least a file which tells the user about the
license and about where he can get more informations about Debian.

\subsection{Documentation}

%should be described in more detail

This documentation should be taken from the debian mirrors /doc directory.

\subsection{Tools}

%should be described in more detail

These tools will be copied from /tools on the debian ftp server

\section{Management Information}

\subsection{Links}

There should be the right links to the distribution directory. e.g. If you
copy an unstable distribution there should be an {\tt unstable} link but
no {\tt frozen} one which points to a wrong or not existing directory.

\subsection{binary-all}

The files in {\tt binary-all} directory should be linked from the 
{\tt binary-\$arch} directory.

\end{document}

