nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 fetchFromGitHub,
4 jdk11,
5 maven,
6 jogl,
7}:
8
9maven.buildMavenPackage rec {
10 pname = "gephi";
11 version = "0.10.1";
12
13 src = fetchFromGitHub {
14 owner = "gephi";
15 repo = "gephi";
16 rev = "v${version}";
17 hash = "sha256-ZNSEaiD32zFfF2ISKa1CmcT9Nq6r5i2rNHooQAcVbn4=";
18 };
19
20 mvnJdk = jdk11;
21 mvnHash = "sha256-/2/Yb26Ry0NHQQ3j0LXnjwC0wQqJiztvTgWixyMJqvg=";
22
23 nativeBuildInputs = [ jdk11 ];
24
25 installPhase = ''
26 cp -r modules/application/target/gephi $out
27
28 # remove garbage
29 find $out -type f -name .lastModified -delete
30 find $out -type f -regex '.+\.exe' -delete
31
32 # use self-compiled JOGL to avoid patchelf'ing .so inside jars
33 rm $out/gephi/modules/ext/org.gephi.visualization/org-jogamp-{jogl,gluegen}/*.jar
34 cp ${jogl}/share/java/jogl*.jar $out/gephi/modules/ext/org.gephi.visualization/org-jogamp-jogl/
35 cp ${jogl}/share/java/glue*.jar $out/gephi/modules/ext/org.gephi.visualization/org-jogamp-gluegen/
36
37 printf "\n\njdkhome=${jdk11}\n" >> $out/etc/gephi.conf
38 '';
39
40 meta = {
41 description = "Platform for visualizing and manipulating large graphs";
42 mainProgram = "gephi";
43 homepage = "https://gephi.org";
44 sourceProvenance = with lib.sourceTypes; [
45 fromSource
46 binaryBytecode # deps
47 ];
48 license = lib.licenses.gpl3;
49 maintainers = [ lib.maintainers.taeer ];
50 };
51}