Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions maintainers/maintainer-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,11 @@
github = "amiloradovsky";
name = "Andrew Miloradovsky";
};
aminb = {
email = "amin@aminb.org";
github = "aminb";
name = "Amin Bandali";
};
aminechikhaoui = {
email = "amine.chikhaoui91@gmail.com";
github = "AmineChikhaoui";
Expand Down
106 changes: 60 additions & 46 deletions pkgs/development/tools/alloy/default.nix
Original file line number Diff line number Diff line change
@@ -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";
};

desktopItem = makeDesktopItem rec {
name = "alloy";
exec = name;
icon = name;
desktopName = "Alloy";
genericName = "Relational modelling tool";
comment = meta.description;
categories = "Development;IDE;Education;";
};
stdenv.mkDerivation rec {
name = "${nameMajor}-${version}";
nameMajor = "alloy${major}";

buildInputs = [ jre ];
desktopItem = makeDesktopItem rec {
name = "${nameMajor}";
exec = name;
icon = name;
desktopName = "Alloy ${major}";
genericName = "Relational modelling tool";
comment = meta.description;
categories = "Development;IDE;Education;";
};

phases = [ "installPhase" ];
nativeBuildInputs = [ makeWrapper ];

installPhase = ''
jar=$out/share/alloy/alloy${version}.jar
buildCommand = ''
jar=$out/share/alloy/${nameMajor}.jar
install -Dm644 ${src} $jar

install -Dm644 ${src} $jar
mkdir -p $out/bin
makeWrapper ${jre}/bin/java $out/bin/${nameMajor} --add-flags \
"-jar $jar"

cat << EOF > alloy
#!${stdenv.shell}
exec ${jre}/bin/java -jar $jar "\''${@}"
EOF
install -Dm644 ${./icon.png} $out/share/pixmaps/${nameMajor}.png
cp -r ${desktopItem}/share/applications $out/share
'';

install -Dm755 alloy $out/bin/alloy
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 ];
};
};

install -Dm644 ${./icon.png} $out/share/pixmaps/alloy.png
cp -r ${desktopItem}/share/applications $out/share
'';
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";
};
};

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://alloy.mit.edu/;
downloadPage = http://alloy.mit.edu/alloy/download.html;
license = licenses.mit;
platforms = platforms.linux;
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;
}
5 changes: 4 additions & 1 deletion pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7922,7 +7922,10 @@ with pkgs;
for more information.
'';

alloy = callPackage ../development/tools/alloy { };
inherit (callPackage ../development/tools/alloy { })
alloy4
alloy5
alloy;

adtool = callPackage ../tools/admin/adtool { };

Expand Down