Files
Unlucky-Launcher/NOTICE
T
AskaEth 3e01e83c61 fix(docs): M118 r3 —— 撤回「AboutSlint 从未落地」的假前提,改为中性陈述 + 不作法律判断
复审 r3 的唯一 P1:r2 为了论证「未履行」,断言「`AboutSlint` 部件一直只有排期、从未落地」。
**这条是错的**,我先自己核了源码再改:

```
$ git grep -n 'AboutSlint' crates/app/
crates/app/ui/pages/settings.slint:4:// 关于页内嵌 AboutSlint —— Slint RF 2.0 许可义务(01c §8:关于页放官方部件)。
crates/app/ui/pages/settings.slint:15:import { AboutSlint, ScrollView } from "std-widgets.slint";
crates/app/ui/pages/settings.slint:274:                        AboutSlint { }
$ git grep -n 'AboutSlint' v0.1.0 -- crates/
(同上三行,v0.1.0 这个 tag 里就有)
$ sed -n '272,275p' crates/app/ui/pages/settings.slint
if root.section == SettingSection.about : Rectangle { height: 120px; AboutSlint { } }
$ sed -n '129p' crates/app/ui/pages/settings.slint   → SectionRow { label: "关于"; … }
$ grep -n 'RouteKind.settings' crates/app/ui/components/nav.slint → :114/:116(侧栏入口)
$ grep -n compile crates/app/build.rs → slint_build::compile("ui/main.slint")
$ grep -n SettingsPage crates/app/ui/shell.slint → :23 import / :273 route==settings 时渲染
```

即:部件真实存在、经 build.rs 编译进二进制、侧栏 → 设置页「关于」一点即到;`packaging/README.md:317`
「(已在 UI 内)」本来就与代码一致,本轮未改。r2 的依据只是三份文档的自述(旧 NOTICE「P2 排期」、
README「still outstanding」),那份自述不可靠。

改法(三处同一句,`packaging/release-notes.md` 不动):
- 删掉「只有排期 / 从未落地 / 尚未以任一形式落地」这类断言;
- 改成中性陈述:义务挂在每次「随应用分发」上;`v0.1.0` 的设置页「关于」分组里**确实内置了**
  `AboutSlint` 部件(`crates/app/ui/pages/settings.slint`,从侧栏进入);该部件是否满足 §2(a)、
  以及 v0.1.0 发布页上是文字链接而非 §2(b) 官方徽章图这两点,**本文件不作法律判断**,以 Slint
  官方许可原文为准;NOTICE / 发布页说明 / 本节都只是记录,不构成履行声明。
- 顺手按本机 registry 里 Slint 1.18.1 随包的 RF-2.0 原文把 §2(a) 补全:还允许「没有关于页时显示在
  启动画面」这一变体(原文 `In the absence of such a screen or dialog, display the widget in the
  "Splash Screen"`),r2 只写了前半句。

diff:`git diff --name-only` = NOTICE, README.md, README.zh-CN.md(3 份文档、零 .rs)。
2026-11-04 00:09:39 +08:00

67 lines
4.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Unlucky-Launcher (ULL)
Copyright 2026 AskaEth (YeiJ)
本产品采用 Apache License 2.0(见 LICENSE)。
--------------------------------------------------------------------------
第三方组件声明
--------------------------------------------------------------------------
1. Slint(https://slint.dev)——**历史源码,不随任何产物分发**
本产品**当前发布的 GUI 框架是 iced**(见第 3 节),二进制里不含任何 Slint 代码。
仓库里仍保留 Slint 版 GUI 的源码(`crates/app`),仅作历史参考:它已被 cargo workspace
`exclude`,不参与构建、测试与发布,也不会进入本项目的任何 Release 资产。
因此 Slint Royalty-Free 2.0(LicenseRef-Slint-Royalty-free-2.0)**对当前产物不适用**;它适用的是
此前已发布、且确实链接了 Slint 的 `v0.1.0` 构建——义务挂在每一次「随应用分发」上,而不是挂在某个
版本号上。上游许可 §2 给出两种形式:(a) 在可从顶层菜单进入的「关于」页/对话框里显示官方
`AboutSlint` 部件(没有该页时改为启动画面);(b) 在可下载该二进制的公开网页上显示官方归属徽章。
**`v0.1.0` 的设置页「关于」分组里内置了 `AboutSlint` 部件**(`crates/app/ui/pages/settings.slint`,
从侧栏进入);该部件是否满足 §2(a) 的全部条件、以及 `v0.1.0` 发布页上那是文字链接而不是 §2(b) 点名的
官方徽章图这两点,**本文件不作法律判断**,具体以 Slint 官方许可原文为准。`v0.1.0` 的 NOTICE、发布页
说明与本文件这一节**都只是记录,不构成履行声明**。后续版本不再链接 Slint,该义务不随新产物新增;
本文件保留这一节,是为了不让这段历史丢失,而不是声明本产品依赖 Slint。
若将来重新把 `crates/app` 纳入构建并发布链接 Slint 的二进制,该义务随之恢复——届时需同时恢复
AboutSlint 部件/徽章与本节的现行声明。Slint 的其余许可分支(GPL-3.0-only / Slint Software
License 3.0)本项目始终不适用。
2. Google Material Color Utilities(https://github.com/material-foundation/material-color-utilities)
本产品的色彩令牌(crates/design 的 color 模块)是 Material 3 色彩算法(HCT 色彩空间 +
ColorSpec2021 调色板/角色映射)的 **Rust 重写移植**,依据 Apache License 2.0 使用,未把其任何语言的源码作为依赖
引入;除下面注明的那张生成常数表外,也没有复制其代码文件。
实际移植的部分(均为纯算法,逐函数对照后以 Rust 重写):
- `hct/Cam16.java`、`hct/ViewingConditions.java`、`hct/Hct.java` → `crates/design/src/color/cam16.rs`、
`viewing_conditions.rs`、`hct.rs`(CAM16 色相/彩度 + CIELAB `L*` 亮度)
- `hct/HctSolver.java` → `crates/design/src/color/hct_solver.rs` + `critical_planes.rs`
(色域映射求解器;其中 255 项 `CRITICAL_PLANES` 常数表是原样搬运的生成数据)
- `utils/ColorUtils.java`、`utils/MathUtils.java` → `crates/design/src/color/space.rs`
- `palettes/TonalPalette.java`、`dynamiccolor/ColorSpec2021.java`、`dynamiccolor/DynamicScheme.java`
→ `crates/design/src/color/tonal.rs`、`palettes.rs`、`scheme.rs`(Tonal Spot 变体的彩度常数与
49 个角色的 tone 映射)
对齐验证:`crates/design/tests/official_baseline.rs` 与 `tests/official_accent.rs` 的期望色值,
是把上述官方 Java 实现(Apache-2.0)在本机编译运行后输出的结果抄本——合计 290 项逐通道
比对(baseline 49 角色 × 2 模式 = 98 项;强调色 8 个种子 × 12 个强调族角色 × 2 模式 = 192 项),
误差上限 1(实测为 0)。两文件的表头各写着自己的分项口径。
Apache License 2.0 全文见 https://www.apache.org/licenses/LICENSE-2.0
上游版权声明:Copyright Google LLC。
3. Rust crates 生态
当前 GUI 框架:iced 0.14(MIT),连同 winit(Apache-2.0)、wgpu(MIT OR Apache-2.0)、
tiny-skia(BSD-3-Clause)——它们都在下面的白名单内。
cargo-deny 白名单见 deny.toml:Apache-2.0 / MIT / BSD-2-Clause / BSD-3-Clause / Zlib / BSL-1.0 / ISC /
CC0-1.0 / MIT-0 / Unlicense / Unicode-3.0 / CDLA-Permissive-2.0 / Apache-2.0 WITH LLVM-exception。
GPL 系(含 AGPL、LGPL 静态链接、SSPL)依赖不得进入主干。
4. 参考实现致谢
本项目设计参考自 HMCL(https://github.com/HMCL-dev/HMCL)与 PCL2
(https://github.com/Meloong-Git/PCL),两者均为 GPL-3.0,特此致谢。