Re: UPDATE: cad/prusaslicer-2.9.6

Johannes Thyssen Tishman <[email protected]> Sun, 2 Aug 2026 10:29:07 +0000
Newsgroups gmane.os.openbsd.ports
Message-ID <[email protected]>
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.

- 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

- 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).

> diff --git a/cad/prusaslicer/Makefile b/cad/prusaslicer/Makefile
> index bf393651319..50a5df981aa 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
> 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..d593594a4b1
> --- /dev/null
> +++ b/cad/prusaslicer/pkg/README
> @@ -0,0 +1,20 @@
> ++-------------------------------------------------------------------------------
> +| 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.
> +
> +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.