ocamlPackages.hxd: 0.3.2 -> 0.3.3 (#364231)
[NixPkgs.git] / pkgs / by-name / sl / sleuthkit / package.nix
blobdcd2912250d7740277017b201acf0e4a8627f53f
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   autoreconfHook,
6   ant,
7   jdk,
8   perl,
9   stripJavaArchivesHook,
10   afflib,
11   libewf,
12   openssl,
13   zlib,
16 stdenv.mkDerivation (finalAttrs: {
17   pname = "sleuthkit";
18   version = "4.12.1"; # Note: when updating don't forget to also update the rdeps outputHash
20   src = fetchFromGitHub {
21     owner = "sleuthkit";
22     repo = "sleuthkit";
23     rev = "sleuthkit-${finalAttrs.version}";
24     hash = "sha256-q51UY2lIcLijycNaq9oQIwUXpp/1mfc3oPN4syOPF44=";
25   };
27   # Fetch libraries using a fixed output derivation
28   rdeps = stdenv.mkDerivation {
29     name = "sleuthkit-${finalAttrs.version}-deps";
30     inherit (finalAttrs) src;
32     nativeBuildInputs = [
33       ant
34       jdk
35     ];
37     # unpack, build, install
38     dontConfigure = true;
40     buildPhase = ''
41       export IVY_HOME=$NIX_BUILD_TOP/.ant
42       pushd bindings/java
43       ant retrieve-deps
44       popd
45       pushd case-uco/java
46       ant get-ivy-dependencies
47       popd
48     '';
50     installPhase = ''
51       mkdir -m 755 -p $out/bindings/java
52       cp -r bindings/java/lib $out/bindings/java
53       mkdir -m 755 -p $out/case-uco/java
54       cp -r case-uco/java/lib $out/case-uco/java
55       cp -r $IVY_HOME/lib $out
56       chmod -R 755 $out/lib
57     '';
59     outputHashMode = "recursive";
60     outputHashAlgo = "sha256";
61     outputHash = "sha256-mc/KQrwn3xpPI0ngOLcpoQDaJJm/rM8XgaX//5PiRZk=";
62   };
64   postUnpack = ''
65     export IVY_HOME="$NIX_BUILD_TOP/.ant"
66     export ANT_ARGS="-Doffline=true -Ddefault-jar-location=$IVY_HOME/lib"
68     # pre-positioning these jar files allows -Doffline=true to work
69     mkdir -p source/{bindings,case-uco}/java $IVY_HOME
70     cp -r ${finalAttrs.rdeps}/bindings/java/lib source/bindings/java
71     chmod -R 755 source/bindings/java
72     cp -r ${finalAttrs.rdeps}/case-uco/java/lib source/case-uco/java
73     chmod -R 755 source/case-uco/java
74     cp -r ${finalAttrs.rdeps}/lib $IVY_HOME
75     chmod -R 755 $IVY_HOME
76   '';
78   postPatch = ''
79     substituteInPlace tsk/img/ewf.cpp --replace libewf_handle_read_random libewf_handle_read_buffer_at_offset
80   '';
82   enableParallelBuilding = true;
84   nativeBuildInputs = [
85     autoreconfHook
86     ant
87     jdk
88     perl
89     stripJavaArchivesHook
90   ];
92   buildInputs = [
93     afflib
94     libewf
95     openssl
96     zlib
97   ];
99   # Hack to fix the RPATH
100   preFixup = ''
101     rm -rf */.libs
102   '';
104   meta = with lib; {
105     description = "Forensic/data recovery tool";
106     homepage = "https://www.sleuthkit.org/";
107     changelog = "https://github.com/sleuthkit/sleuthkit/blob/${finalAttrs.src.rev}/NEWS.txt";
108     maintainers = with maintainers; [
109       raskin
110       gfrascadorio
111     ];
112     platforms = platforms.linux;
113     sourceProvenance = with sourceTypes; [
114       fromSource
115       binaryBytecode # dependencies
116     ];
117     license = licenses.ipl10;
118   };