pkgsrc-WIP-changes archive

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

prusaslicer: Update to version 2.6.0-beta4



Module Name:	pkgsrc-wip
Committed By:	Paul Ripke <stix%stix.id.au@localhost>
Pushed By:	stix
Date:		Sun Jun 4 16:57:42 2023 +1000
Changeset:	1b575c9995b442fb005bc0aabbb26fb7c8a64964

Modified Files:
	prusaslicer/Makefile
	prusaslicer/PLIST
	prusaslicer/distinfo
	prusaslicer/patches/patch-src_CMakeLists_txt
	prusaslicer/patches/patch-src_libslic3r_Thread.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp
	prusaslicer/patches/patch-src_slic3r_GUI_GLCanvas3D.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_Plater.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_PrintHostDialogs.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_Tab.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_UnsavedChangesDialog.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_UnsavedChangesDialog.hpp
	prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.cpp
Added Files:
	prusaslicer/patches/patch-src_slic3r_GUI_BitmapCache.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.hpp
	prusaslicer/patches/patch-src_slic3r_GUI_Field.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_GUI.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_GUI.hpp
	prusaslicer/patches/patch-src_slic3r_GUI_GUI__Factories.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_GUI__ObjectLayers.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_GUI__ObjectManipulation.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_KBShortcutsDialog.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_OptionsGroup.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_Preferences.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_UpdateDialogs.cpp
	prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.hpp
	prusaslicer/patches/patch-src_slic3r_Utils_FontConfigHelp.hpp
	prusaslicer/patches/patch-src_slic3r_Utils_WxFontUtils.cpp
Removed Files:
	prusaslicer/patches/patch-src_hints_HintsToPot.cpp
	prusaslicer/patches/patch-src_libslic3r_CMakeLists.txt
	prusaslicer/patches/patch-src_slic3r_CMakeLists.txt
	prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard__private.hpp
	prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.hpp
	prusaslicer/patches/patch-src_slic3r_GUI_NotificationManager.cpp

Log Message:
prusaslicer: Update to version 2.6.0-beta4

Major new features with 2.6.0:
- Organic supports
- Measurement tool
- Text embossing tool
- Cut tool update
- Automatic FDM support painter and print checker
- Dynamic overhang speed
- Extra perimeters on overhangs (EXPERIMENTAL)
- Avoid crossing curled overhangs (EXPERIMENTAL)
- Downloads from Printables.com
- Template filaments
- 'Monotonic lines' top/bottom fill pattern
- New experimental tree-like support strategy for SLA
- Multipart objects in SLA
- Multi-material printing

Full release notes:
https://github.com/prusa3d/PrusaSlicer/releases/tag/version_2.6.0-alpha2

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

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

diffstat:
 prusaslicer/Makefile                               |   8 +-
 prusaslicer/PLIST                                  | 265 +++++++++++++++++++--
 prusaslicer/distinfo                               |  53 +++--
 prusaslicer/patches/patch-src_CMakeLists_txt       |  15 +-
 prusaslicer/patches/patch-src_hints_HintsToPot.cpp |  16 --
 .../patches/patch-src_libslic3r_CMakeLists.txt     |  16 --
 prusaslicer/patches/patch-src_libslic3r_Thread.cpp |  10 +-
 .../patches/patch-src_slic3r_CMakeLists.txt        |  16 --
 .../patches/patch-src_slic3r_GUI_BitmapCache.cpp   |  24 ++
 .../patches/patch-src_slic3r_GUI_ConfigWizard.cpp  |  25 +-
 .../patches/patch-src_slic3r_GUI_ConfigWizard.hpp  |  24 ++
 .../patch-src_slic3r_GUI_ConfigWizard__private.hpp |  15 --
 ...tch-src_slic3r_GUI_DesktopIntegrationDialog.cpp |   9 +-
 ...tch-src_slic3r_GUI_DesktopIntegrationDialog.hpp |   4 +-
 prusaslicer/patches/patch-src_slic3r_GUI_Field.cpp |  15 ++
 .../patches/patch-src_slic3r_GUI_GLCanvas3D.cpp    |  22 +-
 prusaslicer/patches/patch-src_slic3r_GUI_GUI.cpp   |  15 ++
 prusaslicer/patches/patch-src_slic3r_GUI_GUI.hpp   |  15 ++
 .../patches/patch-src_slic3r_GUI_GUI__App.cpp      |  64 ++---
 .../patches/patch-src_slic3r_GUI_GUI__App.hpp      |  15 --
 .../patch-src_slic3r_GUI_GUI__Factories.cpp        |  15 ++
 .../patch-src_slic3r_GUI_GUI__ObjectLayers.cpp     |  24 ++
 ...atch-src_slic3r_GUI_GUI__ObjectManipulation.cpp |  15 ++
 .../patch-src_slic3r_GUI_KBShortcutsDialog.cpp     |  15 ++
 .../patch-src_slic3r_GUI_NotificationManager.cpp   |  18 --
 .../patches/patch-src_slic3r_GUI_OptionsGroup.cpp  |  24 ++
 .../patches/patch-src_slic3r_GUI_Plater.cpp        |  34 ++-
 .../patches/patch-src_slic3r_GUI_Preferences.cpp   |  24 ++
 .../patch-src_slic3r_GUI_PrintHostDialogs.cpp      |  21 +-
 prusaslicer/patches/patch-src_slic3r_GUI_Tab.cpp   |  19 +-
 .../patch-src_slic3r_GUI_UnsavedChangesDialog.cpp  |  37 +--
 .../patch-src_slic3r_GUI_UnsavedChangesDialog.hpp  |  10 +-
 .../patches/patch-src_slic3r_GUI_UpdateDialogs.cpp |  24 ++
 .../patches/patch-src_slic3r_GUI_wxExtensions.cpp  |  30 ++-
 .../patches/patch-src_slic3r_GUI_wxExtensions.hpp  |  15 ++
 .../patch-src_slic3r_Utils_FontConfigHelp.hpp      |  15 ++
 .../patches/patch-src_slic3r_Utils_WxFontUtils.cpp |  49 ++++
 37 files changed, 764 insertions(+), 271 deletions(-)

diffs:
diff --git a/prusaslicer/Makefile b/prusaslicer/Makefile
index 80f1730c72..90b35b0efd 100644
--- a/prusaslicer/Makefile
+++ b/prusaslicer/Makefile
@@ -1,6 +1,6 @@
 # $NetBSD$
 
-PKGVERSION=	2.5.2
+PKGVERSION=	2.6.0-beta4
 PKGNAME=	prusaslicer-${PKGVERSION}
 DISTNAME=	PrusaSlicer-${PKGVERSION:S/rc/-rc/}
 CATEGORIES=	cad
@@ -51,21 +51,23 @@ CMAKE_ARGS+=	-DSLIC3R_FHS:BOOL=TRUE
 .include "../../graphics/libjpeg-turbo/buildlink3.mk"
 .include "../../graphics/png/buildlink3.mk"
 .include "../../graphics/tiff/buildlink3.mk"
-.include "../../math/cgal/buildlink3.mk"
 .include "../../math/eigen3/buildlink3.mk"
 .include "../../math/imath/buildlink3.mk"
 .include "../../math/qhull/buildlink3.mk"
 .include "../../parallel/threadingbuildingblocks/buildlink3.mk"
+.include "../../security/heimdal/buildlink3.mk"
 .include "../../sysutils/dbus/buildlink3.mk"
 .include "../../textproc/expat/buildlink3.mk"
 .include "../../wip/cereal/buildlink3.mk"
+.include "../../wip/cgal/buildlink3.mk"
+.include "../../wip/nanosvg/buildlink3.mk"
 .include "../../wip/nlopt/buildlink3.mk"
 .include "../../wip/opencascade-git/buildlink3.mk"
 .include "../../wip/openvdb/buildlink3.mk"
 .include "../../www/curl/buildlink3.mk"
 .include "../../x11/xcursor/buildlink3.mk"
 .include "../../x11/gtk3/buildlink3.mk"
-.include "../../x11/wxGTK30/buildlink3.mk"
+.include "../../x11/wxGTK31/buildlink3.mk"
 .include "../../x11/xcb-proto/buildlink3.mk"
 .include "../../x11/xcursor/buildlink3.mk"
 
diff --git a/prusaslicer/PLIST b/prusaslicer/PLIST
index 774372468f..fddd1d4aeb 100644
--- a/prusaslicer/PLIST
+++ b/prusaslicer/PLIST
@@ -3,6 +3,7 @@ bin/OCCTWrapper.so
 bin/prusa-gcodeviewer
 bin/prusa-slicer
 lib/udev/rules.d/90-3dconnexion.rules
+share/PrusaSlicer/data/embossed_text.obj
 share/PrusaSlicer/data/hints.ini
 share/PrusaSlicer/fonts/NotoSans-Regular.ttf
 share/PrusaSlicer/fonts/NotoSansCJK-Regular.ttc
@@ -30,6 +31,9 @@ share/PrusaSlicer/icons/add_gcode.svg
 share/PrusaSlicer/icons/add_modifier.svg
 share/PrusaSlicer/icons/add_negative.svg
 share/PrusaSlicer/icons/add_part.svg
+share/PrusaSlicer/icons/add_text_modifier.svg
+share/PrusaSlicer/icons/add_text_negative.svg
+share/PrusaSlicer/icons/add_text_part.svg
 share/PrusaSlicer/icons/advanced_plus.svg
 share/PrusaSlicer/icons/arrange.svg
 share/PrusaSlicer/icons/attention.svg
@@ -43,6 +47,7 @@ share/PrusaSlicer/icons/cog.svg
 share/PrusaSlicer/icons/cog_.svg
 share/PrusaSlicer/icons/cog_go.png
 share/PrusaSlicer/icons/collapse.svg
+share/PrusaSlicer/icons/collapse_btn.svg
 share/PrusaSlicer/icons/colorchange_add.svg
 share/PrusaSlicer/icons/colorchange_add_f.svg
 share/PrusaSlicer/icons/colorchange_add_m.svg
@@ -56,14 +61,19 @@ share/PrusaSlicer/icons/cross.svg
 share/PrusaSlicer/icons/cross_focus.svg
 share/PrusaSlicer/icons/cross_focus_large.svg
 share/PrusaSlicer/icons/cut.svg
+share/PrusaSlicer/icons/cut_.svg
+share/PrusaSlicer/icons/cut_connectors.svg
 share/PrusaSlicer/icons/delete.svg
 share/PrusaSlicer/icons/delete_all.svg
 share/PrusaSlicer/icons/delete_all_menu.svg
 share/PrusaSlicer/icons/dot.svg
 share/PrusaSlicer/icons/dot_small.svg
 share/PrusaSlicer/icons/dot_white.svg
+share/PrusaSlicer/icons/dowel.svg
 share/PrusaSlicer/icons/drop_to_bed.svg
+share/PrusaSlicer/icons/edit.svg
 share/PrusaSlicer/icons/edit_button.svg
+share/PrusaSlicer/icons/edit_button_pressed.svg
 share/PrusaSlicer/icons/edit_gcode.svg
 share/PrusaSlicer/icons/edit_gcode_f.svg
 share/PrusaSlicer/icons/edit_layers_all.svg
@@ -79,6 +89,7 @@ share/PrusaSlicer/icons/error_tick_f.svg
 share/PrusaSlicer/icons/exclamation.svg
 share/PrusaSlicer/icons/exclamation_manifold.svg
 share/PrusaSlicer/icons/exit.svg
+share/PrusaSlicer/icons/expand_btn.svg
 share/PrusaSlicer/icons/export_config.svg
 share/PrusaSlicer/icons/export_config_bundle.svg
 share/PrusaSlicer/icons/export_gcode.svg
@@ -105,6 +116,18 @@ share/PrusaSlicer/icons/instance_remove.svg
 share/PrusaSlicer/icons/ironing.svg
 share/PrusaSlicer/icons/layers.svg
 share/PrusaSlicer/icons/layers_white.svg
+share/PrusaSlicer/icons/legend_cog.svg
+share/PrusaSlicer/icons/legend_colorchanges.svg
+share/PrusaSlicer/icons/legend_customgcodes.svg
+share/PrusaSlicer/icons/legend_deretract.svg
+share/PrusaSlicer/icons/legend_pauseprints.svg
+share/PrusaSlicer/icons/legend_retract.svg
+share/PrusaSlicer/icons/legend_seams.svg
+share/PrusaSlicer/icons/legend_shells.svg
+share/PrusaSlicer/icons/legend_toolchanges.svg
+share/PrusaSlicer/icons/legend_toolmarker.svg
+share/PrusaSlicer/icons/legend_travel.svg
+share/PrusaSlicer/icons/legend_wipe.svg
 share/PrusaSlicer/icons/lock.svg
 share/PrusaSlicer/icons/lock_closed.svg
 share/PrusaSlicer/icons/lock_closed_f.svg
@@ -112,14 +135,20 @@ share/PrusaSlicer/icons/lock_closed_white.svg
 share/PrusaSlicer/icons/lock_open.svg
 share/PrusaSlicer/icons/lock_open_f.svg
 share/PrusaSlicer/icons/lock_open_sys.svg
+share/PrusaSlicer/icons/make_bold.svg
+share/PrusaSlicer/icons/make_italic.svg
+share/PrusaSlicer/icons/make_unbold.svg
+share/PrusaSlicer/icons/make_unitalic.svg
 share/PrusaSlicer/icons/mark_X.svg
 share/PrusaSlicer/icons/mark_Y.svg
 share/PrusaSlicer/icons/mark_Z.svg
+share/PrusaSlicer/icons/measure.svg
 share/PrusaSlicer/icons/mirroring_off.svg
 share/PrusaSlicer/icons/mirroring_on.svg
 share/PrusaSlicer/icons/mirroring_transparent.svg
 share/PrusaSlicer/icons/mmu_segmentation.svg
 share/PrusaSlicer/icons/mmu_segmentation_.svg
+share/PrusaSlicer/icons/mode.svg
 share/PrusaSlicer/icons/mode_advanced.svg
 share/PrusaSlicer/icons/mode_expert.svg
 share/PrusaSlicer/icons/mode_simple.svg
@@ -139,6 +168,12 @@ share/PrusaSlicer/icons/notification_error.svg
 share/PrusaSlicer/icons/notification_info.svg
 share/PrusaSlicer/icons/notification_minimalize.svg
 share/PrusaSlicer/icons/notification_minimalize_hover.svg
+share/PrusaSlicer/icons/notification_open.svg
+share/PrusaSlicer/icons/notification_open_hover.svg
+share/PrusaSlicer/icons/notification_pause.svg
+share/PrusaSlicer/icons/notification_pause_hover.svg
+share/PrusaSlicer/icons/notification_play.svg
+share/PrusaSlicer/icons/notification_play_hover.svg
 share/PrusaSlicer/icons/notification_preferences.svg
 share/PrusaSlicer/icons/notification_preferences_hover.svg
 share/PrusaSlicer/icons/notification_right.svg
@@ -147,6 +182,7 @@ share/PrusaSlicer/icons/notification_warning.svg
 share/PrusaSlicer/icons/number_of_copies.svg
 share/PrusaSlicer/icons/objlist_info.svg
 share/PrusaSlicer/icons/open.svg
+share/PrusaSlicer/icons/open_browser.svg
 share/PrusaSlicer/icons/output+page_white.svg
 share/PrusaSlicer/icons/pad.svg
 share/PrusaSlicer/icons/paste.svg
@@ -155,6 +191,7 @@ share/PrusaSlicer/icons/pause_print.svg
 share/PrusaSlicer/icons/pause_print_f.svg
 share/PrusaSlicer/icons/place.svg
 share/PrusaSlicer/icons/plater.svg
+share/PrusaSlicer/icons/plug.svg
 share/PrusaSlicer/icons/preview.svg
 share/PrusaSlicer/icons/preview_menu.svg
 share/PrusaSlicer/icons/printer.svg
@@ -186,6 +223,8 @@ share/PrusaSlicer/icons/sinking.svg
 share/PrusaSlicer/icons/skirt+brim.svg
 share/PrusaSlicer/icons/sla_printer.svg
 share/PrusaSlicer/icons/sla_supports.svg
+share/PrusaSlicer/icons/sla_view_original.svg
+share/PrusaSlicer/icons/sla_view_processed.svg
 share/PrusaSlicer/icons/splashscreen-gcodepreview.jpg
 share/PrusaSlicer/icons/splashscreen.jpg
 share/PrusaSlicer/icons/split_object_SMALL.svg
@@ -208,6 +247,7 @@ share/PrusaSlicer/icons/time.svg
 share/PrusaSlicer/icons/timer_dot.svg
 share/PrusaSlicer/icons/timer_dot_empty.svg
 share/PrusaSlicer/icons/toolbar_arrow.svg
+share/PrusaSlicer/icons/toolbar_arrow_2.svg
 share/PrusaSlicer/icons/toolbar_background.png
 share/PrusaSlicer/icons/undo.svg
 share/PrusaSlicer/icons/undo_menu.svg
@@ -216,6 +256,8 @@ share/PrusaSlicer/icons/upload_queue.svg
 share/PrusaSlicer/icons/wrench.svg
 share/PrusaSlicer/icons/wrench_white.svg
 share/PrusaSlicer/localization/PrusaSlicer.pot
+share/PrusaSlicer/localization/be/PrusaSlicer.mo
+share/PrusaSlicer/localization/be/PrusaSlicer_be.po
 share/PrusaSlicer/localization/ca/PrusaSlicer.mo
 share/PrusaSlicer/localization/ca/PrusaSlicer_ca.po
 share/PrusaSlicer/localization/cs/PrusaSlicer.mo
@@ -226,6 +268,8 @@ share/PrusaSlicer/localization/en/PrusaSlicer.mo
 share/PrusaSlicer/localization/en/PrusaSlicer_en.po
 share/PrusaSlicer/localization/es/PrusaSlicer.mo
 share/PrusaSlicer/localization/es/PrusaSlicer_es.po
+share/PrusaSlicer/localization/fi/PrusaSlicer.mo
+share/PrusaSlicer/localization/fi/PrusaSlicer_fi.po
 share/PrusaSlicer/localization/fr/PrusaSlicer.mo
 share/PrusaSlicer/localization/fr/PrusaSlicer_fr.po
 share/PrusaSlicer/localization/hu/PrusaSlicer.mo
@@ -256,6 +300,7 @@ share/PrusaSlicer/localization/uk/PrusaSlicer_uk.po
 share/PrusaSlicer/localization/wx_locale/af.po
 share/PrusaSlicer/localization/wx_locale/an.po
 share/PrusaSlicer/localization/wx_locale/ar.po
+share/PrusaSlicer/localization/wx_locale/be.po
 share/PrusaSlicer/localization/wx_locale/ca.po
 share/PrusaSlicer/localization/wx_locale/ca%valencia.po@localhost
 share/PrusaSlicer/localization/wx_locale/cs.po
@@ -303,6 +348,13 @@ share/PrusaSlicer/localization/zh_CN/PrusaSlicer.mo
 share/PrusaSlicer/localization/zh_CN/PrusaSlicer_zh_CN.po
 share/PrusaSlicer/localization/zh_TW/PrusaSlicer.mo
 share/PrusaSlicer/localization/zh_TW/PrusaSlicer_zh_TW.po
+share/PrusaSlicer/profiles/Anker.idx
+share/PrusaSlicer/profiles/Anker.ini
+share/PrusaSlicer/profiles/Anker/M5-bed.stl
+share/PrusaSlicer/profiles/Anker/M5-texture.svg
+share/PrusaSlicer/profiles/Anker/M5-texture_v2.svg
+share/PrusaSlicer/profiles/Anker/M5_thumbnail.png
+share/PrusaSlicer/profiles/Anker/M5_thumbnail_v2.png
 share/PrusaSlicer/profiles/Anycubic.idx
 share/PrusaSlicer/profiles/Anycubic.ini
 share/PrusaSlicer/profiles/Anycubic/4MAXPRO20_bed.stl
@@ -317,6 +369,9 @@ share/PrusaSlicer/profiles/Anycubic/AK_thumbnail.png
 share/PrusaSlicer/profiles/Anycubic/I3MEGAS_thumbnail.png
 share/PrusaSlicer/profiles/Anycubic/I3MEGA_thumbnail.png
 share/PrusaSlicer/profiles/Anycubic/MEGA0_thumbnail.png
+share/PrusaSlicer/profiles/Anycubic/PHOTON MONO SE_thumbnail.png
+share/PrusaSlicer/profiles/Anycubic/PHOTON MONO X_thumbnail.png
+share/PrusaSlicer/profiles/Anycubic/PHOTON MONO_thumbnail.png
 share/PrusaSlicer/profiles/Anycubic/PREDATOR_thumbnail.png
 share/PrusaSlicer/profiles/Anycubic/i3megas.svg
 share/PrusaSlicer/profiles/Anycubic/i3megas_bed.stl
@@ -338,6 +393,11 @@ share/PrusaSlicer/profiles/BIBO.ini
 share/PrusaSlicer/profiles/BIBO/BIBO2.svg
 share/PrusaSlicer/profiles/BIBO/BIBO2_bed.stl
 share/PrusaSlicer/profiles/BIBO/BIBO2_thumbnail.png
+share/PrusaSlicer/profiles/BIQU.idx
+share/PrusaSlicer/profiles/BIQU.ini
+share/PrusaSlicer/profiles/BIQU/BIQUBX_thumbnail.png
+share/PrusaSlicer/profiles/BIQU/BX_Bed.stl
+share/PrusaSlicer/profiles/BIQU/BX_Texture.png
 share/PrusaSlicer/profiles/Creality.idx
 share/PrusaSlicer/profiles/Creality.ini
 share/PrusaSlicer/profiles/Creality/CR10MAX_thumbnail.png
@@ -377,10 +437,14 @@ share/PrusaSlicer/profiles/Creality/ENDER3V2_thumbnail.png
 share/PrusaSlicer/profiles/Creality/ENDER3_thumbnail.png
 share/PrusaSlicer/profiles/Creality/ENDER4_thumbnail.png
 share/PrusaSlicer/profiles/Creality/ENDER5PLUS_thumbnail.png
+share/PrusaSlicer/profiles/Creality/ENDER5PRO_thumbnail.png
+share/PrusaSlicer/profiles/Creality/ENDER5S1_thumbnail.png
 share/PrusaSlicer/profiles/Creality/ENDER5_thumbnail.png
 share/PrusaSlicer/profiles/Creality/ENDER6_thumbnail.png
 share/PrusaSlicer/profiles/Creality/ENDER7_thumbnail.png
 share/PrusaSlicer/profiles/Creality/SERMOOND1_thumbnail.png
+share/PrusaSlicer/profiles/Creality/SERMOONV1PRO_thumbnail.png
+share/PrusaSlicer/profiles/Creality/SERMOONV1_thumbnail.png
 share/PrusaSlicer/profiles/Creality/cr10.svg
 share/PrusaSlicer/profiles/Creality/cr10_bed.stl
 share/PrusaSlicer/profiles/Creality/cr10max.svg
@@ -418,12 +482,17 @@ share/PrusaSlicer/profiles/Creality/ender7.svg
 share/PrusaSlicer/profiles/Creality/ender7_bed.stl
 share/PrusaSlicer/profiles/Creality/sermoond1.svg
 share/PrusaSlicer/profiles/Creality/sermoond1_bed.stl
+share/PrusaSlicer/profiles/Creality/sermoonv1.svg
+share/PrusaSlicer/profiles/Creality/sermoonv1_bed.stl
 share/PrusaSlicer/profiles/Elegoo.idx
 share/PrusaSlicer/profiles/Elegoo.ini
 share/PrusaSlicer/profiles/Elegoo/NEPTUNE1_thumbnail.png
 share/PrusaSlicer/profiles/Elegoo/NEPTUNE2D_thumbnail.png
 share/PrusaSlicer/profiles/Elegoo/NEPTUNE2S_thumbnail.png
 share/PrusaSlicer/profiles/Elegoo/NEPTUNE2_thumbnail.png
+share/PrusaSlicer/profiles/Elegoo/NEPTUNE3MAX_thumbnail.png
+share/PrusaSlicer/profiles/Elegoo/NEPTUNE3PLUS_thumbnail.png
+share/PrusaSlicer/profiles/Elegoo/NEPTUNE3PRO_thumbnail.png
 share/PrusaSlicer/profiles/Elegoo/NEPTUNE3_thumbnail.png
 share/PrusaSlicer/profiles/Elegoo/NEPTUNEX_thumbnail.png
 share/PrusaSlicer/profiles/FLSun.idx
@@ -434,6 +503,52 @@ share/PrusaSlicer/profiles/FLSun/Q5_thumbnail.png
 share/PrusaSlicer/profiles/FLSun/QQSP.svg
 share/PrusaSlicer/profiles/FLSun/QQSP_bed.stl
 share/PrusaSlicer/profiles/FLSun/QQSP_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech.idx
+share/PrusaSlicer/profiles/Geeetech.ini
+share/PrusaSlicer/profiles/Geeetech/125X130.stl
+share/PrusaSlicer/profiles/Geeetech/125x130.svg
+share/PrusaSlicer/profiles/Geeetech/150x150.stl
+share/PrusaSlicer/profiles/Geeetech/150x150.svg
+share/PrusaSlicer/profiles/Geeetech/160x160.stl
+share/PrusaSlicer/profiles/Geeetech/160x160.svg
+share/PrusaSlicer/profiles/Geeetech/180X150.stl
+share/PrusaSlicer/profiles/Geeetech/180x150.svg
+share/PrusaSlicer/profiles/Geeetech/200x200.stl
+share/PrusaSlicer/profiles/Geeetech/200x200.svg
+share/PrusaSlicer/profiles/Geeetech/220x220.stl
+share/PrusaSlicer/profiles/Geeetech/220x220.svg
+share/PrusaSlicer/profiles/Geeetech/250x250.stl
+share/PrusaSlicer/profiles/Geeetech/250x250.svg
+share/PrusaSlicer/profiles/Geeetech/255x255.stl
+share/PrusaSlicer/profiles/Geeetech/255x255.svg
+share/PrusaSlicer/profiles/Geeetech/300x180.stl
+share/PrusaSlicer/profiles/Geeetech/300x180.svg
+share/PrusaSlicer/profiles/Geeetech/320x320.stl
+share/PrusaSlicer/profiles/Geeetech/320x320.svg
+share/PrusaSlicer/profiles/Geeetech/A10M_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/A10Pro_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/A10T_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/A20M_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/A20T_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/A20_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/A30M_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/A30Pro_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/A30T_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/E180_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/GiantArmD200_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/I3ProB_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/I3ProC_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/I3ProW_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/MeCreator2_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/MeCreator_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/MeDucer_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/MizarM_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/MizarMax_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/MizarPro_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/MizarS_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/Mizar_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/ThunderPro_thumbnail.png
+share/PrusaSlicer/profiles/Geeetech/Thunder_thumbnail.png
 share/PrusaSlicer/profiles/INAT.idx
 share/PrusaSlicer/profiles/INAT.ini
 share/PrusaSlicer/profiles/INAT/PROTON_XE750_thumbnail.png
@@ -456,6 +571,23 @@ share/PrusaSlicer/profiles/LulzBot.idx
 share/PrusaSlicer/profiles/LulzBot.ini
 share/PrusaSlicer/profiles/LulzBot/MINI_AERO_thumbnail.png
 share/PrusaSlicer/profiles/LulzBot/TAZ6_AERO_thumbnail.png
+share/PrusaSlicer/profiles/LulzBot/TAZ_WORKHORSE_thumbnail.png
+share/PrusaSlicer/profiles/MakerGear.idx
+share/PrusaSlicer/profiles/MakerGear.ini
+share/PrusaSlicer/profiles/MakerGear/M2_M3.stl
+share/PrusaSlicer/profiles/MakerGear/M2_M3.svg
+share/PrusaSlicer/profiles/MakerGear/MAKERGEAR_M2_DUAL_thumbnail.png
+share/PrusaSlicer/profiles/MakerGear/MAKERGEAR_M2_thumbnail.png
+share/PrusaSlicer/profiles/MakerGear/MAKERGEAR_M3_DUPLICATION_thumbnail.png
+share/PrusaSlicer/profiles/MakerGear/MAKERGEAR_M3_SE_thumbnail.png
+share/PrusaSlicer/profiles/MakerGear/MAKERGEAR_M3_thumbnail.png
+share/PrusaSlicer/profiles/MakerGear/MAKERGEAR_MICRO_thumbnail.png
+share/PrusaSlicer/profiles/MakerGear/MAKERGEAR_U1_thumbnail.png
+share/PrusaSlicer/profiles/Print4Taste.idx
+share/PrusaSlicer/profiles/Print4Taste.ini
+share/PrusaSlicer/profiles/Print4Taste/MC2.0_bed.stl
+share/PrusaSlicer/profiles/Print4Taste/MC2.0_texture.svg
+share/PrusaSlicer/profiles/Print4Taste/MC2.0_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch.idx
 share/PrusaSlicer/profiles/PrusaResearch.ini
 share/PrusaSlicer/profiles/PrusaResearch/MINI_thumbnail.png
@@ -469,6 +601,7 @@ share/PrusaSlicer/profiles/PrusaResearch/MK3MMU2_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/MK3SMMU2S_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/MK3S_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/MK3_thumbnail.png
+share/PrusaSlicer/profiles/PrusaResearch/MK4IS_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/MK4_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/SL1S_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/SL1_thumbnail.png
@@ -481,6 +614,7 @@ share/PrusaSlicer/profiles/PrusaResearch/mk3.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/sl1.svg
 share/PrusaSlicer/profiles/PrusaResearch/sl1_bed.stl
 share/PrusaSlicer/profiles/PrusaResearch/sl1s.svg
@@ -501,6 +635,19 @@ share/PrusaSlicer/profiles/RatRig/rr-vc-500.stl
 share/PrusaSlicer/profiles/RatRig/rr-vc-500.svg
 share/PrusaSlicer/profiles/RatRig/rr-vminion.stl
 share/PrusaSlicer/profiles/RatRig/rr-vminion.svg
+share/PrusaSlicer/profiles/Rigid3D.idx
+share/PrusaSlicer/profiles/Rigid3D.ini
+share/PrusaSlicer/profiles/Rigid3D/Mucit2_thumbnail.png
+share/PrusaSlicer/profiles/Rigid3D/Mucit_thumbnail.png
+share/PrusaSlicer/profiles/Rigid3D/Zero2_thumbnail.png
+share/PrusaSlicer/profiles/Rigid3D/Zero3_thumbnail.png
+share/PrusaSlicer/profiles/Rigid3D/mucit2_bed.png
+share/PrusaSlicer/profiles/Rigid3D/mucit2_bed.stl
+share/PrusaSlicer/profiles/Rigid3D/mucit_bed.png
+share/PrusaSlicer/profiles/Rigid3D/mucit_bed.stl
+share/PrusaSlicer/profiles/Rigid3D/zero2_bed.png
+share/PrusaSlicer/profiles/Rigid3D/zero3_bed.png
+share/PrusaSlicer/profiles/Rigid3D/zero_bed.stl
 share/PrusaSlicer/profiles/Snapmaker.idx
 share/PrusaSlicer/profiles/Snapmaker.ini
 share/PrusaSlicer/profiles/Snapmaker/A250_bed.stl
@@ -509,6 +656,8 @@ share/PrusaSlicer/profiles/Snapmaker/A250_thumbnail.png
 share/PrusaSlicer/profiles/Snapmaker/A350_bed.stl
 share/PrusaSlicer/profiles/Snapmaker/A350_texture.svg
 share/PrusaSlicer/profiles/Snapmaker/A350_thumbnail.png
+share/PrusaSlicer/profiles/Templates.idx
+share/PrusaSlicer/profiles/Templates.ini
 share/PrusaSlicer/profiles/TriLAB.idx
 share/PrusaSlicer/profiles/TriLAB.ini
 share/PrusaSlicer/profiles/TriLAB/AQD_thumbnail.png
@@ -532,6 +681,7 @@ share/PrusaSlicer/profiles/Ultimaker/ultimaker2.svg
 share/PrusaSlicer/profiles/Ultimaker/ultimaker2_bed.stl
 share/PrusaSlicer/profiles/Voron.idx
 share/PrusaSlicer/profiles/Voron.ini
+share/PrusaSlicer/profiles/Voron/Voron_SW_thumbnail.png
 share/PrusaSlicer/profiles/Voron/Voron_v0_120_thumbnail.png
 share/PrusaSlicer/profiles/Voron/Voron_v1_250_afterburner_thumbnail.png
 share/PrusaSlicer/profiles/Voron/Voron_v1_300_afterburner_thumbnail.png
@@ -542,12 +692,14 @@ share/PrusaSlicer/profiles/Voron/Voron_v2_300_afterburner_thumbnail.png
 share/PrusaSlicer/profiles/Voron/Voron_v2_300_thumbnail.png
 share/PrusaSlicer/profiles/Voron/Voron_v2_350_afterburner_thumbnail.png
 share/PrusaSlicer/profiles/Voron/Voron_v2_350_thumbnail.png
+share/PrusaSlicer/profiles/Voron/bedtexture-SW-250x210.png
 share/PrusaSlicer/profiles/Voron/bedtexture-v0-120.png
 share/PrusaSlicer/profiles/Voron/bedtexture-v1-250.png
 share/PrusaSlicer/profiles/Voron/bedtexture-v1-300.png
 share/PrusaSlicer/profiles/Voron/bedtexture-v2-250.png
 share/PrusaSlicer/profiles/Voron/bedtexture-v2-300.png
 share/PrusaSlicer/profiles/Voron/bedtexture-v2-350.png
+share/PrusaSlicer/profiles/Voron/printbed-SW-MK52.stl
 share/PrusaSlicer/profiles/Voron/printbed-v0-120.stl
 share/PrusaSlicer/profiles/Voron/printbed-v1-250.stl
 share/PrusaSlicer/profiles/Voron/printbed-v1-300.stl
@@ -580,26 +732,97 @@ share/PrusaSlicer/profiles/gCreate/gmax15p_bed.stl
 share/PrusaSlicer/profiles/gCreate/gmax2.svg
 share/PrusaSlicer/profiles/gCreate/gmax2_bed.stl
 share/PrusaSlicer/resources
-share/PrusaSlicer/shaders/gouraud.fs
-share/PrusaSlicer/shaders/gouraud.vs
-share/PrusaSlicer/shaders/gouraud_light.fs
-share/PrusaSlicer/shaders/gouraud_light.vs
-share/PrusaSlicer/shaders/gouraud_light_instanced.fs
-share/PrusaSlicer/shaders/gouraud_light_instanced.vs
-share/PrusaSlicer/shaders/mm_contour.fs
-share/PrusaSlicer/shaders/mm_contour.vs
-share/PrusaSlicer/shaders/mm_gouraud.fs
-share/PrusaSlicer/shaders/mm_gouraud.vs
-share/PrusaSlicer/shaders/options_110.fs
-share/PrusaSlicer/shaders/options_110.vs
-share/PrusaSlicer/shaders/options_120.fs
-share/PrusaSlicer/shaders/options_120.vs
-share/PrusaSlicer/shaders/printbed.fs
-share/PrusaSlicer/shaders/printbed.vs
-share/PrusaSlicer/shaders/toolpaths_lines.fs
-share/PrusaSlicer/shaders/toolpaths_lines.vs
-share/PrusaSlicer/shaders/variable_layer_height.fs
-share/PrusaSlicer/shaders/variable_layer_height.vs
+share/PrusaSlicer/shaders/110/background.fs
+share/PrusaSlicer/shaders/110/background.vs
+share/PrusaSlicer/shaders/110/flat.fs
+share/PrusaSlicer/shaders/110/flat.vs
+share/PrusaSlicer/shaders/110/flat_clip.fs
+share/PrusaSlicer/shaders/110/flat_clip.vs
+share/PrusaSlicer/shaders/110/flat_texture.fs
+share/PrusaSlicer/shaders/110/flat_texture.vs
+share/PrusaSlicer/shaders/110/gouraud.fs
+share/PrusaSlicer/shaders/110/gouraud.vs
+share/PrusaSlicer/shaders/110/gouraud_light.fs
+share/PrusaSlicer/shaders/110/gouraud_light.vs
+share/PrusaSlicer/shaders/110/gouraud_light_clip.fs
+share/PrusaSlicer/shaders/110/gouraud_light_clip.vs
+share/PrusaSlicer/shaders/110/gouraud_light_instanced.fs
+share/PrusaSlicer/shaders/110/gouraud_light_instanced.vs
+share/PrusaSlicer/shaders/110/imgui.fs
+share/PrusaSlicer/shaders/110/imgui.vs
+share/PrusaSlicer/shaders/110/mm_contour.fs
+share/PrusaSlicer/shaders/110/mm_contour.vs
+share/PrusaSlicer/shaders/110/mm_gouraud.fs
+share/PrusaSlicer/shaders/110/mm_gouraud.vs
+share/PrusaSlicer/shaders/110/printbed.fs
+share/PrusaSlicer/shaders/110/printbed.vs
+share/PrusaSlicer/shaders/110/toolpaths_cog.fs
+share/PrusaSlicer/shaders/110/toolpaths_cog.vs
+share/PrusaSlicer/shaders/110/variable_layer_height.fs
+share/PrusaSlicer/shaders/110/variable_layer_height.vs
+share/PrusaSlicer/shaders/140/background.fs
+share/PrusaSlicer/shaders/140/background.vs
+share/PrusaSlicer/shaders/140/dashed_thick_lines.fs
+share/PrusaSlicer/shaders/140/dashed_thick_lines.gs
+share/PrusaSlicer/shaders/140/dashed_thick_lines.vs
+share/PrusaSlicer/shaders/140/flat.fs
+share/PrusaSlicer/shaders/140/flat.vs
+share/PrusaSlicer/shaders/140/flat_clip.fs
+share/PrusaSlicer/shaders/140/flat_clip.vs
+share/PrusaSlicer/shaders/140/flat_texture.fs
+share/PrusaSlicer/shaders/140/flat_texture.vs
+share/PrusaSlicer/shaders/140/gouraud.fs
+share/PrusaSlicer/shaders/140/gouraud.vs
+share/PrusaSlicer/shaders/140/gouraud_light.fs
+share/PrusaSlicer/shaders/140/gouraud_light.vs
+share/PrusaSlicer/shaders/140/gouraud_light_clip.fs
+share/PrusaSlicer/shaders/140/gouraud_light_clip.vs
+share/PrusaSlicer/shaders/140/gouraud_light_instanced.fs
+share/PrusaSlicer/shaders/140/gouraud_light_instanced.vs
+share/PrusaSlicer/shaders/140/imgui.fs
+share/PrusaSlicer/shaders/140/imgui.vs
+share/PrusaSlicer/shaders/140/mm_contour.fs
+share/PrusaSlicer/shaders/140/mm_contour.vs
+share/PrusaSlicer/shaders/140/mm_gouraud.fs
+share/PrusaSlicer/shaders/140/mm_gouraud.vs
+share/PrusaSlicer/shaders/140/printbed.fs
+share/PrusaSlicer/shaders/140/printbed.vs
+share/PrusaSlicer/shaders/140/toolpaths_cog.fs
+share/PrusaSlicer/shaders/140/toolpaths_cog.vs
+share/PrusaSlicer/shaders/140/variable_layer_height.fs
+share/PrusaSlicer/shaders/140/variable_layer_height.vs
+share/PrusaSlicer/shaders/ES/background.fs
+share/PrusaSlicer/shaders/ES/background.vs
+share/PrusaSlicer/shaders/ES/dashed_lines.fs
+share/PrusaSlicer/shaders/ES/dashed_lines.vs
+share/PrusaSlicer/shaders/ES/flat.fs
+share/PrusaSlicer/shaders/ES/flat.vs
+share/PrusaSlicer/shaders/ES/flat_clip.fs
+share/PrusaSlicer/shaders/ES/flat_clip.vs
+share/PrusaSlicer/shaders/ES/flat_texture.fs
+share/PrusaSlicer/shaders/ES/flat_texture.vs
+share/PrusaSlicer/shaders/ES/gouraud.fs
+share/PrusaSlicer/shaders/ES/gouraud.vs
+share/PrusaSlicer/shaders/ES/gouraud_light.fs
+share/PrusaSlicer/shaders/ES/gouraud_light.vs
+share/PrusaSlicer/shaders/ES/gouraud_light_clip.fs
+share/PrusaSlicer/shaders/ES/gouraud_light_clip.vs
+share/PrusaSlicer/shaders/ES/gouraud_light_instanced.fs
+share/PrusaSlicer/shaders/ES/gouraud_light_instanced.vs
+share/PrusaSlicer/shaders/ES/imgui.fs
+share/PrusaSlicer/shaders/ES/imgui.vs
+share/PrusaSlicer/shaders/ES/mm_contour.fs
+share/PrusaSlicer/shaders/ES/mm_contour.vs
+share/PrusaSlicer/shaders/ES/mm_gouraud.fs
+share/PrusaSlicer/shaders/ES/mm_gouraud.vs
+share/PrusaSlicer/shaders/ES/printbed.fs
+share/PrusaSlicer/shaders/ES/printbed.vs
+share/PrusaSlicer/shaders/ES/toolpaths_cog.fs
+share/PrusaSlicer/shaders/ES/toolpaths_cog.vs
+share/PrusaSlicer/shaders/ES/variable_layer_height.fs
+share/PrusaSlicer/shaders/ES/variable_layer_height.vs
+share/PrusaSlicer/shaders/ES/wireframe.fs
+share/PrusaSlicer/shaders/ES/wireframe.vs
 share/PrusaSlicer/shapes/M3_hex_nut.png
 share/PrusaSlicer/shapes/M3_hex_nut.stl
 share/PrusaSlicer/shapes/M3x10_screw.png
@@ -626,6 +849,8 @@ share/PrusaSlicer/shapes/sphere.png
 share/PrusaSlicer/shapes/sphere.stl
 share/PrusaSlicer/shapes/torus.png
 share/PrusaSlicer/shapes/torus.stl
+share/PrusaSlicer/shapes/universal wall mount hole.png
+share/PrusaSlicer/shapes/universal wall mount hole.stl
 share/applications/PrusaGcodeviewer.desktop
 share/applications/PrusaSlicer.desktop
 share/icons/hicolor/128x128/apps/PrusaSlicer-gcodeviewer.png
diff --git a/prusaslicer/distinfo b/prusaslicer/distinfo
index 528700a1fb..e585b2a370 100644
--- a/prusaslicer/distinfo
+++ b/prusaslicer/distinfo
@@ -1,47 +1,56 @@
 $NetBSD$
 
-BLAKE2s (PrusaSlicer-2.5.2.tar.gz) = ca1fa708cd816ac0597591090286c849341ddcb4696d7ea89abb6f4a10bfc0fe
-SHA512 (PrusaSlicer-2.5.2.tar.gz) = 7d17ce358f742ef44725b0b4160be3ddc522d2160d0b467589a1def82b2f478108e4934efb80feff043435b69fe7e81f18146277f67ec1819d9a0150fa9942a2
-Size (PrusaSlicer-2.5.2.tar.gz) = 49039089 bytes
+BLAKE2s (PrusaSlicer-2.6.0-beta4.tar.gz) = f53c530acc32863b6f12ae1aebc015d76a03f04a6c3015687ab34868fc920058
+SHA512 (PrusaSlicer-2.6.0-beta4.tar.gz) = bf19ba2a16a798634f29f8f9f43ebcb97ddbcafd4d20dbdbe62119bbc1c515bf1b2e1a8c06243566bf8eb673ebb996151bc6ac47a0e251df375bb93292f747ad
+Size (PrusaSlicer-2.6.0-beta4.tar.gz) = 52347813 bytes
 SHA1 (patch-CMakeLists.txt) = 33eb39d85ba7b33226f2cc022250872c3ffa28d8
 SHA1 (patch-cmake_modules_FindOpenVDB.cmake) = 4f2afc423a70fe60617b33ff7f26859b39775faa
-SHA1 (patch-src_CMakeLists_txt) = 81526fa13d1a084e96bf1c4d546f677968ad4b74
+SHA1 (patch-src_CMakeLists_txt) = fe61037cd75fe49f7de593986c864222dac0ca44
 SHA1 (patch-src_avrdude_arduino.c) = ff02a4cab1c2d8c82ec7b22c7447ed5ec360ac57
 SHA1 (patch-src_avrdude_libavrdude.h) = 62d48054b147985249664f257dbd8bbd670df233
-SHA1 (patch-src_hints_HintsToPot.cpp) = d27de20ac1a2a424661ad772900be7b9506e794c
-SHA1 (patch-src_libslic3r_CMakeLists.txt) = bc82a71633adcb23dca4850d1076f99340030f2b
 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_Thread.cpp) = 4d8bc324f959792065e03aa3043658e963c1cf62
+SHA1 (patch-src_libslic3r_Thread.cpp) = 8aa488b933baa97132058f88a82eef8db73ab2f5
 SHA1 (patch-src_occt__wrapper_CMakeLists.txt) = 2e11271757bcc76f3832c8fd27943f3ef97136f1
-SHA1 (patch-src_slic3r_CMakeLists.txt) = 32058caf991b20993c1afecf12154a923db28416
-SHA1 (patch-src_slic3r_GUI_ConfigWizard.cpp) = 523d2eeb26c9f580ccdeb034743c301dcc56c727
-SHA1 (patch-src_slic3r_GUI_ConfigWizard__private.hpp) = 7ac3e3a9a67ebe7c99fbfc17ed9c0b2750d96974
-SHA1 (patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp) = d61919d6f053cd598741255bffc29e80c79863df
-SHA1 (patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp) = dd35d8a5c0ccaae50b969352f0f23f974a2ee89f
+SHA1 (patch-src_slic3r_GUI_BitmapCache.cpp) = 9a464bcb09589e12de70ce57cda17f526df33b9b
+SHA1 (patch-src_slic3r_GUI_ConfigWizard.cpp) = 01e405fe0f743d3f8e2d76b987b51ff862ae6f97
+SHA1 (patch-src_slic3r_GUI_ConfigWizard.hpp) = 6eed54e08497ec1dc6fea33263ab65d2d7e0dc0d
+SHA1 (patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp) = ca51a9afbe5300dfdc6f7277c9c10081eb72e82f
+SHA1 (patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp) = a124f3be0d0f0ca3ef58d92d96e6670580e9115c
 SHA1 (patch-src_slic3r_GUI_ExtraRenderers.cpp) = ac803510123ff016b8fa6f22d491c898166e0929
-SHA1 (patch-src_slic3r_GUI_GLCanvas3D.cpp) = 7abaef0d1ffd79fd1fc2de5e8dc445a073386353
-SHA1 (patch-src_slic3r_GUI_GUI__App.cpp) = 8542df80bc371945db4ef67da58be103221ef4ce
-SHA1 (patch-src_slic3r_GUI_GUI__App.hpp) = 9a4e30158b67fb6b73fc1b5ce45c458fb60c60a4
+SHA1 (patch-src_slic3r_GUI_Field.cpp) = a0901064c68aa5e6c2396ccec36018e45f92fbcb
+SHA1 (patch-src_slic3r_GUI_GLCanvas3D.cpp) = c6ba7c5418cbe0cd09310ed0c0f724de027ee2b6
+SHA1 (patch-src_slic3r_GUI_GUI.cpp) = ab8bb26e14f17eed20587693ac1ef568b8cd8cd5
+SHA1 (patch-src_slic3r_GUI_GUI.hpp) = 52442f3881564cfe7c31ff51d63c96129f162aed
+SHA1 (patch-src_slic3r_GUI_GUI__App.cpp) = d01d66603eb0913a0594d054f567d35de0e6ab46
+SHA1 (patch-src_slic3r_GUI_GUI__Factories.cpp) = a3db8dc6e41c4df3cba7282fdd0cdadd1bc7d956
+SHA1 (patch-src_slic3r_GUI_GUI__ObjectLayers.cpp) = da99be89d62efffceaccc81ade8e55e1fadb7919
+SHA1 (patch-src_slic3r_GUI_GUI__ObjectManipulation.cpp) = 8c4e9e451642d5d5139d2ef64b3ca666655d05a5
 SHA1 (patch-src_slic3r_GUI_GUI__Preview.cpp) = 8555c73aa6aa3d65b4d34fc93ccb1fbb2957a76f
 SHA1 (patch-src_slic3r_GUI_GUI__Preview.hpp) = 904556d0f85f28a8174845089647bb3691783f37
 SHA1 (patch-src_slic3r_GUI_GUI__Utils.cpp) = bcbc83109ba7806e6371d0ef10f3c05cc480d730
 SHA1 (patch-src_slic3r_GUI_InstanceCheck.cpp) = c9ae1ec2db2b493578cc128383fa4cf0b3e2ae6a
 SHA1 (patch-src_slic3r_GUI_InstanceCheck.hpp) = 2af0741f480c41d5cc5bd9d3e55480c8e6ab029c
+SHA1 (patch-src_slic3r_GUI_KBShortcutsDialog.cpp) = 82a395a10e9d0a1b049863d8d30bce2ed99cb5f2
 SHA1 (patch-src_slic3r_GUI_Mouse3DController.cpp) = bf8bf60e17e304a2022b9a80852d7ab38fc2451d
 SHA1 (patch-src_slic3r_GUI_Mouse3DController.hpp) = 6a008114e932b08951428b6fa882b41acaa85c0b
-SHA1 (patch-src_slic3r_GUI_NotificationManager.cpp) = 4e774bfdd777cba3e46ac4358b92c63896914b71
-SHA1 (patch-src_slic3r_GUI_Plater.cpp) = 5235502df6c7227befd58e29de0b4a0ab7f1975f
+SHA1 (patch-src_slic3r_GUI_OptionsGroup.cpp) = c413f24a9a50069b93bdd611b95fa85ccab45567
+SHA1 (patch-src_slic3r_GUI_Plater.cpp) = a9c45bac6bf524b411882f3eedc859401e8a1a35
+SHA1 (patch-src_slic3r_GUI_Preferences.cpp) = 522ee0f2b024836b2b1d5521f0d368c3dd2c24c5
 SHA1 (patch-src_slic3r_GUI_PresetComboBoxes.cpp) = 89654aa2e0384b35b61a19a22399683e7f4417ae
 SHA1 (patch-src_slic3r_GUI_PresetComboBoxes.hpp) = 0c84c1b706a1f4e00f60c1677c7edf53845d4467
-SHA1 (patch-src_slic3r_GUI_PrintHostDialogs.cpp) = 0f5bc25dd1e96393274a2d882d80fcb3c4d26bdb
+SHA1 (patch-src_slic3r_GUI_PrintHostDialogs.cpp) = bbdd89d236b4596f009616e553d601d3e032114c
 SHA1 (patch-src_slic3r_GUI_RemovableDriveManager.cpp) = 413499908128be48106d5fd6aea5d413bb959b35
-SHA1 (patch-src_slic3r_GUI_Tab.cpp) = 6b615054719ad3bd3bfcc7e5c7c2a57ae5e66041
-SHA1 (patch-src_slic3r_GUI_UnsavedChangesDialog.cpp) = c2e4e2bfccd8492506c4f794b7085fa2c1cbe846
-SHA1 (patch-src_slic3r_GUI_UnsavedChangesDialog.hpp) = cb399a0d751be5c9b25fcf88554612a17bc44d3c
-SHA1 (patch-src_slic3r_GUI_wxExtensions.cpp) = 14a6b3c6a6c0b082b126dcaf1fc869404fa3e9c9
+SHA1 (patch-src_slic3r_GUI_Tab.cpp) = ed793cdab5c04319f254b9dae5a63cf52056122a
+SHA1 (patch-src_slic3r_GUI_UnsavedChangesDialog.cpp) = 1594eb7521f23c42700b0fbed7c039b62e9d4029
+SHA1 (patch-src_slic3r_GUI_UnsavedChangesDialog.hpp) = 0bd01147f0b654d190534959708fbf346cbb364e
+SHA1 (patch-src_slic3r_GUI_UpdateDialogs.cpp) = 7fdcc609e66c619c110db2da18b24ddfd0ffe2a2
+SHA1 (patch-src_slic3r_GUI_wxExtensions.cpp) = f36725675ad69d0f3a68183a8719ca4babeb3aed
+SHA1 (patch-src_slic3r_GUI_wxExtensions.hpp) = aa5bd2f325452cb2d9c2cef1dd50f37a149d7b6a
+SHA1 (patch-src_slic3r_Utils_FontConfigHelp.hpp) = 8027a1bc90a7f0ad1b53787a25f1e8a28c343ba2
 SHA1 (patch-src_slic3r_Utils_Serial.cpp) = 77dbb4e3526e932c04b8020b6f808278d1319bdb
+SHA1 (patch-src_slic3r_Utils_WxFontUtils.cpp) = cc033a04f3219b0f4229344e14d44be63192db60
 SHA1 (patch-tests_fff__print_test__data.cpp) = 588e2a7ea980d82b7bb43eb7522b639101d0a337
diff --git a/prusaslicer/patches/patch-src_CMakeLists_txt b/prusaslicer/patches/patch-src_CMakeLists_txt
index 6b1e7a9c82..949824ec96 100644
--- a/prusaslicer/patches/patch-src_CMakeLists_txt
+++ b/prusaslicer/patches/patch-src_CMakeLists_txt
@@ -5,9 +5,9 @@ Allow use of stable track wxWidgets on NetBSD.
 Use namespaces to link against libcereal >= 1.3.1 from:
 https://github.com/prusa3d/PrusaSlicer/commit/0ffcfd8393457fd035576436752267c9a1e6bbcc
 
---- src/CMakeLists.txt.orig	2022-08-19 14:41:23.000000000 +0000
+--- src/CMakeLists.txt.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/CMakeLists.txt
-@@ -24,8 +24,6 @@ endif ()
+@@ -33,8 +33,6 @@ endif ()
  
  if (SLIC3R_GUI)
      add_subdirectory(imgui)
@@ -16,7 +16,7 @@ https://github.com/prusa3d/PrusaSlicer/commit/0ffcfd8393457fd035576436752267c9a1
  
      if(WIN32)
          message(STATUS "WXWIN environment set to: $ENV{WXWIN}")
-@@ -38,10 +36,10 @@ if (SLIC3R_GUI)
+@@ -47,10 +45,10 @@ if (SLIC3R_GUI)
          endif()
      endif()
  
@@ -30,12 +30,3 @@ https://github.com/prusa3d/PrusaSlicer/commit/0ffcfd8393457fd035576436752267c9a1
          else ()
              find_package(wxWidgets 3.1 QUIET COMPONENTS base core adv html gl)
  
-@@ -127,7 +125,7 @@ if (NOT WIN32 AND NOT APPLE)
-     set_target_properties(PrusaSlicer PROPERTIES OUTPUT_NAME "prusa-slicer")
- endif ()
- 
--target_link_libraries(PrusaSlicer libslic3r cereal)
-+target_link_libraries(PrusaSlicer libslic3r cereal::cereal)
- 
- if (APPLE)
- #    add_compile_options(-stdlib=libc++)
diff --git a/prusaslicer/patches/patch-src_hints_HintsToPot.cpp b/prusaslicer/patches/patch-src_hints_HintsToPot.cpp
deleted file mode 100644
index b4dca1350d..0000000000
--- a/prusaslicer/patches/patch-src_hints_HintsToPot.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
-Upstream patch for boost deprecations:
-https://github.com/prusa3d/PrusaSlicer/commit/408e56f0390f20aaf793e0aa0c70c4d9544401d4
-
---- src/hints/HintsToPot.cpp.orig	2023-03-13 13:20:26.000000000 +0000
-+++ src/hints/HintsToPot.cpp
-@@ -9,7 +9,7 @@
- 
- bool write_to_pot(boost::filesystem::path path, const std::vector<std::pair<std::string, std::string>>& data)
- {
--	boost::filesystem::ofstream file(std::move(path), std::ios_base::app);
-+	boost::nowide::ofstream file(path.string(), std::ios_base::app);
- 	for (const auto& element : data)
- 	{
- 		//Example of .pot element 
diff --git a/prusaslicer/patches/patch-src_libslic3r_CMakeLists.txt b/prusaslicer/patches/patch-src_libslic3r_CMakeLists.txt
deleted file mode 100644
index 4cc315dc72..0000000000
--- a/prusaslicer/patches/patch-src_libslic3r_CMakeLists.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
-Use namespaces to link against libcereal >= 1.3.1 from:
-https://github.com/prusa3d/PrusaSlicer/commit/0ffcfd8393457fd035576436752267c9a1e6bbcc
-
---- src/libslic3r/CMakeLists.txt.orig	2022-04-22 11:01:19.000000000 +0000
-+++ src/libslic3r/CMakeLists.txt
-@@ -337,7 +337,7 @@ target_include_directories(libslic3r PUB
- target_link_libraries(libslic3r
-     libnest2d
-     admesh
--    cereal
-+    cereal::cereal
-     libigl
-     miniz
-     boost_libs
diff --git a/prusaslicer/patches/patch-src_libslic3r_Thread.cpp b/prusaslicer/patches/patch-src_libslic3r_Thread.cpp
index c01bba8764..4900ea4ed6 100644
--- a/prusaslicer/patches/patch-src_libslic3r_Thread.cpp
+++ b/prusaslicer/patches/patch-src_libslic3r_Thread.cpp
@@ -2,12 +2,13 @@ $NetBSD$
 
 pthread_setname_np takes 3 arguments on NetBSD.
 
---- src/libslic3r/Thread.cpp.orig	2022-08-19 14:41:23.000000000 +0000
+--- src/libslic3r/Thread.cpp.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/libslic3r/Thread.cpp
-@@ -157,6 +157,36 @@ std::optional<std::string> get_current_t
+@@ -160,7 +160,37 @@ std::optional<std::string> get_current_t
  	return std::nullopt;
  }
  
+-#else
 +#else // __APPLE__
 +
 +#ifdef __NetBSD__
@@ -38,10 +39,11 @@ pthread_setname_np takes 3 arguments on NetBSD.
 +	return std::string(pthread_getname_np(pthread_self(), buf, 16) == 0 ? buf : "");
 +}
 +
- #else
++#else // __NetBSD__
  
  // posix
-@@ -184,7 +214,9 @@ std::optional<std::string> get_current_t
+ bool set_thread_name(std::thread &thread, const char *thread_name)
+@@ -187,7 +217,9 @@ std::optional<std::string> get_current_t
  	return std::string(pthread_getname_np(pthread_self(), buf, 16) == 0 ? buf : "");
  }
  
diff --git a/prusaslicer/patches/patch-src_slic3r_CMakeLists.txt b/prusaslicer/patches/patch-src_slic3r_CMakeLists.txt
deleted file mode 100644
index 7194bb83d2..0000000000
--- a/prusaslicer/patches/patch-src_slic3r_CMakeLists.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
-Use namespaces to link against libcereal >= 1.3.1 from:
-https://github.com/prusa3d/PrusaSlicer/commit/0ffcfd8393457fd035576436752267c9a1e6bbcc
-
---- src/slic3r/CMakeLists.txt.orig	2022-04-22 11:01:19.000000000 +0000
-+++ src/slic3r/CMakeLists.txt
-@@ -260,7 +260,7 @@ add_library(libslic3r_gui STATIC ${SLIC3
- 
- encoding_check(libslic3r_gui)
- 
--target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
-+target_link_libraries(libslic3r_gui libslic3r avrdude cereal::cereal imgui GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
- 
- if (MSVC)
-     target_link_libraries(libslic3r_gui Setupapi.lib)
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_BitmapCache.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_BitmapCache.cpp
new file mode 100644
index 0000000000..6ad2ba006d
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_BitmapCache.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/BitmapCache.cpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/BitmapCache.cpp
+@@ -68,7 +68,7 @@ wxBitmapBundle* BitmapCache::insert_bndl
+     wxVector<wxBitmap> bitmaps;
+ 
+     std::set<double> scales = {1.0};
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__NetBSD__)
+ 
+ #ifdef __APPLE__
+     scales.emplace(m_scale);
+@@ -547,7 +547,7 @@ wxBitmapBundle BitmapCache::mksolid(size
+     wxVector<wxBitmap> bitmaps;
+ 
+     std::set<double> scales = { 1.0 };
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__NetBSD__)
+ 
+ #ifdef __APPLE__
+     scales.emplace(m_scale);
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.cpp
index eb224d25a9..93bee475a1 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.cpp
@@ -2,18 +2,18 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/ConfigWizard.cpp.orig	2021-12-17 14:00:02.000000000 +0000
+--- src/slic3r/GUI/ConfigWizard.cpp.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/slic3r/GUI/ConfigWizard.cpp
-@@ -48,7 +48,7 @@
- #include "MsgDialog.hpp"
- #include "UnsavedChangesDialog.hpp"
+@@ -60,7 +60,7 @@
+ #include "slic3r/GUI/I18N.hpp"
+ #include "slic3r/Config/Version.hpp"
  
 -#if defined(__linux__) && defined(__WXGTK3__)
 +#if (defined(__linux__) || defined(__NetBSD__)) && defined(__WXGTK3__)
  #define wxLinux_gtk3 true
  #else
  #define wxLinux_gtk3 false
-@@ -508,7 +508,7 @@ void PageWelcome::set_run_reason(ConfigW
+@@ -583,7 +583,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,12 +22,21 @@ Treat NetBSD like Linux.
      if (!DesktopIntegrationDialog::is_integrated())
          cbox_integrate->Show(true);
      else
-@@ -2595,7 +2595,7 @@ bool ConfigWizard::priv::apply_config(Ap
+@@ -1474,7 +1474,7 @@ PageDownloader::PageDownloader(ConfigWiz
+         " The model will be downloaded into folder you choose bellow."
+     ), SLIC3R_APP_NAME));
+ 
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+     append_text(wxString::Format(_L(
+         "On Linux systems the process of registration also creates desktop integration files for this version of application."
+     )));
+@@ -3106,7 +3106,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
-     if (page_welcome->integrate_desktop()) 
-         DesktopIntegrationDialog::perform_desktop_integration();
+     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/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.hpp b/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.hpp
new file mode 100644
index 0000000000..073f580e77
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard.hpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/ConfigWizard.hpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/ConfigWizard.hpp
+@@ -22,7 +22,7 @@ namespace DownloaderUtils {
+         wxWindow*   m_parent{ nullptr };
+         wxTextCtrl* m_input_path{ nullptr };
+         bool        downloader_checked{ false };
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+         bool        perform_registration_linux{ false };
+ #endif // __linux__
+ 
+@@ -41,7 +41,7 @@ namespace DownloaderUtils {
+ 
+         bool on_finish();
+         bool perform_register(const std::string& path_override = {});
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+         bool get_perform_registration_linux() { return perform_registration_linux; }
+ #endif // __linux__
+     };
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard__private.hpp b/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard__private.hpp
deleted file mode 100644
index 221c444774..0000000000
--- a/prusaslicer/patches/patch-src_slic3r_GUI_ConfigWizard__private.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-Treat NetBSD like Linux.
-
---- src/slic3r/GUI/ConfigWizard_private.hpp.orig	2021-12-17 14:00:02.000000000 +0000
-+++ src/slic3r/GUI/ConfigWizard_private.hpp
-@@ -619,7 +619,7 @@ struct ConfigWizard::priv
-     bool apply_config(AppConfig *app_config, PresetBundle *preset_bundle, const PresetUpdater *updater, bool& apply_keeped_changes);
-     // #ys_FIXME_alise
-     void update_presets_in_config(const std::string& section, const std::string& alias_key, bool add);
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
-     void perform_desktop_integration() const;
- #endif
-     bool check_fff_selected();        // Used to decide whether to display Filaments page
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp
index 5d886a71d3..a90533678f 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_DesktopIntegrationDialog.cpp
@@ -2,7 +2,7 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/DesktopIntegrationDialog.cpp.orig	2021-12-17 14:00:02.000000000 +0000
+--- src/slic3r/GUI/DesktopIntegrationDialog.cpp.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/slic3r/GUI/DesktopIntegrationDialog.cpp
 @@ -1,4 +1,4 @@
 -#ifdef __linux__
@@ -10,10 +10,3 @@ Treat NetBSD like Linux.
  #include "DesktopIntegrationDialog.hpp"
  #include "GUI_App.hpp"
  #include "GUI.hpp"
-@@ -503,4 +503,4 @@ DesktopIntegrationDialog::~DesktopIntegr
- 
- } // namespace GUI
- } // namespace Slic3r
--#endif // __linux__
-\ No newline at end of file
-+#endif // __linux__
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp b/prusaslicer/patches/patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp
index 0fffc55a55..b48b84110e 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_DesktopIntegrationDialog.hpp
@@ -2,7 +2,7 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/DesktopIntegrationDialog.hpp.orig	2021-12-17 14:00:02.000000000 +0000
+--- src/slic3r/GUI/DesktopIntegrationDialog.hpp.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/slic3r/GUI/DesktopIntegrationDialog.hpp
 @@ -1,4 +1,4 @@
 -#ifdef __linux__
@@ -10,7 +10,7 @@ Treat NetBSD like Linux.
  #ifndef slic3r_DesktopIntegrationDialog_hpp_
  #define slic3r_DesktopIntegrationDialog_hpp_
  
-@@ -36,4 +36,4 @@ private:
+@@ -42,4 +42,4 @@ private:
  } // namespace Slic3r
  
  #endif // slic3r_DesktopIntegrationDialog_hpp_
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_Field.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_Field.cpp
new file mode 100644
index 0000000000..4056006094
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_Field.cpp
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/Field.cpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/Field.cpp
+@@ -199,7 +199,7 @@ bool Field::is_matched(const std::string
+ 
+ static wxString na_value(bool for_spin_ctrl = false)
+ {
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+     if (for_spin_ctrl)
+         return "";
+ #endif
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_GLCanvas3D.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_GLCanvas3D.cpp
index 6de5d4bbb2..8d3ee71c05 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_GLCanvas3D.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_GLCanvas3D.cpp
@@ -1,15 +1,15 @@
 $NetBSD$
 
-Undef any Convex macro, regardless of OS.
+Treat NetBSD like Linux.
 
---- src/slic3r/GUI/GLCanvas3D.cpp.orig	2021-12-17 14:00:02.000000000 +0000
+--- src/slic3r/GUI/GLCanvas3D.cpp.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/slic3r/GUI/GLCanvas3D.cpp
-@@ -96,7 +96,7 @@ float RetinaHelper::get_scale_factor() {
- #endif // __WXGTK3__
- 
- // Fixed the collision between BuildVolume::Type::Convex and macro Convex defined inside /usr/include/X11/X.h that is included by WxWidgets 3.0.
--#if defined(__linux__) && defined(Convex)
-+#ifdef Convex
- #undef Convex
- #endif
- 
+@@ -97,7 +97,7 @@ float RetinaHelper::get_scale_factor() {
+ #endif // __WXGTK3__
+ 
+ // Fixed the collision between BuildVolume::Type::Convex and macro Convex defined inside /usr/include/X11/X.h that is included by WxWidgets 3.0.
+-#if defined(__linux__) && defined(Convex)
++#if (defined(__linux__) || defined(__NetBSD__)) && defined(Convex)
+ #undef Convex
+ #endif
+ 
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_GUI.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_GUI.cpp
new file mode 100644
index 0000000000..1f210b1aeb
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_GUI.cpp
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/GUI.cpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/GUI.cpp
+@@ -490,7 +490,7 @@ void desktop_open_folder(const boost::fi
+ #endif
+ }
+ 
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+ namespace {
+ wxExecuteEnv get_appimage_exec_env()
+ {
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_GUI.hpp b/prusaslicer/patches/patch-src_slic3r_GUI_GUI.hpp
new file mode 100644
index 0000000000..99f4337d35
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_GUI.hpp
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/GUI.hpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/GUI.hpp
+@@ -84,7 +84,7 @@ extern void desktop_open_datadir_folder(
+ // Ask the destop to open the directory specified by path using the default file explorer.
+ void desktop_open_folder(const boost::filesystem::path& path);
+ 
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+ // Calling wxExecute on Linux with proper handling of AppImage's env vars.
+ // argv example: { "xdg-open", path.c_str(), nullptr }
+ void desktop_execute(const char* argv[]);
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp
index c6da70dc46..a514b1e040 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.cpp
@@ -2,9 +2,9 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/GUI_App.cpp.orig	2022-04-22 11:01:19.000000000 +0000
+--- src/slic3r/GUI/GUI_App.cpp.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/slic3r/GUI/GUI_App.cpp
-@@ -374,7 +374,7 @@ private:
+@@ -394,7 +394,7 @@ private:
  };
  
  
@@ -13,16 +13,7 @@ Treat NetBSD like Linux.
  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,
-@@ -839,7 +839,7 @@ wxGLContext* GUI_App::init_glcontext(wxG
- 
- bool GUI_App::init_opengl()
- {
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
-     bool status = m_opengl_mgr.init_gl();
-     m_opengl_initialized = true;
-     return status;
-@@ -880,7 +880,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()) {
@@ -31,7 +22,7 @@ Treat NetBSD like Linux.
              set_data_dir(wxStandardPaths::Get().GetUserDataDir().ToUTF8().data());
          #else
              // Since version 2.3, config dir on Linux is in ${XDG_CONFIG_HOME}.
-@@ -1070,7 +1070,7 @@ bool GUI_App::on_init_inner()
+@@ -1122,7 +1122,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));
  
@@ -40,7 +31,7 @@ Treat NetBSD like Linux.
      if (! check_old_linux_datadir(GetAppName())) {
          std::cerr << "Quitting, user chose to move their data to new location." << std::endl;
          return false;
-@@ -1171,7 +1171,7 @@ bool GUI_App::on_init_inner()
+@@ -1227,7 +1227,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");
@@ -49,16 +40,16 @@ Treat NetBSD like Linux.
          wxYield();
  #endif
          scrn->SetText(_L("Loading configuration")+ dots);
-@@ -1311,7 +1311,7 @@ bool GUI_App::on_init_inner()
- 
-         // An ugly solution to GH #5537 in which GUI_App::init_opengl (normally called from events wxEVT_PAINT
+@@ -1375,7 +1375,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.
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
-         if (! m_post_initialized && m_opengl_initialized) {
+         // Since issue #9774 Where same problem occured on MacOS Ventura, we decided to have this check on MacOS as well.
+ 
+-#if defined(__linux__) || defined(__APPLE__)
++#if defined(__linux__) || defined(__NetBSD__) || defined(__APPLE__)
+         if (!m_post_initialized && m_opengl_initialized) {
  #else
-         if (! m_post_initialized) {
-@@ -1897,7 +1897,7 @@ bool GUI_App::switch_language()
+         if (!m_post_initialized) {
+@@ -2018,7 +2018,7 @@ bool GUI_App::switch_language()
      }
  }
  
@@ -67,7 +58,7 @@ Treat NetBSD like Linux.
  static const wxLanguageInfo* linux_get_existing_locale_language(const wxLanguageInfo* language,
                                                                  const wxLanguageInfo* system_language)
  {
-@@ -2086,7 +2086,7 @@ bool GUI_App::load_language(wxString lan
+@@ -2217,7 +2217,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();
  			}
@@ -76,7 +67,7 @@ Treat NetBSD like Linux.
              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.
-@@ -2139,7 +2139,7 @@ bool GUI_App::load_language(wxString lan
+@@ -2270,7 +2270,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;
  
@@ -85,25 +76,25 @@ Treat NetBSD like Linux.
      // 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)) {
-@@ -2239,7 +2239,7 @@ void GUI_App::add_config_menu(wxMenuBar 
-         local_menu->Append(config_id_base + ConfigMenuSnapshots, _L("&Configuration Snapshots") + dots, _L("Inspect / activate configuration snapshots"));
+@@ -2397,7 +2397,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 + ConfigMenuUpdate, _L("Check for Configuration Updates"), _L("Check for configuration updates"));
+         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"));
 -#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) 
 +#if (defined(__linux__) || defined(__NetBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION) 
          //if (DesktopIntegrationDialog::integration_possible())
          local_menu->Append(config_id_base + ConfigMenuDesktopIntegration, _L("Desktop Integration"), _L("Desktop Integration"));    
  #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION)        
-@@ -2283,7 +2283,7 @@ void GUI_App::add_config_menu(wxMenuBar 
- 		case ConfigMenuUpdate:
- 			check_updates(true);
- 			break;
+@@ -2444,7 +2444,7 @@ void GUI_App::add_config_menu(wxMenuBar 
+         case ConfigMenuUpdateApp:
+             app_version_check(true);
+             break;
 -#ifdef __linux__
 +#if defined(__linux__) || defined(__NetBSD__)
          case ConfigMenuDesktopIntegration:
              show_desktop_integration_dialog();
              break;
-@@ -2905,7 +2905,7 @@ bool GUI_App::run_wizard(ConfigWizard::R
+@@ -3061,7 +3061,7 @@ bool GUI_App::run_wizard(ConfigWizard::R
  
  void GUI_App::show_desktop_integration_dialog()
  {
@@ -112,3 +103,12 @@ Treat NetBSD like Linux.
      //wxCHECK_MSG(mainframe != nullptr, false, "Internal error: Main frame not created / null");
      DesktopIntegrationDialog dialog(mainframe);
      dialog.ShowModal();
+@@ -3081,7 +3081,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 (downloader_worker->get_perform_registration_linux())
+             DesktopIntegrationDialog::perform_downloader_desktop_integration();
+ #endif // __linux__
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.hpp b/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.hpp
deleted file mode 100644
index 6e35813672..0000000000
--- a/prusaslicer/patches/patch-src_slic3r_GUI_GUI__App.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-Treat NetBSD like Linux.
-
---- src/slic3r/GUI/GUI_App.hpp.orig	2021-12-17 14:00:02.000000000 +0000
-+++ src/slic3r/GUI/GUI_App.hpp
-@@ -112,7 +112,7 @@ private:
-     bool            m_app_conf_exists{ false };
-     EAppMode        m_app_mode{ EAppMode::Editor };
-     bool            m_is_recreating_gui{ false };
--#ifdef __linux__
-+#if defined(__linux__) || defined(__NetBSD__)
-     bool            m_opengl_initialized{ false };
- #endif
- 
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_GUI__Factories.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_GUI__Factories.cpp
new file mode 100644
index 0000000000..f1642be737
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_GUI__Factories.cpp
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/GUI_Factories.cpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/GUI_Factories.cpp
+@@ -1345,7 +1345,7 @@ void MenuFactory::sys_color_changed(wxMe
+     for (size_t id = 0; id < menubar->GetMenuCount(); id++) {
+         wxMenu* menu = menubar->GetMenu(id);
+         sys_color_changed_menu(menu);
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__NetBSD__)
+         menu->SetupBitmaps();
+ #ifdef _WIN32 
+         // but under MSW we have to update item's bachground color
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_GUI__ObjectLayers.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_GUI__ObjectLayers.cpp
new file mode 100644
index 0000000000..5b0a131a96
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_GUI__ObjectLayers.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/GUI_ObjectLayers.cpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/GUI_ObjectLayers.cpp
+@@ -344,7 +344,7 @@ LayerRangeEditor::LayerRangeEditor( Obje
+         m_enter_pressed     = true;
+         // Workaround! Under Linux we have to use CallAfter() to avoid crash after pressing ENTER key
+         // see #7531, #8055, #8408
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+         wxTheApp->CallAfter([this, edit_fn]() {
+ #endif
+             // If LayersList wasn't updated/recreated, we can call wxEVT_KILL_FOCUS.Skip()
+@@ -359,7 +359,7 @@ LayerRangeEditor::LayerRangeEditor( Obje
+                 SetValue(m_valid_value);
+                 m_call_kill_focus = true;
+             }
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+         });
+ #endif 
+     }, this->GetId());
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_GUI__ObjectManipulation.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_GUI__ObjectManipulation.cpp
new file mode 100644
index 0000000000..29c81e103e
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_GUI__ObjectManipulation.cpp
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/GUI_ObjectManipulation.cpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/GUI_ObjectManipulation.cpp
+@@ -490,7 +490,7 @@ void ObjectManipulation::Show(const bool
+         const Selection& selection = wxGetApp().plater()->canvas3D()->get_selection();
+         bool show_world_local_combo = wxGetApp().get_mode() != comSimple && (selection.is_single_full_instance() || selection.is_single_volume_or_modifier());
+         if (selection.is_single_volume_or_modifier() && m_word_local_combo->GetCount() < 3) {
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+             m_word_local_combo->Insert(coordinate_type_str(ECoordinatesType::Local), 2);
+ #else
+             m_word_local_combo->Insert(coordinate_type_str(ECoordinatesType::Local), wxNullBitmap, 2);
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_KBShortcutsDialog.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_KBShortcutsDialog.cpp
new file mode 100644
index 0000000000..94759211c2
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_KBShortcutsDialog.cpp
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/KBShortcutsDialog.cpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/KBShortcutsDialog.cpp
+@@ -54,7 +54,7 @@ KBShortcutsDialog::KBShortcutsDialog()
+     main_sizer->SetSizeHints(this);
+     this->CenterOnParent();
+ 
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+     // workaround to correct pages layout
+     book->Bind(wxEVT_NOTEBOOK_PAGE_CHANGED, [book](wxBookCtrlEvent& e) {
+         book->GetPage(e.GetSelection())->Fit();
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_NotificationManager.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_NotificationManager.cpp
deleted file mode 100644
index 505985c0a0..0000000000
--- a/prusaslicer/patches/patch-src_slic3r_GUI_NotificationManager.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD$
-
-Treat NetBSD like Linux.
-
---- src/slic3r/GUI/NotificationManager.cpp.orig	2021-12-17 14:00:02.000000000 +0000
-+++ src/slic3r/GUI/NotificationManager.cpp
-@@ -337,8 +337,11 @@ void NotificationManager::PopNotificatio
- 	if (is_finished())
- 		return;
- 
-+	// stix
-+	// wxGetApp().imgui()->new_frame();
- 	count_spaces();
- 	count_lines();
-+	// ImGui::EndFrame();
- 
- 	if (m_lines_count == 3)
- 		m_multiline = true;
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_OptionsGroup.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_OptionsGroup.cpp
new file mode 100644
index 0000000000..ec81c31216
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_OptionsGroup.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/OptionsGroup.cpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/OptionsGroup.cpp
+@@ -1051,7 +1051,7 @@ void ogStaticText::SetText(const wxStrin
+ 
+ void ogStaticText::SetPathEnd(const std::string& link)
+ {
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__NetBSD__)
+ 
+     Bind(wxEVT_ENTER_WINDOW, [this, link](wxMouseEvent& event) {
+         SetToolTip(OptionsGroup::get_url(get_app_config()->get("suppress_hyperlinks") != "1" ? link : std::string()));
+@@ -1104,7 +1104,7 @@ void ogStaticText::FocusText(bool focus)
+ 
+     SetFont(focus ? Slic3r::GUI::wxGetApp().link_font() :
+         Slic3r::GUI::wxGetApp().normal_font());
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+     this->GetContainingSizer()->Layout();
+ #endif
+     Refresh();
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_Plater.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_Plater.cpp
index 3aa387617e..9562e5567d 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_Plater.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_Plater.cpp
@@ -2,14 +2,32 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/Plater.cpp.orig	2021-12-17 14:00:02.000000000 +0000
+--- src/slic3r/GUI/Plater.cpp.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/slic3r/GUI/Plater.cpp
-@@ -4214,7 +4214,7 @@ void Plater::priv::on_right_click(RBtnEv
-     }
- 
-     if (q != nullptr && menu) {
+@@ -2452,7 +2452,7 @@ std::vector<size_t> Plater::priv::load_f
+     // 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.
 -#ifdef __linux__
 +#if defined(__linux__) || defined(__NetBSD__)
-         // For some reason on Linux the menu isn't displayed if position is specified
-         // (even though the position is sane).
-         q->PopupMenu(menu);
+     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
+@@ -2498,7 +2498,7 @@ std::vector<size_t> Plater::priv::load_f
+         bool is_project_file = type_prusa;
+         try {
+             if (type_3mf || type_zip_amf) {
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+                 // 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, 
+@@ -4397,7 +4397,7 @@ void Plater::priv::on_right_click(RBtnEv
+         Vec2d mouse_position = evt.data.first;
+         wxPoint position(static_cast<int>(mouse_position.x()),
+                          static_cast<int>(mouse_position.y()));
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+         // For some reason on Linux the menu isn't displayed if position is
+         // specified (even though the position is sane).
+         position = wxDefaultPosition;
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_Preferences.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_Preferences.cpp
new file mode 100644
index 0000000000..2db0048f0f
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_Preferences.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/Preferences.cpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/Preferences.cpp
+@@ -18,7 +18,7 @@
+ #ifdef WIN32
+ #include <wx/msw/registry.h>
+ #endif // WIN32
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+ #include "DesktopIntegrationDialog.hpp"
+ #endif //__linux__
+ 
+@@ -688,7 +688,7 @@ void PreferencesDialog::accept(wxEvent&)
+ 			downloader->allow(it->second == "1");
+ 		if (!downloader->on_finish())
+ 			return;
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+ 		if( downloader->get_perform_registration_linux()) 
+ 			DesktopIntegrationDialog::perform_downloader_desktop_integration();
+ #endif // __linux__
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_PrintHostDialogs.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_PrintHostDialogs.cpp
index 4d4e60b683..d2fb60868d 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_PrintHostDialogs.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_PrintHostDialogs.cpp
@@ -5,9 +5,9 @@ Treat NetBSD like Linux.
 Upstream fix for boost deprecations:
 https://github.com/prusa3d/PrusaSlicer/issues/9294
 
---- src/slic3r/GUI/PrintHostDialogs.cpp.orig	2023-03-13 13:20:26.000000000 +0000
+--- src/slic3r/GUI/PrintHostDialogs.cpp.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/slic3r/GUI/PrintHostDialogs.cpp
-@@ -79,8 +79,8 @@ PrintHostSendDialog::PrintHostSendDialog
+@@ -100,8 +100,8 @@ PrintHostSendDialog::PrintHostSendDialog
      if (size_t extension_start = recent_path.find_last_of('.'); extension_start != std::string::npos)
          m_valid_suffix = recent_path.substr(extension_start);
      // .gcode suffix control
@@ -18,7 +18,7 @@ https://github.com/prusa3d/PrusaSlicer/issues/9294
              MessageDialog msg_wingow(this, wxString::Format(_L("Upload filename doesn't end with \"%s\". Do you wish to continue?"), m_valid_suffix), wxString(SLIC3R_APP_NAME), wxYES | wxNO);
              if (msg_wingow.ShowModal() == wxID_NO)
                  return false;
-@@ -90,7 +90,7 @@ PrintHostSendDialog::PrintHostSendDialog
+@@ -111,7 +111,7 @@ PrintHostSendDialog::PrintHostSendDialog
  
      auto* btn_ok = add_button(wxID_OK, true, _L("Upload"));
      btn_ok->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) {
@@ -27,7 +27,16 @@ https://github.com/prusa3d/PrusaSlicer/issues/9294
              post_upload_action = PrintHostPostUploadAction::None;
              EndDialog(wxID_OK);
          }
-@@ -100,7 +100,7 @@ PrintHostSendDialog::PrintHostSendDialog
+@@ -121,7 +121,7 @@ PrintHostSendDialog::PrintHostSendDialog
+     if (post_actions.has(PrintHostPostUploadAction::QueuePrint)) {
+         auto* btn_print = add_button(wxID_ADD, false, _L("Upload to Queue"));
+         btn_print->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) {
+-            if (validate_path(txt_filename->GetValue())) {
++            if (validate_path(txt_filename->GetValue().ToStdWstring())) {
+                 post_upload_action = PrintHostPostUploadAction::QueuePrint;
+                 EndDialog(wxID_OK);
+             }
+@@ -131,7 +131,7 @@ PrintHostSendDialog::PrintHostSendDialog
      if (post_actions.has(PrintHostPostUploadAction::StartPrint)) {
          auto* btn_print = add_button(wxID_YES, false, _L("Upload and Print"));
          btn_print->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) {
@@ -36,7 +45,7 @@ https://github.com/prusa3d/PrusaSlicer/issues/9294
                  post_upload_action = PrintHostPostUploadAction::StartPrint;
                  EndDialog(wxID_OK);
              }
-@@ -111,7 +111,7 @@ PrintHostSendDialog::PrintHostSendDialog
+@@ -142,7 +142,7 @@ PrintHostSendDialog::PrintHostSendDialog
          // Using wxID_MORE as a button identifier to be different from the other buttons, wxID_MORE has no other meaning here.
          auto* btn_simulate = add_button(wxID_MORE, false, _L("Upload and Simulate"));
          btn_simulate->Bind(wxEVT_BUTTON, [this, validate_path](wxCommandEvent&) {
@@ -45,7 +54,7 @@ https://github.com/prusa3d/PrusaSlicer/issues/9294
                  post_upload_action = PrintHostPostUploadAction::StartSimulation;
                  EndDialog(wxID_OK);
              }        
-@@ -121,7 +121,7 @@ PrintHostSendDialog::PrintHostSendDialog
+@@ -152,7 +152,7 @@ PrintHostSendDialog::PrintHostSendDialog
      add_button(wxID_CANCEL);
      finalize();
  
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_Tab.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_Tab.cpp
index b0c177e88d..e29c36ed93 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_Tab.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_Tab.cpp
@@ -2,9 +2,9 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/Tab.cpp.orig	2022-03-10 10:35:03.000000000 +0000
+--- src/slic3r/GUI/Tab.cpp.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/slic3r/GUI/Tab.cpp
-@@ -320,7 +320,7 @@ void Tab::create_preset_tab()
+@@ -279,7 +279,7 @@ void Tab::create_preset_tab()
      // This helps to process all the cursor key events on Windows in the tree control,
      // so that the cursor jumps to the last item.
      m_treectrl->Bind(wxEVT_TREE_SEL_CHANGED, [this](wxTreeEvent&) {
@@ -13,16 +13,7 @@ Treat NetBSD like Linux.
          // 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
-@@ -1762,7 +1762,7 @@ void TabPrint::update_description_lines(
-         if (m_post_process_explanation) {
-             m_post_process_explanation->SetText(
-                 _L("Post processing scripts shall modify G-code file in place."));
--#ifndef __linux__
-+#if !defined(__linux__) && !defined(__NetBSD__)
-             m_post_process_explanation->SetPathEnd("post-processing-scripts_283913");
- #endif // __linux__
-         }
-@@ -3151,7 +3151,7 @@ void Tab::load_current_preset()
+@@ -3411,7 +3411,7 @@ void Tab::load_current_preset()
                          else
  #endif
                              wxGetApp().tab_panel()->InsertPage(wxGetApp().tab_panel()->FindPage(this), tab, tab->title());
@@ -31,7 +22,7 @@ Treat NetBSD like Linux.
                              int page_id = wxGetApp().tab_panel()->FindPage(tab);
                              wxGetApp().tab_panel()->GetPage(page_id)->Show(true);
                          #endif // __linux__
-@@ -3525,7 +3525,7 @@ bool Tab::tree_sel_change_delayed()
+@@ -3821,7 +3821,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.
@@ -40,7 +31,7 @@ Treat NetBSD like Linux.
      std::unique_ptr<wxWindowUpdateLocker> no_updates(new wxWindowUpdateLocker(this));
  #else
      /* On Windows we use DoubleBuffering during rendering,
-@@ -3571,7 +3571,7 @@ bool Tab::tree_sel_change_delayed()
+@@ -3867,7 +3867,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);
  
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_UnsavedChangesDialog.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_UnsavedChangesDialog.cpp
index 141e0c1815..5607979988 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_UnsavedChangesDialog.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_UnsavedChangesDialog.cpp
@@ -2,8 +2,17 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/UnsavedChangesDialog.cpp.orig	2021-12-17 14:00:02.000000000 +0000
+--- src/slic3r/GUI/UnsavedChangesDialog.cpp.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/slic3r/GUI/UnsavedChangesDialog.cpp
+@@ -25,7 +25,7 @@
+ 
+ using boost::optional;
+ 
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+ #define wxLinux true
+ #else
+ #define wxLinux false
 @@ -109,7 +109,7 @@ ModelNode::ModelNode(ModelNode* parent, 
      UpdateIcons();
  }
@@ -13,25 +22,25 @@ Treat NetBSD like Linux.
  wxIcon ModelNode::get_bitmap(const wxString& color)
  #else
  wxBitmap ModelNode::get_bitmap(const wxString& color)
-@@ -127,7 +127,7 @@ wxBitmap ModelNode::get_bitmap(const wxS
-     unsigned char rgb[3];
-     BitmapCache::parse_color(into_u8(color), rgb);
-     // there is no need to scale created solid bitmap
+@@ -118,7 +118,7 @@ wxBitmap ModelNode::get_bitmap(const wxS
+     wxBitmap bmp = get_solid_bmp_bundle(64, 16, into_u8(color))->GetBitmapFor(m_parent_win);
+     if (!m_toggle)
+         bmp = bmp.ConvertToDisabled();
 -#ifndef __linux__
 +#if !defined(__linux__) && !defined(__NetBSD__)
-     return bmp_cache.mksolid(icon_width, icon_height, rgb, true);
+     return bmp;
  #else
      wxIcon icon;
-@@ -210,7 +210,7 @@ void ModelNode::UpdateIcons()
-     if (m_icon_name.empty())
-         return;
+@@ -222,7 +222,7 @@ void ModelNode::UpdateIcons()
+     if (!m_toggle)
+         bmp = bmp.ConvertToDisabled();
  
 -#ifdef __linux__
 +#if defined(__linux__) || defined(__NetBSD__)
-     m_icon.CopyFromBitmap(create_scaled_bitmap(m_icon_name, m_parent_win, 16, !m_toggle));
+     m_icon.CopyFromBitmap(bmp);
  #else
-     m_icon = create_scaled_bitmap(m_icon_name, m_parent_win, 16, !m_toggle);
-@@ -361,7 +361,7 @@ void DiffModel::GetValue(wxVariant& vari
+     m_icon = bmp;
+@@ -374,7 +374,7 @@ void DiffModel::GetValue(wxVariant& vari
      case colToggle:
          variant = node->m_toggle;
          break;
@@ -40,7 +49,7 @@ Treat NetBSD like Linux.
      case colIconText:
          variant << wxDataViewIconText(node->m_text, node->m_icon);
          break;
-@@ -398,7 +398,7 @@ bool DiffModel::SetValue(const wxVariant
+@@ -417,7 +417,7 @@ bool DiffModel::SetValue(const wxVariant
      case colToggle:
          node->m_toggle = variant.GetBool();
          return true;
@@ -49,7 +58,7 @@ Treat NetBSD like Linux.
      case colIconText: {
          wxDataViewIconText data;
          data << variant;
-@@ -603,7 +603,7 @@ DiffViewCtrl::DiffViewCtrl(wxWindow* par
+@@ -622,7 +622,7 @@ DiffViewCtrl::DiffViewCtrl(wxWindow* par
  void DiffViewCtrl::AppendBmpTextColumn(const wxString& label, unsigned model_column, int width, bool set_expander/* = false*/)
  {
      m_columns_width.emplace(this->GetColumnCount(), width);
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_UnsavedChangesDialog.hpp b/prusaslicer/patches/patch-src_slic3r_GUI_UnsavedChangesDialog.hpp
index 62d4623922..fd5ac3e79e 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_UnsavedChangesDialog.hpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_UnsavedChangesDialog.hpp
@@ -2,10 +2,10 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/UnsavedChangesDialog.hpp.orig	2021-12-17 14:00:02.000000000 +0000
+--- src/slic3r/GUI/UnsavedChangesDialog.hpp.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/slic3r/GUI/UnsavedChangesDialog.hpp
-@@ -44,7 +44,7 @@ class ModelNode
-     wxString            m_old_color;
+@@ -48,7 +48,7 @@ class ModelNode
+     wxString            m_mod_color;
      wxString            m_new_color;
  
 -#ifdef __linux__
@@ -13,7 +13,7 @@ Treat NetBSD like Linux.
      wxIcon              get_bitmap(const wxString& color);
  #else
      wxBitmap            get_bitmap(const wxString& color);
-@@ -53,7 +53,7 @@ class ModelNode
+@@ -57,7 +57,7 @@ class ModelNode
  public:
  
      bool        m_toggle {true};
@@ -21,4 +21,4 @@ Treat NetBSD like Linux.
 +#if defined(__linux__) || defined(__NetBSD__)
      wxIcon      m_icon;
      wxIcon      m_old_color_bmp;
-     wxIcon      m_new_color_bmp;
+     wxIcon      m_mod_color_bmp;
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_UpdateDialogs.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_UpdateDialogs.cpp
new file mode 100644
index 0000000000..19f849ab6c
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_UpdateDialogs.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/UpdateDialogs.cpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/UpdateDialogs.cpp
+@@ -142,7 +142,7 @@ AppUpdateDownloadDialog::AppUpdateDownlo
+ 	versions->Add(new wxStaticText(this, wxID_ANY, ver_online.to_string()));
+ 	content_sizer->Add(versions);
+ 	content_sizer->AddSpacer(VERT_SPACING);
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__NetBSD__)
+ 	cbox_run = new wxCheckBox(this, wxID_ANY, _(L("Run installer after download. (Otherwise file explorer will be opened)")));
+ 	content_sizer->Add(cbox_run);
+ #endif
+@@ -248,7 +248,7 @@ AppUpdateDownloadDialog::~AppUpdateDownl
+ 
+ bool AppUpdateDownloadDialog::run_after_download() const
+ {
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__NetBSD__)
+ 	return cbox_run->GetValue();
+ #endif
+ 	return false;
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.cpp b/prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.cpp
index 08de460d9e..421e002061 100644
--- a/prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.cpp
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.cpp
@@ -2,18 +2,36 @@ $NetBSD$
 
 Treat NetBSD like Linux.
 
---- src/slic3r/GUI/wxExtensions.cpp.orig	2021-12-17 14:00:02.000000000 +0000
+--- src/slic3r/GUI/wxExtensions.cpp.orig	2023-06-02 13:41:15.000000000 +0000
 +++ src/slic3r/GUI/wxExtensions.cpp
-@@ -17,7 +17,7 @@
- #include "../Utils/MacDarkMode.hpp"
- #include "BitmapComboBox.hpp"
+@@ -22,7 +22,7 @@
+ 
+ #include "libslic3r/Color.hpp"
  
 -#ifndef __linux__
 +#if !defined(__linux__) && !defined(__NetBSD__)
  // msw_menuitem_bitmaps is used for MSW and OSX
  static std::map<int, std::string> msw_menuitem_bitmaps;
- #ifdef __WXMSW__
-@@ -677,9 +677,9 @@ void ModeButton::focus_button(const bool
+ void sys_color_changed_menu(wxMenu* menu)
+@@ -92,7 +92,7 @@ wxMenuItem* append_menu_item(wxMenu* men
+ 
+     wxBitmapBundle* bmp = icon.empty() ? nullptr : get_bmp_bundle(icon);
+ 
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__NetBSD__)
+     if (bmp && bmp->IsOk())
+         msw_menuitem_bitmaps[id] = icon;
+ #endif /* no __linux__ */
+@@ -110,7 +110,7 @@ wxMenuItem* append_submenu(wxMenu* menu,
+     if (!icon.empty()) {
+         item->SetBitmap(*get_bmp_bundle(icon));
+ 
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__NetBSD__)
+         msw_menuitem_bitmaps[id] = icon;
+ #endif // no __linux__
+     }
+@@ -671,9 +671,9 @@ void ModeButton::focus_button(const bool
      GetParent()->Refresh(); // force redraw a background of the selected mode button
  #else
      SetForegroundColour(wxSystemSettings::GetColour(focus ? wxSYS_COLOUR_BTNTEXT : 
diff --git a/prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.hpp b/prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.hpp
new file mode 100644
index 0000000000..3d52f8d0ef
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_GUI_wxExtensions.hpp
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/GUI/wxExtensions.hpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/GUI/wxExtensions.hpp
+@@ -16,7 +16,7 @@
+ #include <functional>
+ 
+ 
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__NetBSD__)
+ void                sys_color_changed_menu(wxMenu* menu);
+ #else 
+ inline void         sys_color_changed_menu(wxMenu* /* menu */) {}
diff --git a/prusaslicer/patches/patch-src_slic3r_Utils_FontConfigHelp.hpp b/prusaslicer/patches/patch-src_slic3r_Utils_FontConfigHelp.hpp
new file mode 100644
index 0000000000..e50fd65855
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_Utils_FontConfigHelp.hpp
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/Utils/FontConfigHelp.hpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/Utils/FontConfigHelp.hpp
+@@ -1,7 +1,7 @@
+ #ifndef slic3r_FontConfigHelp_hpp_
+ #define slic3r_FontConfigHelp_hpp_
+ 
+-#ifdef __linux__
++#if defined(__linux__) || defined(__NetBSD__)
+ #define EXIST_FONT_CONFIG_INCLUDE
+ #endif
+ 
diff --git a/prusaslicer/patches/patch-src_slic3r_Utils_WxFontUtils.cpp b/prusaslicer/patches/patch-src_slic3r_Utils_WxFontUtils.cpp
new file mode 100644
index 0000000000..6b02fd100a
--- /dev/null
+++ b/prusaslicer/patches/patch-src_slic3r_Utils_WxFontUtils.cpp
@@ -0,0 +1,49 @@
+$NetBSD$
+
+Treat NetBSD like Linux.
+
+--- src/slic3r/Utils/WxFontUtils.cpp.orig	2023-06-02 13:41:15.000000000 +0000
++++ src/slic3r/Utils/WxFontUtils.cpp
+@@ -8,7 +8,7 @@
+ #include <wx/uri.h>
+ #include <wx/fontutil.h> // wxNativeFontInfo
+ #include <wx/osx/core/cfdictionary.h>
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__NetBSD__)
+ #include "slic3r/Utils/FontConfigHelp.hpp"
+ #endif
+ 
+@@ -72,7 +72,7 @@ bool WxFontUtils::can_load(const wxFont 
+ #elif defined(__APPLE__)
+     return true;
+     //return is_valid_ttf(get_file_path(font));
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__NetBSD__)
+     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
+         return nullptr; 
+     }
+     return Emboss::create_font_file(file_path.c_str());
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__NetBSD__)
+     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
+     return EmbossStyle::Type::wx_win_font_descr;
+ #elif defined(__APPLE__)
+     return EmbossStyle::Type::wx_mac_font_descr;
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__NetBSD__)
+     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
++}



Home | Main Index | Thread Index | Old Index