handheld-daemon-ui: 3.2.3 -> 3.3.0 (#361609)
[NixPkgs.git] / pkgs / tools / system / osquery / default.nix
blobb887c6e97a2154ab28eab17d4baab7b6c5262e77
1 { lib
2 , cmake
3 , fetchFromGitHub
4 , fetchzip
5 , fetchurl
6 , git
7 , perl
8 , python3
9 , stdenv
10 , stdenvNoCC
11 , ninja
12 , nix-prefetch-git
13 , autoPatchelfHook
14 , jq
15 , removeReferencesTo
16 , nixosTests
17 , writers
20 let
22   info = builtins.fromJSON (builtins.readFile ./info.json);
24   opensslSrc = fetchurl info.openssl;
26   toolchain = import ./toolchain-bin.nix { inherit stdenv lib fetchzip autoPatchelfHook; };
30 stdenvNoCC.mkDerivation rec {
32   pname = "osquery";
34   version = info.osquery.rev;
36   src = fetchFromGitHub info.osquery;
38   patches = [
39     ./Remove-git-reset.patch
40   ];
42   nativeBuildInputs = [
43     cmake
44     git
45     perl
46     python3
47     ninja
48     autoPatchelfHook
49     jq
50     removeReferencesTo
51   ];
53   postPatch = ''
54     substituteInPlace cmake/install_directives.cmake --replace "/control" "control"
55   '';
57   configurePhase = ''
58     mkdir build
59     cd build
60     cmake .. \
61       -DCMAKE_INSTALL_PREFIX=$out \
62       -DOSQUERY_TOOLCHAIN_SYSROOT=${toolchain} \
63       -DOSQUERY_VERSION=${version} \
64       -DCMAKE_PREFIX_PATH=${toolchain}/usr/lib/cmake \
65       -DCMAKE_LIBRARY_PATH=${toolchain}/usr/lib \
66       -DOSQUERY_OPENSSL_ARCHIVE_PATH=${opensslSrc} \
67       -GNinja
68   '';
70   disallowedReferences = [ toolchain ];
72   postInstall = ''
73     rm -rf $out/control
74     remove-references-to -t ${toolchain} $out/bin/osqueryd
75   '';
77   passthru = {
78     inherit opensslSrc toolchain;
79     tests = {
80       inherit (nixosTests) osquery;
81     };
82     updateScript = writers.writePython3
83       "osquery-update"
84       { makeWrapperArgs = "--prefix PATH : ${lib.makeBinPath [ nix-prefetch-git ]}"; }
85       (builtins.readFile ./update.py);
86   };
88   meta = with lib; {
89     description = "SQL powered operating system instrumentation, monitoring, and analytics";
90     homepage = "https://osquery.io";
91     license = with licenses; [ gpl2Only asl20 ];
92     platforms = platforms.linux;
93     sourceProvenance = with sourceTypes; [ fromSource ];
94     maintainers = with maintainers; [ znewman01 lewo squalus ];
95   };