Merge pull request #128027 from nessdoor/nixpkgs/protege
This commit is contained in:
commit
52fbf38c2f
3 changed files with 65 additions and 18 deletions
|
@ -1,4 +1,8 @@
|
|||
{ lib, stdenv, fetchurl, unzip, jre8, copyDesktopItems, makeDesktopItem }:
|
||||
{ lib, stdenv, fetchurl, unzip, jre8
|
||||
, copyDesktopItems
|
||||
, makeDesktopItem
|
||||
, iconConvTools
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "protege-distribution";
|
||||
|
@ -9,23 +13,21 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "092x22wyisdnhccx817mqq15sxqdfc7iz4whr4mbvzrd9di6ipjq";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip copyDesktopItems ];
|
||||
nativeBuildInputs = [ unzip copyDesktopItems iconConvTools ];
|
||||
|
||||
patches = [
|
||||
# Replace logic for searching the install directory with a static cd into $out
|
||||
./static-path.patch
|
||||
# Disable console logging, maintaining only file-based logging
|
||||
./disable-console-log.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Delete all those commands meant to change directory to the source directory
|
||||
sed -i -e '3,9d' run.sh
|
||||
|
||||
# Change directory to where the application is stored to avoid heavy patching
|
||||
# of searchpaths
|
||||
sed -i -e "2a\
|
||||
cd $out/protege" run.sh
|
||||
|
||||
# Set the correct Java executable (Protege is a JRE 8 application)
|
||||
# Resolve @out@ (introduced by "static-path.patch") to $out, and set the
|
||||
# correct Java executable (Protege is a JRE 8 application)
|
||||
substituteInPlace run.sh \
|
||||
--replace "java -X" "exec ${jre8.outPath}/bin/java -X" \
|
||||
|
||||
# Silence console logs, since these are not shown in graphical environments
|
||||
sed -i -e '4,8d;21d' conf/logback.xml
|
||||
--subst-var-by out $out \
|
||||
--replace "java -X" "exec ${jre8.outPath}/bin/java -X"
|
||||
'';
|
||||
|
||||
dontConfigure = true;
|
||||
|
@ -42,8 +44,8 @@ stdenv.mkDerivation rec {
|
|||
# Move launch script into /bin, giving it a recognizable name
|
||||
install -D run.sh $out/bin/run-protege
|
||||
|
||||
# Copy icon to where it can be found
|
||||
install -D app/Protege.ico $out/share/icons/hicolor/128x128/apps/protege.ico
|
||||
# Generate and copy icons to where they can be found
|
||||
icoFileToHiColorTheme app/Protege.ico protege $out
|
||||
|
||||
# Move everything else under protege/
|
||||
mkdir $out/protege
|
||||
|
@ -56,8 +58,9 @@ stdenv.mkDerivation rec {
|
|||
(makeDesktopItem {
|
||||
name = "Protege";
|
||||
desktopName = "Protege Desktop";
|
||||
icon = "protege.ico";
|
||||
icon = "protege";
|
||||
comment = "OWL2 ontology editor";
|
||||
categories = "Development";
|
||||
exec = "run-protege";
|
||||
})
|
||||
];
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
--- a/conf/logback.xml 2021-06-25 00:49:10.446416341 +0900
|
||||
+++ b/conf/logback.xml 2021-06-25 00:50:32.889120465 +0900
|
||||
@@ -1,13 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration scan="true" scanPeriod="10 seconds">
|
||||
|
||||
- <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
|
||||
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
- <Pattern>%highlight(%msg) %n</Pattern>
|
||||
- </encoder>
|
||||
- </appender>
|
||||
-
|
||||
-
|
||||
<appender name="files" class="ch.qos.logback.core.FileAppender">
|
||||
<file>${user.home}/.Protege/logs/protege.log</file>
|
||||
<append>true</append>
|
||||
@@ -18,9 +11,8 @@
|
||||
|
||||
|
||||
<root level="info">
|
||||
- <appender-ref ref="stdout" />
|
||||
<appender-ref ref="files"/>
|
||||
</root>
|
||||
|
||||
|
||||
-</configuration>
|
||||
\ No newline at end of file
|
||||
+</configuration>
|
16
pkgs/development/web/protege-distribution/static-path.patch
Normal file
16
pkgs/development/web/protege-distribution/static-path.patch
Normal file
|
@ -0,0 +1,16 @@
|
|||
--- a/run.sh 2021-06-24 22:30:20.764897745 +0900
|
||||
+++ b/run.sh 2021-06-24 22:29:47.211210142 +0900
|
||||
@@ -1,12 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
-SOURCE="${BASH_SOURCE[0]}"
|
||||
-while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
||||
- DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
- SOURCE="$(readlink "$SOURCE")"
|
||||
- [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
-done
|
||||
-cd "$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
+cd @out@/protege
|
||||
|
||||
java -Xmx500M -Xms200M \
|
||||
-Xss16M \
|
Loading…
Reference in a new issue