Python 3.12 removes distutils so it's mandatory to use setuptools with
python >= 3.12.
This patch prints a message when trying to run the setup.py script with
a python >= 3.12 without setuptools and try to use the setuptools import
by default.
This patch also creates a new file, pyproject.toml [1], to prepare for
building in modern systems.
[1] https://peps.python.org/pep-0517/
As per https://peps.python.org/pep-0394/, the python binary can be one
of the following options:
- Python 2
- Python 3
- Not exist
All of the scripts in libxml2 use 'python', which may not exist.
As Python 2 reached EOL on the 1st January 2020, it's safe to move the
scripts to use python3 explicitly.
Move up the altImport function so that we ensure that it can be referred
to and streamline it a bit, since we no longer attempt to build the
libxslt Python bits here, at least on Windows.
This updates setup.py.in to pack the DLLs according to the options we specified
to configure.js or CMake (or, even configure, although autotools builds are not
likely to build the libxml2 Python module via distutils).
At this point, we can pack only the DLLs that libxml2 really depends on, and
pack the libxslt DLLs only if we really built the libxslt Python modules.
Also make the DLL filenames more easily configured
* encoding.c include/libxml/encoding.h: Opening the interface
xmlNewCharEncodingHandler as requested in #89415
* python/generator.py python/setup.py.in: applied cleanup
patches from Marc-Andre Lemburg
* tree.c: fixing bug #89332 on a specific case of loosing
the XML-1.0 namespace on xml:xxx attributes
Daniel
* check-xml-test-suite.py: fix to adapt varaiations in the
bindings
* configure.in python/setup.py python/setup.py.in: fixed to
have the version of the python scripts automatically updated
Daniel