1{ stdenv, lib, fetchFromGitHub, rustPlatform, qt5, git, cmake
2, pkg-config, makeWrapper }:
3
4rustPlatform.buildRustPackage rec {
5 pname = "panopticon";
6 version = "unstable-20171202";
7
8 src = fetchFromGitHub {
9 owner = "das-labor";
10 repo = pname;
11 rev = "33ffec0d6d379d51b38d6ea00d040f54b1356ae4";
12 sha256 = "1zv87nqhrzsxx0m891df4vagzssj3kblfv9yp7j96dw0vn9950qa";
13 };
14
15 nativeBuildInputs = [ cmake pkg-config makeWrapper ];
16 propagatedBuildInputs = with qt5; [
17 qt5.qtbase
18 qtdeclarative
19 qtsvg
20 qtquickcontrols2
21 qtgraphicaleffects
22 git
23 ];
24
25 dontWrapQtApps = true;
26
27 cargoSha256 = "0vhcb3kw1zgchx3nrk8lyrz8p5071y99vsysxvi71klv7dcvn0am";
28 doCheck = false;
29
30 postInstall = ''
31 mkdir -p $out/share/${pname} $out/bin
32 cp -R qml $out/share/${pname}
33 mv $out/bin/${pname} $out/share/${pname}
34 chmod +x $out/share/${pname}
35 makeWrapper $out/share/${pname}/${pname} $out/bin/${pname}
36 '';
37
38 meta = with lib; {
39 description = "A libre cross-platform disassembler";
40 longDescription = ''
41 Panopticon is a cross platform disassembler for reverse
42 engineering written in Rust. It can disassemble AMD64,
43 x86, AVR and MOS 6502 instruction sets and open ELF files.
44 Panopticon comes with Qt GUI for browsing and annotating
45 control flow graphs.
46 '';
47 license = with licenses; [ gpl3 ];
48 maintainers = with maintainers; [ leenaars ];
49 broken = true; # Added 2024-03-16
50 };
51}