Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 fetchFromGitHub, 4 jre, 5 makeWrapper, 6 maven, 7 icoutils, 8 copyDesktopItems, 9 makeDesktopItem, 10}: 11 12maven.buildMavenPackage rec { 13 pname = "bytecode-viewer"; 14 version = "2.12"; 15 16 src = fetchFromGitHub { 17 owner = "Konloch"; 18 repo = "bytecode-viewer"; 19 rev = "v${version}"; 20 hash = "sha256-opAUmkEcWPOrcxAL+I1rBQXwHmvzbu0+InTnsg9r+z8="; 21 }; 22 23 desktopItems = [ 24 (makeDesktopItem { 25 name = "bytecode-viewer"; 26 desktopName = "Bytecode-Viewer"; 27 exec = meta.mainProgram; 28 icon = "bytecode-viewer"; 29 comment = "A lightweight user-friendly Java/Android Bytecode Viewer, Decompiler & More."; 30 categories = [ "Security" ]; 31 startupNotify = false; 32 }) 33 ]; 34 35 patches = [ 36 # Make vendoring deterministic by pinning Maven plugin dependencies 37 ./make-deterministic.patch 38 ]; 39 40 mvnHash = "sha256-iAxzFq8nR9UiH8y3ZWmGuChZEMwQBAkN8wD+t9q/RWY="; 41 42 mvnParameters = "-Dproject.build.outputTimestamp=1980-01-01T00:00:02Z"; 43 44 nativeBuildInputs = [ 45 icoutils 46 makeWrapper 47 copyDesktopItems 48 ]; 49 50 installPhase = '' 51 runHook preInstall 52 53 install -Dm644 target/Bytecode-Viewer-${version}.jar $out/share/bytecode-viewer/bytecode-viewer.jar 54 55 mv "BCV Icon.ico" bytecode-viewer.ico 56 icotool -x bytecode-viewer.ico 57 58 for size in 16 32 48 59 do 60 install -Dm644 bytecode-viewer_*_$size\x$size\x32.png $out/share/icons/hicolor/$size\x$size/apps/bytecode-viewer.png 61 done 62 63 mkdir $out/bin 64 makeWrapper ${lib.getExe jre} $out/bin/${meta.mainProgram} \ 65 --add-flags "-jar $out/share/bytecode-viewer/bytecode-viewer.jar" 66 67 runHook postInstall 68 ''; 69 70 meta = with lib; { 71 homepage = "https://bytecodeviewer.com"; 72 description = "Lightweight user-friendly Java/Android Bytecode Viewer, Decompiler & More"; 73 mainProgram = "bytecode-viewer"; 74 maintainers = with maintainers; [ 75 shard7 76 d3vil0p3r 77 ]; 78 platforms = platforms.unix; 79 sourceProvenance = with sourceTypes; [ 80 fromSource 81 binaryBytecode # deps 82 ]; 83 license = with licenses; [ gpl3Only ]; 84 }; 85}