lol
at 22.05-pre 89 lines 2.4 kB view raw
1{ lib, stdenv, fetchFromGitHub, autoreconfHook, libewf, afflib, openssl, zlib, openjdk, perl, ant }: 2 3stdenv.mkDerivation rec { 4 version = "4.11.0"; 5 pname = "sleuthkit"; 6 7 sleuthsrc = fetchFromGitHub { 8 owner = "sleuthkit"; 9 repo = "sleuthkit"; 10 rev = "${pname}-${version}"; 11 sha256 = "1dh06k8grrj3wcx3h9m490p69bw41dz6cv8j5j1drpldmv67k3ki"; 12 }; 13 14 # Fetch libraries using a fixed output derivation 15 rdeps = stdenv.mkDerivation rec { 16 17 version = "1.0"; 18 pname = "sleuthkit-deps"; 19 nativeBuildInputs = [ openjdk ant ]; 20 21 src = sleuthsrc; 22 23 # unpack, build, install 24 dontConfigure = true; 25 26 buildPhase = '' 27 export IVY_HOME=$NIX_BUILD_TOP/.ant 28 pushd bindings/java 29 ant retrieve-deps 30 popd 31 pushd case-uco/java 32 ant get-ivy-dependencies 33 popd 34 ''; 35 36 installPhase = '' 37 export IVY_HOME=$NIX_BUILD_TOP/.ant 38 mkdir -m 755 -p $out/bindings/java 39 cp -r bindings/java/lib $out/bindings/java 40 mkdir -m 755 -p $out/case-uco/java 41 cp -r case-uco/java/lib $out/case-uco/java 42 cp -r $IVY_HOME/lib $out 43 chmod -R 755 $out/lib 44 ''; 45 46 outputHashMode = "recursive"; 47 outputHash = "0fq7v6zlgybg4v6k9wqjlk4gaqgjrpihbnr182vaqriihflav2s8"; 48 outputHashAlgo = "sha256"; 49 }; 50 51 src = sleuthsrc; 52 53 postPatch = '' 54 substituteInPlace tsk/img/ewf.cpp --replace libewf_handle_read_random libewf_handle_read_buffer_at_offset 55 ''; 56 57 enableParallelBuilding = true; 58 59 nativeBuildInputs = [ autoreconfHook openjdk perl ant rdeps ]; 60 buildInputs = [ libewf afflib openssl zlib ]; 61 62 # Hack to fix the RPATH 63 preFixup = '' 64 rm -rf */.libs 65 ''; 66 67 postUnpack = '' 68 export IVY_HOME="$NIX_BUILD_TOP/.ant" 69 export JAVA_HOME="${openjdk}" 70 export ant_args="-Doffline=true -Ddefault-jar-location=$IVY_HOME/lib" 71 72 # pre-positioning these jar files allows -Doffline=true to work 73 mkdir -p source/{bindings,case-uco}/java $IVY_HOME 74 cp -r ${rdeps}/bindings/java/lib source/bindings/java 75 chmod -R 755 source/bindings/java 76 cp -r ${rdeps}/case-uco/java/lib source/case-uco/java 77 chmod -R 755 source/case-uco/java 78 cp -r ${rdeps}/lib $IVY_HOME 79 chmod -R 755 $IVY_HOME 80 ''; 81 82 meta = with lib; { 83 description = "A forensic/data recovery tool"; 84 homepage = "https://www.sleuthkit.org/"; 85 maintainers = with maintainers; [ raskin gfrascadorio ]; 86 platforms = platforms.linux; 87 license = licenses.ipl10; 88 }; 89}