diff --git a/pkgs/development/tools/alloy/builder.sh b/pkgs/development/tools/alloy/builder.sh new file mode 100644 index 000000000000..e737fc5eec73 --- /dev/null +++ b/pkgs/development/tools/alloy/builder.sh @@ -0,0 +1,16 @@ +source $stdenv/setup + +jar=${src##*/} +jar=$out/share/alloy/${jar#*-} + +install -Dm644 $src $jar + +cat << EOF > alloy +#! $SHELL +exec $jre/bin/java -jar $jar +EOF + +install -Dm755 alloy $out/bin/alloy + +install -Dm644 $icon $out/share/pixmaps/alloy.png +cp -r ${desktopItem}/share/applications $out/share diff --git a/pkgs/development/tools/alloy/default.nix b/pkgs/development/tools/alloy/default.nix new file mode 100644 index 000000000000..d25ccc1a7a5e --- /dev/null +++ b/pkgs/development/tools/alloy/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchurl, jre, makeDesktopItem }: + +let version = "4.2_2015-02-22"; in +stdenv.mkDerivation rec { + name = "alloy-${version}"; + + src = fetchurl { + sha256 = "0p93v8jwx9prijpikkgmfdzb9qn8ljmvga5d9wvrkxddccjx9k28"; + url = "http://alloy.mit.edu/alloy/downloads/alloy${version}.jar"; + }; + + meta = with stdenv.lib; { + inherit version; + 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 = with licenses; mit; + platforms = with platforms; linux; + maintainers = with maintainers; [ nckx ]; + }; + + desktopItem = makeDesktopItem rec { + name = "alloy"; + exec = name; + icon = name; + desktopName = "Alloy"; + genericName = "Relational modelling tool"; + comment = meta.description; + categories = "Development;IDE;Education;"; + }; + + + buildInputs = [ jre ]; + inherit jre; + + icon = ./icon.png; + + builder = ./builder.sh; +} diff --git a/pkgs/development/tools/alloy/icon.png b/pkgs/development/tools/alloy/icon.png new file mode 100644 index 000000000000..a76bd9480474 Binary files /dev/null and b/pkgs/development/tools/alloy/icon.png differ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 50f714e71c4c..c92d49fea1e8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4912,6 +4912,8 @@ let ### DEVELOPMENT / TOOLS + alloy = callPackage ../development/tools/alloy { }; + augeas = callPackage ../tools/system/augeas { }; ansible = callPackage ../tools/system/ansible { };