Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / web / protege-distribution / default.nix
bloba6ef66d06950708de33460c9e4c7c28443be5f83
1 { lib, stdenv, fetchurl, unzip, jre8
2 , copyDesktopItems
3 , makeDesktopItem
4 , iconConvTools
5 }:
7 stdenv.mkDerivation rec {
8   pname = "protege-distribution";
9   version = "5.5.0";
11   src = fetchurl {
12     url = "https://github.com/protegeproject/protege-distribution/releases/download/v${version}/Protege-${version}-platform-independent.zip";
13     sha256 = "092x22wyisdnhccx817mqq15sxqdfc7iz4whr4mbvzrd9di6ipjq";
14   };
16   nativeBuildInputs = [ unzip copyDesktopItems iconConvTools ];
18   patches = [
19     # Replace logic for searching the install directory with a static cd into $out
20     ./static-path.patch
21     # Disable console logging, maintaining only file-based logging
22     ./disable-console-log.patch
23   ];
25   postPatch = ''
26     # Resolve @out@ (introduced by "static-path.patch") to $out, and set the
27     # correct Java executable (Protege is a JRE 8 application)
28     substituteInPlace run.sh \
29       --subst-var-by out $out \
30       --replace "java -X" "exec ${jre8.outPath}/bin/java -X"
31   '';
33   dontConfigure = true;
34   dontBuild = true;
36   installPhase = ''
37     runHook preInstall
39     mkdir $out
41     # Delete non-Linux launch scripts
42     rm run.{bat,command}
44     # Move launch script into /bin, giving it a recognizable name
45     install -D run.sh $out/bin/run-protege
47     # Generate and copy icons to where they can be found
48     icoFileToHiColorTheme app/Protege.ico protege $out
50     # Move everything else under protege/
51     mkdir $out/protege
52     mv {bin,bundles,conf,plugins} $out/protege
54     runHook postInstall
55   '';
57   desktopItems = [
58     (makeDesktopItem {
59       name = "Protege";
60       desktopName = "Protege Desktop";
61       icon = "protege";
62       comment = "OWL2 ontology editor";
63       categories = [ "Development" ];
64       exec = "run-protege";
65     })
66   ];
68   meta = with lib; {
69     description = "The OWL2 ontology editor from Stanford, with third-party plugins included";
70     homepage = "https://protege.stanford.edu/";
71     downloadPage = "https://protege.stanford.edu/products.php#desktop-protege";
72     maintainers = with maintainers; [ nessdoor ];
73     license = with licenses; [ asl20 bsd2 epl10 lgpl3 ];
74     platforms = platforms.linux;
75   };