{ stdenv, fetchurl
, # required for both
  curl, ed, pkgconfig, zlib
, # glx
  libX11
, # sdl
  SDL2, SDL2_image, SDL2_mixer
}:

stdenv.mkDerivation rec {
  name = "${baseName}-${version}";
  version = "1.6.0";
  baseName = "redeclipse";

  #submodules = [
  #  # Main program
  #  { smname = "base"; sha256 = "40af4276a7dd9ffc48e31f01e63343954b3851c5b446716cf0513f579c9949ef"; }

  #  # Data files
  #  { smname = "acerspyro"; sha256 = "a361ae36e07aa4939becd8e7d45d8d39a59081f0d522370f1f7c640b557bbf1e"; }
  #  { smname = "actors"; sha256 = "a766dbc1f4ae55b20b695bdb01a158eb4fc6a033855750fde37582071dd36fc2"; }
  #  { smname = "appleflap"; sha256 = "6a86421b173a242093ff32a63150341755eee9c8979afdfbcab91290fad09de0"; }
  #  { smname = "blendbrush"; sha256 = "497d3cf3d2659ab05b7232e7d079c2194bc77892eb50231de2296bafa0689500"; }
  #  { smname = "caustics"; sha256 = "f831971c085e49bbac8999075968c0d2b3b5131891ee4c7c8f4182a31bdab5e2"; }
  #  { smname = "crosshairs"; sha256 = "da2e505e3cc49e72c47acbc609b67a053447ce41c01bfaa289292a565e533b60"; }
  #  { smname = "dziq"; sha256 = "dbfc50e5f5faf53c5dd837112195de0d80f275bc6f0b963e111e63e1272222e9"; }
  #  { smname = "elyvisions"; sha256 = "ea051bb7176ce753094374a6a8cf27f4ea941004b44dc2c8362915a0ebb55e97"; }
  #  { smname = "fonts"; sha256 = "329945e34b195fb916bead6881b881f6903b201557323eec89f05614d51187d0"; }
  #  { smname = "freezurbern"; sha256 = "da9bf460e5b8681b8cbfd9d4159ed28ba276cd96184255a1d3775701f45f8d41"; }
  #  { smname = "john"; sha256 = "6d8c6f757d98d61d4c567d501429f1991e9d3eb710cab3dc1c68d5833add1ef2"; }
  #  { smname = "jojo"; sha256 = "118ff891b7109cdedba3011124edad1e28662904edcaa62dcd84aae246529d0b"; }
  #  { smname = "jwin"; sha256 = "6862a143b85be7cc3949c41a48b52dd81871ba5f1cf8402b042564b8e8a164bd"; }
  #  { smname = "luckystrike"; sha256 = "097b72c5edfeef3fb84e219a88e6dc7895ea41110309aadd1862960ef7d5c273"; }
  #  { smname = "maps"; sha256 = "7883219754253b38e7d7eab2e6c8c7a65e99406a32ebf20d3054eda96bbabbb6"; }
  #  { smname = "mayhem"; sha256 = "5d9dc1bb7a4bab27fb1f394b83641376e9dbc24ed0d1c47b0447b59e41ff7f42"; }
  #  { smname = "mikeplus64"; sha256 = "5079070363cc3e199e24c58db63f607d7767b3a9fe38b8dfe0124b4c2eec8e90"; }
  #  { smname = "misc"; sha256 = "0ce1090c6a9a0bfdf9d48b4593743f090aec0bb2bd1fe3f45f506ec3fc8afb2e"; }
  #  { smname = "nieb"; sha256 = "33ac217c256d75818517c43a60a9672c4afad3ffdc0d1ba14d4fa7b9a2e6e234"; }
  #  { smname = "nobiax"; sha256 = "debdec13fc09c1e74f7cc2806c7e5f4e9024435672eb34cebd95a1a4bd1999a6"; }
  #  { smname = "particles"; sha256 = "594d5594b85b591f4e9c70c21c8816b8692d51525f0dad3b9ec61daa27c2f60a"; }
  #  { smname = "philipk"; sha256 = "4246e52ca740e6130f536dc97726d71fe7aebfb5fbf4de895ed0dfa0f85979f6"; }
  #  { smname = "projectiles"; sha256 = "aec8fcfe2031fbf947316017421c3504b8aa4466f892ed4c80ad451783032ac3"; }
  #  { smname = "props"; sha256 = "db57d9079f2c4a4db733b2f8608c4220f01c2728992546a6b6c409f32f52c639"; }
  #  { smname = "skyboxes"; sha256 = "c29a48866dfc7028ffb928c505514e48f135e2e5d8c749e9c13bc696614305d3"; }
  #  { smname = "snipergoth"; sha256 = "ec1df4577346bafb22f5b701d05c957e55837f4811b9fe9ca38db4be0270b834"; }
  #  { smname = "sounds"; sha256 = "f21d16871cc4e378657e6933af26bf298df8c06ad777db322ce3f09175afd27c"; }
  #  { smname = "textures"; sha256 = "71d7c8ffefbd43b771e5afbc3166edcf88c3c15d781dbe4fb03da52fde21aa4c"; }
  #  { smname = "torley"; sha256 = "a5ad1ecb5d4a8736fb98e30a6d35e4c6dc4d41108b9ab34bcb2a6dd6111da28b"; }
  #  { smname = "trak"; sha256 = "eb9a44a83be694d0c5d16bd36599340c299994a571a669d6c76d2c7f88e4750e"; }
  #  { smname = "ulukai"; sha256 = "255425a825a95d273c7fd9bf9b503c53015dc8a3b619177b0c28f5a34c006d6f"; }
  #  { smname = "unnamed"; sha256 = "b1ba5796f6962508b243f08d74183aa7276ebcaca6588e9eb9d206a260db5da3"; }
  #  { smname = "vanities"; sha256 = "620850ab25f1fd779212b85ddac5b5bef2e98c4e3665df365975195304ab68dc"; }
  #  { smname = "vegetation"; sha256 = "6b52c6aa300aa15ebf9a2d023c9a3e18969550353f18f54bccac2df5f1c6c35d"; }
  #  { smname = "weapons"; sha256 = "868dbe58333d40d3a75ee316031437b6b2b177d665e4b8e91da54388932f20cb"; }
  #  { smname = "wicked"; sha256 = "556dbed8b9ca521f52c29adbee9b364320bd1ecee69700d4b98c410445726991"; }
  #];

  #srcs = map (smod:
  #  (fetchurl {
  #    url = "https://github.com/red-eclipse/${smod.smname}/archive/v${version}.tar.gz";
  #    sha256 = smod.sha256;
  #  })) submodules;

  src = fetchurl {
      url = "https://github.com/red-eclipse/base/archive/v${version}.tar.gz";
      sha256 = "40af4276a7dd9ffc48e31f01e63343954b3851c5b446716cf0513f579c9949ef";
  };

  buildInputs = [
    # required for both
    curl ed pkgconfig zlib
    # sdl
    SDL2 SDL2_image SDL2_mixer
  ];

  sourceRoot = "base-${version}";

  makeFlags = [ "-C src/" "prefix=$(out)" ];

  patchPhase = ''
    # -ffast-math  triggers a bug in the gamma function.
    sed -i 's/ -ffast-math//' src/Makefile
  '';

  configurePhase = "";
  enableParallelBuilding = true;

  installPhase = ''
    make $makeFlags system-install
  '';

  meta = {
    description = "A first person arena shooter, featuring parkour, impulse boosts, and more.";
    longDescription = ''
      Red Eclipse is a fun-filled new take on the first person arena shooter,
      featuring parkour, impulse boosts, and more. The development is geared
      toward balanced gameplay, with a general theme of agility in a variety of
      environments.
    '';
    homepage = http://www.redeclipse.net;
    license = with stdenv.lib.licenses; [ zlib cc-by-sa-30 ];
    maintainers = with stdenv.lib.maintainers; [ lambda-11235 ];
    platforms = stdenv.lib.platforms.linux;
    hydraPlatforms = [];
  };
}

Add a code snippet to your website: www.paste.org