# .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. Adapted from PhotoCraft's (storytold/photocraft, Apache-2.0). name: solidcraft # Compatibility shim (docs/compatibility.md): releases before the rename were packaged as `solvecraft`. # Installing this package replaces that one (Debian Replaces/Conflicts, set under overrides.deb; # nfpm writes `replaces` as RPM Obsoletes), so `apt install ./solidcraft-….deb` or `dnf install ./solidcraft-….rpm` # upgrades an old install instead of failing on the shared desktop and icon files. replaces: - solvecraft provides: - solvecraft 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: ${SOLIDCRAFT_MAINTAINER} vendor: SolidCraft contributors homepage: https://docs.solidcraft.io/ license: MIT OR Apache-2.0 description: |- Open-source parametric 3D CAD in the style of Fusion Sketches with a constraint solver, a parametric feature timeline, components and joints, sheet metal; STEP, IGES, 3MF, STL and OBJ. Includes solidcraft-cli, a headless command runner and MCP server for AI agents. # 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. overrides: deb: # Debian's rename pattern: Replaces + Conflicts + Provides (docs/compatibility.md). conflicts: - solvecraft 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 # and openSUSE. 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/solidcraft dst: /usr/bin/solidcraft file_info: { mode: 0755 } - src: ${STAGE}/usr/bin/solidcraft-cli dst: /usr/bin/solidcraft-cli file_info: { mode: 0755 } # Compatibility shim (docs/compatibility.md): the old CLI name forwards to solidcraft-cli. - src: ${STAGE}/usr/bin/solvecraft-cli dst: /usr/bin/solvecraft-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