82 lines
2.9 KiB
YAML
82 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`),
|
|
# drops the lines marked `#cli` when the workspace has no apps/figcraft-cli, and exports VERSION,
|
|
# NFPM_ARCH and FIGCRAFT_MAINTAINER.
|
|
#
|
|
# nfpm package -f packaging/linux/nfpm.yaml -p deb -t dist/release/
|
|
name: figcraft
|
|
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: graphics
|
|
priority: optional
|
|
maintainer: ${FIGCRAFT_MAINTAINER}
|
|
vendor: Learning Machines LLC
|
|
homepage: https://getartcraft.com/apps/figcraft
|
|
license: MIT OR Apache-2.0
|
|
description: |-
|
|
Open-source, native interface design and prototyping tool.
|
|
Frames, vector shapes and text on an infinite canvas; auto layout and
|
|
constraints; components, variants, styles and variables; interactive
|
|
prototypes with a presentation mode; SVG and PNG export; GPU rendering (wgpu).
|
|
|
|
# The binaries link 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. winit 0.30 loads, for X11: libX11,
|
|
# libX11-xcb, libxcb, libXcursor, libXi, libxkbcommon and libxkbcommon-x11; for Wayland:
|
|
# libwayland-client and libxkbcommon. wgpu needs libvulkan or libEGL. RandR goes through x11rb's
|
|
# protocol code and fonts are found by scanning directories, so libXrandr and fontconfig aren't
|
|
# loaded.
|
|
overrides:
|
|
deb:
|
|
depends:
|
|
- libc6 (>= 2.35)
|
|
- 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:
|
|
# Soname provides rather than package names, so the same requirements resolve on Fedora/RHEL
|
|
# (libxkbcommon-x11, libX11-xcb, ...) and openSUSE (libxkbcommon-x11-0, libX11-xcb1, ...).
|
|
depends:
|
|
- 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/figcraft
|
|
dst: /usr/bin/figcraft
|
|
file_info: { mode: 0755 }
|
|
- src: ${STAGE}/usr/bin/figcraft-cli #cli
|
|
dst: /usr/bin/figcraft-cli #cli
|
|
file_info: { mode: 0755 } #cli
|
|
- src: ${STAGE}/usr/share/
|
|
dst: /usr/share/
|
|
type: tree
|
|
|
|
scripts:
|
|
postinstall: packaging/linux/postinst.sh
|
|
postremove: packaging/linux/postinst.sh
|