python-flask: build failure since 3.1.1
Since the bump to flask 3.1.1 (on main as well as the 2025.02.3 tag) the build of python-flask fails.
Build Output:
>>> python-flask 3.1.1 Building
(cd /opt/nvm/mno/buildroot-upstream/output/build/python-flask-3.1.1//; _PYTHON_HOST_PLATFORM="linux-arm" _PYTHON_PROJECT_BASE="/opt/nvm/mno/buildroot-upstream/output/build/python3-3.12.10" _PYTHON_SYSCONFIGDATA_NAME="`{ [ -e /opt/nvm/mno/buildroot-upstream/output/host/a
rm-buildroot-linux-gnueabihf/sysroot/usr/lib/python3.12//_sysconfigdata__linux_*.py ] && basename /opt/nvm/mno/buildroot-upstream/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/python3.12//_sysconfigdata__linux_*.py .py; } || true`" PATH="/opt/nvm/mno/buildro
ot-upstream/output/host/bin:/opt/nvm/mno/buildroot-upstream/output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/sdk/latest/bin:/opt/sdk/latest/bin" GIT_DIR=. PATH="/opt/nvm/mno/buildroot-upstream/outpu
t/host/bin:/opt/nvm/mno/buildroot-upstream/output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/sdk/latest/bin:/opt/sdk/latest/bin" AR="/opt/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnu
eabihf-gcc-ar" AS="/opt/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-as" LD="/opt/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-ld" NM="/opt/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-gcc-nm" CC="/opt
/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-gcc" GCC="/opt/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-gcc" CPP="/opt/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-cpp" CXX="/opt/nvm/mno/buildroot-up
stream/output/host/bin/arm-none-linux-gnueabihf-g++" FC="/opt/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-gfortran" F77="/opt/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-gfortran" RANLIB="/opt/nvm/mno/buildroot-upstream/ou
tput/host/bin/arm-none-linux-gnueabihf-gcc-ranlib" READELF="/opt/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-readelf" STRIP="/opt/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-strip" OBJCOPY="/opt/nvm/mno/buildroot-upstream/
output/host/bin/arm-none-linux-gnueabihf-objcopy" OBJDUMP="/opt/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-objdump" AR_FOR_BUILD="/usr/bin/ar" AS_FOR_BUILD="/usr/bin/as" CC_FOR_BUILD="/usr/bin/gcc" GCC_FOR_BUILD="/usr/bin/gcc" CXX_FOR_BUILD="/us
r/bin/g++" LD_FOR_BUILD="/usr/bin/ld" CPPFLAGS_FOR_BUILD="-I/opt/nvm/mno/buildroot-upstream/output/host/include" CFLAGS_FOR_BUILD="-O2 -I/opt/nvm/mno/buildroot-upstream/output/host/include" CXXFLAGS_FOR_BUILD="-O2 -I/opt/nvm/mno/buildroot-upstream/output/host/include" L
DFLAGS_FOR_BUILD="-L/opt/nvm/mno/buildroot-upstream/output/host/lib -Wl,-rpath,/opt/nvm/mno/buildroot-upstream/output/host/lib" FCFLAGS_FOR_BUILD="" DEFAULT_ASSEMBLER="/opt/nvm/mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-as" DEFAULT_LINKER="/opt/nvm/
mno/buildroot-upstream/output/host/bin/arm-none-linux-gnueabihf-ld" CPPFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g0 -D_FORTIFY_SOURCE=1" CXXFLAGS="-D_LARGEFILE_
SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g0 -D_FORTIFY_SOURCE=1" LDFLAGS="" FCFLAGS=" -O2 -g0" FFLAGS=" -O2 -g0" PKG_CONFIG="/opt/nvm/mno/buildroot-upstream/output/host/bin/pkg-config" STAGING_DIR="/opt/nvm/mno/buildroot-upstream/output/host/arm-buildro
ot-linux-gnueabihf/sysroot" INTLTOOL_PERL=/usr/bin/perl PYTHONPATH="/opt/nvm/mno/buildroot-upstream/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/python3.12/" PYTHONNOUSERSITE=1 /opt/nvm/mno/buildroot-upstream/output/host/bin/python3 -m build -n -w )
* Getting build dependencies for wheel...
Unexpected names under [project]: license-files
Traceback (most recent call last):
File "/opt/nvm/mno/buildroot-upstream/output/host/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
main()
File "/opt/nvm/mno/buildroot-upstream/output/host/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373, in main
json_out["return_val"] = hook(**hook_input["kwargs"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/nvm/mno/buildroot-upstream/output/host/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 143, in get_requires_for_build_wheel
return hook(config_settings)
^^^^^^^^^^^^^^^^^^^^^
File "/opt/nvm/mno/buildroot-upstream/output/host/lib/python3.12/site-packages/flit_core/buildapi.py", line 23, in get_requires_for_build_wheel
info = read_flit_config(pyproj_toml)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/nvm/mno/buildroot-upstream/output/host/lib/python3.12/site-packages/flit_core/config.py", line 81, in read_flit_config
return prep_toml_config(d, path)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/nvm/mno/buildroot-upstream/output/host/lib/python3.12/site-packages/flit_core/config.py", line 108, in prep_toml_config
loaded_cfg = read_pep621_metadata(d['project'], path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/nvm/mno/buildroot-upstream/output/host/lib/python3.12/site-packages/flit_core/config.py", line 529, in read_pep621_metadata
_check_type(proj, 'license', dict)
File "/opt/nvm/mno/buildroot-upstream/output/host/lib/python3.12/site-packages/flit_core/config.py", line 444, in _check_type
raise ConfigError(
flit_core.config.ConfigError: license field should be <class 'dict'>, not <class 'str'>
ERROR Backend subprocess exited when trying to invoke get_requires_for_build_wheel
make: *** [package/pkg-generic.mk:273: /opt/nvm/mno/buildroot-upstream/output/build/python-flask-3.1.1/.stamp_built] Error 1
used defconfig:
BR2_arm=y
BR2_cortex_a15_a7=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON_FLASK=y
buildsystem Ubuntu 24.04.2 LTS
Culprit seems to be that flask changed the license field in pyproject.toml to the new format defined here
This patch fixes it for me but I'm not sure if this is the proper way to go:
diff --git a/pyproject.toml b/pyproject.toml
index 19a7aee4..a5294d41 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -3,8 +3,7 @@ name = "Flask"
version = "3.1.1"
description = "A simple framework for building complex web applications."
readme = "README.md"
-license = "BSD-3-Clause"
-license-files = ["LICENSE.txt"]
+license = {file = "LICENSE.txt"}
maintainers = [{name = "Pallets", email = "contact@palletsprojects.com"}]
classifiers = [
"Development Status :: 5 - Production/Stable",
--
2.43.0