diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2018-08-13 20:42:33 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2018-08-13 20:43:59 +0200 |
commit | 5b0398dc36ce5746d8d54e04a1dfcab25939484a (patch) | |
tree | 35dbf68b90a8b5e2cbbbbc3ccfbc2529d4c5ca23 /pkgs/applications/office | |
parent | 34baf00b72ad0932f6a2add6cee88d2e8b7bec8e (diff) | |
parent | 249ba3d3ed76e34f61ab7bb2024b013f3feaafb9 (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.nix | 90 |
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 ]; + }; +} |