Files
nixpkgs/pkgs/by-name/bi/binwalk/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

140 lines
2.9 KiB
Nix

{
bzip2,
cabextract,
dmg2img,
dtc,
dumpifs,
enableUnfree ? false,
fetchFromGitHub,
fontconfig,
gnutar,
jefferson,
lib,
lzfse,
lzo,
lzop,
lz4,
openssl_3,
pkg-config,
python3,
rustPlatform,
sasquatch,
sleuthkit,
srec2bin,
stdenv,
ubi_reader,
ucl,
uefi-firmware-parser,
unrar,
unyaffs,
unzip,
versionCheckHook,
vmlinux-to-elf,
xz,
zlib,
zstd,
p7zip,
makeBinaryWrapper,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "binwalk";
version = "3.1.0";
src = fetchFromGitHub {
owner = "ReFirmLabs";
repo = "binwalk";
tag = "v${finalAttrs.version}";
hash = "sha256-em+jOnhCZH5EEJrhXTHmxiwpMcBr5oNU1+5IJ1H/oco=";
};
cargoHash = "sha256-cnJVeuvNNApEHqgZDcSgqkH3DKAr8+HkqXUH9defTCA=";
nativeBuildInputs = [
pkg-config
makeBinaryWrapper
];
# https://github.com/ReFirmLabs/binwalk/commits/master/dependencies
buildInputs = [
bzip2
dtc
fontconfig
lzo
openssl_3
python3.pkgs.python-lzo
ucl
unzip
xz
zlib
];
dontUseCargoParallelTests = true;
# skip broken tests
checkFlags = [
"--skip=binwalk::Binwalk"
"--skip=binwalk::Binwalk::scan"
]
++ lib.optionals stdenv.hostPlatform.isLinux [
"--skip=binwalk::Binwalk::analyze"
"--skip=binwalk::Binwalk::extract"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
"--skip=extractors::common::Chroot::append_to_file"
"--skip=extractors::common::Chroot::carve_file"
"--skip=extractors::common::Chroot::create_block_device"
"--skip=extractors::common::Chroot::create_character_device"
"--skip=extractors::common::Chroot::create_directory"
"--skip=extractors::common::Chroot::create_fifo"
"--skip=extractors::common::Chroot::create_file"
"--skip=extractors::common::Chroot::create_socket"
"--skip=extractors::common::Chroot::create_symlink"
"--skip=extractors::common::Chroot::make_executable"
];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
versionCheckProgramArg = "-V";
postInstall = ''
wrapProgram $out/bin/binwalk --suffix PATH : ${
lib.makeBinPath (
[
p7zip
cabextract
dmg2img
dumpifs
jefferson
vmlinux-to-elf
lz4
lzfse
lzop
sasquatch
srec2bin
gnutar
sleuthkit
ubi_reader
uefi-firmware-parser
unyaffs
zstd
]
++ lib.optionals enableUnfree [ unrar ]
)
}
'';
meta = {
description = "Firmware Analysis Tool";
homepage = "https://github.com/ReFirmLabs/binwalk";
changelog = "https://github.com/ReFirmLabs/binwalk/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
koral
felbinger
];
mainProgram = "binwalk";
};
})