跳转到主要内容

构建lxml的配方

项目描述

版本::
0.8.1
作者::

Stefan Eletzhofer

摘要

一个构建静态链接lxml库的buildout配方。

用法

请参阅目录 src/z3c/recipe/staticlxml 中的readme。

变更日志

请参阅 CHANGES.txt 文件。

贡献者

  • Steve McMahon

  • Reinout van Rees

  • Christian Zagrodnick

  • Remco Wendt

详细文档

支持选项

该配方支持以下选项

egg

设置为所需的lxml egg,例如 lxmllxml==2.1.2

libxslt-url, libxml2-url

从这些库下载源tarball的URL。如果没有设置,将搜索buildout的[versions]部分,如果没有找到,则使用默认值

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

设置为 true(默认)如果应该构建,否则设置为 false。对于静态构建需要设置为 true

libxslt-patch, libxml2-patch

应用于库的可选补丁文件的名称

static-build

布尔值,true 或 false。在OS X上默认为 true。

xml2-location

如果未构建 libxml2,则需要。

xslt-location

如果未构建 libxslt,则需要。

xslt-config

xslt-config 二进制的路径。如果 build-libxslt 设置为 true,则不需要。

xml2-config

xml2-config 二进制的路径。如果 build-libxml2 设置为 true,则不需要。

force

设置为 true 以强制每次重建库。

示例用法

这是一个示例 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

这将构建一个 静态 版本的 lxml egg,也就是说,它不会依赖于 libxml2libxslt

egg 安装在你的 buildout 的 egg 目录中(它不会被安装为开发 egg)。如果你在 ~/.buildout/default.cfg 中配置了全局的 eggs-directory,静态的 lxml egg 因此被放置在那个全局 egg 目录中。

如果你为 lxml egg 指定了一个特定版本,则会检查 egg 目录中是否存在现有的 lxml egg。如果找到,则按原样使用。当然,指定 force = true 的意思是不会执行此检查。

合理性检查

这并不是对配方可以配置的所有方式的完整练习,而是一个合理性检查,以确保所有部分(特别是,我们依赖的配方)按预期工作。

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

贡献者

  • Stefan Eletzhofer,作者

  • Steve McMahon

  • Reinout van Rees

  • Christian Zagrodnick

变更历史

0.10 (2013-12-09)

  • 添加了使用 cmmi 的 patch / patch_options 命令内部修补 libxslt 和 libxml2 的可能性 (#7) [shanx]

  • 修复了在 Suse Linux 等某些 64 位 Linux 上运行的问题。 [icemac]

  • pep8 更改 [seletz]

0.9 (2013-03-18)

  • 检查 ld 是否会接受 –no-as-needed 链接标志而不会出现“未知选项”错误。如果接受,则使用该标志。这应该可以解决缺失 clock_gettime 的问题。 [smcmahon]

  • 寻找 gcc >= 4.5。如果找到,则添加 LDFLAGS 以强制 librt 的 no-as-needed 链接。这应该可以解决最近 gcc 的缺失 clock_gettime 问题。 [smcmahon]

0.8.1(未发布)

0.8 (2011-08-12)

0.7.2 (2010-08-13)

  • 使烟测试更加模糊,以便在使用较新的 zc.recipe.cmmi 版本或在 Mac OS X 上运行测试时忽略输出差异。

  • 通过在 libxml/libxslt 构建中添加 –with-pic 作为额外选项来修复 64 位 Linux 上的“relocation R_x86_64_32”错误。 [reinout]

0.7.1 (2009-05-18)

  • 删除了意外检查的 pdb [wosc]

  • 更新了我们使用 zc.recipe.cmmi 的方式,从 1.2.0 版本开始 需要 在构造时知道 URL。(新的用法与 1.1.x 兼容)。 [wosc]

0.7 (2009-05-18)

  • 按照 zc.recipe.egg 的要求,以换行符分隔的方式传递 include-dirs、library-dirs 和 rpath。这修复了 Linux 上的非静态构建。 [zagy]

  • 请在 buildout 的 [版本] 部分查看 libxml2/libxslt-URLs [wosc]

0.6 (2009-03-19)

  • 关闭构建 exslt crypt 功能。该功能在 exslt.org 本身已不再存在。它使用 libgcrypt,这可能导致在 osx 和有时在 linux 上出现关于 ‘gcry_*’ 的运行时错误。[reinout]

0.5 (2009-03-16)

  • 该配方在执行昂贵的下载/编译之前检查现有的 egg。之前,该检查是在编译 libmxl/libxslt 后隐式完成的。如果这不是一个合适的静态 egg,将打印 egg 名称并警告删除它。[reinout]

  • 修复了 readme 中的错别字。[seletz]

0.4 (2009-02-18)

  • 修复以防止频繁重建 lxml,从而减少 lxml 税。[seletz]

0.3 (2008-12-01)

  • 仅在 darwin 上添加 iconv。[seletz]

0.2.1 (2008-11-28)

  • 在 OS X 上将 static-build 默认设置为 true [seletz]

  • build-libxsltbuild-libxml2 默认设置为 true [seletz]

  • 记录默认选项 [seletz]

0.2 (2008-11-27)

  • 修复文档 REsT [seletz]

  • 由于 setup.cfg 故障而重新发布 [seletz]

0.1 (2008-11-27)

  • 添加 iconv 库,它使完全静态构建成为可能。这实际上是 lxml setup 中的一个错误。[seletz]

  • 更新文档,删除垃圾代码 [seletz]

  • 添加了适用于 Mac OS X 的调整。[seletz]

  • 添加了 liblxml2、libxslt 和 lxml 的基本构建步骤。[seletz]

  • 使用 ZopeSkel 创建了配方。[seletz]

下载

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面