Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 stdenv, 6 zlib, 7 xz, 8 gzip, 9 bzip2, 10 gnutar, 11 p7zip, 12 cabextract, 13 cramfsprogs, 14 cramfsswap, 15 sasquatch, 16 setuptools, 17 squashfsTools, 18 matplotlib, 19 pycrypto, 20 pyqtgraph, 21 pyqt5, 22 pytestCheckHook, 23 visualizationSupport ? false, 24}: 25 26buildPythonPackage rec { 27 pname = "binwalk${lib.optionalString visualizationSupport "-full"}"; 28 version = "2.4.1"; 29 pyproject = true; 30 31 src = fetchFromGitHub { 32 owner = "OSPG"; 33 repo = "binwalk"; 34 rev = "v${version}"; 35 hash = "sha256-VApqQrVBV7w15Bpwc6Fd/cA1Ikqu7Ds8qu0TH68YVog="; 36 }; 37 38 build-system = [ setuptools ]; 39 40 propagatedBuildInputs = 41 [ 42 zlib 43 xz 44 gzip 45 bzip2 46 gnutar 47 p7zip 48 cabextract 49 squashfsTools 50 xz 51 pycrypto 52 ] 53 ++ lib.optionals visualizationSupport [ 54 matplotlib 55 pyqtgraph 56 pyqt5 57 ] 58 ++ lib.optionals (!stdenv.isDarwin) [ 59 cramfsprogs 60 cramfsswap 61 sasquatch 62 ]; 63 64 # setup.py only installs version.py during install, not test 65 postPatch = '' 66 echo '__version__ = "${version}"' > src/binwalk/core/version.py 67 ''; 68 69 # binwalk wants to access ~/.config/binwalk/magic 70 preCheck = '' 71 HOME=$(mktemp -d) 72 ''; 73 74 nativeCheckInputs = [ pytestCheckHook ]; 75 76 pythonImportsCheck = [ "binwalk" ]; 77 78 meta = with lib; { 79 homepage = "https://github.com/OSPG/binwalk"; 80 description = "Tool for searching a given binary image for embedded files"; 81 mainProgram = "binwalk"; 82 maintainers = [ maintainers.koral ]; 83 license = licenses.mit; 84 }; 85}