Files
Brandon ThomasandClaude Opus 5.5 04d222069d Release pipeline: signed macOS/Windows, Linux packages, FreeBSD, Web; app icon
- .github/workflows/release.yml: every push to `release` builds a draft
  GitHub Release: macOS universal DMG (Developer ID + notarization),
  Windows x64/x86/arm64 MSI + zips (Azure Trusted Signing), Linux
  x86_64/aarch64 AppImage/deb/rpm/tar.gz + Flatpak manifest, FreeBSD,
  Web/WASM zip; SHA256SUMS; secrets only via the release environment
- packaging/ for every platform; .scraft + audio file associations
- cargo xtask version [set X.Y.Z] and xtask ico
- apps/soundcraft-web (trunk, WebGPU/WebGL2, WebAudio)
- placeholder app icon (original nightingale), window icon, Windows resources
- ROADMAP.md

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 23:17:59 -04:00

76 lines
2.3 KiB
YAML

# .deb and .rpm packages (nfpm: https://nfpm.goreleaser.com). Run by package.sh, which stages
# the file tree, substitutes its path for ${STAGE} (nfpm doesn't expand env vars in `src`) and
# exports VERSION and NFPM_ARCH.
#
# nfpm package -f packaging/linux/nfpm.yaml -p deb -t dist/release/
name: soundcraft
arch: ${NFPM_ARCH}
platform: linux
version: ${VERSION}
# semver: 0.2.0-rc.1 becomes 0.2.0~rc.1 in deb/rpm, so pre-releases sort before the release.
version_schema: semver
release: 1
section: sound
priority: optional
maintainer: ${SOUNDCRAFT_MAINTAINER}
vendor: Learning Machines LLC
homepage: https://getartcraft.com/apps/soundcraft
license: MIT OR Apache-2.0
description: |-
Open-source, native digital audio workstation. Record, edit and mix
multitrack audio and MIDI in Edit and Mix windows; built-in EQ, dynamics,
reverb, delay and instruments; imports WAV, AIFF, FLAC, MP3 and MIDI.
Includes soundcraft-cli, a headless editor, bounce tool and MCP server.
# The app links glibc, libgcc_s and ALSA (libasound, for audio I/O through cpal; PulseAudio and
# PipeWire are reached through their ALSA plugins). Windowing (X11/Wayland, xkbcommon) and the GPU
# (Vulkan, EGL/GL) are loaded at runtime, so they are dependencies/recommendations here rather
# than ELF NEEDED entries.
overrides:
deb:
depends:
- libc6 (>= 2.35)
- libgcc-s1
- libasound2 | libasound2t64
- libxkbcommon0
- libvulkan1 | libegl1
recommends:
- libwayland-client0
- libx11-6
- libx11-xcb1
- libxcursor1
- libxi6
- libxrandr2
- mesa-vulkan-drivers
- xdg-desktop-portal
- pipewire-alsa | pulseaudio
rpm:
depends:
- alsa-lib
- libxkbcommon
- (vulkan-loader or libglvnd-egl)
recommends:
- libwayland-client
- libX11
- libXcursor
- libXi
- libXrandr
- mesa-vulkan-drivers
- xdg-desktop-portal
- (pipewire-alsa or alsa-plugins-pulseaudio)
contents:
- src: ${STAGE}/usr/bin/soundcraft
dst: /usr/bin/soundcraft
file_info: { mode: 0755 }
- src: ${STAGE}/usr/bin/soundcraft-cli
dst: /usr/bin/soundcraft-cli
file_info: { mode: 0755 }
- src: ${STAGE}/usr/share/
dst: /usr/share/
type: tree
scripts:
postinstall: packaging/linux/postinst.sh
postremove: packaging/linux/postinst.sh