Saturday, November 29, 2025

Re: [UPDATE] cad/openscad to 2025.10.14

On 2025/11/28 18:07, Andrew Hewus Fresh wrote:
> At the bottom is the patch with (I think) all the suggestions folks have
> made except the one question below. I was able to build DEBUG_PACKAGES
> so not sure if adjusting the CMAKE_INSTALL_BINDIR helped or if I had not
> updated the PLIST.
>
> In any case, I should have time this weekend to import the deps and the
> Blender patch.
>
> You can see all the changes on my cvsweb
>
> https://cvs.afresh1.com/cgi-bin/cvsweb/mystuff-openscad/
>
> It's available via anoncvs as well:
>
> cvs -d anoncvs@cvs.afresh1.com:/cvs co mystuff-openscad
>
>
> On Fri, Nov 28, 2025 at 03:59:12PM +0000, Stuart Henderson wrote:
> > On 2025/11/28 15:43, Johannes Thyssen Tishman wrote:
> > > +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}
> >
> > i have some nits with these bits and associated in post-extract, but
> > they can be handled after the update is in
>
> Since the release port is working, should I import this as
> openscad-nightly? It seems fairly easy to configure it to append
> `-nightly` to the binary and script.

As an openscad user, do you (or anyone else reading that uses it)
think that's needed?

If not then I would just do it as an update of the existing port unless
we later find out that it's needed.

If we do need both versions (whether that's initially or re-added later)
then I think it's totally ok to leave them to conflict.

> > > -BUILD_DEPENDS = devel/bison \
> > > +# Match devel/boost
> > > +COMPILER = base-clang ports-gcc
> >
> > missing COMPILER_LANGS
>
> I'm not sure what it needs to be.

ah sorry I was mistaken here; it defaults to "c c++" so that is ok
as-is.

> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/cad/openscad/Makefile,v

I think this is looking alright to update (when the deps are in)
and any more polishing can be done in tree.

> diff -u -p -r1.57 Makefile
> --- Makefile 22 Nov 2025 01:49:32 -0000 1.57
> +++ Makefile 29 Nov 2025 01:58:55 -0000
> @@ -1,69 +1,115 @@
> -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 = 13
>
> CATEGORIES = cad
>
> HOMEPAGE = https://www.openscad.org/
>
> -# 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 \
> devel/gettext,-tools \
> + devel/sanitizers-cmake \
> + graphics/glslang \
> + graphics/ImageMagick \
> + graphics/shaderc \
> + graphics/vulkan-tools \
> math/cgal \
> - math/eigen3
> + math/eigen3 \
> + shells/bash \
> + x11/xkbcommon
> +
> +TEST_DEPENDS = graphics/py-Pillow
>
> LIB_DEPENDS = archivers/libzip \
> + cad/clipper2 \
> + cad/lib3mf \
> + cad/manifold \
> devel/boost \
> + devel/gettext \
> + devel/glib2 \
> devel/gmp \
> - devel/harfbuzz \
> + devel/gmp,-cxx \
> 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
> +BUILD_DEPENDS += ${RUN_DEPENDS}
> +
> +DEBUG_PACKAGES = ${BUILD_PACKAGES}
> +
> +# Make about say the "right" thing
> +CONFIGURE_ARGS += -DOPENSCAD_VERSION=${V}
> +
> +# 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.
> +# In post-install we add a shell script shim to provide the full path.
> +CONFIGURE_ARGS += -DCMAKE_INSTALL_BINDIR=${PREFIX}/libexec
> +
> +# 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
> +
> +# I don't know how link in comms/libhidapi
> +CONFIGURE_ARGS += -DENABLE_HIDAPI=OFF
> +
> +# We don't have SpNav. Disable in case it get's ported.
> +CONFIGURE_ARGS += -DCMAKE_DISABLE_FIND_PACKAGE_SpNav=ON
>
> -NO_TEST = Yes
> +TEST_IS_INTERACTIVE = X11
>
> -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
>
> post-install:
> + ${SUBST_PROGRAM} ${FILESDIR}/openscad ${PREFIX}/bin/openscad
> ${MODPY_COMPILEALL} ${PREFIX}/share/openscad/libraries/MCAD/
>
> .include <bsd.port.mk>
> 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 29 Nov 2025 01:58:55 -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: files/openscad
> ===================================================================
> RCS file: files/openscad
> diff -N files/openscad
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ files/openscad 29 Nov 2025 01:58:55 -0000
> @@ -0,0 +1,3 @@
> + #!/bin/sh
> +
> +exec ${TRUEPREFIX}/libexec/openscad "$@"
> 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 29 Nov 2025 01:58:55 -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 29 Nov 2025 01:58:55 -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 <typename Polyhedron>
> -- 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
> -
> -

No comments:

Post a Comment