# .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