feat(clients): in-app OSS / third-party-license screens
Surface THIRD-PARTY-NOTICES.txt in every GUI client (the desktop packages already
ship it as a file; this adds the on-glass screen):
- Linux: Preferences -> About -> Third-party licenses (adw::AboutDialog with the app
license + Legal sections; include_str! the root notices).
- Apple: macOS About tab / iOS+tvOS Acknowledgements link; notices bundled as
PunktfunkKit SPM resources, read via Bundle.module (the Xcode app links the SPM
product, so they ride along - no .pbxproj edit).
- Android: Settings -> About -> Open-source licenses (reads the bundled asset).
- (Windows landed earlier in d1d2ca2: Settings -> About -> Third-party licenses.)
gen-third-party-notices.sh now copies the generated file into the Apple Resources/
and Android assets/ trees so the in-tree copies never drift.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,3 +19,17 @@ else
|
||||
python3 scripts/gen-third-party-notices.py --out "$OUT"
|
||||
fi
|
||||
echo "==> wrote $OUT" >&2
|
||||
|
||||
# Keep the per-client in-tree copies in sync (the GUI apps bundle these as resources/assets and
|
||||
# show them on their Acknowledgements / Open-source-licenses screen). The Linux/Windows Rust clients
|
||||
# embed the root file directly via include_str!, so they need no copy.
|
||||
if [ "$OUT" = "THIRD-PARTY-NOTICES.txt" ]; then
|
||||
for dest in \
|
||||
clients/apple/Sources/PunktfunkKit/Resources/THIRD-PARTY-NOTICES.txt \
|
||||
clients/android/app/src/main/assets/THIRD-PARTY-NOTICES.txt; do
|
||||
if [ -d "$(dirname "$dest")" ]; then
|
||||
cp "$OUT" "$dest"
|
||||
echo "==> synced $dest" >&2
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user