Index | Thread | Search

From:
Johannes Thyssen Tishman <jtt@openbsd.org>
Subject:
Re: [new] cad/freecad
To:
ports@openbsd.org
Cc:
Rafael Sadowski <rafael@sizeofvoid.org>
Date:
Sat, 2 Aug 2025 19:55:35 +0000

Download raw body.

Thread
2025-08-02T13:06:45+0000 Johannes Thyssen Tishman <jtt@openbsd.org>:
> Please find attached a port for cad/freecad.
> 
> I've been playing with the port for a while and think is ready for
> others to test. Unfortunately, there is a bug in the AddonManager module
> that causes FreeCAD to crash when closing the 'Preferences' dialog (see
> [1]), making it impossible to change settings (at least through the
> GUI). For now, I've disabled the module as a workaround and will keep
> looking for a fix.
> 
> Currently most test are passing:
> 75% tests passed, 253 tests failed out of 1027
> 
> I'll keep working on getting all these to pass. Additionally, there is a
> test "Workbench" inside FreeCAD in which all tests pass.
> 
> COMMENT:
> general purpose parametric 3D CAD modeler
> 
> DESCR:
> FreeCAD is an open-source parametric 3D modeler made primarily to
> design real-life objects of any size. Parametric modeling allows
> you to easily modify your design by going back into your model
> history and changing its parameters.
> 
> Feedback? OK's? Thank you.
> 
> [1] https://github.com/FreeCAD/FreeCAD/issues/20331

Updated tarball attached with feedback from rsadowski@ addressed (see
diff below).

commit 79cf3935774defb04f26bb665d57a268bc4c31aa (main)
from: Johannes Thyssen Tishman <johannes@thyssentishman.com>
date: Sat Aug  2 17:41:57 2025 UTC

cad/freecad: Address rsadowski@'s feedback

M  cad/freecad/Makefile                                               |  5+  1-
M  cad/freecad/patches/patch-src_3rdParty_salomesmesh_CMakeLists_txt  |  1+  1-
M  cad/freecad/patches/patch-src_Mod_Part_App_CMakeLists_txt          |  1+  1-
M  cad/freecad/patches/patch-src_Tools_freecad-thumbnailer_in         |  1+  1-
M  cad/freecad/patches/patch-tests_CMakeLists_txt                     |  2+  2-

5 files changed, 10 insertions(+), 6 deletions(-)

commit - 6f0f097d3be57ad99020406a4f938ef8687079a5
commit + 79cf3935774defb04f26bb665d57a268bc4c31aa
blob - 77be3f18f356484aa519755f50c9601515fc88c8
blob + 73f9652f4333a33e09e753c394fb1dea176b6811
--- cad/freecad/Makefile
+++ cad/freecad/Makefile
@@ -113,6 +113,7 @@ CONFIGURE_ARGS +=	-DFREECAD_USE_EXTERNAL_FMT=ON \
 			-DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON \
 			-DCMAKE_DISABLE_FIND_PACKAGE_Spnav=ON \
 			-DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=ON \
+			-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON \
 			-DCMAKE_INSTALL_DATAROOTDIR=${LOCALBASE}/share \
 			-DCMAKE_INSTALL_DATADIR=${LOCALBASE}/share/freecad \
 			-DCMAKE_INSTALL_DOCDIR=${LOCALBASE}/share/doc/freecad \
@@ -121,7 +122,6 @@ CONFIGURE_ARGS +=	-DFREECAD_USE_EXTERNAL_FMT=ON \
 			-DCMAKE_INSTALL_LIBDIR=${LOCALBASE}/lib/freecad/lib \
 			-Dpybind11_DIR=${MODPY_SITEPKG}/pybind11/share/cmake/pybind11 \
 			-DENABLE_DEVELOPER_TESTS=ON \
-			-DCMAKE_BUILD_TYPE="Release" \
 			-Wno-dev
 
 # Some tests require an active X11 display to work. When using
@@ -143,6 +143,10 @@ DEBUG_PACKAGES =	${BUILD_PACKAGES}
 # 3. mkdir build && cd build && cmake .. && make fc_version
 pre-configure:
 	cp ${FILESDIR}/Version.h ${WRKSRC}/src/Build
+	${SUBST_CMD} ${WRKSRC}/src/3rdParty/salomesmesh/CMakeLists.txt \
+		${WRKSRC}/src/Mod/Part/App/CMakeLists.txt \
+		${WRKSRC}/src/Tools/freecad-thumbnailer.in \
+		${WRKSRC}/tests/CMakeLists.txt
 
 post-install:
 	ln -s ${LOCALBASE}/lib/freecad/bin/FreeCAD ${PREFIX}/bin/freecad
blob - 59878a4d82727a2a73032de0103c541a3b4d9f48
blob + cda801258a2e8fb127dd8e336f018c8df6124b19
--- cad/freecad/patches/patch-src_3rdParty_salomesmesh_CMakeLists_txt
+++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_CMakeLists_txt
@@ -5,7 +5,7 @@ Index: src/3rdParty/salomesmesh/CMakeLists.txt
              ${NGLIB_LIBRARIES}
              ${OCC_LIBRARIES}
              ${OCC_OCAF_LIBRARIES}
-+            -L/usr/X11R6/lib
++            -L${X11BASE}/lib
          )
          ADD_DEFINITIONS(${NETGEN_DEFINITIONS})
      else(BUILD_FEM_NETGEN)
blob - 1563bf18983b23c9f665b865bc46c844646dae03
blob + 848856a2671f2fcabc71c548cab38adc6235a0cb
--- cad/freecad/patches/patch-src_Mod_Part_App_CMakeLists_txt
+++ cad/freecad/patches/patch-src_Mod_Part_App_CMakeLists_txt
@@ -5,7 +5,7 @@ Index: src/Mod/Part/App/CMakeLists.txt
      ${OCC_DEBUG_LIBRARIES}
      FreeCADApp
      Materials
-+    -L/usr/X11R6/lib
++    -L${X11BASE}/lib
  )
  
  if(FREETYPE_FOUND)
blob - 439e5a46a3147563d6ce8e1204cc3471b2e8078e
blob + c8a95d335576323b8602475568c56cca76612e13
--- cad/freecad/patches/patch-src_Tools_freecad-thumbnailer_in
+++ cad/freecad/patches/patch-src_Tools_freecad-thumbnailer_in
@@ -5,7 +5,7 @@ Index: src/Tools/freecad-thumbnailer.in
 --- src/Tools/freecad-thumbnailer.in.orig
 +++ src/Tools/freecad-thumbnailer.in
 @@ -0,0 +1,68 @@
-+#!/usr/local/bin/python3
++#!${LOCALBASE}/bin/python3
 +"""Support file to show FreeCAD thumbnails on Free Desktop Environments (like GNOME or KDE)
 +
 +Installation:
blob - d279b66148fe2b8fac38f2f4c35394ed2eac868b
blob + cc743cc0452be4d6c6361319a2732b955657d2c5
--- cad/freecad/patches/patch-tests_CMakeLists_txt
+++ cad/freecad/patches/patch-tests_CMakeLists_txt
@@ -5,7 +5,7 @@ Index: tests/CMakeLists.txt
  
  foreach (exe ${TestExecutables})
      add_executable(${exe})
-+    target_link_directories(${exe} PUBLIC /usr/local/lib)
++    target_link_directories(${exe} PUBLIC ${LOCALBASE}/lib)
  endforeach()
  
  if ( EXISTS "${CMAKE_SOURCE_DIR}/tests/lib/googletest" )
@@ -18,7 +18,7 @@ Index: tests/CMakeLists.txt
      gmock_main
      ${Google_Tests_LIBS}
      FreeCADApp
-+    -L/usr/local/lib
++    -L${LOCALBASE}/lib
  )
  
  include(GoogleTest)