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