diff --git a/pkgs/by-name/bi/binaryninja-free/package.nix b/pkgs/by-name/bi/binaryninja-free/package.nix new file mode 100644 index 0000000000000..2162a141318b9 --- /dev/null +++ b/pkgs/by-name/bi/binaryninja-free/package.nix @@ -0,0 +1,94 @@ +{ + autoPatchelfHook, + copyDesktopItems, + dbus, + fetchurl, + fontconfig, + freetype, + lib, + libGLU, + libxkbcommon, + makeDesktopItem, + stdenv, + unzip, + wayland, + xcbutilimage, + xcbutilkeysyms, + xcbutilrenderutil, + xcbutilwm, +}: +stdenv.mkDerivation rec { + pname = "binaryninja-free"; + version = "4.2.6455"; + + src = fetchurl { + url = "https://web.archive.org/web/20241209150225/https://cdn.binary.ninja/installers/binaryninja_free_linux.zip"; + hash = "sha256-NOVuLmko8iYcJ/0fr0DNw7xPEC8EhT/SzcFWtNmjlYI="; + }; + + 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 Free"; + comment = "A Reverse Engineering Platform"; + exec = "binaryninja"; + icon = "binaryninja"; + mimeTypes = [ + "application/x-binaryninja" + "x-scheme-handler/binaryninja" + ]; + categories = [ "Utility" ]; + }) + ]; + + nativeBuildInputs = [ + unzip + autoPatchelfHook + copyDesktopItems + ]; + + buildInputs = [ + dbus + fontconfig + freetype + libGLU + libxkbcommon + stdenv.cc.cc.lib + wayland + xcbutilimage + xcbutilkeysyms + xcbutilrenderutil + xcbutilwm + ]; + + 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 = { + description = "Interactive decompiler, disassembler, debugger"; + homepage = "https://binary.ninja/"; + license = { + fullName = "Binary Ninja Free Software License"; + url = "https://docs.binary.ninja/about/license.html#free-license"; + free = false; + }; + mainProgram = "binaryninja"; + maintainers = with lib.maintainers; [ scoder12 ]; + platforms = [ "x86_64-linux" ]; + }; +}