nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 149 lines 3.3 kB view raw
1{ 2 lib, 3 stdenv, 4 python3, 5 zlib, 6 pkg-config, 7 glib, 8 perl, 9 texinfo, 10 libuuid, 11 flex, 12 bison, 13 pixman, 14 meson, 15 fetchFromGitHub, 16 ninja, 17}: 18 19let 20 qemuName = "qemu-5.2.50"; 21in 22stdenv.mkDerivation { 23 name = "aflplusplus-${qemuName}"; 24 25 src = fetchFromGitHub { 26 owner = "AFLplusplus"; 27 repo = "qemuafl"; 28 # Use a fixed qemuafl version instead of the one in https://github.com/AFLplusplus/AFLplusplus/blob/v4.31c/qemu_mode/QEMUAFL_VERSION. 29 # See: https://github.com/AFLplusplus/AFLplusplus/issues/2296. 30 rev = "ef1cd9a8cb1522c918faab42805216f9a4054dda"; 31 hash = "sha256-tbKDnDoBtFhvtE9nbi9XuHPuFuGezUFngnw4pJyKFgY="; 32 fetchSubmodules = true; 33 }; 34 35 nativeBuildInputs = [ 36 python3 37 perl 38 pkg-config 39 flex 40 bison 41 meson 42 texinfo 43 ninja 44 ]; 45 46 buildInputs = [ 47 zlib 48 glib 49 pixman 50 libuuid 51 ]; 52 53 enableParallelBuilding = true; 54 55 dontUseMesonConfigure = true; # meson's configurePhase isn't compatible with qemu build 56 preBuild = "cd build"; 57 preConfigure = '' 58 # this script isn't marked as executable b/c it's indirectly used by meson. Needed to patch its shebang 59 chmod +x ./scripts/shaderinclude.pl 60 patchShebangs . 61 ''; 62 63 configureFlags = [ 64 "--target-list=${stdenv.hostPlatform.uname.processor}-linux-user" 65 "--sysconfdir=/etc" 66 "--localstatedir=/var" 67 "--meson=meson" 68 "--disable-system" 69 "--enable-linux-user" 70 "--enable-pie" 71 "--audio-drv-list=" 72 "--disable-blobs" 73 "--disable-bochs" 74 "--disable-brlapi" 75 "--disable-bsd-user" 76 "--disable-bzip2" 77 "--disable-cap-ng" 78 "--disable-cloop" 79 "--disable-curl" 80 "--disable-curses" 81 "--disable-dmg" 82 "--disable-fdt" 83 "--disable-gcrypt" 84 "--disable-glusterfs" 85 "--disable-gnutls" 86 "--disable-gtk" 87 "--disable-guest-agent" 88 "--disable-iconv" 89 "--disable-libiscsi" 90 "--disable-libnfs" 91 "--disable-libssh" 92 "--disable-libusb" 93 "--disable-linux-aio" 94 "--disable-live-block-migration" 95 "--disable-lzo" 96 "--disable-nettle" 97 "--disable-numa" 98 "--disable-opengl" 99 "--disable-parallels" 100 "--disable-plugins" 101 "--disable-qcow1" 102 "--disable-qed" 103 "--disable-rbd" 104 "--disable-rdma" 105 "--disable-replication" 106 "--disable-sdl" 107 "--disable-seccomp" 108 "--disable-sheepdog" 109 "--disable-smartcard" 110 "--disable-snappy" 111 "--disable-spice" 112 "--disable-system" 113 "--disable-tools" 114 "--disable-tpm" 115 "--disable-usb-redir" 116 "--disable-vde" 117 "--disable-vdi" 118 "--disable-vhost-crypto" 119 "--disable-vhost-kernel" 120 "--disable-vhost-net" 121 "--disable-vhost-scsi" 122 "--disable-vhost-user" 123 "--disable-vhost-vdpa" 124 "--disable-vhost-vsock" 125 "--disable-virglrenderer" 126 "--disable-virtfs" 127 "--disable-vnc" 128 "--disable-vnc-jpeg" 129 "--disable-vnc-png" 130 "--disable-vnc-sasl" 131 "--disable-vte" 132 "--disable-vvfat" 133 "--disable-xen" 134 "--disable-xen-pci-passthrough" 135 "--disable-xfsctl" 136 "--without-default-devices" 137 ]; 138 139 meta = { 140 homepage = "https://github.com/AFLplusplus/qemuafl"; 141 description = "Fork of QEMU with AFL++ instrumentation support"; 142 license = lib.licenses.gpl2Plus; 143 maintainers = with lib.maintainers; [ 144 ris 145 msanft 146 ]; 147 platforms = lib.platforms.linux; 148 }; 149}