pkgsrc-WIP-changes archive

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

prusaslicer: Update to version 2.8.1



Module Name:	pkgsrc-wip
Committed By:	Paul Ripke <stix%stix.id.au@localhost>
Pushed By:	stix
Date:		Sat Sep 21 15:41:15 2024 +1000
Changeset:	856d9c7f49e0ab0b4ac450d7d6320efea103a461

Modified Files:
	prusaslicer/Makefile
	prusaslicer/PLIST
	prusaslicer/distinfo
	prusaslicer/patches/patch-CMakeLists.txt
	prusaslicer/patches/patch-src_occt__wrapper_CMakeLists.txt
	prusaslicer/patches/patch-src_slic3r_CMakeLists.txt
	prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_TopBar.cpp
	prusaslicer/patches/patch-src_slic3r_Utils_FontConfigHelp.hpp
	prusaslicer/patches/patch-src_slic3r_Utils_WxFontUtils.cpp
	prusaslicer/patches/patch-tests_libslic3r_test__quadric__edge__collapse.cpp
Added Files:
	prusaslicer/patches/patch-bundled__deps_CMakeLists.txt
	prusaslicer/patches/patch-bundled__deps_avrdude_avrdude_arduino.c
	prusaslicer/patches/patch-bundled__deps_avrdude_avrdude_libavrdude.h
	prusaslicer/patches/patch-bundled__deps_localesutils_LocalesUtils.cpp
	prusaslicer/patches/patch-bundled__deps_localesutils_LocalesUtils.hpp
	prusaslicer/patches/patch-src_libslic3r_CMakeLists.txt
Removed Files:
	prusaslicer/patches/patch-src_CMakeLists_txt
	prusaslicer/patches/patch-src_avrdude_arduino.c
	prusaslicer/patches/patch-src_avrdude_libavrdude.h
	prusaslicer/patches/patch-src_imgui_imgui__demo.cpp
	prusaslicer/patches/patch-src_libslic3r_LocalesUtils.cpp
	prusaslicer/patches/patch-src_libslic3r_LocalesUtils.hpp
	prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.hpp

Log Message:
prusaslicer: Update to version 2.8.1

This is final release of PrusaSlicer 2.8.1, fixing one bug found in 2.8.1-rc1.
Read the change log of 2.8.1-rc1 for complete list of improvements and bugfixes
with respect to 2.8.0

Bugs fixed with respect to 2.8.1-rc1

- When using the wipe tower with "No sparse layers" option enabled, there would
  still be travels to the wipe tower location even for the skipped layers. This
  is a regression introduced in 2.8.1-rc1 (#13384).
- A warning about inconsistent color profiles in PNGs used as Prusa Account
  avatar is now silently ignored (#12920).

IMPORTANT note for Linux users

PrusaSlicer now depends on WebKit library, which greatly complicates its
distribution. Latest Linux distributions (such as Ubuntu 24.04, Fedora 40) ship
with newer version of WebKit than older (but still supported) distros. Bundling
WebKit into the AppImage is difficult and may not be possible.

Therefore, we now provide two separate AppImages, both depending on webkit
library. You may need to install the respective package before you are able to
run PrusaSlicer.

The AppImages can extract themselves when run with --appimage-extract command
line parameter.

It is quite likely that PrusaSlicer will switch only to Flatpak deployment from
the next version on. The AppImage made sense when it could be used in the
"bundle what you need, distribute a single file" way, but having to distribute
several different AppImages and maintaining the required build infrastructure
(and still worrying about what needs to be updated when some Linux distribution
update is released) means burning time that we would much rather invest into
actual work on PrusaSlicer.

PrusaSlicer 2.8.1-rc1 Pre-release

This is first release candidate of PrusaSlicer 2.8.1, which mostly fixes bugs
found in 2.8.0.

Improvements with respect to 2.8.0

- Based on the feedback received after 2.8.0 release, the menu bar was
  reinstated and the menu no longer hides under a button. Thanks everyone for
  the feedback, it was very helpful and it will be taken into consideration
  during possible UI-related decisions in the future. #12943
- When logging-in with the PrusaAccount using third party authorization
  (Google, Apple, Facebook), an external browser window is opened so the user
  is not forced to enter their credentials into windows created by PrusaSlicer.
- The built-in web engine no longer remembers the user after logout.
- There are two new parameters: Filaments->Advanced->Abrasive material and
  Printers->Extruder->High flow nozzle. Both flags will be used to check
  whether a sliced G-code is compatible with the given printer (abrasive
  material requires hardened nozzle) and also to ensure that "Set as current"
  function in PrusaSlicer-embedded Prusa Connect will select the suitable
  profile for the given configuration.
  Note that this feature is supported since MINI/MK4/XL firmware version
  6.2.0-alpha1, and that the implementation in Prusa Connect is not completely
  finished yet, meaning that the dialog where printer is selected does not use
  this information - it will later start working without the need to download a
  new slicer version.
- Automatic orientation of bridges has been improved. Issues with unanchored
  bridges caused by inconvenient choice of their angle should now occur less
  frequently, although there is still a large class of scenarios where the
  solution is suboptimal.
- The output of --query-printer-models command line option was extended to
  contain bed shape and dimensions. Note that custom bed shapes are currently
  not supported.
- The 'new version available' notification can now be used to direct the user
  to our website, instead of just downloading the executable. As of now, we
  release two different Linux AppImages, so the user needs to be able to choose
  which one they want to download.
- A new infill type called Zig-zag was created. It behaves the same as
  Rectilinear, except that the pattern is aligned between layers (Rectilinear
  is optimized for short travels, which leads to inconsistencies). The new
  infill may thus take slightly longer to print because of that, although the
  effect will be negligible in most prints. It is possible that Rectilinear and
  Zig-zag will be merged into a single infill type in one of the upcoming
  releases. #12613

Bugs fixed with respect to 2.8.0

- General improvement of Prusa Connect / PrusaAccount session stability. There
  were scenarios which led to uncommanded logouts from PrusaAccount, some
  resulting in partially blank Prusa Connect screen and requiring application
  restart to fix. The problems occurred after being logged on for a long time,
  after waking the PC up from sleep, or when internet connection was unstable.
- Fixed missing G-code preview on setups using older GPUs (#12908).
- Some settings were not applied when overridden per object (#12916).
- Fixed adding SVGs as parts/modifiers. This was broken in 2.8.0 (#12915).
- Fixed UI glitch resulting in disappearing text in edit boxes after editing
  (#12932).
- Fixed incorrect capture of keyboard input, which led to some keys being
  ignored (#13043).
- Physical printer configured to use username/password authentication no longer
  asks the user for the credentials when opening the Physical Printer page
  (#12921, #12933).
- Notification informing about the user having logged in into PrusaAccount
  occasionally showed even when the user was in fact logged in for a long time
  already (#12963, #13166).
- macOS specific: Fixed incorrect tooltips (Ctrl instead of Cmd). #12898
- Object shells incorrectly stayed visible after switching from FFF to SLA and
  back.
- Fixed rotation slider in SVG tool when "Use surface" option was active (it
  incorrectly reverted to original position when released).
- Changing Dynamic overhang speeds settings did not trigger G-code regeneration
  as is should have.
- Fixed loading of specific OBJ files (#12157).
- Fixed a crash when scaling to fit in specific cases (circular bed and objects
  with parts).
- Fixed an infinite loop during infill generation stage occurring in rare cases
  (#11426).
- 'Export Plate as STL/OBJ Including Supports' no longer exports non-printable
  objects.
- Fixed zero velocity G-code commands when the pressure equalizer was combined
  with spiral vase mode. This bugfix was ported from OrcaSlicer. Thanks to
  @Noisyfox, @SoftFever and everyone involved.
- Fixed incorrect Color Changes placement after reslicing in certain cases
  (#13008).
- Reduced number of emitted M106 G-codes when dynamic fan speed on overhangs is
  enabled. Too many commands were generated even when the fan speed barely
  changed or did not change at all. #11981, #11856
- Fixed missing update when adding Color Change with supports enabled.
- Fixed crash when loading specific 3MFs containing Color Changes (#13038).
- Adaptive layer height feature did not work when Z shrinkage compensation was
  used.
- Windows specific: Fixed incorrect initialization of drag and drop in Object
  list, when dragging mouse over it with the mouse button pressed (#13062).
- Fixed unexpected autoselection of SLA printer in Configuration Wizard in
  certain cases (#13058).
- Fixed couple of usability issues with the vertical slider in preview (hovered
  ticks selection and reaction to mouse wheel) (#12944).
- Fixed unexpected deceleration on overhangs with dynamic overhangs speed
  enabled.
- Line infill did not generate at all when maximum anchor length was set to
  zero.
- When seam position was set to Random, the algorithm would occasionally place
  the seam on a bridging perimeter.
- Fixed erratic placement of seams occassionally happening with specific object
  geometry.
- Fixed a problem in STEP file loading, which resulted in errors in the
  geometry of the loaded model (#12271, #12122).
- Using certain fonts for the text embossing led to project files which
  PrusaSlicer was not able to open anymore (#13123).
- Custom G-codes are not allowed to contain certain keywords which PrusaSlicer
  uses for internal purposes. The check that these keywords are not present was
  not working in the previous version. It is now fixed.
- Fixed artifacts sometimes appearing in the "Actual speed" preview. The
  artifacts were a result of long-existing bug in the G-code processor, the
  "Actual speed" preview just made them visible. The bug could have led to
  incorrect time estimates for specific G-codes.
- Fixed three distinct crashes in Configuration Wizard occurring after a
  specific sequence of steps.
- Fixed a long-existing bug in the cooling logic, which resulted in zero or
  possibly negative extrusion commands in very rare cases.
- Downloading from Printables did not work when the download folder contained
  non-ASCII characters.
- Fixed selection of print host type in Physical Printer dialog. PrusaLink was
  missing in the list for several printers which actually support it. This also
  caused several other glitches (#13286).
- The Connect status dots in the Printer Settings dropdown did not show for SLA
  printers.
- Custom printer profile created in Config Wizard could be saved under a name
  clashing with a system profile name.
- "Rename preset" button was inadvertently not shown in the UI when physical
  printer profile was selected.
- Windows specific: Fixed a bug causing issues when PrusaSlicer configuration
  folder path contained non-ASCII characters.
- Number of toolchanges did not show in the "Sliced info" box when wipe tower
  was disabled (#6832).

Translations

- Updated internal dictionaries (CS, PL, DE, IT, ES, FR, JA)

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

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

diffstat:
 prusaslicer/Makefile                               |  5 +-
 prusaslicer/PLIST                                  |  7 ++-
 prusaslicer/distinfo                               | 35 ++++++-----
 prusaslicer/patches/patch-CMakeLists.txt           | 12 +++-
 .../patches/patch-bundled__deps_CMakeLists.txt     | 13 +++++
 .../patch-bundled__deps_avrdude_avrdude_arduino.c  | 14 +++++
 ...atch-bundled__deps_avrdude_avrdude_libavrdude.h | 15 +++++
 ...tch-bundled__deps_localesutils_LocalesUtils.cpp | 38 ++++++++++++
 ...tch-bundled__deps_localesutils_LocalesUtils.hpp | 36 ++++++++++++
 prusaslicer/patches/patch-src_CMakeLists_txt       | 25 --------
 prusaslicer/patches/patch-src_avrdude_arduino.c    | 14 -----
 prusaslicer/patches/patch-src_avrdude_libavrdude.h | 15 -----
 .../patches/patch-src_imgui_imgui__demo.cpp        | 16 -----
 .../patches/patch-src_libslic3r_CMakeLists.txt     | 31 ++++++++++
 .../patches/patch-src_libslic3r_LocalesUtils.cpp   | 38 ------------
 .../patches/patch-src_libslic3r_LocalesUtils.hpp   | 33 -----------
 .../patches/patch-src_occt__wrapper_CMakeLists.txt |  4 +-
 .../patches/patch-src_slic3r_CMakeLists.txt        | 20 +++----
 .../patches/patch-src_slic3r_GUI_ConfigWizard.hpp  | 15 -----
 .../patches/patch-src_slic3r_GUI_GUI__App.cpp      | 49 +++++-----------
 .../patches/patch-src_slic3r_GUI_TopBar.cpp        | 68 ++--------------------
 .../patch-src_slic3r_Utils_FontConfigHelp.hpp      |  6 +-
 .../patches/patch-src_slic3r_Utils_WxFontUtils.cpp | 17 ++----
 ...sts_libslic3r_test__quadric__edge__collapse.cpp | 13 +----
 24 files changed, 229 insertions(+), 310 deletions(-)

diffs:
diff --git a/prusaslicer/Makefile b/prusaslicer/Makefile
index 6f4ed92c08..4716b644b9 100644
--- a/prusaslicer/Makefile
+++ b/prusaslicer/Makefile
@@ -1,6 +1,6 @@
 # $NetBSD$
 
-PKGVERSION=	2.8.0
+PKGVERSION=	2.8.1
 PKGNAME=	prusaslicer-${PKGVERSION}
 DISTNAME=	PrusaSlicer-${PKGVERSION:C/(alpha|beta|rc)/-\1/}
 CATEGORIES=	cad
@@ -65,10 +65,12 @@ pre-configure:
 .include "../../math/eigen3/buildlink3.mk"
 .include "../../math/imath/buildlink3.mk"
 .include "../../math/qhull/buildlink3.mk"
+.include "../../net/libsoup/buildlink3.mk"
 .include "../../parallel/threadingbuildingblocks/buildlink3.mk"
 .include "../../security/heimdal/buildlink3.mk"
 .include "../../sysutils/dbus/buildlink3.mk"
 .include "../../textproc/expat/buildlink3.mk"
+.include "../../textproc/libxml/buildlink3.mk"
 .include "../../wip/cereal/buildlink3.mk"
 .include "../../wip/cgal/buildlink3.mk"
 .include "../../wip/libbgcode/buildlink3.mk"
@@ -77,6 +79,7 @@ pre-configure:
 .include "../../wip/occt/buildlink3.mk"
 .include "../../wip/openvdb/buildlink3.mk"
 .include "../../www/curl/buildlink3.mk"
+.include "../../www/webkit-gtk/buildlink3.mk"
 BUILDLINK_API_DEPENDS.Xrandr+=  Xrandr>=1.0.2
 .include "../../x11/xcursor/buildlink3.mk"
 .include "../../x11/gtk3/buildlink3.mk"
diff --git a/prusaslicer/PLIST b/prusaslicer/PLIST
index 69f7763a00..e970972e5e 100644
--- a/prusaslicer/PLIST
+++ b/prusaslicer/PLIST
@@ -48,7 +48,6 @@ share/PrusaSlicer/icons/bullet_black.png
 share/PrusaSlicer/icons/bullet_blue.png
 share/PrusaSlicer/icons/bullet_white.png
 share/PrusaSlicer/icons/burn.svg
-share/PrusaSlicer/icons/cancel.svg
 share/PrusaSlicer/icons/change_extruder.svg
 share/PrusaSlicer/icons/check_off.svg
 share/PrusaSlicer/icons/check_off_disabled.svg
@@ -731,6 +730,8 @@ share/PrusaSlicer/profiles/PrusaResearch/MK3_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/MK4ISMMU3_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/MK4IS_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/MK4IS_thumbnail_v2.png
+share/PrusaSlicer/profiles/PrusaResearch/MK4SMMU3_thumbnail.png
+share/PrusaSlicer/profiles/PrusaResearch/MK4S_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/MK4_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/XL2IS_alpha_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/XL2IS_beta_thumbnail.png
@@ -753,10 +754,12 @@ share/PrusaSlicer/profiles/PrusaResearch/mk2_bed.stl
 share/PrusaSlicer/profiles/PrusaResearch/mk3.svg
 share/PrusaSlicer/profiles/PrusaResearch/mk35.svg
 share/PrusaSlicer/profiles/PrusaResearch/mk39.svg
+share/PrusaSlicer/profiles/PrusaResearch/mk39s.svg
 share/PrusaSlicer/profiles/PrusaResearch/mk3_bed.stl
 share/PrusaSlicer/profiles/PrusaResearch/mk4.svg
 share/PrusaSlicer/profiles/PrusaResearch/mk4_bed.stl
 share/PrusaSlicer/profiles/PrusaResearch/mk4is.svg
+share/PrusaSlicer/profiles/PrusaResearch/mk4s.svg
 share/PrusaSlicer/profiles/PrusaResearch/xl.svg
 share/PrusaSlicer/profiles/PrusaResearch/xl_bed.stl
 share/PrusaSlicer/profiles/PrusaResearch/xlis_alpha.svg
@@ -878,6 +881,8 @@ share/PrusaSlicer/profiles/Trimaker/Nebula_thumbnail.png
 share/PrusaSlicer/profiles/Ultimaker.idx
 share/PrusaSlicer/profiles/Ultimaker.ini
 share/PrusaSlicer/profiles/Ultimaker/ULTIMAKER2_thumbnail.png
+share/PrusaSlicer/profiles/Ultimaker/ULTIMAKER2_thumbnail_v2.png
+share/PrusaSlicer/profiles/Ultimaker/ULTIMAKERSline_thumbnail.png
 share/PrusaSlicer/profiles/Ultimaker/ultimaker2.svg
 share/PrusaSlicer/profiles/Ultimaker/ultimaker2_bed.stl
 share/PrusaSlicer/profiles/Voron.idx
diff --git a/prusaslicer/distinfo b/prusaslicer/distinfo
index f3d28679d3..17bff5f349 100644
--- a/prusaslicer/distinfo
+++ b/prusaslicer/distinfo
@@ -1,28 +1,27 @@
 $NetBSD$
 
-BLAKE2s (PrusaSlicer-2.8.0.tar.gz) = a980ab95aa99a014e8196ed00d5ebdfc98ca1082ceb6a910388f79d4e7bc8d96
-SHA512 (PrusaSlicer-2.8.0.tar.gz) = d98b43e9e1a6da9cbab46b2564da02fc0f8521d84a4df915d0ffd0878ee1a25afebe7078e38b124ec8565782379c51a7f9564462652ef1a7d9819d29297c1937
-Size (PrusaSlicer-2.8.0.tar.gz) = 69806919 bytes
-SHA1 (patch-CMakeLists.txt) = 115d6354b7e5a512c802037ae2794e76be54b083
+BLAKE2s (PrusaSlicer-2.8.1.tar.gz) = 4dd2f00cef8d9ff80030c0e637a9882492e945c5390949e2155fada333d0ae9d
+SHA512 (PrusaSlicer-2.8.1.tar.gz) = 0471fa579a494d66e6b49c0bc1a9fa91f3a5f9147d8b7fa8133c6f03391f8daddddb19ed222d1be44f6f22e2de3021f3fb839331e3c3ccdf5643caa8a61d6912
+Size (PrusaSlicer-2.8.1.tar.gz) = 69409077 bytes
+SHA1 (patch-CMakeLists.txt) = 293c5116b1ec1c4fa733bf18f6e9ab8c19f7bad4
+SHA1 (patch-bundled__deps_CMakeLists.txt) = 9fad4b02132498a6bf06e0e53ed7626fa8b60b67
+SHA1 (patch-bundled__deps_avrdude_avrdude_arduino.c) = c03d11e4648054fc8e5028da3838400d61c27a95
+SHA1 (patch-bundled__deps_avrdude_avrdude_libavrdude.h) = a0d56b68dba55d58202352e0b7979fb722cc3777
+SHA1 (patch-bundled__deps_localesutils_LocalesUtils.cpp) = 18cbf76d545828bc97bb765b470f2aa4ef5e8a8e
+SHA1 (patch-bundled__deps_localesutils_LocalesUtils.hpp) = 9c6228e2db7bf4aedb29dec656c1995305afd8a2
 SHA1 (patch-cmake_modules_FindOpenVDB.cmake) = 4f2afc423a70fe60617b33ff7f26859b39775faa
-SHA1 (patch-src_CMakeLists_txt) = 1e2d07daef1ed2160f0a5e429efe4d1b01989484
-SHA1 (patch-src_avrdude_arduino.c) = ff02a4cab1c2d8c82ec7b22c7447ed5ec360ac57
-SHA1 (patch-src_avrdude_libavrdude.h) = 62d48054b147985249664f257dbd8bbd670df233
-SHA1 (patch-src_imgui_imgui__demo.cpp) = 2de572e8ce6a53b9ce3755945985c3a8133ffa41
+SHA1 (patch-src_libslic3r_CMakeLists.txt) = 6ef9dd160b0a4f83e692192c57bf4b0f8ae63126
 SHA1 (patch-src_libslic3r_GCodeSender.cpp) = bd69c52e92ff85dba7f357eab62788a8e67a440e
-SHA1 (patch-src_libslic3r_LocalesUtils.cpp) = 33a473cadbc05eba7f0c218110e53babea36568c
-SHA1 (patch-src_libslic3r_LocalesUtils.hpp) = 88edc6156dd317e08ff6bfdf6f6f2d796c41ae05
 SHA1 (patch-src_libslic3r_Platform.cpp) = 3066585efc98ba4963e41bda5952df38a7b095a0
 SHA1 (patch-src_libslic3r_Platform.hpp) = 5626058616d04396bff6c8550951d04fe03249e4
 SHA1 (patch-src_libslic3r_SupportSpotsGenerator.cpp) = b1080470f18e873ad7b39a5e56b4aabd8be87011
 SHA1 (patch-src_libslic3r_Thread.cpp) = 8aa488b933baa97132058f88a82eef8db73ab2f5
 SHA1 (patch-src_libslic3r_Utils_DirectoriesUtils.cpp) = 02c874c348016d572ddf8fed3171aabe2d4550c0
-SHA1 (patch-src_occt__wrapper_CMakeLists.txt) = 2e11271757bcc76f3832c8fd27943f3ef97136f1
-SHA1 (patch-src_slic3r_CMakeLists.txt) = 119ef869965a2cdcfd82208486ffbd603497d425
+SHA1 (patch-src_occt__wrapper_CMakeLists.txt) = d1d3405bd68e32d204eaf95a578f4f837571f391
+SHA1 (patch-src_slic3r_CMakeLists.txt) = f6ad2741c3eb3c28550cedf5a07799866944b247
 SHA1 (patch-src_slic3r_Config_Version.cpp) = 45dd3d5e514952796e973c37adbcc0f51e3b83ae
 SHA1 (patch-src_slic3r_GUI_BitmapCache.cpp) = 9a464bcb09589e12de70ce57cda17f526df33b9b
 SHA1 (patch-src_slic3r_GUI_ConfigWizard.cpp) = a8bd1d621f73ae6464b1ba4a5cb1db965e8e551b
-SHA1 (patch-src_slic3r_GUI_ConfigWizard.hpp) = b0f75d593c4b1d2787fc450be5afc2ce21e42608
 SHA1 (patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp) = 35ccd8882313eb3270e88c47d496d62db96f4d36
 SHA1 (patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp) = c8760f69fac22d1a4cf8c7843fb96b12fdb69def
 SHA1 (patch-src_slic3r_GUI_EditGCodeDialog.cpp) = 4a66003e5eb8f78961560cdf5f4805e7f6b10e0f
@@ -31,7 +30,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) = 43d46cf899bd42f81720e7254d30bedfe426f637
+SHA1 (patch-src_slic3r_GUI_GUI__App.cpp) = cbd17407fbacbe0a91dc97b4c05b338377e73497
 SHA1 (patch-src_slic3r_GUI_GUI__Factories.cpp) = a3db8dc6e41c4df3cba7282fdd0cdadd1bc7d956
 SHA1 (patch-src_slic3r_GUI_GUI__ObjectLayers.cpp) = da99be89d62efffceaccc81ade8e55e1fadb7919
 SHA1 (patch-src_slic3r_GUI_GUI__Utils.cpp) = bcbc83109ba7806e6371d0ef10f3c05cc480d730
@@ -52,7 +51,7 @@ SHA1 (patch-src_slic3r_GUI_PresetComboBoxes.hpp) = 0c84c1b706a1f4e00f60c1677c7ed
 SHA1 (patch-src_slic3r_GUI_PrintHostDialogs.cpp) = fb83c21579d675c8459431e429e2e2d0c41fc623
 SHA1 (patch-src_slic3r_GUI_RemovableDriveManager.cpp) = 413499908128be48106d5fd6aea5d413bb959b35
 SHA1 (patch-src_slic3r_GUI_Tab.cpp) = 148ba19a624036acc0c7aa3d0d121998e5246569
-SHA1 (patch-src_slic3r_GUI_TopBar.cpp) = 79db6c976c6b9b55d8024cf5c24245eb831fb6bf
+SHA1 (patch-src_slic3r_GUI_TopBar.cpp) = 89025abe1622ae57a84429c65ae1402a503e1ad1
 SHA1 (patch-src_slic3r_GUI_UnsavedChangesDialog.cpp) = 1594eb7521f23c42700b0fbed7c039b62e9d4029
 SHA1 (patch-src_slic3r_GUI_UnsavedChangesDialog.hpp) = 0bd01147f0b654d190534959708fbf346cbb364e
 SHA1 (patch-src_slic3r_GUI_UpdateDialogs.cpp) = 7fdcc609e66c619c110db2da18b24ddfd0ffe2a2
@@ -60,10 +59,10 @@ SHA1 (patch-src_slic3r_GUI_UserAccountCommunication.cpp) = 31750eeb0bdc50ebd954b
 SHA1 (patch-src_slic3r_GUI_WipeTowerDialog.cpp) = fc6fd1bfee7001c268bf50209bcfd1cb96f6a9ad
 SHA1 (patch-src_slic3r_GUI_wxExtensions.cpp) = d6e807f3dd1f18fa9c703798067fa1e808112891
 SHA1 (patch-src_slic3r_GUI_wxExtensions.hpp) = 356da6dbd7ca7f60fa8a73c51533a1c1ad1530c1
-SHA1 (patch-src_slic3r_Utils_FontConfigHelp.hpp) = 8027a1bc90a7f0ad1b53787a25f1e8a28c343ba2
+SHA1 (patch-src_slic3r_Utils_FontConfigHelp.hpp) = 807c71e904bb5b5c882bc6a72161a5276d1ab4d3
 SHA1 (patch-src_slic3r_Utils_Serial.cpp) = 77dbb4e3526e932c04b8020b6f808278d1319bdb
 SHA1 (patch-src_slic3r_Utils_WifiScanner.cpp) = a7c8d6dfb43ddaca651df13b487b43dd51b32719
-SHA1 (patch-src_slic3r_Utils_WxFontUtils.cpp) = cc033a04f3219b0f4229344e14d44be63192db60
+SHA1 (patch-src_slic3r_Utils_WxFontUtils.cpp) = 75d657b3c8af52eee7aa130a895760c4203fef78
 SHA1 (patch-tests_CMakeLists.txt) = 89670b4a0a74f9cf985b4b3f0e7aa3f83d8b8a36
 SHA1 (patch-tests_arrange_test__arrange.cpp) = 4861d58845a0285b59d2d75869e35121f1293d8d
 SHA1 (patch-tests_arrange_test__arrange__integration.cpp) = 94f9a1e67647baf5563f13d2ead6d666a2a04e22
@@ -135,7 +134,7 @@ SHA1 (patch-tests_libslic3r_test__png__io.cpp) = 0ad327a63ef606c0d41af6cf60e8517
 SHA1 (patch-tests_libslic3r_test__point.cpp) = cc62a20c1058e2a35b0d85f884f9a07e2ccaca47
 SHA1 (patch-tests_libslic3r_test__polygon.cpp) = 2c8a7bf99b08eeeb5296d40a34a92e2e66dc5274
 SHA1 (patch-tests_libslic3r_test__polyline.cpp) = caf306c874cc71f2e93ba59113ae080028b4b06f
-SHA1 (patch-tests_libslic3r_test__quadric__edge__collapse.cpp) = da14d39e5ebcbb5683615675a316d1289ca67fef
+SHA1 (patch-tests_libslic3r_test__quadric__edge__collapse.cpp) = f1b3252d2f3f66024c372560a9b904d26e466514
 SHA1 (patch-tests_libslic3r_test__region__expansion.cpp) = 053c8ae2ec557275960273d3c3c8147c71dc450b
 SHA1 (patch-tests_libslic3r_test__static__map.cpp) = d6f84ff708642c31ddd838671b18fb673f2d0a91
 SHA1 (patch-tests_libslic3r_test__stl.cpp) = accbe373f5a33dcdb34276e0013ef7a2e359eabe
diff --git a/prusaslicer/patches/patch-CMakeLists.txt b/prusaslicer/patches/patch-CMakeLists.txt
index 8b31d295f0..9915f81076 100644
--- a/prusaslicer/patches/patch-CMakeLists.txt
+++ b/prusaslicer/patches/patch-CMakeLists.txt
@@ -4,7 +4,7 @@ Use GTK3, since that's how we build wxWidgets.
 
 Define additional macro to OpenGL ES builds.
 
---- CMakeLists.txt.orig	2024-06-14 21:54:48.000000000 +0000
+--- CMakeLists.txt.orig	2024-09-18 13:39:04.000000000 +0000
 +++ CMakeLists.txt
 @@ -53,7 +53,7 @@ CMAKE_DEPENDENT_OPTION(SLIC3R_DESKTOP_IN
  
@@ -23,3 +23,13 @@ Define additional macro to OpenGL ES builds.
  endif()
  
  if(SLIC3R_DESKTOP_INTEGRATION)
+@@ -374,7 +375,8 @@ set(MINIMUM_BOOST_VERSION "1.66.0")
+ set(_boost_components "system;filesystem;thread;log;locale;regex;chrono;atomic;date_time;iostreams;nowide")
+ find_package(Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS ${_boost_components})
+ 
+-find_package(Eigen3 3.3.7 REQUIRED)
++find_package(Eigen3 3.3.7 REQUIRED NO_MODULE)
++include_directories(BEFORE SYSTEM ${EIGEN3_INCLUDE_DIR})
+ 
+ add_library(boost_libs INTERFACE)
+ add_library(boost_headeronly INTERFACE)
diff --git a/prusaslicer/patches/patch-bundled__deps_CMakeLists.txt b/prusaslicer/patches/patch-bundled__deps_CMakeLists.txt
new file mode 100644
index 0000000000..611cfcf959
--- /dev/null
+++ b/prusaslicer/patches/patch-bundled__deps_CMakeLists.txt
@@ -0,0 +1,13 @@
+$NetBSD$
+
+Use libhidapi from pkgsrc.
+
+--- bundled_deps/CMakeLists.txt.orig	2024-09-20 23:00:21.068949105 +0000
++++ bundled_deps/CMakeLists.txt
+@@ -45,5 +45,5 @@ target_include_directories(tcbspan INTER
+ 
+ if (SLIC3R_GUI)
+     add_subdirectory(imgui)
+-    add_subdirectory(hidapi)
++    # add_subdirectory(hidapi)
+ endif ()
diff --git a/prusaslicer/patches/patch-bundled__deps_avrdude_avrdude_arduino.c b/prusaslicer/patches/patch-bundled__deps_avrdude_avrdude_arduino.c
new file mode 100644
index 0000000000..a01b839ea8
--- /dev/null
+++ b/prusaslicer/patches/patch-bundled__deps_avrdude_avrdude_arduino.c
@@ -0,0 +1,14 @@
+$NetBSD$
+
+alloca requires stdlib.h.
+
+--- bundled_deps/avrdude/avrdude/arduino.c.orig	2024-09-20 23:45:57.762961668 +0000
++++ bundled_deps/avrdude/avrdude/arduino.c
+@@ -28,6 +28,7 @@
+ #include "ac_cfg.h"
+ 
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+ 
diff --git a/prusaslicer/patches/patch-bundled__deps_avrdude_avrdude_libavrdude.h b/prusaslicer/patches/patch-bundled__deps_avrdude_avrdude_libavrdude.h
new file mode 100644
index 0000000000..1277b5c035
--- /dev/null
+++ b/prusaslicer/patches/patch-bundled__deps_avrdude_avrdude_libavrdude.h
@@ -0,0 +1,15 @@
+$NetBSD$
+
+alloca.h is only found on Linux+Darwin.
+
+--- bundled_deps/avrdude/avrdude/libavrdude.h.orig	2024-09-20 23:44:46.451970401 +0000
++++ bundled_deps/avrdude/avrdude/libavrdude.h
+@@ -950,7 +950,7 @@ int read_config_builtin();
+ // Header file for alloca()
+ #if defined(WIN32NATIVE)
+ #  include <malloc.h>
+-#else
++#elif defined(__linux__) || defined(__APPLE__)
+ #  include <alloca.h>
+ #endif
+ 
diff --git a/prusaslicer/patches/patch-bundled__deps_localesutils_LocalesUtils.cpp b/prusaslicer/patches/patch-bundled__deps_localesutils_LocalesUtils.cpp
new file mode 100644
index 0000000000..0f4b6d7f7f
--- /dev/null
+++ b/prusaslicer/patches/patch-bundled__deps_localesutils_LocalesUtils.cpp
@@ -0,0 +1,38 @@
+$NetBSD$
+
+uselocale(3) is not found on NetBSD. Substitute setlocale(3) which is ugly
+as it affects the whole process rather than a single thread.
+See the following thread for rationale against uselocale(3):
+https://mail-index.netbsd.org/tech-userlevel/2015/12/28/msg009546.html
+
+--- bundled_deps/localesutils/LocalesUtils.cpp.orig	2024-09-20 13:38:59.616830457 +0000
++++ bundled_deps/localesutils/LocalesUtils.cpp
+@@ -26,11 +26,14 @@ CNumericLocalesSetter::CNumericLocalesSe
+     m_original_locale = uselocale((locale_t)0);
+     m_new_locale = newlocale(LC_NUMERIC_MASK, "C", m_original_locale);
+     uselocale(m_new_locale);
+-#else // linux / BSD
++#elif __linux__ || __OpenBSD__
+     m_original_locale = uselocale((locale_t)0);
+     m_new_locale = duplocale(m_original_locale);
+     m_new_locale = newlocale(LC_NUMERIC_MASK, "C", m_new_locale);
+     uselocale(m_new_locale);
++#elif __NetBSD__
++    m_original_locale = setlocale(LC_NUMERIC, nullptr);
++    setlocale(LC_NUMERIC, "C");
+ #endif
+ }
+ 
+@@ -40,9 +43,11 @@ CNumericLocalesSetter::~CNumericLocalesS
+ {
+ #ifdef _WIN32
+     std::setlocale(LC_NUMERIC, m_orig_numeric_locale.data());
+-#else
++#elif __APPLE__ || __LINUX__ || __OpenBSD__
+     uselocale(m_original_locale);
+     freelocale(m_new_locale);
++#elif __NetBSD__
++    setlocale(LC_NUMERIC, m_original_locale.c_str());
+ #endif
+ }
+ 
diff --git a/prusaslicer/patches/patch-bundled__deps_localesutils_LocalesUtils.hpp b/prusaslicer/patches/patch-bundled__deps_localesutils_LocalesUtils.hpp
new file mode 100644
index 0000000000..088af520cc
--- /dev/null
+++ b/prusaslicer/patches/patch-bundled__deps_localesutils_LocalesUtils.hpp
@@ -0,0 +1,36 @@
+$NetBSD$
+
+Stash previous locale in a string on NetBSD.
+
+--- bundled_deps/localesutils/LocalesUtils.hpp.orig	2024-09-20 13:15:33.333280337 +0000
++++ bundled_deps/localesutils/LocalesUtils.hpp
+@@ -27,6 +27,8 @@ public:
+ private:
+ #ifdef _WIN32
+     std::string m_orig_numeric_locale;
++#elif __NetBSD__
++    std::string m_original_locale;
+ #else
+     locale_t m_original_locale;
+     locale_t m_new_locale;
+@@ -54,16 +56,18 @@ inline void set_c_locales()
+ #ifdef _WIN32
+     _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
+     std::setlocale(LC_ALL, "C");
+-#else
++#elif __APPLE__ || __linux__ || __OpenBSD__
+     // We are leaking some memory here, because the newlocale() produced memory will never be released.
+     // This is not a problem though, as there will be a maximum one worker thread created per physical thread.
+     uselocale(newlocale(
+ #ifdef __APPLE__
+         LC_ALL_MASK
+-#else // some Unix / Linux / BSD
++#elif __linux__ || __OpenBSD__
+         LC_ALL
+ #endif
+         , "C", nullptr));
++#elif __NetBSD__
++	
+ #endif
+ }
+ 
diff --git a/prusaslicer/patches/patch-src_CMakeLists_txt b/prusaslicer/patches/patch-src_CMakeLists_txt
deleted file mode 100644
index dba0a2523f..0000000000
--- a/prusaslicer/patches/patch-src_CMakeLists_txt
+++ /dev/null
@@ -1,25 +0,0 @@
-$NetBSD$
-
-Use libhidapi from pkgsrc.
-Treat the BSDs like Linux for wxWidgets.
-
---- src/CMakeLists.txt.orig	2024-06-15 05:46:24.368814750 +0000
-+++ src/CMakeLists.txt
-@@ -32,8 +32,6 @@ endif ()
- if (SLIC3R_GUI)
-     add_subdirectory(imgui)
-     add_subdirectory(libvgcode)
--    add_subdirectory(hidapi)
--    include_directories(hidapi/include)
- 
-     if(WIN32)
-         message(STATUS "WXWIN environment set to: $ENV{WXWIN}")
-@@ -46,7 +44,7 @@ if (SLIC3R_GUI)
-         endif()
-     endif()
- 
--    if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
-+    if (CMAKE_HOST_LINUX OR CMAKE_HOST_BSD)
-         set (wxWidgets_CONFIG_OPTIONS "--toolkit=gtk${SLIC3R_GTK}")
-     endif ()
-     find_package(wxWidgets 3.2 MODULE REQUIRED COMPONENTS base core adv html gl webview)
diff --git a/prusaslicer/patches/patch-src_avrdude_arduino.c b/prusaslicer/patches/patch-src_avrdude_arduino.c
deleted file mode 100644
index 806f25bd49..0000000000
--- a/prusaslicer/patches/patch-src_avrdude_arduino.c
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD$
-
-alloca requires stdlib.h.
-
---- src/avrdude/arduino.c.orig	2020-03-21 10:55:51.000000000 +0000
-+++ src/avrdude/arduino.c
-@@ -28,6 +28,7 @@
- #include "ac_cfg.h"
- 
- #include <stdio.h>
-+#include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
- 
diff --git a/prusaslicer/patches/patch-src_avrdude_libavrdude.h b/prusaslicer/patches/patch-src_avrdude_libavrdude.h
deleted file mode 100644
index b488bcbef9..0000000000
--- a/prusaslicer/patches/patch-src_avrdude_libavrdude.h
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-alloca.h is only found on Linux+Darwin.
-
---- src/avrdude/libavrdude.h.orig	2021-07-16 10:14:03.000000000 +0000
-+++ src/avrdude/libavrdude.h
-@@ -950,7 +950,7 @@ int read_config_builtin();
- // Header file for alloca()
- #if defined(WIN32NATIVE)
- #  include <malloc.h>
--#else
-+#elif defined(__linux__) || defined(__APPLE__)
- #  include <alloca.h>
- #endif
- 
diff --git a/prusaslicer/patches/patch-src_imgui_imgui__demo.cpp b/prusaslicer/patches/patch-src_imgui_imgui__demo.cpp
deleted file mode 100644
index be22804c6b..0000000000
--- a/prusaslicer/patches/patch-src_imgui_imgui__demo.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
-Treat NetBSD like Linux.
-
---- src/imgui/imgui_demo.cpp.orig	2023-11-23 14:51:47.000000000 +0000
-+++ src/imgui/imgui_demo.cpp
-@@ -5678,6 +5678,9 @@ void ImGui::ShowAboutWindow(bool* p_open
- #ifdef __linux__
-         ImGui::Text("define: __linux__");
- #endif
-+#ifdef __NetBSD__
-+        ImGui::Text("define: __NetBSD__");
-+#endif
- #ifdef __APPLE__
-         ImGui::Text("define: __APPLE__");
- #endif
diff --git a/prusaslicer/patches/patch-src_libslic3r_CMakeLists.txt b/prusaslicer/patches/patch-src_libslic3r_CMakeLists.txt
new file mode 100644
index 0000000000..2eb7484e9e
--- /dev/null
+++ b/prusaslicer/patches/patch-src_libslic3r_CMakeLists.txt
@@ -0,0 +1,31 @@
+$NetBSD$
+
+boost_libs needs public linking.
+
+--- src/libslic3r/CMakeLists.txt.orig	2024-09-18 13:39:04.000000000 +0000
++++ src/libslic3r/CMakeLists.txt
+@@ -612,7 +612,6 @@ find_package(JPEG REQUIRED)
+ target_link_libraries(libslic3r PRIVATE
+     libnest2d
+     libcereal
+-    boost_libs
+     clipper
+     libexpat
+     glu-libtess
+@@ -629,7 +628,7 @@ target_link_libraries(libslic3r PRIVATE
+     int128
+ )
+ target_link_libraries(libslic3r PUBLIC
+-    Eigen3::Eigen
++    # Eigen3::Eigen
+     semver
+     admesh
+     localesutils
+@@ -639,6 +638,7 @@ target_link_libraries(libslic3r PUBLIC
+     libigl
+     agg
+     ankerl
++    boost_libs
+ )
+ 
+ if (APPLE)
diff --git a/prusaslicer/patches/patch-src_libslic3r_LocalesUtils.cpp b/prusaslicer/patches/patch-src_libslic3r_LocalesUtils.cpp
deleted file mode 100644
index 7b8b91d8f6..0000000000
--- a/prusaslicer/patches/patch-src_libslic3r_LocalesUtils.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-$NetBSD$
-
-uselocale(3) is not found on NetBSD. Substitute setlocale(3) which is ugly
-as it affects the whole process rather than a single thread.
-See the following thread for rationale against uselocale(3):
-https://mail-index.netbsd.org/tech-userlevel/2015/12/28/msg009546.html
-
---- src/libslic3r/LocalesUtils.cpp.orig	2021-12-17 14:00:02.000000000 +0000
-+++ src/libslic3r/LocalesUtils.cpp
-@@ -21,11 +21,14 @@ CNumericLocalesSetter::CNumericLocalesSe
-     m_original_locale = uselocale((locale_t)0);
-     m_new_locale = newlocale(LC_NUMERIC_MASK, "C", m_original_locale);
-     uselocale(m_new_locale);
--#else // linux / BSD
-+#elif __LINUX__ || __OpenBSD__
-     m_original_locale = uselocale((locale_t)0);
-     m_new_locale = duplocale(m_original_locale);
-     m_new_locale = newlocale(LC_NUMERIC_MASK, "C", m_new_locale);
-     uselocale(m_new_locale);
-+#elif __NetBSD__
-+    m_original_locale = setlocale(LC_NUMERIC, nullptr);
-+    setlocale(LC_NUMERIC, "C");
- #endif
- }
- 
-@@ -35,9 +38,11 @@ CNumericLocalesSetter::~CNumericLocalesS
- {
- #ifdef _WIN32
-     std::setlocale(LC_NUMERIC, m_orig_numeric_locale.data());
--#else
-+#elif __APPLE__ || __LINUX__ || __OpenBSD__
-     uselocale(m_original_locale);
-     freelocale(m_new_locale);
-+#elif __NetBSD__
-+    setlocale(LC_NUMERIC, m_original_locale.c_str());
- #endif
- }
- 
diff --git a/prusaslicer/patches/patch-src_libslic3r_LocalesUtils.hpp b/prusaslicer/patches/patch-src_libslic3r_LocalesUtils.hpp
deleted file mode 100644
index 18d0a5caa4..0000000000
--- a/prusaslicer/patches/patch-src_libslic3r_LocalesUtils.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-$NetBSD$
-
-Stash previous locale in a string on NetBSD.
-
---- src/libslic3r/LocalesUtils.hpp.orig	2022-08-19 14:41:23.000000000 +0000
-+++ src/libslic3r/LocalesUtils.hpp
-@@ -23,6 +23,8 @@ public:
- private:
- #ifdef _WIN32
-     std::string m_orig_numeric_locale;
-+#elif __NetBSD__
-+    std::string m_original_locale;
- #else
-     locale_t m_original_locale;
-     locale_t m_new_locale;
-@@ -49,7 +51,7 @@ inline void set_c_locales()
- #ifdef _WIN32
-     _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
-     std::setlocale(LC_ALL, "C");
--#else
-+#elif __LINUX__ || __OpenBSD__
-     // We are leaking some memory here, because the newlocale() produced memory will never be released.
-     // This is not a problem though, as there will be a maximum one worker thread created per physical thread.
-     uselocale(newlocale(
-@@ -59,6 +61,8 @@ inline void set_c_locales()
-         LC_ALL
- #endif
-         , "C", nullptr));
-+#elif __NetBSD__
-+	setlocale(LC_ALL, "C");
- #endif
- }
- 
diff --git a/prusaslicer/patches/patch-src_occt__wrapper_CMakeLists.txt b/prusaslicer/patches/patch-src_occt__wrapper_CMakeLists.txt
index 655668cd90..82d861cc7f 100644
--- a/prusaslicer/patches/patch-src_occt__wrapper_CMakeLists.txt
+++ b/prusaslicer/patches/patch-src_occt__wrapper_CMakeLists.txt
@@ -2,13 +2,13 @@ $NetBSD$
 
 Ignore OpenCASCADE version.
 
---- src/occt_wrapper/CMakeLists.txt.orig	2022-08-19 14:41:23.000000000 +0000
+--- src/occt_wrapper/CMakeLists.txt.orig	2024-09-20 08:13:14.959981974 +0000
 +++ src/occt_wrapper/CMakeLists.txt
 @@ -19,7 +19,7 @@ include(GenerateExportHeader)
  
  generate_export_header(OCCTWrapper)
  
--find_package(OpenCASCADE 7.6.2 REQUIRED)
+-find_package(OpenCASCADE 7.6.1 REQUIRED)
 +find_package(OpenCASCADE REQUIRED)
  
  set(OCCT_LIBS
diff --git a/prusaslicer/patches/patch-src_slic3r_CMakeLists.txt b/prusaslicer/patches/patch-src_slic3r_CMakeLists.txt
index 85fe8dbc1d..ab61f549f9 100644
--- a/prusaslicer/patches/patch-src_slic3r_CMakeLists.txt
+++ b/prusaslicer/patches/patch-src_slic3r_CMakeLists.txt
@@ -2,14 +2,14 @@ $NetBSD$
 
 Recent libhidapi renamed the library to include -libusb suffix.
 
---- src/slic3r/CMakeLists.txt.orig	2024-06-14 21:54:48.000000000 +0000
+--- src/slic3r/CMakeLists.txt.orig	2024-09-18 13:39:04.000000000 +0000
 +++ src/slic3r/CMakeLists.txt
-@@ -400,7 +400,7 @@ endforeach()
- 
- encoding_check(libslic3r_gui)
- 
--target_link_libraries(libslic3r_gui libslic3r avrdude libcereal imgui libvgcode GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES} NanoSVG::nanosvg NanoSVG::nanosvgrast)
-+target_link_libraries(libslic3r_gui libslic3r avrdude libcereal imgui libvgcode GLEW::GLEW OpenGL::GL hidapi-libusb libcurl ${wxWidgets_LIBRARIES} NanoSVG::nanosvg NanoSVG::nanosvgrast)
- 
- if (MSVC)
-     target_link_libraries(libslic3r_gui Setupapi.lib)
+@@ -431,7 +431,7 @@ target_link_libraries(
+     libvgcode
+     GLEW::GLEW
+     OpenGL::GL
+-    hidapi
++    hidapi-libusb
+     libcurl
+     ${wxWidgets_LIBRARIES}
+     NanoSVG::nanosvg
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.hpp b/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.hpp
deleted file mode 100644
index 51a23e24ef..0000000000
--- a/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-Treat NetBSD like Linux.
-
---- src/slic3r/GUI/ConfigWizard.hpp.orig	2024-06-15 06:02:13.578363380 +0000
-+++ src/slic3r/GUI/ConfigWizard.hpp
-@@ -53,7 +53,7 @@ namespace DownloaderUtils {
- 
-         bool on_finish();
-         static bool perform_register(const std::string& path);
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
-         static bool perform_registration_linux;
- #endif // __linux__
-     };
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp
index fe54281100..3d69b310fb 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	2024-06-14 21:54:48.000000000 +0000
+--- src/slic3r/GUI/GUI_App.cpp.orig	2024-09-18 13:39:04.000000000 +0000
 +++ src/slic3r/GUI/GUI_App.cpp
-@@ -411,7 +411,7 @@ private:
+@@ -412,7 +412,7 @@ private:
  };
  
  
@@ -15,26 +15,18 @@ 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,
-@@ -1255,6 +1255,9 @@ bool GUI_App::on_init_inner()
+@@ -1256,6 +1256,10 @@ bool GUI_App::on_init_inner()
      // Set initialization of image handlers before any UI actions - See GH issue #7469
      wxInitAllImageHandlers();
  
 +    // Silence warnings generated with wxWidgets 3.2
 +    wxSizerFlags::DisableConsistencyChecks();
 +
- #if defined(_WIN32) && ! defined(_WIN64)
-     // Win32 32bit build.
-     if (wxPlatformInfo::Get().GetArchName().substr(0, 2) == "64") {
-@@ -1282,7 +1285,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));
- 
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
-     if (! check_old_linux_datadir(GetAppName())) {
-         std::cerr << "Quitting, user chose to move their data to new location." << std::endl;
-         return false;
-@@ -1387,7 +1390,7 @@ bool GUI_App::on_init_inner()
++
+     // Set our own gui log as an active target
+     m_log_gui = new LogGui();
+     wxLog::SetActiveTarget(m_log_gui);
+@@ -1391,7 +1395,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");
@@ -43,7 +35,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
          wxYield();
  #endif
          scrn->SetText(_L("Loading configuration")+ dots);
-@@ -1546,7 +1549,7 @@ bool GUI_App::on_init_inner()
+@@ -1557,7 +1561,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.
  
@@ -52,7 +44,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
          if (!m_post_initialized && m_opengl_initialized) {
  #else
          if (!m_post_initialized) {
-@@ -2237,7 +2240,7 @@ bool GUI_App::switch_language()
+@@ -2247,7 +2251,7 @@ bool GUI_App::switch_language()
      }
  }
  
@@ -61,7 +53,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
  static const wxLanguageInfo* linux_get_existing_locale_language(const wxLanguageInfo* language,
                                                                  const wxLanguageInfo* system_language)
  {
-@@ -2439,7 +2442,7 @@ bool GUI_App::load_language(wxString lan
+@@ -2449,7 +2453,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();
  			}
@@ -70,7 +62,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.
-@@ -2492,7 +2495,7 @@ bool GUI_App::load_language(wxString lan
+@@ -2502,7 +2506,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;
  
@@ -79,7 +71,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)) {
-@@ -2613,7 +2616,7 @@ wxMenu* GUI_App::get_config_menu()
+@@ -2623,7 +2627,7 @@ wxMenu* GUI_App::get_config_menu(MainFra
          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"));
@@ -88,7 +80,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)        
-@@ -2648,7 +2651,7 @@ wxMenu* GUI_App::get_config_menu()
+@@ -2657,7 +2661,7 @@ wxMenu* GUI_App::get_config_menu(MainFra
          case ConfigMenuUpdateApp:
              app_version_check(true);
              break;
@@ -97,7 +89,7 @@ Silence wxSizer warnings introduced with 2.6.0rc1.
          case ConfigMenuDesktopIntegration:
              show_desktop_integration_dialog();
              break;
-@@ -3320,7 +3323,7 @@ void GUI_App::update_login_dialog()
+@@ -3336,7 +3340,7 @@ void GUI_App::update_wizard_login_page()
  
  void GUI_App::show_desktop_integration_dialog()
  {
@@ -106,16 +98,7 @@ 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();
-@@ -3340,7 +3343,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"));
--#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) 
-+#if (defined(__linux__) || defined(__NetBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION) 
-         if (DownloaderUtils::Worker::perform_registration_linux)
-             DesktopIntegrationDialog::perform_downloader_desktop_integration();
- #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)
-@@ -3751,7 +3754,7 @@ void GUI_App::start_download(std::string
+@@ -3790,7 +3794,7 @@ void GUI_App::start_download(std::string
          return; 
      }
  
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_TopBar.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_TopBar.cpp
index bfdc58866f..697a639a75 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_TopBar.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_TopBar.cpp
@@ -2,70 +2,14 @@ $NetBSD$
 
 Treat NetBSD like linux.
 
-Also use the more common down-arrow on NetBSD.
-
---- src/slic3r/GUI/TopBar.cpp.orig	2024-06-21 20:36:12.000000000 +0000
+--- src/slic3r/GUI/TopBar.cpp.orig	2024-09-18 13:39:04.000000000 +0000
 +++ src/slic3r/GUI/TopBar.cpp
-@@ -13,7 +13,7 @@ wxDEFINE_EVENT(wxCUSTOMEVT_TOPBAR_SEL_CH
- 
- using namespace Slic3r::GUI;
- 
--#ifdef __APPLE__
-+#if defined(__APPLE__) || defined(__NetBSD__)
- #define down_arrow L"\u25BC";
- #else
- #define down_arrow L"\u23f7";
-@@ -68,7 +68,7 @@ void TopBarItemsCtrl::Button::set_select
-                                          wxTransparentColor;
- #endif
- 
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
-     this->SetBackgroundColour(m_background_color);
-     this->SetForegroundColour(m_foreground_color);
- 
-@@ -94,7 +94,7 @@ void TopBarItemsCtrl::Button::set_hovere
-                                             wxTransparentColor;
- #endif
- 
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
-     this->SetBackgroundColour(m_background_color);
- #endif // __linux__
- 
-@@ -163,7 +163,7 @@ void TopBarItemsCtrl::Button::sys_color_
-     m_foreground_color = wxGetApp().get_label_clr_default();
- }
+@@ -52,7 +52,7 @@ TopBarItemsCtrl::Button::Button(wxWindow
+     Bind(wxEVT_LEAVE_WINDOW, [this](wxMouseEvent& event) { set_hovered(false); event.Skip(); });
  
+     Bind(wxEVT_PAINT,        [this](wxPaintEvent&) { render(); });
 -#ifdef __linux__
 +#if defined(__linux__) || defined(__NetBSD__)
- const int icon_sz = 20;
+     Bind(wxEVT_LEFT_UP,      [this](wxMouseEvent& event) {
  #else
- const int icon_sz = 24;
-@@ -213,7 +213,7 @@ void TopBarItemsCtrl::ButtonWithPopup::S
- #endif
- 
-     wxString full_label = "  " + text + "  ";
--#ifndef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
-     full_label += down_arrow;
- #endif
-     ScalableButton::SetLabel(full_label);
-@@ -228,7 +228,7 @@ void TopBarItemsCtrl::UpdateAccountButto
-     TopBarMenus::UserAccountInfo  user_account = m_menus->get_user_account_info();
-     const wxString user_name = user_account.is_logged ? from_u8(user_account.user_name) : _L("Log in");
-     m_account_btn->SetToolTip(user_name);
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
-     if (avatar) {
-         if (user_account.is_logged) {
-             ScalableBitmap new_logo(this, user_account.avatar_path, wxSize(icon_sz, icon_sz));
-@@ -498,7 +498,7 @@ TopBarItemsCtrl::TopBarItemsCtrl(wxWindo
- void TopBarItemsCtrl::UpdateMode()
- {
-     wxBitmapBundle bmp = *m_menus->get_workspace_bitmap();
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
-     m_workspace_btn->SetBitmap(bmp);
-     m_workspace_btn->SetBitmapCurrent(bmp);
-     m_workspace_btn->SetBitmapPressed(bmp);
+     Bind(wxEVT_LEFT_DOWN,    [this](wxMouseEvent& event) {
diff --git a/prusaslicer/patches/patch-src_slic3r_Utils_FontConfigHelp.hpp b/prusaslicer/patches/patch-src_slic3r_Utils_FontConfigHelp.hpp
index e50fd65855..73c9cedc12 100644
--- a/prusaslicer/patches/patch-src_slic3r_Utils_FontConfigHelp.hpp
+++ b/prusaslicer/patches/patch-src_slic3r_Utils_FontConfigHelp.hpp
@@ -2,12 +2,12 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/Utils/FontConfigHelp.hpp.orig	2023-06-02 13:41:15.000000000 +0000
+--- src/slic3r/Utils/FontConfigHelp.hpp.orig	2024-09-18 13:39:04.000000000 +0000
 +++ src/slic3r/Utils/FontConfigHelp.hpp
-@@ -1,7 +1,7 @@
- #ifndef slic3r_FontConfigHelp_hpp_
+@@ -6,7 +6,7 @@
  #define slic3r_FontConfigHelp_hpp_
  
+ #include <string>
 -#ifdef __linux__
 +#if defined(__linux__) || defined(__NetBSD__)
  #define EXIST_FONT_CONFIG_INCLUDE
diff --git a/prusaslicer/patches/patch-src_slic3r_Utils_WxFontUtils.cpp b/prusaslicer/patches/patch-src_slic3r_Utils_WxFontUtils.cpp
index 6b02fd100a..dded5c1f84 100644
--- a/prusaslicer/patches/patch-src_slic3r_Utils_WxFontUtils.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_Utils_WxFontUtils.cpp
@@ -2,9 +2,9 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/Utils/WxFontUtils.cpp.orig	2023-06-02 13:41:15.000000000 +0000
+--- src/slic3r/Utils/WxFontUtils.cpp.orig	2024-09-18 13:39:04.000000000 +0000
 +++ src/slic3r/Utils/WxFontUtils.cpp
-@@ -8,7 +8,7 @@
+@@ -19,7 +19,7 @@
  #include <wx/uri.h>
  #include <wx/fontutil.h> // wxNativeFontInfo
  #include <wx/osx/core/cfdictionary.h>
@@ -13,7 +13,7 @@ Treat NetBSD like Linux.
  #include "slic3r/Utils/FontConfigHelp.hpp"
  #endif
  
-@@ -72,7 +72,7 @@ bool WxFontUtils::can_load(const wxFont 
+@@ -83,7 +83,7 @@ bool WxFontUtils::can_load(const wxFont 
  #elif defined(__APPLE__)
      return true;
      //return is_valid_ttf(get_file_path(font));
@@ -22,7 +22,7 @@ Treat NetBSD like Linux.
      return true;
      // font config check file path take about 4000ms for chech them all
      //std::string font_path = Slic3r::GUI::get_font_path(font);
-@@ -93,7 +93,7 @@ std::unique_ptr<Emboss::FontFile> WxFont
+@@ -104,7 +104,7 @@ std::unique_ptr<Emboss::FontFile> WxFont
          return nullptr; 
      }
      return Emboss::create_font_file(file_path.c_str());
@@ -31,7 +31,7 @@ Treat NetBSD like Linux.
      std::string font_path = Slic3r::GUI::get_font_path(font);
      if (font_path.empty()){
          BOOST_LOG_TRIVIAL(error) << "Can not read font('" << get_human_readable_name(font) << "'), "
-@@ -114,7 +114,7 @@ EmbossStyle::Type WxFontUtils::get_actua
+@@ -125,7 +125,7 @@ EmbossStyle::Type WxFontUtils::get_curre
      return EmbossStyle::Type::wx_win_font_descr;
  #elif defined(__APPLE__)
      return EmbossStyle::Type::wx_mac_font_descr;
@@ -40,10 +40,3 @@ Treat NetBSD like Linux.
      return EmbossStyle::Type::wx_lin_font_descr;
  #else
      return EmbossStyle::Type::undefined;
-@@ -348,4 +348,4 @@ std::unique_ptr<Emboss::FontFile> WxFont
-     // There is NO bold font by wx
-     font.SetWeight(orig_weight);
-     return nullptr;
--}
-\ No newline at end of file
-+}
diff --git a/prusaslicer/patches/patch-tests_libslic3r_test__quadric__edge__collapse.cpp b/prusaslicer/patches/patch-tests_libslic3r_test__quadric__edge__collapse.cpp
index 7c714e3de7..96f42982f1 100644
--- a/prusaslicer/patches/patch-tests_libslic3r_test__quadric__edge__collapse.cpp
+++ b/prusaslicer/patches/patch-tests_libslic3r_test__quadric__edge__collapse.cpp
@@ -3,20 +3,11 @@ $NetBSD$
 Support Catch2 v3.
 Based on https://github.com/prusa3d/PrusaSlicer/issues/11567
 
---- tests/libslic3r/test_quadric_edge_collapse.cpp.orig	2024-02-29 13:03:32.000000000 +0000
+--- tests/libslic3r/test_quadric_edge_collapse.cpp.orig	2024-09-18 13:39:04.000000000 +0000
 +++ tests/libslic3r/test_quadric_edge_collapse.cpp
 @@ -1,4 +1,4 @@
 -#include <catch2/catch.hpp>
 +#include <catch2/catch_test_macros.hpp>
+ #include <igl/qslim.h>
  #include <test_utils.hpp>
  
- #include <libslic3r/QuadricEdgeCollapse.hpp>
-@@ -240,7 +240,7 @@ TEST_CASE("Simplify frog_legs.obj to 5% 
- }
- 
- #include <libigl/igl/qslim.h>
--TEST_CASE("Simplify frog_legs.obj to 5% by IGL/qslim", "[]")
-+TEST_CASE("Simplify frog_legs.obj to 5% by IGL/qslim")
- {
-     std::string  obj_filename    = "frog_legs.obj";
-     TriangleMesh mesh            = load_model(obj_filename);


Home | Main Index | Thread Index | Old Index