Re: UPDATE: cad/prusaslicer-2.9.6

Renato Aguiar <[email protected]>
Newsgroups gmane.os.openbsd.ports
Message-ID <[email protected]>
On Sun, Aug 02 2026, Johannes Thyssen Tishman wrote:

> 2026-07-26T16:08:35-0700 Renato Aguiar <[email protected]>:
>> Diff updating cad/prusaslicer to 2.9.6.
>
> Hi Renato. Thanks for the update.
>
> I built this without issues and all tests are passing, but I have a few
> comments:
>
> - The 'Program Name' section in the pkg/README seems unnecessary to me,
>   and I would personally leave it out.

Keeping it as suggested by Ian.

>
> - I noticed that the build uses the bundled IGL library, because it fails
>   to find one in the system. This is fine, but I would explicitly
>   disable looking for it during configure time to avoid picking it up in
>   case it is ported (potentially causing a build failure):
>
>   -DCMAKE_DISABLE_FIND_PACKAGE_libigl=ON

Done.

>
> - I removed the .{cache,local/share}/prusa-slicer and
>   .config/PrusaSlicer directories to test runtime as if had just
>   installed prusaslicer and after finishing the setup wizard I got the
>   following error:
>
>   > PrusaSlicer has encountered an error. It was likely caused by running
>   > out of memory. If you are sure you have enough RAM on your system,
>   > this may also be a bug and we would be glad if you reported it.
>
>   > The application will now terminate.
>
>   > std::bad_alloc
>
>   My system should have enough RAM, 64Gb, and my user has the staff
>   login class. I tried getting a backtrace from the core file (after
>   installing debug-prusaslicer), but egdb crashes too with 'Recursive
>   internal problem. Abort trap (core dumped)'. Oh well...
>
>   After restarting prusaslicer, I don't get the setup
>   wizard anymore and it seems to work (tested importing a model and
>   slicing it).
>

Thanks for reporting that. It seems to be an issue even before this
update. I added a section to the README about bumping datasize memory
limits.


Updated diff:

diff --git a/cad/prusaslicer/Makefile b/cad/prusaslicer/Makefile
index bf393651319..a04f689a693 100644
--- a/cad/prusaslicer/Makefile
+++ b/cad/prusaslicer/Makefile
@@ -2,8 +2,7 @@ COMMENT =	g-code generator for 3D printers
 ONLY_FOR_ARCHS = ${LP64_ARCHS}
 DPB_PROPERTIES = parallel
 
-V =		2.9.4
-REVISION =	3
+V =		2.9.6
 PKGNAME =	prusaslicer-${V}
 
 GH_ACCOUNT =	prusa3d
@@ -74,6 +73,7 @@ LIB_DEPENDS = 		cad/opencascade \
 			x11/wxWidgets,-webview
 
 CONFIGURE_ARGS +=	-DCMAKE_MODULE_PATH=${PREFIX}/lib/cmake/OpenVDB \
+			-DCMAKE_DISABLE_FIND_PACKAGE_libigl=ON \
 			-DSLIC3R_FHS=1 \
 			-DSLIC3R_GTK=3 \
 			-DSLIC3R_PCH=OFF
diff --git a/cad/prusaslicer/distinfo b/cad/prusaslicer/distinfo
index 819d0d35454..f29c0fbf660 100644
--- a/cad/prusaslicer/distinfo
+++ b/cad/prusaslicer/distinfo
@@ -1,2 +1,2 @@
-SHA256 (PrusaSlicer-version_2.9.4.tar.gz) = Ty2NMFYQR6gvY+wj61MPmWsI1ZnA2ey66660SqShyEk=
-SIZE (PrusaSlicer-version_2.9.4.tar.gz) = 79411287
+SHA256 (PrusaSlicer-version_2.9.6.tar.gz) = j59A2Tg4uRK9ntNeWYwLfqvQgCTLGKpiDGqp+dSdC1c=
+SIZE (PrusaSlicer-version_2.9.6.tar.gz) = 82103739
diff --git a/cad/prusaslicer/patches/patch-src_slic3r_Utils_FontConfigHelp_hpp b/cad/prusaslicer/patches/patch-src_slic3r_Utils_FontConfigHelp_hpp
new file mode 100644
index 00000000000..80936b715c7
--- /dev/null
+++ b/cad/prusaslicer/patches/patch-src_slic3r_Utils_FontConfigHelp_hpp
@@ -0,0 +1,12 @@
+Index: src/slic3r/Utils/FontConfigHelp.hpp
+--- src/slic3r/Utils/FontConfigHelp.hpp.orig
++++ src/slic3r/Utils/FontConfigHelp.hpp
+@@ -6,7 +6,7 @@
+ #define slic3r_FontConfigHelp_hpp_
+ 
+ #include <string>
+-#ifdef __linux__
++#if defined(__linux__) || defined(__OpenBSD__)
+ #define EXIST_FONT_CONFIG_INCLUDE
+ #endif
+ 
diff --git a/cad/prusaslicer/patches/patch-src_slic3r_Utils_WxFontUtils_cpp b/cad/prusaslicer/patches/patch-src_slic3r_Utils_WxFontUtils_cpp
new file mode 100644
index 00000000000..da4ddd81f78
--- /dev/null
+++ b/cad/prusaslicer/patches/patch-src_slic3r_Utils_WxFontUtils_cpp
@@ -0,0 +1,39 @@
+Index: src/slic3r/Utils/WxFontUtils.cpp
+--- src/slic3r/Utils/WxFontUtils.cpp.orig
++++ src/slic3r/Utils/WxFontUtils.cpp
+@@ -19,7 +19,7 @@
+ #include <wx/uri.h>
+ #include <wx/fontutil.h> // wxNativeFontInfo
+ #include <wx/osx/core/cfdictionary.h>
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__OpenBSD__)
+ #include "slic3r/Utils/FontConfigHelp.hpp"
+ #endif
+ 
+@@ -83,7 +83,7 @@ bool WxFontUtils::can_load(const wxFont &font)
+ #elif defined(__APPLE__)
+     return true;
+     //return is_valid_ttf(get_file_path(font));
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__OpenBSD__)
+     return true;
+     // font config check file path take about 4000ms for chech them all
+     //std::string font_path = Slic3r::GUI::get_font_path(font);
+@@ -104,7 +104,7 @@ std::unique_ptr<Emboss::FontFile> WxFontUtils::create_
+         return nullptr; 
+     }
+     return Emboss::create_font_file(file_path.c_str());
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__OpenBSD__)
+     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) << "'), "
+@@ -125,7 +125,7 @@ EmbossStyle::Type WxFontUtils::get_current_type()
+     return EmbossStyle::Type::wx_win_font_descr;
+ #elif defined(__APPLE__)
+     return EmbossStyle::Type::wx_mac_font_descr;
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__OpenBSD__)
+     return EmbossStyle::Type::wx_lin_font_descr;
+ #else
+     return EmbossStyle::Type::undefined;
diff --git a/cad/prusaslicer/pkg/PLIST b/cad/prusaslicer/pkg/PLIST
index e0caac6b081..a67a679b810 100644
--- a/cad/prusaslicer/pkg/PLIST
+++ b/cad/prusaslicer/pkg/PLIST
@@ -9,6 +9,7 @@ share/PrusaSlicer/data/printer_gantries/
 share/PrusaSlicer/data/printer_gantries/geometries.json
 share/PrusaSlicer/data/printer_gantries/prusa3d_coreoneL_gantry.stl
 share/PrusaSlicer/data/printer_gantries/prusa3d_coreone_gantry.stl
+share/PrusaSlicer/data/printer_gantries/prusa3d_coreone_indx_gantry.stl
 share/PrusaSlicer/data/printer_gantries/prusa3d_ht90_actuator.stl
 share/PrusaSlicer/data/printer_gantries/prusa3d_mini_gantry.stl
 share/PrusaSlicer/data/printer_gantries/prusa3d_mk3s_gantry.stl
@@ -254,6 +255,7 @@ share/PrusaSlicer/icons/printer_placeholder.png
 share/PrusaSlicer/icons/printer_white.svg
 share/PrusaSlicer/icons/question.svg
 share/PrusaSlicer/icons/re_slice.svg
+share/PrusaSlicer/icons/recipe_add.svg
 share/PrusaSlicer/icons/redo.svg
 share/PrusaSlicer/icons/redo_menu.svg
 share/PrusaSlicer/icons/redo_toolbar.svg
@@ -329,6 +331,7 @@ share/PrusaSlicer/icons/toggle_on.svg
 share/PrusaSlicer/icons/toolbar_arrow.svg
 share/PrusaSlicer/icons/toolbar_arrow_2.svg
 share/PrusaSlicer/icons/toolbar_background.png
+share/PrusaSlicer/icons/trash.svg
 share/PrusaSlicer/icons/undo.svg
 share/PrusaSlicer/icons/undo_f.svg
 share/PrusaSlicer/icons/undo_menu.svg
@@ -787,8 +790,12 @@ share/PrusaSlicer/profiles/Print4Taste/MC2.0_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/
 share/PrusaSlicer/profiles/PrusaResearch.idx
 share/PrusaSlicer/profiles/PrusaResearch.ini
+share/PrusaSlicer/profiles/PrusaResearch/C1INDX_4T_thumbnail.png
+share/PrusaSlicer/profiles/PrusaResearch/C1INDX_8T_thumbnail.png
+share/PrusaSlicer/profiles/PrusaResearch/COREONELMMU3_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/COREONEL_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/COREONEMMU3_thumbnail.png
+share/PrusaSlicer/profiles/PrusaResearch/COREONEOAK_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/COREONE_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/MINIIS_ALPHA_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/MINIIS_BETA_thumbnail.png
@@ -831,8 +838,11 @@ share/PrusaSlicer/profiles/PrusaResearch/XLIS_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/XL_thumbnail.png
 share/PrusaSlicer/profiles/PrusaResearch/coreone.svg
 share/PrusaSlicer/profiles/PrusaResearch/coreone_bed.stl
+share/PrusaSlicer/profiles/PrusaResearch/coreone_indx.stl
+share/PrusaSlicer/profiles/PrusaResearch/coreone_indx.svg
 share/PrusaSlicer/profiles/PrusaResearch/coreonel.svg
 share/PrusaSlicer/profiles/PrusaResearch/coreonel_bed.stl
+share/PrusaSlicer/profiles/PrusaResearch/coreoneoak.svg
 share/PrusaSlicer/profiles/PrusaResearch/mini.svg
 share/PrusaSlicer/profiles/PrusaResearch/miniIS.svg
 share/PrusaSlicer/profiles/PrusaResearch/miniISbeta.svg
@@ -1034,6 +1044,11 @@ 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/bedmodel_120x120.stl
+share/PrusaSlicer/profiles/Voron/bedmodel_250x250.stl
+share/PrusaSlicer/profiles/Voron/bedmodel_252x241.stl
+share/PrusaSlicer/profiles/Voron/bedmodel_300x300.stl
+share/PrusaSlicer/profiles/Voron/bedmodel_350x350.stl
 share/PrusaSlicer/profiles/Voron/bedtexture-SW-250x210.png
 share/PrusaSlicer/profiles/Voron/bedtexture-v0-120.png
 share/PrusaSlicer/profiles/Voron/bedtexture-v1-250.png
@@ -1041,6 +1056,11 @@ 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/bedtexture_120x120-dark.png
+share/PrusaSlicer/profiles/Voron/bedtexture_250x250-dark.png
+share/PrusaSlicer/profiles/Voron/bedtexture_252x241-dark.png
+share/PrusaSlicer/profiles/Voron/bedtexture_300x300-dark.png
+share/PrusaSlicer/profiles/Voron/bedtexture_350x350-dark.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
@@ -1049,6 +1069,14 @@ share/PrusaSlicer/profiles/Voron/printbed-v1-350.stl
 share/PrusaSlicer/profiles/Voron/printbed-v2-250.stl
 share/PrusaSlicer/profiles/Voron/printbed-v2-300.stl
 share/PrusaSlicer/profiles/Voron/printbed-v2-350.stl
+share/PrusaSlicer/profiles/Voron/thumbnail_v0.png
+share/PrusaSlicer/profiles/Voron/thumbnail_v0_miniab.png
+share/PrusaSlicer/profiles/Voron/thumbnail_v2.png
+share/PrusaSlicer/profiles/Voron/thumbnail_v2_afterburner.png
+share/PrusaSlicer/profiles/Voron/thumbnail_vs.png
+share/PrusaSlicer/profiles/Voron/thumbnail_vs_afterburner.png
+share/PrusaSlicer/profiles/Voron/thumbnail_vt.png
+share/PrusaSlicer/profiles/Voron/thumbnail_vt_afterburner.png
 share/PrusaSlicer/profiles/Zonestar/
 share/PrusaSlicer/profiles/Zonestar.idx
 share/PrusaSlicer/profiles/Zonestar.ini
@@ -1217,8 +1245,11 @@ share/PrusaSlicer/web/connect_loading.html
 share/PrusaSlicer/web/error_no_reload.html
 share/PrusaSlicer/web/other_error.html
 share/PrusaSlicer/web/other_loading.html
+share/PrusaSlicer/workflows/
+share/PrusaSlicer/workflows/workflows.json
 share/applications/PrusaGcodeviewer.desktop
 share/applications/PrusaSlicer.desktop
+share/doc/pkg-readmes/${PKGSTEM}
 share/icons/hicolor/128x128/apps/PrusaSlicer-gcodeviewer.png
 share/icons/hicolor/128x128/apps/PrusaSlicer.png
 share/icons/hicolor/192x192/apps/PrusaSlicer-gcodeviewer.png
diff --git a/cad/prusaslicer/pkg/README b/cad/prusaslicer/pkg/README
new file mode 100644
index 00000000000..44cbe63d8fd
--- /dev/null
+++ b/cad/prusaslicer/pkg/README
@@ -0,0 +1,31 @@
++-------------------------------------------------------------------------------
+| Running ${PKGSTEM} on OpenBSD
++-------------------------------------------------------------------------------
+
+Program Name
+============
+
+The program's name is PrusaSlicer, but for historical reasons the binary is
+named prusa-slicer. The desktop file appears under Graphics because cad is not
+an available option on some window managers.
+
+Memory limits
+=============
+
+The initial setup wizard is known to use more memory than the limits set by the
+user's default login class, causing PrusaSlicer to crash with a 'std::bad_alloc'
+error. To avoid this, increase datasize memory limits in
+${SYSCONFDIR}/login.conf or make sure your user is in the 'staff' class, and
+bump the limits with 'ulimit'. Setting the datasize to 2048M (ulimit -d 2097152)
+should be enough when using default options with all standard printers, but you
+may need to bump it up even further depending your configuration.
+
+Font issues - Fixed in 2.9.6
+============================
+
+Before version 2.9.6, the mechanism for adding text to an object didn't work,
+e.g. the "Add Object->Text" or "Add Negative Space->Text" context-menu items.
+This release contains a fix for font selection.  If you are upgrading from an
+older version and fonts are not loading properly, e.g., the Add...Text item
+pop-up neither shows, nor lets you choose, a font name, try deleting
+"~/.config/PrusaSlicer/cache/fonts.cereal" and restarting PrusaSlicer.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.