mirror of
https://github.com/storytold/designcraft.git
synced 2026-11-06 02:21:51 +00:00
package.sh built its own Arch package with nfpm while the shared release workflow also built one with makepkg, because has-arch defaults to true. Both wrote designcraft-<version>-linux-<arch>.pkg.tar.zst, the draft release merges the release-* artifacts last-writer-wins, and 0.17.0 shipped the nfpm copy, which declared fewer dependencies than the makepkg template. Drop arch from the formats this script builds and remove the archlinux section from nfpm.yaml, so the shared action is the single builder. It names the package after the .desktop bundle id, declares the same provides/conflicts against the AUR packages, and adds the optdepends nfpm could not express.
81 lines
2.9 KiB
YAML
81 lines
2.9 KiB
YAML
# .deb/.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. The Arch package is built by the release workflow's makepkg job.
|
|
#
|
|
# 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. The X11 keyboard module is a separate library from the core
|
|
# xkbcommon one, and winit's X11 backend panics without it, so it is required next to it.
|
|
overrides:
|
|
deb:
|
|
depends:
|
|
- libc6 (>= 2.35)
|
|
- libgcc-s1
|
|
- libxkbcommon0
|
|
- libxkbcommon-x11-0
|
|
- 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)
|
|
- libxkbcommon-x11.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
|
|
|
|
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
|