diff --git a/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix b/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix new file mode 100644 index 00000000000..80fc8127cd2 --- /dev/null +++ b/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix @@ -0,0 +1,56 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitHub +, installShellFiles +, blas +, gfortran +, lapack +, Security +}: + +rustPlatform.buildRustPackage rec { + pname = "finalfusion-utils"; + version = "0.11.2"; + + src = fetchFromGitHub { + owner = "finalfusion"; + repo = pname; + rev = version; + sha256 = "1y2ik3qj2wbjnnk7bbglwbvyvbm5zfk7mbd1gpxg4495nzlf2jhf"; + }; + + cargoSha256 = "19yay31f76ns1d6b6k9mgw5mrl8zg69y229ca6ssyb2z82gyhsnw"; + + # Enables build against a generic BLAS. + cargoBuildFlags = [ + "--features" + "netlib" + ]; + + nativeBuildInputs = [ installShellFiles ]; + + buildInputs = [ + blas + gfortran.cc.lib + lapack + ] ++ lib.optionals stdenv.isDarwin [ + Security + ]; + + postInstall = '' + # Install shell completions + for shell in bash fish zsh; do + $out/bin/finalfusion completions $shell > finalfusion.$shell + done + installShellCompletion finalfusion.{bash,fish,zsh} + ''; + + meta = with stdenv.lib; { + description = "Utility for converting, quantizing, and querying word embeddings"; + homepage = "https://github.com/finalfusion/finalfusion-utils/"; + license = licenses.asl20; + maintainers = with maintainers; [ danieldk ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 039e9f805f8..8a172f37e99 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -19894,6 +19894,10 @@ in inherit (darwin.apple_sdk.frameworks) Security; }; + finalfusion-utils = callPackage ../applications/science/machine-learning/finalfusion-utils { + inherit (darwin.apple_sdk.frameworks) Security; + }; + flacon = libsForQt5.callPackage ../applications/audio/flacon { }; flexget = callPackage ../applications/networking/flexget { };