Benjamin Greiner
4c9606f931
- Update to 2.7.2 ## Improvements with respect to 2.7.1 * Multi-material segmentation improvements * Color change (M600) improvements * Ramping travel improvements * SLA overrides * Windows specific: The cut tool sometimes produces non-manifold meshes. This situation is now detected and the user is advised to use Windows repair algorithm on the resulting objects. ## Bugs fixes with respect to 2.7.1 * Fixed incorrect partial arrange in certain cases. * Fixing arrange issues with aligning to unprintable objects when doing Shift+A. * Fixed arrange which sometimes put the wipe tower slightly out of bed * Fixed UI glitch when setting object dimensions to extremely high values. * Fixed a bug in generation of brim and skirt preview in the preliminary G-code preview (#11821, thanks to @supermerill) * Fixed an issue Ctrl+Shift+Tab shortcut, which incorrectly collapsed sidebar. * Fixed wiggling of Rotate gizmo when moving an object in certain cases. * Fixed missing updated when moving through dropdown items using keyboard arrows. * Improve filtering of special characters on Klipper EXCLUDE_OBJECT labels (#11802, PR#11813 by @jschuh - thank you). * Fixed layer change color dialog opening off screen. * Fixed occasional crash during thumbnail generation for SLA printers. * Fixed slicing issues such as missing infills and similar on multi part models when sliced with object-specific settings. * In SLA mode, it was not possible to use custom file extension (configured in Output Settings). * Fixed incorrect calculation of wipe length in certain cases, leading to shorter wipes than configured. * Fixed various issues and UI glitches in text/SVG embossing. * Fixed missing update when a new printer was added while a physical printer preset was selected. * Scrolling of the window was incorrectly performed when using mouse wheel over a dropdown. * Windows specific: Drop down menus appeared outside of PrusaSlicer and could not be opened again. * When loading an object from a 3MF, the suggestion to rescale the model is not shown, because 3MFs store the information about the correct unit (unlike STL files). * Fixed an incorrect check of supported OpenGL version, which led to a hard crash when OpenGL 3.2 was not available. * When loading a 3MF for MM printer, PrusaSlicer offers to load individual models as parts of a single object. This dialog did not show up for specific geometries. * PrusaSlicer did not start on some Windows Server installations due to a missing DLL (wlanapi.dll). The library is now loaded in runtime and the respective features. * Travels with standard lifts (non-ramping) were incorrectly generated. * With option "Retract on layer change" disabled, there was a retraction missing before the first travel on each layer. * Variable layer height limits were not applied correctly when using multi-extruder printer with different values of min and max layer height. * When z travel speed was set to zero, it was incorrectly exported into the G-code, effectively stopping the print. Instead, regular travel speed should have been used for the z travel. * When Print / Filament / Printer profiles contained different values for the same key (which should normally not happen, providing the profiles are correct), the misplaced keys could have been used instead of the correct ones. * Fixed incorrectly applied retraction in vase mode when ramping travels were enabled. * When using the "No sparse layers" wipe tower, the print head sometimes lowered before travelling to the wipe tower, digging into an object and destroying the print. * Fixed a crash when loading certain AMF files. * When specific extruder was set for the wipe tower and z position has changed in custom toolchange G-code, the z position was not correctly accounted for. OBS-URL: https://build.opensuse.org/request/show/1157758 OBS-URL: https://build.opensuse.org/package/show/science/PrusaSlicer?expand=0&rev=71
181 lines
6.8 KiB
RPMSpec
181 lines
6.8 KiB
RPMSpec
#
|
|
# spec file for package PrusaSlicer
|
|
#
|
|
# Copyright (c) 2024 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
Name: PrusaSlicer
|
|
Version: 2.7.2
|
|
Release: 0
|
|
Summary: G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)
|
|
License: AGPL-3.0-only
|
|
Group: Hardware/Printing
|
|
URL: https://www.prusa3d.com/prusaslicer/
|
|
Source0: https://github.com/prusa3d/PrusaSlicer/archive/version_%{version}.tar.gz#/%{name}-version_%{version}.tar.gz
|
|
# PATCH-FIX-UPSTREAM PrusaSlicer-2.7.1-slic3r-wxWidgets-3.2.4.patch gh#prusa3d/PrusaSlicer#11769
|
|
Patch1: PrusaSlicer-2.7.1-slic3r-wxWidgets-3.2.4.patch
|
|
# PATCH-FIX-OPENSUSE up-occt-version.patch mike.chikov@gmail.com -- install wrapper so into libdir, not bindir
|
|
Patch10: up-occt-version.patch
|
|
# PATCH-FIX-OPENSUSE PrusaSlicer-2.6.0-octoprint-name-fix.patch -- cast lambda expression to same type
|
|
Patch11: PrusaSlicer-2.6.0-octoprint-name-fix.patch
|
|
BuildRequires: blosc-devel
|
|
BuildRequires: cereal-devel
|
|
BuildRequires: cgal-devel >= 5.6
|
|
BuildRequires: cmake
|
|
BuildRequires: eigen3-devel >= 3
|
|
BuildRequires: expat
|
|
BuildRequires: fdupes
|
|
# gcc v8 is required as least for charconv header. version 10 exists on 15.4 and tumbleweed
|
|
%if 0%{?suse_version} >= 1550
|
|
%define gcc_ver %{gcc_version}
|
|
%else
|
|
%define gcc_ver 10
|
|
%endif
|
|
BuildRequires: gcc%gcc_ver-c++
|
|
BuildRequires: gtest >= 1.7
|
|
BuildRequires: libboost_atomic-devel
|
|
BuildRequires: libboost_filesystem-devel
|
|
BuildRequires: libboost_iostreams-devel
|
|
BuildRequires: libboost_locale-devel
|
|
BuildRequires: libboost_log-devel
|
|
BuildRequires: libboost_regex-devel
|
|
BuildRequires: libboost_system-devel
|
|
BuildRequires: libboost_thread-devel
|
|
BuildRequires: libcurl-devel
|
|
BuildRequires: libexpat-devel
|
|
BuildRequires: libjpeg-devel
|
|
BuildRequires: memory-constraints
|
|
BuildRequires: nlopt-devel
|
|
BuildRequires: occt-devel
|
|
BuildRequires: openexr-devel
|
|
BuildRequires: openvdb-devel >= 7.1
|
|
BuildRequires: openvdb-tools
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: tbb-devel
|
|
BuildRequires: update-desktop-files
|
|
BuildRequires: wxWidgets-devel >= 3.2
|
|
# need the fltk fork, see deps/NanoSVG/NanoSVG.cmake
|
|
BuildRequires: nanosvg-devel >= 2022.12.22
|
|
BuildRequires: (cmake(Catch2) >= 2.9 with cmake(Catch2) < 3)
|
|
BuildRequires: cmake(LibBGCode)
|
|
BuildRequires: pkgconfig(dbus-1)
|
|
BuildRequires: pkgconfig(gl)
|
|
BuildRequires: pkgconfig(glew)
|
|
BuildRequires: pkgconfig(glu)
|
|
BuildRequires: pkgconfig(libudev)
|
|
BuildRequires: pkgconfig(qhull_r)
|
|
BuildRequires: pkgconfig(qhullcpp)
|
|
BuildRequires: pkgconfig(wayland-client)
|
|
BuildRequires: pkgconfig(wayland-egl)
|
|
Requires: noto-sans-fonts
|
|
# Cannot allocate memory to build
|
|
ExcludeArch: %{ix86}
|
|
|
|
%description
|
|
PrusaSlicer takes 3D models (STL, OBJ, AMF) and converts them into G-code
|
|
instructions for FFF printers or PNG layers for mSLA 3D printers. It's
|
|
compatible with any modern printer based on the RepRap toolchain, including
|
|
all those based on the Marlin, Prusa, Sprinter and Repetier firmware.
|
|
It also works with Mach3, LinuxCNC and Machinekit controllers.
|
|
|
|
%prep
|
|
%autosetup -p1 -n %{name}-version_%{version}
|
|
%if 0%{?suse_version}
|
|
sed -i 's/UNKNOWN/%{release}-%{?is_opensuse:open}SUSE-%{suse_version}/' version.inc
|
|
%endif
|
|
# this is not prusaslicer specific, space mouse users install it themselves
|
|
rm resources/udev/90-3dconnexion.rules
|
|
# we want to use the system provided expat lib
|
|
sed -i "/add_library(libexpat INTERFACE)/d" CMakeLists.txt
|
|
# adjust the qhull version requirement
|
|
sed -i "s|find_package(Qhull 7.2 REQUIRED)|find_package(Qhull 8.0.2 REQUIRED)|" src/CMakeLists.txt
|
|
# fix qhull link with static lib issue
|
|
sed -i 's#INTERFACE Qhull::qhullcpp#INTERFACE -lqhullcpp#' src/CMakeLists.txt
|
|
# Disable slic3r_jobs_tests.cpp as the test fails sometimes
|
|
sed -i 's|slic3r_jobs_tests.cpp||' tests/slic3rutils/CMakeLists.txt
|
|
|
|
%build
|
|
# The build process really acquires that much memory per job. We are
|
|
# limited by memory not by CPU cores. Using memoryperjob in _constraints cannot
|
|
# provide any workers on some architectures. This is still better than not using
|
|
# parallel building at all.
|
|
# https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.build_job_constraints.html
|
|
# https://en.opensuse.org/openSUSE:Specfile_guidelines#Parallel_make
|
|
%limit_build -m 3072
|
|
export CC=gcc-%gcc_ver CXX=g++-%gcc_ver
|
|
%cmake \
|
|
-DCMAKE_CXX_STANDARD=17 \
|
|
-DSLIC3R_FHS=1 \
|
|
-DOPENVDB_FIND_MODULE_PATH=%{_libdir}/cmake/OpenVDB
|
|
%cmake_build
|
|
|
|
%install
|
|
%cmake_install
|
|
|
|
%suse_update_desktop_file -r PrusaSlicer Graphics 3DGraphics
|
|
%suse_update_desktop_file -r PrusaGcodeviewer Graphics 3DGraphics
|
|
|
|
#remove stray font file
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/fonts
|
|
|
|
# Copied and adapted from Fedora package:
|
|
# https://src.fedoraproject.org/rpms/prusa-slicer
|
|
# Upstream installs the translation source files when they probably shouldn't
|
|
rm %{buildroot}%{_datadir}/%{name}/localization/{PrusaSlicer.pot,list.txt}
|
|
find %{buildroot}%{_datadir}/%{name}/localization/ -name \*.po -delete
|
|
|
|
# Copied and adapted from Fedora package:
|
|
# https://src.fedoraproject.org/rpms/prusa-slicer
|
|
# Handle locale files. The find_lang macro doesn't work because it doesn't
|
|
# understand the directory structure. This copies part of the funtionality of
|
|
# find-lang.sh by:
|
|
# * Getting a listing of all files
|
|
# * removing the buildroot prefix
|
|
# * inserting the proper 'lang' tag
|
|
# * removing everything that doesn't have a lang tag
|
|
# * A list of lang-specific directories is also added
|
|
# The resulting file is included in the files list, where we must be careful to
|
|
# exclude that directory.
|
|
find %{buildroot}%{_datadir}/%{name}/localization -type f -o -type l | sed '
|
|
s:'"%{buildroot}"'::
|
|
s:\(.*/%{name}/localization/\)\([^/_]\+\)\(.*\.mo$\):%%lang(\2) \1\2\3:
|
|
s:^\([^%].*\)::
|
|
s:%lang(C) ::
|
|
/^$/d
|
|
' > lang-files
|
|
find %{buildroot}%{_datadir}/%{name}/localization -type d | sed '
|
|
s:'"%{buildroot}"'::
|
|
s:\(.*\):%dir \1:
|
|
' >> lang-files
|
|
|
|
%fdupes %{buildroot}%{_datadir}
|
|
|
|
%check
|
|
%ctest
|
|
|
|
%files -f lang-files
|
|
%{_bindir}/prusa-slicer
|
|
%{_bindir}/prusa-gcodeviewer
|
|
%{_libdir}/OCCTWrapper.so
|
|
%dir %{_datadir}/%{name}/
|
|
%{_datadir}/%{name}/{icons,models,profiles,shaders,udev,data,shapes}/
|
|
%{_datadir}/icons/hicolor/*/apps/%{name}*.png
|
|
%{_datadir}/applications/PrusaSlicer.desktop
|
|
%{_datadir}/applications/PrusaGcodeviewer.desktop
|
|
%license LICENSE
|
|
%doc README.md doc/
|
|
|
|
%changelog
|