diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 30597373fc52..789bd457bd36 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -135,6 +135,11 @@ github = "roosemberth"; name = "Roosembert (Roosemberth) Palacios"; }; + Scriptkiddi = { + email = "nixos@scriptkiddi.de"; + github = "scriptkiddi"; + name = "Fritz Otlinghaus"; + }; SShrike = { email = "severen@shrike.me"; github = "severen"; diff --git a/pkgs/tools/misc/gams/default.nix b/pkgs/tools/misc/gams/default.nix new file mode 100644 index 000000000000..613fdc0f4555 --- /dev/null +++ b/pkgs/tools/misc/gams/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchurl, unzip, lib, file, licenseFile, optgamsFile}: + +assert licenseFile != null; + +stdenv.mkDerivation rec { + version = "25.0.2"; + name = "gams-${version}"; + src = fetchurl { + url = "https://d37drm4t2jghv5.cloudfront.net/distributions/${version}/linux/linux_x64_64_sfx.exe"; + sha256 = "4f95389579f33ff7c2586838a2c19021aa0746279555cbb51aa6e0efd09bd297"; + }; + unpackCmd = "unzip $src"; + buildInputs = [ unzip file ]; + dontBuild = true; + + installPhase = '' + mkdir -p "$out/bin" "$out/share/gams" + cp -a * "$out/share/gams" + + cp ${licenseFile} $out/share/gamslice.txt + '' + stdenv.lib.optionalString (optgamsFile != null) '' + cp ${optgamsFile} $out/share/optgams.def + ln -s $out/share/gams/optgams.def $out/bin/optgams.def + ''; + + postFixup = '' + for f in $out/share/gams/*; do + if [[ -x $f ]] && [[ -f $f ]] && [[ ! $f =~ .*\.so$ ]]; then + if patchelf \ + --set-rpath "$out/share/gams" \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $f; then + ln -s $f $out/bin/$(basename $f) + fi + fi + done + ''; + + meta = with stdenv.lib;{ + description = "General Algebraic Modeling System"; + longDescription = '' + The General Algebraic Modeling System is a high-level modeling system for mathematical optimization. + GAMS is designed for modeling and solving linear, nonlinear, and mixed-integer optimization problems. + ''; + homepage = https://www.gams.com/; + license = licenses.unfree; + maintainers = [ maintainers.Scriptkiddi ]; + platforms = platforms.linux; + }; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b4a88cbe5b2b..2a9835211c80 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -637,6 +637,11 @@ with pkgs; genymotion = callPackage ../development/mobile/genymotion { }; + gams = callPackage ../tools/misc/gams { + licenseFile = config.gams.licenseFile or null; + optgamsFile = config.gams.optgamsFile or null; + }; + git-fire = callPackage ../tools/misc/git-fire { }; gitless = callPackage ../applications/version-management/gitless/default.nix { };