distutils was dropped from Python 3.12. Fortunately, our usage of
android-ndk only relied on distutils.dir_util.copy_tree() in
build/tools/make_standalone_toolchain.py which
is easy to replace with shutil.copytree(). That is done via a small
patch.
Note that there are more references to distutils in the following
files but it looks like our CI/CD flows aren't affected by those:
sources/third_party/shaderc/third_party/spirv-tools/utils/generate_registry_tables.py
sources/third_party/vulkan/src/scripts/update_deps.py
prebuilt/linux-x86_64/bin/python2.7-config
prebuilt/linux-x86_64/bin/python-config
prebuilt/linux-x86_64/bin/python2-config
various files under prebuilt/linux-x86_64/lib/python2.7/
python-packages/fastboot/setup.py
python-packages/adb/setup.py
The bug was there since 2018. It's strange that it didn't cause problems
with previous releases. The most plausible explanation is that this is
the first time when the sources of kiwix-desktop are being published
via this procedure.
base_deps_meta_version was bumped so that the base dependencies archives for CI
workflows are recreated (we need only the Windows flavours of the
archives updated but such surgical intervention is not supported).
libpsl is a lib that provides the Public Suffix List: the list
of all TLDs.
It's an optional feature of libcurl that we dont need for libkiwix.
Leaving it included causes issues when compiling for apple_all_static
on x86_64 as libpsf is installed (and thus found by libcurl's configure)
but is obviously only for x86_64.
An alternative could be to either cross-compile it first and properly
reference that version.
That sounds like too much effort for a feature we know we dont need.
https://github.com/rockdaboot/libpsl