From e2d2b2c0247cf32ae3ee081f3a094d698a3d19bd Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 4 Jul 2025 11:20:05 +0200 Subject: [PATCH 1/4] assimp: 5.4.3 -> 6.0.2 Release notes: https://github.com/assimp/assimp/releases/tag/v6.0.2 https://github.com/assimp/assimp/releases/tag/v6.0.1 https://github.com/assimp/assimp/releases/tag/v6.0.0 Security fixes: CVE-2025-2751: https://github.com/advisories/GHSA-345v-qrhv-w227 CVE-2025-2757: https://github.com/advisories/GHSA-4p6w-747g-444c CVE-2025-2750: https://github.com/advisories/GHSA-6x45-4j6r-r8x8 CVE-2025-3158: https://github.com/advisories/GHSA-6r79-vpvw-rfjj Supersedes: https://github.com/NixOS/nixpkgs/pull/412783 --- pkgs/by-name/as/assimp/package.nix | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/as/assimp/package.nix b/pkgs/by-name/as/assimp/package.nix index 33a3a0b5de58..ce40511fb1e2 100644 --- a/pkgs/by-name/as/assimp/package.nix +++ b/pkgs/by-name/as/assimp/package.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { pname = "assimp"; - version = "5.4.3"; + version = "6.0.2"; outputs = [ "out" "lib" @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { owner = "assimp"; repo = "assimp"; rev = "v${version}"; - hash = "sha256-sOYhYHBz3Tg+pi1OIJ1mGmsjEc6dPO6nFH0aolfpLRA="; + hash = "sha256-ixtqK+3iiL17GEbEVHz5S6+gJDDQP7bVuSfRMJMGEOY="; }; nativeBuildInputs = [ cmake ]; @@ -29,11 +29,6 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DASSIMP_BUILD_ASSIMP_TOOLS=ON" ]; - env.NIX_CFLAGS_COMPILE = toString ([ - # Needed with GCC 12 - "-Wno-error=array-bounds" - ]); - meta = with lib; { description = "Library to import various 3D model formats"; mainProgram = "assimp"; From 27661a1142bada4e445b65c239ba3ca743a3cd22 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 4 Jul 2025 11:28:40 +0200 Subject: [PATCH 2/4] assimp: modernize --- pkgs/by-name/as/assimp/package.nix | 36 +++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/as/assimp/package.nix b/pkgs/by-name/as/assimp/package.nix index ce40511fb1e2..0fabfe97b2c2 100644 --- a/pkgs/by-name/as/assimp/package.nix +++ b/pkgs/by-name/as/assimp/package.nix @@ -4,9 +4,10 @@ fetchFromGitHub, cmake, zlib, + nix-update-script, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "assimp"; version = "6.0.2"; outputs = [ @@ -18,23 +19,42 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "assimp"; repo = "assimp"; - rev = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-ixtqK+3iiL17GEbEVHz5S6+gJDDQP7bVuSfRMJMGEOY="; }; nativeBuildInputs = [ cmake ]; + buildInputs = [ zlib ]; - cmakeFlags = [ "-DASSIMP_BUILD_ASSIMP_TOOLS=ON" ]; + strictDeps = true; + enableParallelBuilding = true; - meta = with lib; { + cmakeFlags = [ + (lib.cmakeBool "ASSIMP_BUILD_ASSIMP_TOOLS" true) + ]; + + # Some matrix tests fail on non-86_64-linux: + # https://github.com/assimp/assimp/issues/6246 + # https://github.com/assimp/assimp/issues/6247 + doCheck = !(stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isx86_64); + checkPhase = '' + runHook preCheck + bin/unit + runHook postCheck + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + changelog = "https://github.com/assimp/assimp/releases/tag/${finalAttrs.src.tag}"; description = "Library to import various 3D model formats"; mainProgram = "assimp"; homepage = "https://www.assimp.org/"; - license = licenses.bsd3; - maintainers = with maintainers; [ ehmry ]; - platforms = platforms.linux ++ platforms.darwin; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ ehmry ]; + platforms = lib.platforms.linux ++ lib.platforms.darwin; }; -} +}) From 1158bd72f5d8d605dcecfd801bed43786a79403a Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 4 Jul 2025 13:04:40 +0200 Subject: [PATCH 3/4] assimp: remove ehmry from maintainers --- pkgs/by-name/as/assimp/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/as/assimp/package.nix b/pkgs/by-name/as/assimp/package.nix index 0fabfe97b2c2..183254f19388 100644 --- a/pkgs/by-name/as/assimp/package.nix +++ b/pkgs/by-name/as/assimp/package.nix @@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: { mainProgram = "assimp"; homepage = "https://www.assimp.org/"; license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ ehmry ]; + maintainers = [ ]; platforms = lib.platforms.linux ++ lib.platforms.darwin; }; }) From 521e3e5eca0d2f076fb4472ef5a36011b1a15559 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 4 Jul 2025 14:23:07 +0200 Subject: [PATCH 4/4] kdePackages.qt3d: unvendor assimp --- pkgs/development/libraries/qt-6/modules/qt3d.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkgs/development/libraries/qt-6/modules/qt3d.nix b/pkgs/development/libraries/qt-6/modules/qt3d.nix index 4260bf3979a4..8963b75a5811 100644 --- a/pkgs/development/libraries/qt-6/modules/qt3d.nix +++ b/pkgs/development/libraries/qt-6/modules/qt3d.nix @@ -1,4 +1,5 @@ { + lib, qtModule, qtbase, qtdeclarative, @@ -8,10 +9,23 @@ qtModule { pname = "qt3d"; + + # make absolutely sure the vendored assimp is not used + # patch cmake to accept assimp 6.x versions + postPatch = '' + rm -rf src/3rdparty/assimp/src + substituteInPlace src/core/configure.cmake --replace-fail "WrapQt3DAssimp 5" "WrapQt3DAssimp 6" + ''; + propagatedBuildInputs = [ qtbase qtdeclarative qtmultimedia assimp ]; + + cmakeFlags = [ + (lib.cmakeBool "FEATURE_qt3d_system_assimp" true) # use nix assimp + (lib.cmakeBool "TEST_assimp" true) # required for internal cmake asserts + ]; }