2024-07-27 06:49:29 +00:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
stdenv,
|
|
|
|
python3,
|
|
|
|
zlib,
|
|
|
|
pkg-config,
|
|
|
|
glib,
|
|
|
|
perl,
|
|
|
|
texinfo,
|
|
|
|
libuuid,
|
|
|
|
flex,
|
|
|
|
bison,
|
|
|
|
pixman,
|
|
|
|
meson,
|
|
|
|
fetchFromGitHub,
|
|
|
|
ninja,
|
2020-04-24 23:36:52 +00:00
|
|
|
}:
|
|
|
|
|
|
|
|
let
|
2023-07-15 17:15:38 +00:00
|
|
|
qemuName = "qemu-5.2.50";
|
2020-04-24 23:36:52 +00:00
|
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
|
|
name = "aflplusplus-${qemuName}";
|
|
|
|
|
2023-07-15 17:15:38 +00:00
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "AFLplusplus";
|
|
|
|
repo = "qemuafl";
|
2024-07-27 06:49:29 +00:00
|
|
|
# rev origin: https://github.com/AFLplusplus/AFLplusplus/blob/v4.21c/qemu_mode/QEMUAFL_VERSION
|
|
|
|
rev = "a6f0632a65e101e680dd72643a6128dd180dff72";
|
|
|
|
sha256 = "sha256-4kaQA5KDUqkK+fbjHg47lxZHRN8JrfSC2zdjrbMbDPo=";
|
2023-07-15 17:15:38 +00:00
|
|
|
fetchSubmodules = true;
|
|
|
|
};
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
nativeBuildInputs = [
|
2023-07-15 17:15:38 +00:00
|
|
|
python3
|
|
|
|
perl
|
|
|
|
pkg-config
|
|
|
|
flex
|
|
|
|
bison
|
|
|
|
meson
|
|
|
|
texinfo
|
|
|
|
ninja
|
2020-04-24 23:36:52 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
buildInputs = [
|
2023-07-15 17:15:38 +00:00
|
|
|
zlib
|
|
|
|
glib
|
|
|
|
pixman
|
|
|
|
libuuid
|
2020-04-24 23:36:52 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
2023-07-15 17:15:38 +00:00
|
|
|
dontUseMesonConfigure = true; # meson's configurePhase isn't compatible with qemu build
|
|
|
|
preBuild = "cd build";
|
|
|
|
preConfigure = ''
|
|
|
|
# this script isn't marked as executable b/c it's indirectly used by meson. Needed to patch its shebang
|
|
|
|
chmod +x ./scripts/shaderinclude.pl
|
|
|
|
patchShebangs .
|
|
|
|
'';
|
2020-04-24 23:36:52 +00:00
|
|
|
|
2024-07-27 06:49:29 +00:00
|
|
|
configureFlags = [
|
|
|
|
"--target-list=${stdenv.hostPlatform.uname.processor}-linux-user"
|
|
|
|
"--sysconfdir=/etc"
|
|
|
|
"--localstatedir=/var"
|
|
|
|
"--meson=meson"
|
|
|
|
"--disable-system"
|
|
|
|
"--enable-linux-user"
|
|
|
|
"--enable-pie"
|
|
|
|
"--audio-drv-list="
|
|
|
|
"--disable-blobs"
|
|
|
|
"--disable-bochs"
|
|
|
|
"--disable-brlapi"
|
|
|
|
"--disable-bsd-user"
|
|
|
|
"--disable-bzip2"
|
|
|
|
"--disable-cap-ng"
|
|
|
|
"--disable-cloop"
|
|
|
|
"--disable-curl"
|
|
|
|
"--disable-curses"
|
|
|
|
"--disable-dmg"
|
|
|
|
"--disable-fdt"
|
|
|
|
"--disable-gcrypt"
|
|
|
|
"--disable-glusterfs"
|
|
|
|
"--disable-gnutls"
|
|
|
|
"--disable-gtk"
|
|
|
|
"--disable-guest-agent"
|
|
|
|
"--disable-iconv"
|
|
|
|
"--disable-libiscsi"
|
|
|
|
"--disable-libnfs"
|
|
|
|
"--disable-libssh"
|
|
|
|
"--disable-libusb"
|
|
|
|
"--disable-linux-aio"
|
|
|
|
"--disable-live-block-migration"
|
|
|
|
"--disable-lzo"
|
|
|
|
"--disable-nettle"
|
|
|
|
"--disable-numa"
|
|
|
|
"--disable-opengl"
|
|
|
|
"--disable-parallels"
|
|
|
|
"--disable-plugins"
|
|
|
|
"--disable-qcow1"
|
|
|
|
"--disable-qed"
|
|
|
|
"--disable-rbd"
|
|
|
|
"--disable-rdma"
|
|
|
|
"--disable-replication"
|
|
|
|
"--disable-sdl"
|
|
|
|
"--disable-seccomp"
|
|
|
|
"--disable-sheepdog"
|
|
|
|
"--disable-smartcard"
|
|
|
|
"--disable-snappy"
|
|
|
|
"--disable-spice"
|
|
|
|
"--disable-system"
|
|
|
|
"--disable-tools"
|
|
|
|
"--disable-tpm"
|
|
|
|
"--disable-usb-redir"
|
|
|
|
"--disable-vde"
|
|
|
|
"--disable-vdi"
|
|
|
|
"--disable-vhost-crypto"
|
|
|
|
"--disable-vhost-kernel"
|
|
|
|
"--disable-vhost-net"
|
|
|
|
"--disable-vhost-scsi"
|
|
|
|
"--disable-vhost-user"
|
|
|
|
"--disable-vhost-vdpa"
|
|
|
|
"--disable-vhost-vsock"
|
|
|
|
"--disable-virglrenderer"
|
|
|
|
"--disable-virtfs"
|
|
|
|
"--disable-vnc"
|
|
|
|
"--disable-vnc-jpeg"
|
|
|
|
"--disable-vnc-png"
|
|
|
|
"--disable-vnc-sasl"
|
|
|
|
"--disable-vte"
|
|
|
|
"--disable-vvfat"
|
|
|
|
"--disable-xen"
|
|
|
|
"--disable-xen-pci-passthrough"
|
|
|
|
"--disable-xfsctl"
|
|
|
|
"--without-default-devices"
|
|
|
|
];
|
2020-04-24 23:36:52 +00:00
|
|
|
|
2024-07-27 06:49:29 +00:00
|
|
|
meta = {
|
2023-07-15 17:15:38 +00:00
|
|
|
homepage = "https://github.com/AFLplusplus/qemuafl";
|
2020-04-24 23:36:52 +00:00
|
|
|
description = "Fork of QEMU with AFL++ instrumentation support";
|
2024-07-27 06:49:29 +00:00
|
|
|
license = lib.licenses.gpl2Plus;
|
|
|
|
maintainers = with lib.maintainers; [ ris ];
|
|
|
|
platforms = lib.platforms.linux;
|
2020-04-24 23:36:52 +00:00
|
|
|
};
|
|
|
|
}
|