81 lines
1.8 KiB
Nix
81 lines
1.8 KiB
Nix
|
{ stdenv
|
||
|
, fetchurl
|
||
|
, lib
|
||
|
, autoPatchelfHook
|
||
|
, wrapQtAppsHook
|
||
|
, libbsd
|
||
|
, python27
|
||
|
, gmpxx
|
||
|
, ncurses5
|
||
|
, gnustep
|
||
|
, libffi
|
||
|
}:
|
||
|
stdenv.mkDerivation rec {
|
||
|
pname = "hopper";
|
||
|
version = "4.5.22";
|
||
|
rev = "v${lib.versions.major version}";
|
||
|
|
||
|
src = fetchurl {
|
||
|
url = "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-${rev}-${version}-Linux.pkg.tar.xz";
|
||
|
sha256 = "1321i9ls5k677diwfccrjinzzb5586ygdgax7ryyha3ccdj1ikda";
|
||
|
};
|
||
|
|
||
|
sourceRoot = ".";
|
||
|
|
||
|
nativeBuildInputs = [
|
||
|
wrapQtAppsHook
|
||
|
autoPatchelfHook
|
||
|
];
|
||
|
|
||
|
buildInputs = [
|
||
|
libbsd
|
||
|
python27
|
||
|
gmpxx
|
||
|
ncurses5
|
||
|
gnustep.libobjc
|
||
|
];
|
||
|
|
||
|
installPhase = ''
|
||
|
runHook preInstall
|
||
|
|
||
|
mkdir -p $out/bin
|
||
|
mkdir -p $out/lib
|
||
|
mkdir -p $out/share
|
||
|
|
||
|
cp $sourceRoot/opt/hopper-${rev}/bin/Hopper $out/bin/hopper
|
||
|
cp \
|
||
|
--archive \
|
||
|
$sourceRoot/opt/hopper-${rev}/lib/libBlocksRuntime.so* \
|
||
|
$sourceRoot/opt/hopper-${rev}/lib/libdispatch.so* \
|
||
|
$sourceRoot/opt/hopper-${rev}/lib/libgnustep-base.so* \
|
||
|
$sourceRoot/opt/hopper-${rev}/lib/libHopperCore.so* \
|
||
|
$sourceRoot/opt/hopper-${rev}/lib/libkqueue.so* \
|
||
|
$sourceRoot/opt/hopper-${rev}/lib/libobjcxx.so* \
|
||
|
$sourceRoot/opt/hopper-${rev}/lib/libpthread_workqueue.so* \
|
||
|
$out/lib
|
||
|
|
||
|
# we already ship libffi.so.7
|
||
|
ln -s ${lib.getLib libffi}/lib/libffi.so $out/lib/libffi.so.6
|
||
|
|
||
|
cp -r $sourceRoot/usr/share $out
|
||
|
|
||
|
runHook postInstall
|
||
|
'';
|
||
|
|
||
|
postFixup = ''
|
||
|
substituteInPlace "$out/share/applications/hopper-${rev}.desktop" \
|
||
|
--replace "Exec=/opt/hopper-${rev}/bin/Hopper" "Exec=$out/bin/hopper"
|
||
|
'';
|
||
|
|
||
|
meta = with stdenv.lib; {
|
||
|
homepage = "https://www.hopperapp.com/index.html";
|
||
|
description = "A macOS and Linux Disassembler";
|
||
|
license = licenses.unfree;
|
||
|
maintainers = with maintainers; [
|
||
|
luis
|
||
|
Enteee
|
||
|
];
|
||
|
platforms = platforms.linux;
|
||
|
};
|
||
|
}
|