fix(docs): M118 r1 —— release notes / NOTICE 停止自称 Slint 版,packaging README 补两处旧口径限定语

复审 r1 的两条 P2,都只动文档(`packaging/release-notes.md`、`NOTICE`、`packaging/README.md`)。

P2-1(发版阻断项):`packaging/release-notes.md` 是 Release body 模板,`NOTICE` 装在每个 tar.gz 里,
两者都仍自称 Slint 版:
- release notes:首段 `Slint + Metro UI` → `iced 0.14 + Material 3 Expressive UI`;「No GPU」小节从
  femtovg / `SLINT_BACKEND=winit-software` 改成 wgpu + tiny-skia / `ICED_BACKEND=tiny-skia`;
  删掉页面的 `Made with Slint` 徽章声明,换成「本版所有资产都由 iced 构建、不含 Slint 代码;
  Slint 版源码仅作历史参考、不构建不发布;RF-2.0 徽章义务跟着链接 Slint 的二进制走,本版没有」。
- NOTICE:第 1 条标题改「Slint —— 历史源码,不随任何产物分发」,正文明确「当前 GUI 框架是 iced、
  二进制不含 Slint 代码;crates/app 已被 workspace exclude,不参与构建/测试/发布」;RF-2.0 义务改成
  「对当前产物不适用,仍挂在 v0.1.0 那批已发布资产上」。**没有整条删除**:仓库里确实还有基于 Slint
  写的历史源码,且将来若重新链接 Slint 义务要恢复,留记录比删掉更安全——依据写进报告。
  另在第 3 条补一句「当前 GUI 框架:iced 0.14(MIT)+ winit / wgpu / tiny-skia」。

P2-2:`packaging/README.md`(净零行,仍 399 ≤400)
- §4 的 `libGL/libEGL` 说明从 femtovg 改成 wgpu 的 GL/EGL 后端 + tiny-skia 软渲染,并加一段
  「M118 口径」:那张表与 DT_NEEDED 结论是 Slint 版实测,iced 版**尚未重测**,按「同一族库、细节待验」读。
- §11 的本地复跑命令补限定语:`linux-smoke-docker.sh` 仍编/跑 Slint 版 bin,现在会失败;在它换成
  `unlucky-launcher-iced` 之前,本地照 ci.yml 的 runtime-smoke 三步手跑。段落未删。

证据:`git diff --name-only` 仅这三份;release-notes 的 `{{VERSION}}`(15) / `{{SUMS}}`(1) 占位符仍在,
模板渲染走查通过;`packaging/README.md` 399 行(守卫上限 400)。另按复审要求二次单跑
`cargo test -p unlucky-core --test launch pipeline_records_crash_report_artifact` → ok(0.16s)。
This commit is contained in:
AskaEth committed 2026-11-04 00:09:39 +08:00
1 parent cf8c6912ec
commit 7704a75424
3 files changed
+33 -21

No files matched your search

+12 -7
View File
@@ -7,16 +7,20 @@ Copyright 2026 AskaEth (YeiJ)
第三方组件声明 第三方组件声明
-------------------------------------------------------------------------- --------------------------------------------------------------------------
1. Slint(https://slint.dev) 1. Slint(https://slint.dev)——**历史源码,不随任何产物分发**
本产品的 GUI 层使用 Slint。Slint 以 Royalty-Free 2.0 许可(LicenseRef-Slint-Royalty-free-2.0) 本产品**当前发布的 GUI 框架是 iced**(见第 3 节),二进制里不含任何 Slint 代码。
使用,未修改 Slint 本体源码。 仓库里仍保留 Slint 版 GUI 的源码(`crates/app`),仅作历史参考:它已被 cargo workspace
`exclude`,不参与构建、测试与发布,也不会进入本项目的任何 Release 资产。
Slint Royalty-Free 2.0 的唯一义务:应用「关于」页显示官方 AboutSlint 部件, 因此 Slint Royalty-Free 2.0(LicenseRef-Slint-Royalty-free-2.0)**对当前产物不适用**;它适用的是
或在公开下载页放置「Made with Slint」徽章。本项目的落地位置见 crates/app 的关于页(P2 排期) 此前已发布、且确实链接了 Slint 的 `v0.1.0` 构建。那条义务(关于页放 AboutSlint 部件,或公开下载页放
与 GitHub Release 说明页;在此之前由本文件的声明承担告知义务。 「Made with Slint」徽章)**仍然挂在 v0.1.0 那批已发布资产上**,由 v0.1.0 的 NOTICE、发布页说明与本
文件的历史记录共同承担;本文件保留这一节,是为了不让这条记录丢失,而不是声明本产品依赖 Slint。
Slint 的其余许可分支(GPL-3.0-only / Slint Software License 3.0)本项目不适用。 若将来重新把 `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) 2. Google Material Color Utilities(https://github.com/material-foundation/material-color-utilities)
@@ -45,6 +49,7 @@ Copyright 2026 AskaEth (YeiJ)
3. Rust crates 生态 3. Rust crates 生态
当前 GUI 框架:iced 0.14(MIT),连同 winit、wgpu、tiny-skia(Apache-2.0 / MIT)——它们都在下面的白名单内。
cargo-deny 白名单见 deny.toml:Apache-2.0 / MIT / BSD-2-Clause / BSD-3-Clause / Zlib / BSL-1.0 / ISC / 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。 CC0-1.0 / MIT-0 / Unlicense / Unicode-3.0 / CDLA-Permissive-2.0 / Apache-2.0 WITH LLVM-exception。
GPL 系(含 AGPL、LGPL 静态链接、SSPL)依赖不得进入主干。 GPL 系(含 AGPL、LGPL 静态链接、SSPL)依赖不得进入主干。
+6 -7
View File
@@ -147,17 +147,16 @@ Windows ARM64 原生库(Mojang/LWJGL 只发 x64/x86),实际游玩仍走系
| glibc ≥ 2.35 | 由 `ubuntu-22.04` 构建决定;更老的发行版请自行重建或等 musl 版 | | glibc ≥ 2.35 | 由 `ubuntu-22.04` 构建决定;更老的发行版请自行重建或等 musl 版 |
| `libxkbcommon.so.0` | winit 键盘处理 | | `libxkbcommon.so.0` | winit 键盘处理 |
| `libfontconfig.so.1` + `libfreetype.so.6` | 文本渲染 | | `libfontconfig.so.1` + `libfreetype.so.6` | 文本渲染 |
| `libGL.so.1` / `libEGL.so.1` | femtovg GL 渲染;缺失走软渲染 | | `libGL.so.1` / `libEGL.so.1` | wgpu 的 GL/EGL 后端;缺失走 tiny-skia 软渲染(历史口径写的是 femtovg) |
| `libxcb.so.1` / `libX11.so.6` | X11 后端(Wayland 会话下也需 XWayland 相关库) | | `libxcb.so.1` / `libX11.so.6` | X11 后端(Wayland 会话下也需 XWayland 相关库) |
| `libwayland-client.so.0` | Wayland 后端 | | `libwayland-client.so.0` | Wayland 后端 |
Debian/Ubuntu 一行:`sudo apt install libxkbcommon0 fontconfig libgl1 libegl1 libxcb1 libx11-6 libwayland-client0`。 Debian/Ubuntu 一行:`sudo apt install libxkbcommon0 fontconfig libgl1 libegl1 libxcb1 libx11-6 libwayland-client0`。
运行期**不需要** `-dev` 包、不需要 Java(Java 是启动游戏时才由启动器自己管理的东西)。 运行期**不需要** `-dev` 包、不需要 Java(Java 是启动游戏时才由启动器自己管理的东西)。
上表是**开窗**要用的库,不是进程启动时就要的:实测(§7.4)除 `libfontconfig.so.1` 外它们**都不在** ELF **M118(D26)口径**:上面这张表与下面这条结论是 **Slint 版 GUI** 的实测记录(M82:`readelf -d` + `ldd` + `nm -D`);iced 版(`crates/app-iced`)的 `DT_NEEDED` / `dlopen` 集合**尚未重测**,请按「同一族库、细节待验」读,别当成 iced 版的实测承诺。
的 `DT_NEEDED` 里,由 `dlopen` 在创建窗口那一刻才加载。所以同一台没有 X11 / Wayland / GL 的机器上 仍然成立的部分:上表是**开窗**要用的库,不是进程启动门槛——实测(§7.4,Slint 版)除 `libfontconfig.so.1` 外它们**都不在** ELF 的 `DT_NEEDED` 里,由 `dlopen` 在开窗那一刻才加载,所以没有 X11 / Wayland / GL 的机器上 `unlucky-launcher instances list` 照样跑得起来,`ull` 连 fontconfig 都不需要。
`unlucky-launcher instances list` 照样跑得起来(GUI 二进制先分发后开窗),而 `ull` 连 fontconfig 都不需要。 arm64 侧同理(同一份依赖树;历史口径里的「winit + femtovg」中 femtovg 只属于 Slint 版)。
arm64 侧是同一套(同一份依赖树、同一个 winit/femtovg 组合)。
### Linux arm64(aarch64) ### Linux arm64(aarch64)
@@ -384,8 +383,8 @@ experimental / not part of this release matrix)——改一边必须同步另
更不证明视觉正确**——视觉靠人眼看 artifact。 更不证明视觉正确**——视觉靠人眼看 artifact。
- 只覆盖 Linux x64;macOS 是 dispatch-only 探针(无实测证据),Windows 已有本机人眼验收。 - 只覆盖 Linux x64;macOS 是 dispatch-only 探针(无实测证据),Windows 已有本机人眼验收。
**本地复跑**:`bash packaging/linux-smoke-docker.sh . D:/tmp/ull-smoke`(输出目录别写 `/tmp`,Git Bash 下会 **本地复跑**:`bash packaging/linux-smoke-docker.sh . D:/tmp/ull-smoke`(输出目录别写 `/tmp`,Git Bash 下会静默落进 Docker VM;脚本内部用 `cygpath -m` 归一并回显真实路径)。**M118 提醒**:该脚本仍按 Slint 版 bin `unlucky-launcher` 编译与启动(`linux-smoke-docker.sh:81/83/88`),而 `crates/app` 已被 workspace `exclude`,**这条命令现在会失败**。
静默落进 Docker VM;脚本内部用 `cygpath -m` 归一并回显真实路径)。 在它把 bin 换成 `unlucky-launcher-iced` 之前,本地要复刻请直接照 `ci.yml` 的 runtime-smoke 三步手跑:`cargo build --bin unlucky-launcher-iced --locked` → `xvfb-run … --software-renderer --screenshot <png> --data-dir <dir>` → `python3 packaging/check_screenshot.py <png> --json`。
## 12. 文件清单 ## 12. 文件清单
+15 -7
View File
@@ -1,6 +1,6 @@
# Unlucky Launcher {{VERSION}} # Unlucky Launcher {{VERSION}}
Rust-native **single-file** Minecraft launcher: Slint + Metro UI, built-in AI agent Rust-native **single-file** Minecraft launcher: iced 0.14 + Material 3 Expressive UI, built-in AI agent
(chat / config edits / crash diagnosis) and an MCP server other agent tools can attach to. (chat / config edits / crash diagnosis) and an MCP server other agent tools can attach to.
No WebView, no bundled runtime, no JRE download needed to start the launcher itself. No WebView, no bundled runtime, no JRE download needed to start the launcher itself.
@@ -75,11 +75,11 @@ chmod +x unlucky-launcher && ./unlucky-launcher
## No GPU? Software renderer ## No GPU? Software renderer
The UI prefers OpenGL (femtovg) and falls back to Slint's CPU renderer when no usable GL The UI renders through `wgpu` (GPU) and falls back to the `tiny-skia` CPU rasteriser when no usable
driver is present. Force it on any machine with: adapter is present. Force the CPU path on any machine with:
```bash ```bash
unlucky-launcher --software-renderer # or: SLINT_BACKEND=winit-software unlucky-launcher unlucky-launcher --software-renderer # or: ICED_BACKEND=tiny-skia unlucky-launcher
``` ```
## Verify the download ## Verify the download
@@ -109,7 +109,15 @@ Get-FileHash .\unlucky-launcher-{{VERSION}}-windows-x64.exe -Algorithm SHA256
## License ## License
Apache-2.0. Third-party notices (including Slint's Royalty-Free 2.0 track) are in `NOTICE`. Apache-2.0. Third-party notices are in `NOTICE`. Unlucky Launcher is not affiliated with Mojang or
Unlucky Launcher is not affiliated with Mojang or Microsoft; it does not ship game files. Microsoft; it does not ship game files.
Made with [Slint](https://slint.dev) — Slint Royalty-Free 2.0 track, unmodified. ## UI framework in this build
Every asset in this release is built from the iced UI (`crates/app-iced`, iced 0.14, MIT) — no Slint
code is linked into it. The earlier Slint UI (`crates/app`) stays in the repository as historical
source only: excluded from the cargo workspace, not built, not part of any asset here and not part of
the release matrix. It did ship in the previous `v0.1.0` release; that release's Slint Royalty-Free
2.0 attribution remains where it was published, and no asset in this build carries that obligation.
There is deliberately no "Made with Slint" badge on this page: the obligation follows a Slint-linked
binary, and this release has none.