Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / binwalk / default.nix
blobb3725caa3d6df890196201c197c5d7ec9825e438
1 { lib
2 , buildPythonPackage
3 , fetchFromGitHub
4 , fetchpatch
5 , stdenv
6 , zlib
7 , xz
8 , gzip
9 , bzip2
10 , gnutar
11 , p7zip
12 , cabextract
13 , cramfsprogs
14 , cramfsswap
15 , sasquatch
16 , squashfsTools
17 , matplotlib
18 , nose
19 , pycrypto
20 , pyqtgraph
21 , visualizationSupport ? false }:
23 buildPythonPackage rec {
24   pname = "binwalk${lib.optionalString visualizationSupport "-full"}";
25   version = "2.3.4";
26   format = "setuptools";
28   src = fetchFromGitHub {
29     owner = "ReFirmLabs";
30     repo = "binwalk";
31     rev = "v${version}";
32     hash = "sha256-hlPbzqGRSXcIqlI+SNKq37CnnHd1IoMBNSjhyeAM1TE=";
33   };
35   patches = [
36     # test_firmware_zip fails with 2.3.3 upgrade
37     # https://github.com/ReFirmLabs/binwalk/issues/566
38     (fetchpatch {
39       url = "https://github.com/ReFirmLabs/binwalk/commit/dd4f2efd275c9dd1001130e82e0f985110cd2754.patch";
40       sha256 = "1707n4nf1d1ay1yn4i8qlrvj2c1120g88hjwyklpsc2s2dcnqj9r";
41       includes = [
42         "testing/tests/test_firmware_zip.py"
43       ];
44       revert = true;
45     })
46   ];
48   propagatedBuildInputs = [ zlib xz gzip bzip2 gnutar p7zip cabextract squashfsTools xz pycrypto ]
49   ++ lib.optionals visualizationSupport [ matplotlib pyqtgraph ]
50   ++ lib.optionals (!stdenv.isDarwin) [ cramfsprogs cramfsswap sasquatch ];
52   # setup.py only installs version.py during install, not test
53   postPatch = ''
54     echo '__version__ = "${version}"' > src/binwalk/core/version.py
55   '';
57   # binwalk wants to access ~/.config/binwalk/magic
58   preCheck = ''
59     HOME=$(mktemp -d)
60   '';
62   nativeCheckInputs = [ nose ];
64   pythonImportsCheck = [ "binwalk" ];
66   meta = with lib; {
67     homepage = "https://github.com/ReFirmLabs/binwalk";
68     description = "A tool for searching a given binary image for embedded files";
69     mainProgram = "binwalk";
70     maintainers = [ maintainers.koral ];
71     license = licenses.mit;
72   };