From 075bb2ebd0c59d4c472f5fd399f963318e47a2a5 Mon Sep 17 00:00:00 2001 From: Michal Harakal Date: Wed, 26 Aug 2026 17:50:19 +0200 Subject: [PATCH 1/6] chore(compliance): artifact-level third-party notices + interpretation credits MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The repo-level compliance was already in place (REUSE CI green, .license sidecar, byte-identical vendor re-verified: sha256 a560ffcf... matches the recorded upstream commit). What reuse lint cannot see is the artifact level: the published jar/klibs and the AAR ship COMPILED copies of the vendored NeoGPU kernel, and MIT's notice obligation follows them. - META-INF/THIRD-PARTY-NOTICES.md in skainet-backend-native-cpu (jvm resources — lands in the jar next to the bundled libskainet_kernels) and in skainet-backend-jni-cpu (AAR classes.jar), carrying the NeoGPU copyright + MIT text and the BitNet.cpp format-knowledge note. - Interpretation credits for the I2_S wire format: BitNet.cpp (MIT, Microsoft) named in I2sRepack.kt and the Constants.kt header, following the existing llama.cpp precedent — reimplemented layout rules, not copied code. - Vendor README cross-references the artifact notices so re-vendoring keeps them in sync. LICENSES/ audit result, recorded rather than changed: Apache-2.0.txt and CC0-1.0.txt are genuinely referenced (gradle wrapper + onnx-ml.proto3; FSFE/Scorecard workflow files) — justified, kept. Refs #1166, #1136 Co-Authored-By: Claude Fable 5 --- .../resources/META-INF/THIRD-PARTY-NOTICES.md | 46 +++++++++++++++++++ .../native/src/vendor/neogpu/README.md | 8 ++++ .../resources/META-INF/THIRD-PARTY-NOTICES.md | 46 +++++++++++++++++++ .../kotlin/sk/ainet/io/gguf/Constants.kt | 3 ++ .../kotlin/sk/ainet/io/gguf/I2sRepack.kt | 7 +++ 5 files changed, 110 insertions(+) create mode 100644 skainet-backends/skainet-backend-jni-cpu/src/main/resources/META-INF/THIRD-PARTY-NOTICES.md create mode 100644 skainet-backends/skainet-backend-native-cpu/src/jvmMain/resources/META-INF/THIRD-PARTY-NOTICES.md diff --git a/skainet-backends/skainet-backend-jni-cpu/src/main/resources/META-INF/THIRD-PARTY-NOTICES.md b/skainet-backends/skainet-backend-jni-cpu/src/main/resources/META-INF/THIRD-PARTY-NOTICES.md new file mode 100644 index 000000000..e8d1716cc --- /dev/null +++ b/skainet-backends/skainet-backend-jni-cpu/src/main/resources/META-INF/THIRD-PARTY-NOTICES.md @@ -0,0 +1,46 @@ +# Third-party notices — skainet-backend-jni-cpu + +This AAR bundles compiled native libraries (`libskainet_jni.so` / +`libskainet_jni_v82.so`) that contain code from the following third-party +project. The MIT license requires this notice to +accompany copies and substantial portions of the software — compiled copies +included. + +## NeoGPU — ternary LUT NEON kernel + +- Upstream: +- File: `src/hs_ml_ternary_neon.c`, vendored byte-identical at commit `0846b24` + (see `native/src/vendor/neogpu/README.md` in the source tree) +- Vendoring agreed with upstream in + [anjaustin/neogpu#1](https://github.com/anjaustin/neogpu/issues/1) + +``` +MIT License + +Copyright (c) 2024 NeoGPU Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +## Format-knowledge attribution (no code shipped) + +The I2_S GGUF wire-format handling in `skainet-io-gguf` was written against the +sources of [BitNet.cpp](https://github.com/microsoft/BitNet) (MIT, © Microsoft +Corporation) — a reimplementation of the layout rules, not copied code. See the +interpretation notes in `sk.ainet.io.gguf.I2sRepack`. diff --git a/skainet-backends/skainet-backend-native-cpu/native/src/vendor/neogpu/README.md b/skainet-backends/skainet-backend-native-cpu/native/src/vendor/neogpu/README.md index 457b70aaa..158eb73b0 100644 --- a/skainet-backends/skainet-backend-native-cpu/native/src/vendor/neogpu/README.md +++ b/skainet-backends/skainet-backend-native-cpu/native/src/vendor/neogpu/README.md @@ -45,6 +45,14 @@ Exports three symbols; SKaiNET wraps the first two via default `-march=armv8.2-a+fp16+dotprod` would defeat its purpose (dotprod-less targets). +## Shipped-artifact notices + +Compiled copies of this file travel inside published artifacts (the +`skainet-backend-native-cpu` jar/klibs and the `skainet-backend-jni-cpu` AAR). +MIT's notice obligation follows them: each of those artifacts carries +`META-INF/THIRD-PARTY-NOTICES.md` with the NeoGPU copyright and license text. +Keep those notices in sync with this README when re-vendoring. + ## Re-vendoring Copy the file byte-identical from upstream, update the commit + SHA-256 here, diff --git a/skainet-backends/skainet-backend-native-cpu/src/jvmMain/resources/META-INF/THIRD-PARTY-NOTICES.md b/skainet-backends/skainet-backend-native-cpu/src/jvmMain/resources/META-INF/THIRD-PARTY-NOTICES.md new file mode 100644 index 000000000..2668af2a9 --- /dev/null +++ b/skainet-backends/skainet-backend-native-cpu/src/jvmMain/resources/META-INF/THIRD-PARTY-NOTICES.md @@ -0,0 +1,46 @@ +# Third-party notices — skainet-backend-native-cpu + +This artifact bundles a compiled native library (`libskainet_kernels.{so,dylib,dll}`, +and the static archive embedded in the Kotlin/Native klibs) that contains code +from the following third-party project. The MIT license requires this notice to +accompany copies and substantial portions of the software — compiled copies +included. + +## NeoGPU — ternary LUT NEON kernel + +- Upstream: +- File: `src/hs_ml_ternary_neon.c`, vendored byte-identical at commit `0846b24` + (see `native/src/vendor/neogpu/README.md` in the source tree) +- Vendoring agreed with upstream in + [anjaustin/neogpu#1](https://github.com/anjaustin/neogpu/issues/1) + +``` +MIT License + +Copyright (c) 2024 NeoGPU Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +## Format-knowledge attribution (no code shipped) + +The I2_S GGUF wire-format handling in `skainet-io-gguf` was written against the +sources of [BitNet.cpp](https://github.com/microsoft/BitNet) (MIT, © Microsoft +Corporation) — a reimplementation of the layout rules, not copied code. See the +interpretation notes in `sk.ainet.io.gguf.I2sRepack`. diff --git a/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/Constants.kt b/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/Constants.kt index f5afc8202..81e5b18b1 100644 --- a/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/Constants.kt +++ b/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/Constants.kt @@ -3,6 +3,9 @@ package sk.ainet.io.gguf /** * This is a kotlin gguf reader related logic interpreted from python code "gguf-py/gguf/constants.py" * of github repo "https://github.com/ggerganov/llama.cpp" + * + * The I2_S entry (type 36) is interpreted from the sources of + * "https://github.com/microsoft/BitNet" (BitNet.cpp, MIT) — see the layout notes in I2sRepack.kt. */ const val GGUF_MAGIC = 0x46554747u diff --git a/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt b/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt index a7e4eca5d..2df5fcad9 100644 --- a/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt +++ b/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt @@ -1,5 +1,12 @@ package sk.ainet.io.gguf +// The I2_S layout rules in this file are interpreted from the sources of +// https://github.com/microsoft/BitNet (BitNet.cpp, MIT, © Microsoft Corporation) — +// `quantize_i2_s` in src/ggml-bitnet-mad.cpp — and from NeoGPU's +// tools/convert_bitnet_to_gguf.py (https://github.com/anjaustin/neogpu, MIT). +// A clean-room reimplementation of the format, not copied code — the same +// convention as the llama.cpp note in Constants.kt. + /** * Which bit order an I2_S GGUF's payload is in — a property of the *converter that wrote the * file*, not recoverable from the bytes, so the caller has to say (#1140). From 351f2e8419a3951b7a0a5ccbfb16f2ff93897255 Mon Sep 17 00:00:00 2001 From: Michal Harakal Date: Thu, 27 Aug 2026 09:02:33 +0200 Subject: [PATCH 2/6] Update skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/Constants.kt Co-authored-by: MacOS --- .../src/commonMain/kotlin/sk/ainet/io/gguf/Constants.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/Constants.kt b/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/Constants.kt index 81e5b18b1..1aa400e7a 100644 --- a/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/Constants.kt +++ b/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/Constants.kt @@ -6,6 +6,9 @@ package sk.ainet.io.gguf * * The I2_S entry (type 36) is interpreted from the sources of * "https://github.com/microsoft/BitNet" (BitNet.cpp, MIT) — see the layout notes in I2sRepack.kt. + * + * SPDX-FileCopyrightText: Copyright (c) Microsoft Corporation + * SPDX-License-Identifier: MIT */ const val GGUF_MAGIC = 0x46554747u From e25362936f881f038556753570949bddee53ef09 Mon Sep 17 00:00:00 2001 From: Michal Harakal Date: Thu, 27 Aug 2026 09:02:47 +0200 Subject: [PATCH 3/6] Update skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt Co-authored-by: MacOS --- .../src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt b/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt index 2df5fcad9..98e4f0864 100644 --- a/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt +++ b/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt @@ -6,7 +6,8 @@ package sk.ainet.io.gguf // tools/convert_bitnet_to_gguf.py (https://github.com/anjaustin/neogpu, MIT). // A clean-room reimplementation of the format, not copied code — the same // convention as the llama.cpp note in Constants.kt. - +// SPDX-FileCopyrightText: Copyright (c) Microsoft Corporation +// SPDX-License-Identifier: MIT /** * Which bit order an I2_S GGUF's payload is in — a property of the *converter that wrote the * file*, not recoverable from the bytes, so the caller has to say (#1140). From 5c4ea90fcf095487ad0fad09f4242646563635a3 Mon Sep 17 00:00:00 2001 From: michalharakal Date: Thu, 27 Aug 2026 09:09:07 +0200 Subject: [PATCH 4/6] chore(compliance): SPDX headers for notice/readme files; clarify no binaries in repo (#1166) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review follow-up on #1177: add explicit SPDX copyright/license headers to the vendor README and both THIRD-PARTY-NOTICES.md files (the vendored C file keeps its REUSE .license sidecar to stay byte-identical to upstream), and reword the notices so it is clear the compiled libraries exist only in the published Maven Central artifacts — no binaries are checked into the repository. --- .../resources/META-INF/THIRD-PARTY-NOTICES.md | 13 ++++++++++--- .../native/src/vendor/neogpu/README.md | 15 ++++++++++++--- .../resources/META-INF/THIRD-PARTY-NOTICES.md | 14 +++++++++++--- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/skainet-backends/skainet-backend-jni-cpu/src/main/resources/META-INF/THIRD-PARTY-NOTICES.md b/skainet-backends/skainet-backend-jni-cpu/src/main/resources/META-INF/THIRD-PARTY-NOTICES.md index e8d1716cc..6064c49fe 100644 --- a/skainet-backends/skainet-backend-jni-cpu/src/main/resources/META-INF/THIRD-PARTY-NOTICES.md +++ b/skainet-backends/skainet-backend-jni-cpu/src/main/resources/META-INF/THIRD-PARTY-NOTICES.md @@ -1,8 +1,15 @@ + + # Third-party notices — skainet-backend-jni-cpu -This AAR bundles compiled native libraries (`libskainet_jni.so` / -`libskainet_jni_v82.so`) that contain code from the following third-party -project. The MIT license requires this notice to +This notice travels inside the published `skainet-backend-jni-cpu` AAR on +Maven Central. That AAR bundles native libraries (`libskainet_jni.so` / +`libskainet_jni_v82.so`) compiled at release time from source — the source +repository contains no binaries. The compiled libraries contain code from the +following third-party project, and the MIT license requires this notice to accompany copies and substantial portions of the software — compiled copies included. diff --git a/skainet-backends/skainet-backend-native-cpu/native/src/vendor/neogpu/README.md b/skainet-backends/skainet-backend-native-cpu/native/src/vendor/neogpu/README.md index 158eb73b0..b0a4e8acf 100644 --- a/skainet-backends/skainet-backend-native-cpu/native/src/vendor/neogpu/README.md +++ b/skainet-backends/skainet-backend-native-cpu/native/src/vendor/neogpu/README.md @@ -1,8 +1,15 @@ + + # Vendored: NeoGPU ternary LUT kernel Byte-identical copy of one file from the NeoGPU project, vendored under its -MIT license (see the REUSE `.license` sidecar; `LICENSES/MIT.txt` at the repo -root carries the license text). Agreed with upstream in +MIT license. Because the file must stay byte-identical to upstream, its SPDX +copyright and license header lives in the REUSE `.license` sidecar +(`hs_ml_ternary_neon.c.license`) instead of the file itself; `LICENSES/MIT.txt` +at the repo root carries the license text. Agreed with upstream in [anjaustin/neogpu#1](https://github.com/anjaustin/neogpu/issues/1); SKaiNET tracking issue: [#1136](https://github.com/SKaiNET-developers/SKaiNET/issues/1136). @@ -47,7 +54,9 @@ Exports three symbols; SKaiNET wraps the first two via ## Shipped-artifact notices -Compiled copies of this file travel inside published artifacts (the +Only this C source file is checked into the repository — no compiled binaries +live in the tree. Compilation happens at build/release time, and the compiled +copies exist only inside the artifacts published to Maven Central (the `skainet-backend-native-cpu` jar/klibs and the `skainet-backend-jni-cpu` AAR). MIT's notice obligation follows them: each of those artifacts carries `META-INF/THIRD-PARTY-NOTICES.md` with the NeoGPU copyright and license text. diff --git a/skainet-backends/skainet-backend-native-cpu/src/jvmMain/resources/META-INF/THIRD-PARTY-NOTICES.md b/skainet-backends/skainet-backend-native-cpu/src/jvmMain/resources/META-INF/THIRD-PARTY-NOTICES.md index 2668af2a9..d3c8e856c 100644 --- a/skainet-backends/skainet-backend-native-cpu/src/jvmMain/resources/META-INF/THIRD-PARTY-NOTICES.md +++ b/skainet-backends/skainet-backend-native-cpu/src/jvmMain/resources/META-INF/THIRD-PARTY-NOTICES.md @@ -1,8 +1,16 @@ + + # Third-party notices — skainet-backend-native-cpu -This artifact bundles a compiled native library (`libskainet_kernels.{so,dylib,dll}`, -and the static archive embedded in the Kotlin/Native klibs) that contains code -from the following third-party project. The MIT license requires this notice to +This notice travels inside the published `skainet-backend-native-cpu` +artifacts on Maven Central. Those artifacts bundle a native library +(`libskainet_kernels.{so,dylib,dll}`, and the static archive embedded in the +Kotlin/Native klibs) compiled at release time from source — the source +repository contains no binaries. The compiled library contains code from the +following third-party project, and the MIT license requires this notice to accompany copies and substantial portions of the software — compiled copies included. From 7e5d207687fd6a1e9fb807776296ff3b78aa106c Mon Sep 17 00:00:00 2001 From: michalharakal Date: Thu, 27 Aug 2026 09:29:18 +0200 Subject: [PATCH 5/6] style(io): SPDX lines inside the I2sRepack attribution note, matching Constants.kt (#1166) --- .../kotlin/sk/ainet/io/gguf/I2sRepack.kt | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt b/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt index 98e4f0864..21b052d7c 100644 --- a/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt +++ b/skainet-io/skainet-io-gguf/src/commonMain/kotlin/sk/ainet/io/gguf/I2sRepack.kt @@ -1,13 +1,16 @@ package sk.ainet.io.gguf -// The I2_S layout rules in this file are interpreted from the sources of -// https://github.com/microsoft/BitNet (BitNet.cpp, MIT, © Microsoft Corporation) — -// `quantize_i2_s` in src/ggml-bitnet-mad.cpp — and from NeoGPU's -// tools/convert_bitnet_to_gguf.py (https://github.com/anjaustin/neogpu, MIT). -// A clean-room reimplementation of the format, not copied code — the same -// convention as the llama.cpp note in Constants.kt. -// SPDX-FileCopyrightText: Copyright (c) Microsoft Corporation -// SPDX-License-Identifier: MIT +/* + * The I2_S layout rules in this file are interpreted from the sources of + * "https://github.com/microsoft/BitNet" (BitNet.cpp, MIT, © Microsoft Corporation) — + * `quantize_i2_s` in src/ggml-bitnet-mad.cpp — and from NeoGPU's + * tools/convert_bitnet_to_gguf.py ("https://github.com/anjaustin/neogpu", MIT). + * A clean-room reimplementation of the format, not copied code — the same + * convention as the llama.cpp note in Constants.kt. + * + * SPDX-FileCopyrightText: Copyright (c) Microsoft Corporation + * SPDX-License-Identifier: MIT + */ /** * Which bit order an I2_S GGUF's payload is in — a property of the *converter that wrote the * file*, not recoverable from the bytes, so the caller has to say (#1140). From 36dc067d994d4a6ad54db773fed9fe878e59191a Mon Sep 17 00:00:00 2001 From: michalharakal Date: Thu, 27 Aug 2026 10:25:14 +0200 Subject: [PATCH 6/6] chore(compliance): CC0-1.0 for markdown notice files; explain byte-identical rationale (#1166) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review follow-up on #1177: the notice/readme files are text, not code, so their SPDX headers now use CC0-1.0 (the repo convention for non-code files, see .github/workflows/*.yml) instead of MIT. Also reword the vendor README to state why the vendored C file stays byte-identical: the recorded SHA-256 verifies provenance against the upstream commit — nothing to do with compilation output — which is why its SPDX info lives in the REUSE .license sidecar. --- .../main/resources/META-INF/THIRD-PARTY-NOTICES.md | 2 +- .../native/src/vendor/neogpu/README.md | 13 ++++++++----- .../resources/META-INF/THIRD-PARTY-NOTICES.md | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/skainet-backends/skainet-backend-jni-cpu/src/main/resources/META-INF/THIRD-PARTY-NOTICES.md b/skainet-backends/skainet-backend-jni-cpu/src/main/resources/META-INF/THIRD-PARTY-NOTICES.md index 6064c49fe..e1dc3da32 100644 --- a/skainet-backends/skainet-backend-jni-cpu/src/main/resources/META-INF/THIRD-PARTY-NOTICES.md +++ b/skainet-backends/skainet-backend-jni-cpu/src/main/resources/META-INF/THIRD-PARTY-NOTICES.md @@ -1,6 +1,6 @@ # Third-party notices — skainet-backend-jni-cpu diff --git a/skainet-backends/skainet-backend-native-cpu/native/src/vendor/neogpu/README.md b/skainet-backends/skainet-backend-native-cpu/native/src/vendor/neogpu/README.md index b0a4e8acf..d066ea71e 100644 --- a/skainet-backends/skainet-backend-native-cpu/native/src/vendor/neogpu/README.md +++ b/skainet-backends/skainet-backend-native-cpu/native/src/vendor/neogpu/README.md @@ -1,15 +1,18 @@ # Vendored: NeoGPU ternary LUT kernel Byte-identical copy of one file from the NeoGPU project, vendored under its -MIT license. Because the file must stay byte-identical to upstream, its SPDX -copyright and license header lives in the REUSE `.license` sidecar -(`hs_ml_ternary_neon.c.license`) instead of the file itself; `LICENSES/MIT.txt` -at the repo root carries the license text. Agreed with upstream in +MIT license. The file is kept byte-identical so its provenance is verifiable: +the SHA-256 in the table below can be checked directly against the file at the +upstream commit. Any in-file edit — including adding an SPDX comment header — +would change that hash, so the SPDX copyright and license info lives in the +REUSE `.license` sidecar (`hs_ml_ternary_neon.c.license`) instead; +`LICENSES/MIT.txt` at the repo root carries the license text. Agreed with +upstream in [anjaustin/neogpu#1](https://github.com/anjaustin/neogpu/issues/1); SKaiNET tracking issue: [#1136](https://github.com/SKaiNET-developers/SKaiNET/issues/1136). diff --git a/skainet-backends/skainet-backend-native-cpu/src/jvmMain/resources/META-INF/THIRD-PARTY-NOTICES.md b/skainet-backends/skainet-backend-native-cpu/src/jvmMain/resources/META-INF/THIRD-PARTY-NOTICES.md index d3c8e856c..ed4c53e29 100644 --- a/skainet-backends/skainet-backend-native-cpu/src/jvmMain/resources/META-INF/THIRD-PARTY-NOTICES.md +++ b/skainet-backends/skainet-backend-native-cpu/src/jvmMain/resources/META-INF/THIRD-PARTY-NOTICES.md @@ -1,6 +1,6 @@ # Third-party notices — skainet-backend-native-cpu