% 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{article}
\title{The Official Debian CD Standard}
\author{Gerhard Poul}

%TODO List:
%
%upgrade/
%boot/
%utils/
%<netgod> gp: also it might be useful to document the correct way to invoke
%+dpkg-scanpackages locally
%<netgod> gp: so the Packages and Packages.gz files are guaranteed to work
%
%>BTW Are you using the hard link trick Andreas came up with for debian-cd ?
%
%
%someone came with a better approach :
%the pacthed mkisofs is able to decide, whether a symlink is inside the root
%directory (keep it as symlink) or is directed to something outside the root
%dir (make it a directory).
%
%that way you can replace all recursive/hardlink creating copies with one
%ln -s command.
%
%but i did not test the patch yet. did anyone ?

\begin{document}

\maketitle

\section{Introduction}

Debian GNU/Linux is getting bigger and bigger very fast at the moment. As soon
as slink (Debian 2.1) will be released (December 1998) the distribution will
not fit on one cd-rom any more.

That's why the debian team is looking for methods to split the distribution
over more than one cd. This standard tells software developers how to develop
software which is compatible with the format that will be used for the cd's.

All programs like apt, dpkg, dselect, and debian-cd will have to support
these features. 

\section{Parts of the CD}

%\subsection{CD root}
%
%This directory contains README,\dots files. These will be explained in more
%detail in the next version.

\subsection{Packages}

Every CD has to contain a complete {\tt packages} file and a 
{\tt packages.cd.gz} in the {\tt binary-\$arch} directory.

%\subsection{Documentation}

%\subsection{Distribution}

%Also mentoin the links

%\subsection{Tools}

\section{Management Information}

Special Information about every cd are contained in a directory named
{\tt .disk}. Because it's a real directory it should be very easy to add
information without breaking old cd's.

\subsection{CD Volumes}

Every cd has to contain an identification string (max 255 chars which is
also written on the cd cover) in {\tt .disk/info}.

\section{Sample Layout}

%describe all files!

\begin{verbatim}
 CD1 .disk/info = "Debian GNU/Linux binary-i386"
     dists/stable/main/binary-all/
                       binary-i386/Packages.cd.gz
                       binary-i386/net/foo.deb
                  contrib/binary-i386/Packages.cd.gz
                  non-free/binary-i386/Packages.cd.gz
                  non-US/binary-i386/Packages.cd.gz

 CD2 .disk/info = "Debian GNU/Linux contrib-i386"
     dists/stable/main/binary-i386/Packages.cd.gz
                  contrib/binary-all/
                          binary-i386/Packages.cd.gz
                          binary-i386/net/foo.deb
                  non-free/binary-i386/Packages.cd.gz
                  non-US/binary-i386/Packages.cd.gz

 CD3 .disk/info = "Debian GNU/Linux non-free-i386"
     dists/stable/main/binary-i386/Packages.cd.gz
                  contrib/binary-i386/Packages.cd.gz
                  non-free/binary-all/
                           binary-i386/Packages.cd.gz
                           binary-i386/net/foo.deb
                  non-US/binary-all/
\end{verbatim}

\end{document}
