z3c.recipe.staticlxml 0.7.1
A recipe to build lxml
Latest Version: 0.8
This recipe automates the installation of the lxml python package and, additionally, builds it statically against dependent libraries like libxml2, libxlst.
Contents
Detailed Documentation
Supported options
The recipe supports the following options:
- egg
- Set to the desired lxml egg, e.g. lxml or lxml==2.1.2
- libxslt-url, libxml2-url
The URL to download the source tarball of these libraries from. If unset, the [versions] section of the buildout is searched, if nothing is found there, either, these default values are used:
http://dist.repoze.org/lemonade/dev/cmmi/libxslt-1.1.24.tar.gz http://dist.repoze.org/lemonade/dev/cmmi/libxml2-2.6.32.tar.gz
- build-libxslt, build-libxml2
- Set to true (default) if these should be build, false otherwise. Needes to be true for a static build.
- static-build
- true or false. On OS X this defaults to true.
- xml2-location
- Needed if libxml2 is not built.
- xslt-location
- Needed if libxslt is not built.
- xslt-config
- Path to the xslt-config binary. Not needed if build-libxslt is set to true.
- xml2-config
- Path to the xml2-config binary. Not needed if build-libxml2 is set to true.
- force
- Set to true to force rebuilding libraries every time.
Example usage
This is an example buildout:
[buildout]
parts =
lxml
pylxml
develop = .
log-level = DEBUG
download-directory = downloads
download-cache = downloads
versions=versions
[versions]
lxml = 2.1.3
[pylxml]
recipe=zc.recipe.egg
interpreter=pylxml
eggs=
lxml
[lxml]
recipe = z3c.recipe.staticlxml
egg = lxml
This will build a static version of the lxml egg, that is, it won't have any dependencies on libxml2 and libxslt.
The egg is installed in your buildout's egg directory (it is not installed as a development egg). If you have a global eggs-directory configured in your ~/.buildout/default.cfg, the static lxml egg is thus placed in that global egg directory.
If you specified a specific version for the lxml egg, the egg directory is checked for an existing lxml egg. If found, it is used as-is. Specifying force = true of course means that this check isn't performed.
Sanity check
This is not a complete exercise of all the ways the recipe can be configured, rather it's a sanity check that all parts (especially, recipes we depend on) work as expected:
>>> write('buildout.cfg',
... """
... [buildout]
... parts = lxml
...
... [lxml]
... recipe = z3c.recipe.staticlxml
... libxml2-url = file://%s/foo.tgz
... libxslt-url = file://%s/foo.tgz
... xml2-config = none
... xslt-config = none
... egg = lxml
... """ % (distros, distros))
>>> print system('bin/buildout')
Couldn't find index page for 'zc.recipe.egg' (maybe misspelled?)
Installing lxml.
lxml: CMMI libxml2 ...
lxml: Using libxml2 download url /distros/foo.tgz
libxml2: Downloading /distros/foo.tgz
libxml2: Unpacking and configuring
configuring foo...
echo building foo
building foo
echo installing foo
installing foo
lxml: CMMI libxslt ...
lxml: Using libxslt download url /distros/foo.tgz
libxslt: Downloading /distros/foo.tgz
libxslt: Unpacking and configuring
configuring foo...
echo building foo
building foo
echo installing foo
installing foo
lxml: Building lxml ...
Contributors
- Stefan Eletzhofer, Author
- Reinout van Rees
- Christian Zagrodnick
Change history
0.7.1 (2009-05-18)
- Removed accidentally checked in pdb [wosc]
- Updated our use of zc.recipe.cmmi, which from 1.2.0 on requires the URL to be known on construction time. (The new usage is backward-compatible with 1.1.x). [wosc]
0.7 (2009-05-18)
- Passing include-dirs, library-dirs and rpath newline separated as required by zc.recipe.egg. This fixes non static build on linux. [zagy]
- Consult buildout's [version] section for the libxml2/libxslt-URLs [wosc]
0.6 (2009-03-19)
- Switching off building of the exslt crypt functionality. That crypt functionality isn't found anymore on exslt.org itself. And it uses libgcrypt, which somehow leads to runtime errors regarding 'gcry_*' on osx and sometimes on linux. [reinout]
0.5 (2009-03-16)
- The recipe checks for an existing egg before doing expensive download/compiles. Previously, the check was implicitly done after compiling libmxl/libxslt. The egg name is printed with a warning to delete it if this isn't a proper static egg. [reinout]
- Fixed readme typos. [seletz]
0.4 (2009-02-18)
- Fix to prevent rebuilding lxml all the time, thus reducing the lxml tax. [seletz]
0.3 (2008-12-01)
- Only add iconv on darwin. [seletz]
0.2.1 (2008-11-28)
- Made static-build default to true on OS X [seletz]
- Made build-libxslt and build-libxml2 default to true [seletz]
- Document default options [seletz]
0.2 (2008-11-27)
- Fix Documentation REsT [seletz]
- Rerelease due to setup.cfg messup [seletz]
0.1 (2008-11-27)
- Added iconv library, which enables fully static builds. This is actually a bug in lxml's setup. [seletz]
- Updated docs, removed junk code [seletz]
- Added tweaks needed for Mac OS X [seletz]
- Added basic build steps for liblxml2, libxslt and lxml. [seletz]
- Created recipe with ZopeSkel [seletz].
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| z3c.recipe.staticlxml-0.7.1.tar.gz (md5) | Source | 2009-05-18 | 10KB | 5701 | |
- Author: Stefan Eletzhofer
- Home Page: http://svn.zope.org/z3c.recipe.staticlxml/branches/0.7.1
- Keywords: buildout recipe lxml static
- License: ZPL
- Categories
- Package Index Owner: seletz
- DOAP record: z3c.recipe.staticlxml-0.7.1.xml
