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