Skip to main content
Version:
0.8.1
Author:

Stefan Eletzhofer

Abstract

A buildout recipe to build a statically linked lxml library.

Usage

Please see the readme in the src/z3c/recipe/staticlxml directory.

Changelog

Please see the CHANGES.txt file.

Contributors

  • Steve McMahon

  • Reinout van Rees

  • Christian Zagrodnick

  • Remco Wendt

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.

libxslt-patch, libxml2-patch

The name of an optional patch file to apply to the libraries

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
... newest = false
...
... [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
... static-build = false
... """ % (distros, distros))
>>> print system('bin/buildout')
Installing lxml.
lxml: CMMI libxml2 ...
lxml: Using libxml2 download url /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: Unpacking and configuring
configuring foo...
echo building foo
building foo
echo installing foo
installing foo...
lxml: Building lxml ...

Contributors

  • Stefan Eletzhofer, Author

  • Steve McMahon

  • Reinout van Rees

  • Christian Zagrodnick

Change history

0.10 (2013-12-09)

  • Added possibility to patch both libxslt and libxml2 using cmmi’s patch / patch_options command internally (#7) [shanx]

  • Fix to run some 64 bit Linux, like Suse Linux, too. [icemac]

  • pep8 changes [seletz]

0.9 (2013-03-18)

  • Check if ld will accept the –no-as-needed link flag without an “unknown option” error. If it will, use the flag. This should cure the missing clock_gettime problem. [smcmahon]

  • Look for gcc >= 4.5. If found, add LDFLAGS for force no-as-needed link of librt. This should cure the missing clock_gettime problem for recent gcc. [smcmahon]

0.8.1 (unreleased)

0.8 (2011-08-12)

0.7.2 (2010-08-13)

  • Made smoke test a bit more fuzzy to ignore output differences when newer zc.recipe.cmmi versions are used or tests are running on Mac OS X.

  • Fixed “relocation R_x86_64_32” error on 64 bit linux by using –with-pic as extra option to the libxml/libxslt build. [reinout]

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

Download

Release files for z3c.recipe.staticlxml 0.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for z3c.recipe.staticlxml 0.10
File Size Uploaded
z3c.recipe.staticlxml-0.10.tar.gz 22.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for z3c.recipe.staticlxml 0.10
File Interpreter ABI Platform
z3c.recipe.staticlxml-0.10-py2.7.egg Legacy Egg format - - Details

Total release size: 47.2 kB

Release files / z3c.recipe.staticlxml-0.10.tar.gz

Download URL z3c.recipe.staticlxml-0.10.tar.gz
Size 22.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a73a6de4cdd56b811c4a230139f32f3dfd9694f17c3cc05840e450556cc46219
BLAKE2b-256 checksum
How to use checksums
e9ed6f00ceaa0a0a5601b0e889bafd8e040c79a0a9e5dea146f2b0756597663e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / z3c.recipe.staticlxml-0.10-py2.7.egg

Download URL z3c.recipe.staticlxml-0.10-py2.7.egg
Size 25.1 kB
Tags Egg
SHA-256 checksum
How to use checksums
1bd113e8f5011f61c08cd8028f1258c7fc3327df97cb7417ff25b201217b3df4
BLAKE2b-256 checksum
How to use checksums
310e56872627d739d0d3d3782b0f7015fce16323e8022f08ac212d030a4b19f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.10 This release

2 release files

0.9

1 release file

0.8

1 release file

0.7.2

1 release file

0.7.1

1 release file

0.7

1 release file

0.6

1 release file

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2.1

1 release file

0.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page