From f032c0048cd35b4c61e2cb0f9d9917460ece9e7a Mon Sep 17 00:00:00 2001 From: Michal Harakal Date: Tue, 1 Sep 2026 11:18:07 +0200 Subject: [PATCH] =?UTF-8?q?docs(compliance):=20the=20klib=20notice=20stanc?= =?UTF-8?q?e=20=E2=80=94=20how=20the=20NeoGPU=20notice=20reaches=20Kotlin/?= =?UTF-8?q?Native=20consumers=20(#1166)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kotlin/Native klibs have no META-INF resource mechanism, so the third-party notices file cannot physically travel inside them. Document the decided stance in the notices files themselves: the jar of the same release carries the authoritative notice for every artifact of that release, the repo is the versioned source of truth, and an app statically linking a SKaiNET klib carries the NeoGPU MIT notice in its own attributions. Closes the last technical checklist item of #1166 short of the upstream courtesies. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01YKeDSK4JF295y53Uvez954 --- .../resources/META-INF/THIRD-PARTY-NOTICES.md | 18 ++++++++++++++++++ .../resources/META-INF/THIRD-PARTY-NOTICES.md | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) 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 e1dc3da3..25a5ded0 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 @@ -51,3 +51,21 @@ 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`. + +## Kotlin/Native klibs — how this notice reaches them + +Kotlin/Native klibs have no `META-INF` resource mechanism, so this file cannot +physically travel inside the klib the way it travels inside the JVM jar and the +Android AAR. The stance for klib consumers, decided in +[#1166](https://github.com/SKaiNET-developers/SKaiNET/issues/1166): + +- The klibs of a release embed the same static archive compiled from the same + sources as the jar in **the same Maven artifact family and version** — this + notice, shipped in that release's jar, is the authoritative notice for every + artifact of the release, klibs included. +- The source of truth is versioned in the repository: `LICENSES/MIT.txt`, the + `.license` sidecar next to the vendored file, and + `native/src/vendor/neogpu/README.md`. +- An application that links a SKaiNET klib into a shipped binary should carry + the NeoGPU MIT notice in its own third-party attributions (as it should for + any statically linked MIT code); the license text above is the text to carry. 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 ed4c53e2..78e38e5a 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 @@ -52,3 +52,21 @@ 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`. + +## Kotlin/Native klibs — how this notice reaches them + +Kotlin/Native klibs have no `META-INF` resource mechanism, so this file cannot +physically travel inside the klib the way it travels inside the JVM jar and the +Android AAR. The stance for klib consumers, decided in +[#1166](https://github.com/SKaiNET-developers/SKaiNET/issues/1166): + +- The klibs of a release embed the same static archive compiled from the same + sources as the jar in **the same Maven artifact family and version** — this + notice, shipped in that release's jar, is the authoritative notice for every + artifact of the release, klibs included. +- The source of truth is versioned in the repository: `LICENSES/MIT.txt`, the + `.license` sidecar next to the vendored file, and + `native/src/vendor/neogpu/README.md`. +- An application that links a SKaiNET klib into a shipped binary should carry + the NeoGPU MIT notice in its own third-party attributions (as it should for + any statically linked MIT code); the license text above is the text to carry.