Accepting request 1099891 from science

- Require wxWidgets >= 3.1.6
  * Add PrusaSlicer-drop-wx3.0.patch
  * gh#prusa3d/PrusaSlicer#11026, gh#prusa3d/PrusaSlicer#11027 (forwarded request 1099890 from bnavigator)

OBS-URL: https://build.opensuse.org/request/show/1099891
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/PrusaSlicer?expand=0&rev=28
This commit is contained in:
Ana Guerrero 2023-07-25 09:29:34 +00:00 committed by Git OBS Bridge
commit 3a1bd3d4c8
10 changed files with 243 additions and 252 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e58278067b9d49a42dc9bb02b74307b3cb365bb737f28e246ca8c6f466095d6b
size 49039089

View File

@ -0,0 +1,13 @@
Index: b/src/slic3r/Utils/OctoPrint.cpp
===================================================================
--- a/src/slic3r/Utils/OctoPrint.cpp
+++ b/src/slic3r/Utils/OctoPrint.cpp
@@ -746,7 +746,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));

View File

@ -0,0 +1,76 @@
From 24a5ebd65c9d25a0fd69a3716d079fd1b00eb15c Mon Sep 17 00:00:00 2001
From: Pascal de Bruijn <pmjdebruijn@pcode.nl>
Date: Wed, 14 Jun 2023 19:56:35 +0200
Subject: [PATCH] wxWidgets: CheckResizerFlags assert fix
./src/common/sizer.cpp(2258): assert "CheckSizerFlags(!((flags) & (wxALIGN_CENTRE_VERTICAL)))"
failed in DoInsert(): wxALIGN_CENTRE_VERTICAL will be ignored in this sizer:
wxEXPAND overrides alignment flags in box sizers
---
src/slic3r/GUI/Field.cpp | 2 +-
src/slic3r/GUI/FirmwareDialog.cpp | 2 +-
src/slic3r/GUI/Tab.cpp | 4 ++--
src/slic3r/GUI/WipeTowerDialog.cpp | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp
index 74ad028d363..6789ce24cb5 100644
--- a/src/slic3r/GUI/Field.cpp
+++ b/src/slic3r/GUI/Field.cpp
@@ -1660,7 +1660,7 @@ void SliderCtrl::BUILD()
m_textctrl->SetFont(Slic3r::GUI::wxGetApp().normal_font());
m_textctrl->SetBackgroundStyle(wxBG_STYLE_PAINT);
- temp->Add(m_slider, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL, 0);
+ temp->Add(m_slider, 1, wxEXPAND, 0);
temp->Add(m_textctrl, 0, wxALIGN_CENTER_VERTICAL, 0);
m_slider->Bind(wxEVT_SLIDER, ([this](wxCommandEvent e) {
diff --git a/src/slic3r/GUI/FirmwareDialog.cpp b/src/slic3r/GUI/FirmwareDialog.cpp
index 47402644f4b..46d2fdb60d1 100644
--- a/src/slic3r/GUI/FirmwareDialog.cpp
+++ b/src/slic3r/GUI/FirmwareDialog.cpp
@@ -841,7 +841,7 @@ FirmwareDialog::FirmwareDialog(wxWindow *parent) :
grid->Add(port_sizer, 0, wxEXPAND);
grid->Add(label_progress, 0, wxALIGN_CENTER_VERTICAL);
- grid->Add(p->progressbar, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
+ grid->Add(p->progressbar, 1, wxEXPAND);
grid->Add(label_status, 0, wxALIGN_CENTER_VERTICAL);
grid->Add(p->txt_status, 0, wxEXPAND);
diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp
index 184b8af707f..c95fcd44219 100644
--- a/src/slic3r/GUI/Tab.cpp
+++ b/src/slic3r/GUI/Tab.cpp
@@ -217,7 +217,7 @@ void Tab::create_preset_tab()
const float scale_factor = em_unit(this)*0.1;// GetContentScaleFactor();
m_top_hsizer = new wxBoxSizer(wxHORIZONTAL);
- sizer->Add(m_top_hsizer, 0, wxEXPAND | wxBOTTOM | wxALIGN_CENTER_VERTICAL, 3);
+ sizer->Add(m_top_hsizer, 0, wxEXPAND | wxBOTTOM, 3);
m_top_hsizer->Add(m_presets_choice, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, 3);
m_top_hsizer->AddSpacer(int(4*scale_factor));
@@ -243,7 +243,7 @@ void Tab::create_preset_tab()
m_h_buttons_sizer->AddSpacer(int(8*scale_factor));
m_h_buttons_sizer->Add(m_btn_compare_preset, 0, wxALIGN_CENTER_VERTICAL);
- m_top_hsizer->Add(m_h_buttons_sizer, 1, wxEXPAND | wxALIGN_CENTRE_VERTICAL);
+ m_top_hsizer->Add(m_h_buttons_sizer, 1, wxEXPAND);
m_top_hsizer->AddSpacer(int(16*scale_factor));
// StretchSpacer has a strange behavior under OSX, so
// There is used just additional sizer for m_mode_sizer with right alignment
diff --git a/src/slic3r/GUI/WipeTowerDialog.cpp b/src/slic3r/GUI/WipeTowerDialog.cpp
index 4d117ff8d62..6d48daa6292 100644
--- a/src/slic3r/GUI/WipeTowerDialog.cpp
+++ b/src/slic3r/GUI/WipeTowerDialog.cpp
@@ -353,7 +353,7 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::vector<float>& matrix, con
hsizer->AddSpacer(10);
hsizer->Add(new wxStaticText(m_page_simple, wxID_ANY, wxString(_(L("Tool #"))) << i + 1 << ": "), 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
- gridsizer_simple->Add(hsizer, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL);
+ gridsizer_simple->Add(hsizer, 1, wxEXPAND);
gridsizer_simple->Add(m_old.back(),0);
gridsizer_simple->Add(m_new.back(),0);
}

View File

@ -1,112 +0,0 @@
From 408e56f0390f20aaf793e0aa0c70c4d9544401d4 Mon Sep 17 00:00:00 2001
From: Vojtech Bubnik <bubnikv@gmail.com>
Date: Mon, 25 Apr 2022 08:33:48 +0200
Subject: [PATCH] Fix of Boost 1.79 deprecated boost::filesystem::ofstream
#8238 Replacing boost::filesystem::fstream with boost::nowide::fstream
variants with the unfortunate cost of string path conversion on Windows from
16 bits to UTF8 and back to 16 bits.
Unfortunately we cannot use std::filesystem yet as it is missing
on older MACs and because the interface is crooked minefield on Windows
see https://github.com/microsoft/STL/issues/909
---
src/hints/HintsToPot.cpp | 2 +-
src/libslic3r/Preset.cpp | 2 +-
src/slic3r/GUI/HintNotification.cpp | 8 +++++---
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/hints/HintsToPot.cpp b/src/hints/HintsToPot.cpp
index 7c8029cdeb..4791f0612f 100644
--- a/src/hints/HintsToPot.cpp
+++ b/src/hints/HintsToPot.cpp
@@ -9,7 +9,7 @@
bool write_to_pot(boost::filesystem::path path, const std::vector<std::pair<std::string, std::string>>& data)
{
- boost::filesystem::ofstream file(std::move(path), std::ios_base::app);
+ boost::nowide::ofstream file(path.string(), std::ios_base::app);
for (const auto& element : data)
{
//Example of .pot element
diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
index f3a1c15b3e..f171cb14dd 100644
--- a/src/libslic3r/Preset.cpp
+++ b/src/libslic3r/Preset.cpp
@@ -84,7 +84,7 @@ ConfigFileType guess_config_file_type(const ptree &tree)
VendorProfile VendorProfile::from_ini(const boost::filesystem::path &path, bool load_all)
{
ptree tree;
- boost::filesystem::ifstream ifs(path);
+ boost::nowide::ifstream ifs(path.string());
boost::property_tree::read_ini(ifs, tree);
return VendorProfile::from_ini(tree, path, load_all);
}
diff --git a/src/slic3r/GUI/HintNotification.cpp b/src/slic3r/GUI/HintNotification.cpp
index 93e0fb3259..820b74eedb 100644
--- a/src/slic3r/GUI/HintNotification.cpp
+++ b/src/slic3r/GUI/HintNotification.cpp
@@ -14,12 +14,14 @@
#include "libslic3r/Config.hpp"
#include "libslic3r/PrintConfig.hpp"
+#include <map>
+
#include <boost/algorithm/string/replace.hpp>
#include <boost/filesystem.hpp>
#include <boost/nowide/fstream.hpp>
#include <boost/log/trivial.hpp>
#include <boost/property_tree/ini_parser.hpp>
-#include <map>
+
#include <cereal/archives/binary.hpp>
#include <cereal/types/string.hpp>
#include <cereal/types/vector.hpp>
@@ -65,7 +67,7 @@ inline void push_style_color(ImGuiCol idx, const ImVec4& col, bool fading_out, f
void write_used_binary(const std::vector<std::string>& ids)
{
- boost::filesystem::ofstream file((boost::filesystem::path(data_dir()) / "cache" / "hints.cereal"), std::ios::binary);
+ boost::nowide::ofstream file((boost::filesystem::path(data_dir()) / "cache" / "hints.cereal").string(), std::ios::binary);
cereal::BinaryOutputArchive archive(file);
HintsCerealData cd { ids };
try
@@ -84,7 +86,7 @@ void read_used_binary(std::vector<std::string>& ids)
BOOST_LOG_TRIVIAL(warning) << "Failed to load to hints.cereal. File does not exists. " << path.string();
return;
}
- boost::filesystem::ifstream file(path);
+ boost::nowide::ifstream file(path.string());
cereal::BinaryInputArchive archive(file);
HintsCerealData cd;
try
From 926ae0471800abd1e5335e251a5934570eb8f6ff Mon Sep 17 00:00:00 2001
From: Vojtech Bubnik <bubnikv@gmail.com>
Date: Mon, 25 Apr 2022 11:32:03 +0200
Subject: [PATCH] Follow-up to 408e56f0390f20aaf793e0aa0c70c4d9544401d4 Fixing
compilation of tests on latest GCC/boost
---
tests/fff_print/test_data.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tests/fff_print/test_data.cpp b/tests/fff_print/test_data.cpp
index 32e31c264c..f7077007db 100644
--- a/tests/fff_print/test_data.cpp
+++ b/tests/fff_print/test_data.cpp
@@ -11,6 +11,7 @@
#include <string>
#include <boost/nowide/cstdio.hpp>
+#include <boost/nowide/fstream.hpp>
#include <boost/filesystem.hpp>
#include <libslic3r/ModelArrange.hpp>
@@ -286,7 +287,7 @@ std::string gcode(Print & print)
print.set_status_silent();
print.process();
print.export_gcode(temp.string(), nullptr, nullptr);
- std::ifstream t(temp.string());
+ boost::nowide::ifstream t(temp.string());
std::string str((std::istreambuf_iterator<char>(t)), std::istreambuf_iterator<char>());
boost::nowide::remove(temp.string().c_str());
return str;

View File

@ -1,69 +0,0 @@
From 0ffcfd8393457fd035576436752267c9a1e6bbcc Mon Sep 17 00:00:00 2001
From: Yuri D'Elia <wavexx@thregr.org>
Date: Mon, 24 Jan 2022 20:21:24 +0100
Subject: [PATCH] Use namespaces to link against libcereal >= 1.3.1
Create an alias for previous versions.
---
CMakeLists.txt | 3 +++
src/CMakeLists.txt | 2 +-
src/libslic3r/CMakeLists.txt | 2 +-
src/slic3r/CMakeLists.txt | 2 +-
4 files changed, 6 insertions(+), 3 deletions(-)
Index: PrusaSlicer-version_2.4.2/CMakeLists.txt
===================================================================
--- PrusaSlicer-version_2.4.2.orig/CMakeLists.txt
+++ PrusaSlicer-version_2.4.2/CMakeLists.txt
@@ -474,6 +474,12 @@ endif ()
# Find the Cereal serialization library
find_package(cereal REQUIRED)
+add_library(libcereal INTERFACE)
+if (NOT TARGET cereal::cereal)
+ target_link_libraries(libcereal INTERFACE cereal)
+else()
+ target_link_libraries(libcereal INTERFACE cereal::cereal)
+endif()
# l10n
set(L10N_DIR "${SLIC3R_RESOURCES_DIR}/localization")
Index: PrusaSlicer-version_2.4.2/src/CMakeLists.txt
===================================================================
--- PrusaSlicer-version_2.4.2.orig/src/CMakeLists.txt
+++ PrusaSlicer-version_2.4.2/src/CMakeLists.txt
@@ -125,7 +125,7 @@ if (NOT WIN32 AND NOT APPLE)
set_target_properties(PrusaSlicer PROPERTIES OUTPUT_NAME "prusa-slicer")
endif ()
-target_link_libraries(PrusaSlicer libslic3r cereal)
+target_link_libraries(PrusaSlicer libslic3r libcereal)
if (APPLE)
# add_compile_options(-stdlib=libc++)
Index: PrusaSlicer-version_2.4.2/src/libslic3r/CMakeLists.txt
===================================================================
--- PrusaSlicer-version_2.4.2.orig/src/libslic3r/CMakeLists.txt
+++ PrusaSlicer-version_2.4.2/src/libslic3r/CMakeLists.txt
@@ -337,7 +337,7 @@ target_include_directories(libslic3r PUB
target_link_libraries(libslic3r
libnest2d
admesh
- cereal
+ libcereal
libigl
miniz
boost_libs
Index: PrusaSlicer-version_2.4.2/src/slic3r/CMakeLists.txt
===================================================================
--- PrusaSlicer-version_2.4.2.orig/src/slic3r/CMakeLists.txt
+++ PrusaSlicer-version_2.4.2/src/slic3r/CMakeLists.txt
@@ -260,7 +260,7 @@ add_library(libslic3r_gui STATIC ${SLIC3
encoding_check(libslic3r_gui)
-target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
+target_link_libraries(libslic3r_gui libslic3r avrdude libcereal imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
if (MSVC)
target_link_libraries(libslic3r_gui Setupapi.lib)

View File

@ -0,0 +1,85 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 49fe3437f..aa297b03b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,7 +26,6 @@ endif()
option(SLIC3R_STATIC "Compile PrusaSlicer with static libraries (Boost, TBB, glew)" ${SLIC3R_STATIC_INITIAL})
option(SLIC3R_GUI "Compile PrusaSlicer with GUI components (OpenGL, wxWidgets)" 1)
option(SLIC3R_FHS "Assume PrusaSlicer is to be installed in a FHS directory structure" 0)
-option(SLIC3R_WX_STABLE "Build against wxWidgets stable (3.0) as oppsed to dev (3.1) on Linux" 0)
option(SLIC3R_PCH "Use precompiled headers" 1)
option(SLIC3R_MSVC_COMPILE_PARALLEL "Compile on Visual Studio in parallel" 1)
option(SLIC3R_MSVC_PDB "Generate PDB files on MSVC in Release mode" 1)
diff --git a/doc/Dependencies.md b/doc/Dependencies.md
index d8ced6318..5645e7169 100644
--- a/doc/Dependencies.md
+++ b/doc/Dependencies.md
@@ -1,7 +1,7 @@
# Dependency report for PrusaSlicer
## Possible dynamic linking on Linux
* zlib: Strict dependency required from the system, linked dynamically. Many other libs depend on zlib.
-* wxWidgets: searches for wx-3.1 by default, but with cmake option `SLIC3R_WX_STABLE=ON` it will use wx-3.0 bundled with most distros.
+* wxWidgets >= 3.1.6
* libcurl
* tbb
* boost
diff --git a/doc/How to build - Linux et al.md b/doc/How to build - Linux et al.md
index 81e6310c4..de6e365fb 100644
--- a/doc/How to build - Linux et al.md
+++ b/doc/How to build - Linux et al.md
@@ -87,7 +87,6 @@ And that's it. It is now possible to run the freshly built PrusaSlicer binary:
- `-DSLIC3R_ASAN=ON` enables gcc/clang address sanitizer (defaults to `OFF`, requires gcc>4.8 or clang>3.1)
- `-DSLIC3R_GTK=3` to use GTK3 (defaults to `2`). Note that wxWidgets must be built against the same GTK version.
- `-DSLIC3R_STATIC=ON` for static build (defaults to `OFF`)
-- `-DSLIC3R_WX_STABLE=ON` to look for wxWidgets 3.0 (defaults to `OFF`)
- `-DCMAKE_BUILD_TYPE=Debug` to build in debug mode (defaults to `Release`)
- `-DSLIC3R_GUI=no` to build the console variant of PrusaSlicer
@@ -101,14 +100,6 @@ As already mentioned above, dynamic linking of dependencies is possible, but Pru
The list of dependencies can be easily obtained by inspecting the CMake scripts in the `deps/` directory. Some of the dependencies don't have to be as recent as the versions listed - generally versions available on conservative Linux distros such as Debian stable, Ubuntu LTS releases or Fedora are likely sufficient. If you decide to build this way, it is your responsibility to make sure that CMake finds all required dependencies. It is possible to look at your distribution PrusaSlicer package to see how the package maintainers solved the dependency issues.
-#### wxWidgets
-By default, PrusaSlicer looks for wxWidgets 3.1. Our build script in fact downloads specific patched version of wxWidgets. If you want to link against wxWidgets 3.0 (which are still provided by most distributions because wxWidgets 3.1 have not yet been declared stable), you must set `-DSLIC3R_WX_STABLE=ON` when running CMake. Note that while PrusaSlicer can be linked against wWidgets 3.0, the combination is not well tested and there might be bugs in the resulting application.
-
-When building on ubuntu 20.04 focal fossa, the package libwxgtk3.0-gtk3-dev needs to be installed instead of libwxgtk3.0-dev and you should use:
-```
--DSLIC3R_WX_STABLE=1 -DSLIC3R_GTK=3
-```
-
## Miscellaneous
### Installation
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 50eccfc84..1a335f2cd 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -49,23 +49,17 @@ if (SLIC3R_GUI)
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set (wxWidgets_CONFIG_OPTIONS "--toolkit=gtk${SLIC3R_GTK}")
- if (SLIC3R_WX_STABLE)
- find_package(wxWidgets 3.0 REQUIRED COMPONENTS base core adv html gl)
- else ()
- find_package(wxWidgets 3.1 QUIET COMPONENTS base core adv html gl)
-
- if (NOT wxWidgets_FOUND)
- message(FATAL_ERROR "\nCould not find wxWidgets 3.1.\n"
- "Hint: On Linux you can set -DSLIC3R_WX_STABLE=1 to use wxWidgets 3.0\n")
- endif ()
+ find_package(wxWidgets 3.1.6 QUIET COMPONENTS base core adv html gl)
+ if (NOT wxWidgets_FOUND)
+ message(FATAL_ERROR "Could not find wxWidgets >= 3.1.6")
endif ()
include(${wxWidgets_USE_FILE})
else ()
- find_package(wxWidgets 3.1 COMPONENTS html adv gl core base)
+ find_package(wxWidgets 3.1.6 COMPONENTS html adv gl core base)
if (NOT wxWidgets_FOUND)
message(STATUS "Trying to find wxWidgets in CONFIG mode...")
- find_package(wxWidgets 3.2 CONFIG REQUIRED COMPONENTS html adv gl core base)
+ find_package(wxWidgets 3.1.6 CONFIG REQUIRED COMPONENTS html adv gl core base)
slic3r_remap_configs(wx::wxhtml wx::wxadv wx::wxgl wx::wxcore wx::wxbase RelWithDebInfo Release)
else ()
include(${wxWidgets_USE_FILE})

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a15f68e3b18a047c8c9a18a9d91629d2c777be1932087684cf6d2332d0888e77
size 56430180

View File

@ -1,3 +1,40 @@
-------------------------------------------------------------------
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>

View File

@ -17,21 +17,21 @@
Name: PrusaSlicer
Version: 2.5.2
Version: 2.6.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/
Source0: https://github.com/prusa3d/PrusaSlicer/archive/version_%{version}.tar.gz#/%{name}-%{version}.tar.gz
# PATCH-FIX-UPSTREAM PrusaSlicer-boost1.79.patch -- gh#prusa3d/PrusaSlicer#8238
Patch0: PrusaSlicer-boost1.79.patch
# PATCH-FIX-UPSTREAM PrusaSlicer-cereal.patch -- gh#prusa3d/PrusaSlicer#7809
Patch1: PrusaSlicer-cereal.patch
# PATCH-FIX-UPSTREAM gentoo-887055-boost-fix.patch -- gh#prusa3d/PrusaSlicer#9294
Patch2: gentoo-887055-boost-fix.patch
Source0: https://github.com/prusa3d/PrusaSlicer/archive/version_%{version}.tar.gz#/%{name}-version_%{version}.tar.gz
# PATCH-FIX-OPENSUSE up-occt-version.patch mike.chikov@gmail.com -- install wrapper so into libdir, not bindir
Patch3: up-occt-version.patch
Patch0: up-occt-version.patch
# PATCH-FIX-OPENSUSE PrusaSlicer-2.6.0-octoprint-name-fix.patch -- cast lambda expression to same type
Patch1: PrusaSlicer-2.6.0-octoprint-name-fix.patch
# PATCH-FIX-UPSTREAM PrusaSlicer-2.6.0-wxWidgets-CheckResizerFlags-assert-fix.patch -- https://github.com/prusa3d/PrusaSlicer/commit/24a5ebd65c9d25a0fd69a3716d079fd1b00eb15c.patch
Patch2: PrusaSlicer-2.6.0-wxWidgets-CheckResizerFlags-assert-fix.patch
# PATCH-FIX-UPSTREAM PrusaSlicer-drop-wx3.0.patch gh#prusa3d/PrusaSlicer#11027 - wxWidgets >= 3.1.6 is required
Patch3: PrusaSlicer-drop-wx3.0.patch
BuildRequires: blosc-devel
BuildRequires: cereal-devel
BuildRequires: cgal-devel >= 4.13.2
@ -46,9 +46,6 @@ BuildRequires: fdupes
%define gcc_ver 10
%endif
BuildRequires: gcc%gcc_ver-c++
# For now, use bundled GLEW because of gh#prusa3d/PrusaSlicer#6396
#!BuildIgnore: glew-devel
#!BuildIgnore: libglfw3-wayland
BuildRequires: gtest >= 1.7
BuildRequires: libboost_atomic-devel
BuildRequires: libboost_filesystem-devel
@ -65,17 +62,23 @@ BuildRequires: memory-constraints
BuildRequires: nlopt-devel
BuildRequires: occt-devel
BuildRequires: openexr-devel
# See https://github.com/prusa3d/PrusaSlicer/pull/9103
BuildRequires: openvdb-devel >= 7.1
BuildRequires: openvdb-tools
BuildRequires: pkgconfig
BuildRequires: tbb-devel
BuildRequires: update-desktop-files
# 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.
BuildRequires: wxWidgets-3_0-devel
BuildRequires: wxWidgets-devel >= 3.1.6
# need the fltk fork, see deps/NanoSVG/NanoSVG.cmake
BuildRequires: nanosvg-devel >= 2022.12.22
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glew)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(qhull_r)
BuildRequires: pkgconfig(qhullcpp)
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-egl)
Requires: noto-sans-fonts
%description
@ -92,6 +95,14 @@ sed -i 's/UNKNOWN/%{release}-%{?is_opensuse:open}SUSE-%{suse_version}/' version.
%endif
# this is not prusaslicer specific, space mouse users install it themselves
rm resources/udev/90-3dconnexion.rules
# we want to use the system provided expat lib
sed -i "/add_library(libexpat INTERFACE)/d" CMakeLists.txt
# adjust the qhull version requirement
sed -i "s|find_package(Qhull 7.2 REQUIRED)|find_package(Qhull 8.0.2 REQUIRED)|" src/CMakeLists.txt
# fix qhull link with static lib issue
sed -i 's#INTERFACE Qhull::qhullcpp#INTERFACE -lqhullcpp#' src/CMakeLists.txt
# Disable slic3r_jobs_tests.cpp as the test fails sometimes
sed -i 's|slic3r_jobs_tests.cpp||' tests/slic3rutils/CMakeLists.txt
%build
# The build process really acquires that much memory per job. We are
@ -108,12 +119,11 @@ rm resources/udev/90-3dconnexion.rules
%endif
export CC=gcc-%gcc_ver CXX=g++-%gcc_ver
# rh#2059646
sed -i tests/libslic3r/CMakeLists.txt -e '\@test_voronoi.cpp@d'
#sed -i tests/libslic3r/CMakeLists.txt -e '\@test_voronoi.cpp@d'
%cmake \
-DCMAKE_CXX_STANDARD=17 \
-DSLIC3R_FHS=1 \
-DSLIC3R_GTK=2 \
-DSLIC3R_WX_STABLE=1 \
-DOPENVDB_FIND_MODULE_PATH=%{_libdir}/cmake/OpenVDB
%cmake_build

View File

@ -1,49 +0,0 @@
From 6a714bb602a25290d2aedf74eb1232fb9efd5979 Mon Sep 17 00:00:00 2001
From: Piotr Karbowski <slashbeast@gentoo.org>
Date: Tue, 27 Dec 2022 21:11:19 +0100
Subject: media-gfx/prusaslicer: fix building with boost-1.81.
Patch contributed by Bradley Jarvis.
Closes: https://bugs.gentoo.org/887055
Signed-off-by: Piotr Karbowski <slashbeast@gentoo.org>
--- a/src/slic3r/GUI/PrintHostDialogs.cpp 2022-12-21 10:21:43.583075853 +1100
+++ b/src/slic3r/GUI/PrintHostDialogs.cpp 2022-12-21 10:23:03.902694287 +1100
@@ -79,8 +79,8 @@ PrintHostSendDialog::PrintHostSendDialog
if (size_t extension_start = recent_path.find_last_of('.'); extension_start != std::string::npos)
m_valid_suffix = recent_path.substr(extension_start);
// .gcode suffix control
- auto validate_path = [this](const wxString &path) -> bool {
- if (! path.Lower().EndsWith(m_valid_suffix.Lower())) {
+ auto validate_path = [this](const std::wstring &path) -> bool {
+ if (! wxString(path).Lower().EndsWith(m_valid_suffix.Lower())) {
MessageDialog msg_wingow(this, wxString::Format(_L("Upload filename doesn't end with \"%s\". Do you wish to continue?"), m_valid_suffix), wxString(SLIC3R_APP_NAME), wxYES | wxNO);
if (msg_wingow.ShowModal() == wxID_NO)
return false;
@@ -90,7 +90,7 @@ PrintHostSendDialog::PrintHostSendDialog
auto* btn_ok = add_button(wxID_OK, true, _L("Upload"));
btn_ok->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) {
- if (validate_path(txt_filename->GetValue())) {
+ if (validate_path(txt_filename->GetValue().ToStdWstring())) {
post_upload_action = PrintHostPostUploadAction::None;
EndDialog(wxID_OK);
}
@@ -100,7 +100,7 @@ PrintHostSendDialog::PrintHostSendDialog
if (post_actions.has(PrintHostPostUploadAction::StartPrint)) {
auto* btn_print = add_button(wxID_YES, false, _L("Upload and Print"));
btn_print->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) {
- if (validate_path(txt_filename->GetValue())) {
+ if (validate_path(txt_filename->GetValue().ToStdWstring())) {
post_upload_action = PrintHostPostUploadAction::StartPrint;
EndDialog(wxID_OK);
}
@@ -111,7 +111,7 @@ PrintHostSendDialog::PrintHostSendDialog
// Using wxID_MORE as a button identifier to be different from the other buttons, wxID_MORE has no other meaning here.
auto* btn_simulate = add_button(wxID_MORE, false, _L("Upload and Simulate"));
btn_simulate->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) {
- if (validate_path(txt_filename->GetValue())) {
+ if (validate_path(txt_filename->GetValue().ToStdWstring())) {
post_upload_action = PrintHostPostUploadAction::StartSimulation;
EndDialog(wxID_OK);
}