From 9e6bb0d0319583070bcf60bbd30999d1d1cd0137 Mon Sep 17 00:00:00 2001 From: Ben Darwin Date: Mon, 20 May 2024 13:45:26 -0400 Subject: [PATCH 1/3] faiss: 1.7.4 -> 1.8.0 (cherry picked from commit 39dc5d0d768ec5cb51636b449f08fefd96c70745) --- .../libraries/science/math/faiss/default.nix | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/pkgs/development/libraries/science/math/faiss/default.nix b/pkgs/development/libraries/science/math/faiss/default.nix index ac19356d1a73..3e1b9f1536d0 100644 --- a/pkgs/development/libraries/science/math/faiss/default.nix +++ b/pkgs/development/libraries/science/math/faiss/default.nix @@ -1,7 +1,6 @@ { lib , config , fetchFromGitHub -, fetchpatch2 , stdenv , cmake , cudaPackages ? { } @@ -26,7 +25,7 @@ let pname = "faiss"; - version = "1.7.4"; + version = "1.8.0"; inherit (cudaPackages) flags backendStdenv; @@ -51,18 +50,9 @@ stdenv.mkDerivation { owner = "facebookresearch"; repo = pname; rev = "v${version}"; - hash = "sha256-WSce9X6sLZmGM5F0ZkK54VqpIy8u1VB0e9/l78co29M="; + hash = "sha256-nS8nhkNGGb2oAJKfr/MIAZjAwMxBGbNd16/CkEtv67I="; }; - patches = [ - (fetchpatch2 { - # Replace distutils with packaging for version checks - url = "https://github.com/facebookresearch/faiss/commit/c540e762ca0ecf8f43da0bfc215da148c5cf420e.patch"; - includes = [ "faiss/python/loader.py" ]; - hash = "sha256-yMHAXo0+oDXknSpv1fxUgil3R/WG1+vTLyxvwVR3VtE="; - }) - ]; - postPatch = '' # Remove the following substituteInPlace when updating # to a release that contains change from PR From ee0e3fb5405c655fba5162a660340d4a8cdd0d57 Mon Sep 17 00:00:00 2001 From: Someone Serge Date: Fri, 26 Jul 2024 16:30:09 +0000 Subject: [PATCH 2/3] faiss: disable the demo (cuda version fails at linkage) --- .../libraries/science/math/faiss/default.nix | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/science/math/faiss/default.nix b/pkgs/development/libraries/science/math/faiss/default.nix index 3e1b9f1536d0..4ee0112337e8 100644 --- a/pkgs/development/libraries/science/math/faiss/default.nix +++ b/pkgs/development/libraries/science/math/faiss/default.nix @@ -97,12 +97,14 @@ stdenv.mkDerivation { "-DCMAKE_CUDA_ARCHITECTURES=${flags.cmakeCudaArchitecturesString}" ]; - buildFlags = [ - "faiss" - "demo_ivfpq_indexing" - ] ++ lib.optionals pythonSupport [ - "swigfaiss" - ]; + + buildFlags = + [ "faiss" ] + # This is just a demo app used as a test. + # Disabled because linkage fails: + # https://github.com/facebookresearch/faiss/issues/3484 + ++ lib.optionals (!cudaSupport) [ "demo_ivfpq_indexing" ] + ++ lib.optionals pythonSupport [ "swigfaiss" ]; # pip wheel->pip install commands copied over from opencv4 @@ -113,7 +115,9 @@ stdenv.mkDerivation { postInstall = '' mkdir -p $demos/bin - cp ./demos/demo_ivfpq_indexing $demos/bin/ + if [[ "$buildInputs" == *demo_ivfpq_indexing* ]] ; then + cp ./demos/demo_ivfpq_indexing $demos/bin/ + fi '' + lib.optionalString pythonSupport '' mkdir -p $out/${pythonPackages.python.sitePackages} (cd faiss/python && python -m pip install dist/*.whl --no-index --no-warn-script-location --prefix="$out" --no-cache) From 0376102e9b68a3a977483eea5ec6a3539e850cb7 Mon Sep 17 00:00:00 2001 From: Someone Serge Date: Sat, 27 Jul 2024 19:47:28 +0000 Subject: [PATCH 3/3] sqlite-vss: mark broken Low maintenance, incompatible with faiss --- pkgs/by-name/sq/sqlite-vss/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/sq/sqlite-vss/package.nix b/pkgs/by-name/sq/sqlite-vss/package.nix index e1c65b63407a..5f25699c9920 100644 --- a/pkgs/by-name/sq/sqlite-vss/package.nix +++ b/pkgs/by-name/sq/sqlite-vss/package.nix @@ -43,6 +43,9 @@ stdenv.mkDerivation (finalAttrs: { ''; meta = with lib;{ + # Low maintenance mode, doesn't support up-to-date faiss + # https://github.com/NixOS/nixpkgs/pull/330191#issuecomment-2252965866 + broken = lib.versionAtLeast faiss.version "1.8.0"; description = "SQLite extension for efficient vector search based on Faiss"; homepage = "https://github.com/asg017/sqlite-vss"; changelog = "https://github.com/asg017/sqlite-vss/releases/tag/v${finalAttrs.version}";