lol
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 broken = stdenv.isDarwin;
40 description = "A libre cross-platform disassembler";
41 longDescription = ''
42 Panopticon is a cross platform disassembler for reverse
43 engineering written in Rust. It can disassemble AMD64,
44 x86, AVR and MOS 6502 instruction sets and open ELF files.
45 Panopticon comes with Qt GUI for browsing and annotating
46 control flow graphs.
47 '';
48 license = with licenses; [ gpl3 ];
49 maintainers = with maintainers; [ leenaars ];
50 };
51}