Gentoo Archives: gentoo-commits

From: Piotr Karbowski <slashbeast@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/superslicer/, media-gfx/superslicer/files/
Date: Tue, 16 Aug 2022 21:42:00
Message-Id: 1660686114.91155f8d3564066a3ded9d66d60528b21858a4ad.slashbeast@gentoo
1 commit: 91155f8d3564066a3ded9d66d60528b21858a4ad
2 Author: Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
3 AuthorDate: Tue Aug 16 21:41:14 2022 +0000
4 Commit: Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
5 CommitDate: Tue Aug 16 21:41:54 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=91155f8d
7
8 media-gfx/superslicer: 2.5.59.0 version bump.
9
10 Signed-off-by: Piotr Karbowski <slashbeast <AT> gentoo.org>
11
12 media-gfx/superslicer/Manifest | 2 +
13 .../files/superslicer-2.5.59.0-boost.patch | 256 +++++++++++++++++++++
14 .../files/superslicer-2.5.59.0-cereal.patch | 53 +++++
15 .../superslicer-2.5.59.0-missing-includes.patch | 36 +++
16 .../files/superslicer-2.5.59.0-openexr3.patch | 77 +++++++
17 .../superslicer-2.5.59.0-wxgtk3-wayland.patch | 21 ++
18 media-gfx/superslicer/superslicer-2.5.59.0.ebuild | 96 ++++++++
19 7 files changed, 541 insertions(+)
20
21 diff --git a/media-gfx/superslicer/Manifest b/media-gfx/superslicer/Manifest
22 index bb7fbbc6ec07..ef2d980d92d4 100644
23 --- a/media-gfx/superslicer/Manifest
24 +++ b/media-gfx/superslicer/Manifest
25 @@ -1,2 +1,4 @@
26 DIST superslicer-2.4.58.3-profiles.tar.gz 15322406 BLAKE2B cfa89697e832e0601746cb21250e258617bcc0966dd111c82ae43a9720b3ffb760f57827a1f35c8ad57a23a7ffb4c78e48ec76d6e40b364f321d0f83c4d10939 SHA512 bbdc6bfa8e21a4bdbca903a367f033f9cb5a1966bd0688bcc81314ba9ee45fee37cb892c82be35e865137c4df7c1fabceb8e6de46316338df2af4a590de91c76
27 DIST superslicer-2.4.58.3.tar.gz 45203382 BLAKE2B 822af2a1cb8978b21f8efdc0eb4841ec1d86517fd07782a8dfa6be2a58514dc3e772221dca40ff62808cb798fc4f51484b24e847328a7a6f154708431f0c4d3b SHA512 00302fba9ada1cc5df3c58f42fdb7f98322f94de7b78876c6a54a2229ae289e785082ea7a69f67bee54321fc4d97811675eeb70932e5774ab78ca8859343dd4d
28 +DIST superslicer-2.5.59.0-profiles.tar.gz 15322406 BLAKE2B cfa89697e832e0601746cb21250e258617bcc0966dd111c82ae43a9720b3ffb760f57827a1f35c8ad57a23a7ffb4c78e48ec76d6e40b364f321d0f83c4d10939 SHA512 bbdc6bfa8e21a4bdbca903a367f033f9cb5a1966bd0688bcc81314ba9ee45fee37cb892c82be35e865137c4df7c1fabceb8e6de46316338df2af4a590de91c76
29 +DIST superslicer-2.5.59.0.tar.gz 45360646 BLAKE2B da65610270ed4c7d55b5bc495d9970812af94f424345088782b3a45b97fcf0f4b58bdc0417b89ed49e21d8c250535baa7cb74344f43438fbde8daf1b3acfacdd SHA512 1d2c0316c91bf0d65fb366806e9ea868bc93fae33deb580a324ce065fd3789ff1b600e9ace400db4988b371b1c36ef0c3ea2b52cde0d48984f312dd8d7ef3a1c
30
31 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
32 new file mode 100644
33 index 000000000000..4f847aaacb92
34 --- /dev/null
35 +++ b/media-gfx/superslicer/files/superslicer-2.5.59.0-boost.patch
36 @@ -0,0 +1,256 @@
37 +diff --git a/src/hints/HintsToPot.cpp b/src/hints/HintsToPot.cpp
38 +index 7c8029cde..4791f0612 100644
39 +--- a/src/hints/HintsToPot.cpp
40 ++++ b/src/hints/HintsToPot.cpp
41 +@@ -9,7 +9,7 @@
42 +
43 + bool write_to_pot(boost::filesystem::path path, const std::vector<std::pair<std::string, std::string>>& data)
44 + {
45 +- boost::filesystem::ofstream file(std::move(path), std::ios_base::app);
46 ++ boost::nowide::ofstream file(path.string(), std::ios_base::app);
47 + for (const auto& element : data)
48 + {
49 + //Example of .pot element
50 +diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp
51 +index f029b3d72..18dc7396e 100644
52 +--- a/src/libslic3r/AppConfig.cpp
53 ++++ b/src/libslic3r/AppConfig.cpp
54 +@@ -1,3 +1,4 @@
55 ++#include <boost/filesystem.hpp>
56 + #include "libslic3r/libslic3r.h"
57 + #include "libslic3r/Utils.hpp"
58 + #include "AppConfig.hpp"
59 +diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp
60 +index d811ddcc2..1a7023061 100644
61 +--- a/src/libslic3r/AppConfig.hpp
62 ++++ b/src/libslic3r/AppConfig.hpp
63 +@@ -5,6 +5,7 @@
64 + #include <map>
65 + #include <string>
66 +
67 ++#include <boost/filesystem/path.hpp>
68 + #include <boost/algorithm/string/trim_all.hpp>
69 +
70 + #include "libslic3r/Config.hpp"
71 +diff --git a/src/libslic3r/LocalesUtils.cpp b/src/libslic3r/LocalesUtils.cpp
72 +index 5bf520568..7b870520b 100644
73 +--- a/src/libslic3r/LocalesUtils.cpp
74 ++++ b/src/libslic3r/LocalesUtils.cpp
75 +@@ -1,3 +1,4 @@
76 ++#include <boost/lexical_cast.hpp>
77 + #include "LocalesUtils.hpp"
78 +
79 + #ifdef _WIN32
80 +diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
81 +index 9e9fcda4f..d889e2abf 100644
82 +--- a/src/libslic3r/Preset.cpp
83 ++++ b/src/libslic3r/Preset.cpp
84 +@@ -84,7 +84,7 @@ ConfigFileType guess_config_file_type(const ptree &tree)
85 + VendorProfile VendorProfile::from_ini(const boost::filesystem::path &path, bool load_all)
86 + {
87 + ptree tree;
88 +- boost::filesystem::ifstream ifs(path);
89 ++ boost::nowide::ifstream ifs(path.string());
90 + boost::property_tree::read_ini(ifs, tree);
91 + return VendorProfile::from_ini(tree, path, load_all);
92 + }
93 +diff --git a/src/libslic3r/Utils.hpp b/src/libslic3r/Utils.hpp
94 +index f525c9837..839f0f5e9 100644
95 +--- a/src/libslic3r/Utils.hpp
96 ++++ b/src/libslic3r/Utils.hpp
97 +@@ -7,6 +7,7 @@
98 + #include <type_traits>
99 + #include <system_error>
100 +
101 ++#include <boost/filesystem.hpp>
102 + #include <boost/system/error_code.hpp>
103 +
104 + #include "libslic3r.h"
105 +diff --git a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
106 +index 89212f27f..be157eafa 100644
107 +--- a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
108 ++++ b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
109 +@@ -18,6 +18,11 @@
110 + #include <wx/notebook.h>
111 + #include "Notebook.hpp"
112 +
113 ++#include <boost/filesystem.hpp>
114 ++#include <boost/property_tree/ptree.hpp>
115 ++#include <boost/property_tree/ini_parser.hpp>
116 ++#include <boost/log/trivial.hpp>
117 ++
118 + #include "MainFrame.hpp"
119 + #include "wxExtensions.hpp"
120 +
121 +diff --git a/src/slic3r/GUI/DesktopIntegrationDialog.cpp b/src/slic3r/GUI/DesktopIntegrationDialog.cpp
122 +index fcb7472e6..866ebaef5 100644
123 +--- a/src/slic3r/GUI/DesktopIntegrationDialog.cpp
124 ++++ b/src/slic3r/GUI/DesktopIntegrationDialog.cpp
125 +@@ -14,6 +14,7 @@
126 + #include <boost/log/trivial.hpp>
127 + #include <boost/dll/runtime_symbol_info.hpp>
128 + #include <boost/algorithm/string/replace.hpp>
129 ++#include <boost/nowide/fstream.hpp>
130 +
131 + #include <wx/filename.h>
132 + #include <wx/stattext.h>
133 +@@ -503,4 +504,4 @@ DesktopIntegrationDialog::~DesktopIntegrationDialog()
134 +
135 + } // namespace GUI
136 + } // namespace Slic3r
137 +-#endif // __linux__
138 +\ No newline at end of file
139 ++#endif // __linux__
140 +diff --git a/src/slic3r/GUI/FreeCADDialog.cpp b/src/slic3r/GUI/FreeCADDialog.cpp
141 +index 271e3ef2d..6bbdf3907 100644
142 +--- a/src/slic3r/GUI/FreeCADDialog.cpp
143 ++++ b/src/slic3r/GUI/FreeCADDialog.cpp
144 +@@ -38,6 +38,7 @@
145 + #include <boost/log/trivial.hpp>
146 + #include <boost/property_tree/ptree.hpp>
147 + #include <boost/property_tree/json_parser.hpp>
148 ++#include <boost/nowide/fstream.hpp>
149 +
150 + // 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'
151 + // and so boost/process has a line 'typedef int int'instead of 'typedef int pid_t' that makes it crash
152 +@@ -322,7 +323,7 @@ bool FreeCADDialog::load_text_from_file(const boost::filesystem::path &path) {
153 + try {
154 + std::locale loc = boost::locale::generator()("en_US.UTF-8");
155 + // Open the stream to 'lock' the file.
156 +- boost::filesystem::ifstream in;
157 ++ boost::nowide::ifstream in;
158 + in.imbue(loc);
159 + in.open(path);
160 + // Obtain the size of the file.
161 +@@ -369,7 +370,7 @@ bool FreeCADDialog::write_text_in_file(const wxString &towrite, const boost::fil
162 + boost::filesystem::create_directories(file.parent_path());
163 + std::locale loc = boost::locale::generator()("en_US.UTF-8");
164 + // Open the stream to 'lock' the file.
165 +- boost::filesystem::ofstream out;
166 ++ boost::nowide::ofstream out;
167 + out.imbue(loc);
168 + out.open(file);
169 + out << towrite;
170 +diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
171 +index 4cf21a36c..75b2a8e94 100644
172 +--- a/src/slic3r/GUI/GUI_App.cpp
173 ++++ b/src/slic3r/GUI/GUI_App.cpp
174 +@@ -19,6 +19,7 @@
175 + #include <boost/lexical_cast.hpp>
176 + #include <boost/log/trivial.hpp>
177 + #include <boost/nowide/convert.hpp>
178 ++#include <boost/nowide/fstream.hpp>
179 +
180 + #include <wx/stdpaths.h>
181 + #include <wx/imagpng.h>
182 +diff --git a/src/slic3r/GUI/HintNotification.cpp b/src/slic3r/GUI/HintNotification.cpp
183 +index 32916303f..3a984bf38 100644
184 +--- a/src/slic3r/GUI/HintNotification.cpp
185 ++++ b/src/slic3r/GUI/HintNotification.cpp
186 +@@ -14,12 +14,14 @@
187 + #include "libslic3r/Config.hpp"
188 + #include "libslic3r/PrintConfig.hpp"
189 +
190 ++#include <map>
191 ++
192 + #include <boost/algorithm/string/replace.hpp>
193 + #include <boost/filesystem.hpp>
194 + #include <boost/nowide/fstream.hpp>
195 + #include <boost/log/trivial.hpp>
196 + #include <boost/property_tree/ini_parser.hpp>
197 +-#include <map>
198 ++
199 + #include <cereal/archives/binary.hpp>
200 + #include <cereal/types/string.hpp>
201 + #include <cereal/types/vector.hpp>
202 +@@ -65,7 +67,7 @@ inline void push_style_color(ImGuiCol idx, const ImVec4& col, bool fading_out, f
203 +
204 + void write_used_binary(const std::vector<std::string>& ids)
205 + {
206 +- boost::filesystem::ofstream file((boost::filesystem::path(data_dir()) / "cache" / "hints.cereal"), std::ios::binary);
207 ++ boost::nowide::ofstream file((boost::filesystem::path(data_dir()) / "cache" / "hints.cereal").string(), std::ios::binary);
208 + cereal::BinaryOutputArchive archive(file);
209 + HintsCerealData cd { ids };
210 + try
211 +@@ -84,7 +86,7 @@ void read_used_binary(std::vector<std::string>& ids)
212 + BOOST_LOG_TRIVIAL(warning) << "Failed to load to hints.cereal. File does not exists. " << path.string();
213 + return;
214 + }
215 +- boost::filesystem::ifstream file(path);
216 ++ boost::nowide::ifstream file(path.string());
217 + cereal::BinaryInputArchive archive(file);
218 + HintsCerealData cd;
219 + try
220 +diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp
221 +index ffc600b0e..c8080d112 100644
222 +--- a/src/slic3r/GUI/Preferences.cpp
223 ++++ b/src/slic3r/GUI/Preferences.cpp
224 +@@ -12,6 +12,7 @@
225 + #include "OG_CustomCtrl.hpp"
226 + #include "wxExtensions.hpp"
227 +
228 ++#include <boost/algorithm/string/split.hpp>
229 + #include <boost/filesystem.hpp>
230 + #include <boost/filesystem/path.hpp>
231 +
232 +diff --git a/src/slic3r/GUI/ScriptExecutor.cpp b/src/slic3r/GUI/ScriptExecutor.cpp
233 +index 4565d1aec..6738cada9 100644
234 +--- a/src/slic3r/GUI/ScriptExecutor.cpp
235 ++++ b/src/slic3r/GUI/ScriptExecutor.cpp
236 +@@ -4,6 +4,13 @@
237 + #include "Tab.hpp"
238 + #include "libslic3r/PresetBundle.hpp"
239 + #include "libslic3r/Print.hpp"
240 ++#include <boost/log/trivial.hpp>
241 ++#include <boost/lexical_cast.hpp>
242 ++#include <boost/algorithm/string/trim_all.hpp>
243 ++#include <boost/algorithm/string/erase.hpp>
244 ++#include <boost/algorithm/string/split.hpp>
245 ++#include <boost/filesystem.hpp>
246 ++#include <boost/filesystem/string_file.hpp>
247 +
248 + #include <string>
249 +
250 +diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp
251 +index 173f0f762..a3eb553c8 100644
252 +--- a/src/slic3r/GUI/Tab.cpp
253 ++++ b/src/slic3r/GUI/Tab.cpp
254 +@@ -36,6 +36,8 @@
255 + #include <boost/filesystem.hpp>
256 + #include <boost/filesystem/path.hpp>
257 + #include <boost/lexical_cast.hpp>
258 ++#include <boost/nowide/fstream.hpp>
259 ++#include <boost/log/trivial.hpp>
260 +
261 + #include "wxExtensions.hpp"
262 + #include "PresetComboBoxes.hpp"
263 +@@ -1692,7 +1694,7 @@ std::vector<Slic3r::GUI::PageShp> Tab::create_pages(std::string setting_type_nam
264 +
265 + //read file
266 + //std::ifstream filestream(ui_layout_file.c_str());
267 +- boost::filesystem::ifstream filestream(ui_layout_file);
268 ++ boost::nowide::ifstream filestream(ui_layout_file);
269 + std::string full_line;
270 + while (std::getline(filestream, full_line)) {
271 + //remove spaces
272 +diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp
273 +index 9bab91860..47568721a 100644
274 +--- a/src/slic3r/Utils/Http.cpp
275 ++++ b/src/slic3r/Utils/Http.cpp
276 +@@ -11,6 +11,7 @@
277 + #include <boost/filesystem.hpp>
278 + #include <boost/format.hpp>
279 + #include <boost/log/trivial.hpp>
280 ++#include <boost/nowide/fstream.hpp>
281 +
282 + #include <curl/curl.h>
283 +
284 +@@ -52,7 +53,7 @@ namespace Slic3r {
285 + % error;
286 + })
287 + .on_complete([&](std::string body, unsigned /* http_status */) {
288 +- boost::filesystem::fstream file(tmp_path, std::ios::out | std::ios::binary | std::ios::trunc);
289 ++ boost::nowide::fstream file(tmp_path, std::ios::out | std::ios::binary | std::ios::trunc);
290 + file.write(body.c_str(), body.size());
291 + file.close();
292 + boost::filesystem::rename(tmp_path, target_path);
293
294 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
295 new file mode 100644
296 index 000000000000..6557d6653640
297 --- /dev/null
298 +++ b/media-gfx/superslicer/files/superslicer-2.5.59.0-cereal.patch
299 @@ -0,0 +1,53 @@
300 +diff --git a/CMakeLists.txt b/CMakeLists.txt
301 +index 549d06f0d..bffb63d9b 100644
302 +--- a/CMakeLists.txt
303 ++++ b/CMakeLists.txt
304 +@@ -496,6 +496,9 @@ endif ()
305 +
306 + # Find the Cereal serialization library
307 + find_package(cereal REQUIRED)
308 ++if (NOT TARGET cereal::cereal)
309 ++ add_library(cereal::cereal ALIAS cereal)
310 ++endif ()
311 +
312 + # l10n
313 + set(L10N_DIR "${SLIC3R_RESOURCES_DIR}/localization")
314 +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
315 +index ec44417fa..9aae6dc11 100644
316 +--- a/src/CMakeLists.txt
317 ++++ b/src/CMakeLists.txt
318 +@@ -141,7 +141,7 @@ if (NOT WIN32)
319 + set_target_properties(Slic3r PROPERTIES OUTPUT_NAME "${SLIC3R_APP_CMD}")
320 + endif ()
321 +
322 +-target_link_libraries(Slic3r libslic3r cereal)
323 ++target_link_libraries(Slic3r libslic3r cereal::cereal)
324 + if (APPLE)
325 + # add_compile_options(-stdlib=libc++)
326 + # add_definitions(-DBOOST_THREAD_DONT_USE_CHRONO -DBOOST_NO_CXX11_RVALUE_REFERENCES -DBOOST_THREAD_USES_MOVE)
327 +diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
328 +index c8f22a482..832149338 100644
329 +--- a/src/libslic3r/CMakeLists.txt
330 ++++ b/src/libslic3r/CMakeLists.txt
331 +@@ -399,7 +399,7 @@ target_include_directories(libslic3r PUBLIC ${EXPAT_INCLUDE_DIRS})
332 + target_link_libraries(libslic3r
333 + libnest2d
334 + admesh
335 +- cereal
336 ++ cereal::cereal
337 + libigl
338 + miniz
339 + boost_libs
340 +diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
341 +index f71b809b3..c64a2c5a9 100644
342 +--- a/src/slic3r/CMakeLists.txt
343 ++++ b/src/slic3r/CMakeLists.txt
344 +@@ -302,7 +302,7 @@ target_compile_definitions(libslic3r_gui PRIVATE $<$<BOOL:${SLIC3R_ALPHA}>:SLIC3
345 +
346 + encoding_check(libslic3r_gui)
347 +
348 +-target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui GLEW::GLEW OpenGL::GL hidapi exif angelscript libcurl ${wxWidgets_LIBRARIES})
349 ++target_link_libraries(libslic3r_gui libslic3r avrdude cereal::cereal imgui GLEW::GLEW OpenGL::GL hidapi exif angelscript libcurl ${wxWidgets_LIBRARIES})
350 +
351 + if (MSVC)
352 + target_link_libraries(libslic3r_gui Setupapi.lib)
353
354 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
355 new file mode 100644
356 index 000000000000..27f29fa9f6f1
357 --- /dev/null
358 +++ b/media-gfx/superslicer/files/superslicer-2.5.59.0-missing-includes.patch
359 @@ -0,0 +1,36 @@
360 +diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp
361 +index 18dc7396e..95483e844 100644
362 +--- a/src/libslic3r/AppConfig.cpp
363 ++++ b/src/libslic3r/AppConfig.cpp
364 +@@ -1,6 +1,7 @@
365 + #include <boost/filesystem.hpp>
366 + #include "libslic3r/libslic3r.h"
367 + #include "libslic3r/Utils.hpp"
368 ++#include "libslic3r/I18N.hpp"
369 + #include "AppConfig.hpp"
370 + #include "Exception.hpp"
371 + #include "LocalesUtils.hpp"
372 +diff --git a/src/libslic3r/PerimeterGenerator.hpp b/src/libslic3r/PerimeterGenerator.hpp
373 +index d7401f3fb..a95b7749d 100644
374 +--- a/src/libslic3r/PerimeterGenerator.hpp
375 ++++ b/src/libslic3r/PerimeterGenerator.hpp
376 +@@ -1,6 +1,7 @@
377 + #ifndef slic3r_PerimeterGenerator_hpp_
378 + #define slic3r_PerimeterGenerator_hpp_
379 +
380 ++#include "ClipperUtils.hpp"
381 + #include "libslic3r.h"
382 + #include <vector>
383 + #include "ExPolygonCollection.hpp"
384 +diff --git a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
385 +index be157eafa..d63eb110e 100644
386 +--- a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
387 ++++ b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
388 +@@ -40,6 +40,7 @@
389 + #include <wx/odcombo.h>
390 + #include <wx/textctrl.h>
391 + #include <wx/wrapsizer.h>
392 ++#include <wx/rawbmp.h>
393 + #include "wxExtensions.hpp"
394 +
395 + #include <boost/filesystem/path.hpp>
396
397 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
398 new file mode 100644
399 index 000000000000..8ae71c13f4d3
400 --- /dev/null
401 +++ b/media-gfx/superslicer/files/superslicer-2.5.59.0-openexr3.patch
402 @@ -0,0 +1,77 @@
403 +diff --git a/cmake/modules/FindOpenVDB.cmake b/cmake/modules/FindOpenVDB.cmake
404 +index 4fde5fa4a..566e73a5e 100644
405 +--- a/cmake/modules/FindOpenVDB.cmake
406 ++++ b/cmake/modules/FindOpenVDB.cmake
407 +@@ -347,28 +347,10 @@ macro(just_fail msg)
408 + return()
409 + endmacro()
410 +
411 +-find_package(IlmBase QUIET)
412 +-if(NOT IlmBase_FOUND)
413 +- pkg_check_modules(IlmBase QUIET IlmBase)
414 +-endif()
415 +-if (IlmBase_FOUND AND NOT TARGET IlmBase::Half)
416 +- message(STATUS "Falling back to IlmBase found by pkg-config...")
417 +-
418 +- find_library(IlmHalf_LIBRARY NAMES Half)
419 +- if(IlmHalf_LIBRARY-NOTFOUND OR NOT IlmBase_INCLUDE_DIRS)
420 +- just_fail("IlmBase::Half can not be found!")
421 +- endif()
422 +-
423 +- add_library(IlmBase::Half UNKNOWN IMPORTED)
424 +- set_target_properties(IlmBase::Half PROPERTIES
425 +- IMPORTED_LOCATION "${IlmHalf_LIBRARY}"
426 +- INTERFACE_INCLUDE_DIRECTORIES "${IlmBase_INCLUDE_DIRS}")
427 +-elseif(NOT IlmBase_FOUND)
428 +- just_fail("IlmBase::Half can not be found!")
429 +-endif()
430 + find_package(TBB ${_quiet} ${_required} COMPONENTS tbb)
431 + find_package(ZLIB ${_quiet} ${_required})
432 + find_package(Boost ${_quiet} ${_required} COMPONENTS iostreams system )
433 ++find_package(Imath CONFIG)
434 +
435 + # Use GetPrerequisites to see which libraries this OpenVDB lib has linked to
436 + # which we can query for optional deps. This basically runs ldd/otoll/objdump
437 +@@ -419,7 +401,7 @@ foreach(PREREQUISITE ${_OPENVDB_PREREQUISITE_LIST})
438 + set(OpenVDB_USES_LOG4CPLUS ON)
439 + endif()
440 +
441 +- string(FIND ${PREREQUISITE} "IlmImf" _HAS_DEP)
442 ++ string(FIND ${PREREQUISITE} "OpenEXR" _HAS_DEP)
443 + if(NOT ${_HAS_DEP} EQUAL -1)
444 + set(OpenVDB_USES_ILM ON)
445 + endif()
446 +@@ -450,11 +432,7 @@ if(OpenVDB_USES_LOG4CPLUS)
447 + find_package(Log4cplus ${_quiet} ${_required})
448 + endif()
449 +
450 +-if(OpenVDB_USES_ILM)
451 +- find_package(IlmBase ${_quiet} ${_required})
452 +-endif()
453 +-
454 +-if(OpenVDB_USES_EXR)
455 ++if(OpenVDB_USES_ILM OR OpenVDB_USES_EXR)
456 + find_package(OpenEXR ${_quiet} ${_required})
457 + endif()
458 +
459 +@@ -471,7 +449,7 @@ endif()
460 + set(_OPENVDB_VISIBLE_DEPENDENCIES
461 + Boost::iostreams
462 + Boost::system
463 +- IlmBase::Half
464 ++ Imath::Imath
465 + )
466 +
467 + set(_OPENVDB_DEFINITIONS)
468 +@@ -481,10 +459,7 @@ endif()
469 +
470 + if(OpenVDB_USES_EXR)
471 + list(APPEND _OPENVDB_VISIBLE_DEPENDENCIES
472 +- IlmBase::IlmThread
473 +- IlmBase::Iex
474 +- IlmBase::Imath
475 +- OpenEXR::IlmImf
476 ++ OpenEXR::OpenEXR
477 + )
478 + list(APPEND _OPENVDB_DEFINITIONS "-DOPENVDB_TOOLS_RAYTRACER_USE_EXR")
479 + endif()
480
481 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
482 new file mode 100644
483 index 000000000000..abe4d7bf60cc
484 --- /dev/null
485 +++ b/media-gfx/superslicer/files/superslicer-2.5.59.0-wxgtk3-wayland.patch
486 @@ -0,0 +1,21 @@
487 +diff --git a/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp
488 +index ccd3cc083..be8bbe5cd 100644
489 +--- a/src/slic3r/GUI/GUI.cpp
490 ++++ b/src/slic3r/GUI/GUI.cpp
491 +@@ -33,6 +33,16 @@ class AppConfig;
492 +
493 + namespace GUI {
494 +
495 ++// wxgtk3 is broken on wayland: https://trac.wxwidgets.org/ticket/17702
496 ++#ifdef __WXGTK3__
497 ++struct ForceX11 {
498 ++ ForceX11() {
499 ++ setenv("GDK_BACKEND", "x11", 1);
500 ++ }
501 ++};
502 ++static struct ForceX11 forcex11;
503 ++#endif
504 ++
505 + #if __APPLE__
506 + IOPMAssertionID assertionID;
507 + #endif
508
509 diff --git a/media-gfx/superslicer/superslicer-2.5.59.0.ebuild b/media-gfx/superslicer/superslicer-2.5.59.0.ebuild
510 new file mode 100644
511 index 000000000000..3024d92b17a4
512 --- /dev/null
513 +++ b/media-gfx/superslicer/superslicer-2.5.59.0.ebuild
514 @@ -0,0 +1,96 @@
515 +# Copyright 1999-2022 Gentoo Authors
516 +# Distributed under the terms of the GNU General Public License v2
517 +
518 +EAPI=8
519 +
520 +WX_GTK_VER="3.0-gtk3"
521 +MY_PN="SuperSlicer"
522 +
523 +inherit cmake wxwidgets xdg
524 +
525 +DESCRIPTION="A mesh slicer to generate G-code for fused-filament-fabrication (3D printers)"
526 +HOMEPAGE="https://github.com/supermerill/SuperSlicer/"
527 +SRC_URI="
528 + https://github.com/supermerill/SuperSlicer/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
529 + https://github.com/slic3r/slic3r-profiles/archive/748fbdfd2ac077e4e415868e7bc963740b92aa8e.tar.gz -> ${P}-profiles.tar.gz
530 +"
531 +
532 +LICENSE="AGPL-3 Boost-1.0 GPL-2 LGPL-3 MIT"
533 +SLOT="0"
534 +KEYWORDS="~amd64 ~x86"
535 +IUSE="test"
536 +
537 +RESTRICT="test"
538 +
539 +# No dep on sci-libs/libigl, in-tree version cannot build
540 +# static library currently. Using bundled one.
541 +RDEPEND="
542 + dev-cpp/eigen:3
543 + dev-cpp/tbb:=
544 + >=dev-libs/boost-1.73.0:=[nls,threads(+)]
545 + dev-libs/cereal
546 + dev-libs/expat
547 + dev-libs/glib:2
548 + dev-libs/gmp:=
549 + dev-libs/mpfr:=
550 + dev-libs/imath:=
551 + >=media-gfx/openvdb-8.2:=
552 + net-misc/curl[adns]
553 + media-libs/glew:0=
554 + media-libs/libpng:0=
555 + media-libs/qhull:=
556 + sci-libs/nlopt
557 + >=sci-mathematics/cgal-5.0:=
558 + sys-apps/dbus
559 + sys-libs/zlib:=
560 + virtual/glu
561 + virtual/opengl
562 + x11-libs/gtk+:3
563 + x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
564 +"
565 +DEPEND="${RDEPEND}
566 + media-libs/qhull[static-libs]
567 +"
568 +
569 +PATCHES=(
570 + "${FILESDIR}/${P}-openexr3.patch"
571 + "${FILESDIR}/${P}-wxgtk3-wayland.patch"
572 + "${FILESDIR}/${P}-cereal.patch"
573 + "${FILESDIR}/${P}-boost.patch"
574 + "${FILESDIR}/${P}-missing-includes.patch"
575 +)
576 +
577 +S="${WORKDIR}/${MY_PN}-${PV}"
578 +
579 +src_unpack() {
580 + default
581 +
582 + mv slic3r-profiles-*/* "${S}"/resources/profiles/ || die
583 +}
584 +
585 +src_configure() {
586 + CMAKE_BUILD_TYPE="Release"
587 +
588 + setup-wxwidgets
589 +
590 + local mycmakeargs=(
591 + -DOPENVDB_FIND_MODULE_PATH="/usr/$(get_libdir)/cmake/OpenVDB"
592 +
593 + -DSLIC3R_BUILD_TESTS=$(usex test)
594 + -DSLIC3R_FHS=ON
595 + -DSLIC3R_GTK=3
596 + -DSLIC3R_GUI=ON
597 + -DSLIC3R_PCH=OFF
598 + -DSLIC3R_STATIC=OFF
599 + -DSLIC3R_WX_STABLE=ON
600 + -Wno-dev
601 + )
602 +
603 + cmake_src_configure
604 +}
605 +
606 +src_install() {
607 + cmake_src_install
608 +
609 + rm "${ED}/usr/lib/udev/rules.d/90-3dconnexion.rules" || die
610 +}