{ autoPatchelfHook, copyDesktopItems, dbus, fetchurl, fontconfig, freetype, lib, libGLU, libxkbcommon, makeDesktopItem, stdenv, unzip, wayland, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, xcbutilwm, openssl, qt6, }: stdenv.mkDerivation rec { pname = "binaryninja"; version = "5.1.8104"; src = ./binaryninja_linux_stable_personal.zip; icon = fetchurl { url = "https://raw.githubusercontent.com/Vector35/binaryninja-api/448f40be71dffa86a6581c3696627ccc1bdf74f2/docs/img/logo.png"; hash = "sha256-TzGAAefTknnOBj70IHe64D6VwRKqIDpL4+o9kTw0Mn4="; }; desktopItems = [ (makeDesktopItem { name = "com.vector35.binaryninja"; desktopName = "Binary Ninja Personal"; comment = "A Reverse Engineering Platform"; exec = "binaryninja"; icon = "binaryninja"; mimeTypes = [ "application/x-binaryninja" "x-scheme-handler/binaryninja" ]; categories = [ "Utility" ]; }) ]; nativeBuildInputs = [ unzip autoPatchelfHook copyDesktopItems qt6.wrapQtAppsHook ]; buildInputs = [ dbus fontconfig freetype libGLU libxkbcommon stdenv.cc.cc.lib wayland xcbutilimage xcbutilkeysyms xcbutilrenderutil xcbutilwm openssl qt6.qtbase qt6.qtdeclarative qt6.qtshadertools qt6.qtsvg ]; installPhase = '' runHook preInstall mkdir -p $out/ cp -R . $out/ mkdir $out/bin ln -s $out/binaryninja $out/bin/binaryninja install -Dm644 ${icon} $out/share/icons/hicolor/256x256/apps/binaryninja.png runHook postInstall ''; meta = { changelog = "https://binary.ninja/changelog/#${lib.replaceStrings [ "." ] [ "-" ] version}"; description = "Interactive decompiler, disassembler, debugger"; homepage = "https://binary.ninja/"; license = { fullName = "Binary Ninja Personal Software License"; url = "https://docs.binary.ninja/about/license.html#non-commercial-student-license-named"; free = false; }; mainProgram = "binaryninja"; platforms = [ "x86_64-linux" ]; }; }