public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: media-gfx/superslicer/, media-gfx/superslicer/files/
@ 2022-08-16 21:41 Piotr Karbowski
  0 siblings, 0 replies; 6+ messages in thread
From: Piotr Karbowski @ 2022-08-16 21:41 UTC (permalink / raw
  To: gentoo-commits

commit:     91155f8d3564066a3ded9d66d60528b21858a4ad
Author:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 16 21:41:14 2022 +0000
Commit:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
CommitDate: Tue Aug 16 21:41:54 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=91155f8d

media-gfx/superslicer: 2.5.59.0 version bump.

Signed-off-by: Piotr Karbowski <slashbeast <AT> gentoo.org>

 media-gfx/superslicer/Manifest                     |   2 +
 .../files/superslicer-2.5.59.0-boost.patch         | 256 +++++++++++++++++++++
 .../files/superslicer-2.5.59.0-cereal.patch        |  53 +++++
 .../superslicer-2.5.59.0-missing-includes.patch    |  36 +++
 .../files/superslicer-2.5.59.0-openexr3.patch      |  77 +++++++
 .../superslicer-2.5.59.0-wxgtk3-wayland.patch      |  21 ++
 media-gfx/superslicer/superslicer-2.5.59.0.ebuild  |  96 ++++++++
 7 files changed, 541 insertions(+)

diff --git a/media-gfx/superslicer/Manifest b/media-gfx/superslicer/Manifest
index bb7fbbc6ec07..ef2d980d92d4 100644
--- a/media-gfx/superslicer/Manifest
+++ b/media-gfx/superslicer/Manifest
@@ -1,2 +1,4 @@
 DIST superslicer-2.4.58.3-profiles.tar.gz 15322406 BLAKE2B cfa89697e832e0601746cb21250e258617bcc0966dd111c82ae43a9720b3ffb760f57827a1f35c8ad57a23a7ffb4c78e48ec76d6e40b364f321d0f83c4d10939 SHA512 bbdc6bfa8e21a4bdbca903a367f033f9cb5a1966bd0688bcc81314ba9ee45fee37cb892c82be35e865137c4df7c1fabceb8e6de46316338df2af4a590de91c76
 DIST superslicer-2.4.58.3.tar.gz 45203382 BLAKE2B 822af2a1cb8978b21f8efdc0eb4841ec1d86517fd07782a8dfa6be2a58514dc3e772221dca40ff62808cb798fc4f51484b24e847328a7a6f154708431f0c4d3b SHA512 00302fba9ada1cc5df3c58f42fdb7f98322f94de7b78876c6a54a2229ae289e785082ea7a69f67bee54321fc4d97811675eeb70932e5774ab78ca8859343dd4d
+DIST superslicer-2.5.59.0-profiles.tar.gz 15322406 BLAKE2B cfa89697e832e0601746cb21250e258617bcc0966dd111c82ae43a9720b3ffb760f57827a1f35c8ad57a23a7ffb4c78e48ec76d6e40b364f321d0f83c4d10939 SHA512 bbdc6bfa8e21a4bdbca903a367f033f9cb5a1966bd0688bcc81314ba9ee45fee37cb892c82be35e865137c4df7c1fabceb8e6de46316338df2af4a590de91c76
+DIST superslicer-2.5.59.0.tar.gz 45360646 BLAKE2B da65610270ed4c7d55b5bc495d9970812af94f424345088782b3a45b97fcf0f4b58bdc0417b89ed49e21d8c250535baa7cb74344f43438fbde8daf1b3acfacdd SHA512 1d2c0316c91bf0d65fb366806e9ea868bc93fae33deb580a324ce065fd3789ff1b600e9ace400db4988b371b1c36ef0c3ea2b52cde0d48984f312dd8d7ef3a1c

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.0-boost.patch b/media-gfx/superslicer/files/superslicer-2.5.59.0-boost.patch
new file mode 100644
index 000000000000..4f847aaacb92
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.0-boost.patch
@@ -0,0 +1,256 @@
+diff --git a/src/hints/HintsToPot.cpp b/src/hints/HintsToPot.cpp
+index 7c8029cde..4791f0612 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/AppConfig.cpp b/src/libslic3r/AppConfig.cpp
+index f029b3d72..18dc7396e 100644
+--- a/src/libslic3r/AppConfig.cpp
++++ b/src/libslic3r/AppConfig.cpp
+@@ -1,3 +1,4 @@
++#include <boost/filesystem.hpp>
+ #include "libslic3r/libslic3r.h"
+ #include "libslic3r/Utils.hpp"
+ #include "AppConfig.hpp"
+diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp
+index d811ddcc2..1a7023061 100644
+--- a/src/libslic3r/AppConfig.hpp
++++ b/src/libslic3r/AppConfig.hpp
+@@ -5,6 +5,7 @@
+ #include <map>
+ #include <string>
+ 
++#include <boost/filesystem/path.hpp>
+ #include <boost/algorithm/string/trim_all.hpp>
+ 
+ #include "libslic3r/Config.hpp"
+diff --git a/src/libslic3r/LocalesUtils.cpp b/src/libslic3r/LocalesUtils.cpp
+index 5bf520568..7b870520b 100644
+--- a/src/libslic3r/LocalesUtils.cpp
++++ b/src/libslic3r/LocalesUtils.cpp
+@@ -1,3 +1,4 @@
++#include <boost/lexical_cast.hpp>
+ #include "LocalesUtils.hpp"
+ 
+ #ifdef _WIN32
+diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
+index 9e9fcda4f..d889e2abf 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/libslic3r/Utils.hpp b/src/libslic3r/Utils.hpp
+index f525c9837..839f0f5e9 100644
+--- a/src/libslic3r/Utils.hpp
++++ b/src/libslic3r/Utils.hpp
+@@ -7,6 +7,7 @@
+ #include <type_traits>
+ #include <system_error>
+ 
++#include <boost/filesystem.hpp>
+ #include <boost/system/error_code.hpp>
+ 
+ #include "libslic3r.h"
+diff --git a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
+index 89212f27f..be157eafa 100644
+--- a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
++++ b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
+@@ -18,6 +18,11 @@
+ #include <wx/notebook.h>
+ #include "Notebook.hpp"
+ 
++#include <boost/filesystem.hpp>
++#include <boost/property_tree/ptree.hpp>
++#include <boost/property_tree/ini_parser.hpp>
++#include <boost/log/trivial.hpp>
++
+ #include "MainFrame.hpp"
+ #include "wxExtensions.hpp"
+ 
+diff --git a/src/slic3r/GUI/DesktopIntegrationDialog.cpp b/src/slic3r/GUI/DesktopIntegrationDialog.cpp
+index fcb7472e6..866ebaef5 100644
+--- a/src/slic3r/GUI/DesktopIntegrationDialog.cpp
++++ b/src/slic3r/GUI/DesktopIntegrationDialog.cpp
+@@ -14,6 +14,7 @@
+ #include <boost/log/trivial.hpp>
+ #include <boost/dll/runtime_symbol_info.hpp>
+ #include <boost/algorithm/string/replace.hpp>
++#include <boost/nowide/fstream.hpp>
+ 
+ #include <wx/filename.h>
+ #include <wx/stattext.h>
+@@ -503,4 +504,4 @@ DesktopIntegrationDialog::~DesktopIntegrationDialog()
+ 
+ } // namespace GUI
+ } // namespace Slic3r
+-#endif // __linux__
+\ No newline at end of file
++#endif // __linux__
+diff --git a/src/slic3r/GUI/FreeCADDialog.cpp b/src/slic3r/GUI/FreeCADDialog.cpp
+index 271e3ef2d..6bbdf3907 100644
+--- a/src/slic3r/GUI/FreeCADDialog.cpp
++++ b/src/slic3r/GUI/FreeCADDialog.cpp
+@@ -38,6 +38,7 @@
+ #include <boost/log/trivial.hpp>
+ #include <boost/property_tree/ptree.hpp>
+ #include <boost/property_tree/json_parser.hpp>
++#include <boost/nowide/fstream.hpp>
+ 
+ // hack for process.hpp : it uses pid_t to set it as alias of int, but vc_x64_lib (wx thingy) as a '#define pid_t int'
+ // and so boost/process has a line 'typedef int int'instead of 'typedef int pid_t' that makes it crash
+@@ -322,7 +323,7 @@ bool FreeCADDialog::load_text_from_file(const boost::filesystem::path &path) {
+         try {
+             std::locale loc = boost::locale::generator()("en_US.UTF-8");
+             // Open the stream to 'lock' the file.
+-            boost::filesystem::ifstream in;
++            boost::nowide::ifstream in;
+             in.imbue(loc);
+             in.open(path);
+             // Obtain the size of the file.
+@@ -369,7 +370,7 @@ bool FreeCADDialog::write_text_in_file(const wxString &towrite, const boost::fil
+         boost::filesystem::create_directories(file.parent_path());
+         std::locale loc = boost::locale::generator()("en_US.UTF-8");
+         // Open the stream to 'lock' the file.
+-        boost::filesystem::ofstream out;
++        boost::nowide::ofstream out;
+         out.imbue(loc);
+         out.open(file);
+         out << towrite;
+diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
+index 4cf21a36c..75b2a8e94 100644
+--- a/src/slic3r/GUI/GUI_App.cpp
++++ b/src/slic3r/GUI/GUI_App.cpp
+@@ -19,6 +19,7 @@
+ #include <boost/lexical_cast.hpp>
+ #include <boost/log/trivial.hpp>
+ #include <boost/nowide/convert.hpp>
++#include <boost/nowide/fstream.hpp>
+ 
+ #include <wx/stdpaths.h>
+ #include <wx/imagpng.h>
+diff --git a/src/slic3r/GUI/HintNotification.cpp b/src/slic3r/GUI/HintNotification.cpp
+index 32916303f..3a984bf38 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
+diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp
+index ffc600b0e..c8080d112 100644
+--- a/src/slic3r/GUI/Preferences.cpp
++++ b/src/slic3r/GUI/Preferences.cpp
+@@ -12,6 +12,7 @@
+ #include "OG_CustomCtrl.hpp"
+ #include "wxExtensions.hpp"
+ 
++#include <boost/algorithm/string/split.hpp>
+ #include <boost/filesystem.hpp>
+ #include <boost/filesystem/path.hpp>
+ 
+diff --git a/src/slic3r/GUI/ScriptExecutor.cpp b/src/slic3r/GUI/ScriptExecutor.cpp
+index 4565d1aec..6738cada9 100644
+--- a/src/slic3r/GUI/ScriptExecutor.cpp
++++ b/src/slic3r/GUI/ScriptExecutor.cpp
+@@ -4,6 +4,13 @@
+ #include "Tab.hpp"
+ #include "libslic3r/PresetBundle.hpp"
+ #include "libslic3r/Print.hpp"
++#include <boost/log/trivial.hpp>
++#include <boost/lexical_cast.hpp>
++#include <boost/algorithm/string/trim_all.hpp>
++#include <boost/algorithm/string/erase.hpp>
++#include <boost/algorithm/string/split.hpp>
++#include <boost/filesystem.hpp>
++#include <boost/filesystem/string_file.hpp>
+ 
+ #include <string>
+ 
+diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp
+index 173f0f762..a3eb553c8 100644
+--- a/src/slic3r/GUI/Tab.cpp
++++ b/src/slic3r/GUI/Tab.cpp
+@@ -36,6 +36,8 @@
+ #include <boost/filesystem.hpp>
+ #include <boost/filesystem/path.hpp>
+ #include <boost/lexical_cast.hpp>
++#include <boost/nowide/fstream.hpp>
++#include <boost/log/trivial.hpp>
+ 
+ #include "wxExtensions.hpp"
+ #include "PresetComboBoxes.hpp"
+@@ -1692,7 +1694,7 @@ std::vector<Slic3r::GUI::PageShp> Tab::create_pages(std::string setting_type_nam
+ 
+     //read file
+     //std::ifstream filestream(ui_layout_file.c_str());
+-    boost::filesystem::ifstream filestream(ui_layout_file);
++    boost::nowide::ifstream filestream(ui_layout_file);
+     std::string full_line;
+     while (std::getline(filestream, full_line)) {
+         //remove spaces
+diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp
+index 9bab91860..47568721a 100644
+--- a/src/slic3r/Utils/Http.cpp
++++ b/src/slic3r/Utils/Http.cpp
+@@ -11,6 +11,7 @@
+ #include <boost/filesystem.hpp>
+ #include <boost/format.hpp>
+ #include <boost/log/trivial.hpp>
++#include <boost/nowide/fstream.hpp>
+ 
+ #include <curl/curl.h>
+ 
+@@ -52,7 +53,7 @@ namespace Slic3r {
+ 						% error;
+ 			})
+ 			.on_complete([&](std::string body, unsigned /* http_status */) {
+-				boost::filesystem::fstream file(tmp_path, std::ios::out | std::ios::binary | std::ios::trunc);
++				boost::nowide::fstream file(tmp_path, std::ios::out | std::ios::binary | std::ios::trunc);
+ 				file.write(body.c_str(), body.size());
+ 				file.close();
+ 				boost::filesystem::rename(tmp_path, target_path);

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.0-cereal.patch b/media-gfx/superslicer/files/superslicer-2.5.59.0-cereal.patch
new file mode 100644
index 000000000000..6557d6653640
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.0-cereal.patch
@@ -0,0 +1,53 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 549d06f0d..bffb63d9b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -496,6 +496,9 @@ endif ()
+ 
+ # Find the Cereal serialization library
+ find_package(cereal REQUIRED)
++if (NOT TARGET cereal::cereal)
++    add_library(cereal::cereal ALIAS cereal)
++endif ()
+ 
+ # l10n
+ set(L10N_DIR "${SLIC3R_RESOURCES_DIR}/localization")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index ec44417fa..9aae6dc11 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -141,7 +141,7 @@ if (NOT WIN32)
+     set_target_properties(Slic3r PROPERTIES OUTPUT_NAME "${SLIC3R_APP_CMD}")
+ endif ()
+ 
+-target_link_libraries(Slic3r libslic3r cereal)
++target_link_libraries(Slic3r libslic3r cereal::cereal)
+ if (APPLE)
+ #    add_compile_options(-stdlib=libc++)
+ #    add_definitions(-DBOOST_THREAD_DONT_USE_CHRONO -DBOOST_NO_CXX11_RVALUE_REFERENCES -DBOOST_THREAD_USES_MOVE)
+diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
+index c8f22a482..832149338 100644
+--- a/src/libslic3r/CMakeLists.txt
++++ b/src/libslic3r/CMakeLists.txt
+@@ -399,7 +399,7 @@ target_include_directories(libslic3r PUBLIC ${EXPAT_INCLUDE_DIRS})
+ target_link_libraries(libslic3r
+     libnest2d
+     admesh
+-    cereal
++    cereal::cereal
+     libigl
+     miniz
+     boost_libs
+diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
+index f71b809b3..c64a2c5a9 100644
+--- a/src/slic3r/CMakeLists.txt
++++ b/src/slic3r/CMakeLists.txt
+@@ -302,7 +302,7 @@ target_compile_definitions(libslic3r_gui PRIVATE $<$<BOOL:${SLIC3R_ALPHA}>:SLIC3
+ 
+ encoding_check(libslic3r_gui)
+ 
+-target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui GLEW::GLEW OpenGL::GL hidapi exif angelscript libcurl ${wxWidgets_LIBRARIES})
++target_link_libraries(libslic3r_gui libslic3r avrdude cereal::cereal imgui GLEW::GLEW OpenGL::GL hidapi exif angelscript libcurl ${wxWidgets_LIBRARIES})
+ 
+ if (MSVC)
+     target_link_libraries(libslic3r_gui Setupapi.lib)

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.0-missing-includes.patch b/media-gfx/superslicer/files/superslicer-2.5.59.0-missing-includes.patch
new file mode 100644
index 000000000000..27f29fa9f6f1
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.0-missing-includes.patch
@@ -0,0 +1,36 @@
+diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp
+index 18dc7396e..95483e844 100644
+--- a/src/libslic3r/AppConfig.cpp
++++ b/src/libslic3r/AppConfig.cpp
+@@ -1,6 +1,7 @@
+ #include <boost/filesystem.hpp>
+ #include "libslic3r/libslic3r.h"
+ #include "libslic3r/Utils.hpp"
++#include "libslic3r/I18N.hpp"
+ #include "AppConfig.hpp"
+ #include "Exception.hpp"
+ #include "LocalesUtils.hpp"
+diff --git a/src/libslic3r/PerimeterGenerator.hpp b/src/libslic3r/PerimeterGenerator.hpp
+index d7401f3fb..a95b7749d 100644
+--- a/src/libslic3r/PerimeterGenerator.hpp
++++ b/src/libslic3r/PerimeterGenerator.hpp
+@@ -1,6 +1,7 @@
+ #ifndef slic3r_PerimeterGenerator_hpp_
+ #define slic3r_PerimeterGenerator_hpp_
+ 
++#include "ClipperUtils.hpp"
+ #include "libslic3r.h"
+ #include <vector>
+ #include "ExPolygonCollection.hpp"
+diff --git a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
+index be157eafa..d63eb110e 100644
+--- a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
++++ b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
+@@ -40,6 +40,7 @@
+ #include <wx/odcombo.h>
+ #include <wx/textctrl.h>
+ #include <wx/wrapsizer.h>
++#include <wx/rawbmp.h>
+ #include "wxExtensions.hpp"
+ 
+ #include <boost/filesystem/path.hpp>

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.0-openexr3.patch b/media-gfx/superslicer/files/superslicer-2.5.59.0-openexr3.patch
new file mode 100644
index 000000000000..8ae71c13f4d3
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.0-openexr3.patch
@@ -0,0 +1,77 @@
+diff --git a/cmake/modules/FindOpenVDB.cmake b/cmake/modules/FindOpenVDB.cmake
+index 4fde5fa4a..566e73a5e 100644
+--- a/cmake/modules/FindOpenVDB.cmake
++++ b/cmake/modules/FindOpenVDB.cmake
+@@ -347,28 +347,10 @@ macro(just_fail msg)
+   return()
+ endmacro()
+ 
+-find_package(IlmBase QUIET)
+-if(NOT IlmBase_FOUND)
+-  pkg_check_modules(IlmBase QUIET IlmBase)
+-endif()
+-if (IlmBase_FOUND AND NOT TARGET IlmBase::Half)
+-  message(STATUS "Falling back to IlmBase found by pkg-config...")
+-
+-  find_library(IlmHalf_LIBRARY NAMES Half)
+-  if(IlmHalf_LIBRARY-NOTFOUND OR NOT IlmBase_INCLUDE_DIRS)
+-    just_fail("IlmBase::Half can not be found!")
+-  endif()
+-  
+-  add_library(IlmBase::Half UNKNOWN IMPORTED)
+-  set_target_properties(IlmBase::Half PROPERTIES
+-    IMPORTED_LOCATION "${IlmHalf_LIBRARY}"
+-    INTERFACE_INCLUDE_DIRECTORIES "${IlmBase_INCLUDE_DIRS}")
+-elseif(NOT IlmBase_FOUND)
+-  just_fail("IlmBase::Half can not be found!")
+-endif()
+ find_package(TBB ${_quiet} ${_required} COMPONENTS tbb)
+ find_package(ZLIB ${_quiet} ${_required})
+ find_package(Boost ${_quiet} ${_required} COMPONENTS iostreams system )
++find_package(Imath CONFIG)
+ 
+ # Use GetPrerequisites to see which libraries this OpenVDB lib has linked to
+ # which we can query for optional deps. This basically runs ldd/otoll/objdump
+@@ -419,7 +401,7 @@ foreach(PREREQUISITE ${_OPENVDB_PREREQUISITE_LIST})
+     set(OpenVDB_USES_LOG4CPLUS ON)
+   endif()
+ 
+-  string(FIND ${PREREQUISITE} "IlmImf" _HAS_DEP)
++  string(FIND ${PREREQUISITE} "OpenEXR" _HAS_DEP)
+   if(NOT ${_HAS_DEP} EQUAL -1)
+     set(OpenVDB_USES_ILM ON)
+   endif()
+@@ -450,11 +432,7 @@ if(OpenVDB_USES_LOG4CPLUS)
+   find_package(Log4cplus ${_quiet} ${_required})
+ endif()
+ 
+-if(OpenVDB_USES_ILM)
+-  find_package(IlmBase ${_quiet} ${_required})
+-endif()
+-
+-if(OpenVDB_USES_EXR)
++if(OpenVDB_USES_ILM OR OpenVDB_USES_EXR)
+   find_package(OpenEXR ${_quiet} ${_required})
+ endif()
+ 
+@@ -471,7 +449,7 @@ endif()
+ set(_OPENVDB_VISIBLE_DEPENDENCIES
+   Boost::iostreams
+   Boost::system
+-  IlmBase::Half
++  Imath::Imath
+ )
+ 
+ set(_OPENVDB_DEFINITIONS)
+@@ -481,10 +459,7 @@ endif()
+ 
+ if(OpenVDB_USES_EXR)
+   list(APPEND _OPENVDB_VISIBLE_DEPENDENCIES
+-    IlmBase::IlmThread
+-    IlmBase::Iex
+-    IlmBase::Imath
+-    OpenEXR::IlmImf
++    OpenEXR::OpenEXR
+   )
+   list(APPEND _OPENVDB_DEFINITIONS "-DOPENVDB_TOOLS_RAYTRACER_USE_EXR")
+ endif()

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.0-wxgtk3-wayland.patch b/media-gfx/superslicer/files/superslicer-2.5.59.0-wxgtk3-wayland.patch
new file mode 100644
index 000000000000..abe4d7bf60cc
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.0-wxgtk3-wayland.patch
@@ -0,0 +1,21 @@
+diff --git a/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp
+index ccd3cc083..be8bbe5cd 100644
+--- a/src/slic3r/GUI/GUI.cpp
++++ b/src/slic3r/GUI/GUI.cpp
+@@ -33,6 +33,16 @@ class AppConfig;
+ 
+ namespace GUI {
+ 
++// wxgtk3 is broken on wayland: https://trac.wxwidgets.org/ticket/17702
++#ifdef __WXGTK3__
++struct ForceX11 {
++    ForceX11() {
++        setenv("GDK_BACKEND", "x11", 1);
++    }
++};
++static struct ForceX11 forcex11;
++#endif
++
+ #if __APPLE__
+ IOPMAssertionID assertionID;
+ #endif

diff --git a/media-gfx/superslicer/superslicer-2.5.59.0.ebuild b/media-gfx/superslicer/superslicer-2.5.59.0.ebuild
new file mode 100644
index 000000000000..3024d92b17a4
--- /dev/null
+++ b/media-gfx/superslicer/superslicer-2.5.59.0.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WX_GTK_VER="3.0-gtk3"
+MY_PN="SuperSlicer"
+
+inherit cmake wxwidgets xdg
+
+DESCRIPTION="A mesh slicer to generate G-code for fused-filament-fabrication (3D printers)"
+HOMEPAGE="https://github.com/supermerill/SuperSlicer/"
+SRC_URI="
+	https://github.com/supermerill/SuperSlicer/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
+	https://github.com/slic3r/slic3r-profiles/archive/748fbdfd2ac077e4e415868e7bc963740b92aa8e.tar.gz -> ${P}-profiles.tar.gz
+"
+
+LICENSE="AGPL-3 Boost-1.0 GPL-2 LGPL-3 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RESTRICT="test"
+
+# No dep on sci-libs/libigl, in-tree version cannot build
+# static library currently. Using bundled one.
+RDEPEND="
+	dev-cpp/eigen:3
+	dev-cpp/tbb:=
+	>=dev-libs/boost-1.73.0:=[nls,threads(+)]
+	dev-libs/cereal
+	dev-libs/expat
+	dev-libs/glib:2
+	dev-libs/gmp:=
+	dev-libs/mpfr:=
+	dev-libs/imath:=
+	>=media-gfx/openvdb-8.2:=
+	net-misc/curl[adns]
+	media-libs/glew:0=
+	media-libs/libpng:0=
+	media-libs/qhull:=
+	sci-libs/nlopt
+	>=sci-mathematics/cgal-5.0:=
+	sys-apps/dbus
+	sys-libs/zlib:=
+	virtual/glu
+	virtual/opengl
+	x11-libs/gtk+:3
+	x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
+"
+DEPEND="${RDEPEND}
+	media-libs/qhull[static-libs]
+"
+
+PATCHES=(
+	"${FILESDIR}/${P}-openexr3.patch"
+	"${FILESDIR}/${P}-wxgtk3-wayland.patch"
+	"${FILESDIR}/${P}-cereal.patch"
+	"${FILESDIR}/${P}-boost.patch"
+	"${FILESDIR}/${P}-missing-includes.patch"
+)
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+src_unpack() {
+	default
+
+	mv slic3r-profiles-*/* "${S}"/resources/profiles/ || die
+}
+
+src_configure() {
+	CMAKE_BUILD_TYPE="Release"
+
+	setup-wxwidgets
+
+	local mycmakeargs=(
+		-DOPENVDB_FIND_MODULE_PATH="/usr/$(get_libdir)/cmake/OpenVDB"
+
+		-DSLIC3R_BUILD_TESTS=$(usex test)
+		-DSLIC3R_FHS=ON
+		-DSLIC3R_GTK=3
+		-DSLIC3R_GUI=ON
+		-DSLIC3R_PCH=OFF
+		-DSLIC3R_STATIC=OFF
+		-DSLIC3R_WX_STABLE=ON
+		-Wno-dev
+	)
+
+	cmake_src_configure
+}
+
+src_install() {
+	cmake_src_install
+
+	rm "${ED}/usr/lib/udev/rules.d/90-3dconnexion.rules" || die
+}


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/superslicer/, media-gfx/superslicer/files/
@ 2022-08-27 19:42 Piotr Karbowski
  0 siblings, 0 replies; 6+ messages in thread
From: Piotr Karbowski @ 2022-08-27 19:42 UTC (permalink / raw
  To: gentoo-commits

commit:     0cad19d769d7c1e9b0e521bd1c5d3a442464b0c1
Author:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 27 19:41:01 2022 +0000
Commit:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
CommitDate: Sat Aug 27 19:42:25 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0cad19d7

media-gfx/superslicer: 2.5.59.0-r1 revbump

Fixes gcodeviewer symlink and no longer installs bundled
angelscript into system.

Closes: https://bugs.gentoo.org/865457
Signed-off-by: Piotr Karbowski <slashbeast <AT> gentoo.org>

 ...2.5.59.0-dont-install-bundled-angelscript.patch | 53 ++++++++++++++++++++++
 ...erslicer-2.5.59.0-fix-gcodeviewer-symlink.patch | 11 +++++
 ....59.0.ebuild => superslicer-2.5.59.0-r1.ebuild} |  2 +
 3 files changed, 66 insertions(+)

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.0-dont-install-bundled-angelscript.patch b/media-gfx/superslicer/files/superslicer-2.5.59.0-dont-install-bundled-angelscript.patch
new file mode 100644
index 000000000000..603a96ac67a5
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.0-dont-install-bundled-angelscript.patch
@@ -0,0 +1,53 @@
+diff --git a/src/angelscript/CMakeLists.txt b/src/angelscript/CMakeLists.txt
+index fed80a0ad..a65d9f8d5 100644
+--- a/src/angelscript/CMakeLists.txt
++++ b/src/angelscript/CMakeLists.txt
+@@ -202,48 +202,3 @@ endif()
+ 
+ # Don't override the default runtime output path to avoid conflicts when building for multiple target platforms
+ #set(RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
+-
+-#See https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-packages for a detailed explanation about this part
+-install(TARGETS ${ANGELSCRIPT_LIBRARY_NAME} EXPORT AngelscriptTargets
+-	RUNTIME DESTINATION bin
+-	LIBRARY DESTINATION lib
+-	ARCHIVE DESTINATION lib
+-	INCLUDES DESTINATION include
+-)
+-
+-install(FILES
+-	${CMAKE_CURRENT_SOURCE_DIR}/include/angelscript.h
+-	DESTINATION include
+-	COMPONENT Devel
+-)
+-
+-include(CMakePackageConfigHelpers)
+-write_basic_package_version_file(
+-	"${CMAKE_CURRENT_BINARY_DIR}/Angelscript/AngelscriptConfigVersion.cmake"
+-	VERSION ${PROJECT_VERSION}
+-	COMPATIBILITY AnyNewerVersion
+-)
+-
+-export(EXPORT AngelscriptTargets
+-	FILE "${CMAKE_CURRENT_BINARY_DIR}/Angelscript/AngelscriptTargets.cmake"
+-	NAMESPACE Angelscript::
+-)
+-configure_file(cmake/AngelscriptConfig.cmake
+-	"${CMAKE_CURRENT_BINARY_DIR}/Angelscript/AngelscriptConfig.cmake"
+-	COPYONLY
+-)
+-
+-set(ConfigPackageLocation lib/cmake/Angelscript)
+-install(EXPORT AngelscriptTargets
+-	FILE AngelscriptTargets.cmake
+-	NAMESPACE Angelscript::
+-	DESTINATION ${ConfigPackageLocation}
+-)
+-install(
+-	FILES
+-		cmake/AngelscriptConfig.cmake
+-		"${CMAKE_CURRENT_BINARY_DIR}/Angelscript/AngelscriptConfigVersion.cmake"
+-	DESTINATION ${ConfigPackageLocation}
+-	COMPONENT Devel
+-)
+-

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.0-fix-gcodeviewer-symlink.patch b/media-gfx/superslicer/files/superslicer-2.5.59.0-fix-gcodeviewer-symlink.patch
new file mode 100644
index 000000000000..5a5c9960cc00
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.0-fix-gcodeviewer-symlink.patch
@@ -0,0 +1,11 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 9aae6dc11..75835903e 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -299,5 +299,5 @@ else ()
+     install(TARGETS Slic3r RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+ 
+     # Install the symlink for gcodeviewer
+-    install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink slic3r ${GCODEVIEWER_APP_CMD} WORKING_DIRECTORY \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})")
++    install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${SLIC3R_APP_CMD} ${GCODEVIEWER_APP_CMD} WORKING_DIRECTORY \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})")
+ endif ()

diff --git a/media-gfx/superslicer/superslicer-2.5.59.0.ebuild b/media-gfx/superslicer/superslicer-2.5.59.0-r1.ebuild
similarity index 94%
rename from media-gfx/superslicer/superslicer-2.5.59.0.ebuild
rename to media-gfx/superslicer/superslicer-2.5.59.0-r1.ebuild
index 3024d92b17a4..ebd207c8f2d7 100644
--- a/media-gfx/superslicer/superslicer-2.5.59.0.ebuild
+++ b/media-gfx/superslicer/superslicer-2.5.59.0-r1.ebuild
@@ -58,6 +58,8 @@ PATCHES=(
 	"${FILESDIR}/${P}-cereal.patch"
 	"${FILESDIR}/${P}-boost.patch"
 	"${FILESDIR}/${P}-missing-includes.patch"
+	"${FILESDIR}/${P}-dont-install-bundled-angelscript.patch"
+	"${FILESDIR}/${P}-fix-gcodeviewer-symlink.patch"
 )
 
 S="${WORKDIR}/${MY_PN}-${PV}"


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/superslicer/, media-gfx/superslicer/files/
@ 2023-04-18 21:24 Piotr Karbowski
  0 siblings, 0 replies; 6+ messages in thread
From: Piotr Karbowski @ 2023-04-18 21:24 UTC (permalink / raw
  To: gentoo-commits

commit:     ac53eaadee0299160e87fcee9f649cecbb1c40c6
Author:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 18 21:14:58 2023 +0000
Commit:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
CommitDate: Tue Apr 18 21:24:22 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ac53eaad

media-gfx/superslicer: 2.5.59.2 version bump.

Signed-off-by: Piotr Karbowski <slashbeast <AT> gentoo.org>

 media-gfx/superslicer/Manifest                     |   2 +
 .../files/superslicer-2.5.59.2-boost.patch         | 324 +++++++++++++++++++++
 .../files/superslicer-2.5.59.2-cereal.patch        |  53 ++++
 ...rslicer-2.5.59.2-dont-install-angelscript.patch |  13 +
 ...erslicer-2.5.59.2-gcodeviewer-symlink-fix.patch |  11 +
 ...superslicer-2.5.59.2-missing-includes-fix.patch |  74 +++++
 .../files/superslicer-2.5.59.2-openexr3.patch      |  77 +++++
 ...uperslicer-2.5.59.2-relax-OpenCASCADE-dep.patch |  13 +
 .../superslicer-2.5.59.2-wxgtk3-wayland-fix.patch  |  21 ++
 media-gfx/superslicer/superslicer-2.5.59.2.ebuild  | 101 +++++++
 10 files changed, 689 insertions(+)

diff --git a/media-gfx/superslicer/Manifest b/media-gfx/superslicer/Manifest
index 80d31364ef86..006a776d5fba 100644
--- a/media-gfx/superslicer/Manifest
+++ b/media-gfx/superslicer/Manifest
@@ -1,2 +1,4 @@
 DIST superslicer-2.5.59.0-profiles.tar.gz 15322406 BLAKE2B cfa89697e832e0601746cb21250e258617bcc0966dd111c82ae43a9720b3ffb760f57827a1f35c8ad57a23a7ffb4c78e48ec76d6e40b364f321d0f83c4d10939 SHA512 bbdc6bfa8e21a4bdbca903a367f033f9cb5a1966bd0688bcc81314ba9ee45fee37cb892c82be35e865137c4df7c1fabceb8e6de46316338df2af4a590de91c76
 DIST superslicer-2.5.59.0.tar.gz 45360646 BLAKE2B da65610270ed4c7d55b5bc495d9970812af94f424345088782b3a45b97fcf0f4b58bdc0417b89ed49e21d8c250535baa7cb74344f43438fbde8daf1b3acfacdd SHA512 1d2c0316c91bf0d65fb366806e9ea868bc93fae33deb580a324ce065fd3789ff1b600e9ace400db4988b371b1c36ef0c3ea2b52cde0d48984f312dd8d7ef3a1c
+DIST superslicer-2.5.59.2-profiles.tar.gz 16253775 BLAKE2B 20c99b14ba8ee26ea2a210962e78ea21928a5f32b1e799cbdbe60a3ef587ae1368efce885f5d253468ee9974af6a4419890e56d7df33761732bcefe8dbbc019e SHA512 c20ec66a95d5ec3e1e4fd8b1936bf1a4fc32fbad2c3d78774d5c2480be8a9dcacba5e561c57774a2c761d5189466083e7b6bd9b021a4ca7676e6a5e9676439d7
+DIST superslicer-2.5.59.2.tar.gz 45622782 BLAKE2B ff2fecf233d2710d706b64eb2191bfac39df3f631634de5f9eb1bca6ca712e94b0283beb7c6e9f3b293dc308b50240871ef8651a5355a4d7c5ea6092ac1a836b SHA512 af8878bd8e0c3e0dd5247ce01bdbd2b42b6766d81efbde11b71c6642787a12dfeaea91e653ac928066b9610cd911ea1f4dc77cf4823639030b3c104d955b8cbd

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.2-boost.patch b/media-gfx/superslicer/files/superslicer-2.5.59.2-boost.patch
new file mode 100644
index 000000000000..ba0870a480b0
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.2-boost.patch
@@ -0,0 +1,324 @@
+diff --git a/src/hints/HintsToPot.cpp b/src/hints/HintsToPot.cpp
+index 7c8029c..4791f06 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/AppConfig.cpp b/src/libslic3r/AppConfig.cpp
+index e7c81f8..a626986 100644
+--- a/src/libslic3r/AppConfig.cpp
++++ b/src/libslic3r/AppConfig.cpp
+@@ -1,3 +1,4 @@
++#include <boost/filesystem.hpp>
+ #include "libslic3r/libslic3r.h"
+ #include "libslic3r/Utils.hpp"
+ #include "AppConfig.hpp"
+diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp
+index 35e36c0..5e8059b 100644
+--- a/src/libslic3r/AppConfig.hpp
++++ b/src/libslic3r/AppConfig.hpp
+@@ -5,6 +5,7 @@
+ #include <map>
+ #include <string>
+ 
++#include <boost/filesystem/path.hpp>
+ #include <boost/algorithm/string/trim_all.hpp>
+ 
+ #include "libslic3r/Config.hpp"
+diff --git a/src/libslic3r/Flow.cpp b/src/libslic3r/Flow.cpp
+index 269c1cb..acea297 100644
+--- a/src/libslic3r/Flow.cpp
++++ b/src/libslic3r/Flow.cpp
+@@ -6,6 +6,7 @@
+ #include <assert.h>
+ 
+ #include <boost/algorithm/string/predicate.hpp>
++#include <boost/algorithm/string/replace.hpp>
+ 
+ // Mark string for localization and translate.
+ #define L(s) Slic3r::I18N::translate(s)
+diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp
+index 132c9a7..c311d05 100644
+--- a/src/libslic3r/GCode/WipeTower.cpp
++++ b/src/libslic3r/GCode/WipeTower.cpp
+@@ -12,7 +12,9 @@
+ #include "LocalesUtils.hpp"
+ #include "Flow.hpp"
+ 
++
+ #include <boost/algorithm/string/predicate.hpp>
++#include <boost/algorithm/string.hpp>
+ 
+ 
+ namespace Slic3r
+diff --git a/src/libslic3r/LocalesUtils.cpp b/src/libslic3r/LocalesUtils.cpp
+index 5bf5205..7b87052 100644
+--- a/src/libslic3r/LocalesUtils.cpp
++++ b/src/libslic3r/LocalesUtils.cpp
+@@ -1,3 +1,4 @@
++#include <boost/lexical_cast.hpp>
+ #include "LocalesUtils.hpp"
+ 
+ #ifdef _WIN32
+diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
+index 106f26e..c81cd1d 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/libslic3r/Utils.hpp b/src/libslic3r/Utils.hpp
+index f525c98..839f0f5 100644
+--- a/src/libslic3r/Utils.hpp
++++ b/src/libslic3r/Utils.hpp
+@@ -7,6 +7,7 @@
+ #include <type_traits>
+ #include <system_error>
+ 
++#include <boost/filesystem.hpp>
+ #include <boost/system/error_code.hpp>
+ 
+ #include "libslic3r.h"
+diff --git a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
+index cef390f..553a183 100644
+--- a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
++++ b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
+@@ -18,6 +18,11 @@
+ #include <wx/notebook.h>
+ #include "Notebook.hpp"
+ 
++#include <boost/filesystem.hpp>
++#include <boost/property_tree/ptree.hpp>
++#include <boost/property_tree/ini_parser.hpp>
++#include <boost/log/trivial.hpp>
++
+ #include "MainFrame.hpp"
+ #include "wxExtensions.hpp"
+ 
+diff --git a/src/slic3r/GUI/DesktopIntegrationDialog.cpp b/src/slic3r/GUI/DesktopIntegrationDialog.cpp
+index fcb7472..866ebae 100644
+--- a/src/slic3r/GUI/DesktopIntegrationDialog.cpp
++++ b/src/slic3r/GUI/DesktopIntegrationDialog.cpp
+@@ -14,6 +14,7 @@
+ #include <boost/log/trivial.hpp>
+ #include <boost/dll/runtime_symbol_info.hpp>
+ #include <boost/algorithm/string/replace.hpp>
++#include <boost/nowide/fstream.hpp>
+ 
+ #include <wx/filename.h>
+ #include <wx/stattext.h>
+@@ -503,4 +504,4 @@ DesktopIntegrationDialog::~DesktopIntegrationDialog()
+ 
+ } // namespace GUI
+ } // namespace Slic3r
+-#endif // __linux__
+\ No newline at end of file
++#endif // __linux__
+diff --git a/src/slic3r/GUI/FreeCADDialog.cpp b/src/slic3r/GUI/FreeCADDialog.cpp
+index d519626..a14fb61 100644
+--- a/src/slic3r/GUI/FreeCADDialog.cpp
++++ b/src/slic3r/GUI/FreeCADDialog.cpp
+@@ -38,6 +38,7 @@
+ #include <boost/log/trivial.hpp>
+ #include <boost/property_tree/ptree.hpp>
+ #include <boost/property_tree/json_parser.hpp>
++#include <boost/nowide/fstream.hpp>
+ 
+ // hack for process.hpp : it uses pid_t to set it as alias of int, but vc_x64_lib (wx thingy) as a '#define pid_t int'
+ // and so boost/process has a line 'typedef int int'instead of 'typedef int pid_t' that makes it crash
+@@ -322,7 +323,7 @@ bool FreeCADDialog::load_text_from_file(const boost::filesystem::path &path) {
+         try {
+             std::locale loc = boost::locale::generator()("en_US.UTF-8");
+             // Open the stream to 'lock' the file.
+-            boost::filesystem::ifstream in;
++            boost::nowide::ifstream in;
+             in.imbue(loc);
+             in.open(path);
+             // Obtain the size of the file.
+@@ -369,7 +370,7 @@ bool FreeCADDialog::write_text_in_file(const wxString &towrite, const boost::fil
+         boost::filesystem::create_directories(file.parent_path());
+         std::locale loc = boost::locale::generator()("en_US.UTF-8");
+         // Open the stream to 'lock' the file.
+-        boost::filesystem::ofstream out;
++        boost::nowide::ofstream out;
+         out.imbue(loc);
+         out.open(file);
+         out << towrite;
+diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
+index 2f32d04..813ef1c 100644
+--- a/src/slic3r/GUI/GUI_App.cpp
++++ b/src/slic3r/GUI/GUI_App.cpp
+@@ -19,6 +19,7 @@
+ #include <boost/lexical_cast.hpp>
+ #include <boost/log/trivial.hpp>
+ #include <boost/nowide/convert.hpp>
++#include <boost/nowide/fstream.hpp>
+ 
+ #include <wx/stdpaths.h>
+ #include <wx/imagpng.h>
+diff --git a/src/slic3r/GUI/HintNotification.cpp b/src/slic3r/GUI/HintNotification.cpp
+index dbedd0a..25182cc 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
+diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp
+index ffc600b..c8080d1 100644
+--- a/src/slic3r/GUI/Preferences.cpp
++++ b/src/slic3r/GUI/Preferences.cpp
+@@ -12,6 +12,7 @@
+ #include "OG_CustomCtrl.hpp"
+ #include "wxExtensions.hpp"
+ 
++#include <boost/algorithm/string/split.hpp>
+ #include <boost/filesystem.hpp>
+ #include <boost/filesystem/path.hpp>
+ 
+diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp
+index 87bef23..d097d58 100644
+--- a/src/slic3r/GUI/PrintHostDialogs.cpp
++++ b/src/slic3r/GUI/PrintHostDialogs.cpp
+@@ -81,8 +81,8 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo
+     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;
+@@ -92,7 +92,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo
+ 
+     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);
+         }
+@@ -102,7 +102,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo
+     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);
+             }
+@@ -113,7 +113,7 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo
+         // 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);
+             }        
+diff --git a/src/slic3r/GUI/ScriptExecutor.cpp b/src/slic3r/GUI/ScriptExecutor.cpp
+index e923bb5..354c79b 100644
+--- a/src/slic3r/GUI/ScriptExecutor.cpp
++++ b/src/slic3r/GUI/ScriptExecutor.cpp
+@@ -4,6 +4,13 @@
+ #include "Tab.hpp"
+ #include "libslic3r/PresetBundle.hpp"
+ #include "libslic3r/Print.hpp"
++#include <boost/log/trivial.hpp>
++#include <boost/lexical_cast.hpp>
++#include <boost/algorithm/string/trim_all.hpp>
++#include <boost/algorithm/string/erase.hpp>
++#include <boost/algorithm/string/split.hpp>
++#include <boost/filesystem.hpp>
++#include <boost/filesystem/string_file.hpp>
+ 
+ #include <string>
+ 
+diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp
+index 340369e..837982e 100644
+--- a/src/slic3r/GUI/Tab.cpp
++++ b/src/slic3r/GUI/Tab.cpp
+@@ -36,6 +36,8 @@
+ #include <boost/filesystem.hpp>
+ #include <boost/filesystem/path.hpp>
+ #include <boost/lexical_cast.hpp>
++#include <boost/nowide/fstream.hpp>
++#include <boost/log/trivial.hpp>
+ 
+ #include "wxExtensions.hpp"
+ #include "PresetComboBoxes.hpp"
+@@ -1701,7 +1703,7 @@ std::vector<Slic3r::GUI::PageShp> Tab::create_pages(std::string setting_type_nam
+ 
+     //read file
+     //std::ifstream filestream(ui_layout_file.c_str());
+-    boost::filesystem::ifstream filestream(ui_layout_file);
++    boost::nowide::ifstream filestream(ui_layout_file);
+     std::string full_line;
+     while (std::getline(filestream, full_line)) {
+         //remove spaces
+diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp
+index 62461cd..7a02c04 100644
+--- a/src/slic3r/Utils/Http.cpp
++++ b/src/slic3r/Utils/Http.cpp
+@@ -11,6 +11,7 @@
+ #include <boost/filesystem.hpp>
+ #include <boost/format.hpp>
+ #include <boost/log/trivial.hpp>
++#include <boost/nowide/fstream.hpp>
+ 
+ #include <curl/curl.h>
+ 
+@@ -52,7 +53,7 @@ namespace Slic3r {
+ 						% error;
+ 			})
+ 			.on_complete([&](std::string body, unsigned /* http_status */) {
+-				boost::filesystem::fstream file(tmp_path, std::ios::out | std::ios::binary | std::ios::trunc);
++				boost::nowide::fstream file(tmp_path, std::ios::out | std::ios::binary | std::ios::trunc);
+ 				file.write(body.c_str(), body.size());
+ 				file.close();
+ 				boost::filesystem::rename(tmp_path, target_path);

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.2-cereal.patch b/media-gfx/superslicer/files/superslicer-2.5.59.2-cereal.patch
new file mode 100644
index 000000000000..2013e08cf032
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.2-cereal.patch
@@ -0,0 +1,53 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 18f26ba..c0a1f1f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -468,6 +468,9 @@ endif ()
+ 
+ # Find the Cereal serialization library
+ find_package(cereal REQUIRED)
++if (NOT TARGET cereal::cereal)
++    add_library(cereal::cereal ALIAS cereal)
++endif ()
+ 
+ # l10n
+ set(L10N_DIR "${SLIC3R_RESOURCES_DIR}/localization")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 7b2defe..f63aaad 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -141,7 +141,7 @@ if (NOT WIN32)
+     set_target_properties(Slic3r PROPERTIES OUTPUT_NAME "${SLIC3R_APP_CMD}")
+ endif ()
+ 
+-target_link_libraries(Slic3r libslic3r cereal)
++target_link_libraries(Slic3r libslic3r cereal::cereal)
+ 
+ if (APPLE)
+ #    add_compile_options(-stdlib=libc++)
+diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
+index 0ab5584..36917f3 100644
+--- a/src/libslic3r/CMakeLists.txt
++++ b/src/libslic3r/CMakeLists.txt
+@@ -416,7 +416,7 @@ find_package(JPEG REQUIRED)
+ target_link_libraries(libslic3r
+     libnest2d
+     admesh
+-    cereal
++    cereal::cereal
+     libigl
+     miniz
+     boost_libs
+diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
+index c11f860..4ca2523 100644
+--- a/src/slic3r/CMakeLists.txt
++++ b/src/slic3r/CMakeLists.txt
+@@ -302,7 +302,7 @@ target_compile_definitions(libslic3r_gui PRIVATE $<$<BOOL:${SLIC3R_ALPHA}>:SLIC3
+ 
+ encoding_check(libslic3r_gui)
+ 
+-target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui GLEW::GLEW OpenGL::GL hidapi exif angelscript libcurl ${wxWidgets_LIBRARIES})
++target_link_libraries(libslic3r_gui libslic3r avrdude cereal::cereal imgui GLEW::GLEW OpenGL::GL hidapi exif angelscript libcurl ${wxWidgets_LIBRARIES})
+ 
+ if (MSVC)
+     target_link_libraries(libslic3r_gui Setupapi.lib)

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.2-dont-install-angelscript.patch b/media-gfx/superslicer/files/superslicer-2.5.59.2-dont-install-angelscript.patch
new file mode 100644
index 000000000000..f8e89fcd08fa
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.2-dont-install-angelscript.patch
@@ -0,0 +1,13 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index f63aaad..ba2fe01 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -28,7 +28,7 @@ if (SLIC3R_GUI)
+     include_directories(hidapi/include)
+     add_subdirectory(exif)
+     include_directories(exif/include)
+-    add_subdirectory(angelscript)
++    add_subdirectory(angelscript EXCLUDE_FROM_ALL)
+     # include_directories(angelscript/include)
+ 
+     if(WIN32)

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.2-gcodeviewer-symlink-fix.patch b/media-gfx/superslicer/files/superslicer-2.5.59.2-gcodeviewer-symlink-fix.patch
new file mode 100644
index 000000000000..2fc6ca2730e8
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.2-gcodeviewer-symlink-fix.patch
@@ -0,0 +1,11 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index ba2fe01..b84292b 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -300,5 +300,5 @@ else ()
+     install(TARGETS Slic3r RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+ 
+     # Install the symlink for gcodeviewer
+-    install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink slic3r ${GCODEVIEWER_APP_CMD} WORKING_DIRECTORY \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})")
++    install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${SLIC3R_APP_CMD} ${GCODEVIEWER_APP_CMD} WORKING_DIRECTORY \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})")
+ endif ()

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.2-missing-includes-fix.patch b/media-gfx/superslicer/files/superslicer-2.5.59.2-missing-includes-fix.patch
new file mode 100644
index 000000000000..289198863367
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.2-missing-includes-fix.patch
@@ -0,0 +1,74 @@
+diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp
+index a626986..5f2d963 100644
+--- a/src/libslic3r/AppConfig.cpp
++++ b/src/libslic3r/AppConfig.cpp
+@@ -1,6 +1,7 @@
+ #include <boost/filesystem.hpp>
+ #include "libslic3r/libslic3r.h"
+ #include "libslic3r/Utils.hpp"
++#include "libslic3r/I18N.hpp"
+ #include "AppConfig.hpp"
+ #include "Exception.hpp"
+ #include "LocalesUtils.hpp"
+diff --git a/src/libslic3r/ExtrusionEntity.hpp b/src/libslic3r/ExtrusionEntity.hpp
+index 1c54588..c74df3a 100644
+--- a/src/libslic3r/ExtrusionEntity.hpp
++++ b/src/libslic3r/ExtrusionEntity.hpp
+@@ -9,6 +9,8 @@
+ #include <string_view>
+ #include <numeric>
+ 
++#include "Config.hpp"
++
+ namespace Slic3r {
+ 
+ class ExPolygonCollection;
+diff --git a/src/libslic3r/Geometry/ArcFitter.cpp b/src/libslic3r/Geometry/ArcFitter.cpp
+index 34ef2ae..20fe8b7 100644
+--- a/src/libslic3r/Geometry/ArcFitter.cpp
++++ b/src/libslic3r/Geometry/ArcFitter.cpp
+@@ -2,6 +2,7 @@
+ 
+ #include <cmath>
+ #include <cassert>
++#include "Polyline.hpp"
+ 
+ namespace Slic3r { namespace Geometry {
+ 
+diff --git a/src/libslic3r/PerimeterGenerator.hpp b/src/libslic3r/PerimeterGenerator.hpp
+index 34ec4e6..ed83b3e 100644
+--- a/src/libslic3r/PerimeterGenerator.hpp
++++ b/src/libslic3r/PerimeterGenerator.hpp
+@@ -1,6 +1,7 @@
+ #ifndef slic3r_PerimeterGenerator_hpp_
+ #define slic3r_PerimeterGenerator_hpp_
+ 
++#include "ClipperUtils.hpp"
+ #include "libslic3r.h"
+ #include <vector>
+ #include "ExPolygonCollection.hpp"
+diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp
+index f69d68f..1dd55f2 100644
+--- a/src/libslic3r/Print.cpp
++++ b/src/libslic3r/Print.cpp
+@@ -18,6 +18,8 @@
+ #include "Utils.hpp"
+ #include "BuildVolume.hpp"
+ 
++#include <tbb/tbb.h>
++
+ #include <float.h>
+ 
+ #include <algorithm>
+diff --git a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
+index 553a183..686630c 100644
+--- a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
++++ b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
+@@ -40,6 +40,7 @@
+ #include <wx/odcombo.h>
+ #include <wx/textctrl.h>
+ #include <wx/wrapsizer.h>
++#include <wx/rawbmp.h>
+ #include "wxExtensions.hpp"
+ 
+ #include <boost/filesystem/path.hpp>

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.2-openexr3.patch b/media-gfx/superslicer/files/superslicer-2.5.59.2-openexr3.patch
new file mode 100644
index 000000000000..7bd04e6fad10
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.2-openexr3.patch
@@ -0,0 +1,77 @@
+diff --git a/cmake/modules/FindOpenVDB.cmake b/cmake/modules/FindOpenVDB.cmake
+index 4fde5fa..566e73a 100644
+--- a/cmake/modules/FindOpenVDB.cmake
++++ b/cmake/modules/FindOpenVDB.cmake
+@@ -347,28 +347,10 @@ macro(just_fail msg)
+   return()
+ endmacro()
+ 
+-find_package(IlmBase QUIET)
+-if(NOT IlmBase_FOUND)
+-  pkg_check_modules(IlmBase QUIET IlmBase)
+-endif()
+-if (IlmBase_FOUND AND NOT TARGET IlmBase::Half)
+-  message(STATUS "Falling back to IlmBase found by pkg-config...")
+-
+-  find_library(IlmHalf_LIBRARY NAMES Half)
+-  if(IlmHalf_LIBRARY-NOTFOUND OR NOT IlmBase_INCLUDE_DIRS)
+-    just_fail("IlmBase::Half can not be found!")
+-  endif()
+-  
+-  add_library(IlmBase::Half UNKNOWN IMPORTED)
+-  set_target_properties(IlmBase::Half PROPERTIES
+-    IMPORTED_LOCATION "${IlmHalf_LIBRARY}"
+-    INTERFACE_INCLUDE_DIRECTORIES "${IlmBase_INCLUDE_DIRS}")
+-elseif(NOT IlmBase_FOUND)
+-  just_fail("IlmBase::Half can not be found!")
+-endif()
+ find_package(TBB ${_quiet} ${_required} COMPONENTS tbb)
+ find_package(ZLIB ${_quiet} ${_required})
+ find_package(Boost ${_quiet} ${_required} COMPONENTS iostreams system )
++find_package(Imath CONFIG)
+ 
+ # Use GetPrerequisites to see which libraries this OpenVDB lib has linked to
+ # which we can query for optional deps. This basically runs ldd/otoll/objdump
+@@ -419,7 +401,7 @@ foreach(PREREQUISITE ${_OPENVDB_PREREQUISITE_LIST})
+     set(OpenVDB_USES_LOG4CPLUS ON)
+   endif()
+ 
+-  string(FIND ${PREREQUISITE} "IlmImf" _HAS_DEP)
++  string(FIND ${PREREQUISITE} "OpenEXR" _HAS_DEP)
+   if(NOT ${_HAS_DEP} EQUAL -1)
+     set(OpenVDB_USES_ILM ON)
+   endif()
+@@ -450,11 +432,7 @@ if(OpenVDB_USES_LOG4CPLUS)
+   find_package(Log4cplus ${_quiet} ${_required})
+ endif()
+ 
+-if(OpenVDB_USES_ILM)
+-  find_package(IlmBase ${_quiet} ${_required})
+-endif()
+-
+-if(OpenVDB_USES_EXR)
++if(OpenVDB_USES_ILM OR OpenVDB_USES_EXR)
+   find_package(OpenEXR ${_quiet} ${_required})
+ endif()
+ 
+@@ -471,7 +449,7 @@ endif()
+ set(_OPENVDB_VISIBLE_DEPENDENCIES
+   Boost::iostreams
+   Boost::system
+-  IlmBase::Half
++  Imath::Imath
+ )
+ 
+ set(_OPENVDB_DEFINITIONS)
+@@ -481,10 +459,7 @@ endif()
+ 
+ if(OpenVDB_USES_EXR)
+   list(APPEND _OPENVDB_VISIBLE_DEPENDENCIES
+-    IlmBase::IlmThread
+-    IlmBase::Iex
+-    IlmBase::Imath
+-    OpenEXR::IlmImf
++    OpenEXR::OpenEXR
+   )
+   list(APPEND _OPENVDB_DEFINITIONS "-DOPENVDB_TOOLS_RAYTRACER_USE_EXR")
+ endif()

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.2-relax-OpenCASCADE-dep.patch b/media-gfx/superslicer/files/superslicer-2.5.59.2-relax-OpenCASCADE-dep.patch
new file mode 100644
index 000000000000..1ea699ebff5a
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.2-relax-OpenCASCADE-dep.patch
@@ -0,0 +1,13 @@
+diff --git a/src/occt_wrapper/CMakeLists.txt b/src/occt_wrapper/CMakeLists.txt
+index ed75531..16de4e0 100644
+--- a/src/occt_wrapper/CMakeLists.txt
++++ b/src/occt_wrapper/CMakeLists.txt
+@@ -19,7 +19,7 @@ include(GenerateExportHeader)
+ 
+ generate_export_header(OCCTWrapper)
+ 
+-find_package(OpenCASCADE 7.6.2 REQUIRED)
++find_package(OpenCASCADE REQUIRED)
+ 
+ set(OCCT_LIBS
+     TKXDESTEP

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.2-wxgtk3-wayland-fix.patch b/media-gfx/superslicer/files/superslicer-2.5.59.2-wxgtk3-wayland-fix.patch
new file mode 100644
index 000000000000..6111a25cbf2c
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.2-wxgtk3-wayland-fix.patch
@@ -0,0 +1,21 @@
+diff --git a/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp
+index ccd3cc0..be8bbe5 100644
+--- a/src/slic3r/GUI/GUI.cpp
++++ b/src/slic3r/GUI/GUI.cpp
+@@ -33,6 +33,16 @@ class AppConfig;
+ 
+ namespace GUI {
+ 
++// wxgtk3 is broken on wayland: https://trac.wxwidgets.org/ticket/17702
++#ifdef __WXGTK3__
++struct ForceX11 {
++    ForceX11() {
++        setenv("GDK_BACKEND", "x11", 1);
++    }
++};
++static struct ForceX11 forcex11;
++#endif
++
+ #if __APPLE__
+ IOPMAssertionID assertionID;
+ #endif

diff --git a/media-gfx/superslicer/superslicer-2.5.59.2.ebuild b/media-gfx/superslicer/superslicer-2.5.59.2.ebuild
new file mode 100644
index 000000000000..304f0fbf199c
--- /dev/null
+++ b/media-gfx/superslicer/superslicer-2.5.59.2.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WX_GTK_VER="3.0-gtk3"
+MY_PN="SuperSlicer"
+
+inherit cmake wxwidgets xdg flag-o-matic
+
+DESCRIPTION="A mesh slicer to generate G-code for fused-filament-fabrication (3D printers)"
+HOMEPAGE="https://github.com/supermerill/SuperSlicer/"
+SRC_URI="
+	https://github.com/supermerill/SuperSlicer/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
+	https://github.com/slic3r/slic3r-profiles/archive/f6b1b123062a77101fe350f6d2a2a57be9adc684.tar.gz -> ${P}-profiles.tar.gz
+"
+
+LICENSE="AGPL-3 Boost-1.0 GPL-2 LGPL-3 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RESTRICT="test"
+
+# No dep on sci-libs/libigl, in-tree version cannot build
+# static library currently. Using bundled one.
+RDEPEND="
+	dev-cpp/eigen:3
+	dev-cpp/tbb:=
+	dev-libs/boost:=[nls]
+	dev-libs/cereal
+	dev-libs/expat
+	dev-libs/glib:2
+	dev-libs/gmp:=
+	dev-libs/mpfr:=
+	dev-libs/imath:=
+	>=media-gfx/openvdb-8.2:=
+	net-misc/curl[adns]
+	media-libs/glew:0=
+	media-libs/libpng:0=
+	media-libs/qhull:=
+	sci-libs/nlopt
+	>=sci-mathematics/cgal-5.0:=
+	sys-apps/dbus
+	sys-libs/zlib:=
+	virtual/glu
+	virtual/opengl
+	x11-libs/gtk+:3
+	x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
+"
+DEPEND="${RDEPEND}
+	media-libs/qhull[static-libs]
+"
+
+PATCHES=(
+	"${FILESDIR}/${P}-boost.patch"
+	"${FILESDIR}/${P}-cereal.patch"
+	"${FILESDIR}/${P}-dont-install-angelscript.patch"
+	"${FILESDIR}/${P}-gcodeviewer-symlink-fix.patch"
+	"${FILESDIR}/${P}-missing-includes-fix.patch"
+	"${FILESDIR}/${P}-openexr3.patch"
+	"${FILESDIR}/${P}-wxgtk3-wayland-fix.patch"
+	"${FILESDIR}/${P}-relax-OpenCASCADE-dep.patch"
+)
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+src_unpack() {
+	default
+
+	mv slic3r-profiles-*/* "${S}"/resources/profiles/ || die
+}
+
+src_configure() {
+	CMAKE_BUILD_TYPE="Release"
+
+	append-flags -fno-strict-aliasing
+
+	setup-wxwidgets
+
+	local mycmakeargs=(
+		-DOPENVDB_FIND_MODULE_PATH="/usr/$(get_libdir)/cmake/OpenVDB"
+
+		-DSLIC3R_BUILD_TESTS=$(usex test)
+		-DSLIC3R_FHS=ON
+		-DSLIC3R_GTK=3
+		-DSLIC3R_GUI=ON
+		-DSLIC3R_PCH=OFF
+		-DSLIC3R_STATIC=OFF
+		-DSLIC3R_WX_STABLE=ON
+		-Wno-dev
+	)
+
+	cmake_src_configure
+}
+
+src_install() {
+	cmake_src_install
+
+	rm "${ED}/usr/lib/udev/rules.d/90-3dconnexion.rules" || die
+}


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/superslicer/, media-gfx/superslicer/files/
@ 2023-04-22 18:09 Piotr Karbowski
  0 siblings, 0 replies; 6+ messages in thread
From: Piotr Karbowski @ 2023-04-22 18:09 UTC (permalink / raw
  To: gentoo-commits

commit:     318c82dd47bb625f131cfac6bb04b91542e4506e
Author:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 22 18:02:15 2023 +0000
Commit:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
CommitDate: Sat Apr 22 18:09:11 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=318c82dd

media-gfx/superslicer: 2.5.59.2-r1 revbump

- Fixes crash on enabling vase mode (superslicer PR #3736
- Links bundled OCCTWrapper statically
- Fix unique_ptr null pointer crash on slicing
- Adds missing dependency on OpenCASCADE

Closes: https://bugs.gentoo.org/904558
Closes: https://bugs.gentoo.org/904656
Closes: https://bugs.gentoo.org/904727
Bug: https://github.com/supermerill/SuperSlicer/issues/3731
Signed-off-by: Piotr Karbowski <slashbeast <AT> gentoo.org>

 ...ereferencing-in-std-unique_ptr-to-nullptr.patch | 82 +++++++++++++++++++
 ...cer-2.5.59.2-fix-spiral_vase-null-pointer.patch | 22 +++++
 ...icer-2.5.59.2-link-occtwrapper-statically.patch | 93 ++++++++++++++++++++++
 ....59.2.ebuild => superslicer-2.5.59.2-r1.ebuild} |  4 +
 4 files changed, 201 insertions(+)

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.2-fix-dereferencing-in-std-unique_ptr-to-nullptr.patch b/media-gfx/superslicer/files/superslicer-2.5.59.2-fix-dereferencing-in-std-unique_ptr-to-nullptr.patch
new file mode 100644
index 000000000000..4e93fca55e08
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.2-fix-dereferencing-in-std-unique_ptr-to-nullptr.patch
@@ -0,0 +1,82 @@
+diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp
+index 68ec2ce..cd828a6 100644
+--- a/src/libslic3r/GCode.cpp
++++ b/src/libslic3r/GCode.cpp
+@@ -2081,31 +2081,30 @@ void GCode::process_layers(
+             }
+         });
+     const auto spiral_vase = tbb::make_filter<LayerResult, LayerResult>(slic3r_tbb_filtermode::serial_in_order,
+-        [&spiral_vase = *this->m_spiral_vase](LayerResult in) -> LayerResult {
++        [spiral_vase = this->m_spiral_vase.get()](LayerResult in) -> LayerResult {
+             if (in.nop_layer_result)
+                 return in;
+ 
+             CNumericLocalesSetter locales_setter;
+-            spiral_vase.enable(in.spiral_vase_enable);
+-            return LayerResult{ spiral_vase.process_layer(std::move(in.gcode)), in.layer_id, in.spiral_vase_enable, in.cooling_buffer_flush };
++            spiral_vase->enable(in.spiral_vase_enable);
++            return { spiral_vase->process_layer(std::move(in.gcode)), in.layer_id, in.spiral_vase_enable, in.cooling_buffer_flush};
+         });
+     const auto pressure_equalizer = tbb::make_filter<LayerResult, LayerResult>(slic3r_tbb_filtermode::serial_in_order,
+-        [&pressure_equalizer = *this->m_pressure_equalizer](LayerResult in) -> LayerResult {
+-            return pressure_equalizer.process_layer(std::move(in));
++        [pressure_equalizer = this->m_pressure_equalizer.get()](LayerResult in) -> LayerResult {
++             return pressure_equalizer->process_layer(std::move(in));
+         });
+     const auto cooling = tbb::make_filter<LayerResult, std::string>(slic3r_tbb_filtermode::serial_in_order,
+-        [&cooling_buffer = *this->m_cooling_buffer](LayerResult in) -> std::string {
++        [cooling_buffer = this->m_cooling_buffer.get()](LayerResult in)->std::string {
+              if (in.nop_layer_result)
+                 return in.gcode;
+ 
+             CNumericLocalesSetter locales_setter;
+-            return cooling_buffer.process_layer(std::move(in.gcode), in.layer_id, in.cooling_buffer_flush);
++            return cooling_buffer->process_layer(std::move(in.gcode), in.layer_id, in.cooling_buffer_flush);
+         });
+     const auto find_replace = tbb::make_filter<std::string, std::string>(slic3r_tbb_filtermode::serial_in_order,
+-        [&self = *this->m_find_replace](std::string s) -> std::string {
+-            CNumericLocalesSetter locales_setter;
+-            return self.process_layer(std::move(s));
+-        });
++        [find_replace = this->m_find_replace.get()](std::string s) -> std::string {
++            return find_replace->process_layer(std::move(s));
++});
+     const auto output = tbb::make_filter<std::string, void>(slic3r_tbb_filtermode::serial_in_order,
+         [&output_stream](std::string s) {
+             CNumericLocalesSetter locales_setter;
+@@ -2183,25 +2182,26 @@ void GCode::process_layers(
+             }
+         });
+     const auto spiral_vase = tbb::make_filter<LayerResult, LayerResult>(slic3r_tbb_filtermode::serial_in_order,
+-        [&spiral_vase = *this->m_spiral_vase](LayerResult in)->LayerResult {
++       [spiral_vase = this->m_spiral_vase.get()](LayerResult in) -> LayerResult {
+             if (in.nop_layer_result)
+                 return in;
+-        spiral_vase.enable(in.spiral_vase_enable);
+-        return { spiral_vase.process_layer(std::move(in.gcode)), in.layer_id, in.spiral_vase_enable, in.cooling_buffer_flush };
++            spiral_vase->enable(in.spiral_vase_enable);
++            return { spiral_vase->process_layer(std::move(in.gcode)), in.layer_id, in.spiral_vase_enable, in.cooling_buffer_flush};
+     });
+     const auto pressure_equalizer = tbb::make_filter<LayerResult, LayerResult>(slic3r_tbb_filtermode::serial_in_order,
+-        [&pressure_equalizer = *this->m_pressure_equalizer](LayerResult in) -> LayerResult {
+-             return pressure_equalizer.process_layer(std::move(in));
++        [pressure_equalizer = this->m_pressure_equalizer.get()](LayerResult in) -> LayerResult {
++            return pressure_equalizer->process_layer(std::move(in));
+         });
+     const auto cooling = tbb::make_filter<LayerResult, std::string>(slic3r_tbb_filtermode::serial_in_order,
+-        [&cooling_buffer = *this->m_cooling_buffer](LayerResult in)->std::string {
++        [cooling_buffer = this->m_cooling_buffer.get()](LayerResult in) -> std::string {
+             if (in.nop_layer_result)
+                 return in.gcode;
+-            return cooling_buffer.process_layer(std::move(in.gcode), in.layer_id, in.cooling_buffer_flush);
++             return cooling_buffer->process_layer(std::move(in.gcode), in.layer_id, in.cooling_buffer_flush);
++
+         });
+     const auto find_replace = tbb::make_filter<std::string, std::string>(slic3r_tbb_filtermode::serial_in_order,
+-        [&self = *this->m_find_replace](std::string s) -> std::string {
+-            return self.process_layer(std::move(s));
++        [find_replace = this->m_find_replace.get()](std::string s) -> std::string {
++            return find_replace->process_layer(std::move(s));
+         });
+     const auto output = tbb::make_filter<std::string, void>(slic3r_tbb_filtermode::serial_in_order,
+         [&output_stream](std::string s) { 

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.2-fix-spiral_vase-null-pointer.patch b/media-gfx/superslicer/files/superslicer-2.5.59.2-fix-spiral_vase-null-pointer.patch
new file mode 100644
index 000000000000..4dcc7f54a444
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.2-fix-spiral_vase-null-pointer.patch
@@ -0,0 +1,22 @@
+From 6461985380814b92aab1caa791bee75d94e68676 Mon Sep 17 00:00:00 2001
+From: Tim Schneider <tim@schneider.engineering>
+Date: Sat, 18 Mar 2023 17:51:38 +0100
+Subject: [PATCH] Fix crash on spiral_vase.
+
+---
+ src/libslic3r/PrintConfig.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp
+index 05bc79e53b..8c74880260 100644
+--- a/src/libslic3r/PrintConfig.cpp
++++ b/src/libslic3r/PrintConfig.cpp
+@@ -8055,7 +8055,7 @@ void DynamicPrintConfig::normalize_fdm()
+         {
+             this->opt<ConfigOptionInt>("top_solid_layers", true)->value = 0;
+             this->opt<ConfigOptionPercent>("fill_density", true)->value = 0;
+-            this->opt<ConfigOptionEnum<PerimeterGeneratorType>>("perimeter_generator", true)->value = PerimeterGeneratorType::Classic; 
++            this->option<ConfigOptionEnum<PerimeterGeneratorType>>("perimeter_generator", true)->value = PerimeterGeneratorType::Classic; 
+             this->opt<ConfigOptionBool>("support_material", true)->value = false;
+             this->opt<ConfigOptionInt>("solid_over_perimeters")->value = 0;
+             this->opt<ConfigOptionInt>("support_material_enforce_layers")->value = 0;

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.2-link-occtwrapper-statically.patch b/media-gfx/superslicer/files/superslicer-2.5.59.2-link-occtwrapper-statically.patch
new file mode 100644
index 000000000000..bb5b51f82a66
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.2-link-occtwrapper-statically.patch
@@ -0,0 +1,93 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index b84292b..63fea9c 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -19,7 +19,7 @@ add_subdirectory(libnest2d)
+ add_subdirectory(libslic3r)
+ 
+ if (SLIC3R_ENABLE_FORMAT_STEP)
+-    add_subdirectory(occt_wrapper)
++    add_subdirectory(occt_wrapper EXCLUDE_FROM_ALL)
+ endif ()
+ 
+ if (SLIC3R_GUI)
+diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
+index 36917f3..63c4201 100644
+--- a/src/libslic3r/CMakeLists.txt
++++ b/src/libslic3r/CMakeLists.txt
+@@ -435,10 +435,7 @@ target_link_libraries(libslic3r
+     qoi
+     )
+ 
+-if (APPLE)
+-    # TODO: we need to fix notarization with the separate shared library
+-    target_link_libraries(libslic3r OCCTWrapper)
+-endif ()
++target_link_libraries(libslic3r OCCTWrapper)
+ 
+ if (TARGET OpenVDB::openvdb)
+     target_link_libraries(libslic3r OpenVDB::openvdb)
+diff --git a/src/libslic3r/Format/STEP.cpp b/src/libslic3r/Format/STEP.cpp
+index 5165bb7..3ed0154 100644
+--- a/src/libslic3r/Format/STEP.cpp
++++ b/src/libslic3r/Format/STEP.cpp
+@@ -22,17 +22,13 @@
+ 
+ namespace Slic3r {
+ 
+-#if __APPLE__
+ extern "C" bool load_step_internal(const char *path, OCCTResult* res);
+-#endif
+ 
+ LoadStepFn get_load_step_fn()
+ {
+     static LoadStepFn load_step_fn = nullptr;
+ 
+-#ifndef __APPLE__
+     constexpr const char* fn_name = "load_step_internal";
+-#endif
+ 
+     if (!load_step_fn) {
+         auto libpath = boost::dll::program_location().parent_path();
+@@ -54,22 +50,8 @@ LoadStepFn get_load_step_fn()
+             FreeLibrary(module);
+             throw;
+         }
+-#elif __APPLE__
+-        load_step_fn = &load_step_internal;
+ #else
+-        libpath /= "OCCTWrapper.so";
+-        void *plugin_ptr = dlopen(libpath.c_str(), RTLD_NOW | RTLD_GLOBAL);
+-
+-        if (plugin_ptr) {
+-            load_step_fn = reinterpret_cast<LoadStepFn>(dlsym(plugin_ptr, fn_name));
+-            if (!load_step_fn) {
+-                dlclose(plugin_ptr);
+-                throw Slic3r::RuntimeError(std::string("Cannot load function from OCCTWrapper.so: ") + fn_name
+-                                           + "\n\n" + dlerror());
+-            }
+-        } else {
+-            throw Slic3r::RuntimeError(std::string("Cannot load OCCTWrapper.so:\n\n") + dlerror());
+-        }
++        load_step_fn = &load_step_internal;
+ #endif
+     }
+ 
+diff --git a/src/occt_wrapper/CMakeLists.txt b/src/occt_wrapper/CMakeLists.txt
+index 16de4e0..ad983be 100644
+--- a/src/occt_wrapper/CMakeLists.txt
++++ b/src/occt_wrapper/CMakeLists.txt
+@@ -1,12 +1,7 @@
+ cmake_minimum_required(VERSION 3.13)
+ project(OCCTWrapper)
+ 
+-if (APPLE)
+-    # TODO: we need to fix notarization with the separate shared library
+-    add_library(OCCTWrapper STATIC OCCTWrapper.cpp)
+-else ()
+-    add_library(OCCTWrapper MODULE OCCTWrapper.cpp)
+-endif ()
++add_library(OCCTWrapper STATIC OCCTWrapper.cpp)
+ 
+ set_target_properties(OCCTWrapper
+     PROPERTIES

diff --git a/media-gfx/superslicer/superslicer-2.5.59.2.ebuild b/media-gfx/superslicer/superslicer-2.5.59.2-r1.ebuild
similarity index 91%
rename from media-gfx/superslicer/superslicer-2.5.59.2.ebuild
rename to media-gfx/superslicer/superslicer-2.5.59.2-r1.ebuild
index 304f0fbf199c..c29633c2bc55 100644
--- a/media-gfx/superslicer/superslicer-2.5.59.2.ebuild
+++ b/media-gfx/superslicer/superslicer-2.5.59.2-r1.ebuild
@@ -40,6 +40,7 @@ RDEPEND="
 	media-libs/libpng:0=
 	media-libs/qhull:=
 	sci-libs/nlopt
+	sci-libs/opencascade:=
 	>=sci-mathematics/cgal-5.0:=
 	sys-apps/dbus
 	sys-libs/zlib:=
@@ -61,6 +62,9 @@ PATCHES=(
 	"${FILESDIR}/${P}-openexr3.patch"
 	"${FILESDIR}/${P}-wxgtk3-wayland-fix.patch"
 	"${FILESDIR}/${P}-relax-OpenCASCADE-dep.patch"
+	"${FILESDIR}/${P}-link-occtwrapper-statically.patch"
+	"${FILESDIR}/${P}-fix-dereferencing-in-std-unique_ptr-to-nullptr.patch"
+	"${FILESDIR}/${P}-fix-spiral_vase-null-pointer.patch"
 )
 
 S="${WORKDIR}/${MY_PN}-${PV}"


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/superslicer/, media-gfx/superslicer/files/
@ 2024-07-16  7:53 Sam James
  0 siblings, 0 replies; 6+ messages in thread
From: Sam James @ 2024-07-16  7:53 UTC (permalink / raw
  To: gentoo-commits

commit:     48aa1651c505a9a8bfc516e9eaeec8beb97065a7
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 16 07:52:34 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jul 16 07:52:34 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=48aa1651

media-gfx/superslicer: fix build w/ boost-1.85 (harder)

Closes: https://bugs.gentoo.org/936144
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/superslicer-2.5.59.10-boost-1.85.patch   | 54 ++++++++++++++++++++++
 media-gfx/superslicer/superslicer-2.5.59.10.ebuild |  1 +
 2 files changed, 55 insertions(+)

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.10-boost-1.85.patch b/media-gfx/superslicer/files/superslicer-2.5.59.10-boost-1.85.patch
new file mode 100644
index 000000000000..8d9f11d3897d
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.10-boost-1.85.patch
@@ -0,0 +1,54 @@
+https://bugs.gentoo.org/936144
+https://github.com/supermerill/SuperSlicer/commit/75d4bee84740a8dcc9e4e2113795fd67107d03d1
+
+From 75d4bee84740a8dcc9e4e2113795fd67107d03d1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= <hejl.lukas@gmail.com>
+Date: Wed, 3 Jan 2024 23:55:02 +0100
+Subject: [PATCH] Replace some deprecated boost functions.
+
+Actually, all those deprecated functions were internally called those new functions. So there isn't any risk to use them directly.
+---
+ src/libslic3r/PrintBase.cpp              | 2 +-
+ src/libslic3r/utils.cpp                  | 2 +-
+ src/slic3r/GUI/RemovableDriveManager.cpp | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/libslic3r/PrintBase.cpp b/src/libslic3r/PrintBase.cpp
+index 29bdc1301d0..60e40644cb8 100644
+--- a/src/libslic3r/PrintBase.cpp
++++ b/src/libslic3r/PrintBase.cpp
+@@ -123,7 +123,7 @@ std::string PrintBase::output_filename(const std::string &format, const std::str
+             filepath = filename + extension;
+         }
+         if (filepath.extension().empty())
+-            filepath = boost::filesystem::change_extension(filepath, default_ext);
++            filepath.replace_extension(default_ext);
+         return filepath.string();
+     } catch (std::runtime_error &err) {
+         throw Slic3r::PlaceholderParserError(L("Failed processing of the output_filename_format template.") + "\n" + err.what());
+diff --git a/src/libslic3r/utils.cpp b/src/libslic3r/utils.cpp
+index 71089ceea64..6eac962b20e 100644
+--- a/src/libslic3r/utils.cpp
++++ b/src/libslic3r/utils.cpp
+@@ -836,7 +836,7 @@ CopyFileResult copy_file_inner(const boost::filesystem::path& source, const boos
+ 	// That may happen when copying on some exotic file system, for example Linux on Chrome.
+ 	copy_file_linux(source, target, ec);
+ #else // __linux__
+-	boost::filesystem::copy_file(source, target, boost::filesystem::copy_option::overwrite_if_exists, ec);
++	boost::filesystem::copy_file(source, target, boost::filesystem::copy_options::overwrite_existing, ec);
+ #endif // __linux__
+ 	if (ec) {
+ 		error_message = ec.message();
+diff --git a/src/slic3r/GUI/RemovableDriveManager.cpp b/src/slic3r/GUI/RemovableDriveManager.cpp
+index 5fb8b013210..2f8ac96a1a2 100644
+--- a/src/slic3r/GUI/RemovableDriveManager.cpp
++++ b/src/slic3r/GUI/RemovableDriveManager.cpp
+@@ -202,7 +202,7 @@ namespace search_for_drives_internal
+ 				stat(path.c_str(), &buf);
+ 				uid_t uid = buf.st_uid;
+ 				if (getuid() == uid)
+-					out.emplace_back(DriveData{ boost::filesystem::basename(boost::filesystem::path(path)), path });
++                    out.emplace_back(DriveData{ boost::filesystem::path(path).stem().string(), path });
+ 			}
+ 		}
+ 	}

diff --git a/media-gfx/superslicer/superslicer-2.5.59.10.ebuild b/media-gfx/superslicer/superslicer-2.5.59.10.ebuild
index 054295f8cc12..b1c347c004cc 100644
--- a/media-gfx/superslicer/superslicer-2.5.59.10.ebuild
+++ b/media-gfx/superslicer/superslicer-2.5.59.10.ebuild
@@ -68,6 +68,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-2.5.59.8-fix-compilation-error-gnu17.patch"
 	"${FILESDIR}/${PN}-2.5.59.8-libnest2d-link-xcb.patch"
 	"${FILESDIR}/${PN}-2.5.59.8-boost-replace-load-string-file.patch"
+	"${FILESDIR}/${PN}-2.5.59.10-boost-1.85.patch"
 )
 
 S="${WORKDIR}/${MY_PN}-${PV}"


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-gfx/superslicer/, media-gfx/superslicer/files/
@ 2024-09-15 12:25 Pacho Ramos
  0 siblings, 0 replies; 6+ messages in thread
From: Pacho Ramos @ 2024-09-15 12:25 UTC (permalink / raw
  To: gentoo-commits

commit:     12895db94a8b7166dbcd7006ecfc05bcbc44dd39
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 15 12:12:18 2024 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun Sep 15 12:25:00 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=12895db9

media-gfx/superslicer: Fix boost headers and support wxGTK 3.2

Thanks-to: William Pettersson
Closes: https://bugs.gentoo.org/936146
Closes: https://bugs.gentoo.org/939115
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>

 .../superslicer-2.5.59.10-boost-headers.patch      |  45 +++++++++
 .../superslicer/superslicer-2.5.59.10-r1.ebuild    | 110 +++++++++++++++++++++
 2 files changed, 155 insertions(+)

diff --git a/media-gfx/superslicer/files/superslicer-2.5.59.10-boost-headers.patch b/media-gfx/superslicer/files/superslicer-2.5.59.10-boost-headers.patch
new file mode 100644
index 000000000000..b6689d9a298e
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.5.59.10-boost-headers.patch
@@ -0,0 +1,45 @@
+https://bugs.gentoo.org/936146
+--- a/src/slic3r/GUI/GLTexture.cpp	2024-08-10 11:05:17.663411745 +0100
++++ b/src/slic3r/GUI/GLTexture.cpp	2024-08-10 11:05:34.463543701 +0100
+@@ -10,6 +10,8 @@
+ 
+ #include <boost/filesystem.hpp>
+ #include <boost/algorithm/string/predicate.hpp>
++#include <boost/log/trivial.hpp>
++#include <boost/log/core.hpp>
+ 
+ #include <vector>
+ #include <algorithm>
+--- a/src/slic3r/GUI/RemovableDriveManager.cpp	2024-08-10 11:24:53.572234573 +0100
++++ b/src/slic3r/GUI/RemovableDriveManager.cpp	2024-08-10 11:28:24.393792051 +0100
+@@ -22,7 +22,7 @@
+ #include <pwd.h>
+ #include <boost/filesystem.hpp>
+ #include <boost/system/error_code.hpp>
+-#include <boost/filesystem/convenience.hpp>
++//#include <boost/filesystem/convenience.hpp>
+ #include <boost/process.hpp>
+ #endif
+ 
+--- a/src/slic3r/GUI/ScriptExecutor.cpp	2024-08-10 11:28:32.423851365 +0100
++++ b/src/slic3r/GUI/ScriptExecutor.cpp	2024-08-10 11:28:41.893921315 +0100
+@@ -10,7 +10,7 @@
+ #include <boost/algorithm/string/erase.hpp>
+ #include <boost/algorithm/string/split.hpp>
+ #include <boost/filesystem.hpp>
+-#include <boost/filesystem/string_file.hpp>
++//#include <boost/filesystem/string_file.hpp>
+ 
+ #include <fstream>
+ #include <string>
+--- a/src/slic3r/GUI/BitmapCache.cpp.old	2024-08-10 12:00:52.538869133 +0100
++++ b/src/slic3r/GUI/BitmapCache.cpp	2024-08-10 12:01:15.519040423 +0100
+@@ -6,6 +6,8 @@
+ #include "GUI_Utils.hpp"
+ 
+ #include <boost/filesystem.hpp>
++#include <boost/log/trivial.hpp>
++#include <boost/log/core.hpp>
+ 
+ #ifdef __WXGTK2__
+     // Broken alpha workaround

diff --git a/media-gfx/superslicer/superslicer-2.5.59.10-r1.ebuild b/media-gfx/superslicer/superslicer-2.5.59.10-r1.ebuild
new file mode 100644
index 000000000000..a19e63212295
--- /dev/null
+++ b/media-gfx/superslicer/superslicer-2.5.59.10-r1.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WX_GTK_VER="3.2-gtk3"
+MY_PN="SuperSlicer"
+SLICER_PROFILES_COMMIT="ca25c7ec55dcc6073da61e39692c321cdb6497dc"
+
+inherit cmake wxwidgets xdg flag-o-matic
+
+DESCRIPTION="A mesh slicer to generate G-code for fused-filament-fabrication (3D printers)"
+HOMEPAGE="https://github.com/supermerill/SuperSlicer/"
+SRC_URI="
+	https://github.com/supermerill/SuperSlicer/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
+	https://github.com/slic3r/slic3r-profiles/archive/${SLICER_PROFILES_COMMIT}.tar.gz -> ${P}-profiles.tar.gz
+"
+
+LICENSE="AGPL-3 Boost-1.0 GPL-2 LGPL-3 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="test"
+
+RESTRICT="test"
+
+# No dep on sci-libs/libigl, in-tree version cannot build
+# static library currently. Using bundled one.
+RDEPEND="
+	dev-cpp/eigen:3
+	dev-cpp/tbb:=
+	dev-libs/boost:=[nls]
+	dev-libs/cereal
+	dev-libs/expat
+	dev-libs/glib:2
+	dev-libs/gmp:=
+	dev-libs/mpfr:=
+	dev-libs/imath:=
+	>=media-gfx/openvdb-8.2:=
+	net-misc/curl[adns]
+	media-libs/glew:0=
+	media-libs/libpng:0=
+	media-libs/qhull:=
+	sci-libs/nlopt
+	sci-libs/opencascade:=
+	>=sci-mathematics/cgal-5.0:=
+	sys-apps/dbus
+	sys-libs/zlib:=
+	virtual/glu
+	virtual/opengl
+	x11-libs/gtk+:3
+	x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
+"
+DEPEND="${RDEPEND}
+	media-libs/qhull[static-libs]
+"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-2.5.59.2-boost.patch"
+	"${FILESDIR}/${PN}-2.5.59.2-cereal.patch"
+	"${FILESDIR}/${PN}-2.5.59.2-dont-install-angelscript.patch"
+	"${FILESDIR}/${PN}-2.5.59.2-gcodeviewer-symlink-fix.patch"
+	"${FILESDIR}/${PN}-2.5.59.2-missing-includes-fix.patch"
+	"${FILESDIR}/${PN}-2.5.59.2-openexr3.patch"
+	"${FILESDIR}/${PN}-2.5.59.2-wxgtk3-wayland-fix.patch"
+	"${FILESDIR}/${PN}-2.5.59.2-relax-OpenCASCADE-dep.patch"
+	"${FILESDIR}/${PN}-2.5.59.2-link-occtwrapper-statically.patch"
+	"${FILESDIR}/${PN}-2.5.59.8-additional-imports-fixes.patch"
+	"${FILESDIR}/${PN}-2.5.59.8-fix-compilation-error-gnu17.patch"
+	"${FILESDIR}/${PN}-2.5.59.8-libnest2d-link-xcb.patch"
+	"${FILESDIR}/${PN}-2.5.59.8-boost-replace-load-string-file.patch"
+	"${FILESDIR}/${PN}-2.5.59.10-boost-1.85.patch"
+	"${FILESDIR}/${PN}-2.5.59.10-boost-headers.patch"
+)
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+src_unpack() {
+	default
+
+	mv slic3r-profiles-*/* "${S}"/resources/profiles/ || die
+}
+
+src_configure() {
+	CMAKE_BUILD_TYPE="Release"
+
+	append-flags -fno-strict-aliasing
+
+	setup-wxwidgets
+
+	local mycmakeargs=(
+		-DOPENVDB_FIND_MODULE_PATH="/usr/$(get_libdir)/cmake/OpenVDB"
+
+		-DSLIC3R_BUILD_TESTS=$(usex test)
+		-DSLIC3R_FHS=ON
+		-DSLIC3R_GTK=3
+		-DSLIC3R_GUI=ON
+		-DSLIC3R_PCH=OFF
+		-DSLIC3R_STATIC=OFF
+		-DSLIC3R_WX_STABLE=ON
+		-Wno-dev
+	)
+
+	cmake_src_configure
+}
+
+src_install() {
+	cmake_src_install
+
+	rm "${ED}/usr/lib/udev/rules.d/90-3dconnexion.rules" || die
+}


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-09-15 12:25 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-27 19:42 [gentoo-commits] repo/gentoo:master commit in: media-gfx/superslicer/, media-gfx/superslicer/files/ Piotr Karbowski
  -- strict thread matches above, loose matches on Subject: below --
2024-09-15 12:25 Pacho Ramos
2024-07-16  7:53 Sam James
2023-04-22 18:09 Piotr Karbowski
2023-04-18 21:24 Piotr Karbowski
2022-08-16 21:41 Piotr Karbowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox