Notices: list traccc in the canonical third-party manifest

The SparseCCL connected-component labelling adapted from traccc is MPL-2.0 source in this tree, and
MPL-2.0 requires the notice to be conveyed with it. The licence text has always shipped
(licenses/traccc.txt, installed with the rest of licenses/ into share/doc/jfjoch) and
docs/ACKNOWLEDGEMENT.md has always credited it - but the root THIRD_PARTY_NOTICES.md, which is the
manifest a recipient actually reads, never named it.

The generated docs/ copy DID name it, and more completely than a fresh row would have: both files
it touches, and a note explaining that only one of them adapts the source while the other follows
the design. So the fix is to carry that entry back into the canonical file rather than write a new
one - the generated copy had been edited directly at some point, against its own banner, and the
edit never reached the file it is generated from. Regenerating now reproduces docs/ byte for byte,
which is the check that the two are finally in step.

update_version.sh gains the link rewrite that entry needs: the acknowledgement is docs/ACKNOWLEDGEMENT.md
from the root and ACKNOWLEDGEMENT.md from inside docs/, so without the rule the next regeneration
would have written a path that resolves nowhere.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-11 17:08:34 +02:00
co-authored by Claude Opus 5
parent 43627e22dc
commit 1eb9d5a2fa
2 changed files with 9 additions and 2 deletions
+8 -2
View File
@@ -48,6 +48,7 @@ These are copied into the source tree (see the path) rather than fetched.
| [LZ4](https://github.com/lz4/lz4) | `compression/lz4/` | Yann Collet | BSD-2-Clause | [lz4.txt](licenses/lz4.txt) |
| [HLS arbitrary-precision types](https://github.com/Xilinx/HLS_arbitrary_Precision_Types) | `fpga/include/` | Xilinx, Inc. | Apache-2.0 | [xilinx-hls-headers.txt](licenses/xilinx-hls-headers.txt) |
| [GEMMI](https://github.com/project-gemmi/gemmi) | `gemmi_gph/` | Global Phasing Ltd. | MPL-2.0 | [gemmi.txt](licenses/gemmi.txt) |
| [traccc (ACTS)](https://github.com/acts-project/traccc) | `image_analysis/spot_finding/StrongPixelSet.cpp`, `SpotExtractorGPU.cu` | CERN, for the benefit of the ACTS project | MPL-2.0 | [traccc.txt](licenses/traccc.txt) |
| [xbflash.qspi](https://github.com/Xilinx/XRT) | `tools/xbflash.qspi/` | Xilinx / AMD | Apache-2.0 | [xbflash-qspi.txt](licenses/xbflash-qspi.txt) |
| [wingetopt](https://github.com/alex85k/wingetopt) | `tools/wingetopt/` | Todd C. Miller; The NetBSD Foundation | ISC AND BSD-2-Clause | [wingetopt.txt](licenses/wingetopt.txt) |
@@ -74,9 +75,14 @@ served frontend, so the shipped web UI carries its own attribution.
## Notes on weak-copyleft and attribution-sensitive components
* **MPL-2.0** (Eigen, GEMMI, libzmq): file-level copyleft. GEMMI is vendored in `gemmi_gph/` in
trimmed form; libzmq is fetched at build time; Eigen is provided externally (header-only). The
* **MPL-2.0** (Eigen, GEMMI, libzmq, traccc): file-level copyleft. GEMMI is vendored in `gemmi_gph/`
in trimmed form; libzmq is fetched at build time; Eigen is provided externally (header-only). The
corresponding source is available from each project upstream.
* **traccc** is the one entry that is not a vendored directory. Its sparse connected-component
labelling enters two otherwise first-party files: `StrongPixelSet.cpp` adapts the SparseCCL source,
and `SpotExtractorGPU.cu` follows the design of its GPU counterpart. MPL-2.0 is file-level, so both
files name the origin at the top and are covered by `licenses/traccc.txt`. See
[ACKNOWLEDGEMENT.md](docs/ACKNOWLEDGEMENT.md) for the citation.
* **FFTW** is GPL-2.0-or-later — compatible with, and absorbed by, this project's GPL-3.0 license.
* **Apache-2.0** components: where upstream ships a `NOTICE` file, it is reproduced in the
corresponding `licenses/` text.
+1
View File
@@ -82,6 +82,7 @@ REPOBASE=https://gitea.psi.ch/mx/jungfraujoch/src/branch/main
sed -e "s,](licenses/,]($REPOBASE/licenses/,g" \
-e "s,](LICENSE)),](LICENSE.md)),g" \
-e "s,](fpga/LICENSE),](FPGA_LICENSE.md),g" \
-e "s,](docs/ACKNOWLEDGEMENT.md),](ACKNOWLEDGEMENT.md),g" \
THIRD_PARTY_NOTICES.md
} > docs/THIRD_PARTY_NOTICES.md