unityhub: 3.10.0 -> 3.11.0 (#376840)
[NixPkgs.git] / pkgs / by-name / op / openrocket / package.nix
blobb8d83dd8b30d0a42209209b84b12ae41a241f04e
1 { lib
2 , stdenvNoCC
3 , fetchFromGitHub
4 , ant
5 , jdk17
6 , makeWrapper
7 , stripJavaArchivesHook
8 }:
10 let
11   jdk = jdk17; # Only java 17 is supported as of 23.09
13 stdenvNoCC.mkDerivation (finalAttrs: {
14   pname = "openrocket";
15   version = "23.09";
17   src = fetchFromGitHub {
18     owner = "openrocket";
19     repo = "openrocket";
20     rev = "release-${finalAttrs.version}";
21     hash = "sha256-Dg/v72N9cDG9Ko5JIcZxGxh+ClRDgf5Jq5DvQyCiYOs=";
22     fetchSubmodules = true;
23   };
25   nativeBuildInputs = [
26     ant
27     jdk
28     makeWrapper
29     stripJavaArchivesHook
30   ];
32   buildPhase = ''
33     runHook preBuild
34     ant
35     runHook postBuild
36   '';
38   doCheck = true;
40   checkPhase = ''
41     runHook preCheck
42     ant unittest
43     runHook postCheck
44   '';
46   installPhase = ''
47     runHook preInstall
49     sed -i "s|Icon=.*|Icon=openrocket|g" snap/gui/openrocket.desktop
50     install -Dm644 snap/gui/openrocket.desktop -t $out/share/applications
51     install -Dm644 snap/gui/openrocket.png -t $out/share/icons/hicolor/256x256/apps
52     install -Dm644 swing/build/jar/OpenRocket.jar -t $out/share/openrocket
54     makeWrapper ${jdk}/bin/java $out/bin/openrocket \
55         --add-flags "-jar $out/share/openrocket/OpenRocket.jar"
57     runHook postInstall
58   '';
60   meta = {
61     changelog = "https://github.com/openrocket/openrocket/releases/tag/${finalAttrs.src.rev}";
62     description = "Model-rocketry aerodynamics and trajectory simulation software";
63     homepage = "https://openrocket.info";
64     license = lib.licenses.gpl3Plus;
65     mainProgram = "openrocket";
66     maintainers = with lib.maintainers; [ tomasajt ];
67     platforms = jdk.meta.platforms;
68     sourceProvenance = with lib.sourceTypes; [
69       fromSource
70       binaryBytecode # source bundles dependencies as jars
71     ];
72   };