linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / tools / text / fst / default.nix
blob738fd69dc64d0b2573840441e657bfa95b56c74f
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , rustPlatform
5 , libiconv
6 }:
8 rustPlatform.buildRustPackage rec {
9   pname = "fst";
10   version = "0.4.5";
12   src = fetchFromGitHub {
13     owner = "BurntSushi";
14     repo = pname;
15     rev = version;
16     sha256 = "01qdj7zzgwb1zqcznfmnks3dnl6hnf8ib0sm0sgimsbcvajmhab3";
17   };
19   cargoPatches = [
20     # Add Cargo.lock lockfile, which upstream does not include
21     ./0001-cargo-lockfile.patch
22   ];
24   cargoBuildFlags = [ "--workspace" ];
25   cargoSha256 = "0svn2gzipslz939396rcydqx3i1x07l7acas7fhql12n59n2yrxw";
27   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
29   doInstallCheck = true;
30   installCheckPhase = ''
31     csv="$(mktemp)"
32     fst="$(mktemp)"
33     printf "abc,1\nabcd,1" > "$csv"
34     $out/bin/fst map "$csv" "$fst" --force
35     $out/bin/fst fuzzy "$fst" 'abc'
36     $out/bin/fst --help > /dev/null
37   '';
39   meta = with lib; {
40     description = "Represent large sets and maps compactly with finite state transducers";
41     homepage = "https://github.com/BurntSushi/fst";
42     license = with licenses; [ unlicense /* or */ mit ];
43     maintainers = with maintainers; [ rmcgibbo ];
44   };