diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 30597373fc5..789bd457bd3 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 00000000000..613fdc0f455
--- /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 b4a88cbe5b2..2a9835211c8 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 { };