From 04a8d313727ac5cbecc2f61a7f40dffa32bf9f7b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 17 Sep 2026 21:34:45 +0000 Subject: [PATCH 1/3] scs: Add version 3.3.1 Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- docs/packages/scs.yaml | 1 + 1 file changed, 1 insertion(+) 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 From 00c27b440c9cc83af05021837c83e6fe820c44ea Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 18 Sep 2026 05:18:50 +0000 Subject: [PATCH 2/3] scs: Add 3.3.1 patches The 3.2.11 patches apply unchanged to 3.3.1; the build applies patches/scs// for every version it builds. --- ...p-licence-files-of-bundled-libraries.patch | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 patches/scs/3.3.1/0001-pyproject-ship-licence-files-of-bundled-libraries.patch 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 = [ From 10318a1ccff7c88d4bdfe5f152d81eebba4ad82b Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 18 Sep 2026 13:01:01 +0000 Subject: [PATCH 3/3] scs: fix wheel licence check for 3.3.1's new LICENSE-INTEL-MKL.txt Upstream scs-python 3.3.1 added a LICENSE-INTEL-MKL.txt at the repo root (documenting the optional Intel MKL backend). The pyproject.toml patch's license-files = ['LICENSE*'] glob picks it up alongside LICENSE and our staged LICENSE.openblas, so the wheel now legitimately ships three licence files instead of two, tripping the workflow's assertion on all three interpreters. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_011RwtHNpuiuiCk4MstTLu8m --- .github/workflows/build-scs.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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