about summary refs log tree commit diff
path: root/pkgs/applications/office
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2018-08-13 20:42:33 +0200
committerVladimír Čunát <vcunat@gmail.com>2018-08-13 20:43:59 +0200
commit5b0398dc36ce5746d8d54e04a1dfcab25939484a (patch)
tree35dbf68b90a8b5e2cbbbbc3ccfbc2529d4c5ca23 /pkgs/applications/office
parent34baf00b72ad0932f6a2add6cee88d2e8b7bec8e (diff)
parent249ba3d3ed76e34f61ab7bb2024b013f3feaafb9 (diff)
Merge branch 'master' into staging-next
Conflicts: gobby and libinfinity - I took the hand-edited versions
instead of those resuting from the mass-replacement.

Hydra: ?compare=1473190
Diffstat (limited to 'pkgs/applications/office')
-rw-r--r--pkgs/applications/office/jameica/default.nix90
1 files changed, 90 insertions, 0 deletions
diff --git a/pkgs/applications/office/jameica/default.nix b/pkgs/applications/office/jameica/default.nix
new file mode 100644
index 0000000000000..7b804151d4a73
--- /dev/null
+++ b/pkgs/applications/office/jameica/default.nix
@@ -0,0 +1,90 @@
+{ stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, ant, jdk, jre, xmlstarlet, gtk2, glib, xorg, Cocoa }:
+
+let
+  _version = "2.8.1";
+  _build = "449";
+  version = "${_version}-${_build}";
+  name = "jameica-${version}";
+
+  swtSystem = if stdenv.system == "i686-linux" then "linux"
+  else if stdenv.system == "x86_64-linux" then "linux64"
+  else if stdenv.system == "x86_64-darwin" then "macos64"
+  else throw "Unsupported system: ${stdenv.system}";
+
+  launcher = ''
+    #!${stdenv.shell}
+    exec ${jre}/bin/java -Xmx512m ${ stdenv.lib.optionalString stdenv.isDarwin ''-Xdock:name="Jameica" -XstartOnFirstThread''} de.willuhn.jameica.Main "$@"
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = "jameica";
+    exec = "jameica";
+    comment = "Free Runtime Environment for Java Applications.";
+    desktopName = "Jameica";
+    genericName = "Jameica";
+    categories = "Application;Office;";
+  };
+in
+stdenv.mkDerivation rec {
+  inherit name version;
+
+  nativeBuildInputs = [ ant jdk makeWrapper xmlstarlet ];
+  buildInputs = stdenv.lib.optionals stdenv.isLinux [ gtk2 glib xorg.libXtst ]
+                ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
+
+  src = fetchFromGitHub {
+    owner = "willuhn";
+    repo = "jameica";
+    rev = "V_${builtins.replaceStrings ["."] ["_"] _version}_BUILD_${_build}";
+    sha256 = "1w25lxjskn1yxllbv0vgvcc9f9xvgv9430dm4b59ia9baf98syd2";
+  };
+
+  # there is also a build.gradle, but it only seems to be used to vendor 3rd party libraries
+  # and is not able to build the application itself
+  buildPhase = ''
+    (cd build; ant init compile jar)
+  '';
+
+  # jameica itself loads ./plugin.xml to determine it's version.
+  # Unfortunately, the version attribute there seems to be wrong,
+  # so it thinks it's older than it really is,
+  # and refuses to load plugins destined for its version.
+  # Set version manually to workaround that.
+  postPatch = ''
+    xml ed -u '/system/@version' -v '${version}' plugin.xml > plugin.xml.new
+    mv plugin.xml.new plugin.xml
+  '';
+
+  installPhase = ''
+    mkdir -p $out/libexec $out/lib $out/bin $out/share/applications
+
+    # copy libraries except SWT
+    cp $(find lib -type f -iname '*.jar' | grep -ve 'swt/.*/swt.jar') $out/lib/
+    # copy platform-specific SWT
+    cp lib/swt/${swtSystem}/swt.jar $out/lib
+
+    install -Dm644 releases/${_version}-*/jameica/jameica.jar $out/libexec/
+    install -Dm644 plugin.xml $out/libexec/
+    install -Dm644 build/jameica-icon.png $out/share/pixmaps/jameica.png
+    cp ${desktopItem}/share/applications/* $out/share/applications/
+
+    echo "${launcher}" > $out/bin/jameica
+    chmod +x $out/bin/jameica
+    wrapProgram $out/bin/jameica --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath buildInputs} \
+                                 --set CLASSPATH "$out/libexec/jameica.jar:$out/lib/*" \
+                                 --run "cd $out/libexec"
+                                 # jameica expects its working dir set to the "program directory"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.willuhn.de/products/jameica/;
+    description = "Free Runtime Environment for Java Applications.";
+    longDescription = ''
+      Runtime Environment for plugins like Hibiscus (HBCI Online Banking),
+      SynTAX (accounting) and JVerein (club management).
+    '';
+    license = licenses.gpl2Plus;
+    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [ flokli ];
+  };
+}