diff --git a/gnu/local.mk b/gnu/local.mk index 2948bfb1bf..7d6ebe6cf1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1979,6 +1979,7 @@ dist_patch_DATA = \ %D%/packages/patches/openssh-trust-guix-store-directory.patch \ %D%/packages/patches/openresolv-restartcmd-guix.patch \ %D%/packages/patches/openrgb-unbundle-hueplusplus.patch \ + %D%/packages/patches/openscad-fix-path-in-expected-test-results-to-acommodate-diff.patch \ %D%/packages/patches/opensles-add-license-file.patch \ %D%/packages/patches/openssl-1.1-c-rehash-in.patch \ %D%/packages/patches/openssl-3.0-c-rehash-in.patch \ diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 8d70abbbe7..b1614a5696 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -3189,8 +3189,8 @@ ontinuous-time and discret-time expressions.") (license license:lgpl2.1+))) (define-public openscad - (let ((commit "72c9919d63116f8e711f3566ae34e9eb63a2d6e6") - (version "2025.05.08") + (let ((commit "7245089d3226de41ab55faee62ffe326f6efcb69") + (version "2025.06.01") (revision "0")) (package (name "openscad") @@ -3201,23 +3201,27 @@ ontinuous-time and discret-time expressions.") (uri (git-reference (url "https://github.com/openscad/openscad") (commit commit) + ;; Needed for libraries/MCAD, a library specific to OpenSCAD + ;; which is included as a submodule. All other libraries are + ;; deleted in the patch-source build phase. (recursive? #t))) (sha256 - (base32 "077x7s3z65mz6rnrzan3qn06045d2fkqnd6ss6ibw1fhlaypzfbf")) + (base32 "0lynjxa5y9wi443vxgaj2r8lr98dyfxinq7n4gcw9gz7cfc52a4a")) + (patches (search-patches + "openscad-fix-path-in-expected-test-results-to-acommodate-diff.patch")) (file-name (git-file-name name version)))) (build-system qt-build-system) (arguments (list #:configure-flags #~(list "-DCMAKE_BUILD_TYPE=Release" - "-DUSE_BUILTIN_OPENCSG=ON" + "-DUSE_BUILTIN_CLIPPER2=OFF" + "-DUSE_BUILTIN_MANIFOLD=OFF" + "-DUSE_BUILTIN_OPENCSG=OFF" "-DMANIFOLD_PYBIND=OFF" "-DMANIFOLD_TEST=OFF" - "-DENABLE_TESTS=OFF" "-DEXPERIMENTAL=ON" - "-DSNAPSHOT=ON" "-DENABLE_PYTHON=ON" - "-DUSE_BUILTIN_CLIPPER2=OFF" (string-append "-DOPENSCAD_VERSION=" #$version) (string-append "-DOPENSCAD_COMMIT=" @@ -3226,27 +3230,47 @@ ontinuous-time and discret-time expressions.") "-DENABLE_GLX=ON") #:phases #~(modify-phases %standard-phases - (delete 'check) (add-after 'unpack 'patch-source (lambda* (#:key inputs #:allow-other-keys) - ;; + ;; Delete all unbundled libraries to replace them with guix + ;; packages. + (delete-file-recursively "submodules") + ;; Fix: Dependency lib3mf is not found due to using a wrong + ;; variable name in the CMake config (see + ;; https://github.com/openscad/openscad/issues/5877). (substitute* "cmake/Modules/FindLib3MF.cmake" (("PC_LIB3MF_INCLUDE_DIRS") "PC_LIB3MF_INCLUDEDIR")) (substitute* "CMakeLists.txt" - ;; + ;; Remove bundled libraries from cmake. + (("add_subdirectory\\(submodules\\)") + "") + ;; Fix detection of EGL (see + ;; https://github.com/openscad/openscad/issues/5880). (("target_link_libraries\\(OpenSCAD PRIVATE OpenGL::EGL\\)") - " find_package(ECM REQUIRED NO_MODULE) + "find_package(ECM REQUIRED NO_MODULE) list(APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) find_package(EGL REQUIRED) target_link_libraries(OpenSCAD PRIVATE EGL::EGL)") - ;; - (("find_package\\(Nettle 3.4\\)") - "find_package(Nettle 3.4 REQUIRED)") ;; Use the system sanitizers-cmake module. (("\\$\\{CMAKE_SOURCE_DIR\\}/submodules/sanitizers-cmake/cmake") (string-append (assoc-ref inputs "sanitizers-cmake") - "/share/sanitizers-cmake/cmake")))))))) + "/share/sanitizers-cmake/cmake"))) + ;; Fix test-tool expecting build directory to be a direct + ;; subdirectory of the source directory (see + ;; https://github.com/openscad/openscad/issues/5937). + (substitute* "tests/test_cmdline_tool.py" + (("build_to_test_sources = \"../../tests\"") + "build_to_test_sources = \"../../source/tests\"")))) + (add-before 'check 'patch-tests + (lambda _ + ;; Fix tests expecting build directory to be a direct descendant + ;; of the source dir (see + ;; https://github.com/openscad/openscad/issues/5938). + (copy-recursively "../source/color-schemes" "./color-schemes") + (copy-recursively "../source/shaders" "./shaders") + ;; Required for fontconfig + (setenv "HOME" "/tmp")))))) (inputs (list boost cairomm cgal @@ -3267,7 +3291,7 @@ ontinuous-time and discret-time expressions.") libxml2 libzip manifold - mesa ; or libglvnd if we had mesa-glvnd, too + mesa mimalloc mpfr nettle @@ -3275,9 +3299,9 @@ ontinuous-time and discret-time expressions.") python python-numpy python-pillow - python-pip qscintilla qtbase-5 + qtgamepad qtmultimedia-5 qtsvg-5 qtwayland-5 diff --git a/gnu/packages/patches/openscad-fix-path-in-expected-test-results-to-acommodate-diff.patch b/gnu/packages/patches/openscad-fix-path-in-expected-test-results-to-acommodate-diff.patch new file mode 100644 index 0000000000..595acb8a68 --- /dev/null +++ b/gnu/packages/patches/openscad-fix-path-in-expected-test-results-to-acommodate-diff.patch @@ -0,0 +1,117 @@ +From 4fd0053f89728d03c3123c9473c36209556d1018 Mon Sep 17 00:00:00 2001 +From: nomike +Date: Sat, 31 May 2025 23:54:08 +0200 +Subject: [PATCH] Fix path in expected test results to acommodate different + directory structure in guix build + (see https://github.com/openscad/openscad/issues/5938) +--- + .../echo/bitwise-operators-expected.echo | 10 +++++----- + .../echo/include-recursive-test-expected.echo | 18 +++++++++--------- + .../echo/include-tests-expected.echo | 8 ++++---- + tests/regression/echo/linenumber-expected.echo | 18 +++++++++--------- + tests/regression/echo/use-tests-expected.echo | 8 ++++---- + 5 files changed, 31 insertions(+), 31 deletions(-) + +diff --git a/tests/regression/echo/bitwise-operators-expected.echo b/tests/regression/echo/bitwise-operators-expected.echo +index d85a95915..91f3155ba 100644 +--- a/tests/regression/echo/bitwise-operators-expected.echo ++++ b/tests/regression/echo/bitwise-operators-expected.echo +@@ -1,8 +1,8 @@ +-WARNING: Hexadecimal constant "0x10000000000000000" too large in file ../../tests/data/scad/functions/bitwise-operators.scad, line 106 +-WARNING: Integer "0x1000000000000001" cannot be represented precisely in file ../../tests/data/scad/functions/bitwise-operators.scad, line 108 +-WARNING: Integer "1152921504606846977" cannot be represented precisely in file ../../tests/data/scad/functions/bitwise-operators.scad, line 109 +-WARNING: Integer "0xfffffffffffffff0" cannot be represented precisely in file ../../tests/data/scad/functions/bitwise-operators.scad, line 113 +-WARNING: Integer "18446744073709551600" cannot be represented precisely in file ../../tests/data/scad/functions/bitwise-operators.scad, line 113 ++WARNING: Hexadecimal constant "0x10000000000000000" too large in file ../../source/tests/data/scad/functions/bitwise-operators.scad, line 106 ++WARNING: Integer "0x1000000000000001" cannot be represented precisely in file ../../source/tests/data/scad/functions/bitwise-operators.scad, line 108 ++WARNING: Integer "1152921504606846977" cannot be represented precisely in file ../../source/tests/data/scad/functions/bitwise-operators.scad, line 109 ++WARNING: Integer "0xfffffffffffffff0" cannot be represented precisely in file ../../source/tests/data/scad/functions/bitwise-operators.scad, line 113 ++WARNING: Integer "18446744073709551600" cannot be represented precisely in file ../../source/tests/data/scad/functions/bitwise-operators.scad, line 113 + ECHO: "Expect two warnings:" + WARNING: undefined operation (number | bool) in file bitwise-operators.scad, line 42 + WARNING: undefined operation (bool | number) in file bitwise-operators.scad, line 44 +diff --git a/tests/regression/echo/include-recursive-test-expected.echo b/tests/regression/echo/include-recursive-test-expected.echo +index c20e44cbe..855c16d10 100644 +--- a/tests/regression/echo/include-recursive-test-expected.echo ++++ b/tests/regression/echo/include-recursive-test-expected.echo +@@ -1,12 +1,12 @@ +-WARNING: Can't open include file 'include-recursive-test.scad'. in file ../../tests/data/scad/misc/include-recursive-test.scad, line 1 +-WARNING: Can't open include file '../misc/include-recursive-test.scad'. in file ../../tests/data/scad/misc/include-recursive-test.scad, line 2 +-WARNING: Can't open include file '../../scad/misc/include-recursive-test.scad'. in file ../../tests/data/scad/misc/include-recursive-test.scad, line 3 +-WARNING: Can't open include file 'include-recursive-test.scad'. in file ../../tests/data/scad/misc/include-recursive-test.scad, line 1 +-WARNING: Can't open include file '../misc/include-recursive-test.scad'. in file ../../tests/data/scad/misc/include-recursive-test.scad, line 2 +-WARNING: Can't open include file '../../scad/misc/include-recursive-test.scad'. in file ../../tests/data/scad/misc/include-recursive-test.scad, line 3 +-WARNING: Can't open include file 'include-recursive-test.scad'. in file ../../tests/data/scad/misc/include-recursive-test.scad, line 1 +-WARNING: Can't open include file '../misc/include-recursive-test.scad'. in file ../../tests/data/scad/misc/include-recursive-test.scad, line 2 +-WARNING: Can't open include file '../../scad/misc/include-recursive-test.scad'. in file ../../tests/data/scad/misc/include-recursive-test.scad, line 3 ++WARNING: Can't open include file 'include-recursive-test.scad'. in file ../../source/tests/data/scad/misc/include-recursive-test.scad, line 1 ++WARNING: Can't open include file '../misc/include-recursive-test.scad'. in file ../../source/tests/data/scad/misc/include-recursive-test.scad, line 2 ++WARNING: Can't open include file '../../scad/misc/include-recursive-test.scad'. in file ../../source/tests/data/scad/misc/include-recursive-test.scad, line 3 ++WARNING: Can't open include file 'include-recursive-test.scad'. in file ../../source/tests/data/scad/misc/include-recursive-test.scad, line 1 ++WARNING: Can't open include file '../misc/include-recursive-test.scad'. in file ../../source/tests/data/scad/misc/include-recursive-test.scad, line 2 ++WARNING: Can't open include file '../../scad/misc/include-recursive-test.scad'. in file ../../source/tests/data/scad/misc/include-recursive-test.scad, line 3 ++WARNING: Can't open include file 'include-recursive-test.scad'. in file ../../source/tests/data/scad/misc/include-recursive-test.scad, line 1 ++WARNING: Can't open include file '../misc/include-recursive-test.scad'. in file ../../source/tests/data/scad/misc/include-recursive-test.scad, line 2 ++WARNING: Can't open include file '../../scad/misc/include-recursive-test.scad'. in file ../../source/tests/data/scad/misc/include-recursive-test.scad, line 3 + ECHO: "INC" + ECHO: "INC" + ECHO: "INC" +diff --git a/tests/regression/echo/include-tests-expected.echo b/tests/regression/echo/include-tests-expected.echo +index d0aaecf88..64098d5d6 100644 +--- a/tests/regression/echo/include-tests-expected.echo ++++ b/tests/regression/echo/include-tests-expected.echo +@@ -1,6 +1,6 @@ +-WARNING: Can't open include file 'not_exist.scad'. in file ../../tests/data/scad/misc/sub1/included.scad, line 3 +-WARNING: Can't open include file 'non/existent/path/non-file'. in file ../../tests/data/scad/misc/include-tests.scad, line 8 +-WARNING: Can't open include file 'test/'. in file ../../tests/data/scad/misc/include-tests.scad, line 20 +-WARNING: Can't open include file '/'. in file ../../tests/data/scad/misc/include-tests.scad, line 23 ++WARNING: Can't open include file 'not_exist.scad'. in file ../../source/tests/data/scad/misc/sub1/included.scad, line 3 ++WARNING: Can't open include file 'non/existent/path/non-file'. in file ../../source/tests/data/scad/misc/include-tests.scad, line 8 ++WARNING: Can't open include file 'test/'. in file ../../source/tests/data/scad/misc/include-tests.scad, line 20 ++WARNING: Can't open include file '/'. in file ../../source/tests/data/scad/misc/include-tests.scad, line 23 + ECHO: "included.scad" + ECHO: "included2.scad" +diff --git a/tests/regression/echo/linenumber-expected.echo b/tests/regression/echo/linenumber-expected.echo +index 35a74ebe0..f243ae2c0 100644 +--- a/tests/regression/echo/linenumber-expected.echo ++++ b/tests/regression/echo/linenumber-expected.echo +@@ -1,12 +1,12 @@ +-WARNING: Can't open library 'line 1'. in file ../../tests/data/scad/misc/linenumber.scad, line 1 +-WARNING: Can't open include file 'line 1'. in file ../../tests/data/scad/misc/linenumber.scad, line 1 +-WARNING: new lines in 'include<>'-statement is not defined - behavior may change in the future in file ../../tests/data/scad/misc/linenumber.scad, line 7 +-WARNING: new lines in 'include<>'-statement is not defined - behavior may change in the future in file ../../tests/data/scad/misc/linenumber.scad, line 8 +-WARNING: new lines in 'include<>'-statement is not defined - behavior may change in the future in file ../../tests/data/scad/misc/linenumber.scad, line 9 +-WARNING: new lines in 'include<>'-statement is not defined - behavior may change in the future in file ../../tests/data/scad/misc/linenumber.scad, line 10 +-WARNING: Can't open include file 'line 9'. in file ../../tests/data/scad/misc/linenumber.scad, line 10 +-WARNING: new lines 'use<>'-statement is not defined - behavior may change in the future in file ../../tests/data/scad/misc/linenumber.scad, line 16 +-WARNING: Can't open library 'line 16'. in file ../../tests/data/scad/misc/linenumber.scad, line 16 ++WARNING: Can't open library 'line 1'. in file ../../source/tests/data/scad/misc/linenumber.scad, line 1 ++WARNING: Can't open include file 'line 1'. in file ../../source/tests/data/scad/misc/linenumber.scad, line 1 ++WARNING: new lines in 'include<>'-statement is not defined - behavior may change in the future in file ../../source/tests/data/scad/misc/linenumber.scad, line 7 ++WARNING: new lines in 'include<>'-statement is not defined - behavior may change in the future in file ../../source/tests/data/scad/misc/linenumber.scad, line 8 ++WARNING: new lines in 'include<>'-statement is not defined - behavior may change in the future in file ../../source/tests/data/scad/misc/linenumber.scad, line 9 ++WARNING: new lines in 'include<>'-statement is not defined - behavior may change in the future in file ../../source/tests/data/scad/misc/linenumber.scad, line 10 ++WARNING: Can't open include file 'line 9'. in file ../../source/tests/data/scad/misc/linenumber.scad, line 10 ++WARNING: new lines 'use<>'-statement is not defined - behavior may change in the future in file ../../source/tests/data/scad/misc/linenumber.scad, line 16 ++WARNING: Can't open library 'line 16'. in file ../../source/tests/data/scad/misc/linenumber.scad, line 16 + WARNING: Unable to convert cube(size="line 3", ...) parameter to a number or a vec3 of numbers in file linenumber.scad, line 3 + WARNING: Unable to convert cube(size="line 12", ...) parameter to a number or a vec3 of numbers in file linenumber.scad, line 12 + WARNING: Unable to convert cube(size="line 18", ...) parameter to a number or a vec3 of numbers in file linenumber.scad, line 18 +diff --git a/tests/regression/echo/use-tests-expected.echo b/tests/regression/echo/use-tests-expected.echo +index 2da158d03..1cfa234e7 100644 +--- a/tests/regression/echo/use-tests-expected.echo ++++ b/tests/regression/echo/use-tests-expected.echo +@@ -1,7 +1,7 @@ +-WARNING: Can't open library ''. in file ../../tests/data/scad/misc/use-tests.scad, line 2 +-WARNING: Can't open library 'non/existent/path/non-file'. in file ../../tests/data/scad/misc/use-tests.scad, line 8 +-WARNING: Can't open library 'test/'. in file ../../tests/data/scad/misc/use-tests.scad, line 20 +-WARNING: Can't open library '/'. in file ../../tests/data/scad/misc/use-tests.scad, line 23 ++WARNING: Can't open library ''. in file ../../source/tests/data/scad/misc/use-tests.scad, line 2 ++WARNING: Can't open library 'non/existent/path/non-file'. in file ../../source/tests/data/scad/misc/use-tests.scad, line 8 ++WARNING: Can't open library 'test/'. in file ../../source/tests/data/scad/misc/use-tests.scad, line 20 ++WARNING: Can't open library '/'. in file ../../source/tests/data/scad/misc/use-tests.scad, line 23 + WARNING: Ignoring unknown module 'test3' in file use-tests.scad, line 42 + WARNING: Ignoring unknown module 'test4' in file use-tests.scad, line 43 + WARNING: Ignoring unknown variable "test2_variable" in file use-tests.scad, line 49 +-- +2.49.0