Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/workflows/build-fastjet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,30 @@ 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 -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 }}
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
Expand Down
2 changes: 2 additions & 0 deletions docs/packages/fastjet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ludovic Henry <git@ludovic.dev>
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.<dep> 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

Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ludovic Henry <git@ludovic.dev>
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.<dep> 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

Loading