biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / parsing / spicy / default.nix
blob7476e57bedffaede3f9cbdae69286bcce9a2eaea
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , makeWrapper
6 , python3
7 , bison
8 , flex
9 , zlib
12 stdenv.mkDerivation rec {
13   pname = "spicy";
14   version = "1.10.0";
16   strictDeps = true;
18   src = fetchFromGitHub {
19     owner = "zeek";
20     repo = "spicy";
21     rev = "v${version}";
22     hash = "sha256-LFAeZ1UsnOKaXlnSd/cMfJQk0ZfaNAzSbvSuoKmmOoI=";
23     fetchSubmodules = true;
24   };
26   nativeBuildInputs = [
27     cmake
28     makeWrapper
29     python3
30   ];
32   buildInputs = [
33     bison
34     flex
35     zlib
36   ];
38   postPatch = ''
39     patchShebangs scripts tests/scripts
40   '';
42   cmakeFlags = [
43     "-DHILTI_DEV_PRECOMPILE_HEADERS=OFF"
44   ];
46   preFixup = ''
47     for b in $out/bin/*
48       do wrapProgram "$b" --prefix PATH : "${lib.makeBinPath [ bison flex ]}"
49     done
50   '';
52   meta = with lib; {
53     homepage = "https://github.com/zeek/spicy";
54     description = "A C++ parser generator for dissecting protocols & files";
55     longDescription = ''
56       Spicy is a parser generator that makes it easy to create robust C++
57       parsers for network protocols, file formats, and more. Spicy is a bit
58       like a "yacc for protocols", but it's much more than that: It's an
59       all-in-one system enabling developers to write attributed grammars that
60       describe both syntax and semantics of an input format using a single,
61       unified language. Think of Spicy as a domain-specific scripting language
62       for all your parsing needs.
63     '';
64     license = licenses.bsd3;
65     maintainers = with maintainers; [ tobim ];
66   };