[Python-ideas] Wheels For ...
abarnert at yahoo.com
Mon Sep 7 07:25:36 CEST 2015
On Sep 6, 2015, at 21:20, Donald Stufft <donald at stufft.io> wrote:
> Let's take lxml for
> example which binds against libxml2. It needs built on Windows, it needs built
> on OSX, it needs built on various Linux distributions in order to cover the
> spread of just the common cases.
IIRC, Apple included ancient versions (even at the time) of libxml2 up to around 10.7, and at one point they even included one of the broken 2.7.x versions. So a build farm building for 10.6+ (which I think is what python.org builds still target?) is going to build against an ancient libxml2, meaning some features of lxml2 will be disabled, and others may even be broken. Even if I'm remembering wrong about Apple, I'm sure there are linux distros with similar issues.
Fortunately, lxml has a built-in option (triggered by an env variable) for dealing with this, by downloading the source, building a local copy of the libs, and statically linking them into lxml, but that means you need some way for a package to specify env variables to be set on the build server. And can you expect most libraries with similar issues to do the same?
(I don't know how many packages actually have similar problems, but since you specifically mentioned lxml as your example, and I had headaches building it for a binary-distributed app supporting 10.6-10.9 a few years ago, I happened to remember this problem.)
More information about the Python-ideas