diff options
-rw-r--r-- | gnu/local.mk | 3 | ||||
-rw-r--r-- | gnu/packages/engineering.scm | 9 | ||||
-rw-r--r-- | gnu/packages/patches/prusa-slicer-boost-fixes.patch | 97 | ||||
-rw-r--r-- | gnu/packages/patches/prusa-slicer-fix-tests.patch | 17 | ||||
-rw-r--r-- | gnu/packages/patches/prusa-slicer-with-cereal-1.3.1.patch | 52 |
5 files changed, 175 insertions, 3 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index f0d129b493..039e157df3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1661,6 +1661,9 @@ dist_patch_DATA = \ %D%/packages/patches/pokerth-boost.patch \ %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \ %D%/packages/patches/procps-strtod-test.patch \ + %D%/packages/patches/prusa-slicer-boost-fixes.patch \ + %D%/packages/patches/prusa-slicer-fix-tests.patch \ + %D%/packages/patches/prusa-slicer-with-cereal-1.3.1.patch \ %D%/packages/patches/pthreadpool-system-libraries.patch \ %D%/packages/patches/python-chai-drop-python2.patch \ %D%/packages/patches/python-feedparser-missing-import.patch \ diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 66f3769e68..44092e77c5 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -3508,7 +3508,7 @@ visualization, matrix manipulation.") (define-public prusa-slicer (package (name "prusa-slicer") - (version "2.5.0") + (version "2.5.2") (source (origin (method git-fetch) @@ -3517,7 +3517,10 @@ visualization, matrix manipulation.") (url "https://github.com/prusa3d/PrusaSlicer") (commit (string-append "version_" version)))) (file-name (git-file-name name version)) - (sha256 (base32 "17ic92ww2ny0frxyv7ajwdwa0fq70ygq562ik8sh94jx67jvxdy0")) + (sha256 (base32 "02qcrw3fa0d8ldbp73hp14l1qxbp3f4608j4csc07ny00ra42151")) + (patches (search-patches "prusa-slicer-boost-fixes.patch" + "prusa-slicer-fix-tests.patch" + "prusa-slicer-with-cereal-1.3.1.patch")) (modules '((guix build utils))) (snippet '(begin @@ -3553,7 +3556,7 @@ visualization, matrix manipulation.") (list pkg-config)) (inputs (list boost - cereal-1.3.0 + cereal cgal curl dbus diff --git a/gnu/packages/patches/prusa-slicer-boost-fixes.patch b/gnu/packages/patches/prusa-slicer-boost-fixes.patch new file mode 100644 index 0000000000..5bca271625 --- /dev/null +++ b/gnu/packages/patches/prusa-slicer-boost-fixes.patch @@ -0,0 +1,97 @@ +Fixes for Boost compatibility. +This patch comes from Gentoo: + portage/media-gfx/prusaslicer/files/prusaslicer-2.5.0_alpha2-boost-fixes.patch + +--- a/src/hints/HintsToPot.cpp ++++ b/src/hints/HintsToPot.cpp +@@ -1,6 +1,7 @@ + #include <iostream> + #include <vector> + #include <string> ++#include <boost/nowide/fstream.hpp> + #include <boost/filesystem.hpp> + #include <boost/dll.hpp> + #include <boost/property_tree/ini_parser.hpp> +@@ -9,7 +10,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(std::move(path), std::ios_base::app); + for (const auto& element : data) + { + //Example of .pot element +--- a/src/libslic3r/Preset.cpp ++++ b/src/libslic3r/Preset.cpp +@@ -25,6 +25,7 @@ + #include <stdexcept> + #include <unordered_map> + #include <boost/format.hpp> ++#include <boost/nowide/fstream.hpp> + #include <boost/filesystem.hpp> + #include <boost/filesystem/fstream.hpp> + #include <boost/algorithm/string.hpp> +@@ -84,7 +85,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); + boost::property_tree::read_ini(ifs, tree); + return VendorProfile::from_ini(tree, path, load_all); + } +--- a/src/slic3r/GUI/DesktopIntegrationDialog.cpp ++++ b/src/slic3r/GUI/DesktopIntegrationDialog.cpp +@@ -10,6 +10,7 @@ + #include "libslic3r/Platform.hpp" + #include "libslic3r/Config.hpp" + ++#include <boost/nowide/fstream.hpp> + #include <boost/filesystem.hpp> + #include <boost/log/trivial.hpp> + #include <boost/dll/runtime_symbol_info.hpp> +@@ -503,4 +504,4 @@ DesktopIntegrationDialog::~DesktopIntegrationDialog() + + } // namespace GUI + } // namespace Slic3r +-#endif // __linux__ +\ No newline at end of file ++#endif // __linux__ +--- a/src/slic3r/GUI/GUI_App.cpp ++++ b/src/slic3r/GUI/GUI_App.cpp +@@ -13,6 +13,7 @@ + #include <cstdlib> + #include <regex> + #include <string_view> ++#include <boost/nowide/fstream.hpp> + #include <boost/algorithm/string/predicate.hpp> + #include <boost/algorithm/string.hpp> + #include <boost/format.hpp> +--- a/src/slic3r/GUI/HintNotification.cpp ++++ b/src/slic3r/GUI/HintNotification.cpp +@@ -15,6 +15,7 @@ + #include "libslic3r/PrintConfig.hpp" + + #include <boost/algorithm/string/replace.hpp> ++#include <boost/nowide/fstream.hpp> + #include <boost/filesystem.hpp> + #include <boost/nowide/fstream.hpp> + #include <boost/log/trivial.hpp> +@@ -65,7 +66,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"), std::ios::binary); + cereal::BinaryOutputArchive archive(file); + HintsCerealData cd { ids }; + try +@@ -84,7 +85,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); + cereal::BinaryInputArchive archive(file); + HintsCerealData cd; + try diff --git a/gnu/packages/patches/prusa-slicer-fix-tests.patch b/gnu/packages/patches/prusa-slicer-fix-tests.patch new file mode 100644 index 0000000000..da9a5307f9 --- /dev/null +++ b/gnu/packages/patches/prusa-slicer-fix-tests.patch @@ -0,0 +1,17 @@ +This patch comes from Gentoo: + portage/media-gfx/prusaslicer/files/prusaslicer-2.5.0_rc1-fix-tests.patch + +--- a/tests/fff_print/test_data.cpp ++++ b/tests/fff_print/test_data.cpp +@@ -4,10 +4,9 @@ + #include "libslic3r/GCodeReader.hpp" + #include "libslic3r/Config.hpp" + #include "libslic3r/Print.hpp" +-#include "libslic3r/Format/OBJ.hpp" +-#include "libslic3r/Format/STL.hpp" + + #include <cstdlib> ++#include <fstream> + #include <string> + + #include <boost/nowide/cstdio.hpp> diff --git a/gnu/packages/patches/prusa-slicer-with-cereal-1.3.1.patch b/gnu/packages/patches/prusa-slicer-with-cereal-1.3.1.patch new file mode 100644 index 0000000000..affa506b1c --- /dev/null +++ b/gnu/packages/patches/prusa-slicer-with-cereal-1.3.1.patch @@ -0,0 +1,52 @@ +Fix for building with cereal>=1.3.1. +This patch comes from Gentoo: + portage/media-gfx/prusaslicer/files/prusaslicer-2.5.0_rc1-cereal-1.3.1.patch + +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -127,7 +127,7 @@ + set_target_properties(PrusaSlicer PROPERTIES OUTPUT_NAME "prusa-slicer") + endif () + +-target_link_libraries(PrusaSlicer libslic3r cereal) ++target_link_libraries(PrusaSlicer libslic3r libcereal) + + if (APPLE) + # add_compile_options(-stdlib=libc++) +--- a/src/slic3r/CMakeLists.txt ++++ b/src/slic3r/CMakeLists.txt +@@ -260,7 +260,7 @@ + + encoding_check(libslic3r_gui) + +-target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES}) ++target_link_libraries(libslic3r_gui libslic3r avrdude libcereal imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES}) + + if (MSVC) + target_link_libraries(libslic3r_gui Setupapi.lib) +--- a/src/libslic3r/CMakeLists.txt ++++ b/src/libslic3r/CMakeLists.txt +@@ -395,7 +395,7 @@ + target_link_libraries(libslic3r + libnest2d + admesh +- cereal ++ libcereal + libigl + miniz + boost_libs +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -446,6 +446,12 @@ + + # Find the Cereal serialization library + find_package(cereal REQUIRED) ++add_library(libcereal INTERFACE) ++if (NOT TARGET cereal::cereal) ++ target_link_libraries(libcereal INTERFACE cereal) ++else() ++ target_link_libraries(libcereal INTERFACE cereal::cereal) ++endif() + + # l10n + set(L10N_DIR "${SLIC3R_RESOURCES_DIR}/localization") |