Add Linux (Ubuntu) release artifacts: AppImage + .deb - #173
Open
AliRezaTaleghani wants to merge 1 commit into
Open
Add Linux (Ubuntu) release artifacts: AppImage + .deb#173AliRezaTaleghani wants to merge 1 commit into
AliRezaTaleghani wants to merge 1 commit into
Conversation
Adds packaging/build_linux.sh, mirroring build_dmg.sh/build_windows.ps1 (PyInstaller sidecar bundle -> tauri build --bundles appimage,deb), wires an ubuntu-latest job into the release matrix, and teaches make_update_manifest.py the linux-x86_64 updater platform key. Fixes andrewyng#171
Author
|
@andrewyng would u mind to have quick review on this release extention to support Linux (Desktop) friendly artifacts? |
sham72942
approved these changes
Jul 27, 2026
sham72942
left a comment
There was a problem hiding this comment.
PR adds Linux release artifacts (AppImage + .deb), mirroring existing mac/windows packaging:
New packaging/build_linux.sh — PyInstaller bundle + tauri build --bundles appimage,deb.
release.yml: adds ubuntu-latest matrix leg, apt deps step, build step, staging block.
make_update_manifest.py: adds linux-x86_64 updater key for signed AppImage.
README mentions.
Clean, well-scoped, follows repo patterns tight.
|
wait for linux version. |
Nikish-codes
added a commit
to Nikish-codes/openworker
that referenced
this pull request
Aug 7, 2026
…ce_dir fix Add native Linux packaging to the release pipeline (currently macOS + Windows only). Verified end-to-end: builds a working OpenWorker_0.1.7_amd64.deb (79M) and OpenWorker_0.1.7_amd64.AppImage (157M); backend suite 1114 passed / 1 skipped, GUI unit 108 passed, cargo warning-clean. Supersedes andrewyng#173 (same goal, approved but stalled). Two correctness gaps in andrewyng#173 that this addresses: 1. Runtime sidecar resolution — andrewyng#173 bundles but does NOT fix server_bin(), so on a .deb install the app cannot find its sidecar: macOS/Windows resolve it next to the binary, but a .deb puts the binary in /usr/bin and resources under /usr/lib/OpenWorker/ (Tauri's resource_dir()). Without the fix the build is green but the app hangs on "Starting coworker…". Fixed: server_bin(app) resolves via app.path().resource_dir() on Linux (#[cfg(target_os = "linux")]); macOS/Windows paths unchanged. Verified against the deb's contents (sidecar at usr/lib/OpenWorker/sidecar/). 2. Build deps — andrewyng#173 omits libasound2-dev (cpal/ALSA) and libclang-dev (whisper-rs bindgen), so the STT sidecar crate fails to compile in CI, and uses the deprecated libappindicator3-dev. This uses the ayatana successor and includes the STT build deps. Changes: - packaging/build_linux.sh: PyInstaller sidecar -> stage at binaries/sidecar -> tauri build --bundles deb,appimage. Unsigned; BUNDLES= overrides targets. - packaging/install_linux_deps.sh: distro-aware installer (Debian/Fedora/Arch) for the Tauri webkit GUI + ocw-stt (cpal/ALSA, whisper.cpp, libclang) libs. - src-tauri/src/lib.rs: server_bin() takes AppHandle and resolves the sidecar via resource_dir() on Linux; silence an unused_mut on non-macOS (the window builder is mut only inside the macOS title-bar cfg block). - .github/workflows/release.yml: ubuntu-22.04 matrix leg (stable glibc for broad compat), Linux deps step, build step, deb/AppImage staging, and a regression guard that fails CI if the deb ships without the sidecar at usr/lib/OpenWorker/sidecar/ (prevents the andrewyng#173 bug class recurring). - packaging/make_update_manifest.py: register OpenWorker-linux-amd64.deb as the linux-x86_64 updater target. - README: "Build a Linux package" section + packaging table entry. Notes: - Voice Input is marked unsupported on Linux for now (the STT crate compiles on Linux, but the shell's compatibility gate is conservative by design); wiring a Linux audio backend is a natural follow-up, kept out of scope here. - Built on ubuntu-22.04 (glibc 2.35) so the artifacts run on 22.04+ and most derivatives. aarch64 is a follow-up (andrewyng#218 covers Linux arm64 test CI). - Unsigned: Linux has no universal code-signing scheme; auto-update artifacts emit only when TAURI_SIGNING_PRIVATE_KEY is set, same as the other targets. Refs: andrewyng#173 (supersedes), andrewyng#19, andrewyng#78, andrewyng#218. Demand: andrewyng#232 andrewyng#171 andrewyng#117 andrewyng#414 andrewyng#80.
|
This PR has been superseded by PR #470. |
niutech
added a commit
to niutech/openworker-next
that referenced
this pull request
Aug 20, 2026
…ce_dir fix (#1) Add native Linux packaging to the release pipeline (currently macOS + Windows only). Verified end-to-end: builds a working OpenWorker_0.1.7_amd64.deb (79M) and OpenWorker_0.1.7_amd64.AppImage (157M); backend suite 1114 passed / 1 skipped, GUI unit 108 passed, cargo warning-clean. Supersedes andrewyng#173 (same goal, approved but stalled). Two correctness gaps in andrewyng#173 that this addresses: 1. Runtime sidecar resolution — andrewyng#173 bundles but does NOT fix server_bin(), so on a .deb install the app cannot find its sidecar: macOS/Windows resolve it next to the binary, but a .deb puts the binary in /usr/bin and resources under /usr/lib/OpenWorker/ (Tauri's resource_dir()). Without the fix the build is green but the app hangs on "Starting coworker…". Fixed: server_bin(app) resolves via app.path().resource_dir() on Linux (#[cfg(target_os = "linux")]); macOS/Windows paths unchanged. Verified against the deb's contents (sidecar at usr/lib/OpenWorker/sidecar/). 2. Build deps — andrewyng#173 omits libasound2-dev (cpal/ALSA) and libclang-dev (whisper-rs bindgen), so the STT sidecar crate fails to compile in CI, and uses the deprecated libappindicator3-dev. This uses the ayatana successor and includes the STT build deps. Changes: - packaging/build_linux.sh: PyInstaller sidecar -> stage at binaries/sidecar -> tauri build --bundles deb,appimage. Unsigned; BUNDLES= overrides targets. - packaging/install_linux_deps.sh: distro-aware installer (Debian/Fedora/Arch) for the Tauri webkit GUI + ocw-stt (cpal/ALSA, whisper.cpp, libclang) libs. - src-tauri/src/lib.rs: server_bin() takes AppHandle and resolves the sidecar via resource_dir() on Linux; silence an unused_mut on non-macOS (the window builder is mut only inside the macOS title-bar cfg block). - .github/workflows/release.yml: ubuntu-22.04 matrix leg (stable glibc for broad compat), Linux deps step, build step, deb/AppImage staging, and a regression guard that fails CI if the deb ships without the sidecar at usr/lib/OpenWorker/sidecar/ (prevents the andrewyng#173 bug class recurring). - packaging/make_update_manifest.py: register OpenWorker-linux-amd64.deb as the linux-x86_64 updater target. - README: "Build a Linux package" section + packaging table entry. Notes: - Voice Input is marked unsupported on Linux for now (the STT crate compiles on Linux, but the shell's compatibility gate is conservative by design); wiring a Linux audio backend is a natural follow-up, kept out of scope here. - Built on ubuntu-22.04 (glibc 2.35) so the artifacts run on 22.04+ and most derivatives. aarch64 is a follow-up (andrewyng#218 covers Linux arm64 test CI). - Unsigned: Linux has no universal code-signing scheme; auto-update artifacts emit only when TAURI_SIGNING_PRIVATE_KEY is set, same as the other targets. Refs: andrewyng#173 (supersedes), andrewyng#19, andrewyng#78, andrewyng#218. Demand: andrewyng#232 andrewyng#171 andrewyng#117 andrewyng#414 andrewyng#80. Co-authored-by: Nikish <notnikish@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
packaging/build_linux.sh, mirroring the existingbuild_dmg.sh/build_windows.ps1scripts: PyInstaller-bundles the server sidecar, thentauri build --bundles appimage,deb.ubuntu-latestjob into therelease.ymlbuild matrix (installs the standard Tauri Linux bundler deps, runs the new script, stagesOpenWorker-linux-x64.AppImage/.debwith stable names + updater.sig, same convention as macOS/Windows).linux-x86_64updater platform key topackaging/make_update_manifest.pyso a release with a signed AppImage gets picked up by the auto-updater.Closes #171.
Test plan
bash -n packaging/build_linux.shpython3 -m py_compile packaging/make_update_manifest.pypython3 -c "import yaml; yaml.safe_load(open('.github/workflows/release.yml'))"TAURI_SIGNING_PRIVATE_KEYto test the updater-artifact path locally