<?xml version="1.0"?>
<!--<?xml-stylesheet type="application/xml" href="file:///usr/share/sgml/docbook/stylesheet/xsl/nwalsh/xhtml/profile-docbook.xsl"?>-->
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<article>
  <articleinfo>
    <title>
      Debian-Installer Kernel Policy
    </title>
    <author>
      <firstname>Bastian</firstname>
      <surname>Blank</surname>
      <email>waldi@debian.org</email>
    </author>
    <abstract>
      <para>
        This manual describes the policy requirements for Kernels within the Debian
        GNU/Linux distribution for use with the Debian-Installer.
      </para>
    </abstract>
    <copyright>
      <year>2003</year><holder>Bastian Blank</holder>
    </copyright>
    <legalnotice>
      <para>
        This manual 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.
      </para>
      <para>
        This 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.
      </para>
      <para>
        A copy of the GNU General Public License is available as
        <filename>/usr/share/common-licenses/GPL</filename> in the Debian GNU/Linux
        distribution or on the World Wide Web at
        <ulink url="http://www.gnu.org/copyleft/gpl.html">The GNU Public Licence"</ulink>.
      </para>
      <para>
        You can also obtain it by writing to the
        Free Software Foundation, Inc., 59 Temple Place - Suite 330,
        Boston, MA 02111-1307, USA.
      </para>
    </legalnotice>
  </articleinfo>

  <chapter>
    <title>Scope</title>

    <para>
      This manual describes the policy requirements for Kernels within the Debian
      GNU/Linux distribution for use with the Debian-Installer.
    </para>

    <para>
      In the normative part of this manual,
      the words <emphasis>must</emphasis>, <emphasis>should</emphasis> and
      <emphasis>may</emphasis>, and the adjectives <emphasis>required</emphasis>,
      <emphasis>recommended</emphasis> and <emphasis>optional</emphasis>, are used to
      distinguish the significance of the various guidelines in
      this policy document, as described in the Debian Policy. 
    </para>
  </chapter>

  <chapter>
    <title>Requirements</title>

    <section>
      <title>Linux</title>

      <para>
        Linux kernels which are used by the Debian-Installer must include the following parts:

        <itemizedlist>
          <listitem>
            <para>
              devfs
            </para>
          </listitem>
          <listitem>
            <para>
              tmpfs
            </para>
          </listitem>
          <listitem>
            <para>
              ramdisk with initrd support
            </para>
          </listitem>
          <listitem>
            <para>
              Unix Domain Sockets support
            </para>
          </listitem>
        </itemizedlist>
      </para>
    </section>
  </chapter>

  <chapter>
    <title>Packages</title>

    <section>
      <title>Versioning</title>

      <abstract>
        <para>
          Any new upstream linux kernel version needs a new package name.
        </para>
      </abstract>

      <!--
      <para>
        We want to be able to have more the one recent upstream kernel version
        in the archive, so we need.
      </para>
      -->
      <note status="draft">
        <para>
          binary packages may include a extra version part for binary
          incompatible changes
        </para>
      </note>
    </section>

    <section>
      <title>Gerneral use Kernel Images</title>

      <para>
        The general use Kernel Images are out of the scope of this document.
      </para>
    </section>

    <section>
      <title>Debian-Installer use Kernel Images</title>

      <section>
        <title>Linux</title>

        <para>
          The debian-installer use linux kernel images should be devided in more packages:

          <variablelist>
            <varlistentry>
              <term>
                <systemitem role="package">linux-kernel-VERSION-udeb</systemitem>
              </term>
              <listitem>
                <para>
                  This package only include the kernel image themself.
                </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term>
                <systemitem role="package">linux-modules-TYPE-VERSION-udeb</systemitem>
              </term>
              <listitem>
                <para>
                  Any of this packages includes a limited set of modules.
                </para>
              </listitem>
            </varlistentry>
          </variablelist>
        </para>

        <para>
          This packages must be built with the same binaries than the general use kernel images. They must be maintained by Debian Install System Team <email>debian-boot@lists.debian.org</email>.
        </para>

        <para>
          <variablelist>
            <varlistentry>
              <term>
                <systemitem>VERSION</systemitem>
              </term>
              <listitem>
                <para>
                  This version includes the arch or subarch. For example: 2.4.21-i386, 2.4.21-riscstation.
                </para>
              </listitem>
            </varlistentry>
          </variablelist>
        </para>
      </section>
    </section>

    <section>
      <title>Bootstrap package for debian-installer use kernel images</title>

      <para>
        The debian-installer use kernel images should be built separately
        to make changes in the module list without need to rebuild the gerneral
        used image.
      </para>

      <para>
        For this build, the kernel maintainers should provide extra package
        <systemitem role="package">OSTYPE-VERSION-udeb-files</systemitem>.
      </para>

      <para>
        This package is required to include any files which are needed to build the
        corresponding debian-installer images, including

        <itemizedlist>
          <listitem>
            <para>
              a completely resolved modules.dep,
            </para>
          </listitem>
          <listitem>
            <para>
              the corresponding System.map.
            </para>
          </listitem>
        </itemizedlist>
      </para>

      <para>
        This bootstrap package must not clutter the filenamespace of the kernel images.
        Therefor any files in this package must reside in 
        <filename class="directory">/usr/lib/debian-installer/kernel/</filename>.
      </para>
    </section>

  </chapter>
</article>
