mirror of
https://github.com/Felitendo/spotifast.git
synced 2026-11-01 17:33:26 +01:00
The single-instance guard and remote-control channel now come from fastframe-instance, which ZapFast shares. The running copy holds a lock in a private per-user directory, released by the system even after a crash, and answers on a socket only the user can open (on Linux and macOS), or on Windows on a loopback port that answers only requests carrying a random token. It replaces the fixed port 47113, which any local program could reach, and the D-Bus name on Linux. The protocol prefix is now spotifast:, so no Fastpotify name is left in it. Because Linux uses the same channel, every spotifast subcommand works there too, and MPRIS stays for media keys and desktop players. Requests keep their argument checks. A copy started from a release before this one does not find the new guard, so for that one update two copies can briefly run. The Flatpak no longer asks for the old bus name. The Nix vendor hash follows the lockfile.
38 lines
1.7 KiB
YAML
38 lines
1.7 KiB
YAML
# The release workflow's Flatpak: the binary the Linux job built, packaged
|
|
# into the same sandbox as rocks.spotifast.Spotifast.yml describes. The
|
|
# job unpacks the release tarball into built/ beside this file first.
|
|
id: rocks.spotifast.Spotifast
|
|
runtime: org.freedesktop.Platform
|
|
runtime-version: '24.08'
|
|
sdk: org.freedesktop.Sdk
|
|
command: spotifast
|
|
finish-args:
|
|
- --socket=wayland
|
|
- --socket=fallback-x11
|
|
- --share=ipc
|
|
- --device=dri
|
|
- --socket=pulseaudio
|
|
- --share=network
|
|
# Platform storage for this application's Spotify grants.
|
|
- --talk-name=org.freedesktop.secrets
|
|
- --talk-name=org.kde.StatusNotifierWatcher
|
|
- --own-name=org.mpris.MediaPlayer2.spotifast
|
|
- --persist=.local/state
|
|
modules:
|
|
- name: spotifast
|
|
buildsystem: simple
|
|
build-commands:
|
|
- install -Dm755 spotifast /app/bin/spotifast
|
|
- install -Dm644 packaging/applications/*.desktop /app/share/applications/rocks.spotifast.Spotifast.desktop
|
|
- sed -i 's/^Icon=.*$/Icon=rocks.spotifast.Spotifast/;s/^StartupWMClass=spotifast$/StartupWMClass=rocks.spotifast.Spotifast/' /app/share/applications/rocks.spotifast.Spotifast.desktop
|
|
- install -Dm644 packaging/icons/*.svg /app/share/icons/hicolor/scalable/apps/rocks.spotifast.Spotifast.svg
|
|
- install -Dm644 packaging/flatpak/rocks.spotifast.Spotifast.metainfo.xml /app/share/metainfo/rocks.spotifast.Spotifast.metainfo.xml
|
|
- install -Dm644 LICENSE /app/share/licenses/spotifast/LICENSE
|
|
sources:
|
|
- type: dir
|
|
path: built
|
|
# Metainfo belongs to this packaging checkout, not the portable archive.
|
|
- type: file
|
|
path: rocks.spotifast.Spotifast.metainfo.xml
|
|
dest: packaging/flatpak
|