From 06083cc5ed5631036ea7a23b202e0a8e267e41c9 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 17 Sep 2025 09:59:02 +0200 Subject: [PATCH 01/26] levmar: adopt --- pkgs/by-name/le/levmar/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/le/levmar/package.nix b/pkgs/by-name/le/levmar/package.nix index ac7879f74087..d6e974f7064e 100644 --- a/pkgs/by-name/le/levmar/package.nix +++ b/pkgs/by-name/le/levmar/package.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: { description = "ANSI C implementations of Levenberg-Marquardt, usable also from C++"; homepage = "https://www.ics.forth.gr/~lourakis/levmar/"; license = lib.licenses.gpl2Plus; - maintainers = [ ]; + maintainers = [ lib.maintainers.nim65s ]; platforms = lib.platforms.all; }; }) From cdcdbe2731ee0e0cd9f499055f7cd003a4ba670d Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Tue, 16 Sep 2025 12:38:15 +0200 Subject: [PATCH 02/26] levmar: install new header lm.h only contains a deprecation warning now --- pkgs/by-name/le/levmar/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/le/levmar/package.nix b/pkgs/by-name/le/levmar/package.nix index d6e974f7064e..a52760b37368 100644 --- a/pkgs/by-name/le/levmar/package.nix +++ b/pkgs/by-name/le/levmar/package.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: { installPhase = '' mkdir -p $out/include $out/lib - cp lm.h $out/include + cp levmar.h lm.h $out/include cp liblevmar.a $out/lib ''; From 411147488f1649326636edf4f1cbfaf42ad2bbe9 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 17 Sep 2025 09:22:08 +0200 Subject: [PATCH 03/26] lib3mf: adopt --- pkgs/by-name/li/lib3mf/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/li/lib3mf/package.nix b/pkgs/by-name/li/lib3mf/package.nix index 813138971444..0434368b5698 100644 --- a/pkgs/by-name/li/lib3mf/package.nix +++ b/pkgs/by-name/li/lib3mf/package.nix @@ -109,7 +109,7 @@ stdenv.mkDerivation (finalAttrs: { description = "Reference implementation of the 3D Manufacturing Format file standard"; homepage = "https://3mf.io/"; license = licenses.bsd2; - maintainers = [ ]; + maintainers = with maintainers; [ nim65s ]; platforms = platforms.all; }; }) From 213cd5f26c958c9909a6351d3558c3af6a6b9b51 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 17 Sep 2025 09:42:31 +0200 Subject: [PATCH 04/26] lib3mf: fix CMake export --- pkgs/by-name/li/lib3mf/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/li/lib3mf/package.nix b/pkgs/by-name/li/lib3mf/package.nix index 0434368b5698..2b29e533a5b5 100644 --- a/pkgs/by-name/li/lib3mf/package.nix +++ b/pkgs/by-name/li/lib3mf/package.nix @@ -98,6 +98,11 @@ stdenv.mkDerivation (finalAttrs: { --replace-warn "RAND_cleanup();" "" \ --replace-warn "EVP_cleanup();" "" \ --replace-warn "CRYPTO_cleanup_all_ex_data();" "" + + # Fix CMake export + substituteInPlace cmake/lib3mfConfig.cmake \ + --replace-fail "$""{LIB3MF_ROOT_DIR}/include" "$""{LIB3MF_ROOT_DIR}/include/lib3mf" \ + --replace-fail "$""{LIB3MF_ROOT_DIR}/lib" "$out/lib" ''; doCheck = true; From a405bcdd1a827d1a598c54c7fc9654ccf323696a Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Sun, 5 Oct 2025 22:39:40 +0200 Subject: [PATCH 05/26] lib3mf: replace-warn -> replace-fail Co-authored-by: Sandro <7258858+SuperSandro2000@users.noreply.github.com> --- pkgs/by-name/li/lib3mf/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/li/lib3mf/package.nix b/pkgs/by-name/li/lib3mf/package.nix index 2b29e533a5b5..78bd87350071 100644 --- a/pkgs/by-name/li/lib3mf/package.nix +++ b/pkgs/by-name/li/lib3mf/package.nix @@ -95,9 +95,9 @@ stdenv.mkDerivation (finalAttrs: { # functions are no longer in openssl, remove them from test cleanup function substituteInPlace Tests/CPP_Bindings/Source/UnitTest_EncryptionUtils.cpp \ - --replace-warn "RAND_cleanup();" "" \ - --replace-warn "EVP_cleanup();" "" \ - --replace-warn "CRYPTO_cleanup_all_ex_data();" "" + --replace-fail "RAND_cleanup();" "" \ + --replace-fail "EVP_cleanup();" "" \ + --replace-fail "CRYPTO_cleanup_all_ex_data();" "" # Fix CMake export substituteInPlace cmake/lib3mfConfig.cmake \ From dfe018a51c1e3a081ae5d43a032e8fe8fec6b272 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Fri, 19 Sep 2025 12:16:00 +0200 Subject: [PATCH 06/26] tinygltf: init at 2.9.6 --- pkgs/by-name/ti/tinygltf/package.nix | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 pkgs/by-name/ti/tinygltf/package.nix diff --git a/pkgs/by-name/ti/tinygltf/package.nix b/pkgs/by-name/ti/tinygltf/package.nix new file mode 100644 index 000000000000..564114244456 --- /dev/null +++ b/pkgs/by-name/ti/tinygltf/package.nix @@ -0,0 +1,30 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "tinygltf"; + version = "2.9.6"; + + src = fetchFromGitHub { + owner = "syoyo"; + repo = "tinygltf"; + tag = "v${finalAttrs.version}"; + hash = "sha256-3dBxfdXeTbzeQAXaBXFaflLgXYeuOfESdq6V3+0iCXY="; + }; + + nativeBuildInputs = [ + cmake + ]; + + meta = { + description = "Header only C++11 tiny glTF 2.0 library"; + homepage = "https://github.com/syoyo/tinygltf"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ nim65s ]; + platforms = lib.platforms.unix; + }; +}) From 2f5527cbd59d85c68319af9d6e0879b669fa33fc Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Sun, 21 Sep 2025 22:52:56 +0200 Subject: [PATCH 07/26] libigl: dont install opengl headers fix meshlab on darwin: ``` [ 47%] Building CXX object src/meshlabplugins/filter_cubization/CMakeFiles/filter_cubization.dir/filter_cubization_autogen/mocs_compilation.cpp.o In file included from /tmp/nix-build-meshlab-2025.07.drv-0/source/build/src/meshlabplugins/filter_cubization/filter_cubization_autogen/mocs_compilation.cpp:2: In file included from /tmp/nix-build-meshlab-2025.07.drv-0/source/build/src/meshlabplugins/filter_cubization/filter_cubization_autogen/EWIEGA46WW/moc_filter_cubization.cpp:10: In file included from /tmp/nix-build-meshlab-2025.07.drv-0/source/build/src/meshlabplugins/filter_cubization/filter_cubization_autogen/EWIEGA46WW/../../../../../../src/meshlabplugins/filter_cubization/filter_cubization.h:28: In file included from /tmp/nix-build-meshlab-2025.07.drv-0/source/src/common/../common/plugins/interfaces/filter_plugin.h:29: In file included from /tmp/nix-build-meshlab-2025.07.drv-0/source/src/common/../common/plugins/interfaces/../../ml_document/mesh_document.h:27: In file included from /tmp/nix-build-meshlab-2025.07.drv-0/source/src/common/../common/plugins/interfaces/../../ml_document/mesh_model.h:26: In file included from /nix/store/18nlfi993h20y6dd1kfg8zm9gaglwygn-glew-2.2.0-dev/include/GL/glew.h:1217: In file included from /nix/store/rhlyld20zdzdi5wghb4b12gw52s9whr9-apple-sdk-11.3/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenGL.framework/Headers/glu.h:9: /nix/store/zchkzj4md6q4lq09iidcm4c8n7r22k46-libigl-2.6.0/include/igl/OpenGL/gl.h:23:10: fatal error: 'glad/glad.h' file not found 23 | #include | ^~~~~~~~~~~~~ ``` --- pkgs/by-name/li/libigl/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/li/libigl/package.nix b/pkgs/by-name/li/libigl/package.nix index 1fc21b8f63d4..1ef1a6d73324 100644 --- a/pkgs/by-name/li/libigl/package.nix +++ b/pkgs/by-name/li/libigl/package.nix @@ -20,6 +20,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { installPhase = '' mkdir -p $out/include cp -r include/igl $out/include + rm -rf $out/include/igl/opengl ''; meta = with lib; { From c38f7f8446aebe35880d3218db6a722f3ad3036b Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 17 Sep 2025 11:02:03 +0200 Subject: [PATCH 08/26] vcg: adopt --- pkgs/by-name/vc/vcg/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/vc/vcg/package.nix b/pkgs/by-name/vc/vcg/package.nix index 487b4510263e..2a2e43e061ed 100644 --- a/pkgs/by-name/vc/vcg/package.nix +++ b/pkgs/by-name/vc/vcg/package.nix @@ -29,6 +29,6 @@ stdenv.mkDerivation rec { description = "C++ library for manipulation, processing and displaying with OpenGL of triangle and tetrahedral meshes"; license = licenses.gpl3; platforms = platforms.all; - maintainers = [ ]; + maintainers = [ lib.maintainers.nim65s ]; }; } From edbfc2a1bd8e2c31bcee4a6ecc78f67e8d63fe7b Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 17 Sep 2025 11:03:24 +0200 Subject: [PATCH 09/26] vcg: clean --- pkgs/by-name/vc/vcg/package.nix | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/vc/vcg/package.nix b/pkgs/by-name/vc/vcg/package.nix index 2a2e43e061ed..bf3f4a7ff8e5 100644 --- a/pkgs/by-name/vc/vcg/package.nix +++ b/pkgs/by-name/vc/vcg/package.nix @@ -1,19 +1,22 @@ { lib, + stdenv, fetchFromGitHub, + + # propagatedBuildInputs eigen, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "vcg"; version = "2025.07"; src = fetchFromGitHub { owner = "cnr-isti-vclab"; repo = "vcglib"; - rev = version; - sha256 = "sha256-OZnqFnHGXC9fS7JCLTiHNCeA//JBAZGLB5SP/rGzaA8="; + tag = finalAttrs.version; + hash = "sha256-OZnqFnHGXC9fS7JCLTiHNCeA//JBAZGLB5SP/rGzaA8="; }; propagatedBuildInputs = [ eigen ]; @@ -24,11 +27,11 @@ stdenv.mkDerivation rec { find $out -name \*.h -exec sed -i 's, Date: Wed, 17 Sep 2025 12:32:22 +0200 Subject: [PATCH 10/26] vcg: switch to CMake --- pkgs/by-name/vc/vcg/package.nix | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/vc/vcg/package.nix b/pkgs/by-name/vc/vcg/package.nix index bf3f4a7ff8e5..8db97500a18f 100644 --- a/pkgs/by-name/vc/vcg/package.nix +++ b/pkgs/by-name/vc/vcg/package.nix @@ -3,6 +3,10 @@ stdenv, fetchFromGitHub, + fetchpatch, + + # nativeBuildInputs + cmake, # propagatedBuildInputs eigen, @@ -19,13 +23,29 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-OZnqFnHGXC9fS7JCLTiHNCeA//JBAZGLB5SP/rGzaA8="; }; - propagatedBuildInputs = [ eigen ]; + patches = [ + # CMake: install lib and exports + # ref. https://github.com/cnr-isti-vclab/vcglib/pull/248 + # merged upstream + (fetchpatch { + name = "cmake-install-lib-and-exports.patch"; + url = "https://github.com/cnr-isti-vclab/vcglib/commit/4a8dd8d6e54890aee76917d27aabfa7031cbc68d.patch"; + hash = "sha256-b3qsmLu+4VSs943VS3C4gdG/PDR2mhr9/dDTmkep8zo="; + }) + ]; - installPhase = '' - mkdir -p $out/include - cp -r vcg wrap $out/include - find $out -name \*.h -exec sed -i 's, Date: Tue, 16 Sep 2025 15:59:03 +0200 Subject: [PATCH 11/26] corto: 0-unstable-2024-04-05 -> v2025.07 --- pkgs/by-name/co/corto/package.nix | 32 +++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/co/corto/package.nix b/pkgs/by-name/co/corto/package.nix index acf0517e0c10..5efe16c864c4 100644 --- a/pkgs/by-name/co/corto/package.nix +++ b/pkgs/by-name/co/corto/package.nix @@ -2,26 +2,42 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, cmake, + nix-update-script, }: -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "corto"; - version = "0-unstable-2024-04-05"; + version = "2025.07"; src = fetchFromGitHub { owner = "cnr-isti-vclab"; repo = "corto"; - rev = "d880519c490c88a39d12c31a914b6a687a7019c3"; - hash = "sha256-0OUijrf+0ZNv3oYko2r8Kp9zgtg8b9RPL7DXHf15Ryc="; + tag = "v${finalAttrs.version}"; + hash = "sha256-wfIZQdypBTfUZJgPE4DetSt1SUNSyZihmL1Uzapqh1o="; }; + patches = [ + # CMake: exports + # ref. https://github.com/cnr-isti-vclab/corto/pull/47 + # merged upstream + (fetchpatch { + name = "cmake-exports.patch"; + url = "https://github.com/cnr-isti-vclab/corto/commit/169356e97b29587b278822118aef34ed742b6b37.patch"; + hash = "sha256-imJfQ8JEhCcSkkO35N7Z3NtGElCyVxENPMDMWfNqdW0="; + }) + ]; + nativeBuildInputs = [ cmake ]; - meta = with lib; { + updateScript = nix-update-script { }; + + meta = { description = "Mesh compression library, designed for rendering and speed"; homepage = "https://github.com/cnr-isti-vclab/corto"; - license = licenses.mit; - maintainers = with maintainers; [ nim65s ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ nim65s ]; + mainProgram = "corto"; }; -} +}) From 33f715cfc8a638d72de08c1a628ca1ca4578d47e Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 17 Sep 2025 11:00:26 +0200 Subject: [PATCH 12/26] vclab-nexus: init at 2025.05 Co-authored-by: Sandro --- pkgs/by-name/li/lib3mf/package.nix | 1 + pkgs/by-name/vc/vclab-nexus/package.nix | 72 +++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 pkgs/by-name/vc/vclab-nexus/package.nix diff --git a/pkgs/by-name/li/lib3mf/package.nix b/pkgs/by-name/li/lib3mf/package.nix index 78bd87350071..289fcaf48d75 100644 --- a/pkgs/by-name/li/lib3mf/package.nix +++ b/pkgs/by-name/li/lib3mf/package.nix @@ -100,6 +100,7 @@ stdenv.mkDerivation (finalAttrs: { --replace-fail "CRYPTO_cleanup_all_ex_data();" "" # Fix CMake export + # ref https://github.com/3MFConsortium/lib3mf/pull/434 substituteInPlace cmake/lib3mfConfig.cmake \ --replace-fail "$""{LIB3MF_ROOT_DIR}/include" "$""{LIB3MF_ROOT_DIR}/include/lib3mf" \ --replace-fail "$""{LIB3MF_ROOT_DIR}/lib" "$out/lib" diff --git a/pkgs/by-name/vc/vclab-nexus/package.nix b/pkgs/by-name/vc/vclab-nexus/package.nix new file mode 100644 index 000000000000..2bdfe17547b6 --- /dev/null +++ b/pkgs/by-name/vc/vclab-nexus/package.nix @@ -0,0 +1,72 @@ +{ + lib, + + stdenv, + fetchFromGitHub, + fetchpatch, + + # nativeBuildInputs + cmake, + libsForQt5, + + # buildInputs + corto, + glew, + llvmPackages, + vcg, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "nexus"; + version = "2025.05"; + + src = fetchFromGitHub { + owner = "cnr-isti-vclab"; + repo = "nexus"; + tag = "v${finalAttrs.version}"; + hash = "sha256-lC3nKQJwkixwGzPP/oS0J+WIFgYqky6NaXu9bX28+3I="; + }; + + outputs = [ + "out" + "bin" + ]; + + patches = [ + # CMake: install lib & exports + # ref. https://github.com/cnr-isti-vclab/nexus/pull/173 + # merged upstream + (fetchpatch { + url = "https://github.com/cnr-isti-vclab/nexus/commit/141ba17059f3680a74ce1178ed4245412f76061f.patch"; + hash = "sha256-iY84QIpliC1BIImI/6S6E6fQwMKPmmTiwouCXW6wLuM="; + }) + ]; + + nativeBuildInputs = [ + cmake + libsForQt5.wrapQtAppsHook + ]; + + buildInputs = [ + corto + glew + libsForQt5.qtbase + vcg + ] + ++ lib.optionals stdenv.cc.isClang [ + llvmPackages.openmp + ]; + + cmakeFlags = [ + (lib.cmakeBool "BUILD_NXS_VIEW" (!stdenv.hostPlatform.isDarwin)) + ]; + + meta = { + description = "Library for creation and visualization of a batched multiresolution mesh"; + homepage = "https://github.com/cnr-isti-vclab/nexus"; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [ nim65s ]; + mainProgram = "nxsview"; + platforms = lib.platforms.unix ++ lib.platforms.windows; + }; +}) From 4949e861d5b54fff49e37770a2a50499094a46ea Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Tue, 16 Sep 2025 12:03:57 +0200 Subject: [PATCH 13/26] meshlab: adopt --- pkgs/by-name/me/meshlab/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/me/meshlab/package.nix b/pkgs/by-name/me/meshlab/package.nix index dedae59c8c34..d86aea7157db 100644 --- a/pkgs/by-name/me/meshlab/package.nix +++ b/pkgs/by-name/me/meshlab/package.nix @@ -163,7 +163,10 @@ stdenv.mkDerivation (finalAttrs: { mainProgram = "meshlab"; homepage = "https://www.meshlab.net/"; license = lib.licenses.gpl3Only; - maintainers = with lib.maintainers; [ yzx9 ]; + maintainers = with lib.maintainers; [ + nim65s + yzx9 + ]; platforms = with lib.platforms; linux ++ darwin; }; }) From 8f27f46238c8e68058132f6ef6ed1be0ad9e61d2 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Tue, 16 Sep 2025 12:10:18 +0200 Subject: [PATCH 14/26] meshlab: 2023.12 -> 2025.07 + use system dependencies --- ...-system-dependencies-install-exports.patch | 279 ++++++++++++++++++ pkgs/by-name/me/meshlab/package.nix | 71 ++--- 2 files changed, 309 insertions(+), 41 deletions(-) create mode 100644 pkgs/by-name/me/meshlab/1617_cmake-use-system-dependencies-install-exports.patch diff --git a/pkgs/by-name/me/meshlab/1617_cmake-use-system-dependencies-install-exports.patch b/pkgs/by-name/me/meshlab/1617_cmake-use-system-dependencies-install-exports.patch new file mode 100644 index 000000000000..83e6a21ea509 --- /dev/null +++ b/pkgs/by-name/me/meshlab/1617_cmake-use-system-dependencies-install-exports.patch @@ -0,0 +1,279 @@ +From 1a617220a286c23ecac1ad7bd6aca0d2c68bd1f3 Mon Sep 17 00:00:00 2001 +From: Guilhem Saurel +Date: Fri, 19 Sep 2025 08:43:18 +0200 +Subject: [PATCH 1/6] CMake: allow system vcglib + +--- + src/CMakeLists.txt | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 0398e8566..839a515be 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -75,7 +75,12 @@ endif() + ### Enter subdirectories + + # VCGLib -- required +-if (VCGDIR) # VCGDIR exists - using custom user vcglib path ++find_package(vcglib CONFIG) ++if(TARGET vcglib::vcglib) ++ message(STATUS "- VCGLib - using system provided library") ++ add_library(vcglib ALIAS vcglib::vcglib) ++ get_target_property(VCGDIR vcglib::vcglib INTERFACE_INCLUDE_DIRECTORIES) ++elseif (VCGDIR) # VCGDIR exists - using custom user vcglib path + if(EXISTS ${VCGDIR}) + add_subdirectory(${VCGDIR} {CMAKE_CURRENT_BINARY_DIR}/vcglib) + message(STATUS "- VCGLib - using custom VCGDIR path library") + +From 73debae9b9ca14554c25fa58480969bc7c3f61d1 Mon Sep 17 00:00:00 2001 +From: Guilhem Saurel +Date: Tue, 16 Sep 2025 12:44:12 +0200 +Subject: [PATCH 2/6] CMake: MESHLAB_ALLOW_SYSTEM_LEVMAR + +--- + src/external/levmar.cmake | 19 ++++++++++++++++++- + 1 file changed, 18 insertions(+), 1 deletion(-) + +diff --git a/src/external/levmar.cmake b/src/external/levmar.cmake +index cc639f09e..882b631db 100644 +--- a/src/external/levmar.cmake ++++ b/src/external/levmar.cmake +@@ -3,8 +3,25 @@ + # SPDX-License-Identifier: BSL-1.0 + + option(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LEVMAR "Allow download and use of levmar source" ON) ++option(MESHLAB_ALLOW_SYSTEM_LEVMAR "Allow use of system-provided levmar" ON) + +-if(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LEVMAR) ++find_path(levmar_INCLUDE_DIR NAMES levmar.h PATHS ${levmar_PREFIX}) ++find_library(levmar_LIBRARY NAMES levmar PATHS ${levmar_PREFIX}) ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args( ++ levmar ++ DEFAULT_MSG ++ levmar_LIBRARY ++ levmar_INCLUDE_DIR ++) ++mark_as_advanced(levmar_INCLUDE_DIR levmar_LIBRARY) ++ ++if(MESHLAB_ALLOW_SYSTEM_LEVMAR AND levmar_FOUND) ++ message(STATUS "- levmar - using system-provided library") ++ add_library(external-levmar INTERFACE) ++ target_link_libraries(external-levmar INTERFACE ${levmar_LIBRARY}) ++ target_include_directories(external-levmar INTERFACE ${levmar_INCLUDE_DIR}) ++elseif(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LEVMAR) + set(LEVMAR_VERSION "2.6.1") + + set(LEVMAR_DIR "${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/levmar-${LEVMAR_VERSION}") + +From 161d5dabad4cfdc3ec08d9e5dd2ee6c94b057c5c Mon Sep 17 00:00:00 2001 +From: Guilhem Saurel +Date: Tue, 16 Sep 2025 15:15:11 +0200 +Subject: [PATCH 3/6] CMake: MESHLAB_ALLOW_SYSTEM_LIB3MF + +--- + src/external/lib3mf.cmake | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/external/lib3mf.cmake b/src/external/lib3mf.cmake +index 1cd1b5dfa..f64a63aa5 100644 +--- a/src/external/lib3mf.cmake ++++ b/src/external/lib3mf.cmake +@@ -22,8 +22,15 @@ + ############################################################################# + + option(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LIB3MF "Allow download and use of lib3MF source" ON) ++option(MESHLAB_ALLOW_SYSTEM_LIB3MF "Allow use of system-provided lib3MF" ON) + +-if(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LIB3MF) ++find_package(lib3mf) ++ ++if(MESHLAB_ALLOW_SYSTEM_LIB3MF AND TARGET lib3mf::lib3mf) ++ message(STATUS "- Lib3MF - using system-provided library") ++ add_library(external-lib3mf INTERFACE) ++ target_link_libraries(external-lib3mf INTERFACE lib3mf::lib3mf) ++elseif(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LIB3MF) + set(LIB3MF_VERSION "2.4.1") + + set(LIB3MF_DIR ${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/lib3mf-${LIB3MF_VERSION}) + +From c6662d486c1f8e5c9c89389abd630d8218b0fcb9 Mon Sep 17 00:00:00 2001 +From: Guilhem Saurel +Date: Tue, 16 Sep 2025 15:42:59 +0200 +Subject: [PATCH 4/6] CMake: MESHLAB_ALLOW_SYSTEM_LIBIGL + +--- + src/external/libigl.cmake | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/external/libigl.cmake b/src/external/libigl.cmake +index 3666f375d..8f84fea4f 100644 +--- a/src/external/libigl.cmake ++++ b/src/external/libigl.cmake +@@ -3,10 +3,17 @@ + # SPDX-License-Identifier: BSL-1.0 + + option(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LIBIGL "Allow download and use of LibIGL source" ON) ++option(MESHLAB_ALLOW_SYSTEM_LIBIGL "Allow use of system-provided LibIGL" ON) + + set(LIBIGL_VER 2.4.0) + +-if(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LIBIGL) ++find_path(libigl_INCLUDE_DIR NAMES igl_inline.h PATH_SUFFIXES igl PATHS ${libigl_PREFIX}) ++ ++if(MESHLAB_ALLOW_SYSTEM_LIBIGL AND libigl_INCLUDE_DIR) ++ message(STATUS "- LibIGL - using system-provided library") ++ add_library(external-libigl INTERFACE) ++ target_include_directories(external-libigl INTERFACE ${libigl_INCLUDE_DIR}) ++elseif(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LIBIGL) + set(LIBIGL_DIR "${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/libigl-${LIBIGL_VER}") + set(LIBIGL_CHECK "${LIBIGL_DIR}/include/igl/igl_inline.h") + + +From a26427e32af672d2554d662376f3f258c64941ca Mon Sep 17 00:00:00 2001 +From: Guilhem Saurel +Date: Fri, 19 Sep 2025 08:58:16 +0200 +Subject: [PATCH 5/6] CMake: MESHLAB_ALLOW_SYSTEM_NEXUS + +--- + src/external/nexus.cmake | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/external/nexus.cmake b/src/external/nexus.cmake +index 9fc92f714..1139d11e7 100644 +--- a/src/external/nexus.cmake ++++ b/src/external/nexus.cmake +@@ -3,11 +3,18 @@ + # SPDX-License-Identifier: BSL-1.0 + + option(MESHLAB_ALLOW_DOWNLOAD_SOURCE_NEXUS "Allow download and use of nexus source" ON) ++option(MESHLAB_ALLOW_SYSTEM_NEXUS "Allow use of system-provided nexus and corto" ON) + + set(CORTO_VER 2025.07) + set(NEXUS_VER 2025.05) + +-if(MESHLAB_ALLOW_DOWNLOAD_SOURCE_NEXUS) ++find_package(nexus CONFIG) ++ ++if(MESHLAB_ALLOW_SYSTEM_NEXUS AND TARGET nexus::nexus) ++ message(STATUS "- nexus - using system-provided library") ++ add_library(external-nexus INTERFACE) ++ target_link_libraries(external-nexus INTERFACE nexus::nexus) ++elseif(MESHLAB_ALLOW_DOWNLOAD_SOURCE_NEXUS) + set(NEXUS_DIR "${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/nexus-${NEXUS_VER}") + set(NEXUS_CHECK "${NEXUS_DIR}/CMakeLists.txt") + set(CORTO_DIR "${NEXUS_DIR}/src/corto") + +From 32be737316181bd84d8beac7cb6b74379965d2fe Mon Sep 17 00:00:00 2001 +From: Guilhem Saurel +Date: Fri, 19 Sep 2025 11:26:36 +0200 +Subject: [PATCH 6/6] CMake: install exports + +--- + src/CMakeLists.txt | 21 +++++++++++++++++++++ + src/Config.cmake.in | 9 +++++++++ + src/common/CMakeLists.txt | 18 ++++++++++++++---- + src/meshlabplugins/io_base/CMakeLists.txt | 2 +- + 4 files changed, 45 insertions(+), 5 deletions(-) + create mode 100644 src/Config.cmake.in + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 839a515be..c490ea960 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -229,6 +229,27 @@ endforeach() + set(COPIED_FILES) + + if (NOT MESHLAB_BUILD_ONLY_LIBRARIES) ++ # headers ++ install(DIRECTORY common DESTINATION include FILES_MATCHING PATTERN "*.h") ++ # CMake exports ++ install(EXPORT meshlabTargets ++ DESTINATION lib/cmake/meshlab ++ NAMESPACE meshlab:: ++ FILE meshlabTargets.cmake ++ ) ++ include(CMakePackageConfigHelpers) ++ # generate the config file that includes the exports ++ configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in ++ "${CMAKE_CURRENT_BINARY_DIR}/meshlabConfig.cmake" ++ INSTALL_DESTINATION lib/cmake/vcglib ++ NO_SET_AND_CHECK_MACRO ++ NO_CHECK_REQUIRED_COMPONENTS_MACRO ++ ) ++ install(FILES ++ "${CMAKE_CURRENT_BINARY_DIR}/meshlabConfig.cmake" ++ DESTINATION lib/cmake/meshlab ++ ) ++ + # shaders + set(SHADER_BASE_DIR "${MESHLAB_RESOURCES_DIR}/shaders") + file( +diff --git a/src/Config.cmake.in b/src/Config.cmake.in +new file mode 100644 +index 000000000..63ba0ce97 +--- /dev/null ++++ b/src/Config.cmake.in +@@ -0,0 +1,9 @@ ++@PACKAGE_INIT@ ++ ++include(CMakeFindDependencyMacro) ++find_dependency(GLEW) ++find_dependency(OpenGL) ++find_dependency(Qt5 COMPONENTS OpenGL Xml Network) ++find_dependency(vcglib) ++ ++include ( "${CMAKE_CURRENT_LIST_DIR}/meshlabTargets.cmake" ) +diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt +index 0e640fdd4..c74bd579b 100644 +--- a/src/common/CMakeLists.txt ++++ b/src/common/CMakeLists.txt +@@ -198,7 +198,8 @@ endif() + + target_include_directories(meshlab-common + PUBLIC +- ${CMAKE_CURRENT_SOURCE_DIR}/..) ++ $ ++ $) + + target_link_libraries( + meshlab-common +@@ -208,10 +209,19 @@ target_link_libraries( + Qt5::Widgets + Qt5::Xml + Qt5::Network +- vcglib +- external-glew ++ PRIVATE + external-easyexif + ) ++if(TARGET vcglib::vcglib) ++ target_link_libraries(meshlab-common PUBLIC vcglib::vcglib) ++else() ++ target_link_libraries(meshlab-common PUBLIC vcglib) ++endif() ++if(TARGET GLEW::GLEW) ++ target_link_libraries(meshlab-common PUBLIC GLEW::GLEW) ++else() ++ target_link_libraries(meshlab-common PUBLIC external-glew) ++endif() + + set_property(TARGET meshlab-common PROPERTY FOLDER Core) + +@@ -234,4 +244,4 @@ endif() + set_target_properties(meshlab-common PROPERTIES + INSTALL_RPATH "$ORIGIN") + +-install(TARGETS meshlab-common DESTINATION ${MESHLAB_LIB_INSTALL_DIR}) ++install(TARGETS meshlab-common EXPORT meshlabTargets DESTINATION ${MESHLAB_LIB_INSTALL_DIR}) +diff --git a/src/meshlabplugins/io_base/CMakeLists.txt b/src/meshlabplugins/io_base/CMakeLists.txt +index 7a3137e63..64504d56d 100644 +--- a/src/meshlabplugins/io_base/CMakeLists.txt ++++ b/src/meshlabplugins/io_base/CMakeLists.txt +@@ -27,4 +27,4 @@ set(SOURCES + + add_meshlab_plugin(io_base ${SOURCES} ${HEADERS}) + +-target_link_libraries(io_base PRIVATE OpenGL::GLU) ++target_link_libraries(io_base PRIVATE OpenGL::GLU external-easyexif) diff --git a/pkgs/by-name/me/meshlab/package.nix b/pkgs/by-name/me/meshlab/package.nix index d86aea7157db..5cc3917cd741 100644 --- a/pkgs/by-name/me/meshlab/package.nix +++ b/pkgs/by-name/me/meshlab/package.nix @@ -6,6 +6,7 @@ libsForQt5, libGLU, lib3ds, + lib3mf, bzip2, muparser, eigen, @@ -25,16 +26,10 @@ corto, openctm, structuresynth, + vclab-nexus, }: let - tinygltf-src = fetchFromGitHub { - owner = "syoyo"; - repo = "tinygltf"; - tag = "v2.6.3"; - hash = "sha256-IyezvHzgLRyc3z8HdNsQMqDEhP+Ytw0stFNak3C8lTo="; - }; - downloads = [ "DLL_EMBREE" "SOURCE_BOOST" @@ -57,19 +52,18 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "meshlab"; - version = "2023.12"; + version = "2025.07"; src = fetchFromGitHub { owner = "cnr-isti-vclab"; repo = "meshlab"; tag = "MeshLab-${finalAttrs.version}"; - hash = "sha256-AdUAWS741RQclYaSE3Tz1/I0YSinNAnfSaqef+Tib8Y="; + hash = "sha256-6BozYzPCbBZ+btL4FCdzKlwKqTsvFWDfOXizzJSYo9s="; }; nativeBuildInputs = [ cmake libsForQt5.wrapQtAppsHook - vcg # templated library ]; buildInputs = [ @@ -78,6 +72,7 @@ stdenv.mkDerivation (finalAttrs: { libsForQt5.qtscript libsForQt5.qtxmlpatterns lib3ds + lib3mf bzip2 muparser eigen @@ -91,46 +86,37 @@ stdenv.mkDerivation (finalAttrs: { xercesc onetbb embree + vcg libigl corto openctm structuresynth + vclab-nexus ] ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ]; - postPatch = '' - substituteInPlace src/external/tinygltf.cmake \ - --replace-fail '$'{MESHLAB_EXTERNAL_DOWNLOAD_DIR}/tinygltf-2.6.3 ${tinygltf-src} - substituteInPlace src/external/libigl.cmake \ - --replace-fail '$'{MESHLAB_EXTERNAL_DOWNLOAD_DIR}/libigl-2.4.0 ${libigl} - substituteInPlace src/external/nexus.cmake \ - --replace-fail '$'{NEXUS_DIR}/src/corto ${corto.src} - substituteInPlace src/external/levmar.cmake \ - --replace-fail '$'{LEVMAR_LINK} ${levmar.src} \ - --replace-warn "MD5 ''${LEVMAR_MD5}" "" - substituteInPlace src/external/ssynth.cmake \ - --replace-fail '$'{SSYNTH_LINK} ${structuresynth.src} \ - --replace-warn "MD5 ''${SSYNTH_MD5}" "" - substituteInPlace src/common_gui/CMakeLists.txt \ - --replace-warn "MESHLAB_LIB_INSTALL_DIR" "CMAKE_INSTALL_LIBDIR" - '' - + lib.optionalString stdenv.hostPlatform.isLinux '' - substituteAll ${./meshlab.desktop} resources/linux/meshlab.desktop - '' - + lib.optionalString stdenv.hostPlatform.isDarwin '' - substituteInPlace src/meshlab/CMakeLists.txt \ - --replace-fail "set_additional_settings_info_plist(" "# set_additional_settings_info_plist(" \ - --replace-fail " TARGET meshlab" "# TARGET meshlab" \ - --replace-fail " FILE \''${MESHLAB_BUILD_DISTRIB_DIR}/meshlab.app/Contents/Info.plist)" \ - "# FILE \''${MESHLAB_BUILD_DISTRIB_DIR}/meshlab.app/Contents/Info.plist)" - ''; + patches = [ + # CMake: use system dependencies, install exports + # ref. https://github.com/cnr-isti-vclab/meshlab/pull/1617 + # merged upstream + ./1617_cmake-use-system-dependencies-install-exports.patch + ]; - cmakeFlags = [ - "-DVCGDIR=${vcg.src}" - ] - ++ cmakeFlagsDisallowDownload; + postPatch = + lib.optionalString stdenv.hostPlatform.isLinux '' + substituteAll ${./meshlab.desktop} resources/linux/meshlab.desktop + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + substituteInPlace src/meshlab/CMakeLists.txt \ + --replace-fail "set_additional_settings_info_plist(" "# set_additional_settings_info_plist(" \ + --replace-fail " TARGET meshlab" "# TARGET meshlab" \ + --replace-fail " FILE \''${MESHLAB_BUILD_DISTRIB_DIR}/meshlab.app/Contents/Info.plist)" \ + "# FILE \''${MESHLAB_BUILD_DISTRIB_DIR}/meshlab.app/Contents/Info.plist)" + ''; + + cmakeFlags = cmakeFlagsDisallowDownload; postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' mkdir -p $out/{Applications,bin,lib} @@ -150,7 +136,10 @@ stdenv.mkDerivation (finalAttrs: { postFixup = lib.optionalString stdenv.hostPlatform.isLinux '' - patchelf --add-needed $out/lib/meshlab/libmeshlab-common.so $out/bin/.meshlab-wrapped + patchelf \ + --add-needed $out/lib/meshlab/libmeshlab-common.so \ + --add-needed $out/lib/meshlab/libmeshlab-common-gui.so \ + $out/bin/.meshlab-wrapped '' + lib.optionalString stdenv.hostPlatform.isDarwin '' wrapQtApp "$out/Applications/meshlab.app/Contents/MacOS/meshlab" From cb2baca778ca1531da3bdf0cb93b001c5c4dec67 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Sun, 21 Sep 2025 23:35:44 +0200 Subject: [PATCH 15/26] meshlab: darwin updates - fix CMake exports - add missing library - update to llvm 19 Co-authored-by: Zexin Yuan --- pkgs/by-name/me/meshlab/package.nix | 5 ++++- pkgs/top-level/all-packages.nix | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/me/meshlab/package.nix b/pkgs/by-name/me/meshlab/package.nix index 5cc3917cd741..0be074cf79e1 100644 --- a/pkgs/by-name/me/meshlab/package.nix +++ b/pkgs/by-name/me/meshlab/package.nix @@ -121,8 +121,11 @@ stdenv.mkDerivation (finalAttrs: { postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' mkdir -p $out/{Applications,bin,lib} mv $out/meshlab.app $out/Applications/ - ln $out/Applications/meshlab.app/Contents/Frameworks/libmeshlab-common.dylib $out/lib/ + ln $out/Applications/meshlab.app/Contents/Frameworks/libmeshlab-common{,-gui}.dylib $out/lib/ makeWrapper $out/{Applications/meshlab.app/Contents/MacOS,bin}/meshlab + substituteInPlace $out/lib/cmake/meshlab/meshlabTargets-release.cmake --replace-fail \ + "{_IMPORT_PREFIX}/meshlab.app" \ + "{_IMPORT_PREFIX}/Applications/meshlab.app" ''; # The hook will wrap all the plugin binaries, make they are not a diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8bd88d03adfb..dba71cd83e1c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11741,7 +11741,6 @@ with pkgs; meshlab = callPackage ../by-name/me/meshlab/package.nix { stdenv = if stdenv.hostPlatform.isDarwin then llvmPackages_18.stdenv else stdenv; - llvmPackages = llvmPackages_18; }; meshlab-unstable = callPackage ../by-name/me/meshlab-unstable/package.nix { From 9802d5895f2a478ed910338ae961b2fa9ee797f3 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Sun, 21 Sep 2025 17:10:16 +0200 Subject: [PATCH 16/26] meshlab-unstable: drop --- .../me/meshlab-unstable/meshlab.desktop | 14 -- pkgs/by-name/me/meshlab-unstable/package.nix | 159 ------------------ pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 5 - 4 files changed, 1 insertion(+), 178 deletions(-) delete mode 100644 pkgs/by-name/me/meshlab-unstable/meshlab.desktop delete mode 100644 pkgs/by-name/me/meshlab-unstable/package.nix diff --git a/pkgs/by-name/me/meshlab-unstable/meshlab.desktop b/pkgs/by-name/me/meshlab-unstable/meshlab.desktop deleted file mode 100644 index aa8de186440d..000000000000 --- a/pkgs/by-name/me/meshlab-unstable/meshlab.desktop +++ /dev/null @@ -1,14 +0,0 @@ -[Desktop Entry] -Name=MeshLab -Version=@version@ -Name[en_GB]=MeshLab -GenericName=Mesh processing -GenericName[en_GB]=Mesh processing -Comment=View and process meshes -Type=Application -Exec=@out@/bin/meshlab %U -TryExec=@out@/bin/meshlab -Icon=@out@/share/icons/hicolor/meshlab.png -Terminal=false -MimeType=model/mesh;application/x-3ds;image/x-3ds;model/x-ply;application/sla;model/x-quad-object;model/x-geomview-off;application/x-cyclone-ptx;application/x-vmi;application/x-bre;model/vnd.collada+xml;model/openctm;application/x-expe-binary;application/x-expe-ascii;application/x-xyz;application/x-gts;chemical/x-pdb;application/x-tri;application/x-asc;model/x3d+xml;model/x3d+vrml;model/vrml;model/u3d;model/idtf; -Categories=Graphics;3DGraphics;Viewer;Qt; diff --git a/pkgs/by-name/me/meshlab-unstable/package.nix b/pkgs/by-name/me/meshlab-unstable/package.nix deleted file mode 100644 index 00468e6a0801..000000000000 --- a/pkgs/by-name/me/meshlab-unstable/package.nix +++ /dev/null @@ -1,159 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - llvmPackages, - libsForQt5, - libGLU, - lib3ds, - bzip2, - muparser, - eigen, - glew, - gmp, - levmar, - qhull, - cmake, - cgal, - boost, - mpfr, - xercesc, - onetbb, - embree, - libigl, - corto, - openctm, - structuresynth, -}: - -let - tinygltf-src = fetchFromGitHub { - owner = "syoyo"; - repo = "tinygltf"; - tag = "v2.6.3"; - hash = "sha256-IyezvHzgLRyc3z8HdNsQMqDEhP+Ytw0stFNak3C8lTo="; - }; - - # requires submodules to build - lib3mf-src = fetchFromGitHub { - owner = "3MFConsortium"; - repo = "lib3mf"; - tag = "v2.3.2"; - fetchSubmodules = true; - hash = "sha256-pKjnN9H6/A2zPvzpFed65J+mnNwG/dkSE2/pW7IlN58="; - }; -in -stdenv.mkDerivation { - pname = "meshlab-unstable"; - version = "2023.12-unstable-2025-02-21"; - - src = fetchFromGitHub { - owner = "cnr-isti-vclab"; - repo = "meshlab"; - # note that this is in branch devel - rev = "72142583980b6dbfc5b85c6cca226a72f48497a9"; - hash = "sha256-ev6b8sgJsjvD8KMBbC6kbrVvTxTxpqsXu/sK1Ih6+OA="; - # needed for an updated version of vcg in their submodule - fetchSubmodules = true; - }; - - postPatch = lib.optionalString stdenv.hostPlatform.isDarwin '' - substituteInPlace src/meshlab/CMakeLists.txt \ - --replace-fail "set_additional_settings_info_plist(" "# set_additional_settings_info_plist(" \ - --replace-fail " TARGET meshlab" "# TARGET meshlab" \ - --replace-fail " FILE \''${MESHLAB_BUILD_DISTRIB_DIR}/meshlab.app/Contents/Info.plist)" \ - "# FILE \''${MESHLAB_BUILD_DISTRIB_DIR}/meshlab.app/Contents/Info.plist)" - ''; - - buildInputs = [ - libGLU - libsForQt5.qtbase - libsForQt5.qtscript - libsForQt5.qtxmlpatterns - lib3ds - bzip2 - muparser - eigen - glew - gmp - levmar - qhull - cgal - boost - mpfr - xercesc - onetbb - embree - libigl - corto - openctm - structuresynth - ] - ++ lib.optionals stdenv.cc.isClang [ - llvmPackages.openmp - ]; - - nativeBuildInputs = [ - cmake - libsForQt5.wrapQtAppsHook - ]; - - preConfigure = '' - mkdir src/external/downloads - cp -r --no-preserve=mode,ownership ${lib3mf-src} src/external/downloads/lib3mf-2.3.2 - - substituteAll ${./meshlab.desktop} resources/linux/meshlab.desktop - substituteInPlace src/external/tinygltf.cmake \ - --replace-fail '$'{MESHLAB_EXTERNAL_DOWNLOAD_DIR}/tinygltf-2.6.3 ${tinygltf-src} - substituteInPlace src/external/libigl.cmake \ - --replace-fail '$'{MESHLAB_EXTERNAL_DOWNLOAD_DIR}/libigl-'$'{LIBIGL_VER} ${libigl} - substituteInPlace src/external/nexus.cmake \ - --replace-fail '$'{NEXUS_DIR}/src/corto ${corto.src} - substituteInPlace src/external/levmar.cmake \ - --replace-fail '$'{LEVMAR_LINK} ${levmar.src} \ - --replace-warn "MD5 ''${LEVMAR_MD5}" "" - substituteInPlace src/external/ssynth.cmake \ - --replace-fail '$'{SSYNTH_LINK} ${structuresynth.src} \ - --replace-warn "MD5 ''${SSYNTH_MD5}" "" - substituteInPlace src/common_gui/CMakeLists.txt \ - --replace-warn "MESHLAB_LIB_INSTALL_DIR" "CMAKE_INSTALL_LIBDIR" - ''; - - postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' - mkdir -p $out/{Applications,bin,lib} - mv $out/meshlab.app $out/Applications/ - ln $out/Applications/meshlab.app/Contents/Frameworks/* $out/lib/ - makeWrapper $out/{Applications/meshlab.app/Contents/MacOS,bin}/meshlab - ''; - - postFixup = - lib.optionalString stdenv.hostPlatform.isLinux '' - patchelf --add-needed $out/lib/meshlab/libmeshlab-common.so $out/bin/.meshlab-wrapped - patchelf --add-needed $out/lib/meshlab/lib3mf.so $out/lib/meshlab/plugins/libio_3mf.so - '' - + lib.optionalString stdenv.hostPlatform.isDarwin '' - wrapQtApp "$out/Applications/meshlab.app/Contents/MacOS/meshlab" - install_name_tool -change libopenctm.dylib "${lib.getOutput "out" openctm}/lib/libopenctm.dylib" \ - "$out/Applications/meshlab.app/Contents/PlugIns/libio_ctm.so" - ''; - - # The hook will wrap all the plugin binaries, make they are not a - # valid plugin. So we have to wrap the main app manually. - # See: https://github.com/NixOS/nixpkgs/pull/396295#issuecomment-3137779781 - dontWrapQtApps = stdenv.hostPlatform.isDarwin; - - # display a black screen on wayland, so force XWayland for now. - # Might be fixed when upstream will be ready for Qt6. - qtWrapperArgs = lib.optionals stdenv.hostPlatform.isLinux [ - "--set QT_QPA_PLATFORM xcb" - ]; - - meta = { - description = "System for processing and editing 3D triangular meshes (unstable)"; - mainProgram = "meshlab"; - homepage = "https://www.meshlab.net/"; - license = lib.licenses.gpl3Only; - maintainers = with lib.maintainers; [ pca006132 ]; - platforms = with lib.platforms; linux ++ darwin; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index a2fe24a88240..df6f2d939979 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -979,6 +979,7 @@ mapAliases { mediastreamer-openh264 = throw "'mediastreamer-openh264' has been moved to 'linphonePackages.msopenh264'"; # Added 2025-09-20 meilisearch_1_11 = throw "'meilisearch_1_11' has been removed, as it is no longer supported"; # Added 2025-10-03 melmatcheq.lv2 = melmatcheq-lv2; # Added 2025-09-27 + meshlab-unstable = throw "meshlab-unstable has been removed, as it was behind meshlab"; # Added 2025-09-21 meteo = throw "'meteo' has been removed as it was unmaintained and depends on deprecated webkitgtk_4_0"; # Added 2025-10-09 microcodeAmd = throw "'microcodeAmd' has been renamed to/replaced by 'microcode-amd'"; # Converted to throw 2025-10-27 microcodeIntel = throw "'microcodeIntel' has been renamed to/replaced by 'microcode-intel'"; # Converted to throw 2025-10-27 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index dba71cd83e1c..f8714c6ef2d2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11743,11 +11743,6 @@ with pkgs; stdenv = if stdenv.hostPlatform.isDarwin then llvmPackages_18.stdenv else stdenv; }; - meshlab-unstable = callPackage ../by-name/me/meshlab-unstable/package.nix { - stdenv = if stdenv.hostPlatform.isDarwin then llvmPackages_18.stdenv else stdenv; - llvmPackages = llvmPackages_18; - }; - meshcentral = callPackage ../tools/admin/meshcentral { }; michabo = libsForQt5.callPackage ../applications/misc/michabo { }; From ae49f7f97644086813753e46a4a8ee51cc1d8425 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Thu, 25 Sep 2025 08:52:10 +0200 Subject: [PATCH 17/26] meshlab: remove from all-packages, use by-name --- pkgs/top-level/all-packages.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f8714c6ef2d2..e163d061a653 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11739,10 +11739,6 @@ with pkgs; mercurialFull = mercurial.override { fullBuild = true; }; - meshlab = callPackage ../by-name/me/meshlab/package.nix { - stdenv = if stdenv.hostPlatform.isDarwin then llvmPackages_18.stdenv else stdenv; - }; - meshcentral = callPackage ../tools/admin/meshcentral { }; michabo = libsForQt5.callPackage ../applications/misc/michabo { }; From 1376ce754f6f2bafa9f2e7d177c6972ebbc31bcc Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Sun, 5 Oct 2025 23:09:22 +0200 Subject: [PATCH 18/26] meshlab: darwin plist: substitute -> patch Co-authored-by: Sandro <7258858+SuperSandro2000@users.noreply.github.com> --- pkgs/by-name/me/meshlab/no-plist.patch | 12 ++++++++++++ pkgs/by-name/me/meshlab/package.nix | 17 ++++++----------- 2 files changed, 18 insertions(+), 11 deletions(-) create mode 100644 pkgs/by-name/me/meshlab/no-plist.patch diff --git a/pkgs/by-name/me/meshlab/no-plist.patch b/pkgs/by-name/me/meshlab/no-plist.patch new file mode 100644 index 000000000000..7c8d753190a8 --- /dev/null +++ b/pkgs/by-name/me/meshlab/no-plist.patch @@ -0,0 +1,12 @@ +--- src/meshlab/CMakeLists.txt.orig 2025-10-05 23:04:12.786192073 +0200 ++++ src/meshlab/CMakeLists.txt 2025-10-05 23:04:16.379256637 +0200 +@@ -92,9 +92,6 @@ + MACOSX_BUNDLE_COPYRIGHT "Copyright VCG-ISTI-CNR © 2005-2021. All rights reserved." + ) + +- set_additional_settings_info_plist( +- TARGET meshlab +- FILE ${MESHLAB_BUILD_DISTRIB_DIR}/meshlab.app/Contents/Info.plist) + endif() + + install( diff --git a/pkgs/by-name/me/meshlab/package.nix b/pkgs/by-name/me/meshlab/package.nix index 0be074cf79e1..9e431b24d75d 100644 --- a/pkgs/by-name/me/meshlab/package.nix +++ b/pkgs/by-name/me/meshlab/package.nix @@ -102,19 +102,14 @@ stdenv.mkDerivation (finalAttrs: { # ref. https://github.com/cnr-isti-vclab/meshlab/pull/1617 # merged upstream ./1617_cmake-use-system-dependencies-install-exports.patch + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + ./no-plist.patch ]; - postPatch = - lib.optionalString stdenv.hostPlatform.isLinux '' - substituteAll ${./meshlab.desktop} resources/linux/meshlab.desktop - '' - + lib.optionalString stdenv.hostPlatform.isDarwin '' - substituteInPlace src/meshlab/CMakeLists.txt \ - --replace-fail "set_additional_settings_info_plist(" "# set_additional_settings_info_plist(" \ - --replace-fail " TARGET meshlab" "# TARGET meshlab" \ - --replace-fail " FILE \''${MESHLAB_BUILD_DISTRIB_DIR}/meshlab.app/Contents/Info.plist)" \ - "# FILE \''${MESHLAB_BUILD_DISTRIB_DIR}/meshlab.app/Contents/Info.plist)" - ''; + postPatch = lib.optionalString stdenv.hostPlatform.isLinux '' + substituteAll ${./meshlab.desktop} resources/linux/meshlab.desktop + ''; cmakeFlags = cmakeFlagsDisallowDownload; From 3994ebf8cc61f32ae9236d75829875e19bfab5c9 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Fri, 19 Sep 2025 12:14:46 +0200 Subject: [PATCH 19/26] python3Packages.pymeshlab: 2023.12 -> 2025.7 + use system dependencies --- .../graphics/pymeshlab/default.nix | 117 ++++++++---------- 1 file changed, 49 insertions(+), 68 deletions(-) diff --git a/pkgs/applications/graphics/pymeshlab/default.nix b/pkgs/applications/graphics/pymeshlab/default.nix index b6d37dfc5649..60c7132365ee 100644 --- a/pkgs/applications/graphics/pymeshlab/default.nix +++ b/pkgs/applications/graphics/pymeshlab/default.nix @@ -1,106 +1,87 @@ { - stdenv, lib, + + stdenv, fetchFromGitHub, - libGLU, - qtbase, - qtscript, - qtxmlpatterns, - lib3ds, - bzip2, - muparser, - eigen, - glew, - gmp, - levmar, - qhull, + fetchpatch, + + # nativeBuildInputs cmake, - cgal, - boost, - mpfr, - xercesc, - onetbb, - embree, - vcg, - libigl, - corto, - openctm, - structuresynth, - wrapQtAppsHook, python3Packages, + + # propagatedBuildInputs + meshlab, + + # buildInputs + libsForQt5, + glew, + vcg, }: stdenv.mkDerivation (finalAttrs: { pname = "pymeshlab"; - version = "2023.12"; + version = "2025.7"; src = fetchFromGitHub { owner = "cnr-isti-vclab"; repo = "pymeshlab"; - rev = "v${finalAttrs.version}"; - hash = "sha256-IOlRdXoUPOJt67g3HqsLchV5aL+JUEks2y1Sy+wpwsg="; - fetchSubmodules = true; + tag = "v${finalAttrs.version}"; + hash = "sha256-LCR2/AyX9uVX4xhZareUL6YlpUsCFiGDMBB5nFp+H6k="; }; - buildInputs = [ - libGLU - qtbase - qtscript - qtxmlpatterns - lib3ds - bzip2 - muparser - eigen - glew - gmp - levmar - qhull - cgal - boost - mpfr - xercesc - onetbb - embree - vcg - libigl - corto - structuresynth - openctm + patches = [ + # CMake: allow use of system-provided meshlab & pybind11 + # ref. https://github.com/cnr-isti-vclab/PyMeshLab/pull/445 + # merged upstream + (fetchpatch { + url = "https://github.com/cnr-isti-vclab/PyMeshLab/commit/b363caae4362746b3f9e9326fe7b72a2ec7824d9.patch"; + hash = "sha256-euKfOx/T0qdeMx79dpEalzmdWsr4nbDFJfKdksvULBw="; + }) ]; nativeBuildInputs = [ cmake - wrapQtAppsHook python3Packages.pybind11 ]; propagatedBuildInputs = [ + meshlab python3Packages.numpy + python3Packages.pythonImportsCheckHook ]; - preConfigure = '' - substituteInPlace src/meshlab/src/external/libigl.cmake \ - --replace-fail '$'{MESHLAB_EXTERNAL_DOWNLOAD_DIR}/libigl-2.4.0 ${libigl} - substituteInPlace src/meshlab/src/external/nexus.cmake \ - --replace-fail '$'{NEXUS_DIR}/src/corto ${corto.src} - substituteInPlace src/meshlab/src/external/levmar.cmake \ - --replace-fail '$'{LEVMAR_LINK} ${levmar.src} \ - --replace-warn "MD5 ''${LEVMAR_MD5}" "" - substituteInPlace src/meshlab/src/external/ssynth.cmake \ - --replace-fail '$'{SSYNTH_LINK} ${structuresynth.src} \ - --replace-warn "MD5 ''${SSYNTH_MD5}" "" - ''; + buildInputs = [ + glew + libsForQt5.qtbase + vcg + ]; + + dontWrapQtApps = true; cmakeFlags = [ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/${python3Packages.python.sitePackages}/pymeshlab" - "-DVCGDIR=${vcg.src}" ]; + # Get io & filter plugins from meshlab, to avoild render, decorate & edit ones + postInstall = '' + install -D -t $out/${python3Packages.python.sitePackages}/pymeshlab/lib/plugins \ + ${meshlab}/lib/meshlab/plugins/libio_* \ + ${meshlab}/lib/meshlab/plugins/libfilter_* + ''; + + postFixup = '' + patchelf \ + --add-needed ${meshlab}/lib/meshlab/libmeshlab-common.so \ + $out/${python3Packages.python.sitePackages}/pymeshlab/pmeshlab.*.so + ''; + + pythonImportsCheck = [ "pymeshlab" ]; + meta = { description = "Open source mesh processing python library"; homepage = "https://github.com/cnr-isti-vclab/PyMeshLab"; license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ nim65s ]; - platforms = with lib.platforms; linux; + platforms = with lib.platforms; linux ++ darwin; }; }) From 034b8dd615162d9e5e46b7a470e62f35535f6a85 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Sun, 21 Sep 2025 23:27:12 +0200 Subject: [PATCH 20/26] python3Packages.pymeshlab: fix on darwin --- .../graphics/pymeshlab/default.nix | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/graphics/pymeshlab/default.nix b/pkgs/applications/graphics/pymeshlab/default.nix index 60c7132365ee..b6e0619e1c23 100644 --- a/pkgs/applications/graphics/pymeshlab/default.nix +++ b/pkgs/applications/graphics/pymeshlab/default.nix @@ -14,6 +14,7 @@ # buildInputs libsForQt5, + llvmPackages, glew, vcg, }: @@ -54,6 +55,9 @@ stdenv.mkDerivation (finalAttrs: { glew libsForQt5.qtbase vcg + ] + ++ lib.optionals stdenv.cc.isClang [ + llvmPackages.openmp ]; dontWrapQtApps = true; @@ -63,13 +67,22 @@ stdenv.mkDerivation (finalAttrs: { ]; # Get io & filter plugins from meshlab, to avoild render, decorate & edit ones - postInstall = '' - install -D -t $out/${python3Packages.python.sitePackages}/pymeshlab/lib/plugins \ - ${meshlab}/lib/meshlab/plugins/libio_* \ - ${meshlab}/lib/meshlab/plugins/libfilter_* - ''; + postInstall = + let + plugins = + if stdenv.hostPlatform.isDarwin then + "Applications/meshlab.app/Contents/PlugIns" + else + "lib/meshlab/plugins"; + pyPlugins = if stdenv.hostPlatform.isDarwin then "PlugIns" else "lib/plugins"; + in + '' + install -D -t $out/${python3Packages.python.sitePackages}/pymeshlab/${pyPlugins} \ + ${meshlab}/${plugins}/libio_* \ + ${meshlab}/${plugins}/libfilter_* + ''; - postFixup = '' + postFixup = lib.optionalString stdenv.hostPlatform.isLinux '' patchelf \ --add-needed ${meshlab}/lib/meshlab/libmeshlab-common.so \ $out/${python3Packages.python.sitePackages}/pymeshlab/pmeshlab.*.so From 163222ab2bf72c334128f29cfd7b2096799ffc8c Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Sun, 5 Oct 2025 23:10:44 +0200 Subject: [PATCH 21/26] python3Packages.pymeshlab: dont propagate hook Co-authored-by: Sandro <7258858+SuperSandro2000@users.noreply.github.com> --- pkgs/applications/graphics/pymeshlab/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/graphics/pymeshlab/default.nix b/pkgs/applications/graphics/pymeshlab/default.nix index b6e0619e1c23..ec6edb230aff 100644 --- a/pkgs/applications/graphics/pymeshlab/default.nix +++ b/pkgs/applications/graphics/pymeshlab/default.nix @@ -45,10 +45,13 @@ stdenv.mkDerivation (finalAttrs: { python3Packages.pybind11 ]; + nativeCheckInputs = [ + python3Packages.pythonImportsCheckHook + ]; + propagatedBuildInputs = [ meshlab python3Packages.numpy - python3Packages.pythonImportsCheckHook ]; buildInputs = [ From e8ea109858ee69b84e994624db7796b72d028ad4 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Mon, 6 Oct 2025 01:34:14 +0200 Subject: [PATCH 22/26] openscad: fix on darwin --- pkgs/by-name/op/openscad/package.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkgs/by-name/op/openscad/package.nix b/pkgs/by-name/op/openscad/package.nix index a4256d035061..e914d3043f83 100644 --- a/pkgs/by-name/op/openscad/package.nix +++ b/pkgs/by-name/op/openscad/package.nix @@ -84,6 +84,15 @@ stdenv.mkDerivation rec { sed -i 's/& / \&/g;s/\*\*/\0 /g;s/^\(.\) /\1\t/' "$out" ''; }) + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # ref. https://github.com/openscad/openscad/pull/4013 merged upstream + (fetchpatch { + name = "mem_fun-to-mem_fn.patch"; + url = "https://github.com/openscad/openscad/commit/c9a1abbedfbf6dda9a23d3ad5844d11e5278a928.patch"; + hash = "sha256-Man9ledRREb7U+2UOQ0VkpiwbYQjyVOY21YaRFObZc8="; + }) + ]; postPatch = '' @@ -92,6 +101,11 @@ stdenv.mkDerivation rec { substituteInPlace src/openscad.cc \ --replace-fail 'boost::join' 'boost::algorithm::join' + '' + # ref. https://github.com/openscad/openscad/pull/4253 merged upstream but does not apply + + lib.optionalString stdenv.hostPlatform.isDarwin '' + substituteInPlace src/FreetypeRenderer.h \ + --replace-fail ": public std::unary_function" "" ''; nativeBuildInputs = [ From 974b7b39d7c2160c5ec33df951d9e6be4ad2fcd7 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Tue, 14 Oct 2025 11:39:26 +0200 Subject: [PATCH 23/26] tinygltf: unvendor json & stb Co-authored-by: jopejoe1 <34899572+jopejoe1@users.noreply.github.com> --- pkgs/by-name/ti/tinygltf/package.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pkgs/by-name/ti/tinygltf/package.nix b/pkgs/by-name/ti/tinygltf/package.nix index 564114244456..c9bf9ad7ec82 100644 --- a/pkgs/by-name/ti/tinygltf/package.nix +++ b/pkgs/by-name/ti/tinygltf/package.nix @@ -1,8 +1,16 @@ { lib, + stdenv, fetchFromGitHub, + nix-update-script, + + # nativeBuildInputs cmake, + + # propagatedBuildInputs + nlohmann_json, + stb, }: stdenv.mkDerivation (finalAttrs: { @@ -20,6 +28,17 @@ stdenv.mkDerivation (finalAttrs: { cmake ]; + propagatedBuildInputs = [ + nlohmann_json + stb + ]; + + cmakeFlags = [ + (lib.cmakeBool "TINYGLTF_INSTALL_VENDOR" false) + ]; + + passthru.updateScript = nix-update-script { }; + meta = { description = "Header only C++11 tiny glTF 2.0 library"; homepage = "https://github.com/syoyo/tinygltf"; From 044abb14a1ed1294026481cc5d032956f7c41854 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Fri, 24 Oct 2025 00:06:00 +0200 Subject: [PATCH 24/26] lib3mf: fix header install MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Somehow this was working before, but around 2025-10-23, something changed on master, and nixpkgs-review would stop working on https://github.com/NixOS/nixpkgs/pull/445078: ``` $ nix build -L github:NixOS/nixpkgs/pull/445078/head#lib3mf.dev $ eza result-dev/include/  lib3mf/ $ nix build -L github:NixOS/nixpkgs/pull/445078/merge#lib3mf.dev $ eza result-dev/include/ "result-dev/include/": No such file or directory (os error 2) ``` The headers are now installed in the build tree: ``` -- Installing: /nix/store/i7qd0hcky65i557fqjl5qq3xrp30hwhz-lib3mf-2.4.1/lib/lib3mf.so.2 -- Installing: /nix/store/i7qd0hcky65i557fqjl5qq3xrp30hwhz-lib3mf-2.4.1/lib/lib3mf.so -- Installing: /build/source/build/include/lib3mf/Bindings -- Installing: /build/source/build/include/lib3mf/Bindings/NodeJS -- Installing: /build/source/build/include/lib3mf/Bindings/NodeJS/lib3mf_nodeaddon.cc -- Installing: /build/source/build/include/lib3mf/Bindings/NodeJS/lib3mf_nodewrapper.cc ``` Maybe CMake 4.1.1 -> 4.1.2 changed something. --- pkgs/by-name/li/lib3mf/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/li/lib3mf/package.nix b/pkgs/by-name/li/lib3mf/package.nix index 289fcaf48d75..6424ac5b2c9c 100644 --- a/pkgs/by-name/li/lib3mf/package.nix +++ b/pkgs/by-name/li/lib3mf/package.nix @@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: { ]; cmakeFlags = [ - "-DCMAKE_INSTALL_INCLUDEDIR=include/lib3mf" + "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include/lib3mf" "-DUSE_INCLUDED_ZLIB=OFF" "-DUSE_INCLUDED_LIBZIP=OFF" "-DUSE_INCLUDED_GTEST=OFF" From c2172a75745b4a082bc4c600251f858671cfb41f Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Fri, 24 Oct 2025 19:43:32 +0200 Subject: [PATCH 25/26] openscad-unstable: fix use of our lib3mf cmake export --- pkgs/by-name/op/openscad-unstable/package.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/by-name/op/openscad-unstable/package.nix b/pkgs/by-name/op/openscad-unstable/package.nix index b5d73abc4b0e..7f64438b8078 100644 --- a/pkgs/by-name/op/openscad-unstable/package.nix +++ b/pkgs/by-name/op/openscad-unstable/package.nix @@ -57,6 +57,13 @@ clangStdenv.mkDerivation rec { patches = [ ./test.diff ]; + # fix use of our lib3mf cmake export instead of finder + postPatch = '' + substituteInPlace CMakeLists.txt --replace-fail \ + "Lib3MF" \ + "lib3mf" + ''; + nativeBuildInputs = [ (python3.withPackages ( ps: with ps; [ From 9c0cec049bc6fcae1ea7a2dc5b1868549b44233d Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Mon, 27 Oct 2025 10:59:41 +0100 Subject: [PATCH 26/26] lib3mf: fix lib3mf.pc --- pkgs/by-name/li/lib3mf/package.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/by-name/li/lib3mf/package.nix b/pkgs/by-name/li/lib3mf/package.nix index 6424ac5b2c9c..8038e0f5b0db 100644 --- a/pkgs/by-name/li/lib3mf/package.nix +++ b/pkgs/by-name/li/lib3mf/package.nix @@ -104,6 +104,10 @@ stdenv.mkDerivation (finalAttrs: { substituteInPlace cmake/lib3mfConfig.cmake \ --replace-fail "$""{LIB3MF_ROOT_DIR}/include" "$""{LIB3MF_ROOT_DIR}/include/lib3mf" \ --replace-fail "$""{LIB3MF_ROOT_DIR}/lib" "$out/lib" + + # Use absolute CMAKE_INSTALL_INCLUDEDIR + substituteInPlace lib3mf.pc.in \ + --replace-fail "includedir=$""{prefix}/@CMAKE_INSTALL_INCLUDEDIR@" "includedir=@CMAKE_INSTALL_INCLUDEDIR@" ''; doCheck = true;