From: Andrew Hewus Fresh Subject: Re: [UPDATE] cad/openscad to 2025.10.14 To: ports@openbsd.org Date: Fri, 7 Nov 2025 10:59:10 -0800 I got this to work with QT6 as suggested and put back the `unlink` patch because I actually did hit it. Once we solve the manifold and clipper2 being picked up by blender questions, I'll ask for an OK. For now, here's the current patch for testing, unless someone wants to OK contingent on the dependencies going in. On Wed, Oct 01, 2025 at 08:22:20PM -0700, Andrew Hewus Fresh wrote: > This updates OpenSCAD to a relatively recent "nightly". This is the one > I have been testing, but should be relatively easy to watch for good > places to pull in in he future. > > I haven't done significant work in it yet, but the few things I have > tried have worked great and the new manifold renderer is _so_ much > faster. > > It does use a shell script shim to make sure it gets executed with the > full path so the application and resource paths get set up correctly. > > I removed the "unlink" patch, I am not sure if that is a vestigial > script that is no longer used, but it doesn't seem to be a problem when > building. I also removed "the" from the comment, due to portcheck(1), > but can put it back. > > It still wasn't building right on my sparc64, but not a SIGILL, just > weird compile problems. I did not get it working on any platforms other > than amd64, but might try sparc64 again and even try my macppc. > > You an also see it on my cvsweb or anoncvs checkout: > > https://cvs.afresh1.com/cgi-bin/cvsweb/mystuff-openscad/ > > $ cvs -d anoncvs@cvs.afresh1.com:/cvs co mystuff-openscad > > Comments, OK? (once the four new dependencies get imported) Index: Makefile =================================================================== RCS file: /cvs/ports/cad/openscad/Makefile,v diff -u -p -r1.56 Makefile --- Makefile 28 Apr 2025 07:19:19 -0000 1.56 +++ Makefile 7 Nov 2025 18:46:03 -0000 @@ -1,70 +1,121 @@ -BROKEN = update to git snapshot to build with 1.87 -COMMENT = the programmer's solid 3D CAD modeller -BROKEN-sparc64= SIGILL on src/cgalutils.cc with CGAL-4.6.3 +COMMENT = programmers solid 3D CAD modeller -V = 2021.01 +V = 2025.10.14 DISTNAME = openscad-${V} -REVISION = 12 CATEGORIES = cad HOMEPAGE = https://www.openscad.org/ +TEST_IS_INTERACTIVE = X11 -# GPLv2+ with CGAL exception +# AGPL-3.0 PERMIT_PACKAGE = Yes -WANTLIB += ${COMPILER_LIBCXX} GL GLEW GLU Qt5Concurrent Qt5Core -WANTLIB += Qt5DBus Qt5Gamepad Qt5Gui Qt5Multimedia Qt5Network -WANTLIB += Qt5PrintSupport Qt5Widgets X11 boost_filesystem-mt -WANTLIB += boost_program_options-mt boost_regex-mt boost_system-mt -WANTLIB += boost_thread-mt c cairo double-conversion fontconfig -WANTLIB += freetype glib-2.0 gmp harfbuzz intl m mpfr opencsg -WANTLIB += qscintilla2_qt5 xml2 zip +GH_ACCOUNT = openscad +GH_PROJECT = openscad +GH_COMMIT = b0f18e9b4d61288b2cd6c659135f7e77def179e0 -SITES = https://files.openscad.org/ -EXTRACT_SUFX = .src.tar.gz +MCAD_COMMIT = 1ea402208c3127ffb443931e9bb1681c191dacca +SITES.mcad = https://github.com/${GH_ACCOUNT}/MCAD/archive/ -MODULES = devel/qmake \ +DISTFILES.mcad = MCAD-${MCAD_COMMIT:C/(........).*/\1/}{${MCAD_COMMIT}}${EXTRACT_SUFX} + +MODULES = devel/cmake \ lang/python \ - x11/qt5 + x11/qt6 + +WANTLIB += ${COMPILER_LIBCXX} 3mf Clipper2 EGL GL GLEW GLU Qt6Concurrent +WANTLIB += Qt6Core Qt6Core5Compat Qt6DBus Qt6Gui Qt6Multimedia +WANTLIB += Qt6Network Qt6OpenGL Qt6OpenGLWidgets Qt6Svg Qt6Widgets +WANTLIB += boost_atomic-mt boost_filesystem-mt boost_program_options-mt +WANTLIB += boost_regex-mt boost_system-mt c cairo double-conversion +WANTLIB += fontconfig freetype glib-2.0 gmp gmpxx harfbuzz intl +WANTLIB += m manifold mpfr opencsg qscintilla2_qt6 tbb xml2 zip + +# Match devel/boost +COMPILER = base-clang ports-gcc -BUILD_DEPENDS = devel/bison \ +BUILD_DEPENDS = cad/clipper2 \ + devel/bison \ devel/gettext,-tools \ + devel/sanitizers-cmake \ + graphics/glslang \ + graphics/vulkan-tools \ math/cgal \ - math/eigen3 + math/eigen3 \ + shells/bash LIB_DEPENDS = archivers/libzip \ + cad/clipper2 \ + cad/manifold \ devel/boost \ + devel/gettext \ + devel/glib2 \ devel/gmp \ - devel/harfbuzz \ + devel/gmp,-cxx \ + devel/lib3mf \ devel/mpfr \ - editors/qscintilla \ + devel/tbb \ + editors/qscintilla,qt6 \ graphics/glew \ graphics/opencsg \ - math/double-conversion \ - x11/qt5/qtgamepad \ - x11/qt5/qtmultimedia + x11/qt6/qt5compat \ + x11/qt6/qtbase \ + x11/qt6/qtmultimedia \ + x11/qt6/qtsvg RUN_DEPENDS = devel/desktop-file-utils \ - fonts/liberation-fonts \ misc/shared-mime-info \ + net/curl \ x11/gtk+4,-guic -# virtual memory exhausted: Cannot allocate memory -.if ${MACHINE_ARCH:Malpha} -COPTS += -O1 -CXXOPTS += -O1 -.endif -MODQMAKE_ARGS = VERSION=${V} -SEPARATE_BUILD = No +# I didn't test fully, but it does complain +BUILD_DEPENDS += ${RUN_DEPENDS} + +TEST_DEPENDS = graphics/ImageMagick + +# A test requires this +TEST_DEPENDS += shells/bash + +# The openscad script wrapper breaks debug packages +#DEBUG_PACKAGES = ${BUILD_PACKAGES} + +# Make about say the "right" thing +CONFIGURE_ARGS += -DOPENSCAD_VERSION=${V} + +# Don't use the included stuff, use ours +CONFIGURE_ARGS += -DUSE_BUILTIN_CLIPPER2=OFF \ + -DUSE_BUILTIN_MANIFOLD=OFF + +# Our QT6 port is more stable +CONFIGURE_ARGS += -DUSE_QT6=ON + +# It might be faster, but at what cost? +CONFIGURE_ARGS += -DUSE_MIMALLOC=OFF + +# We don't have Pillow +CONFIGURE_ARGS += -DUSE_IMAGE_COMPARE_PY=OFF -NO_TEST = Yes +# I don't know how link in comms/libhidapi +CONFIGURE_ARGS += -DENABLE_HIDAPI=OFF -pre-configure: - ln -sf ${LOCALBASE}/bin/bison ${WRKDIR}/bin/yacc +post-extract: + rmdir ${WRKSRC}/libraries/MCAD + cp -a ${WRKDIR}/MCAD-${MCAD_COMMIT} ${WRKSRC}/libraries/MCAD + #find ${WRKSRC} -type f -exec sed -i '1s,^#!/bin/sh,#!${PREFIX}/bin/bash,' {} + +# OpenSCAD uses the program_location (see patch-src_openscad_cc) to +# figure out resource paths, but on OpenBSD that doesn't work when +# launched from the PATH So, add a shell script shim to fix up argv[0] +# to be absolute so our patch works. post-install: + mv ${PREFIX}/bin/openscad ${PREFIX}/libexec/openscad + ${INSTALL_SCRIPT} /dev/null ${PREFIX}/bin/openscad + printf "%s\n%s\n" \ + '#!/bin/sh' \ + 'exec ${TRUEPREFIX}/libexec/openscad "$$@"' \ + > ${PREFIX}/bin/openscad ${MODPY_COMPILEALL} ${PREFIX}/share/openscad/libraries/MCAD/ .include Index: distinfo =================================================================== RCS file: /cvs/ports/cad/openscad/distinfo,v diff -u -p -r1.7 distinfo --- distinfo 14 Feb 2021 16:14:54 -0000 1.7 +++ distinfo 7 Nov 2025 18:46:03 -0000 @@ -1,2 +1,4 @@ -SHA256 (openscad-2021.01.src.tar.gz) = 2TjCl+fl9l26sUYcrEcvxg3+qkmZ6iwZsxpBhPLXA1k= -SIZE (openscad-2021.01.src.tar.gz) = 15817555 +SHA256 (MCAD-1ea40220.tar.gz) = PQQHfTaYFGOMPwGP7MOUOQEaR/VFAm9DwaRlvOF3P1c= +SHA256 (openscad-2025.10.14-b0f18e9b.tar.gz) = T5Tn5sOZNDDWuWYX+4NTWRIMa16d6nGnaqcptHLEvEg= +SIZE (MCAD-1ea40220.tar.gz) = 56943 +SIZE (openscad-2025.10.14-b0f18e9b.tar.gz) = 24859679 Index: patches/patch-CMakeLists_txt =================================================================== RCS file: patches/patch-CMakeLists_txt diff -N patches/patch-CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-CMakeLists_txt 7 Nov 2025 18:46:03 -0000 @@ -0,0 +1,42 @@ +Index: CMakeLists.txt +--- CMakeLists.txt.orig ++++ CMakeLists.txt +@@ -396,7 +396,7 @@ else() + target_link_libraries(OpenSCAD PRIVATE Eigen3::Eigen) + message(STATUS "Eigen: ${Eigen3_VERSION}") + +- find_package(Boost 1.70 REQUIRED QUIET COMPONENTS regex program_options) ++ find_package(Boost 1.70 REQUIRED QUIET COMPONENTS filesystem regex program_options) + message(STATUS "Boost: ${Boost_VERSION}") + target_include_directories(OpenSCAD SYSTEM PRIVATE ${Boost_INCLUDE_DIRS}) + target_link_libraries(OpenSCAD PRIVATE ${Boost_LIBRARIES}) +@@ -559,7 +559,7 @@ if(ENABLE_CAIRO STREQUAL "AUTO") + if(CAIRO_VERSION OR CAIRO_FOUND) + message(STATUS "Cairo: ${CAIRO_VERSION}") + target_include_directories(OpenSCAD SYSTEM PRIVATE ${CAIRO_INCLUDE_DIRS}) +- target_link_libraries(OpenSCAD PRIVATE ${CAIRO_LIBRARIES}) ++ target_link_libraries(OpenSCAD PRIVATE ${CAIRO_LINK_LIBRARIES}) + target_compile_definitions(OpenSCAD PRIVATE ENABLE_CAIRO) + else() + message(STATUS "Cairo: disabled (not found)") +@@ -806,7 +806,7 @@ elseif(UNIX) + if (NOT USE_GLAD) + target_compile_definitions(OpenSCAD PRIVATE GLEW_EGL) + endif() +- target_link_libraries(OpenSCAD PRIVATE OpenGL::EGL) ++ target_link_libraries(OpenSCAD PRIVATE ${OPENGL_egl_LIBRARY}) + endif() + if(ENABLE_GLX AND OpenGL_GLX_FOUND) + target_compile_definitions(OpenSCAD PRIVATE ENABLE_GLX) +@@ -1121,11 +1121,6 @@ else() + ${GLEW_SOURCES}) + endif() + +- +-if(UNIX AND (NOT APPLE) AND (NOT HEADLESS)) +- set(PLATFORM_INPUT_DRIVER_SOURCES src/gui/input/JoystickInputDriver.cc) +- target_compile_definitions(OpenSCAD PRIVATE ENABLE_JOYSTICK) +-endif() + + set(INPUT_DRIVER_SOURCES + ${PLATFORM_INPUT_DRIVER_SOURCES} Index: patches/patch-features_boost_prf =================================================================== RCS file: patches/patch-features_boost_prf diff -N patches/patch-features_boost_prf --- patches/patch-features_boost_prf 11 Mar 2022 18:24:31 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -Index: features/boost.prf ---- features/boost.prf.orig -+++ features/boost.prf -@@ -71,7 +71,7 @@ isEmpty(BOOST_LINK_FLAGS) { - - isEmpty(BOOST_LINK_FLAGS) { - unix|macx { -- BOOST_LINK_FLAGS = -lboost_thread -lboost_program_options -lboost_filesystem -lboost_system -lboost_regex -+ BOOST_LINK_FLAGS = -lboost_thread-mt -lboost_program_options-mt -lboost_filesystem-mt -lboost_system-mt -lboost_regex-mt - } - } - Index: patches/patch-openscad_pro =================================================================== RCS file: patches/patch-openscad_pro diff -N patches/patch-openscad_pro --- patches/patch-openscad_pro 11 Mar 2022 18:24:31 -0000 1.5 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,45 +0,0 @@ -- remove unsupported compiler flag (that is NOT ignored) -- don't use bundled Liberation fonts, use RDEP on fonts/liberation-fonts instead -- fix manpage installation dir -- disable hidapi support, it doesn't compile - -Index: openscad.pro ---- openscad.pro.orig -+++ openscad.pro -@@ -150,7 +150,6 @@ netbsd* { - # See Dec 2011 OpenSCAD mailing list, re: CGAL/GCC bugs. - *g++* { - QMAKE_CXXFLAGS *= -fno-strict-aliasing -- QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-local-typedefs # ignored before 4.8 - - # Disable attributes warnings on MSYS/MXE due to gcc bug spamming the logs: Issue #2771 - win* | CONFIG(mingw-cross-env)|CONFIG(mingw-cross-env-shared) { -@@ -193,7 +192,7 @@ CONFIG += lib3mf - CONFIG += gettext - CONFIG += libxml2 - CONFIG += libzip --CONFIG += hidapi -+#CONFIG += hidapi - CONFIG += spnav - CONFIG += double-conversion - CONFIG += cairo -@@ -721,10 +720,6 @@ libraries.path = "$$PREFIX/share/$${FULLNAME}/librarie - libraries.files = libraries/* - INSTALLS += libraries - --fonts.path = "$$PREFIX/share/$${FULLNAME}/fonts/" --fonts.files = fonts/* --INSTALLS += fonts -- - colorschemes.path = "$$PREFIX/share/$${FULLNAME}/color-schemes/" - colorschemes.files = color-schemes/* - INSTALLS += colorschemes -@@ -757,7 +752,7 @@ icon512.path = $$PREFIX/share/icons/hicolor/512x512/ap - icon512.extra = test -f icons/$${FULLNAME}-512.png && cp -f icons/$${FULLNAME}-512.png \"\$(INSTALL_ROOT)$${icon512.path}/$${FULLNAME}.png\" || cp -f icons/openscad-512.png \"\$(INSTALL_ROOT)$${icon512.path}/$${FULLNAME}.png\" - INSTALLS += icon48 icon64 icon128 icon256 icon512 - --man.path = $$PREFIX/share/man/man1 -+man.path = $$PREFIX/man/man1 - man.extra = cp -f doc/openscad.1 \"\$(INSTALL_ROOT)$${man.path}/$${FULLNAME}.1\" - INSTALLS += man - Index: patches/patch-scripts_translation-update_sh =================================================================== RCS file: /cvs/ports/cad/openscad/patches/patch-scripts_translation-update_sh,v diff -u -p -r1.2 patch-scripts_translation-update_sh --- patches/patch-scripts_translation-update_sh 11 Mar 2022 18:24:31 -0000 1.2 +++ patches/patch-scripts_translation-update_sh 7 Nov 2025 18:46:03 -0000 @@ -1,14 +1,12 @@ -OpenBSD does not have unlink in base - Index: scripts/translation-update.sh --- scripts/translation-update.sh.orig +++ scripts/translation-update.sh -@@ -100,7 +100,7 @@ updatemo() +@@ -101,7 +101,7 @@ updatemo() - # clean the mess - for LANGCODE in `cat locale/LINGUAS | grep -v "#"`; do -- unlink ./locale/$LANGCODE/LC_MESSAGES/$LANGCODE.mo -+ rm ./locale/$LANGCODE/LC_MESSAGES/$LANGCODE.mo - done - else - if [ x"$(uname -s)" = x"Linux" ]; then + # clean the mess + for LANGCODE in `cat locale/LINGUAS | grep -v "#"`; do +- unlink ./locale/$LANGCODE/LC_MESSAGES/$LANGCODE.mo ++ rm -f ./locale/$LANGCODE/LC_MESSAGES/$LANGCODE.mo + done + else + if [ x"$(uname -s)" = x"Linux" ]; then Index: patches/patch-src_cgalutils-polyhedron_cc =================================================================== RCS file: patches/patch-src_cgalutils-polyhedron_cc diff -N patches/patch-src_cgalutils-polyhedron_cc --- patches/patch-src_cgalutils-polyhedron_cc 31 Oct 2023 23:33:26 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,26 +0,0 @@ -Backport from upstream -Commit: cc49ad8dac24309f5452d5dea9abd406615a52d9 - -Index: src/cgalutils-polyhedron.cc ---- src/cgalutils-polyhedron.cc.orig -+++ src/cgalutils-polyhedron.cc -@@ -337,19 +337,6 @@ namespace CGALUtils { - } - }; - -- template -- std::string printPolyhedron(const Polyhedron &p) { -- std::ostringstream sstream; -- sstream.precision(20); -- -- Polyhedron_writer writer; -- generic_print_polyhedron(sstream, p, writer); -- -- return sstream.str(); -- } -- -- template std::string printPolyhedron(const CGAL_Polyhedron &p); -- - }; // namespace CGALUtils - - #endif /* ENABLE_CGAL */ Index: patches/patch-src_cgalutils-tess_cc =================================================================== RCS file: patches/patch-src_cgalutils-tess_cc diff -N patches/patch-src_cgalutils-tess_cc --- patches/patch-src_cgalutils-tess_cc 31 Oct 2023 23:33:26 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,29 +0,0 @@ -Backport from upstream -Commit: d559fa838ea919e664661bfcf1d3274c83743d61 - -Index: src/cgalutils-tess.cc ---- src/cgalutils-tess.cc.orig -+++ src/cgalutils-tess.cc -@@ -6,10 +6,12 @@ - #pragma push_macro("NDEBUG") - #undef NDEBUG - #include --#if CGAL_VERSION_NR >= CGAL_VERSION_NUMBER(4,11,0) -+#if CGAL_VERSION_NR < 1050401000 - #include -+ typedef CGAL::Triangulation_2_filtered_projection_traits_3 Projection; - #else -- #include -+ #include -+ typedef CGAL::Filtered_projection_traits_3 Projection; - #endif - #include - #pragma pop_macro("NDEBUG") -@@ -19,7 +21,6 @@ struct FaceInfo { - bool in_domain() { return nesting_level%2 == 1; } - }; - --typedef CGAL::Triangulation_2_filtered_projection_traits_3 Projection; - typedef CGAL::Triangulation_face_base_with_info_2 Fbb; - typedef CGAL::Triangulation_data_structure_2< - CGAL::Triangulation_vertex_base_2, Index: patches/patch-src_cgalutils_h =================================================================== RCS file: patches/patch-src_cgalutils_h diff -N patches/patch-src_cgalutils_h --- patches/patch-src_cgalutils_h 31 Oct 2023 23:33:26 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,14 +0,0 @@ -Backport from upstream -Commit: cc49ad8dac24309f5452d5dea9abd406615a52d9 - -Index: src/cgalutils.h ---- src/cgalutils.h.orig -+++ src/cgalutils.h -@@ -45,7 +45,6 @@ namespace CGALUtils { - bool is_approximately_convex(const PolySet &ps); - Geometry const* applyMinkowski(const Geometry::Geometries &children); - -- template std::string printPolyhedron(const Polyhedron &p); - template bool createPolySetFromPolyhedron(const Polyhedron &p, PolySet &ps); - template bool createPolyhedronFromPolySet(const PolySet &ps, Polyhedron &p); - template Index: patches/patch-src_openscad_cc =================================================================== RCS file: /cvs/ports/cad/openscad/patches/patch-src_openscad_cc,v diff -u -p -r1.1 patch-src_openscad_cc --- patches/patch-src_openscad_cc 31 Oct 2023 23:33:26 -0000 1.1 +++ patches/patch-src_openscad_cc 7 Nov 2025 18:46:03 -0000 @@ -1,55 +1,20 @@ -Backport from upstream -Commit: d559fa838ea919e664661bfcf1d3274c83743d61 - -Index: src/openscad.cc +IZZndex: src/openscad.cc --- src/openscad.cc.orig +++ src/openscad.cc -@@ -65,7 +65,6 @@ - #include - #include +@@ -60,6 +60,7 @@ + #include #include --#include - #include - #include - #include -@@ -307,7 +306,7 @@ void set_render_color_scheme(const std::string color_s - } + #include ++#include + #include + #include + #include +@@ -814,7 +815,7 @@ int main(int argc, char **argv) - if (exit_if_not_found) { -- LOG(message_group::None,Location::NONE,"",(boost::join(ColorMap::inst()->colorSchemeNames(), "\n"))); -+ LOG(message_group::None,Location::NONE,"",(boost::algorithm::join(ColorMap::inst()->colorSchemeNames(), "\n"))); - - exit(1); - } else { -@@ -885,7 +884,7 @@ struct CommaSeparatedVector - }; - - template --std::string join(const Seq &seq, const std::string &sep, const ToString &toString) -+std::string str_join(const Seq &seq, const std::string &sep, const ToString &toString) - { - return boost::algorithm::join(boost::adaptors::transform(seq, toString), sep); - } -@@ -947,7 +946,7 @@ int main(int argc, char **argv) - ("P,P", po::value(), "customizer parameter set") - #ifdef ENABLE_EXPERIMENTAL - ("enable", po::value>(), ("enable experimental features: " + -- join(boost::make_iterator_range(Feature::begin(), Feature::end()), " | ", -+ str_join(boost::make_iterator_range(Feature::begin(), Feature::end()), " | ", - [](const Feature *feature) { - return feature->get_name(); - }) + -@@ -964,11 +963,11 @@ int main(int argc, char **argv) - ("render", po::value()->implicit_value(""), "for full geometry evaluation when exporting png") - ("preview", po::value()->implicit_value(""), "[=throwntogether] -for ThrownTogether preview png") - ("animate", po::value(), "export N animated frames") -- ("view", po::value(), ("=view options: " + boost::join(viewOptions.names(), " | ")).c_str()) -+ ("view", po::value(), ("=view options: " + boost::algorithm::join(viewOptions.names(), " | ")).c_str()) - ("projection", po::value(), "=(o)rtho or (p)erspective when exporting png") - ("csglimit", po::value(), "=n -stop rendering at n CSG elements when exporting png") - ("colorscheme", po::value(), ("=colorscheme: " + -- join(ColorMap::inst()->colorSchemeNames(), " | ", -+ str_join(ColorMap::inst()->colorSchemeNames(), " | ", - [](const std::string& colorScheme) { - return (colorScheme == ColorMap::inst()->defaultColorSchemeName() ? "*" : "") + colorScheme; - }) + + #ifndef __EMSCRIPTEN__ + const auto applicationPath = +- weakly_canonical(boost::dll::program_location()).parent_path().generic_string(); ++ boost::filesystem::system_complete(argv[0]).parent_path().generic_string(); + #else + const auto applicationPath = boost::dll::fs::current_path(); + #endif Index: patches/patch-tests_virtualfb_sh =================================================================== RCS file: patches/patch-tests_virtualfb_sh diff -N patches/patch-tests_virtualfb_sh --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-tests_virtualfb_sh 7 Nov 2025 18:46:03 -0000 @@ -0,0 +1,9 @@ +Index: tests/virtualfb.sh +--- tests/virtualfb.sh.orig ++++ tests/virtualfb.sh +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!/usr/local/bin/bash + + # Toggle the Virtual Framebuffer + # If started, stop. If stopped, start. Index: pkg/DESCR =================================================================== RCS file: /cvs/ports/cad/openscad/pkg/DESCR,v diff -u -p -r1.1.1.1 DESCR --- pkg/DESCR 29 Apr 2011 18:55:37 -0000 1.1.1.1 +++ pkg/DESCR 7 Nov 2025 18:46:03 -0000 @@ -1,13 +1,23 @@ -OpenSCAD is a software for creating 3D CAD objects. +OpenSCAD is software for creating solid 3D CAD models. It is free +software and available for Linux/UNIX, Windows and Mac OS X. Unlike +most free software for creating 3D models (such as Blender) it does +not focus on the artistic aspects of 3D modelling but instead on +the CAD aspects. Thus it might be the application you are looking +for when you are planning to create 3D models of machine parts but +pretty sure is not what you are looking for when you are more +interested in creating computer-animated movies. -Unlike most free software for creating 3D models, it does not focus on -the artistic aspects of 3D modelling but instead on the CAD aspects. -Thus it is more suitable for creating 3D models of machine parts but -perhaps not when creating computer-animated movies. +OpenSCAD is not an interactive modeller. Instead it is something +like a 3D-compiler that reads in a script file that describes the +object and renders the 3D model from this script file. This gives +you (the designer) full control over the modelling process and +enables you to easily change any step in the modelling process or +make designs that are defined by configurable parameters. -OpenSCAD is not an interactive modeller. Instead it is something like -a 3D-compiler that reads in a script file that describes the object -and renders the 3D model from this script file. This gives designers -full control over the modelling process and enables them to easily -change any step in the modelling process or make designes that are -defined by configurable parameters. +OpenSCAD provides two main modelling techniques: First there is +constructive solid geometry (aka CSG) and second there is extrusion +of 2D outlines. Autocad DXF files can be used as the data exchange +format for such 2D outlines. In addition to 2D paths for extrusion +it is also possible to read design parameters from DXF files. Besides +DXF files OpenSCAD can read and create 3D models in the STL and OFF +file formats. Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/cad/openscad/pkg/PLIST,v diff -u -p -r1.14 PLIST --- pkg/PLIST 23 Oct 2025 13:19:03 -0000 1.14 +++ pkg/PLIST 7 Nov 2025 18:46:03 -0000 @@ -1,4 +1,5 @@ -@bin bin/openscad +bin/openscad +@bin libexec/openscad @man man/man1/openscad.1 share/applications/openscad.desktop share/icons/hicolor/128x128/apps/openscad.png @@ -13,6 +14,8 @@ share/openscad/ share/openscad/color-schemes/ share/openscad/color-schemes/editor/ share/openscad/color-schemes/editor/dark-background.json +share/openscad/color-schemes/editor/high-contrast-dark.json +share/openscad/color-schemes/editor/high-contrast-light.json share/openscad/color-schemes/editor/light-background.json share/openscad/color-schemes/editor/monokai.json share/openscad/color-schemes/editor/solarized-dark.json @@ -20,13 +23,17 @@ share/openscad/color-schemes/editor/sola share/openscad/color-schemes/editor/tomorrow-night.json share/openscad/color-schemes/editor/tomorrow.json share/openscad/color-schemes/editor/visualstudio.json +share/openscad/color-schemes/editor/xcode.json share/openscad/color-schemes/readme.txt share/openscad/color-schemes/render/ share/openscad/color-schemes/render/beforedawn.json +share/openscad/color-schemes/render/clearsky.json +share/openscad/color-schemes/render/daylight-gem.json share/openscad/color-schemes/render/deepocean.json share/openscad/color-schemes/render/metallic.json share/openscad/color-schemes/render/monotone.json share/openscad/color-schemes/render/nature.json +share/openscad/color-schemes/render/nocturnal-gem.json share/openscad/color-schemes/render/solarized.json share/openscad/color-schemes/render/starnight.json share/openscad/color-schemes/render/sunset.json @@ -39,6 +46,7 @@ share/openscad/examples/Advanced/animati share/openscad/examples/Advanced/assert.scad share/openscad/examples/Advanced/children.scad share/openscad/examples/Advanced/children_indexed.scad +share/openscad/examples/Advanced/example-dir.json share/openscad/examples/Advanced/module_recursion.scad share/openscad/examples/Advanced/offset.scad share/openscad/examples/Advanced/surface_image.png @@ -47,16 +55,20 @@ share/openscad/examples/Basics/ share/openscad/examples/Basics/CSG-modules.scad share/openscad/examples/Basics/CSG.scad share/openscad/examples/Basics/LetterBlock.scad +share/openscad/examples/Basics/example-dir.json +share/openscad/examples/Basics/hull.scad share/openscad/examples/Basics/linear_extrude.scad share/openscad/examples/Basics/logo.scad share/openscad/examples/Basics/logo_and_text.scad share/openscad/examples/Basics/projection.scad share/openscad/examples/Basics/projection.stl +share/openscad/examples/Basics/roof.scad share/openscad/examples/Basics/rotate_extrude.scad share/openscad/examples/Basics/text_on_cube.scad share/openscad/examples/COPYING-CC0.txt share/openscad/examples/Functions/ share/openscad/examples/Functions/echo.scad +share/openscad/examples/Functions/example-dir.json share/openscad/examples/Functions/functions.scad share/openscad/examples/Functions/list_comprehensions.scad share/openscad/examples/Functions/polygon_areas.scad @@ -96,12 +108,33 @@ share/openscad/examples/Old/example024.s share/openscad/examples/Parametric/ share/openscad/examples/Parametric/candleStand.json share/openscad/examples/Parametric/candleStand.scad +share/openscad/examples/Parametric/example-dir.json share/openscad/examples/Parametric/sign.json share/openscad/examples/Parametric/sign.scad -share/openscad/examples/examples.json +share/openscad/fonts/ +share/openscad/fonts/05-osx-fonts.conf +share/openscad/fonts/10-liberation.conf +share/openscad/fonts/Liberation-2.00.1/ +share/openscad/fonts/Liberation-2.00.1/AUTHORS +share/openscad/fonts/Liberation-2.00.1/ChangeLog +share/openscad/fonts/Liberation-2.00.1/LICENSE +share/openscad/fonts/Liberation-2.00.1/README +share/openscad/fonts/Liberation-2.00.1/TODO +share/openscad/fonts/Liberation-2.00.1/ttf/ +share/openscad/fonts/Liberation-2.00.1/ttf/LiberationMono-Bold.ttf +share/openscad/fonts/Liberation-2.00.1/ttf/LiberationMono-BoldItalic.ttf +share/openscad/fonts/Liberation-2.00.1/ttf/LiberationMono-Italic.ttf +share/openscad/fonts/Liberation-2.00.1/ttf/LiberationMono-Regular.ttf +share/openscad/fonts/Liberation-2.00.1/ttf/LiberationSans-Bold.ttf +share/openscad/fonts/Liberation-2.00.1/ttf/LiberationSans-BoldItalic.ttf +share/openscad/fonts/Liberation-2.00.1/ttf/LiberationSans-Italic.ttf +share/openscad/fonts/Liberation-2.00.1/ttf/LiberationSans-Regular.ttf +share/openscad/fonts/Liberation-2.00.1/ttf/LiberationSerif-Bold.ttf +share/openscad/fonts/Liberation-2.00.1/ttf/LiberationSerif-BoldItalic.ttf +share/openscad/fonts/Liberation-2.00.1/ttf/LiberationSerif-Italic.ttf +share/openscad/fonts/Liberation-2.00.1/ttf/LiberationSerif-Regular.ttf share/openscad/libraries/ share/openscad/libraries/MCAD/ -share/openscad/libraries/MCAD/.gitignore share/openscad/libraries/MCAD/2Dshapes.scad share/openscad/libraries/MCAD/3d_triangle.scad share/openscad/libraries/MCAD/README.markdown @@ -118,6 +151,7 @@ share/openscad/libraries/MCAD/${MODPY_PY share/openscad/libraries/MCAD/${MODPY_PYCACHE}test_docs.${MODPY_PYC_MAGIC_TAG}pyc share/openscad/libraries/MCAD/${MODPY_PYCACHE}test_mcad.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION} share/openscad/libraries/MCAD/${MODPY_PYCACHE}test_mcad.${MODPY_PYC_MAGIC_TAG}pyc +share/openscad/libraries/MCAD/array.scad share/openscad/libraries/MCAD/bearing.scad share/openscad/libraries/MCAD/bitmap/ share/openscad/libraries/MCAD/bitmap/README @@ -126,6 +160,7 @@ share/openscad/libraries/MCAD/bitmap/bit share/openscad/libraries/MCAD/bitmap/height_map.scad share/openscad/libraries/MCAD/bitmap/letter_necklace.scad share/openscad/libraries/MCAD/bitmap/name_tag.scad +share/openscad/libraries/MCAD/bitmap/test_name_tag.scad share/openscad/libraries/MCAD/boxes.scad share/openscad/libraries/MCAD/constants.scad share/openscad/libraries/MCAD/curves.scad @@ -138,6 +173,7 @@ share/openscad/libraries/MCAD/layouts.sc share/openscad/libraries/MCAD/lego_compatibility.scad share/openscad/libraries/MCAD/lgpl-2.1.txt share/openscad/libraries/MCAD/libtriangles.scad +share/openscad/libraries/MCAD/linear_bearing.scad share/openscad/libraries/MCAD/materials.scad share/openscad/libraries/MCAD/math.scad share/openscad/libraries/MCAD/metric_fastners.scad @@ -147,6 +183,7 @@ share/openscad/libraries/MCAD/nuts_and_b share/openscad/libraries/MCAD/openscad_testing.py share/openscad/libraries/MCAD/openscad_utils.py share/openscad/libraries/MCAD/polyholes.scad +share/openscad/libraries/MCAD/profiles.scad share/openscad/libraries/MCAD/regular_shapes.scad share/openscad/libraries/MCAD/screw.scad share/openscad/libraries/MCAD/servos.scad @@ -177,28 +214,47 @@ share/openscad/locale/fr/LC_MESSAGES/ope share/openscad/locale/hy/ share/openscad/locale/hy/LC_MESSAGES/ share/openscad/locale/hy/LC_MESSAGES/openscad.mo +share/openscad/locale/it/ +share/openscad/locale/it/LC_MESSAGES/ +share/openscad/locale/it/LC_MESSAGES/openscad.mo +share/openscad/locale/ka/ +share/openscad/locale/ka/LC_MESSAGES/ +share/openscad/locale/ka/LC_MESSAGES/openscad.mo share/openscad/locale/pl/ share/openscad/locale/pl/LC_MESSAGES/ share/openscad/locale/pl/LC_MESSAGES/openscad.mo +share/openscad/locale/pt_BR/ +share/openscad/locale/pt_BR/LC_MESSAGES/ +share/openscad/locale/pt_BR/LC_MESSAGES/openscad.mo share/openscad/locale/ru/ share/openscad/locale/ru/LC_MESSAGES/ share/openscad/locale/ru/LC_MESSAGES/openscad.mo +share/openscad/locale/tr/ +share/openscad/locale/tr/LC_MESSAGES/ +share/openscad/locale/tr/LC_MESSAGES/openscad.mo share/openscad/locale/uk/ share/openscad/locale/uk/LC_MESSAGES/ share/openscad/locale/uk/LC_MESSAGES/openscad.mo -@tag update-desktop-database -@tag update-mime-database share/openscad/locale/zh_CN/ share/openscad/locale/zh_CN/LC_MESSAGES/ share/openscad/locale/zh_CN/LC_MESSAGES/openscad.mo share/openscad/locale/zh_TW/ share/openscad/locale/zh_TW/LC_MESSAGES/ share/openscad/locale/zh_TW/LC_MESSAGES/openscad.mo +share/openscad/shaders/ +share/openscad/shaders/MouseSelector.frag +share/openscad/shaders/MouseSelector.vert +share/openscad/shaders/OpenCSG.vert +share/openscad/shaders/ViewEdges.frag +share/openscad/shaders/ViewEdges.vert share/openscad/templates/ +share/openscad/templates/CC0.json share/openscad/templates/difference.json share/openscad/templates/for.json share/openscad/templates/function.json share/openscad/templates/module.json share/openscad/templates/rotate.json share/openscad/templates/translate.json +@tag update-mime-database +@tag update-desktop-database @tag gtk-update-icon-cache %D/share/icons/hicolor