diff --git a/.github/workflows/build-scs.yml b/.github/workflows/build-scs.yml index 90b0b3ed0a..2fd53747d5 100644 --- a/.github/workflows/build-scs.yml +++ b/.github/workflows/build-scs.yml @@ -97,7 +97,7 @@ jobs: PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/ PIP_ONLY_BINARY=numpy,scipy - - name: Check the wheel ships the extensions and both licences + - name: Check the wheel ships the extensions and all licences run: | python3 - wheelhouse/*.whl <<'EOF' import sys, zipfile @@ -108,7 +108,9 @@ jobs: for n in names), (whl, mod) licences = {n.rsplit("/", 1)[1] for n in names if ".dist-info/licenses/" in n} - {""} - assert licences == {"LICENSE", "LICENSE.openblas"}, (whl, licences) + # 3.3.1 added LICENSE-INTEL-MKL.txt at the repo root, alongside + # LICENSE; the pyproject.toml patch's LICENSE* glob ships it too. + assert licences == {"LICENSE", "LICENSE.openblas", "LICENSE-INTEL-MKL.txt"}, (whl, licences) print(whl, "ok") EOF diff --git a/docs/packages/scs.yaml b/docs/packages/scs.yaml index ef0a02b884..337e148566 100644 --- a/docs/packages/scs.yaml +++ b/docs/packages/scs.yaml @@ -18,3 +18,4 @@ versions: gpl-sources: filename: gpl-sources.tar description: gcc +- version: 3.3.1 diff --git a/patches/scs/3.3.1/0001-pyproject-ship-licence-files-of-bundled-libraries.patch b/patches/scs/3.3.1/0001-pyproject-ship-licence-files-of-bundled-libraries.patch new file mode 100644 index 0000000000..aafe58f8c5 --- /dev/null +++ b/patches/scs/3.3.1/0001-pyproject-ship-licence-files-of-bundled-libraries.patch @@ -0,0 +1,42 @@ +From 676f302fa8efa9b81d66b975b6cd3fd66b85e39a Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 28 Aug 2026 08:54:10 +0200 +Subject: [PATCH] pyproject: ship licence files of bundled libraries + +The Linux wheels bundle OpenBLAS (BSD-3-Clause), whose binary +redistribution clause requires its copyright notice to travel with the +binary, but the wheel only carries SCS' own LICENSE. + +Declare the licence files with a glob so any LICENSE. staged beside +the project's own LICENSE is packaged into dist-info/licenses/. PEP 639 +rejects `project.license-files` while `project.license` is a table or a +`License ::` classifier is present, so both are converted at the same +time. + +Upstream-Status: To upstream [needs a companion CI change staging the licence text of each bundled library] +--- + pyproject.toml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/pyproject.toml b/pyproject.toml +index 6925fa2..4b9d83d 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -12,7 +12,6 @@ description = 'Splitting conic solver' + readme = 'README.md' + requires-python = '>=3.9' + classifiers = [ +- 'License :: OSI Approved :: MIT License', + 'Programming Language :: C', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', +@@ -30,7 +29,8 @@ classifiers = [ + 'Operating System :: Unix', + 'Operating System :: MacOS', + ] +-license = {file = 'LICENSE'} ++license = "MIT" ++license-files = ['LICENSE*'] + authors = [ + {name = "Brendan O'Donoghue", email = "bodonoghue85@gmail.com"}] + dependencies = [