summaryrefslogtreecommitdiffstats
path: root/jeschli/2configs/own-pkgs/hopper/default.nix
blob: 569fc6aaf0481510ae50765e65e0fd427669e52a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{ stdenv, fetchurl, pkgs, makeWrapper, lib }:

stdenv.mkDerivation rec {
  name = "${pname}-${version}";
  pname    = "hopper";
  version = "4.5.16";
  rev = "v${lib.versions.major version}";

  src = fetchurl {
    url = "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-${rev}-${version}-Linux.pkg.tar.xz";
    sha256 = "0gjnn7f6ibfx46k4bbj8ra7k04s0mrpq7316brgzks6x5yd1m584";
  };

  sourceRoot = ".";

  ldLibraryPath = with pkgs; stdenv.lib.makeLibraryPath  [
libbsd.out libffi.out gmpxx.out python27Full.out python27Packages.libxml2.out 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;
  };
}