From 4a9b0e7ed08e091dce5a5d4e38710ee81777d112b24a7853eb9a1635829c0ba6 Mon Sep 17 00:00:00 2001 From: Benjamin Greiner Date: Mon, 16 Dec 2024 14:24:15 +0000 Subject: [PATCH] Accepting request 1231393 from home:gladiac:branches:science - Fixed loading STEP files - Added PrusaSlicer-2.8.1-pr13761-fix-occtwrapper.patch - Removed up-occt-version.patch OBS-URL: https://build.opensuse.org/request/show/1231393 OBS-URL: https://build.opensuse.org/package/show/science/PrusaSlicer?expand=0&rev=89 --- .gitattributes | 23 + .gitignore | 1 + PrusaSlicer-2.6.0-octoprint-name-fix.patch | 13 + ...aSlicer-2.7.1-slic3r-wxWidgets-3.2.4.patch | 65 ++ PrusaSlicer-2.8.0-slic3r-includes.patch | 54 ++ PrusaSlicer-2.8.1-pr13609-fix-build.patch | 321 +++++++ ...Slicer-2.8.1-pr13761-fix-occtwrapper.patch | 121 +++ PrusaSlicer-version_2.7.4.tar.gz | 3 + PrusaSlicer-version_2.8.0.tar.gz | 3 + PrusaSlicer-version_2.8.1.tar.gz | 3 + PrusaSlicer.changes | 867 ++++++++++++++++++ PrusaSlicer.spec | 181 ++++ _constraints | 11 + up-occt-version.patch | 28 + 14 files changed, 1694 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 PrusaSlicer-2.6.0-octoprint-name-fix.patch create mode 100644 PrusaSlicer-2.7.1-slic3r-wxWidgets-3.2.4.patch create mode 100644 PrusaSlicer-2.8.0-slic3r-includes.patch create mode 100644 PrusaSlicer-2.8.1-pr13609-fix-build.patch create mode 100644 PrusaSlicer-2.8.1-pr13761-fix-occtwrapper.patch create mode 100644 PrusaSlicer-version_2.7.4.tar.gz create mode 100644 PrusaSlicer-version_2.8.0.tar.gz create mode 100644 PrusaSlicer-version_2.8.1.tar.gz create mode 100644 PrusaSlicer.changes create mode 100644 PrusaSlicer.spec create mode 100644 _constraints create mode 100644 up-occt-version.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/PrusaSlicer-2.6.0-octoprint-name-fix.patch b/PrusaSlicer-2.6.0-octoprint-name-fix.patch new file mode 100644 index 0000000..09ebe2a --- /dev/null +++ b/PrusaSlicer-2.6.0-octoprint-name-fix.patch @@ -0,0 +1,13 @@ +Index: PrusaSlicer-version_2.6.1/src/slic3r/Utils/OctoPrint.cpp +=================================================================== +--- PrusaSlicer-version_2.6.1.orig/src/slic3r/Utils/OctoPrint.cpp ++++ PrusaSlicer-version_2.6.1/src/slic3r/Utils/OctoPrint.cpp +@@ -751,7 +751,7 @@ bool PrusaLink::get_storage(wxArrayStrin + if (path && (!available || *available)) { + StorageInfo si; + si.path = boost::nowide::widen(*path); +- si.name = name ? boost::nowide::widen(*name) : wxString(); ++ si.name = name ? wxString(boost::nowide::widen(*name)) : wxString(); + // If read_only is missing, assume it is NOT read only. + // si.read_only = read_only ? *read_only : false; // version without "ro" + si.read_only = (read_only ? *read_only : (ro ? *ro : false)); diff --git a/PrusaSlicer-2.7.1-slic3r-wxWidgets-3.2.4.patch b/PrusaSlicer-2.7.1-slic3r-wxWidgets-3.2.4.patch new file mode 100644 index 0000000..a212f3a --- /dev/null +++ b/PrusaSlicer-2.7.1-slic3r-wxWidgets-3.2.4.patch @@ -0,0 +1,65 @@ +From f67a877d583eba5472003f0ea4df3f7420d70734 Mon Sep 17 00:00:00 2001 +From: Gregor Riepl +Date: Mon, 27 Nov 2023 13:01:55 +0100 +Subject: [PATCH] Make initializers explicit to avoid ambiguous wxArrayString + overloads + +--- + src/slic3r/GUI/PhysicalPrinterDialog.cpp | 2 +- + src/slic3r/GUI/Plater.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +Index: PrusaSlicer-version_2.8.0/src/slic3r/GUI/PhysicalPrinterDialog.cpp +=================================================================== +--- PrusaSlicer-version_2.8.0.orig/src/slic3r/GUI/PhysicalPrinterDialog.cpp ++++ PrusaSlicer-version_2.8.0/src/slic3r/GUI/PhysicalPrinterDialog.cpp +@@ -606,7 +606,7 @@ void PhysicalPrinterDialog::build_printh + // Always fill in the "printhost_port" combo box from the config and select it. + { + Choice* choice = dynamic_cast(m_optgroup->get_field("printhost_port")); +- choice->set_values({ m_config->opt_string("printhost_port") }); ++ choice->set_values(std::vector({ m_config->opt_string("printhost_port") })); + choice->set_selection(); + } + +Index: PrusaSlicer-version_2.8.0/src/slic3r/GUI/Plater.cpp +=================================================================== +--- PrusaSlicer-version_2.8.0.orig/src/slic3r/GUI/Plater.cpp ++++ PrusaSlicer-version_2.8.0/src/slic3r/GUI/Plater.cpp +@@ -4048,7 +4048,7 @@ void Plater::load_project(const wxString + + p->reset(); + +- if (! load_files({ into_path(filename) }).empty()) { ++ if (! load_files(std::vector({ into_path(filename) })).empty()) { + // At least one file was loaded. + p->set_project_filename(filename); + // Save the names of active presets and project specific config into ProjectDirtyStateManager. + +=================================================================== +More of the same: +=================================================================== +--- a/src/slic3r/GUI/PrintHostDialogs.cpp ++++ b/src/slic3r/GUI/PrintHostDialogs.cpp +@@ -467,9 +467,7 @@ + wxVariant nm, hst; + job_list->GetValue(nm, evt.job_id, COL_FILENAME); + job_list->GetValue(hst, evt.job_id, COL_HOST); +- const wchar_t * nm_str = nm.GetString(); +- const wchar_t * hst_str = hst.GetString(); +- wxGetApp().notification_manager()->set_upload_job_notification_percentage(evt.job_id + 1, into_u8(nm_str), into_u8(hst_str), evt.progress / 100.f); ++ wxGetApp().notification_manager()->set_upload_job_notification_percentage(evt.job_id + 1, into_u8(nm.GetString()), into_u8(hst.GetString()), evt.progress / 100.f); + } + } + +--- a/src/slic3r/Utils/PrusaConnect.cpp ++++ b/src/slic3r/Utils/PrusaConnect.cpp +@@ -290,7 +290,7 @@ + if (path && (!available || *available)) { + StorageInfo si; + si.path = boost::nowide::widen(*path); +- si.name = name ? boost::nowide::widen(*name) : wxString(); ++ si.name = name ? boost::nowide::widen(*name) : std::wstring(); + // If read_only is missing, assume it is NOT read only. + // si.read_only = read_only ? *read_only : false; // version without "ro" + si.read_only = (read_only ? *read_only : (ro ? *ro : false)); diff --git a/PrusaSlicer-2.8.0-slic3r-includes.patch b/PrusaSlicer-2.8.0-slic3r-includes.patch new file mode 100644 index 0000000..a7a54a6 --- /dev/null +++ b/PrusaSlicer-2.8.0-slic3r-includes.patch @@ -0,0 +1,54 @@ +From ac3e07ee03b439932b9f7b00849ca202602f8901 Mon Sep 17 00:00:00 2001 +From: randomtechguy <50642148+Rose-David@users.noreply.github.com> +Date: Fri, 12 Jul 2024 17:24:16 -0400 +Subject: [PATCH 1/3] Update CMakeLists.txt to fix linux compile error + +--- + src/slic3r/CMakeLists.txt | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Index: PrusaSlicer-version_2.8.0/src/slic3r/CMakeLists.txt +=================================================================== +--- PrusaSlicer-version_2.8.0.orig/src/slic3r/CMakeLists.txt ++++ PrusaSlicer-version_2.8.0/src/slic3r/CMakeLists.txt +@@ -376,6 +376,7 @@ set(SLIC3R_GUI_SOURCES + ) + + find_package(NanoSVG REQUIRED) ++find_package(OpenSSL REQUIRED) + + if (APPLE) + list(APPEND SLIC3R_GUI_SOURCES +@@ -404,7 +405,7 @@ endforeach() + + encoding_check(libslic3r_gui) + +-target_link_libraries(libslic3r_gui libslic3r avrdude libcereal imgui libvgcode GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES} NanoSVG::nanosvg NanoSVG::nanosvgrast) ++target_link_libraries(libslic3r_gui libslic3r avrdude libcereal imgui libvgcode GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES} NanoSVG::nanosvg NanoSVG::nanosvgrast OpenSSL::SSL OpenSSL::Crypto) + + if (MSVC) + target_link_libraries(libslic3r_gui Setupapi.lib) +Index: PrusaSlicer-version_2.8.0/src/slic3r/Config/Version.cpp +=================================================================== +--- PrusaSlicer-version_2.8.0.orig/src/slic3r/Config/Version.cpp ++++ PrusaSlicer-version_2.8.0/src/slic3r/Config/Version.cpp +@@ -7,6 +7,7 @@ + #include + + #include ++#include + #include + + #include "libslic3r/libslic3r.h" +Index: PrusaSlicer-version_2.8.0/src/slic3r/GUI/UserAccountCommunication.cpp +=================================================================== +--- PrusaSlicer-version_2.8.0.orig/src/slic3r/GUI/UserAccountCommunication.cpp ++++ PrusaSlicer-version_2.8.0/src/slic3r/GUI/UserAccountCommunication.cpp +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include + #include + diff --git a/PrusaSlicer-2.8.1-pr13609-fix-build.patch b/PrusaSlicer-2.8.1-pr13609-fix-build.patch new file mode 100644 index 0000000..9bb4911 --- /dev/null +++ b/PrusaSlicer-2.8.1-pr13609-fix-build.patch @@ -0,0 +1,321 @@ +From bf17924d6582b8a7baca5a58e59c604f3288cd19 Mon Sep 17 00:00:00 2001 +From: randomtechguy <50642148+Rose-David@users.noreply.github.com> +Date: Fri, 12 Jul 2024 17:24:16 -0400 +Subject: [PATCH 1/5] Update CMakeLists.txt to fix linux compile error + +--- + src/slic3r/CMakeLists.txt | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt +index 82e91bb10b..b20583a5ba 100644 +--- a/src/slic3r/CMakeLists.txt ++++ b/src/slic3r/CMakeLists.txt +@@ -391,6 +391,7 @@ set(SLIC3R_GUI_SOURCES + ) + + find_package(NanoSVG REQUIRED) ++find_package(OpenSSL REQUIRED) + + if (APPLE) + list(APPEND SLIC3R_GUI_SOURCES +@@ -447,6 +448,8 @@ target_link_libraries( + NanoSVG::nanosvgrast + stb_dxt + fastfloat ++ OpenSSL::SSL ++ OpenSSL::Crypto + ) + + if (MSVC) + +From da3587cea3c9b51f97f41e3eb09e4479d3b0492f Mon Sep 17 00:00:00 2001 +From: Jonne Mickelin +Date: Wed, 20 Nov 2024 16:05:44 +0100 +Subject: [PATCH 2/5] Update cmake/FindEigen3 to the one bundled with version + 3.4.0 + +This solves the build error with the missing `Eigen3::Eigen` build +target. + +Partially fixes #13608 +--- + cmake/modules/FindEigen3.cmake | 71 ++++++++++++++++++++++------------ + 1 file changed, 46 insertions(+), 25 deletions(-) + +diff --git a/cmake/modules/FindEigen3.cmake b/cmake/modules/FindEigen3.cmake +index 1da37619ef..2dbed58384 100644 +--- a/cmake/modules/FindEigen3.cmake ++++ b/cmake/modules/FindEigen3.cmake +@@ -9,6 +9,16 @@ + # EIGEN3_FOUND - system has eigen lib with correct version + # EIGEN3_INCLUDE_DIR - the eigen include directory + # EIGEN3_VERSION - eigen version ++# ++# and the following imported target: ++# ++# Eigen3::Eigen - The header-only Eigen library ++# ++# This module reads hints about search locations from ++# the following environment variables: ++# ++# EIGEN3_ROOT ++# EIGEN3_ROOT_DIR + + # Copyright (c) 2006, 2007 Montel Laurent, + # Copyright (c) 2008, 2009 Gael Guennebaud, +@@ -18,16 +28,16 @@ + if(NOT Eigen3_FIND_VERSION) + if(NOT Eigen3_FIND_VERSION_MAJOR) + set(Eigen3_FIND_VERSION_MAJOR 2) +- endif(NOT Eigen3_FIND_VERSION_MAJOR) ++ endif() + if(NOT Eigen3_FIND_VERSION_MINOR) + set(Eigen3_FIND_VERSION_MINOR 91) +- endif(NOT Eigen3_FIND_VERSION_MINOR) ++ endif() + if(NOT Eigen3_FIND_VERSION_PATCH) + set(Eigen3_FIND_VERSION_PATCH 0) +- endif(NOT Eigen3_FIND_VERSION_PATCH) ++ endif() + + set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") +-endif(NOT Eigen3_FIND_VERSION) ++endif() + + macro(_eigen3_check_version) + file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) +@@ -42,45 +52,56 @@ macro(_eigen3_check_version) + set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) + if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + set(EIGEN3_VERSION_OK FALSE) +- else(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) ++ else() + set(EIGEN3_VERSION_OK TRUE) +- endif(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) ++ endif() + + if(NOT EIGEN3_VERSION_OK) + + message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, " + "but at least version ${Eigen3_FIND_VERSION} is required") +- endif(NOT EIGEN3_VERSION_OK) +-endmacro(_eigen3_check_version) ++ endif() ++endmacro() + + if (EIGEN3_INCLUDE_DIR) + + # in cache already + _eigen3_check_version() + set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) +- +-else (EIGEN3_INCLUDE_DIR) +- +- # specific additional paths for some OS +- if (WIN32) +- set(EIGEN_ADDITIONAL_SEARCH_PATHS ${EIGEN_ADDITIONAL_SEARCH_PATHS} "C:/Program Files/Eigen/include" "C:/Program Files (x86)/Eigen/include") +- endif(WIN32) +- +- find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library +- PATHS +- ${CMAKE_INSTALL_PREFIX}/include +- ${EIGEN_ADDITIONAL_SEARCH_PATHS} +- ${KDE4_INCLUDE_DIR} +- PATH_SUFFIXES eigen3 eigen +- ) ++ set(Eigen3_FOUND ${EIGEN3_VERSION_OK}) ++ ++else () ++ ++ # search first if an Eigen3Config.cmake is available in the system, ++ # if successful this would set EIGEN3_INCLUDE_DIR and the rest of ++ # the script will work as usual ++ find_package(Eigen3 ${Eigen3_FIND_VERSION} NO_MODULE QUIET) ++ ++ if(NOT EIGEN3_INCLUDE_DIR) ++ find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library ++ HINTS ++ ENV EIGEN3_ROOT ++ ENV EIGEN3_ROOT_DIR ++ PATHS ++ ${CMAKE_INSTALL_PREFIX}/include ++ ${KDE4_INCLUDE_DIR} ++ PATH_SUFFIXES eigen3 eigen ++ ) ++ endif() + + if(EIGEN3_INCLUDE_DIR) + _eigen3_check_version() +- endif(EIGEN3_INCLUDE_DIR) ++ endif() + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) + + mark_as_advanced(EIGEN3_INCLUDE_DIR) + +-endif(EIGEN3_INCLUDE_DIR) ++endif() ++ ++if(EIGEN3_FOUND AND NOT TARGET Eigen3::Eigen) ++ add_library(Eigen3::Eigen INTERFACE IMPORTED) ++ set_target_properties(Eigen3::Eigen PROPERTIES ++ INTERFACE_INCLUDE_DIRECTORIES "${EIGEN3_INCLUDE_DIR}") ++endif() + +From 5c1fd3e489da10a6fb828681b2ee777736b45a61 Mon Sep 17 00:00:00 2001 +From: Jonne Mickelin +Date: Wed, 20 Nov 2024 16:11:11 +0100 +Subject: [PATCH 3/5] Replace FindDbus.cmake with the upstream module + +This solves the build error with missing headers. + +Partially fixes #13608. +--- + CMakeLists.txt | 2 +- + cmake/modules/FindDBus.cmake | 59 ------------------------------------ + src/slic3r/CMakeLists.txt | 2 +- + 3 files changed, 2 insertions(+), 61 deletions(-) + delete mode 100644 cmake/modules/FindDBus.cmake + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 31cb4c0ff3..42a9302a0d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -246,7 +246,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_package(Threads REQUIRED) + +- find_package(DBus REQUIRED) ++ find_package(DBus1 REQUIRED) + endif() + + if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUXX) +diff --git a/cmake/modules/FindDBus.cmake b/cmake/modules/FindDBus.cmake +deleted file mode 100644 +index d54d4e516c..0000000000 +--- a/cmake/modules/FindDBus.cmake ++++ /dev/null +@@ -1,59 +0,0 @@ +-# - Try to find DBus +-# Once done, this will define +-# +-# DBUS_FOUND - system has DBus +-# DBUS_INCLUDE_DIRS - the DBus include directories +-# DBUS_LIBRARIES - link these to use DBus +-# +-# Copyright (C) 2012 Raphael Kubo da Costa +-# +-# Redistribution and use in source and binary forms, with or without +-# modification, are permitted provided that the following conditions +-# are met: +-# 1. Redistributions of source code must retain the above copyright +-# notice, this list of conditions and the following disclaimer. +-# 2. Redistributions in binary form must reproduce the above copyright +-# notice, this list of conditions and the following disclaimer in the +-# documentation and/or other materials provided with the distribution. +-# +-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS +-# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS +-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- +-FIND_PACKAGE(PkgConfig) +-PKG_CHECK_MODULES(PC_DBUS QUIET dbus-1) +- +-FIND_LIBRARY(DBUS_LIBRARIES +- NAMES dbus-1 +- HINTS ${PC_DBUS_LIBDIR} +- ${PC_DBUS_LIBRARY_DIRS} +-) +- +-FIND_PATH(DBUS_INCLUDE_DIR +- NAMES dbus/dbus.h +- HINTS ${PC_DBUS_INCLUDEDIR} +- ${PC_DBUS_INCLUDE_DIRS} +-) +- +-GET_FILENAME_COMPONENT(_DBUS_LIBRARY_DIR ${DBUS_LIBRARIES} PATH) +-FIND_PATH(DBUS_ARCH_INCLUDE_DIR +- NAMES dbus/dbus-arch-deps.h +- HINTS ${PC_DBUS_INCLUDEDIR} +- ${PC_DBUS_INCLUDE_DIRS} +- ${_DBUS_LIBRARY_DIR} +- ${DBUS_INCLUDE_DIR} +- PATH_SUFFIXES include +-) +- +-SET(DBUS_INCLUDE_DIRS ${DBUS_INCLUDE_DIR} ${DBUS_ARCH_INCLUDE_DIR}) +- +-INCLUDE(FindPackageHandleStandardArgs) +-FIND_PACKAGE_HANDLE_STANDARD_ARGS(DBus REQUIRED_VARS DBUS_INCLUDE_DIRS DBUS_LIBRARIES) +\ No newline at end of file +diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt +index b20583a5ba..d1ce7b5b08 100644 +--- a/src/slic3r/CMakeLists.txt ++++ b/src/slic3r/CMakeLists.txt +@@ -455,7 +455,7 @@ target_link_libraries( + if (MSVC) + target_link_libraries(libslic3r_gui PUBLIC Setupapi.lib) + elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux") +- target_link_libraries(libslic3r_gui PUBLIC ${DBUS_LIBRARIES}) ++ target_link_libraries(libslic3r_gui PUBLIC ${DBus1_LIBRARIES}) + elseif (APPLE) + target_link_libraries(libslic3r_gui PUBLIC ${DISKARBITRATION_LIBRARY} ${COREWLAN_LIBRARY}) + endif() + +From f7a25cae1820444f4e999b429598ca477a35ccb8 Mon Sep 17 00:00:00 2001 +From: Jonne Mickelin +Date: Wed, 20 Nov 2024 16:14:07 +0100 +Subject: [PATCH 4/5] Link boost_headeronly in slic3r and libslic3r + +This solves the linker error about missing `boost::log` symbols. + +Fixes #13608. +--- + src/libslic3r/CMakeLists.txt | 3 ++- + src/slic3r/CMakeLists.txt | 1 + + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt +index ea669ee30c..d80b17a0bc 100644 +--- a/src/libslic3r/CMakeLists.txt ++++ b/src/libslic3r/CMakeLists.txt +@@ -524,7 +524,7 @@ cmake_policy(SET CMP0011 NEW) + find_package(CGAL REQUIRED) + cmake_policy(POP) + +-add_library(libslic3r_cgal STATIC ++add_library(libslic3r_cgal STATIC + CutSurface.hpp CutSurface.cpp + Geometry/VoronoiUtilsCgal.hpp Geometry/VoronoiUtilsCgal.cpp + IntersectionPoints.hpp IntersectionPoints.cpp +@@ -596,6 +596,7 @@ target_link_libraries(libslic3r PUBLIC + libigl + agg + ankerl ++ boost_headeronly + ) + + if (APPLE) +diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt +index d1ce7b5b08..27c226120d 100644 +--- a/src/slic3r/CMakeLists.txt ++++ b/src/slic3r/CMakeLists.txt +@@ -450,6 +450,7 @@ target_link_libraries( + fastfloat + OpenSSL::SSL + OpenSSL::Crypto ++ boost_headeronly + ) + + if (MSVC) + diff --git a/PrusaSlicer-2.8.1-pr13761-fix-occtwrapper.patch b/PrusaSlicer-2.8.1-pr13761-fix-occtwrapper.patch new file mode 100644 index 0000000..e0258e8 --- /dev/null +++ b/PrusaSlicer-2.8.1-pr13761-fix-occtwrapper.patch @@ -0,0 +1,121 @@ +From db3232171448d68ed7a206c9683b5aa968181e22 Mon Sep 17 00:00:00 2001 +From: Andreas Schneider +Date: Sun, 15 Dec 2024 10:36:34 +0100 +Subject: [PATCH 1/2] Install OCCTWrapper into libdir on Linux + +The FHS says that libraries should be installed in the library +directory on Linux. +--- + src/libslic3r/Format/STEP.cpp | 6 +++--- + src/occt_wrapper/CMakeLists.txt | 7 +++++-- + 2 files changed, 8 insertions(+), 5 deletions(-) + +diff --git a/src/libslic3r/Format/STEP.cpp b/src/libslic3r/Format/STEP.cpp +index c2761e07c04..d6bf6c26dac 100644 +--- a/src/libslic3r/Format/STEP.cpp ++++ b/src/libslic3r/Format/STEP.cpp +@@ -39,8 +39,8 @@ LoadStepFn get_load_step_fn() + #endif + + if (!load_step_fn) { +- auto libpath = boost::dll::program_location().parent_path(); + #ifdef _WIN32 ++ auto libpath = boost::dll::program_location().parent_path(); + libpath /= "OCCTWrapper.dll"; + HMODULE module = LoadLibraryW(libpath.wstring().c_str()); + if (module == NULL) +@@ -61,8 +61,8 @@ LoadStepFn get_load_step_fn() + #elif __APPLE__ + load_step_fn = &load_step_internal; + #else +- libpath /= "OCCTWrapper.so"; +- void *plugin_ptr = dlopen(libpath.c_str(), RTLD_NOW | RTLD_GLOBAL); ++ // This is installed into /usr/lib(64)/ and dlopen will search there. ++ void *plugin_ptr = dlopen("OCCTWrapper.so", RTLD_NOW | RTLD_GLOBAL); + + if (plugin_ptr) { + load_step_fn = reinterpret_cast(dlsym(plugin_ptr, fn_name)); +diff --git a/src/occt_wrapper/CMakeLists.txt b/src/occt_wrapper/CMakeLists.txt +index f6df6e7a605..f156516dd28 100644 +--- a/src/occt_wrapper/CMakeLists.txt ++++ b/src/occt_wrapper/CMakeLists.txt +@@ -59,5 +59,8 @@ target_link_libraries(OCCTWrapper libslic3r admesh) + + include(GNUInstallDirs) + +-install(TARGETS OCCTWrapper DESTINATION "${CMAKE_INSTALL_BINDIR}") +- ++if (WIN32 OR APPLE) ++ install(TARGETS OCCTWrapper DESTINATION "${CMAKE_INSTALL_BINDIR}") ++else() ++ install(TARGETS OCCTWrapper DESTINATION "${CMAKE_INSTALL_LIBDIR}") ++endif() + +From 4fa91caa73b66827c434e5d67e2f090d8bc71063 Mon Sep 17 00:00:00 2001 +From: Andreas Schneider +Date: Sun, 15 Dec 2024 10:49:43 +0100 +Subject: [PATCH 2/2] Bump OpenCASCADE requirement and implement version check + +This implements a saner version check. + +We only have to link against TKDESTEP. The target has all the needed +dependencies set. +--- + src/occt_wrapper/CMakeLists.txt | 42 ++++++++++++--------------------- + 1 file changed, 15 insertions(+), 27 deletions(-) + +diff --git a/src/occt_wrapper/CMakeLists.txt b/src/occt_wrapper/CMakeLists.txt +index f156516dd28..d10fd23407f 100644 +--- a/src/occt_wrapper/CMakeLists.txt ++++ b/src/occt_wrapper/CMakeLists.txt +@@ -19,35 +19,23 @@ include(GenerateExportHeader) + + generate_export_header(OCCTWrapper) + +-find_package(OpenCASCADE 7.6.1 REQUIRED) ++find_package(OpenCASCADE REQUIRED) ++# OpenCASCADE has an exact version match even if you don't specify the EXACT ++# keyword in the find_package(). So lets implement it on our own. ++set(OPENCASCADE_MODULE_VERSION ++ "${OpenCASCADE_MAJOR_VERSION}.${OpenCASCADE_MINOR_VERSION}.${OpenCASCADE_MAINTENANCE_VERSION}") ++set(OPENCASCADE_REQUIRED_VERSION "7.8.0") ++if (${OPENCASCADE_MODULE_VERSION} VERSION_LESS ${OPENCASCADE_REQUIRED_VERSION}) ++ message( ++ FATAL_ERROR ++ "Coun't find a compatible OpenCASCADE version - " ++ "required: ${OPENCASCADE_REQUIRED_VERSION}, found: " ++ "${OPENCASCADE_MODULE_VERSION}" ++ ) ++endif() + + set(OCCT_LIBS +- TKXDESTEP +- TKSTEP +- TKSTEP209 +- TKSTEPAttr +- TKSTEPBase +- TKXCAF +- TKXSBase +- TKVCAF +- TKCAF +- TKLCAF +- TKCDF +- TKV3d +- TKService +- TKMesh +- TKBO +- TKPrim +- TKHLR +- TKShHealing +- TKTopAlgo +- TKGeomAlgo +- TKBRep +- TKGeomBase +- TKG3d +- TKG2d +- TKMath +- TKernel ++ TKDESTEP + ) + + slic3r_remap_configs("${OCCT_LIBS}" RelWithDebInfo Release) diff --git a/PrusaSlicer-version_2.7.4.tar.gz b/PrusaSlicer-version_2.7.4.tar.gz new file mode 100644 index 0000000..1616775 --- /dev/null +++ b/PrusaSlicer-version_2.7.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6370a9593aeac5c56543e66d167ab5fd053df55b9376392c2d6184eb0bf65fc8 +size 65396083 diff --git a/PrusaSlicer-version_2.8.0.tar.gz b/PrusaSlicer-version_2.8.0.tar.gz new file mode 100644 index 0000000..7fc4d33 --- /dev/null +++ b/PrusaSlicer-version_2.8.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58d484f85b34d83026f8220bab983f855fbcd72767d0887f21f5cc382e5b19ab +size 69806919 diff --git a/PrusaSlicer-version_2.8.1.tar.gz b/PrusaSlicer-version_2.8.1.tar.gz new file mode 100644 index 0000000..71df7f5 --- /dev/null +++ b/PrusaSlicer-version_2.8.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f71033dd4e9fdd8e5ac7b5be5803d0d6d09ec0fd87de92b152b3c6bbae04c103 +size 69409077 diff --git a/PrusaSlicer.changes b/PrusaSlicer.changes new file mode 100644 index 0000000..889493b --- /dev/null +++ b/PrusaSlicer.changes @@ -0,0 +1,867 @@ +------------------------------------------------------------------- +Sun Dec 15 11:12:17 UTC 2024 - Andreas Schneider + +- Fixed loading STEP files +- Added PrusaSlicer-2.8.1-pr13761-fix-occtwrapper.patch +- Removed up-occt-version.patch + +------------------------------------------------------------------- +Sun Dec 8 16:40:40 UTC 2024 - Ben Greiner + +- Changelog for 2.8.1 + * When using the wipe tower with "No sparse layers" option + enabled, there would still be travels to the wipe tower + location even for the skipped layers. This is a regression + introduced in 2.8.1-rc1 (#13384). + * A warning about inconsistent color profiles in PNGs used as + Prusa Account avatar is now silently ignored (#12920). + ## Improvements with respect to 2.8.0 + * Based on the feedback received after 2.8.0 release, the menu + bar was reinstated and the menu no longer hides under a button. + Thanks everyone for the feedback, it was very helpful and it + will be taken into consideration during possible UI-related + decisions in the future. #12943 + * When logging-in with the PrusaAccount using third party + authorization (Google, Apple, Facebook), an external browser + window is opened so the user is not forced to enter their + credentials into windows created by PrusaSlicer. + * The built-in web engine no longer remembers the user after + logout. + * There are two new parameters: Filaments->Advanced->Abrasive + material and Printers->Extruder->High flow nozzle. Both flags + will be used to check whether a sliced G-code is compatible + with the given printer (abrasive material requires hardened + nozzle) and also to ensure that "Set as current" function in + PrusaSlicer-embedded Prusa Connect will select the suitable + profile for the given configuration. + * Note that this feature is supported since MINI/MK4/XL firmware + version 6.2.0-alpha1, and that the implementation in Prusa + Connect is not completely finished yet, meaning that the dialog + where printer is selected does not use this information - it + will later start working without the need to download a new + slicer version. + * Automatic orientation of bridges has been improved. Issues with + unanchored bridges caused by inconvenient choice of their angle + should now occur less frequently, although there is still a + large class of scenarios where the solution is suboptimal. + * The output of --query-printer-models command line option was + extended to contain bed shape and dimensions. Note that custom + bed shapes are currently not supported. + * The 'new version available' notification can now be used to + direct the user to our website, instead of just downloading the + executable. As of now, we release two different Linux + AppImages, so the user needs to be able to choose which one + they want to download. + * A new infill type called Zig-zag was created. It behaves the + same as Rectilinear, except that the pattern is aligned between + layers (Rectilinear is optimized for short travels, which leads + to inconsistencies). The new infill may thus take slightly + longer to print because of that, although the effect will be + negligible in most prints. It is possible that Rectilinear and + Zig-zag will be merged into a single infill type in one of the + upcoming releases. #12613 + ## Bugs fixed with respect to 2.8.0 + * General improvement of Prusa Connect / PrusaAccount session + stability. There were scenarios which led to uncommanded + logouts from PrusaAccount, some resulting in partially blank + Prusa Connect screen and requiring application restart to fix. + The problems occurred after being logged on for a long time, + after waking the PC up from sleep, or when internet connection + was unstable. + * Fixed missing G-code preview on setups using older GPUs + (#12908). + * Some settings were not applied when overridden per object + (#12916). + * Fixed adding SVGs as parts/modifiers. This was broken in 2.8.0 + (#12915). + * Fixed UI glitch resulting in disappearing text in edit boxes + after editing (#12932). + * Fixed incorrect capture of keyboard input, which led to some + keys being ignored (#13043). + * Physical printer configured to use username/password + authentication no longer asks the user for the credentials when + opening the Physical Printer page (#12921, #12933). + * Notification informing about the user having logged in into + PrusaAccount occasionally showed even when the user was in fact + logged in for a long time already (#12963, #13166). + * Object shells incorrectly stayed visible after switching from + FFF to SLA and back. + * Fixed rotation slider in SVG tool when "Use surface" option was + active (it incorrectly reverted to original position when + released). + * Changing Dynamic overhang speeds settings did not trigger + G-code regeneration as is should have. + * Fixed loading of specific OBJ files (#12157). + * Fixed a crash when scaling to fit in specific cases (circular + bed and objects with parts). + * Fixed an infinite loop during infill generation stage occurring + in rare cases (#11426). + * 'Export Plate as STL/OBJ Including Supports' no longer exports + non-printable objects. + * Fixed zero velocity G-code commands when the pressure equalizer + was combined with spiral vase mode. This bugfix was ported from + OrcaSlicer. Thanks to @Noisyfox, @SoftFever and everyone + involved. + * Fixed incorrect Color Changes placement after reslicing in + certain cases (#13008). + * Reduced number of emitted M106 G-codes when dynamic fan speed + on overhangs is enabled. Too many commands were generated even + when the fan speed barely changed or did not change at all. + #11981, #11856 + * Fixed missing update when adding Color Change with supports + enabled. + * Fixed crash when loading specific 3MFs containing Color Changes + (#13038). + * Adaptive layer height feature did not work when Z shrinkage + compensation was used. + * Fixed unexpected autoselection of SLA printer in Configuration + Wizard in certain cases (#13058). + * Fixed couple of usability issues with the vertical slider in + preview (hovered ticks selection and reaction to mouse wheel) + (#12944). + * Fixed unexpected deceleration on overhangs with dynamic + overhangs speed enabled. + * Line infill did not generate at all when maximum anchor length + was set to zero. + * When seam position was set to Random, the algorithm would + occasionally place the seam on a bridging perimeter. + * Fixed erratic placement of seams occassionally happening with + specific object geometry. + * Fixed a problem in STEP file loading, which resulted in errors + in the geometry of the loaded model (#12271, #12122). + * Using certain fonts for the text embossing led to project files + which PrusaSlicer was not able to open anymore (#13123). + * Custom G-codes are not allowed to contain certain keywords + which PrusaSlicer uses for internal purposes. The check that + these keywords are not present was not working in the previous + version. It is now fixed. + * Fixed artifacts sometimes appearing in the "Actual speed" + preview. The artifacts were a result of long-existing bug in + the G-code processor, the "Actual speed" preview just made them + visible. The bug could have led to incorrect time estimates for + specific G-codes. + * Fixed three distinct crashes in Configuration Wizard occurring + after a specific sequence of steps. + * Fixed a long-existing bug in the cooling logic, which resulted + in zero or possibly negative extrusion commands in very rare + cases. + * Downloading from Printables did not work when the download + folder contained non-ASCII characters. + * Fixed selection of print host type in Physical Printer dialog. + PrusaLink was missing in the list for several printers which + actually support it. This also caused several other glitches + (#13286). + * The Connect status dots in the Printer Settings dropdown did + not show for SLA printers. + * Custom printer profile created in Config Wizard could be saved + under a name clashing with a system profile name. + * "Rename preset" button was inadvertently not shown in the UI + when physical printer profile was selected. + * Number of toolchanges did not show in the "Sliced info" box + when wipe tower was disabled (#6832). +- Replace PrusaSlicer-2.8.1-fix-build.patch with + PrusaSlicer-2.8.1-pr13609-fix-build.patch and remove unstable + (because not merged yet) URL from Source tag. + gh#prusa3d/PrusaSlicer#13609 +- Remove update-desktop-files + +------------------------------------------------------------------- +Sun Dec 8 08:57:27 UTC 2024 - Andreas Schneider + +- Update to version 2.8.1 + https://github.com/prusa3d/PrusaSlicer/releases/tag/version_2.8.1 +- Removed PrusaSlicer-2.8.0-slic3r-includes.patch +- Added PrusaSlicer-2.8.1-fix-build.patch +- Updated up-occt-version.patch + +------------------------------------------------------------------- +Fri Sep 13 19:22:26 UTC 2024 - Ben Greiner + +- Remove quadmath workaround for gcc14 with boost error: + fixed by boost 1.86 (see boo#1225861) + +------------------------------------------------------------------- +Tue Sep 3 12:51:07 UTC 2024 - Guillaume GARDET + +- Do not require libquadmath-devel on aarch64 since it does not + exist on this arch + +------------------------------------------------------------------- +Thu Aug 29 16:20:17 UTC 2024 - Ben Greiner + +- Update to 2.8.0 + * Prusa Connect integration + * seam improvements + * updated UI + * new G-code Viewer + * improved profile updating system + * many more improvements and bugfixes +- Must move to wxGTK3: we have no wxWebView in wxWidgets. Unfortunately + this disables wayland support: + https://github.com/prusa3d/PrusaSlicer/blob/version_2.8.0/src/PrusaSlicer.cpp#L88-L93 +- Add PrusaSlicer-2.8.0-slic3r-includes.patch + * gh#prusa3d/PrusaSlicer#13080 + +------------------------------------------------------------------- +Fri Apr 26 07:16:48 UTC 2024 - Ben Greiner + +- Don't include stray filesystem/convenience.hpp removed in + boost 1.85 + +------------------------------------------------------------------- +Thu Apr 25 13:54:10 UTC 2024 - Ben Greiner + +- Update to 2.7.4 + * Objects from 3MFs generated by BambuStudio now retain + multimaterial painting when loaded. BambuStudio saves the data + under a changed name, but because both the location and meaning + are the same, PrusaSlicer now tries to load the data under the + new name when it fails to find the attribute that PrusaSlicer + has always used. #12502 + * Fix: Downloading files from Printables did not work correctly + (#12521). +- Fixes in 2.7.3 + ## Bug fixes with respect to 2.7.3-beta1 + * Removed negligible deretractions sometimes emitted into the + G-code after the recently introduced spiral vase mode + improvements. While they did not present actual issues with the + print, they were confusingly shown in the G-code preview. + ## Bug fixes with respect to 2.7.3-alpha1 + * The z offset configuration option was not correctly accounted + for when doing the last filament unload above the wipe tower. + * Fixed crash when importing a specific config bundle while in + SLA mode. + * Linux specific: When changing active profile using the dropdown + in the right panel, the dropdown would stay open when Unsaved + Changes dialog was shown. + * The improvements of spiral vase mode handling introduced in the + previous alpha did not work correctly with absolute extruder + addressing (#2841 (comment)). They are now only applied with + relative extruder addressing, otherwise it falls back to the + old behaviour. + * After performing a toolchange on the wipe tower, a G-code to + set layer z is now always emitted. This is to make sure that + the layer z is correct and that it was not changed in custom + toolchange G-code. While the user is expected to pass such + information in the custom G-code, the "z-ensuring" G-code was + present in previous versions and removing it in 2.7.2 was + therefore a needless breaking change (#12361). + * Fixed blobs on the first layer when using ramping travels with + absolute extruder addressing enabled. + * Fixed issues with 'avoid crossing perimeters' function + (#12432). This problem was actually fixed in 2.7.3-alpha1 + already. + ## Major improvements first seen in 2.7.3-alpha1 + * See + https://github.com/prusa3d/PrusaSlicer/releases/tag/version_2.7.3-alpha1 + for the full description + * Improvements of multi-material printing + * Purging volumes + * Spiral vase mode improvements + ## Other improvements with respect to 2.7.2 + * PrusaSlicer is now able to open 3MF files generated by + BambuStudio and load geometry from them. (#10718, PR #10808, + thanks to @cmguo). Please note that BambuStudio allows to save + a 3MF containing G-code only, which is not supported by + PrusaSlicer and loading of such 3MFs will fail. + * Metadata of binary G-code have a new item named objects_info, + which lists all the objects in the print and their boundary + polygons. The same info was added into the comments at the end + of ASCII G-codes. + ## Bugfixes with respect to 2.7.2 + * Pressure equalizer limits were not respected when Dynamic speed + on overhangs was used (#9485). This is now fixed. Pressure + equalizer is also not applied after long travels. Many thanks + to @MGunlogson for providing a fix in his pull request #9622. + * Fixed a bug resulting in inadequate anchoring of bridging + extrusions. This bug was introduced in PrusaSlicer 2.6.0. + #10231, #11500, #11633, #11173, #11117, #9999, #10313, #11150, + #10493 + * When using Cancel object feature, the marks denoting where one + object ends and another starts were placed incorrectly. As a + result, there was a missing deretraction after all travels to + objects which would normally be printed following the cancelled + object. The issue was even worse with sequential printing, + where the uncompensated retractions on the cancelled object + summed up and could result in filament being unloaded past the + driving gears. + * When arcs (G2 and G3 G-codes) were enabled, PrusaSlicer + generated toolpaths outside the print area in certain cases + (#12381). +- Increase memory and disk space for building constraints + +------------------------------------------------------------------- +Wed Mar 13 19:02:19 UTC 2024 - Frank Kunz + +- 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. + +------------------------------------------------------------------- +Fri Dec 29 09:47:16 UTC 2023 - Ben Greiner + +- Add PrusaSlicer-2.7.1-slic3r-wxWidgets-3.2.4.patch + * Fixes a compilation error with wxWidgets 3.2.4 + * gh#prusa3d/PrusaSlicer#11769 + +------------------------------------------------------------------- +Mon Dec 25 13:59:05 UTC 2023 - Ben Greiner + +- 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 + +------------------------------------------------------------------- +Fri Sep 15 19:03:08 UTC 2023 - Ben Greiner + +- Update to 2.6.1 + * When renaming a preset to a name containing non-ASCII + characters, the encoding was mangled. This is now fixed + (#11232). + * Supports are no longer shown when using the clipping plane in + SLA supports tool. + * Fixed a crash when displaying command line help (#11060). + * Two tooltips in the Cut tool dialog were shown with mangled + encoding in some languages (#11236). + * The Help menu in PrusaSlicer was extended with "Sample G-codes + and Models" item, which navigates the user to the respective + page on our website where these assets can be downloaded. + * The Help menu was extended with "Quick Start" item, which + navigates the user to the beginner's guide on our website. +- Drop PrusaSlicer-pr11154-fix-cgal-c++-error.patch +- Drop PrusaSlicer-drop-wx3.0.patch + +------------------------------------------------------------------- +Tue Aug 29 07:23:22 UTC 2023 - Ben Greiner + +- Add PrusaSlicer-pr11154-fix-cgal-c++-error.patch + * gh#prusa3d/PrusaSlicer#11154 + * Fixes error on CGAL 5.6 + +------------------------------------------------------------------- +Sun Aug 20 16:01:37 UTC 2023 - Ben Greiner + +- Limit to CGAL < 5.6 as it introduced breaking changes which + PrusaSlicer is not compatible yet +- Disable failing ix86 build + +------------------------------------------------------------------- +Fri Jul 21 10:32:11 UTC 2023 - Ben Greiner + +- Require wxWidgets >= 3.1.6 + * Add PrusaSlicer-drop-wx3.0.patch + * gh#prusa3d/PrusaSlicer#11026, gh#prusa3d/PrusaSlicer#11027 + +------------------------------------------------------------------- +Sun Jul 9 14:30:54 UTC 2023 - Ben Greiner + +- BuildRequire nanosvg-devel >= 2022.12.22 + * only the fltk fork has nsvgRasterizeXY() + +------------------------------------------------------------------- +Wed Jul 5 14:13:11 UTC 2023 - Hans-Peter Jansen + +- disable slic3r_jobs_tests.cpp, as it fails sometimes +- PrusaSlicer-2.6.0-wxWidgets-CheckResizerFlags-assert-fix.patch + applied + +------------------------------------------------------------------- +Tue Jul 4 17:16:14 UTC 2023 - Hans-Peter Jansen + +- Update to version 2.6.0 + * too many changes to list here, you may want to check: + https://github.com/prusa3d/PrusaSlicer/commits/version_2.6.0 + * PrusaSlicer-boost1.79.patch was applied upstream: removed + * PrusaSlicer-cereal.patch was applied upstream: removed + * gentoo-887055-boost-fix.patch was applied upstream: removed + * new dependencies: nanosvg (new package), glu and glew + * more sed fiddling required for system expat and qhull support + * PrusaSlicer-2.6.0-octoprint-name-fix.patch added to work around + compile error: cast lambda expressionn to same type + * wxWidgets 3.0 is not supported anymore (even project states + otherwise). Let's hope, it will work with 3.2 better now. + upstream is using a patched 3.1 version. + +------------------------------------------------------------------- +Fri Apr 21 15:04:55 UTC 2023 - Klaus Kämpf + +- Update to version 2.5.2 + * contains profiles for Original Prusa MK4 printer + +- Update to version 2.5.1 + * 'Monotonic lines' top/bottom fill pattern + * It is now possible to set acceleration separately for external + perimeters, solid infill and top solid infill (Print Settings-> + Speed->Acceleration control) + * Original Prusa XL specific: Arrangement into the corner + * Fixed a crash sometimes occurring when slicing very detailed models + * Added Original Prusa XL profiles + +------------------------------------------------------------------- +Tue Jan 31 18:34:16 UTC 2023 - Ben Greiner + +- Add gentoo-887055-boost-fix.patch + * Fix build error with boost-filesystem 1.81 + * gh#prusa3d/PrusaSlicer#9294 + * https://bugs.gentoo.org/887055 + +------------------------------------------------------------------- +Sun Jan 1 17:25:36 UTC 2023 - Ben Greiner + +- Update up-occt-version.patch + * Allow any version for openCASCADE + * Luckily, the package compiles with recently updated occt v7.7 + +------------------------------------------------------------------- +Sat Oct 29 11:35:55 UTC 2022 - Ben Greiner + +- Update to version 2.5.0 + * Arachne perimeter generator + * Lightning infill + * Pressure equalizer + * STEP file import + * various smaller features and bugfixes + * Big changelog since v2.4.2, most changes decribed in alpha and + beta release notes: + https://github.com/prusa3d/PrusaSlicer/releases +- Add up-occt-version.patch + +------------------------------------------------------------------- +Mon Sep 5 17:17:49 UTC 2022 - Hans-Peter Jansen + +- Quoting Lucas Matena (see gh#prusa3d/PrusaSlicer#8299, issue 2): + if you link PrusaSlicer 2.5.x with wxWidgets 3.2, you will most + likely break it: link against wxWidgets 3.0.5 + +------------------------------------------------------------------- +Mon Aug 1 15:42:40 UTC 2022 - Ben Greiner + +- Add PrusaSlicer-cereal.patch -- gh#prusa3d/PrusaSlicer#7809 + +------------------------------------------------------------------- +Tue May 31 19:04:00 UTC 2022 - Ben Greiner + +- Disable test_voronoi -- rh#2059646 + +------------------------------------------------------------------- +Sun May 8 10:03:57 UTC 2022 - Ben Greiner + +- Update to version 2.4.2 + * SLA mode incorrectly handled 3MFs from 3rd party software, + resulting in misplaced SLA support points and holes in some + cases (#6100, #7359, #7189, #7826, #7659). This is very old + issue. + * Vase mode preview did not show in cases when Custom Start + G-Code lacked moves in Z #8032 + * When loading a 3rd party 3MF using drag and drop. PrusaSlicer + no longer asks if the 3MF shall be loaded as a project (which + makes no sense since it contains no config) and loads the + geometry only + * Using the Layer Height Modifier with the wipe tower was + impossible with multiple objects. The wipe tower reported that + the layer height profile is different, even though it was in + fact set the same on all objects (#7711, #7903, #8044) + * Fixed a crash on "Convert from/to units" when several objects + were selected + * Automatic color change for logo crashed PrusaSlicer in certain + cases (when a one-layer object was present) #8156 + * Linux specific: Fixed a crash on opening projects in some cases + (#8078, #8097) + * Added Snapmaker bundle (Snapmaker A250, Snapmaker A350). Based + on https://github.com/nivekmai/snapmaker-prusa by @nivekmai, + @WilliamBosacker, @mrworf + * Added profiles for Zonestar printers (Z5, Z6, Z5X, Z8, Z9), + based on slic3r/slic3r-profiles#19 by @ZONESTAR3D + * Fixed a crash when Unsaved Changes dialog attempted to show a + modified config option which is not available in current mode + (e.g. Start G-Code in Simple mode). #7905 + * Fixed a bug that when the user was closing the application and + replied 'Yes' in the dialog asking about unsaved project while + also checking 'Remember my choice', it made it impossible to + close PrusaSlicer in the next runs when there were no objects + in the plater #8076, #8122 + * Loading of a G-Code in G-Code Viewer or loading config from + G-Code file sometimes failed because of a bug in parsing of the + configuration block at the end. + * Fixed incorrect rendering of some characters used in the + recently updated Simplified Chinese translation #8171 + * Fixed incorrect number of toolchanges reported in "Sliced Info" + box when wipe tower was used. The annotations of toolchanges in + G-Code were also numbered wrong #8186 + * Fixed a crash when using the "Import SL1 Archive" function and + either cancelling the dialog or confirming a non-existing file + #8175 + * Recycling symbols in Shape Gallery were mirrored so the user + does not have to flip them when using them as negative volumes + at the base of the print (which is the usual use case). Also, + PLA recycling symbol was added #7800 + +------------------------------------------------------------------- +Mon Apr 25 11:27:58 UTC 2022 - Ben Greiner + +- Refresh PrusaSlicer-boost1.79.patch with upstream's fix + * gh#prusa3d/PrusaSlicer#8238 + +------------------------------------------------------------------- +Sun Apr 24 09:26:22 UTC 2022 - Ben Greiner + +- Add PrusaSlicer-boost1.79.patch avoiding the deprecation + of boost::filesystem::ofstream in Boost 1.79 + * gh#prusa3d/PrusaSlicer#8238 + +------------------------------------------------------------------- +Tue Apr 12 12:59:51 UTC 2022 - Hans-Peter Jansen + +- Use gcc version 10 for anything but Tumbleweed + +------------------------------------------------------------------- +Tue Apr 12 06:41:47 UTC 2022 - Adrian Schröter + +- Use gcc version 10 + This allows the build on Leap 15.3/15.4 and in Factory using the same + compiler. +- Add buildignore to libglfw3-wayland to fix building for 15.3 + +------------------------------------------------------------------- +Fri Mar 18 11:44:17 UTC 2022 - Ben Greiner + +- Update to 2.4.1 + * Big changelog since v2.4.0, most changes decribed in alpha and + beta release notes: + https://github.com/prusa3d/PrusaSlicer/releases + * introducing G-Code Substitutions + * fixing bugs found in 2.4.0 release + +------------------------------------------------------------------- +Fri Dec 24 14:39:28 UTC 2021 - Ben Greiner + +- Update to 2.4.0 + * Big changelog since v2.3.3, most changes decribed in alpha and + beta release notes: + https://github.com/prusa3d/PrusaSlicer/releases + * Send system info: new dialog for telemetry. Opt-in. +- Drop patches + * PrusaSlicer-catch2upd.patch + * PrusaSlicer-issue6681-openvdb.patch + * PrusaSlicer-pr6590-updateTBB.patch + +------------------------------------------------------------------- +Tue Nov 23 11:21:48 UTC 2021 - Ben Greiner + +- Make compatible with TBB 2021 + * add FindTBB.cmake -- gh#prusa3d/PrusaSlicer#7332 + * add PrusaSlicer-pr6590-updateTBB.patch + gh#prusa3d/PrusaSlicer#6590 + +------------------------------------------------------------------- +Fri Sep 24 07:53:45 UTC 2021 - Ben Greiner + +- Add PrusaSlicer-catch2upd.patch + * gh#prusa3d/PrusaSlicer#6518 + * Update of Catch2 test framework from v2.13.3 to v2.13.6 + * Fixes build failure due to change of MINSIGSTKSZ in glibc 2.34 + +------------------------------------------------------------------- +Mon Aug 30 11:37:03 UTC 2021 - Ben Greiner + +- Add PrusaSlicer-issue6681-openvdb.patch + * gh#prusa3d/PrusaSlicer#6681 + * ilmbase-devel is now provided by openexr-devel + * OpenVDB's FindOpenVDB.cmake requires blosc-devel + +------------------------------------------------------------------- +Fri Jul 16 15:22:48 UTC 2021 - Ben Greiner + +- Update to v2.3.3 + * fix a bug in handling FDM multi-material project and + configuration files. + +------------------------------------------------------------------- +Fri Jul 9 16:08:39 UTC 2021 - Ben Greiner + +- Update to v2.3.2 + * Introducing support for the new Prusa SL1S SPEED masked + SLA printer, Prusa CW1S firmware updater, PrusaLink + host type for Prusa i3 MK3 printers, Monotonic infill + for all solid layers, better support for reading + configurations of newer PrusaSlicer releases, new 3rd + party printer profiles and a handful of bug fixes. +- Switch to bundled GLEW -- gh#prusa3d/PrusaSlicer#6396 + +------------------------------------------------------------------- +Tue Apr 20 10:50:45 UTC 2021 - Ben Greiner + +- Update to v2.3.1 + New 3rd party printer profiles + * Multiple Creality printers profiles were added (Ender-3 Max, + Ender-4, Ender-6, CR-5 Pro, CR-5 Pro H, CR-6 SE, CR-6 Max, + CR-10 Max, CR-200B, CR-8), thanks @pmjdebruijn. + * Added Artillery printer profiles (Sidewinder X1, Genius), + thanks @SzabolcsHornyak. + * Added INAT printer profiles, thanks @MarkINAT. + * Updated Anycubic Kossel bed texture (thanks @brunosso) and + Anycubic Kossel bed STL. + Vulnerability issues fixed + * The Talos Cisco Intelligence Group did a great job identifying + potential security issues in loading invalid and potentially + malicious AMF and 3MF files, see their vulnerability reports + TALOS-2020-1222 and TALOS-2020-1218. We fixed these two + potential security issues with this release of PrusaSlicer. + Bugs fixed with respect to PrusaSlicer 2.3.0 + * Reduced number of hits shown by the "Find config option" + dialog, fixed case insensitive search for non-Latin1 languages + #5202. + * Fixed G-code preview with coloring by a tool and visualization + of travels enabled #6095. + * Fixed opening of drop down menus at the bottom of the screen + on multi-monitor setups #2999 #5911 #5957. This issue has been + fixed by us in wxWidgets and accepted by the upstream. + +------------------------------------------------------------------- +Mon Jan 11 18:43:08 UTC 2021 - Benjamin Greiner + +- Update to v2.3.0 + * Introducing paint-on supports, ironing, monotonic + infill, seam painting, adaptive and support cubic + infill, print time per feature analysis, standalone + G-code viewer application, better auto-arrange with a + customizable gap and rotation, search function for the + settings, reworked "Avoid crossing perimeters" function, + physical printers (network settings), many new 3rd party + printer profiles and much, much more. +- Full Changelog entries for betas and release candidates: + https://github.com/prusa3d/PrusaSlicer/releases +- Drop PrusaSlicer-pr4340-boost-1-73.patch merged upstream + +------------------------------------------------------------------- +Sun Dec 20 20:12:40 UTC 2020 - Benjamin Greiner + +- Remove extra PrusaSlicer.desktop. Use upstream's desktop files. + Graphics;3DGraphics seems to be the consensus now. +- Remove wrapper gh#prusa3d/PrusaSlicer#4691 + +------------------------------------------------------------------- +Tue Sep 1 21:20:26 UTC 2020 - Benjamin Greiner + +- support boost >= 1.73 + * PrusaSlicer-pr4340-boost-1-73.patch gh#prusa3d/PrusaSlicer#4340 + * fixes gh#prusa3d/PrusaSlicer#4264 + +------------------------------------------------------------------- +Tue Sep 1 11:46:30 UTC 2020 - Benjamin Greiner + +- enforce GDK_BACKEND=x11 by indroducing the same wrapper as Fedora + gh#prusa3d/PrusaSlicer#4691 + +------------------------------------------------------------------- +Thu Aug 20 15:50:07 UTC 2020 - Benjamin Greiner + +- revert the memoryperjob change. The build process really acquires + that much memory per job and the workers cannot provide 3GB per + CPU core. Sadly, we are limited by memory not by CPU cores. +- require 11 GB of RAM. This allows us to run 3 jobs in parallel and + can be provided by all architectures + +------------------------------------------------------------------- +Thu Aug 20 09:03:33 UTC 2020 - Martin Liška + +- Use memoryperjob constraint instead of %limit_build macro. +- Use only 1GB for memoryperjob. + +------------------------------------------------------------------- +Mon Aug 10 08:12:10 UTC 2020 - Stefan Brüns + +- Use wxGTK3 instead of wxWidgets (GTK2), for better HiDPI and + Wayland support. + +------------------------------------------------------------------- +Tue Jun 16 12:09:13 UTC 2020 - Benjamin Greiner + +- This is mainly a cosmetic update so that the package gets rebuilt + in Factory. Rebuild is needed because of wxWidgets - boo#1172750 +- Add openvdb-tools package for better cmake reporting. +- Make the 32-bit floating point workaround more readable. + gh#prusa3d/PrusaSlicer#3781 + +------------------------------------------------------------------- +Fri Apr 24 07:24:26 UTC 2020 - Dominique Leuenberger + +- BuildRequire pkgconfig(libudev) instead of libudev-devel: allow + OBS to shortcut through -mini flavors. + +------------------------------------------------------------------- +Sat Mar 21 22:08:07 UTC 2020 - Benjamin Greiner + +- update to version 2.2.0 + introducing SLA hollowing and hole drilling, support for 3rd party + printer vendors, 3Dconnexion support, automatic variable layer height, + macOS dark mode support, greatly improved ColorPrint feature and much, + much more. + See https://github.com/prusa3d/PrusaSlicer/releases/tag/version_2.2.0 + and the changelogs for the release candidates, betas and alphas since + 2.1.1 for a complete list of changes. +- reactivate parallel builds, but need strong enough workers and reserve + 4G of memory per thread (memory-constraints, %limit_build) +- new build dependencies: cgal, ilmbase, more of boost, libudev, openvdb + + +------------------------------------------------------------------- +Wed Dec 11 10:24:01 UTC 2019 - Benjamin Greiner + +- update to version 2.1.1 + - integrating the Prusa Mini printer into the + installation wizard + - 3D scene thumbnails are newly generated and exported + into the G-code to be displayed on the Prusa Mini + printer's display +- use Graphics;3DGraphics for non Tumbleweed distros + +------------------------------------------------------------------- +Fri Sep 13 19:34:47 UTC 2019 - Benjamin Greiner + +- final 2.1.0 +- symlink icon files instead of duplicate copy + +------------------------------------------------------------------- +Sat Sep 7 15:00:17 UTC 2019 - Benjamin Greiner + +- new version 2.1.0-rc +- remove obsolete patch file +- tag localization files +- remove stray Noto font file, add as dependency +- outsource Desktop file creation +- move Desktop category to "Science;Construction" + +------------------------------------------------------------------- +Mon Jul 29 11:30:21 UTC 2019 - Benjamin Greiner + +- Clean up specfile according to declined submit request 718985 + - Remove non-devel BuildRequires + - Move icons to icons/hicolor +- build with -j1 as otherwise x64 build is stuck + +------------------------------------------------------------------- +Fri Jul 26 15:25:15 UTC 2019 - Benjamin Greiner + +- use new patch from upstream + (see https://github.com/prusa3d/PrusaSlicer/pull/2676) +- use Education;Construction as long as boo#1074711 is not resolved + +------------------------------------------------------------------- +Tue Jul 23 11:29:49 UTC 2019 - Benjamin Greiner + +- initial specfile diff --git a/PrusaSlicer.spec b/PrusaSlicer.spec new file mode 100644 index 0000000..b859d31 --- /dev/null +++ b/PrusaSlicer.spec @@ -0,0 +1,181 @@ +# +# 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.8.1 +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/ +# SourceRepository: https://github.com/prusa3d/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-UPSTREAM PrusaSlicer-2.8.1-pr13609-fix-build.patch gh#prusa3d/PrusaSlicer#13609 +Patch2: PrusaSlicer-2.8.1-pr13609-fix-build.patch +# PATCH-FIX-OPENSUSE PrusaSlicer-2.8.1-pr13761-fix-occtwrapper.patch gh#prusa3d/PrusaSlicer#13761 +Patch10: PrusaSlicer-2.8.1-pr13761-fix-occtwrapper.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_nowide-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: openssl-devel +BuildRequires: openvdb-devel >= 7.1 +BuildRequires: openvdb-tools +BuildRequires: pkgconfig +BuildRequires: tbb-devel +BuildRequires: wxGTK3-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) +BuildRequires: pkgconfig(webkit2gtk-4.1) +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 +# 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 \ + -DSLIC3R_GTK=3 \ + -DOPENVDB_FIND_MODULE_PATH=%{_libdir}/cmake/OpenVDB +%cmake_build + +%install +%cmake_install + +#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,web}/ +%{_datadir}/icons/hicolor/*/apps/%{name}*.png +%{_datadir}/applications/PrusaSlicer.desktop +%{_datadir}/applications/PrusaGcodeviewer.desktop +%license LICENSE +%doc README.md doc/ + +%changelog diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..b3618eb --- /dev/null +++ b/_constraints @@ -0,0 +1,11 @@ + + + + + 20 + + + 16 + + + diff --git a/up-occt-version.patch b/up-occt-version.patch new file mode 100644 index 0000000..6204c7a --- /dev/null +++ b/up-occt-version.patch @@ -0,0 +1,28 @@ +Index: PrusaSlicer-version_2.8.1/src/occt_wrapper/CMakeLists.txt +=================================================================== +--- PrusaSlicer-version_2.8.1.orig/src/occt_wrapper/CMakeLists.txt 2024-09-18 15:39:04.000000000 +0200 ++++ PrusaSlicer-version_2.8.1/src/occt_wrapper/CMakeLists.txt 2024-12-08 10:38:01.245676008 +0100 +@@ -19,14 +19,10 @@ include(GenerateExportHeader) + + generate_export_header(OCCTWrapper) + +-find_package(OpenCASCADE 7.6.1 REQUIRED) ++find_package(OpenCASCADE REQUIRED) + + set(OCCT_LIBS +- TKXDESTEP +- TKSTEP +- TKSTEP209 +- TKSTEPAttr +- TKSTEPBase ++ TKDESTEP + TKXCAF + TKXSBase + TKVCAF +@@ -59,5 +55,5 @@ target_link_libraries(OCCTWrapper libsli + + include(GNUInstallDirs) + +-install(TARGETS OCCTWrapper DESTINATION "${CMAKE_INSTALL_BINDIR}") ++install(TARGETS OCCTWrapper DESTINATION "${CMAKE_INSTALL_LIBDIR}") +