PyPI binary wheels have wrong hardcoded XML catalog path
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
lxml |
Confirmed
|
Medium
|
Unassigned |
Bug Description
The binary wheels published on PyPI starting with lxml 4.9.3 have a wrong hardcoded default path for the XML catalog file. This causes XML schema discovery to fail unless the XML catalog is specified manually using the `XML_CATALOG_FILES` environment variable. The hardcoded path is compiled as part of the statically linked libxml2, and it defaults to `%{sysconfdir}
This can be checked by downloading a whl file from PyPI (https:/
```
# From lxml-4.
❯ strings etree.pypy310-
file://
# From lxml-4.
❯ strings etree.pypy39-
file://
```
Possibly a result of CI changes?
description: | updated |
> Possibly a result of CI changes?
More likely a configuration change in libxml2. Thanks for the report.
This is annoying because for the static build, we do install the libraries into a temporary directory and link them from there. If we set the "sysconfigdir" to "/etc", then the install during the build won't work any more.
Changing the build options for libxml2 depending on the version is also difficult because we don't always know which version of libxml2 we are building against. :-/