From 4586ff73955a761db6f05a66ff40d40dfa317e73 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Wed, 26 Sep 2018 12:46:58 -0400 Subject: [PATCH] alloy: add alloy5 and take maintainership (#47262) Add alloy5 (currently, 5.0.0.1), update homepage and downloadPage, and take maintainership of the package. --- maintainers/maintainer-list.nix | 5 ++ pkgs/development/tools/alloy/default.nix | 110 +++++++++++++---------- pkgs/top-level/all-packages.nix | 5 +- 3 files changed, 71 insertions(+), 49 deletions(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index f3b0772faa8..e6bf0bace1d 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -221,6 +221,11 @@ github = "amiloradovsky"; name = "Andrew Miloradovsky"; }; + aminb = { + email = "amin@aminb.org"; + github = "aminb"; + name = "Amin Bandali"; + }; aminechikhaoui = { email = "amine.chikhaoui91@gmail.com"; github = "AmineChikhaoui"; diff --git a/pkgs/development/tools/alloy/default.nix b/pkgs/development/tools/alloy/default.nix index c965e5a937a..7ff5633072e 100644 --- a/pkgs/development/tools/alloy/default.nix +++ b/pkgs/development/tools/alloy/default.nix @@ -1,58 +1,72 @@ -{ stdenv, fetchurl, jre, makeDesktopItem }: +{ stdenv, fetchurl, jre, makeWrapper, makeDesktopItem }: -stdenv.mkDerivation rec { - name = "alloy-${version}"; - version = "4.2_2015-02-22"; +let generic = { major, version, src }: - src = fetchurl { - sha256 = "0p93v8jwx9prijpikkgmfdzb9qn8ljmvga5d9wvrkxddccjx9k28"; - url = "http://alloy.mit.edu/alloy/downloads/alloy${version}.jar"; - }; + stdenv.mkDerivation rec { + name = "${nameMajor}-${version}"; + nameMajor = "alloy${major}"; - desktopItem = makeDesktopItem rec { - name = "alloy"; - exec = name; - icon = name; - desktopName = "Alloy"; - genericName = "Relational modelling tool"; - comment = meta.description; - categories = "Development;IDE;Education;"; - }; + desktopItem = makeDesktopItem rec { + name = "${nameMajor}"; + exec = name; + icon = name; + desktopName = "Alloy ${major}"; + genericName = "Relational modelling tool"; + comment = meta.description; + categories = "Development;IDE;Education;"; + }; - buildInputs = [ jre ]; + nativeBuildInputs = [ makeWrapper ]; - phases = [ "installPhase" ]; + buildCommand = '' + jar=$out/share/alloy/${nameMajor}.jar + install -Dm644 ${src} $jar - installPhase = '' - jar=$out/share/alloy/alloy${version}.jar + mkdir -p $out/bin + makeWrapper ${jre}/bin/java $out/bin/${nameMajor} --add-flags \ + "-jar $jar" - install -Dm644 ${src} $jar - - cat << EOF > alloy - #!${stdenv.shell} - exec ${jre}/bin/java -jar $jar "\''${@}" - EOF - - install -Dm755 alloy $out/bin/alloy - - install -Dm644 ${./icon.png} $out/share/pixmaps/alloy.png - cp -r ${desktopItem}/share/applications $out/share - ''; - - meta = with stdenv.lib; { - description = "Language & tool for relational models"; - longDescription = '' - Alloy is a language for describing structures and a tool for exploring - them. An Alloy model is a collection of constraints that describes a set - of structures, e.g. all the possible security configurations of a web - application, or all the possible topologies of a switching network. The - Alloy Analyzer is a solver that takes the constraints of a model and - finds structures that satisfy them. Structures are displayed graphically, - and their appearance can be customized for the domain at hand. + install -Dm644 ${./icon.png} $out/share/pixmaps/${nameMajor}.png + cp -r ${desktopItem}/share/applications $out/share ''; - homepage = http://alloy.mit.edu/; - downloadPage = http://alloy.mit.edu/alloy/download.html; - license = licenses.mit; - platforms = platforms.linux; + + meta = with stdenv.lib; { + description = "Language & tool for relational models"; + longDescription = '' + Alloy is a language for describing structures and a tool for exploring + them. An Alloy model is a collection of constraints that describes a set + of structures, e.g. all the possible security configurations of a web + application, or all the possible topologies of a switching network. The + Alloy Analyzer is a solver that takes the constraints of a model and + finds structures that satisfy them. Structures are displayed graphically, + and their appearance can be customized for the domain at hand. + ''; + homepage = http://alloytools.org/; + downloadPage = http://alloytools.org/download.html; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ aminb ]; + }; }; + +in rec { + alloy4 = let version = "4.2_2015-02-22"; in generic { + major = "4"; + inherit version; + src = fetchurl { + sha256 = "0p93v8jwx9prijpikkgmfdzb9qn8ljmvga5d9wvrkxddccjx9k28"; + url = "http://alloytools.org/download/alloy${version}.jar"; + }; + }; + + alloy5 = let version = "5.0.0.1"; in generic { + major = "5"; + inherit version; + src = fetchurl { + sha256 = "0kz6i9av9ksjk62lx0dxx8xr542iqvbqd14m1f9h8xpf72c25xw4"; + url = "https://github.com/AlloyTools/org.alloytools.alloy/releases/download/v${version}/Alloy-${version}.jar"; + }; + }; + + alloy = alloy4; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 56c3606368d..87983bcf343 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7932,7 +7932,10 @@ with pkgs; for more information. ''; - alloy = callPackage ../development/tools/alloy { }; + inherit (callPackage ../development/tools/alloy { }) + alloy4 + alloy5 + alloy; adtool = callPackage ../tools/admin/adtool { };