{
  lib,
  stdenv,
  fetchFromGitHub,
  fetchsvn,
  pkg-config,
  scons,
  libGLU,
  libGL,
  SDL2,
  SDL2_image,
  libvorbis,
  bullet,
  curl,
  gettext,
  writeShellScriptBin,

  data ? fetchsvn {
    url = "svn://svn.code.sf.net/p/vdrift/code/vdrift-data";
    rev = "1446";
    sha256 = "sha256-KEu49GAOfenPyuaUItt6W9pkuqUNpXgmTSFuc7ThljQ=";
  },
}:
let
  version = "unstable-2021-09-05";
  bin = stdenv.mkDerivation {
    pname = "vdrift";
    inherit version;

    src = fetchFromGitHub {
      owner = "vdrift";
      repo = "vdrift";
      rev = "7e9e00c8612b2014d491f026dd86b03f9fb04dcd";
      sha256 = "sha256-DrzRF4WzwEXCNALq0jz8nHWZ1oYTEsdrvSYVYI1WkTI=";
    };

    nativeBuildInputs = [
      pkg-config
      scons
    ];
    buildInputs = [
      libGLU
      libGL
      SDL2
      SDL2_image
      libvorbis
      bullet
      curl
      gettext
    ];

    patches = [
      ./0001-Ignore-missing-data-for-installation.patch
    ];

    buildPhase = ''
      sed -i -e s,/usr/local,$out, SConstruct
      export CXXFLAGS="$(pkg-config --cflags SDL2_image)"
      scons -j$NIX_BUILD_CORES
    '';
    installPhase = "scons install";

    meta = {
      description = "Car racing game";
      mainProgram = "vdrift";
      homepage = "http://vdrift.net/";
      license = lib.licenses.gpl2Plus;
      maintainers = [ ];
      platforms = lib.platforms.linux;
    };
  };
  wrappedName = "vdrift-${version}-with-data-${toString data.rev}";
in
(writeShellScriptBin "vdrift" ''
  export VDRIFT_DATA_DIRECTORY="${data}"
  exec ${bin}/bin/vdrift "$@"
'').overrideAttrs
  (_: {
    name = wrappedName;
    meta = bin.meta // {
      hydraPlatforms = [ ];
    };
    unwrapped = bin;
    inherit bin data;
  })