From dfe81f2d5fba9bca3c31eae156fd11d76b13bc8f Mon Sep 17 00:00:00 2001 From: "riseproject-dev[bot]" <330740410+riseproject-dev[bot]@users.noreply.github.com> Date: Sun, 4 Oct 2026 07:53:54 +0000 Subject: [PATCH 1/4] fastjet: Add versions 3.5.1.5, 3.5.2.0 Signed-off-by: riseproject-dev[bot] <330740410+riseproject-dev[bot]@users.noreply.github.com> --- docs/packages/fastjet.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/packages/fastjet.yaml b/docs/packages/fastjet.yaml index 98d0ea22e0e..f0c62e6e2ce 100644 --- a/docs/packages/fastjet.yaml +++ b/docs/packages/fastjet.yaml @@ -19,3 +19,5 @@ versions: - filename: fastjet-3.5.1.4-cp314-cp314t-manylinux_2_39_riscv64.whl sha256: d865aa2b4128527a1f6e51a7d349f8e899df0a774368e060dde3f2f6389caba7 requires-python: '>=3.10' +- version: 3.5.1.5 +- version: 3.5.2.0 From 9c6c3f032138427a73ffdcba91d35841a964ba00 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 9 Oct 2026 16:31:50 +0000 Subject: [PATCH 2/4] fastjet: carry forward riscv64 patches to 3.5.1.5, 3.5.2.0 Nightly version bump omitted the patches/fastjet/ directory for 3.5.1.5, 3.5.2.0, so the build's unconditional `git apply .../*.patch` step failed with "No such file or directory" before any build/test ran. Copied forward the same patch set from 3.5.1.4 (unchanged since then). --- ...p-licence-files-of-bundled-libraries.patch | 43 +++++++++++++++++++ ...p-licence-files-of-bundled-libraries.patch | 43 +++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 patches/fastjet/3.5.1.5/0001-pyproject-ship-licence-files-of-bundled-libraries.patch create mode 100644 patches/fastjet/3.5.2.0/0001-pyproject-ship-licence-files-of-bundled-libraries.patch diff --git a/patches/fastjet/3.5.1.5/0001-pyproject-ship-licence-files-of-bundled-libraries.patch b/patches/fastjet/3.5.1.5/0001-pyproject-ship-licence-files-of-bundled-libraries.patch new file mode 100644 index 00000000000..b31c1123612 --- /dev/null +++ b/patches/fastjet/3.5.1.5/0001-pyproject-ship-licence-files-of-bundled-libraries.patch @@ -0,0 +1,43 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 2 Oct 2026 12:00:00 +0200 +Subject: [PATCH] pyproject: ship licence files of bundled libraries + +The wheels compile and ship FastJet (extern/fastjet-core, GPL-2.0-or-later), +SISCone (GPL-2.0-or-later) and the fastjet-contrib packages (each under +its own COPYING) as fastjet/lib64/*.so, and compile CGAL (GPL-3.0-or-later +/ LGPL-3.0-or-later) and Boost (BSL-1.0) headers into libfastjet, but +only carry the binding's own BSD-3-Clause LICENSE. + +List the in-tree COPYING files, and widen LICENSE to LICENSE* so the +CGAL and Boost notices staged as LICENSE. at the project root +before the wheel build are packaged into dist-info/licenses/ too. The +sdist still only matches LICENSE at its root. + +Upstream-Status: To upstream [not yet submitted; the same gap exists in every fastjet wheel on PyPI, so it needs a maintainer discussion rather than a drive-by PR] +--- + pyproject.toml | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/pyproject.toml b/pyproject.toml +index ade2171..741d23d 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -11,7 +11,13 @@ dynamic = ["version"] + requires-python = ">=3.10" + readme = "README.md" + license = "BSD-3-clause" +-license-files = ["LICENSE"] ++license-files = [ ++ "LICENSE*", ++ "extern/fastjet-core/COPYING", ++ "extern/fastjet-core/plugins/SISCone/siscone/COPYING", ++ "extern/fastjet-contrib/COPYING", ++ "extern/fastjet-contrib/*/COPYING", ++] + classifiers = [ + "Development Status :: 1 - Planning", + "Intended Audience :: Developers", +-- +2.43.0 + diff --git a/patches/fastjet/3.5.2.0/0001-pyproject-ship-licence-files-of-bundled-libraries.patch b/patches/fastjet/3.5.2.0/0001-pyproject-ship-licence-files-of-bundled-libraries.patch new file mode 100644 index 00000000000..b31c1123612 --- /dev/null +++ b/patches/fastjet/3.5.2.0/0001-pyproject-ship-licence-files-of-bundled-libraries.patch @@ -0,0 +1,43 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 2 Oct 2026 12:00:00 +0200 +Subject: [PATCH] pyproject: ship licence files of bundled libraries + +The wheels compile and ship FastJet (extern/fastjet-core, GPL-2.0-or-later), +SISCone (GPL-2.0-or-later) and the fastjet-contrib packages (each under +its own COPYING) as fastjet/lib64/*.so, and compile CGAL (GPL-3.0-or-later +/ LGPL-3.0-or-later) and Boost (BSL-1.0) headers into libfastjet, but +only carry the binding's own BSD-3-Clause LICENSE. + +List the in-tree COPYING files, and widen LICENSE to LICENSE* so the +CGAL and Boost notices staged as LICENSE. at the project root +before the wheel build are packaged into dist-info/licenses/ too. The +sdist still only matches LICENSE at its root. + +Upstream-Status: To upstream [not yet submitted; the same gap exists in every fastjet wheel on PyPI, so it needs a maintainer discussion rather than a drive-by PR] +--- + pyproject.toml | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/pyproject.toml b/pyproject.toml +index ade2171..741d23d 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -11,7 +11,13 @@ dynamic = ["version"] + requires-python = ">=3.10" + readme = "README.md" + license = "BSD-3-clause" +-license-files = ["LICENSE"] ++license-files = [ ++ "LICENSE*", ++ "extern/fastjet-core/COPYING", ++ "extern/fastjet-core/plugins/SISCone/siscone/COPYING", ++ "extern/fastjet-contrib/COPYING", ++ "extern/fastjet-contrib/*/COPYING", ++] + classifiers = [ + "Development Status :: 1 - Planning", + "Intended Audience :: Developers", +-- +2.43.0 + From 399d48675bd7afabdfe25151bd23b0a7803ac273 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Sat, 10 Oct 2026 18:54:34 +0000 Subject: [PATCH 3/4] fastjet: install Rust so the test extra's graphed dependency can build cp312/313/314 install upstream's [test] extra, which pulls in graphed (a maturin/PyO3 package with no riscv64 wheel on PyPI). maturin's own Rust auto-install (puccinialin) computes the wrong rustup target triple for riscv64 and fails ('Target triple not supported by rustup: riscv64-unknown-linux-gnu'), so install a working toolchain via rustup.rs before it gets the chance to try -- same pattern as build-minijinja.yml and build-qoi.yml. cp314t already avoided this by using the [dev] extra instead, which is why only cp312/313/314 were failing. --- .github/workflows/build-fastjet.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build-fastjet.yml b/.github/workflows/build-fastjet.yml index 0b1536b2d64..163536584ae 100644 --- a/.github/workflows/build-fastjet.yml +++ b/.github/workflows/build-fastjet.yml @@ -88,9 +88,15 @@ jobs: cp /usr/local/share/doc/CGAL/LICENSE {project}/LICENSE.CGAL && cp /usr/local/share/doc/CGAL/LICENSE.GPL {project}/LICENSE.CGAL.GPL && cp /usr/local/share/doc/CGAL/LICENSE.LGPL {project}/LICENSE.CGAL.LGPL + # The `test` extra (cp312/313/314) pulls in graphed, a maturin/PyO3 package with no + # riscv64 wheel. maturin's own Rust auto-install (puccinialin) computes the wrong rustup + # target triple for riscv64 and fails, so install a working toolchain via rustup.rs + # before it gets the chance to try, same as build-minijinja.yml/build-qoi.yml. + CIBW_BEFORE_ALL_LINUX: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y # Our registry carries awkward-cpp 56, not PyPI's newest 57: stay on awkward 2.13.0. CIBW_ENVIRONMENT: >- SETUPTOOLS_SCM_PRETEND_VERSION_FOR_FASTJET=${{ env.FASTJET_VERSION }} + PATH="$PATH:$HOME/.cargo/bin" PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/ PIP_ONLY_BINARY=numpy,awkward-cpp,pyarrow,pandas,boost-histogram # pandas (via dask-awkward[test]) has no free-threaded riscv64 wheel, so cp314t gets From cf23356a9e9c9941914b38ba6e56eaa903f0874c Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Sat, 10 Oct 2026 22:01:04 +0000 Subject: [PATCH 4/4] fastjet: restore upstream's boost/CGAL before-all, dropped by the rustup fix CIBW_BEFORE_ALL_LINUX replaces cibuildwheel's before-all outright rather than extending it, so setting it to just the rustup install silently dropped upstream's own pyproject.toml [tool.cibuildwheel.linux] before-all (the boost_1_88_0 download/extract and CGAL 6.0.1 build), breaking the CIBW_BEFORE_BUILD license-copy step for every version/leg: cp: cannot stat '/project/boost_1_88_0/LICENSE_1_0.txt': No such file or directory Chain both so the rustup install for the test extra's graphed dependency (the thing the previous commit actually needed) runs after upstream's own before-all, not instead of it. --- .github/workflows/build-fastjet.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-fastjet.yml b/.github/workflows/build-fastjet.yml index 163536584ae..1ed4c597458 100644 --- a/.github/workflows/build-fastjet.yml +++ b/.github/workflows/build-fastjet.yml @@ -88,11 +88,26 @@ jobs: cp /usr/local/share/doc/CGAL/LICENSE {project}/LICENSE.CGAL && cp /usr/local/share/doc/CGAL/LICENSE.GPL {project}/LICENSE.CGAL.GPL && cp /usr/local/share/doc/CGAL/LICENSE.LGPL {project}/LICENSE.CGAL.LGPL + # CIBW_BEFORE_ALL_LINUX replaces upstream's pyproject.toml [tool.cibuildwheel.linux] + # before-all rather than adding to it, so it has to repeat that before-all's own + # boost/CGAL install (the CIBW_BEFORE_BUILD license copy above depends on it) in + # addition to the rustup install below. # The `test` extra (cp312/313/314) pulls in graphed, a maturin/PyO3 package with no # riscv64 wheel. maturin's own Rust auto-install (puccinialin) computes the wrong rustup # target triple for riscv64 and fails, so install a working toolchain via rustup.rs # before it gets the chance to try, same as build-minijinja.yml/build-qoi.yml. - CIBW_BEFORE_ALL_LINUX: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + CIBW_BEFORE_ALL_LINUX: >- + curl -L https://archives.boost.io/release/1.88.0/source/boost_1_88_0.tar.bz2 -o boost_1_88_0.tar.bz2 && + tar --bzip2 -xf boost_1_88_0.tar.bz2 && + mv boost_1_88_0/boost /usr/include/boost && + curl -L https://github.com/CGAL/cgal/releases/download/v6.0.1/CGAL-6.0.1-library.zip -o CGAL-6.0.1-library.zip && + unzip -q CGAL-6.0.1-library.zip && + mkdir CGAL-6.0.1/build && + cmake -S CGAL-6.0.1 -B CGAL-6.0.1/build -DCMAKE_BUILD_TYPE="Release" && + cmake --build CGAL-6.0.1/build --clean-first && + cmake --install CGAL-6.0.1/build && + rm -r CGAL-6.0.1 CGAL-6.0.1-library.zip && + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y # Our registry carries awkward-cpp 56, not PyPI's newest 57: stay on awkward 2.13.0. CIBW_ENVIRONMENT: >- SETUPTOOLS_SCM_PRETEND_VERSION_FOR_FASTJET=${{ env.FASTJET_VERSION }}