summary refs log tree commit diff
path: root/pkgs/development/tools/analysis/hopper/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/analysis/hopper/default.nix')
-rw-r--r--pkgs/development/tools/analysis/hopper/default.nix44
1 files changed, 44 insertions, 0 deletions
diff --git a/pkgs/development/tools/analysis/hopper/default.nix b/pkgs/development/tools/analysis/hopper/default.nix
new file mode 100644
index 00000000000..7158ea38c04
--- /dev/null
+++ b/pkgs/development/tools/analysis/hopper/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, pkgs, makeWrapper, lib }:
+
+stdenv.mkDerivation rec {
+  pname    = "hopper";
+  version = "4.5.7";
+  rev = "v${lib.versions.major version}";
+
+  src = fetchurl {
+    url = "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-${rev}-${version}-Linux.pkg.tar.xz";
+    sha256 = "1ce7a0f13126a940398aa8da4a74e250dff0401074f30446a8840ac3dbb902c0";
+  };
+
+  sourceRoot = ".";
+
+  ldLibraryPath = with pkgs; stdenv.lib.makeLibraryPath  [
+libbsd.out libffi.out gmpxx.out python27Full.out python27Packages.libxml2 qt5.qtbase zlib  xlibs.libX11.out xorg_sys_opengl.out xlibs.libXrender.out gcc-unwrapped.lib
+  ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+     mkdir -p $out/bin
+     mkdir -p $out/lib
+     mkdir -p $out/share
+     cp $sourceRoot/opt/hopper-${rev}/bin/Hopper $out/bin/hopper
+     cp -r $sourceRoot/opt/hopper-${rev}/lib $out
+     cp -r $sourceRoot/usr/share $out/share
+    patchelf \
+    --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 \
+    $out/bin/hopper
+    # Details: https://nixos.wiki/wiki/Qt
+     wrapProgram $out/bin/hopper \
+    --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \
+    --suffix QT_PLUGIN_PATH : ${pkgs.qt5.qtbase}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins
+  '';
+
+  meta = {
+    homepage = "https://www.hopperapp.com/index.html";
+    description = "A macOS and Linux Disassembler";
+    license = stdenv.lib.licenses.unfree;
+    maintainers = [ stdenv.lib.maintainers.luis ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}