feat(identity): rename user-visible identity to voculinux with one-time legacy import

The fork takes its own name everywhere a user can see it: binaries
(voculinux, voculinux-gui), desktop entry, autostart, tray, D-Bus
namespace (com.voculinux.Voculinux, no alias for the old name),
config/data/cache dirs, single-instance lock, IBus engine identity,
tray icons, resource prefixes, VOCULINUX_* environment names, and the
update-checker user agent. The internal Python module stays vocalinux
and the distribution metadata keeps the upstream URLs as provenance.

On first run a previous Vocalinux install's config.json, custom
dictionary, and portal restore token are copied once into the new
locations (new config always wins, no merge, no write-back); models
re-resolve through the pinned-checksum download path. An offline
naming-sweep test proves no old-name strings remain on user-visible
surfaces outside the allowlist.

Refs #18
This commit is contained in:
soubarnak
2026-11-06 01:29:39 +05:30
parent c565e6d946
commit ea7be5f111
251 changed files with 2449 additions and 1991 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
---
name: Bug Report
about: Report a bug to help improve Vocalinux
about: Report a bug to help improve Voculinux
title: "[BUG] "
labels: bug
assignees: ''
@@ -32,7 +32,7 @@ If applicable, attach screenshots.
- **OS / distro**: (e.g. Ubuntu 24.04)
- **Python version**: (e.g. 3.12; 3.11+ required)
- **Vocalinux version**: (`vocalinux --version`)
- **Voculinux version**: (`voculinux --version`)
- **Install method**: (installer / AppImage / AUR / Flatpak / Snap / source / PyPI)
- **Display server**: (X11 / Wayland)
- **Desktop environment**: (e.g. GNOME, KDE Plasma)
@@ -41,7 +41,7 @@ If applicable, attach screenshots.
## Debug logs
Run `vocalinux --debug` and paste the relevant output:
Run `voculinux --debug` and paste the relevant output:
```
[paste logs here]
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: Feature Request
about: Suggest an idea for Vocalinux
about: Suggest an idea for Voculinux
title: "[FEATURE] "
labels: enhancement
assignees: ''
@@ -8,7 +8,7 @@ assignees: ''
## Feature description
What you would like Vocalinux to do.
What you would like Voculinux to do.
## Problem
+1 -1
View File
@@ -8,7 +8,7 @@ app:
- "src/**/*"
- "pyproject.toml"
- "MANIFEST.in"
- "vocalinux.desktop"
- "voculinux.desktop"
# Next.js website
web:
+1 -1
View File
@@ -41,7 +41,7 @@ jobs:
export GIT_SSH_COMMAND="ssh -i ~/.ssh/codeberg_mirror -o IdentitiesOnly=yes"
git remote add codeberg git@codeberg.org:jatinkrmalik/vocalinux.git
git remote add codeberg git@codeberg.org:jatinkrmalik/voculinux.git
git push codeberg --all
# Force tags so the mirror stays aligned with GitHub when a tag
# already exists on Codeberg (retagged release or prior partial sync).
+2 -2
View File
@@ -11,7 +11,7 @@ on:
- 'uv.lock'
- 'requirements/**'
- 'src/vocalinux/version.py'
- 'vocalinux.desktop'
- 'voculinux.desktop'
- '.github/workflows/distro-test-matrix.yml'
pull_request:
branches: [ main, master ]
@@ -23,7 +23,7 @@ on:
- 'uv.lock'
- 'requirements/**'
- 'src/vocalinux/version.py'
- 'vocalinux.desktop'
- 'voculinux.desktop'
- '.github/workflows/distro-test-matrix.yml'
workflow_dispatch:
+3 -3
View File
@@ -71,8 +71,8 @@ jobs:
- name: Build and bundle
uses: flatpak/flatpak-github-actions/flatpak-builder@79327416609af08178ad73b352877e51450790b3 # v6
with:
bundle: vocalinux-${{ matrix.arch }}.flatpak
manifest-path: packaging/flatpak/com.vocalinux.Vocalinux.yml
bundle: voculinux-${{ matrix.arch }}.flatpak
manifest-path: packaging/flatpak/com.voculinux.Voculinux.yml
# The action appends -${arch} and restore-keys is
# `flatpak-builder-${arch}`, so the key has to start with that
# prefix. Putting the packaging hash first made every lock
@@ -80,7 +80,7 @@ jobs:
# github.sha in the key forced a full rebuild every run.
cache-key: flatpak-builder-${{ matrix.arch }}-${{ hashFiles('packaging/flatpak/**') }}
arch: ${{ matrix.arch }}
artifact-name: vocalinux-flatpak-${{ matrix.arch }}
artifact-name: voculinux-flatpak-${{ matrix.arch }}
# Flathub mirrors screenshots at submission time; mirror locally so the
# builddir linter does not flag the external screenshot URL.
mirror-screenshots-url: https://dl.flathub.org/media
+14 -14
View File
@@ -77,12 +77,12 @@ jobs:
- name: Cache AppImage build tools
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/vocalinux-appimage
path: ~/.cache/voculinux-appimage
key: appimage-native-${{ runner.arch }}-${{ steps.native-cache.outputs.id }}
- name: Build AppImage (x86_64)
env:
VOCALINUX_APPIMAGE_REQUIRE_VULKAN: "1"
VOCULINUX_APPIMAGE_REQUIRE_VULKAN: "1"
run: |
bash packaging/appimage/docker-build.sh dist/*.whl "${{ steps.version.outputs.version }}" dist
ls -la dist/*.AppImage
@@ -159,13 +159,13 @@ jobs:
#### Quick Install (Recommended)
Download the wheel file below and install:
\`\`\`bash
pip install vocalinux-${{ steps.version.outputs.version }}-py3-none-any.whl
pip install voculinux-${{ steps.version.outputs.version }}-py3-none-any.whl
\`\`\`
#### From PyPI (Stable)
For the latest stable release:
\`\`\`bash
pip install vocalinux
pip install voculinux
\`\`\`
#### Using Install Script
@@ -176,8 +176,8 @@ jobs:
#### AppImage (no install, no root)
Download the \`.AppImage\` matching your CPU (\`x86_64\` or \`aarch64\`) below:
\`\`\`bash
chmod +x Vocalinux-${{ steps.version.outputs.version }}-x86_64.AppImage
./Vocalinux-${{ steps.version.outputs.version }}-x86_64.AppImage
chmod +x Voculinux-${{ steps.version.outputs.version }}-x86_64.AppImage
./Voculinux-${{ steps.version.outputs.version }}-x86_64.AppImage
\`\`\`
Requires \`xdotool\`/\`wtype\`/\`ydotool\` on the host for text injection, same as the PyPI install path.
@@ -197,16 +197,16 @@ jobs:
### Files
- **\`vocalinux-${{ steps.version.outputs.version }}-py3-none-any.whl\`** - Python wheel (recommended)
- **\`vocalinux-${{ steps.version.outputs.version }}.tar.gz\`** - Source distribution
- **\`Vocalinux-${{ steps.version.outputs.version }}-x86_64.AppImage\`** - Self-contained, no install (Intel/AMD)
- **\`Vocalinux-${{ steps.version.outputs.version }}-aarch64.AppImage\`** - Self-contained, no install (ARM64, added shortly after this release is published)
- **\`voculinux-${{ steps.version.outputs.version }}-py3-none-any.whl\`** - Python wheel (recommended)
- **\`voculinux-${{ steps.version.outputs.version }}.tar.gz\`** - Source distribution
- **\`Voculinux-${{ steps.version.outputs.version }}-x86_64.AppImage\`** - Self-contained, no install (Intel/AMD)
- **\`Voculinux-${{ steps.version.outputs.version }}-aarch64.AppImage\`** - Self-contained, no install (ARM64, added shortly after this release is published)
---
### Links
- [Documentation](https://vocalinux.com)
- [Documentation](https://voculinux.com)
- [Report Issues](https://github.com/VocaHQ/vocalinux/issues)
- [Other Releases](https://github.com/VocaHQ/vocalinux/releases)
@@ -242,7 +242,7 @@ jobs:
- name: Upload artifacts (backup)
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: vocalinux-nightly-${{ steps.version.outputs.version }}
name: voculinux-nightly-${{ steps.version.outputs.version }}
path: dist/
retention-days: 7
@@ -296,12 +296,12 @@ jobs:
- name: Cache AppImage build tools
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/vocalinux-appimage
path: ~/.cache/voculinux-appimage
key: appimage-native-${{ runner.arch }}-${{ steps.native-cache.outputs.id }}
- name: Build AppImage (aarch64)
env:
VOCALINUX_APPIMAGE_REQUIRE_VULKAN: "1"
VOCULINUX_APPIMAGE_REQUIRE_VULKAN: "1"
run: |
bash packaging/appimage/docker-build.sh dist/*.whl "${{ needs.nightly.outputs.version }}" dist
ls -la dist/*.AppImage
+54 -54
View File
@@ -15,11 +15,11 @@ env:
# Build against the supported floor (requires-python in pyproject.toml).
PYTHON_VERSION: '3.11'
# The dedicated "tap" repo and the URL Pages serves it at. A custom
# domain (e.g. flatpak.vocalinux.com) overrides both via the vars.
# domain (e.g. flatpak.voculinux.com) overrides both via the vars.
FLATPAK_REMOTE_REPO: ${{ vars.FLATPAK_REMOTE_REPO || 'VocaHQ/vocalinux-flatpak' }}
FLATPAK_REMOTE_URL: ${{ vars.FLATPAK_REMOTE_URL || 'https://vocahq.github.io/vocalinux-flatpak/repo' }}
FLATPAKREPO_URL: ${{ vars.FLATPAKREPO_URL || 'https://vocahq.github.io/vocalinux-flatpak/vocahq.flatpakrepo' }}
FLATPAKREF_URL: ${{ vars.FLATPAKREF_URL || 'https://vocahq.github.io/vocalinux-flatpak/com.vocalinux.Vocalinux.flatpakref' }}
FLATPAK_REMOTE_URL: ${{ vars.FLATPAK_REMOTE_URL || 'https://vocahq.github.io/voculinux-flatpak/repo' }}
FLATPAKREPO_URL: ${{ vars.FLATPAKREPO_URL || 'https://vocahq.github.io/voculinux-flatpak/vocahq.flatpakrepo' }}
FLATPAKREF_URL: ${{ vars.FLATPAKREF_URL || 'https://vocahq.github.io/voculinux-flatpak/com.voculinux.Voculinux.flatpakref' }}
jobs:
build-and-release:
@@ -101,12 +101,12 @@ jobs:
- name: Cache AppImage build tools
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/vocalinux-appimage
path: ~/.cache/voculinux-appimage
key: appimage-native-${{ runner.arch }}-${{ steps.native-cache.outputs.id }}
- name: Build AppImage (x86_64)
env:
VOCALINUX_APPIMAGE_REQUIRE_VULKAN: "1"
VOCULINUX_APPIMAGE_REQUIRE_VULKAN: "1"
run: |
bash packaging/appimage/docker-build.sh dist/*.whl "${{ steps.get_version.outputs.VERSION }}" dist
ls -la dist/*.AppImage
@@ -151,7 +151,7 @@ jobs:
```bash
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak remote-add --if-not-exists vocahq __FLATPAKREPO_URL__
flatpak install vocahq com.vocalinux.Vocalinux
flatpak install vocahq com.voculinux.Voculinux
```
Or download the `.flatpak` matching your CPU (`x86_64` or `aarch64`, attached
@@ -161,8 +161,8 @@ jobs:
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gnome.Platform//50
flatpak install --user ./Vocalinux-__VERSION__-x86_64.flatpak
flatpak run com.vocalinux.Vocalinux
flatpak install --user ./Voculinux-__VERSION__-x86_64.flatpak
flatpak run com.voculinux.Voculinux
```
EOF
else
@@ -175,8 +175,8 @@ jobs:
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gnome.Platform//50
flatpak install --user ./Vocalinux-__VERSION__-x86_64.flatpak
flatpak run com.vocalinux.Vocalinux
flatpak install --user ./Voculinux-__VERSION__-x86_64.flatpak
flatpak run com.voculinux.Voculinux
```
EOF
if [ "$prerelease" = true ]; then
@@ -223,7 +223,7 @@ jobs:
### From Source
```bash
git clone https://github.com/VocaHQ/vocalinux.git
cd vocalinux
cd voculinux
./install.sh
```
@@ -231,10 +231,10 @@ jobs:
```bash
# Install the Linux system packages first:
# GTK/AppIndicator, PortAudio, and xdotool/wtype are required.
python3 -m venv ~/.local/share/vocalinux-pypi/venv --system-site-packages
source ~/.local/share/vocalinux-pypi/venv/bin/activate
pip install vocalinux
vocalinux
python3 -m venv ~/.local/share/voculinux-pypi/venv --system-site-packages
source ~/.local/share/voculinux-pypi/venv/bin/activate
pip install voculinux
voculinux
```
PyPI installs the Python package only. For automatic system dependency,
@@ -243,15 +243,15 @@ jobs:
### Arch Linux (AUR)
```bash
yay -S vocalinux
yay -S voculinux
```
### AppImage (no install, no root)
Download the `.AppImage` matching your CPU (`x86_64` or `aarch64`, the latter attached
shortly after this release is published) below:
```bash
chmod +x Vocalinux-${{ steps.get_version.outputs.VERSION }}-x86_64.AppImage
./Vocalinux-${{ steps.get_version.outputs.VERSION }}-x86_64.AppImage
chmod +x Voculinux-${{ steps.get_version.outputs.VERSION }}-x86_64.AppImage
./Voculinux-${{ steps.get_version.outputs.VERSION }}-x86_64.AppImage
```
Still requires `xdotool`/`wtype`/`ydotool` on the host for text injection, same as the PyPI path.
@@ -260,10 +260,10 @@ jobs:
attached shortly after this release is published):
```bash
# Debian / Ubuntu
sudo apt install ./vocalinux_*_amd64.deb
sudo apt install ./voculinux_*_amd64.deb
# Fedora
sudo dnf install ./vocalinux-*.x86_64.rpm
sudo dnf install ./voculinux-*.x86_64.rpm
```
Thin packages: Python, GTK, PyGObject and the AppIndicator typelib come from the
distro, and `apt`/`dnf` resolves them. Only `pywhispercpp` and `pynput` are
@@ -278,13 +278,13 @@ jobs:
${{ steps.flatpak_notes.outputs.flatpak }}
### Snap
Tagged releases also attach `vocalinux_${{ steps.get_version.outputs.VERSION }}_amd64.snap`
Tagged releases also attach `voculinux_${{ steps.get_version.outputs.VERSION }}_amd64.snap`
and try the Snap Store (`edge` and `candidate`). `stable` is promoted
from candidate after QA by the `snap-promote.yml` dispatch workflow.
Wayland typing runs through the RemoteDesktop portal; the snap ships no `uinput` plug.
The GitHub `.snap` is also the sideload while a Store revision lags:
```bash
sudo snap install --dangerous ./vocalinux_${{ steps.get_version.outputs.VERSION }}_amd64.snap
sudo snap install --dangerous ./voculinux_${{ steps.get_version.outputs.VERSION }}_amd64.snap
```
`--dangerous` is required because this file is not a Store revision. It will not
refresh from the Store. amd64 only.
@@ -298,7 +298,7 @@ jobs:
```
Each artifact also carries GitHub build provenance, which ties it to this workflow run:
```bash
gh attestation verify Vocalinux-${{ steps.get_version.outputs.VERSION }}-x86_64.AppImage \
gh attestation verify Voculinux-${{ steps.get_version.outputs.VERSION }}-x86_64.AppImage \
--repo ${{ github.repository }}
```
@@ -343,12 +343,12 @@ jobs:
- name: Cache AppImage build tools
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/vocalinux-appimage
path: ~/.cache/voculinux-appimage
key: appimage-native-${{ runner.arch }}-${{ steps.native-cache.outputs.id }}
- name: Build AppImage (aarch64)
env:
VOCALINUX_APPIMAGE_REQUIRE_VULKAN: "1"
VOCULINUX_APPIMAGE_REQUIRE_VULKAN: "1"
run: |
bash packaging/appimage/docker-build.sh dist/*.whl "${{ steps.get_version.outputs.VERSION }}" dist
ls -la dist/*.AppImage
@@ -492,8 +492,8 @@ jobs:
- name: Build and bundle
uses: flatpak/flatpak-github-actions/flatpak-builder@79327416609af08178ad73b352877e51450790b3 # v6
with:
bundle: Vocalinux-${{ steps.get_version.outputs.VERSION }}-x86_64.flatpak
manifest-path: packaging/flatpak/com.vocalinux.Vocalinux.yml
bundle: Voculinux-${{ steps.get_version.outputs.VERSION }}-x86_64.flatpak
manifest-path: packaging/flatpak/com.voculinux.Voculinux.yml
# Same prefix rule as flatpak.yml: restore-keys is
# `flatpak-builder-${arch}`. The action appends -${arch} again.
cache-key: flatpak-builder-x86_64-${{ hashFiles('packaging/flatpak/**') }}
@@ -506,7 +506,7 @@ jobs:
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: flatpak-x86_64
path: Vocalinux-${{ steps.get_version.outputs.VERSION }}-x86_64.flatpak
path: Voculinux-${{ steps.get_version.outputs.VERSION }}-x86_64.flatpak
if-no-files-found: error
retention-days: 7
@@ -529,8 +529,8 @@ jobs:
- name: Build and bundle
uses: flatpak/flatpak-github-actions/flatpak-builder@79327416609af08178ad73b352877e51450790b3 # v6
with:
bundle: Vocalinux-${{ steps.get_version.outputs.VERSION }}-aarch64.flatpak
manifest-path: packaging/flatpak/com.vocalinux.Vocalinux.yml
bundle: Voculinux-${{ steps.get_version.outputs.VERSION }}-aarch64.flatpak
manifest-path: packaging/flatpak/com.voculinux.Voculinux.yml
cache-key: flatpak-builder-aarch64-${{ hashFiles('packaging/flatpak/**') }}
arch: aarch64
upload-artifact: false
@@ -540,7 +540,7 @@ jobs:
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: flatpak-aarch64
path: Vocalinux-${{ steps.get_version.outputs.VERSION }}-aarch64.flatpak
path: Voculinux-${{ steps.get_version.outputs.VERSION }}-aarch64.flatpak
if-no-files-found: error
retention-days: 7
@@ -715,27 +715,27 @@ jobs:
echo '[Flatpak Repo]'
echo 'Title=VocaHQ'
echo "Url=${FLATPAK_REMOTE_URL}"
echo 'Homepage=https://vocalinux.com'
echo 'Comment=Official Vocalinux Flatpak remote'
echo 'Description=Self-hosted Vocalinux Flatpak repository'
echo 'Icon=https://vocalinux.com/icon-512x512.png'
echo 'Homepage=https://voculinux.com'
echo 'Comment=Official Voculinux Flatpak remote'
echo 'Description=Self-hosted Voculinux Flatpak repository'
echo 'Icon=https://voculinux.com/icon-512x512.png'
echo 'DefaultBranch=stable'
echo "GPGKey=$(base64 -w0 "$RUNNER_TEMP/pubkey.gpg")"
} > publish/vocahq.flatpakrepo
{
echo '[Flatpak Ref]'
echo 'Version=1'
echo 'Title=Vocalinux'
echo 'Name=com.vocalinux.Vocalinux'
echo 'Title=Voculinux'
echo 'Name=com.voculinux.Voculinux'
echo 'Branch=stable'
echo "Url=${FLATPAK_REMOTE_URL}"
echo 'SuggestRemoteName=vocahq'
echo 'RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo'
echo 'IsRuntime=false'
echo 'Homepage=https://vocalinux.com'
echo 'Icon=https://vocalinux.com/icon-512x512.png'
echo 'Homepage=https://voculinux.com'
echo 'Icon=https://voculinux.com/icon-512x512.png'
echo "GPGKey=$(base64 -w0 "$RUNNER_TEMP/pubkey.gpg")"
} > publish/com.vocalinux.Vocalinux.flatpakref
} > publish/com.voculinux.Voculinux.flatpakref
cp "$RUNNER_TEMP/pubkey.gpg" publish/vocahq.gpg
grep -v GPGKey publish/vocahq.flatpakrepo
sed -e "s|__FLATPAKREPO_URL__|${FLATPAKREPO_URL}|g" \
@@ -751,7 +751,7 @@ jobs:
external_repository: ${{ env.FLATPAK_REMOTE_REPO }}
publish_dir: ./publish
publish_branch: gh-pages
commit_message: 'Vocalinux ${{ github.ref_name }}'
commit_message: 'Voculinux ${{ github.ref_name }}'
attach-flatpak:
name: Attach Flatpak bundles
@@ -854,7 +854,7 @@ jobs:
id-token: write # PyPI trusted publishing; there is no API token to leak
environment:
name: pypi
url: https://pypi.org/project/vocalinux/
url: https://pypi.org/project/voculinux/
steps:
# Not a rebuild: the artifact attached to the GitHub release, so one
# checksum describes both.
@@ -892,14 +892,14 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release download "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" \
--pattern 'vocalinux-*.tar.gz' --pattern SHA256SUMS --dir release-source
--pattern 'voculinux-*.tar.gz' --pattern SHA256SUMS --dir release-source
- name: Verify provenance and prepare the exact source PKGBUILD
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
uv run --python "$(command -v python)" --locked --only-group release-build \
python scripts/prepare_aur_source.py \
--sdist release-source/vocalinux-*.tar.gz --manifest release-source/SHA256SUMS \
--sdist release-source/voculinux-*.tar.gz --manifest release-source/SHA256SUMS \
--tag "$GITHUB_REF_NAME" --source-commit "$GITHUB_SHA" --output build/aur-source
- name: Build and install the exact source PKGBUILD on Arch
run: |
@@ -944,7 +944,7 @@ jobs:
if: steps.aur.outputs.configured == 'true'
uses: KSXGitHub/github-actions-deploy-aur@084b0d9b15415bf9cdb65d44dad1efe37a354050 # v4.2.0
with:
pkgname: vocalinux
pkgname: voculinux
pkgbuild: aur-source/PKGBUILD
updpkgsums: 'false'
commit_username: ${{ secrets.AUR_USERNAME }}
@@ -985,7 +985,7 @@ jobs:
run: |
set -euo pipefail
TAG="${GITHUB_REF#refs/tags/v}"
PKGBUILD=packaging/aur/vocalinux-bin/PKGBUILD
PKGBUILD=packaging/aur/voculinux-bin/PKGBUILD
sed -i "s/^pkgver=.*/pkgver=${TAG//-/}/; s/^_tag=.*/_tag=${TAG}/; s/^pkgrel=.*/pkgrel=1/" "$PKGBUILD"
grep -E '^(pkgver|_tag|pkgrel)=' "$PKGBUILD"
@@ -998,21 +998,21 @@ jobs:
set -euo pipefail
tag="${GITHUB_REF_NAME#v}"
for arch in x86_64 aarch64; do
url="https://github.com/VocaHQ/vocalinux/releases/download/${GITHUB_REF_NAME}/Vocalinux-${tag}-${arch}.AppImage"
url="https://github.com/VocaHQ/vocalinux/releases/download/${GITHUB_REF_NAME}/Voculinux-${tag}-${arch}.AppImage"
sum="$(curl -fsSL "$url" | sha256sum | cut -d' ' -f1)"
sed -i "s/^sha256sums_${arch}=('[0-9a-f]*')/sha256sums_${arch}=('${sum}')/" \
packaging/aur/vocalinux-bin/PKGBUILD
packaging/aur/voculinux-bin/PKGBUILD
done
- name: Publish AUR -bin package
if: steps.aur.outputs.configured == 'true'
uses: KSXGitHub/github-actions-deploy-aur@084b0d9b15415bf9cdb65d44dad1efe37a354050 # v4.2.0
with:
pkgname: vocalinux-bin
# The -bin PKGBUILD names local sources (vocalinux.desktop,
# vocalinux.svg, LICENSE); publishing the whole directory mirrors
pkgname: voculinux-bin
# The -bin PKGBUILD names local sources (voculinux.desktop,
# voculinux.svg, LICENSE); publishing the whole directory mirrors
# them into the AUR repo instead of shipping a lone PKGBUILD.
asset_dir: packaging/aur/vocalinux-bin
asset_dir: packaging/aur/voculinux-bin
# Sums are pinned in the step above for BOTH arches; regenerating
# here would only refresh the x86_64 array.
updpkgsums: 'false'
@@ -1195,5 +1195,5 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./web/out
publish_branch: gh-pages
cname: vocalinux.com
cname: voculinux.com
force_orphan: true
+4 -4
View File
@@ -77,7 +77,7 @@ jobs:
run: |
set -euo pipefail
VERSION="${TAG#v}"
/snap/bin/snapcraft status vocalinux | tee /tmp/snap-status.txt
/snap/bin/snapcraft status voculinux | tee /tmp/snap-status.txt
# POSIX: mawk has no \S — use a literal non-space class.
row=$(awk '/^[^ \t]/ { track = $1 }
track == "latest" && $1 == "candidate" { print $2, $3; exit }
@@ -110,7 +110,7 @@ jobs:
row=$(awk '/^[^ \t]/ { track = $1 }
track == "latest" && $1 == "candidate" { print $2, $3; exit }
track == "latest" && $3 == "candidate" { print $4, $5; exit }' \
<(/snap/bin/snapcraft status vocalinux))
<(/snap/bin/snapcraft status voculinux))
read -r seen_version revision <<<"$row"
if [ "${revision:-}" != "$REVISION" ] || [ "$seen_version" != "$VERSION" ]; then
echo "latest/candidate moved on (now version=${seen_version:-none} revision=${revision:-none}); aborting instead of promoting the stale revision" >&2
@@ -123,5 +123,5 @@ jobs:
REVISION: ${{ steps.candidate.outputs.revision }}
run: |
set -euo pipefail
/snap/bin/snapcraft release vocalinux "$REVISION" latest/stable
/snap/bin/snapcraft status vocalinux
/snap/bin/snapcraft release voculinux "$REVISION" latest/stable
/snap/bin/snapcraft status voculinux
+11 -11
View File
@@ -1,4 +1,4 @@
name: Vocalinux CI
name: Voculinux CI
on:
push:
@@ -51,7 +51,7 @@ jobs:
# entry and the icon into the AppDir.
- 'install.sh'
- 'install.d/**'
- 'vocalinux.desktop'
- 'voculinux.desktop'
- 'resources/**'
- 'justfile'
# scripts/ is guarded by tests/ and one of them is executed by the
@@ -65,7 +65,7 @@ jobs:
- '.pre-commit-config.yaml'
- '.github/workflows/unified-pipeline.yml'
- '.github/workflows/release.yml'
# The AUR gate builds packaging/aur/vocalinux/PKGBUILD from this
# The AUR gate builds packaging/aur/voculinux/PKGBUILD from this
# tree. Its depends= mirror pyproject.toml, so every python change
# reaches the gate through the python filter above; this filter
# exists so a PKGBUILD-only change runs the gate without dragging
@@ -350,12 +350,12 @@ jobs:
- name: Cache AppImage build tools
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/vocalinux-appimage
path: ~/.cache/voculinux-appimage
key: appimage-native-${{ runner.arch }}-${{ steps.native-cache.outputs.id }}
- name: Build AppImage
env:
VOCALINUX_APPIMAGE_REQUIRE_VULKAN: "1"
VOCULINUX_APPIMAGE_REQUIRE_VULKAN: "1"
run: |
VERSION=$(grep -oP '__version__\s*=\s*"\K[^"]+' src/vocalinux/version.py)
WHEEL=$(ls dist/*.whl)
@@ -365,7 +365,7 @@ jobs:
- name: Upload AppImage artifact
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: vocalinux-appimage-${{ matrix.arch }}
name: voculinux-appimage-${{ matrix.arch }}
path: dist/*.AppImage
retention-days: 7
@@ -394,7 +394,7 @@ jobs:
- name: Download the AppImage built above
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: vocalinux-appimage-x86_64
name: voculinux-appimage-x86_64
path: dist
- name: Boot it on ${{ matrix.distro }}
@@ -434,7 +434,7 @@ jobs:
run: |
uv run --python "$(command -v python)" --locked --only-group release-build \
python scripts/prepare_aur_source.py \
--local-unattested --sdist dist/vocalinux-*.tar.gz --output build/aur-source
--local-unattested --sdist dist/voculinux-*.tar.gz --output build/aur-source
- name: Build the PKGBUILD on Arch
run: |
@@ -445,7 +445,7 @@ jobs:
# The .deb and .rpm exist to be installed and run, so the gate does exactly
# that: build both in the pinned Debian 12 image release.yml uses, then
# install them in distro containers and run vocalinux --version plus an
# install them in distro containers and run voculinux --version plus an
# import smoke. debian:12 and ubuntu:24.04 exercise the .deb's dependency
# list (and the vendored cp311/cp312 wheels), fedora:42 the .rpm's.
native-build:
@@ -535,7 +535,7 @@ jobs:
- name: Upload the verified snap
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: vocalinux-snap-amd64
name: voculinux-snap-amd64
path: ${{ steps.build.outputs.snap }}
if-no-files-found: error
retention-days: 7
@@ -628,5 +628,5 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./web/out
publish_branch: gh-pages
cname: vocalinux.com
cname: voculinux.com
force_orphan: true