pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

prusaslicer: Update to release 2.7.4



Module Name:	pkgsrc-wip
Committed By:	Paul Ripke <stix%stix.id.au@localhost>
Pushed By:	stix
Date:		Sun May 19 15:32:08 2024 +1000
Changeset:	819ffc344e99c150e4dd05778c7801c757f727c4

Modified Files:
	prusaslicer/Makefile
	prusaslicer/distinfo
	prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_Preferences.cpp
	prusaslicer/patches/patch-tests_fff__print_test__perimeters.cpp
Added Files:
	prusaslicer/patches/patch-tests_fff__print_test__cancel__object.cpp
	prusaslicer/patches/patch-tests_libslic3r_test__layer__region.cpp

Log Message:
prusaslicer: Update to release 2.7.4

PrusaSlicer 2.7.4

Summary

This is stable release of PrusaSlicer 2.7.4. This release improves loading of
3MFs generated by BambuStudio and fixes a single bug found in 2.7.3.

Improvements with respect to 2.7.3

- Objects from 3MFs generated by BambuStudio now retain multimaterial painting
  when loaded. BambuStudio saves the data under a changed name, but because both
  the location and meaning are the same, PrusaSlicer now tries to load the data
  under the new name when it fails to find the attribute that PrusaSlicer has
  always used. #12502

Bugs fixed with respect to 2.7.3

- macOS and Linux specific: Downloading files from Printables did not work
  correctly (#12521).

PrusaSlicer 2.7.3

Summary

This is stable release of PrusaSlicer 2.7.3. This release is functionally
equivalent to 2.7.3-rc1. Please, read the change logs of 2.7.3-alpha1,
2.7.3-beta1 and 2.7.3-rc1 for the complete list of bugfixes and improvements
over 2.7.2.

If any of the PrusaSlicer 2.7.3 alphas or betas was used before on the same
machine, PrusaSlicer 2.7.3 will offer to import such alpha or beta
configuration when it is first executed.

PrusaSlicer 2.7.3-rc1

Summary

This is the first release candidate of PrusaSlicer 2.7.3, which fixes a single
bug found in the previous beta. Please, read the change logs of 2.7.3-alpha1
and 2.7.3-beta1 for the complete list of bugfixes and improvements over 2.7.2.

The release candidate saves its profiles into regular PrusaSlicer configuration
directory. When you first run it, it will search for all configurations
produced by alpha or beta versions and offer to create a copy of the latest one.

Bug fixes with respect to 2.7.3-beta1

- Removed negligible deretractions sometimes emitted into the G-code after the
  recently introduced spiral vase mode improvements. While they did not present
  actual issues with the print, they were confusingly shown in the G-code
  preview.

PrusaSlicer 2.7.3-beta1

Summary

This is the first beta release of PrusaSlicer 2.7.3, which fixes bugs found in
the previous alpha. Please, read the change log of 2.7.3-alpha1 for the
complete list of bugfixes and improvements over 2.7.2.

To let you enjoy the beta without worries, the beta builds save their profiles
into PrusaSlicer-beta directory, so you may use the beta side by side with the
current release without ruining your production configuration. The beta will
ask whether it should import a configuration from previously run PrusaSlicer
versions on the first start.

Bug fixes with respect to 2.7.3-alpha1

- The z offset configuration option was not correctly accounted for when doing
  the last filament unload above the wipe tower.
- Fixed crash when importing a specific config bundle while in SLA mode.
- Linux specific: When changing active profile using the dropdown in the right
  panel, the dropdown would stay open when Unsaved Changes dialog was shown.
- The improvemroduced in the previous alpha did not work correctly with
  absolute extruder addressing (#2841 (comment)). They are now only applied
  with relative extruder addressing, otherwise it falls back to the old
  behaviour.
- After performing a toolchange on the wipe tower, a G-code to set layer z is
  now always emitted. This is to make sure that the layer z is correct and that
  it was not changed in custom toolchange G-code. While the user is expected to
  pass such information in the custom G-code, the "z-ensuring" G-code was
  present in previous versions and removing it in 2.7.2 was therefore a
  needless breaking change (#12361).
- Fixed blobs on the first layer when using ramping travels with absolute
  extruder addressing enabled.
- Fixed issues with 'avoid crossing perimeters' function (#12432). This problem
  was actually fixed in 2.7.3-alpha1 already.

Infrastructure

- Linux specific: The desktop integration code inside PrusaSlicer can now be
  disabled at compile time. This is useful when deploying the application using
  Flakpak, because it can take care of the desktop integration itself. Thanks
  to @eliadevito for providing a PR (#12252) and maintaining the Flatpak build.

Translations

- Updated CS, DE, ES, FR, IT, PL, JA dictionaries.

PrusaSlicer 2.7.3-alpha1

Summary

This is the first public alpha release of PrusaSlicer 2.7.3. This release
introduces improvements of multi-material printing, improvements of spiral vase
mode and several important bugfixes.

To let you enjoy the alpha without worries, the alpha builds save their
profiles into PrusaSlicer-alpha directory, so you may use the alpha side by
side with the current release without ruining your production configuration.
The alpha will ask whether it should import a configuration from previously run
PrusaSlicer versions on the first start.

Improvements of multi-material printing

For a long time, a community-developed feature exists which claims to improve
filament tips during toolchange sequences, which would in turn increase
reliability of devices depending on reasonable tip shape (such as Prusa MMU1
and MMU2). This feature is referred to as "skinnydip", and the basic principle
is to push the filament back into the melt zone after it was unloaded to melt
off the thin string that the filament often has. We at Prusa Research have
tested the feature several times, but the results were not very convincing and
we never integrated the feature into PrusaSlicer. After doing more experiments
recently, we found out that the technique is more convincing when preceded by
very rapid ramming.

Based on that knowledge, we decided to implement very similar approach for
reshaping the filament tip. Because the goal is to reshape the filament tip
using the mostly empty nozzle, instead of melting off the thin filament tip, we
call our approach "stamping". There are two new parameters in Filament Settings
(filament_stamping_distance and filament_stamping_loading_speed) which control
how far and how fast should the filament be pushed after the initial unload.
The stamping moves are coupled with cooling - the stamping moves are performed
between the individual cooling moves.

We would like to highlight community projects that helped us develop our
Stamping step and saved our developers and testers a significant amount of time
- Skinny Dip post processing script by Erik Bjorgan and Dribbling by Antimix.
While we ended up with a different approach, we would like to thank both
authors for all the effort invested into the project and for making it
open-source! (Related to #2385, #2452, #2729, mentioning @domesticatedviking
and @antimix.)

Purging volumes

PrusaSlicer allows to set purging volumes for single-extruder multi-material
printers, so that each filament is purged exactly as it needs to. However,
these settings were only saved in the 3MF project, not in configuration. This
made setting them quite cumbersome and the user would always need to think
about adjusting the default values. On the other hand, setting the values only
in configuration without the option to override it in the project is also
inadequate, because one may care about purging more in one project and less in
another. In addition, the configuration option would make sense both in
Filament and Printer Settings. #1273, #1282, #2990, #3756

In this release, two additional configuration options were added. The volume to
purge is set using multimaterial_purging in Printer Settings->Single extruder
MM setup. This value can be further modified on filament level using
filament_purge_multiplier in Filament Settings->Advanced.

As for the project-specific override, the "Purging volumes" dialog now contains
a switch. You can either use the values from Filament and Printer profiles (as
described above) or define your own matrix of purging volumes (like in previous
PrusaSlicer versions). When you decide to do that, the values from the
configuration are not used.

Spiral vase mode improvements

When using spiral vase mode, the toolpaths are generated as usual and the
resulting extrusions are then extruded while gradually increasing z. This
approach led to seam-like artifacts on the print in places where the layer
transitions would normally be (#4116, #2841). In addition, the last layer would
end abruptly, creating a sharp "edge" where the extrusion ends.

Both these issues were addressed by @andrewboktor by interpolating between
adjacent layers and by gradually reducing extrusion flow at the very end of the
print. The improvement was recently merged into OrcaSlicer
(SoftFever/OrcaSlicer#3091), and we got a pull request with a port to
PrusaSlicer. After we evaluated the feature, we decided to merge it because it
is well written, well working and very useful.

Thanks to @andrewboktor for the time and effort invested into the issue, and to
both @vovodroid and @tg73 for providing a pull request with a port from
OrcaSlicer (#12079, #12142).

Other improvements with respect to 2.7.2

- PrusaSlicer is now able to open 3MF files generated by BambuStudio and load
  geometry from them. (#10718, PR #10808, thanks to @cmguo). Please note that
  BambuStudio allows to save a 3MF containing G-code only, which is not
  supported by PrusaSlicer and loading of such 3MFs will fail.
- Metadata of binary G-code have a new item named objects_info, which lists all
  the objects in the print and their boundary polygons. The same info was added
  into the comments at the end of ASCII G-codes.

Bugfixes with respect to 2.7.2

- Pressure equalizer limits were not respected when Dynamic speed on overhangs
  was used (#9485). This is now fixed. Pressure equalizer is also not applied
  after long travels. Many thanks to @MGunlogson for providing a fix in his
  pull request #9622.
- Fixed a bug resulting in inadequate anchoring of bridging extrusions. This
  bug was introduced in PrusaSlicer 2.6.0. #10231, #11500, #11633, #11173,
  #11117, #9999, #10313, #11150, #10493
- When using Cancel object feature, the marks denoting where one object ends
  and another starts were placed incorrectly. As a result, there was a missing
  deretraction after all travels to objects which would normally be printed
  following the cancelled object. The issue was even worse with sequential
  printing, where the uncompensated retractions on the cancelled object summed
  up and could result in filament being unloaded past the driving gears.
- When arcs (G2 and G3 G-codes) were enabled, PrusaSlicer generated toolpaths
  outside the print area in certain cases (#12381).

Translations

- Updated POT
- Added Slovenian translation (#12422, thanks to @jernejp21)

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=819ffc344e99c150e4dd05778c7801c757f727c4

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 prusaslicer/Makefile                               |  4 ++-
 prusaslicer/distinfo                               | 16 +++++-----
 .../patches/patch-src_slic3r_GUI_ConfigWizard.cpp  | 28 +++++++++---------
 .../patches/patch-src_slic3r_GUI_GUI__App.cpp      | 34 +++++++++++-----------
 .../patches/patch-src_slic3r_GUI_Preferences.cpp   | 18 ++++++------
 ...patch-tests_fff__print_test__cancel__object.cpp | 22 ++++++++++++++
 .../patch-tests_fff__print_test__perimeters.cpp    | 13 +++++++--
 .../patch-tests_libslic3r_test__layer__region.cpp  | 22 ++++++++++++++
 8 files changed, 107 insertions(+), 50 deletions(-)

diffs:
diff --git a/prusaslicer/Makefile b/prusaslicer/Makefile
index 80cdd4478e..7ed25fcc19 100644
--- a/prusaslicer/Makefile
+++ b/prusaslicer/Makefile
@@ -1,6 +1,6 @@
 # $NetBSD$
 
-PKGVERSION=	2.7.2
+PKGVERSION=	2.7.4
 PKGNAME=	prusaslicer-${PKGVERSION}
 DISTNAME=	PrusaSlicer-${PKGVERSION:C/(beta|rc)/-\1/}
 CATEGORIES=	cad
@@ -44,6 +44,7 @@ pre-configure:
 .include "../../devel/at-spi2-atk/buildlink3.mk"
 .include "../../devel/atk/buildlink3.mk"
 .include "../../devel/boost-headers/buildlink3.mk"
+.include "../../devel/boost-libs/buildlink3.mk"
 .include "../../devel/catch2/buildlink3.mk"
 .include "../../devel/glib2/buildlink3.mk"
 .include "../../devel/libepoll-shim/buildlink3.mk"
@@ -75,6 +76,7 @@ pre-configure:
 .include "../../wip/occt/buildlink3.mk"
 .include "../../wip/openvdb/buildlink3.mk"
 .include "../../www/curl/buildlink3.mk"
+BUILDLINK_API_DEPENDS.Xrandr+=  Xrandr>=1.0.2
 .include "../../x11/xcursor/buildlink3.mk"
 .include "../../x11/gtk3/buildlink3.mk"
 .include "../../x11/wxGTK32/buildlink3.mk"
diff --git a/prusaslicer/distinfo b/prusaslicer/distinfo
index 9b9a8f9b7a..0b165d684f 100644
--- a/prusaslicer/distinfo
+++ b/prusaslicer/distinfo
@@ -1,8 +1,8 @@
 $NetBSD$
 
-BLAKE2s (PrusaSlicer-2.7.2.tar.gz) = 7ebec943370ffe3d2ce6f33e29ccea1a964bab910c0050add95054e489436f3f
-SHA512 (PrusaSlicer-2.7.2.tar.gz) = 74467cc353fd611133b0b0bc7b8026dc67bce0c7f1d14a47368dd5bac6c33b6400f73e2ecc46b7b43e8c724f0ec6e5f509bafed04c2c7349e5ffb1022af2f4db
-Size (PrusaSlicer-2.7.2.tar.gz) = 64915607 bytes
+BLAKE2s (PrusaSlicer-2.7.4.tar.gz) = 531d44310ee34e8219847d966fc4439ccf1e0c0f727c1af313cae1d6d8c1fb67
+SHA512 (PrusaSlicer-2.7.4.tar.gz) = fa876160ec641ecaed20339d66c01971ca1ad73fdfba3b19bae4169e81020175aa5b99a8a7f4f01bf15d112b817cde8226c01bb4bdfb077f387a2d27f92e5d6b
+Size (PrusaSlicer-2.7.4.tar.gz) = 65396083 bytes
 SHA1 (patch-CMakeLists.txt) = 33eb39d85ba7b33226f2cc022250872c3ffa28d8
 SHA1 (patch-cmake_modules_FindOpenVDB.cmake) = 4f2afc423a70fe60617b33ff7f26859b39775faa
 SHA1 (patch-src_CMakeLists_txt) = 24e0b8e6512b2a3f84204b03d8161aca903748a1
@@ -19,7 +19,7 @@ SHA1 (patch-src_libslic3r_Thread.cpp) = 8aa488b933baa97132058f88a82eef8db73ab2f5
 SHA1 (patch-src_occt__wrapper_CMakeLists.txt) = 2e11271757bcc76f3832c8fd27943f3ef97136f1
 SHA1 (patch-src_slic3r_CMakeLists.txt) = 443efdac84f6b60f6016abaf034d40b80f5c1560
 SHA1 (patch-src_slic3r_GUI_BitmapCache.cpp) = 9a464bcb09589e12de70ce57cda17f526df33b9b
-SHA1 (patch-src_slic3r_GUI_ConfigWizard.cpp) = 33b8539987e93d2392daca51729dc6f56d43b82f
+SHA1 (patch-src_slic3r_GUI_ConfigWizard.cpp) = 12501ccf61c18520a543b6e8fc3d0a41a29122f1
 SHA1 (patch-src_slic3r_GUI_ConfigWizard.hpp) = 6eed54e08497ec1dc6fea33263ab65d2d7e0dc0d
 SHA1 (patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp) = 35ccd8882313eb3270e88c47d496d62db96f4d36
 SHA1 (patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp) = c8760f69fac22d1a4cf8c7843fb96b12fdb69def
@@ -29,7 +29,7 @@ SHA1 (patch-src_slic3r_GUI_Field.cpp) = a0901064c68aa5e6c2396ccec36018e45f92fbcb
 SHA1 (patch-src_slic3r_GUI_GLCanvas3D.cpp) = 11e42a87d7124ac92027af9e385533f0455d788b
 SHA1 (patch-src_slic3r_GUI_GUI.cpp) = ab8bb26e14f17eed20587693ac1ef568b8cd8cd5
 SHA1 (patch-src_slic3r_GUI_GUI.hpp) = 52442f3881564cfe7c31ff51d63c96129f162aed
-SHA1 (patch-src_slic3r_GUI_GUI__App.cpp) = bc9a4dc325caec2c3a7774b70e4074c73476b170
+SHA1 (patch-src_slic3r_GUI_GUI__App.cpp) = ce117af6ec747b768fd9b4e519a2636fa73e0139
 SHA1 (patch-src_slic3r_GUI_GUI__Factories.cpp) = a3db8dc6e41c4df3cba7282fdd0cdadd1bc7d956
 SHA1 (patch-src_slic3r_GUI_GUI__ObjectLayers.cpp) = da99be89d62efffceaccc81ade8e55e1fadb7919
 SHA1 (patch-src_slic3r_GUI_GUI__Preview.cpp) = 8555c73aa6aa3d65b4d34fc93ccb1fbb2957a76f
@@ -44,7 +44,7 @@ SHA1 (patch-src_slic3r_GUI_OpenGLManager.cpp) = 594d8a99824fead23010cdbf8f97d8ba
 SHA1 (patch-src_slic3r_GUI_OptionsGroup.cpp) = c413f24a9a50069b93bdd611b95fa85ccab45567
 SHA1 (patch-src_slic3r_GUI_PhysicalPrinterDialog.cpp) = 5dbe3c5c19ce5d03b5dd310af484b712b091efda
 SHA1 (patch-src_slic3r_GUI_Plater.cpp) = 840abde0ab6e033787c301f8157a291699f31158
-SHA1 (patch-src_slic3r_GUI_Preferences.cpp) = 3694f45161b03d7072249c815c462aa9e85f95cc
+SHA1 (patch-src_slic3r_GUI_Preferences.cpp) = 8db6adef007c656d7eadccda7fbddb53e4c91ed3
 SHA1 (patch-src_slic3r_GUI_PresetComboBoxes.cpp) = ae083491bb2b1228c0f666fdc36b1b3ca4008c3c
 SHA1 (patch-src_slic3r_GUI_PresetComboBoxes.hpp) = 0c84c1b706a1f4e00f60c1677c7edf53845d4467
 SHA1 (patch-src_slic3r_GUI_PrintHostDialogs.cpp) = fb83c21579d675c8459431e429e2e2d0c41fc623
@@ -65,6 +65,7 @@ SHA1 (patch-tests_arrange_test__arrange__integration.cpp) = 94f9a1e67647baf5563f
 SHA1 (patch-tests_catch__main.hpp) = cbcf811b2ac9d95c4a16e34068fa64a771f6527d
 SHA1 (patch-tests_fff__print_test__avoid__crossing__perimeters.cpp) = 7ecee4420340190017bea14e51f9f20e9a9d40ec
 SHA1 (patch-tests_fff__print_test__bridges.cpp) = 9ed9cfdb94800fdef8b70aeae90ed43f3378cd1a
+SHA1 (patch-tests_fff__print_test__cancel__object.cpp) = 257e072468b7f12806d669f41aa617605d202d5e
 SHA1 (patch-tests_fff__print_test__clipper.cpp) = 47456223cbc4a5a5794a5de398fb6605a7ee8015
 SHA1 (patch-tests_fff__print_test__cooling.cpp) = 4b899035319adcec50c2222fe7bd2c785c550d05
 SHA1 (patch-tests_fff__print_test__custom__gcode.cpp) = d6aaf70b53a1547faff1134d5e88c7b0318aea39
@@ -80,7 +81,7 @@ SHA1 (patch-tests_fff__print_test__gcodewriter.cpp) = 48d3caf9e158ff1c0499be1d0d
 SHA1 (patch-tests_fff__print_test__layers.cpp) = a110baa86741ac1d660760272be54eb61931453f
 SHA1 (patch-tests_fff__print_test__model.cpp) = 327cc6ebb5a91cea1f79d596740f8b59c79b7d89
 SHA1 (patch-tests_fff__print_test__multi.cpp) = da0c20fedbabca4b83733f5cf1696e726051ee45
-SHA1 (patch-tests_fff__print_test__perimeters.cpp) = aadde9bcddcd0e1989f05cb73b21633f5a573f21
+SHA1 (patch-tests_fff__print_test__perimeters.cpp) = e6b455cbffea28bbe93d1bd83b23a5214cf442d4
 SHA1 (patch-tests_fff__print_test__print.cpp) = 70d12a80f17506eb302ae690316fb4950e7b50cd
 SHA1 (patch-tests_fff__print_test__printgcode.cpp) = 26f51fc96dfa04ba9db7a7cf22a84b71e48e359f
 SHA1 (patch-tests_fff__print_test__printobject.cpp) = c66c3cf170de6a83c9c51d6648b662f3a256c694
@@ -110,6 +111,7 @@ SHA1 (patch-tests_libslic3r_test__hollowing.cpp) = 21b3f2decbdf170bfa841fa6698f8
 SHA1 (patch-tests_libslic3r_test__indexed__triangle__set.cpp) = 613a11b74b0f99e9191c76a9494ad783f994bce8
 SHA1 (patch-tests_libslic3r_test__jump__point__search.cpp) = 31d5c690e300c420ca75e52f6f65e25ccfd3b7e2
 SHA1 (patch-tests_libslic3r_test__kdtreeindirect.cpp) = 6163ec75ca824e44840c2e9f2a196dc9f869712b
+SHA1 (patch-tests_libslic3r_test__layer__region.cpp) = 23b035e18e8ecb46664986068d31b9ae113e76c3
 SHA1 (patch-tests_libslic3r_test__line.cpp) = d540e905a1cc42bd05ecdac0690e462740564786
 SHA1 (patch-tests_libslic3r_test__marchingsquares.cpp) = 701f11ff7e66e1f9d74e6424e33a01b75d923ee4
 SHA1 (patch-tests_libslic3r_test__meshboolean.cpp) = 31a6e9bf3a3fc3dc74e8587187af9c2b67eec550
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.cpp
index 2768b604fd..b7d6bb3840 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.cpp
@@ -2,7 +2,7 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/ConfigWizard.cpp.orig	2023-09-06 06:42:26.000000000 +0000
+--- src/slic3r/GUI/ConfigWizard.cpp.orig	2024-04-05 09:25:31.000000000 +0000
 +++ src/slic3r/GUI/ConfigWizard.cpp
 @@ -69,7 +69,7 @@
  #include "slic3r/GUI/I18N.hpp"
@@ -13,7 +13,7 @@ Treat NetBSD like Linux.
  #define wxLinux_gtk3 true
  #else
  #define wxLinux_gtk3 false
-@@ -592,7 +592,7 @@ void PageWelcome::set_run_reason(ConfigW
+@@ -596,7 +596,7 @@ void PageWelcome::set_run_reason(ConfigW
      const bool data_empty = run_reason == ConfigWizard::RR_DATA_EMPTY;
      welcome_text->Show(data_empty);
      cbox_reset->Show(!data_empty);
@@ -22,21 +22,21 @@ Treat NetBSD like Linux.
      if (!DesktopIntegrationDialog::is_integrated())
          cbox_integrate->Show(true);
      else
-@@ -1509,7 +1509,7 @@ PageDownloader::PageDownloader(ConfigWiz
+@@ -1518,7 +1518,7 @@ PageDownloader::PageDownloader(ConfigWiz
          ));
      }
  
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
+-#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) 
++#if (defined(__linux__) || defined(__NetBSD__)) && 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."
      )));
-@@ -3141,7 +3141,7 @@ bool ConfigWizard::priv::apply_config(Ap
-         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(__NetBSD__)
-     // 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())
+@@ -1582,7 +1582,7 @@ bool DownloaderUtils::Worker::perform_re
+ #elif __APPLE__
+     // 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)
+-#elif defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) 
++#elif (defined(__linux__) || defined(__NetBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION) 
+     // the performation should be called later during desktop integration
+     perform_registration_linux = true;
+ #endif
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp
index e5bf10fd61..658e26ec01 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp
@@ -4,9 +4,9 @@ Treat NetBSD like Linux.
 
 Silence wxSizer warnings introduced with 2.6.0rc1.
 
---- src/slic3r/GUI/GUI_App.cpp.orig	2023-06-09 11:34:33.000000000 +0000
+--- src/slic3r/GUI/GUI_App.cpp.orig	2024-04-05 09:25:31.000000000 +0000
 +++ src/slic3r/GUI/GUI_App.cpp
-@@ -395,7 +395,7 @@ private:
+@@ -403,7 +403,7 @@ private:
  };
  
  
@@ -15,7 +15,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
  bool static check_old_linux_datadir(const wxString& app_name) {
      // If we are on Linux and the datadir does not exist yet, look into the old
      // location where the datadir was before version 2.3. If we find it there,
-@@ -972,7 +972,7 @@ void GUI_App::init_app_config()
+@@ -937,7 +937,7 @@ void GUI_App::init_app_config()
  	// Mac : "~/Library/Application Support/Slic3r"
  
      if (data_dir().empty()) {
@@ -24,7 +24,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
              set_data_dir(wxStandardPaths::Get().GetUserDataDir().ToUTF8().data());
          #else
              // Since version 2.3, config dir on Linux is in ${XDG_CONFIG_HOME}.
-@@ -1130,6 +1130,9 @@ bool GUI_App::on_init_inner()
+@@ -1108,6 +1108,9 @@ bool GUI_App::on_init_inner()
      // Set initialization of image handlers before any UI actions - See GH issue #7469
      wxInitAllImageHandlers();
  
@@ -34,7 +34,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
  #if defined(_WIN32) && ! defined(_WIN64)
      // Win32 32bit build.
      if (wxPlatformInfo::Get().GetArchName().substr(0, 2) == "64") {
-@@ -1157,7 +1160,7 @@ bool GUI_App::on_init_inner()
+@@ -1135,7 +1138,7 @@ bool GUI_App::on_init_inner()
      wxCHECK_MSG(wxDirExists(resources_dir), false,
          wxString::Format("Resources path does not exist or is not a directory: %s", resources_dir));
  
@@ -43,7 +43,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
      if (! check_old_linux_datadir(GetAppName())) {
          std::cerr << "Quitting, user chose to move their data to new location." << std::endl;
          return false;
-@@ -1262,7 +1265,7 @@ bool GUI_App::on_init_inner()
+@@ -1240,7 +1243,7 @@ bool GUI_App::on_init_inner()
          if (!default_splashscreen_pos)
              // revert "restore_win_position" value if application wasn't crashed
              get_app_config()->set("restore_win_position", "1");
@@ -52,7 +52,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
          wxYield();
  #endif
          scrn->SetText(_L("Loading configuration")+ dots);
-@@ -1410,7 +1413,7 @@ bool GUI_App::on_init_inner()
+@@ -1393,7 +1396,7 @@ bool GUI_App::on_init_inner()
          // and wxEVT_SET_FOCUS before GUI_App::post_init is called) wasn't called before GUI_App::post_init and OpenGL wasn't initialized.
          // Since issue #9774 Where same problem occured on MacOS Ventura, we decided to have this check on MacOS as well.
  
@@ -61,7 +61,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
          if (!m_post_initialized && m_opengl_initialized) {
  #else
          if (!m_post_initialized) {
-@@ -2053,7 +2056,7 @@ bool GUI_App::switch_language()
+@@ -2096,7 +2099,7 @@ bool GUI_App::switch_language()
      }
  }
  
@@ -70,7 +70,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
  static const wxLanguageInfo* linux_get_existing_locale_language(const wxLanguageInfo* language,
                                                                  const wxLanguageInfo* system_language)
  {
-@@ -2252,7 +2255,7 @@ bool GUI_App::load_language(wxString lan
+@@ -2298,7 +2301,7 @@ bool GUI_App::load_language(wxString lan
  				m_language_info_best = wxLocale::FindLanguageInfo(best_language);
  	        	BOOST_LOG_TRIVIAL(trace) << boost::format("Best translation language detected (may be different from user locales): %1%") % m_language_info_best->CanonicalName.ToUTF8().data();
  			}
@@ -79,7 +79,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
              wxString lc_all;
              if (wxGetEnv("LC_ALL", &lc_all) && ! lc_all.IsEmpty()) {
                  // Best language returned by wxWidgets on Linux apparently does not respect LC_ALL.
-@@ -2305,7 +2308,7 @@ bool GUI_App::load_language(wxString lan
+@@ -2351,7 +2354,7 @@ bool GUI_App::load_language(wxString lan
      } else if (m_language_info_system != nullptr && language_info->CanonicalName.BeforeFirst('_') == m_language_info_system->CanonicalName.BeforeFirst('_'))
          language_info = m_language_info_system;
  
@@ -88,7 +88,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
      // If we can't find this locale , try to use different one for the language
      // instead of just reporting that it is impossible to switch.
      if (! wxLocale::IsAvailable(language_info->Language)) {
-@@ -2425,7 +2428,7 @@ void GUI_App::add_config_menu(wxMenuBar 
+@@ -2471,7 +2474,7 @@ void GUI_App::add_config_menu(wxMenuBar 
          local_menu->Append(config_id_base + ConfigMenuTakeSnapshot, _L("Take Configuration &Snapshot"), _L("Capture a configuration snapshot"));
          local_menu->Append(config_id_base + ConfigMenuUpdateConf, _L("Check for Configuration Updates"), _L("Check for configuration updates"));
          local_menu->Append(config_id_base + ConfigMenuUpdateApp, _L("Check for Application Updates"), _L("Check for new version of application"));
@@ -97,7 +97,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
          //if (DesktopIntegrationDialog::integration_possible())
          local_menu->Append(config_id_base + ConfigMenuDesktopIntegration, _L("Desktop Integration"), _L("Desktop Integration"));    
  #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)        
-@@ -2472,7 +2475,7 @@ void GUI_App::add_config_menu(wxMenuBar 
+@@ -2519,7 +2522,7 @@ void GUI_App::add_config_menu(wxMenuBar 
          case ConfigMenuUpdateApp:
              app_version_check(true);
              break;
@@ -106,7 +106,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
          case ConfigMenuDesktopIntegration:
              show_desktop_integration_dialog();
              break;
-@@ -3089,7 +3092,7 @@ bool GUI_App::run_wizard(ConfigWizard::R
+@@ -3149,7 +3152,7 @@ bool GUI_App::run_wizard(ConfigWizard::R
  
  void GUI_App::show_desktop_integration_dialog()
  {
@@ -115,12 +115,12 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
      //wxCHECK_MSG(mainframe != nullptr, false, "Internal error: Main frame not created / null");
      DesktopIntegrationDialog dialog(mainframe);
      dialog.ShowModal();
-@@ -3109,7 +3112,7 @@ void GUI_App::show_downloader_registrati
+@@ -3169,7 +3172,7 @@ void GUI_App::show_downloader_registrati
      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(__NetBSD__)
+-#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) 
++#if (defined(__linux__) || defined(__NetBSD__)) && 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/prusaslicer/patches/patch-src_slic3r_GUI_Preferences.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_Preferences.cpp
index 693cfcffcf..802c988a3e 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_Preferences.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_Preferences.cpp
@@ -2,16 +2,16 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/Preferences.cpp.orig	2023-11-23 14:51:47.000000000 +0000
+--- src/slic3r/GUI/Preferences.cpp.orig	2024-04-05 09:25:31.000000000 +0000
 +++ src/slic3r/GUI/Preferences.cpp
 @@ -28,7 +28,7 @@
  #ifdef WIN32
  #include <wx/msw/registry.h>
  #endif // WIN32
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
+-#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
++#if (defined(__linux__) || defined(__NetBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION)
  #include "DesktopIntegrationDialog.hpp"
- #endif //__linux__
+ #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
  
 @@ -262,7 +262,7 @@ void PreferencesDialog::build()
  	tabs = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNB_TOP | wxTAB_TRAVERSAL | wxNB_NOPAGETHEME | wxNB_DEFAULT);
@@ -22,16 +22,16 @@ Treat NetBSD like Linux.
  	tabs->Bind(wxEVT_NOTEBOOK_PAGE_CHANGED, [this](wxBookCtrlEvent& e) {
  		e.Skip();
  		CallAfter([this]() { tabs->GetCurrentPage()->Layout(); });
-@@ -753,7 +753,7 @@ void PreferencesDialog::accept(wxEvent&)
+@@ -758,7 +758,7 @@ void PreferencesDialog::accept(wxEvent&)
  			downloader->allow(it->second == "1");
  		if (!downloader->on_finish())
  			return;
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
+-#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) 
++#if (defined(__linux__) || defined(__NetBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION) 
  		if( downloader->get_perform_registration_linux()) 
  			DesktopIntegrationDialog::perform_downloader_desktop_integration();
- #endif // __linux__
-@@ -1136,7 +1136,7 @@ void PreferencesDialog::create_settings_
+ #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
+@@ -1141,7 +1141,7 @@ void PreferencesDialog::create_settings_
  		font_example->SetFont(font);
  		m_values[opt_key] = format("%1%", val);
  		stb_sizer->Layout();
diff --git a/prusaslicer/patches/patch-tests_fff__print_test__cancel__object.cpp b/prusaslicer/patches/patch-tests_fff__print_test__cancel__object.cpp
new file mode 100644
index 0000000000..6667ffa2d6
--- /dev/null
+++ b/prusaslicer/patches/patch-tests_fff__print_test__cancel__object.cpp
@@ -0,0 +1,22 @@
+$NetBSD$
+
+Support Catch2 v3.
+Based on https://github.com/prusa3d/PrusaSlicer/issues/11567
+
+--- tests/fff_print/test_cancel_object.cpp.orig	2024-05-19 01:35:07.417821468 +0000
++++ tests/fff_print/test_cancel_object.cpp
+@@ -1,4 +1,5 @@
+-#include <catch2/catch.hpp>
++#include <catch2/catch_approx.hpp>
++#include <catch2/catch_test_macros.hpp>
+ #include <sstream>
+ #include <fstream>
+ 
+@@ -7,6 +8,7 @@
+ 
+ using namespace Slic3r;
+ using namespace Test;
++using Catch::Approx;
+ 
+ constexpr bool debug_files{false};
+ 
diff --git a/prusaslicer/patches/patch-tests_fff__print_test__perimeters.cpp b/prusaslicer/patches/patch-tests_fff__print_test__perimeters.cpp
index 66a398b169..3ec4dd4abb 100644
--- a/prusaslicer/patches/patch-tests_fff__print_test__perimeters.cpp
+++ b/prusaslicer/patches/patch-tests_fff__print_test__perimeters.cpp
@@ -3,11 +3,20 @@ $NetBSD$
 Support Catch2 v3.
 Based on https://github.com/prusa3d/PrusaSlicer/issues/11567
 
---- tests/fff_print/test_perimeters.cpp.orig	2024-02-29 13:03:32.000000000 +0000
+--- tests/fff_print/test_perimeters.cpp.orig	2024-04-05 09:25:31.000000000 +0000
 +++ tests/fff_print/test_perimeters.cpp
-@@ -1,4 +1,4 @@
+@@ -1,4 +1,5 @@
 -#include <catch2/catch.hpp>
++#include <catch2/catch_approx.hpp>
 +#include <catch2/catch_test_macros.hpp>
  
  #include <numeric>
  #include <sstream>
+@@ -15,6 +16,7 @@
+ #include "test_data.hpp"
+ 
+ using namespace Slic3r;
++using Catch::Approx;
+ 
+ SCENARIO("Perimeter nesting", "[Perimeters]")
+ {
diff --git a/prusaslicer/patches/patch-tests_libslic3r_test__layer__region.cpp b/prusaslicer/patches/patch-tests_libslic3r_test__layer__region.cpp
new file mode 100644
index 0000000000..896e5c7b59
--- /dev/null
+++ b/prusaslicer/patches/patch-tests_libslic3r_test__layer__region.cpp
@@ -0,0 +1,22 @@
+$NetBSD$
+
+Support Catch2 v3.
+Based on https://github.com/prusa3d/PrusaSlicer/issues/11567
+
+--- tests/libslic3r/test_layer_region.cpp.orig	2024-05-18 04:10:14.661979829 +0000
++++ tests/libslic3r/test_layer_region.cpp
+@@ -2,11 +2,13 @@
+ #include "libslic3r/Geometry.hpp"
+ #include "libslic3r/Point.hpp"
+ #include "libslic3r/SVG.hpp"
+-#include <catch2/catch.hpp>
++#include <catch2/catch_approx.hpp>
++#include <catch2/catch_test_macros.hpp>
+ #include <libslic3r/LayerRegion.hpp>
+ 
+ using namespace Slic3r;
+ using namespace Slic3r::Algorithm;
++using Catch::Approx;
+ 
+ constexpr bool export_svgs = false;
+ 


Home | Main Index | Thread Index | Old Index