From patchwork Mon Jul 1 17:07:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Artyom V. Poptsov" X-Patchwork-Id: 65815 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 3224727BBEA; Mon, 1 Jul 2024 18:09:46 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 7BA6F27BBE2 for ; Mon, 1 Jul 2024 18:09:44 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOKWZ-0002xn-Cw; Mon, 01 Jul 2024 13:09:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOKWX-0002wO-6P for guix-patches@gnu.org; Mon, 01 Jul 2024 13:09:05 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sOKWW-0007fY-U0 for guix-patches@gnu.org; Mon, 01 Jul 2024 13:09:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sOKWX-0004zR-Fm for guix-patches@gnu.org; Mon, 01 Jul 2024 13:09:05 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#70880] [PATCH v2 8/8] gnu: prusa-slicer: Update to 2.7.4. Resent-From: "Artyom V. Poptsov" Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 01 Jul 2024 17:09:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 70880 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: moreinfo patch To: 70880@debbugs.gnu.org Cc: "Artyom V. Poptsov" Received: via spool by 70880-submit@debbugs.gnu.org id=B70880.171985372919093 (code B ref 70880); Mon, 01 Jul 2024 17:09:05 +0000 Received: (at 70880) by debbugs.gnu.org; 1 Jul 2024 17:08:49 +0000 Received: from localhost ([127.0.0.1]:34364 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sOKWG-0004xq-8h for submit@debbugs.gnu.org; Mon, 01 Jul 2024 13:08:49 -0400 Received: from mail-lf1-f47.google.com ([209.85.167.47]:44206) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sOKWC-0004wP-M4 for 70880@debbugs.gnu.org; Mon, 01 Jul 2024 13:08:45 -0400 Received: by mail-lf1-f47.google.com with SMTP id 2adb3069b0e04-52db11b1d31so4641035e87.0 for <70880@debbugs.gnu.org>; Mon, 01 Jul 2024 10:08:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719853658; x=1720458458; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bvDQJk7u5ehmBj8sXyXUL27Uw3Bq+9/pQq3sc41nPBY=; b=ivrnjAwO8WRJclrFPEB9nTpU3ej7WvVyjZYYSlm41L63sJIxO7mbmRH+uu+VIW4CVU TZZ2i7jd3n/NwQ1QqnqF8C8sph3YiBFXzYLGyZHSYXE1uep18MPWP5MdWRtLl1qcS4MO Y9EWBM6NF9/w9PABHEKaQKnyATC/k60LDk+X3tXVO5LEUcHQGDp5p4bqVgXjE278qddU oZXRnXWjYlLx73angjSrbYcnSbnzpVMcZTl/KTz8tPEz7iRJ1ASsbzd0zMeo6MKWYAKZ bR03YOwNQRKcwCwR7tLhnuL/VWflxjV112kctB27eYcqs9lcxKhsXzo3AaucCJYr1FMq 7gBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719853658; x=1720458458; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bvDQJk7u5ehmBj8sXyXUL27Uw3Bq+9/pQq3sc41nPBY=; b=I+gOmCW/Su2q96H506bwqRNunhLY4VFcUYCqu76mI9X7BMwf7GTrvZxJmfB/mKoYP/ N2ph1avsLqK7dxFV5chqgXAwbu+zOy3vo4GIR9ul6XnEprOQnzDggefvEqz1gON938um 37PsSq3RFvoReI7rmo02DcnOps9tabXFpQ6qS3anyX8Lix3m28KW0rUWPeY+WXowwAg5 rnYBGxwLL6jpErrqqg4OdPsaMS8WQJdZ2XRWQpXbu44si1A396caIjxv+0RoaQ7GCBYT 9E7q14jVZIvfyf6nR2wWMw2ttPOd4rAeAv1ILzZcNlm1PylJuflTKsc+40dYy5xwws5o jdQA== X-Gm-Message-State: AOJu0YzMLVuF70/+5SDc+hIfwFb1HvDwpNw2E2t69qIrOeEZQRpzIWUT gy4zeZcZpHZe+jTJy4wfe+77qPibZhgVFyhChfm4NI+s/fw2Y+S9xw9vDw== X-Google-Smtp-Source: AGHT+IFYt8ibqlpa4nVPR8rL4R+3K2MMyhN7pYooK1t0eMORNnZoTYP723yBOiGabueCWGiP5JjXrw== X-Received: by 2002:a05:6512:acc:b0:52c:812b:6e72 with SMTP id 2adb3069b0e04-52e8264cbf4mr4149516e87.1.1719853657342; Mon, 01 Jul 2024 10:07:37 -0700 (PDT) Received: from elephant.. ([95.79.4.1]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-52e7ab2793fsm1497282e87.123.2024.07.01.10.07.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jul 2024 10:07:36 -0700 (PDT) From: "Artyom V. Poptsov" Date: Mon, 1 Jul 2024 20:07:10 +0300 Message-ID: <6ad909cee24b19c9d2e834ddbe1de8f7d8b76979.1719853592.git.poptsov.artyom@gmail.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/engineering.scm (prusa-slicer): Update to 2.7.4. [source]: Remove "prusa-slicer-boost-fixes.patch" and "prusa-slicer-with-cereal-1.3.1.patch". Move some part of the snippet code to custom build phases. [arguments]: In configure flags add paths to external libraries. Add "fix-include-paths" phase. [native-inputs]: Add "catch2". [inputs]: Use "prusa-wxwidgets" instead of "wxwidgets" to fix segfaults. Ad "qhull", "nanosvg", "heatshrink" and "prusa-libbgcode". * gnu/packages/patches/prusa-slicer-boost-fixes.patch, gnu/packages/patches/prusa-slicer-with-cereal-1.3.1.patch: Remove unused patches. * gnu/local.mk (dist_patch_DATA): De-register "prusa-slicer-boost-fixes.patch" and "prusa-slicer-with-cereal-1.3.1.patch". Change-Id: I15e85d63c9ad6c731c8040ef2d8ec8b2f31f2ab7 --- gnu/local.mk | 2 - gnu/packages/engineering.scm | 53 ++++++---- .../patches/prusa-slicer-boost-fixes.patch | 97 ------------------- .../prusa-slicer-with-cereal-1.3.1.patch | 52 ---------- 4 files changed, 35 insertions(+), 169 deletions(-) delete mode 100644 gnu/packages/patches/prusa-slicer-boost-fixes.patch delete mode 100644 gnu/packages/patches/prusa-slicer-with-cereal-1.3.1.patch diff --git a/gnu/local.mk b/gnu/local.mk index 29107a618b..d9760557df 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1839,9 +1839,7 @@ 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/prusa-wxwidgets-makefile-fix.patch \ %D%/packages/patches/pthreadpool-system-libraries.patch \ %D%/packages/patches/python-3.12-fix-tests.patch \ diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index de4b4a5825..2a3671b01d 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -3802,7 +3802,7 @@ (define-public prusa-libbgcode (define-public prusa-slicer (package (name "prusa-slicer") - (version "2.5.2") + (version "2.7.4") (source (origin (method git-fetch) @@ -3811,13 +3811,11 @@ (define-public prusa-slicer (url "https://github.com/prusa3d/PrusaSlicer") (commit (string-append "version_" version)))) (file-name (git-file-name name version)) - (sha256 (base32 "02qcrw3fa0d8ldbp73hp14l1qxbp3f4608j4csc07ny00ra42151")) - (patches (search-patches "prusa-slicer-boost-fixes.patch" - "prusa-slicer-fix-tests.patch" - "prusa-slicer-with-cereal-1.3.1.patch")) + (sha256 (base32 "0s1cfvhfilyv0y98asr61c6rwlgyr1hf5v5hg8q9zwmzm2bkcql3")) + (patches (search-patches "prusa-slicer-fix-tests.patch")) (modules '((guix build utils))) (snippet - '(begin + `(begin ;; Prusa slicer bundles a lot of dependencies in src/ directory. ;; Most of them contain prusa-specific modifications (e.g. avrdude), ;; but others do not. Here we replace the latter with Guix packages. @@ -3825,10 +3823,12 @@ (define-public prusa-slicer (delete-file-recursively "src/hidapi") (delete-file-recursively "src/eigen") (delete-file-recursively "src/libigl/igl") + (substitute* "CMakeLists.txt" + (("add_library\\(libexpat INTERFACE\\)") + "")) + (substitute* "src/libigl/CMakeLists.txt" + (("target_link_libraries\\(libigl INTERFACE igl::core\\)") "")) (substitute* "src/CMakeLists.txt" - (("add_subdirectory\\(libigl\\)" all) - (string-append - all "\ninclude_directories(libigl INTERFACE libigl::core)")) (("add_subdirectory\\(hidapi\\)") "pkg_check_modules(HIDAPI REQUIRED hidapi-hidraw)") (("include_directories\\(hidapi/include\\)") @@ -3841,13 +3841,26 @@ (define-public prusa-slicer (("\\bhidapi\\b") "${HIDAPI_LIBRARIES}")))))) (build-system cmake-build-system) (arguments - `(#:configure-flags - '("-DSLIC3R_FHS=1" ;; Use The Filesystem Hierarchy Standard. - "-DSLIC3R_GTK=3" ;; Use GTK+ - ;; Use wxWidgets 3.0.x.x to prevent GUI crashes when adding support enforcers. - "-DSLIC3R_WX_STABLE=1"))) + (list #:configure-flags + #~(list "-DSLIC3R_FHS=1" ;; Use The Filesystem Hierarchy Standard. + "-DSLIC3R_GTK=3" ;; Use GTK+ + ;; Use wxWidgets 3.0.x.x to prevent GUI crashes when adding support enforcers. + "-DSLIC3R_WX_STABLE=1" + (format #f "-Dlibigl_DIR=~a" + (search-input-directory %build-inputs + "lib/cmake/igl/")) + (format #f "-DCatch2_DIR=~a" + (search-input-directory %build-inputs + "lib/cmake/Catch2/"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-include-paths + (lambda _ + (substitute* "tests/libslic3r/test_quadric_edge_collapse.cpp" + (("#include ") + "#include "))))))) (native-inputs - (list pkg-config)) + (list pkg-config catch2)) (inputs (list boost cereal @@ -3873,9 +3886,13 @@ (define-public prusa-slicer pango tbb eudev - ;; prusa-slicer 2.5 segfaults on startup with wxwidgets 3.2 - ;; See https://github.com/prusa3d/PrusaSlicer/issues/8299 - wxwidgets-3.0 + qhull + nanosvg + heatshrink + ;; XXX: Using Prusa wxWidgets fork as PrusaSlicer segfaults when compiled + ;; with regular wxwidgets. + prusa-wxwidgets + prusa-libbgcode zlib)) (home-page "https://www.prusa3d.com/prusaslicer/") (synopsis "G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)") diff --git a/gnu/packages/patches/prusa-slicer-boost-fixes.patch b/gnu/packages/patches/prusa-slicer-boost-fixes.patch deleted file mode 100644 index 5bca271625..0000000000 --- a/gnu/packages/patches/prusa-slicer-boost-fixes.patch +++ /dev/null @@ -1,97 +0,0 @@ -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 - #include - #include -+#include - #include - #include - #include -@@ -9,7 +10,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(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 - #include - #include -+#include - #include - #include - #include -@@ -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 - #include - #include - #include -@@ -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 - #include - #include -+#include - #include - #include - #include ---- a/src/slic3r/GUI/HintNotification.cpp -+++ b/src/slic3r/GUI/HintNotification.cpp -@@ -15,6 +15,7 @@ - #include "libslic3r/PrintConfig.hpp" - - #include -+#include - #include - #include - #include -@@ -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& 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& 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-with-cereal-1.3.1.patch b/gnu/packages/patches/prusa-slicer-with-cereal-1.3.1.patch deleted file mode 100644 index affa506b1c..0000000000 --- a/gnu/packages/patches/prusa-slicer-with-cereal-1.3.1.patch +++ /dev/null @@ -1,52 +0,0 @@ -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")