Skip to content

Commit 43049b6

Browse files
committed
pyproject: switch to PEP 639 license metadata
Conform with PEP 639 by adding links to our license files, using a SPDX license expression to declare our licenses, and dropping the deprecated Trove license classifier. Without this change, setuptools shows a large deprecation warning saying that support for the old project.license syntax will be removed on 2026-Feb-18. However, the new syntax requires setuptools >= 77, so this change breaks compatibility with setuptools 61-76. Users installing from source will be unaffected because the build frontend automatically updates setuptools if required, but Linux distro packaging disallows such updates, so this change will break package builds for many still-supported distro releases. To build with setuptools 61 through 76, distros will need to patch out the project.license field and reduce the build-system.requires dependency. Signed-off-by: Benjamin Gilbert <[email protected]>
1 parent 5230a91 commit 43049b6

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

pyproject.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ maintainers = [
55
]
66
description = "Python interface to OpenSlide"
77
readme = "README.md"
8-
license = {text = "GNU Lesser General Public License, version 2.1"}
8+
license = "LGPL-2.1-only AND BSD-3-Clause AND MIT AND LicenseRef-Public-Domain"
9+
license-files = ["COPYING.LESSER", "**/LICENSE.*"]
910
keywords = ["OpenSlide", "whole-slide image", "virtual slide", "library"]
1011
classifiers = [
1112
"Development Status :: 5 - Production/Stable",
1213
"Intended Audience :: Developers",
1314
"Intended Audience :: Healthcare Industry",
1415
"Intended Audience :: Science/Research",
15-
"License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)",
1616
"Operating System :: MacOS :: MacOS X",
1717
"Operating System :: Microsoft :: Windows",
1818
"Operating System :: POSIX :: Linux",
@@ -87,5 +87,5 @@ pythonpath = "tests"
8787
ignore_messages = "(Hyperlink target \".*\" is not referenced\\.$)"
8888

8989
[build-system]
90-
requires = ["setuptools >= 61.0.0"]
90+
requires = ["setuptools >= 77.0.0"]
9191
build-backend = "setuptools.build_meta"

0 commit comments

Comments
 (0)