Author: Mathieu Pasquet


Recipe for compiling and installing software with or without minitage

.. contents::

.. image::


The egg has those entry point:

    - *egg*: install python eggs / packages 'setuptoolisables'

The reasons why i have rewrite yet another buildout recipes builder are:

    - Support for downloading stuff
    - Do not rely on easy_install dependency system
    - Support on the fly patchs for eggs and other distribution.
    - Support multiple hooks at each stage of the build system.
    - Robust offline mode
    - We like pypi, but offer a mode to scan for eggs without need to check
      the index,
    - Support malformed or not indexed distributions.
      In other terms, we provide an url, and the recipe builds it, that's all.
    - Support automaticly minitage dependencies and rpath linking.

You can browse the code on minitage's following resources:


You can migrate your buldouts without any effort with buildout.minitagificator:


Makina Corpus sponsored software

* `Planet Makina Corpus <>`_
* `Contact us <>`_

  .. |makinacom| image::
  .. _makinacom:


    - This recipe intends to install eggs and python software
    - Its heavilly inspired by zc.recipe.eggs* and try to completly replace it whereas be API compatbile.
    - You can use it in conjunction with the buildout.minitagificator extension which monkey patch zc.buildout to use minitage recipes.
    - The recipe has a robust offline mode.
    - What we can do that zc.recipe.egg wouldnt do, either at all or not in the way we want to:

        * Don't rely on easy_install to detect and install dependencies, that can lead to versions inccompatibilities
        * Handles and preserve eggs extra dependencies
        * Apply specific patches for eggs based on their name and them generate a specific egg with a specific version, burried in the buildout via the "versions".
        * Make the minitage environnent comes into the environment when building if any, making compilation steps easy if you have declared and build the neccessary dependencies.
        * Be able to install unindexed at all stuff, just by precising url to install, that can be even an automatic checkout from any repository.
        * You have hooks to play with the recipe, if it doesnt fit exactly to your need, you can hook for a specific egg at any point of the build.
        * Check md5 on indexes which append md5 fragments on urls, to verify package integrity

    - If you need scripts generation, just use the minitage.recipe:scripts recipe, it's a specialized recipe of this one. Its use is similar, with just a bunch more options.

Specific options

Please look for options at :

* urls

    See the shared options for more information on how to set them.
    This is how to specify a distrbituion with is not indexed on pypi and where find-links dance can not work.
    This is also how to specify to install something from svn::

        urls = http://foo.tld/my_super_egg|svn|666 # checkout and install this egg from svn at revision 666

    The directory bit can be used to set the subdire