diff options
Diffstat (limited to 'pkgs/applications/science/logic/logisim/default.nix')
-rw-r--r-- | pkgs/applications/science/logic/logisim/default.nix | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/pkgs/applications/science/logic/logisim/default.nix b/pkgs/applications/science/logic/logisim/default.nix index 1ca22cf769c..f94f08e43ab 100644 --- a/pkgs/applications/science/logic/logisim/default.nix +++ b/pkgs/applications/science/logic/logisim/default.nix @@ -1,29 +1,50 @@ -{ lib, stdenv, fetchurl, jre, makeWrapper }: +{ lib, stdenv, fetchurl, jre, makeWrapper, copyDesktopItems, makeDesktopItem, unzip }: -let version = "2.7.1"; in - -stdenv.mkDerivation { +stdenv.mkDerivation rec { pname = "logisim"; - inherit version; + version = "2.7.1"; src = fetchurl { - url = "mirror://sourceforge/project/circuit/2.7.x/${version}/logisim-generic-${version}.jar"; + url = "mirror://sourceforge/project/circuit/${lib.versions.majorMinor version}.x/${version}/logisim-generic-${version}.jar"; sha256 = "1hkvc9zc7qmvjbl9579p84hw3n8wl3275246xlzj136i5b0phain"; }; - phases = [ "installPhase" ]; + dontUnpack = true; + + nativeBuildInputs = [ makeWrapper copyDesktopItems unzip ]; - nativeBuildInputs = [makeWrapper]; + desktopItems = [ + (makeDesktopItem { + name = pname; + desktopName = "Logisim"; + exec = "logisim"; + icon = "logisim"; + comment = meta.description; + categories = "Education;"; + }) + ]; installPhase = '' - mkdir -pv $out/bin + runHook preInstall + + mkdir -p $out/bin makeWrapper ${jre}/bin/java $out/bin/logisim --add-flags "-jar $src" + + # Create icons + unzip $src "resources/logisim/img/*" + for size in 16 20 24 48 64 128 + do + install -D "./resources/logisim/img/logisim-icon-$size.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/logisim.png" + done + + runHook postInstall ''; - meta = { - homepage = "http://ozark.hendrix.edu/~burch/logisim"; + meta = with lib; { + homepage = "http://www.cburch.com/logisim/"; description = "Educational tool for designing and simulating digital logic circuits"; - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.unix; + maintainers = with maintainers; [ angustrau ]; + license = licenses.gpl2Plus; + platforms = platforms.unix; }; } |