anchor.diff:      platforms   = platforms.linux;
     };
   
  -  src = fetchurl {
  -    name = "${name}.tar.gz";
  -    url = "https://github.com/OpenRA/OpenRA/archive/release-${version}.tar.gz";
  -    sha256 = "1psmq3kb2whkavh5pm0xc4m5b4bihvrl8pfrk851iqg1cs22bg0w";
  +  src = fetchFromGitHub {
  +    owner = "OpenRA";
  +    repo = "OpenRA";
  +    rev = "release-${version}";
  +    sha256 = "0nlwpmiwhjs3qc2lxwnrh4p874v5y6mf4avi6bqgr1wvzc43n8wr";
  +
  +    extraPostFetch = ''
  +      sed -i 's,curl,curl --insecure,g' $out/thirdparty/{fetch-thirdparty-deps,noget}.sh
  +      $out/thirdparty/fetch-thirdparty-deps.sh
  +    '';
     };
   
     dontStrip = true;
   
  -  buildInputs = with dotnetPackages;
  -     [ NUnit3 NewtonsoftJson MonoNat FuzzyLogicLibrary SmartIrc4net SharpZipLib MaxMindGeoIP2 MaxMindDb SharpFont StyleCopMSBuild StyleCopPlusMSBuild RestSharp NUnitConsole OpenNAT ]
  +  buildInputs = (with dotnetPackages;
  +     [ NUnit3 NewtonsoftJson MonoNat FuzzyLogicLibrary SmartIrc4net SharpZipLib MaxMindGeoIP2 MaxMindDb SharpFont StyleCopMSBuild StyleCopPlusMSBuild RestSharp NUnitConsole OpenNAT ])
        ++ [ curl unzip lua gnome3.zenity ];
     nativeBuildInputs = [ curl unzip mono makeWrapper lua pkgconfig ];
   
  -  patchPhase = ''
  +  postPatch = ''
       mkdir Support
  -    sed -i 's/^VERSION.*/VERSION = release-${version}/g' Makefile
  +    sed -i \
  +      -e 's/^VERSION.*/VERSION = release-${version}/g' \
  +      -e '/GeoLite2-Country.mmdb.gz/d' \
  +      -e '/fetch-geoip-db.sh/d' \
  +      Makefile
       substituteInPlace thirdparty/configure-native-deps.sh --replace "locations=\"" "locations=\"${lua}/lib "
  -    substituteInPlace Makefile --replace "@./thirdparty/fetch-geoip-db.sh" ""
     '';
   
     preConfigure = ''
       makeFlags="prefix=$out"
       make version
  -  '';
  -
  -  preBuild = let dotnetPackagesDlls = with dotnetPackages; [
  -    "${OpenNAT}/lib/dotnet/Open.NAT/net45/Open.Nat.dll"
  -    "${MonoNat}/lib/dotnet/Mono.Nat/net40/Mono.Nat.dll"
  -    "${FuzzyLogicLibrary}/lib/dotnet/FuzzyLogicLibrary/Release/FuzzyLogicLibrary.dll"
  -    "${SmartIrc4net}/lib/dotnet/SmartIrc4net/net40/SmarIrc4net*"
  -    "${SharpZipLib}/lib/dotnet/SharpZipLib/20/ICSharpCode.SharpZipLib.dll"
  -    "${MaxMindGeoIP2}/lib/dotnet/MaxMind.GeoIP2/net40/MaxMind.GeoIP2*"
  -    "${MaxMindDb}/lib/dotnet/MaxMind.Db/net40/MaxMind.Db.*"
  -    "${SharpFont}/lib/dotnet/SharpFont/net20/SharpFont.dll"
  -    "${SharpFont}/lib/dotnet/SharpFont/SharpFont.dll.config"
  -    "${StyleCopMSBuild}/lib/dotnet/StyleCop.MSBuild/StyleCop*.dll"
  -    "${StyleCopPlusMSBuild}/lib/dotnet/StyleCopPlus.MSBuild/StyleCopPlus.dll"
  -    "${RestSharp}/lib/dotnet/RestSharp/net4-client/RestSharp.dll"
  -    "${NUnit}/lib/dotnet/NUnit/nunit.framework.*"
  -    "${NUnitConsole}/lib/dotnet/NUnit.Console/*"
  -    "${NewtonsoftJson}/lib/dotnet/Newtonsoft.Json/Newtonsoft.Json.dll"
  -    ];
  -    movePackages = [
  -      ( let filename = "Eluant.dll"; in { origin = fetchurl {
  -          url = "https://github.com/OpenRA/Eluant/releases/download/20160124/${filename}";
  -          sha256 = "1c20whz7dzfhg3szd62rvb79745x5iwrd5pp62j3bbj1q9wpddmb";
  -        }; target = filename; })
  -
  -      ( let filename = "SDL2-CS.dll"; in { origin = fetchurl {
  -          url = "https://github.com/OpenRA/SDL2-CS/releases/download/20151227/${filename}";
  -          sha256 = "0gqw2wg37cqhhlc2a9lfc4ndkyfi4m8bkv7ckxbawgydjlknq83n";
  -        }; target = filename; })
  -
  -      ( let filename = "SDL2-CS.dll.config"; in { origin = fetchurl {
  -          url = "https://github.com/OpenRA/SDL2-CS/releases/download/20151227/${filename}";
  -          sha256 = "15709iscdg44wd33szw5y0fdxwvqfjw8v3xjq6a0mm46gr7mkw7g";
  -        }; target = filename; })
  -
  -      ( let filename = "OpenAL-CS.dll"; in { origin = fetchurl {
  -          url = "https://github.com/OpenRA/OpenAL-CS/releases/download/20151227/${filename}";
  -          sha256 = "0lvyjkn7fqys97wym8rwlcp6ay2z059iabfvlcxhlrscjpyr2cyk";
  -        }; target = filename; })
  -
  -      ( let filename = "OpenAL-CS.dll.config"; in { origin = fetchurl {
  -          url = "https://github.com/OpenRA/OpenAL-CS/releases/download/20151227/${filename}";
  -          sha256 = "0wcmk3dw26s93598ck5jism5609v0y233i0f1b76yilyfimg9sjq";
  -        }; target = filename; })
  -
  -      ( let filename = "GeoLite2-Country.mmdb.gz"; in { origin = fetchurl {
  -          url = "http://geolite.maxmind.com/download/geoip/database/${filename}";
  -          sha256 = "0a82v0sj4zf5vigrn1pd6mnbqz6zl3rgk9nidqqzy836as2kxk9v";
  -        }; target = filename; })
  -    ];
  -  in ''
  -    mkdir thirdparty/download/
  -
  -    ${stdenv.lib.concatMapStringsSep "\n" (from: "cp -r ${from} thirdparty/download") dotnetPackagesDlls}
  -    ${stdenv.lib.concatMapStringsSep "\n" ({origin, target}: "cp ${origin} thirdparty/download/${target}") movePackages}
  -
  -    make dependencies
     '';
   
     buildFlags = [ "DEBUG=false" "default" "man-page" ];
  
positive.code: { stdenv, fetchurl, mono, makeWrapper, lua
  , SDL2, freetype, openal, systemd, pkgconfig,
    dotnetPackages, gnome3, curl, unzip
  }:
  
  let
    version = "20161019";
  in stdenv.mkDerivation rec {
    name = "openra-${version}";
  
    meta = with stdenv.lib; {
      description = "Real Time Strategy game engine recreating the C&C titles";
  
negative.code: 
    postInstall = with stdenv.lib; let
      runtime = makeLibraryPath [ SDL2 freetype openal systemd lua ];
      binaries= makeBinPath [ which mono gnome3.zenity ];
    in ''
      wrapProgram $out/lib/openra/launch-game.sh \
        --prefix PATH : "${binaries}" \
        --prefix LD_LIBRARY_PATH : "${runtime}"
  
      mkdir -p $out/bin
      makeWrapper $out/lib/openra/launch-game.sh $out/bin/openra --run "cd $out/lib/openra"
    '';
  }
  