- Add prusaslicer-2.8.1-boost-1.87.0-asio.patch for new boost
* gh#prusa3d/PrusaSlicer#13799 gentoo#946495 OBS-URL: https://build.opensuse.org/package/show/science/PrusaSlicer?expand=0&rev=99
This commit is contained in:
commit
cbf15b1100
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -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
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
13
PrusaSlicer-2.6.0-octoprint-name-fix.patch
Normal file
13
PrusaSlicer-2.6.0-octoprint-name-fix.patch
Normal file
@ -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));
|
50
PrusaSlicer-2.7.1-slic3r-wxWidgets-3.2.4.patch
Normal file
50
PrusaSlicer-2.7.1-slic3r-wxWidgets-3.2.4.patch
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
From f67a877d583eba5472003f0ea4df3f7420d70734 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gregor Riepl <onitake@gmail.com>
|
||||||
|
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.9.0/src/slic3r/GUI/PhysicalPrinterDialog.cpp
|
||||||
|
===================================================================
|
||||||
|
--- PrusaSlicer-version_2.9.0.orig/src/slic3r/GUI/PhysicalPrinterDialog.cpp 2024-12-20 12:54:34.000000000 +0100
|
||||||
|
+++ PrusaSlicer-version_2.9.0/src/slic3r/GUI/PhysicalPrinterDialog.cpp 2024-12-20 15:32:12.247773628 +0100
|
||||||
|
@@ -607,7 +607,7 @@ void PhysicalPrinterDialog::build_printh
|
||||||
|
// Always fill in the "printhost_port" combo box from the config and select it.
|
||||||
|
{
|
||||||
|
Choice* choice = dynamic_cast<Choice*>(m_optgroup->get_field("printhost_port"));
|
||||||
|
- choice->set_values({ m_config->opt_string("printhost_port") });
|
||||||
|
+ choice->set_values(std::vector<std::string>({ m_config->opt_string("printhost_port") }));
|
||||||
|
choice->set_selection();
|
||||||
|
}
|
||||||
|
|
||||||
|
Index: PrusaSlicer-version_2.9.0/src/slic3r/GUI/Plater.cpp
|
||||||
|
===================================================================
|
||||||
|
--- PrusaSlicer-version_2.9.0.orig/src/slic3r/GUI/Plater.cpp 2024-12-20 12:54:34.000000000 +0100
|
||||||
|
+++ PrusaSlicer-version_2.9.0/src/slic3r/GUI/Plater.cpp 2024-12-20 15:32:12.251106999 +0100
|
||||||
|
@@ -4420,7 +4420,7 @@ void Plater::load_project(const wxString
|
||||||
|
s_multiple_beds.set_loading_project_flag(true);
|
||||||
|
ScopeGuard guard([](){ s_multiple_beds.set_loading_project_flag(false);});
|
||||||
|
|
||||||
|
- if (! load_files({ into_path(filename) }).empty()) {
|
||||||
|
+ if (! load_files(std::vector<boost::filesystem::path>({ 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.
|
||||||
|
Index: PrusaSlicer-version_2.9.0/src/slic3r/Utils/PrusaConnect.cpp
|
||||||
|
===================================================================
|
||||||
|
--- PrusaSlicer-version_2.9.0.orig/src/slic3r/Utils/PrusaConnect.cpp 2024-12-20 12:54:34.000000000 +0100
|
||||||
|
+++ PrusaSlicer-version_2.9.0/src/slic3r/Utils/PrusaConnect.cpp 2024-12-20 15:32:12.251106999 +0100
|
||||||
|
@@ -256,7 +256,7 @@ bool PrusaConnectNew::get_storage(wxArra
|
||||||
|
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));
|
54
PrusaSlicer-2.8.0-slic3r-includes.patch
Normal file
54
PrusaSlicer-2.8.0-slic3r-includes.patch
Normal file
@ -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 <cctype>
|
||||||
|
|
||||||
|
#include <boost/filesystem/operations.hpp>
|
||||||
|
+#include <boost/filesystem/directory.hpp>
|
||||||
|
#include <boost/nowide/fstream.hpp>
|
||||||
|
|
||||||
|
#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 <boost/filesystem.hpp>
|
||||||
|
#include <boost/nowide/cstdio.hpp>
|
||||||
|
#include <boost/nowide/fstream.hpp>
|
||||||
|
+#include <boost/nowide/convert.hpp>
|
||||||
|
#include <curl/curl.h>
|
||||||
|
#include <string>
|
||||||
|
|
121
PrusaSlicer-2.8.1-pr13761-fix-occtwrapper.patch
Normal file
121
PrusaSlicer-2.8.1-pr13761-fix-occtwrapper.patch
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
From db3232171448d68ed7a206c9683b5aa968181e22 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andreas Schneider <asn@cryptomilk.org>
|
||||||
|
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<LoadStepFn>(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 <asn@cryptomilk.org>
|
||||||
|
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)
|
370
PrusaSlicer-2.9.0-pr13081-cgal6.0.patch
Normal file
370
PrusaSlicer-2.9.0-pr13081-cgal6.0.patch
Normal file
@ -0,0 +1,370 @@
|
|||||||
|
From 14060916576e62654be0db2f614bf8d36f4d2fa6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Laurent Rineau <laurent.rineau@cgal.org>
|
||||||
|
Date: Sat, 4 Jan 2025 12:27:00 +0100
|
||||||
|
Subject: [PATCH 1/5] compatibility with CGAL-6.0 (and 5.6.x)
|
||||||
|
|
||||||
|
---
|
||||||
|
src/libslic3r/CutSurface.cpp | 53 +++++++++++++++++++++---------------
|
||||||
|
1 file changed, 31 insertions(+), 22 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/libslic3r/CutSurface.cpp b/src/libslic3r/CutSurface.cpp
|
||||||
|
index 57dfb8560..e39ec9b64 100644
|
||||||
|
--- a/src/libslic3r/CutSurface.cpp
|
||||||
|
+++ b/src/libslic3r/CutSurface.cpp
|
||||||
|
@@ -4,6 +4,14 @@
|
||||||
|
///|/
|
||||||
|
#include "CutSurface.hpp"
|
||||||
|
|
||||||
|
+template <typename T>
|
||||||
|
+auto access_pmap(std::optional<T> opt) -> T {
|
||||||
|
+ return opt.value();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+template <typename Pair>
|
||||||
|
+auto access_pmap(Pair pair) { return pair.first; }
|
||||||
|
+
|
||||||
|
/// models_input.obj - Check transormation of model to each others
|
||||||
|
/// projection_center.obj - circle representing center of projection with correct distance
|
||||||
|
/// {M} .. model index
|
||||||
|
@@ -31,6 +39,7 @@ using namespace Slic3r;
|
||||||
|
#include <CGAL/Exact_integer.h>
|
||||||
|
#include <CGAL/Surface_mesh.h>
|
||||||
|
#include <CGAL/Cartesian_converter.h>
|
||||||
|
+#include <CGAL/AABB_traits.h>
|
||||||
|
#include <oneapi/tbb/blocked_range.h>
|
||||||
|
#include <oneapi/tbb/parallel_for.h>
|
||||||
|
#include <boost/property_map/property_map.hpp>
|
||||||
|
@@ -1021,8 +1030,8 @@ priv::CutMesh priv::to_cgal(const ExPolygons &shapes,
|
||||||
|
if (shapes.empty()) return {};
|
||||||
|
|
||||||
|
CutMesh result;
|
||||||
|
- EdgeShapeMap edge_shape_map = result.add_property_map<EI, IntersectingElement>(edge_shape_map_name).first;
|
||||||
|
- FaceShapeMap face_shape_map = result.add_property_map<FI, IntersectingElement>(face_shape_map_name).first;
|
||||||
|
+ EdgeShapeMap edge_shape_map = access_pmap((result.add_property_map<EI, IntersectingElement>(edge_shape_map_name)));
|
||||||
|
+ FaceShapeMap face_shape_map = access_pmap((result.add_property_map<FI, IntersectingElement>(face_shape_map_name)));
|
||||||
|
|
||||||
|
std::vector<VI> indices;
|
||||||
|
auto insert_contour = [&projection, &indices, &result,
|
||||||
|
@@ -1432,17 +1441,17 @@ priv::CutAOIs priv::cut_from_model(CutMesh &cgal_model,
|
||||||
|
const ExPolygonsIndices &s2i)
|
||||||
|
{
|
||||||
|
// pointer to edge or face shape_map
|
||||||
|
- VertexShapeMap vert_shape_map = cgal_model.add_property_map<VI, const IntersectingElement*>(vert_shape_map_name, nullptr).first;
|
||||||
|
+ VertexShapeMap vert_shape_map = access_pmap((cgal_model.add_property_map<VI, const IntersectingElement*>(vert_shape_map_name, nullptr)));
|
||||||
|
|
||||||
|
// detect anomalities in visitor.
|
||||||
|
bool is_valid = true;
|
||||||
|
// NOTE: map are created when convert shapes to cgal model
|
||||||
|
- const EdgeShapeMap& edge_shape_map = cgal_shape.property_map<EI, IntersectingElement>(edge_shape_map_name).first;
|
||||||
|
- const FaceShapeMap& face_shape_map = cgal_shape.property_map<FI, IntersectingElement>(face_shape_map_name).first;
|
||||||
|
+ const EdgeShapeMap& edge_shape_map = access_pmap((cgal_shape.property_map<EI, IntersectingElement>(edge_shape_map_name)));
|
||||||
|
+ const FaceShapeMap& face_shape_map = access_pmap((cgal_shape.property_map<FI, IntersectingElement>(face_shape_map_name)));
|
||||||
|
Visitor visitor{cgal_model, cgal_shape, edge_shape_map, face_shape_map, vert_shape_map, &is_valid};
|
||||||
|
|
||||||
|
// a property map containing the constrained-or-not status of each edge
|
||||||
|
- EdgeBoolMap ecm = cgal_model.add_property_map<EI, bool>(is_constrained_edge_name, false).first;
|
||||||
|
+ EdgeBoolMap ecm = access_pmap((cgal_model.add_property_map<EI, bool>(is_constrained_edge_name, false)));
|
||||||
|
const auto &p = CGAL::parameters::visitor(visitor)
|
||||||
|
.edge_is_constrained_map(ecm)
|
||||||
|
.throw_on_self_intersection(false);
|
||||||
|
@@ -1451,7 +1460,7 @@ priv::CutAOIs priv::cut_from_model(CutMesh &cgal_model,
|
||||||
|
|
||||||
|
if (!is_valid) return {};
|
||||||
|
|
||||||
|
- FaceTypeMap face_type_map = cgal_model.add_property_map<FI, FaceType>(face_type_map_name, FaceType::not_constrained).first;
|
||||||
|
+ FaceTypeMap face_type_map = access_pmap((cgal_model.add_property_map<FI, FaceType>(face_type_map_name, FaceType::not_constrained)));
|
||||||
|
|
||||||
|
// Select inside and outside face in model
|
||||||
|
set_face_type(face_type_map, cgal_model, vert_shape_map, ecm, cgal_shape, s2i);
|
||||||
|
@@ -1587,8 +1596,8 @@ void priv::collect_surface_data(std::queue<FI> &process,
|
||||||
|
|
||||||
|
void priv::create_reduce_map(ReductionMap &reduction_map, const CutMesh &mesh)
|
||||||
|
{
|
||||||
|
- const VertexShapeMap &vert_shape_map = mesh.property_map<VI, const IntersectingElement*>(vert_shape_map_name).first;
|
||||||
|
- const EdgeBoolMap &ecm = mesh.property_map<EI, bool>(is_constrained_edge_name).first;
|
||||||
|
+ const VertexShapeMap &vert_shape_map = access_pmap((mesh.property_map<VI, const IntersectingElement*>(vert_shape_map_name)));
|
||||||
|
+ const EdgeBoolMap &ecm = access_pmap((mesh.property_map<EI, bool>(is_constrained_edge_name)));
|
||||||
|
|
||||||
|
// check if vertex was made by edge_2 which is diagonal of quad
|
||||||
|
auto is_reducible_vertex = [&vert_shape_map](VI reduction_from) -> bool {
|
||||||
|
@@ -1773,10 +1782,10 @@ priv::VDistances priv::calc_distances(const SurfacePatches &patches,
|
||||||
|
for (const SurfacePatch &patch : patches) {
|
||||||
|
// map is created during intersection by corefine visitor
|
||||||
|
const VertexShapeMap &vert_shape_map =
|
||||||
|
- models[patch.model_id].property_map<VI, const IntersectingElement *>(vert_shape_map_name).first;
|
||||||
|
+ access_pmap((models[patch.model_id].property_map<VI, const IntersectingElement *>(vert_shape_map_name)));
|
||||||
|
uint32_t patch_index = &patch - &patches.front();
|
||||||
|
// map is created during patch creation / dividing
|
||||||
|
- const CvtVI2VI& cvt = patch.mesh.property_map<VI, VI>(patch_source_name).first;
|
||||||
|
+ const CvtVI2VI& cvt = access_pmap((patch.mesh.property_map<VI, VI>(patch_source_name)));
|
||||||
|
// for each point on outline
|
||||||
|
for (const Loop &loop : patch.loops)
|
||||||
|
for (const VI &vi_patch : loop) {
|
||||||
|
@@ -2666,7 +2675,7 @@ priv::SurfacePatch priv::create_surface_patch(const std::vector<FI> &fis,
|
||||||
|
/* const */ CutMesh &mesh,
|
||||||
|
const ReductionMap *rmap)
|
||||||
|
{
|
||||||
|
- auto is_counted = mesh.add_property_map<VI, bool>("v:is_counted").first;
|
||||||
|
+ auto is_counted = access_pmap((mesh.add_property_map<VI, bool>("v:is_counted")));
|
||||||
|
uint32_t count_vertices = 0;
|
||||||
|
if (rmap == nullptr) {
|
||||||
|
for (FI fi : fis)
|
||||||
|
@@ -2696,7 +2705,7 @@ priv::SurfacePatch priv::create_surface_patch(const std::vector<FI> &fis,
|
||||||
|
cm.reserve(count_vertices, count_edges, count_faces);
|
||||||
|
|
||||||
|
// vertex conversion function from mesh VI to result VI
|
||||||
|
- CvtVI2VI mesh2result = mesh.add_property_map<VI,VI>("v:mesh2result").first;
|
||||||
|
+ CvtVI2VI mesh2result = access_pmap((mesh.add_property_map<VI,VI>("v:mesh2result")));
|
||||||
|
|
||||||
|
if (rmap == nullptr) {
|
||||||
|
for (FI fi : fis) {
|
||||||
|
@@ -2748,7 +2757,7 @@ priv::SurfacePatch priv::create_surface_patch(const std::vector<FI> &fis,
|
||||||
|
assert(count_edges >= cm.edges().size());
|
||||||
|
|
||||||
|
// convert VI from this patch to source VI, when exist
|
||||||
|
- CvtVI2VI cvt = cm.add_property_map<VI, VI>(patch_source_name).first;
|
||||||
|
+ CvtVI2VI cvt = access_pmap((cm.add_property_map<VI, VI>(patch_source_name)));
|
||||||
|
// vi_s .. VertexIndex into mesh (source)
|
||||||
|
// vi_d .. new VertexIndex in cm (destination)
|
||||||
|
for (VI vi_s : mesh.vertices()) {
|
||||||
|
@@ -2939,7 +2948,7 @@ bool priv::is_patch_inside_of_model(const SurfacePatch &patch,
|
||||||
|
uint32_t priv::get_shape_point_index(const CutAOI &cut, const CutMesh &model)
|
||||||
|
{
|
||||||
|
// map is created during intersection by corefine visitor
|
||||||
|
- const VertexShapeMap &vert_shape_map = model.property_map<VI, const IntersectingElement *>(vert_shape_map_name).first;
|
||||||
|
+ const VertexShapeMap &vert_shape_map = access_pmap((model.property_map<VI, const IntersectingElement *>(vert_shape_map_name)));
|
||||||
|
// for each half edge of outline
|
||||||
|
for (HI hi : cut.second) {
|
||||||
|
VI vi = model.source(hi);
|
||||||
|
@@ -2964,7 +2973,7 @@ priv::SurfacePatch priv::separate_patch(const std::vector<FI>& fis,
|
||||||
|
patch_new.model_id = patch.model_id;
|
||||||
|
patch_new.shape_id = patch.shape_id;
|
||||||
|
// fix cvt
|
||||||
|
- CvtVI2VI cvt = patch_new.mesh.property_map<VI, VI>(patch_source_name).first;
|
||||||
|
+ CvtVI2VI cvt = access_pmap((patch_new.mesh.property_map<VI, VI>(patch_source_name)));
|
||||||
|
for (VI &vi : cvt) {
|
||||||
|
if (!vi.is_valid()) continue;
|
||||||
|
vi = cvt_from[vi];
|
||||||
|
@@ -2982,9 +2991,9 @@ void priv::divide_patch(size_t i, SurfacePatchesEx &patches)
|
||||||
|
CutMesh& cm = patch.mesh;
|
||||||
|
assert(!cm.faces().empty());
|
||||||
|
std::string patch_number_name = "f:patch_number";
|
||||||
|
- CutMesh::Property_map<FI,bool> is_processed = cm.add_property_map<FI, bool>(patch_number_name, false).first;
|
||||||
|
+ CutMesh::Property_map<FI,bool> is_processed = access_pmap((cm.add_property_map<FI, bool>(patch_number_name, false)));
|
||||||
|
|
||||||
|
- const CvtVI2VI& cvt_from = patch.mesh.property_map<VI, VI>(patch_source_name).first;
|
||||||
|
+ const CvtVI2VI& cvt_from = access_pmap((patch.mesh.property_map<VI, VI>(patch_source_name)));
|
||||||
|
|
||||||
|
std::vector<FI> fis;
|
||||||
|
fis.reserve(cm.faces().size());
|
||||||
|
@@ -3085,7 +3094,7 @@ priv::SurfacePatches priv::diff_models(VCutAOIs &cuts,
|
||||||
|
CutAOIs &model_cuts = cuts[model_index];
|
||||||
|
CutMesh &cut_model_ = cut_models[model_index];
|
||||||
|
const CutMesh &cut_model = cut_model_;
|
||||||
|
- ReductionMap vertex_reduction_map = cut_model_.add_property_map<VI, VI>(vertex_reduction_map_name).first;
|
||||||
|
+ ReductionMap vertex_reduction_map = access_pmap((cut_model_.add_property_map<VI, VI>(vertex_reduction_map_name)));
|
||||||
|
create_reduce_map(vertex_reduction_map, cut_model);
|
||||||
|
|
||||||
|
for (size_t cut_index = 0; cut_index < model_cuts.size(); ++cut_index, ++index) {
|
||||||
|
@@ -3171,7 +3180,7 @@ bool priv::is_over_whole_expoly(const CutAOI &cutAOI,
|
||||||
|
const CutMesh &mesh)
|
||||||
|
{
|
||||||
|
// NonInterupted contour is without other point and contain all from shape
|
||||||
|
- const VertexShapeMap &vert_shape_map = mesh.property_map<VI, const IntersectingElement*>(vert_shape_map_name).first;
|
||||||
|
+ const VertexShapeMap &vert_shape_map = access_pmap((mesh.property_map<VI, const IntersectingElement*>(vert_shape_map_name)));
|
||||||
|
for (HI hi : cutAOI.second) {
|
||||||
|
const IntersectingElement *ie_s = vert_shape_map[mesh.source(hi)];
|
||||||
|
const IntersectingElement *ie_t = vert_shape_map[mesh.target(hi)];
|
||||||
|
@@ -3708,7 +3717,7 @@ void priv::store(const CutMesh &mesh, const FaceTypeMap &face_type_map, const st
|
||||||
|
}
|
||||||
|
|
||||||
|
CutMesh &mesh_ = const_cast<CutMesh &>(mesh);
|
||||||
|
- auto face_colors = mesh_.add_property_map<priv::FI, CGAL::Color>("f:color").first;
|
||||||
|
+ auto face_colors = access_pmap((mesh_.add_property_map<priv::FI, CGAL::Color>("f:color")));
|
||||||
|
for (FI fi : mesh.faces()) {
|
||||||
|
auto &color = face_colors[fi];
|
||||||
|
switch (face_type_map[fi]) {
|
||||||
|
@@ -3734,7 +3743,7 @@ void priv::store(const CutMesh &mesh, const ReductionMap &reduction_map, const s
|
||||||
|
std::string off_file = dir + "model" + std::to_string(reduction_order++) + ".off";
|
||||||
|
|
||||||
|
CutMesh &mesh_ = const_cast<CutMesh &>(mesh);
|
||||||
|
- auto vertex_colors = mesh_.add_property_map<priv::VI, CGAL::Color>("v:color").first;
|
||||||
|
+ auto vertex_colors = access_pmap((mesh_.add_property_map<priv::VI, CGAL::Color>("v:color")));
|
||||||
|
// initialize to gray color
|
||||||
|
for (VI vi: mesh.vertices())
|
||||||
|
vertex_colors[vi] = CGAL::Color{127, 127, 127};
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
||||||
|
|
||||||
|
From 0073b6e72d56ab52d4c513917d2055d69cfc0383 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Laurent Rineau <laurent.rineau@cgal.org>
|
||||||
|
Date: Sat, 13 Jul 2024 01:24:10 +0200
|
||||||
|
Subject: [PATCH 2/5] missing include
|
||||||
|
|
||||||
|
---
|
||||||
|
src/libslic3r/CutSurface.cpp | 8 ++++++++
|
||||||
|
src/slic3r/GUI/UserAccountCommunication.cpp | 1 +
|
||||||
|
2 files changed, 9 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/libslic3r/CutSurface.cpp b/src/libslic3r/CutSurface.cpp
|
||||||
|
index e39ec9b64..9e3b74293 100644
|
||||||
|
--- a/src/libslic3r/CutSurface.cpp
|
||||||
|
+++ b/src/libslic3r/CutSurface.cpp
|
||||||
|
@@ -12,6 +12,14 @@ auto access_pmap(std::optional<T> opt) -> T {
|
||||||
|
template <typename Pair>
|
||||||
|
auto access_pmap(Pair pair) { return pair.first; }
|
||||||
|
|
||||||
|
+template <typename T>
|
||||||
|
+auto access_pmap(std::optional<T> opt) -> T {
|
||||||
|
+ return opt.value();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+template <typename Pair>
|
||||||
|
+auto access_pmap(Pair pair) { return pair.first; }
|
||||||
|
+
|
||||||
|
/// models_input.obj - Check transormation of model to each others
|
||||||
|
/// projection_center.obj - circle representing center of projection with correct distance
|
||||||
|
/// {M} .. model index
|
||||||
|
diff --git a/src/slic3r/GUI/UserAccountCommunication.cpp b/src/slic3r/GUI/UserAccountCommunication.cpp
|
||||||
|
index ba736891c..8f51f9f0c 100644
|
||||||
|
--- a/src/slic3r/GUI/UserAccountCommunication.cpp
|
||||||
|
+++ b/src/slic3r/GUI/UserAccountCommunication.cpp
|
||||||
|
@@ -11,6 +11,7 @@
|
||||||
|
#include <boost/beast/core/detail/base64.hpp>
|
||||||
|
#include <boost/algorithm/string.hpp>
|
||||||
|
#include <boost/filesystem.hpp>
|
||||||
|
+#include <boost/nowide/convert.hpp>
|
||||||
|
#include <boost/nowide/cstdio.hpp>
|
||||||
|
#include <boost/nowide/fstream.hpp>
|
||||||
|
#include <curl/curl.h>
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
||||||
|
|
||||||
|
From 4cc656a9841a672282bf423d8e85413b552d1ba2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Laurent Rineau <Laurent.Rineau@cgal.org>
|
||||||
|
Date: Mon, 30 Sep 2024 11:05:55 +0200
|
||||||
|
Subject: [PATCH 3/5] Update src/libslic3r/CutSurface.cpp
|
||||||
|
|
||||||
|
Co-authored-by: Gregor Riepl <onitake@gmail.com>
|
||||||
|
---
|
||||||
|
src/libslic3r/CutSurface.cpp | 7 -------
|
||||||
|
1 file changed, 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/libslic3r/CutSurface.cpp b/src/libslic3r/CutSurface.cpp
|
||||||
|
index 9e3b74293..4bc183747 100644
|
||||||
|
--- a/src/libslic3r/CutSurface.cpp
|
||||||
|
+++ b/src/libslic3r/CutSurface.cpp
|
||||||
|
@@ -12,13 +12,6 @@ auto access_pmap(std::optional<T> opt) -> T {
|
||||||
|
template <typename Pair>
|
||||||
|
auto access_pmap(Pair pair) { return pair.first; }
|
||||||
|
|
||||||
|
-template <typename T>
|
||||||
|
-auto access_pmap(std::optional<T> opt) -> T {
|
||||||
|
- return opt.value();
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-template <typename Pair>
|
||||||
|
-auto access_pmap(Pair pair) { return pair.first; }
|
||||||
|
|
||||||
|
/// models_input.obj - Check transormation of model to each others
|
||||||
|
/// projection_center.obj - circle representing center of projection with correct distance
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
||||||
|
|
||||||
|
From 25130451ca9466ffaac96032602d4f6bde5c6e6e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Laurent Rineau <laurent.rineau@cgal.org>
|
||||||
|
Date: Sat, 4 Jan 2025 12:57:19 +0100
|
||||||
|
Subject: [PATCH 4/5] use std::optional::value_or (according to review)
|
||||||
|
|
||||||
|
---
|
||||||
|
src/libslic3r/CutSurface.cpp | 5 ++---
|
||||||
|
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/libslic3r/CutSurface.cpp b/src/libslic3r/CutSurface.cpp
|
||||||
|
index 4bc183747..b21ed0e0c 100644
|
||||||
|
--- a/src/libslic3r/CutSurface.cpp
|
||||||
|
+++ b/src/libslic3r/CutSurface.cpp
|
||||||
|
@@ -6,13 +6,12 @@
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
auto access_pmap(std::optional<T> opt) -> T {
|
||||||
|
- return opt.value();
|
||||||
|
+ return opt.value_or(T{});
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename Pair>
|
||||||
|
auto access_pmap(Pair pair) { return pair.first; }
|
||||||
|
|
||||||
|
-
|
||||||
|
/// models_input.obj - Check transormation of model to each others
|
||||||
|
/// projection_center.obj - circle representing center of projection with correct distance
|
||||||
|
/// {M} .. model index
|
||||||
|
@@ -3719,7 +3718,7 @@ void priv::store(const CutMesh &mesh, const FaceTypeMap &face_type_map, const st
|
||||||
|
|
||||||
|
CutMesh &mesh_ = const_cast<CutMesh &>(mesh);
|
||||||
|
auto face_colors = access_pmap((mesh_.add_property_map<priv::FI, CGAL::Color>("f:color")));
|
||||||
|
- for (FI fi : mesh.faces()) {
|
||||||
|
+ for (FI fi : mesh.faces()) {
|
||||||
|
auto &color = face_colors[fi];
|
||||||
|
switch (face_type_map[fi]) {
|
||||||
|
case FaceType::inside: color = CGAL::Color{100, 250, 100}; break; // light green
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
||||||
|
|
||||||
|
From 9e8d79b990f06032b68d17d0aa4cd6111e47d273 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andreas Schneider <asn@cryptomilk.org>
|
||||||
|
Date: Thu, 6 Feb 2025 12:44:51 +0100
|
||||||
|
Subject: [PATCH 5/5] Fix test_emboss with CGAL 6.0
|
||||||
|
|
||||||
|
---
|
||||||
|
tests/libslic3r/test_emboss.cpp | 16 ++++++++++++----
|
||||||
|
1 file changed, 12 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/libslic3r/test_emboss.cpp b/tests/libslic3r/test_emboss.cpp
|
||||||
|
index 40f448f73..5b0750830 100644
|
||||||
|
--- a/tests/libslic3r/test_emboss.cpp
|
||||||
|
+++ b/tests/libslic3r/test_emboss.cpp
|
||||||
|
@@ -9,6 +9,14 @@
|
||||||
|
#include <libslic3r/IntersectionPoints.hpp>
|
||||||
|
using namespace Slic3r;
|
||||||
|
|
||||||
|
+template <typename T>
|
||||||
|
+auto access_pmap(std::optional<T> opt) -> T {
|
||||||
|
+ return opt.value();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+template <typename Pair>
|
||||||
|
+auto access_pmap(Pair pair) { return pair.first; }
|
||||||
|
+
|
||||||
|
namespace Private{
|
||||||
|
|
||||||
|
// calculate multiplication of ray dir to intersect - inspired by
|
||||||
|
@@ -906,8 +914,8 @@ TEST_CASE("Emboss extrude cut", "[Emboss-Cut]")
|
||||||
|
// identify glyph for intersected vertex
|
||||||
|
std::string vert_shape_map_name = "v:glyph_id";
|
||||||
|
MyMesh cgal_object = MeshBoolean::cgal2::to_cgal(cube, face_map_name);
|
||||||
|
- auto face_map = cgal_object.property_map<MyMesh::Face_index, int32_t>(face_map_name).first;
|
||||||
|
- auto vert_shape_map = cgal_object.add_property_map<MyMesh::Vertex_index, IntersectingElemnt>(vert_shape_map_name).first;
|
||||||
|
+ auto face_map = access_pmap(cgal_object.property_map<MyMesh::Face_index, int32_t>(face_map_name));
|
||||||
|
+ auto vert_shape_map = access_pmap(cgal_object.add_property_map<MyMesh::Vertex_index, IntersectingElemnt>(vert_shape_map_name));
|
||||||
|
|
||||||
|
std::string edge_shape_map_name = "e:glyph_id";
|
||||||
|
std::string face_shape_map_name = "f:glyph_id";
|
||||||
|
@@ -915,8 +923,8 @@ TEST_CASE("Emboss extrude cut", "[Emboss-Cut]")
|
||||||
|
|
||||||
|
MyMesh cgal_shape = MeshBoolean::cgal2::to_cgal(shape, projection, 0, edge_shape_map_name, face_shape_map_name, glyph_contours);
|
||||||
|
|
||||||
|
- auto edge_shape_map = cgal_shape.property_map<MyMesh::Edge_index, IntersectingElemnt>(edge_shape_map_name).first;
|
||||||
|
- auto face_shape_map = cgal_shape.property_map<MyMesh::Face_index, IntersectingElemnt>(face_shape_map_name).first;
|
||||||
|
+ auto edge_shape_map = access_pmap(cgal_shape.property_map<MyMesh::Edge_index, IntersectingElemnt>(edge_shape_map_name));
|
||||||
|
+ auto face_shape_map = access_pmap(cgal_shape.property_map<MyMesh::Face_index, IntersectingElemnt>(face_shape_map_name));
|
||||||
|
|
||||||
|
// bool map for affected edge
|
||||||
|
using d_prop_bool = CGAL::dynamic_edge_property_t<bool>;
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
30
PrusaSlicer-2.9.0-pr13885-printconfig-segfault.patch
Normal file
30
PrusaSlicer-2.9.0-pr13885-printconfig-segfault.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From aaa7ab6ca2b593a4f20a08292a6fb44339029474 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ryan Heule <rmheule@yahoo.com>
|
||||||
|
Date: Wed, 1 Jan 2025 16:36:04 -0600
|
||||||
|
Subject: [PATCH] Avoid null pointer dereference for partial configuration
|
||||||
|
settings
|
||||||
|
|
||||||
|
---
|
||||||
|
src/libslic3r/PrintConfig.cpp | 9 ++++++++-
|
||||||
|
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp
|
||||||
|
index 907fdfb02a..efa9be9760 100644
|
||||||
|
--- a/src/libslic3r/PrintConfig.cpp
|
||||||
|
+++ b/src/libslic3r/PrintConfig.cpp
|
||||||
|
@@ -5130,7 +5130,14 @@ void DynamicPrintConfig::normalize_fdm()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (this->has("wipe_tower_extruder")) {
|
||||||
|
+ // This method is called repeatedly while building configuration. We may
|
||||||
|
+ // not have enough info yet to determine whether the extruder is valid;
|
||||||
|
+ // wait until we do before checking.
|
||||||
|
+ //
|
||||||
|
+ // NOTE: other extruder validation (e.g. perimeter_extruder, infill_extruder)
|
||||||
|
+ // happens elsewhere, as those settings can be modified for specific print
|
||||||
|
+ // objects or sometimes even regions of objects.
|
||||||
|
+ if (this->has("wipe_tower_extruder") && this->has("nozzle_diameter")) {
|
||||||
|
// If invalid, replace with 0.
|
||||||
|
int extruder = this->opt<ConfigOptionInt>("wipe_tower_extruder")->value;
|
||||||
|
int num_extruders = this->opt<ConfigOptionFloats>("nozzle_diameter")->size();
|
46
PrusaSlicer-2.9.0-pr13896-static-libs.patch
Normal file
46
PrusaSlicer-2.9.0-pr13896-static-libs.patch
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
From a7c15a3ae9877dcf7da8c8fd80de8b128251db2b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Yuri D'Elia <wavexx@thregr.org>
|
||||||
|
Date: Fri, 3 Jan 2025 00:07:50 +0100
|
||||||
|
Subject: [PATCH] Build libslic3r-arrange/wrapper as static
|
||||||
|
|
||||||
|
Fix build on linux without SLIC3R_STATIC (these are for internal use
|
||||||
|
only).
|
||||||
|
|
||||||
|
- Avoids the need for installation (fixes
|
||||||
|
https://github.com/prusa3d/PrusaSlicer/pull/13812)
|
||||||
|
- Fixes build without PIC (fixes
|
||||||
|
https://github.com/prusa3d/PrusaSlicer/pull/13810,
|
||||||
|
https://github.com/prusa3d/PrusaSlicer/issues/13694), which would
|
||||||
|
still result in broken behavior (duplicate static initialization
|
||||||
|
crashing on startup).
|
||||||
|
---
|
||||||
|
src/slic3r-arrange-wrapper/CMakeLists.txt | 2 +-
|
||||||
|
src/slic3r-arrange/CMakeLists.txt | 2 +-
|
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/slic3r-arrange-wrapper/CMakeLists.txt b/src/slic3r-arrange-wrapper/CMakeLists.txt
|
||||||
|
index 3f723e5aed1..34b64fc2969 100644
|
||||||
|
--- a/src/slic3r-arrange-wrapper/CMakeLists.txt
|
||||||
|
+++ b/src/slic3r-arrange-wrapper/CMakeLists.txt
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
project(slic3r-arrange-wrapper)
|
||||||
|
cmake_minimum_required(VERSION 3.13)
|
||||||
|
|
||||||
|
-add_library(slic3r-arrange-wrapper
|
||||||
|
+add_library(slic3r-arrange-wrapper STATIC
|
||||||
|
include/arrange-wrapper/Arrange.hpp
|
||||||
|
include/arrange-wrapper/ArrangeSettingsDb_AppCfg.hpp
|
||||||
|
include/arrange-wrapper/ArrangeSettingsView.hpp
|
||||||
|
diff --git a/src/slic3r-arrange/CMakeLists.txt b/src/slic3r-arrange/CMakeLists.txt
|
||||||
|
index 98ab2470535..36a54ca5985 100644
|
||||||
|
--- a/src/slic3r-arrange/CMakeLists.txt
|
||||||
|
+++ b/src/slic3r-arrange/CMakeLists.txt
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
project(slic3r-arrange)
|
||||||
|
cmake_minimum_required(VERSION 3.13)
|
||||||
|
|
||||||
|
-add_library(slic3r-arrange
|
||||||
|
+add_library(slic3r-arrange STATIC
|
||||||
|
include/arrange/Beds.hpp
|
||||||
|
include/arrange/ArrangeItemTraits.hpp
|
||||||
|
include/arrange/PackingContext.hpp
|
40
PrusaSlicer-2.9.0-pr14010-fix-curl.patch
Normal file
40
PrusaSlicer-2.9.0-pr14010-fix-curl.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
From cdc3db58f9002778a0ca74517865527f50ade4c3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adam Dinwoodie <adam@dinwoodie.org>
|
||||||
|
Date: Sat, 18 Jan 2025 15:28:30 +0000
|
||||||
|
Subject: [PATCH] Handle libcurl v8+
|
||||||
|
|
||||||
|
The tests for curl versions in Http.cpp are intended to check if libcurl
|
||||||
|
is at least a given version, but they don't account for the fact that
|
||||||
|
the minor version will reset when the major version increments.
|
||||||
|
|
||||||
|
Fix this by testing LIBCURL_VERSION_NUM, which encodes the full version
|
||||||
|
as a single three-byte number, with bytes corresponding to the major,
|
||||||
|
minor and patch numbers.
|
||||||
|
|
||||||
|
Fixes #14009
|
||||||
|
---
|
||||||
|
src/slic3r/Utils/Http.cpp | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp
|
||||||
|
index 5b1ddfc7ec..de2785bc78 100644
|
||||||
|
--- a/src/slic3r/Utils/Http.cpp
|
||||||
|
+++ b/src/slic3r/Utils/Http.cpp
|
||||||
|
@@ -200,7 +200,7 @@ bool Http::priv::ca_file_supported(::CURL *curl)
|
||||||
|
|
||||||
|
if (curl == nullptr) { return res; }
|
||||||
|
|
||||||
|
-#if LIBCURL_VERSION_MAJOR >= 7 && LIBCURL_VERSION_MINOR >= 48
|
||||||
|
+#if LIBCURL_VERSION_NUM >= 0x073000 // equivalent to v7.48 or greater
|
||||||
|
::curl_tlssessioninfo *tls;
|
||||||
|
if (::curl_easy_getinfo(curl, CURLINFO_TLS_SSL_PTR, &tls) == CURLE_OK) {
|
||||||
|
if (tls->backend == CURLSSLBACKEND_SCHANNEL || tls->backend == CURLSSLBACKEND_DARWINSSL) {
|
||||||
|
@@ -364,7 +364,7 @@ void Http::priv::http_perform(const HttpRetryOpt& retry_opts)
|
||||||
|
::curl_easy_setopt(curl, CURLOPT_READFUNCTION, form_file_read_cb);
|
||||||
|
|
||||||
|
::curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L);
|
||||||
|
-#if LIBCURL_VERSION_MAJOR >= 7 && LIBCURL_VERSION_MINOR >= 32
|
||||||
|
+#if LIBCURL_VERSION_NUM >= 0x072000 // equivalent to v7.32 or higher
|
||||||
|
::curl_easy_setopt(curl, CURLOPT_XFERINFOFUNCTION, xfercb);
|
||||||
|
::curl_easy_setopt(curl, CURLOPT_XFERINFODATA, static_cast<void*>(this));
|
||||||
|
#ifndef _WIN32
|
3
PrusaSlicer-version_2.7.4.tar.gz
Normal file
3
PrusaSlicer-version_2.7.4.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:6370a9593aeac5c56543e66d167ab5fd053df55b9376392c2d6184eb0bf65fc8
|
||||||
|
size 65396083
|
3
PrusaSlicer-version_2.8.0.tar.gz
Normal file
3
PrusaSlicer-version_2.8.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:58d484f85b34d83026f8220bab983f855fbcd72767d0887f21f5cc382e5b19ab
|
||||||
|
size 69806919
|
3
PrusaSlicer-version_2.9.0.tar.gz
Normal file
3
PrusaSlicer-version_2.9.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:515a41dea3bcd2fcadb713b22e4eccfd46fbb7a7ca8dad8440e7b5e29fbbc206
|
||||||
|
size 70604482
|
911
PrusaSlicer.changes
Normal file
911
PrusaSlicer.changes
Normal file
@ -0,0 +1,911 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Feb 26 21:18:52 UTC 2025 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- Add prusaslicer-2.8.1-boost-1.87.0-asio.patch for new boost
|
||||||
|
* gh#prusa3d/PrusaSlicer#13799 gentoo#946495
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Feb 9 09:37:07 UTC 2025 - Dmitry Roshchin <dmitry_r@opensuse.org>
|
||||||
|
|
||||||
|
- Fix app notification font
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 6 10:50:53 UTC 2025 - Andreas Schneider <asn@cryptomilk.org>
|
||||||
|
|
||||||
|
- Fix building with CGAL 6.0+
|
||||||
|
- Added PrusaSlicer-2.9.0-pr13081-cgal6.0.patch
|
||||||
|
gh#prusa3d/PrusaSlicer#13081
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 21 11:00:03 UTC 2025 - Andreas Schneider <asn@cryptomilk.org>
|
||||||
|
|
||||||
|
- Fixed printables.com integration
|
||||||
|
- Added PrusaSlicer-2.9.0-pr14010-fix-curl.patch
|
||||||
|
gh#prusa3d/PrusaSlicer#14010
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 8 08:18:03 UTC 2025 - Andreas Schneider <asn@cryptomilk.org>
|
||||||
|
|
||||||
|
- Remove obsolete qhull linking workaround
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Dec 20 18:27:35 UTC 2024 - Andreas Schneider <asn@cryptomilk.org>
|
||||||
|
|
||||||
|
- Update to version 2.9.0
|
||||||
|
* This release introduces multiple beds, scarf seams, Printables integration,
|
||||||
|
improved support for multiple nozzle diameters, paint-on fuzzy skin and
|
||||||
|
many more improvements and bugfixes.
|
||||||
|
* See https://github.com/prusa3d/PrusaSlicer/releases/tag/version_2.9.0
|
||||||
|
- Added PrusaSlicer-2.9.0-pr13896-static-libs.patch
|
||||||
|
gh#prusa3d/PrusaSlicer#13896
|
||||||
|
- Added PrusaSlicer-2.9.0-pr13885-printconfig-segfault.patch
|
||||||
|
gh#prusa3d/PrusaSlicer#13885
|
||||||
|
- Removed PrusaSlicer-2.8.1-pr13609-fix-build.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Dec 15 11:12:17 UTC 2024 - Andreas Schneider <asn@cryptomilk.org>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <asn@cryptomilk.org>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- Don't include stray filesystem/convenience.hpp removed in
|
||||||
|
boost 1.85
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Apr 25 13:54:10 UTC 2024 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <mailinglists@kunz-im-inter.net>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- BuildRequire nanosvg-devel >= 2022.12.22
|
||||||
|
* only the fltk fork has nsvgRasterizeXY()
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jul 5 14:13:11 UTC 2023 - Hans-Peter Jansen <hpj@urpla.net>
|
||||||
|
|
||||||
|
- 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 <hpj@urpla.net>
|
||||||
|
|
||||||
|
- 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 <kkaempf@suse.com>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <hpj@urpla.net>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- Add PrusaSlicer-cereal.patch -- gh#prusa3d/PrusaSlicer#7809
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 31 19:04:00 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- Disable test_voronoi -- rh#2059646
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun May 8 10:03:57 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- Refresh PrusaSlicer-boost1.79.patch with upstream's fix
|
||||||
|
* gh#prusa3d/PrusaSlicer#8238
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Apr 24 09:26:22 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <hpj@urpla.net>
|
||||||
|
|
||||||
|
- Use gcc version 10 for anything but Tumbleweed
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 12 06:41:47 UTC 2022 - Adrian Schröter <adrian@suse.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <mliska@suse.cz>
|
||||||
|
|
||||||
|
- Use memoryperjob constraint instead of %limit_build macro.
|
||||||
|
- Use only 1GB for memoryperjob.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 10 08:12:10 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||||
|
|
||||||
|
- Use wxGTK3 instead of wxWidgets (GTK2), for better HiDPI and
|
||||||
|
Wayland support.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jun 16 12:09:13 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <dimstar@opensuse.org>
|
||||||
|
|
||||||
|
- BuildRequire pkgconfig(libudev) instead of libudev-devel: allow
|
||||||
|
OBS to shortcut through -mini flavors.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Mar 21 22:08:07 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- final 2.1.0
|
||||||
|
- symlink icon files instead of duplicate copy
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Sep 7 15:00:17 UTC 2019 - Benjamin Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- 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 <code@bnavigator.de>
|
||||||
|
|
||||||
|
- initial specfile
|
189
PrusaSlicer.spec
Normal file
189
PrusaSlicer.spec
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
#
|
||||||
|
# spec file for package PrusaSlicer
|
||||||
|
#
|
||||||
|
# Copyright (c) 2025 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.9.0
|
||||||
|
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-boost-1.87.0-asio.patch gh#prusa3d/PrusaSlicer#13799 gentoo#946495
|
||||||
|
Patch2: prusaslicer-2.8.1-boost-1.87.0-asio.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
|
||||||
|
# PATCH-FIX-OPENSUSE PrusaSlicer-2.9.0-pr13896-static-libs.patch gh#prusa3d/PrusaSlicer#13896
|
||||||
|
Patch12: PrusaSlicer-2.9.0-pr13896-static-libs.patch
|
||||||
|
# PATCH-FIX-OPENSUSE PrusaSlicer-2.9.0-pr13885-printconfig-segfault.patch gh#prusa3d/PrusaSlicer#13885
|
||||||
|
Patch13: PrusaSlicer-2.9.0-pr13885-printconfig-segfault.patch
|
||||||
|
# PATCH-FIX-OPENSUSE PrusaSlicer-2.9.0-pr14010-fix-curl.patch gh#prusa3d/PrusaSlicer#14010
|
||||||
|
Patch14: PrusaSlicer-2.9.0-pr14010-fix-curl.patch
|
||||||
|
# PATCH-FIX-OPENSUSE PrusaSlicer-2.9.0-pr13081-cgal6.0.patch gh#prusa3d/PrusaSlicer#13081
|
||||||
|
Patch15: PrusaSlicer-2.9.0-pr13081-cgal6.0.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: noto-sans-fonts
|
||||||
|
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: cmake(Qhull)
|
||||||
|
BuildRequires: pkgconfig(dbus-1)
|
||||||
|
BuildRequires: pkgconfig(gl)
|
||||||
|
BuildRequires: pkgconfig(glew)
|
||||||
|
BuildRequires: pkgconfig(glu)
|
||||||
|
BuildRequires: pkgconfig(libudev)
|
||||||
|
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
|
||||||
|
# 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/*
|
||||||
|
ln -s %{_datadir}/fonts/truetype/NotoSans-Regular.ttf %{buildroot}%{_datadir}/%{name}/fonts/NotoSans-Regular.ttf
|
||||||
|
|
||||||
|
# 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}/{fonts,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
|
11
_constraints
Normal file
11
_constraints
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<constraints>
|
||||||
|
<hardware>
|
||||||
|
<disk>
|
||||||
|
<size unit="G">20</size>
|
||||||
|
</disk>
|
||||||
|
<physicalmemory>
|
||||||
|
<size unit="G">16</size>
|
||||||
|
</physicalmemory>
|
||||||
|
</hardware>
|
||||||
|
</constraints>
|
370
prusaslicer-2.8.1-boost-1.87.0-asio.patch
Normal file
370
prusaslicer-2.8.1-boost-1.87.0-asio.patch
Normal file
@ -0,0 +1,370 @@
|
|||||||
|
diff '--color=auto' -urNp PrusaSlicer-version_2.8.1-orig/src/libslic3r/GCodeSender.cpp PrusaSlicer-version_2.8.1-dwok/src/libslic3r/GCodeSender.cpp
|
||||||
|
--- PrusaSlicer-version_2.8.1-orig/src/libslic3r/GCodeSender.cpp 2024-12-21 11:52:03.612595066 +0100
|
||||||
|
+++ PrusaSlicer-version_2.8.1-dwok/src/libslic3r/GCodeSender.cpp 2024-12-21 12:34:03.859507724 +0100
|
||||||
|
@@ -113,7 +113,7 @@ GCodeSender::connect(std::string devname
|
||||||
|
this->io.post(boost::bind(&GCodeSender::do_read, this));
|
||||||
|
|
||||||
|
// start reading in the background thread
|
||||||
|
- boost::thread t(boost::bind(&boost::asio::io_service::run, &this->io));
|
||||||
|
+ boost::thread t(boost::bind(&boost::asio::io_context::run, &this->io));
|
||||||
|
this->background_thread.swap(t);
|
||||||
|
|
||||||
|
// always send a M105 to check for connection because firmware might be silent on connect
|
||||||
|
diff '--color=auto' -urNp PrusaSlicer-version_2.8.1-orig/src/libslic3r/GCodeSender.hpp PrusaSlicer-version_2.8.1-dwok/src/libslic3r/GCodeSender.hpp
|
||||||
|
--- PrusaSlicer-version_2.8.1-orig/src/libslic3r/GCodeSender.hpp 2024-12-21 11:52:03.612595066 +0100
|
||||||
|
+++ PrusaSlicer-version_2.8.1-dwok/src/libslic3r/GCodeSender.hpp 2024-12-21 12:34:26.163427521 +0100
|
||||||
|
@@ -40,7 +40,7 @@ class GCodeSender : private boost::nonco
|
||||||
|
void reset();
|
||||||
|
|
||||||
|
private:
|
||||||
|
- asio::io_service io;
|
||||||
|
+ asio::io_context io;
|
||||||
|
asio::serial_port serial;
|
||||||
|
boost::thread background_thread;
|
||||||
|
boost::asio::streambuf read_buffer, write_buffer;
|
||||||
|
diff '--color=auto' -urNp PrusaSlicer-version_2.8.1-orig/src/slic3r/GUI/FirmwareDialog.cpp PrusaSlicer-version_2.8.1-dwok/src/slic3r/GUI/FirmwareDialog.cpp
|
||||||
|
--- PrusaSlicer-version_2.8.1-orig/src/slic3r/GUI/FirmwareDialog.cpp 2024-12-21 11:52:03.632594994 +0100
|
||||||
|
+++ PrusaSlicer-version_2.8.1-dwok/src/slic3r/GUI/FirmwareDialog.cpp 2024-12-21 12:33:40.507591681 +0100
|
||||||
|
@@ -429,7 +429,7 @@ void FirmwareDialog::priv::avr109_wait_f
|
||||||
|
|
||||||
|
void FirmwareDialog::priv::avr109_reboot(const SerialPortInfo &port)
|
||||||
|
{
|
||||||
|
- asio::io_service io;
|
||||||
|
+ asio::io_context io;
|
||||||
|
Serial serial(io, port.port, 1200);
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(50));
|
||||||
|
}
|
||||||
|
diff '--color=auto' -urNp PrusaSlicer-version_2.8.1-orig/src/slic3r/Utils/Bonjour.cpp PrusaSlicer-version_2.8.1-dwok/src/slic3r/Utils/Bonjour.cpp
|
||||||
|
--- PrusaSlicer-version_2.8.1-orig/src/slic3r/Utils/Bonjour.cpp 2024-12-21 11:52:03.644594950 +0100
|
||||||
|
+++ PrusaSlicer-version_2.8.1-dwok/src/slic3r/Utils/Bonjour.cpp 2024-12-21 12:47:16.560667015 +0100
|
||||||
|
@@ -624,11 +624,11 @@ UdpSession::UdpSession(Bonjour::ReplyFn
|
||||||
|
buffer.resize(DnsMessage::MAX_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
-UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multicast_address, const asio::ip::address& interface_address, std::shared_ptr< boost::asio::io_service > io_service)
|
||||||
|
+UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multicast_address, const asio::ip::address& interface_address, std::shared_ptr< boost::asio::io_context > io_context)
|
||||||
|
: replyfn(replyfn)
|
||||||
|
, multicast_address(multicast_address)
|
||||||
|
- , socket(*io_service)
|
||||||
|
- , io_service(io_service)
|
||||||
|
+ , socket(*io_context)
|
||||||
|
+ , io_context(io_context)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
// open socket
|
||||||
|
@@ -658,11 +658,11 @@ UdpSocket::UdpSocket( Bonjour::ReplyFn r
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multicast_address, std::shared_ptr< boost::asio::io_service > io_service)
|
||||||
|
+UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multicast_address, std::shared_ptr< boost::asio::io_context > io_context)
|
||||||
|
: replyfn(replyfn)
|
||||||
|
, multicast_address(multicast_address)
|
||||||
|
- , socket(*io_service)
|
||||||
|
- , io_service(io_service)
|
||||||
|
+ , socket(*io_context)
|
||||||
|
+ , io_context(io_context)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
// open socket
|
||||||
|
@@ -714,7 +714,7 @@ void UdpSocket::receive_handler(SharedSe
|
||||||
|
// let io_service to handle the datagram on session
|
||||||
|
// from boost documentation io_service::post:
|
||||||
|
// The io_service guarantees that the handler will only be called in a thread in which the run(), run_one(), poll() or poll_one() member functions is currently being invoked.
|
||||||
|
- io_service->post(boost::bind(&UdpSession::handle_receive, session, error, bytes));
|
||||||
|
+ boost::asio::post(*io_context, boost::bind(&UdpSession::handle_receive, session, error, bytes));
|
||||||
|
// immediately accept new datagrams
|
||||||
|
async_receive();
|
||||||
|
}
|
||||||
|
@@ -871,13 +871,13 @@ void Bonjour::priv::lookup_perform()
|
||||||
|
{
|
||||||
|
service_dn = (boost::format("_%1%._%2%.local") % service % protocol).str();
|
||||||
|
|
||||||
|
- std::shared_ptr< boost::asio::io_service > io_service(new boost::asio::io_service);
|
||||||
|
+ std::shared_ptr< boost::asio::io_context > io_context(new boost::asio::io_context);
|
||||||
|
|
||||||
|
std::vector<LookupSocket*> sockets;
|
||||||
|
|
||||||
|
// resolve intefaces - from PR#6646
|
||||||
|
std::vector<boost::asio::ip::address> interfaces;
|
||||||
|
- asio::ip::udp::resolver resolver(*io_service);
|
||||||
|
+ asio::ip::udp::resolver resolver(*io_context);
|
||||||
|
boost::system::error_code ec;
|
||||||
|
// ipv4 interfaces
|
||||||
|
auto results = resolver.resolve(udp::v4(), asio::ip::host_name(), "", ec);
|
||||||
|
@@ -890,12 +890,12 @@ void Bonjour::priv::lookup_perform()
|
||||||
|
// create ipv4 socket for each interface
|
||||||
|
// each will send to querry to for both ipv4 and ipv6
|
||||||
|
for (const auto& intrfc : interfaces)
|
||||||
|
- sockets.emplace_back(new LookupSocket(txt_keys, service, service_dn, protocol, replyfn, BonjourRequest::MCAST_IP4, intrfc, io_service));
|
||||||
|
+ sockets.emplace_back(new LookupSocket(txt_keys, service, service_dn, protocol, replyfn, BonjourRequest::MCAST_IP4, intrfc, io_context));
|
||||||
|
} else {
|
||||||
|
BOOST_LOG_TRIVIAL(info) << "Failed to resolve ipv4 interfaces: " << ec.message();
|
||||||
|
}
|
||||||
|
if (sockets.empty())
|
||||||
|
- sockets.emplace_back(new LookupSocket(txt_keys, service, service_dn, protocol, replyfn, BonjourRequest::MCAST_IP4, io_service));
|
||||||
|
+ sockets.emplace_back(new LookupSocket(txt_keys, service, service_dn, protocol, replyfn, BonjourRequest::MCAST_IP4, io_context));
|
||||||
|
// ipv6 interfaces
|
||||||
|
interfaces.clear();
|
||||||
|
//udp::resolver::query query(host, PORT, boost::asio::ip::resolver_query_base::numeric_service);
|
||||||
|
@@ -910,9 +910,9 @@ void Bonjour::priv::lookup_perform()
|
||||||
|
// create ipv6 socket for each interface
|
||||||
|
// each will send to querry to for both ipv4 and ipv6
|
||||||
|
for (const auto& intrfc : interfaces)
|
||||||
|
- sockets.emplace_back(new LookupSocket(txt_keys, service, service_dn, protocol, replyfn, BonjourRequest::MCAST_IP6, intrfc, io_service));
|
||||||
|
+ sockets.emplace_back(new LookupSocket(txt_keys, service, service_dn, protocol, replyfn, BonjourRequest::MCAST_IP6, intrfc, io_context));
|
||||||
|
if (interfaces.empty())
|
||||||
|
- sockets.emplace_back(new LookupSocket(txt_keys, service, service_dn, protocol, replyfn, BonjourRequest::MCAST_IP6, io_service));
|
||||||
|
+ sockets.emplace_back(new LookupSocket(txt_keys, service, service_dn, protocol, replyfn, BonjourRequest::MCAST_IP6, io_context));
|
||||||
|
} else {
|
||||||
|
BOOST_LOG_TRIVIAL(info)<< "Failed to resolve ipv6 interfaces: " << ec.message();
|
||||||
|
}
|
||||||
|
@@ -923,13 +923,13 @@ void Bonjour::priv::lookup_perform()
|
||||||
|
socket->send();
|
||||||
|
|
||||||
|
// timer settings
|
||||||
|
- asio::deadline_timer timer(*io_service);
|
||||||
|
+ asio::deadline_timer timer(*io_context);
|
||||||
|
retries--;
|
||||||
|
std::function<void(const error_code&)> timer_handler = [&](const error_code& error) {
|
||||||
|
// end
|
||||||
|
if (retries == 0 || error) {
|
||||||
|
// is this correct ending?
|
||||||
|
- io_service->stop();
|
||||||
|
+ io_context->stop();
|
||||||
|
if (completefn) {
|
||||||
|
completefn();
|
||||||
|
}
|
||||||
|
@@ -947,7 +947,7 @@ void Bonjour::priv::lookup_perform()
|
||||||
|
timer.expires_from_now(boost::posix_time::seconds(timeout));
|
||||||
|
timer.async_wait(timer_handler);
|
||||||
|
// start io_service, it will run until it has something to do - so in this case until stop is called in timer
|
||||||
|
- io_service->run();
|
||||||
|
+ io_context->run();
|
||||||
|
}
|
||||||
|
catch (std::exception& e) {
|
||||||
|
BOOST_LOG_TRIVIAL(error) << e.what();
|
||||||
|
@@ -966,12 +966,12 @@ void Bonjour::priv::resolve_perform()
|
||||||
|
rpls.push_back(reply);
|
||||||
|
};
|
||||||
|
|
||||||
|
- std::shared_ptr< boost::asio::io_service > io_service(new boost::asio::io_service);
|
||||||
|
+ std::shared_ptr< boost::asio::io_context > io_context(new boost::asio::io_context);
|
||||||
|
std::vector<ResolveSocket*> sockets;
|
||||||
|
|
||||||
|
// resolve interfaces - from PR#6646
|
||||||
|
std::vector<boost::asio::ip::address> interfaces;
|
||||||
|
- asio::ip::udp::resolver resolver(*io_service);
|
||||||
|
+ asio::ip::udp::resolver resolver(*io_context);
|
||||||
|
boost::system::error_code ec;
|
||||||
|
// ipv4 interfaces
|
||||||
|
auto results = resolver.resolve(udp::v4(), asio::ip::host_name(), "", ec);
|
||||||
|
@@ -984,12 +984,12 @@ void Bonjour::priv::resolve_perform()
|
||||||
|
// create ipv4 socket for each interface
|
||||||
|
// each will send to querry to for both ipv4 and ipv6
|
||||||
|
for (const auto& intrfc : interfaces)
|
||||||
|
- sockets.emplace_back(new ResolveSocket(hostname, reply_callback, BonjourRequest::MCAST_IP4, intrfc, io_service));
|
||||||
|
+ sockets.emplace_back(new ResolveSocket(hostname, reply_callback, BonjourRequest::MCAST_IP4, intrfc, io_context));
|
||||||
|
} else {
|
||||||
|
BOOST_LOG_TRIVIAL(info) << "Failed to resolve ipv4 interfaces: " << ec.message();
|
||||||
|
}
|
||||||
|
if (sockets.empty())
|
||||||
|
- sockets.emplace_back(new ResolveSocket(hostname, reply_callback, BonjourRequest::MCAST_IP4, io_service));
|
||||||
|
+ sockets.emplace_back(new ResolveSocket(hostname, reply_callback, BonjourRequest::MCAST_IP4, io_context));
|
||||||
|
|
||||||
|
// ipv6 interfaces
|
||||||
|
interfaces.clear();
|
||||||
|
@@ -1003,9 +1003,9 @@ void Bonjour::priv::resolve_perform()
|
||||||
|
// create ipv6 socket for each interface
|
||||||
|
// each will send to querry to for both ipv4 and ipv6
|
||||||
|
for (const auto& intrfc : interfaces)
|
||||||
|
- sockets.emplace_back(new ResolveSocket(hostname, reply_callback, BonjourRequest::MCAST_IP6, intrfc, io_service));
|
||||||
|
+ sockets.emplace_back(new ResolveSocket(hostname, reply_callback, BonjourRequest::MCAST_IP6, intrfc, io_context));
|
||||||
|
if (interfaces.empty())
|
||||||
|
- sockets.emplace_back(new ResolveSocket(hostname, reply_callback, BonjourRequest::MCAST_IP6, io_service));
|
||||||
|
+ sockets.emplace_back(new ResolveSocket(hostname, reply_callback, BonjourRequest::MCAST_IP6, io_context));
|
||||||
|
} else {
|
||||||
|
BOOST_LOG_TRIVIAL(info) << "Failed to resolve ipv6 interfaces: " << ec.message();
|
||||||
|
}
|
||||||
|
@@ -1016,14 +1016,14 @@ void Bonjour::priv::resolve_perform()
|
||||||
|
socket->send();
|
||||||
|
|
||||||
|
// timer settings
|
||||||
|
- asio::deadline_timer timer(*io_service);
|
||||||
|
+ asio::deadline_timer timer(*io_context);
|
||||||
|
retries--;
|
||||||
|
std::function<void(const error_code&)> timer_handler = [&](const error_code& error) {
|
||||||
|
int replies_count = replies.size();
|
||||||
|
// end
|
||||||
|
if (retries == 0 || error || replies_count > 0) {
|
||||||
|
// is this correct ending?
|
||||||
|
- io_service->stop();
|
||||||
|
+ io_context->stop();
|
||||||
|
if (replies_count > 0 && resolvefn) {
|
||||||
|
resolvefn(replies);
|
||||||
|
}
|
||||||
|
@@ -1041,7 +1041,7 @@ void Bonjour::priv::resolve_perform()
|
||||||
|
timer.expires_from_now(boost::posix_time::seconds(timeout));
|
||||||
|
timer.async_wait(timer_handler);
|
||||||
|
// start io_service, it will run until it has something to do - so in this case until stop is called in timer
|
||||||
|
- io_service->run();
|
||||||
|
+ io_context->run();
|
||||||
|
}
|
||||||
|
catch (std::exception& e) {
|
||||||
|
BOOST_LOG_TRIVIAL(error) << e.what();
|
||||||
|
diff '--color=auto' -urNp PrusaSlicer-version_2.8.1-orig/src/slic3r/Utils/Bonjour.hpp PrusaSlicer-version_2.8.1-dwok/src/slic3r/Utils/Bonjour.hpp
|
||||||
|
--- PrusaSlicer-version_2.8.1-orig/src/slic3r/Utils/Bonjour.hpp 2024-12-21 11:52:03.644594950 +0100
|
||||||
|
+++ PrusaSlicer-version_2.8.1-dwok/src/slic3r/Utils/Bonjour.hpp 2024-12-21 12:23:16.573836269 +0100
|
||||||
|
@@ -155,11 +155,11 @@ public:
|
||||||
|
UdpSocket(Bonjour::ReplyFn replyfn
|
||||||
|
, const boost::asio::ip::address& multicast_address
|
||||||
|
, const boost::asio::ip::address& interface_address
|
||||||
|
- , std::shared_ptr< boost::asio::io_service > io_service);
|
||||||
|
+ , std::shared_ptr< boost::asio::io_context > io_context);
|
||||||
|
|
||||||
|
UdpSocket(Bonjour::ReplyFn replyfn
|
||||||
|
, const boost::asio::ip::address& multicast_address
|
||||||
|
- , std::shared_ptr< boost::asio::io_service > io_service);
|
||||||
|
+ , std::shared_ptr< boost::asio::io_context > io_context);
|
||||||
|
|
||||||
|
void send();
|
||||||
|
void async_receive();
|
||||||
|
@@ -172,7 +172,7 @@ protected:
|
||||||
|
boost::asio::ip::address multicast_address;
|
||||||
|
boost::asio::ip::udp::socket socket;
|
||||||
|
boost::asio::ip::udp::endpoint mcast_endpoint;
|
||||||
|
- std::shared_ptr< boost::asio::io_service > io_service;
|
||||||
|
+ std::shared_ptr< boost::asio::io_context > io_context;
|
||||||
|
std::vector<BonjourRequest> requests;
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -186,8 +186,8 @@ public:
|
||||||
|
, Bonjour::ReplyFn replyfn
|
||||||
|
, const boost::asio::ip::address& multicast_address
|
||||||
|
, const boost::asio::ip::address& interface_address
|
||||||
|
- , std::shared_ptr< boost::asio::io_service > io_service)
|
||||||
|
- : UdpSocket(replyfn, multicast_address, interface_address, io_service)
|
||||||
|
+ , std::shared_ptr< boost::asio::io_context > io_context)
|
||||||
|
+ : UdpSocket(replyfn, multicast_address, interface_address, io_context)
|
||||||
|
, txt_keys(txt_keys)
|
||||||
|
, service(service)
|
||||||
|
, service_dn(service_dn)
|
||||||
|
@@ -203,8 +203,8 @@ public:
|
||||||
|
, std::string protocol
|
||||||
|
, Bonjour::ReplyFn replyfn
|
||||||
|
, const boost::asio::ip::address& multicast_address
|
||||||
|
- , std::shared_ptr< boost::asio::io_service > io_service)
|
||||||
|
- : UdpSocket(replyfn, multicast_address, io_service)
|
||||||
|
+ , std::shared_ptr< boost::asio::io_context > io_context)
|
||||||
|
+ : UdpSocket(replyfn, multicast_address, io_context)
|
||||||
|
, txt_keys(txt_keys)
|
||||||
|
, service(service)
|
||||||
|
, service_dn(service_dn)
|
||||||
|
@@ -241,8 +241,8 @@ public:
|
||||||
|
, Bonjour::ReplyFn replyfn
|
||||||
|
, const boost::asio::ip::address& multicast_address
|
||||||
|
, const boost::asio::ip::address& interface_address
|
||||||
|
- , std::shared_ptr< boost::asio::io_service > io_service)
|
||||||
|
- : UdpSocket(replyfn, multicast_address, interface_address, io_service)
|
||||||
|
+ , std::shared_ptr< boost::asio::io_context > io_context)
|
||||||
|
+ : UdpSocket(replyfn, multicast_address, interface_address, io_context)
|
||||||
|
, hostname(hostname)
|
||||||
|
|
||||||
|
{
|
||||||
|
@@ -253,8 +253,8 @@ public:
|
||||||
|
ResolveSocket(const std::string& hostname
|
||||||
|
, Bonjour::ReplyFn replyfn
|
||||||
|
, const boost::asio::ip::address& multicast_address
|
||||||
|
- , std::shared_ptr< boost::asio::io_service > io_service)
|
||||||
|
- : UdpSocket(replyfn, multicast_address, io_service)
|
||||||
|
+ , std::shared_ptr< boost::asio::io_context > io_context)
|
||||||
|
+ : UdpSocket(replyfn, multicast_address, io_context)
|
||||||
|
, hostname(hostname)
|
||||||
|
|
||||||
|
{
|
||||||
|
diff '--color=auto' -urNp PrusaSlicer-version_2.8.1-orig/src/slic3r/Utils/Serial.cpp PrusaSlicer-version_2.8.1-dwok/src/slic3r/Utils/Serial.cpp
|
||||||
|
--- PrusaSlicer-version_2.8.1-orig/src/slic3r/Utils/Serial.cpp 2024-12-21 11:52:03.644594950 +0100
|
||||||
|
+++ PrusaSlicer-version_2.8.1-dwok/src/slic3r/Utils/Serial.cpp 2024-12-21 11:59:40.018945840 +0100
|
||||||
|
@@ -282,12 +282,12 @@ std::vector<std::string> scan_serial_por
|
||||||
|
namespace asio = boost::asio;
|
||||||
|
using boost::system::error_code;
|
||||||
|
|
||||||
|
-Serial::Serial(asio::io_service& io_service) :
|
||||||
|
- asio::serial_port(io_service)
|
||||||
|
+Serial::Serial(asio::io_context &io_context) :
|
||||||
|
+ asio::serial_port(io_context)
|
||||||
|
{}
|
||||||
|
|
||||||
|
-Serial::Serial(asio::io_service& io_service, const std::string &name, unsigned baud_rate) :
|
||||||
|
- asio::serial_port(io_service, name)
|
||||||
|
+Serial::Serial(asio::io_context &io_context, const std::string &name, unsigned baud_rate) :
|
||||||
|
+ asio::serial_port(io_context, name)
|
||||||
|
{
|
||||||
|
set_baud_rate(baud_rate);
|
||||||
|
}
|
||||||
|
@@ -390,19 +390,19 @@ void Serial::reset_line_num()
|
||||||
|
|
||||||
|
bool Serial::read_line(unsigned timeout, std::string &line, error_code &ec)
|
||||||
|
{
|
||||||
|
- auto& io_service =
|
||||||
|
+ auto& io_context =
|
||||||
|
#if BOOST_VERSION >= 107000
|
||||||
|
//FIXME this is most certainly wrong!
|
||||||
|
(boost::asio::io_context&)this->get_executor().context();
|
||||||
|
#else
|
||||||
|
this->get_io_service();
|
||||||
|
#endif
|
||||||
|
- asio::deadline_timer timer(io_service);
|
||||||
|
+ asio::deadline_timer timer(io_context);
|
||||||
|
char c = 0;
|
||||||
|
bool fail = false;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
- io_service.reset();
|
||||||
|
+ io_context.reset();
|
||||||
|
|
||||||
|
asio::async_read(*this, boost::asio::buffer(&c, 1), [&](const error_code &read_ec, size_t size) {
|
||||||
|
if (ec || size == 0) {
|
||||||
|
@@ -423,7 +423,7 @@ bool Serial::read_line(unsigned timeout,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
- io_service.run();
|
||||||
|
+ io_context.run();
|
||||||
|
|
||||||
|
if (fail) {
|
||||||
|
return false;
|
||||||
|
diff '--color=auto' -urNp PrusaSlicer-version_2.8.1-orig/src/slic3r/Utils/Serial.hpp PrusaSlicer-version_2.8.1-dwok/src/slic3r/Utils/Serial.hpp
|
||||||
|
--- PrusaSlicer-version_2.8.1-orig/src/slic3r/Utils/Serial.hpp 2024-12-21 11:52:03.644594950 +0100
|
||||||
|
+++ PrusaSlicer-version_2.8.1-dwok/src/slic3r/Utils/Serial.hpp 2024-12-21 11:55:33.283837413 +0100
|
||||||
|
@@ -43,8 +43,8 @@ extern std::vector<SerialPortInfo> scan
|
||||||
|
class Serial : public boost::asio::serial_port
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
- Serial(boost::asio::io_service &io_service);
|
||||||
|
- Serial(boost::asio::io_service &io_service, const std::string &name, unsigned baud_rate);
|
||||||
|
+ Serial(boost::asio::io_context &io_context);
|
||||||
|
+ Serial(boost::asio::io_context &io_context, const std::string &name, unsigned baud_rate);
|
||||||
|
Serial(const Serial &) = delete;
|
||||||
|
Serial &operator=(const Serial &) = delete;
|
||||||
|
~Serial();
|
||||||
|
diff '--color=auto' -urNp PrusaSlicer-version_2.8.1-orig/src/slic3r/Utils/TCPConsole.cpp PrusaSlicer-version_2.8.1-dwok/src/slic3r/Utils/TCPConsole.cpp
|
||||||
|
--- PrusaSlicer-version_2.8.1-orig/src/slic3r/Utils/TCPConsole.cpp 2024-12-21 11:52:03.644594950 +0100
|
||||||
|
+++ PrusaSlicer-version_2.8.1-dwok/src/slic3r/Utils/TCPConsole.cpp 2024-12-21 13:00:56.377754763 +0100
|
||||||
|
@@ -9,6 +9,7 @@
|
||||||
|
#include <boost/asio/read_until.hpp>
|
||||||
|
#include <boost/asio/steady_timer.hpp>
|
||||||
|
#include <boost/asio/write.hpp>
|
||||||
|
+#include <boost/asio/connect.hpp>
|
||||||
|
#include <boost/bind/bind.hpp>
|
||||||
|
#include <boost/format.hpp>
|
||||||
|
#include <boost/log/trivial.hpp>
|
||||||
|
@@ -161,7 +162,7 @@ bool TCPConsole::run_queue()
|
||||||
|
|
||||||
|
auto endpoints = m_resolver.resolve(m_host_name, m_port_name);
|
||||||
|
|
||||||
|
- m_socket.async_connect(endpoints->endpoint(),
|
||||||
|
+ boost::asio::async_connect(m_socket, endpoints,
|
||||||
|
boost::bind(&TCPConsole::handle_connect, this, boost::placeholders::_1)
|
||||||
|
);
|
||||||
|
|
28
up-occt-version.patch
Normal file
28
up-occt-version.patch
Normal file
@ -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}")
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user