Files
2026-10-14 22:05:12 -04:00

96 lines
3.3 KiB
YAML

# .deb/.rpm/Arch 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: designcraft
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: ${DESIGNCRAFT_MAINTAINER}
vendor: Learning Machines LLC
homepage: https://getartcraft.com/apps/designcraft
license: MIT OR Apache-2.0
description: |-
Open-source, native page layout and publishing that works the way InDesign users expect.
Spreads and parent pages, threaded text frames, paragraph and character styles, swatches,
text wrap and a Knuth-Plass paragraph composer; IDML import and export.
Includes designcraft-cli, a headless renderer and command runner.
# The binaries link only glibc and libgcc_s directly. 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
- libxkbcommon0
- libvulkan1 | libegl1
recommends:
- libwayland-client0
- libx11-6
- libx11-xcb1
- libxcursor1
- libxi6
- libxrandr2
- mesa-vulkan-drivers
- xdg-desktop-portal
rpm:
# Library sonames rather than package names, so the same requirements resolve on Fedora/RHEL
# and openSUSE (which has no libxkbcommon, vulkan-loader or libglvnd-egl package). The glibc
# floor names libm because the binaries' GLIBC_2.35 symbols (hypot, hypotf) are libm's: RHEL 9's
# glibc 2.34 provides libc.so.6(GLIBC_2.35) through backports, but not this, so it refuses.
depends:
- libc.so.6()(64bit)
- libm.so.6(GLIBC_2.35)(64bit)
- libgcc_s.so.1()(64bit)
- libxkbcommon.so.0()(64bit)
- (libvulkan.so.1()(64bit) or libEGL.so.1()(64bit))
recommends:
- libwayland-client
- libX11
- libXcursor
- libXi
- libXrandr
- mesa-vulkan-drivers
- xdg-desktop-portal
# Named ai.storyteller.designcraft, not designcraft: the AUR already has designcraft, designcraft-bin and
# designcraft-git, and an AUR helper treats any installed package with an AUR name as its own and
# rebuilds it on the next update. ArtCraft Launcher also uses the bundle id to tell this package
# (which it updates with `pacman -U`) from an AUR build (which it leaves to the AUR helper).
# nfpm has no optdepends for Arch, so the recommends above have no equivalent here.
archlinux:
depends:
- glibc
- gcc-libs
- hicolor-icon-theme
- libxkbcommon
- vulkan-icd-loader
provides:
- designcraft
conflicts:
- designcraft
- designcraft-bin
- designcraft-git
contents:
- src: ${STAGE}/usr/bin/designcraft
dst: /usr/bin/designcraft
file_info: { mode: 0755 }
- src: ${STAGE}/usr/bin/designcraft-cli
dst: /usr/bin/designcraft-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