skip to navigation
skip to content

minitage.recipe.common 1.83

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

Latest Version: 1.90

Introduction

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.

Options shared by all the recipes

Notes

  • 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:

    ...
    [minitage]
    dependencies = postgresql-8.3
    eggs = py-libxslt-1.1
    

Options

  • 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
    file://toto
    http://tata/toto.tgz
    

    Where:

    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

    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

Patches

  • 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', 'http.foo.bar', '--ignore-externals')
    
  • Static as a default:

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

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

CHANGELOG

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

1.42

  • API compatibility for cmmi

1.41

  • splitting cmmi stuff

-> 1.40

  • remove deprecationwarning

1.36

  • re namespacing

1.35

  • split all recipes into singles ones.

.34

all:

  • fix rst doc
  • add ldflags and ldflags options

minitage.recipe.cmmi:

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

minitage.recipe.fetch:

  • unpack option added
  • md5sum un revision for static fetcher check added

minitage.recipe.printer:

  • remove fake eggs and develop eggs from fixed versions.

-> 1.20

Minitage.recipe.egg:

  • 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.

Minitage.recipe.cmmi:

  • new patch selection for freebsd:

    freebsd-patches

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

1.14

  • add enrionment file generation to the scripts recipe

1.13

  • 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

1.-1.10

  • bugfix with cache and static distributions.

1.8

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

1.4->1.7

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

1.3

  • release uncomitted unittests updates

1.2

  • make it compatible with zc.buildout 1.0

1.1

  • md5 bug

1.0

  • 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.

0.33->0.34

  • Fix python executable computation

0.32

  • Documentation and tests release

0.29

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

0.28

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

0.27

  • 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.

0.26

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

0.25

  • stop lowering project_name

0.23->0.24

  • Fix small bugs in printer

0.22

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

0.21

  • Fix bug in compilation directory guessing

0.20

  • Fix bug in distribution reloading
  • Better handling of pkg_resources’s working set

0.19

  • add a post build hook

0.18

  • Change installation order

0.16

  • Fix index and find links options

0.14 -> 0.15

  • logging output improved
  • newest mode handling

0.13

  • fix static dist install

0.12

  • bugfix for zipped eggs

0.11

  • import bugfix for minitagificator

0.10

  • Change some logging options
  • follow allow host option from buildout for eggs installation

0.9

  • 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’

0.6

  • 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

0.1

  • add fetch recipe

0.0.13

  • fix zip safe flag

0.0.11

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

0.0.10

  • Add pyc regeneration feature stolen from zc.buildout

0.0.9

  • minor fix for run without minitage
  • fix for long path/compilation flags

0.0.8

  • minor fix for scm check outs

0.0.7

  • add C compiler cflags/ldflags/makeopts customistation options

0.0.6

  • 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.

0.0.3

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

0.0.2

  • bugfix version
  • fix linking problem

0.0.1

  • Initial version
 
File Type Py Version Uploaded on Size
minitage.recipe.common-1.83.zip (md5) Source 2012-09-12 40KB