Skip to content

完善安装更新与多系统引导,迁移 APK 依赖并支持视频播放 - #73

Merged
Leonmmcoset merged 9 commits into
mainfrom
rewrite/desktop-apps
Nov 10, 2026
Merged

Leonmmcoset merged 9 commits into
mainfrom
rewrite/desktop-apps

Conversation

@Leonmmcoset

Copy link
Copy Markdown
Collaborator

安装器现在通过图形与 TTY 共用的后台引擎执行离线系统更新:先只读核对目标身份、软件包签名、依赖和空间,确认后更新根文件系统,再发布引导文件。本 PR 汇总当前分支的安装、引导、播放器、依赖和文档改进。

主要变更

  • 离线更新:保留外部包、world 选择、仓库 tag、管理员配置及 swap 设置;执行前重新核对目标,持久记录事务阶段,支持根事务完成后的引导提交重试。
  • 共享 ESP 与多系统引导:按根分区 PARTUUID 隔离实例目录、EFI 入口和 A/B 内核状态,保留其他系统的 EFI 文件及未知 fallback;完善 GRUB 系统发现、initramfs 挂载和预制磁盘实例身份。
  • ReliefPlayer 视频播放:使用锁定的官方 FFmpeg 8.1.3 LGPL 共享库解码 MP4,支持音画同步、定位、旋转元数据及无音轨视频,解码和文件读取放在独立进程中。
  • 官方 APK 迁移:以签名 Alpine APK 替换 sl、ncurses、zlib、libpng、SQLite、mbedTLS 3 六个源码子模块,同步 SDK、运行库、ReliefMail、许可证和 RPR。移除 reliefos-sl、reliefos-ncurses、reliefos-sqlite 过渡包,并通过真实 APK 事务迁移旧 world 与离线缓存。当前桌面载荷 215 包,RPR 共 216 个 APK(188 个官方包、28 个本地包,含可选 DOOM)。
  • 运行时与内核配套:更新 ReliefNT 子模块引用,并补齐 musl 对不可用 PI mutex 协议的错误处理。
  • 文档及安装器界面:修复两套手册的严格构建问题,增加页面、链接、锚点和资源检查以及 Sphinx 多版本 CI;安装器感谢页替换为直接嵌入根 LICENSE 的 Apache 2.0 完整英文原文,中英文界面均可滚动阅读。

验证

  • 本地完成运行库、用户态、SDK、APK/RPR、VMDK、普通 ISO 和安装器 ISO 构建;沿用现有 profile(PL Editor 关闭,宿主 Clang 14 使用既有 Shadow C23 适配)。SDK 覆盖含空格路径重定位及动态、静态链接。
  • 三组真实 APK 离线升级场景通过,覆盖旧包清理、配置与 tag/版本约束保留,以及缺少归档时在修改目标前拒绝。仓库签名、官方包锁摘要、文件归属和 RPR 产物审计通过。
  • QEMU q35/TCG + OVMF 下完成官方库、TLS、SQLite、sl/tput 和包清理探针;最终安装器 ISO 的中英文许可证显示、滚动至附录末尾、前进和返回通过。安装向导、staging、本地化与许可证定向检查通过;最终许可证检查为 29 passed、0 warnings、0 failures。
  • 文档在 Sphinx 5.3.0、7.2.6、9.2.0 下覆盖 108 页,严格构建、链接检查、12 类故障注入、Pages 夹具及 actionlint 通过。当前提交的 Check documentation 工作流已通过。

兼容性与已知限制

  • 旧系统更新不重新分区,也不强制迁移原 ESP 挂载布局。共享 ESP 共存安装使用手动分区;自动分区仍是整盘擦除方案。包、ESP 与 BIOS 写入不构成整体断电原子事务。
  • 第三方库改用标准独立共享库。依赖旧 sqlite.so.3、自定义 SQLite VFS、私有 mbedTLS 配置或扩展库偶然导出的厂商内部符号的程序,需要使用匹配的新 SDK 重编译;第一方公开 ABI 与旧 leonos 别名保留。
  • 完整 make test 未通过:最新运行仍停在原有 32 项品牌检查失败,失败项与此前基线逐条一致,后续套件未执行。
  • 另有既有专项问题尚未解决:测试归属夹具在临时目录的 git rev-parse 失败、BIOS 原生安装矩阵 matrix-1-0 返回 -EINVAL,以及 ReliefMail GUI 首次加载配置的 30 秒 worker deadline(直接 store/vault 探针通过)。VMware 和完整安装器实际装盘流程未完成本次验收。

LeonMMcoset2 and others added 9 commits November 7, 2026 21:55
Advance ReliefNT to df8af1b97a50aa1752389ba230b7a043cbf7515e, which implements temporary ppoll signal masks and restores them across completion, cancellation, and signal delivery. This fixes the unsupported ppoll path used by SSH clients.
Share an isolated update engine across the FLTK and TTY frontends. Check target identities, signed packages, dependencies and free space before applying updates. Preserve local state and record durable transaction checkpoints for retry and boot publication. Update packaging, translations, documentation and regression coverage.
Use official Alpine APKs for sl, ncurses, zlib, libpng, SQLite and mbedTLS 3, including matching SDK headers and libraries. Remove the retired local wrapper packages and migrate existing world requests and offline caches through a real APK transaction.

Validation: production artifacts rebuilt, signed repository audited, three offline upgrade scenarios and QEMU runtime checks passed. Full make test still stops on the same 32 pre-existing brand assertions.
Update ReliefNT to the corrected mixed-width headings. Add an independent Sphinx 5.3/7.2.6/9.x workflow and check both manuals before the Pages image build. Validate rendered pages, local links and anchors, assets, URL prefixes and absence of script/source leaks.

Validation: all 108 HTML pages build without warnings on Sphinx 5.3.0, 7.2.6 and 9.2.0; Pages integration, 12 negative cases and actionlint pass.
Replace the acknowledgement step with a scrollable license page in both locales. Embed the repository LICENSE directly and remove obsolete credit strings and credit-only checks while retaining third-party license packaging validation.

Validated installer and VMDK/ISO builds, wizard and staging fixtures, localization, documentation, license packaging, and English/Chinese QEMU scrolling and navigation. The full make test run stops at the same 32 existing brand assertions.
@Leonmmcoset
Leonmmcoset merged commit 0dd6084 into main Nov 10, 2026
8 checks passed
@Leonmmcoset
Leonmmcoset deleted the rewrite/desktop-apps branch November 10, 2026 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants