1{ stdenv
2, buildPythonPackage
3, fetchFromGitHub
4, zlib
5, xz
6, ncompress
7, gzip
8, bzip2
9, gnutar
10, p7zip
11, cabextract
12, lzma
13, nose
14, pycrypto
15, pyqtgraph ? null }:
16
17let
18 visualizationSupport = (pyqtgraph != null);
19 version = "2.2.0";
20in
21buildPythonPackage {
22 pname = "binwalk";
23 inherit version;
24
25 src = fetchFromGitHub {
26 owner = "devttys0";
27 repo = "binwalk";
28 rev = "be738a52e09b0da2a6e21470e0dbcd5beb42ed1b";
29 sha256 = "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc";
30 };
31
32 propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract lzma pycrypto ]
33 ++ stdenv.lib.optional visualizationSupport pyqtgraph;
34
35 # setup.py only installs version.py during install, not test
36 postPatch = ''
37 echo '__version__ = "${version}"' > src/binwalk/core/version.py
38 '';
39
40 # binwalk wants to access ~/.config/binwalk/magic
41 preCheck = ''
42 HOME=$(mktemp -d)
43 '';
44
45 checkInputs = [ nose ];
46
47 meta = with stdenv.lib; {
48 homepage = "https://github.com/ReFirmLabs/binwalk";
49 description = "A tool for searching a given binary image for embedded files";
50 maintainers = [ maintainers.koral ];
51 };
52}