PrusaSlicer/PrusaSlicer.spec

181 lines
6.8 KiB
RPMSpec
Raw Normal View History

#
# spec file for package PrusaSlicer
#
Accepting request 1157758 from home:frank_kunz:branches:science - 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
2024-03-14 08:31:35 +01:00
# 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
Accepting request 1157758 from home:frank_kunz:branches:science - 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
2024-03-14 08:31:35 +01:00
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
Accepting request 1135111 from home:bnavigator:branches:science - Update to 2.7.1 ## Improvements fixed with respect to 2.7.0 * The option Export as binary G-code was removed from Print Settings. Instead, there is a new option in Printer Settings named Supports binary G-code so it can be set at printer level. There is also a new global switch in Preferences->Other, which controls whether binary G-code will be generated for printers which support it. It is therefore easy to turn the feature on or off without doing any changes in profiles (#11734, #11873). * Wipe tower weight was added into G-code metadata so it can be easily displayed in the print statistics on the printer's display. ## Bugs fixed with respect to 2.7.0 * When ramping travels were enabled, sometimes a perimeter was missing at the layer where the spiral starts. * Fixed a crash when selecting embossed text while an SVG tool is opened (#11759). * Helical layer changes could result in out of bed moves (#11754). * Helical layer change was enabled even when there was no retraction on layer change (#11709, #11761). - Release 2.7.0 * This is the stable release of PrusaSlicer 2.7.0, introducing SVG emboss, binary G-codes, ramping travels, support for G2/G3 G-codes, support for Cancel object function and much more. It also fixes many bugs. * Important note for Original Prusa MINI, MK4 and XL owners: The new configuration update of our system profiles will enable binary G-code and G2/G3 features. Users using older firmware need to update to 5.1.0-alpha2 or later or manually turn these features off. On older firmware, new binary G-code is not visible or recognized and the G2/G3 G-codes may not work perfectly. * Travel moves improvements * SVG embossing tool (#6916, #9373) * G2 and G3 G-code support #4352 * Binary G-code * Improved user interface * Custom G-code editor * Cancel object (Marlin, RRF and Klipper) - D PrusaSlicer-2.6.0-wxWidgets-CheckResizerFlags-assert-fix.patch OBS-URL: https://build.opensuse.org/request/show/1135111 OBS-URL: https://build.opensuse.org/package/show/science/PrusaSlicer?expand=0&rev=68
2023-12-29 09:58:57 +01:00
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