1{ stdenv
2, fetchurl
3, lib
4, autoPatchelfHook
5, wrapQtAppsHook
6, gmpxx
7, gnustep
8, libbsd
9, libffi_3_3
10, ncurses6
11}:
12
13stdenv.mkDerivation rec {
14 pname = "hopper";
15 version = "5.5.3";
16 rev = "v4";
17
18 src = fetchurl {
19 url = "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-${rev}-${version}-Linux-demo.pkg.tar.xz";
20 hash = "sha256-xq9ZVg1leHm/tq6LYyQLa8p5dDwBd64Jt92uMoE0z58=";
21 };
22
23 sourceRoot = ".";
24
25 nativeBuildInputs = [
26 autoPatchelfHook
27 wrapQtAppsHook
28 ];
29
30 buildInputs = [
31 gnustep.libobjc
32 libbsd
33 libffi_3_3
34 ncurses6
35 ];
36
37 installPhase = ''
38 runHook preInstall
39
40 mkdir -p $out/bin
41 mkdir -p $out/lib
42 mkdir -p $out/share
43
44 cp $sourceRoot/opt/hopper-${rev}/bin/Hopper $out/bin/hopper
45 cp \
46 --archive \
47 $sourceRoot/opt/hopper-${rev}/lib/libBlocksRuntime.so* \
48 $sourceRoot/opt/hopper-${rev}/lib/libdispatch.so* \
49 $sourceRoot/opt/hopper-${rev}/lib/libgnustep-base.so* \
50 $sourceRoot/opt/hopper-${rev}/lib/libHopperCore.so* \
51 $sourceRoot/opt/hopper-${rev}/lib/libkqueue.so* \
52 $sourceRoot/opt/hopper-${rev}/lib/libobjcxx.so* \
53 $sourceRoot/opt/hopper-${rev}/lib/libpthread_workqueue.so* \
54 $out/lib
55
56 cp -r $sourceRoot/usr/share $out
57
58 runHook postInstall
59 '';
60
61 postFixup = ''
62 substituteInPlace "$out/share/applications/hopper-${rev}.desktop" \
63 --replace "Exec=/opt/hopper-${rev}/bin/Hopper" "Exec=$out/bin/hopper"
64 '';
65
66 meta = with lib; {
67 homepage = "https://www.hopperapp.com/index.html";
68 description = "A macOS and Linux Disassembler";
69 license = licenses.unfree;
70 maintainers = with maintainers; [
71 luis
72 Enteee
73 ];
74 platforms = platforms.linux;
75 };
76}