Skip to main content

zc.buildout recipes to compile and install software or python packages and generate scripts or configuration files sponsored by Makina Corpus.

Project description


minitage.core.common is an abstract recipe extendended by much of minitage.recipe.*

That’s why many options of the descendant recipes are from there.

Makina Corpus sponsored software


Options shared by all the recipes


  • All recipes inherit all these options, depending which you are using, those options will have an incidence on the build.

  • Useless to say that the recipes code is not difficult, and as a deployer, its your job to have a look at the code to avoid surprises.

  • If you are inside a minitage all recipes will look on your minibuild dependencies section to get things into the environment at execution time. Like feeding CFLAGS, pkgconfig, ldflags and so on.

  • All recipes look for a minitage section in your buildout file and take dependencies and eggs as minitage projects to get into the environnment too:

    dependencies = postgresql-8.3
    eggs = py-libxslt-1.1


  • urls A set of urls to checkout in the form

    • The last part or the urls will be the name of your checkout dir unless you have precised the name in “destination directory name”

    • If you don’t specify any scm_type, it will be static unless you specify it in options (see scm)

    • If you don’t specify any revision, it will be not set unless you specify it in options (see scm_revision)

    • The form is a New line separated list of urls to fetcha in the following form (the | is part of the line ;)):

      url to checkout | fetch_type | revision | destination directory name | fetcher_args

    Here are valid inputs

    svn://toto | svn | 666 | mydirectoryname | --ignore-externals
    svn://toto | svn | 666 | mydirectoryname
    svn://toto | svn | 666
    svn://toto | svn | | | --ignore-externals
    svn://toto | svn


    fetch_type ::= bzr | hg | git | static (for ftp://, file://, http:// and local files) | svn

UNAME is a platform identifier from:

  • linux

  • darwin

  • freebsd

  • freebsd(6,7,8)

  • snowleopard

  • leopard

  • cygwin

  • executable

    python executable to use

  • url(-UNAME) (backward cmpatibility)

    url to get the source from, in the previous urls syntax

  • scm

    default scm to use (a valid minitage fetch factory to use (static, git, svn, bzr, hg).) defaults to static.

  • scm_revision

    default revision to checkout if scm is not static

  • md5sum

    md5sum of the checkouted source [see cmmi recipe for documentation]

  • patch-binary

    path to the patch program

  • patch-options

    options to feed the patch program with [see cmmi recipe for documentation]

  • patches

    patches to apply [see cmmi recipe for documentation]

  • patch

    A patch to apply, compatibility with zc.recipe.cmmi

  • patches-UNAME / UNAME-patches
    • patches to apply to a system or a favor of this system (linux, darwin, freebsd, freebsd, freebsd(6,7,8), snowleopard, leopard, cygwin)

  • location

    where to put the build result. (default to parts/PART_NAME)

  • cc(-UNAME)

    CC compiler to use (set env[‘CC’], default not set

  • cpp(-UNAME)

    CPP compiler to use (set env[‘CPP’], default not set

  • cplusplus(-UNAME)

    c++ compiler to use (set env[‘C++’], default not set

  • includes(-UNAME)

    directories to add to the include search (compatibility)

  • ldflags(-UNAME)

    LDFLAGS to set at compilation time

  • cflags(-UNAME)

    CFLAGS to give to the compiler

  • includes-dirs(-UNAME)

    Directories to add to the include paths [see cmmi recipe for documentation]

  • libraries(-UNAME)

    libraries to give to the linker eg: libiconv

  • library-dirs(-UNAME)

    Directories to add to the linker, and they will be added as -rpath too. [see cmmi recipe for documentation]

  • rpath(-UNAME)

    Directories to add as -rpath.

  • skip-flags: do not set CFLAGS/LDFLAGS/LD_RUN_PATH at all.

  • environment(-UNAME)

    a part name where we can get key/values to add to the build environment [see cmmi recipe for documentation]

  • path(-UNAME)

    line separated list of paths to append to $PATH during build

  • pkgconfigpath(-UNAME)

    line separated list of paths to append to $PKGCONFIGPATH during build [see cmmi recipe for documentation]

  • pythonpath(-UNAME)

    line separated list of paths to append to $PYTHONPATH during build

  • osx-target: -mmacosx-version-min setting, wanting users will know what that means ;)

    minitage put -mmacosx-version-min in the env. if you dont set this to ‘false’ default value on leopard is 10.5.0 and on snowleopard 10.6.0

  • force-osx-target

    force MACOSX_DEPLOYMENT_TARGET to value or default if ‘true’ (snowleopard (10.5) /leopard(10.6))

Options incidences

  • minitage.recipe:cmmi

    executable is not taken in account.

  • minitage.recipe:fetch

    only the download related options are used.

  • minitage.recipe:eggs, minitage.recipe:wsgi, minitage.recipe:scripts, minitage.recipe:printer

    the configure-, and make-, and extra_options are not used


  • They can be either a file or an url.

  • You have means to specify options to the patch program, like -pXXX, abuses of it.

minitage.recipe API tests

The divide url function

  • If you dont precise the directory, its the basename of the url:

    >>> divide_url ('http://foo/bar|svn|666||--ignore-externals')
    ('http://foo/bar', 'svn', '666', '', '--ignore-externals')
  • Static as a default:

    >>> divide_url ('')
    ('', 'static', '', '', '')
  • arguements can be optionnal:

    >>> divide_url ('http://foo/bar')
    ('http://foo/bar', 'static', '', '', '')


1.90 (2013-06-26)

  • export back to buildout executable option

1.89 (2013-06-22)

  • osx targets fixes, handle default new mountainlion PATH mods

1.88 (2013-06-02)

  • specific uname envs

1.87 (2013-04-14)

  • better download handling

1.86 (2013-03-28)

  • better cache filename guessing, again

1.85 (2013-03-24)

  • better cache filename guessing

1.84 (2013-02-13)

  • buildout2 compat

1.83 (2012-09-12)

  • force no upgrade on minitage itself

1.82 (2012-08-31)

  • syntax error bugfix

1.81 (2012-03-24)

  • Add part/site-packages-pyver to pythonpath

1.80 (2012-01-24)

  • darwin fix for LDFLAGS

1.79 (2011-11-28)

  • add lion to macosx flavors

1.78 (2011-03-31)

  • python 2.4 retrocompatibities fixes

  • add os subrelease mecanism (cygwin2)

  • snowleopard bugfix (match kernel version startswith 10)

  • add an helper to write env files

  • fix for mercurial checkouts

  • add many per/os options

  • win32 fix

  • API fix

  • indentation fix

  • make things shut up

  • add patch flavors for darwin, now you have:

    • darwin : all macs

    • leopard, snowleopard for a specific one

  • Add extra-paths to PYTHONPATH while setting PYTHONPATH

  • Add part/site-pakckages-VER in PYTHONPATH if exists


  • API compatibility for cmmi


  • splitting cmmi stuff

-> 1.40

  • remove deprecationwarning


  • re namespacing


  • split all recipes into singles ones.



  • fix rst doc

  • add ldflags and ldflags options


  • install-in-place option added and pivot on make install slightly modified

  • skip-flags option added

  • prefix option added


  • unpack option added

  • md5sum un revision for static fetcher check added


  • remove fake eggs and develop eggs from fixed versions.

-> 1.20


  • better errors handling

  • In particular for eggs and url, now md5 urls are preferred.

  • Also when we can’t download a distribution from somewhere, we try to fallback to other distributions which achieve the desired requirement

  • In the same way, try to compile eggs from any other sdist fullfilling the requirement if an error occurs on the first found.


  • new patch selection for freebsd:


  • Fix some double spaces left in compilation flags which broke some exotic system builders.


  • add enrionment file generation to the scripts recipe


  • cmmi buggy update methods

1.11 - 1.12

  • rescan egg direcrectories at install time because there may be new develop eggs or eggs installed by buildout extensions (mr.developer)

  • fix for interaction with buildout.minitagificator and zc.buildout.easy_install..*script


  • bugfix with cache and static distributions.


  • make patches go in a personnal directory with some md5 mecanism to redownload them.


  • x64 fixes

  • bugfix in static distribution install when you have patches to apply.


  • release uncomitted unittests updates


  • make it compatible with zc.buildout 1.0


  • md5 bug


  • first stable release.

  • All recipe are documented and well tested.

  • buildout.minitagificator is completed.

  • stabilized and synced with other minitage components

  • minitage.recipe:eggs has been drasticly improved in term of algorythms and speed.


  • Fix python executable computation


  • Documentation and tests release


  • Fix bug in recipes initialization because of buildout auto-ordering


  • Add another hook to the cmmi recipe: post-download


  • Fix an annoying bug when you are using virtualenv and a classical python as executable in your recipe, it may occur that sometimes, the virtualenv site-packages is appended to PYTHONPATH. As a fix, we now filter all python core lib directories and site packages that are not relevant to the python used by the recipe.


  • Introduce the minitage.recipe:wsgi recipe wich wraps a paste wsgi application in a script eatable by mod_wsgi


  • stop lowering project_name


  • Fix small bugs in printer


  • Introduce a new recipe : minitage.recipe:printer which prints/dumps to a file all versions eggs needed to achieve requirements.


  • Fix bug in compilation directory guessing


  • Fix bug in distribution reloading

  • Better handling of pkg_resources’s working set


  • add a post build hook


  • Change installation order


  • Fix index and find links options

0.14 -> 0.15

  • logging output improved

  • newest mode handling


  • fix static dist install


  • bugfix for zipped eggs


  • import bugfix for minitagificator


  • Change some logging options

  • follow allow host option from buildout for eggs installation


  • Do not rely anymore on zc.buildout ez for script generation

0.7 -> 0.8

  • egg and scripts recipes were rewritten a lot to adapt their api to zc.recipe.egg

  • Common to all recipes: all arguements are now identicak to zc.recipe.cmmi or zc.recipe.egg

  • Dependencies resolver has been improved a lot

  • For static distribution, you can know speicify multiple urls with ‘urls’


  • fix bug in path generation in minitage.recipe:scripts

0.2 -> 0.5

  • add make-options for make option in minitage.recipe.cmmi

  • multiple bugfixes

  • make things append in subprocess for environment conversation

  • add initiaiization code for generated python interpreter in minitage.recipe:scripts


  • add fetch recipe


  • fix zip safe flag


  • Include eggs dependencies by default

  • Modulate the script recipe to append in the PYTHONPATH all egg dependencies found into the local eggs cache.


  • Add pyc regeneration feature stolen from zc.buildout


  • minor fix for run without minitage

  • fix for long path/compilation flags


  • minor fix for scm check outs


  • add C compiler cflags/ldflags/makeopts customistation options


  • Change the eggs installation way to do, now using easy_install everywhere Also include a buildout option to allow to include eggs dependencies (ez-dependencies-true)

  • Set the __doc__ variable in scripts to fix some scripts like bzr.


  • fix scm choice when there are eggs and url in the same part


  • bugfix version

  • fix linking problem


  • Initial version

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution (40.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page