hopper: refactor derivation

* use wrapQtAppsHook in favour for the custom qt builder
* use autoPatchelfHook
* cleanup build dependencies
* add maintainer Enteee
This commit is contained in:
Ente 2019-12-11 21:13:30 +01:00
parent 7b1b72c853
commit 2f7f00bb84

View File

@ -1,21 +1,17 @@
{ mkDerivation, stdenv, fetchurl, pkgs, lib, qtbase }: {
stdenv, fetchurl, lib,
autoPatchelfHook,
wrapQtAppsHook,
libbsd,
python27,
gmpxx,
}:
let let
ldLibraryPath = with pkgs; stdenv.lib.makeLibraryPath [ in stdenv.mkDerivation rec {
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
];
in mkDerivation rec {
pname = "hopper"; pname = "hopper";
version = "4.5.7"; version = "4.5.7";
rev = "v${lib.versions.major version}"; rev = "v${lib.versions.major version}";
@ -27,31 +23,35 @@ in mkDerivation rec {
sourceRoot = "."; sourceRoot = ".";
buildInputs = [ nativeBuildInputs = [
qtbase wrapQtAppsHook
autoPatchelfHook
]; ];
qtWrapperArgs = [ buildInputs = [
''--suffix LD_LIBRARY_PATH : ${ldLibraryPath}'' libbsd
python27
gmpxx
]; ];
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
mkdir -p $out/lib mkdir -p $out/lib
mkdir -p $out/share mkdir -p $out/share
cp $sourceRoot/opt/hopper-${rev}/bin/Hopper $out/bin/hopper cp $sourceRoot/opt/hopper-${rev}/bin/Hopper $out/bin/hopper
cp -r $sourceRoot/opt/hopper-${rev}/lib $out cp -r $sourceRoot/opt/hopper-${rev}/lib $out
cp -r $sourceRoot/usr/share $out/share cp -r $sourceRoot/usr/share $out/share
patchelf \
--set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 \
$out/bin/hopper
''; '';
meta = { meta = with stdenv.lib; {
homepage = "https://www.hopperapp.com/index.html"; homepage = "https://www.hopperapp.com/index.html";
description = "A macOS and Linux Disassembler"; description = "A macOS and Linux Disassembler";
license = stdenv.lib.licenses.unfree; license = licenses.unfree;
maintainers = [ stdenv.lib.maintainers.luis ]; maintainers = [
platforms = stdenv.lib.platforms.linux; maintainers.luis
maintainers.Enteee
];
platforms = platforms.linux;
}; };
} }