logisim-evolution: add darwin bundle

+36 -20
+36 -20
pkgs/applications/science/logic/logisim-evolution/default.nix
··· 1 - { lib, stdenv, fetchurl, jre, makeWrapper, copyDesktopItems, makeDesktopItem, unzip }: 1 + { lib 2 + , stdenv 3 + , fetchurl 4 + , jre 5 + , makeBinaryWrapper 6 + , copyDesktopItems 7 + , makeDesktopItem 8 + , desktopToDarwinBundle 9 + , unzip 10 + }: 2 11 3 - stdenv.mkDerivation rec { 12 + let 13 + icon = fetchurl { 14 + url = "https://github.com/logisim-evolution/logisim-evolution/raw/9e0afa3cd6a8bfa75dab61830822cde83c70bb4b/artwork/logisim-evolution-icon.svg"; 15 + hash = "sha256-DNRimhNFt6jLdjqv7o2cNz38K6XnevxD0rGymym3xBs="; 16 + }; 17 + in 18 + stdenv.mkDerivation (finalAttrs: { 4 19 pname = "logisim-evolution"; 5 20 version = "3.8.0"; 6 21 7 22 src = fetchurl { 8 - url = "https://github.com/logisim-evolution/logisim-evolution/releases/download/v${version}/logisim-evolution-${version}-all.jar"; 9 - sha256 = "sha256-TFm+fa3CMp0OMhnKBc6cLIWGQbIG/OpOOCG7ea7wbCw="; 23 + url = "https://github.com/logisim-evolution/logisim-evolution/releases/download/v${finalAttrs.version}/logisim-evolution-${finalAttrs.version}-all.jar"; 24 + hash = "sha256-TFm+fa3CMp0OMhnKBc6cLIWGQbIG/OpOOCG7ea7wbCw="; 10 25 }; 11 - 12 26 dontUnpack = true; 13 27 14 - nativeBuildInputs = [ makeWrapper copyDesktopItems unzip ]; 28 + nativeBuildInputs = [ 29 + makeBinaryWrapper 30 + copyDesktopItems 31 + unzip 32 + ] ++ lib.optionals stdenv.isDarwin [ 33 + desktopToDarwinBundle 34 + ]; 15 35 16 36 desktopItems = [ 17 37 (makeDesktopItem { 18 - name = pname; 38 + name = "logisim-evolution"; 19 39 desktopName = "Logisim-evolution"; 20 40 exec = "logisim-evolution"; 21 41 icon = "logisim-evolution"; 22 - comment = meta.description; 42 + comment = finalAttrs.meta.description; 23 43 categories = [ "Education" ]; 24 44 }) 25 45 ]; ··· 29 49 30 50 mkdir -p $out/bin 31 51 makeWrapper ${jre}/bin/java $out/bin/logisim-evolution --add-flags "-jar $src" 32 - 33 - # Create icons 34 - unzip $src "resources/logisim/img/*" 35 - for size in 16 32 48 128 256; do 36 - install -D "./resources/logisim/img/logisim-icon-$size.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/logisim-evolution.png" 37 - done 52 + install -Dm444 ${icon} $out/share/icons/hicolor/scalable/apps/logisim-evolution.svg 38 53 39 54 runHook postInstall 40 55 ''; 41 56 42 - meta = with lib; { 57 + meta = { 58 + changelog = "https://github.com/logisim-evolution/logisim-evolution/releases/tag/v${finalAttrs.version}"; 43 59 homepage = "https://github.com/logisim-evolution/logisim-evolution"; 44 60 description = "Digital logic designer and simulator"; 45 61 mainProgram = "logisim-evolution"; 46 - maintainers = with maintainers; [ emilytrau ]; 47 - sourceProvenance = with sourceTypes; [ binaryBytecode ]; 48 - license = licenses.gpl2Plus; 49 - platforms = platforms.unix; 62 + maintainers = with lib.maintainers; [ emilytrau ]; 63 + sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; 64 + license = lib.licenses.gpl3Only; 65 + platforms = lib.platforms.unix; 50 66 }; 51 - } 67 + })