From 80f12f170fec51c9e7b500a6bf8d926afd08f393 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Mon, 25 Mar 2024 17:42:15 +0100 Subject: [PATCH 1/8] embree: 3.13.5 -> 4.3.1 --- pkgs/development/libraries/embree/default.nix | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/pkgs/development/libraries/embree/default.nix b/pkgs/development/libraries/embree/default.nix index 419572f3ff16..d956eae27e8d 100644 --- a/pkgs/development/libraries/embree/default.nix +++ b/pkgs/development/libraries/embree/default.nix @@ -1,32 +1,24 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config, ispc, tbb, glfw, +{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, ispc, tbb, glfw, openimageio, libjpeg, libpng, libpthreadstubs, libX11, glib }: stdenv.mkDerivation rec { pname = "embree"; - version = "3.13.5"; + version = "4.3.1"; src = fetchFromGitHub { owner = "embree"; repo = "embree"; rev = "v${version}"; - sha256 = "sha256-tfM4SGOFVBG0pQK9B/iN2xDaW3yjefnTtsoUad75m80="; + sha256 = "sha256-gQPlk0bDn04s2pncF22m/OpIbzF3NXKkRCZbmxfXEY4="; }; - patches = [ - (fetchpatch { - name = "fixed-compilation-issues-for-arm-aarch64-processor-under-linux.patch"; - url = "https://github.com/embree/embree/commit/82ca6b5ccb7abe0403a658a0e079926478f04cb1.patch"; - hash = "sha256-l9S4PBk+yQUypQ22l05daD0ruouZKE4VHkGvzKxkH4o="; - }) - ]; - postPatch = '' # Fix duplicate /nix/store/.../nix/store/.../ paths sed -i "s|SET(EMBREE_ROOT_DIR .*)|set(EMBREE_ROOT_DIR $out)|" \ common/cmake/embree-config.cmake sed -i "s|$""{EMBREE_ROOT_DIR}/||" common/cmake/embree-config.cmake - substituteInPlace common/math/math.h --replace 'defined(__MACOSX__) && !defined(__INTEL_COMPILER)' 0 - substituteInPlace common/math/math.h --replace 'defined(__WIN32__) || defined(__FreeBSD__)' 'defined(__WIN32__) || defined(__FreeBSD__) || defined(__MACOSX__)' + substituteInPlace common/math/emath.h --replace 'defined(__MACOSX__) && !defined(__INTEL_COMPILER)' 0 + substituteInPlace common/math/emath.h --replace 'defined(__WIN32__) || defined(__FreeBSD__)' 'defined(__WIN32__) || defined(__FreeBSD__) || defined(__MACOSX__)' ''; cmakeFlags = [ From 94e72a53132cbef658bb2ff2949216f47ee9ff29 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 27 Mar 2024 12:22:13 +0100 Subject: [PATCH 2/8] openusd: patch for embree 4 --- pkgs/development/python-modules/openusd/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/development/python-modules/openusd/default.nix b/pkgs/development/python-modules/openusd/default.nix index 52a4bdc40573..bc67c43a6b0b 100644 --- a/pkgs/development/python-modules/openusd/default.nix +++ b/pkgs/development/python-modules/openusd/default.nix @@ -9,6 +9,7 @@ draco, embree, fetchFromGitHub, + fetchpatch, flex, git, graphviz-nox, @@ -63,6 +64,14 @@ buildPythonPackage rec { format = "other"; + patches = [ + (fetchpatch { + name = "port-to-embree-4.patch"; + url = "https://github.com/PixarAnimationStudios/OpenUSD/pull/2266/commits/4b6c23d459c602fdac5e0ebc9b7722cbd5475e86.patch"; + hash = "sha256-yjqdGAVqfEsOX1W/tG6c+GgQLYya5U9xgUe/sNIuDbw="; + }) + ]; + cmakeFlags = [ "-DPXR_BUILD_ALEMBIC_PLUGIN=ON" "-DPXR_BUILD_DRACO_PLUGIN=ON" From 35fedceb8b3d5fc14a04e247b978f64507c78035 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Mon, 25 Mar 2024 22:07:44 +0100 Subject: [PATCH 3/8] libigl: init at 2.5.0 Co-authored-by: Sandro --- pkgs/by-name/li/libigl/package.nix | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 pkgs/by-name/li/libigl/package.nix diff --git a/pkgs/by-name/li/libigl/package.nix b/pkgs/by-name/li/libigl/package.nix new file mode 100644 index 000000000000..085915ea352f --- /dev/null +++ b/pkgs/by-name/li/libigl/package.nix @@ -0,0 +1,31 @@ +{ + lib, + stdenvNoCC, + fetchFromGitHub, +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "libigl"; + version = "2.5.0"; + + src = fetchFromGitHub { + owner = "libigl"; + repo = "libigl"; + rev = "v${finalAttrs.version}"; + hash = "sha256-OpjkQGRiuc7kNlwgCeM4dcotTb5J+6LUn4IOe9bFbW4="; + }; + + # We could also properly use CMake, but we would have to heavily patch it + # to avoid configure-time downloads of many things. + installPhase = '' + mkdir -p $out/include + cp -r include/igl $out/include + ''; + + meta = with lib; { + description = "Simple C++ geometry processing library"; + homepage = "https://github.com/libigl/libigl"; + license = licenses.mpl20; + maintainers = with maintainers; [ nim65s ]; + }; +}) From 835c1cbf108429ed017793ee6f76fed4e1cfbb1e Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Mon, 25 Mar 2024 22:47:12 +0100 Subject: [PATCH 4/8] corto: init at unstable-2023-06-27 Co-authored-by: Sandro --- pkgs/by-name/co/corto/package.nix | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 pkgs/by-name/co/corto/package.nix diff --git a/pkgs/by-name/co/corto/package.nix b/pkgs/by-name/co/corto/package.nix new file mode 100644 index 000000000000..acf0517e0c10 --- /dev/null +++ b/pkgs/by-name/co/corto/package.nix @@ -0,0 +1,27 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, +}: + +stdenv.mkDerivation { + pname = "corto"; + version = "0-unstable-2024-04-05"; + + src = fetchFromGitHub { + owner = "cnr-isti-vclab"; + repo = "corto"; + rev = "d880519c490c88a39d12c31a914b6a687a7019c3"; + hash = "sha256-0OUijrf+0ZNv3oYko2r8Kp9zgtg8b9RPL7DXHf15Ryc="; + }; + + nativeBuildInputs = [ cmake ]; + + meta = with lib; { + description = "Mesh compression library, designed for rendering and speed"; + homepage = "https://github.com/cnr-isti-vclab/corto"; + license = licenses.mit; + maintainers = with maintainers; [ nim65s ]; + }; +} From df69ac58f030234a251edebe35efa625282a7dd0 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Tue, 26 Mar 2024 00:07:32 +0100 Subject: [PATCH 5/8] openctm: init at 1.0.3 Co-authored-by: Sandro --- pkgs/by-name/op/openctm/package.nix | 59 +++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 pkgs/by-name/op/openctm/package.nix diff --git a/pkgs/by-name/op/openctm/package.nix b/pkgs/by-name/op/openctm/package.nix new file mode 100644 index 000000000000..e255e209111d --- /dev/null +++ b/pkgs/by-name/op/openctm/package.nix @@ -0,0 +1,59 @@ +{ + lib, + stdenv, + fetchurl, + pkg-config, + freeglut, + gtk2, + libGLU, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "openctm"; + version = "1.0.3"; + + src = fetchurl { + url = "https://downloads.sourceforge.net/project/openctm/OpenCTM-${finalAttrs.version}/OpenCTM-${finalAttrs.version}-src.tar.bz2"; + hash = "sha256-So0mCNlzZPfuxWt8Y3xWuTCK6YKGs+kNu3QTyQ6UPx0="; + }; + + outputs = [ + "bin" + "dev" + "man" + "out" + ]; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + freeglut + gtk2 + libGLU + ]; + + postPatch = '' + substituteInPlace tools/tinyxml/Makefile.linux \ + --replace-warn "-Wno-format" "-Wno-format -Wno-format-security" + substituteInPlace tools/Makefile.linux \ + --replace-warn "-lglut" "-lglut -lGL -lGLU" + ''; + + makeFlags = [ + "BINDIR=$(bin)/bin/" + "INCDIR=$(dev)/include/" + "LIBDIR=$(out)/lib/" + "MAN1DIR=$(man)/share/man//man1" + ]; + + makefile = if stdenv.isDarwin then "Makefile.macosx" else "Makefile.linux"; + + preInstall = "mkdir -p $bin/bin $dev/include $out/lib $man/share/man/man1"; + + meta = with lib; { + description = "File format, software library and a tool set for compression of 3D triangle meshes"; + homepage = "https://sourceforge.net/projects/openctm/"; + license = licenses.zlib; + maintainers = with maintainers; [ nim65s ]; + }; +}) From e71d969ca7d0c66e1fb5a4122f13cbbb680f9bf6 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Tue, 26 Mar 2024 00:42:45 +0100 Subject: [PATCH 6/8] structuresynth: init at 1.5.1 Co-authored-by: Sandro --- .../libraries/structuresynth/default.nix | 61 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 63 insertions(+) create mode 100644 pkgs/development/libraries/structuresynth/default.nix diff --git a/pkgs/development/libraries/structuresynth/default.nix b/pkgs/development/libraries/structuresynth/default.nix new file mode 100644 index 000000000000..362aaa7e25c9 --- /dev/null +++ b/pkgs/development/libraries/structuresynth/default.nix @@ -0,0 +1,61 @@ +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + cmake, + qtbase, + wrapQtAppsHook, + libGL, + libGLU, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "structuresynth"; + version = "1.5.1"; + + src = fetchFromGitHub { + owner = "alemuntoni"; + repo = "structuresynth"; + rev = finalAttrs.version; + hash = "sha256-uFz4WPwA586B/5p+DUJ/W8KzbHLBhLIwP6mySZJ1vPY="; + }; + + patches = [ + # This PR in 2 commits allow packaging of this project as standalone. + # It was merged upstream, so those 2 patches can be removed on next release. + (fetchpatch { + name = "shared-lib.patch"; + url = "https://github.com/alemuntoni/StructureSynth/pull/1/commits/fdb87c55a03c6a0faa4335de5d29f0fb547b6102.patch"; + hash = "sha256-/66x8HGyNhGwoxsbV+QIRFYQNuFSHYXNYkJzAn4jyJI="; + }) + (fetchpatch { + name = "install-project.patch"; + url = "https://github.com/alemuntoni/StructureSynth/pull/1/commits/f96a90f6a4c60e9e0316edd20ea77674a2b764a7.patch"; + hash = "sha256-cSZAL1N2/Gd0x+9UkTUQxqVlb2m2MM8AA1Zzlo6S35w="; + }) + ]; + + outputs = [ + "dev" + "out" + ]; + + buildInputs = [ + libGL + libGLU + qtbase + ]; + + nativeBuildInputs = [ + cmake + wrapQtAppsHook + ]; + + meta = with lib; { + description = "Generate 3D structures by specifying a design grammar"; + homepage = "https://github.com/alemuntoni/StructureSynth"; + license = licenses.lgpl21; + maintainers = with maintainers; [ nim65s ]; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 445e320dec98..1afabb98dbc4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24723,6 +24723,8 @@ with pkgs; streamlink = callPackage ../applications/video/streamlink { }; streamlink-twitch-gui-bin = callPackage ../applications/video/streamlink-twitch-gui/bin.nix { }; + structuresynth = libsForQt5.callPackage ../development/libraries/structuresynth { }; + sub-batch = callPackage ../applications/video/sub-batch { }; subdl = callPackage ../applications/video/subdl { }; From 74900367e85e4d7560db2aaf12d5282afc0f12b0 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Tue, 26 Mar 2024 01:05:14 +0100 Subject: [PATCH 7/8] meshlab: 2022.02 -> 2023.12 --- .../applications/graphics/meshlab/default.nix | 58 ++++++++++--------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix index 32d528831539..a77a39445c04 100644 --- a/pkgs/applications/graphics/meshlab/default.nix +++ b/pkgs/applications/graphics/meshlab/default.nix @@ -15,21 +15,27 @@ , qhull , cmake , cgal -, boost179 +, boost , mpfr , xercesc +, tbb +, embree +, vcg +, libigl +, corto +, openctm +, structuresynth }: mkDerivation rec { pname = "meshlab"; - version = "2022.02"; + version = "2023.12"; src = fetchFromGitHub { owner = "cnr-isti-vclab"; repo = "meshlab"; rev = "MeshLab-${version}"; - sha256 = "sha256-jcc3PfsiIeYyipteZgzd0NwZgFFgR/mMBiaInzhOcDY="; - fetchSubmodules = true; # for vcglib + sha256 = "sha256-AdUAWS741RQclYaSE3Tz1/I0YSinNAnfSaqef+Tib8Y="; }; buildInputs = [ @@ -46,38 +52,38 @@ mkDerivation rec { levmar qhull cgal - boost179 + boost mpfr xercesc + tbb + embree + vcg + libigl + corto + openctm + structuresynth ]; nativeBuildInputs = [ cmake ]; preConfigure = '' - substituteAll ${./meshlab.desktop} scripts/Linux/resources/meshlab.desktop - cmakeDir=$PWD/src - mkdir ../build - cd ../build + substituteAll ${./meshlab.desktop} resources/linux/meshlab.desktop + 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" ''; cmakeFlags = [ - "-DALLOW_BUNDLED_EIGEN=OFF" - "-DALLOW_BUNDLED_GLEW=OFF" - "-DALLOW_BUNDLED_LIB3DS=OFF" - "-DALLOW_BUNDLED_MUPARSER=OFF" - "-DALLOW_BUNDLED_QHULL=OFF" - # disable when available in nixpkgs - "-DALLOW_BUNDLED_OPENCTM=ON" - "-DALLOW_BUNDLED_SSYNTH=ON" - "-DALLOW_BUNDLED_BOOST=OFF" - # some plugins are disabled unless these are on - "-DALLOW_BUNDLED_NEWUOA=ON" - "-DALLOW_BUNDLED_LEVMAR=ON" - ]; - - CXXFLAGS = [ - # GCC 13: error: 'int16_t' has not been declared in 'std' - "-include cstdint" + "-DVCGDIR=${vcg.src}" ]; postFixup = '' From fc7d8b347a6d3deb8dd765e8bc026cdcaf0eed1f Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Tue, 26 Mar 2024 15:38:21 +0100 Subject: [PATCH 8/8] pymeshlab: init at 2023.12 Co-authored-by: Sandro --- .../graphics/pymeshlab/default.nix | 107 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 109 insertions(+) create mode 100644 pkgs/applications/graphics/pymeshlab/default.nix diff --git a/pkgs/applications/graphics/pymeshlab/default.nix b/pkgs/applications/graphics/pymeshlab/default.nix new file mode 100644 index 000000000000..5bf8339797b4 --- /dev/null +++ b/pkgs/applications/graphics/pymeshlab/default.nix @@ -0,0 +1,107 @@ +{ stdenv +, lib +, fetchFromGitHub +, libGLU +, qtbase +, qtscript +, qtxmlpatterns +, lib3ds +, bzip2 +, muparser +, eigen +, glew +, gmp +, levmar +, qhull +, cmake +, cgal +, boost +, mpfr +, xercesc +, tbb +, embree +, vcg +, libigl +, corto +, openctm +, structuresynth +, wrapQtAppsHook +, python3Packages +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "pymeshlab"; + version = "2023.12"; + + src = fetchFromGitHub { + owner = "cnr-isti-vclab"; + repo = "pymeshlab"; + rev = "v${finalAttrs.version}"; + hash = "sha256-IOlRdXoUPOJt67g3HqsLchV5aL+JUEks2y1Sy+wpwsg="; + fetchSubmodules = true; + }; + + buildInputs = [ + libGLU + qtbase + qtscript + qtxmlpatterns + lib3ds + bzip2 + muparser + eigen + glew + gmp + levmar + qhull + cgal + boost + mpfr + xercesc + tbb + embree + vcg + libigl + corto + structuresynth + openctm + ]; + + nativeBuildInputs = [ + cmake + wrapQtAppsHook + python3Packages.pybind11 + ]; + + propagatedBuildInputs = [ + python3Packages.numpy + ]; + + 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}" "" + export cmakeFlags="cmakeFlags + -DCMAKE_INSTALL_PREFIX=$out/${python3Packages.python.sitePackages}/pymeshlab + " + ''; + + cmakeFlags = [ + "-DVCGDIR=${vcg.src}" + ]; + + meta = { + description = "The 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; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 4731c7459fcd..62ac589cebae 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9664,6 +9664,8 @@ self: super: with self; { pypemicro = callPackage ../development/python-modules/pypemicro { }; + pymeshlab = toPythonModule (pkgs.libsForQt5.callPackage ../applications/graphics/pymeshlab { }); + pyprecice = callPackage ../development/python-modules/pyprecice { }; pyprobables = callPackage ../development/python-modules/pyprobables { };