MMAKER(1)

Brendan Sleight <morphix@barwap.spam_removed.com>

NAME

mmaker - Creates a morphix base or morphix main module, using template files

SYNOPSIS

mmaker [-g debootstrap.tar.gz] [-b debootstrap.tar.bz] [-a /path/to/package1.deb [-a /path/to/package2.deb]] [-m miniroot.gz] [-k vmlinuz-mykernel] [-t /tempdir] [-c] [-d /debootstrapped] [-p http://proxy.mydomain.com:8080] [-v] [-i] input.xml output.mod

DESCRIPTION

Mmaker creates a Morphix base or main module output.mod, using a xml template file input.xml. A really lazy way to build parts of a LiveCD.

OPTIONS

-g debootstrap.tar.gz
Use a local debian bootstrap, rather than download from repository.
-b debootstrap.tar.bz
Use a local debian bootstrap, rather than download from repository.
-a /path/to/package
add this package to the module.
-d /debootstrapped
Use a local debian bootstrap, rather than download from repository.
-m miniroot.gz
Use a local miniroot, rather than download from repository.
-k vmlinuz-mykernel
Use a local kernal, rather than download from repository.
-t /tempdir
use this temp directory instead of making a new one.
-c
Clean temporary directories.
-p http://proxy.mydomain.com:8080
Use a proxy for downloading packages
-v
Verbose mode - hepful for debugging.
-i
Interactive mode - may not work.

EXAMPLES

Build a Morphix base module
mmaker -m /my/livecd/boot/miniroot.gz -k /my/livecd/boot/vmlinuz basemod.xml /my/livecd/base/morphix
Build a Morphix main module
mmaker firefox.xml firefox.mod

EXAMPLES -TEMPLATES

Quick overview on the layout of a template. For examples, see the
template/ directory.

---

The syntax is derived from Progeny's CL scheme, which was derived from
Redhat's. This one has a list of available options in your template, with
comments to help you out.

<comps>
  <group>
    <version>version number of module</version>

    <id>lowercase identifier</id>

    <name>natural-language name of module</name>

    <description>possibly multiline description of module</description>

    <type>[mainmod|basemod|minimod]</type>
        <!-- currently only main/basemod are useful  -->

    <suite>[sid|sarge|woody|unstable|testing|stable]</suite>
        <!-- debian flavour to use -->

    <arch>[i386|powerpc|sparc|hppa|amd64|whatnot]</arch>
        <!-- for attempting to build on a different architecture, use with care -->

    <retrieve>
        <from>/file/on/my/harddisk</from>
        <to>/place/in/module</to>
    </retrieve>

    <retrieve>
        <from>http://localhost/myfile</from>
        <to>/place/in/module</to>
    </retrieve>

    <retrieve type="[tar.gz|tar.bz2]"> <!-- only implemented for local from-to -->
        ...
    </retrieve>

    <repositorylist>

      <repository type="[debian|plain]" [nonfree="true"] [suite="woody|sarge|sid|stable|testing|unstable]>URL</repository>
        <!-- either a normal repository or a debian one.
             Need one debian repository for main/base modules
             use nonfree if you want to add contrib/non-free to your apt line
             adding the suite tag here overrides the default suite
        -->
      ...
    </repositorylist>
    <packagelist>

      <packagereq [target="sid|sarge|woody|unstable|testing|stable"]>packagename</packagereq>
        <!-- package to apt-get install, optionally set target to
             define the -t/--target-release of the package -->
      ...

      <packagedel>packagename</packagereq>
        <!-- package to apt-get purge -->
      ...
    </packagelist>

    <localdeblist>

      <localdeb>/path/to/package.deb</localdeb>
        <!-- this package from the host system is copied into the build directory and installed using dpkg -i. It is removed afterwards -->
    </localdeblist>

    <patchlist>

      <patch>path/to/shellscript.sh</patch>
        <!-- shell script on host system, gets copied into the root of the build directory and is executed. It is removed afterwards -->
    </patchlist>

    <commandlist>

      <command>echo "Real Morphers idle on #morphix"</command>
        <!-- shell command run in the build chroot, just before compressing -->
    </commandlist>

  </group>
</comps>

SECURITY

Needs to be run as root or via sudo. So has security implications.

NOTES

Morphix is a modular-based liveCD, designed to be easy to modify. The package morphing-tools and morphix-mmaker contains tools to help modify and build morphix-based LiveCDs.

BUGS

Dont panic. If you find one, report it to us, but please make sure you have read all of the documentation first. We have assumed that you have cloop device and have installed the packages morphing-tools and morphix-mmaker.

AUTHORS

Written by Alex de Landgraaf and other Morphix developers. Morphix web site. Browse cvs repository[http://sourceforge.net/projects/morphix] and cvs mailing lists for full list of developers and patches submitted.

This man page was written by Brendan Sleight using asciidoc

SEE ALSO

addtoiso, install2mainmod, isomaker, isomorph, make-iso, make-mini, minimod-gen, mmaker, module-builder, module-extractor, morphmini