diff --git a/.SRCINFO b/.SRCINFO index c913c9c..0a90765 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = superslicer-prerelease pkgdesc = G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.) pkgver = 2.5.60.0 - pkgrel = 2 + pkgrel = 1 epoch = 1 url = https://github.com/supermerill/SuperSlicer arch = x86_64 @@ -38,7 +38,6 @@ pkgbase = superslicer-prerelease source = 0007-boost1.84.patch source = 0008-boost1.85.patch source = 0009-fix-multiple-choice.patch - source = 0010-occtwrapper-install-dir.patch sha512sums = a53f4cc9b5a20f3f60d38553d47bfd19ce8bd739a8a16493bbcf64f75825fa760b8c107d7f927d49d967f7d067fac8c428c8f6e67219e74b0970d9ab7aa5b9e6 sha512sums = fc18e8edf516f9479c3b0e201d1c74b42289f15ef8a64ff3a88c2bb14613978a9dcf7be50ff8b79faf054c7721a095a70715b0fb0747be48757f9502ba0eb859 sha512sums = 58467732161eb0abe58cfb1e64e080f64f9f2221032b0d6176739fc81a61fe7838fa6479e9aac7fa0ee9805898f9293081c5e35a146df103830199b46354b97e @@ -49,6 +48,5 @@ pkgbase = superslicer-prerelease sha512sums = a92af974cb62901aab5a5c8c34672e9a7c90ea7246bbd7423421a9b7ee12a7b17073d90a6f36f994328c7dc9c2d0a6e4fd18c980a71863bc530d873ebaa80433 sha512sums = ca9f407d87d8dd0181077bc2da5a8e2f8995eed88a4787b73ee6c62ef6d2380fd1394fe5412cdc34276d4182bce6f272173e9ccb653d1e28978e16f379114002 sha512sums = 6d7ab93042a75f04e1c3c8f294d19dd39abaf22aa75caf996c6a0cf753f6472134a3d4fa443b73924800b2d3a710416a931745c168911c0df3709fb71ec00570 - sha512sums = 92929ba1cb6ee104a10f34a649eba3789ca02f1725104a57412279ff68c46614b1812b13e7dcdf0d235618b9f2a868b4798b1404d9e712d9f1efd46e6c71fcb5 pkgname = superslicer-prerelease diff --git a/0001-boost1.79.patch b/0001-boost1.79.patch new file mode 100644 index 0000000..f3ad855 --- /dev/null +++ b/0001-boost1.79.patch @@ -0,0 +1,81 @@ +From 408e56f0390f20aaf793e0aa0c70c4d9544401d4 Mon Sep 17 00:00:00 2001 +From: Vojtech Bubnik +Date: Mon, 25 Apr 2022 08:33:48 +0200 +Subject: [PATCH] Fix of Boost 1.79 deprecated boost::filesystem::ofstream + #8238 Replacing boost::filesystem::fstream with boost::nowide::fstream + variants with the unfortunate cost of string path conversion on Windows from + 16 bits to UTF8 and back to 16 bits. + +Unfortunately we cannot use std::filesystem yet as it is missing +on older MACs and because the interface is crooked minefield on Windows +see https://github.com/microsoft/STL/issues/909 +--- + src/hints/HintsToPot.cpp | 2 +- + src/libslic3r/Preset.cpp | 2 +- + src/slic3r/GUI/HintNotification.cpp | 8 +++++--- + 3 files changed, 7 insertions(+), 5 deletions(-) + +diff --git a/src/hints/HintsToPot.cpp b/src/hints/HintsToPot.cpp +index 7c8029cdeb..4791f0612f 100644 +--- a/src/hints/HintsToPot.cpp ++++ b/src/hints/HintsToPot.cpp +@@ -9,7 +9,7 @@ + + bool write_to_pot(boost::filesystem::path path, const std::vector>& data) + { +- boost::filesystem::ofstream file(std::move(path), std::ios_base::app); ++ boost::nowide::ofstream file(path.string(), std::ios_base::app); + for (const auto& element : data) + { + //Example of .pot element +diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp +index f3a1c15b3e..f171cb14dd 100644 +--- a/src/libslic3r/Preset.cpp ++++ b/src/libslic3r/Preset.cpp +@@ -84,7 +84,7 @@ ConfigFileType guess_config_file_type(const ptree &tree) + VendorProfile VendorProfile::from_ini(const boost::filesystem::path &path, bool load_all) + { + ptree tree; +- boost::filesystem::ifstream ifs(path); ++ boost::nowide::ifstream ifs(path.string()); + boost::property_tree::read_ini(ifs, tree); + return VendorProfile::from_ini(tree, path, load_all); + } +diff --git a/src/slic3r/GUI/HintNotification.cpp b/src/slic3r/GUI/HintNotification.cpp +index 93e0fb3259..820b74eedb 100644 +--- a/src/slic3r/GUI/HintNotification.cpp ++++ b/src/slic3r/GUI/HintNotification.cpp +@@ -14,12 +14,14 @@ + #include "libslic3r/Config.hpp" + #include "libslic3r/PrintConfig.hpp" + ++#include ++ + #include + #include + #include + #include + #include +-#include ++ + #include + #include + #include +@@ -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& 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& 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/0001-findwxwidgets.patch b/0001-findwxwidgets.patch deleted file mode 100644 index 4b30dce..0000000 --- a/0001-findwxwidgets.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/cmake/modules/FindwxWidgets.cmake b/cmake/modules/FindwxWidgets.cmake -index e1f93a6a26..88c5f2487d 100644 ---- a/cmake/modules/FindwxWidgets.cmake -+++ b/cmake/modules/FindwxWidgets.cmake -@@ -183,12 +183,12 @@ This module defines the following :prop_tgt:`IMPORTED` targets: - # Helper macro to control the debugging output globally. There are - # two versions for controlling how verbose your output should be. - macro(DBG_MSG _MSG) --# message(STATUS --# "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}") -+ message(STATUS -+ "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}") - endmacro() - macro(DBG_MSG_V _MSG) --# message(STATUS --# "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}") -+ message(STATUS -+ "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}") - endmacro() - - # Clear return values in case the module is loaded more than once. -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index aee1aaf100..e6db66b00d 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -57,7 +57,7 @@ if (SLIC3R_GUI) - if (CMAKE_SYSTEM_NAME STREQUAL "Linux") - set (wxWidgets_CONFIG_OPTIONS "--toolkit=gtk${SLIC3R_GTK}") - endif () -- find_package(wxWidgets 3.2 MODULE REQUIRED COMPONENTS base core adv html gl stc scintilla) -+ find_package(wxWidgets 3.2 MODULE REQUIRED COMPONENTS base core adv html gl stc) - - include(${wxWidgets_USE_FILE}) - diff --git a/0002-addlib-expat.patch b/0002-addlib-expat.patch deleted file mode 100644 index a2501e8..0000000 --- a/0002-addlib-expat.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 34fe44a2ef..c0792f5476 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -485,8 +485,6 @@ include_directories(BEFORE SYSTEM ${EIGEN3_INCLUDE_DIR}) - # no matter what. - find_package(EXPAT REQUIRED) - --add_library(libexpat INTERFACE) -- - if (TARGET EXPAT::EXPAT ) - target_link_libraries(libexpat INTERFACE EXPAT::EXPAT) - elseif(TARGET expat::expat) diff --git a/0002-fix-cereal.patch b/0002-fix-cereal.patch new file mode 100644 index 0000000..f3d52a0 --- /dev/null +++ b/0002-fix-cereal.patch @@ -0,0 +1,71 @@ +diff --git a/cmake/modules/Findcereal.cmake b/cmake/modules/Findcereal.cmake +deleted file mode 100644 +index b4829757e..000000000 +--- a/cmake/modules/Findcereal.cmake ++++ /dev/null +@@ -1,26 +0,0 @@ +-set(_q "") +-if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) +- set(_q QUIET) +- set(_quietly TRUE) +-endif() +-find_package(${CMAKE_FIND_PACKAGE_NAME} ${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION} CONFIG ${_q}) +- +-if (NOT ${CMAKE_FIND_PACKAGE_NAME}_FOUND) +- # Fall-back solution to find the Cereal serialization library header file +- include(CheckIncludeFileCXX) +- add_library(cereal INTERFACE) +- target_include_directories(cereal INTERFACE include) +- +- if (_quietly) +- set(CMAKE_REQUIRED_QUIET ON) +- endif() +- CHECK_INCLUDE_FILE_CXX("cereal/cereal.hpp" HAVE_CEREAL_H) +- +- if (NOT HAVE_CEREAL_H) +- if (${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) +- message(FATAL_ERROR "Cereal library not found. Please install the dependency.") +- elseif(NOT _quietly) +- message(WARNING "Cereal library not found.") +- endif() +- endif () +-endif() +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 01ef37905..98dbafa01 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -139,8 +139,8 @@ 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) + + 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 7048fb60c..95c5ed9e2 100644 +--- a/src/libslic3r/CMakeLists.txt ++++ b/src/libslic3r/CMakeLists.txt +@@ -356,7 +356,6 @@ target_include_directories(libslic3r PUBLIC ${EXPAT_INCLUDE_DIRS}) + target_link_libraries(libslic3r + libnest2d + admesh +- cereal + libigl + miniz + boost_libs +diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt +index fe3d15425..24be67592 100644 +--- a/src/slic3r/CMakeLists.txt ++++ b/src/slic3r/CMakeLists.txt +@@ -291,7 +291,7 @@ target_compile_definitions(libslic3r_gui PRIVATE $<$: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 imgui GLEW::GLEW OpenGL::GL hidapi exif angelscript libcurl ${wxWidgets_LIBRARIES}) + + if (MSVC) + target_link_libraries(libslic3r_gui Setupapi.lib) diff --git a/0004-fix-opencascade-version-check.patch b/0004-fix-opencascade-version-check.patch index c41b050..2fa784a 100644 --- a/0004-fix-opencascade-version-check.patch +++ b/0004-fix-opencascade-version-check.patch @@ -1,7 +1,7 @@ https://github.com/supermerill/SuperSlicer/issues/3912#issuecomment-1675135988 ---- a/src/occt_wrapper/CMakeLists.txt 2024-11-20 13:23:45.624527309 +0100 -+++ b/src/occt_wrapper/CMakeLists.txt 2024-11-20 13:23:56.347478724 +0100 +--- src/occt_wrapper/CMakeLists.txt.bak 2024-11-20 13:23:45.624527309 +0100 ++++ src/occt_wrapper/CMakeLists.txt 2024-11-20 13:23:56.347478724 +0100 @@ -19,7 +19,12 @@ generate_export_header(OCCTWrapper) diff --git a/0006-fix-non-const-lvalue.patch b/0006-fix-non-const-lvalue.patch new file mode 100644 index 0000000..0ccd25c --- /dev/null +++ b/0006-fix-non-const-lvalue.patch @@ -0,0 +1,19 @@ +diff --git a/src/libslic3r/MeshBoolean.cpp b/src/libslic3r/MeshBoolean.cpp +index 31fdc35de5..6e5e48e0f7 100644 +--- a/src/libslic3r/MeshBoolean.cpp ++++ b/src/libslic3r/MeshBoolean.cpp +@@ -147,12 +147,12 @@ template TriangleMesh cgal_to_triangle_mesh(const _Mesh &cgalmesh) + const auto &vertices = cgalmesh.vertices(); + int vsize = int(vertices.size()); + +- for (auto &vi : vertices) { ++ for (const auto &vi : vertices) { + auto &v = cgalmesh.point(vi); // Don't ask... + its.vertices.emplace_back(to_vec3f(v)); + } + +- for (auto &face : faces) { ++ for (const auto &face : faces) { + auto vtc = cgalmesh.vertices_around_face(cgalmesh.halfedge(face)); + + int i = 0; diff --git a/0007-boost1.84.patch b/0007-boost1.84.patch new file mode 100644 index 0000000..4ac2dfc --- /dev/null +++ b/0007-boost1.84.patch @@ -0,0 +1,34 @@ +diff --git a/src/slic3r/GUI/ScriptExecutor.cpp b/src/slic3r/GUI/ScriptExecutor.cpp +index 3e10680e46..3dcbf9643f 100644 +--- a/src/slic3r/GUI/ScriptExecutor.cpp ++++ b/src/slic3r/GUI/ScriptExecutor.cpp +@@ -827,6 +827,20 @@ void as_back_custom_initial_value(int preset_type, std::string& key) { + + /////// main script fucntions ////// + ++// stolen from https://www.boost.org/doc/libs/1_79_0/boost/filesystem/string_file.hpp ++static inline void load_string_file(boost::filesystem::path const& p, std::string& str) ++{ ++ boost::filesystem::ifstream file; ++ file.exceptions(std::ios_base::failbit | std::ios_base::badbit); ++ file.open(p, std::ios_base::binary); ++ const boost::uintmax_t sz = boost::filesystem::file_size(p); ++ if (BOOST_UNLIKELY(sz > static_cast< boost::uintmax_t >((std::numeric_limits< std::streamsize >::max)()))) ++ BOOST_FILESYSTEM_THROW(std::length_error("File size exceeds max read size")); ++ str.resize(static_cast< std::size_t >(sz), '\0'); ++ if (sz > 0u) ++ file.read(&str[0], static_cast< std::streamsize >(sz)); ++} ++ + //TODO: add "unset" function, that revert to last value (befoer a scripted set) if a set has been made since last not-scripted change. + void ScriptContainer::init(const std::string& tab_key, Tab* tab) + { +@@ -960,7 +974,7 @@ void ScriptContainer::init(const std::string& tab_key, Tab* tab) + //res = builder.AddSectionFromFile(ui_script_file.string().c_str()); //seems to be problematic on cyrillic locale + { + std::string all_file; +- boost::filesystem::load_string_file(ui_script_file, all_file); ++ load_string_file(ui_script_file, all_file); + res = builder.AddSectionFromMemory(ui_script_file.string().c_str(), all_file.c_str(), (unsigned int)(all_file.length()), 0); + } + if (res < 0) throw CompileErrorException("Error, can't build the script for tab " + tab_key); diff --git a/0010-occtwrapper-install-dir.patch b/0010-occtwrapper-install-dir.patch deleted file mode 100644 index e3728bc..0000000 --- a/0010-occtwrapper-install-dir.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/src/libslic3r/Format/STEP.cpp b/src/libslic3r/Format/STEP.cpp -index 5165bb7015..9d76c23dca 100644 ---- a/src/libslic3r/Format/STEP.cpp -+++ b/src/libslic3r/Format/STEP.cpp -@@ -57,6 +57,9 @@ LoadStepFn get_load_step_fn() - #elif __APPLE__ - load_step_fn = &load_step_internal; - #else -+ libpath = libpath.parent_path(); -+ libpath /= "lib"; -+ libpath /= "superslicer"; - libpath /= "OCCTWrapper.so"; - void *plugin_ptr = dlopen(libpath.c_str(), RTLD_NOW | RTLD_GLOBAL); - -diff --git a/src/occt_wrapper/CMakeLists.txt b/src/occt_wrapper/CMakeLists.txt -index ed75531a96..6dc45bae9f 100644 ---- a/src/occt_wrapper/CMakeLists.txt -+++ b/src/occt_wrapper/CMakeLists.txt -@@ -56,5 +56,5 @@ target_link_libraries(OCCTWrapper ${OCCT_LIBS}) - - include(GNUInstallDirs) - --install(TARGETS OCCTWrapper DESTINATION "${CMAKE_INSTALL_BINDIR}") -+install(TARGETS OCCTWrapper DESTINATION "${CMAKE_INSTALL_LIBDIR}/superslicer") - diff --git a/0011-fix-constructible-svgfile.patch b/0011-fix-constructible-svgfile.patch deleted file mode 100644 index 40c2fc8..0000000 --- a/0011-fix-constructible-svgfile.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/libslic3r/EmbossShape.hpp b/src/libslic3r/EmbossShape.hpp -index 3e4a950037..22e5d3aee1 100644 ---- a/src/libslic3r/EmbossShape.hpp -+++ b/src/libslic3r/EmbossShape.hpp -@@ -101,6 +101,8 @@ struct EmbossShape - // Loaded string data from file - std::shared_ptr file_data = nullptr; - -+ SvgFile() {} -+ - template void save(Archive &ar) const { - // Note: image is only cache it is not neccessary to store - diff --git a/0012-boost1.87.patch b/0012-boost1.87.patch deleted file mode 100644 index 353a3b0..0000000 --- a/0012-boost1.87.patch +++ /dev/null @@ -1,197 +0,0 @@ -diff --git a/src/libslic3r/GCodeSender.cpp b/src/libslic3r/GCodeSender.cpp -index 396060cbaf..a3d28f6426 100644 ---- a/src/libslic3r/GCodeSender.cpp -+++ b/src/libslic3r/GCodeSender.cpp -@@ -113,7 +113,7 @@ GCodeSender::connect(std::string devname, unsigned int baud_rate) - this->io.post(boost::bind(&GCodeSender::do_read, this)); - - // start reading in the background thread -- boost::thread t(boost::bind(&boost::asio::io_service::run, &this->io)); -+ boost::thread t(boost::bind(&boost::asio::io_context::run, &this->io)); - this->background_thread.swap(t); - - // always send a M105 to check for connection because firmware might be silent on connect -diff --git a/src/libslic3r/GCodeSender.hpp b/src/libslic3r/GCodeSender.hpp -index 4f266619e4..f47caef0cb 100644 ---- a/src/libslic3r/GCodeSender.hpp -+++ b/src/libslic3r/GCodeSender.hpp -@@ -40,7 +40,7 @@ class GCodeSender : private boost::noncopyable { - void reset(); - - private: -- asio::io_service io; -+ asio::io_context io; - asio::serial_port serial; - boost::thread background_thread; - boost::asio::streambuf read_buffer, write_buffer; -diff --git a/src/slic3r/GUI/FirmwareDialog.cpp b/src/slic3r/GUI/FirmwareDialog.cpp -index a75a6e269e..d6d3c9608f 100644 ---- a/src/slic3r/GUI/FirmwareDialog.cpp -+++ b/src/slic3r/GUI/FirmwareDialog.cpp -@@ -365,7 +365,7 @@ bool FirmwareDialog::priv::check_model_id() - // return true; - // } - -- // asio::io_service io; -+ // asio::io_context io; - // Serial serial(io, port->port, 115200); - // serial.printer_setup(); - -@@ -429,7 +429,7 @@ void FirmwareDialog::priv::avr109_wait_for_bootloader(Avr109Pid usb_pid, unsigne - - void FirmwareDialog::priv::avr109_reboot(const SerialPortInfo &port) - { -- asio::io_service io; -+ asio::io_context io; - Serial serial(io, port.port, 1200); - std::this_thread::sleep_for(std::chrono::milliseconds(50)); - } -diff --git a/src/slic3r/GUI/FreeCADDialog.cpp b/src/slic3r/GUI/FreeCADDialog.cpp -index 822bc4e2d9..dfbb037ed0 100644 ---- a/src/slic3r/GUI/FreeCADDialog.cpp -+++ b/src/slic3r/GUI/FreeCADDialog.cpp -@@ -64,7 +64,7 @@ namespace GUI { - class ExecVar { - public: - boost::process::opstream pyin; -- boost::asio::io_service ios; -+ boost::asio::io_context ios; - std::future data_out; - std::future data_err; - std::unique_ptr process; -diff --git a/src/slic3r/Utils/Bonjour.cpp b/src/slic3r/Utils/Bonjour.cpp -index b13d570120..d48fd87da5 100644 ---- a/src/slic3r/Utils/Bonjour.cpp -+++ b/src/slic3r/Utils/Bonjour.cpp -@@ -624,7 +624,7 @@ UdpSession::UdpSession(Bonjour::ReplyFn rfn) : replyfn(rfn) - buffer.resize(DnsMessage::MAX_SIZE); - } - --UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multicast_address, const asio::ip::address& interface_address, std::shared_ptr< boost::asio::io_service > io_service) -+UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multicast_address, const asio::ip::address& interface_address, std::shared_ptr< boost::asio::io_context > io_service) - : replyfn(replyfn) - , multicast_address(multicast_address) - , socket(*io_service) -@@ -658,7 +658,7 @@ UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multica - } - - --UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multicast_address, std::shared_ptr< boost::asio::io_service > io_service) -+UdpSocket::UdpSocket( Bonjour::ReplyFn replyfn, const asio::ip::address& multicast_address, std::shared_ptr< boost::asio::io_context > io_service) - : replyfn(replyfn) - , multicast_address(multicast_address) - , socket(*io_service) -@@ -871,7 +871,7 @@ void Bonjour::priv::lookup_perform() - { - service_dn = (boost::format("_%1%._%2%.local") % service % protocol).str(); - -- std::shared_ptr< boost::asio::io_service > io_service(new boost::asio::io_service); -+ std::shared_ptr< boost::asio::io_context > io_service(new boost::asio::io_context); - - std::vector sockets; - -@@ -966,7 +966,7 @@ void Bonjour::priv::resolve_perform() - rpls.push_back(reply); - }; - -- std::shared_ptr< boost::asio::io_service > io_service(new boost::asio::io_service); -+ std::shared_ptr< boost::asio::io_context > io_service(new boost::asio::io_context); - std::vector sockets; - - // resolve interfaces - from PR#6646 -diff --git a/src/slic3r/Utils/Bonjour.hpp b/src/slic3r/Utils/Bonjour.hpp -index 398adde045..436146096b 100644 ---- a/src/slic3r/Utils/Bonjour.hpp -+++ b/src/slic3r/Utils/Bonjour.hpp -@@ -155,11 +155,11 @@ public: - UdpSocket(Bonjour::ReplyFn replyfn - , const boost::asio::ip::address& multicast_address - , const boost::asio::ip::address& interface_address -- , std::shared_ptr< boost::asio::io_service > io_service); -+ , std::shared_ptr< boost::asio::io_context > io_service); - - UdpSocket(Bonjour::ReplyFn replyfn - , const boost::asio::ip::address& multicast_address -- , std::shared_ptr< boost::asio::io_service > io_service); -+ , std::shared_ptr< boost::asio::io_context > io_service); - - void send(); - void async_receive(); -@@ -172,7 +172,7 @@ protected: - boost::asio::ip::address multicast_address; - boost::asio::ip::udp::socket socket; - boost::asio::ip::udp::endpoint mcast_endpoint; -- std::shared_ptr< boost::asio::io_service > io_service; -+ std::shared_ptr< boost::asio::io_context > io_service; - std::vector requests; - }; - -@@ -186,7 +186,7 @@ public: - , Bonjour::ReplyFn replyfn - , const boost::asio::ip::address& multicast_address - , const boost::asio::ip::address& interface_address -- , std::shared_ptr< boost::asio::io_service > io_service) -+ , std::shared_ptr< boost::asio::io_context > io_service) - : UdpSocket(replyfn, multicast_address, interface_address, io_service) - , txt_keys(txt_keys) - , service(service) -@@ -203,7 +203,7 @@ public: - , std::string protocol - , Bonjour::ReplyFn replyfn - , const boost::asio::ip::address& multicast_address -- , std::shared_ptr< boost::asio::io_service > io_service) -+ , std::shared_ptr< boost::asio::io_context > io_service) - : UdpSocket(replyfn, multicast_address, io_service) - , txt_keys(txt_keys) - , service(service) -@@ -242,7 +242,7 @@ public: - , Bonjour::ReplyFn replyfn - , const boost::asio::ip::address& multicast_address - , const boost::asio::ip::address& interface_address -- , std::shared_ptr< boost::asio::io_service > io_service) -+ , std::shared_ptr< boost::asio::io_context > io_service) - : UdpSocket(replyfn, multicast_address, interface_address, io_service) - , hostname(hostname) - -@@ -254,7 +254,7 @@ public: - ResolveSocket(const std::string& hostname - , Bonjour::ReplyFn replyfn - , const boost::asio::ip::address& multicast_address -- , std::shared_ptr< boost::asio::io_service > io_service) -+ , std::shared_ptr< boost::asio::io_context > io_service) - : UdpSocket(replyfn, multicast_address, io_service) - , hostname(hostname) - -diff --git a/src/slic3r/Utils/Serial.cpp b/src/slic3r/Utils/Serial.cpp -index b44a909f8d..b21f91f4c0 100644 ---- a/src/slic3r/Utils/Serial.cpp -+++ b/src/slic3r/Utils/Serial.cpp -@@ -283,11 +283,11 @@ std::vector scan_serial_ports() - namespace asio = boost::asio; - using boost::system::error_code; - --Serial::Serial(asio::io_service& io_service) : -+Serial::Serial(asio::io_context& io_service) : - asio::serial_port(io_service) - {} - --Serial::Serial(asio::io_service& io_service, const std::string &name, unsigned baud_rate) : -+Serial::Serial(asio::io_context& io_service, const std::string &name, unsigned baud_rate) : - asio::serial_port(io_service, name) - { - set_baud_rate(baud_rate); -diff --git a/src/slic3r/Utils/Serial.hpp b/src/slic3r/Utils/Serial.hpp -index c47759795b..4452b2a914 100644 ---- a/src/slic3r/Utils/Serial.hpp -+++ b/src/slic3r/Utils/Serial.hpp -@@ -43,8 +43,8 @@ extern std::vector scan_serial_ports_extended(); - class Serial : public boost::asio::serial_port - { - public: -- Serial(boost::asio::io_service &io_service); -- Serial(boost::asio::io_service &io_service, const std::string &name, unsigned baud_rate); -+ Serial(boost::asio::io_context &io_service); -+ Serial(boost::asio::io_context &io_service, const std::string &name, unsigned baud_rate); - Serial(const Serial &) = delete; - Serial &operator=(const Serial &) = delete; - ~Serial(); diff --git a/PKGBUILD b/PKGBUILD index c8371b9..eddfbaa 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -3,10 +3,8 @@ # Maintainer: Lukas1818 aur at lukas1818 dot de pkgname=superslicer-prerelease -pkgver=2.7.61.0 +pkgver=2.5.60.0 _pkgtag=$pkgver -# https://github.com/supermerill/SuperSlicer/blob/2.7.61.0/deps/%2BLibBGCode/LibBGCode.cmake -_libbgcode=6f43cb004ef3d3bda37dde49f6235e24d2717629 pkgrel=1 epoch=1 pkgdesc="G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)" @@ -14,114 +12,62 @@ arch=("$CARCH") url="https://github.com/supermerill/SuperSlicer" license=('AGPL3') options=(!emptydirs) -depends=( - 'boost-libs>=1.85.0' - 'cgal' - 'glew' - 'imath' - 'heatshrink' - 'libspnav' - 'nlopt' - 'openvdb' - 'qhull>=2020.2-4' - 'slicer-udev' - 'wxwidgets-gtk3' -) -makedepends=( - 'boost>=1.85.0' - 'cereal>=1.3.0' - 'cmake' - 'eigen' - 'libigl' - 'ninja' - 'openvdb' -) +depends=('boost-libs>=1.73.0' 'cgal' 'glew' 'imath' 'libspnav' 'nlopt' 'openvdb' 'qhull>=2020.2-4' 'slicer-udev' 'wxwidgets-gtk3') +makedepends=('boost>=1.73.0' 'cereal>=1.3.0' 'cmake' 'eigen' 'libigl' 'openvdb' 'samurai') optdepends=('superslicer-profiles: Predefined printer profiles') provides=("superslicer=$epoch:$pkgver") conflicts=('superslicer' 'superslicer-git') source=("https://github.com/supermerill/SuperSlicer/archive/$_pkgtag.tar.gz" - "https://github.com/prusa3d/libbgcode/archive/$_libbgcode.tar.gz" - "0001-findwxwidgets.patch" - "0002-addlib-expat.patch" + "0001-boost1.79.patch" + "0002-fix-cereal.patch" "0003-openexr3.patch" "0004-fix-opencascade-version-check.patch" "0005-fix-opencascade-libs.patch" + "0006-fix-non-const-lvalue.patch" + "0007-boost1.84.patch" "0008-boost1.85.patch" - "0009-fix-multiple-choice.patch" - "0010-occtwrapper-install-dir.patch" - "0011-fix-constructible-svgfile.patch" - "0012-boost1.87.patch") -sha512sums=('0d72bf61adcafe8eef2ed860449dc25ca295ba0732d956bff8c0ae50b381387b803fd88241ab855a9b38daf8f5eaa4c41d17241b8c15c66d63576874179aa1c0' - '04cb7cb69d887e1fa5ced5c0219b0ee6cab81f09d1bc1226ebd26563e2ce60b85fb6e5aef11a36dffd3e00779849906fc5c19ad2cdd22d45360226912b6af31b' - 'd910cf1fc07219b6c776240eae0f203813368e69b6a0215bcdcabba385531744093b6214b21d0dffbafa8992d3549c96bbdb02e939c52a4e81dbce98389397f9' - '93a943eb9be52085a811d7cc8379dc5a3942befdc3d19eecf6310f8dfcfdef72bfa15dfcb85ac1f4f9d7731c973b9815a532ae444e3fe275f8f624825fe8e98b' + "0009-fix-multiple-choice.patch") +sha512sums=('a53f4cc9b5a20f3f60d38553d47bfd19ce8bd739a8a16493bbcf64f75825fa760b8c107d7f927d49d967f7d067fac8c428c8f6e67219e74b0970d9ab7aa5b9e6' + 'fc18e8edf516f9479c3b0e201d1c74b42289f15ef8a64ff3a88c2bb14613978a9dcf7be50ff8b79faf054c7721a095a70715b0fb0747be48757f9502ba0eb859' + '58467732161eb0abe58cfb1e64e080f64f9f2221032b0d6176739fc81a61fe7838fa6479e9aac7fa0ee9805898f9293081c5e35a146df103830199b46354b97e' '840e51b8feb3568ff46d309ece063f7188018fcaa43d19ec50ede408fdf2c237a3b7eaa11ba24409d8c3f7d6f5fb270181508cc56e0b2b0fef68b766130ef1eb' - '8512ace14c71b04eb98532e71592447475cf7feccf1c85f376487615c8a95f6afa645e4581f577ee26d91532c57f389eac7534a875d5a24e871f3ef593af33c9' + '4efb6dd48c8184f47b838228cf624a74429f35d133fb85316ddcde9d78bd462d64009ec9fe0b3f34232ddf4971f81ea03385ed661c771de9f0fd5bffcbe2a74c' 'a01abf748f82bc423f2c012ac430f78cfd5e56dede1d5999376e780267d0302d9a2a80c3eb15226c2f82102dda4c567c721ff99ab1fdeef504cbf9d9cb63ca53' + 'aca3a028eaab63baf83dd80d82615394435c97b9b45c99764ca84995d246096e3e5c2b564ed29e194652c8e221a80cf6abdc165cb3009fd20af586b0432b2bc9' + 'a92af974cb62901aab5a5c8c34672e9a7c90ea7246bbd7423421a9b7ee12a7b17073d90a6f36f994328c7dc9c2d0a6e4fd18c980a71863bc530d873ebaa80433' 'ca9f407d87d8dd0181077bc2da5a8e2f8995eed88a4787b73ee6c62ef6d2380fd1394fe5412cdc34276d4182bce6f272173e9ccb653d1e28978e16f379114002' - '6d7ab93042a75f04e1c3c8f294d19dd39abaf22aa75caf996c6a0cf753f6472134a3d4fa443b73924800b2d3a710416a931745c168911c0df3709fb71ec00570' - '92929ba1cb6ee104a10f34a649eba3789ca02f1725104a57412279ff68c46614b1812b13e7dcdf0d235618b9f2a868b4798b1404d9e712d9f1efd46e6c71fcb5' - '03dbbb8e1bc1422104c644c9eb37dc72c6ce50733eac70fe44a76b0345d1882ebd71f11af3358f8392402dda627d520cfe7c2ddf1257d1b891c6b60faf7c8182' - '29c8d60ef3b04d8bc950e5bef615543d3fb66b182338106dedbe2656ecdb6d95413044b73748a488548a4fd8202a0799be6b648ff9354de7c2d8bd11029d0a9d') - -_apply_patches() { - for patch in "${@}" - do - msg2 "Applying patch $patch" - patch -Np1 -i "$patch" - done -} - -prepare() { - cd "$srcdir/libbgcode-$_libbgcode" - rm -rf build - mkdir -p build + '6d7ab93042a75f04e1c3c8f294d19dd39abaf22aa75caf996c6a0cf753f6472134a3d4fa443b73924800b2d3a710416a931745c168911c0df3709fb71ec00570') +prepare() +{ cd "$srcdir/SuperSlicer-$_pkgtag" - rm -rf build # build fails everytime if it isn't a clean build?!? + [ ! -f build/Makefile ] || rm -rf build + rm -rf build # build does fail everytime if it is not clean build ? mkdir -p build # disabling tests is not enough, we need to remove them explicitly sed -i 's,add_subdirectory(test),,g' src/CMakeLists.txt - # apply patches for superslicer - _apply_patches \ - "$srcdir/0001-findwxwidgets.patch" \ - "$srcdir/0002-addlib-expat.patch" \ - "$srcdir/0003-openexr3.patch" \ - "$srcdir/0004-fix-opencascade-version-check.patch" \ - "$srcdir/0005-fix-opencascade-libs.patch" \ - "$srcdir/0008-boost1.85.patch" \ - "$srcdir/0009-fix-multiple-choice.patch" \ - "$srcdir/0010-occtwrapper-install-dir.patch" \ - "$srcdir/0011-fix-constructible-svgfile.patch" \ - "$srcdir/0012-boost1.87.patch" + # apply patches + patch -Np1 -i "$srcdir/0001-boost1.79.patch" + patch -Np1 -i "$srcdir/0002-fix-cereal.patch" + patch -Np1 -i "$srcdir/0003-openexr3.patch" + patch -Np0 -i "$srcdir/0004-fix-opencascade-version-check.patch" + patch -Np1 -i "$srcdir/0005-fix-opencascade-libs.patch" + patch -Np1 -i "$srcdir/0006-fix-non-const-lvalue.patch" + patch -Np1 -i "$srcdir/0007-boost1.84.patch" + patch -Np1 -i "$srcdir/0008-boost1.85.patch" + patch -Np1 -i "$srcdir/0009-fix-multiple-choice.patch" } -build() { - msg2 "Building libbgcode" - cd "$srcdir/libbgcode-$_libbgcode" +build() +{ + cd "$srcdir/SuperSlicer-$_pkgtag" cd build cmake .. \ -G Ninja \ - -DCMAKE_BUILD_TYPE=None \ - -DCMAKE_INSTALL_PREFIX= \ - -DLibBGCode_BUILD_CMD_TOOL=OFF \ - -DLibBGCode_BUILD_TESTS=OFF \ - -Wno-dev - ninja - mkdir destdir - DESTDIR=destdir ninja install - export "CMAKE_PREFIX_PATH=$PWD/destdir:$CMAKE_PREFIX_PATH" - - msg2 "Building SuperSlicer" - cd "$srcdir/SuperSlicer-$_pkgtag" - cd build - - cmake .. -DCMAKE_MESSAGE_LOG_LEVEL=DEBUG \ - -G Ninja \ - -DCMAKE_BUILD_TYPE=None \ + -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DOpenGL_GL_PREFERENCE=GLVND \ -DSLIC3R_FHS=ON \ @@ -131,10 +77,12 @@ build() { -DSLIC3R_BUILD_TESTS=OFF \ -DSLIC3R_ALPHA=ON \ -Wno-dev - ninja + + samu } -package() { +package() +{ cd "$srcdir/SuperSlicer-$_pkgtag/build" DESTDIR="$pkgdir" samu install