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