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>
This commit is contained in:
2026-09-01 20:55:14 +08:00
co-authored by Codex
parent 39ddfd8eaa
commit 2100ebab6b
41 changed files with 227 additions and 208 deletions
+7 -5
View File
@@ -1,11 +1,13 @@
# Linux 分发打包
MeloASR 0.1.17 的系统包由两部分组成:
TamaASR 1.0.0 的系统包由两部分组成:
- Electron 应用安装到 `/opt/meloasr`,命令入口为 `/usr/bin/meloasr`;
- Electron 应用安装到 `/opt/tama-asr`,命令入口为 `/usr/bin/tama-asr`;
- Fcitx5 常驻 addon 由目标发行版中的 CMake/Fcitx5 开发包编译,并安装到该环境报告的 addon 目录。
安装包同时提供桌面入口、项目图标和 `/etc/xdg/autostart/meloasr.desktop`,因此安装后的默认行为是随桌面会话启动。设置页关闭自启动时,应用需要在用户级 autostart 目录写入覆盖项,不能删除系统包所属文件。
安装包同时提供桌面入口、项目图标和 `/etc/xdg/autostart/tama-asr.desktop`,因此安装后的默认行为是随桌面会话启动。设置页关闭自启动时,应用需要在用户级 autostart 目录写入覆盖项,不能删除系统包所属文件。
`tama-asr` 1.0.0 的 deb、RPM 和 Arch 元数据均声明替换旧 `meloasr` 包;通过对应发行版的包管理器安装新包时,旧应用、Fcitx5 addon 和桌面文件会一并卸载。
## 统一构建契约
@@ -15,7 +17,7 @@ deb、rpm 和 Arch 配置期望项目提供:
pnpm run build:linux:dir
```
该命令应在 `release/linux-unpacked/` 生成可直接运行的 Electron 目录,并且主程序名必须是 `meloasr`。仓库提供的 `electron-builder.yml` 只生成这一中间目录;deb/rpm/Arch 的系统文件仍由各自脚本管理,避免用安装钩子复制未被包管理器追踪的 Fcitx5 文件。
该命令应在 `release/linux-unpacked/` 生成可直接运行的 Electron 目录,并且主程序名必须是 `tama-asr`。仓库提供的 `electron-builder.yml` 只生成这一中间目录;deb/rpm/Arch 的系统文件仍由各自脚本管理,避免用安装钩子复制未被包管理器追踪的 Fcitx5 文件。
主项目可将脚本定义为:
@@ -40,7 +42,7 @@ pnpm run build:linux:dir
packaging/deb/build-deb.sh
```
产物位于 `packaging/out/meloasr_0.1.17_<arch>.deb`。依赖名称按 Debian/Ubuntu 系列填写,但尚未在各发行版完成安装验证。
产物位于 `packaging/out/tama-asr_1.0.0_<arch>.deb`。依赖名称按 Debian/Ubuntu 系列填写,但尚未在各发行版完成安装验证。
## rpm
+17 -14
View File
@@ -1,16 +1,19 @@
pkgname=meloasr
pkgver=0.1.17
pkgname=tama-asr
pkgver=1.0.0
pkgrel=1
pkgdesc='Web-backed voice input for Fcitx5'
arch=('x86_64')
url='https://github.com/Melorise/MeloASR'
url='https://github.com/Melorise/TamaASR'
license=('MPL2')
depends=('fcitx5' 'gtk3' 'nss' 'libxss' 'mesa' 'alsa-lib')
conflicts=('meloasr')
provides=('meloasr')
replaces=('meloasr')
makedepends=('nodejs' 'pnpm' 'cmake' 'gcc' 'nlohmann-json')
source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz")
sha256sums=('SKIP')
_source_dir="MeloASR-${pkgver}"
_source_dir="TamaASR-${pkgver}"
build() {
cd "${srcdir}/${_source_dir}"
@@ -31,17 +34,17 @@ check() {
package() {
cd "${srcdir}/${_source_dir}"
install -d "${pkgdir}/opt/meloasr"
cp -a release/linux-unpacked/. "${pkgdir}/opt/meloasr/"
install -Dm755 packaging/assets/meloasr-wrapper "${pkgdir}/usr/bin/meloasr"
install -Dm644 packaging/assets/meloasr.desktop \
"${pkgdir}/usr/share/applications/meloasr.desktop"
install -Dm644 packaging/assets/meloasr-autostart.desktop \
"${pkgdir}/etc/xdg/autostart/meloasr.desktop"
install -Dm644 packaging/assets/meloasr.metainfo.xml \
"${pkgdir}/usr/share/metainfo/meloasr.metainfo.xml"
install -d "${pkgdir}/opt/tama-asr"
cp -a release/linux-unpacked/. "${pkgdir}/opt/tama-asr/"
install -Dm755 packaging/assets/tama-asr-wrapper "${pkgdir}/usr/bin/tama-asr"
install -Dm644 packaging/assets/tama-asr.desktop \
"${pkgdir}/usr/share/applications/tama-asr.desktop"
install -Dm644 packaging/assets/tama-asr-autostart.desktop \
"${pkgdir}/etc/xdg/autostart/tama-asr.desktop"
install -Dm644 packaging/assets/tama-asr.metainfo.xml \
"${pkgdir}/usr/share/metainfo/tama-asr.metainfo.xml"
install -Dm644 src/assets/logo.png \
"${pkgdir}/usr/share/pixmaps/meloasr.png"
"${pkgdir}/usr/share/pixmaps/tama-asr.png"
DESTDIR="${pkgdir}" cmake --install build/fcitx5
}
+2 -2
View File
@@ -4,8 +4,8 @@
```bash
curl --fail --location --remote-name \
https://github.com/Melorise/MeloASR/releases/download/v0.1.17/PKGBUILD
https://github.com/Melorise/TamaASR/releases/download/v1.0.0/PKGBUILD
makepkg --syncdeps --cleanbuild
```
`PKGBUILD` 会根据 `pkgver` 直接下载 GitHub Release 标签对应的源码归档,无需手动下载、重命名或放置源码包。源码地址固定为 `https://github.com/Melorise/MeloASR/archive/refs/tags/v${pkgver}.tar.gz`,因此同一份 `PKGBUILD` 可以重复构建该版本。
`PKGBUILD` 会根据 `pkgver` 直接下载 GitHub Release 标签对应的源码归档,无需手动下载、重命名或放置源码包。源码地址固定为 `https://github.com/Melorise/TamaASR/archive/refs/tags/v${pkgver}.tar.gz`,因此同一份 `PKGBUILD` 可以重复构建该版本。
@@ -1,12 +0,0 @@
[Desktop Entry]
Type=Application
Name=MeloASR
Comment=Start MeloASR when signing in
Comment[zh_CN]=登录桌面后启动 MeloASR
Exec=meloasr --autostart
Icon=meloasr
Terminal=false
X-GNOME-Autostart-enabled=true
X-KDE-autostart-after=panel
NoDisplay=true
-2
View File
@@ -1,2 +0,0 @@
#!/bin/sh
exec /opt/meloasr/meloasr --ozone-platform=x11 "$@"
@@ -0,0 +1,11 @@
[Desktop Entry]
Type=Application
Name=TamaASR
Comment=Start TamaASR when signing in
Comment[zh_CN]=登录桌面后启动 TamaASR
Exec=tama-asr --autostart
Icon=tama-asr
Terminal=false
X-GNOME-Autostart-enabled=true
X-KDE-autostart-after=panel
NoDisplay=true
+2
View File
@@ -0,0 +1,2 @@
#!/bin/sh
exec /opt/tama-asr/tama-asr --ozone-platform=x11 "$@"
@@ -1,10 +1,10 @@
[Desktop Entry]
Type=Application
Name=MeloASR
Name=TamaASR
Comment=Web-backed voice input for Fcitx5
Comment[zh_CN]=基于网页后端的 Fcitx5 语音输入工具
Exec=meloasr
Icon=meloasr
Exec=tama-asr
Icon=tama-asr
Terminal=false
Categories=Utility;Accessibility;
StartupNotify=false
@@ -1,21 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>io.github.meloasr.MeloASR</id>
<name>MeloASR</name>
<id>io.github.melorise.TamaASR</id>
<name>TamaASR</name>
<summary>Web-backed voice input for Fcitx5</summary>
<summary xml:lang="zh-CN">基于网页后端的 Fcitx5 语音输入工具</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>MPL-2.0</project_license>
<description>
<p>MeloASR connects supported web speech-recognition backends to the active Fcitx5 input context.</p>
<p xml:lang="zh-CN">MeloASR 将支持的网页语音识别后端连接到当前 Fcitx5 输入上下文。</p>
<p>TamaASR connects supported web speech-recognition backends to the active Fcitx5 input context.</p>
<p xml:lang="zh-CN">TamaASR 将支持的网页语音识别后端连接到当前 Fcitx5 输入上下文。</p>
</description>
<url type="homepage">https://github.com/Melorise/MeloASR</url>
<launchable type="desktop-id">meloasr.desktop</launchable>
<url type="homepage">https://github.com/Melorise/TamaASR</url>
<launchable type="desktop-id">tama-asr.desktop</launchable>
<provides>
<binary>meloasr</binary>
<binary>tama-asr</binary>
</provides>
<releases>
<release version="1.0.0" date="2026-09-01"/>
<release version="0.1.17" date="2026-09-01"/>
<release version="0.1.16" date="2026-08-26"/>
<release version="0.1.15" date="2026-08-26"/>
+4 -4
View File
@@ -2,9 +2,9 @@
set -euo pipefail
project_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd)"
version="${MELOASR_VERSION:-0.1.17}"
arch="${MELOASR_DEB_ARCH:-$(dpkg --print-architecture)}"
app_dir="${1:-${MELOASR_ELECTRON_APP_DIR:-${project_dir}/release/linux-unpacked}}"
version="${TAMA_ASR_VERSION:-1.0.0}"
arch="${TAMA_ASR_DEB_ARCH:-$(dpkg --print-architecture)}"
app_dir="${1:-${TAMA_ASR_ELECTRON_APP_DIR:-${project_dir}/release/linux-unpacked}}"
work_dir="${project_dir}/packaging/out/deb-root"
output_dir="${project_dir}/packaging/out"
@@ -21,4 +21,4 @@ sed \
mkdir -p "${output_dir}"
dpkg-deb --root-owner-group --build "${work_dir}" \
"${output_dir}/meloasr_${version}_${arch}.deb"
"${output_dir}/tama-asr_${version}_${arch}.deb"
+5 -3
View File
@@ -1,11 +1,13 @@
Package: meloasr
Package: tama-asr
Version: @VERSION@
Section: sound
Priority: optional
Architecture: @ARCH@
Maintainer: MeloASR contributors
Maintainer: TamaASR contributors
Installed-Size: @INSTALLED_SIZE@
Depends: fcitx5, libc6, libstdc++6, libgtk-3-0, libnss3, libxss1, libgbm1, libasound2 | libasound2t64
Conflicts: meloasr
Replaces: meloasr
Description: Web-backed voice input for Fcitx5
MeloASR hosts supported web speech-recognition backends and sends their
TamaASR hosts supported web speech-recognition backends and sends their
live corrected text to the active Fcitx5 input context.
+3 -3
View File
@@ -1,5 +1,5 @@
appId: io.github.meloasr.MeloASR
productName: MeloASR
appId: io.github.melorise.TamaASR
productName: TamaASR
asar: true
directories:
@@ -16,6 +16,6 @@ extraResources:
linux:
target:
- dir
executableName: meloasr
executableName: tama-asr
icon: src/assets/logo.png
category: Utility
+12 -12
View File
@@ -16,7 +16,7 @@ let
pnpm = pnpm_11;
in
stdenv.mkDerivation (finalAttrs: {
pname = "meloasr";
pname = "tama-asr";
version = (builtins.fromJSON (builtins.readFile ../../package.json)).version;
src = ../..;
@@ -67,24 +67,24 @@ stdenv.mkDerivation (finalAttrs: {
installPhase = ''
runHook preInstall
appDir="$out/share/meloasr/app"
appDir="$out/share/tama-asr/app"
mkdir -p "$appDir" "$out/bin" "$out/share/applications" \
"$out/share/pixmaps" "$out/share/metainfo" \
"$out/etc/xdg/autostart"
cp package.json "$appDir/"
cp -r dist "$appDir/"
install -Dm644 packaging/assets/meloasr.desktop \
"$out/share/applications/meloasr.desktop"
install -Dm644 packaging/assets/meloasr-autostart.desktop \
"$out/etc/xdg/autostart/meloasr.desktop"
install -Dm644 packaging/assets/meloasr.metainfo.xml \
"$out/share/metainfo/meloasr.metainfo.xml"
install -Dm644 packaging/assets/tama-asr.desktop \
"$out/share/applications/tama-asr.desktop"
install -Dm644 packaging/assets/tama-asr-autostart.desktop \
"$out/etc/xdg/autostart/tama-asr.desktop"
install -Dm644 packaging/assets/tama-asr.metainfo.xml \
"$out/share/metainfo/tama-asr.metainfo.xml"
install -Dm644 src/assets/logo.png \
"$out/share/pixmaps/meloasr.png"
"$out/share/pixmaps/tama-asr.png"
cmake --install build/fcitx5
makeWrapper ${electron}/bin/electron "$out/bin/meloasr" \
makeWrapper ${electron}/bin/electron "$out/bin/tama-asr" \
--add-flags "$appDir"
runHook postInstall
@@ -92,9 +92,9 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Web-backed voice input for Fcitx5";
homepage = "https://github.com/Melorise/MeloASR";
homepage = "https://github.com/Melorise/TamaASR";
license = lib.licenses.mpl20;
mainProgram = "meloasr";
mainProgram = "tama-asr";
platforms = lib.platforms.linux;
};
})
+7 -7
View File
@@ -2,8 +2,8 @@
set -euo pipefail
project_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd)"
version="${MELOASR_VERSION:-0.1.17}"
app_dir="${1:-${MELOASR_ELECTRON_APP_DIR:-${project_dir}/release/linux-unpacked}}"
version="${TAMA_ASR_VERSION:-1.0.0}"
app_dir="${1:-${TAMA_ASR_ELECTRON_APP_DIR:-${project_dir}/release/linux-unpacked}}"
stage_dir="${project_dir}/packaging/out/rpm-root"
top_dir="${project_dir}/packaging/out/rpmbuild"
@@ -14,19 +14,19 @@ command -v rpmbuild >/dev/null || {
rm -rf -- "${stage_dir}" "${top_dir}"
"${project_dir}/packaging/scripts/stage-linux.sh" "${app_dir}" "${stage_dir}"
addon_file="$(find "${stage_dir}/usr" -type f -path '*/fcitx5/libmeloasr.so' \
addon_file="$(find "${stage_dir}/usr" -type f -path '*/fcitx5/libtama-asr.so' \
-printf '/usr/%P\n' -quit)"
if [[ -z "${addon_file}" ]]; then
echo "未在安装根目录中找到 Fcitx5 addon。" >&2
exit 1
fi
mkdir -p "${top_dir}"/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
tar -C "${stage_dir}" -czf "${top_dir}/SOURCES/meloasr-root.tar.gz" .
tar -C "${stage_dir}" -czf "${top_dir}/SOURCES/tama-asr-root.tar.gz" .
rpmbuild -bb \
--define "_topdir ${top_dir}" \
--define "meloasr_version ${version}" \
--define "meloasr_addon_file ${addon_file}" \
"${project_dir}/packaging/rpm/meloasr-binary.spec"
--define "tama_asr_version ${version}" \
--define "tama_asr_addon_file ${addon_file}" \
"${project_dir}/packaging/rpm/tama-asr-binary.spec"
find "${top_dir}/RPMS" -type f -name '*.rpm' -exec cp -f {} "${project_dir}/packaging/out/" \;
@@ -1,19 +1,21 @@
Name: meloasr
Version: %{meloasr_version}
Name: tama-asr
Version: %{tama_asr_version}
Release: 1%{?dist}
Summary: Web-backed voice input for Fcitx5
License: MPL-2.0
URL: https://github.com/Melorise/MeloASR
Source0: meloasr-root.tar.gz
URL: https://github.com/Melorise/TamaASR
Source0: tama-asr-root.tar.gz
Requires: fcitx5
Requires: gtk3
Requires: nss
Requires: libXScrnSaver
Requires: mesa-libgbm
Obsoletes: meloasr < 1.0.0
Provides: meloasr = %{version}-%{release}
%description
MeloASR hosts supported web speech-recognition backends and sends their live
TamaASR hosts supported web speech-recognition backends and sends their live
corrected text to the active Fcitx5 input context.
%prep
@@ -26,47 +28,50 @@ tar -C %{buildroot} -xzf %{SOURCE0}
%files
%defattr(-,root,root,-)
/opt/meloasr
/usr/bin/meloasr
%{meloasr_addon_file}
/usr/share/applications/meloasr.desktop
/usr/share/pixmaps/meloasr.png
/usr/share/metainfo/meloasr.metainfo.xml
/usr/share/fcitx5/addon/meloasr.conf
/etc/xdg/autostart/meloasr.desktop
/opt/tama-asr
/usr/bin/tama-asr
%{tama_asr_addon_file}
/usr/share/applications/tama-asr.desktop
/usr/share/pixmaps/tama-asr.png
/usr/share/metainfo/tama-asr.metainfo.xml
/usr/share/fcitx5/addon/tama-asr.conf
/etc/xdg/autostart/tama-asr.desktop
%changelog
* Tue Sep 01 2026 MeloASR contributors - 0.1.17-1
* Tue Sep 01 2026 TamaASR contributors - 1.0.0-1
- Rename the package and replace the legacy meloasr package on upgrade.
* Tue Sep 01 2026 TamaASR contributors - 0.1.17-1
- Replace the application and tray icons; use one icon for ready and one for all not-ready states.
* Wed Aug 26 2026 MeloASR contributors - 0.1.16-1
* Wed Aug 26 2026 TamaASR contributors - 0.1.16-1
- Migrate dependency installation and build commands from npm to pnpm.
* Wed Aug 26 2026 MeloASR contributors - 0.1.15-1
* Wed Aug 26 2026 TamaASR contributors - 0.1.15-1
- Download the Arch package source directly from the matching GitHub release tag.
* Wed Aug 26 2026 MeloASR contributors - 0.1.14-1
* Wed Aug 26 2026 TamaASR contributors - 0.1.14-1
- Cache the active web editor for the duration of each speech session.
* Mon Aug 24 2026 MeloASR contributors - 0.1.13-1
* Mon Aug 24 2026 TamaASR contributors - 0.1.13-1
- Create the settings renderer only when it is opened and destroy it on close.
* Sun Aug 23 2026 MeloASR contributors - 0.1.12-1
* Sun Aug 23 2026 TamaASR contributors - 0.1.12-1
- Disable Electron GPU acceleration for background web renderers.
* Sun Aug 23 2026 MeloASR contributors - 0.1.11-1
* Sun Aug 23 2026 TamaASR contributors - 0.1.11-1
- Release only the selected speech backend renderer.
- Keep the overlay as a non-interactive session status indicator.
* Sun Aug 23 2026 MeloASR contributors - 0.1.10-1
* Sun Aug 23 2026 TamaASR contributors - 0.1.10-1
- Restore the Nix npm configuration hook before building the application.
* Sun Aug 23 2026 MeloASR contributors - 0.1.9-1
* Sun Aug 23 2026 TamaASR contributors - 0.1.9-1
- Fix multi-architecture package staging and RPM addon file ownership.
- Fix Nix derivation configuration phase.
* Sun Aug 23 2026 MeloASR contributors - 0.1.8-1
* Sun Aug 23 2026 TamaASR contributors - 0.1.8-1
- Fix Fcitx5 addon compatibility with Ubuntu 24.04.
* Sun Aug 23 2026 MeloASR contributors - 0.1.7-1
* Sun Aug 23 2026 TamaASR contributors - 0.1.7-1
- Initial package
+15 -15
View File
@@ -2,9 +2,9 @@
set -euo pipefail
project_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd)"
app_dir="${1:-${MELOASR_ELECTRON_APP_DIR:-${project_dir}/release/linux-unpacked}}"
app_dir="${1:-${TAMA_ASR_ELECTRON_APP_DIR:-${project_dir}/release/linux-unpacked}}"
stage_dir="${2:-${project_dir}/packaging/out/root}"
addon_build_dir="${MELOASR_ADDON_BUILD_DIR:-${project_dir}/packaging/out/fcitx5-build}"
addon_build_dir="${TAMA_ASR_ADDON_BUILD_DIR:-${project_dir}/packaging/out/fcitx5-build}"
if [[ "${app_dir}" != /* ]]; then
app_dir="${project_dir}/${app_dir}"
@@ -16,30 +16,30 @@ if [[ ! -d "${app_dir}" ]]; then
exit 1
fi
if [[ ! -x "${app_dir}/meloasr" ]]; then
echo "Electron 解包目录中没有可执行文件 meloasr:${app_dir}" >&2
if [[ ! -x "${app_dir}/tama-asr" ]]; then
echo "Electron 解包目录中没有可执行文件 tama-asr:${app_dir}" >&2
exit 1
fi
install -d \
"${stage_dir}/opt/meloasr" \
"${stage_dir}/opt/tama-asr" \
"${stage_dir}/usr/bin" \
"${stage_dir}/usr/share/applications" \
"${stage_dir}/usr/share/pixmaps" \
"${stage_dir}/usr/share/metainfo" \
"${stage_dir}/etc/xdg/autostart"
cp -a "${app_dir}/." "${stage_dir}/opt/meloasr/"
install -Dm755 "${project_dir}/packaging/assets/meloasr-wrapper" \
"${stage_dir}/usr/bin/meloasr"
install -Dm644 "${project_dir}/packaging/assets/meloasr.desktop" \
"${stage_dir}/usr/share/applications/meloasr.desktop"
install -Dm644 "${project_dir}/packaging/assets/meloasr-autostart.desktop" \
"${stage_dir}/etc/xdg/autostart/meloasr.desktop"
install -Dm644 "${project_dir}/packaging/assets/meloasr.metainfo.xml" \
"${stage_dir}/usr/share/metainfo/meloasr.metainfo.xml"
cp -a "${app_dir}/." "${stage_dir}/opt/tama-asr/"
install -Dm755 "${project_dir}/packaging/assets/tama-asr-wrapper" \
"${stage_dir}/usr/bin/tama-asr"
install -Dm644 "${project_dir}/packaging/assets/tama-asr.desktop" \
"${stage_dir}/usr/share/applications/tama-asr.desktop"
install -Dm644 "${project_dir}/packaging/assets/tama-asr-autostart.desktop" \
"${stage_dir}/etc/xdg/autostart/tama-asr.desktop"
install -Dm644 "${project_dir}/packaging/assets/tama-asr.metainfo.xml" \
"${stage_dir}/usr/share/metainfo/tama-asr.metainfo.xml"
install -Dm644 "${project_dir}/src/assets/logo.png" \
"${stage_dir}/usr/share/pixmaps/meloasr.png"
"${stage_dir}/usr/share/pixmaps/tama-asr.png"
cmake -S "${project_dir}/linux/fcitx5" -B "${addon_build_dir}" \
-DCMAKE_BUILD_TYPE=Release \