Overview
This issue tracks the long-term goal of making Auryn available as a properly packaged, self-contained application on Windows, Linux (via Flatpak), and macOS. It is a planning and coordination issue — not an implementation task. No work should be merged under this umbrella until the groundwork described below is completed.
Current state
Auryn is a single-file Python/GTK3 desktop application (src/Qrip.py, currently mid-rebrand). It depends on:
- PyGObject / GTK 3 for the GUI
- Python standard library modules including
fcntl, os.openpty, and subprocess for terminal emulation and process control
xdg-open for opening URLs from the UI
streamrip as an external CLI dependency (the actual download engine)
The .desktop file in desktop/ provides basic Linux desktop integration. The README references .deb, Docker, and Flatpak distribution methods, but none of these packaging artifacts currently exist in this repository. There is no setup.py, pyproject.toml, requirements.txt, Flatpak manifest, or any platform-specific build script in the codebase.
The application is currently only viable on Linux. Several parts of the code use Linux-specific APIs:
fcntl (not available on Windows)
os.openpty / PTY-based terminal emulation (not available on Windows)
xdg-open (Linux/freedesktop only)
Sub-issues
The following checklist represents the concrete steps required before any packaging work can begin or be considered complete. These will be broken into individual tracking issues as work progresses.
Phase 1 — Audit & prerequisites
Phase 2 — Portability fixes
Phase 3 — Platform validation
Phase 4 — Packaging
Goal
The realistic end goal is:
- Linux (Flatpak): Auryn is installable from Flathub or a self-hosted repo with a single command, without requiring the user to install Python, GTK3, or other system dependencies manually.
- macOS: Auryn is distributable as a signed
.app bundle or via Homebrew, with acceptable (not perfect) GTK3 rendering.
- Windows: Auryn is distributable as an MSI or similar installer that bundles all required dependencies, including the GTK3 runtime.
None of this implies a native look-and-feel on non-Linux platforms. GTK3 on Windows and macOS has well-known limitations. The goal is functional availability, not visual parity.
Notes
- This is a planning issue, not an implementation issue. Do not start packaging work until Phases 1 and 2 are substantially complete.
- Changes to support cross-platform portability should be incremental and should not break the existing Linux experience.
- The Flatpak target is the most natural next step given the current Linux-only state and should be prioritized.
- Windows support is the most technically challenging target (no native PTY, no
fcntl, GTK3 runtime is non-trivial to bundle) and should be treated as a stretch goal.
- This issue will be updated as sub-issues are created and linked.
Overview
This issue tracks the long-term goal of making Auryn available as a properly packaged, self-contained application on Windows, Linux (via Flatpak), and macOS. It is a planning and coordination issue — not an implementation task. No work should be merged under this umbrella until the groundwork described below is completed.
Current state
Auryn is a single-file Python/GTK3 desktop application (
src/Qrip.py, currently mid-rebrand). It depends on:fcntl,os.openpty, andsubprocessfor terminal emulation and process controlxdg-openfor opening URLs from the UIstreamripas an external CLI dependency (the actual download engine)The
.desktopfile indesktop/provides basic Linux desktop integration. The README references.deb, Docker, and Flatpak distribution methods, but none of these packaging artifacts currently exist in this repository. There is nosetup.py,pyproject.toml,requirements.txt, Flatpak manifest, or any platform-specific build script in the codebase.The application is currently only viable on Linux. Several parts of the code use Linux-specific APIs:
fcntl(not available on Windows)os.openpty/ PTY-based terminal emulation (not available on Windows)xdg-open(Linux/freedesktop only)Sub-issues
The following checklist represents the concrete steps required before any packaging work can begin or be considered complete. These will be broken into individual tracking issues as work progresses.
Phase 1 — Audit & prerequisites
fcntl,os.openpty,xdg-open) and document which are blocking blockers for each target platformstreamripversion, and any implicit system librariesrequirements.txtorpyproject.tomlso dependencies are explicit and reproduciblePhase 2 — Portability fixes
fcntl-based locking with a cross-platform alternative (e.g.,msvcrton Windows, conditional import)os.openptyusage with a cross-platform terminal emulation approach (e.g.,pexpect, a subprocess pipe fallback, or platform guards)xdg-openwith a cross-platformwebbrowser.open()/os.startfile()approachPhase 3 — Platform validation
streamripitself is available and functional on each target platform (this is an upstream concern but affects our packaging story)Phase 4 — Packaging
com.github.thezupzup.Auryn.yml) and publish to Flathub or self-host — this is the most realistic near-term packaging target given the existing Linux focus.appbundle viabriefcaseorpy2app, DMG, or Homebrew formula)briefcasefor a self-contained installer)Goal
The realistic end goal is:
.appbundle or via Homebrew, with acceptable (not perfect) GTK3 rendering.None of this implies a native look-and-feel on non-Linux platforms. GTK3 on Windows and macOS has well-known limitations. The goal is functional availability, not visual parity.
Notes
fcntl, GTK3 runtime is non-trivial to bundle) and should be treated as a stretch goal.