git: a79650abf58e - main - cad/PrusaSlicer: update to 2.7.4

From: Michael Zhilin <mizhka_at_FreeBSD.org>
Date: Mon, 08 Apr 2024 05:56:40 UTC
The branch main has been updated by mizhka:

URL: https://cgit.FreeBSD.org/ports/commit/?id=a79650abf58e4e980e0db5d4850dc70f3849f922

commit a79650abf58e4e980e0db5d4850dc70f3849f922
Author:     Michael Zhilin <mizhka@FreeBSD.org>
AuthorDate: 2024-04-07 10:14:31 +0000
Commit:     Michael Zhilin <mizhka@FreeBSD.org>
CommitDate: 2024-04-08 05:56:00 +0000

    cad/PrusaSlicer: update to 2.7.4
    
    This update contains version 2.7.4 and fix on library path
    
    PR: 278011
    Reported by: teodor.sigaev@gmail.com (maintainer)
    Approved by: lwhsu (mentor)
    Sponsored by: Postgres Professional
    Differential Revision: https://reviews.freebsd.org/D44668
---
 cad/PrusaSlicer/Makefile                              |  3 +--
 cad/PrusaSlicer/distinfo                              |  6 +++---
 .../files/patch-src_libslic3r_CMakeLists.txt          |  4 ++--
 .../files/patch-src_libslic3r_Format_STEP.cpp         | 19 +++++++++++++++++++
 .../files/patch-src_slic3r_GUI_ConfigWizard.cpp       | 14 +++++++-------
 .../files/patch-src_slic3r_GUI_GUI__App.cpp           | 12 ++++++------
 cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp | 10 +++++-----
 .../files/patch-src_slic3r_GUI_Preferences.cpp        | 14 +++++++-------
 cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp    |  8 ++++----
 9 files changed, 54 insertions(+), 36 deletions(-)

diff --git a/cad/PrusaSlicer/Makefile b/cad/PrusaSlicer/Makefile
index f0248716a9e2..a82e609995c8 100644
--- a/cad/PrusaSlicer/Makefile
+++ b/cad/PrusaSlicer/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	PrusaSlicer
 DISTVERSIONPREFIX=version_
-DISTVERSION=	2.7.2
-PORTREVISION=	1
+DISTVERSION=	2.7.4
 CATEGORIES=	cad
 DIST_SUBDIR=	PrusaSlicer
 
diff --git a/cad/PrusaSlicer/distinfo b/cad/PrusaSlicer/distinfo
index ea27189ec62c..1b16531420b3 100644
--- a/cad/PrusaSlicer/distinfo
+++ b/cad/PrusaSlicer/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1709292528
-SHA256 (PrusaSlicer/prusa3d-PrusaSlicer-version_2.7.2_GH0.tar.gz) = 0af8ab83ad33cdebc1d13d37d8ed3b2125d84532eb4bca7618c422bf7648ebee
-SIZE (PrusaSlicer/prusa3d-PrusaSlicer-version_2.7.2_GH0.tar.gz) = 64915607
+TIMESTAMP = 1712342295
+SHA256 (PrusaSlicer/prusa3d-PrusaSlicer-version_2.7.4_GH0.tar.gz) = 6370a9593aeac5c56543e66d167ab5fd053df55b9376392c2d6184eb0bf65fc8
+SIZE (PrusaSlicer/prusa3d-PrusaSlicer-version_2.7.4_GH0.tar.gz) = 65396083
diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt b/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt
index 6c3d971a3d87..a9e06edfca78 100644
--- a/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt
+++ b/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt
@@ -1,6 +1,6 @@
---- src/libslic3r/CMakeLists.txt.orig	2024-02-29 13:03:32 UTC
+--- src/libslic3r/CMakeLists.txt.orig	2024-04-05 09:25:31 UTC
 +++ src/libslic3r/CMakeLists.txt
-@@ -575,7 +575,6 @@ target_link_libraries(libslic3r
+@@ -576,7 +576,6 @@ target_link_libraries(libslic3r
  target_link_libraries(libslic3r
      libnest2d
      admesh
diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_Format_STEP.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_Format_STEP.cpp
new file mode 100644
index 000000000000..062214443e84
--- /dev/null
+++ b/cad/PrusaSlicer/files/patch-src_libslic3r_Format_STEP.cpp
@@ -0,0 +1,19 @@
+--- src/libslic3r/Format/STEP.cpp.orig	2024-04-05 18:42:53 UTC
++++ src/libslic3r/Format/STEP.cpp
+@@ -39,7 +39,7 @@ LoadStepFn get_load_step_fn()
+ #endif
+ 
+     if (!load_step_fn) {
+-        auto libpath = boost::dll::program_location().parent_path();
++        auto libpath = boost::dll::program_location().parent_path().parent_path();
+ #ifdef _WIN32
+         libpath /= "OCCTWrapper.dll";
+         HMODULE module = LoadLibraryW(libpath.wstring().c_str());
+@@ -61,6 +61,7 @@ LoadStepFn get_load_step_fn()
+ #elif __APPLE__
+         load_step_fn = &load_step_internal;
+ #else
++        libpath /= "lib";
+         libpath /= "OCCTWrapper.so";
+         void *plugin_ptr = dlopen(libpath.c_str(), RTLD_NOW | RTLD_GLOBAL);
+ 
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp
index ecba71fe5cf1..17e0bdf7b75c 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp
@@ -1,4 +1,4 @@
---- src/slic3r/GUI/ConfigWizard.cpp.orig	2024-02-29 13:03:32 UTC
+--- src/slic3r/GUI/ConfigWizard.cpp.orig	2024-04-05 09:25:31 UTC
 +++ src/slic3r/GUI/ConfigWizard.cpp
 @@ -69,7 +69,7 @@
  #include "slic3r/GUI/I18N.hpp"
@@ -22,8 +22,8 @@
          ));
      }
  
--#ifdef __linux__
-+#if defined(__linux__) || defined(__FreeBSD__)
+-#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) 
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION) 
      append_text(wxString::Format(_L(
          "On Linux systems the process of registration also creates desktop integration files for this version of application."
      )));
@@ -35,7 +35,7 @@
 +#elif defined(__APPLE__) || defined(__FreeBSD__)
      // Apple registers for custom url in info.plist thus it has to be already registered since build.
      // The url will always trigger opening of prusaslicer and we have to check that user has allowed it. (GUI_App::MacOpenURL is the triggered method)
- #else 
+ #elif defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) 
 @@ -1598,7 +1598,7 @@ void DownloaderUtils::Worker::deregister()
          return;
      }
@@ -43,14 +43,14 @@
 -#elif __APPLE__
 +#elif defined(__APPLE__) || defined(__FreeBSD__)
      // TODO
- #else 
+ #elif defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) 
      BOOST_LOG_TRIVIAL(debug) << "DesktopIntegrationDialog::undo_downloader_registration";
 @@ -3063,7 +3063,7 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_c
          if ((check_unsaved_preset_changes = install_bundles.size() > 0))
              header = _L_PLURAL("A new vendor was installed and one of its printers will be activated", "New vendors were installed and one of theirs printers will be activated", install_bundles.size());
  
--#ifdef __linux__
-+#if defined(__linux__) || defined(__FreeBSD__)
+-#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION)
      // Desktop integration on Linux
      BOOST_LOG_TRIVIAL(debug) << "ConfigWizard::priv::apply_config integrate_desktop" << page_welcome->integrate_desktop()  << " perform_registration_linux " << page_downloader->m_downloader->get_perform_registration_linux();
      if (page_welcome->integrate_desktop())
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp
index 90a6a54b262b..3066068410c9 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp
@@ -1,4 +1,4 @@
---- src/slic3r/GUI/GUI_App.cpp.orig	2024-02-29 13:03:32 UTC
+--- src/slic3r/GUI/GUI_App.cpp.orig	2024-04-05 09:25:31 UTC
 +++ src/slic3r/GUI/GUI_App.cpp
 @@ -403,7 +403,7 @@ class SplashScreen : public wxSplashScreen (private)
  };
@@ -108,7 +108,7 @@
          case ConfigMenuDesktopIntegration:
              show_desktop_integration_dialog();
              break;
-@@ -3155,7 +3157,7 @@ void GUI_App::show_desktop_integration_dialog()
+@@ -3149,7 +3151,7 @@ void GUI_App::show_desktop_integration_dialog()
  
  void GUI_App::show_desktop_integration_dialog()
  {
@@ -117,12 +117,12 @@
      //wxCHECK_MSG(mainframe != nullptr, false, "Internal error: Main frame not created / null");
      DesktopIntegrationDialog dialog(mainframe);
      dialog.ShowModal();
-@@ -3175,7 +3177,7 @@ void GUI_App::show_downloader_registration_dialog()
+@@ -3169,7 +3171,7 @@ void GUI_App::show_downloader_registration_dialog()
      if (msg.ShowModal() == wxID_YES) {
          auto downloader_worker = new DownloaderUtils::Worker(nullptr);
          downloader_worker->perform_register(app_config->get("url_downloader_dest"));
--#ifdef __linux__
-+#if defined(__linux__) || defined(__FreeBSD__)
+-#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) 
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION) 
          if (downloader_worker->get_perform_registration_linux())
              DesktopIntegrationDialog::perform_downloader_desktop_integration();
- #endif // __linux__
+ #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp
index 96030dedf76a..ca035e9a15a2 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp
@@ -1,6 +1,6 @@
---- src/slic3r/GUI/Plater.cpp.orig	2024-02-29 13:03:32 UTC
+--- src/slic3r/GUI/Plater.cpp.orig	2024-04-05 09:25:31 UTC
 +++ src/slic3r/GUI/Plater.cpp
-@@ -2555,7 +2555,7 @@ std::vector<size_t> Plater::priv::load_files(const std
+@@ -2558,7 +2558,7 @@ std::vector<size_t> Plater::priv::load_files(const std
      // when loading a project file. However, creating the dialog on heap causes issues on macOS, where it does not
      // appear at all. Therefore, we create the dialog on stack on Win and macOS, and on heap on Linux, which
      // is the only system that needed the workarounds in the first place.
@@ -9,7 +9,7 @@
      auto progress_dlg = new wxProgressDialog(loading, "", 100, find_toplevel_parent(q), wxPD_APP_MODAL | wxPD_AUTO_HIDE);
      Slic3r::ScopeGuard([&progress_dlg](){ if (progress_dlg) progress_dlg->Destroy(); progress_dlg = nullptr; });
  #else
-@@ -2602,7 +2602,7 @@ std::vector<size_t> Plater::priv::load_files(const std
+@@ -2605,7 +2605,7 @@ std::vector<size_t> Plater::priv::load_files(const std
          bool is_project_file = type_prusa;
          try {
              if (type_3mf || type_zip_amf) {
@@ -18,7 +18,7 @@
                  // On Linux Constructor of the ProgressDialog calls DisableOtherWindows() function which causes a disabling of all children of the find_toplevel_parent(q)
                  // And a destructor of the ProgressDialog calls ReenableOtherWindows() function which revert previously disabled children.
                  // But if printer technology will be changes during project loading, 
-@@ -4572,7 +4572,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt)
+@@ -4575,7 +4575,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt)
          Vec2d mouse_position = evt.data.first;
          wxPoint position(static_cast<int>(mouse_position.x()),
                           static_cast<int>(mouse_position.y()));
@@ -27,7 +27,7 @@
          // For some reason on Linux the menu isn't displayed if position is
          // specified (even though the position is sane).
          position = wxDefaultPosition;
-@@ -5425,7 +5425,7 @@ void Plater::load_project(const wxString& filename)
+@@ -5428,7 +5428,7 @@ void Plater::load_project(const wxString& filename)
  
      p->reset();
  
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp
index f5cd8fed5ba3..07094d21f323 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Preferences.cpp
@@ -1,20 +1,20 @@
---- src/slic3r/GUI/Preferences.cpp.orig	2023-12-12 14:21:21 UTC
+--- src/slic3r/GUI/Preferences.cpp.orig	2024-04-05 09:25:31 UTC
 +++ src/slic3r/GUI/Preferences.cpp
 @@ -28,7 +28,7 @@
  #ifdef WIN32
  #include <wx/msw/registry.h>
  #endif // WIN32
--#ifdef __linux__
-+#if defined(__linux__) || defined(__FreeBSD__)
+-#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION)
  #include "DesktopIntegrationDialog.hpp"
- #endif //__linux__
+ #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
  
 @@ -758,7 +758,7 @@ void PreferencesDialog::accept(wxEvent&)
  			downloader->allow(it->second == "1");
  		if (!downloader->on_finish())
  			return;
--#ifdef __linux__
-+#if defined(__linux__) || defined(__FreeBSD__)
+-#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) 
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION) 
  		if( downloader->get_perform_registration_linux()) 
  			DesktopIntegrationDialog::perform_downloader_desktop_integration();
- #endif // __linux__
+ #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp
index 0335a1119208..48846a70ff5a 100644
--- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp
+++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp
@@ -1,4 +1,4 @@
---- src/slic3r/GUI/Tab.cpp.orig	2024-02-29 13:03:32 UTC
+--- src/slic3r/GUI/Tab.cpp.orig	2024-04-05 09:25:31 UTC
 +++ src/slic3r/GUI/Tab.cpp
 @@ -279,7 +279,7 @@ void Tab::create_preset_tab()
          // Don't set the 2nd parameter to 1, making the sizer rubbery scalable in Y axis may lead 
@@ -27,7 +27,7 @@
          // Events queue is opposite On Linux. wxEVT_SET_FOCUS invokes after wxEVT_TREE_SEL_CHANGED,
          // and a result wxEVT_KILL_FOCUS doesn't invoke for the TextCtrls.
          // see https://github.com/prusa3d/PrusaSlicer/issues/5720
-@@ -3694,7 +3694,7 @@ void Tab::load_current_preset()
+@@ -3700,7 +3700,7 @@ void Tab::load_current_preset()
                          else
  #endif
                              wxGetApp().tab_panel()->InsertPage(wxGetApp().tab_panel()->FindPage(this), tab, tab->title());
@@ -36,7 +36,7 @@
                              int page_id = wxGetApp().tab_panel()->FindPage(tab);
                              wxGetApp().tab_panel()->GetPage(page_id)->Show(true);
                          #endif // __linux__
-@@ -4115,7 +4115,7 @@ bool Tab::tree_sel_change_delayed()
+@@ -4121,7 +4121,7 @@ bool Tab::tree_sel_change_delayed()
      // There is a bug related to Ubuntu overlay scrollbars, see https://github.com/prusa3d/PrusaSlicer/issues/898 and https://github.com/prusa3d/PrusaSlicer/issues/952.
      // The issue apparently manifests when Show()ing a window with overlay scrollbars while the UI is frozen. For this reason,
      // we will Thaw the UI prematurely on Linux. This means destroing the no_updates object prematurely.
@@ -45,7 +45,7 @@
      std::unique_ptr<wxWindowUpdateLocker> no_updates(new wxWindowUpdateLocker(this));
  #else
      /* On Windows we use DoubleBuffering during rendering,
-@@ -4161,7 +4161,7 @@ bool Tab::tree_sel_change_delayed()
+@@ -4167,7 +4167,7 @@ bool Tab::tree_sel_change_delayed()
          if (wxGetApp().mainframe!=nullptr && wxGetApp().mainframe->is_active_and_shown_tab(this))
              activate_selected_page(throw_if_canceled);