multistrap/doc/xml/emrootfslib.3.xml
codehelp 805d62ee59 preparing the new emdebian-rootfs source package
git-svn-id: http://emdebian.org/svn/current@5745 563faec7-e20c-0410-992a-a66f704d0ccd
2009-03-28 21:55:28 +00:00

214 lines
8.4 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<refentry id="emrootfslib">
<refentryinfo>
<productname>emrootfslib</productname>
<productnumber/>
</refentryinfo>
<refmeta>
<refentrytitle>emrootfslib</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo class="source">EMDEBIAN-ROOTFS</refmiscinfo>
<refmiscinfo class="manual">EMDEBIAN-ROOTFS</refmiscinfo>
</refmeta>
<refnamediv id="name">
<refname>emrootfslib</refname>
<refpurpose>Common functions for Emdebian root filesystems</refpurpose>
</refnamediv>
<refsect1 id="description">
<title>DESCRIPTION</title>
<para><emphasis>emrootfslib</emphasis> is intended solely for use on
the build machine. Do not use these functions in second_stage_install !
<emphasis>emrootfslib</emphasis> requires <emphasis role="bold">perl</emphasis>!
</para>
<para>There should be no need to call pbuilder code within scripts that
generate a root filesystem and bash code must not be used in
<emphasis>emrootfslib</emphasis>.</para>
</refsect1>
<refsect1 id="basic_etc_fstab">
<title>basic_etc_fstab</title>
<para>Removing packages from the normal Debian debootstrap set can
mean that certain critical files can be omitted. basic_etc_fstab
creates a basic version of $TARGET/etc/fstab where it does not
already exist.
</para>
</refsect1>
<refsect1 id="basic_group_setup">
<title>basic_group_setup</title>
<para>Removing packages from the normal Debian debootstrap set can
mean that certain critical files can be omitted. basic_group_setup
creates a basic version of $TARGET/etc/group where it does not
already exist.
</para>
</refsect1>
<refsect1 id="basic_passwd_setup">
<title>basic_passwd_setup</title>
<para>Removing packages from the normal Debian debootstrap set can
mean that certain critical files can be omitted. basic_passwd_setup
creates a basic version of $TARGET/etc/passwd where it does not
already exist.
</para>
</refsect1>
<refsect1 id="busybox_inittab">
<title>busybox_inittab</title>
<para>Note: this function overwrites an existing $TARGET/etc/inittab
</para>
<para>busybox does not support runlevels and so the /etc/inittab
file needs to be modified to support busybox. Currently, this function
overwrites an existing $TARGET/etc/inittab - this is likely to change
in future versions.
</para>
</refsect1>
<refsect1 id="busybox_rcS">
<title>busybox_rcS</title>
<para>Note: this function overwrites an existing $TARGET/etc/init.d/rcS
</para>
<para>busybox does not support runlevels and so the /etc/init.d/rcS
script needs to be modified to support busybox. Currently, this function
overwrites an existing $TARGET/etc/init.d/rcS - this is likely to change
in future versions.
</para>
</refsect1>
<refsect1 id="check_dirs">
<title>check_dirs</title>
<para>Check that the $BUILDPLACE, $BUILDRESULT and $APTCACHE directories
exist (used by empdebuild).</para>
</refsect1>
<refsect1 id="checkarch">
<title>checkarch</title>
<para>Calls check_arch from Debian::DpkgCross using perl.
The perl call dies if the specified string does not match a
supported architecture.</para>
</refsect1>
<refsect1 id="create_emdebiantgz">
<title>create_emdebiantgz</title>
<para>Modified version of the equivalent function in pbuilder-modules
to extract the compressed chroot (used by empdebuild).</para>
</refsect1>
<refsect1 id="disable_apt_recommends">
<title>disable_apt_recommends</title>
<para>Enforces a default of not installing recommended packages inside the
chroot.
</para>
</refsect1>
<refsect1 id="extra_etc_rcd">
<title>extra_etc_rcd</title>
<para>Removing packages from the normal Debian debootstrap set can
mean that certain critical files can be omitted. extra_etc_rcd
creates a basic version of $TARGET/etc/rcS.d where it does not
already exist.
</para>
</refsect1>
<refsect1 id="make_dpkg_dirs">
<title>make_dpkg_dirs</title>
<para>Prepare for unpacking and general dpkg work by setting up
$TARGET/var/lib/dpkg/status and $TARGET/var/lib/dpkg/available.
</para>
</refsect1>
<refsect1 id="prepare_proc">
<title>prepare_proc</title>
<para>Ensure that $TARGET/proc and $TARGET/sys exist so that
proc and sys can be mounted automatically.
</para>
</refsect1>
<refsect1 id="prepare_var">
<title>prepare_var</title>
<para>Ensure that $TARGET/var/log/ and $TARGET/var/spool exist so
that various installation routines can proceed.
</para>
</refsect1>
<refsect1 id="set_approx_time">
<title>set_approx_time</title>
<para>Normal Debian installations have a network connection and
typical Debian desktop boxes also have a backup battery. Some
embedded machines do not have either of these systems, making
it impossible to store or retrieve even a vaguely close indication
of the current time.
</para>
<para>set_approx_time uses the systems available on the build
machine to store an approximate indication of the time that the
root filesystem was created and write that time to a file in the
root filesystem itself. For most purposes, this is sufficient for
the purposes of setting up the root filesystem to the point where
a network connection can be created and a call can be made to an
internet clock using <command>ntpdate-debian</command>.
</para>
</refsect1>
<refsect1 id="set_cdebconf_default">
<title>set_cdebconf_default</title>
<para>Adds "export DEBCONF_USE_CDEBCONF=true" to
$TARGET/etc/profile for cdebconf support.
</para>
</refsect1>
<refsect1 id="symlink_rcS">
<title>symlink_rcS</title>
<para>Call repeatedly to create init symlinks, using the template
$TARGET/etc/rcS.d/S$number$file
</para>
<variablelist remap="TP">
<varlistentry>
<term>
<option>file</option>
</term>
<listitem>
<para>file is the filename in $TARGET/etc/init.d/
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>number</option>
</term>
<listitem>
<para>number is the number for the link in the init sequence.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="unpack_debootstrap">
<title>unpack_debootstrap</title>
<para>Specialized routine that replaces the normal second stage of
debootstrap (you may consider it a series of hacks if you prefer).
unpack uses dpkg to extract the files from the .deb package and
process the control information. Unlike <command>dpkg</command>
<option>--unpack</option>, the unpack routine does
<emphasis role="bold">NOT</emphasis> run any maintainer scripts which
would inevitably fail in a cross built environment.
Instead, it updates the relevant dpkg status and database files
in the root filesystem and leaves the package in the unpacked state.
</para>
<para>unpack_debootstrap also sets up the busybox applets - future
versions may split this functionality into a separate function.
</para>
<para>unpack_debootstrap also performs checks on /usr/sbin/invoke-rc.d
and /usr/sbin/update-rc.d - future versions may split this functionality
into a separate function.
</para>
<para>Finally, unpack_debootstrap removes all .deb package files
from /var/cache/apt/archives. The remaining task (dpkg --configure -a)
is performed via emsecondstage.</para>
</refsect1>
<refsect1 id="x_feign_install">
<title>x_feign_install</title>
<para>Copied from debootstrap suite scripts to make a basic
installation of a .deb package - although this is the basis of
unpack_debootstrap, it is only really used for dpkg itself.
</para>
</refsect1>
<refsect1>
<title>Author</title>
<para><emphasis>empbuilderlib</emphasis> was written
by Neil Williams <email>codehelp@debian.org</email>.
</para>
<para>This manual page was written by Neil Williams
<email>codehelp@debian.org</email>
</para>
</refsect1>
<refsect1 id="seealso">
<title>SEE ALSO</title>
<para>See also <filename>apt-cross</filename> (1),
<filename>dpkg-cross</filename> (1), <emphasis>emdebian-tools</emphasis> (1),
<filename>empdebuilderlib</filename> (3).
</para>
</refsect1>
</refentry>