Files

80 lines
2.9 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, NFPM_ARCH and GLIBC_FLOOR (the build runner's glibc baseline).
#
# nfpm package -f packaging/linux/nfpm.yaml -p deb -t dist/release/
name: artcraft-launcher
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: utils
priority: optional
maintainer: ${ARTCRAFT_LAUNCHER_MAINTAINER}
vendor: Learning Machines LLC
homepage: https://github.com/storytold/craft-launcher
license: MIT OR Apache-2.0
description: |-
Install, update and launch the Craft App Suite.
ArtCraft Launcher lists PhotoCraft, LightCraft, FilmCraft, DesignCraft,
VectorCraft, PdfCraft, EffectCraft, WordCraft, DeckCraft, GridCraft, CADCraft,
SoundCraft and FigCraft, installs the right build for this computer and keeps
them up to date from GitHub releases. It can live in the system tray.
# The binary links only glibc and libgcc_s directly. Windowing (X11/Wayland, xkbcommon) and the
# GPU (Vulkan, EGL/GL) are loaded at runtime with dlopen, so they aren't ELF NEEDED entries and
# the package tools can't find them: list them here (the same set as the other Craft apps).
# The tray (StatusNotifierItem) and notifications talk to the session bus in pure Rust (zbus),
# so there is no libdbus, GTK or appindicator dependency; a desktop without a
# StatusNotifierWatcher (plain GNOME needs the AppIndicator extension) simply shows no tray icon.
overrides:
deb:
depends:
- libc6 (>= ${GLIBC_FLOOR})
- libgcc-s1
- libxkbcommon0
- libxkbcommon-x11-0
- libwayland-client0
- libx11-6
- libx11-xcb1
- libxcb1
- libxcursor1
- libxi6
- libvulkan1 | libegl1
recommends:
- mesa-vulkan-drivers
- libegl-mesa0
- xdg-desktop-portal
rpm:
# Match the runner's glibc floor. Use soname provides for windowing libraries so the same
# requirements resolve on Fedora/RHEL (libxkbcommon-x11, libX11-xcb, ...) and openSUSE
# (libxkbcommon-x11-0, libX11-xcb1, ...).
depends:
- glibc >= ${GLIBC_FLOOR}
- libxkbcommon.so.0()(64bit)
- libxkbcommon-x11.so.0()(64bit)
- libwayland-client.so.0()(64bit)
- libX11.so.6()(64bit)
- libX11-xcb.so.1()(64bit)
- libxcb.so.1()(64bit)
- libXcursor.so.1()(64bit)
- libXi.so.6()(64bit)
- (libvulkan.so.1()(64bit) or libEGL.so.1()(64bit))
recommends:
- mesa-vulkan-drivers
- xdg-desktop-portal
contents:
- src: ${STAGE}/usr/bin/artcraft-launcher
dst: /usr/bin/artcraft-launcher
file_info: { mode: 0755 }
- src: ${STAGE}/usr/share/
dst: /usr/share/
type: tree
scripts:
postinstall: packaging/linux/postinst.sh
postremove: packaging/linux/postinst.sh