Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / web / protege-distribution / default.nix
blobb82f45692ee15f913998581803f98708175eaeb8
1 { lib
2 , stdenv
3 , fetchurl
4 , unzip
5 , jdk11
6 , copyDesktopItems
7 , iconConvTools
8 , makeDesktopItem
9 , makeWrapper
12 stdenv.mkDerivation rec {
13   pname = "protege-distribution";
14   version = "5.6.3";
16   src = fetchurl {
17     url = "https://github.com/protegeproject/protege-distribution/releases/download/protege-${version}/Protege-${version}-platform-independent.zip";
18     sha256 = "08pr0rn76wcc9bczdf93nlshxbid4z4nyvmaz198hhlq96aqpc3i";
19   };
21   nativeBuildInputs = [
22     copyDesktopItems
23     iconConvTools
24     jdk11
25     makeWrapper
26     unzip
27   ];
29   patches = [
30     # Replace logic for searching the install directory with a static cd into $out
31     ./static-path.patch
32     # Disable console logging, maintaining only file-based logging
33     ./disable-console-log.patch
34   ];
36   postPatch = ''
37     # Resolve @out@ (introduced by "static-path.patch") to $out
38     substituteInPlace run.sh --subst-var-by out $out
39   '';
41   dontConfigure = true;
42   dontBuild = true;
44   installPhase = ''
45     runHook preInstall
47     mkdir -p $out/bin
49     # Wrap launch script to set $JAVA_HOME correctly
50     mv run.sh $out/bin/run-protege
51     wrapProgram  $out/bin/run-protege --set JAVA_HOME ${jdk11.home}
53     # Generate and copy icons to where they can be found
54     icoFileToHiColorTheme app/Protege.ico protege $out
56     # Move everything else under protege/
57     mkdir $out/protege
58     mv {bundles,conf,plugins} $out/protege
60     runHook postInstall
61   '';
63   desktopItems = [
64     (makeDesktopItem {
65       name = "Protege";
66       desktopName = "Protege Desktop";
67       icon = "protege";
68       comment = "OWL2 ontology editor";
69       categories = [ "Development" ];
70       exec = "run-protege";
71     })
72   ];
74   meta = with lib; {
75     description = "The OWL2 ontology editor from Stanford, with third-party plugins included";
76     homepage = "https://protege.stanford.edu/";
77     downloadPage = "https://protege.stanford.edu/products.php#desktop-protege";
78     maintainers = with maintainers; [ nessdoor ];
79     license = with licenses; [ asl20 bsd2 epl10 lgpl3 ];
80     platforms = platforms.linux;
81     mainProgram = "run-protege";
82   };