nixpkgs/pkgs/applications/office/jameica/default.nix

76 lines
2.8 KiB
Nix
Raw Normal View History

{ lib, stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, ant, jdk, jre, gtk2, glib, xorg, Cocoa }:
2018-08-12 19:36:53 +01:00
let
2020-05-01 01:12:28 +01:00
_version = "2.8.6";
_build = "455";
2018-08-12 19:36:53 +01:00
version = "${_version}-${_build}";
name = "jameica-${version}";
swtSystem = if stdenv.hostPlatform.system == "i686-linux" then "linux"
else if stdenv.hostPlatform.system == "x86_64-linux" then "linux64"
else if stdenv.hostPlatform.system == "x86_64-darwin" then "macos64"
else throw "Unsupported system: ${stdenv.hostPlatform.system}";
2018-08-12 19:36:53 +01:00
desktopItem = makeDesktopItem {
name = "jameica";
exec = "jameica";
comment = "Free Runtime Environment for Java Applications.";
desktopName = "Jameica";
genericName = "Jameica";
categories = "Office;";
2018-08-12 19:36:53 +01:00
};
in
stdenv.mkDerivation rec {
inherit name version;
2018-10-09 22:26:00 +01:00
nativeBuildInputs = [ ant jdk makeWrapper ];
2021-01-15 05:42:41 +00:00
buildInputs = lib.optionals stdenv.isLinux [ gtk2 glib xorg.libXtst ]
++ lib.optional stdenv.isDarwin Cocoa;
2018-08-12 19:36:53 +01:00
src = fetchFromGitHub {
owner = "willuhn";
repo = "jameica";
rev = "V_${builtins.replaceStrings ["."] ["_"] _version}_BUILD_${_build}";
2020-05-01 01:12:28 +01:00
sha256 = "1pndklxsvixy6zyblqr62ki3pqaq8lfrzgasrvhclqxxh76gjlss";
2018-08-12 19:36:53 +01:00
};
# 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 = ''
2018-10-09 22:26:00 +01:00
(cd build; ant -Dsystem.version=${version} init compile jar)
2018-08-12 19:36:53 +01:00
'';
installPhase = ''
mkdir -p $out/libexec $out/lib $out/bin $out/share/{applications,${name},java}/
2018-08-12 19:36:53 +01:00
# copy libraries except SWT
cp $(find lib -type f -iname '*.jar' | grep -ve 'swt/.*/swt.jar') $out/share/${name}/
2018-08-12 19:36:53 +01:00
# copy platform-specific SWT
cp lib/swt/${swtSystem}/swt.jar $out/share/${name}/
2018-08-12 19:36:53 +01:00
install -Dm644 releases/${_version}-*/jameica/jameica.jar $out/share/java/
install -Dm644 plugin.xml $out/share/java/
2018-08-12 19:36:53 +01:00
install -Dm644 build/jameica-icon.png $out/share/pixmaps/jameica.png
cp ${desktopItem}/share/applications/* $out/share/applications/
makeWrapper ${jre}/bin/java $out/bin/jameica \
--add-flags "-cp $out/share/java/jameica.jar:$out/share/${name}/* ${
2021-01-15 05:42:41 +00:00
lib.optionalString stdenv.isDarwin ''-Xdock:name="Jameica" -XstartOnFirstThread''
} de.willuhn.jameica.Main" \
2021-01-15 05:42:41 +00:00
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath buildInputs} \
--run "cd $out/share/java/"
2018-08-12 19:36:53 +01:00
'';
meta = with lib; {
homepage = "https://www.willuhn.de/products/jameica/";
2018-10-09 22:26:00 +01:00
description = "Free Runtime Environment for Java Applications";
2018-08-12 19:36:53 +01:00
longDescription = ''
Runtime Environment for plugins like Hibiscus (HBCI Online Banking),
SynTAX (accounting) and JVerein (club management).
'';
license = licenses.gpl2Plus;
2018-08-13 13:12:29 +01:00
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
2018-08-12 19:36:53 +01:00
maintainers = with maintainers; [ flokli ];
};
}