eclipse-mat: init at 1.10.0.20200225

Closes #43611
This commit is contained in:
Pawel Kruszewski 2020-06-28 03:17:49 +02:00 committed by Robert Helgesson
parent 9d335706a0
commit 17e1fbe0fc
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89
2 changed files with 121 additions and 0 deletions

View File

@ -0,0 +1,119 @@
{ buildEnv
, fetchurl
, fontconfig
, freetype
, glib
, gsettings-desktop-schemas
, gtk3
, jdk11
, lib
, libX11
, libXrender
, libXtst
, makeDesktopItem
, makeWrapper
, shared-mime-info
, stdenv
, unzip
, webkitgtk
, zlib
}:
with lib;
let
pVersion = "1.10.0.20200225";
pVersionTriple = splitVersion pVersion;
majorVersion = elemAt pVersionTriple 0;
minorVersion = elemAt pVersionTriple 1;
patchVersion = elemAt pVersionTriple 2;
baseVersion = "${majorVersion}.${minorVersion}.${patchVersion}";
jdk = jdk11;
in
stdenv.mkDerivation rec {
pname = "eclipse-mat";
version = "${pVersion}";
src = fetchurl {
url = "http://ftp.halifax.rwth-aachen.de/eclipse//mat/${baseVersion}/rcp/MemoryAnalyzer-${version}-linux.gtk.x86_64.zip";
sha256 = "11cg01gjjvlm6lr6z6rwqs1r31xx5pxddnz55ca0s33lrnywf9fx";
};
desktopItem = makeDesktopItem {
name = "eclipse-mat";
exec = "eclipse-mat";
icon = "eclipse";
comment = "Eclipse Memory Analyzer";
desktopName = "Eclipse MAT";
genericName = "Java Memory Analyzer";
categories = "Development;";
};
unpackPhase = ''
unzip $src
'';
buildCommand = ''
mkdir -p $out
unzip $src
mv mat $out
# Patch binaries.
interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
libCairo=$out/eclipse/libcairo-swt.so
patchelf --set-interpreter $interpreter $out/mat/MemoryAnalyzer
[ -f $libCairo ] && patchelf --set-rpath ${
stdenv.lib.makeLibraryPath [ freetype fontconfig libX11 libXrender zlib ]
} $libCairo
# Create wrapper script. Pass -configuration to store settings in ~/.eclipse-mat/<version>
makeWrapper $out/mat/MemoryAnalyzer $out/bin/eclipse-mat \
--prefix PATH : ${jdk}/bin \
--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk3 libXtst webkitgtk ])} \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
--add-flags "-configuration \$HOME/.eclipse-mat/''${version}/configuration"
# Create desktop item.
mkdir -p $out/share/applications
cp ${desktopItem}/share/applications/* $out/share/applications
mkdir -p $out/share/pixmaps
find $out/mat/plugins -name 'eclipse*.png' -type f -exec cp {} $out/share/pixmaps \;
mv $out/share/pixmaps/eclipse64.png $out/share/pixmaps/eclipse.png
'';
buildInputs = [
fontconfig
freetype
glib
gsettings-desktop-schemas
gtk3
jdk
libX11
libXrender
libXtst
makeWrapper
zlib
unzip
shared-mime-info
webkitgtk
];
dontBuild = true;
dontConfigure = true;
meta = with stdenv.lib; {
description = "Fast and feature-rich Java heap analyzer";
longDescription = ''
The Eclipse Memory Analyzer is a tool that helps you find memory
leaks and reduce memory consumption. Use the Memory Analyzer to
analyze productive heap dumps with hundreds of millions of
objects, quickly calculate the retained sizes of objects, see
who is preventing the Garbage Collector from collecting objects,
run a report to automatically extract leak suspects.
'';
homepage = "https://www.eclipse.org/mat";
license = licenses.epl20;
maintainers = [ maintainers.ktor ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -183,6 +183,8 @@ in
deadcode = callPackage ../development/tools/deadcode { };
eclipse-mat = callPackage ../development/tools/eclipse-mat { };
glade = callPackage ../development/tools/glade { };
hobbes = callPackage ../development/tools/hobbes { };