Files
TamaASR/packaging/README.md
T
MeloriseandCodex 2100ebab6b feat: rename project to TamaASR 1.0.0
Migrate internal identifiers, installation paths, packaging metadata, and repository references while preserving package upgrades from meloasr.

AI-assisted-by: Codex
AI-model: gpt-5.6-sol
AI-reasoning-effort: medium
Co-authored-by: Codex <codex@openai.com>
2026-09-01 20:55:14 +08:00

78 lines
2.9 KiB
Markdown
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.
# Linux 分发打包
TamaASR 1.0.0 的系统包由两部分组成:
- Electron 应用安装到 `/opt/tama-asr`,命令入口为 `/usr/bin/tama-asr`;
- Fcitx5 常驻 addon 由目标发行版中的 CMake/Fcitx5 开发包编译,并安装到该环境报告的 addon 目录。
安装包同时提供桌面入口、项目图标和 `/etc/xdg/autostart/tama-asr.desktop`,因此安装后的默认行为是随桌面会话启动。设置页关闭自启动时,应用需要在用户级 autostart 目录写入覆盖项,不能删除系统包所属文件。
`tama-asr` 1.0.0 的 deb、RPM 和 Arch 元数据均声明替换旧 `meloasr` 包;通过对应发行版的包管理器安装新包时,旧应用、Fcitx5 addon 和桌面文件会一并卸载。
## 统一构建契约
deb、rpm 和 Arch 配置期望项目提供:
```bash
pnpm run build:linux:dir
```
该命令应在 `release/linux-unpacked/` 生成可直接运行的 Electron 目录,并且主程序名必须是 `tama-asr`。仓库提供的 `electron-builder.yml` 只生成这一中间目录;deb/rpm/Arch 的系统文件仍由各自脚本管理,避免用安装钩子复制未被包管理器追踪的 Fcitx5 文件。
主项目可将脚本定义为:
```json
{
"build:linux:dir": "pnpm run build && electron-builder --config packaging/electron-builder.yml --linux dir"
}
```
手工检查安装树:
```bash
packaging/scripts/stage-linux.sh release/linux-unpacked packaging/out/root
```
## deb
在 Debian/Ubuntu 对应目标环境中安装 Node.js 构建依赖、CMake、C++ 编译器、Fcitx5 开发包与 nlohmann-json 开发包,然后执行:
```bash
pnpm run build:linux:dir
packaging/deb/build-deb.sh
```
产物位于 `packaging/out/tama-asr_1.0.0_<arch>.deb`。依赖名称按 Debian/Ubuntu 系列填写,但尚未在各发行版完成安装验证。
## rpm
在目标 RPM 发行版中准备相同的编译依赖和 `rpmbuild`,然后执行:
```bash
pnpm run build:linux:dir
packaging/rpm/build-rpm.sh
```
产物复制到 `packaging/out/`。RPM 发行版之间的 Fcitx5 开发包和运行库名称可能不同,正式发布前需要分别在 Fedora/openSUSE 等目标环境验证并维护发行版 spec。
## Arch/pacman
参见 [`arch/README.md`](arch/README.md)。PKGBUILD 在干净 chroot 中从源码构建 Electron 应用和 Fcitx5 addon。
## Nix flake
```bash
nix build
nix run
```
flake 使用 nixpkgs 的 Electron,Node 依赖由 `pnpm-lock.yaml` 和固定输出的 pnpm store 导入。仓库首次确定发布地址后,需要锁定并提交 `flake.lock`。
## 发布前必须完成
- 发布前确认仓库地址和许可证元数据;
- 明确项目许可证,并替换临时的 `LicenseRef-Proprietary`/Nix license;
- 生成 Arch 源码归档真实 SHA-256;
- 在干净的 Debian、RPM、Arch 和 Nix 构建环境逐一构建、安装、卸载;
- 验证 Fcitx5 能发现 addon,桌面菜单/托盘图标、自启动开关和包升级均正常。