Files
spotifast/native-packages.yaml
T
Carmine Paolino 41f8699d00 Package Spotifast as an AppImage
native-packages 0.8.1 builds an AppImage from the same contents as the
DEB and RPM, so both Linux targets now list it: a release gains
spotifast-X.Y.Z-x86_64.AppImage and spotifast-X.Y.Z-aarch64.AppImage,
one file each that runs without installation.

The AppImage bundles no libraries. It needs glibc 2.39 and the desktop's
own libraries, like the other packages, and the updater sends it to the
download page as it does any installation it does not recognize.

The packaging workflow runs each AppImage on its own architecture and
checks its version. The shared workflow and the gem move from 0.6.0 and
0.7.0 to 0.8.1 together.
2026-09-30 17:59:17 +02:00

207 lines
5.9 KiB
YAML

# Shared CLI: gem install native-packages --version 0.8.1
---
schema: 1
tool:
version: 0.8.1
nfpm: 2.47.0
# Ubuntu 24.04 and Debian 13 use the ALSA t64 package name. Override ELF
# inference as well as the explicit dependencies below.
libraries:
libasound.so.2:
deb: libasound2t64
rpm: alsa-lib
nfpm:
name: spotifast
maintainer: Carmine Paolino <carmine@paolino.me>
homepage: https://github.com/crmne/spotifast
description: A native Spotify client
license: MIT
provides: [fastpotify]
replaces: [fastpotify]
conflicts: [fastpotify]
contents:
# A glob source makes nFPM append its basename to the destination directory.
- src: "@PAYLOAD@/*-v@VERSION@-@TARGET@/spotifast"
dst: "/usr/bin/"
file_info:
mode: 493
- src: spotifast
dst: /usr/bin/fastpotify
type: symlink
- src: "@PAYLOAD@/*-v@VERSION@-@TARGET@/LICENSE"
dst: "/usr/share/licenses/spotifast/"
file_info:
mode: 420
- src: "@PAYLOAD@/*-v@VERSION@-@TARGET@/README.md"
dst: "/usr/share/doc/spotifast/"
file_info:
mode: 420
# Retain the input release's launcher identity: current builds use Spotifast,
# while historical binaries still advertise the Fastpotify window class.
- src: "@PAYLOAD@/*-v@VERSION@-@TARGET@/packaging/applications/*.desktop"
dst: "/usr/share/applications/"
file_info:
mode: 420
- src: "@PAYLOAD@/*-v@VERSION@-@TARGET@/packaging/icons/*.svg"
dst: "/usr/share/icons/hicolor/scalable/apps/"
file_info:
mode: 420
- src: contrib/omarchy/spotifast.json.tpl
dst: /usr/share/spotifast/omarchy/spotifast.json.tpl
file_info:
mode: 420
- src: contrib/omarchy/spotifast-theme
dst: /usr/share/spotifast/omarchy/spotifast-theme
file_info:
mode: 493
overrides:
# ELF inspection cannot discover the GUI's dlopen dependencies. Keep
# these aligned with winit/glutin/rfd and packaging/check-runtime-libs.c.
deb:
depends:
- libdbus-1-3
- libc6 (>= 2.39)
- libgl1
- libegl1
- libxkbcommon0
- libxkbcommon-x11-0
- libwayland-client0
- libwayland-cursor0
- libwayland-egl1
- libx11-6
- libx11-xcb1
- libxcursor1
- libxi6
- libxrandr2
- libasound2t64
- libpulse0
- libgcc-s1
- libstdc++6
rpm:
depends:
- dbus-libs
- glibc >= 2.39
- libglvnd-glx
- libglvnd-egl
- libxkbcommon
- libxkbcommon-x11
- libwayland-client
- libwayland-cursor
- libwayland-egl
- libX11
- libX11-xcb
- libXcursor
- libXi
- libXrandr
- alsa-lib
- pulseaudio-libs
- libgcc
- libstdc++
rpm:
buildhost: github-actions
targets:
macos-universal:
platform: macos
arch: universal
formats: [dmg]
input:
kind: directory
local: dist/macos-input
native:
command: [ruby, packaging/macos/dmg.rb, '@PAYLOAD@', '@PACKAGE@']
output: 'spotifast-@TAG@-macos-universal.dmg'
linux-amd64:
platform: linux
arch: amd64
libc: glibc
compiler_target: x86_64-unknown-linux-gnu
formats:
- deb
- rpm
- appimage
input:
local: dist/spotifast-v@VERSION@-x86_64-unknown-linux-gnu.tar.gz
release_asset: spotifast-v@VERSION@-x86_64-unknown-linux-gnu.tar.gz
linux-arm64:
platform: linux
arch: arm64
libc: glibc
compiler_target: aarch64-unknown-linux-gnu
formats:
- deb
- rpm
- appimage
input:
local: dist/spotifast-v@VERSION@-aarch64-unknown-linux-gnu.tar.gz
release_asset: spotifast-v@VERSION@-aarch64-unknown-linux-gnu.tar.gz
release:
repository: crmne/spotifast
prereleases: true
checksums: checksums.txt
assets:
AMD64:
file: spotifast-v@VERSION@-x86_64-unknown-linux-gnu.tar.gz
local: dist/spotifast-v@VERSION@-x86_64-unknown-linux-gnu.tar.gz
ARM64:
file: spotifast-v@VERSION@-aarch64-unknown-linux-gnu.tar.gz
local: dist/spotifast-v@VERSION@-aarch64-unknown-linux-gnu.tar.gz
SOURCE:
file: spotifast-v@VERSION@-source.tar.gz
local: dist/spotifast-v@VERSION@-source.tar.gz
MACOS:
file: spotifast-v@VERSION@-macos-universal.dmg
local: dist/spotifast-v@VERSION@-macos-universal.dmg
templates:
arch/spotifast/PKGBUILD: packaging/arch/spotifast/PKGBUILD.in
arch/spotifast/spotifast.install: packaging/arch/spotifast.install
arch/spotifast-bin/PKGBUILD: packaging/arch/spotifast-bin/PKGBUILD.in
arch/spotifast-bin/spotifast-bin.install: packaging/arch/spotifast.install
arch/spotifast-git/PKGBUILD: packaging/arch/spotifast-git/PKGBUILD.in
arch/spotifast-git/spotifast-git.install: packaging/arch/spotifast.install
homebrew/spotifast.rb: packaging/homebrew/spotifast.rb.in
repositories:
aur-source:
group: aur
url: https://aur.archlinux.org/spotifast.git
push_url: ssh://aur@aur.archlinux.org/spotifast.git
branch: master
package_path: "."
files:
arch/spotifast: "."
version_file: ".SRCINFO"
version_pattern: "^\\s*pkgver = (\\S+)"
publish: push
aur-bin:
group: aur
url: https://aur.archlinux.org/spotifast-bin.git
push_url: ssh://aur@aur.archlinux.org/spotifast-bin.git
branch: master
package_path: "."
files:
arch/spotifast-bin: "."
version_file: ".SRCINFO"
version_pattern: "^\\s*pkgver = (\\S+)"
publish: push
aur-git:
group: aur
url: https://aur.archlinux.org/spotifast-git.git
push_url: ssh://aur@aur.archlinux.org/spotifast-git.git
branch: master
package_path: "."
files:
arch/spotifast-git: "."
version_file: ".SRCINFO"
version_pattern: "^\\s*pkgver = (\\S+)"
publish: push
homebrew:
url: https://github.com/crmne/homebrew-tap.git
push_url: https://github.com/crmne/homebrew-tap.git
branch: main
package_path: Casks
files:
homebrew/spotifast.rb: Casks/spotifast.rb
version_file: Casks/spotifast.rb
version_pattern: version "([^"]+)"
publish: push
version_file: Cargo.toml