about summary refs log tree commit diff
path: root/nixpkgs/pkgs/games
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/games')
-rw-r--r--nixpkgs/pkgs/games/0ad/data.nix25
-rw-r--r--nixpkgs/pkgs/games/0ad/default.nix14
-rw-r--r--nixpkgs/pkgs/games/0ad/game.nix102
-rw-r--r--nixpkgs/pkgs/games/0ad/rootdir_env.patch38
-rw-r--r--nixpkgs/pkgs/games/0ad/wrapper.nix21
-rw-r--r--nixpkgs/pkgs/games/2048-in-terminal/default.nix33
-rw-r--r--nixpkgs/pkgs/games/20kly/default.nix40
-rw-r--r--nixpkgs/pkgs/games/90secondportraits/default.nix59
-rw-r--r--nixpkgs/pkgs/games/adom/default.nix59
-rw-r--r--nixpkgs/pkgs/games/airstrike/default.nix37
-rw-r--r--nixpkgs/pkgs/games/alienarena/default.nix40
-rw-r--r--nixpkgs/pkgs/games/amoeba/data.nix24
-rw-r--r--nixpkgs/pkgs/games/amoeba/default.nix45
-rw-r--r--nixpkgs/pkgs/games/amoeba/include-string-h.patch12
-rw-r--r--nixpkgs/pkgs/games/andyetitmoves/default.nix75
-rw-r--r--nixpkgs/pkgs/games/angband/default.nix24
-rw-r--r--nixpkgs/pkgs/games/anki/default.nix192
-rw-r--r--nixpkgs/pkgs/games/anki/no-version-check.patch13
-rw-r--r--nixpkgs/pkgs/games/arena/default.nix74
-rw-r--r--nixpkgs/pkgs/games/armagetronad/default.nix29
-rw-r--r--nixpkgs/pkgs/games/arx-libertatis/default.nix60
-rw-r--r--nixpkgs/pkgs/games/asc/default.nix40
-rw-r--r--nixpkgs/pkgs/games/assaultcube/assaultcube-next.patch11
-rw-r--r--nixpkgs/pkgs/games/assaultcube/default.nix81
-rw-r--r--nixpkgs/pkgs/games/assaultcube/launcher.sh20
-rw-r--r--nixpkgs/pkgs/games/astromenace/default.nix36
-rw-r--r--nixpkgs/pkgs/games/atanks/default.nix22
-rw-r--r--nixpkgs/pkgs/games/ball-and-paddle/default.nix44
-rw-r--r--nixpkgs/pkgs/games/ball-and-paddle/getenv-decl.patch13
-rw-r--r--nixpkgs/pkgs/games/banner/default.nix24
-rw-r--r--nixpkgs/pkgs/games/bastet/default.nix37
-rw-r--r--nixpkgs/pkgs/games/beret/default.nix41
-rw-r--r--nixpkgs/pkgs/games/beret/use-home-dir.patch48
-rw-r--r--nixpkgs/pkgs/games/bitsnbots/default.nix36
-rw-r--r--nixpkgs/pkgs/games/blackshades/default.nix34
-rw-r--r--nixpkgs/pkgs/games/blobby/blobby.sh10
-rw-r--r--nixpkgs/pkgs/games/blobby/default.nix38
-rw-r--r--nixpkgs/pkgs/games/blobby/default.upstream8
-rw-r--r--nixpkgs/pkgs/games/boohu/default.nix32
-rw-r--r--nixpkgs/pkgs/games/braincurses/default.nix28
-rw-r--r--nixpkgs/pkgs/games/brogue/default.nix38
-rw-r--r--nixpkgs/pkgs/games/bsdgames/default.nix67
-rw-r--r--nixpkgs/pkgs/games/btanks/default.nix34
-rw-r--r--nixpkgs/pkgs/games/bzflag/default.nix26
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/common.nix97
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/default.nix52
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/git.nix44
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch20
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch20
-rw-r--r--nixpkgs/pkgs/games/chessdb/default.nix30
-rw-r--r--nixpkgs/pkgs/games/chessx/default.nix48
-rw-r--r--nixpkgs/pkgs/games/chocolate-doom/default.nix25
-rw-r--r--nixpkgs/pkgs/games/ckan/default.nix44
-rw-r--r--nixpkgs/pkgs/games/cockatrice/default.nix25
-rw-r--r--nixpkgs/pkgs/games/commandergenius/default.nix44
-rw-r--r--nixpkgs/pkgs/games/construo/default.nix26
-rw-r--r--nixpkgs/pkgs/games/crack-attack/crack-attack-1.1.14-gcc43.patch10
-rw-r--r--nixpkgs/pkgs/games/crack-attack/crack-attack-1.1.14-glut.patch10
-rw-r--r--nixpkgs/pkgs/games/crack-attack/default.nix31
-rw-r--r--nixpkgs/pkgs/games/crafty/default.nix73
-rw-r--r--nixpkgs/pkgs/games/crawl/crawl_purify.patch37
-rw-r--r--nixpkgs/pkgs/games/crawl/default.nix59
-rw-r--r--nixpkgs/pkgs/games/crispy-doom/default.nix25
-rw-r--r--nixpkgs/pkgs/games/crrcsim/default.nix27
-rw-r--r--nixpkgs/pkgs/games/crrcsim/gcc6.patch13
-rw-r--r--nixpkgs/pkgs/games/cutemaze/default.nix28
-rw-r--r--nixpkgs/pkgs/games/cuyo/default.nix21
-rw-r--r--nixpkgs/pkgs/games/dhewm3/default.nix38
-rw-r--r--nixpkgs/pkgs/games/duckmarines/default.nix59
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/default.nix116
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/df_permission40
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/dfhack/default.nix138
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/dfhack/fix-stonesense.patch23
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix30
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in26
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix50
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/game.json86
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/game.nix101
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/lazy-pack.nix46
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/legends-browser/default.nix36
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/soundsense.nix35
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/themes/default.nix19
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/themes/themes.json72
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix79
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/unfuck.nix84
-rwxr-xr-xnixpkgs/pkgs/games/dwarf-fortress/update.sh42
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/wrapper/default.nix116
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/wrapper/dfhack.in11
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in44
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in9
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/wrapper/soundSense.in10
-rw-r--r--nixpkgs/pkgs/games/dxx-rebirth/assets.nix55
-rw-r--r--nixpkgs/pkgs/games/dxx-rebirth/default.nix54
-rw-r--r--nixpkgs/pkgs/games/dxx-rebirth/full.nix30
-rw-r--r--nixpkgs/pkgs/games/easyrpg-player/default.nix52
-rw-r--r--nixpkgs/pkgs/games/eboard/default.nix33
-rw-r--r--nixpkgs/pkgs/games/eboard/eboard.patch16
-rw-r--r--nixpkgs/pkgs/games/eduke32/default.nix76
-rw-r--r--nixpkgs/pkgs/games/egoboo/default.nix61
-rw-r--r--nixpkgs/pkgs/games/empty-epsilon/default.nix66
-rw-r--r--nixpkgs/pkgs/games/endgame-singularity/default.nix56
-rw-r--r--nixpkgs/pkgs/games/endless-sky/default.nix40
-rw-r--r--nixpkgs/pkgs/games/endless-sky/fixes.patch45
-rw-r--r--nixpkgs/pkgs/games/enyo-doom/default.nix27
-rw-r--r--nixpkgs/pkgs/games/eternity-engine/default.nix32
-rw-r--r--nixpkgs/pkgs/games/extremetuxracer/default.nix39
-rw-r--r--nixpkgs/pkgs/games/exult/arch.patch123
-rw-r--r--nixpkgs/pkgs/games/exult/default.nix53
-rw-r--r--nixpkgs/pkgs/games/ezquake/default.nix40
-rw-r--r--nixpkgs/pkgs/games/factorio/default.nix233
-rw-r--r--nixpkgs/pkgs/games/factorio/mods.nix213
-rw-r--r--nixpkgs/pkgs/games/factorio/utils.nix49
-rw-r--r--nixpkgs/pkgs/games/fairymax/default.nix40
-rw-r--r--nixpkgs/pkgs/games/fish-fillets-ng/default.nix27
-rw-r--r--nixpkgs/pkgs/games/flightgear/default.nix81
-rw-r--r--nixpkgs/pkgs/games/freecell-solver/default.nix44
-rw-r--r--nixpkgs/pkgs/games/freeciv/default.nix56
-rw-r--r--nixpkgs/pkgs/games/freedink/default.nix59
-rw-r--r--nixpkgs/pkgs/games/freedroidrpg/default.nix63
-rw-r--r--nixpkgs/pkgs/games/freeorion/default.nix52
-rw-r--r--nixpkgs/pkgs/games/freeorion/fix-paths.sh6
-rw-r--r--nixpkgs/pkgs/games/freeorion/fix-paths.xslt13
-rw-r--r--nixpkgs/pkgs/games/freesweep/default.nix37
-rw-r--r--nixpkgs/pkgs/games/frogatto/data.nix26
-rw-r--r--nixpkgs/pkgs/games/frogatto/default.nix43
-rw-r--r--nixpkgs/pkgs/games/frogatto/engine.nix50
-rw-r--r--nixpkgs/pkgs/games/frotz/default.nix25
-rw-r--r--nixpkgs/pkgs/games/fsg/default.nix37
-rw-r--r--nixpkgs/pkgs/games/galaxis/default.nix47
-rw-r--r--nixpkgs/pkgs/games/gambatte/default.nix34
-rw-r--r--nixpkgs/pkgs/games/gambatte/fix-scons-paths.patch15
-rw-r--r--nixpkgs/pkgs/games/garden-of-coloured-lights/default.nix27
-rw-r--r--nixpkgs/pkgs/games/gargoyle/darwin.patch64
-rw-r--r--nixpkgs/pkgs/games/gargoyle/darwin.sh54
-rw-r--r--nixpkgs/pkgs/games/gargoyle/default.nix65
-rw-r--r--nixpkgs/pkgs/games/gav/default.nix26
-rw-r--r--nixpkgs/pkgs/games/gav/gcc.patch12
-rw-r--r--nixpkgs/pkgs/games/gcompris/default.nix37
-rw-r--r--nixpkgs/pkgs/games/gcs/default.nix76
-rw-r--r--nixpkgs/pkgs/games/gemrb/default.nix40
-rw-r--r--nixpkgs/pkgs/games/gl-117/default.nix23
-rw-r--r--nixpkgs/pkgs/games/globulation/default.nix55
-rw-r--r--nixpkgs/pkgs/games/globulation/header-order.patch23
-rw-r--r--nixpkgs/pkgs/games/globulation/public-buildproject.patch21
-rw-r--r--nixpkgs/pkgs/games/gltron/default.nix29
-rw-r--r--nixpkgs/pkgs/games/gltron/gentoo-prototypes.patch27
-rw-r--r--nixpkgs/pkgs/games/gmad/default.nix34
-rw-r--r--nixpkgs/pkgs/games/gnubg/default.nix24
-rw-r--r--nixpkgs/pkgs/games/gnuchess/default.nix28
-rw-r--r--nixpkgs/pkgs/games/gnuchess/default.upstream1
-rw-r--r--nixpkgs/pkgs/games/gnugo/default.nix20
-rw-r--r--nixpkgs/pkgs/games/gnujump/default.nix29
-rw-r--r--nixpkgs/pkgs/games/gnushogi/default.nix20
-rw-r--r--nixpkgs/pkgs/games/gogui/default.nix28
-rw-r--r--nixpkgs/pkgs/games/gshogi/default.nix37
-rw-r--r--nixpkgs/pkgs/games/gtetrinet/default.nix44
-rw-r--r--nixpkgs/pkgs/games/gtypist/default.nix27
-rw-r--r--nixpkgs/pkgs/games/gzdoom/default.nix49
-rw-r--r--nixpkgs/pkgs/games/hawkthorne/default.nix39
-rw-r--r--nixpkgs/pkgs/games/hawkthorne/makefile.patch33
-rw-r--r--nixpkgs/pkgs/games/hedgewars/default.nix78
-rw-r--r--nixpkgs/pkgs/games/hexen/default.nix18
-rw-r--r--nixpkgs/pkgs/games/holdingnuts/default.nix38
-rw-r--r--nixpkgs/pkgs/games/hyperrogue/default.nix28
-rw-r--r--nixpkgs/pkgs/games/icbm3d/default.nix23
-rw-r--r--nixpkgs/pkgs/games/instead-launcher/default.nix32
-rw-r--r--nixpkgs/pkgs/games/instead-launcher/path.patch39
-rw-r--r--nixpkgs/pkgs/games/instead/default.nix67
-rw-r--r--nixpkgs/pkgs/games/ivan/default.nix41
-rw-r--r--nixpkgs/pkgs/games/ja2-stracciatella/Cargo.lock291
-rw-r--r--nixpkgs/pkgs/games/ja2-stracciatella/default.nix50
-rw-r--r--nixpkgs/pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch21
-rw-r--r--nixpkgs/pkgs/games/keen4/builder.sh31
-rw-r--r--nixpkgs/pkgs/games/keen4/default.nix21
-rw-r--r--nixpkgs/pkgs/games/klavaro/default.nix30
-rw-r--r--nixpkgs/pkgs/games/kobodeluxe/default.nix24
-rw-r--r--nixpkgs/pkgs/games/kobodeluxe/glibc29.patch83
-rw-r--r--nixpkgs/pkgs/games/lbreakout2/default.nix21
-rw-r--r--nixpkgs/pkgs/games/leela-zero/default.nix29
-rw-r--r--nixpkgs/pkgs/games/lgogdownloader/default.nix25
-rw-r--r--nixpkgs/pkgs/games/liberal-crime-squad/default.nix29
-rw-r--r--nixpkgs/pkgs/games/lincity/default.nix33
-rw-r--r--nixpkgs/pkgs/games/lincity/ng.nix55
-rw-r--r--nixpkgs/pkgs/games/linux-steam-integration/default.nix80
-rw-r--r--nixpkgs/pkgs/games/liquidwar/5.nix22
-rw-r--r--nixpkgs/pkgs/games/liquidwar/default.nix46
-rw-r--r--nixpkgs/pkgs/games/ltris/default.nix22
-rw-r--r--nixpkgs/pkgs/games/ltris/gcc5_compliance.diff299
-rw-r--r--nixpkgs/pkgs/games/macopix/default.nix29
-rw-r--r--nixpkgs/pkgs/games/mar1d/default.nix70
-rw-r--r--nixpkgs/pkgs/games/mars/default.nix37
-rw-r--r--nixpkgs/pkgs/games/mars/fix-gluortho2d.patch113
-rw-r--r--nixpkgs/pkgs/games/mars/unbind_fix.patch19
-rw-r--r--nixpkgs/pkgs/games/megaglest/default.nix57
-rw-r--r--nixpkgs/pkgs/games/meritous/default.nix40
-rw-r--r--nixpkgs/pkgs/games/minecraft-server/default.nix63
-rw-r--r--nixpkgs/pkgs/games/minecraft/default.nix51
-rw-r--r--nixpkgs/pkgs/games/minetest/default.nix86
-rw-r--r--nixpkgs/pkgs/games/mnemosyne/default.nix66
-rw-r--r--nixpkgs/pkgs/games/moon-buggy/default.nix24
-rw-r--r--nixpkgs/pkgs/games/mrrescue/default.nix59
-rw-r--r--nixpkgs/pkgs/games/mudlet/default.nix46
-rw-r--r--nixpkgs/pkgs/games/mudlet/libs.patch13
-rw-r--r--nixpkgs/pkgs/games/multimc/default.nix43
-rw-r--r--nixpkgs/pkgs/games/n2048/default.nix35
-rw-r--r--nixpkgs/pkgs/games/naev/default.nix42
-rw-r--r--nixpkgs/pkgs/games/nethack/default.nix151
-rw-r--r--nixpkgs/pkgs/games/neverball/default.nix41
-rw-r--r--nixpkgs/pkgs/games/newtonwars/default.nix38
-rw-r--r--nixpkgs/pkgs/games/nexuiz/default.nix76
-rw-r--r--nixpkgs/pkgs/games/njam/default.nix27
-rw-r--r--nixpkgs/pkgs/games/njam/logfile.patch22
-rw-r--r--nixpkgs/pkgs/games/odamex/default.nix23
-rw-r--r--nixpkgs/pkgs/games/oilrush/default.nix78
-rw-r--r--nixpkgs/pkgs/games/onscripter-en/default.nix34
-rw-r--r--nixpkgs/pkgs/games/openarena/default.nix42
-rw-r--r--nixpkgs/pkgs/games/openclonk/default.nix47
-rw-r--r--nixpkgs/pkgs/games/opendune/default.nix32
-rw-r--r--nixpkgs/pkgs/games/opendungeons/cmakepaths.patch17
-rw-r--r--nixpkgs/pkgs/games/opendungeons/default.nix28
-rw-r--r--nixpkgs/pkgs/games/openjk/default.nix63
-rw-r--r--nixpkgs/pkgs/games/openlierox/default.nix40
-rw-r--r--nixpkgs/pkgs/games/openmw/default.nix40
-rw-r--r--nixpkgs/pkgs/games/openmw/tes3mp.nix102
-rw-r--r--nixpkgs/pkgs/games/openra/common.nix87
-rw-r--r--nixpkgs/pkgs/games/openra/default.nix72
-rw-r--r--nixpkgs/pkgs/games/openra/engine.nix60
-rw-r--r--nixpkgs/pkgs/games/openra/engines.nix41
-rw-r--r--nixpkgs/pkgs/games/openra/mkdirp.sh4
-rw-r--r--nixpkgs/pkgs/games/openra/mod-launch-game.sh25
-rwxr-xr-xnixpkgs/pkgs/games/openra/mod-update.sh151
-rw-r--r--nixpkgs/pkgs/games/openra/mod.nix105
-rw-r--r--nixpkgs/pkgs/games/openra/mods.nix344
-rw-r--r--nixpkgs/pkgs/games/openra/openra-mod.desktop11
-rw-r--r--nixpkgs/pkgs/games/openra/packages.nix60
-rw-r--r--nixpkgs/pkgs/games/openrct2/default.nix77
-rw-r--r--nixpkgs/pkgs/games/openrw/default.nix30
-rw-r--r--nixpkgs/pkgs/games/openspades/default.nix59
-rw-r--r--nixpkgs/pkgs/games/openttd/default.nix94
-rw-r--r--nixpkgs/pkgs/games/opentyrian/default.nix36
-rw-r--r--nixpkgs/pkgs/games/openxcom/default.nix26
-rw-r--r--nixpkgs/pkgs/games/orthorobot/default.nix57
-rw-r--r--nixpkgs/pkgs/games/pacvim/default.nix23
-rw-r--r--nixpkgs/pkgs/games/performous/default.nix30
-rw-r--r--nixpkgs/pkgs/games/pingus/default.nix36
-rw-r--r--nixpkgs/pkgs/games/pingus/default.upstream1
-rw-r--r--nixpkgs/pkgs/games/pioneer/default.nix39
-rw-r--r--nixpkgs/pkgs/games/pioneers/default.nix20
-rw-r--r--nixpkgs/pkgs/games/planetaryannihilation/default.nix53
-rw-r--r--nixpkgs/pkgs/games/pokerth/default.nix74
-rw-r--r--nixpkgs/pkgs/games/pong3d/default.nix23
-rw-r--r--nixpkgs/pkgs/games/prboom/default.nix31
-rw-r--r--nixpkgs/pkgs/games/privateer/0001-fix-VSFile-constructor.patch25
-rw-r--r--nixpkgs/pkgs/games/privateer/default.nix43
-rw-r--r--nixpkgs/pkgs/games/pro-office-calculator/default.nix24
-rw-r--r--nixpkgs/pkgs/games/pysolfc/default.nix39
-rw-r--r--nixpkgs/pkgs/games/pysolfc/pysolfc-datadir.patch19
-rw-r--r--nixpkgs/pkgs/games/qgo/default.nix48
-rw-r--r--nixpkgs/pkgs/games/qgo/fix-paths.patch50
-rw-r--r--nixpkgs/pkgs/games/qqwing/default.nix35
-rw-r--r--nixpkgs/pkgs/games/quake2/yquake2/default.nix93
-rw-r--r--nixpkgs/pkgs/games/quake2/yquake2/games.nix59
-rw-r--r--nixpkgs/pkgs/games/quake2/yquake2/wrapper.nix31
-rw-r--r--nixpkgs/pkgs/games/quake3/content/demo.nix28
-rw-r--r--nixpkgs/pkgs/games/quake3/content/pointrelease.nix28
-rw-r--r--nixpkgs/pkgs/games/quake3/ioquake/default.nix41
-rw-r--r--nixpkgs/pkgs/games/quake3/wrapper/default.nix34
-rw-r--r--nixpkgs/pkgs/games/quakespasm/default.nix42
-rw-r--r--nixpkgs/pkgs/games/quakespasm/vulkan.nix54
-rw-r--r--nixpkgs/pkgs/games/quantumminigolf/default.nix40
-rw-r--r--nixpkgs/pkgs/games/quantumminigolf/default.upstream4
-rw-r--r--nixpkgs/pkgs/games/racer/default.nix31
-rw-r--r--nixpkgs/pkgs/games/racer/mkdir.patch13
-rw-r--r--nixpkgs/pkgs/games/residualvm/default.nix31
-rw-r--r--nixpkgs/pkgs/games/rftg/default.nix23
-rw-r--r--nixpkgs/pkgs/games/rigsofrods/default.nix41
-rw-r--r--nixpkgs/pkgs/games/rili/default.nix30
-rw-r--r--nixpkgs/pkgs/games/rili/moderinze_cpp.patch391
-rw-r--r--nixpkgs/pkgs/games/rimshot/default.nix62
-rw-r--r--nixpkgs/pkgs/games/robotfindskitten/default.nix30
-rw-r--r--nixpkgs/pkgs/games/rocksndiamonds/default.nix49
-rw-r--r--nixpkgs/pkgs/games/rogue/default.nix27
-rw-r--r--nixpkgs/pkgs/games/rrootage/default.nix80
-rw-r--r--nixpkgs/pkgs/games/runelite/default.nix53
-rw-r--r--nixpkgs/pkgs/games/sauerbraten/default.nix56
-rw-r--r--nixpkgs/pkgs/games/scid-vs-pc/0001-put-fonts-in-out.patch77
-rw-r--r--nixpkgs/pkgs/games/scid-vs-pc/default.nix82
-rw-r--r--nixpkgs/pkgs/games/scid/default.nix57
-rw-r--r--nixpkgs/pkgs/games/scorched3d/default.nix40
-rw-r--r--nixpkgs/pkgs/games/scorched3d/file-existence.patch37
-rw-r--r--nixpkgs/pkgs/games/scrolls/default.nix45
-rw-r--r--nixpkgs/pkgs/games/scummvm/default.nix40
-rw-r--r--nixpkgs/pkgs/games/scummvm/games.nix125
-rw-r--r--nixpkgs/pkgs/games/sdlmame/default.nix42
-rw-r--r--nixpkgs/pkgs/games/sgt-puzzles/default.nix46
-rw-r--r--nixpkgs/pkgs/games/sgt-puzzles/default.upstream5
-rw-r--r--nixpkgs/pkgs/games/sienna/default.nix59
-rw-r--r--nixpkgs/pkgs/games/sil/default.nix63
-rw-r--r--nixpkgs/pkgs/games/simutrans/default.nix169
-rw-r--r--nixpkgs/pkgs/games/snake4/default.nix29
-rw-r--r--nixpkgs/pkgs/games/snipes/default.nix45
-rw-r--r--nixpkgs/pkgs/games/soi/default.nix28
-rw-r--r--nixpkgs/pkgs/games/solarus/default.nix36
-rw-r--r--nixpkgs/pkgs/games/space-orbit/default.nix45
-rw-r--r--nixpkgs/pkgs/games/speed-dreams/default.nix75
-rw-r--r--nixpkgs/pkgs/games/spring/default.nix54
-rw-r--r--nixpkgs/pkgs/games/spring/fix-certs.patch11
-rw-r--r--nixpkgs/pkgs/games/spring/revert_58b423e.patch16
-rw-r--r--nixpkgs/pkgs/games/spring/springlobby.nix38
-rw-r--r--nixpkgs/pkgs/games/stardust/default.nix33
-rw-r--r--nixpkgs/pkgs/games/steam/build-runtime.py98
-rw-r--r--nixpkgs/pkgs/games/steam/build-wrapped.sh47
-rw-r--r--nixpkgs/pkgs/games/steam/chrootenv.nix241
-rw-r--r--nixpkgs/pkgs/games/steam/default.nix25
-rw-r--r--nixpkgs/pkgs/games/steam/fonts.nix19
-rw-r--r--nixpkgs/pkgs/games/steam/runtime-generated.nix3627
-rw-r--r--nixpkgs/pkgs/games/steam/runtime-mirror.nix20
-rw-r--r--nixpkgs/pkgs/games/steam/runtime-wrapped.nix45
-rw-r--r--nixpkgs/pkgs/games/steam/runtime.nix23
-rw-r--r--nixpkgs/pkgs/games/steam/steam.nix38
-rw-r--r--nixpkgs/pkgs/games/steam/steamcmd.nix46
-rw-r--r--nixpkgs/pkgs/games/steam/steamcmd.sh24
-rw-r--r--nixpkgs/pkgs/games/steam/update-runtime-shell.nix13
-rwxr-xr-xnixpkgs/pkgs/games/steam/update-runtime.py139
-rw-r--r--nixpkgs/pkgs/games/stepmania/default.nix44
-rw-r--r--nixpkgs/pkgs/games/stockfish/default.nix37
-rw-r--r--nixpkgs/pkgs/games/stuntrally/default.nix47
-rw-r--r--nixpkgs/pkgs/games/stuntrally/gcc6.patch67
-rw-r--r--nixpkgs/pkgs/games/super-tux-kart/default.nix66
-rw-r--r--nixpkgs/pkgs/games/supertux/default.nix35
-rw-r--r--nixpkgs/pkgs/games/t4kcommon/default.nix32
-rw-r--r--nixpkgs/pkgs/games/tcl2048/default.nix34
-rw-r--r--nixpkgs/pkgs/games/teetertorture/default.nix32
-rw-r--r--nixpkgs/pkgs/games/teeworlds/default.nix62
-rw-r--r--nixpkgs/pkgs/games/tennix/default.nix26
-rw-r--r--nixpkgs/pkgs/games/tennix/fix_FTBFS.patch288
-rw-r--r--nixpkgs/pkgs/games/terraria-server/default.nix36
-rw-r--r--nixpkgs/pkgs/games/the-butterfly-effect/default.nix35
-rw-r--r--nixpkgs/pkgs/games/the-powder-toy/default.nix33
-rw-r--r--nixpkgs/pkgs/games/the-powder-toy/fix-env.patch11
-rw-r--r--nixpkgs/pkgs/games/tibia/default.nix57
-rw-r--r--nixpkgs/pkgs/games/tintin/default.nix24
-rw-r--r--nixpkgs/pkgs/games/tinyfugue/default.nix37
-rw-r--r--nixpkgs/pkgs/games/tome4/default.nix79
-rw-r--r--nixpkgs/pkgs/games/torcs/default.nix45
-rw-r--r--nixpkgs/pkgs/games/trackballs/default.nix24
-rw-r--r--nixpkgs/pkgs/games/tremulous/default.nix81
-rw-r--r--nixpkgs/pkgs/games/tremulous/parse.patch21
-rw-r--r--nixpkgs/pkgs/games/trigger/default.nix40
-rw-r--r--nixpkgs/pkgs/games/trigger/search.patch14
-rw-r--r--nixpkgs/pkgs/games/tuxpaint/default.nix46
-rw-r--r--nixpkgs/pkgs/games/tuxpaint/tuxpaint-completion.diff16
-rw-r--r--nixpkgs/pkgs/games/tuxtype/default.nix43
-rw-r--r--nixpkgs/pkgs/games/typespeed/default.nix23
-rw-r--r--nixpkgs/pkgs/games/typespeed/typespeed-config-in-home.patch148
-rw-r--r--nixpkgs/pkgs/games/ue4/cdn-deps.nix7028
-rw-r--r--nixpkgs/pkgs/games/ue4/default.nix83
-rw-r--r--nixpkgs/pkgs/games/ue4/generate-expr-from-cdn.sh37
-rw-r--r--nixpkgs/pkgs/games/ue4demos/default.nix195
-rw-r--r--nixpkgs/pkgs/games/ufoai/default.nix36
-rw-r--r--nixpkgs/pkgs/games/ultimatestunts/default.nix25
-rw-r--r--nixpkgs/pkgs/games/ultrastardx/default.nix47
-rw-r--r--nixpkgs/pkgs/games/unnethack/default.nix55
-rw-r--r--nixpkgs/pkgs/games/uqm/3dovideo.nix61
-rw-r--r--nixpkgs/pkgs/games/uqm/default.nix107
-rw-r--r--nixpkgs/pkgs/games/urbanterror/default.nix74
-rw-r--r--nixpkgs/pkgs/games/ut2004/default.nix9
-rw-r--r--nixpkgs/pkgs/games/ut2004/demo.nix40
-rw-r--r--nixpkgs/pkgs/games/ut2004/wrapper.nix46
-rw-r--r--nixpkgs/pkgs/games/vapor/default.nix61
-rw-r--r--nixpkgs/pkgs/games/vassal/default.nix35
-rw-r--r--nixpkgs/pkgs/games/vdrift/0001-Ignore-missing-data-for-installation.patch27
-rw-r--r--nixpkgs/pkgs/games/vdrift/default.nix60
-rw-r--r--nixpkgs/pkgs/games/vectoroids/default.nix23
-rw-r--r--nixpkgs/pkgs/games/vessel/default.nix83
-rw-r--r--nixpkgs/pkgs/games/vessel/isatty.c6
-rw-r--r--nixpkgs/pkgs/games/vitetris/default.nix32
-rw-r--r--nixpkgs/pkgs/games/vms-empire/default.nix42
-rw-r--r--nixpkgs/pkgs/games/voxelands/default.nix31
-rw-r--r--nixpkgs/pkgs/games/warmux/default.nix37
-rw-r--r--nixpkgs/pkgs/games/warsow/default.nix38
-rw-r--r--nixpkgs/pkgs/games/warsow/engine.nix52
-rw-r--r--nixpkgs/pkgs/games/warsow/libpath.patch28
-rw-r--r--nixpkgs/pkgs/games/warzone2100/default.nix59
-rw-r--r--nixpkgs/pkgs/games/wesnoth/default.nix43
-rw-r--r--nixpkgs/pkgs/games/widelands/bincmake.patch21
-rw-r--r--nixpkgs/pkgs/games/widelands/default.nix58
-rw-r--r--nixpkgs/pkgs/games/worldofgoo/default.nix83
-rw-r--r--nixpkgs/pkgs/games/xboard/default.nix35
-rw-r--r--nixpkgs/pkgs/games/xboard/default.upstream1
-rw-r--r--nixpkgs/pkgs/games/xbomb/default.nix23
-rw-r--r--nixpkgs/pkgs/games/xconq/default.nix54
-rw-r--r--nixpkgs/pkgs/games/xjump/darwin.patch21
-rw-r--r--nixpkgs/pkgs/games/xjump/default.nix27
-rw-r--r--nixpkgs/pkgs/games/xmoto/default.nix29
-rw-r--r--nixpkgs/pkgs/games/xonotic/default.nix88
-rw-r--r--nixpkgs/pkgs/games/xpilot/bloodspilot-client.nix25
-rw-r--r--nixpkgs/pkgs/games/xpilot/bloodspilot-server.nix27
-rw-r--r--nixpkgs/pkgs/games/xpilot/default.nix20
-rw-r--r--nixpkgs/pkgs/games/xpilot/server-gcc5.patch65
-rw-r--r--nixpkgs/pkgs/games/xskat/default.nix38
-rw-r--r--nixpkgs/pkgs/games/xsnow/default.nix26
-rw-r--r--nixpkgs/pkgs/games/xsok/default.nix48
-rw-r--r--nixpkgs/pkgs/games/xsokoban/default.nix54
-rw-r--r--nixpkgs/pkgs/games/zandronum/add_gitinfo.patch15
-rw-r--r--nixpkgs/pkgs/games/zandronum/default.nix83
-rw-r--r--nixpkgs/pkgs/games/zandronum/dont_update_gitinfo.patch19
-rw-r--r--nixpkgs/pkgs/games/zandronum/fmod.nix45
-rw-r--r--nixpkgs/pkgs/games/zandronum/sqlite.nix26
-rw-r--r--nixpkgs/pkgs/games/zandronum/zan_configure_impurity.patch65
-rw-r--r--nixpkgs/pkgs/games/zangband/default.nix59
-rw-r--r--nixpkgs/pkgs/games/zdoom/bcc-git.nix31
-rw-r--r--nixpkgs/pkgs/games/zdoom/bcc-warning-fix.patch25
-rw-r--r--nixpkgs/pkgs/games/zdoom/default.nix57
-rw-r--r--nixpkgs/pkgs/games/zdoom/zdbsp.nix27
-rw-r--r--nixpkgs/pkgs/games/zod/default.nix45
-rw-r--r--nixpkgs/pkgs/games/zoom/default.nix35
417 files changed, 30796 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/0ad/data.nix b/nixpkgs/pkgs/games/0ad/data.nix
new file mode 100644
index 000000000000..2cfddd1066ba
--- /dev/null
+++ b/nixpkgs/pkgs/games/0ad/data.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, zeroad-unwrapped }:
+
+stdenv.mkDerivation rec {
+  name = "0ad-data-${version}";
+  inherit (zeroad-unwrapped) version;
+
+  src = fetchurl {
+    url = "http://releases.wildfiregames.com/0ad-${version}-alpha-unix-data.tar.xz";
+    sha256 = "04x7729hk6zw1xj3n4s4lvaviijsnbjf5rhzvjxlr5fygvg4l6z1";
+  };
+
+  installPhase = ''
+    rm binaries/data/tools/fontbuilder/fonts/*.txt
+    mkdir -p $out/share/0ad
+    cp -r binaries/data $out/share/0ad/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A free, open-source game of ancient warfare -- data files";
+    homepage = "https://play0ad.com/";
+    license = licenses.cc-by-sa-30;
+    platforms = platforms.linux;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/games/0ad/default.nix b/nixpkgs/pkgs/games/0ad/default.nix
new file mode 100644
index 000000000000..d53942766bb2
--- /dev/null
+++ b/nixpkgs/pkgs/games/0ad/default.nix
@@ -0,0 +1,14 @@
+{ wxGTK, newScope }:
+
+let
+  callPackage = newScope self;
+
+  self = {
+    zeroad-unwrapped = callPackage ./game.nix { inherit wxGTK; };
+
+    zeroad-data = callPackage ./data.nix { };
+
+    zeroad = callPackage ./wrapper.nix { };
+  };
+
+in self
diff --git a/nixpkgs/pkgs/games/0ad/game.nix b/nixpkgs/pkgs/games/0ad/game.nix
new file mode 100644
index 000000000000..74bc52875d22
--- /dev/null
+++ b/nixpkgs/pkgs/games/0ad/game.nix
@@ -0,0 +1,102 @@
+{ stdenv, lib, perl, fetchurl, python2
+, pkgconfig, spidermonkey_38, boost, icu, libxml2, libpng, libsodium
+, libjpeg, zlib, curl, libogg, libvorbis, enet, miniupnpc
+, openal, libGLU_combined, xorgproto, libX11, libXcursor, nspr, SDL2
+, gloox, nvidia-texture-tools
+, withEditor ? true, wxGTK ? null
+}:
+
+assert withEditor -> wxGTK != null;
+
+stdenv.mkDerivation rec {
+  name = "0ad-${version}";
+  version = "0.0.23b";
+
+  src = fetchurl {
+    url = "http://releases.wildfiregames.com/0ad-${version}-alpha-unix-build.tar.xz";
+    sha256 = "0draa53xg69i5qhqym85658m45xhwkbiimaldj4sr3703rjgggq1";
+  };
+
+  nativeBuildInputs = [ python2 perl pkgconfig ];
+
+  buildInputs = [
+    spidermonkey_38 boost icu libxml2 libpng libjpeg
+    zlib curl libogg libvorbis enet miniupnpc openal
+    libGLU_combined xorgproto libX11 libXcursor nspr SDL2 gloox
+    nvidia-texture-tools libsodium
+  ] ++ lib.optional withEditor wxGTK;
+
+  NIX_CFLAGS_COMPILE = [
+    "-I${xorgproto}/include/X11"
+    "-I${libX11.dev}/include/X11"
+    "-I${libXcursor.dev}/include/X11"
+    "-I${SDL2}/include/SDL2"
+  ];
+
+  patches = [
+    ./rootdir_env.patch
+    # Fixes build with spidermonkey-38.8.0, includes the minor version check:
+    # https://src.fedoraproject.org/rpms/0ad/c/26dc1657f6e3c0ad9f1180ca38cd79b933ef0c8b
+    (fetchurl {
+      url = https://src.fedoraproject.org/rpms/0ad/raw/26dc1657f6e3c0ad9f1180ca38cd79b933ef0c8b/f/0ad-mozjs-incompatible.patch;
+      sha256 = "1rzpaalcrzihsgvlk3nqd87n2kxjldlwvb3qp5fcd5ffzr6k90wa";
+    })
+  ];
+
+  configurePhase = ''
+    # Delete shipped libraries which we don't need.
+    rm -rf libraries/source/{enet,miniupnpc,nvtt,spidermonkey}
+
+    # Workaround invalid pkgconfig name for mozjs
+    mkdir pkgconfig
+    ln -s ${spidermonkey_38}/lib/pkgconfig/* pkgconfig/mozjs-38.pc
+    PKG_CONFIG_PATH="$PWD/pkgconfig:$PKG_CONFIG_PATH"
+
+    # Update Makefiles
+    pushd build/workspaces
+    ./update-workspaces.sh \
+      --with-system-nvtt \
+      --with-system-mozjs38 \
+      ${lib.optionalString withEditor "--enable-atlas"} \
+      --bindir="$out"/bin \
+      --libdir="$out"/lib/0ad \
+      --without-tests \
+      -j $NIX_BUILD_CORES
+    popd
+
+    # Move to the build directory.
+    pushd build/workspaces/gcc
+  '';
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    popd
+
+    # Copy executables.
+    install -Dm755 binaries/system/pyrogenesis "$out"/bin/0ad
+    ${lib.optionalString withEditor ''
+      install -Dm755 binaries/system/ActorEditor "$out"/bin/ActorEditor
+    ''}
+
+    # Copy l10n data.
+    install -Dm755 -t $out/share/0ad/data/l10n binaries/data/l10n/*
+
+    # Copy libraries.
+    install -Dm644 -t $out/lib/0ad        binaries/system/*.so
+
+    # Copy icon.
+    install -D build/resources/0ad.png     $out/share/icons/hicolor/128x128/0ad.png
+    install -D build/resources/0ad.desktop $out/share/applications/0ad.desktop
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A free, open-source game of ancient warfare";
+    homepage = "https://play0ad.com/";
+    license = with licenses; [
+      gpl2 lgpl21 mit cc-by-sa-30
+      licenses.zlib # otherwise masked by pkgs.zlib
+    ];
+    platforms = subtractLists platforms.i686 platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/0ad/rootdir_env.patch b/nixpkgs/pkgs/games/0ad/rootdir_env.patch
new file mode 100644
index 000000000000..c001473e5104
--- /dev/null
+++ b/nixpkgs/pkgs/games/0ad/rootdir_env.patch
@@ -0,0 +1,38 @@
+diff -ru3 0ad-0.0.20-alpha/source/ps/GameSetup/Paths.cpp 0ad-0.0.20-alpha-new/source/ps/GameSetup/Paths.cpp
+--- 0ad-0.0.20-alpha/source/ps/GameSetup/Paths.cpp	2015-02-14 04:45:13.000000000 +0300
++++ 0ad-0.0.20-alpha-new/source/ps/GameSetup/Paths.cpp	2016-11-03 16:23:47.241514876 +0300
+@@ -155,32 +155,8 @@
+ 
+ /*static*/ OsPath Paths::Root(const OsPath& argv0)
+ {
+-#if OS_ANDROID
+-	return OsPath("/sdcard/0ad"); // TODO: this is kind of bogus
+-#else
+-
+-	// get full path to executable
+-	OsPath pathname = sys_ExecutablePathname();	// safe, but requires OS-specific implementation
+-	if(pathname.empty())	// failed, use argv[0] instead
+-	{
+-		errno = 0;
+-		pathname = wrealpath(argv0);
+-		if(pathname.empty())
+-			WARN_IF_ERR(StatusFromErrno());
+-	}
+-
+-	// make sure it's valid
+-	if(!FileExists(pathname))
+-	{
+-		LOGERROR("Cannot find executable (expected at '%s')", pathname.string8());
+-		WARN_IF_ERR(StatusFromErrno());
+-	}
+-
+-	for(size_t i = 0; i < 2; i++)	// remove "system/name.exe"
+-		pathname = pathname.Parent();
+-	return pathname;
+-
+-#endif
++	UNUSED2(argv0);
++	return getenv("ZEROAD_ROOTDIR");
+ }
+ 
+ /*static*/ OsPath Paths::RootData(const OsPath& argv0)
diff --git a/nixpkgs/pkgs/games/0ad/wrapper.nix b/nixpkgs/pkgs/games/0ad/wrapper.nix
new file mode 100644
index 000000000000..ca7c8e16e3c5
--- /dev/null
+++ b/nixpkgs/pkgs/games/0ad/wrapper.nix
@@ -0,0 +1,21 @@
+{ buildEnv, makeWrapper, zeroad-unwrapped, zeroad-data }:
+
+assert zeroad-unwrapped.version == zeroad-data.version;
+
+buildEnv {
+  name = "zeroad-${zeroad-unwrapped.version}";
+  inherit (zeroad-unwrapped) meta;
+
+  buildInputs = [ makeWrapper ];
+
+  paths = [ zeroad-unwrapped zeroad-data ];
+
+  pathsToLink = [ "/" "/bin" ];
+
+  postBuild = ''
+    for i in $out/bin/*; do
+      wrapProgram "$i" \
+        --set ZEROAD_ROOTDIR "$out/share/0ad"
+    done
+  '';
+}
diff --git a/nixpkgs/pkgs/games/2048-in-terminal/default.nix b/nixpkgs/pkgs/games/2048-in-terminal/default.nix
new file mode 100644
index 000000000000..5d91bc04114b
--- /dev/null
+++ b/nixpkgs/pkgs/games/2048-in-terminal/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "2048-in-terminal-${version}";
+  version = "2017-11-29";
+
+  src = fetchFromGitHub {
+    sha256 = "1cqv5z1i5zcrvj0w6pdfnnff8m6kjndqxwkwsw5ma9jz503bmyc6";
+    rev = "4e525066b0ef3442e92d2ba8dd373bdc205ece28";
+    repo = "2048-in-terminal";
+    owner = "alewmoose";
+  };
+
+  buildInputs = [ ncurses ];
+
+  prePatch = ''
+    sed -i '1i#include <fcntl.h>\n' save.c
+  '';
+
+  enableParallelBuilding = true;
+
+  preInstall = ''
+    mkdir -p $out/bin
+  '';
+  installFlags = [ "DESTDIR=$(out)/bin" ];
+
+  meta = with stdenv.lib; {
+    inherit (src.meta) homepage;
+    description = "Animated console version of the 2048 game";
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/20kly/default.nix b/nixpkgs/pkgs/games/20kly/default.nix
new file mode 100644
index 000000000000..37cb96f2cfdb
--- /dev/null
+++ b/nixpkgs/pkgs/games/20kly/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchurl
+, python }:
+
+python.pkgs.buildPythonApplication rec {
+  pname = "20kly";
+  version = "1.4";
+  format = "other";
+  disabled = !(python.isPy2 or false);
+
+  src = fetchurl {
+    url = "http://jwhitham.org.uk/20kly/lightyears-${version}.tar.bz2";
+    sha256 = "13h73cmfjqkipffimfc4iv0hf89if490ng6vd6xf3wcalpgaim5d";
+  };
+
+  patchPhase = ''
+    substituteInPlace lightyears \
+      --replace \
+        "LIGHTYEARS_DIR = \".\"" \
+        "LIGHTYEARS_DIR = \"$out/share\""
+  '';
+
+  propagatedBuildInputs = with python.pkgs; [ pygame ];
+
+  buildPhase = "python -O -m compileall .";
+
+  installPhase = ''
+    mkdir -p "$out/share"
+    cp -r audio code data lightyears "$out/share"
+    install -Dm755 lightyears "$out/bin/lightyears"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A steampunk-themed strategy game where you have to manage a steam supply network";
+    homepage = http://jwhitham.org.uk/20kly/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ fgaz ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/games/90secondportraits/default.nix b/nixpkgs/pkgs/games/90secondportraits/default.nix
new file mode 100644
index 000000000000..f2be128fd998
--- /dev/null
+++ b/nixpkgs/pkgs/games/90secondportraits/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }:
+
+let
+  pname = "90secondportraits";
+  version = "1.01b";
+
+  icon = fetchurl {
+    url = "http://tangramgames.dk/img/thumb/90secondportraits.png";
+    sha256 = "13k6cq8s7jw77j81xfa5ri41445m778q6iqbfplhwdpja03c6faw";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "90secondportraits";
+    exec = "${pname}";
+    icon = "${icon}";
+    comment = "A silly speed painting game";
+    desktopName = "90 Second Portraits";
+    genericName = "90secondportraits";
+    categories = "Game;";
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/SimonLarsen/90-Second-Portraits/releases/download/${version}/${pname}-${version}.love";
+    sha256 = "0jj3k953r6vb02212gqcgqpb4ima87gnqgls43jmylxq2mcm33h5";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ lua love ];
+
+  phases = "installPhase";
+
+  installPhase =
+  ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/games/lovegames
+
+    cp -v $src $out/share/games/lovegames/${pname}.love
+
+    makeWrapper ${love}/bin/love $out/bin/${pname} --add-flags $out/share/games/lovegames/${pname}.love
+
+    chmod +x $out/bin/${pname}
+    mkdir -p $out/share/applications
+    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A silly speed painting game";
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.linux;
+    license = licenses.free;
+    downloadPage = http://tangramgames.dk/games/90secondportraits;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/adom/default.nix b/nixpkgs/pkgs/games/adom/default.nix
new file mode 100644
index 000000000000..9766e58c15ae
--- /dev/null
+++ b/nixpkgs/pkgs/games/adom/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, patchelf, zlib, libmad, libpng12, libcaca, libGLU_combined, alsaLib, libpulseaudio
+, xorg }:
+
+let
+
+  inherit (xorg) libXext libX11;
+
+  lpath = "${stdenv.cc.cc.lib}/lib64:" + stdenv.lib.makeLibraryPath [
+      zlib libmad libpng12 libcaca libXext libX11 libGLU_combined alsaLib libpulseaudio];
+
+in
+stdenv.mkDerivation rec {
+  name = "adom-${version}-noteye";
+  version = "1.2.0_pre23";
+
+  src = fetchurl {
+    url = "http://ancardia.uk.to/download/adom_noteye_linux_ubuntu_64_${version}.tar.gz";
+    sha256 = "0sbn0csaqb9cqi0z5fdwvnymkf84g64csg0s9mm6fzh0sm2mi0hz";
+  };
+
+  buildCommand = ''
+    . $stdenv/setup
+
+    unpackPhase
+
+    mkdir -pv $out
+    cp -r -t $out adom/*
+
+    chmod u+w $out/lib
+    for l in $out/lib/*so* ; do
+      chmod u+w $l
+      ${patchelf}/bin/patchelf \
+        --set-rpath "$out/lib:${lpath}" \
+        $l
+    done
+
+    ${patchelf}/bin/patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "$out/lib:${lpath}" \
+      $out/adom
+
+    mkdir $out/bin
+    cat >$out/bin/adom <<EOF
+    #! ${stdenv.shell}
+    (cd $out; exec $out/adom ; )
+    EOF
+    chmod +x $out/bin/adom
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A rogue-like game with nice graphical interface";
+    homepage = http://adom.de/;
+    license = licenses.unfreeRedistributable;
+    maintainers = [maintainers.smironov];
+
+    # Please, notify me (smironov) if you need the x86 version
+    platforms = ["x86_64-linux"];
+  };
+}
diff --git a/nixpkgs/pkgs/games/airstrike/default.nix b/nixpkgs/pkgs/games/airstrike/default.nix
new file mode 100644
index 000000000000..02ea6f688069
--- /dev/null
+++ b/nixpkgs/pkgs/games/airstrike/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, makeWrapper, SDL, SDL_image }:
+
+stdenv.mkDerivation rec {
+  name = "airstrike-pre-${version}";
+  version = "6a";
+
+  src = fetchurl {
+    url = "https://icculus.org/airstrike/airstrike-pre${version}-src.tar.gz";
+    sha256 = "1h6rv2zcp84ycmd0kv1pbpqjgwx57dw42x7878d2c2vnpi5jn8qi";
+  };
+
+  buildInputs = [ makeWrapper SDL SDL_image ];
+
+  NIX_LDFLAGS = [
+    "-lm"
+  ];
+
+  installPhase = ''
+    ls -l
+    mkdir -p $out/bin
+    cp airstrike $out/bin
+
+    mkdir -p $out/share
+    cp -r data airstrikerc $out/share
+
+    wrapProgram $out/bin/airstrike \
+      --run "cd $out/share"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A 2d dogfighting game";
+    homepage = https://icculus.org/airstrike/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pSub ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/alienarena/default.nix b/nixpkgs/pkgs/games/alienarena/default.nix
new file mode 100644
index 000000000000..628a521126f5
--- /dev/null
+++ b/nixpkgs/pkgs/games/alienarena/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, pkgconfig, libjpeg, libX11, libXxf86vm, curl, libogg
+, libvorbis, freetype, openal, libGLU_combined }:
+
+stdenv.mkDerivation rec {
+  name = "alienarena-7.65";
+
+  src = fetchurl {
+    url = "https://icculus.org/alienarena/Files/alienarena-7.65-linux20130207.tar.gz";
+    sha256 = "03nnv4m2xmswr0020hssajncdb8sy95jp5yccsm53sgxga4r8igg";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libjpeg libX11 curl libogg libvorbis
+                  freetype openal libGLU_combined libXxf86vm ];
+
+  patchPhase = ''
+    substituteInPlace ./configure \
+      --replace libopenal.so.1 ${openal}/lib/libopenal.so.1 \
+      --replace libGL.so.1 ${libGLU_combined}/lib/libGL.so.1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A free, stand-alone first-person shooter computer game";
+    longDescription = ''
+      Do you like old school deathmatch with modern features? How
+      about rich, colorful, arcade-like atmospheres? How about retro
+      Sci-Fi? Then you're going to love what Alien Arena has in store
+      for you! This game combines some of the very best aspects of
+      such games as Quake III and Unreal Tournament and wraps them up
+      with a retro alien theme, while adding tons of original ideas to
+      make the game quite unique.
+    '';
+    homepage = http://red.planetarena.org;
+    # Engine is under GPLv2, everything else is under
+    license = licenses.unfreeRedistributable;
+    maintainers = with maintainers; [ astsmtl ];
+    platforms = platforms.linux;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/games/amoeba/data.nix b/nixpkgs/pkgs/games/amoeba/data.nix
new file mode 100644
index 000000000000..b5c7f4b730b8
--- /dev/null
+++ b/nixpkgs/pkgs/games/amoeba/data.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "amoeba-data-${version}";
+  version = "1.1";
+
+  src = fetchurl {
+    url = "http://http.debian.net/debian/pool/non-free/a/amoeba-data/amoeba-data_${version}.orig.tar.gz";
+    sha256 = "1bgclr1v63n14bj9nwzm5zxg48nm0cla9bq1rbd5ylxra18k0jbg";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/amoeba
+    cp demo.dat $out/share/amoeba/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Fast-paced, polished OpenGL demonstration by Excess (data files)";
+    homepage = https://packages.qa.debian.org/a/amoeba-data.html;
+    license = licenses.unfree;
+    maintainers = [ maintainers.dezgeg ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/amoeba/default.nix b/nixpkgs/pkgs/games/amoeba/default.nix
new file mode 100644
index 000000000000..491b20d99690
--- /dev/null
+++ b/nixpkgs/pkgs/games/amoeba/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, amoeba-data, alsaLib, expat, freetype, gtk2, libvorbis, libGLU, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "amoeba-${version}-${debver}";
+  version = "1.1";
+  debver = "29.1";
+
+  srcs = [
+    (fetchurl {
+      url = "http://http.debian.net/debian/pool/contrib/a/amoeba/amoeba_${version}.orig.tar.gz";
+      sha256 = "1hyycw4r36ryka2gab9vzkgs8gq4gqhk08vn29cwak95w0rahgim";
+    })
+    (fetchurl {
+      url = "http://http.debian.net/debian/pool/contrib/a/amoeba/amoeba_${version}-${debver}.debian.tar.xz";
+      sha256 = "1xgi2sqzq97w6hd3dcyq6cka8xmp6nr25qymzhk52cwqh7qb75p3";
+    })
+  ];
+  sourceRoot = "amoeba-1.1.orig";
+
+  prePatch = ''
+    patches="${./include-string-h.patch} $(echo ../debian/patches/*.diff)"
+  '';
+  postPatch = ''
+    sed -i packer/pakfile.cpp -e 's|/usr/share/amoeba|${amoeba-data}/share/amoeba|'
+    sed -i main/linux-config/linux-config.cpp -e 's|libgdk-x11-2.0.so.0|${gtk2}/lib/&|'
+    sed -i main/linux-config/linux-config.cpp -e 's|libgtk-x11-2.0.so.0|${gtk2}/lib/&|'
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ alsaLib expat freetype gtk2 libvorbis libGLU ];
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/man/man1/
+    cp amoeba $out/bin/
+    cp ../debian/amoeba.1 $out/share/man/man1/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Fast-paced, polished OpenGL demonstration by Excess";
+    homepage = https://packages.qa.debian.org/a/amoeba.html;
+    license = licenses.gpl2; # Engine is GPLv2, data files in amoeba-data nonfree
+    maintainers = [ maintainers.dezgeg ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/amoeba/include-string-h.patch b/nixpkgs/pkgs/games/amoeba/include-string-h.patch
new file mode 100644
index 000000000000..828cab88d989
--- /dev/null
+++ b/nixpkgs/pkgs/games/amoeba/include-string-h.patch
@@ -0,0 +1,12 @@
+diff --git a/image/png_image.cpp b/image/png_image.cpp
+index 37875fc..1531d6f 100644
+--- a/image/png_image.cpp
++++ b/image/png_image.cpp
+@@ -4,6 +4,7 @@
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ 
+ #include <png.h>
+ #include "png_image.h"
diff --git a/nixpkgs/pkgs/games/andyetitmoves/default.nix b/nixpkgs/pkgs/games/andyetitmoves/default.nix
new file mode 100644
index 000000000000..d4ff86c424b1
--- /dev/null
+++ b/nixpkgs/pkgs/games/andyetitmoves/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchurl, libvorbis, libogg, libtheora, SDL, libXft, SDL_image, zlib, libX11, libpng, openal, runtimeShell, requireFile, commercialVersion ? false }:
+
+let plainName = "andyetitmoves";
+    version   = "1.2.2";
+in
+
+stdenv.mkDerivation rec {
+  name = "${plainName}-${version}";
+
+  src = if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux"
+    then
+      let postfix        = if stdenv.hostPlatform.system == "i686-linux" then "i386" else "x86_64";
+          commercialName = "${plainName}-${version}_${postfix}.tar.gz";
+          demoUrl        = "http://www.andyetitmoves.net/demo/${plainName}Demo-${version}_${postfix}.tar.gz";
+      in
+      if commercialVersion
+        then requireFile {
+               message = ''
+                 We cannot download the commercial version automatically, as you require a license.
+                 Once you bought a license, you need to add your downloaded version to the nix store.
+                 You can do this by using "nix-prefetch-url file:///\$PWD/${commercialName}" in the
+                 directory where yousaved it.
+               '';
+               name = commercialName;
+               sha256 = if stdenv.hostPlatform.system == "i686-linux"
+                          then "15wvzmmidvykwjrbnq70h5jrvnjx1hcrm0357qj85q4aqbzavh01"
+                          else "1v8z16qa9ka8sf7qq45knsxj87s6sipvv3a7xq11pb5xk08fb2ql";
+             }
+        else fetchurl {
+               url = demoUrl;
+               sha256 = if stdenv.hostPlatform.system == "i686-linux"
+                          then "0f14vrrbq05hsbdajrb5y9za65fpng1lc8f0adb4aaz27x7sh525"
+                          else "0mg41ya0b27blq3b5498kwl4rj46dj21rcd7qd0rw1kyvr7sx4v4";
+             }
+    else
+      throw "And Yet It Moves nix package only supports linux and intel cpu's.";
+
+  phases = "unpackPhase installPhase";
+
+  installPhase = ''
+    mkdir -p $out/{opt/andyetitmoves,bin}
+    cp -r * $out/opt/andyetitmoves/
+
+    fullPath=${stdenv.cc.cc.lib}/lib64
+    for i in $nativeBuildInputs; do
+      fullPath=$fullPath''${fullPath:+:}$i/lib
+    done
+
+    binName=${if commercialVersion then "AndYetItMoves" else "AndYetItMovesDemo"}
+
+    patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --set-rpath $fullPath $out/opt/andyetitmoves/lib/$binName
+    cat > $out/bin/$binName << EOF
+    #!${runtimeShell}
+    cd $out/opt/andyetitmoves
+    exec ./lib/$binName
+    EOF
+    chmod +x $out/bin/$binName
+  '';
+
+  buildInputs = [libvorbis libogg libtheora SDL libXft SDL_image zlib libX11 libpng openal];
+
+  meta = {
+    description = "Physics/Gravity Platform game";
+
+    longDescription = ''
+      And Yet It Moves is an award-winning physics-based platform game in which players rotate the game world at will to solve challenging puzzles. Tilting the world turns walls into floors, slides into platforms, and stacks of rocks into dangerous hazards.
+    '';
+
+    homepage = http://www.andyetitmoves.net/;
+
+    license = stdenv.lib.licenses.unfree;
+
+    maintainers = with stdenv.lib.maintainers; [bluescreen303];
+  };
+}
diff --git a/nixpkgs/pkgs/games/angband/default.nix b/nixpkgs/pkgs/games/angband/default.nix
new file mode 100644
index 000000000000..4bdfc87d8da7
--- /dev/null
+++ b/nixpkgs/pkgs/games/angband/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, ncurses5 }:
+
+stdenv.mkDerivation rec {
+  version = "4.1.3";
+  name = "angband-${version}";
+
+  src = fetchFromGitHub {
+    owner = "angband";
+    repo = "angband";
+    rev = version;
+    sha256 = "0g9m7pq8a1hzhr83v552hfk37qc868lms2mlsq29pbi8vxdjybk7";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ ncurses5 ];
+  installFlags = "bindir=$(out)/bin";
+
+  meta = with stdenv.lib; {
+    homepage = http://rephial.org/;
+    description = "A single-player roguelike dungeon exploration game";
+    maintainers = [ maintainers.chattered ];
+    license = licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/games/anki/default.nix b/nixpkgs/pkgs/games/anki/default.nix
new file mode 100644
index 000000000000..c9a227b98db1
--- /dev/null
+++ b/nixpkgs/pkgs/games/anki/default.nix
@@ -0,0 +1,192 @@
+{ stdenv
+, buildPythonApplication
+, callPackage
+, lib
+, python
+, fetchurl
+, fetchpatch
+, fetchFromGitHub
+, lame
+, mplayer
+, libpulseaudio
+, pyqt5
+, decorator
+, beautifulsoup4
+, sqlalchemy
+, pyaudio
+, requests
+, markdown
+, matplotlib
+, pytest
+, glibcLocales
+, nose
+, send2trash
+, CoreAudio
+# This little flag adds a huge number of dependencies, but we assume that
+# everyone wants Anki to draw plots with statistics by default.
+, plotsSupport ? true
+# manual
+, asciidoc
+}:
+
+let
+    # when updating, also update rev-manual to a recent version of
+    # https://github.com/dae/ankidocs
+    # The manual is distributed independently of the software.
+    version = "2.1.9";
+    sha256-pkg = "0p4admjxs0gwc54hby9kc1isg99ghxd5kpy08w9hrk3mcyq74z3i";
+    rev-manual = "c2c443bf991089534b0193029f6ee34908124e80";
+    sha256-manual = "1jwm5zrydc6qis7zslfqj56d083kpbzbl51n0x4czhskm9pjh7qd";
+
+    manual = stdenv.mkDerivation {
+      name = "anki-manual-${version}";
+      src = fetchFromGitHub {
+        owner = "dae";
+        repo = "ankidocs";
+        rev = rev-manual;
+        sha256 = sha256-manual;
+      };
+      phases = [ "unpackPhase" "patchPhase" "buildPhase" ];
+      nativeBuildInputs = [ asciidoc ];
+      patchPhase = ''
+        # rsync isnt needed
+        # WEB is the PREFIX
+        # We remove any special ankiweb output generation
+        # and rename every .mako to .html
+        sed -e 's/rsync -a/cp -a/g' \
+            -e "s|\$(WEB)/docs|$out/share/doc/anki/html|" \
+            -e '/echo asciidoc/,/mv $@.tmp $@/c \\tasciidoc -b html5 -o $@ $<' \
+            -e 's/\.mako/.html/g' \
+            -i Makefile
+        # patch absolute links to the other language manuals
+        sed -e 's|https://apps.ankiweb.net/docs/|link:./|g' \
+            -i {manual.txt,manual.*.txt}
+        # there’s an artifact in most input files
+        sed -e '/<%def.*title.*/d' \
+            -i *.txt
+        mkdir -p $out/share/doc/anki/html
+      '';
+    };
+
+in
+buildPythonApplication rec {
+    name = "anki-${version}";
+
+    src = fetchurl {
+      urls = [
+        "https://apps.ankiweb.net/downloads/current/${name}-source.tgz"
+        # "https://apps.ankiweb.net/downloads/current/${name}-source.tgz"
+        # "http://ankisrs.net/download/mirror/${name}.tgz"
+        # "http://ankisrs.net/download/mirror/archive/${name}.tgz"
+      ];
+      sha256 = sha256-pkg;
+    };
+
+    outputs = [ "out" "doc" "man" ];
+
+    propagatedBuildInputs = [
+      pyqt5 sqlalchemy beautifulsoup4 send2trash pyaudio requests decorator
+      markdown
+    ]
+      ++ lib.optional plotsSupport matplotlib
+      ++ lib.optional stdenv.isDarwin [ CoreAudio ]
+      ;
+
+    checkInputs = [ pytest glibcLocales nose ];
+
+    buildInputs = [ lame mplayer libpulseaudio  ];
+
+    makeWrapperArgs = [
+        ''--prefix PATH ':' "${lame}/bin:${mplayer}/bin"''
+    ];
+
+    patches = [
+      # Disable updated version check.
+      ./no-version-check.patch
+    ];
+
+    buildPhase = ''
+      # Dummy build phase
+      # Anki does not use setup.py
+    '';
+
+    postPatch = ''
+      # Remove unused starter. We'll create our own, minimalistic,
+      # starter.
+      # rm anki/anki
+
+      # Remove QT translation files. We'll use the standard QT ones.
+      rm "locale/"*.qm
+
+      # hitting F1 should open the local manual
+      substituteInPlace anki/consts.py \
+        --replace 'HELP_SITE="http://ankisrs.net/docs/manual.html"' \
+                  'HELP_SITE="${manual}/share/doc/anki/html/manual.html"'
+    '';
+
+    # UTF-8 locale needed for testing
+    LC_ALL = "en_US.UTF-8";
+
+    checkPhase = ''
+      # - Anki writes some files to $HOME during tests
+      # - Skip tests using network
+      env HOME=$TMP pytest --ignore tests/test_sync.py
+    '';
+
+    installPhase = ''
+      pp=$out/lib/${python.libPrefix}/site-packages
+
+      mkdir -p $out/bin
+      mkdir -p $out/share/applications
+      mkdir -p $doc/share/doc/anki
+      mkdir -p $man/share/man/man1
+      mkdir -p $out/share/mime/packages
+      mkdir -p $out/share/pixmaps
+      mkdir -p $pp
+
+      cat > $out/bin/anki <<EOF
+      #!${python}/bin/python
+      import aqt
+      aqt.run()
+      EOF
+      chmod 755 $out/bin/anki
+
+      cp -v anki.desktop $out/share/applications/
+      cp -v README* LICENSE* $doc/share/doc/anki/
+      cp -v anki.1 $man/share/man/man1/
+      cp -v anki.xml $out/share/mime/packages/
+      cp -v anki.{png,xpm} $out/share/pixmaps/
+      cp -rv locale $out/share/
+      cp -rv anki aqt web $pp/
+
+      wrapPythonPrograms
+
+      # copy the manual into $doc
+      cp -r ${manual}/share/doc/anki/html $doc/share/doc/anki
+    '';
+
+    passthru = {
+      inherit manual;
+    };
+
+    meta = with stdenv.lib; {
+      homepage = "https://apps.ankiweb.net/";
+      description = "Spaced repetition flashcard program";
+      longDescription = ''
+        Anki is a program which makes remembering things easy. Because it is a lot
+        more efficient than traditional study methods, you can either greatly
+        decrease your time spent studying, or greatly increase the amount you learn.
+
+        Anyone who needs to remember things in their daily life can benefit from
+        Anki. Since it is content-agnostic and supports images, audio, videos and
+        scientific markup (via LaTeX), the possibilities are endless. For example:
+        learning a language, studying for medical and law exams, memorizing
+        people's names and faces, brushing up on geography, mastering long poems,
+        or even practicing guitar chords!
+      '';
+      license = licenses.agpl3Plus;
+      broken = stdenv.hostPlatform.isAarch64;
+      platforms = platforms.mesaPlatforms;
+      maintainers = with maintainers; [ the-kenny Profpatsch ];
+    };
+}
diff --git a/nixpkgs/pkgs/games/anki/no-version-check.patch b/nixpkgs/pkgs/games/anki/no-version-check.patch
new file mode 100644
index 000000000000..ce166b4b87d5
--- /dev/null
+++ b/nixpkgs/pkgs/games/anki/no-version-check.patch
@@ -0,0 +1,13 @@
+diff -Nurp anki-2.0.33.orig/aqt/main.py anki-2.0.33/aqt/main.py
+--- anki-2.0.33.orig/aqt/main.py	2016-01-05 21:37:53.904533750 +0100
++++ anki-2.0.33/aqt/main.py	2016-01-05 21:39:11.469175976 +0100
+@@ -820,6 +820,9 @@ title="%s">%s</button>''' % (
+     ##########################################################################
+ 
+     def setupAutoUpdate(self):
++        # Don't check for latest version since the versions are
++        # managed in Nixpkgs.
++        return
+         import aqt.update
+         self.autoUpdate = aqt.update.LatestVersionFinder(self)
+         self.connect(self.autoUpdate, SIGNAL("newVerAvail"), self.newVerAvail)
diff --git a/nixpkgs/pkgs/games/arena/default.nix b/nixpkgs/pkgs/games/arena/default.nix
new file mode 100644
index 000000000000..460fc049c7bf
--- /dev/null
+++ b/nixpkgs/pkgs/games/arena/default.nix
@@ -0,0 +1,74 @@
+{ stdenv, fetchurl, gtk2-x11, glib, pango, cairo, atk, gdk_pixbuf, libX11 }:
+
+# Arena is free software in the sense of "free beer" but not as in "free
+# speech". We can install it as we please, but we cannot re-distribute it in
+# any way other than the original release tarball, so we cannot include its NAR
+# into the Nixpkgs channel.
+
+let
+
+  inherit (stdenv.lib) makeLibraryPath;
+  libDir = "lib64";
+
+in
+stdenv.mkDerivation rec {
+  name = "arena-1.1";
+
+  src = fetchurl {
+    url = http://www.playwitharena.de/downloads/arenalinux_64bit_1.1.tar.gz;
+    sha256 = "1sh71v5ymzwflq8ycx9j9kl0jhqllgs6z24h4h8j5z8pwdh528v6";
+  };
+
+  # stdenv.cc.cc.lib is in that list to pick up libstdc++.so. Is there a better way?
+  buildInputs = [gtk2-x11 glib pango cairo atk gdk_pixbuf libX11 stdenv.cc.cc.lib];
+
+  unpackPhase = ''
+    # This is is a tar bomb, i.e. it extract a dozen files and directories to
+    # the top-level, so we must create a sub-directory first.
+    mkdir -p $out/lib/${name}
+    tar -C $out/lib/${name} -xf ${src}
+
+    # Remove executable bits from data files. This matters for the find command
+    # we'll use below to find all bundled engines.
+    chmod -x $out/lib/${name}/Engines/*/*.{txt,bin,bmp}
+  '';
+
+  buildPhase = ''
+    # Arena has (at least) two executables plus a couple of bundled chess
+    # engines that we need to patch.
+    exes=( $(find $out -name '*x86_64_linux')
+           $(find $out/lib/${name}/Engines -type f -perm /u+x)
+         )
+    for i in "''${exes[@]}"; do
+      # Arminius is statically linked.
+      if [[ $i =~ "Arminius_2017-01-01" ]]; then echo yo $i; continue; fi
+      echo Fixing interpreter and rpath paths in $i ...
+      patchelf                                                                                   \
+        --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)"                                \
+        --set-rpath ${makeLibraryPath buildInputs}:$(cat $NIX_CC/nix-support/orig-cc)/${libDir}  \
+        $i
+    done
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    ln -s $out/lib/${name}/Arena_x86_64_linux $out/bin/arena
+  '';
+
+  dontStrip = true;
+
+  meta = {
+    description = "Chess GUI for analyzing with and playing against various engines";
+    longDescription = ''
+      A free Graphical User Interface (GUI) for chess. Arena assists you in
+      analyzing and playing games as well as in testing chess engines. It runs
+      on Linux or Windows. Arena is compatible to Winboard protocol I, II and
+      UCI protocol I, II. Furthermore, compatible to Chess960, DGT electronic
+      chess board & DGT clocks and much more.
+    '';
+    license = stdenv.lib.licenses.unfree;
+    platforms = ["x86_64-linux"];
+    hydraPlatforms = stdenv.lib.platforms.none;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/armagetronad/default.nix b/nixpkgs/pkgs/games/armagetronad/default.nix
new file mode 100644
index 000000000000..5318108c4913
--- /dev/null
+++ b/nixpkgs/pkgs/games/armagetronad/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, SDL, libxml2, SDL_image, libjpeg, libpng, libGLU_combined, zlib }:
+
+let
+  versionMajor = "0.2.8";
+  versionMinor = "3.4";
+  version = "${versionMajor}.${versionMinor}";
+in
+
+stdenv.mkDerivation {
+  name = "armagetron-${version}";
+  src = fetchurl {
+    url = "https://launchpad.net/armagetronad/${versionMajor}/${versionMajor}.${versionMinor}/+download/armagetronad-${version}.src.tar.bz2";
+    sha256 = "157pp84wf0q3bdb72rnbm3ck0czwx2ply6lyhj8z7kfdc7csdbr3";
+  };
+
+  NIX_LDFLAGS = [ "-lSDL_image" ];
+
+  enableParallelBuilding = true;
+
+  configureFlags = [ "--disable-etc" ];
+  buildInputs = [ SDL SDL_image libxml2 libjpeg libpng libGLU_combined zlib ];
+
+  meta = with stdenv.lib; {
+    homepage = http://armagetronad.org;
+    description = "An multiplayer networked arcade racing game in 3D similar to Tron";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/arx-libertatis/default.nix b/nixpkgs/pkgs/games/arx-libertatis/default.nix
new file mode 100644
index 000000000000..a8e9063a35f4
--- /dev/null
+++ b/nixpkgs/pkgs/games/arx-libertatis/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchFromGitHub, cmake, zlib, boost
+, openal, glm, freetype, libGLU, SDL2, epoxy
+, dejavu_fonts, inkscape, optipng, imagemagick
+, withCrashReporter ? !stdenv.isDarwin
+,   qt5  ? null
+,   curl ? null
+,   gdb  ? null
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "arx-libertatis-${version}";
+  version = "2019-02-16";
+
+  src = fetchFromGitHub {
+    owner  = "arx";
+    repo   = "ArxLibertatis";
+    rev    = "fbce6ccbc7f58583f33f29b838c38ef527edc267";
+    sha256 = "0qrygp09dqhpb5q6a1zl6l03qh9bi7xcahd8hy9177z1cix3k0kz";
+  };
+
+
+  nativeBuildInputs = [
+    cmake inkscape imagemagick optipng
+  ];
+
+  buildInputs = [
+    zlib boost openal glm
+    freetype libGLU SDL2 epoxy
+  ] ++ optionals withCrashReporter [ qt5.qtbase curl ]
+    ++ optionals stdenv.isLinux    [ gdb ];
+
+  cmakeFlags = [
+    "-DDATA_DIR_PREFIXES=$out/share"
+    "-DImageMagick_convert_EXECUTABLE=${imagemagick.out}/bin/convert"
+    "-DImageMagick_mogrify_EXECUTABLE=${imagemagick.out}/bin/mogrify"
+  ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    ln -sf \
+      ${dejavu_fonts}/share/fonts/truetype/DejaVuSansMono.ttf \
+      $out/share/games/arx/misc/dejavusansmono.ttf
+  '';
+  
+  meta = {
+    description = ''
+      A cross-platform, open source port of Arx Fatalis, a 2002
+      first-person role-playing game / dungeon crawler
+      developed by Arkane Studios.
+    '';
+    homepage = http://arx-libertatis.org/;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ rnhmjoj ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/asc/default.nix b/nixpkgs/pkgs/games/asc/default.nix
new file mode 100644
index 000000000000..c8f5deef9240
--- /dev/null
+++ b/nixpkgs/pkgs/games/asc/default.nix
@@ -0,0 +1,40 @@
+{ fetchurl, stdenv, SDL, SDL_image, SDL_mixer, SDL_sound, libsigcxx, physfs
+, boost, expat, freetype, libjpeg, wxGTK, lua, perl, pkgconfig, zlib, zip, bzip2
+, libpng, libtiff, fluidsynth, libmikmod, libvorbis, flac, libogg }:
+
+stdenv.mkDerivation rec {
+  name = "asc-2.6.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/asc-hq/${name}.tar.bz2";
+    sha256 = "1fybasb6srqfg6pqbvh0s0vvzjq9r0n6aq0z44hs7n68kmaam775";
+  };
+
+  configureFlags = [ "--disable-paragui" "--disable-paraguitest" ];
+
+  NIX_CFLAGS_COMPILE = "-fpermissive"; # I'm too lazy to catch all gcc47-related problems
+  hardeningDisable = [ "format" ];
+
+  buildInputs = [
+    SDL SDL_image SDL_mixer SDL_sound libsigcxx physfs boost expat
+    freetype libjpeg wxGTK lua perl pkgconfig zlib zip bzip2 libpng
+    libtiff fluidsynth libmikmod flac libvorbis libogg
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Turn based strategy game";
+
+    longDescription = ''
+      Advanced Strategic Command is a free, turn based strategy game. It is
+      designed in the tradition of the Battle Isle series from Bluebyte and is
+      currently available for Windows and Linux.
+    '';
+
+    homepage = http://www.asc-hq.org/;
+
+    license = licenses.gpl2Plus;
+
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/assaultcube/assaultcube-next.patch b/nixpkgs/pkgs/games/assaultcube/assaultcube-next.patch
new file mode 100644
index 000000000000..92fc79966707
--- /dev/null
+++ b/nixpkgs/pkgs/games/assaultcube/assaultcube-next.patch
@@ -0,0 +1,11 @@
+--- 1.1.0.4/source/src/Makefile
++++ 1.1.0.4/source/src/Makefile
+@@ -6,7 +6,7 @@
+ # found to have been caused by the g++ compiler in the past. This seems to have
+ # been fixed now by relaxing the optimization that g++ does, so although we'll
+ # continue using clang++ (just in case), you can use g++ if you prefer.
+-CXX=clang++
++#CXX=clang++
+
+ # Changing this to ACDEBUG=yes will compile a debug version of AssaultCube.
+ ACDEBUG=no
diff --git a/nixpkgs/pkgs/games/assaultcube/default.nix b/nixpkgs/pkgs/games/assaultcube/default.nix
new file mode 100644
index 000000000000..71e885a04d34
--- /dev/null
+++ b/nixpkgs/pkgs/games/assaultcube/default.nix
@@ -0,0 +1,81 @@
+{ fetchFromGitHub, stdenv, makeDesktopItem, openal, pkgconfig, libogg,
+  libvorbis, SDL, SDL_image, makeWrapper, zlib,
+  client ? true, server ? true }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  # master branch has legacy (1.2.0.2) protocol 1201 and gcc 6 fix.
+  pname = "assaultcube";
+  version = "unstable-2017-05-01";
+
+  meta = {
+    description = "Fast and fun first-person-shooter based on the Cube fps";
+    homepage = https://assault.cubers.net;
+    maintainers = [ maintainers.genesis ];
+    platforms = platforms.linux; # should work on darwin with a little effort.
+    license = stdenv.lib.licenses.zlib;
+  };
+
+  src = fetchFromGitHub {
+    owner = "assaultcube";
+    repo  = "AC";
+    rev = "9f537b0876a39d7686e773040469fbb1417de18b";
+    sha256 = "0nvckn67mmfaa7x3j41xyxjllxqzfx1dxg8pnqsaak3kkzds34pl";
+  };
+
+  # ${branch} not accepted as a value ?
+  # TODO: write a functional BUNDLED_ENET option and restore it in deps.
+  patches = [ ./assaultcube-next.patch ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  # add optional for server only ?
+  buildInputs = [ makeWrapper openal SDL SDL_image libogg libvorbis zlib ];
+
+  #makeFlags = [ "CXX=g++" ];
+
+  targets = (optionalString server "server") + (optionalString client " client");
+  buildPhase = ''
+    make -C source/src ${targets}
+  '';
+
+  desktop = makeDesktopItem {
+    name = "AssaultCube";
+    desktopName = "AssaultCube";
+    comment = "A multiplayer, first-person shooter game, based on the CUBE engine. Fast, arcade gameplay.";
+    genericName = "First-person shooter";
+    categories = "Application;Game;ActionGame;Shooter";
+    icon = "assaultcube.png";
+    exec = "${pname}";
+  };
+
+  gamedatadir = "/share/games/${pname}";
+
+  installPhase = ''
+
+    bindir=$out/bin
+
+    mkdir -p $bindir $out/$gamedatadir
+
+    cp -r config packages $out/$gamedatadir
+
+    # install custom script
+    substituteAll ${./launcher.sh} $bindir/assaultcube
+    chmod +x $bindir/assaultcube
+
+    if (test -e source/src/ac_client) then
+      cp source/src/ac_client $bindir
+      mkdir -p $out/share/applications
+      cp ${desktop}/share/applications/* $out/share/applications
+      install -Dpm644 packages/misc/icon.png $out/share/icons/assaultcube.png
+      install -Dpm644 packages/misc/icon.png $out/share/pixmaps/assaultcube.png
+    fi
+
+    if (test -e source/src/ac_server) then
+      cp source/src/ac_server $bindir
+      ln -s $bindir/${pname} $bindir/${pname}-server
+    fi
+    '';
+}
diff --git a/nixpkgs/pkgs/games/assaultcube/launcher.sh b/nixpkgs/pkgs/games/assaultcube/launcher.sh
new file mode 100644
index 000000000000..331cb861f66c
--- /dev/null
+++ b/nixpkgs/pkgs/games/assaultcube/launcher.sh
@@ -0,0 +1,20 @@
+#!@shell@
+# original scripts are very awful
+
+CUBE_DIR=@out@@gamedatadir@
+
+case $(basename "$0") in
+  assaultcube-server)
+    CUBE_OPTIONS="-Cconfig/servercmdline.txt"
+    BINARYPATH=@out@/bin/ac_server
+    ;;
+  assaultcube)
+    CUBE_OPTIONS="--home=${HOME}/.assaultcube/v1.2next --init"
+    BINARYPATH=@out@/bin/ac_client
+    ;;
+  *) echo "$0" is not supported.
+     exit 1
+esac
+
+cd $CUBE_DIR
+exec "${BINARYPATH}" ${CUBE_OPTIONS} "$@"
diff --git a/nixpkgs/pkgs/games/astromenace/default.nix b/nixpkgs/pkgs/games/astromenace/default.nix
new file mode 100644
index 000000000000..b2c86222f2b0
--- /dev/null
+++ b/nixpkgs/pkgs/games/astromenace/default.nix
@@ -0,0 +1,36 @@
+{ fetchurl, stdenv, cmake, xlibsWrapper, libGLU_combined, SDL, openal, freealut, libogg, libvorbis, runtimeShell }:
+
+stdenv.mkDerivation rec {
+  version = "1.3.2";
+  name = "astromenace-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/openastromenace/astromenace-src-${version}.tar.bz2";
+    sha256 = "1rkz6lwjcd5mwv72kf07ghvx6z46kf3xs250mjbmnmjpn7r5sxwv";
+  };
+
+  buildInputs = [ cmake xlibsWrapper libGLU_combined SDL openal freealut libogg libvorbis ];
+
+  buildPhase = ''
+    cmake ./
+    make
+    ./AstroMenace --pack --rawdata=../RAW_VFS_DATA
+  '';
+  installPhase = ''
+    mkdir -p $out/bin
+    cp AstroMenace $out
+    cp gamedata.vfs $out
+    cat > $out/bin/AstroMenace << EOF
+    #!${runtimeShell}
+    $out/AstroMenace --dir=$out
+    EOF
+    chmod 755 $out/bin/AstroMenace
+  '';
+
+  meta = {
+    description = "Hardcore 3D space shooter with spaceship upgrade possibilities";
+    homepage = https://www.viewizard.com/;
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/atanks/default.nix b/nixpkgs/pkgs/games/atanks/default.nix
new file mode 100644
index 000000000000..05b645ee326b
--- /dev/null
+++ b/nixpkgs/pkgs/games/atanks/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, allegro }:
+
+stdenv.mkDerivation rec {
+  name = "atanks-${version}";
+  version = "6.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/atanks/atanks/${name}/${name}.tar.gz";
+    sha256 = "0bijsbd51j4wsnmdxj54r92m7h8zqnvh9z3qqdig6zx7a8kjn61j";
+  };
+
+  buildInputs = [ allegro ];
+
+  makeFlags = [ "PREFIX=$(out)/" "INSTALL=install" "CXX=g++" ];
+
+  meta = with stdenv.lib; {
+    description = "Atomic Tanks ballistics game";
+    homepage = http://atanks.sourceforge.net/;
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/ball-and-paddle/default.nix b/nixpkgs/pkgs/games/ball-and-paddle/default.nix
new file mode 100644
index 000000000000..a8b5f9fea4d6
--- /dev/null
+++ b/nixpkgs/pkgs/games/ball-and-paddle/default.nix
@@ -0,0 +1,44 @@
+{ fetchurl, stdenv, SDL, SDL_image, SDL_mixer, SDL_ttf, guile, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "ballandpaddle-0.8.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/ballandpaddle/${name}.tar.gz";
+    sha256 = "0zgpydad0mj7fbkippw3n9hlda6nac084dq5xfbsks9jn1xd30ny";
+  };
+
+  buildInputs = [ SDL SDL_image SDL_mixer SDL_ttf guile gettext ];
+
+  patches = [ ./getenv-decl.patch ];
+
+  preConfigure = ''
+    sed -i "Makefile.in" \
+        -e "s|desktopdir *=.*$|desktopdir = $out/share/applications|g ;
+            s|pixmapsdir *=.*$|pixmapsdir = $out/share/pixmaps|g"
+  '';
+
+  meta = {
+    description = "GNU Ball and Paddle, an old-fashioned ball and paddle game";
+
+    longDescription = ''
+      GNU Ball and Paddle is an old-fashioned ball and paddle game
+      with a set amount of blocks to destroy on each level, while
+      moving a paddle left and right at the bottom of the
+      screen.  Various powerups may make different things occur.
+
+      It now uses GNU Guile for extension and the levels are written
+      with Guile.  Follow the example level sets and the documentation.
+    '';
+
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    homepage = https://www.gnu.org/software/ballandpaddle/;
+
+    maintainers = [ ];
+
+    platforms = stdenv.lib.platforms.unix;
+
+    hydraPlatforms = stdenv.lib.platforms.linux; # sdl-config times out on darwin
+  };
+}
diff --git a/nixpkgs/pkgs/games/ball-and-paddle/getenv-decl.patch b/nixpkgs/pkgs/games/ball-and-paddle/getenv-decl.patch
new file mode 100644
index 000000000000..6bf26b50a142
--- /dev/null
+++ b/nixpkgs/pkgs/games/ball-and-paddle/getenv-decl.patch
@@ -0,0 +1,13 @@
+Make the getenv(3) declaration visible.
+
+--- ballandpaddle-0.8.1/src/settingsmanager.cpp	2009-07-08 02:13:16.000000000 +0200
++++ ballandpaddle-0.8.1/src/settingsmanager.cpp	2009-07-16 23:30:28.000000000 +0200
+@@ -17,6 +17,7 @@
+  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+  **/
+ 
++#include <stdlib.h>
+ #include "settingsmanager.h"
+ 
+ SettingsManager::SettingsManager ()
+
diff --git a/nixpkgs/pkgs/games/banner/default.nix b/nixpkgs/pkgs/games/banner/default.nix
new file mode 100644
index 000000000000..5699dbb72700
--- /dev/null
+++ b/nixpkgs/pkgs/games/banner/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "banner-1.3.4";
+
+  src = fetchurl {
+    url = "http://software.cedar-solutions.com/ftp/software/${name}.tar.gz";
+    sha256 = "04q5ribr0r9s8waky3nk356l0qdhfxw15ipz7lsfgv1fxq3qk6bz";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://software.cedar-solutions.com/utilities.html;
+    description = "Print large banners to ASCII terminals";
+    license = licenses.gpl2;
+
+    longDescription = ''
+      An implementation of the traditional Unix-program used to display
+      large characters.
+    '';
+
+    platforms = platforms.all;
+    maintainers = with maintainers; [ pSub ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/bastet/default.nix b/nixpkgs/pkgs/games/bastet/default.nix
new file mode 100644
index 000000000000..27ddec616bc8
--- /dev/null
+++ b/nixpkgs/pkgs/games/bastet/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, fetchpatch, ncurses, boost }:
+
+stdenv.mkDerivation rec {
+  name = "bastet-${version}";
+  version = "0.43.2";
+  buildInputs = [ ncurses boost ];
+
+  src = fetchFromGitHub {
+    owner = "fph";
+    repo = "bastet";
+    rev = version;
+    sha256 = "09kamxapm9jw9przpsgjfg33n9k94bccv65w95dakj0br33a75wn";
+  };
+
+  patches = [
+    # Compatibility with new Boost
+    (fetchpatch {
+      url = "https://github.com/fph/bastet/commit/0e03f8d4d6bc6949cf1c447e632ce0d1b98c4be1.patch";
+      sha256 = "1475hisbm44jirsrhdlnddppsyn83xmvcx09gfkm9drcix05alzj";
+    })
+  ];
+
+  installPhase = ''
+    mkdir -p "$out"/bin
+    cp bastet "$out"/bin/
+    mkdir -p "$out"/share/man/man6
+    cp bastet.6 "$out"/share/man/man6
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tetris clone with 'bastard' block-choosing AI";
+    homepage = http://fph.altervista.org/prog/bastet.html;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.dezgeg ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/beret/default.nix b/nixpkgs/pkgs/games/beret/default.nix
new file mode 100644
index 000000000000..81bdbed46e94
--- /dev/null
+++ b/nixpkgs/pkgs/games/beret/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, SDL, SDL_image, SDL_ttf, SDL_mixer }:
+
+stdenv.mkDerivation {
+  name = "beret-1.2.0";
+
+  buildInputs = [ SDL SDL_image SDL_ttf SDL_mixer ];
+
+  NIX_CFLAGS_COMPILE = "-I${SDL.dev}/include/SDL";
+  NIX_CFLAGS_LINK = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
+  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin
+    "-framework CoreFoundation -framework OpenGL -framework Cocoa";
+
+  patches = [ ./use-home-dir.patch ];
+
+  postPatch = ''
+    sed -i 's@RESOURCE_PATH ""@RESOURCE_PATH "'$out'/share/"@' game.c
+  '';
+
+  src = fetchurl {
+    url = https://gitorious.org/beret/beret/archive-tarball/ae029777;
+    name = "beret-1.2.0.tar.gz";
+    sha256 = "1rx9z72id1810fgv8mizk8qxwd1kh5xi07fdhmjc62mh3fn38szc";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -v -m755 beret $out/bin
+    mkdir -p $out/share
+    cp -av tahoma.ttf images music rooms sfx $out/share
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A 2D puzzle-platformer game about a scientist with telekinetic abilities";
+    homepage    = http://kiwisauce.com/beret/;
+    license     = licenses.lgpl2;
+    maintainers = with maintainers; [ lovek323 ];
+    platforms   = platforms.all;
+    broken = true; # source won't download, and no replacement is visible
+  };
+}
+
diff --git a/nixpkgs/pkgs/games/beret/use-home-dir.patch b/nixpkgs/pkgs/games/beret/use-home-dir.patch
new file mode 100644
index 000000000000..c8597a0303b8
--- /dev/null
+++ b/nixpkgs/pkgs/games/beret/use-home-dir.patch
@@ -0,0 +1,48 @@
+diff -Naur beret-beret-orig/game.c beret-beret/game.c
+--- beret-beret-orig/game.c	2011-12-17 18:51:32.000000000 -0500
++++ beret-beret/game.c	2011-12-21 13:16:37.047511020 -0500
+@@ -10,12 +10,10 @@
+ #include <stdlib.h>

+ #include <stdio.h>

+ #include <string.h>

+-#ifdef __APPLE__

+ #include <sys/stat.h>

+ #include <unistd.h>

+ #include <errno.h>

+ #include <pwd.h>

+-#endif

+ 

+ #define CAMSCROLL 15

+ #define SCR_WIDTH 780

+@@ -88,12 +86,8 @@
+ #define DIRSEP "/"

+ #endif

+ 

+-#ifdef __APPLE__

+-#define SUPPORT_PATH "Library/Application Support/Beret/"

+-#define RESOURCE_PATH "Beret.app/Contents/Resources/"

+-#else

++#define SUPPORT_PATH ".beret"

+ #define RESOURCE_PATH ""

+-#endif

+ 

+ #define QUITMOD_WIN KMOD_ALT

+ #define QUITKEY_WIN SDLK_F4

+@@ -812,7 +806,6 @@
+ 

+ int init() {

+ 

+-  #ifdef __APPLE__

+   char filestr[512];

+   // Get the home directory of the user.

+   struct passwd *pwd = getpwuid(getuid());

+@@ -827,9 +820,6 @@
+     sprintf(filestr, "%s/saves", support_path);

+     mkdir(filestr, S_IRWXU);

+   }

+-  #else

+-  sprintf(support_path, "");

+-  #endif

+ 

+   if (SDL_Init(SDL_INIT_EVERYTHING) == -1) {

+     printf("Error: couldn't initialize SDL\n");

diff --git a/nixpkgs/pkgs/games/bitsnbots/default.nix b/nixpkgs/pkgs/games/bitsnbots/default.nix
new file mode 100644
index 000000000000..94a1e6ee91ab
--- /dev/null
+++ b/nixpkgs/pkgs/games/bitsnbots/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, SDL, lua, libGLU_combined }:
+
+stdenv.mkDerivation rec {
+  name = "bitsnbots-20111230";
+
+  src = fetchurl {
+    url = http://moikmellah.org/downloads/bitsnbots/bitsnbots.source.tgz;
+    sha256 = "1iiclm6bfpp2p6d692hpnw25xyr48ki1xkcxa7fvh5b7m1519gsp";
+  };
+
+  patchPhase = ''
+    sed -i '/^INCLUDE/d' Makefile.linux
+  '';
+
+  makefile = "Makefile.linux";
+
+  NIX_CFLAGS_COMPILE = "-I${SDL.dev}/include/SDL";
+
+  NIX_LDFLAGS = "-lGL";
+
+  installPhase = ''
+    mkdir -p $out/share/${name}
+    cp -R bitsnbots resource scripts README $out/share/${name}
+    mkdir -p $out/bin
+    ln -s $out/share/${name}/bitsnbots $out/bin
+  '';
+
+  buildInputs = [ SDL lua libGLU_combined ];
+
+  meta = {
+    description = "Simple puzzle game with moving robots";
+    homepage = http://moikmellah.org/blog/?page_id=19;
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/blackshades/default.nix b/nixpkgs/pkgs/games/blackshades/default.nix
new file mode 100644
index 000000000000..bf58b523e76e
--- /dev/null
+++ b/nixpkgs/pkgs/games/blackshades/default.nix
@@ -0,0 +1,34 @@
+{stdenv, fetchsvn, SDL, libGLU_combined, openal, libvorbis, freealut, SDL_image}:
+
+stdenv.mkDerivation rec {
+  name = "blackshades-svn-110";
+  src = fetchsvn {
+    url = svn://svn.icculus.org/blackshades/trunk;
+    rev = "110";
+    sha256 = "0kbrh1dympk8scjxr6av24qs2bffz44l8qmw2m5gyqf4g3rxf6ra";
+  };
+
+  NIX_LDFLAGS = "-lSDL_image";
+
+  buildInputs = [ SDL SDL_image libGLU_combined openal libvorbis freealut ];
+
+  patchPhase = ''
+    sed -i -e s,Data/,$out/opt/$name/Data/,g \
+      -e s,Data:,$out/opt/$name/Data/,g \
+      Source/*.cpp
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/opt/$name
+    cp objs/blackshades $out/bin
+    cp -R Data IF* Readme $out/opt/$name/
+  '';
+
+  meta = {
+    homepage = http://icculus.org/blackshades/;
+    description = "Protect the VIP";
+    license = stdenv.lib.licenses.free;
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/blobby/blobby.sh b/nixpkgs/pkgs/games/blobby/blobby.sh
new file mode 100644
index 000000000000..4c4b32b12433
--- /dev/null
+++ b/nixpkgs/pkgs/games/blobby/blobby.sh
@@ -0,0 +1,10 @@
+#! @shell@
+
+test -d ~/.blobby || {
+  mkdir ~/.blobby
+  cp -r "@out@/share/blobby"/* ~/.blobby
+  chmod u+w -R ~/.blobby
+  ( cd ~/.blobby; for i in *.zip; do @unzip@/bin/unzip "$i"; done )
+}
+
+@out@/bin/blobby.bin
diff --git a/nixpkgs/pkgs/games/blobby/default.nix b/nixpkgs/pkgs/games/blobby/default.nix
new file mode 100644
index 000000000000..af1228108d8f
--- /dev/null
+++ b/nixpkgs/pkgs/games/blobby/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl, SDL2, SDL2_image, libGLU_combined, cmake, physfs, boost, zip, zlib
+, pkgconfig, unzip}:
+stdenv.mkDerivation rec {
+  version = "1.0";
+  name = "blobby-volley-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/blobby/Blobby%20Volley%202%20%28Linux%29/1.0/blobby2-linux-1.0.tar.gz";
+    sha256 = "1qpmbdlyhfbrdsq4vkb6cb3b8mh27fpizb71q4a21ala56g08yms";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [SDL2 SDL2_image libGLU_combined cmake physfs boost zip zlib
+    unzip];
+
+  preConfigure=''
+    sed -e '1i#include <iostream>' -i src/NetworkMessage.cpp
+  '';
+
+  inherit unzip;
+
+  postInstall = ''
+    cp ../data/Icon.bmp "$out/share/blobby/"
+    mv "$out/bin"/blobby{,.bin}
+    substituteAll "${./blobby.sh}" "$out/bin/blobby"
+    chmod a+x "$out/bin/blobby"
+  '';
+
+  meta = {
+    description = ''A blobby volleyball game'';
+    license = stdenv.lib.licenses.bsd3;
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    homepage = http://blobby.sourceforge.net/;
+    downloadPage = "https://sourceforge.net/projects/blobby/files/Blobby%20Volley%202%20%28Linux%29/";
+    inherit version;
+  };
+}
diff --git a/nixpkgs/pkgs/games/blobby/default.upstream b/nixpkgs/pkgs/games/blobby/default.upstream
new file mode 100644
index 000000000000..8f2804e07946
--- /dev/null
+++ b/nixpkgs/pkgs/games/blobby/default.upstream
@@ -0,0 +1,8 @@
+url https://sourceforge.net/projects/blobby/files/Blobby%20Volley%202%20%28Linux%29/
+SF_version_dir
+version_link '[.]tar[.][^.]+/download$'
+SF_redirect
+do_overwrite(){
+  do_overwrite_just_version
+  set_var_value url $CURRENT_URL
+}
diff --git a/nixpkgs/pkgs/games/boohu/default.nix b/nixpkgs/pkgs/games/boohu/default.nix
new file mode 100644
index 000000000000..1e70a92066da
--- /dev/null
+++ b/nixpkgs/pkgs/games/boohu/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, buildGoPackage}:
+
+buildGoPackage rec {
+
+  name = "boohu-${version}";
+  version = "0.12.0";
+
+  goPackagePath = "git.tuxfamily.org/boohu/boohu.git";
+
+  src = fetchurl {
+    url = "https://download.tuxfamily.org/boohu/downloads/boohu-${version}.tar.gz";
+    sha256 = "0nf3xj3lda8279cqvjv5c3vpsb7d2kynwwna5yrsy7gq8c9n4rh8";
+  };
+
+  buildFlags = "--tags ansi";
+
+  postInstall = "mv $bin/bin/boohu.git $bin/bin/boohu";
+
+  meta = with stdenv.lib; {
+    description = "A new roguelike game";
+    longDescription = ''
+      Break Out Of Hareka's Underground (Boohu) is a roguelike game mainly
+      inspired from DCSS and its tavern, with some ideas from Brogue, but
+      aiming for very short games, almost no character building, and a
+      simplified inventory.
+    '';
+    homepage = https://download.tuxfamily.org/boohu/index.html;
+    license = licenses.isc;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [freepotion];
+  };
+}
diff --git a/nixpkgs/pkgs/games/braincurses/default.nix b/nixpkgs/pkgs/games/braincurses/default.nix
new file mode 100644
index 000000000000..808d7e378074
--- /dev/null
+++ b/nixpkgs/pkgs/games/braincurses/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "braincurses-${version}";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "bderrly";
+    repo = "braincurses";
+    rev = version;
+    sha256 = "0gpny9wrb0zj3lr7iarlgn9j4367awj09v3hhxz9r9a6yhk4anf5";
+  };
+
+  buildInputs = [ ncurses ];
+
+  # There is no install target in the Makefile
+  installPhase = ''
+    install -Dt $out/bin braincurses
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/bderrly/braincurses;
+    description = "A version of the classic game Mastermind";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ dotlambda ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/brogue/default.nix b/nixpkgs/pkgs/games/brogue/default.nix
new file mode 100644
index 000000000000..4cfac27451b0
--- /dev/null
+++ b/nixpkgs/pkgs/games/brogue/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, SDL, ncurses, libtcod }:
+
+stdenv.mkDerivation rec {
+  name = "brogue-${version}";
+  version = "1.7.5";
+
+  src = fetchurl {
+    url = "https://sites.google.com/site/broguegame/brogue-${version}-linux-amd64.tbz2";
+    sha256 = "0i042zb3axjf0cpgpdh8hvfn66dbfizidyvw0iymjk2n760z2kx7";
+  };
+
+  prePatch = ''
+    sed -i Makefile -e 's,LIBTCODDIR=.*,LIBTCODDIR=${libtcod},g' \
+                    -e 's,sdl-config,${SDL.dev}/bin/sdl-config,g'
+    sed -i src/platform/tcod-platform.c -e "s,fonts/font,$out/share/brogue/fonts/font,g"
+    make clean
+    rm -rf src/libtcod*
+  '';
+
+  buildInputs = [ SDL ncurses libtcod ];
+
+  installPhase = ''
+    install -m 555 -D bin/brogue $out/bin/brogue
+    mkdir -p $out/share/brogue
+    cp -r bin/fonts $out/share/brogue/
+  '';
+
+  # fix crash; shouldn’t be a security risk because it’s an offline game
+  hardeningDisable = [ "stackprotector" "fortify" ];
+
+  meta = with stdenv.lib; {
+    description = "A roguelike game";
+    homepage = https://sites.google.com/site/broguegame/;
+    license = licenses.agpl3;
+    maintainers = [ maintainers.skeidel ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/bsdgames/default.nix b/nixpkgs/pkgs/games/bsdgames/default.nix
new file mode 100644
index 000000000000..ef30a3d350c9
--- /dev/null
+++ b/nixpkgs/pkgs/games/bsdgames/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchurl, ncurses, openssl, flex, bison, less, miscfiles }:
+
+stdenv.mkDerivation {
+  name = "bsd-games-2.17";
+
+  src = fetchurl {
+    url = ftp://metalab.unc.edu/pub/Linux/games/bsd-games-2.17.tar.gz;
+    sha256 = "0q7zdyyfvn15y0w4g54kq3gza89h61py727m8slmw73cxx594vq6";
+  };
+
+  buildInputs = [ ncurses openssl flex bison ];
+
+  patches = [
+    (fetchurl {
+      url = http://svn.exactcode.de/t2/trunk/package/games/bsd-games/dm-noutmpx.patch;
+      sha256 = "1k3qp3jj0dksjr4dnppv6dvkwslrgk9c7p2n9vipqildpxgqp7w2";
+    })
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  makeFlags = [ "STRIP=" ];
+
+  preConfigure = ''
+    cat > config.params << EOF
+    bsd_games_cfg_man6dir=$out/share/man/man6
+    bsd_games_cfg_man8dir=$out/share/man/man8
+    bsd_games_cfg_man5dir=$out/share/man/man5
+    bsd_games_cfg_wtf_acronymfile=$out/share/misc/acronyms
+    bsd_games_cfg_fortune_dir=$out/share/games/fortune
+    bsd_games_cfg_quiz_dir=$out/share/games/quiz
+    bsd_games_cfg_gamesdir=$out/bin
+    bsd_games_cfg_sbindir=$out/bin
+    bsd_games_cfg_usrbindir=$out/bin
+    bsd_games_cfg_libexecdir=$out/lib/games/dm
+    bsd_games_cfg_docdir=$out/share/doc/bsd-games
+    bsd_games_cfg_sharedir=$out/share/games
+    bsd_games_cfg_varlibdir=.
+    bsd_games_cfg_non_interactive=y
+    bsd_games_cfg_no_build_dirs="dab hack phantasia sail"
+    bsd_games_cfg_dictionary_src=${miscfiles}/share/web2
+    bsd_games_cfg_pager=${less}
+    EOF
+
+    sed -e s/getline/bsdgames_local_getline/g -i $(grep getline -rl .)
+  '';
+
+  postConfigure = ''
+    sed -i -e 's,/usr,'$out, \
+       -e "s,-o root -g root, ," \
+       -e "s,-o root -g games, ," \
+       -e "s,.*chown.*,true," \
+       -e 's/INSTALL_VARDATA.*/INSTALL_VARDATA := true/' \
+       -e 's/INSTALL_HACKDIR.*/INSTALL_HACKDIR := true/' \
+       -e 's/INSTALL_DM.*/INSTALL_DM := true/' \
+       -e 's/INSTALL_SCORE_FILE.*/INSTALL_SCORE_FILE := true/' \
+       Makeconfig install-man
+  '';
+
+  meta = {
+    homepage = http://www.t2-project.org/packages/bsd-games.html;
+    description = "Ports of all the games from NetBSD-current that are free";
+    license = stdenv.lib.licenses.free;
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/btanks/default.nix b/nixpkgs/pkgs/games/btanks/default.nix
new file mode 100644
index 000000000000..9de90069a375
--- /dev/null
+++ b/nixpkgs/pkgs/games/btanks/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, fetchpatch, sconsPackages, pkgconfig, SDL, libGLU_combined, zlib, smpeg
+, SDL_image, libvorbis, expat, zip, lua5_1 }:
+
+stdenv.mkDerivation rec {
+  name = "battle-tanks-0.9.8083";
+
+  src = fetchurl {
+    url = mirror://sourceforge/btanks/btanks-0.9.8083.tar.bz2;
+    sha256 = "0ha35kxc8xlbg74wsrbapfgxvcrwy6psjkqi7c6adxs55dmcxliz";
+  };
+
+  nativeBuildInputs = [ sconsPackages.scons_3_0_1 pkgconfig ];
+  buildInputs = [ SDL libGLU_combined zlib smpeg SDL_image libvorbis expat zip lua5_1 ];
+
+  NIX_CFLAGS_COMPILE = "-I${SDL_image}/include/SDL";
+
+  patches = [
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/b/btanks/0.9.8083-7/debian/patches/gcc-4.7.patch";
+      sha256 = "1dxlk1xh69gj10sqcsyckiakb8an3h41206wby4z44mpmvxc7pi4";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/b/btanks/0.9.8083-7/debian/patches/pow10f.patch";
+      sha256 = "1h45790v2dpdbccfn6lwfgl8782q54i14cz9gpipkaghcka4y0g9";
+    })
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://sourceforge.net/projects/btanks/;
+    description = "Fast 2d tank arcade game";
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/bzflag/default.nix b/nixpkgs/pkgs/games/bzflag/default.nix
new file mode 100644
index 000000000000..6c7e9ac76a99
--- /dev/null
+++ b/nixpkgs/pkgs/games/bzflag/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, fetchurl, pkgconfig
+, curl, SDL2, libGLU_combined, glew, ncurses, c-ares
+, Carbon, CoreServices }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "bzflag";
+  version = "2.4.18";
+
+  src = fetchurl {
+    url = "https://download.bzflag.org/${pname}/source/${version}/${name}.tar.bz2";
+    sha256 = "1gmz31wmn3f8zq1bfilkgbf4qmi4fa0c93cs76mhg8h978pm23cx";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ curl SDL2 libGLU_combined glew ncurses c-ares ]
+    ++ lib.optionals stdenv.isDarwin [ Carbon CoreServices ];
+
+  meta = with lib; {
+    description = "Multiplayer 3D Tank game";
+    homepage = https://bzflag.org/;
+    license = licenses.lgpl21Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/common.nix b/nixpkgs/pkgs/games/cataclysm-dda/common.nix
new file mode 100644
index 000000000000..b39eb987e00d
--- /dev/null
+++ b/nixpkgs/pkgs/games/cataclysm-dda/common.nix
@@ -0,0 +1,97 @@
+{ stdenv, fetchFromGitHub, pkgconfig, gettext, lua, ncurses
+, tiles, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, freetype, Cocoa
+, debug, runtimeShell
+}:
+
+let
+  inherit (stdenv.lib) optionals;
+
+  cursesDeps = [ gettext lua ncurses ];
+
+  tilesDeps = [ SDL2 SDL2_image SDL2_mixer SDL2_ttf freetype ]
+    ++ optionals stdenv.isDarwin [ Cocoa ];
+
+  common = {
+    nativeBuildInputs = [ pkgconfig ];
+
+    buildInputs = cursesDeps ++ optionals tiles tilesDeps;
+
+    postPatch = ''
+      patchShebangs .
+    '';
+
+    makeFlags = [
+      "PREFIX=$(out)" "LUA=1" "USE_HOME_DIR=1" "LANGUAGES=all"
+    ] ++ optionals (!debug) [
+      "RELEASE=1"
+    ] ++ optionals tiles [
+      "TILES=1" "SOUND=1"
+    ] ++ optionals stdenv.isDarwin [
+      "NATIVE=osx" "CLANG=1"
+    ];
+
+    dontStrip = debug;
+
+    meta = with stdenv.lib; {
+      description = "A free, post apocalyptic, zombie infested rogue-like";
+      longDescription = ''
+        Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world.
+        Surviving is difficult: you have been thrown, ill-equipped, into a
+        landscape now riddled with monstrosities of which flesh eating zombies are
+        neither the strangest nor the deadliest.
+
+        Yet with care and a little luck, many things are possible. You may try to
+        eke out an existence in the forests silently executing threats and
+        providing sustenance with your longbow. You can ride into town in a
+        jerry-rigged vehicle, all guns blazing, to settle matters in a fug of
+        smoke from your molotovs. You could take a more measured approach and
+        construct an impregnable fortress, surrounded by traps to protect you from
+        the horrors without. The longer you survive, the more skilled and adapted
+        you will get and the better equipped and armed to deal with the threats
+        you are presented with.
+
+        In the course of your ordeal there will be opportunities and temptations
+        to improve or change your very nature. There are tales of survivors fitted
+        with extraordinary cybernetics giving great power and stories too of
+        gravely mutated survivors who, warped by their ingestion of exotic
+        substances or radiation, now more closely resemble insects, birds or fish
+        than their original form.
+      '';
+      homepage = https://cataclysmdda.org/;
+      license = licenses.cc-by-sa-30;
+      maintainers = with maintainers; [ mnacamura ];
+      platforms = platforms.unix;
+    };
+  };
+
+  utils = {
+    fetchFromCleverRaven = { rev, sha256 }:
+    fetchFromGitHub {
+      owner = "CleverRaven";
+      repo = "Cataclysm-DDA";
+      inherit rev sha256;
+    };
+
+    installXDGAppLauncher = ''
+      launcher="$out/share/applications/cataclysm-dda.desktop"
+      install -D -m 444 data/xdg/*cataclysm-dda.desktop -T "$launcher"
+      sed -i "$launcher" -e "s,\(Exec=\)\(cataclysm-tiles\),\1$out/bin/\2,"
+      install -D -m 444 data/xdg/cataclysm-dda.svg -t $out/share/icons/hicolor/scalable/apps
+    '';
+
+    installMacOSAppLauncher = ''
+      app=$out/Applications/Cataclysm.app
+      install -D -m 444 data/osx/Info.plist -t $app/Contents
+      install -D -m 444 data/osx/AppIcon.icns -t $app/Contents/Resources
+      mkdir $app/Contents/MacOS
+      launcher=$app/Contents/MacOS/Cataclysm.sh
+      cat << EOF > $launcher
+      #!${runtimeShell}
+      $out/bin/cataclysm-tiles
+      EOF
+      chmod 555 $launcher
+    '';
+  };
+in
+
+{ inherit common utils; }
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/default.nix b/nixpkgs/pkgs/games/cataclysm-dda/default.nix
new file mode 100644
index 000000000000..3ddac8f3fc7a
--- /dev/null
+++ b/nixpkgs/pkgs/games/cataclysm-dda/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, callPackage, ncurses
+, tiles ? true, Cocoa, libicns
+, debug ? false
+}:
+
+let
+  inherit (stdenv.lib) optionals optionalString;
+  inherit (callPackage ./common.nix { inherit tiles Cocoa debug; }) common utils;
+  inherit (utils) fetchFromCleverRaven installMacOSAppLauncher;
+in
+
+stdenv.mkDerivation (common // rec {
+  version = "0.C";
+  name = "cataclysm-dda-${version}";
+
+  src = fetchFromCleverRaven {
+    rev = "${version}";
+    sha256 = "03sdzsk4qdq99qckq0axbsvg1apn6xizscd8pwp5w6kq2fyj5xkv";
+  };
+
+  nativeBuildInputs = common.nativeBuildInputs
+    ++ optionals (tiles && stdenv.isDarwin) [ libicns ];
+
+  patches = [ ./patches/fix_locale_dir.patch ];
+
+  makeFlags = common.makeFlags
+    ++ optionals stdenv.isDarwin [
+    "OSX_MIN=10.6"  # SDL for macOS only supports deploying on 10.6 and above
+  ] ++ optionals stdenv.cc.isGNU [
+    "WARNINGS+=-Wno-deprecated-declarations"
+    "WARNINGS+=-Wno-ignored-attributes"
+  ] ++ optionals stdenv.cc.isClang [
+    "WARNINGS+=-Wno-inconsistent-missing-override"
+  ];
+
+  NIX_CFLAGS_COMPILE = optionalString stdenv.cc.isClang "-Wno-user-defined-warnings";
+
+  postBuild = optionalString (tiles && stdenv.isDarwin) ''
+    # iconutil on macOS is not available in nixpkgs
+    png2icns data/osx/AppIcon.icns data/osx/AppIcon.iconset/*
+  '';
+
+  postInstall = optionalString (tiles && stdenv.isDarwin)
+    installMacOSAppLauncher;
+
+  # Disable, possible problems with hydra
+  #enableParallelBuilding = true;
+
+  meta = with stdenv.lib.maintainers; common.meta // {
+    maintainers = common.meta.maintainers ++ [ skeidel ];
+  };
+})
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/git.nix b/nixpkgs/pkgs/games/cataclysm-dda/git.nix
new file mode 100644
index 000000000000..c8f031d31942
--- /dev/null
+++ b/nixpkgs/pkgs/games/cataclysm-dda/git.nix
@@ -0,0 +1,44 @@
+{ stdenv, callPackage
+, tiles ? true, Cocoa, CoreFoundation
+, debug ? false
+}:
+
+let
+  inherit (stdenv.lib) optionals optionalString substring;
+  inherit (callPackage ./common.nix { inherit tiles Cocoa debug; }) common utils;
+  inherit (utils) fetchFromCleverRaven installXDGAppLauncher installMacOSAppLauncher;
+in
+
+stdenv.mkDerivation (common // rec {
+  version = "2018-07-15";
+  name = "cataclysm-dda-git-${version}";
+
+  src = fetchFromCleverRaven {
+    rev = "e1e5d81";
+    sha256 = "198wfj8l1p8xlwicj92cq237pzv2ha9pcf240y7ijhjpmlc9jkr1";
+  };
+
+  buildInputs = common.buildInputs
+    ++ optionals stdenv.isDarwin [ CoreFoundation ];
+
+  patches = [ ./patches/fix_locale_dir_git.patch ];
+
+  makeFlags = common.makeFlags ++ [
+    "VERSION=git-${version}-${substring 0 8 src.rev}"
+  ];
+
+  postInstall = optionalString tiles
+  ( if !stdenv.isDarwin
+    then installXDGAppLauncher
+    else installMacOSAppLauncher
+  );
+
+  # https://hydra.nixos.org/build/65193254
+  # src/weather_data.cpp:203:1: fatal error: opening dependency file obj/tiles/weather_data.d: No such file or directory
+  # make: *** [Makefile:687: obj/tiles/weather_data.o] Error 1
+  enableParallelBuilding = false;
+
+  meta = with stdenv.lib.maintainers; common.meta // {
+    maintainers = common.meta.maintainers ++ [ rardiol ];
+  };
+})
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch b/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch
new file mode 100644
index 000000000000..775a8ec6007d
--- /dev/null
+++ b/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch
@@ -0,0 +1,20 @@
+diff --git a/src/translations.cpp b/src/translations.cpp
+index 6520cfe..49f7b2c 100644
+--- a/src/translations.cpp
++++ b/src/translations.cpp
+@@ -72,15 +72,11 @@ void set_language(bool reload_options)
+ 
+     // Step 2. Bind to gettext domain.
+     const char *locale_dir;
+-#ifdef __linux__
+     if (!FILENAMES["base_path"].empty()) {
+         locale_dir = std::string(FILENAMES["base_path"] + "share/locale").c_str();
+     } else {
+         locale_dir = "lang/mo";
+     }
+-#else
+-    locale_dir = "lang/mo";
+-#endif // __linux__
+ 
+     bindtextdomain("cataclysm-dda", locale_dir);
+     bind_textdomain_codeset("cataclysm-dda", "UTF-8");
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch b/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch
new file mode 100644
index 000000000000..c3140af03c8b
--- /dev/null
+++ b/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch
@@ -0,0 +1,20 @@
+diff --git a/src/translations.cpp b/src/translations.cpp
+index 3a86291..e6c5f84 100644
+--- a/src/translations.cpp
++++ b/src/translations.cpp
+@@ -176,15 +176,11 @@ void set_language()
+ 
+     // Step 2. Bind to gettext domain.
+     std::string locale_dir;
+-#if (defined __linux__ || (defined MACOSX && !defined TILES))
+     if( !FILENAMES["base_path"].empty() ) {
+         locale_dir = FILENAMES["base_path"] + "share/locale";
+     } else {
+         locale_dir = "lang/mo";
+     }
+-#else
+-    locale_dir = "lang/mo";
+-#endif // __linux__
+ 
+     const char *locale_dir_char = locale_dir.c_str();
+     bindtextdomain( "cataclysm-dda", locale_dir_char );
diff --git a/nixpkgs/pkgs/games/chessdb/default.nix b/nixpkgs/pkgs/games/chessdb/default.nix
new file mode 100644
index 000000000000..28cea5e0c779
--- /dev/null
+++ b/nixpkgs/pkgs/games/chessdb/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, tcl, tk, libX11, makeWrapper }:
+
+stdenv.mkDerivation {
+  name = "chessdb-3.6.19-beta-1";
+  
+  src = fetchurl {
+    url = mirror://sourceforge/chessdb/ChessDB-3.6.19-beta-1.tar.gz;
+    sha256 = "0brc3wln3bxp979iqj2w1zxpfd0pch8zzazhdmwf7acww4hrsz62";
+  };
+
+  buildInputs = [ tcl tk libX11 makeWrapper ];
+
+  makeFlags = [
+    "BINDIR=$(out)/bin"
+    "SHAREDIR=$(out)/share/chessdb"
+    "SOUNDSDIR=$(out)/share/chessdb/sounds"
+    "TBDIR=$(out)/share/chessdb/tablebases"
+    "MANDIR=$(out)/man"
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/chessdb --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}"
+  '';
+
+  meta = {
+    homepage = http://chessdb.sourceforge.net/;
+    description = "A free chess database";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/chessx/default.nix b/nixpkgs/pkgs/games/chessx/default.nix
new file mode 100644
index 000000000000..e4ec4dffa1db
--- /dev/null
+++ b/nixpkgs/pkgs/games/chessx/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, pkgconfig, zlib, qtbase, qtsvg, qttools, qtmultimedia, qmake, fetchurl, makeWrapper
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  name = "chessx-${version}";
+  version = "1.4.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/chessx/chessx-${version}.tgz";
+    sha256 = "1vb838byzmnyglm9mq3khh3kddb9g4g111cybxjzalxxlc81k5dd";
+  };
+
+  buildInputs = [
+    qtbase
+    qtsvg
+    qttools
+    qtmultimedia
+    zlib
+  ];
+
+  nativeBuildInputs = [ pkgconfig qmake makeWrapper ];
+
+  # RCC: Error in 'resources.qrc': Cannot find file 'i18n/chessx_da.qm'
+  enableParallelBuilding = false;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/bin"
+    mkdir -p "$out/share/applications"
+    cp -pr release/chessx "$out/bin"
+    cp -pr unix/chessx.desktop "$out/share/applications"
+
+    wrapProgram $out/bin/chessx \
+      --prefix QT_PLUGIN_PATH : ${qtbase}/lib/qt-5.${lib.versions.minor qtbase.version}/plugins
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://chessx.sourceforge.net/;
+    description = "ChessX allows you to browse and analyse chess games";
+    license = licenses.gpl2;
+    maintainers = [maintainers.luispedro];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/chocolate-doom/default.nix b/nixpkgs/pkgs/games/chocolate-doom/default.nix
new file mode 100644
index 000000000000..56a926e63f6d
--- /dev/null
+++ b/nixpkgs/pkgs/games/chocolate-doom/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, autoreconfHook, pkgconfig, SDL, SDL_mixer, SDL_net, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "chocolate-doom-2.3.0";
+  src = fetchurl {
+    url = "https://github.com/chocolate-doom/chocolate-doom/archive/${name}.tar.gz";
+    sha256 = "0i57smxmbhxj0wgvxq845ba9zsn5nx5wmzkl71rdchyd4q5jmida";
+  };
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ SDL SDL_mixer SDL_net ];
+  patchPhase = ''
+    sed -e 's#/games#/bin#g' -i src{,/setup}/Makefile.am
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://chocolate-doom.org/;
+    description = "A Doom source port that accurately reproduces the experience of Doom as it was played in the 1990s";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.unix;
+    hydraPlatforms = stdenv.lib.platforms.linux; # darwin times out
+    maintainers = with stdenv.lib.maintainers; [ MP2E ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/ckan/default.nix b/nixpkgs/pkgs/games/ckan/default.nix
new file mode 100644
index 000000000000..47ab73ca269e
--- /dev/null
+++ b/nixpkgs/pkgs/games/ckan/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, makeWrapper, perl, mono, gtk2, curl }:
+
+stdenv.mkDerivation rec {
+  name = "ckan-${version}";
+  version = "1.16.1";
+
+  src = fetchFromGitHub {
+    owner = "KSP-CKAN";
+    repo = "CKAN";
+    rev = "v${version}";
+    sha256 = "0lfvl8w09lakz35szp5grfvhq8xx486f5igvj1m6azsql4n929lg";
+  };
+
+  buildInputs = [ makeWrapper perl mono ];
+
+  postPatch = ''
+    substituteInPlace bin/build \
+      --replace /usr/bin/perl ${perl}/bin/perl
+  '';
+
+  # Tests don't currently work, as they try to write into /var/empty.
+  doCheck = false;
+  checkTarget = "test";
+
+  libraries = stdenv.lib.makeLibraryPath [ gtk2 curl ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    for exe in *.exe; do
+      install -m 0644 $exe $out/bin
+      makeWrapper ${mono}/bin/mono $out/bin/$(basename $exe .exe) \
+        --add-flags $out/bin/$exe \
+        --set LD_LIBRARY_PATH $libraries
+    done
+  '';
+
+  meta = {
+    description = "Mod manager for Kerbal Space Program";
+    homepage = https://github.com/KSP-CKAN/CKAN;
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.Baughn ];
+    platforms = stdenv.lib.platforms.all;
+  };    
+}
diff --git a/nixpkgs/pkgs/games/cockatrice/default.nix b/nixpkgs/pkgs/games/cockatrice/default.nix
new file mode 100644
index 000000000000..fa3b906268dc
--- /dev/null
+++ b/nixpkgs/pkgs/games/cockatrice/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, cmake, qtbase, qtmultimedia, protobuf, qttools
+}:
+
+stdenv.mkDerivation rec {
+    name = "${pname}-unstable-${version}";
+    pname = "cockatrice";
+    version = "2017-01-20";
+
+    src = fetchurl {
+        url = "https://github.com/Cockatrice/Cockatrice/archive/${version}-Release.tar.gz";
+        sha256 = "1gbcn8vffqdagidlamx670jxymhzaw28r4c6aqg3pq0s6by1l65f";
+    };
+
+    buildInputs = [
+        cmake qtbase qtmultimedia protobuf qttools
+    ];
+
+    meta = {
+        repositories.git = git://github.com/Cockatrice/Cockatrice.git;
+        description = "A cross-platform virtual tabletop for multiplayer card games";
+        license = stdenv.lib.licenses.gpl2;
+        maintainers = with stdenv.lib.maintainers; [ spencerjanssen ];
+      platforms = with stdenv.lib.platforms; linux;
+    };
+}
diff --git a/nixpkgs/pkgs/games/commandergenius/default.nix b/nixpkgs/pkgs/games/commandergenius/default.nix
new file mode 100644
index 000000000000..45be0a3085e4
--- /dev/null
+++ b/nixpkgs/pkgs/games/commandergenius/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, SDL2, SDL2_image, pkgconfig
+, libvorbis, libGL, boost, cmake, zlib, curl, SDL2_mixer, python3
+}:
+
+stdenv.mkDerivation rec {
+  name = "commandergenius-${version}";
+  version = "2.2.2";
+
+  src = fetchFromGitHub {
+    owner = "gerstrong";
+    repo = "Commander-Genius";
+    rev = "v${version}";
+    sha256 = "1mfw25pgr492ayqw3b85mwp20wh6anrr90gdy605nv1yjma62pmj";
+  };
+
+  buildInputs = [ SDL2 SDL2_image SDL2_mixer libGL boost libvorbis zlib curl python3 ];
+
+  preConfigure = ''
+    export cmakeFlags="$cmakeFlags -DCMAKE_INSTALL_PREFIX=$out -DSHAREDIR=$out/share"
+    export makeFlags="$makeFlags DESTDIR=$(out)"
+  '';
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  postPatch = ''
+    NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(sdl2-config --cflags)"
+    sed -i 's,APPDIR games,APPDIR bin,' src/install.cmake
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Modern Interpreter for the Commander Keen Games";
+    longDescription = ''
+      Commander Genius is an open-source clone of
+      Commander Keen which allows you to play
+      the games, and some of the mods
+      made for it. All of the original data files
+      are required to do so
+    '';
+    homepage = https://github.com/gerstrong/Commander-Genius;
+    maintainers = with maintainers; [ hce ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/construo/default.nix b/nixpkgs/pkgs/games/construo/default.nix
new file mode 100644
index 000000000000..c6ccac69b8cb
--- /dev/null
+++ b/nixpkgs/pkgs/games/construo/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, libX11, zlib, xorgproto, libGL ? null, freeglut ? null }:
+
+stdenv.mkDerivation rec {
+  name = "construo-${version}";
+  version = "0.2.3";
+
+  src = fetchurl {
+    url = "https://github.com/Construo/construo/releases/download/v${version}/${name}.tar.gz";
+    sha256 = "1wmj527hbj1qv44cdsj6ahfjrnrjwg2dp8gdick8nd07vm062qxa";
+  };
+
+  buildInputs = [ libX11 zlib xorgproto ]
+    ++ stdenv.lib.optional (libGL != null) libGL
+    ++ stdenv.lib.optional (freeglut != null) freeglut;
+
+  preConfigure = ''
+    substituteInPlace src/Makefile.in \
+      --replace games bin
+  '';
+
+  meta = {
+    description = "Masses and springs simulation game";
+    homepage = http://fs.fsf.org/construo/;
+    license = stdenv.lib.licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/games/crack-attack/crack-attack-1.1.14-gcc43.patch b/nixpkgs/pkgs/games/crack-attack/crack-attack-1.1.14-gcc43.patch
new file mode 100644
index 000000000000..fb2910d128ee
--- /dev/null
+++ b/nixpkgs/pkgs/games/crack-attack/crack-attack-1.1.14-gcc43.patch
@@ -0,0 +1,10 @@
+--- crack-attack-1.1.14/src/Game.h
++++ crack-attack-1.1.14/src/Game.h
+@@ -34,6 +34,7 @@
+ #include <climits>
+ #include <cstdlib>
+ #include <cmath>
++#include <cstring>
+ 
+ #ifdef __MINGW32__
+ #  include <windows.h>
diff --git a/nixpkgs/pkgs/games/crack-attack/crack-attack-1.1.14-glut.patch b/nixpkgs/pkgs/games/crack-attack/crack-attack-1.1.14-glut.patch
new file mode 100644
index 000000000000..4daea4c53a28
--- /dev/null
+++ b/nixpkgs/pkgs/games/crack-attack/crack-attack-1.1.14-glut.patch
@@ -0,0 +1,10 @@
+--- crack-attack-1.1.14/src/Attack.cxx
++++ crack-attack-1.1.14/src/Attack.cxx
+@@ -83,6 +83,7 @@
+   int height = -1, width = -1;
+   
+   player_name[0] = '\0';
++  glutInit(&argc, argv);
+   parseCommandLine(argc, argv, mode, port, host_name, player_name, height, width);
+   run_crack_attack(mode, port, host_name, player_name, height, width);
+ 
diff --git a/nixpkgs/pkgs/games/crack-attack/default.nix b/nixpkgs/pkgs/games/crack-attack/default.nix
new file mode 100644
index 000000000000..bb06bec411bb
--- /dev/null
+++ b/nixpkgs/pkgs/games/crack-attack/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, gtk2, freeglut, SDL, SDL_mixer, libGLU_combined, libXi, libXmu }:
+
+stdenv.mkDerivation {
+  name = "crack-attack-1.1.14";
+
+  src = fetchurl {
+    url = mirror://savannah/crack-attack/crack-attack-1.1.14.tar.gz;
+    sha256 = "1sakj9a2q05brpd7lkqxi8q30bccycdzd96ns00s6jbxrzjlijkm";
+  };
+
+  patches = [
+    ./crack-attack-1.1.14-gcc43.patch
+    ./crack-attack-1.1.14-glut.patch
+  ];
+
+  configureFlags = [ "--enable-sound=yes" ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 freeglut SDL SDL_mixer libGLU_combined libXi libXmu ];
+
+  hardeningDisable = [ "format" ];
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "A fast-paced puzzle game inspired by the classic Super NES title Tetris Attack!";
+    homepage = https://www.nongnu.org/crack-attack/;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.piotr ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/crafty/default.nix b/nixpkgs/pkgs/games/crafty/default.nix
new file mode 100644
index 000000000000..9526512f15cc
--- /dev/null
+++ b/nixpkgs/pkgs/games/crafty/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "crafty-${version}";
+  version = "25.0.1";
+
+  src = fetchurl {
+    url = "http://www.craftychess.com/downloads/source/crafty-${version}.zip";
+    sha256 = "0aqgj2q7kdlgbha01qs869cwyja13bc7q2lh4nfhlba2pklknsm8";
+  };
+
+  bookBin = fetchurl {
+    url = http://www.craftychess.com/downloads/book/book.bin;
+    sha256 = "10rrgkr3hxm7pxdbc2jq8b5g74gfhzk4smahks3k8am1cmyq4p7r";
+  };
+
+  startPgn = fetchurl {
+    url = http://craftychess.com/downloads/book/start.pgn.gz;
+    sha256 = "12g70mgfifwssfvndzq94pin34dizlixhsga75vgj7dakysi2p7f";
+  };
+
+  buildInputs = [ unzip ];
+
+  unpackPhase = ''
+    mkdir "craftysrc"
+    unzip $src -d craftysrc
+    gunzip -c $startPgn > "craftysrc/start.pgn"
+  '';
+
+  buildPhase = ''
+    cd craftysrc
+    make unix-gcc
+  '';
+
+  installPhase = ''
+    BUILDDIR="$PWD"
+    mkdir -p $out/bin
+    cp -p ./crafty $out/bin
+
+    mkdir -p $out/share/crafty
+    cd $out/share/crafty
+
+    $out/bin/crafty "books create $BUILDDIR/start.pgn 60"
+    rm -f *.001
+
+    cp -p ${bookBin} $out/share/crafty/book.bin
+
+    mv $out/bin/crafty $out/bin/.crafty-wrapped
+
+    cat - > $out/bin/crafty <<EOF
+    #! ${stdenv.shell}
+    #
+    # The books are copied from share/crafty to ~/.crafty/books the first time
+    # this script is run. You can restore them at any time just copying them
+    # again.
+    if [[ ! -d "\$HOME/.crafty/books" ]]; then
+      mkdir "\$HOME/.crafty/books" -p
+      cp "$out/share/crafty/"book*.bin "\$HOME/.crafty/books"
+      chmod ug+w "\$HOME/.crafty/books/"*
+    fi
+    exec $out/bin/.crafty-wrapped bookpath=\$HOME/.crafty/books "\$@"
+    EOF
+    chmod +x $out/bin/crafty
+  '';
+
+  meta = {
+    homepage = http://www.craftychess.com/;
+    description = "Chess program developed by Dr. Robert M. Hyatt";
+    license = stdenv.lib.licenses.unfree;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.jwiegley ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/crawl/crawl_purify.patch b/nixpkgs/pkgs/games/crawl/crawl_purify.patch
new file mode 100644
index 000000000000..808a4109f7b1
--- /dev/null
+++ b/nixpkgs/pkgs/games/crawl/crawl_purify.patch
@@ -0,0 +1,37 @@
+diff -ru3 crawl-ref-0.20.1-src-old/crawl-ref/source/Makefile crawl-ref-0.20.1-src-new/crawl-ref/source/Makefile
+--- crawl-ref-0.20.1-src-old/crawl-ref/source/Makefile	1970-01-01 03:00:01.000000000 +0300
++++ crawl-ref-0.20.1-src-new/crawl-ref/source/Makefile	2017-07-27 14:45:34.611221571 +0300
+@@ -286,13 +286,7 @@
+ LIBZ := contrib/install/$(ARCH)/lib/libz.a
+ 
+ ifndef CROSSHOST
+-	# FreeBSD keeps all of its userland includes in /usr/local so
+-	# look there
+-	ifeq ($(uname_S),FreeBSD)
+-		SQLITE_INCLUDE_DIR := /usr/local/include
+-	else
+-		SQLITE_INCLUDE_DIR := /usr/include
+-	endif
++	SQLITE_INCLUDE_DIR := ${sqlite}/include
+ else
+ 	# This is totally wrong, works only with some old-style setups, and
+ 	# on some architectures of Debian/new FHS multiarch -- excluding, for
+diff -ru3 crawl-ref-0.20.1-src-old/crawl-ref/source/util/find_font crawl-ref-0.20.1-src-new/crawl-ref/source/util/find_font
+--- crawl-ref-0.20.1-src-old/crawl-ref/source/util/find_font	1970-01-01 03:00:01.000000000 +0300
++++ crawl-ref-0.20.1-src-new/crawl-ref/source/util/find_font	2017-07-27 14:44:29.784235540 +0300
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ 
+-FONTDIRS="/usr/share/fonts /usr/local/share/fonts /usr/*/lib/X11/fonts"
++FONTDIRS="${fontsPath}/share/fonts"
+ 
+ name=$1
+ [ "$name" ] || { echo "Usage: $0 <fontname.ttf>" >&2; exit 100; }
+@@ -11,6 +11,6 @@
+         for dir in $FONTDIRS; do
+             [ -d "$dir" ] && echo "$dir"
+         done
+-    } | xargs -I% find % \( -type f -o -type l \) -iname "$name" -print \
++    } | xargs -I% find -L % \( -type f -o -type l \) -iname "$name" -print \
+       | head -n1
+ } 2>/dev/null
diff --git a/nixpkgs/pkgs/games/crawl/default.nix b/nixpkgs/pkgs/games/crawl/default.nix
new file mode 100644
index 000000000000..8966623e2b82
--- /dev/null
+++ b/nixpkgs/pkgs/games/crawl/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, lib, fetchFromGitHub, which, sqlite, lua5_1, perl, zlib, pkgconfig, ncurses
+, dejavu_fonts, libpng, SDL2, SDL2_image, SDL2_mixer, libGLU_combined, freetype, pngcrush, advancecomp
+, tileMode ? false, enableSound ? tileMode
+}:
+
+stdenv.mkDerivation rec {
+  name = "crawl-${version}${lib.optionalString tileMode "-tiles"}";
+  version = "0.22.1";
+
+  src = fetchFromGitHub {
+    owner = "crawl";
+    repo = "crawl";
+    rev = version;
+    sha256 = "19yzl241glv2zazifgz59bw3jlh4hj59xx5w002hnh9rp1w15rnr";
+  };
+
+  # Patch hard-coded paths in the makefile
+  patches = [ ./crawl_purify.patch ];
+
+  nativeBuildInputs = [ pkgconfig which perl pngcrush advancecomp ];
+
+  # Still unstable with luajit
+  buildInputs = [ lua5_1 zlib sqlite ncurses ]
+                ++ lib.optionals tileMode [ libpng SDL2 SDL2_image freetype libGLU_combined ]
+                ++ lib.optional enableSound SDL2_mixer;
+
+  preBuild = ''
+    cd crawl-ref/source
+    echo "${version}" > util/release_ver
+    patchShebangs 'util'
+    patchShebangs util/gen-mi-enum
+    rm -rf contrib
+  '';
+
+  fontsPath = lib.optionalString tileMode dejavu_fonts;
+
+  makeFlags = [ "prefix=$(out)" "FORCE_CC=cc" "FORCE_CXX=c++" "HOSTCXX=c++"
+                "SAVEDIR=~/.crawl" "sqlite=${sqlite.dev}"
+              ] ++ lib.optional tileMode "TILES=y"
+                ++ lib.optional enableSound "SOUND=y";
+
+  postInstall = lib.optionalString tileMode "mv $out/bin/crawl $out/bin/crawl-tiles";
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Open-source, single-player, role-playing roguelike game";
+    homepage = http://crawl.develz.org/;
+    longDescription = ''
+      Dungeon Crawl: Stone Soup, an open-source, single-player, role-playing
+      roguelike game of exploration and treasure-hunting in dungeons filled
+      with dangerous and unfriendly monsters in a quest to rescue the
+      mystifyingly fabulous Orb of Zot.
+    '';
+    platforms = platforms.linux;
+    license = with licenses; [ gpl2Plus bsd2 bsd3 mit licenses.zlib cc0 ];
+    maintainers = [ maintainers.abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/crispy-doom/default.nix b/nixpkgs/pkgs/games/crispy-doom/default.nix
new file mode 100644
index 000000000000..730c7f764cc2
--- /dev/null
+++ b/nixpkgs/pkgs/games/crispy-doom/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, autoreconfHook, pkgconfig, SDL2, SDL2_mixer, SDL2_net, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "crispy-doom-5.4";
+  src = fetchurl {
+    url = "https://github.com/fabiangreffrath/crispy-doom/archive/${name}.tar.gz";
+    sha256 = "0kks7vzp6cwmfv2s39z09vl9w897i8xijg1s8lfbg17viq8azb3x";
+  };
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ SDL2 SDL2_mixer SDL2_net ];
+  patchPhase = ''
+    sed -e 's#/games#/bin#g' -i src{,/setup}/Makefile.am
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://fabiangreffrath.github.io/crispy-doom;
+    description = "A limit-removing enhanced-resolution Doom source port based on Chocolate Doom";
+    longDescription = "Crispy Doom is a limit-removing enhanced-resolution Doom source port based on Chocolate Doom. Its name means that 640x400 looks \"crisp\" and is also a slight reference to its origin.";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ neonfuz ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/crrcsim/default.nix b/nixpkgs/pkgs/games/crrcsim/default.nix
new file mode 100644
index 000000000000..98baafbb2fd2
--- /dev/null
+++ b/nixpkgs/pkgs/games/crrcsim/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, libGLU_combined, SDL, SDL_mixer, plib, libjpeg }:
+let
+  version = "0.9.13";
+in
+stdenv.mkDerivation rec {
+  name = "crrcsim-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/crrcsim/${name}.tar.gz";
+    sha256 = "abe59b35ebb4322f3c48e6aca57dbf27074282d4928d66c0caa40d7a97391698";
+  };
+
+  buildInputs = [
+    libGLU_combined SDL SDL_mixer plib libjpeg
+  ];
+
+  patches = [
+    ./gcc6.patch
+  ];
+
+  meta = {
+    description = "A model-airplane flight simulator";
+    maintainers = with stdenv.lib.maintainers; [ raskin the-kenny ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/games/crrcsim/gcc6.patch b/nixpkgs/pkgs/games/crrcsim/gcc6.patch
new file mode 100644
index 000000000000..c19f28c514d7
--- /dev/null
+++ b/nixpkgs/pkgs/games/crrcsim/gcc6.patch
@@ -0,0 +1,13 @@
+diff --git c/src/mod_video/crrc_animation.cpp i/src/mod_video/crrc_animation.cpp
+index ee7d7f4..855b106 100644
+--- c/src/mod_video/crrc_animation.cpp
++++ i/src/mod_video/crrc_animation.cpp
+@@ -84,7 +84,7 @@ void createAnimation(SimpleXMLTransfer *animation, ssgEntity* model)
+       else
+       {
+         std::cerr << "createAnimation: unknown animation type \'"
+-                  << type << "\'" << std::cerr;
++                  << type << "\'" << std::endl;
+       }
+       
+       if (anim != NULL)
diff --git a/nixpkgs/pkgs/games/cutemaze/default.nix b/nixpkgs/pkgs/games/cutemaze/default.nix
new file mode 100644
index 000000000000..c77e0c8b4850
--- /dev/null
+++ b/nixpkgs/pkgs/games/cutemaze/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, qmake, qttools, qtsvg }:
+
+stdenv.mkDerivation rec {
+  name = "cutemaze-${version}";
+  version = "1.2.4";
+
+  src = fetchurl {
+    url = "https://gottcode.org/cutemaze/${name}-src.tar.bz2";
+    sha256 = "0l727j28igs7cx6gvxs43vvzhp3hk0z61df7sprp1vdxzpzzfifl";
+  };
+
+  nativeBuildInputs = [ qmake qttools ];
+
+  buildInputs = [ qtsvg ];
+
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/Applications
+    mv CuteMaze.app $out/Applications
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://gottcode.org/cutemaze/;
+    description = "Simple, top-down game in which mazes are randomly generated";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/cuyo/default.nix b/nixpkgs/pkgs/games/cuyo/default.nix
new file mode 100644
index 000000000000..19d857a8e78c
--- /dev/null
+++ b/nixpkgs/pkgs/games/cuyo/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, SDL, SDL_mixer, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "cuyo-${version}";
+  version = "2.1.0";
+  
+  src = fetchurl {
+     url = https://download.savannah.gnu.org/releases/cuyo/cuyo-2.1.0.tar.gz;
+     sha256 = "17yqv924x7yvwix7yz9jdhgyar8lzdhqvmpvv0any8rdkajhj23c";
+     };
+
+  buildInputs = [ SDL SDL_mixer zlib ];
+     
+  meta = {
+     homepage = http://karimmi.de/cuyo;
+     description = "Stacking blocks game, with different rules for each level";
+     license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+  
+}
diff --git a/nixpkgs/pkgs/games/dhewm3/default.nix b/nixpkgs/pkgs/games/dhewm3/default.nix
new file mode 100644
index 000000000000..8b92c2e9d6fb
--- /dev/null
+++ b/nixpkgs/pkgs/games/dhewm3/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, cmake, SDL2, libGLU_combined, zlib, libjpeg, libogg, libvorbis
+, openal, curl }:
+
+stdenv.mkDerivation rec {
+  name = "dhewm3-${version}";
+  version = "1.5.0";
+
+  src = fetchFromGitHub {
+    owner = "dhewm";
+    repo = "dhewm3";
+    rev = version;
+    sha256 = "0wsabvh1x4g12xmhzs2m2pgri2q9sir1w3m2r7fpy6kzxp32hqdk";
+  };
+
+  # Add libGLU_combined linking
+  patchPhase = ''
+    sed -i 's/\<idlib\()\?\)$/idlib GL\1/' neo/CMakeLists.txt
+  '';
+
+  preConfigure = ''
+    cd "$(ls -d dhewm3-*.src)"/neo
+  '';
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ SDL2 libGLU_combined zlib libjpeg libogg libvorbis openal curl ];
+
+  enableParallelBuilding = true;
+
+  hardeningDisable = [ "format" ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/dhewm/dhewm3;
+    description = "Doom 3 port to SDL";
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = with maintainers; [ MP2E ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/duckmarines/default.nix b/nixpkgs/pkgs/games/duckmarines/default.nix
new file mode 100644
index 000000000000..b4dca34b11fd
--- /dev/null
+++ b/nixpkgs/pkgs/games/duckmarines/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, unzip, love, lua, makeWrapper, makeDesktopItem }:
+
+let
+  pname = "duckmarines";
+  version = "1.0c";
+
+  icon = fetchurl {
+    url = "http://tangramgames.dk/img/thumb/duckmarines.png";
+    sha256 = "07ypbwqcgqc5f117yxy9icix76wlybp1cmykc8f3ivdps66hl0k5";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "duckmarines";
+    exec = "${pname}";
+    icon = "${icon}";
+    comment = "Duck-themed action puzzle video game";
+    desktopName = "Duck Marines";
+    genericName = "duckmarines";
+    categories = "Game;";
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/SimonLarsen/${pname}/releases/download/v${version}/${pname}-1.0-love.zip";
+    sha256 = "0fpzbsgrhbwm1lff9gyzh6c9jigw328ngddvrj5w7qmjcm2lv6lv";
+  };
+
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ lua love ];
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase =
+  ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/games/lovegames
+
+    cp -v ./${pname}-1.0.love $out/share/games/lovegames/${pname}.love
+
+    makeWrapper ${love}/bin/love $out/bin/${pname} --add-flags $out/share/games/lovegames/${pname}.love
+
+    chmod +x $out/bin/${pname}
+    mkdir -p $out/share/applications
+    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Duck-themed action puzzle video game";
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.linux;
+    license = licenses.free;
+    downloadPage = http://tangramgames.dk/games/duckmarines;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/default.nix
new file mode 100644
index 000000000000..88a6d72bc485
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/default.nix
@@ -0,0 +1,116 @@
+{ pkgs, stdenv, stdenvNoCC, gccStdenv, lib, recurseIntoAttrs }:
+
+# To whomever it may concern:
+#
+# This directory menaces with spikes of Nix code. It is terrifying.
+#
+# If this is your first time here, you should probably install the dwarf-fortress-full package,
+# for instance with:
+#
+# environment.systemPackages = [ pkgs.dwarf-fortress-packages.dwarf-fortress-full ];
+#
+# You can adjust its settings by using override, or compile your own package by
+# using the other packages here.
+#
+# For example, you can enable the FPS indicator, disable the intro, pick a
+# theme other than phoebus (the default for dwarf-fortress-full), _and_ use
+# an older version with something like:
+#
+# environment.systemPackages = [
+#   (pkgs.dwarf-fortress-packages.dwarf-fortress-full.override {
+#      dfVersion = "0.44.11";
+#      theme = "cla";
+#      enableIntro = false;
+#      enableFPS = true;
+#   })
+# ]
+#
+# Take a look at lazy-pack.nix to see all the other options.
+#
+# You will find the configuration files in ~/.local/share/df_linux/data/init. If
+# you un-symlink them and edit, then the scripts will avoid overwriting your
+# changes on later launches, but consider extending the wrapper with your
+# desired options instead.
+
+with lib;
+
+let
+  callPackage = pkgs.newScope self;
+
+  # The latest Dwarf Fortress version. Maintainers: when a new version comes
+  # out, ensure that (unfuck|dfhack|twbt) are all up to date before changing
+  # this.
+  latestVersion = "0.44.12";
+
+  # Converts a version to a package name.
+  versionToName = version: "dwarf-fortress_${lib.replaceStrings ["."] ["_"] version}";
+
+  # A map of names to each Dwarf Fortress package we know about.
+  df-games = lib.listToAttrs (map (dfVersion: {
+    name = versionToName dfVersion;
+    value =
+      let
+        # I can't believe this syntax works. Spikes of Nix code indeed...
+        dwarf-fortress = callPackage ./game.nix {
+          inherit dfVersion;
+          inherit dwarf-fortress-unfuck;
+        };
+
+        # unfuck is linux-only right now, we will only use it there.
+        dwarf-fortress-unfuck = if stdenv.isLinux then callPackage ./unfuck.nix { inherit dfVersion; }
+                                else null;
+
+        twbt = callPackage ./twbt { inherit dfVersion; };
+
+        dfhack = callPackage ./dfhack {
+          inherit (pkgs.perlPackages) XMLLibXML XMLLibXSLT;
+          inherit dfVersion twbt;
+          stdenv = gccStdenv;
+        };
+
+        dwarf-therapist = callPackage ./dwarf-therapist/wrapper.nix {
+          inherit dwarf-fortress;
+          dwarf-therapist = pkgs.qt5.callPackage ./dwarf-therapist {
+            texlive = pkgs.texlive.combine {
+              inherit (pkgs.texlive) scheme-basic float caption wrapfig adjmulticol sidecap preprint enumitem;
+            };
+          };
+        };
+      in
+      callPackage ./wrapper {
+        inherit (self) themes;
+
+        dwarf-fortress = dwarf-fortress;
+        dwarf-fortress-unfuck = dwarf-fortress-unfuck;
+        twbt = twbt;
+        dfhack = dfhack;
+        dwarf-therapist = dwarf-therapist;
+      };
+  }) (lib.attrNames self.df-hashes));
+
+  self = rec {
+    df-hashes = builtins.fromJSON (builtins.readFile ./game.json);
+
+    # Aliases for the latest Dwarf Fortress and the selected Therapist install
+    dwarf-fortress = getAttr (versionToName latestVersion) df-games;
+    dwarf-therapist = dwarf-fortress.dwarf-therapist;
+    dwarf-fortress-original = dwarf-fortress.dwarf-fortress;
+
+    dwarf-fortress-full = callPackage ./lazy-pack.nix {
+      inherit df-games versionToName latestVersion;
+    };
+    
+    soundSense = callPackage ./soundsense.nix { };
+
+    legends-browser = callPackage ./legends-browser {};
+
+    themes = recurseIntoAttrs (callPackage ./themes {
+      stdenv = stdenvNoCC;
+    });
+
+    # Theme aliases
+    phoebus-theme = themes.phoebus;
+    cla-theme = themes.cla;
+  };
+
+in self // df-games
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/df_permission b/nixpkgs/pkgs/games/dwarf-fortress/df_permission
new file mode 100644
index 000000000000..b0121bb3fa37
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/df_permission
@@ -0,0 +1,40 @@
+From tarn.adams@gmail.com Sat Oct 30 00:56:16 2010
+Date: Fri, 29 Oct 2010 16:56:15 -0800
+From: Tarn Adams <tarn.adams@gmail.com>
+To: roconnor@theorem.ca
+Subject: Re: Dwarf Fortress Redistribution for NixOS
+
+Sure, that redistribution is fine.  I think I've handled the movie
+issue for next time now.  Thanks for the heads up on that.
+
+Tarn
+
+On Fri, Oct 29, 2010 at 6:56 AM,  <roconnor@theorem.ca> wrote:
+> I'd like to distribute a *slightly* modified version of Dwarf Fortress which
+> is needed to run it under the NixOS distribution of Linux (see
+> <http://nixos.org/>
+>
+> Modification: The interpreter location /lib/ld-linux.so.2 in
+> lib/Dwarf_Fortress is replaced with the location of ld-linux.so.2 under the
+> NixOS distribution (which is currently
+> /nix/store/l8x3fdy1r6zf441vnqa87lzsvxrjbdz9-glibc-2.11.1/lib/ld-linux.so.2
+> but might change at a later date to something similar).
+>
+> I don't need you to recompile Dwarf Fortress.  I can patch the binary itself
+> using patchelf.  I just would like your permission to redistrubute this
+> modified binary.
+>
+> Thanks, I'm looking forward to trying out your game and letting other Nix
+> users try it out too.
+>
+> P.S. the inital_movies are open in read/write mode instead of read-only mode
+> which causes some issues under NixOS because the inital_movies are stored
+> read-only.  I have a workaround, but you may want to consider opening these
+> files in read-only mode.
+>
+> --
+> Russell O'Connor                                      <http://r6.ca/>
+> ``All talk about `theft,''' the general counsel of the American Graphophone
+> Company wrote, ``is the merest claptrap, for there exists no property in
+> ideas musical, literary or artistic, except as defined by statute.''
+>
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/dfhack/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/dfhack/default.nix
new file mode 100644
index 000000000000..d65bdab84911
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/dfhack/default.nix
@@ -0,0 +1,138 @@
+{ stdenv, buildEnv, lib, fetchFromGitHub, cmake, writeScriptBin
+, perl, XMLLibXML, XMLLibXSLT, zlib
+, enableStoneSense ? false,  allegro5, libGLU_combined
+, enableTWBT ? true, twbt
+, SDL
+, dfVersion
+}:
+
+with lib;
+
+let
+  dfhack-releases = {
+    "0.43.05" = {
+      dfHackRelease = "0.43.05-r3.1";
+      sha256 = "1ds366i0qcfbn62w9qv98lsqcrm38npzgvcr35hf6ihqa6nc6xrl";
+      xmlRev = "860a9041a75305609643d465123a4b598140dd7f";
+      prerelease = false;
+    };
+    "0.44.05" = {
+      dfHackRelease = "0.44.05-r2";
+      sha256 = "1cwifdhi48a976xc472nf6q2k0ibwqffil5a4llcymcxdbgxdcc9";
+      xmlRev = "2794f8a6d7405d4858bac486a0bb17b94740c142";
+      prerelease = false;
+    };
+    "0.44.09" = {
+      dfHackRelease = "0.44.09-r1";
+      sha256 = "1nkfaa43pisbyik5inj5q2hja2vza5lwidg5z02jyh136jm64hwk";
+      xmlRev = "3c0bf63674d5430deadaf7befaec42f0ec1e8bc5";
+      prerelease = false;
+    };
+    "0.44.10" = {
+      dfHackRelease = "0.44.10-r2";
+      sha256 = "19bxsghxzw3bilhr8sm4axz7p7z8lrvbdsd1vdjf5zbg04rs866i";
+      xmlRev = "321bd48b10c4c3f694cc801a7dee6be392c09b7b";
+      prerelease = false;
+    };
+    "0.44.11" = {
+      dfHackRelease = "0.44.11-beta2.1";
+      sha256 = "1jgwcqg9m1ybv3szgnklp6zfpiw5mswla464dlj2gfi5v82zqbv2";
+      xmlRev = "f27ebae6aa8fb12c46217adec5a812cd49a905c8";
+      prerelease = true;
+    };
+    "0.44.12" = {
+      dfHackRelease = "0.44.12-r1";
+      sha256 = "0j03lq6j6w378z6cvm7jspxc7hhrqm8jaszlq0mzfvap0k13fgyy";
+      xmlRev = "23500e4e9bd1885365d0a2ef1746c321c1dd5094";
+      prerelease = false;
+    };
+  };
+
+  release = if hasAttr dfVersion dfhack-releases
+            then getAttr dfVersion dfhack-releases
+            else throw "[DFHack] Unsupported Dwarf Fortress version: ${dfVersion}";
+
+  version = release.dfHackRelease;
+
+  warning = if release.prerelease then builtins.trace "[DFHack] Version ${version} is a prerelease. Careful!"
+                                  else null;
+
+  # revision of library/xml submodule
+  xmlRev = release.xmlRev;
+
+  arch =
+    if stdenv.hostPlatform.system == "x86_64-linux" then "64"
+    else if stdenv.hostPlatform.system == "i686-linux" then "32"
+    else throw "Unsupported architecture";
+
+  fakegit = writeScriptBin "git" ''
+    #! ${stdenv.shell}
+    if [ "$*" = "describe --tags --long" ]; then
+      echo "${version}-unknown"
+    elif [ "$*" = "describe --tags --abbrev=8 --long" ]; then
+      echo "${version}-unknown"
+    elif [ "$*" = "describe --tags --abbrev=8 --exact-match" ]; then
+      echo "${version}"
+    elif [ "$*" = "rev-parse HEAD" ]; then
+      if [ "$(dirname "$(pwd)")" = "xml" ]; then
+        echo "${xmlRev}"
+      else
+        echo "refs/tags/${version}"
+      fi
+    elif [ "$*" = "rev-parse HEAD:library/xml" ]; then
+      echo "${xmlRev}"
+    else
+      exit 1
+    fi
+  '';
+
+  dfhack = stdenv.mkDerivation rec {
+    name = "dfhack-base-${version}";
+
+    # Beware of submodules
+    src = fetchFromGitHub {
+      owner = "DFHack";
+      repo = "dfhack";
+      rev = release.dfHackRelease;
+      sha256 = release.sha256;
+      fetchSubmodules = true;
+    };
+
+    patches = [ ./fix-stonesense.patch ];
+    nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ];
+    # We don't use system libraries because dfhack needs old C++ ABI.
+    buildInputs = [ zlib SDL ]
+               ++ lib.optionals enableStoneSense [ allegro5 libGLU_combined ];
+
+    preConfigure = ''
+      # Trick build system into believing we have .git
+      mkdir -p .git/modules/library/xml
+      touch .git/index .git/modules/library/xml/index
+    '';
+
+    preBuild = ''
+      export LD_LIBRARY_PATH="$PWD/depends/protobuf:$LD_LIBRARY_PATH"
+    '';
+
+    cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" "-DDOWNLOAD_RUBY=OFF" ]
+              ++ lib.optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=OFF" ];
+
+    enableParallelBuilding = true;
+  };
+in
+
+buildEnv {
+  name = "dfhack-${version}";
+
+  passthru = { inherit version dfVersion; };
+
+  paths = [ dfhack ] ++ lib.optionals enableTWBT [ twbt.lib ];
+
+  meta = with stdenv.lib; {
+    description = "Memory hacking library for Dwarf Fortress and a set of tools that use it";
+    homepage = https://github.com/DFHack/dfhack/;
+    license = licenses.zlib;
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = with maintainers; [ robbinch a1russell abbradar numinit ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/dfhack/fix-stonesense.patch b/nixpkgs/pkgs/games/dwarf-fortress/dfhack/fix-stonesense.patch
new file mode 100644
index 000000000000..da860cd55624
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/dfhack/fix-stonesense.patch
@@ -0,0 +1,23 @@
+From f5be6fe5fb192f01ae4551ed9217e97fd7f6a0ae Mon Sep 17 00:00:00 2001
+From: Herwig Hochleitner <hhochleitner@gmail.com>
+Date: Sun, 1 Oct 2017 18:01:43 +0200
+Subject: [PATCH] include <GL/glext.h>
+
+this fixes `GLhandleARB` not being defined
+---
+ plugins/stonesense/common.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/plugins/stonesense/common.h b/plugins/stonesense/common.h
+index eb36691..ef45389 100644
+--- a/plugins/stonesense/common.h
++++ b/plugins/stonesense/common.h
+@@ -31,6 +31,8 @@ using namespace df::enums;
+ #include <allegro5/allegro_opengl.h>
+ #include <allegro5/utf8.h>
+ 
++#include <GL/glext.h>
++
+ // allegro leaks X headers, undef some of it here:
+ #undef TileShape
+ #undef None
\ No newline at end of file
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
new file mode 100644
index 000000000000..652e4c184753
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, qtbase
+, qtdeclarative, cmake, texlive, ninja }:
+
+stdenv.mkDerivation rec {
+  name = "dwarf-therapist-${version}";
+  version = "41.0.2";
+
+  src = fetchFromGitHub {
+    owner = "Dwarf-Therapist";
+    repo = "Dwarf-Therapist";
+    rev = "v${version}";
+    sha256 = "0cvnk1dkszh7q7viv3i1v3ifzv1w0xyz69mifa1cbvbi47z2dh0d";
+  };
+
+  buildInputs = [ qtbase qtdeclarative ];
+  nativeBuildInputs = [ texlive cmake ninja ];
+
+  installPhase = if stdenv.isDarwin then ''
+    mkdir -p $out/Applications
+    cp -r DwarfTherapist.app $out/Applications
+  '' else null;
+
+  meta = with stdenv.lib; {
+    description = "Tool to manage dwarves in a running game of Dwarf Fortress";
+    maintainers = with maintainers; [ the-kenny abbradar bendlas numinit ];
+    license = licenses.mit;
+    platforms = platforms.unix;
+    homepage = https://github.com/Dwarf-Therapist/Dwarf-Therapist;
+  };
+}
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in b/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in
new file mode 100644
index 000000000000..77936c430e2b
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in
@@ -0,0 +1,26 @@
+#!@stdenv_shell@ -e
+
+[ -z "$DT_DIR" ] && DT_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/dwarftherapist"
+
+install_dir="@install@"
+therapist_dir="@therapist@"
+
+cat <<EOF >&2
+Using $DT_DIR as Dwarf Therapist overlay directory.
+EOF
+
+update_path() {
+  local path="$1"
+
+  mkdir -p "$DT_DIR/$(dirname "$path")"
+  if [ ! -e "$DT_DIR/$path" ] || [ -L "$DT_DIR/$path" ]; then
+    rm -f "$DT_DIR/$path"
+    ln -s "$install_dir/share/dwarftherapist/$path" "$DT_DIR/$path"
+  fi
+}
+
+cd "$install_dir/share/dwarftherapist"
+update_path memory_layouts
+
+QT_QPA_PLATFORM_PLUGIN_PATH="@qt_plugin_path@" \
+  exec "$therapist_dir/bin/dwarftherapist" "$@"
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix b/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix
new file mode 100644
index 000000000000..071ab2af0c5c
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix
@@ -0,0 +1,50 @@
+{ pkgs, stdenv, symlinkJoin, lib, dwarf-therapist, dwarf-fortress, makeWrapper }:
+
+let
+  platformSlug = if stdenv.targetPlatform.is32bit then
+    "linux32" else "linux64";
+  inifile = "linux/v0.${dwarf-fortress.baseVersion}.${dwarf-fortress.patchVersion}_${platformSlug}.ini";
+
+in
+  
+stdenv.mkDerivation rec {
+  name = "dwarf-therapist-${dwarf-therapist.version}";
+  
+  wrapper = ./dwarf-therapist.in;
+
+  paths = [ dwarf-therapist ];
+
+  buildInputs = [ makeWrapper ];
+
+  passthru = { inherit dwarf-fortress dwarf-therapist; };
+
+  buildCommand = ''
+    mkdir -p $out/bin
+    ln -s $out/bin/dwarftherapist $out/bin/DwarfTherapist
+    substitute $wrapper $out/bin/dwarftherapist \
+      --subst-var-by stdenv_shell ${stdenv.shell} \
+      --subst-var-by install $out \
+      --subst-var-by therapist ${dwarf-therapist} \
+      --subst-var-by qt_plugin_path "${pkgs.qt5.qtbase}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins/platforms"
+
+    chmod 755 $out/bin/dwarftherapist
+
+    # Fix up memory layouts
+    rm -rf $out/share/dwarftherapist/memory_layouts/linux
+    mkdir -p $out/share/dwarftherapist/memory_layouts/linux
+    orig_md5=$(cat "${dwarf-fortress}/hash.md5.orig" | cut -c1-8)
+    patched_md5=$(cat "${dwarf-fortress}/hash.md5" | cut -c1-8)
+    input_file="${dwarf-therapist}/share/dwarftherapist/memory_layouts/${inifile}"
+    output_file="$out/share/dwarftherapist/memory_layouts/${inifile}"
+
+    echo "[Dwarf Therapist Wrapper] Fixing Dwarf Fortress MD5 prefix:"
+    echo "  Input:   $input_file"
+    echo "  Search:  $orig_md5"
+    echo "  Output:  $output_file"
+    echo "  Replace: $patched_md5"
+
+    substitute "$input_file" "$output_file" --replace "$orig_md5" "$patched_md5"
+  '';
+
+  preferLocalBuild = true;
+}
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/game.json b/nixpkgs/pkgs/games/dwarf-fortress/game.json
new file mode 100644
index 000000000000..05fb0cf50800
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/game.json
@@ -0,0 +1,86 @@
+{
+  "0.43.05": {
+    "linux": "1r0b96yrdf24m9476k5x7rmp3faxr0kfwwdf35agpvlb1qbi6v45",
+    "linux32": "16l1lydpkbnl3zhz4i2snmjk7pps8vmw3zv0bjgr8dncbsrycd03",
+    "osx": "1j2zdkjnmxy8yn599pm0qmbi4zjp1m8h4ggqjxhyzp135h0lqqf9",
+    "osx32": "09ym4mflp5z78pk5mvj7b44xihnsvrxmh0b5kix6h1m6z3cc90l4",
+    "win": "0m337wh4c47ij1f3zrimvy7baff7nzrmgjbmrwdy89d0z90xpnx8",
+    "win_s": "0bjk5m1qkn3ldhqiwbq24y2m9fz9r574d54ngdb8b4ri2xfl1fbp",
+    "win32": "162rl9ygpj66pis87bqc5bwc0mk75hxv6ianhn87pbl4rh7g8ax8",
+    "win32_s": "0gv1jyw5fdskjjs27pr41grbmkk7ipqn0ry615f5g79k3mhl200i",
+    "legacy": "09lvbmg1gq257qchlbmq7hxc5nl9r39jpf73zhmwb5xfbpprn0zs",
+    "legacy_s": "023a5b27fm65w7gmzjssyyci70fdjk2zbv965y4n0f23kc4rj9gl",
+    "legacy32": "1m75arxj1q82l2dkk8qcargm3xczxlqi8krwvg3iimddky34gipq",
+    "legacy32_s": "1hgzsk66isfr5vcraxwgl7cvycl14kwf8w9kzxr8jyp5z7k24q29"
+  },
+  "0.44.05": {
+    "linux": "18bjyhjp5458bfbizm8vq4s00pqpfs097qp6pv76m84kgbc4ghg3",
+    "linux32": "1b9i4kf4c8s6bhqwn8jx100mg7fqp8nmswrai5w8dsma01py4amr",
+    "osx": "1ssc8vq3ad38x9c04j8gg96kxv0g2npi3jwcg40676byx5nrx7b6",
+    "osx32": "12i7x8idcbvp5h62jyc7b7j98jf4lrisnwglvnrms6jclj0b3g0q",
+    "win": "1kaifarjx0akg7s5a2ngfw0vm0vyr4jnax5rrbv96dliqn5knddz",
+    "win_s": "1a1xikrjdv4b0yfgnp5s8d6xn0njylynsqd8zixdc01vccl5kqm6",
+    "win32": "1j3cq0h7jdvxbsbpfxa7bli45smvy9m4fji0j6849kj7x0vcpwq4",
+    "win32_s": "10cw1n48ffkrv9ms07ka5b5370d9k2fm051cnnq03lkcvlwrq145",
+    "legacy": "0y7xpgmwn4nshhc7apyf8mj5ycl0q5vckdaviwzz6w1x31s3dp6n",
+    "legacy_s": "0j8rbw9ww1avmh8zhyzljjj6in87q4qffpffdl394fsi74n8px0d",
+    "legacy32": "0d3l4jvx53a01fjf1lf20ar9lfyykfhk05dlrfwz3w4k7vj4vvlf",
+    "legacy32_s": "1c5x9x44bblz7anhmk4y9a7p1b39b9k7gzvj4pi55jzfq0k60kl7"
+  },
+  "0.44.09": {
+    "linux": "1haikynkg1pqyrzzqk1qxm19p36ww58qp8brh3fjxssp4x71rcdy",
+    "linux32": "0lmbrdf7wjdwj5yx0khnq871yxvhfwqxjjyfkqcdy5ik18lvlkj8",
+    "osx": "01dss8g9lmi8majp6lxcfw166ydz4himkz6am5pi29gixaf4vfqs",
+    "osx32": "1iwlvmz1ir9k0kzn6726frmkznvsg9a99bbqnxvwcnq3nnnjxw3s",
+    "win": "08g5irgp59dfjgj3jxc8ixwzgnz2wghcl8cg1b1g4088dsf2x3x8",
+    "win_s": "1xyb4msn9wfrh7x136r8xn3sjz6z8c4zksbzifa0z0bpa3pdviap",
+    "win32": "0m8bs2mnyi1r4x84fwnfgd1ijdcf08xsq5zy84476svci932g5kz",
+    "win32_s": "0pl319qmyy96ibzlgj4wfj19dv1wzyg8ig6q11l4c7rivzc9286i",
+    "legacy": "0l8nrvppfzazhjsfkd5nd0bxnc6ljk8fs6yg8qh69g7q7zvzgnd3",
+    "legacy_s": "1c49z539a31czzq0rnhg6yrv1zbaja35sd0ssr4k7lsghjv84k1z",
+    "legacy32": "155xg6dpb8frlw7d9h7m1y0spw55wl4nkn7zrm70bpyp39pydlqp",
+    "legacy32_s": "05qkzjfx1ybrv96wya1dirdfxdkhj6a440sjpzwbqpkqgr8z57a3"
+  },
+  "0.44.10": {
+    "linux": "1cqm43hn3ar9d8a7y7dwq48ajp72cirn1gclh8r2fykkypprxmp2",
+    "linux32": "0gdb6sq8725nwdisxwha8f5b6arq570s73aj4gdrh611gxh13r6n",
+    "osx": "1wpa45d81q8f5mhqmaxvdkz93k6cm3pg7vpsqjjjsp5s961gd74g",
+    "osx32": "0rsy1n19n12gh8rddgi3db32in488f2nizq8kw25hga03hsh4r6x",
+    "win": "04i0ka12hmn3chsyfmk2pbknr1pdf3p8yaz7kv82ri4g6dvsjfv6",
+    "win_s": "01m6nqcrz4rhdc8wb31azj3vmjid8bdpqaf9wkz4g4vvjyy7xiyz",
+    "win32": "1nymin8wbzbh8gm2702dy7h5spdijdxnysdz71ldyl0xx4vw68d9",
+    "win32_s": "1skz0jpfm6j9bins04kn96f3v3k0kvjqlh25x3129r3hh8xacnd3",
+    "legacy": "0s84vpfr2b5y1kda9allqjrpkaxw15mkblk9dq08syhsj19vspa7",
+    "legacy_s": "18b7ikp7xy2y071h3ydfh5mq9hw9y303rdqyikvra5ji3n5p96cm",
+    "legacy32": "1yh2fl3qwpy6wrxavhn75grbjygymnfh746hxbmc60la7y5flrpy",
+    "legacy32_s": "0j65w2hxgpccg9qsaz14r82qvnvfd0pbl2gyx9fv8d77kxhkc4pw"
+  },
+  "0.44.11": {
+    "linux": "1qizfkxl2k6pn70is4vz94q4k55bc3pm13b2r6yqi6lw1cnna4sf",
+    "linux32": "11m39lfyrsxlw1g7f269q7fzwichg06l21fxhqzgvlvmzmxsf8q5",
+    "osx": "073hmcj7bm323m3xqi42605rkvmgmv83bnxz1byymgs8aqyfykkx",
+    "osx32": "0w5avnj86wprk8q0rb5qm9kxbigzk6dk0akqbw4m76jgg2jdmir7",
+    "win": "1yxyv1sycn5jc3g1y02d82154xydg3kbghis7l3xi28n3bh8387b",
+    "win_s": "1xzwl6c362wqgps911y9q8vndp8zyd20fc2p7pkzzmw2hrgfqi6q",
+    "win32": "16x2rg3gm3lh2akg7n057kkxxigb2ljz0nk685lmn4j0adq8l31p",
+    "win32_s": "1a2y220111d94mzj5y3jwpy062k8fw25akyp7yn3fwa17vwvn8zq",
+    "legacy": "0gfjmsfqj21hs4d1hm7fvppbdjspc4r2qnnp6mwcbgh67i5p5rdb",
+    "legacy_s": "1wr4hpzmhgl8haric3jpfd3kwqv1fi4vkb1gvaax5f7kplvfqfac",
+    "legacy32": "1cpzckwvqkxqn0c498mmh4papsjdi3mcvcp2vzlvj46kvdl3n0f0",
+    "legacy32_s": "024vzwfcrx7ms4dip0ccwd0vizzck2pwz2ryyvlz4rpjzhswj5gi"
+  },
+  "0.44.12": {
+    "win32": "0bxrc7zj4vgcgdwc130g6f5jnp13vgx9a2kn2l1jcc958x8a367g",
+    "linux32": "0fmr8diskmbh12s0bpfn5gky9lmrc7xxj6va5adjm6ahxv9jwr06",
+    "osx": "1md6r1pimmlhcn5gjqzg0ygbdwc2v125sfjy0f6gbfbykwcm7391",
+    "osx32": "1dbg7pavxw20r8iqc566fn558avgj5glsycvi6ggbvsh0rpw6n5v",
+    "win": "0zb5ximqi5j7vyvgjzfz7ycadh5sgb7jlyaa68x0sjlbybdr1min",
+    "win_s": "1ncf5zr1fggr5knf30l0wh7spp376v1jcc6m9c86zim8azcfx0y7",
+    "linux": "0ydr5lnysy45nsznqp5r2pysdqn3f0xkrkh9v9l1md111mriabas",
+    "win32_s": "1mxbjkikf010skrpng51r86jmv4nal51j5n1y9kyhv344bq6chr9",
+    "legacy": "11a212ynhx18p3k8hvdjx199din14wggxiwz191b4309fznzpprz",
+    "legacy_s": "05madj529y18ndxrih96mivbzng1vz2zbzicrcnj58i2084zm23f",
+    "legacy32": "0rapcydiic2nq6idjf7fg53xsxk8dxzyi1vflpz554ghdrnsmwjv",
+    "legacy32_s": "16fgbd3lx4r270dxqj6gr1g1iqjj8cv389h2hw1l646xx28g8d2m"
+  }
+}
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/game.nix b/nixpkgs/pkgs/games/dwarf-fortress/game.nix
new file mode 100644
index 000000000000..b5c80a0a56dc
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/game.nix
@@ -0,0 +1,101 @@
+{ stdenv, lib, fetchurl
+, SDL, dwarf-fortress-unfuck
+
+# Our own "unfuck" libs for macOS
+, ncurses, fmodex, gcc
+
+, dfVersion, df-hashes
+}:
+
+with lib;
+
+let
+  libpath = makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc dwarf-fortress-unfuck SDL ];
+
+  homepage = http://www.bay12games.com/dwarves/;
+
+  # Map Dwarf Fortress platform names to Nixpkgs platform names.
+  # Other srcs are avilable like 32-bit mac & win, but I have only
+  # included the ones most likely to be needed by Nixpkgs users.
+  platforms = {
+    "x86_64-linux" = "linux";
+    "i686-linux" = "linux32";
+    "x86_64-darwin" = "osx";
+    "i686-darwin" = "osx32";
+    "x86_64-cygwin" = "win";
+    "i686-cygwin" = "win32";
+  };
+
+  dfVersionTriple = splitString "." dfVersion;
+  baseVersion = elemAt dfVersionTriple 1;
+  patchVersion = elemAt dfVersionTriple 2;
+
+  game = if hasAttr dfVersion df-hashes
+         then getAttr dfVersion df-hashes
+         else throw "Unknown Dwarf Fortress version: ${dfVersion}";
+  dfPlatform = if hasAttr stdenv.hostPlatform.system platforms
+               then getAttr stdenv.hostPlatform.system platforms
+               else throw "Unsupported system: ${stdenv.hostPlatform.system}";
+  sha256 = if hasAttr dfPlatform game
+           then getAttr dfPlatform game
+           else throw "Unsupported dfPlatform: ${dfPlatform}";
+
+in
+
+stdenv.mkDerivation {
+  name = "dwarf-fortress-${dfVersion}";
+
+  src = fetchurl {
+    url = "${homepage}df_${baseVersion}_${patchVersion}_${dfPlatform}.tar.bz2";
+    inherit sha256;
+  };
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r * $out
+    rm $out/libs/lib*
+
+    exe=$out/${if stdenv.isLinux then "libs/Dwarf_Fortress"
+                                 else "dwarfort.exe"}
+
+    # Store the original hash
+    md5sum $exe | awk '{ print $1 }' > $out/hash.md5.orig
+  '' + optionalString stdenv.isLinux ''
+    patchelf \
+      --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
+      --set-rpath "${libpath}" \
+      $exe
+  '' + optionalString stdenv.isDarwin ''
+    # My custom unfucked dwarfort.exe for macOS. Can't use
+    # absolute paths because original doesn't have enough
+    # header space. Someone plz break into Tarn's house & put
+    # -headerpad_max_install_names into his LDFLAGS.
+
+    ln -s ${getLib ncurses}/lib/libncurses.dylib $out/libs
+    ln -s ${getLib gcc.cc}/lib/libstdc++.6.dylib $out/libs
+    ln -s ${getLib fmodex}/lib/libfmodex.dylib $out/libs
+
+    install_name_tool \
+      -change /usr/lib/libncurses.5.4.dylib \
+              @executable_path/libs/libncurses.dylib \
+      -change /usr/local/lib/x86_64/libstdc++.6.dylib \
+              @executable_path/libs/libstdc++.6.dylib \
+      $exe
+  '' + ''
+    # Store the new hash
+    md5sum $exe | awk '{ print $1 }' > $out/hash.md5
+  '';
+
+  passthru = {
+    inherit baseVersion patchVersion dfVersion;
+    updateScript = ./update.sh;
+  };
+
+  meta = {
+    description = "A single-player fantasy game with a randomly generated adventure world";
+    inherit homepage;
+    license = licenses.unfreeRedistributable;
+    platforms = attrNames platforms;
+    maintainers = with maintainers; [ a1russell robbinch roconnor the-kenny abbradar numinit ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/lazy-pack.nix b/nixpkgs/pkgs/games/dwarf-fortress/lazy-pack.nix
new file mode 100644
index 000000000000..3a81dcc9c931
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/lazy-pack.nix
@@ -0,0 +1,46 @@
+{ stdenvNoCC, lib, buildEnv, callPackage
+, df-games, themes, latestVersion, versionToName
+, dfVersion ? latestVersion
+  # This package should, at any given time, provide an opinionated "optimal"
+  # DF experience. It's the equivalent of the Lazy Newbie Pack, that is, and
+  # should contain every utility available unless you disable them.
+, enableDFHack ? stdenvNoCC.isLinux
+, enableTWBT ? enableDFHack
+, enableSoundSense ? true
+, enableStoneSense ? true
+, enableDwarfTherapist ? true
+, enableLegendsBrowser ? true, legends-browser
+, theme ? themes.phoebus
+# General config options:
+, enableIntro ? true
+, enableTruetype ? true
+, enableFPS ? false
+}:
+
+with lib;
+
+let
+  dfGame = versionToName dfVersion;
+  dwarf-fortress = if hasAttr dfGame df-games
+                   then getAttr dfGame df-games
+                   else throw "Unknown Dwarf Fortress version: ${dfVersion}";
+  dwarf-therapist = dwarf-fortress.dwarf-therapist;
+in
+buildEnv {
+  name = "dwarf-fortress-full";
+  paths = [
+    (dwarf-fortress.override {
+      inherit enableDFHack enableTWBT enableSoundSense enableStoneSense theme
+              enableIntro enableTruetype enableFPS;
+    })]
+    ++ lib.optional enableDwarfTherapist dwarf-therapist
+    ++ lib.optional enableLegendsBrowser legends-browser;
+
+  meta = with stdenvNoCC.lib; {
+    description = "An opinionated wrapper for Dwarf Fortress";
+    maintainers = with maintainers; [ Baughn numinit ];
+    license = licenses.mit;
+    platforms = platforms.all;
+    homepage = https://github.com/NixOS/nixpkgs/;
+  };
+}
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/legends-browser/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/legends-browser/default.nix
new file mode 100644
index 000000000000..3bc4fa9c4bb5
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/legends-browser/default.nix
@@ -0,0 +1,36 @@
+{ stdenvNoCC, buildEnv, writeShellScriptBin, fetchurl, jre }:
+
+let
+  name = "legends-browser-${version}";
+  version = "1.17.1";
+
+  jar = fetchurl {
+    url = "https://github.com/robertjanetzko/LegendsBrowser/releases/download/${version}/legendsbrowser-${version}.jar";
+    sha256 = "05b4ksbl4481rh3ykfirbp6wvxhppcd5mvclhn9995gsrcaj8gx9";
+  };
+  
+  script = writeShellScriptBin "legends-browser" ''
+    set -eu
+    BASE="$HOME/.local/share/df_linux/legends-browser/"
+    mkdir -p "$BASE"
+    cd "$BASE"
+    if [[ ! -e legendsbrowser.properties ]]; then
+      echo 'Creating initial configuration for legends-browser'
+      echo "last=$(cd ..; pwd)" > legendsbrowser.properties
+    fi
+    ${jre}/bin/java -jar ${jar}
+  '';
+in
+
+buildEnv {
+  inherit name;
+  paths = [ script ];
+
+  meta = with stdenvNoCC.lib; {
+    description = "A multi-platform, open source, java-based legends viewer for dwarf fortress";
+    maintainers = with maintainers; [ Baughn ];
+    license = licenses.mit;
+    platforms = platforms.all;
+    homepage = https://github.com/robertjanetzko/LegendsBrowser;
+  };
+}
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/soundsense.nix b/nixpkgs/pkgs/games/dwarf-fortress/soundsense.nix
new file mode 100644
index 000000000000..caa9adeefd06
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/soundsense.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchzip, dos2unix
+, soundPack ? stdenv.mkDerivation {
+    name = "soundsense-soundpack";
+    src = fetchzip {
+      url = "http://df.zweistein.cz/soundsense/soundpack.zip";
+      sha256 = "0qz0mjkp7wp0gxk3ws2x760awv8c9lkacj2fn9bz3gqqnq262ffa";
+    };
+    installPhase = ''
+      cp -r . $out
+    '';
+}}:
+
+stdenv.mkDerivation rec {
+  version = "2016-1_196";
+  dfVersion = "0.44.12";
+  inherit soundPack;
+  name = "soundsense-${version}";
+  src = fetchzip {
+    url = "http://df.zweistein.cz/soundsense/soundSense_${version}.zip";
+    sha256 = "1gkrs69l3xsh858yjp204ddp29m668j630akm7arssc9359wxqkk";
+  };
+  phases = [ "unpackPhase" "buildPhase" "installPhase" ];
+  nativeBuildInputs = [ dos2unix ];
+  buildPhase = ''
+    dos2unix soundSense.sh
+    chmod +x soundSense.sh
+  '';
+  installPhase = ''
+    mkdir $out
+    cp -R . $out/soundsense
+    ln -s $out/soundsense/dfhack $out/hack
+    ln -s $soundPack $out/soundsense/packs
+  '';
+  passthru = { inherit version dfVersion; };
+}
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/themes/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/themes/default.nix
new file mode 100644
index 000000000000..feb4782d7c32
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/themes/default.nix
@@ -0,0 +1,19 @@
+{lib, fetchFromGitHub, ...}:
+
+with builtins;
+
+listToAttrs (map (v: {
+  inherit (v) name;
+  value = fetchFromGitHub {
+    name = "${v.name}-${v.version}";
+    owner = "DFgraphics";
+    repo = v.name;
+    rev = v.version;
+    sha256 = v.sha256;
+    meta = with lib; {
+      platforms = platforms.all;
+      maintainers = [ maintainers.matthewbauer ];
+      license = licenses.free;
+    };
+  };
+}) (fromJSON (readFile ./themes.json)))
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/themes/themes.json b/nixpkgs/pkgs/games/dwarf-fortress/themes/themes.json
new file mode 100644
index 000000000000..f2cc4ed3ac7d
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/themes/themes.json
@@ -0,0 +1,72 @@
+[
+  {
+      "name": "taffer",
+      "version": "44.10a",
+      "sha256": "0gp8hmv55bp34db0caksdpd3kn2glh7sz03gyxknzdymh1cpy0qv"
+  },
+  {
+      "name": "spacefox",
+      "version": "44.10a",
+      "sha256": "0ngipq1aha8cd34k4hkrfbi238gp36qpymr2f87d3nwbj2vi9hmh"
+  },
+  {
+      "name": "gemset",
+      "version": "44.10a",
+      "sha256": "14q69dyqzhxsfv1a4vh17fx7r7mylfimmjrydz6ygdypblgc9zm6"
+  },
+  {
+      "name": "wanderlust",
+      "version": "44.10",
+      "sha256": "016acv0ab2wj4rn9slhbf626977zas6q4372f7avaf99ihcmwi85"
+  },
+  {
+      "name": "rally-ho",
+      "version": "44.10",
+      "sha256": "1pij5llnc8hfsqgyrwj1ak123wxhhk7yhlpnj033gwbpp0lnqz2x"
+  },
+  {
+      "name": "phoebus",
+      "version": "44.10",
+      "sha256": "1fvl5251wzjns159snhw01p214k53vpdlyj7piv545r23q7wg2ji"
+  },
+  {
+      "name": "obsidian",
+      "version": "44.10",
+      "sha256": "06lixlkprjd829zn10g5zljnxymsh81g31dj86hn2jvlch4dh98q"
+  },
+  {
+      "name": "mayday",
+      "version": "44.10",
+      "sha256": "1g15ha0w93iyj5ni2pavhwrsckhnw80xvwrvw4dbp5zx1y41f3x9"
+  },
+  {
+      "name": "jolly-bastion",
+      "version": "44.10",
+      "sha256": "038qvr08776rinlqa6zwb8qqxyrc75nnyyqjsasr2rf9d2f9yf8j"
+  },
+  {
+      "name": "ironhand",
+      "version": "44.10",
+      "sha256": "14hngixd4gkw0lzqzlkj9ljmrxr8b3wgjk67n6zysgyi3f38f5j2"
+  },
+  {
+      "name": "afro-graphics",
+      "version": "44.10",
+      "sha256": "050mrpy9q6g9y4133al7rdsj6c9hy2wva7jqmc56babvmmcpcc2j"
+  },
+  {
+      "name": "cla",
+      "version": "44.xx-v25",
+      "sha256": "1h8nwa939qzqklbi8vwsq9p2brvv7sc0pbzzrdjnb221lr9p58zk"
+  },
+  {
+      "name": "tergel",
+      "version": "44.03",
+      "sha256": "1kgk0cav5b6v7mca36gm84b2p556ibd8yy4rwbfc4i6i3hlsdw07"
+  },
+  {
+      "name": "autoreiv",
+      "version": "44.03",
+      "sha256": "03w9dp42718p5gnswynw3p9wz85y61gkzz60jf71arw1zhf23wm0"
+  }
+]
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix
new file mode 100644
index 000000000000..7c80c1012462
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix
@@ -0,0 +1,79 @@
+{ stdenvNoCC, lib, fetchurl, unzip
+, dfVersion
+}:
+
+with lib;
+
+let
+  twbt-releases = {
+    "0.43.05" = {
+      twbtRelease = "6.22";
+      sha256 = "0di5d38f6jj9smsz0wjcs1zav4zba6hrk8cbn59kwpb1wamsh5c7";
+      prerelease = false;
+    };
+    "0.44.05" = {
+      twbtRelease = "6.35";
+      sha256 = "0qjkgl7dsqzsd7pdq8a5bihhi1wplfkv1id7sj6dp3swjpsfxp8g";
+      prerelease = false;
+    };
+    "0.44.09" = {
+      twbtRelease = "6.41";
+      sha256 = "0nsq15z05pbhqjvw2xqs1a9b1n2ma0aalhc3vh3mi4cd4k7lxh44";
+      prerelease = false;
+    };
+    "0.44.10" = {
+      twbtRelease = "6.49";
+      sha256 = "1qjkc7k33qhxj2g18njzasccjqsis5y8zrw5vl90h4rs3i8ld9xz";
+      prerelease = false;
+    };
+    "0.44.11" = {
+      twbtRelease = "6.51";
+      sha256 = "1yclqmarjd97ch054h425a12r8a5ailmflsd7b39cg4qhdr1nii5";
+      prerelease = true;
+    };
+    "0.44.12" = {
+      twbtRelease = "6.54";
+      sha256 = "10gfd6vv0vk4v1r5hjbz7vf1zqys06dsad695gysc7fbcik2dakh";
+      prerelease = false;
+    };
+  };
+
+  release = if hasAttr dfVersion twbt-releases
+            then getAttr dfVersion twbt-releases
+            else throw "[TWBT] Unsupported Dwarf Fortress version: ${dfVersion}";
+
+  warning = if release.prerelease then builtins.trace "[TWBT] Version ${version} is a prerelease. Careful!"
+                                  else null;
+
+in
+
+stdenvNoCC.mkDerivation rec {
+  name = "twbt-${version}";
+  version = release.twbtRelease;
+
+  src = fetchurl {
+    url = "https://github.com/mifki/df-twbt/releases/download/v${version}/twbt-${version}-linux.zip";
+    sha256 = release.sha256;
+  };
+
+  sourceRoot = ".";
+
+  outputs = [ "lib" "art" "out" ];
+
+  buildInputs = [ unzip ];
+
+  installPhase = ''
+    mkdir -p $lib/hack/{plugins,lua} $art/data/art
+    cp -a */twbt.plug.so $lib/hack/plugins/
+    cp -a *.lua $lib/hack/lua/
+    cp -a *.png $art/data/art/
+  '';
+
+  meta = with stdenvNoCC.lib; {
+    description = "A plugin for Dwarf Fortress / DFHack that improves various aspects the game interface.";
+    maintainers = with maintainers; [ Baughn numinit ];
+    license = licenses.mit;
+    platforms = platforms.linux;
+    homepage = https://github.com/mifki/df-twbt;
+  };
+}
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/unfuck.nix b/nixpkgs/pkgs/games/dwarf-fortress/unfuck.nix
new file mode 100644
index 000000000000..c4d01b3ff392
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/unfuck.nix
@@ -0,0 +1,84 @@
+{ stdenv, lib, fetchFromGitHub, cmake
+, libGL, libSM, SDL, SDL_image, SDL_ttf, glew, openalSoft
+, ncurses, glib, gtk2, libsndfile, zlib
+, dfVersion
+}:
+
+with lib;
+
+let
+  unfuck-releases = {
+    "0.43.05" = {
+      unfuckRelease = "0.43.05";
+      sha256 = "173dyrbxlzqvjf1j3n7vpns4gfjkpyvk9z16430xnmd5m6nda8p2";
+    };
+    "0.44.05" = {
+      unfuckRelease = "0.44.05";
+      sha256 = "00yj4l4gazxg4i6fj9rwri6vm17i6bviy2mpkx0z5c0mvsr7s14b";
+    };
+    "0.44.09" = {
+      unfuckRelease = "0.44.09";
+      sha256 = "138p0v8z2x47f0fk9k6g75ikw5wb3vxldwv5ggbkf4hhvlw6lvzm";
+    };
+    "0.44.10" = {
+      unfuckRelease = "0.44.10";
+      sha256 = "0vb19qx2ibc79j4bgbk9lskb883qfb0815zw1dfz9k7rqwal8mzj";
+    };
+    "0.44.11" = {
+      unfuckRelease = "0.44.11.1";
+      sha256 = "1kszkb1d1vll8p04ja41nangsaxb5lv4p3xh2jhmsmipfixw7nvz";
+    };
+    "0.44.12" = {
+      unfuckRelease = "0.44.12";
+      sha256 = "1kszkb1d1vll8p04ja41nangsaxb5lv4p3xh2jhmsmipfixw7nvz";
+    };
+  };
+
+  release = if hasAttr dfVersion unfuck-releases
+            then getAttr dfVersion unfuck-releases
+            else throw "[unfuck] Unknown Dwarf Fortress version: ${dfVersion}";
+in
+
+stdenv.mkDerivation {
+  name = "dwarf_fortress_unfuck-${release.unfuckRelease}";
+
+  src = fetchFromGitHub {
+    owner = "svenstaro";
+    repo = "dwarf_fortress_unfuck";
+    rev = release.unfuckRelease;
+    sha256 = release.sha256;
+  };
+
+  cmakeFlags = [
+    "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
+    "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [
+    libSM SDL SDL_image SDL_ttf glew openalSoft
+    ncurses gtk2 libsndfile zlib libGL
+  ];
+
+  # Don't strip unused symbols; dfhack hooks into some of them.
+  dontStrip = true;
+
+  installPhase = ''
+    install -D -m755 ../build/libgraphics.so $out/lib/libgraphics.so
+  '';
+
+  enableParallelBuilding = true;
+
+  # Breaks dfhack because of inlining.
+  hardeningDisable = [ "fortify" ];
+
+  passthru = { inherit dfVersion; };
+
+  meta = with stdenv.lib; {
+    description = "Unfucked multimedia layer for Dwarf Fortress";
+    homepage = https://github.com/svenstaro/dwarf_fortress_unfuck;
+    license = licenses.free;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar numinit ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/update.sh b/nixpkgs/pkgs/games/dwarf-fortress/update.sh
new file mode 100755
index 000000000000..3db68122d358
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/update.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p jq nix coreutils curl
+
+# systems to generate hashes for
+systems='linux linux32 osx osx32
+	 win win_s win32 win32_s
+         legacy legacy_s legacy32 legacy32_s'
+
+if [ $# -eq 0 ]; then
+    versions="$(curl http://www.bay12games.com/dwarves/ \
+		   | grep 'DOWNLOAD DWARF FORTRESS' \
+		   | sed 's/.*DOWNLOAD DWARF FORTRESS \([0-9.]*\) .*/\1/')"
+else
+    versions="$@"
+fi
+
+tmp1="$(mktemp)"
+tmp2="$(mktemp)"
+for version in $versions; do
+    for system in $systems; do
+	echo -n $version,$system,
+	ver=$(echo $version | sed -e s,^0\.,, | tr . _)
+	if [[ "$system" = *win* ]] || [[ "$system" = *legacy* ]]; then
+	    ext=zip
+	else
+	    ext=tar.bz2
+	fi
+	nix-prefetch-url \
+	    http://www.bay12games.com/dwarves/df_${ver}_${system}.${ext}
+    done
+done | jq --slurp --raw-input \
+	  'split("\n")  | .[:-1] | map(split(",")) |
+           map({ "version": .[0], "platform": .[1], "sha256": .[2] }) |
+	   group_by(.version) |
+	   map(map({"version": .version, (.platform): .sha256}) | add |
+	       {(.version): .} | map_values(del(.version))) | add' \
+	  > "$tmp1"
+
+# Append $tmp1 to game.json. There should be a better way to handle
+# this but all other attempts failed for me.
+jq -M --argfile a "$tmp1" '. + $a' < "$(dirname "$0")/game.json" > "$tmp2"
+cat "$tmp2" > "$(dirname "$0")/game.json"
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/wrapper/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/default.nix
new file mode 100644
index 000000000000..8672de3af84f
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/default.nix
@@ -0,0 +1,116 @@
+{ stdenv, lib, buildEnv, substituteAll, runCommand
+, dwarf-fortress, dwarf-fortress-unfuck
+, dwarf-therapist
+, enableDFHack ? false, dfhack
+, enableSoundSense ? false, soundSense, jdk
+, enableStoneSense ? false
+, enableTWBT ? false, twbt
+, themes ? {}
+, theme ? null
+# General config options:
+, enableIntro ? true
+, enableTruetype ? true
+, enableFPS ? false
+}:
+
+let
+  dfhack_ = dfhack.override {
+    inherit enableStoneSense;
+    inherit enableTWBT;
+  };
+
+  ptheme =
+    if builtins.isString theme
+    then builtins.getAttr theme themes
+    else theme;
+
+  unBool = b: if b then "YES" else "NO";
+
+  # These are in inverse order for first packages to override the next ones.
+  themePkg = lib.optional (theme != null) ptheme;
+  pkgs = lib.optional enableDFHack dfhack_
+         ++ lib.optional enableSoundSense soundSense
+         ++ lib.optional enableTWBT twbt.art
+         ++ [ dwarf-fortress ];
+
+  fixup = lib.singleton (runCommand "fixup" {} (''
+    mkdir -p $out/data/init
+  '' + (if (theme != null) then ''
+    cp ${lib.head themePkg}/data/init/init.txt $out/data/init/init.txt
+  '' else ''
+    cp ${dwarf-fortress}/data/init/init.txt $out/data/init/init.txt
+  '') + lib.optionalString enableDFHack ''
+    mkdir -p $out/hack
+
+    # Patch the MD5
+    orig_md5=$(cat "${dwarf-fortress}/hash.md5.orig")
+    patched_md5=$(cat "${dwarf-fortress}/hash.md5")
+    input_file="${dfhack_}/hack/symbols.xml"
+    output_file="$out/hack/symbols.xml"
+
+    echo "[DFHack Wrapper] Fixing Dwarf Fortress MD5:"
+    echo "  Input:   $input_file"
+    echo "  Search:  $orig_md5"
+    echo "  Output:  $output_file"
+    echo "  Replace: $patched_md5"
+
+    substitute "$input_file" "$output_file" --replace "$orig_md5" "$patched_md5"
+  '' + lib.optionalString enableTWBT ''
+    substituteInPlace $out/data/init/init.txt \
+      --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TWBT]'
+  '' + ''
+    substituteInPlace $out/data/init/init.txt \
+      --replace '[INTRO:YES]' '[INTRO:${unBool enableIntro}]' \
+      --replace '[TRUETYPE:YES]' '[TRUETYPE:${unBool enableTruetype}]' \
+      --replace '[FPS:NO]' '[FPS:${unBool enableFPS}]'
+  ''));
+
+  env = buildEnv {
+    name = "dwarf-fortress-env-${dwarf-fortress.dfVersion}";
+
+    paths = fixup ++ themePkg ++ pkgs;
+    pathsToLink = [ "/" "/hack" "/hack/scripts" ];
+
+    ignoreCollisions = true;
+  };
+in
+
+stdenv.mkDerivation rec {
+  name = "dwarf-fortress-${dwarf-fortress.dfVersion}";
+
+  dfInit = substituteAll {
+    name = "dwarf-fortress-init";
+    src = ./dwarf-fortress-init.in;
+    inherit env;
+    exe = if stdenv.isLinux then "libs/Dwarf_Fortress"
+                            else "dwarfort.exe";
+  };
+
+  runDF = ./dwarf-fortress.in;
+  runDFHack = ./dfhack.in;
+  runSoundSense = ./soundSense.in;
+
+  passthru = { inherit dwarf-fortress dwarf-therapist; };
+
+  buildCommand = ''
+    mkdir -p $out/bin
+
+    substitute $runDF $out/bin/dwarf-fortress \
+      --subst-var-by stdenv_shell ${stdenv.shell} \
+      --subst-var dfInit
+    chmod 755 $out/bin/dwarf-fortress
+  '' + lib.optionalString enableDFHack ''
+    substitute $runDFHack $out/bin/dfhack \
+      --subst-var-by stdenv_shell ${stdenv.shell} \
+      --subst-var dfInit
+    chmod 755 $out/bin/dfhack
+  '' + lib.optionalString enableSoundSense ''
+    substitute $runSoundSense $out/bin/soundsense \
+      --subst-var-by stdenv_shell ${stdenv.shell} \
+      --subst-var-by jre ${jdk.jre} \
+      --subst-var dfInit
+    chmod 755 $out/bin/soundsense
+  '';
+
+  preferLocalBuild = true;
+}
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dfhack.in b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dfhack.in
new file mode 100644
index 000000000000..4cf884ebed2c
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dfhack.in
@@ -0,0 +1,11 @@
+#!@stdenv_shell@ -e
+
+source @dfInit@
+
+for i in dfhack.init-example dfhack-config/default hack/* stonesense/*; do
+  update_path "$i"
+done
+
+cd "$DF_DIR"
+LD_LIBRARY_PATH="$env_dir/hack/libs:$env_dir/hack:$LD_LIBRARY_PATH" \
+  LD_PRELOAD="$env_dir/hack/libdfhack.so:$LD_PRELOAD" exec $env_dir/libs/Dwarf_Fortress "$@"
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in
new file mode 100644
index 000000000000..054935af012e
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in
@@ -0,0 +1,44 @@
+shopt -s extglob
+
+[ -z "$DF_DIR" ] && DF_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/df_linux"
+env_dir="@env@"
+exe="$env_dir/@exe@"
+
+update_path() {
+  local path="$1"
+
+  mkdir -p "$DF_DIR/$(dirname "$path")"
+  # If user has replaced these data directories, let them stay.
+  if [ ! -e "$DF_DIR/$path" ] || [ -L "$DF_DIR/$path" ]; then
+    rm -f "$DF_DIR/$path"
+    ln -s "$env_dir/$path" "$DF_DIR/$path"
+  fi
+}
+
+forcecopy_path() {
+  local path="$1"
+
+  mkdir -p "$DF_DIR/$(dirname "$path")"
+  rm -rf "$DF_DIR/$path"
+  cp -rL --no-preserve=all "$env_dir/$path" "$DF_DIR/$path"
+}
+
+mkdir -p "$DF_DIR"
+
+cat <<EOF >&2
+Using $DF_DIR as Dwarf Fortress overlay directory.
+If you do any changes in it, don't forget to clean it when updating the game version!
+We try to detect changes based on data directories being symbolic links -- keep this in mind.
+
+EOF
+
+cd "$env_dir"
+for i in data/init/* data/!(init|index|announcement) raw; do
+  update_path "$i"
+done
+
+forcecopy_path data/index
+# For some reason, it's needed to be writable...
+forcecopy_path data/announcement
+forcecopy_path data/help
+forcecopy_path data/dipscript
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in
new file mode 100644
index 000000000000..4448bd05fda5
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress.in
@@ -0,0 +1,9 @@
+#!@stdenv_shell@ -e
+
+source @dfInit@
+
+export DYLD_LIBRARY_PATH="$env_dir/libs"
+export DYLD_FRAMEWORK_PATH="$env_dir/libs"
+
+cd "$DF_DIR"
+exec "$exe" "$@"
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/wrapper/soundSense.in b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/soundSense.in
new file mode 100644
index 000000000000..28357ed7579f
--- /dev/null
+++ b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/soundSense.in
@@ -0,0 +1,10 @@
+#!@stdenv_shell@ -e
+
+source @dfInit@
+
+for p in soundsense/*; do
+  update_path "$p"
+done
+
+cd "$DF_DIR"
+PATH=@jre@/bin exec $DF_DIR/soundsense/soundSense.sh
diff --git a/nixpkgs/pkgs/games/dxx-rebirth/assets.nix b/nixpkgs/pkgs/games/dxx-rebirth/assets.nix
new file mode 100644
index 000000000000..682d1e05069a
--- /dev/null
+++ b/nixpkgs/pkgs/games/dxx-rebirth/assets.nix
@@ -0,0 +1,55 @@
+{ stdenv, requireFile, gogUnpackHook }:
+
+let
+  generic = ver: source: let
+    pname = "descent${toString ver}";
+  in stdenv.mkDerivation rec {
+    name = "${pname}-assets-${version}";
+    version = "2.0.0.7";
+
+    src = requireFile rec {
+      name = "setup_descent12_${version}.exe";
+      sha256 = "1r1drbfda6czg21f9qqiiwgnkpszxgmcn5bafp5ljddh34swkn3f";
+      message = ''
+        While the Descent ${toString ver} game engine is free, the game assets are not.
+
+        Please purchase the game on gog.com and download the Windows installer.
+
+        Once you have downloaded the file, please use the following command and re-run the
+        installation:
+
+        nix-prefetch-url file://\$PWD/${name}
+      '';
+    };
+
+    nativeBuildInputs = [ gogUnpackHook ];
+
+    dontBuild = true;
+    dontFixup = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/share/{games/${pname},doc/${pname}/examples}
+      pushd "app/${source}"
+      mv dosbox*.conf $out/share/doc/${pname}/examples
+      mv *.txt *.pdf  $out/share/doc/${pname}
+      cp -r * $out/share/games/descent${toString ver}
+      popd
+
+      runHook postInstall
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Descent ${toString ver} assets from GOG";
+      homepage    = https://www.dxx-rebirth.com/;
+      license     = licenses.unfree;
+      maintainers = with maintainers; [ peterhoeg ];
+      hydraPlatforms = [];
+    };
+  };
+
+in {
+  descent1-assets = generic 1 "descent";
+  descent2-assets = generic 2 "descent 2";
+}
diff --git a/nixpkgs/pkgs/games/dxx-rebirth/default.nix b/nixpkgs/pkgs/games/dxx-rebirth/default.nix
new file mode 100644
index 000000000000..86d233b03785
--- /dev/null
+++ b/nixpkgs/pkgs/games/dxx-rebirth/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, fetchpatch, scons, pkgconfig
+, SDL, SDL_mixer, libGLU_combined, physfs
+}:
+
+let
+  music = fetchurl {
+    url = "https://www.dxx-rebirth.com/download/dxx/res/d2xr-sc55-music.dxa";
+    sha256 = "05mz77vml396mff43dbs50524rlm4fyds6widypagfbh5hc55qdc";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "dxx-rebirth-${version}";
+  version = "0.59.100";
+
+  src = fetchurl {
+    url = "https://www.dxx-rebirth.com/download/dxx/dxx-rebirth_v${version}-src.tar.gz";
+    sha256 = "0m9k34zyr8bbni9szip407mffdpwbqszgfggavgqjwq0k9c1w7ka";
+  };
+
+  # TODO: drop these when upgrading to version > 0.59.100
+  patches = [
+    (fetchpatch {
+      name   = "dxx-gcc7-fix1.patch";
+      url    = "https://github.com/dxx-rebirth/dxx-rebirth/commit/1ed7cec714c623758e3418ec69eaf3b3ff03e9f6.patch";
+      sha256 = "026pn8xglmxryaj8555h5rhzkx30lxmksja1fzdlfyb1vll75gq0";
+    })
+    (fetchpatch {
+      name   = "dxx-gcc7-fix2.patch";
+      url    = "https://github.com/dxx-rebirth/dxx-rebirth/commit/73057ad8ec6977ac747637db1080686f11b4c3cc.patch";
+      sha256 = "0s506vdd2djrrm3xl0ygn9ylpg6y8qxii2nnzk3sf9133glp3swy";
+    })
+  ];
+
+  nativeBuildInputs = [ pkgconfig scons ];
+
+  buildInputs = [ libGLU_combined physfs SDL SDL_mixer ];
+
+  enableParallelBuilding = true;
+
+  NIX_CFLAGS_COMPILE = "-Wno-format-nonliteral";
+
+  postInstall = ''
+    install -Dm644 ${music} $out/share/games/dxx-rebirth/d2xr-sc55-music.dxa
+    install -Dm644 -t $out/share/doc/dxx-rebirth *.txt
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Source Port of the Descent 1 and 2 engines";
+    homepage = https://www.dxx-rebirth.com/;
+    license = licenses.free;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/dxx-rebirth/full.nix b/nixpkgs/pkgs/games/dxx-rebirth/full.nix
new file mode 100644
index 000000000000..020a4593de24
--- /dev/null
+++ b/nixpkgs/pkgs/games/dxx-rebirth/full.nix
@@ -0,0 +1,30 @@
+{ stdenv, makeWrapper
+, dxx-rebirth, descent1-assets, descent2-assets }:
+
+let
+  generic = ver: assets: stdenv.mkDerivation rec {
+    name = "d${toString ver}x-rebirth-full-${assets.version}";
+
+    nativeBuildInputs = [ makeWrapper ];
+
+    buildCommand = ''
+      mkdir -p $out/bin
+
+      makeWrapper ${dxx-rebirth}/bin/d${toString ver}x-rebirth $out/bin/descent${toString ver} \
+        --add-flags "-hogdir ${assets}/share/games/descent${toString ver}"
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Descent ${toString ver} using the DXX-Rebirth project engine and game assets from GOG";
+      homepage    = https://www.dxx-rebirth.com/;
+      license     = with licenses; [ free unfree ];
+      maintainers = with maintainers; [ peterhoeg ];
+      platforms   = with platforms; linux;
+      hydraPlatforms = [];
+    };
+  };
+
+in {
+  d1x-rebirth-full = generic 1 descent1-assets;
+  d2x-rebirth-full = generic 2 descent2-assets;
+}
diff --git a/nixpkgs/pkgs/games/easyrpg-player/default.nix b/nixpkgs/pkgs/games/easyrpg-player/default.nix
new file mode 100644
index 000000000000..75763907425b
--- /dev/null
+++ b/nixpkgs/pkgs/games/easyrpg-player/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, cmake, doxygen ? null, pkgconfig, freetype ? null, glib, harfbuzz ? null
+, liblcf, libpng, libsndfile ? null, libvorbis ? null, libxmp ? null
+, libXcursor, libXext, libXi, libXinerama, libXrandr, libXScrnSaver, libXxf86vm
+, mpg123 ? null, opusfile ? null, pcre, pixman, SDL2_mixer, speexdsp ? null, wildmidi ? null, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "easyrpg-player-${version}";
+  version = "0.5.4";
+
+  src = fetchFromGitHub {
+    owner = "EasyRPG";
+    repo = "Player";
+    rev = version;
+    sha256 = "1k1b5ws48h1ylarbcfsxyvajl0fdzmi3db8y3m8iq4fg3f0yslg8";
+  };
+
+  nativeBuildInputs = [ cmake doxygen pkgconfig ];
+
+  buildInputs = [
+    freetype
+    glib
+    harfbuzz
+    liblcf
+    libpng
+    libsndfile
+    libvorbis
+    libxmp
+    libXcursor
+    libXext
+    libXi
+    libXinerama
+    libXrandr
+    libXScrnSaver
+    libXxf86vm
+    mpg123
+    opusfile
+    SDL2_mixer
+    pcre
+    pixman
+    speexdsp
+    wildmidi
+    zlib
+  ];
+
+  meta = with stdenv.lib; {
+    description = "RPG Maker 2000/2003 and EasyRPG games interpreter";
+    homepage = https://easyrpg.org/;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ yegortimoshenko ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/eboard/default.nix b/nixpkgs/pkgs/games/eboard/default.nix
new file mode 100644
index 000000000000..206ed02e69ce
--- /dev/null
+++ b/nixpkgs/pkgs/games/eboard/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, perl, pkgconfig, gtk2 }:
+
+stdenv.mkDerivation {
+  name = "eboard-1.1.1";
+
+  src = fetchurl {
+    url = mirror://sourceforge/eboard/eboard-1.1.1.tar.bz2;
+    sha256 = "0vm25j1s2zg1lipwjv9qrcm877ikfmk1yh34i8f5l3bwd63115xd";
+  };
+
+  patches = [ ./eboard.patch ];
+
+  buildInputs = [ gtk2 ];
+  nativeBuildInputs = [ perl pkgconfig ];
+
+  hardeningDisable = [ "format" ];
+
+  preConfigure = ''
+    patchShebangs ./configure
+  '';
+
+  NIX_CFLAGS_COMPILE = [ "-fpermissive" ];
+
+  NIX_LDFLAGS = [
+    "-ldl"
+  ];
+
+  meta = {
+    homepage = http://www.bergo.eng.br/eboard/;
+    description = "Chess interface for Unix-like systems";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/eboard/eboard.patch b/nixpkgs/pkgs/games/eboard/eboard.patch
new file mode 100644
index 000000000000..f80c1b2f78d7
--- /dev/null
+++ b/nixpkgs/pkgs/games/eboard/eboard.patch
@@ -0,0 +1,16 @@
+--- a/cimg.cc	2014-05-25 02:41:58.000000000 -0500
++++ b/cimg.cc	2014-05-25 02:42:31.000000000 -0500
+@@ -94,11 +94,11 @@
+       ct == PNG_COLOR_TYPE_GRAY_ALPHA)
+     png_set_gray_to_rgb(pngp);
+
+-  alloc(pngp->width,pngp->height);
++  alloc(png_get_image_width(pngp, infp),png_get_image_height(pngp, infp));
+   if (!ok) { fclose(f); return; }
+   ok = 0;
+
+-  for(i=0;i<pngp->height;i++) {
++  for(i=0;i<png_get_image_height(pngp, infp);i++) {
+     png_read_row(pngp, (png_bytep) (&data[i*rowlen]), NULL);
+   }
+
diff --git a/nixpkgs/pkgs/games/eduke32/default.nix b/nixpkgs/pkgs/games/eduke32/default.nix
new file mode 100644
index 000000000000..c51f014b179d
--- /dev/null
+++ b/nixpkgs/pkgs/games/eduke32/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, fetchurl, flac, gtk2, libvorbis, libvpx, makeDesktopItem, libGLU_combined, nasm
+, pkgconfig, SDL2, SDL2_mixer, runtimeShell }:
+
+let
+  year = "2015";
+  date = "20150420";
+  rev = "5160";
+in stdenv.mkDerivation rec {
+  name = "eduke32-${version}";
+  version = "${date}-${rev}";
+
+  src = fetchurl {
+    url = "http://dukeworld.duke4.net/eduke32/synthesis/old/${year}/${version}/eduke32_src_${version}.tar.xz";
+    sha256 = "1nlq5jbglg00c1z1vsyl627fh0mqfxvk5qyxav5vzla2b4svik2v";
+  };
+
+  buildInputs = [ flac gtk2 libvorbis libvpx libGLU_combined SDL2 SDL2_mixer ]
+    ++ stdenv.lib.optional (stdenv.hostPlatform.system == "i686-linux") nasm;
+  nativeBuildInputs = [ pkgconfig ];
+
+  postPatch = ''
+    substituteInPlace build/src/glbuild.c \
+      --replace libGL.so	${libGLU_combined}/lib/libGL.so \
+      --replace libGLU.so	${libGLU_combined}/lib/libGLU.so
+  '';
+
+  NIX_CFLAGS_COMPILE = "-I${SDL2.dev}/include/SDL2 -I${SDL2_mixer}/include/SDL2";
+  NIX_LDFLAGS = "-L${SDL2}/lib";
+
+  makeFlags = [
+    "LINKED_GTK=1"
+    "SDLCONFIG=${SDL2}/bin/sdl2-config"
+    "VC_REV=${rev}"
+  ];
+
+  desktopItem = makeDesktopItem {
+    name = "eduke32";
+    exec = "eduke32-wrapper";
+    comment = "Duke Nukem 3D port";
+    desktopName = "Enhanced Duke Nukem 3D";
+    genericName = "Duke Nukem 3D port";
+    categories = "Application;Game;";
+  };
+
+  installPhase = ''
+    # Make wrapper script
+    cat > eduke32-wrapper <<EOF
+    #!${runtimeShell}
+
+    if [ "$EDUKE32_DATA_DIR" = "" ]; then
+        EDUKE32_DATA_DIR=/var/lib/games/eduke32
+    fi
+    if [ "$EDUKE32_GRP_FILE" = "" ]; then
+        EDUKE32_GRP_FILE=\$EDUKE32_DATA_DIR/DUKE3D.GRP
+    fi
+
+    cd \$EDUKE32_DATA_DIR
+    exec $out/bin/eduke32 -g \$EDUKE32_GRP_FILE
+    EOF
+
+    # Install binaries
+    mkdir -p $out/bin
+    install -Dm755 eduke32{,-wrapper} mapster32 $out/bin
+
+    # Install desktop item
+    cp -rv ${desktopItem}/share $out
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Enhanched port of Duke Nukem 3D for various platforms";
+    license = licenses.gpl2Plus;
+    homepage = http://eduke32.com;
+    maintainers = with maintainers; [ sander ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/egoboo/default.nix b/nixpkgs/pkgs/games/egoboo/default.nix
new file mode 100644
index 000000000000..98ab4d27d5f5
--- /dev/null
+++ b/nixpkgs/pkgs/games/egoboo/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, libGLU_combined, SDL, SDL_mixer, SDL_image, SDL_ttf }:
+
+stdenv.mkDerivation rec {
+  # pf5234 (a developer?) at freenode #egoboo told me that I better use 2.7.3 until
+  # they fix more, because it even has at least one bugs less than 2.7.4.
+  # 2.8.0 does not start properly on linux
+  # They just starting making that 2.8.0 work on linux.
+  name = "egoboo-2.7.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/egoboo/${name}.tar.gz";
+    sha256 = "18cjgp9kakrsa90jcb4cl8hhh9k57mi5d1sy5ijjpd3p7zl647hd";
+  };
+
+  buildPhase = ''
+    cd source
+    make -C enet all
+    # The target 'all' has trouble
+    make -C game -f Makefile.unix egoboo
+  '';
+
+  # The user will need to have all the files in '.' to run egoboo, with
+  # writeable controls.txt and setup.txt
+  installPhase = ''
+    mkdir -p $out/share/${name}
+    cp -v game/egoboo $out/share/${name}
+    cd ..
+    cp -v -Rd controls.txt setup.txt players modules basicdat $out/share/${name}
+  '';
+
+  buildInputs = [ libGLU_combined SDL SDL_mixer SDL_image SDL_ttf ];
+
+  /*
+    This big commented thing may be needed for versions 2.8.0 or beyond
+    I keep it here for future updates.
+
+    # Some files have to go to $HOME, but we put them in the 'shared'.
+    patchPhase = ''
+      sed -i -e 's,''${HOME}/.''${PROJ_NAME},''${PREFIX}/share/games/''${PROJ_NAME},g' Makefile
+    '';
+
+    preBuild = ''
+      makeFlags=PREFIX=$out
+    '';
+  */
+
+  NIX_LDFLAGS = [
+    "-lm"
+  ];
+
+  meta = {
+    description = "3D dungeon crawling adventure";
+
+    homepage = http://www.freedink.org/;
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    # I take it out of hydra as it does not work as well as I'd like
+    # maintainers = [ stdenv.lib.maintainers.bjg ];
+    # platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/empty-epsilon/default.nix b/nixpkgs/pkgs/games/empty-epsilon/default.nix
new file mode 100644
index 000000000000..cb46b8d9ba27
--- /dev/null
+++ b/nixpkgs/pkgs/games/empty-epsilon/default.nix
@@ -0,0 +1,66 @@
+{ lib, stdenv, fetchFromGitHub, cmake, sfml, libX11, glew, python3 }:
+
+let
+
+  major = "2019";
+  minor = "01";
+  patch = "19";
+
+  version = "${major}.${minor}.${patch}";
+
+  serious-proton = stdenv.mkDerivation rec {
+    name = "serious-proton-${version}";
+    inherit version;
+
+    src = fetchFromGitHub {
+      owner = "daid";
+      repo = "SeriousProton";
+      rev = "EE-${version}";
+      sha256 = "1a5g16vvjrykmdgy5fc8x0v4ipfm0qdaimmy5jz84am14dqi3f8w";
+    };
+
+    nativeBuildInputs = [ cmake ];
+    buildInputs = [ sfml libX11 ];
+
+    meta = with lib; {
+      description = "C++ game engine coded on top of SFML used for EmptyEpsilon";
+      homepage = https://github.com/daid/SeriousProton;
+      license = licenses.mit;
+      maintainers = with maintainers; [ fpletz ];
+      platforms = platforms.linux;
+    };
+  };
+
+in
+
+
+stdenv.mkDerivation rec {
+  name = "empty-epsilon-${version}";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "daid";
+    repo = "EmptyEpsilon";
+    rev = "EE-${version}";
+    sha256 = "082v27w3n4jdm4a5884607rwsw4s00cnpqmh7bsdg9q3l29jpygn";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ serious-proton sfml glew libX11 python3 ];
+
+  cmakeFlags = [
+    "-DSERIOUS_PROTON_DIR=${serious-proton.src}"
+    "-DCPACK_PACKAGE_VERSION=${version}"
+    "-DCPACK_PACKAGE_VERSION_MAJOR=${major}"
+    "-DCPACK_PACKAGE_VERSION_MINOR=${minor}"
+    "-DCPACK_PACKAGE_VERSION_PATCH=${patch}"
+  ];
+
+  meta = with lib; {
+    description = "Open source bridge simulator based on Artemis";
+    homepage = https://daid.github.io/EmptyEpsilon/;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ fpletz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/endgame-singularity/default.nix b/nixpkgs/pkgs/games/endgame-singularity/default.nix
new file mode 100644
index 000000000000..8b259bad88d7
--- /dev/null
+++ b/nixpkgs/pkgs/games/endgame-singularity/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, unzip, python2 }:
+
+python2.pkgs.buildPythonApplication rec {
+  pname = "endgame-singularity";
+  version = "0.30c";
+  format = "other";
+
+  srcs = [
+    (fetchurl {
+      url = "http://www.emhsoft.com/singularity/singularity-${version}-src.tar.gz";
+      sha256 = "13zjhf67gmla67nkfpxb01rxs8j9n4hs0s4n9lnnq4zgb709yxgl";
+    })
+    (fetchurl {
+      url = "http://www.emhsoft.com/singularity/endgame-singularity-music-007.zip";
+      sha256 = "0vf2qaf66jh56728pq1zbnw50yckjz6pf6c6qw6dl7vk60kkqnpb";
+    })
+  ];
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ unzip ]; # The music is zipped
+  propagatedBuildInputs = with python2.pkgs; [ pygame numpy ];
+
+  # This is not an error: it needs both compilation rounds
+  buildPhase = ''
+    ${python2.interpreter} -m compileall "singularity-${version}"
+    ${python2.interpreter} -O -m compileall "singularity-${version}"
+  '';
+
+  installPhase = ''
+    install -Dm755 "singularity-${version}/singularity.py"  "$out/share/singularity.py"
+    install -Dm644 "singularity-${version}/singularity.pyo" "$out/share/singularity.pyo"
+    install -Dm644 "singularity-${version}/singularity.pyc" "$out/share/singularity.pyc"
+    cp -R "singularity-${version}/code" "singularity-${version}/data" "$out/share/"
+    cp -R "endgame-singularity-music-007" "$out/share/music"
+  '';
+
+  # Tell it where to find python libraries
+  # Also cd to the same directory as the code, since it uses relative paths
+  postFixup = ''
+    makeWrapper "${python2.interpreter}" "$out/bin/endgame-singularity" \
+          --set PYTHONPATH "$PYTHONPATH" \
+          --run "cd \"$out/share\"" \
+          --add-flags "$out/share/singularity.py"
+  '';
+
+  meta = {
+    homepage = http://www.emhsoft.com/singularity/;
+    description = "A simulation game about strong AI";
+    longDescription = ''
+      A simulation of a true AI. Go from computer to computer, pursued by the
+      entire world. Keep hidden, and you might have a chance
+    '';
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ fgaz ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/endless-sky/default.nix b/nixpkgs/pkgs/games/endless-sky/default.nix
new file mode 100644
index 000000000000..447724a2043f
--- /dev/null
+++ b/nixpkgs/pkgs/games/endless-sky/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub
+, SDL2, libpng, libjpeg, glew, openal, scons, libmad
+}:
+
+let
+  version = "0.9.8";
+
+in
+stdenv.mkDerivation rec {
+  name = "endless-sky-${version}";
+
+  src = fetchFromGitHub {
+    owner = "endless-sky";
+    repo = "endless-sky";
+    rev = "v${version}";
+    sha256 = "0i36lawypikbq8vvzfis1dn7yf6q0d2s1cllshfn7kmjb6pqfi6c";
+  };
+
+  enableParallelBuilding = true;
+
+  buildInputs = [
+    SDL2 libpng libjpeg glew openal scons libmad
+  ];
+
+  prefixKey = "PREFIX=";
+
+  patches = [
+    ./fixes.patch
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A sandbox-style space exploration game similar to Elite, Escape Velocity, or Star Control";
+    homepage = https://endless-sky.github.io/;
+    license = with licenses; [
+      gpl3Plus cc-by-sa-30 cc-by-sa-40 publicDomain
+    ];
+    maintainers = with maintainers; [ lheckemann ];
+    platforms = platforms.linux; # Maybe other non-darwin Unix
+  };
+}
diff --git a/nixpkgs/pkgs/games/endless-sky/fixes.patch b/nixpkgs/pkgs/games/endless-sky/fixes.patch
new file mode 100644
index 000000000000..cad7a6acaed0
--- /dev/null
+++ b/nixpkgs/pkgs/games/endless-sky/fixes.patch
@@ -0,0 +1,45 @@
+diff --git a/SConstruct b/SConstruct
+index 48fd080..419b40d 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1,7 +1,7 @@
+ import os
+ 
+ # Load any environment variables that alter the build.
+-env = Environment()
++env = Environment(ENV = os.environ)
+ if 'CCFLAGS' in os.environ:
+ 	env.Append(CCFLAGS = os.environ['CCFLAGS'])
+ if 'CXXFLAGS' in os.environ:
+@@ -55,7 +55,7 @@ sky = env.Program("endless-sky", Glob("build/" + env["mode"] + "/*.cpp"))
+ 
+ 
+ # Install the binary:
+-env.Install("$DESTDIR$PREFIX/games", sky)
++env.Install("$DESTDIR$PREFIX/bin", sky)
+ 
+ # Install the desktop file:
+ env.Install("$DESTDIR$PREFIX/share/applications", "endless-sky.desktop")
+diff --git a/source/Files.cpp b/source/Files.cpp
+index c8c8957..d196459 100644
+--- a/source/Files.cpp
++++ b/source/Files.cpp
+@@ -114,15 +114,9 @@ void Files::Init(const char * const *argv)
+ 	if(resources.back() != '/')
+ 		resources += '/';
+ #if defined __linux__ || defined __FreeBSD__ || defined __DragonFly__
+-	// Special case, for Linux: the resource files are not in the same place as
+-	// the executable, but are under the same prefix (/usr or /usr/local).
+-	static const string LOCAL_PATH = "/usr/local/";
+-	static const string STANDARD_PATH = "/usr/";
+-	static const string RESOURCE_PATH = "share/games/endless-sky/";
+-	if(!resources.compare(0, LOCAL_PATH.length(), LOCAL_PATH))
+-		resources = LOCAL_PATH + RESOURCE_PATH;
+-	else if(!resources.compare(0, STANDARD_PATH.length(), STANDARD_PATH))
+-		resources = STANDARD_PATH + RESOURCE_PATH;
++	// Workaround for NixOS. Not sure how to proceed with other OSes, feedback
++	// is welcome.
++	resources += "../share/games/endless-sky/";
+ #elif defined __APPLE__
+ 	// Special case for Mac OS X: the resources are in ../Resources relative to
+ 	// the folder the binary is in.
diff --git a/nixpkgs/pkgs/games/enyo-doom/default.nix b/nixpkgs/pkgs/games/enyo-doom/default.nix
new file mode 100644
index 000000000000..573190ab8257
--- /dev/null
+++ b/nixpkgs/pkgs/games/enyo-doom/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitLab, cmake, qtbase }:
+
+stdenv.mkDerivation rec {
+  name = "enyo-doom-${version}";
+  version = "1.06";
+
+  src = fetchFromGitLab {
+    owner = "sdcofer70";
+    repo = "enyo-doom";
+    rev = version;
+    sha256 = "17f9qq8gnim6glqlrg7189my4d5y40v76cbpaqgpvrhpyc7z9vf6";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ qtbase ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "https://gitlab.com/sdcofer70/enyo-doom";
+    description = "Frontend for Doom engines";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.tadfisher ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/eternity-engine/default.nix b/nixpkgs/pkgs/games/eternity-engine/default.nix
new file mode 100644
index 000000000000..911308a078a5
--- /dev/null
+++ b/nixpkgs/pkgs/games/eternity-engine/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, cmake, libGL, SDL, SDL_mixer, SDL_net, fetchFromGitHub, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "eternity-engine-${version}";
+  version = "3.42.02";
+  src = fetchFromGitHub {
+    owner = "team-eternity";
+    repo = "eternity";
+    rev = "${version}";
+    sha256 = "00kpq4k23hjmzjaymw3sdda7mqk8fjq6dzf7fmdal9fm7lfmj41k";
+  };
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ libGL SDL SDL_mixer SDL_net ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    install -Dm755 source/eternity $out/lib/eternity/eternity
+    cp -r $src/base $out/lib/eternity/base
+    mkdir $out/bin
+    makeWrapper $out/lib/eternity/eternity $out/bin/eternity
+  '';
+
+  meta = {
+    homepage = http://doomworld.com/eternity;
+    description = "New school Doom port by James Haley";
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ MP2E ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/extremetuxracer/default.nix b/nixpkgs/pkgs/games/extremetuxracer/default.nix
new file mode 100644
index 000000000000..fba1ce01c45a
--- /dev/null
+++ b/nixpkgs/pkgs/games/extremetuxracer/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, libGLU_combined, libX11, xorgproto, tcl, freeglut, freetype
+, sfml, libXi
+, libXmu, libXext, libXt, libSM, libICE
+, libpng, pkgconfig, gettext, intltool
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.7.5";
+  name = "extremetuxracer-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/extremetuxracer/etr-${version}.tar.xz";
+    sha256 = "1ly63316c07i0gyqqmyzsyvygsvygn0fpk3bnbg25fi6li99rlsg";
+  };
+
+  buildInputs = [
+    libGLU_combined libX11 xorgproto tcl freeglut freetype
+    sfml libXi
+    libXmu libXext libXt libSM libICE
+    libpng pkgconfig gettext intltool
+  ];
+
+  configureFlags = [ "--with-tcl=${tcl}/lib" ];
+
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE"
+  '';
+
+  meta = {
+    description = "High speed arctic racing game based on Tux Racer";
+    longDescription = ''
+      ExtremeTuxRacer - Tux lies on his belly and accelerates down ice slopes.
+    '';
+    license = stdenv.lib.licenses.gpl2Plus;
+    homepage = https://sourceforge.net/projects/extremetuxracer/;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/exult/arch.patch b/nixpkgs/pkgs/games/exult/arch.patch
new file mode 100644
index 000000000000..70de34184a24
--- /dev/null
+++ b/nixpkgs/pkgs/games/exult/arch.patch
@@ -0,0 +1,123 @@
+diff -aur exult-1.4.9rc1.orig/desktop/exult.desktop exult-1.4.9rc1/desktop/exult.desktop
+--- exult-1.4.9rc1.orig/desktop/exult.desktop	2008-07-11 05:41:06.000000000 +0600
++++ exult-1.4.9rc1/desktop/exult.desktop	2012-05-19 13:15:30.616084585 +0600
+@@ -1,9 +1,8 @@
+ [Desktop Entry]
+-Encoding=UTF-8
+ Name=Exult
+ Comment=Exult Ultima 7 Engine
+ Exec=exult
+-Icon=exult.png
++Icon=exult
+ Terminal=false
+ Type=Application
+-Categories=Application;Game;RolePlaying;
++Categories=Game;RolePlaying;
+diff -aur exult-1.4.9rc1.orig/files/databuf.h exult-1.4.9rc1/files/databuf.h
+--- exult-1.4.9rc1.orig/files/databuf.h	2010-03-10 09:07:05.000000000 +0500
++++ exult-1.4.9rc1/files/databuf.h	2012-05-19 12:50:16.856076030 +0600
+@@ -18,6 +18,7 @@
+ #define DATA_H
+ 
+ #include <cstdio>
++#include <cstddef>
+ #include <cstring>
+ #include <cassert>
+ #include <fstream>
+diff -aur exult-1.4.9rc1.orig/files/U7obj.h exult-1.4.9rc1/files/U7obj.h
+--- exult-1.4.9rc1.orig/files/U7obj.h	2010-02-25 07:52:07.000000000 +0500
++++ exult-1.4.9rc1/files/U7obj.h	2012-05-19 12:50:35.916076137 +0600
+@@ -26,6 +26,7 @@
+ #include <string>
+ #include <vector>
+ #include <cstring>
++#include <cstddef>
+ #include "common_types.h"
+ #include "utils.h"
+ 
+diff -aur exult-1.4.9rc1.orig/imagewin/manip.h exult-1.4.9rc1/imagewin/manip.h
+--- exult-1.4.9rc1.orig/imagewin/manip.h	2010-08-29 20:26:00.000000000 +0600
++++ exult-1.4.9rc1/imagewin/manip.h	2012-05-19 13:02:45.159413596 +0600
+@@ -319,7 +319,7 @@
+ 	static uintD copy(uintS src)
+ 	{
+ 		unsigned int r, g, b;
+-		split_source(src,r,g,b);
++		ManipBaseSrc<color_s,color_d>::split_source(src,r,g,b);
+ 		return ManipBaseDest<color_d>::rgb(r,g,b);
+ 	}
+ 	static void copy(uintD& dest, uintS src)
+diff -aur exult-1.4.9rc1.orig/istring.h exult-1.4.9rc1/istring.h
+--- exult-1.4.9rc1.orig/istring.h	2005-06-07 15:55:39.000000000 +0600
++++ exult-1.4.9rc1/istring.h	2012-05-19 13:01:14.886079750 +0600
+@@ -162,19 +162,19 @@
+ 
+ 	_Myt& operator+=(const _Myt& _Right)
+ 		{	// append _Right
+-		append(_Right);
++		this->append(_Right);
+ 		return (*this);
+ 		}
+ 
+ 	_Myt& operator+=(const _Elem *_Ptr)
+ 		{	// append [_Ptr, <null>)
+-		append(_Ptr);
++		this->append(_Ptr);
+ 		return (*this);
+ 		}
+ 
+ 	_Myt& operator+=(_Elem _Ch)
+ 		{	// append 1 * _Ch
+-		append(static_cast<size_type>(1), _Ch);
++		this->append(static_cast<size_type>(1), _Ch);
+ 		return (*this);
+ 		}
+ 
+diff -aur exult-1.4.9rc1.orig/shapes/pngio.cc exult-1.4.9rc1/shapes/pngio.cc
+--- exult-1.4.9rc1.orig/shapes/pngio.cc	2010-02-15 18:48:11.000000000 -0200
++++ exult-1.4.9rc1/shapes/pngio.cc	2013-09-22 20:56:37.809763588 -0300
+@@ -26,6 +26,7 @@
+ #ifdef HAVE_CONFIG_H
+ #  include <config.h>
+ #endif
++#include <string.h>
+ 
+ #ifdef HAVE_PNG_H
+ 
+@@ -79,7 +80,7 @@
+ 		}
+ 					// Allocate info. structure.
+ 	png_infop info = png_create_info_struct(png);
+-	if (setjmp(png->jmpbuf))	// Handle errors.
++	if (setjmp(png_jmpbuf(png)))	// Handle errors.
+ 		{
+ 		png_destroy_read_struct(&png, &info, 0);
+ 		fclose(fp);
+@@ -208,7 +209,7 @@
+ 		}
+ 					// Allocate info. structure.
+ 	png_infop info = png_create_info_struct(png);
+-	if (setjmp(png->jmpbuf))	// Handle errors.
++	if (setjmp(png_jmpbuf(png)))	// Handle errors.
+ 		{
+ 		png_destroy_write_struct(&png, &info);
+ 		fclose(fp);
+@@ -306,7 +307,7 @@
+ 		}
+ 					// Allocate info. structure.
+ 	png_infop info = png_create_info_struct(png);
+-	if (setjmp(png->jmpbuf))	// Handle errors.
++	if (setjmp(png_jmpbuf(png)))	// Handle errors.
+ 		{
+ 		png_destroy_read_struct(&png, &info, 0);
+ 		fclose(fp);
+@@ -395,7 +396,7 @@
+ 		}
+ 					// Allocate info. structure.
+ 	png_infop info = png_create_info_struct(png);
+-	if (setjmp(png->jmpbuf))	// Handle errors.
++	if (setjmp(png_jmpbuf(png)))	// Handle errors.
+ 		{
+ 		png_destroy_write_struct(&png, &info);
+ 		fclose(fp);
+
diff --git a/nixpkgs/pkgs/games/exult/default.nix b/nixpkgs/pkgs/games/exult/default.nix
new file mode 100644
index 000000000000..58fdaeb8f740
--- /dev/null
+++ b/nixpkgs/pkgs/games/exult/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, pkgconfig, SDL, libogg, libvorbis, zlib, unzip }:
+
+let
+
+  # Digital recordings of the music on an original Roland MT-32.  So
+  # we don't need actual MIDI playback capability.
+  audio = fetchurl {
+    url = mirror://sourceforge/exult/exult_audio.zip;
+    sha256 = "0s5wvgy9qja06v38g0qwzpaw76ff96vzd6gb1i3lb9k4hvx0xqbj";
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "exult-1.4.9rc1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/exult/${name}.tar.gz";
+    sha256 = "0a03a2l3ji6h48n106d4w55l8v6lni1axniafnvvv5c5n3nz5bgd";
+  };
+
+  configureFlags = [ "--disable-tools" ];
+
+  patches =
+    [ # Arch Linux patch set.
+      ./arch.patch
+    ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ SDL libogg libvorbis zlib unzip ];
+
+  enableParallelBuilding = true;
+
+  makeFlags = [ "DESTDIR=$(out)" ];
+
+  NIX_LDFLAGS = [ "-lX11" ];
+
+  postInstall =
+    ''
+      mkdir -p $out/share/exult/music
+      unzip -o -d $out/share/exult ${audio}
+      chmod 644 $out/share/exult/*.flx
+    ''; # */
+
+  meta = {
+    homepage = http://exult.sourceforge.net/;
+    description = "A reimplementation of the Ultima VII game engine";
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+    platforms = stdenv.lib.platforms.unix;
+    hydraPlatforms = stdenv.lib.platforms.linux; # darwin times out
+    license = stdenv.lib.licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/games/ezquake/default.nix b/nixpkgs/pkgs/games/ezquake/default.nix
new file mode 100644
index 000000000000..85433e116fbc
--- /dev/null
+++ b/nixpkgs/pkgs/games/ezquake/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, curl, expat
+, jansson, libpng, libjpeg, libGLU_combined, libXxf86vm, pcre
+, pkgconfig, SDL2, vim }:
+
+stdenv.mkDerivation rec {
+  name = pname + "-" + version;
+  pname = "ezquake";
+  version = "3.0.1";
+
+  src = fetchFromGitHub {
+    owner = "ezQuake";
+    repo = pname + "-source";
+    rev = "v" + version;
+    sha256 = "14wck0r64z5haacp7g7qb2qrbhff3x6jfjmn4268dyb9dl5663f2";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    expat curl jansson libpng libjpeg libGLU_combined libXxf86vm pcre SDL2 vim
+  ];
+
+  installPhase = with stdenv.lib; let
+    sys = last (splitString "-" stdenv.hostPlatform.system);
+    arch = head (splitString "-" stdenv.hostPlatform.system);
+  in ''
+    mkdir -p $out/bin
+    find .
+    mv ezquake-${sys}-${arch} $out/bin/ezquake
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://ezquake.github.io/;
+    description = "A modern QuakeWorld client focused on competitive online play.";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ edwtjo ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/factorio/default.nix b/nixpkgs/pkgs/games/factorio/default.nix
new file mode 100644
index 000000000000..f0fa09b167a8
--- /dev/null
+++ b/nixpkgs/pkgs/games/factorio/default.nix
@@ -0,0 +1,233 @@
+{ stdenv, callPackage, fetchurl, makeWrapper
+, alsaLib, libX11, libXcursor, libXinerama, libXrandr, libXi, libGL
+, factorio-utils
+, releaseType
+, mods ? []
+, username ? "", token ? "" # get/reset token at https://factorio.com/profile
+, experimental ? false # true means to always use the latest branch
+}:
+
+assert releaseType == "alpha"
+    || releaseType == "headless"
+    || releaseType == "demo";
+
+let
+
+  helpMsg = ''
+
+    ===FETCH FAILED===
+    Please ensure you have set the username and token with config.nix, or
+    /etc/nix/nixpkgs-config.nix if on NixOS.
+
+    Your token can be seen at https://factorio.com/profile (after logging in). It is
+    not as sensitive as your password, but should still be safeguarded. There is a
+    link on that page to revoke/invalidate the token, if you believe it has been
+    leaked or wish to take precautions.
+
+    Example:
+    {
+      packageOverrides = pkgs: {
+        factorio = pkgs.factorio.override {
+          username = "FactorioPlayer1654";
+          token = "d5ad5a8971267c895c0da598688761";
+        };
+      };
+    }
+
+    Alternatively, instead of providing the username+token, you may manually
+    download the release through https://factorio.com/download , then add it to
+    the store using e.g.:
+
+      releaseType=alpha
+      version=0.16.51
+      nix-prefetch-url file://$HOME/Downloads/factorio_\''${releaseType}_x64_\''${version}.tar.xz --name factorio_\''${releaseType}_x64-\''${version}.tar.xz
+
+    Note the ultimate "_" is replaced with "-" in the --name arg!
+  '';
+
+  branch = if experimental then "experimental" else "stable";
+
+  # NB `experimental` directs us to take the latest build, regardless of its branch;
+  # hence the (stable, experimental) pairs may sometimes refer to the same distributable.
+  binDists = {
+    x86_64-linux = let bdist = bdistForArch { inUrl = "linux64"; inTar = "x64"; }; in {
+      alpha = {
+        stable        = bdist { sha256 = "0b4hbpdcrh5hgip9q5dkmw22p66lcdhnr0kmb0w5dw6yi7fnxxh0"; version = "0.16.51"; withAuth = true; };
+        experimental  = bdist { sha256 = "0f8scld3447jwcn98zks634bv594zz24fy1xr41nf1k1llmgnmnc"; version = "0.17.12"; withAuth = true; };
+      };
+      headless = {
+        stable        = bdist { sha256 = "0zrnpg2js0ysvx9y50h3gajldk16mv02dvrwnkazh5kzr1d9zc3c"; version = "0.16.51"; };
+        experimental  = bdist { sha256 = "1hfi8pngml3phdr3h30fym5qmi575fx0cv4zxn6prh2prz7h1z7d"; version = "0.17.12"; };
+      };
+      demo = {
+        stable        = bdist { sha256 = "0zf61z8937yd8pyrjrqdjgd0rjl7snwrm3xw86vv7s7p835san6a"; version = "0.16.51"; };
+      };
+    };
+    i686-linux = let bdist = bdistForArch { inUrl = "linux32"; inTar = "i386"; }; in {
+      alpha = {
+        stable        = bdist { sha256 = "0nnfkxxqnywx1z05xnndgh71gp4izmwdk026nnjih74m2k5j086l"; version = "0.14.23"; withAuth = true; nameMut = asGz; };
+      };
+    };
+  };
+
+  actual = binDists.${stdenv.hostPlatform.system}.${releaseType}.${branch} or (throw "Factorio ${releaseType}-${branch} binaries for ${stdenv.hostPlatform.system} are not available for download.");
+
+  bdistForArch = arch: { version
+                       , sha256
+                       , withAuth ? false
+                       , nameMut ? x: x
+                       }:
+    let
+      url = "https://factorio.com/get-download/${version}/${releaseType}/${arch.inUrl}";
+      name = nameMut "factorio_${releaseType}_${arch.inTar}-${version}.tar.xz";
+    in {
+      inherit version arch;
+      src =
+        if withAuth then
+          (stdenv.lib.overrideDerivation
+            (fetchurl {
+              inherit name url sha256;
+              curlOpts = [
+                "--get"
+                "--data-urlencode" "username@username"
+                "--data-urlencode" "token@token"
+              ];
+            })
+            (_: { # This preHook hides the credentials from /proc
+                  preHook = ''
+                    echo -n "${username}" >username
+                    echo -n "${token}"    >token
+                  '';
+                  failureHook = ''
+                    cat <<EOF
+                    ${helpMsg}
+                    EOF
+                  '';
+            })
+          )
+        else
+          fetchurl { inherit name url sha256; };
+    };
+
+  asGz = builtins.replaceStrings [".xz"] [".gz"];
+
+  configBaseCfg = ''
+    use-system-read-write-data-directories=false
+    [path]
+    read-data=$out/share/factorio/data/
+    [other]
+    check_updates=false
+  '';
+
+  updateConfigSh = ''
+    #! $SHELL
+    if [[ -e ~/.factorio/config.cfg ]]; then
+      # Config file exists, but may have wrong path.
+      # Try to edit it. I'm sure this is perfectly safe and will never go wrong.
+      sed -i 's|^read-data=.*|read-data=$out/share/factorio/data/|' ~/.factorio/config.cfg
+    else
+      # Config file does not exist. Phew.
+      install -D $out/share/factorio/config-base.cfg ~/.factorio/config.cfg
+    fi
+  '';
+
+  modDir = factorio-utils.mkModDirDrv mods;
+
+  base = with actual; {
+    name = "factorio-${releaseType}-${version}";
+
+    inherit src;
+
+    preferLocalBuild = true;
+    dontBuild = true;
+
+    installPhase = ''
+      mkdir -p $out/{bin,share/factorio}
+      cp -a data $out/share/factorio
+      cp -a bin/${arch.inTar}/factorio $out/bin/factorio
+      patchelf \
+        --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+        $out/bin/factorio
+    '';
+
+    meta = {
+      description = "A game in which you build and maintain factories";
+      longDescription = ''
+        Factorio is a game in which you build and maintain factories.
+
+        You will be mining resources, researching technologies, building
+        infrastructure, automating production and fighting enemies. Use your
+        imagination to design your factory, combine simple elements into
+        ingenious structures, apply management skills to keep it working and
+        finally protect it from the creatures who don't really like you.
+
+        Factorio has been in development since spring of 2012 and it is
+        currently in late alpha.
+      '';
+      homepage = https://www.factorio.com/;
+      license = stdenv.lib.licenses.unfree;
+      maintainers = with stdenv.lib.maintainers; [ Baughn elitak ];
+      platforms = [ "i686-linux" "x86_64-linux" ];
+    };
+  };
+
+  releases = rec {
+    headless = base;
+    demo = base // {
+
+      buildInputs = [ makeWrapper ];
+
+      libPath = stdenv.lib.makeLibraryPath [
+        alsaLib
+        libX11
+        libXcursor
+        libXinerama
+        libXrandr
+        libXi
+        libGL
+      ];
+
+      installPhase = base.installPhase + ''
+        wrapProgram $out/bin/factorio                                \
+          --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:$libPath \
+          --run "$out/share/factorio/update-config.sh"               \
+          --argv0 ""                                                 \
+          --add-flags "-c \$HOME/.factorio/config.cfg"               \
+          ${if mods!=[] then "--add-flags --mod-directory=${modDir}" else ""}
+
+          # TODO Currently, every time a mod is changed/added/removed using the
+          # modlist, a new derivation will take up the entire footprint of the
+          # client. The only way to avoid this is to remove the mods arg from the
+          # package function. The modsDir derivation will have to be built
+          # separately and have the user specify it in the .factorio config or
+          # right along side it using a symlink into the store I think i will
+          # just remove mods for the client derivation entirely. this is much
+          # cleaner and more useful for headless mode.
+
+          # TODO: trying to toggle off a mod will result in read-only-fs-error.
+          # not much we can do about that except warn the user somewhere. In
+          # fact, no exit will be clean, since this error will happen on close
+          # regardless. just prints an ugly stacktrace but seems to be otherwise
+          # harmless, unless maybe the user forgets and tries to use the mod
+          # manager.
+
+        install -m0644 <(cat << EOF
+        ${configBaseCfg}
+        EOF
+        ) $out/share/factorio/config-base.cfg
+
+        install -m0755 <(cat << EOF
+        ${updateConfigSh}
+        EOF
+        ) $out/share/factorio/update-config.sh
+      '';
+    };
+    alpha = demo // {
+
+      installPhase = demo.installPhase + ''
+        cp -a doc-html $out/share/factorio
+      '';
+    };
+  };
+
+in stdenv.mkDerivation (releases.${releaseType})
diff --git a/nixpkgs/pkgs/games/factorio/mods.nix b/nixpkgs/pkgs/games/factorio/mods.nix
new file mode 100644
index 000000000000..501665494ebf
--- /dev/null
+++ b/nixpkgs/pkgs/games/factorio/mods.nix
@@ -0,0 +1,213 @@
+# This file is here for demo purposes only, populated with a small sampling of
+# mods. It will eventually be replaced by a nixos-channel that will provide
+# derivations for most or all of the mods tracked through the official mod
+# manager site.
+{ stdenv, fetchurl
+, factorio-utils
+, allRecommendedMods ? true
+, allOptionalMods ? false
+}:
+with stdenv.lib;
+let
+  modDrv = factorio-utils.modDrv { inherit allRecommendedMods allOptionalMods; };
+in
+rec {
+
+  bobassembly = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobassembly_0.13.0.zip
+      ];
+      sha256 = "0c0m7sb45r37g882x0aq8mc82yhfh9j9h8g018d4s5pf93vzr6d1";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ bobplates ];
+  };
+
+  bobconfig = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobconfig_0.13.1.zip
+      ];
+      sha256 = "0z4kmggm1slbr3qiy5xahc9nhdffllp21n9nv5gh1zbzv72sb1rp";
+    };
+  };
+
+  bobelectronics = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobelectronics_0.13.1.zip
+      ];
+      sha256 = "16sn5w33s0ckiwqxx7b2pcsqmhxbxjm2w4h4vd99hwpvdpjyav52";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ bobplates ];
+  };
+
+  bobenemies = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobenemies_0.13.1.zip
+      ];
+      sha256 = "1wnb5wsvh9aa3i9mj17f36ybbd13qima3iwshw60i6xkzzqfk44d";
+    };
+    optionalDeps = [ bobconfig ];
+  };
+
+  bobgreenhouse = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobgreenhouse_0.13.2.zip
+      ];
+      sha256 = "1ql26875dvz2lqln289jg1w6yjzsd0x0pqmd570jffwi5m320rrw";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ bobplates ];
+  };
+
+  bobinserters = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobinserters_0.13.3.zip
+      ];
+      sha256 = "0nys9zhaw0v3w2xzrhawr8g2hcxkzdmyqd4s8xm5bnbrgrq86g9z";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ ];
+  };
+
+  boblibrary = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/boblibrary_0.13.1.zip
+      ];
+      sha256 = "04fybs626lzxf0p21jl8kakh2mddah7l9m57srk7a87jw5bj1zx8";
+    };
+  };
+
+  boblogistics = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/boblogistics_0.13.7.zip
+      ];
+      sha256 = "0c91zmyxwsmyv6vm6gp498vb7flqlcyzkbp9s5q1651hpyd378hx";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ bobplates ];
+  };
+
+  bobmining = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobmining_0.13.1.zip
+      ];
+      sha256 = "1l7k3v4aizihppgi802fr5b8zbnq2h05c2bbsk5hds239qgxy80m";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig bobores bobplates ];
+  };
+
+  bobmodules = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobmodules_0.13.0.zip
+      ];
+      sha256 = "0ggd2gc4s5sbld7gyncbzdgq8gc00mvxjcfv7i2dchcrdzrlr556";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ bobplates bobassembly bobelectronics ];
+  };
+
+  bobores = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobores_0.13.1.zip
+      ];
+      sha256 = "1rri70655kj77sdr3zgp56whmcl0gfjmw90jm7lj1jp8l1pdfzb9";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+  };
+
+  bobplates = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobplates_0.13.2.zip
+      ];
+      sha256 = "0iczpa26hflj17k84p4n6wz0pwhbbrfk86dgac4bfz28kqg58nj1";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig bobenemies ];
+    recommendedDeps = [ bobores bobtech ];
+  };
+
+  bobpower = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobpower_0.13.1.zip
+      ];
+      sha256 = "18sblnlvprrm2vzlczlki09yj9lr4y64808zrwmcasf7470skar3";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ bobplates ];
+  };
+
+  bobrevamp = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobrevamp_0.13.0.zip
+      ];
+      sha256 = "0rkyf61clh8fjg72z9i7r4skvdzgd49ky6s0486xxljhbil4nxb7";
+    };
+    deps = [ boblibrary ];
+  };
+
+  bobtech = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobtech_0.13.0.zip
+      ];
+      sha256 = "0arc9kilxzdpapn3gh5h8269ssgsjxib4ny0qissq2sg95gxlsn0";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobenemies ];
+  };
+
+  bobtechsave = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobtechsave_0.13.0.zip
+      ];
+      sha256 = "1vlv4sgdfd9ldjm8y79n95ms5k6x2i7khjc422lp9080m03v1hcl";
+    };
+  };
+
+  bobwarfare = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobwarfare_0.13.4.zip
+      ];
+      sha256 = "07wzn16i4r0qjm41wfyl17rrhry2vrph08a0kq8w5iy6qcbqqfd3";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ boblibrary bobplates ];
+    recommendedDeps = [ bobtech ];
+  };
+
+  clock = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/clock_0.13.0.zip
+      ];
+      sha256 = "0nflywbj6p2kz2w9wff78vskzljrzaf32ib56k3z456d9y8mlxfd";
+    };
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/factorio/utils.nix b/nixpkgs/pkgs/games/factorio/utils.nix
new file mode 100644
index 000000000000..563ece6cb9c2
--- /dev/null
+++ b/nixpkgs/pkgs/games/factorio/utils.nix
@@ -0,0 +1,49 @@
+# This file provides a top-level function that will be used by both nixpkgs and nixos
+# to generate mod directories for use at runtime by factorio.
+{ stdenv }:
+with stdenv.lib;
+{
+  mkModDirDrv = mods: # a list of mod derivations
+    let
+      recursiveDeps = modDrv: [modDrv] ++ optionals (modDrv.deps == []) (map recursiveDeps modDrv.deps);
+      modDrvs = unique (flatten (map recursiveDeps mods));
+    in
+    stdenv.mkDerivation {
+      name = "factorio-mod-directory";
+
+      preferLocalBuild = true;
+      buildCommand = ''
+        mkdir -p $out
+        for modDrv in ${toString modDrvs}; do
+          # NB: there will only ever be a single zip file in each mod derivation's output dir
+          ln -s $modDrv/*.zip $out
+        done
+      '';
+    };
+
+    modDrv = { allRecommendedMods, allOptionalMods }:
+      { src
+      , name ? null
+      , deps ? []
+      , optionalDeps ? []
+      , recommendedDeps ? []
+      }: stdenv.mkDerivation {
+
+        inherit src;
+
+        # Use the name of the zip, but endstrip ".zip" and possibly the querystring that gets left in by fetchurl
+        name = replaceStrings ["_"] ["-"] (if name != null then name else removeSuffix ".zip" (head (splitString "?" src.name)));
+
+        deps = deps ++ optionals allOptionalMods optionalDeps
+                    ++ optionals allRecommendedMods recommendedDeps;
+
+        preferLocalBuild = true;
+        buildCommand = ''
+          mkdir -p $out
+          srcBase=$(basename $src)
+          srcBase=''${srcBase#*-}  # strip nix hash
+          srcBase=''${srcBase%\?*} # strip querystring leftover from fetchurl
+          cp $src $out/$srcBase
+        '';
+      };
+}
diff --git a/nixpkgs/pkgs/games/fairymax/default.nix b/nixpkgs/pkgs/games/fairymax/default.nix
new file mode 100644
index 000000000000..1aab0933b1bf
--- /dev/null
+++ b/nixpkgs/pkgs/games/fairymax/default.nix
@@ -0,0 +1,40 @@
+{stdenv, fetchurl}:
+stdenv.mkDerivation rec {
+  name = "fairymax-${version}";
+  version = "4.8";
+  src = fetchurl {
+    url = "http://home.hccnet.nl/h.g.muller/fmax4_8w.c";
+    sha256 = "01vxhpa4z0613mkgkzmsln293wxmyp5kdzil93cd1ik51q4gwjca";
+  };
+  ini = fetchurl {
+    url = "http://home.hccnet.nl/h.g.muller/fmax.ini";
+    sha256 = "1zwx70g3gspbqx1zf9gm1may8jrli9idalvskxbdg33qgjys47cn";
+  };
+  unpackPhase = ''
+    cp ${src} fairymax.c
+    cp ${ini} fmax.ini
+  '';
+  buildPhase = ''
+    gcc *.c -o fairymax -DINI_FILE='"'"$out/share/fairymax/fmax.ini"'"'
+  '';
+  installPhase = ''
+    mkdir -p "$out"/{bin,share/fairymax}
+    cp fairymax "$out/bin"
+    cp fmax.ini "$out/share/fairymax"
+  '';
+  meta = {
+    inherit version;
+    description = ''A small chess engine supporting fairy pieces'';
+    longDescription = ''
+       A version of micro-Max that reads the piece description
+       from a file fmax.ini, so that arbitrary fairy pieces can be
+       implemented. This version (4.8J) supports up to 15 piece types,
+       and board sizes up to 12x8. A Linux port exists in the
+       format of a debian package.
+    '';
+    license = stdenv.lib.licenses.free ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = http://home.hccnet.nl/h.g.muller/dwnldpage.html;
+  };
+}
diff --git a/nixpkgs/pkgs/games/fish-fillets-ng/default.nix b/nixpkgs/pkgs/games/fish-fillets-ng/default.nix
new file mode 100644
index 000000000000..2ab6e04e2d82
--- /dev/null
+++ b/nixpkgs/pkgs/games/fish-fillets-ng/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, SDL, lua5_1, pkgconfig, SDL_mixer, SDL_image, SDL_ttf}:
+stdenv.mkDerivation rec {
+  name = "fish-fillets-ng-${version}";
+  version = "1.0.1";
+  src = fetchurl {
+    url = "mirror://sourceforge/fillets/fillets-ng-${version}.tar.gz";
+    sha256 = "1nljp75aqqb35qq3x7abhs2kp69vjcj0h1vxcpdyn2yn2nalv6ij";
+  };
+  data = fetchurl {
+    url = "mirror://sourceforge/fillets/fillets-ng-data-${version}.tar.gz";
+    sha256 = "169p0yqh2gxvhdilvjc2ld8aap7lv2nhkhkg4i1hlmgc6pxpkjgh";
+  };
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [SDL lua5_1 SDL_mixer SDL_image SDL_ttf];
+  postInstall=''
+    mkdir -p "$out/share/games/fillets-ng/"
+    tar -xf ${data} -C "$out/share/games/fillets-ng/" --strip-components=1
+  '';
+  meta = {
+    inherit version;
+    description = ''A puzzle game'';
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = http://fillets.sourceforge.net/;
+  };
+}
diff --git a/nixpkgs/pkgs/games/flightgear/default.nix b/nixpkgs/pkgs/games/flightgear/default.nix
new file mode 100644
index 000000000000..b70dec62388c
--- /dev/null
+++ b/nixpkgs/pkgs/games/flightgear/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchurl, makeWrapper
+, freeglut, freealut, libGLU_combined, libICE, libjpeg, openal, openscenegraph, plib
+, libSM, libunwind, libX11, xorgproto, libXext, libXi
+, libXmu, libXt, simgear, zlib, boost, cmake, libpng, udev, fltk13, apr
+, makeDesktopItem, qtbase, qtdeclarative, glew
+}:
+
+let
+  version = "2018.2.2";
+  shortVersion = "2018.2";
+  data = stdenv.mkDerivation rec {
+    name = "flightgear-base-${version}";
+
+    src = fetchurl {
+      url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.tar.bz2";
+      sha256 = "c89b94e4cf3cb7eda728daf6cca6dd051f7a47863776c99fd2f3fe0054400ac4";
+    };
+
+    phases = [ "installPhase" ];
+
+    installPhase = ''
+      mkdir -p "$out/share/FlightGear"
+      tar xf "${src}" -C "$out/share/FlightGear/" --strip-components=1
+    '';
+  };
+in
+stdenv.mkDerivation rec {
+  name = "flightgear-${version}";
+   # inheriting data for `nix-prefetch-url -A pkgs.flightgear.data.src`
+  inherit version data;
+
+  src = fetchurl {
+    url = "mirror://sourceforge/flightgear/release-${shortVersion}/${name}.tar.bz2";
+    sha256 = "61f809ef0a3f6908d156f0c483ed5313d31b5a6ac74761955d0b266751718147";
+  };
+
+  # Of all the files in the source and data archives, there doesn't seem to be
+  # a decent icon :-)
+  iconsrc = fetchurl {
+    url = "http://wiki.flightgear.org/images/6/62/FlightGear_logo.png";
+    sha256 = "1ikz413jia55vfnmx8iwrlxvx8p16ggm81mbrj66wam3q7s2dm5p";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "flightgear";
+    exec = "fgfs";
+    icon = "${iconsrc}";
+    comment = "FlightGear Flight Simulator";
+    desktopName = "FlightGear";
+    genericName = "Flight simulator";
+    categories = "Game;Simulation";
+  };
+
+  buildInputs = [
+    makeWrapper
+    freeglut freealut libGLU_combined libICE libjpeg openal openscenegraph plib
+    libSM libunwind libX11 xorgproto libXext libXi
+    libXmu libXt simgear zlib boost cmake libpng udev fltk13 apr qtbase
+    glew qtdeclarative
+  ];
+
+  postInstall = ''
+    mkdir -p "$out/share/applications/"
+    cp "${desktopItem}"/share/applications/* "$out/share/applications/" #*/
+
+    for f in $out/bin/* #*/
+    do
+      wrapProgram $f --set FG_ROOT "${data}/share/FlightGear"
+    done
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Flight simulator";
+    maintainers = with maintainers; [ raskin the-kenny ];
+    platforms = platforms.linux;
+    hydraPlatforms = []; # disabled from hydra because it's so big
+    license = licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/games/freecell-solver/default.nix b/nixpkgs/pkgs/games/freecell-solver/default.nix
new file mode 100644
index 000000000000..3dc9857d4552
--- /dev/null
+++ b/nixpkgs/pkgs/games/freecell-solver/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, pkgconfig, cmake
+, perl, gmp, libtap, gperf
+, perlPackages, python3 }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec{
+
+  name = "freecell-solver-${version}";
+  version = "4.18.0";
+
+  src = fetchurl {
+    url = "http://fc-solve.shlomifish.org/downloads/fc-solve/${name}.tar.xz";
+    sha256 = "1cmaib69pijmcpvgjvrdry8j4xys8l906l80b8z21vvyhdwrfdnn";
+  };
+
+  nativeBuildInputs = [
+    cmake perl pkgconfig
+  ] ++ (with perlPackages; TaskFreecellSolverTesting.buildInputs ++ [
+    GamesSolitaireVerify StringShellQuote TaskFreecellSolverTesting TemplateToolkit
+  ]);
+
+  buildInputs = [
+    gmp libtap gperf
+    python3 python3.pkgs.random2
+  ];
+
+  # "ninja t/CMakeFiles/delta-states-test.t.exe.dir/__/delta_states.c.o" fails
+  # to depend on the generated "is_king.h".
+  enableParallelBuilding = false;
+
+  meta = {
+    description = "A FreeCell automatic solver";
+    longDescription = ''
+      FreeCell Solver is a program that automatically solves layouts
+      of Freecell and similar variants of Card Solitaire such as Eight
+      Off, Forecell, and Seahaven Towers, as well as Simple Simon
+      boards.
+    '';
+    homepage = http://fc-solve.shlomifish.org/;
+    license = licenses.mit;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/freeciv/default.nix b/nixpkgs/pkgs/games/freeciv/default.nix
new file mode 100644
index 000000000000..5d7883c18949
--- /dev/null
+++ b/nixpkgs/pkgs/games/freeciv/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, zlib, bzip2, pkgconfig, curl, lzma, gettext, libiconv
+, sdlClient ? true, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_gfx, freetype, fluidsynth
+, gtkClient ? false, gtk2
+, server ? true, readline
+, enableSqlite ? true, sqlite
+}:
+
+let
+  inherit (stdenv.lib) optional optionals;
+
+  name = "freeciv";
+  version = "2.6.0";
+in
+stdenv.mkDerivation {
+  name = "${name}-${version}";
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://sourceforge/freeciv/${name}-${version}.tar.bz2";
+    sha256 = "16f9wsnn7073s6chzbm3819swd0iw019p9nrzr3diiynk28kj83w";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ zlib bzip2 curl lzma gettext libiconv ]
+    ++ optionals sdlClient [ SDL SDL_mixer SDL_image SDL_ttf SDL_gfx freetype fluidsynth ]
+    ++ optionals gtkClient [ gtk2 ]
+    ++ optional server readline
+    ++ optional enableSqlite sqlite;
+
+  configureFlags = [ "--enable-shared" ]
+    ++ optional sdlClient "--enable-client=sdl"
+    ++ optional enableSqlite "--enable-fcdb=sqlite3"
+    ++ optional (!gtkClient) "--enable-fcmp=cli"
+    ++ optional (!server) "--disable-server";
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Multiplayer (or single player), turn-based strategy game";
+
+    longDescription = ''
+      Freeciv is a Free and Open Source empire-building strategy game
+      inspired by the history of human civilization. The game commences in
+      prehistory and your mission is to lead your tribe from the stone age
+      to the space age...
+    '';
+
+    homepage = http://freeciv.wikia.com/;
+    license = licenses.gpl2;
+
+    maintainers = with maintainers; [ pierron ];
+    platforms = platforms.unix;
+    hydraPlatforms = stdenv.lib.platforms.linux; # sdl-config times out on darwin
+  };
+}
diff --git a/nixpkgs/pkgs/games/freedink/default.nix b/nixpkgs/pkgs/games/freedink/default.nix
new file mode 100644
index 000000000000..d5efe2b3ebd9
--- /dev/null
+++ b/nixpkgs/pkgs/games/freedink/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_gfx
+, pkgconfig, intltool, fontconfig, libzip, zip, zlib }:
+
+let
+  version = "1.08.20121209";
+
+  freedink_data = stdenv.mkDerivation rec {
+    name = "freedink-data-${version}";
+
+    src = fetchurl {
+      url = "mirror://gnu/freedink/${name}.tar.gz";
+      sha256 = "1mhns09l1s898x18ahbcy9gabrmgsr8dv7pm0a2ivid8mhxahn1j";
+    };
+
+    prePatch = "substituteInPlace Makefile --replace /usr/local $out";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "freedink-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnu/freedink/${name}.tar.gz";
+    sha256 = "19xximbcm6506kvpf3s0q96697kmzca3yrjdr6dgphklp33zqsqr";
+  };
+
+  buildInputs = [
+    SDL SDL_mixer SDL_image SDL_ttf SDL_gfx
+    pkgconfig intltool fontconfig libzip zip zlib
+  ];
+
+  preConfigure = ''
+    # Build fails on Linux with windres.
+    export ac_cv_prog_ac_ct_WINDRES=
+  '';
+
+  postInstall = ''
+    mkdir -p "$out/share/"
+    ln -s ${freedink_data}/share/dink "$out/share/"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "A free, portable and enhanced version of the Dink Smallwood game engine";
+
+    longDescription = ''
+      GNU FreeDink is a new and portable version of the Dink Smallwood
+      game engine, which runs the original game as well as its D-Mods,
+      with close compatibility, under multiple platforms.
+    '';
+
+    homepage = http://www.freedink.org/;
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    maintainers = [ stdenv.lib.maintainers.bjg ];
+    platforms = stdenv.lib.platforms.all;
+    hydraPlatforms = stdenv.lib.platforms.linux; # sdl-config times out on darwin
+  };
+}
diff --git a/nixpkgs/pkgs/games/freedroidrpg/default.nix b/nixpkgs/pkgs/games/freedroidrpg/default.nix
new file mode 100644
index 000000000000..2ebb60f3d5db
--- /dev/null
+++ b/nixpkgs/pkgs/games/freedroidrpg/default.nix
@@ -0,0 +1,63 @@
+{ fetchurl, stdenv, pkgconfig, gettext, python3, SDL, SDL_image, SDL_gfx, SDL_mixer, libogg, libvorbis, lua5_3, libjpeg, libpng, zlib, libiconv }:
+
+let
+  version = "0.16.1";
+in stdenv.mkDerivation rec {
+  name = "freedroidrpg-${version}";
+
+  src = fetchurl {
+    url = "ftp://ftp.osuosl.org/pub/freedroid/freedroidRPG-${stdenv.lib.versions.majorMinor version}/freedroidRPG-${version}.tar.gz";
+    sha256 = "0n4kn38ncmcy3lrxmq8fjry6c1z50z4q1zcqfig0j4jb0dsz2va2";
+  };
+
+  nativeBuildInputs = [ pkgconfig gettext python3 ];
+
+  buildInputs = [
+    SDL SDL_image SDL_gfx SDL_mixer libogg libvorbis lua5_3 libjpeg libpng zlib
+  ] ++ stdenv.lib.optional stdenv.isDarwin libiconv;
+
+  meta = with stdenv.lib; {
+    description = "Isometric 3D RPG similar to game Diablo";
+
+    longDescription = ''
+      <para>
+        FreedroidRPG is an original isometric 3D role playing game
+        taking place in the future, on Earth. It features action and
+        dialogs.
+      </para>
+      <para>
+        The game tells the story of a world destroyed by a conflict between
+        robots and their human masters. Play as Tux in a quest to save the
+        world from the murderous rebel bots who know no mercy. You get to
+        choose which path you wish to follow, and freedom of choice is
+        everywhere in the game.
+      </para>
+      <para>
+        FreedroidRPG features a real time combat system with melee and
+        ranged weapons, fairly similar to the proprietary game Diablo.
+        There is an innovative system of programs that can be run in order
+        to take control of enemy robots, alter their behavior, or improve one's
+        characteristics. You can use over 50 different kinds of items and
+        fight countless enemies on your way to your destiny. An advanced
+        dialog system provides story background and immersive role
+        playing situations.
+      </para>
+      <para>
+        The game is complete, fully playable, and can provide about
+        12 hours of fun. It is still being actively developed, and
+        help is welcome in many areas. People having - or trying to acquire -
+        programming, map editing, or writing skills will find FreedroidRPG
+        to be an exciting, fast-moving project in which they can fully
+        express their creativity.
+      </para>
+    '';
+
+    homepage = http://www.freedroid.org/;
+
+    license = licenses.gpl2Plus;
+
+    maintainers = with maintainers; [ jtojnar ];
+    platforms = platforms.unix;
+    hydraPlatforms = platforms.linux; # sdl-config times out on darwin
+  };
+}
diff --git a/nixpkgs/pkgs/games/freeorion/default.nix b/nixpkgs/pkgs/games/freeorion/default.nix
new file mode 100644
index 000000000000..5895e87e731f
--- /dev/null
+++ b/nixpkgs/pkgs/games/freeorion/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, doxygen, graphviz, makeWrapper
+, boost, SDL2, python2, freetype, openal, libogg, libvorbis, zlib, libpng, libtiff
+, libjpeg, libGLU_combined, glew, libxslt
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.4.8";
+  name = "freeorion-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "freeorion";
+    repo   = "freeorion";
+    rev = "v${version}";
+    sha256 = "1lj1q2ljjgbbiqxb53wdrrcz0zxxr3vv9jqrhbzvfsss7q808jfw";
+  };
+
+  buildInputs = [
+	(boost.override { enablePython = true; })
+    SDL2 python2 freetype openal libogg libvorbis zlib libpng libtiff libjpeg libGLU_combined glew ];
+
+  nativeBuildInputs = [ cmake doxygen graphviz makeWrapper ];
+
+  enableParallelBuilding = true;
+
+  patches = [
+  ];
+
+  postInstall = ''
+    mkdir -p $out/fixpaths
+    # We need final slashes for XSLT replace to work properly
+    substitute ${./fix-paths.xslt} $out/fixpaths/fix-paths.xslt \
+      --subst-var-by nixStore "$NIX_STORE/" \
+      --subst-var-by out "$out/"
+    substitute ${./fix-paths.sh} $out/fixpaths/fix-paths \
+      --subst-var-by libxsltBin ${libxslt.bin} \
+      --subst-var-by shell ${stdenv.shell} \
+      --subst-var out
+    chmod +x $out/fixpaths/fix-paths
+
+    wrapProgram $out/bin/freeorion \
+      --run $out/fixpaths/fix-paths \
+      --prefix LD_LIBRARY_PATH : $out/lib/freeorion
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A free, open source, turn-based space empire and galactic conquest (4X) computer game";
+    homepage = http://www.freeorion.org;
+    license = with licenses; [ gpl2 cc-by-sa-30 ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ tex ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/freeorion/fix-paths.sh b/nixpkgs/pkgs/games/freeorion/fix-paths.sh
new file mode 100644
index 000000000000..3f82533dd60d
--- /dev/null
+++ b/nixpkgs/pkgs/games/freeorion/fix-paths.sh
@@ -0,0 +1,6 @@
+#!@shell@
+
+if [ -e ~/.config/freeorion/config.xml ]; then
+  @libxsltBin@/bin/xsltproc -o ~/.config/freeorion/config.xml @out@/fixpaths/fix-paths.xslt ~/.config/freeorion/config.xml
+fi
+exit 0
diff --git a/nixpkgs/pkgs/games/freeorion/fix-paths.xslt b/nixpkgs/pkgs/games/freeorion/fix-paths.xslt
new file mode 100644
index 000000000000..f0db646b81ad
--- /dev/null
+++ b/nixpkgs/pkgs/games/freeorion/fix-paths.xslt
@@ -0,0 +1,13 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output method="xml" omit-xml-declaration="no" indent="yes" />
+
+  <xsl:template match='node() | @*'>
+    <xsl:copy>
+      <xsl:apply-templates select='node() | @*'/>
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match='//text()[starts-with(., "@nixStore@")]'>
+    <xsl:value-of select='concat("@out@", substring-after(substring-after(., "@nixStore@"), "/"))'/>
+  </xsl:template>
+</xsl:stylesheet>
diff --git a/nixpkgs/pkgs/games/freesweep/default.nix b/nixpkgs/pkgs/games/freesweep/default.nix
new file mode 100644
index 000000000000..dd0707fe5c39
--- /dev/null
+++ b/nixpkgs/pkgs/games/freesweep/default.nix
@@ -0,0 +1,37 @@
+{ fetchFromGitHub, ncurses, stdenv,
+  updateAutotoolsGnuConfigScriptsHook }:
+
+stdenv.mkDerivation rec {
+  name = "freesweep-${version}";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "rwestlund";
+    repo = "freesweep";
+    rev = "v${version}";
+    sha256 = "0grkwmz9whg1vlnk6gbr0vv9i2zgbd036182pk0xj4cavaj9rpjb";
+  };
+
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+  buildInputs = [ ncurses ];
+
+  preConfigure = ''
+    configureFlags="$configureFlags --with-prefsdir=$out/share"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -D -m 0555 freesweep $out/bin/freesweep
+    install -D -m 0444 sweeprc $out/share/sweeprc
+    install -D -m 0444 freesweep.6 $out/share/man/man6/freesweep.6
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A console minesweeper-style game written in C for Unix-like systems";
+    homepage = https://github.com/rwestlund/freesweep;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ kierdavis ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/frogatto/data.nix b/nixpkgs/pkgs/games/frogatto/data.nix
new file mode 100644
index 000000000000..ec2cb9416661
--- /dev/null
+++ b/nixpkgs/pkgs/games/frogatto/data.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub }:
+  
+stdenv.mkDerivation rec {
+  pname = "frogatto-data";
+  version = "unstable-2018-12-18";
+  
+  src = fetchFromGitHub {
+    owner = "frogatto";
+    repo = "frogatto";
+    # master branch as of 2018-12-18
+    rev = "8f261b5d3fca3c88e6a534316a28378cf687d3e5";
+    sha256 = "0nyfwfyy5gxp61ydna299nq9p5wra9mk0bf1drdngg6bwws1hrqx";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/frogatto/modules
+    cp -ar . $out/share/frogatto/modules/frogatto
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/frogatto/frogatto;
+    description = "Data files to the frogatto game";
+    license = with licenses; [ cc-by-30 unfree ];
+    maintainers = with maintainers; [ astro ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/frogatto/default.nix b/nixpkgs/pkgs/games/frogatto/default.nix
new file mode 100644
index 000000000000..53be638e753a
--- /dev/null
+++ b/nixpkgs/pkgs/games/frogatto/default.nix
@@ -0,0 +1,43 @@
+{ lib, buildEnv, stdenv, callPackage, makeWrapper, makeDesktopItem }:
+
+let
+  description = "Action-adventure game, starring a certain quixotic frog";
+  engine = callPackage ./engine.nix { };
+  data = callPackage ./data.nix { };
+  desktopItem = makeDesktopItem {
+    name = "frogatto";
+    exec = "frogatto";
+    startupNotify = "true";
+    icon = "${data}/share/frogatto/modules/frogatto/images/os/frogatto-icon.png";
+    comment = description;
+    desktopName = "Frogatto";
+    genericName = "frogatto";
+    categories = "Application;Game;ArcadeGame;";
+  };
+  version = "unstable-2018-12-18";
+in buildEnv rec {
+  name = "frogatto-${version}";
+
+  buildInputs = [ makeWrapper ];
+  paths = [ engine data desktopItem ];
+  pathsToLink = [
+    "/bin"
+    "/share/frogatto/data"
+    "/share/frogatto/images"
+    "/share/frogatto/modules"
+    "/share/applications"
+  ];
+
+  postBuild = ''
+    wrapProgram $out/bin/frogatto \
+      --run "cd $out/share/frogatto"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://frogatto.com;
+    description = description;
+    license = with licenses; [ cc-by-30 unfree ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ astro ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/frogatto/engine.nix b/nixpkgs/pkgs/games/frogatto/engine.nix
new file mode 100644
index 000000000000..b49224d258d8
--- /dev/null
+++ b/nixpkgs/pkgs/games/frogatto/engine.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, bash, which
+, boost, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf
+, glew, zlib, icu, pkgconfig, cairo, libvpx }:
+
+stdenv.mkDerivation rec {
+  pname = "anura-engine";
+  version = "unstable-2018-11-28";
+
+  src = fetchFromGitHub {
+    owner = "anura-engine";
+    repo = "anura";
+    # trunk branch as of 2018-11-28
+    rev = "8070111467802dc772c0a6c7806ecd16b0bcdaa9";
+    sha256 = "0xbqwfmws69n7iiz17n93h4jiw39cwyf7hxw0qi2c8cccr37b1nr";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    which pkgconfig
+  ];
+
+  buildInputs = [
+    boost
+    SDL2
+    SDL2_image
+    SDL2_mixer
+    SDL2_ttf
+    glew
+    zlib
+    icu
+    cairo
+    libvpx
+  ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/frogatto
+    cp -ar data images modules $out/share/frogatto/
+    cp -a anura $out/bin/frogatto
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/anura-engine/anura;
+    description = "Game engine used by Frogatto";
+    license = licenses.zlib;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ astro ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/frotz/default.nix b/nixpkgs/pkgs/games/frotz/default.nix
new file mode 100644
index 000000000000..3b4fb6842dbb
--- /dev/null
+++ b/nixpkgs/pkgs/games/frotz/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+  version = "2.44";
+  name = "frotz-${version}";
+
+  src = fetchFromGitHub {
+    owner = "DavidGriffith";
+    repo = "frotz";
+    rev = version;
+    sha256 = "0gjkk4gxzqmxfdirrz2lr0bms6l9fc31vkmlywigkbdlh8wxgypp";
+  };
+
+  makeFlags = ''CC=cc PREFIX=$(out) CURSES=-lncurses'';
+
+  buildInputs = [ ncurses ];
+
+  meta = with stdenv.lib; {
+    homepage = http://frotz.sourceforge.net/;
+    description = "A z-machine interpreter for Infocom games and other interactive fiction.";
+    platforms = platforms.unix;
+    maintainers = [ maintainers.nicknovitski ];
+    license = licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/games/fsg/default.nix b/nixpkgs/pkgs/games/fsg/default.nix
new file mode 100644
index 000000000000..d334439cafb8
--- /dev/null
+++ b/nixpkgs/pkgs/games/fsg/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, gtk2, glib, pkgconfig, libGLU_combined, wxGTK, libX11, xorgproto
+, runtimeShell }:
+
+stdenv.mkDerivation {
+  name = "fsg-4.4";
+
+  src = fetchurl {
+    name = "fsg-src-4.4.tar.gz";
+    url = "https://github.com/ctrlcctrlv/wxsand/blob/master/fsg-src-4.4-ORIGINAL.tar.gz?raw=true";
+    sha256 = "1756y01rkvd3f1pkj88jqh83fqcfl2fy0c48mcq53pjzln9ycv8c";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 glib libGLU_combined wxGTK libX11 xorgproto ];
+
+  preBuild = ''
+    sed -e '
+      s@currentProbIndex != 100@0@;
+    ' -i MainFrame.cpp
+    sed -re '/ctrans_prob/s/energy\[center][+]energy\[other]/(int)(fmin(energy[center]+energy[other],99))/g' -i Canvas.cpp
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/libexec
+    cp sand $out/libexec
+    echo -e '#!${runtimeShell}\nLC_ALL=C '$out'/libexec/sand "$@"' >$out/bin/fsg
+    chmod a+x $out/bin/fsg
+  '';
+
+  meta = {
+    description = "Cellular automata engine tuned towards the likes of Falling Sand";
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/galaxis/default.nix b/nixpkgs/pkgs/games/galaxis/default.nix
new file mode 100644
index 000000000000..c0799e8fdf4c
--- /dev/null
+++ b/nixpkgs/pkgs/games/galaxis/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, ncurses, xmlto }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec{
+
+  name = "galaxis-${version}";
+  version = "1.9";
+
+  src = fetchurl{
+    url = "http://www.catb.org/~esr/galaxis/${name}.tar.gz";
+    sha256 = "1dsypk5brfbc399pg4fk9myyh5yyln0ljl1aiqkypws8h4nsdphl";
+  };
+
+  buildInputs = [ ncurses xmlto ];
+
+  patchPhase = ''
+    sed -i\
+     -e 's|^install: galaxis\.6 uninstall|install: galaxis.6|'\
+     -e 's|usr/||g' -e 's|ROOT|DESTDIR|g'\
+     -e 's|install -m 755 -o 0 -g 0|install -m 755|' Makefile
+  '';
+
+  dontConfigure = true;
+
+  makeFlags = [ "DESTDIR=$(out)" ];
+
+  meta = {
+    description = "Rescue lifeboats lost in interstellar space";
+    longDescription = ''
+      Lifeboats from a crippled interstellar liner are adrift in a starfield. To
+      find them, you can place probes that look in all eight compass directions
+      and tell you how many lifeboats they see. If you drop a probe directly on
+      a lifeboat it will be revealed immediately. Your objective: find the
+      lifeboats as quickly as possible, before the stranded passengers run out
+      of oxygen!
+
+      This is a UNIX-hosted, curses-based clone of the nifty little Macintosh
+      freeware game Galaxis. It doesn't have the super-simple, point-and-click
+      interface of the original, but compensates by automating away some of the
+      game's simpler deductions.
+    '';
+    homepage = http://catb.org/~esr/galaxis/;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/gambatte/default.nix b/nixpkgs/pkgs/games/gambatte/default.nix
new file mode 100644
index 000000000000..dabcfb19db04
--- /dev/null
+++ b/nixpkgs/pkgs/games/gambatte/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, scons, qt4 }:
+
+stdenv.mkDerivation rec {
+  name = "gambatte-${version}";
+  version = "2016-05-03";
+
+  src = fetchFromGitHub {
+    owner = "sinamas";
+    repo = "gambatte";
+    rev = "f8a810b103c4549f66035dd2be4279c8f0d95e77";
+    sha256 = "1arv4zkh3fhrghsykl4blazc9diw09m44pyff1059z5b98smxy3v";
+  };
+
+  buildInputs = [ scons qt4 ];
+
+  patches = [ ./fix-scons-paths.patch ];
+
+  buildPhase = ''
+    ./build_qt.sh
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp gambatte_qt/bin/gambatte_qt $out/bin/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Portable, open-source Game Boy Color emulator";
+    homepage = https://github.com/sinamas/gambatte;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.dezgeg ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/gambatte/fix-scons-paths.patch b/nixpkgs/pkgs/games/gambatte/fix-scons-paths.patch
new file mode 100644
index 000000000000..ea10ee4163b4
--- /dev/null
+++ b/nixpkgs/pkgs/games/gambatte/fix-scons-paths.patch
@@ -0,0 +1,15 @@
+diff --git a/libgambatte/SConstruct b/libgambatte/SConstruct
+index e882514..87e1eaa 100644
+--- a/libgambatte/SConstruct
++++ b/libgambatte/SConstruct
+@@ -5,7 +5,9 @@ vars = Variables()
+ vars.Add('CC')
+ vars.Add('CXX')
+ 
+-env = Environment(CPPPATH = ['src', 'include', '../common'],
++import os
++env = Environment(ENV = os.environ,
++                  CPPPATH = ['src', 'include', '../common'],
+                   CFLAGS = global_cflags + global_defines,
+                   CXXFLAGS = global_cxxflags + global_defines,
+                   variables = vars)
diff --git a/nixpkgs/pkgs/games/garden-of-coloured-lights/default.nix b/nixpkgs/pkgs/games/garden-of-coloured-lights/default.nix
new file mode 100644
index 000000000000..066cadb13b17
--- /dev/null
+++ b/nixpkgs/pkgs/games/garden-of-coloured-lights/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, autoconf, automake, allegro }:
+
+stdenv.mkDerivation rec {
+  name = "garden-of-coloured-lights-${version}";
+  version = "1.0.9";
+
+  buildInputs = [ allegro autoconf automake ];
+
+  prePatch = ''
+    noInline='s/inline //'
+    sed -e "$noInline" -i src/stuff.c
+    sed -e "$noInline" -i src/stuff.h
+  '';
+
+  src = fetchurl {
+    url = "mirror://sourceforge/garden/${version}/garden-${version}.tar.gz";
+    sha256 = "1qsj4d7r22m5f9f5f6cyvam1y5q5pbqvy5058r7w0k4s48n77y6s";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Old-school vertical shoot-em-up / bullet hell";
+    homepage = http://garden.sourceforge.net/drupal/;
+    maintainers = with maintainers; [ Profpatsch ];
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/gargoyle/darwin.patch b/nixpkgs/pkgs/games/gargoyle/darwin.patch
new file mode 100644
index 000000000000..6958fe495d26
--- /dev/null
+++ b/nixpkgs/pkgs/games/gargoyle/darwin.patch
@@ -0,0 +1,64 @@
+--- a/garglk/fontmac.m
++++ b/garglk/fontmac.m
+@@ -167,7 +167,7 @@ static void propfont(char *file, int style)
+     }
+ }
+ 
+-static NSMutableArray<NSURL *> * gli_registered_fonts = nil;
++static NSMutableArray * gli_registered_fonts = nil;
+ static NSDistributedLock * gli_font_lock = nil;
+ 
+ void fontreplace(char *font, int type)
+@@ -181,7 +181,7 @@ void fontreplace(char *font, int type)
+     NSFontDescriptor * fontFamilyDescriptor =
+         [[NSFontDescriptor fontDescriptorWithFontAttributes: nil] fontDescriptorWithFamily: fontFamily];
+ 
+-    NSArray<NSFontDescriptor *> * fontMatches =
++    NSArray * fontMatches =
+         [fontFamilyDescriptor matchingFontDescriptorsWithMandatoryKeys: nil];
+ 
+     for (NSFontDescriptor * sysfont in fontMatches)
+@@ -259,7 +259,7 @@ void fontload(void)
+ 
+     // obtain a list of all files in the Fonts directory
+     NSString * fontFolder = [[NSString stringWithUTF8String: env] stringByAppendingPathComponent: @"Fonts"];
+-    NSArray<NSString *> * fontFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath: fontFolder error: nil];
++    NSArray * fontFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath: fontFolder error: nil];
+ 
+     // create a collection to hold the registered font URLs
+     gli_registered_fonts = [NSMutableArray new];
+--- a/garglk/launchmac.m
++++ b/garglk/launchmac.m
+@@ -556,7 +556,7 @@ static BOOL isTextbufferEvent(NSEvent * evt)
+                          <GargoyleApp, NSApplicationDelegate, NSWindowDelegate>
+ {
+     BOOL openedFirstGame;
+-    NSMutableDictionary<NSNumber *, GargoyleWindow *> * windows;
++    NSMutableDictionary * windows;
+     NSConnection * link;
+ }
+ - (BOOL) launchFile: (NSString *) file;
+--- a/garglk/ttsmac.m
++++ b/garglk/ttsmac.m
+@@ -30,7 +30,7 @@
+ #import "sysmac.h"
+ 
+ // a queue of phrases to feed to the speech synthesizer
+-static NSMutableArray<NSString *> * phraseQueue = nil;
++static NSMutableArray * phraseQueue = nil;
+ static NSRange purgeRange;
+ 
+ @interface SpeechDelegate : NSObject <NSSpeechSynthesizerDelegate>
+@@ -96,10 +96,10 @@ void gli_initialize_tts(void)
+             NSString * lang = [NSString stringWithCString: gli_conf_speak_language
+                                                  encoding: NSUTF8StringEncoding];
+ 
+-            NSArray<NSString *> * voices = [NSSpeechSynthesizer availableVoices];
++            NSArray * voices = [NSSpeechSynthesizer availableVoices];
+             for (NSString * voice in voices)
+             {
+-                NSDictionary<NSString *, id> * attr = [NSSpeechSynthesizer attributesForVoice: voice];
++                NSDictionary * attr = [NSSpeechSynthesizer attributesForVoice: voice];
+                 if ([lang isEqualToString: [attr objectForKey: NSVoiceLocaleIdentifier]])
+                 {
+                     [synth setVoice: voice];
diff --git a/nixpkgs/pkgs/games/gargoyle/darwin.sh b/nixpkgs/pkgs/games/gargoyle/darwin.sh
new file mode 100644
index 000000000000..ed0daec4ef1f
--- /dev/null
+++ b/nixpkgs/pkgs/games/gargoyle/darwin.sh
@@ -0,0 +1,54 @@
+#!@shell@
+
+set -e
+
+GARGDIST=build/macosx.release
+BUNDLE=${out}/Applications/Gargoyle.app/Contents
+TERPS="
+advsys/advsys
+agility/agility
+alan2/alan2
+alan3/alan3
+bocfel/bocfel
+frotz/frotz
+garglk/gargoyle
+geas/geas
+git/git
+glulxe/glulxe
+hugo/hugo
+jacl/jacl
+level9/level9
+magnetic/magnetic
+nitfol/nitfol
+scare/scare
+scott/scott
+tads/tadsr
+"
+
+mkdir -p $BUNDLE/MacOS
+mkdir -p $BUNDLE/Frameworks
+mkdir -p $BUNDLE/Resources
+mkdir -p $BUNDLE/PlugIns
+
+install_name_tool -id @executable_path/../Frameworks/libgarglk.dylib $GARGDIST/garglk/libgarglk.dylib
+for file in $TERPS
+do
+install_name_tool -change @executable_path/libgarglk.dylib @executable_path/../Frameworks/libgarglk.dylib $GARGDIST/$file || true
+cp -f $GARGDIST/$file $BUNDLE/PlugIns
+done
+
+cp -f garglk/launcher.plist $BUNDLE/Info.plist
+cp -f $GARGDIST/garglk/gargoyle $BUNDLE/MacOS/Gargoyle
+cp -f $GARGDIST/garglk/libgarglk.dylib $BUNDLE/Frameworks
+cp -f $GARGDIST/garglk/libgarglk.dylib $BUNDLE/PlugIns
+cp -f garglk/launchmac.nib $BUNDLE/Resources/MainMenu.nib
+cp -f garglk/garglk.ini $BUNDLE/Resources
+cp -f garglk/*.icns $BUNDLE/Resources
+cp -f licenses/* $BUNDLE/Resources
+
+mkdir $BUNDLE/Resources/Fonts
+cp fonts/LiberationMono*.ttf $BUNDLE/Resources/Fonts
+cp fonts/LinLibertine*.otf $BUNDLE/Resources/Fonts
+
+mkdir -p ${out}/bin
+ln -s $BUNDLE/MacOS/Gargoyle ${out}/bin/gargoyle
diff --git a/nixpkgs/pkgs/games/gargoyle/default.nix b/nixpkgs/pkgs/games/gargoyle/default.nix
new file mode 100644
index 000000000000..c908a9b75a9c
--- /dev/null
+++ b/nixpkgs/pkgs/games/gargoyle/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchFromGitHub, substituteAll, jam, cctools, pkgconfig
+, SDL, SDL_mixer, SDL_sound, cf-private, gtk2, libvorbis, smpeg }:
+
+let
+
+  jamenv = ''
+    unset AR
+  '' + (if stdenv.isDarwin then ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${SDL.dev}/include/SDL"
+    export GARGLKINI="$out/Applications/Gargoyle.app/Contents/Resources/garglk.ini"
+  '' else ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/libexec/gargoyle"
+    export DESTDIR="$out"
+    export _BINDIR=libexec/gargoyle
+    export _APPDIR=libexec/gargoyle
+    export _LIBDIR=libexec/gargoyle
+    export GARGLKINI="$out/etc/garglk.ini"
+  '');
+
+in
+
+stdenv.mkDerivation {
+  name = "gargoyle-2018-10-06";
+
+  src = fetchFromGitHub {
+    owner = "garglk";
+    repo = "garglk";
+    rev = "d03391563fa75942fbf8f8deeeacf3a8be9fc3b0";
+    sha256 = "0icwgc25gp7krq6zf66hljydc6vps6bb4knywnrfgnfcmcalqqx9";
+  };
+
+  nativeBuildInputs = [ jam pkgconfig ] ++ stdenv.lib.optional stdenv.isDarwin cctools;
+
+  buildInputs = [ SDL SDL_mixer SDL_sound gtk2 ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ cf-private smpeg libvorbis ];
+
+  patches = [ ./darwin.patch ];
+
+  buildPhase = jamenv + "jam -j$NIX_BUILD_CORES";
+
+  installPhase =
+  if stdenv.isDarwin then
+    (substituteAll { inherit (stdenv) shell; src = ./darwin.sh; })
+  else jamenv + ''
+    jam -j$NIX_BUILD_CORES install
+    mkdir -p "$out/bin"
+    ln -s ../libexec/gargoyle/gargoyle "$out/bin"
+    mkdir -p "$out/etc"
+    cp garglk/garglk.ini "$out/etc"
+    mkdir -p "$out/share/applications"
+    cp garglk/gargoyle.desktop "$out/share/applications"
+    mkdir -p "$out/share/icons/hicolor/32x32/apps"
+    cp garglk/gargoyle-house.png "$out/share/icons/hicolor/32x32/apps"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://ccxvii.net/gargoyle/;
+    license = licenses.gpl2Plus;
+    description = "Interactive fiction interpreter GUI";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ orivej ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/gav/default.nix b/nixpkgs/pkgs/games/gav/default.nix
new file mode 100644
index 000000000000..20e3f69152c6
--- /dev/null
+++ b/nixpkgs/pkgs/games/gav/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, SDL, SDL_image, SDL_mixer, SDL_net} :
+
+stdenv.mkDerivation {
+  name = "gav-0.9.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/gav/gav-0.9.0.tar.gz";
+    sha256 = "8f0deb8b2cd775b339229054f4f282583a4cfbcba9d27a6213cf910bab944f3e";
+  };
+
+  prePatch = ''
+    mkdir -p $out/bin
+    sed -e "s@/usr@$out@" -i Makefile
+    sed -e "s@/usr@$out@" -i Theme.h
+  '';
+
+  patches = [ ./gcc.patch ];
+  buildInputs = [SDL SDL_image SDL_mixer SDL_net];
+
+  meta = {
+    description = "Remake of AV Arcade Volleyball";
+    homepage = http://gav.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/gav/gcc.patch b/nixpkgs/pkgs/games/gav/gcc.patch
new file mode 100644
index 000000000000..eb4c64727bce
--- /dev/null
+++ b/nixpkgs/pkgs/games/gav/gcc.patch
@@ -0,0 +1,12 @@
+diff --git a/aarg.h b/aarg.h
+index a212870..907671c 100644
+--- a/aarg.h
++++ b/aarg.h
+@@ -5,6 +5,7 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <unistd.h>
++#include <string.h>
+ #include <map>
+ #include <string>
+ #include <sstream>
diff --git a/nixpkgs/pkgs/games/gcompris/default.nix b/nixpkgs/pkgs/games/gcompris/default.nix
new file mode 100644
index 000000000000..8d41070a61e0
--- /dev/null
+++ b/nixpkgs/pkgs/games/gcompris/default.nix
@@ -0,0 +1,37 @@
+{stdenv, cmake, qtbase, fetchurl, qtdeclarative, qtmultimedia, qttools, qtsensors, qmlbox2d, gettext, qtquickcontrols, qtgraphicaleffects, qtxmlpatterns, makeWrapper,
+  gst_all_1, ninja
+}:
+stdenv.mkDerivation rec {
+  version = "0.96";
+  name = "gcompris-${version}";
+
+  src = fetchurl {
+    url = "http://gcompris.net/download/qt/src/gcompris-qt-${version}.tar.xz";
+    sha256 = "06483il59l46ny2w771sg45dgzjwv1ph7vidzzbj0wb8wbk2rg52";
+  };
+
+  cmakeFlags = "-DQML_BOX2D_LIBRARY=${qmlbox2d}/${qtbase.qtQmlPrefix}/Box2D.2.0";
+
+  nativeBuildInputs = [ cmake ninja makeWrapper ];
+  buildInputs = [ qtbase qtdeclarative qttools qtsensors qmlbox2d gettext qtquickcontrols qtmultimedia qtgraphicaleffects qtxmlpatterns] ++ soundPlugins;
+  soundPlugins = with gst_all_1; [gst-plugins-good gstreamer gst-plugins-base gst-plugins-bad];
+
+  postInstall = ''
+    # install .desktop and icon file
+    mkdir -p $out/share/applications/
+    mkdir -p $out/share/icons/hicolor/256x256/apps/
+    cp ../org.kde.gcompris.desktop $out/share/applications/gcompris.desktop
+    cp -r ../images/256-apps-gcompris-qt.png $out/share/icons/hicolor/256x256/apps/gcompris-qt.png
+
+    wrapProgram "$out/bin/gcompris-qt" \
+       --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+    '';
+
+  meta = with stdenv.lib; {
+    description = "A high quality educational software suite, including a large number of activities for children aged 2 to 10";
+    homepage = "https://gcompris.net/";
+    maintainers = [ maintainers.guibou ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/games/gcs/default.nix b/nixpkgs/pkgs/games/gcs/default.nix
new file mode 100644
index 000000000000..b718a92143cb
--- /dev/null
+++ b/nixpkgs/pkgs/games/gcs/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, fetchFromGitHub, runCommand
+, jdk8, ant
+, jre8, makeWrapper
+}:
+
+let
+  gcs = fetchFromGitHub {
+    owner = "richardwilkes";
+    repo = "gcs";
+    rev = "gcs-4.8.0";
+    sha256 = "0k8am8vfwls5s2z4zj1p1aqy8gapn5vbr9zy66s5g048ch8ah1hm";
+  };
+  appleStubs = fetchFromGitHub {
+    owner = "richardwilkes";
+    repo = "apple_stubs";
+    rev = "gcs-4.3.0";
+    sha256 = "0m1qw30b19s04hj7nch1mbvv5s698g5dr1d1r7r07ykvk1yh7zsa";
+  };
+  toolkit = fetchFromGitHub {
+    owner = "richardwilkes";
+    repo = "toolkit";
+    rev = "gcs-4.8.0";
+    sha256 = "1ciwwh0wxk3pzsj6rbggsbg3l2f741qy7yx1ca4v7vflsma84f1n";
+  };
+  library = fetchFromGitHub {
+    owner = "richardwilkes";
+    repo = "gcs_library";
+    rev = "gcs-4.8.0";
+    sha256 = "085jpp9mpv5kw00zds9sywmfq31mrlbrgahnwcjkx0z9i22amz4g";
+  };
+in stdenv.mkDerivation rec {
+  name = "gcs-${version}";
+  version = "4.8.0";
+
+  src = runCommand "${name}-src" { preferLocalBuild = true; } ''
+    mkdir -p $out
+    cd $out
+
+    cp -r ${gcs} gcs
+    cp -r ${appleStubs} apple_stubs
+    cp -r ${toolkit} toolkit
+    cp -r ${library} gcs_library
+  '';
+
+  buildInputs = [ jdk8 jre8 ant makeWrapper ];
+  buildPhase = ''
+    cd apple_stubs
+    ant
+
+    cd ../toolkit
+    ant
+  
+    cd ../gcs
+    ant
+
+    cd ..
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/java
+
+    find gcs/libraries toolkit/libraries apple_stubs/ \( -name '*.jar' -and -not -name '*-src.jar' \) -exec cp '{}' $out/share/java ';'
+    
+    makeWrapper ${jre8}/bin/java $out/bin/gcs \
+      --set GCS_LIBRARY ${library} \
+      --add-flags "-cp $out/share/java/gcs-${version}.jar com.trollworks.gcs.app.GCS"
+  '';  
+
+  meta = with stdenv.lib; {
+    description = "A stand-alone, interactive, character sheet editor for the GURPS 4th Edition roleplaying game system";
+    homepage = http://gurpscharactersheet.com/;
+    license = licenses.mpl20;
+    platforms = platforms.all;
+    maintainers = with maintainers; [];
+  };
+}
diff --git a/nixpkgs/pkgs/games/gemrb/default.nix b/nixpkgs/pkgs/games/gemrb/default.nix
new file mode 100644
index 000000000000..fc7bf7168ddf
--- /dev/null
+++ b/nixpkgs/pkgs/games/gemrb/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, cmake
+, freetype, SDL2, SDL2_mixer, openal, zlib, libpng, python, libvorbis
+, libiconv }:
+
+stdenv.mkDerivation rec {
+  name = "gemrb-${version}";
+  version = "0.8.5";
+
+  src = fetchFromGitHub {
+    owner  = "gemrb";
+    repo   = "gemrb";
+    rev    = "v${version}";
+    sha256 = "0xkjsiawxz53rac26vqz9sfgva0syff8x8crabrpbpxgmbacih7a";
+  };
+
+  # TODO: make libpng, libvorbis, sdl_mixer, freetype, vlc, glew (and other gl reqs) optional
+  buildInputs = [ freetype python openal SDL2 SDL2_mixer zlib libpng libvorbis libiconv ];
+
+  nativeBuildInputs = [ cmake ];
+
+  enableParallelBuilding = true;
+
+  cmakeFlags = [
+    "-DLAYOUT=opt"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A reimplementation of the Infinity Engine, used by games such as Baldur's Gate";
+    longDescription = ''
+      GemRB (Game engine made with pre-Rendered Background) is a portable
+      open-source implementation of Bioware's Infinity Engine. It was written to
+      support pseudo-3D role playing games based on the Dungeons & Dragons
+      ruleset (Baldur's Gate and Icewind Dale series, Planescape: Torment).
+    '';
+    homepage = http://gemrb.org/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/gl-117/default.nix b/nixpkgs/pkgs/games/gl-117/default.nix
new file mode 100644
index 000000000000..b9694811fa51
--- /dev/null
+++ b/nixpkgs/pkgs/games/gl-117/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl
+, libGLU_combined, SDL, freeglut, SDL_mixer, autoconf, automake, libtool
+}:
+
+stdenv.mkDerivation rec {
+  name = "gl-117-${version}";
+  version = "1.3.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/gl-117/gl-117/GL-117%20Source/${name}.tar.bz2";
+    sha256 = "1yvg1rp1yijv0b45cz085b29x5x0g5fkm654xdv5qwh2l6803gb4";
+  };
+
+  buildInputs = [ libGLU_combined SDL freeglut SDL_mixer autoconf automake libtool ];
+
+  meta = with stdenv.lib; {
+    description = "An air combat simulator";
+    homepage = https://sourceforge.net/projects/gl-117;
+    maintainers = with maintainers; [ raskin ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/globulation/default.nix b/nixpkgs/pkgs/games/globulation/default.nix
new file mode 100644
index 000000000000..edfb05d237cd
--- /dev/null
+++ b/nixpkgs/pkgs/games/globulation/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, libGLU_combined, SDL, sconsPackages, SDL_ttf, SDL_image, zlib, SDL_net
+, speex, libvorbis, libogg, boost, fribidi, bsdiff
+, fetchpatch
+}:
+let
+  version = "0.9.4";
+  patchlevel = "4";
+  tutorial4patch = fetchurl {
+    url = "http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=34;filename=tutorial-part4.map.bspatch;att=1;bug=595448";
+    name = "globulation2-tutorial4-map-patch-debian.bspatch";
+    sha256 = "d3511ac0f822d512c42abd34b3122f2990862d3d0af6ce464ff372f5bd7f35e9";
+  };
+in
+stdenv.mkDerivation rec {
+  name = "glob2-${version}.${patchlevel}";
+
+  src = fetchurl {
+    url = "mirror://savannah/glob2/${version}/${name}.tar.gz";
+    sha256 = "1f0l2cqp2g3llhr9jl6jj15k0wb5q8n29vqj99xy4p5hqs78jk8g";
+  };
+
+  patches = [ ./header-order.patch ./public-buildproject.patch
+    (fetchpatch {
+	  url = https://bitbucket.org/giszmo/glob2/commits/c9dc715624318e4fea4abb24e04f0ebdd9cd8d2a/raw;
+	  sha256 = "0017xg5agj3dy0hx71ijdcrxb72bjqv7x6aq7c9zxzyyw0mkxj0k";
+	})
+  ];
+
+  postPatch = ''
+    cp campaigns/tutorial-part4.map{,.orig}
+    bspatch  campaigns/tutorial-part4.map{.orig,} ${tutorial4patch}
+    sed -i -e "s@env = Environment()@env = Environment( ENV = os.environ )@" SConstruct
+  '';
+
+  nativeBuildInputs = [ sconsPackages.scons_3_0_1 ];
+  buildInputs = [ libGLU_combined SDL SDL_ttf SDL_image zlib SDL_net speex libvorbis libogg boost fribidi bsdiff ];
+
+  postConfigure = ''
+    sconsFlags+=" BINDIR=$out/bin"
+    sconsFlags+=" INSTALLDIR=$out/share/globulation2"
+    sconsFlags+=" DATADIR=$out/share/globulation2/glob2"
+  '';
+
+  NIX_LDFLAGS = [
+    "-lboost_system"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "RTS without micromanagement";
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
+    license = licenses.gpl3;
+  };
+  passthru.updateInfo.downloadPage = "http://globulation2.org/wiki/Download_and_Install";
+}
diff --git a/nixpkgs/pkgs/games/globulation/header-order.patch b/nixpkgs/pkgs/games/globulation/header-order.patch
new file mode 100644
index 000000000000..6c8dd922c255
--- /dev/null
+++ b/nixpkgs/pkgs/games/globulation/header-order.patch
@@ -0,0 +1,23 @@
+With gcc 4.4, compilation of libgag/src/TextStream.cpp fails with the error: 
+'class GAGCore::StreamBackend' has no member named 'getc'. Reordering 
+#include's solves the problem.
+
+Patch from Debian.
+
+Index: glob2-0.9.4.1/libgag/src/TextStream.cpp
+===================================================================
+--- glob2-0.9.4.1.orig/libgag/src/TextStream.cpp        2009-06-27 20:19:38.000000000 +0400
++++ glob2-0.9.4.1/libgag/src/TextStream.cpp     2009-06-27 20:20:22.000000000 +0400
+@@ -17,11 +17,11 @@
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+ 
+-#include <TextStream.h>
+ #include <assert.h>
+ #include <fstream>
+ #include <iostream>
+ #include <stack>
++#include <TextStream.h>
+ #ifdef WIN32
+ #define snprintf _snprintf
+ #define vsnprintf _vsnprintf
diff --git a/nixpkgs/pkgs/games/globulation/public-buildproject.patch b/nixpkgs/pkgs/games/globulation/public-buildproject.patch
new file mode 100644
index 000000000000..1eaedf08820d
--- /dev/null
+++ b/nixpkgs/pkgs/games/globulation/public-buildproject.patch
@@ -0,0 +1,21 @@
+diff -Nru glob2-0.9.4.4/src/Game.h glob2-0.9.4.4.new/src/Game.h
+--- glob2-0.9.4.4/src/Game.h	2009-08-29 16:39:06.000000000 -0400
++++ glob2-0.9.4.4.new/src/Game.h	2015-08-29 00:59:07.843398596 -0400
+@@ -148,7 +148,7 @@
+ 		TOP_TO_BOTTOM,
+ 		BOTTOM_TO_TOP
+ 	};
+-	
++public:	
+ 	struct BuildProject
+ 	{
+ 		int posX;
+@@ -158,7 +158,7 @@
+ 		int unitWorking;
+ 		int unitWorkingFuture;
+ 	};
+-	
++private:	
+ 	///Initiates Game
+ 	void init(GameGUI *gui, MapEdit* edit);
+ 
diff --git a/nixpkgs/pkgs/games/gltron/default.nix b/nixpkgs/pkgs/games/gltron/default.nix
new file mode 100644
index 000000000000..bd3ae0b2e123
--- /dev/null
+++ b/nixpkgs/pkgs/games/gltron/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, SDL, libGLU_combined, zlib, libpng, libvorbis, libmikmod, SDL_sound } :
+
+stdenv.mkDerivation rec {
+  name = "gltron-0.70";
+  src = fetchurl {
+    url = "mirror://sourceforge/gltron/${name}-source.tar.gz";
+    sha256 = "e0c8ebb41a18a1f8d7302a9c2cb466f5b1dd63e9a9966c769075e6b6bdad8bb0";
+  };
+
+  patches = [ ./gentoo-prototypes.patch ];
+
+  postPatch = ''
+     # Fix https://sourceforge.net/p/gltron/bugs/15
+     sed -i /__USE_MISC/d lua/src/lib/liolib.c
+  '';
+
+  # The build fails, unless we disable the default -Wall -Werror
+  configureFlags = [ "--disable-warn" ];
+
+  buildInputs = [ SDL libGLU_combined zlib libpng libvorbis libmikmod SDL_sound ];
+
+  meta = {
+    homepage = http://www.gltron.org/;
+    description = "Game based on the movie Tron";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/gltron/gentoo-prototypes.patch b/nixpkgs/pkgs/games/gltron/gentoo-prototypes.patch
new file mode 100644
index 000000000000..71078ae553f7
--- /dev/null
+++ b/nixpkgs/pkgs/games/gltron/gentoo-prototypes.patch
@@ -0,0 +1,27 @@
+Taken from:
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/games-action/gltron/files/gltron-0.70-prototypes.patch?revision=1.1&view=markup
+
+scripting.h declares these params as const so make sure they're the same.
+
+--- a/nebu/scripting/scripting.c
++++ b/nebu/scripting/scripting.c
+@@ -169,16 +169,16 @@
+   return status;
+ }    
+ 
+-void scripting_RunFile(char *name) {
++void scripting_RunFile(const char *name) {
+   lua_dofile(L, name);
+ }
+ 
+-void scripting_Run(char *command) {
++void scripting_Run(const char *command) {
+   /* fprintf(stderr, "[command] %s\n", command); */
+   lua_dostring(L, command);
+ }
+ 
+-void scripting_RunFormat(char *format, ... ) {
++void scripting_RunFormat(const char *format, ... ) {
+   char buf[4096];
+   va_list ap;
+   va_start(ap, format);
diff --git a/nixpkgs/pkgs/games/gmad/default.nix b/nixpkgs/pkgs/games/gmad/default.nix
new file mode 100644
index 000000000000..78936ec19499
--- /dev/null
+++ b/nixpkgs/pkgs/games/gmad/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, premake4, bootil }:
+
+stdenv.mkDerivation rec {
+  name = "gmad-unstable-2015-04-16";
+
+  meta = {
+    description = "Garry's Mod Addon Creator and Extractor";
+    homepage = https://github.com/garrynewman/gmad;
+    license = stdenv.lib.licenses.unfree;
+    maintainers = [ stdenv.lib.maintainers.abigailbuccaneer ];
+    platforms = stdenv.lib.platforms.all;
+  };
+
+  src = fetchFromGitHub {
+    owner = "garrynewman";
+    repo = "gmad";
+    rev = "377f3458bf1ecb8a1a2217c2194773e3c2a2dea0";
+    sha256="0myi9njr100gxhxk1vrzr2sbij5kxl959sq0riiqgg01div338g0";
+  };
+
+  buildInputs = [ premake4 bootil ];
+
+  targetName =
+    if stdenv.isLinux then "gmad_linux"
+    else if stdenv.isDarwin then "gmad_osx"
+    else "gmad";
+
+  premakeFlags = "--bootil_lib=${bootil}/lib --bootil_inc=${bootil}/include";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ${targetName} $out/bin/gmad
+  '';
+}
diff --git a/nixpkgs/pkgs/games/gnubg/default.nix b/nixpkgs/pkgs/games/gnubg/default.nix
new file mode 100644
index 000000000000..ff09a70e932e
--- /dev/null
+++ b/nixpkgs/pkgs/games/gnubg/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, glib, python, gtk2, readline }:
+
+let version = "1.06.002"; in
+stdenv.mkDerivation {
+  name = "gnubg-"+version;
+
+  src = fetchurl {
+    url = "http://gnubg.org/media/sources/gnubg-release-${version}-sources.tar.gz";
+    sha256 = "11xwhcli1h12k6rnhhyq4jphzrhfik7i8ah3k32pqw803460n6yf";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ python glib gtk2 readline ];
+
+  configureFlags = [ "--with-gtk" "--with--board3d" ];
+
+  meta = with stdenv.lib;
+    { description = "World class backgammon application";
+      homepage = http://www.gnubg.org/;
+      license = licenses.gpl3;
+      maintainers = [ maintainers.ehmry ];
+      platforms = platforms.linux;
+    };
+}
diff --git a/nixpkgs/pkgs/games/gnuchess/default.nix b/nixpkgs/pkgs/games/gnuchess/default.nix
new file mode 100644
index 000000000000..62c5ee803047
--- /dev/null
+++ b/nixpkgs/pkgs/games/gnuchess/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, flex}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="gnuchess";
+    version="6.2.5";
+    name="${baseName}-${version}";
+    url="mirror://gnu/chess/${name}.tar.gz";
+    sha256="00j8s0npgfdi41a0mr5w9qbdxagdk2v41lcr42rwl1jp6miyk6cs";
+  };
+  buildInputs = [
+    flex
+  ];
+in
+stdenv.mkDerivation rec {
+  inherit (s) name version;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  inherit buildInputs;
+  meta = {
+    inherit (s) version;
+    description = "GNU Chess engine";
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.unix;
+    license = stdenv.lib.licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/games/gnuchess/default.upstream b/nixpkgs/pkgs/games/gnuchess/default.upstream
new file mode 100644
index 000000000000..f19dca51addc
--- /dev/null
+++ b/nixpkgs/pkgs/games/gnuchess/default.upstream
@@ -0,0 +1 @@
+url https://ftp.gnu.org/gnu/chess/
diff --git a/nixpkgs/pkgs/games/gnugo/default.nix b/nixpkgs/pkgs/games/gnugo/default.nix
new file mode 100644
index 000000000000..2952edaa78d9
--- /dev/null
+++ b/nixpkgs/pkgs/games/gnugo/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "gnugo-${version}";
+  version = "3.8";
+
+  src = fetchurl {
+    url = "mirror://gnu/gnugo/gnugo-${version}.tar.gz";
+    sha256 = "0wkahvqpzq6lzl5r49a4sd4p52frdmphnqsfdv7gdp24bykdfs6s";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  meta = {
+    description = "GNU Go - A computer go player";
+    homepage = https://www.gnu.org/software/gnugo/;
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/gnujump/default.nix b/nixpkgs/pkgs/games/gnujump/default.nix
new file mode 100644
index 000000000000..64c3954ba485
--- /dev/null
+++ b/nixpkgs/pkgs/games/gnujump/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, SDL, SDL_image, SDL_mixer }:
+
+stdenv.mkDerivation rec {
+  name = "gnujump-${version}";
+  version = "1.0.8";
+  src = fetchurl {
+    url = "mirror://gnu/gnujump/${name}.tar.gz";
+    sha256 = "05syy9mzbyqcfnm0hrswlmhwlwx54f0l6zhcaq8c1c0f8dgzxhqk";
+  };
+  buildInputs = [ SDL SDL_image SDL_mixer ];
+
+  NIX_LDFLAGS = [
+    "-lm"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://jump.gnu.sinusoid.es/index.php?title=Main_Page;
+    description = "A clone of the simple yet addictive game Xjump";
+    longDescription = ''
+      The goal in this game is to jump to the next floor trying not to fall
+      down. As you go upper in the Falling Tower the floors will fall faster.
+      Try to survive longer get upper than anyone. It might seem too simple but
+      once you've tried you'll realize how addictive this is.
+    '';
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/gnushogi/default.nix b/nixpkgs/pkgs/games/gnushogi/default.nix
new file mode 100644
index 000000000000..e85674550308
--- /dev/null
+++ b/nixpkgs/pkgs/games/gnushogi/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "gnushogi-${version}";
+  version = "1.4.2";
+  buildInputs = [ zlib ];
+
+  src = fetchurl {
+    url = "mirror://gnu/gnushogi/${name}.tar.gz";
+    sha256 = "0a9bsl2nbnb138lq0h14jfc5xvz7hpb2bcsj4mjn6g1hcsl4ik0y";
+  };
+
+  meta = with stdenv.lib; {
+    description = "GNU implementation of Shogi, also known as Japanese Chess";
+    homepage = https://www.gnu.org/software/gnushogi/;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.ciil ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/gogui/default.nix b/nixpkgs/pkgs/games/gogui/default.nix
new file mode 100644
index 000000000000..e89d16b788a6
--- /dev/null
+++ b/nixpkgs/pkgs/games/gogui/default.nix
@@ -0,0 +1,28 @@
+{ fetchurl, stdenv, openjdk, unzip, makeWrapper }:
+
+let
+  version = "1.4.9";
+in stdenv.mkDerivation {
+  name = "gogui-${version}";
+  buildInputs = [ unzip makeWrapper ];
+  src = fetchurl {
+    url = "mirror://sourceforge/project/gogui/gogui/${version}/gogui-${version}.zip";
+    sha256 = "0qk6p1bhi1816n638bg11ljyj6zxvm75jdf02aabzdmmd9slns1j";
+  };
+  dontConfigure = true;
+  installPhase = ''
+    mkdir -p $out/share/doc
+    mv -vi {bin,lib} $out/
+    mv -vi doc $out/share/doc/gogui
+    for x in $out/bin/*; do
+      wrapProgram $x --prefix PATH ":" ${openjdk}/bin
+    done
+  '';
+  meta = {
+    maintainers = [ stdenv.lib.maintainers.cleverca22 ];
+    description = "A graphical user interface to programs that play the board game Go and support the Go Text Protocol such as GNU Go";
+    homepage = http://gogui.sourceforge.net/;
+    platforms = stdenv.lib.platforms.unix;
+    license = stdenv.lib.licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/games/gshogi/default.nix b/nixpkgs/pkgs/games/gshogi/default.nix
new file mode 100644
index 000000000000..d3fff64ada6d
--- /dev/null
+++ b/nixpkgs/pkgs/games/gshogi/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub
+, gtk3, gobject-introspection
+, wrapGAppsHook, python3Packages }:
+
+buildPythonApplication rec {
+  pname = "gshogi";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "johncheetham";
+    repo = "gshogi";
+    rev = "v${version}";
+    sha256 = "06vgndfgwyfi50wg3cw92zspc9z0k7xn2pp6qsjih0l5yih8iwqh";
+  };
+
+  doCheck = false;  # no tests available
+
+  buildInputs = [
+    gtk3
+    gobject-introspection
+  ];
+
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pygobject3
+    pycairo
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A graphical implementation of the Shogi board game, also known as Japanese Chess";
+    homepage = http://johncheetham.com/projects/gshogi/;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.ciil ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/gtetrinet/default.nix b/nixpkgs/pkgs/games/gtetrinet/default.nix
new file mode 100644
index 000000000000..f1c24ba4de8b
--- /dev/null
+++ b/nixpkgs/pkgs/games/gtetrinet/default.nix
@@ -0,0 +1,44 @@
+{ fetchFromGitHub, stdenv, autoreconfHook, intltool, pkgconfig, libgnome, libgnomeui, GConf }:
+
+stdenv.mkDerivation {
+  name = "gtetrinet-0.7.11";
+
+  src = fetchFromGitHub {
+    owner = "GNOME";
+    repo = "gtetrinet";
+    rev = "6be3df83f3dc5c7cb966e6cd447182df01b93222";
+    sha256 = "1y05x8lfyxvkjg6c87cfd0xxmb22c88scx8fq3gah7hjy5i42v93";
+  };
+
+  nativeBuildInputs = [ autoreconfHook intltool pkgconfig ];
+
+  buildInputs = [ libgnome libgnomeui ];
+
+  propagatedUserEnvPkgs = [ GConf ];
+
+  postAutoreconf = ''
+    intltoolize --force
+  '';
+
+  preInstall = ''
+    export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
+  '';
+
+  postInstall = ''
+    mv "$out/games" "$out/bin"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Client for Tetrinet, a multiplayer online Tetris game.";
+    longDescription = ''
+      GTetrinet is a client program for Tetrinet, a multiplayer tetris game
+      that is played over the internet.
+    '';
+    homepage = http://gtetrinet.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.chris-martin ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/gtypist/default.nix b/nixpkgs/pkgs/games/gtypist/default.nix
new file mode 100644
index 000000000000..b29b045a4217
--- /dev/null
+++ b/nixpkgs/pkgs/games/gtypist/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, makeWrapper, libiconv, ncurses, perl, fortune}:
+
+stdenv.mkDerivation rec {
+  name = "gtypist-${version}";
+  version = "2.9.5";
+
+  src = fetchurl {
+    url = "mirror://gnu/gtypist/gtypist-${version}.tar.xz";
+    sha256 = "0xzrkkmj0b1dw3yr0m9hml2y634cc4h61im6zwcq57s7285z8fn1";
+  };
+
+  buildInputs = [ makeWrapper ncurses perl fortune ]
+   ++ stdenv.lib.optional stdenv.isDarwin libiconv;
+
+  preFixup = ''
+     wrapProgram "$out/bin/typefortune" \
+       --prefix PATH : "${fortune}/bin" \
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.gnu.org/software/gtypist;
+    description = "Universal typing tutor";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ pSub ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/gzdoom/default.nix b/nixpkgs/pkgs/games/gzdoom/default.nix
new file mode 100644
index 000000000000..dff122d8b803
--- /dev/null
+++ b/nixpkgs/pkgs/games/gzdoom/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper
+, openal, fluidsynth, soundfont-fluid, libGL, SDL2
+, bzip2, zlib, libjpeg, libsndfile, mpg123, game-music-emu }:
+
+stdenv.mkDerivation rec {
+  name = "gzdoom-${version}";
+  version = "3.7.2";
+
+  src = fetchFromGitHub {
+    owner = "coelckers";
+    repo = "gzdoom";
+    rev = "g${version}";
+    sha256 = "1kjvjg218d2jk7mzlzihaa90fji4wm5zfix7ikm18wx83hcsgby3";
+  };
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [
+    SDL2 libGL openal fluidsynth bzip2 zlib libjpeg libsndfile mpg123
+    game-music-emu
+  ];
+
+  enableParallelBuilding = true;
+
+  NIX_CFLAGS_LINK = [ "-lopenal" "-lfluidsynth" ];
+
+  preConfigure = ''
+    sed -i \
+      -e "s@/usr/share/sounds/sf2/@${soundfont-fluid}/share/soundfonts/@g" \
+      -e "s@FluidR3_GM.sf2@FluidR3_GM2-2.sf2@g" \
+      src/sound/mididevices/music_fluidsynth_mididevice.cpp
+  '';
+
+  installPhase = ''
+    install -Dm755 gzdoom "$out/lib/gzdoom/gzdoom"
+    for i in *.pk3; do
+      install -Dm644 "$i" "$out/lib/gzdoom/$i"
+    done
+    mkdir $out/bin
+    makeWrapper $out/lib/gzdoom/gzdoom $out/bin/gzdoom
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/coelckers/gzdoom;
+    description = "A Doom source port based on ZDoom. It features an OpenGL renderer and lots of new features";
+    license = licenses.gpl3;
+    platforms = ["x86_64-linux"];
+    maintainers = with maintainers; [ lassulus ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/hawkthorne/default.nix b/nixpkgs/pkgs/games/hawkthorne/default.nix
new file mode 100644
index 000000000000..8a91af9cd652
--- /dev/null
+++ b/nixpkgs/pkgs/games/hawkthorne/default.nix
@@ -0,0 +1,39 @@
+{ fetchgit, stdenv, love, curl, zip }:
+
+stdenv.mkDerivation rec {
+  version = "0.12.1";
+  name = "hawkthorne-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/hawkthorne/hawkthorne-journey.git";
+    rev = "610b9b3907b2a1b21da2ae926e4c7c4c9e19959b";
+    sha256 = "013smhdf9sh91153fpk2bwhhnpg6pn7kfrpw77jmf0v48i3q44h2";
+  };
+
+  buildInputs = [
+    love curl zip
+  ];
+
+  patches = [
+    ./makefile.patch
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Journey to the Center of Hawkthorne - A fan-made retro-style game based on the show Community";
+    longDescription = ''
+      Journey to the Center of Hawkthorne is an open source game written in Love2D.
+      It's based on the show Community, starring Jim Rash and Joel McHale as
+      the primary will-they-or-won't-they relationship.
+
+      This game has been entirely developed by fans of the show, who were inspired
+      to bring to life the video game used to determine the winner of Pierce
+      Hawthorne's inheritance.
+    '';
+    homepage = http://www.reddit.com/r/hawkthorne;
+    license = stdenv.lib.licenses.mit;
+    maintainers = with stdenv.lib.maintainers; [ campadrenalin ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/games/hawkthorne/makefile.patch b/nixpkgs/pkgs/games/hawkthorne/makefile.patch
new file mode 100644
index 000000000000..16a79683149d
--- /dev/null
+++ b/nixpkgs/pkgs/games/hawkthorne/makefile.patch
@@ -0,0 +1,33 @@
+diff --git a/Makefile b/Makefile
+index 55eb817..f3406aa 100644
+--- a/Makefile
++++ b/Makefile
+@@ -18,10 +18,14 @@ endif
+
+ tilemaps := $(patsubst %.tmx,%.lua,$(wildcard src/maps/*.tmx))
+
+-maps: $(tilemaps)
+-
+ love: build/hawkthorne.love
+
++shebang: build/hawkthorne.love
++	cat <(echo '#!/usr/bin/env love') build/hawkthorne.love > build/hawkthorne
++	chmod +x build/hawkthorne
++
++maps: $(tilemaps)
++
+ build/hawkthorne.love: $(tilemaps) src/*
+ 	mkdir -p build
+ 	cd src && zip --symlinks -q -r ../build/hawkthorne.love . -x ".*" \
+@@ -30,6 +34,12 @@ build/hawkthorne.love: $(tilemaps) src/*
+ run: $(tilemaps) $(LOVE)
+ 	$(LOVE) src
+
++check: test
++
++install: shebang
++	mkdir -p $(out)/bin
++	cp build/hawkthorne $(out)/bin
++
+ src/maps/%.lua: src/maps/%.tmx bin/tmx2lua
+ 	bin/tmx2lua $<
diff --git a/nixpkgs/pkgs/games/hedgewars/default.nix b/nixpkgs/pkgs/games/hedgewars/default.nix
new file mode 100644
index 000000000000..745b430a95e3
--- /dev/null
+++ b/nixpkgs/pkgs/games/hedgewars/default.nix
@@ -0,0 +1,78 @@
+{ SDL2_image, SDL2_ttf, SDL2_net, fpc, qt5, ghcWithPackages, ffmpeg, freeglut
+, stdenv, makeWrapper, fetchurl, cmake, pkgconfig, lua5_1, SDL2, SDL2_mixer
+, zlib, libpng, libGLU_combined, physfs
+}:
+
+let
+  ghc = ghcWithPackages (pkgs: with pkgs; [
+          network vector utf8-string bytestring-show random hslogger
+          SHA entropy pkgs.zlib sandi regex-tdfa
+        ]);
+in
+stdenv.mkDerivation rec {
+  version = "0.9.25";
+  name = "hedgewars-${version}";
+  src = fetchurl {
+    url = "https://www.hedgewars.org/download/releases/hedgewars-src-${version}.tar.bz2";
+    sha256 = "08x7fqpy0hpnbfq2k06g522xayi7s53bca819zfhalvqnqs76pdk";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    SDL2_ttf SDL2_net cmake lua5_1 SDL2 SDL2_mixer SDL2_image fpc
+    ghc ffmpeg freeglut makeWrapper physfs
+    qt5.qttools qt5.qtbase
+  ];
+
+  postPatch = ''
+    substituteInPlace gameServer/CMakeLists.txt --replace mask evaluate
+  '';
+
+  preBuild = ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -rpath ${SDL2_image}/lib
+                                     -rpath ${SDL2_mixer}/lib
+                                     -rpath ${SDL2_net}/lib
+                                     -rpath ${SDL2_ttf}/lib
+                                     -rpath ${SDL2.out}/lib
+                                     -rpath ${libpng.out}/lib
+                                     -rpath ${lua5_1}/lib
+                                     -rpath ${libGLU_combined}/lib
+                                     -rpath ${zlib.out}/lib
+                                     "
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/hwengine --prefix LD_LIBRARY_PATH : $LD_LIBRARY_PATH:${stdenv.lib.makeLibraryPath [ libGLU_combined freeglut physfs ]}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Turn-based strategy artillery game similar to Worms";
+    homepage = http://hedgewars.org/;
+    license = licenses.gpl2;
+    longDescription = ''
+       Each player controls a team of several hedgehogs. During the course of
+       the game, players take turns with one of their hedgehogs. They then use
+       whatever tools and weapons are available to attack and kill the
+       opponents' hedgehogs, thereby winning the game. Hedgehogs may move
+       around the terrain in a variety of ways, normally by walking and jumping
+       but also by using particular tools such as the "Rope" or "Parachute", to
+       move to otherwise inaccessible areas. Each turn is time-limited to
+       ensure that players do not hold up the game with excessive thinking or
+       moving.
+
+       A large variety of tools and weapons are available for players during
+       the game: Grenade, Cluster Bomb, Bazooka, UFO, Homing Bee, Shotgun,
+       Desert Eagle, Fire Punch, Baseball Bat, Dynamite, Mine, Rope, Pneumatic
+       pick, Parachute. Most weapons, when used, cause explosions that deform
+       the terrain, removing circular chunks. The landscape is an island
+       floating on a body of water, or a restricted cave with water at the
+       bottom. A hedgehog dies when it enters the water (either by falling off
+       the island, or through a hole in the bottom of it), it is thrown off
+       either side of the arena or when its health is reduced, typically from
+       contact with explosions, to zero (the damage dealt to the attacked
+       hedgehog or hedgehogs after a player's or CPU turn is shown only when
+       all movement on the battlefield has ceased).'';
+    maintainers = with maintainers; [ kragniz fpletz ];
+    platforms = ghc.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/games/hexen/default.nix b/nixpkgs/pkgs/games/hexen/default.nix
new file mode 100644
index 000000000000..48379da3a0a4
--- /dev/null
+++ b/nixpkgs/pkgs/games/hexen/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, SDL} :
+
+stdenv.mkDerivation {
+  name = "hexen-0.2.3";
+  src = fetchurl {
+    url = https://www.libsdl.org/projects/hexen/src/hexen-0.2.3.tar.gz;
+    sha256 = "c1433e930f2003c5f817f935406bb28ba15298a15b1c11f83f42df3e9f1f3bc4";
+  };
+
+  buildInputs = [ SDL ];
+
+  meta = {
+    homepage = http://www.libsdl.org/projects/hexen/;
+    description = "Port of Raven Software's popular Hexen 3-D shooter game";
+    license = stdenv.lib.licenses.free;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/games/holdingnuts/default.nix b/nixpkgs/pkgs/games/holdingnuts/default.nix
new file mode 100644
index 000000000000..e6d6febeac6f
--- /dev/null
+++ b/nixpkgs/pkgs/games/holdingnuts/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, cmake, SDL, qt4 }:
+
+let mirror = "http://download.holdingnuts.net";
+in stdenv.mkDerivation rec {
+  name    = "${pname}-${version}";
+  pname   = "holdingnuts";
+  version = "0.0.5";
+
+  src = fetchurl {
+    url    = "${mirror}/release/${version}/${name}.tar.bz2";
+    sha256 = "0iw25jmnqzscg34v66d4zz70lvgjp4l7gi16nna6491xnqha5a8g";
+  };
+
+  patches = [
+    (fetchurl {
+      url    = "${mirror}/patches/holdingnuts-0.0.5-wheel.patch";
+      sha256 = "0hap5anxgc19s5qi64mjpi3wpgphy4dqdxqw34q19dw3gwxw5g8n";
+    })
+    (fetchurl {
+      url    = "${mirror}/patches/holdingnuts-qpixmapcache-workaround.patch";
+      sha256 = "15cf9j9mdm85f0h7w5f5852ic7xpim0243yywkd2qrfp37mi93pd";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace src/system/SysAccess.c --replace /usr/share $out/share
+  '';
+
+  buildInputs = [ cmake SDL qt4 ];
+
+  meta = with stdenv.lib; {
+    homepage    = http://www.holdingnuts.net/;
+    description = "Open Source Poker client and server";
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ obadz ];
+    platforms   = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/hyperrogue/default.nix b/nixpkgs/pkgs/games/hyperrogue/default.nix
new file mode 100644
index 000000000000..8c32e164afa1
--- /dev/null
+++ b/nixpkgs/pkgs/games/hyperrogue/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, SDL, SDL_ttf, SDL_gfx, SDL_mixer, autoreconfHook,
+  libpng, glew }:
+
+stdenv.mkDerivation rec {
+  name = "hyperrogue-${version}";
+  version = "10.5e";
+
+  src = fetchFromGitHub {
+    owner = "zenorogue";
+    repo = "hyperrogue";
+    rev = "v${version}";
+    sha256 = "1sjr26if3xv8xv52app1hkxs0bbgbviagydm4mdwbxjpd6v3d1aa";
+  };
+
+  CPPFLAGS = "-I${SDL.dev}/include/SDL";
+
+  buildInputs = [ autoreconfHook SDL SDL_ttf SDL_gfx SDL_mixer libpng glew ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://www.roguetemple.com/z/hyper/;
+    description = "A roguelike game set in hyperbolic geometry";
+    maintainers = with maintainers; [ rardiol ];
+    license = licenses.gpl2;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/icbm3d/default.nix b/nixpkgs/pkgs/games/icbm3d/default.nix
new file mode 100644
index 000000000000..ba9173c04921
--- /dev/null
+++ b/nixpkgs/pkgs/games/icbm3d/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, libX11}:
+
+stdenv.mkDerivation {
+  name = "icbm3d-0.4";
+  src = fetchurl {
+    url = ftp://ftp.tuxpaint.org/unix/x/icbm3d/icbm3d.0.4.tar.gz;
+    sha256 = "1z9q01mj0v9qbwby5cajjc9wpvdw2ma5v1r639vraxpl9qairm4s";
+  };
+
+  buildInputs = [ libX11 ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp icbm3d $out/bin
+  '';
+
+  meta = {
+    homepage = http://www.newbreedsoftware.com/icbm3d/;
+    description = "3D vector-based clone of the atari game Missile Command";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/instead-launcher/default.nix b/nixpkgs/pkgs/games/instead-launcher/default.nix
new file mode 100644
index 000000000000..39324843e5e5
--- /dev/null
+++ b/nixpkgs/pkgs/games/instead-launcher/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, instead, qmake4Hook, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "instead-launcher-${version}";
+
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "instead-hub";
+    repo = "instead-launcher";
+    rev = version;
+    sha256 = "1svy8i8anspway01pnz2cy69aad03anvkq04wrdfv1h9c34gbvb9";
+  };
+
+  patches = [ ./path.patch ];
+
+  postPatch = ''
+    substituteInPlace platform.cpp --subst-var-by instead ${instead}
+  '';
+
+  nativeBuildInputs = [ qmake4Hook ];
+
+  buildInputs = [ zlib ];
+
+  meta = with stdenv.lib; {
+    homepage = https://instead.syscall.ru/wiki/en/instead-launcher;
+    description = "Install and play games from INSTEAD repository";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ orivej ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/instead-launcher/path.patch b/nixpkgs/pkgs/games/instead-launcher/path.patch
new file mode 100644
index 000000000000..f63737bfb160
--- /dev/null
+++ b/nixpkgs/pkgs/games/instead-launcher/path.patch
@@ -0,0 +1,39 @@
+From c7460a7fc255ef4e8e0e37798605c4d8bb50633d Mon Sep 17 00:00:00 2001
+From: Orivej Desh <orivej@gmx.fr>
+Date: Sat, 1 Apr 2017 01:30:37 +0000
+Subject: [PATCH] path
+
+---
+ mainwindow.cpp | 2 +-
+ platform.cpp   | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/mainwindow.cpp b/mainwindow.cpp
+index 9687c4e..234b176 100644
+--- a/mainwindow.cpp
++++ b/mainwindow.cpp
+@@ -688,7 +688,7 @@ void MainWindow::loadConfig() {
+     if ( args.contains( "default-gamespath" ) )
+ 	defGamesPath = args["default-gamespath"].toString();
+ 
+-    QString insteadPath = conf.value("InsteadPath", defInsteadPath).toString();
++    QString insteadPath = defInsteadPath;
+     bool autoRefresh = conf.value("AutoRefresh", "false").toString() == "true";
+     bool autoRefreshSW = conf.value("AutoRefreshSW", "false").toString() == "true";
+     QString lang = conf.value( "Language", "*" ).toString();
+diff --git a/platform.cpp b/platform.cpp
+index bda86be..c356f1c 100644
+--- a/platform.cpp
++++ b/platform.cpp
+@@ -22,7 +22,7 @@ QString getConfigPath() {
+ }
+ 
+ QString getDefaultInterpreterPath() {
+-    return "/usr/local/bin/sdl-instead";
++    return "@instead@/bin/sdl-instead";
+ }
+ 
+ #elif defined(Q_OS_WIN)
+-- 
+2.12.2
+
diff --git a/nixpkgs/pkgs/games/instead/default.nix b/nixpkgs/pkgs/games/instead/default.nix
new file mode 100644
index 000000000000..b0acd789afee
--- /dev/null
+++ b/nixpkgs/pkgs/games/instead/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchurl, SDL, SDL_ttf, SDL_image, SDL_mixer, pkgconfig, lua, zlib, unzip }:
+
+let
+  version = "3.3.0";
+
+  # I took several games at random from http://instead.syscall.ru/games/
+  games = [
+    (fetchurl {
+      url = http://instead-games.googlecode.com/files/instead-apple-day-1.2.zip;
+      sha256 = "0d4m554hiqmgl4xl0jp0b3bqjl35879768hqznh9y57y04sygd2a";
+    })
+    (fetchurl {
+      url = http://instead-games.googlecode.com/files/instead-cat_en-1.2.zip;
+      sha256 = "0jlm3ssqlka16dm0rg6qfjh6xdh3pv7lj2s4ib4mqwj2vfy0v6sg";
+    })
+    (fetchurl {
+      url = http://instead-games.googlecode.com/files/instead-vinny-0.1.zip;
+      sha256 = "15qdbg82zp3a8vz4qxminr0xbzbdpnsciliy2wm3raz4hnadawg1";
+    })
+    (fetchurl {
+      url = http://instead-games.googlecode.com/files/instead-toilet3in1-1.2.zip;
+      sha256 = "0wz4bljbg67m84qwpaqpzs934a5pcbhpgh39fvbbbfvnnlm4lirl";
+    })
+    (fetchurl {
+      url = http://instead-games.googlecode.com/files/instead-kayleth-0.4.1.zip;
+      sha256 = "0xmn9inys0kbcdd02qaqp8gazqs67xq3fq7hvcy2qb9jbq85j8b2";
+    })
+  ];
+in
+
+stdenv.mkDerivation rec {
+  name = "instead-" + version;
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/instead/instead/${version}/instead_${version}.tar.gz";
+    sha256 = "0kskwrq2gy1gpp97134sjrw08ip1h6i5dc64zrbl9yv7jaz4by69";
+  };
+
+  NIX_LDFLAGS = "-llua -lgcc_s";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ SDL SDL_ttf SDL_image SDL_mixer lua zlib unzip ];
+
+  configurePhase = ''
+    { echo 2; echo $out; } | ./configure.sh
+  '';
+
+  inherit games;
+
+  installPhase = ''
+    make install
+
+    pushd $out/share/instead/games
+    for a in $games; do
+      unzip $a
+    done
+    popd
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple text adventure interpreter for Unix and Windows";
+    homepage = http://instead.syscall.ru/;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with maintainers; [ pSub ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/ivan/default.nix b/nixpkgs/pkgs/games/ivan/default.nix
new file mode 100644
index 000000000000..f84b83a3010d
--- /dev/null
+++ b/nixpkgs/pkgs/games/ivan/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, SDL2, SDL2_mixer, alsaLib, libpng, pcre }:
+
+stdenv.mkDerivation rec {
+
+  name = "ivan-${version}";
+  version = "056";
+
+  src = fetchFromGitHub {
+    owner = "Attnam";
+    repo = "ivan";
+    rev = "v${version}";
+    sha256 = "07mj3b2p3n3bq7rwi31y0vywnr4namqbcnz4c53kl38ajw9viyf0";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ SDL2 SDL2_mixer alsaLib libpng pcre ];
+
+  hardeningDisable = ["all"];
+
+  # Enable wizard mode
+  cmakeFlags = ["-DCMAKE_CXX_FLAGS=-DWIZARD"];
+
+  # Help CMake find SDL_mixer.h
+  NIX_CFLAGS_COMPILE = "-I${SDL2_mixer}/include/SDL2";
+
+  meta = with stdenv.lib; {
+    description = "Graphical roguelike game";
+    longDescription = ''
+      Iter Vehemens ad Necem (IVAN) is a graphical roguelike game, which currently
+      runs in Windows, DOS, Linux, and OS X. It features advanced bodypart and
+      material handling, multi-colored lighting and, above all, deep gameplay.
+
+      This is a fan continuation of IVAN by members of Attnam.com
+    '';
+    homepage = https://attnam.com/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [freepotion];
+  };
+}
diff --git a/nixpkgs/pkgs/games/ja2-stracciatella/Cargo.lock b/nixpkgs/pkgs/games/ja2-stracciatella/Cargo.lock
new file mode 100644
index 000000000000..d017e93e4dba
--- /dev/null
+++ b/nixpkgs/pkgs/games/ja2-stracciatella/Cargo.lock
@@ -0,0 +1,291 @@
+[[package]]
+name = "aho-corasick"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "dtoa"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "fuchsia-zircon"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "fuchsia-zircon-sys"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "getopts"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "itoa"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "kernel32-sys"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "memchr"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "quote"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "regex"
+version = "0.1.80"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "aho-corasick 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thread_local 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "serde_derive"
+version = "1.0.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 0.14.4 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "itoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "shell32-sys"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "stracciatella"
+version = "0.1.0"
+dependencies = [
+ "getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.80 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)",
+ "shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "syn"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "tempdir"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "thread-id"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "thread_local"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "unicode-xid"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "user32-sys"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "utf8-ranges"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "winapi"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "winapi"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "winapi-build"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[metadata]
+"checksum aho-corasick 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686ddb66"
+"checksum bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c54bb8f454c567f21197eefcdbf5679d0bd99f2ddbe52e84c77061952e6789"
+"checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd"
+"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+"checksum getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "0a7292d30132fb5424b354f5dc02512a86e4c516fe544bb7a25e7f266951b797"
+"checksum itoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5adb58558dcd1d786b5f0bd15f3226ee23486e24b7b58304b60f64dc68e62606"
+"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+"checksum libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)" = "b685088df2b950fccadf07a7187c8ef846a959c142338a48f9dc0b94517eb5f1"
+"checksum memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20"
+"checksum proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "effdb53b25cdad54f8f48843d67398f7ef2e14f12c1b4cb4effc549a6462a4d6"
+"checksum quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e44651a0dc4cdd99f71c83b561e221f714912d11af1a4dff0631f923d53af035"
+"checksum rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5"
+"checksum regex 0.1.80 (registry+https://github.com/rust-lang/crates.io-index)" = "4fd4ace6a8cf7860714a2c2280d6c1f7e6a413486c13298bbc86fd3da019402f"
+"checksum regex-syntax 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f9ec002c35e86791825ed294b50008eea9ddfc8def4420124fbc6b08db834957"
+"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
+"checksum serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)" = "0c3adf19c07af6d186d91dae8927b83b0553d07ca56cbf7f2f32560455c91920"
+"checksum serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)" = "3525a779832b08693031b8ecfb0de81cd71cfd3812088fafe9a7496789572124"
+"checksum serde_json 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)" = "84b8035cabe9b35878adec8ac5fe03d5f6bc97ff6edd7ccb96b44c1276ba390e"
+"checksum shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9ee04b46101f57121c9da2b151988283b6beb79b34f5bb29a58ee48cb695122c"
+"checksum syn 0.14.4 (registry+https://github.com/rust-lang/crates.io-index)" = "2beff8ebc3658f07512a413866875adddd20f4fd47b2a4e6c9da65cd281baaea"
+"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
+"checksum thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03"
+"checksum thread_local 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "8576dbbfcaef9641452d5cf0df9b0e7eeab7694956dd33bb61515fb8f18cfdd5"
+"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
+"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+"checksum user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ef4711d107b21b410a3a974b1204d9accc8b10dad75d8324b5d755de1617d47"
+"checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f"
+"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+"checksum winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "773ef9dcc5f24b7d850d0ff101e542ff24c3b090a9768e03ff889fdef41f00fd"
+"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/nixpkgs/pkgs/games/ja2-stracciatella/default.nix b/nixpkgs/pkgs/games/ja2-stracciatella/default.nix
new file mode 100644
index 000000000000..5dbab979272c
--- /dev/null
+++ b/nixpkgs/pkgs/games/ja2-stracciatella/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, cmake, SDL2, boost, fltk, rustPlatform }:
+with rustPlatform;
+let
+  version = "0.16.1";
+  src = fetchFromGitHub {
+    owner = "ja2-stracciatella";
+    repo = "ja2-stracciatella";
+    rev = "v${version}";
+    sha256 = "1pyn23syg70kiyfbs3pdlq0ixd2bxhncbamnic43rym3dmd52m29";
+  };
+  lockfile = ./Cargo.lock;
+  libstracciatellaSrc = stdenv.mkDerivation {
+    name = "libstracciatella-${version}-src";
+    src = "${src}/rust";
+    installPhase = ''
+      mkdir -p $out
+      cp -R ./* $out/
+      cp ${lockfile} $out/Cargo.lock
+    '';
+  };
+  libstracciatella = buildRustPackage {
+    name = "libstracciatella-${version}";
+    inherit version;
+    src = libstracciatellaSrc;
+    cargoSha256 = "0gxp5ps1lzmrg19h6k31fgxjdnjl6amry2vmb612scxcwklxryhm";
+    doCheck = false;
+  };
+in
+stdenv.mkDerivation rec {
+  name = "ja2-stracciatella-${version}";
+  inherit src;
+  inherit version;
+
+  buildInputs = [ cmake SDL2 fltk boost ];
+
+  patches = [
+    ./remove-rust-buildstep.patch
+  ];
+  preConfigure = ''
+    sed -i -e 's|rust-stracciatella|${libstracciatella}/lib/libstracciatella.so|g' CMakeLists.txt
+    cmakeFlagsArray+=("-DEXTRA_DATA_DIR=$out/share/ja2")
+  '';
+
+  enableParallelBuilding = true;
+  meta = {
+    description = "Jagged Alliance 2, with community fixes";
+    license = "SFI Source Code license agreement";
+    homepage = https://ja2-stracciatella.github.io/;
+  };
+}
diff --git a/nixpkgs/pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch b/nixpkgs/pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch
new file mode 100644
index 000000000000..b86589fc6716
--- /dev/null
+++ b/nixpkgs/pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f354370e0..c9fa23c6d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -159,7 +159,6 @@ add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/externalized")
+ add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/game")
+ add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/sgp")
+ add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/slog")
+-add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/rust")
+ add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-smacker")
+
+ if(BUILD_LAUNCHER)
+@@ -235,8 +234,6 @@ copy_assets_dir_to_ja2_binary_after_build("externalized")
+ copy_assets_dir_to_ja2_binary_after_build("unittests")
+ copy_assets_dir_to_ja2_binary_after_build("mods")
+
+-get_property(STRACCIATELLA_SHARED_LIB TARGET rust-stracciatella PROPERTY IMPORTED_LOCATION)
+-
+ if (MSVC OR APPLE)
+     add_custom_command(TARGET ${JA2_BINARY} POST_BUILD
+             COMMAND ${CMAKE_COMMAND} -E copy
diff --git a/nixpkgs/pkgs/games/keen4/builder.sh b/nixpkgs/pkgs/games/keen4/builder.sh
new file mode 100644
index 000000000000..50d261db8651
--- /dev/null
+++ b/nixpkgs/pkgs/games/keen4/builder.sh
@@ -0,0 +1,31 @@
+source $stdenv/setup
+
+mkdir -p $out/share/keen4
+unzip -j $dist -d $out/share/keen4
+
+mkdir -p $out/bin
+cat > $out/bin/keen4 <<EOF
+#! $SHELL -e
+if test -z "\$HOME"; then
+    echo "HOME directory not set"
+    exit 1
+fi
+
+# Game wants to write in the current directory, but of course we can't
+# let it write in the Nix store.  So create symlinks to the game files
+# in ~/.keen4 and execute game from there.
+mkdir -p \$HOME/.keen4
+cd \$HOME/.keen4
+
+ln -sf $out/share/keen4/* .
+
+$dosbox/bin/dosbox ./KEEN4E.EXE -fullscreen -exit || true
+
+# Cleanup the symlinks.
+for i in *; do
+    if test -L "\$i"; then
+        rm "\$i"
+    fi
+done
+EOF
+chmod +x $out/bin/keen4
\ No newline at end of file
diff --git a/nixpkgs/pkgs/games/keen4/default.nix b/nixpkgs/pkgs/games/keen4/default.nix
new file mode 100644
index 000000000000..64522e568db6
--- /dev/null
+++ b/nixpkgs/pkgs/games/keen4/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, fetchurl, dosbox, unzip }:
+
+stdenv.mkDerivation {
+  name = "keen4";
+  builder = ./builder.sh;
+
+  dist = fetchurl {
+    url = http://tarballs.nixos.org/keen4.zip;
+    sha256 = "12rnc9ksl7v6l8wsxvr26ylkafzq80dbsa7yafzw9pqc8pafkhx1";
+  };
+
+  buildInputs = [unzip];
+
+  inherit dosbox;
+
+  meta = {
+    description = "Commander Keen Episode 4: Secret of the Oracle";
+    license = lib.licenses.unfree;
+    maintainers = [ lib.maintainers.eelco ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/klavaro/default.nix b/nixpkgs/pkgs/games/klavaro/default.nix
new file mode 100644
index 000000000000..345965b476ed
--- /dev/null
+++ b/nixpkgs/pkgs/games/klavaro/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, intltool, curl, gtk3 }:
+
+stdenv.mkDerivation rec {
+  name = "klavaro-${version}";
+  version = "3.04";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/klavaro/${name}.tar.bz2";
+    sha256 = "148vznikdn424938fmizgd281ky7311q51mw2zfzrallj87dzbqf";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ makeWrapper intltool curl gtk3 ];
+
+  postInstall = ''
+    wrapProgram $out/bin/klavaro \
+      --prefix LD_LIBRARY_PATH : $out/lib
+  '';
+
+  # Hack to avoid TMPDIR in RPATHs.
+  preFixup = ''rm -rf "$(pwd)" '';
+
+  meta = {
+    description = "Just another free touch typing tutor program";
+    homepage = http://klavaro.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [stdenv.lib.maintainers.mimadrid];
+  };
+}
diff --git a/nixpkgs/pkgs/games/kobodeluxe/default.nix b/nixpkgs/pkgs/games/kobodeluxe/default.nix
new file mode 100644
index 000000000000..b6d14085351e
--- /dev/null
+++ b/nixpkgs/pkgs/games/kobodeluxe/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, SDL, SDL_image, libGLU_combined} :
+
+stdenv.mkDerivation {
+  name = "kobodeluxe-0.5.1";
+  src = fetchurl {
+    url = http://olofson.net/kobodl/download/KoboDeluxe-0.5.1.tar.bz2;
+    sha256 = "0f7b910a399d985437564af8c5d81d6dcf22b96b26b01488d72baa6a6fdb5c2c";
+  };
+
+  buildInputs = [ SDL SDL_image libGLU_combined ];
+
+  prePatch = ''
+    sed -e 's/char \*tok/const char \*tok/' -i graphics/window.cpp
+  '';
+
+  patches = [ ./glibc29.patch ];
+
+  meta = {
+    homepage = http://olofson.net/kobodl/;
+    description = "Enhanced version of Akira Higuchi's game XKobo  for Un*x systems with X11";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/kobodeluxe/glibc29.patch b/nixpkgs/pkgs/games/kobodeluxe/glibc29.patch
new file mode 100644
index 000000000000..7a9ef355a821
--- /dev/null
+++ b/nixpkgs/pkgs/games/kobodeluxe/glibc29.patch
@@ -0,0 +1,83 @@
+--- a/enemies.h
++++ b/enemies.h
+@@ -70,9 +70,9 @@
+ extern const enemy_kind bomb2;
+ extern const enemy_kind bombdeto;
+ extern const enemy_kind cannon;
+-extern const enemy_kind pipe1;
++extern const enemy_kind pipeone;
+ extern const enemy_kind core;
+-extern const enemy_kind pipe2;
++extern const enemy_kind pipetwo;
+ extern const enemy_kind rock;
+ extern const enemy_kind ring;
+ extern const enemy_kind enemy_m1;
+@@ -430,7 +430,7 @@
+ 
+ inline int _enemy::is_pipe()
+ {
+-	return ((_state != notuse) && ((ek == &pipe1) || (ek == &pipe2)));
++	return ((_state != notuse) && ((ek == &pipeone) || (ek == &pipetwo)));
+ }
+ 
+ 
+--- a/enemy.cpp
++++ b/enemy.cpp
+@@ -713,7 +713,7 @@
+ 
+ void _enemy::kill_cannon()
+ {
+-	enemies.make(&pipe1, CS2PIXEL(x), CS2PIXEL(y));
++	enemies.make(&pipeone, CS2PIXEL(x), CS2PIXEL(y));
+ 	sound.g_base_node_explo(x, y);
+ 	release();
+ }
+@@ -755,10 +755,10 @@
+ 
+ void _enemy::kill_core()
+ {
+-	enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 3);
+-	enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 7);
+-	enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 1);
+-	enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 5);
++	enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 3);
++	enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 7);
++	enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 1);
++	enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 5);
+ 	enemies.make(&explosion4, CS2PIXEL(x), CS2PIXEL(y));
+ 	sound.g_base_core_explo(x, y);
+ 	release();
+@@ -851,7 +851,7 @@
+ 		screen.set_map(x1, y1, m ^ a);
+ 	release();
+ }
+-const enemy_kind pipe1 = {
++const enemy_kind pipeone = {
+ 	0,
+ 	&_enemy::make_pipe1,
+ 	&_enemy::move_pipe1,
+@@ -978,19 +978,19 @@
+ 	}
+ 	p ^= a;
+ 	if(p & U_MASK)
+-		enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 1);
++		enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 1);
+ 	if(p & R_MASK)
+-		enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 3);
++		enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 3);
+ 	if(p & D_MASK)
+-		enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 5);
++		enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 5);
+ 	if(p & L_MASK)
+-		enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 7);
++		enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 7);
+ 	manage.add_score(10);
+ 	release();
+ }
+ 
+ 
+-const enemy_kind pipe2 = {
++const enemy_kind pipetwo = {
+ 	0,
+ 	&_enemy::make_pipe2,
+ 	&_enemy::move_pipe2,
diff --git a/nixpkgs/pkgs/games/lbreakout2/default.nix b/nixpkgs/pkgs/games/lbreakout2/default.nix
new file mode 100644
index 000000000000..b5f858b99ad7
--- /dev/null
+++ b/nixpkgs/pkgs/games/lbreakout2/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, SDL, SDL_mixer, zlib, libpng, libintl }:
+
+stdenv.mkDerivation rec {
+  name = "lbreakout2-${version}";
+  version = "2.6.5";
+  buildInputs = [ SDL SDL_mixer zlib libpng libintl ];
+
+  src = fetchurl {
+    url = "mirror://sourceforge/lgames/${name}.tar.gz";
+    sha256 = "0vwdlyvh7c4y80q5vp7fyfpzbqk9lq3w8pvavi139njkalbxc14i";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Breakout clone from the LGames series";
+    homepage = http://lgames.sourceforge.net/LBreakout2/;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.ciil ];
+    platforms = platforms.unix;
+    hydraPlatforms = stdenv.lib.platforms.linux; # sdl-config times out on darwin
+  };
+}
diff --git a/nixpkgs/pkgs/games/leela-zero/default.nix b/nixpkgs/pkgs/games/leela-zero/default.nix
new file mode 100644
index 000000000000..c1238b7b3bbb
--- /dev/null
+++ b/nixpkgs/pkgs/games/leela-zero/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, fetchFromGitHub, cmake, boost, eigen
+, opencl-headers, ocl-icd, qtbase , zlib }:
+
+stdenv.mkDerivation rec {
+  name = "leela-zero-${version}";
+  version = "0.16";
+
+  src = fetchFromGitHub {
+    owner = "gcp";
+    repo = "leela-zero";
+    rev = "v${version}";
+    sha256 = "1px7wqvlv414gklzgrmppp8wzc2mkskinm1p75j4snbqr8qpbn5s";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [ boost opencl-headers ocl-icd qtbase zlib ];
+
+  nativeBuildInputs = [ cmake ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Go engine modeled after AlphaGo Zero";
+    homepage    = https://github.com/gcp/leela-zero;
+    license     = licenses.gpl3;
+    maintainers = [ maintainers.averelld ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/lgogdownloader/default.nix b/nixpkgs/pkgs/games/lgogdownloader/default.nix
new file mode 100644
index 000000000000..4d4b46054c28
--- /dev/null
+++ b/nixpkgs/pkgs/games/lgogdownloader/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, curl, boost, liboauth, jsoncpp
+, htmlcxx, rhash, tinyxml-2, help2man }:
+
+stdenv.mkDerivation rec {
+  name = "lgogdownloader-${version}";
+  version = "3.4";
+
+  src = fetchFromGitHub {
+    owner = "Sude-";
+    repo = "lgogdownloader";
+    rev = "v${version}";
+    sha256 = "155vnz4w2v5d3yihwzq8yi406g19kc7banzlarhlcp3j11riwd24";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig help2man ];
+
+  buildInputs = [ curl boost liboauth jsoncpp htmlcxx rhash tinyxml-2 ];
+
+  meta = {
+    homepage = https://github.com/Sude-/lgogdownloader;
+    description = "Unofficial downloader to GOG.com for Linux users. It uses the same API as the official GOGDownloader";
+    license = stdenv.lib.licenses.wtfpl;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/liberal-crime-squad/default.nix b/nixpkgs/pkgs/games/liberal-crime-squad/default.nix
new file mode 100644
index 000000000000..fef6e11d9be9
--- /dev/null
+++ b/nixpkgs/pkgs/games/liberal-crime-squad/default.nix
@@ -0,0 +1,29 @@
+{ fetchFromGitHub, stdenv, autoreconfHook, libiconv, ncurses, SDL2, SDL2_mixer }:
+
+stdenv.mkDerivation rec {
+  version = "2016-07-06";
+  name = "liberal-crime-squad-${version}";
+
+  src = fetchFromGitHub {
+    owner = "Kamal-Sadek";
+    repo = "Liberal-Crime-Squad";
+    rev = "2ace84e";
+    sha256 = "0mcldn8ivlfyjfx22ygzcbbw3bzl0j6vi3g6jyj8jmcrni61mgmb";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ libiconv ncurses SDL2 SDL2_mixer ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A humorous politically themed ncurses game";
+    longDescription = ''
+      Welcome to Liberal Crime Squad! The Conservatives have taken the Executive, Legislative, and Judicial branches of government. Over time, the Liberal laws of this nation will erode and turn the country into a BACKWOODS YET CORPORATE NIGHTMARE. To prevent this from happening, the Liberal Crime Squad was established. The mood of the country is shifting, and we need to turn things around. Go out on the streets and indoctrinate Conservative automatons. That is, let them see their True Liberal Nature. Then arm them and send them forth to Stop Evil.
+    '';
+    homepage = https://github.com/Kamal-Sadek/Liberal-Crime-Squad;
+    maintainers = [ maintainers.rardiol ];
+    license = licenses.gpl2;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/lincity/default.nix b/nixpkgs/pkgs/games/lincity/default.nix
new file mode 100644
index 000000000000..0abbfda33c7b
--- /dev/null
+++ b/nixpkgs/pkgs/games/lincity/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, fetchpatch, libX11, libXext, xorgproto, libICE, libSM, libpng12, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "lincity-${version}";
+  version = "1.13.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/lincity/${name}.tar.gz";
+    sha256 = "0p81wl7labyfb6rgp0hi42l2akn3n7r2bnxal1wyvjylzw8vsk3v";
+  };
+
+  buildInputs = [
+    libICE libpng12 libSM libX11 libXext
+    xorgproto zlib
+  ];
+
+  patches = [
+    (fetchpatch {
+      url = "https://sources.debian.net/data/main/l/lincity/1.13.1-13/debian/patches/extern-inline-functions-777982";
+      sha256 = "06dp3zwk0z5wr5a3xaaj2my75vcjcy98vc22hsag7ggd9jwrkcp0";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.net/data/main/l/lincity/1.13.1-13/debian/patches/clang-ftbfs-757859";
+      sha256 = "098rnywcsyc0m11x4a5m3dza8i0jmfh6pacfgma1vvxpsfkb6ngp";
+    })
+  ];
+
+  meta = with stdenv.lib; {
+    description = "City simulation game";
+    license = licenses.gpl2Plus;
+    homepage = https://sourceforge.net/projects/lincity;
+  };
+}
diff --git a/nixpkgs/pkgs/games/lincity/ng.nix b/nixpkgs/pkgs/games/lincity/ng.nix
new file mode 100644
index 000000000000..b860d2ee58b1
--- /dev/null
+++ b/nixpkgs/pkgs/games/lincity/ng.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, jam, pkgconfig
+, zlib, libxml2, libxslt, xorgproto, libX11, libGLU_combined, SDL
+, SDL_mixer, SDL_image, SDL_ttf, SDL_gfx, physfs
+}:
+
+stdenv.mkDerivation rec {
+  name = "lincity-ng-${version}";
+  version = "2.9beta.20170715";
+
+  src = fetchFromGitHub {
+    owner  = "lincity-ng";
+    repo   = "lincity-ng";
+    rev    = "0c19714b811225238f310633e59f428934185e6b";
+    sha256 = "1gaj9fq97zmb0jsdw4rzrw34pimkmkwbfqps0glpqij4w3srz5f3";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  nativeBuildInputs = [
+    autoreconfHook jam pkgconfig
+  ];
+
+  buildInputs = [
+    zlib libxml2 libxslt xorgproto libX11 libGLU_combined SDL SDL_mixer SDL_image
+    SDL_ttf SDL_gfx physfs
+  ];
+
+  autoreconfPhase = ''
+    ./autogen.sh
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    AR='ar r' jam -j $NIX_BUILD_CORES
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    touch CREDITS
+    AR='ar r' jam install
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "City building game";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/linux-steam-integration/default.nix b/nixpkgs/pkgs/games/linux-steam-integration/default.nix
new file mode 100644
index 000000000000..edc73eeac922
--- /dev/null
+++ b/nixpkgs/pkgs/games/linux-steam-integration/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, git, gtk, pkgs, gettext,
+  gcc_multi, libressl, gnome3, steam }:
+
+let
+  version = "0.7.3";
+
+in stdenv.mkDerivation rec {
+  name = "linux-steam-integration-${version}";
+
+  src = fetchFromGitHub {
+    owner = "clearlinux";
+    repo = "linux-steam-integration";
+    rev = "v${version}";
+    sha256 = "0brv3swx8h170ycxksb31sf5jvj85csfpx7gjlf6yrfz7jw2j6vp";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ meson ninja pkgconfig git gettext gcc_multi ];
+  buildInputs = [ gtk libressl ];
+
+  # Patch lib paths (AUDIT_PATH and REDIRECT_PATH) in shim.c
+  # Patch path to lsi-steam in lsi-steam.desktop
+  # Patch path to zenity in lsi.c
+  postPatch = ''
+    substituteInPlace src/shim/shim.c --replace "/usr/" $out
+    substituteInPlace data/lsi-steam.desktop --replace "/usr/" $out
+    substituteInPlace src/lsi/lsi.c --replace zenity ${gnome3.zenity}/bin/zenity
+    substituteInPlace data/lsi-settings.desktop.in \
+      --replace "Name=Linux Steam Integration" "Name=Linux Steam Integration Settings"
+  '';
+
+  configurePhase = ''
+    # Configure 64bit things
+    meson build                           \
+      -Dwith-shim=co-exist                \
+      -Dwith-frontend=true                \
+      -Dwith-steam-binary=${steam}/bin/steam \
+      -Dwith-new-libcxx-abi=true          \
+      -Dwith-libressl-mode=native         \
+      --prefix /                          \
+      --libexecdir lib                    \
+      --libdir lib                        \
+      --bindir bin
+
+    # Configure 32bit things
+    CC="gcc -m32" CXX="g++ -m32" meson build32 \
+      -Dwith-shim=none                         \
+      -Dwith-libressl-mode=native              \
+      --prefix /                               \
+      --libexecdir lib32                       \
+      --libdir lib32
+  '';
+
+  buildPhase = ''
+    # Build 64bit things
+    ninja -C build
+
+    # Build 32bit things
+    ninja -C build32
+  '';
+
+  installPhase = ''
+    DESTDIR="$out" ninja -C build install
+    DESTDIR="$out" ninja -C build32 install
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Steam wrapper to improve compability and performance";
+    longDescription = ''
+      Linux Steam Integration is a helper system to make the Steam Client and
+      Steam games run better on Linux. In a nutshell, LSI automatically applies
+      various workarounds to get games working, and fixes long standing bugs in
+      both games and the client
+    '';
+    homepage = https://github.com/clearlinux/linux-steam-integration;
+    license = licenses.lgpl21;
+    maintainers = [ maintainers.etu ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/liquidwar/5.nix b/nixpkgs/pkgs/games/liquidwar/5.nix
new file mode 100644
index 000000000000..d748c96da242
--- /dev/null
+++ b/nixpkgs/pkgs/games/liquidwar/5.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, allegro }:
+stdenv.mkDerivation rec {
+  version = "5.6.4";
+  name = "liquidwar5-${version}";
+  src = fetchurl {
+    url = "https://download.savannah.gnu.org/releases/liquidwar/liquidwar-${version}.tar.gz";
+    sha256 = "18wkbfzp07yckg05b5gjy67rw06z9lxp0hzg0zwj7rz8i12jxi9j";
+  };
+
+  buildInputs = [ allegro ];
+
+  configureFlags = stdenv.lib.optional stdenv.isx86_64 "--disable-asm";
+
+  hardeningDisable = [ "format" ];
+
+  meta = with stdenv.lib; {
+    description = ''The classic version of a quick tactics game LiquidWar'';
+    maintainers = [ maintainers.raskin ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/liquidwar/default.nix b/nixpkgs/pkgs/games/liquidwar/default.nix
new file mode 100644
index 000000000000..af7101f216d5
--- /dev/null
+++ b/nixpkgs/pkgs/games/liquidwar/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, xorgproto, libX11, libXrender
+, gmp, libjpeg, libpng
+, expat, gettext, perl, guile
+, SDL, SDL_image, SDL_mixer, SDL_ttf
+, curl, sqlite, libtool, readline
+, libogg, libvorbis, libcaca, csound, cunit } :
+
+stdenv.mkDerivation rec {
+  name = "liquidwar6-${version}";
+  version = "0.6.3902";
+
+  src = fetchurl {
+    url = "mirror://gnu/liquidwar6/${name}.tar.gz";
+    sha256 = "1976nnl83d8wspjhb5d5ivdvdxgb8lp34wp54jal60z4zad581fn";
+  };
+
+  buildInputs = [
+    xorgproto libX11 gmp guile
+    libjpeg libpng
+    expat gettext perl
+    SDL SDL_image SDL_mixer SDL_ttf
+    curl sqlite
+    libogg libvorbis csound
+    libXrender libcaca cunit
+    libtool readline
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  NIX_CFLAGS_COMPILE =
+    "-Wno-error=deprecated-declarations" +
+    # Avoid GL_GLEXT_VERSION double definition
+    " -DNO_SDL_GLEXT"
+  ;
+
+  # To avoid problems finding SDL_types.h.
+  configureFlags = [ "CFLAGS=-I${SDL.dev}/include/SDL" ];
+
+  meta = with stdenv.lib; {
+    description = "Quick tactics game";
+    homepage = https://www.gnu.org/software/liquidwar6/;
+    maintainers = [ maintainers.raskin ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/ltris/default.nix b/nixpkgs/pkgs/games/ltris/default.nix
new file mode 100644
index 000000000000..10a79a696732
--- /dev/null
+++ b/nixpkgs/pkgs/games/ltris/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, SDL, SDL_mixer }:
+
+stdenv.mkDerivation rec {
+  name = "ltris-${version}";
+  version = "1.0.19";
+  buildInputs = [ SDL SDL_mixer ];
+
+  src = fetchurl {
+    url = "mirror://sourceforge/lgames/${name}.tar.gz";
+    sha256 = "1895wv1fqklrj4apkz47rnkcfhfav7zjknskw6p0886j35vrwslg";
+  };
+
+  patchPhase = "patch -p0 < ${./gcc5_compliance.diff}";
+
+  meta = with stdenv.lib; {
+    description = "Tetris clone from the LGames series";
+    homepage = http://lgames.sourceforge.net/LBreakout2/;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.ciil ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/ltris/gcc5_compliance.diff b/nixpkgs/pkgs/games/ltris/gcc5_compliance.diff
new file mode 100644
index 000000000000..bf53fcf8467b
--- /dev/null
+++ b/nixpkgs/pkgs/games/ltris/gcc5_compliance.diff
@@ -0,0 +1,299 @@
+Index: ChangeLog
+===================================================================
+--- ChangeLog	(revision 163)
++++ ChangeLog	(revision 164)
+@@ -1,3 +1,5 @@
++- removed all inline keywords to work with GCC 5 (2015/05/16 MS)
++
+ 1.0.19:
+ - removed link to lib math as not needed (2013/10/29 MS)
+ - reset key states when unpausing to prevent unwanted movement (2013/10/29 MS)
+Index: src/bowl.c
+===================================================================
+--- src/bowl.c	(revision 163)
++++ src/bowl.c	(revision 164)
+@@ -333,7 +333,7 @@
+ Set a tile contents and pixel contents.
+ ====================================================================
+ */
+-inline void bowl_set_tile( Bowl *bowl, int x, int y, int tile_id )
++void bowl_set_tile( Bowl *bowl, int x, int y, int tile_id )
+ {
+     int i, j = y * bowl->block_size;
+     bowl->contents[x][y] = tile_id;
+Index: src/sdl.c
+===================================================================
+--- src/sdl.c	(revision 163)
++++ src/sdl.c	(revision 164)
+@@ -244,7 +244,7 @@
+ #endif
+ 
+ /* return full path of bitmap */
+-inline void get_full_bmp_path( char *full_path, char *file_name )
++void get_full_bmp_path( char *full_path, char *file_name )
+ {
+     sprintf(full_path,  "%s/gfx/%s", SRC_DIR, file_name );
+ }
+@@ -330,7 +330,7 @@
+ /*
+     lock surface
+ */
+-inline void lock_surf(SDL_Surface *sur)
++void lock_surf(SDL_Surface *sur)
+ {
+     if (SDL_MUSTLOCK(sur))
+         SDL_LockSurface(sur);
+@@ -339,7 +339,7 @@
+ /*
+     unlock surface
+ */
+-inline void unlock_surf(SDL_Surface *sur)
++void unlock_surf(SDL_Surface *sur)
+ {
+     if (SDL_MUSTLOCK(sur))
+         SDL_UnlockSurface(sur);
+@@ -666,7 +666,7 @@
+ /*
+     lock font surface
+ */
+-inline void lock_font(Font *fnt)
++void lock_font(Font *fnt)
+ {
+     if (SDL_MUSTLOCK(fnt->pic))
+         SDL_LockSurface(fnt->pic);
+@@ -675,7 +675,7 @@
+ /*
+     unlock font surface
+ */
+-inline void unlock_font(Font *fnt)
++void unlock_font(Font *fnt)
+ {
+     if (SDL_MUSTLOCK(fnt->pic))
+         SDL_UnlockSurface(fnt->pic);
+@@ -905,7 +905,7 @@
+ /*
+     update rectangle (0,0,0,0)->fullscreen
+ */
+-inline void refresh_screen(int x, int y, int w, int h)
++void refresh_screen(int x, int y, int w, int h)
+ {
+     SDL_UpdateRect(sdl.screen, x, y, w, h);
+ }
+@@ -1055,7 +1055,7 @@
+ /*
+     lock surface
+ */
+-inline void lock_screen()
++void lock_screen()
+ {
+     if (SDL_MUSTLOCK(sdl.screen))
+         SDL_LockSurface(sdl.screen);
+@@ -1064,7 +1064,7 @@
+ /*
+     unlock surface
+ */
+-inline void unlock_screen()
++void unlock_screen()
+ {
+     if (SDL_MUSTLOCK(sdl.screen))
+         SDL_UnlockSurface(sdl.screen);
+@@ -1073,7 +1073,7 @@
+ /*
+     flip hardware screens (double buffer)
+ */
+-inline void flip_screen()
++void flip_screen()
+ {
+     SDL_Flip(sdl.screen);
+ }
+@@ -1132,7 +1132,7 @@
+ /*
+     get milliseconds since last call
+ */
+-inline int get_time()
++int get_time()
+ {
+     int ms;
+     cur_time = SDL_GetTicks();
+@@ -1148,7 +1148,7 @@
+ /*
+     reset timer
+ */
+-inline void reset_timer()
++void reset_timer()
+ {
+     last_time = SDL_GetTicks();
+ }
+Index: src/sdl.h
+===================================================================
+--- src/sdl.h	(revision 163)
++++ src/sdl.h	(revision 164)
+@@ -41,8 +41,8 @@
+ SDL_Surface* load_surf(char *fname, int f);
+ SDL_Surface* create_surf(int w, int h, int f);
+ void free_surf( SDL_Surface **surf );
+-inline void lock_surf(SDL_Surface *sur);
+-inline void unlock_surf(SDL_Surface *sur);
++void lock_surf(SDL_Surface *sur);
++void unlock_surf(SDL_Surface *sur);
+ void blit_surf(void);
+ void alpha_blit_surf(int alpha);
+ void fill_surf(int c);
+@@ -86,8 +86,8 @@
+ Font* load_fixed_font(char *fname, int off, int len, int w);
+ void free_font(Font **sfnt);
+ int  write_text(Font *sfnt, SDL_Surface *dest, int x, int y, char *str, int alpha);
+-inline void lock_font(Font *sfnt);
+-inline void unlock_font(Font *sfnt);
++void lock_font(Font *sfnt);
++void unlock_font(Font *sfnt);
+ SDL_Rect last_write_rect(Font *fnt);
+ int  text_width(Font *fnt, char *str);
+ 
+@@ -132,14 +132,14 @@
+ char** get_mode_names( int *count );
+ int  set_video_mode( Video_Mode mode );
+ void hardware_cap();
+-inline void refresh_screen( int x, int y, int w, int h );
++void refresh_screen( int x, int y, int w, int h );
+ void refresh_rects();
+ void add_refresh_rect(int x, int y, int w, int h);
+ int  wait_for_key();
+ void wait_for_click();
+-inline void lock_screen();
+-inline void unlock_screen();
+-inline void flip_screen();
++void lock_screen();
++void unlock_screen();
++void flip_screen();
+ void fade_screen( int type, int ms );
+ void take_screenshot( int i );
+ 
+@@ -148,8 +148,8 @@
+ SDL_Cursor* create_cursor( int width, int height, int hot_x, int hot_y, char *source );
+ 
+ /* timer */
+-inline int get_time();
+-inline void reset_timer();
++int get_time();
++void reset_timer();
+ 
+ #ifdef __cplusplus
+ };
+Index: src/tools.c
+===================================================================
+--- src/tools.c	(revision 163)
++++ src/tools.c	(revision 164)
+@@ -23,7 +23,7 @@
+ #include "ltris.h"
+ 
+ /* compares to strings and returns true if their first strlen(str1) chars are equal */
+-inline int strequal( char *str1, char *str2 )
++int strequal( char *str1, char *str2 )
+ {
+     if ( strlen( str1 ) != strlen( str2 ) ) return 0;
+     return ( !strncmp( str1, str2, strlen( str1 ) ) );
+@@ -30,7 +30,7 @@
+ }
+ 
+ /* set delay to ms milliseconds */
+-inline void delay_set( Delay *delay, int ms )
++void delay_set( Delay *delay, int ms )
+ {
+     delay->limit = ms;
+     delay->cur = 0;
+@@ -37,13 +37,13 @@
+ }
+ 
+ /* reset delay ( cur = 0 )*/
+-inline void delay_reset( Delay *delay )
++void delay_reset( Delay *delay )
+ {
+     delay->cur = 0;
+ }
+ 
+ /* check if times out and reset */
+-inline int delay_timed_out( Delay *delay, int ms )
++int delay_timed_out( Delay *delay, int ms )
+ {
+     delay->cur += ms;
+     if ( delay->cur >= delay->limit ) {
+@@ -56,12 +56,12 @@
+ }
+ 
+ /* set timer so that we have a time out next call of delay_timed_out() */
+-inline void delay_force_time_out( Delay *delay )
++void delay_force_time_out( Delay *delay )
+ {
+     delay->cur = delay->limit;
+ }
+ 
+-inline void goto_tile( int *x, int *y, int d )
++void goto_tile( int *x, int *y, int d )
+ {
+     /*  0 -up, clockwise, 5 - left up */
+     switch ( d ) {
+@@ -326,24 +326,24 @@
+ the target value until reached when counter_update() is called.
+ ====================================================================
+ */
+-inline void counter_set( Counter *counter, double value )
++void counter_set( Counter *counter, double value )
+ {
+     counter->value = value;
+     counter->approach = value;
+ }
+-inline void counter_add( Counter *counter, double add )
++void counter_add( Counter *counter, double add )
+ {
+     counter->value += add;
+ }
+-inline double counter_get_approach( Counter counter )
++double counter_get_approach( Counter counter )
+ {
+     return counter.approach;
+ }
+-inline double counter_get( Counter counter )
++double counter_get( Counter counter )
+ {
+     return counter.value;
+ }
+-inline void counter_update( Counter *counter, int ms )
++void counter_update( Counter *counter, int ms )
+ {
+     double change;
+     if ( counter->approach == counter->value ) return;
+Index: src/tools.h
+===================================================================
+--- src/tools.h	(revision 163)
++++ src/tools.h	(revision 164)
+@@ -33,7 +33,7 @@
+ #define VEC_DIST( vec1, vec2 ) ( sqrt( ( vec1.x - vec2.x ) * ( vec1.x - vec2.x ) + ( vec1.y - vec2.y ) * ( vec1.y - vec2.y ) ) )
+ 
+ /* compares to strings and returns true if their first strlen(str1) chars are equal */
+-inline int strequal( char *str1, char *str2 );
++int strequal( char *str1, char *str2 );
+ 
+ /* delete lines */
+ void delete_lines( char **lines, int line_number );
+@@ -45,16 +45,16 @@
+ } Delay;
+ 
+ /* set delay to ms milliseconds */
+-inline void delay_set( Delay *delay, int ms );
++void delay_set( Delay *delay, int ms );
+ 
+ /* reset delay ( cur = 0 )*/
+-inline void delay_reset( Delay *delay );
++void delay_reset( Delay *delay );
+ 
+ /* check if time's out ( add ms milliseconds )and reset */
+-inline int delay_timed_out( Delay *delay, int ms );
++int delay_timed_out( Delay *delay, int ms );
+ 
+ /* set timer so that we have a time out next call of delay_timed_out() */
+-inline void delay_force_time_out( Delay *delay );
++void delay_force_time_out( Delay *delay );
+ 
+ /* return distance betwteen to map positions */
+ int get_dist( int x1, int y1, int x2, int y2 );
diff --git a/nixpkgs/pkgs/games/macopix/default.nix b/nixpkgs/pkgs/games/macopix/default.nix
new file mode 100644
index 000000000000..2639765c5d15
--- /dev/null
+++ b/nixpkgs/pkgs/games/macopix/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, gtk, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "macopix-1.7.4";
+
+  src = fetchurl {
+    url = "http://rosegray.sakura.ne.jp/macopix/${name}.tar.bz2";
+    sha256 = "0sgnr0wrw3hglcnsyvipll7icfv69ssmyw584zfhk1rgramlkzyb";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk openssl ];
+
+  preConfigure = ''
+    # Build fails on Linux with windres.
+    export ac_cv_prog_WINDRES=
+  '';
+
+  enableParallelBuilding = true;
+
+  NIX_LDFLAGS = [ "-lX11" ];
+
+  meta = {
+    description = "Mascot Constructive Pilot for X";
+    homepage = http://rosegray.sakura.ne.jp/macopix/index-e.html;
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/mar1d/default.nix b/nixpkgs/pkgs/games/mar1d/default.nix
new file mode 100644
index 000000000000..da711f59af02
--- /dev/null
+++ b/nixpkgs/pkgs/games/mar1d/default.nix
@@ -0,0 +1,70 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, libGLU
+, xlibsWrapper
+, xorg
+, xinput_calibrator
+, doxygen
+, libpthreadstubs
+, alsaLib
+, alsaOss
+, libao
+, width ? 30
+, mute ? false
+, effects ? false
+, sensitivity ? 5
+, reverseY ? false
+}:
+
+stdenv.mkDerivation rec {
+  name = "MAR1D-${version}";
+  version = "0.2.0";
+  options = "-w${toString width}"
+          + " -s${toString sensitivity}"
+          + (if mute then " -m" else "")
+          + (if effects then " -f" else "")
+          + (if reverseY then " -r" else "");
+
+  src = fetchFromGitHub {
+    sha256 = "152w5dnlxzv60cl24r5cmrj2q5ar0jiimrmxnp87kf4d2dpbnaq7";
+    rev = "v${version}";
+    repo = "fp_mario";
+    owner = "olynch";
+  };
+
+  buildInputs =
+    [
+      alsaLib
+      alsaOss
+      cmake
+      doxygen
+      libao
+      libpthreadstubs
+      libGLU
+      xlibsWrapper
+      xinput_calibrator
+      xorg.libXrandr
+      xorg.libXi
+      xorg.xinput
+      xorg.libXxf86vm
+    ];
+
+  preConfigure = ''
+    cd src
+  '';
+
+  meta = with stdenv.lib; {
+    description = "First person Super Mario Bros";
+    longDescription = ''
+      The original Super Mario Bros as you've never seen it. Step into Mario's
+      shoes in this first person clone of the classic Mario game. True to the
+      original, however, the game still takes place in a two dimensional world.
+      You must view the world as mario does, as a one dimensional line.
+    '';
+    homepage = https://github.com/olynch/fp_mario;
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ taeer ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/mars/default.nix b/nixpkgs/pkgs/games/mars/default.nix
new file mode 100644
index 000000000000..668605a9ae10
--- /dev/null
+++ b/nixpkgs/pkgs/games/mars/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchgit, cmake, libGLU_combined, sfml, fribidi, taglib }:
+stdenv.mkDerivation rec {
+  name = "mars-${version}-${rev}";
+  version = "0.7.5";
+  rev = "c855d04409";
+  src = fetchgit {
+    url = "https://github.com/thelaui/M.A.R.S..git";
+    inherit rev;
+    sha256 = "1r4c5gap1z2zsv4yjd34qriqkxaq4lb4rykapyzkkdf4g36lc3nh";
+  };
+  buildInputs = [ cmake libGLU_combined sfml fribidi taglib ];
+  patches = [
+    ./unbind_fix.patch
+    ./fix-gluortho2d.patch
+  ];
+  installPhase = ''
+    cd ..
+    find -name '*.svn' -exec rm -rf {} \;
+    mkdir -p "$out/share/mars/"
+    mkdir -p "$out/bin/"
+    cp -rv data resources credits.txt license.txt "$out/share/mars/"
+    cp -v mars "$out/bin/mars.bin"
+    cat << EOF > "$out/bin/mars"
+    #! ${stdenv.shell}
+    cd "$out/share/mars/"
+    exec "$out/bin/mars.bin" "\$@"
+    EOF
+    chmod +x "$out/bin/mars"
+  '';
+  meta = with stdenv.lib; {
+    homepage = http://mars-game.sourceforge.net/;
+    description = "A game about fighting with ships in a 2D space setting";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.astsmtl ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/mars/fix-gluortho2d.patch b/nixpkgs/pkgs/games/mars/fix-gluortho2d.patch
new file mode 100644
index 000000000000..15a5c07060e2
--- /dev/null
+++ b/nixpkgs/pkgs/games/mars/fix-gluortho2d.patch
@@ -0,0 +1,113 @@
+From 33d5affabf8ff84f2c028b9303c6a9e83cc824ad Mon Sep 17 00:00:00 2001
+From: James Cowgill <james410@cowgill.org.uk>
+Date: Sat, 9 May 2015 01:54:14 +0100
+Subject: [PATCH] Remove dependency on GLU - fixes build with SFML 2.3
+
+---
+ premake4.lua           |  8 ++++----
+ src/Shaders/postFX.cpp |  2 +-
+ src/System/window.cpp  | 12 ++++++------
+ 3 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/premake4.lua b/premake4.lua
+index 023dddd..5af4495 100755
+--- a/premake4.lua
++++ b/premake4.lua
+@@ -11,11 +11,11 @@ project "mars"
+     defines { "NDEBUG" }

+     flags   { "Optimize" }

+     if os.get() == "windows" then

+-      links { "sfml-graphics", "sfml-audio", "sfml-system", "sfml-window", "glu32", "opengl32", "fribidi-0", "tag" }

++      links { "sfml-graphics", "sfml-audio", "sfml-system", "sfml-window", "opengl32", "fribidi-0", "tag" }

+     elseif os.get() == "macosx" then

+       links { "sfml-graphics.framework", "sfml-audio.framework", "sfml-system.framework", "sfml-window.framework", "opengl.framework", "fribidi", "tag" }

+     else

+-      links { "GLU", "sfml-graphics", "sfml-audio", "sfml-system", "sfml-window", "fribidi", "tag" }

++      links { "sfml-graphics", "sfml-audio", "sfml-system", "sfml-window", "fribidi", "tag" }

+       libdirs { "/usr/lib", "/usr/local/lib" }

+     end

+     

+@@ -23,10 +23,10 @@ project "mars"
+     defines { "_DEBUG", "DEBUG" }

+     flags   { "Symbols" }

+     if os.get() == "windows" then

+-      links { "sfml-graphics", "sfml-audio", "sfml-system", "sfml-window", "glu32", "opengl32", "fribidi-0", "tag" }

++      links { "sfml-graphics", "sfml-audio", "sfml-system", "sfml-window", "opengl32", "fribidi-0", "tag" }

+     elseif os.get() == "macosx" then

+       links { "sfml-graphics.framework", "sfml-audio.framework", "sfml-system.framework", "sfml-window.framework", "opengl.framework", "fribidi", "tag" }

+     else

+-      links { "GLU", "sfml-graphics", "sfml-audio", "sfml-system", "sfml-window", "fribidi", "tag" }

++      links { "sfml-graphics", "sfml-audio", "sfml-system", "sfml-window", "fribidi", "tag" }

+       libdirs { "/usr/lib", "/usr/local/lib" }

+     end

+diff --git a/src/Shaders/postFX.cpp b/src/Shaders/postFX.cpp
+index 987f411..f767a47 100644
+--- a/src/Shaders/postFX.cpp
++++ b/src/Shaders/postFX.cpp
+@@ -78,7 +78,7 @@ namespace postFX {
+             postFX_.loadFromFile(settings::C_dataPath + "shaders/bump.frag", sf::Shader::Fragment);
+             bumpMap_.create(SPACE_X_RESOLUTION*0.5f, SPACE_Y_RESOLUTION*0.5f);
+             glViewport(0,0,SPACE_X_RESOLUTION*0.5f,SPACE_Y_RESOLUTION*0.5f);
+-            gluOrtho2D(0, SPACE_X_RESOLUTION, SPACE_Y_RESOLUTION, 0);
++            glOrtho(0, SPACE_X_RESOLUTION, SPACE_Y_RESOLUTION, 0, -1, 1);
+             glEnable(GL_BLEND);
+             glMatrixMode(GL_MODELVIEW);
+             postFX_.setParameter("BumpMap", bumpMap_.getTexture());
+diff --git a/src/System/window.cpp b/src/System/window.cpp
+index e9a099a..8e12dcc 100644
+--- a/src/System/window.cpp
++++ b/src/System/window.cpp
+@@ -222,7 +222,7 @@ namespace window {
+         glLoadIdentity();
+ 
+         // Setup translation (according to left-upper corner)
+-        gluOrtho2D(0.f, SPACE_X_RESOLUTION, SPACE_Y_RESOLUTION, 0.f);
++        glOrtho(0.f, SPACE_X_RESOLUTION, SPACE_Y_RESOLUTION, 0.f, -1, 1);
+ 
+         // probably improves performance...
+         glDisable(GL_LIGHTING);
+@@ -247,7 +247,7 @@ namespace window {
+ 
+         glMatrixMode(GL_PROJECTION);
+         glLoadIdentity();
+-        gluOrtho2D(0.f, viewPort_.x_, viewPort_.y_, 0.f);
++        glOrtho(0.f, viewPort_.x_, viewPort_.y_, 0.f, -1, 1);
+         glMatrixMode(GL_MODELVIEW);
+         glLoadIdentity();
+ 
+@@ -255,7 +255,7 @@ namespace window {
+ 
+         glMatrixMode(GL_PROJECTION);
+         glLoadIdentity();
+-        gluOrtho2D(0.f, SPACE_X_RESOLUTION, SPACE_Y_RESOLUTION, 0.f);
++        glOrtho(0.f, SPACE_X_RESOLUTION, SPACE_Y_RESOLUTION, 0.f, -1, 1);
+         glMatrixMode(GL_MODELVIEW);
+         glLoadIdentity();
+     }
+@@ -270,7 +270,7 @@ namespace window {
+             glLoadIdentity();
+             setViewPort();
+ 
+-            gluOrtho2D(0.f, viewPort_.x_, viewPort_.y_, 0.f);
++            glOrtho(0.f, viewPort_.x_, viewPort_.y_, 0.f, -1, 1);
+ 
+             glMatrixMode(GL_MODELVIEW);
+             glLoadIdentity();
+@@ -284,7 +284,7 @@ namespace window {
+             glLoadIdentity();
+             setViewPort();
+ 
+-            gluOrtho2D(0.f, viewPort_.x_, viewPort_.y_, 0.f);
++            glOrtho(0.f, viewPort_.x_, viewPort_.y_, 0.f, -1, 1);
+ 
+             glMatrixMode(GL_MODELVIEW);
+             glLoadIdentity();
+@@ -294,7 +294,7 @@ namespace window {
+         else {
+             glMatrixMode(GL_PROJECTION);
+             glLoadIdentity();
+-            gluOrtho2D(0.f, viewPort_.x_, viewPort_.y_, 0.f);
++            glOrtho(0.f, viewPort_.x_, viewPort_.y_, 0.f, -1, 1);
+             glMatrixMode(GL_MODELVIEW);
+             glLoadIdentity();
+         }
diff --git a/nixpkgs/pkgs/games/mars/unbind_fix.patch b/nixpkgs/pkgs/games/mars/unbind_fix.patch
new file mode 100644
index 000000000000..2aef6eb5cf66
--- /dev/null
+++ b/nixpkgs/pkgs/games/mars/unbind_fix.patch
@@ -0,0 +1,19 @@
+diff --git a/src/System/window.cpp b/src/System/window.cpp
+index e9a099a..e3f6de9 100644
+--- a/src/System/window.cpp
++++ b/src/System/window.cpp
+@@ -308,12 +308,12 @@ namespace window {
+         glEnable(GL_TEXTURE_2D);
+ 
+         if (shader)
+-            shader->bind();
++            sf::Shader::bind(shader);
+ 
+         window_.draw(toBeDrawn, states);
+ 
+         if (shader)
+-            shader->unbind();
++            sf::Shader::bind(NULL);
+ 
+         window_.popGLStates();
+         glPopMatrix();
diff --git a/nixpkgs/pkgs/games/megaglest/default.nix b/nixpkgs/pkgs/games/megaglest/default.nix
new file mode 100644
index 000000000000..de67afe45a94
--- /dev/null
+++ b/nixpkgs/pkgs/games/megaglest/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, cmake, pkgconfig, git, curl, SDL2, xercesc, openal, lua, vlc
+, libjpeg, wxGTK, cppunit, ftgl, glew, libogg, libvorbis, buildEnv, libpng
+, fontconfig, freetype, xorg, makeWrapper, bash, which, gnome3, libGLU, glib
+, fetchFromGitHub
+}:
+let
+  version = "3.13.0";
+  lib-env = buildEnv {
+    name = "megaglest-lib-env";
+    paths = [ SDL2 xorg.libSM xorg.libICE xorg.libX11 xorg.libXext
+      xercesc openal libvorbis lua libjpeg libpng curl fontconfig ftgl freetype
+      stdenv.cc.cc glew libGLU wxGTK ];
+  };
+  path-env = buildEnv {
+    name = "megaglest-path-env";
+    paths = [ bash which gnome3.zenity ];
+  };
+in
+stdenv.mkDerivation {
+  name = "megaglest-${version}";
+
+  src = fetchFromGitHub {
+    owner = "MegaGlest";
+    repo = "megaglest-source";
+    rev = "${version}";
+    fetchSubmodules = true;
+    sha256 = "0fb58a706nic14ss89zrigphvdiwy5s9dwvhscvvgrfvjpahpcws";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake git curl SDL2 xercesc openal lua libpng libjpeg vlc wxGTK
+    glib cppunit fontconfig freetype ftgl glew libogg libvorbis makeWrapper libGLU ];
+
+  configurePhase = ''
+    cmake -DCMAKE_INSTALL_PREFIX=$out \
+          -DBUILD_MEGAGLEST=On \
+          -DBUILD_MEGAGLEST_MAP_EDITOR=On \
+          -DBUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS=On \
+          -DBUILD_MEGAGLEST_MODEL_VIEWER=On
+  '';
+
+  postInstall =  ''
+    for i in $out/bin/*; do
+      wrapProgram $i \
+        --prefix LD_LIBRARY_PATH ":" "${lib-env}/lib" \
+        --prefix PATH ":" "${path-env}/bin"
+    done
+  '';
+
+  meta = {
+    description = "MegaGlest is an entertaining free (freeware and free software) and open source cross-platform 3D real-time strategy (RTS) game";
+    license = stdenv.lib.licenses.gpl3;
+    homepage = http://megaglest.org/;
+    maintainers = [ stdenv.lib.maintainers.matejc ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/meritous/default.nix b/nixpkgs/pkgs/games/meritous/default.nix
new file mode 100644
index 000000000000..21d2ad87dfb8
--- /dev/null
+++ b/nixpkgs/pkgs/games/meritous/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitLab, SDL, SDL_image, SDL_mixer, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "meritous-${version}";
+  version = "1.4";
+
+  src = fetchFromGitLab {
+    owner = "meritous";
+    repo = "meritous";
+    rev = "314af46d84d2746eec4c30a0f63cbc2e651d5303";
+    sha256 = "1hrwm65isg5nwzydyd8gvgl3p36sbj09rsn228sppr8g5p9sm10x";
+  };
+
+  prePatch = ''
+    substituteInPlace Makefile \
+      --replace "CPPFLAGS +=" "CPPFLAGS += -DSAVES_IN_HOME -DDATADIR=\\\"$out/share/meritous\\\"" \
+      --replace sld-config ${SDL.dev}/bin/sdl-config
+    substituteInPlace src/audio.c \
+      --replace "filename[64]" "filename[256]"
+  '';
+
+  buildInputs = [ SDL SDL_image SDL_mixer zlib ];
+
+  installPhase = ''
+    install -m 555 -D meritous $out/bin/meritous
+    mkdir -p $out/share/meritous
+    cp -r dat/* $out/share/meritous/
+  '';
+
+  hardeningDisable = [ "stackprotector" "fortify" ];
+
+  meta = with stdenv.lib; {
+    description = "Action-adventure dungeon crawl game";
+    homepage = http://www.asceai.net/meritous/;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.alexvorobiev ];
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/nixpkgs/pkgs/games/minecraft-server/default.nix b/nixpkgs/pkgs/games/minecraft-server/default.nix
new file mode 100644
index 000000000000..c2f20f53e9a8
--- /dev/null
+++ b/nixpkgs/pkgs/games/minecraft-server/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl, jre }:
+
+let
+  common = { version, sha256, url }:
+    stdenv.mkDerivation (rec {
+      name = "minecraft-server-${version}";
+      inherit version;
+
+      src = fetchurl {
+        inherit url sha256;
+      };
+
+      preferLocalBuild = true;
+
+      installPhase = ''
+        mkdir -p $out/bin $out/lib/minecraft
+        cp -v $src $out/lib/minecraft/server.jar
+
+        cat > $out/bin/minecraft-server << EOF
+        #!/bin/sh
+        exec ${jre}/bin/java \$@ -jar $out/lib/minecraft/server.jar nogui
+        EOF
+
+        chmod +x $out/bin/minecraft-server
+      '';
+
+      phases = "installPhase";
+
+      meta = {
+        description = "Minecraft Server";
+        homepage    = "https://minecraft.net";
+        license     = stdenv.lib.licenses.unfreeRedistributable;
+        platforms   = stdenv.lib.platforms.unix;
+        maintainers = with stdenv.lib.maintainers; [ thoughtpolice tomberek costrouc];
+      };
+    });
+
+in {
+  minecraft-server_1_13_2 = common {
+    version = "1.13.2";
+    url    = "https://launcher.mojang.com/v1/objects/3737db93722a9e39eeada7c27e7aca28b144ffa7/server.jar";
+    sha256 = "13h8dxrrgqa1g6sd7aaw26779hcsqsyjm7xm0sknifn54lnamlzz";
+  };
+
+  minecraft-server_1_13_1 = common {
+    version = "1.13.1";
+    url = "https://launcher.mojang.com/mc/game/1.13.1/server/fe123682e9cb30031eae351764f653500b7396c9/server.jar";
+    sha256 = "1lak29b7dm0w1cmzjn9gyix6qkszwg8xgb20hci2ki2ifrz099if";
+  };
+
+  minecraft-server_1_13_0 = common {
+    version = "1.13.0";
+    url = "https://launcher.mojang.com/mc/game/1.13/server/d0caafb8438ebd206f99930cfaecfa6c9a13dca0/server.jar";
+    sha256 = "1fahqnylxzbvc0fdsqk0x15z40mcc5b7shrckab1qcsdj0kkjvz7";
+  };
+
+  minecraft-server_1_12_2 = common {
+    version = "1.12.2";
+    url = "https://s3.amazonaws.com/Minecraft.Download/versions/1.12.2/minecraft_server.1.12.2.jar";
+    sha256 = "0zhnac6yvkdgdaag0gb0fgrkgizbwrpf7s76yqdiknfswrs947zy";
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/minecraft/default.nix b/nixpkgs/pkgs/games/minecraft/default.nix
new file mode 100644
index 000000000000..32830d6f3d06
--- /dev/null
+++ b/nixpkgs/pkgs/games/minecraft/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper
+, jdk, jre, libpulseaudio, libXxf86vm
+}:
+
+let
+  desktopItem = makeDesktopItem {
+    name = "minecraft";
+    exec = "minecraft";
+    icon = "minecraft";
+    comment = "A sandbox-building game";
+    desktopName = "Minecraft";
+    genericName = "minecraft";
+    categories = "Game;";
+  };
+
+  libPath = stdenv.lib.makeLibraryPath [
+    libpulseaudio
+    libXxf86vm # Needed only for versions <1.13
+  ];
+
+in stdenv.mkDerivation {
+  name = "minecraft-2015-07-24";
+
+  src = fetchurl {
+    url = "https://s3.amazonaws.com/Minecraft.Download/launcher/Minecraft.jar";
+    sha256 = "04pj4l5q0a64jncm2kk45r7nxnxa2z9n110dcxbbahdi6wk0png8";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  unpackPhase = "${jdk}/bin/jar xf $src favicon.png";
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/minecraft
+
+    makeWrapper ${jre}/bin/java $out/bin/minecraft \
+      --add-flags "-jar $out/share/minecraft/minecraft.jar" \
+      --suffix LD_LIBRARY_PATH : ${libPath}
+
+    cp $src $out/share/minecraft/minecraft.jar
+    cp -r ${desktopItem}/share/applications $out/share
+    install -D favicon.png $out/share/icons/hicolor/32x32/apps/minecraft.png
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A sandbox-building game";
+    homepage = https://minecraft.net;
+    maintainers = with maintainers; [ cpages ryantm infinisil ];
+    license = licenses.unfreeRedistributable;
+  };
+}
diff --git a/nixpkgs/pkgs/games/minetest/default.nix b/nixpkgs/pkgs/games/minetest/default.nix
new file mode 100644
index 000000000000..217697e1b104
--- /dev/null
+++ b/nixpkgs/pkgs/games/minetest/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchFromGitHub, cmake, irrlicht, libpng, bzip2, curl, libogg, jsoncpp
+, libjpeg, libXxf86vm, libGLU_combined, openal, libvorbis, xlibsWrapper, sqlite, luajit
+, freetype, gettext, doxygen, ncurses, graphviz, xorg
+, leveldb, postgresql, hiredis
+}:
+
+with stdenv.lib;
+
+let
+  boolToCMake = b: if b then "ON" else "OFF";
+
+  generic = { version, rev ? version, sha256, dataRev ? version, dataSha256, buildClient ? true, buildServer ? false }: let
+    sources = {
+      src = fetchFromGitHub {
+        owner = "minetest";
+        repo = "minetest";
+        inherit rev sha256;
+      };
+      data = fetchFromGitHub {
+        owner = "minetest";
+        repo = "minetest_game";
+        rev = dataRev;
+        sha256 = dataSha256;
+      };
+    };
+  in stdenv.mkDerivation {
+    name = "minetest-${version}";
+
+    src = sources.src;
+
+    cmakeFlags = [
+      "-DBUILD_CLIENT=${boolToCMake buildClient}"
+      "-DBUILD_SERVER=${boolToCMake buildServer}"
+      "-DENABLE_FREETYPE=1"
+      "-DENABLE_GETTEXT=1"
+      "-DENABLE_SYSTEM_JSONCPP=1"
+      "-DIRRLICHT_INCLUDE_DIR=${irrlicht}/include/irrlicht"
+    ] ++ optionals buildClient [
+      "-DOpenGL_GL_PREFERENCE=GLVND"
+    ];
+
+    NIX_CFLAGS_COMPILE = [ "-DluaL_reg=luaL_Reg" ]; # needed since luajit-2.1.0-beta3
+
+    nativeBuildInputs = [ cmake doxygen graphviz ];
+
+    buildInputs = [
+      irrlicht luajit jsoncpp gettext freetype sqlite curl bzip2 ncurses
+    ] ++ optionals buildClient [
+      libpng libjpeg libGLU_combined openal libogg libvorbis xorg.libX11 libXxf86vm
+    ] ++ optional buildServer [
+      leveldb postgresql hiredis
+    ];
+
+    postInstall = ''
+      mkdir -pv $out/share/minetest/games/minetest_game/
+      cp -rv ${sources.data}/* $out/share/minetest/games/minetest_game/
+    '';
+
+    meta = with stdenv.lib; {
+      homepage = http://minetest.net/;
+      description = "Infinite-world block sandbox game";
+      license = licenses.lgpl21Plus;
+      platforms = platforms.linux;
+      maintainers = with maintainers; [ c0dehero fpletz ];
+    };
+  };
+
+  v4 = {
+    version = "0.4.17.1";
+    sha256 = "19sfblgh9mchkgw32n7gdvm7a8a9jxsl9cdlgmxn9bk9m939a2sg";
+    dataSha256 = "1g8iw2pya32ifljbdx6z6rpcinmzm81i9minhi2bi1d500ailn7s";
+  };
+
+  v5 = {
+    version = "5.0.0";
+    sha256 = "1b8n8nzlvmld1hl3zgs1xg4jbc1nsf1m2bn7fi794vdr06s6n911";
+    dataSha256 = "186i1pna2f3fwa2001y8mw5131h0sndhfdxzfqq2gnr1m83sjm0w";
+  };
+
+in {
+  minetestclient_4 = generic (v4 // { buildClient = true; buildServer = false; });
+  minetestserver_4 = generic (v4 // { buildClient = false; buildServer = true; });
+
+  minetestclient_5 = generic (v5 // { buildClient = true; buildServer = false; });
+  minetestserver_5 = generic (v5 // { buildClient = false; buildServer = true; });
+}
diff --git a/nixpkgs/pkgs/games/mnemosyne/default.nix b/nixpkgs/pkgs/games/mnemosyne/default.nix
new file mode 100644
index 000000000000..99c369fdce80
--- /dev/null
+++ b/nixpkgs/pkgs/games/mnemosyne/default.nix
@@ -0,0 +1,66 @@
+{ fetchurl
+, python
+}:
+
+python.pkgs.buildPythonApplication rec {
+  pname = "mnemosyne";
+  version = "2.6.1";
+
+  src = fetchurl {
+    url    = "mirror://sourceforge/project/mnemosyne-proj/mnemosyne/mnemosyne-${version}/Mnemosyne-${version}.tar.gz";
+    sha256 = "0xcwikq51abrlqfn5bv7kcw1ccd3ip0w6cjd5vnnzwnaqwdj8cb3";
+  };
+
+  propagatedBuildInputs = with python.pkgs; [
+    pyqt5
+    matplotlib
+    cherrypy
+    cheroot
+    webob
+    pillow
+  ];
+
+  # No tests/ directrory in tarball
+  doCheck = false;
+
+  prePatch = ''
+    substituteInPlace setup.py --replace /usr $out
+    find . -type f -exec grep -H sys.exec_prefix {} ';' | cut -d: -f1 | xargs sed -i s,sys.exec_prefix,\"$out\",
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share
+    mv $out/${python.sitePackages}/$out/share/locale $out/share
+    rm -r $out/${python.sitePackages}/nix
+  '';
+
+  meta = {
+    homepage = https://mnemosyne-proj.org/;
+    description = "Spaced-repetition software";
+    longDescription = ''
+      The Mnemosyne Project has two aspects:
+
+        * It's a free flash-card tool which optimizes your learning process.
+        * It's a research project into the nature of long-term memory.
+
+      We strive to provide a clear, uncluttered piece of software, easy to use
+      and to understand for newbies, but still infinitely customisable through
+      plugins and scripts for power users.
+
+      ## Efficient learning
+
+      Mnemosyne uses a sophisticated algorithm to schedule the best time for
+      a card to come up for review. Difficult cards that you tend to forget
+      quickly will be scheduled more often, while Mnemosyne won't waste your
+      time on things you remember well.
+
+      ## Memory research
+
+      If you want, anonymous statistics on your learning process can be
+      uploaded to a central server for analysis. This data will be valuable to
+      study the behaviour of our memory over a very long time period. The
+      results will be used to improve the scheduling algorithms behind the
+      software even further.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/games/moon-buggy/default.nix b/nixpkgs/pkgs/games/moon-buggy/default.nix
new file mode 100644
index 000000000000..d0c07b71e2ea
--- /dev/null
+++ b/nixpkgs/pkgs/games/moon-buggy/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, ncurses}:
+
+stdenv.mkDerivation rec {
+  baseName = "moon-buggy";
+  version = "1.0.51";
+  name = "${baseName}-${version}";
+
+  buildInputs = [
+    ncurses
+  ];
+
+  src = fetchurl {
+    url = "http://m.seehuhn.de/programs/${name}.tar.gz";
+    sha256 = "0gyjwlpx0sd728dwwi7pwks4zfdy9rm1w1xbhwg6zip4r9nc2b9m";
+  };
+
+  meta = {
+    description = ''A simple character graphics game where you drive some kind of car across the moon's surface'';
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [stdenv.lib.maintainers.rybern];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = https://www.seehuhn.de/pages/moon-buggy;
+  };
+}
diff --git a/nixpkgs/pkgs/games/mrrescue/default.nix b/nixpkgs/pkgs/games/mrrescue/default.nix
new file mode 100644
index 000000000000..aa4a06bc7d2b
--- /dev/null
+++ b/nixpkgs/pkgs/games/mrrescue/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }:
+
+let
+  pname = "mrrescue";
+  version = "1.02d";
+
+  icon = fetchurl {
+    url = "http://tangramgames.dk/img/thumb/mrrescue.png";
+    sha256 = "1y5ahf0m01i1ch03axhvp2kqc6lc1yvh59zgvgxw4w7y3jryw20k";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "mrrescue";
+    exec = "${pname}";
+    icon = "${icon}";
+    comment = "Arcade-style fire fighting game"; 
+    desktopName = "Mr. Rescue";
+    genericName = "mrrescue";
+    categories = "Game;";
+  };
+
+in 
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/SimonLarsen/${pname}/releases/download/v${version}/${pname}-${version}.love";
+    sha256 = "0kzahxrgpb4vsk9yavy7f8nc34d62d1jqjrpsxslmy9ywax4yfpi";
+  };
+
+  nativeBuildInputs = [ lua love ];
+  buildInputs = [ makeWrapper ];
+
+  phases = "installPhase";
+
+  installPhase =
+  ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/games/lovegames
+
+    cp -v $src $out/share/${pname}.love
+
+    makeWrapper ${love}/bin/love $out/bin/${pname} --add-flags $out/share/games/lovegames/${pname}.love
+
+    chmod +x $out/bin/${pname}
+    mkdir -p $out/share/applications
+    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Arcade-style fire fighting game";
+    maintainers = with maintainers; [ ];
+    platforms = platforms.linux;
+    license = licenses.zlib;
+    downloadPage = http://tangramgames.dk/games/mrrescue;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/mudlet/default.nix b/nixpkgs/pkgs/games/mudlet/default.nix
new file mode 100644
index 000000000000..673efb0e118d
--- /dev/null
+++ b/nixpkgs/pkgs/games/mudlet/default.nix
@@ -0,0 +1,46 @@
+{ fetchurl, unzip, stdenv, makeWrapper, qtbase, yajl, libzip, hunspell
+, boost, lua5_1, luafilesystem, luazip, lrexlib, luasqlite3, qmake }:
+
+stdenv.mkDerivation rec {
+  name = "mudlet-${version}";
+  version = "3.0.0-delta";
+
+  src = fetchurl {
+    url = "https://github.com/Mudlet/Mudlet/archive/Mudlet-${version}.tar.gz";
+    sha256 = "08fhqd323kgz5s17ac5z9dhkjxcmwvcmvhzy0x1vw4rayhijfrd7";
+  };
+
+  nativeBuildInputs = [ makeWrapper qmake ];
+  buildInputs = [
+    unzip qtbase lua5_1 hunspell libzip yajl boost
+    luafilesystem luazip lrexlib luasqlite3
+  ];
+
+  preConfigure = "cd src";
+
+  installPhase = let
+    luaZipPath = "${luazip}/lib/lua/5.1/?.so";
+    luaFileSystemPath = "${luafilesystem}/lib/lua/5.1/?.so";
+    lrexlibPath = "${lrexlib}/lib/lua/5.1/?.so";
+    luasqlitePath = "${luasqlite3}/lib/lua/5.1/?.so";
+  in ''
+    mkdir -pv $out/bin
+    cp mudlet $out
+    cp -r mudlet-lua $out
+
+    makeWrapper $out/mudlet $out/bin/mudlet \
+      --set LUA_CPATH "${luaFileSystemPath};${luaZipPath};${lrexlibPath};${luasqlitePath}" \
+      --run "cd $out";
+  '';
+
+  patches = [ ./libs.patch ];
+
+  meta = {
+    description = "Crossplatform mud client";
+    homepage = http://mudlet.org/;
+    maintainers = [ stdenv.lib.maintainers.wyvie ];
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/games/mudlet/libs.patch b/nixpkgs/pkgs/games/mudlet/libs.patch
new file mode 100644
index 000000000000..45b693828ff2
--- /dev/null
+++ b/nixpkgs/pkgs/games/mudlet/libs.patch
@@ -0,0 +1,13 @@
+--- a/src/src.pro	2014-09-05 12:51:09.000000000 +0400
++++ b/src/src.pro	2014-09-15 16:54:34.812560065 +0400
+@@ -85,8 +85,8 @@
+ # Again according to FHS /usr/local/share/games is the corresponding place for locally built games documentation:
+     isEmpty( DOCDIR ) DOCDIR = $${DATAROOTDIR}/doc/mudlet
+     LIBS += -lpcre \
+-        -llua5.1 \
+-        -lhunspell \
++        -llua \
++        -lhunspell-1.6 \
+         -L/usr/local/lib/ \
+         -lyajl \
+         -lGLU \
diff --git a/nixpkgs/pkgs/games/multimc/default.nix b/nixpkgs/pkgs/games/multimc/default.nix
new file mode 100644
index 000000000000..7e6e034a2b50
--- /dev/null
+++ b/nixpkgs/pkgs/games/multimc/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, cmake, jdk, zlib, file, makeWrapper, xorg, libpulseaudio, qtbase }:
+
+let
+  libpath = with xorg; stdenv.lib.makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm libpulseaudio ];
+in stdenv.mkDerivation rec {
+  name = "multimc-${version}";
+  version = "0.6.4";
+  src = fetchFromGitHub {
+    owner = "MultiMC";
+    repo = "MultiMC5";
+    rev = "0.6.4";
+    sha256 = "0z9mhvfsq9m2cmi0dbrjjc51642r6ppdbb8932236gar5j7w3bc2";
+    fetchSubmodules = true;
+  };
+  nativeBuildInputs = [ cmake file makeWrapper ];
+  buildInputs = [ qtbase jdk zlib ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    mkdir -p $out/share/{applications,pixmaps}
+    cp ../application/resources/multimc/scalable/multimc.svg $out/share/pixmaps
+    cp ../application/package/linux/multimc.desktop $out/share/applications
+    wrapProgram $out/bin/MultiMC --add-flags "-d \$HOME/.multimc/" --set GAME_LIBRARY_PATH /run/opengl-driver/lib:${libpath} --prefix PATH : ${jdk}/bin/
+
+    # As of https://github.com/MultiMC/MultiMC5/blob/7ea1d68244fdae1e7672fb84199ee71e168b31ca/application/package/linux/multimc.desktop,
+    # the desktop icon refers to `multimc`, but the executable actually gets
+    # installed as `MultiMC`. Create compatibility symlink to fix the desktop
+    # icon.
+    ln -sf $out/bin/MultiMC $out/bin/multimc
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://multimc.org/;
+    description = "A free, open source launcher for Minecraft";
+    longDescription = ''
+      Allows you to have multiple, separate instances of Minecraft (each with their own mods, texture packs, saves, etc) and helps you manage them and their associated options with a simple interface.
+    '';
+    platforms = platforms.linux;
+    license = licenses.lgpl21Plus;
+    maintainers = [ maintainers.cleverca22 ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/n2048/default.nix b/nixpkgs/pkgs/games/n2048/default.nix
new file mode 100644
index 000000000000..ae086af184c6
--- /dev/null
+++ b/nixpkgs/pkgs/games/n2048/default.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchurl, ncurses}:
+let
+  s = 
+  rec {
+    baseName = "n2048";
+    version = "0.1";
+    name = "${baseName}-${version}";
+    url = "http://www.dettus.net/n2048/${baseName}_v${version}.tar.gz";
+    sha256 = "184z2rr0rnj4p740qb4mzqr6kgd76ynb5gw9bj8hrfshcxdcg1kk";
+  };
+  buildInputs = [
+    ncurses
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  makeFlags = [
+    ''DESTDIR=$(out)''
+  ];
+  preInstall = ''
+    mkdir -p "$out"/{share/man,bin}
+  '';
+  meta = {
+    inherit (s) version;
+    description = ''Console implementation of 2048 game'';
+    license = stdenv.lib.licenses.bsd2;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = http://www.dettus.net/n2048/;
+  };
+}
diff --git a/nixpkgs/pkgs/games/naev/default.nix b/nixpkgs/pkgs/games/naev/default.nix
new file mode 100644
index 000000000000..d8a4e32faaab
--- /dev/null
+++ b/nixpkgs/pkgs/games/naev/default.nix
@@ -0,0 +1,42 @@
+{ fetchurl, stdenv, SDL, openal, SDL_mixer, libxml2, pkgconfig, libvorbis
+, libpng, libGLU_combined, makeWrapper, zlib, freetype }:
+
+let
+  pname = "naev";
+  version = "0.5.0";
+  name = "${pname}-${version}";
+in
+stdenv.mkDerivation {
+  inherit name;
+
+  srcData = fetchurl {
+    url = "mirror://sourceforge/naev/ndata-${version}";
+    sha256 = "0l05xxbbys3j5h6anvann2vylhp6hnxnzwpcaydaff8fpbbyi6r6";
+  };
+
+  src = fetchurl {
+    url = "mirror://sourceforge/naev/${name}.tar.bz2";
+    sha256 = "0gahi91lmpra0wvxsz49zwwb28q9w2v1s3y7r70252hq6v80kanb";
+  };
+
+  buildInputs = [ SDL SDL_mixer openal libxml2 libvorbis libpng libGLU_combined zlib freetype ];
+
+  nativeBuildInputs = [ pkgconfig makeWrapper ];
+
+  NIX_CFLAGS_COMPILE="-include ${zlib.dev}/include/zlib.h";
+
+  postInstall = ''
+    mkdir -p $out/share/naev
+    cp -v $srcData $out/share/naev/ndata
+    wrapProgram $out/bin/naev --add-flags $out/share/naev/ndata
+  '';
+
+  meta = {
+    description = "2D action/rpg space game";
+    homepage = http://www.naev.org;
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = stdenv.lib.platforms.linux;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/games/nethack/default.nix b/nixpkgs/pkgs/games/nethack/default.nix
new file mode 100644
index 000000000000..56904ae2dfe1
--- /dev/null
+++ b/nixpkgs/pkgs/games/nethack/default.nix
@@ -0,0 +1,151 @@
+{ stdenv, lib, fetchurl, coreutils, ncurses, gzip, flex, bison
+, less, makeWrapper
+, buildPackages
+, x11Mode ? false, qtMode ? false, libXaw, libXext, bdftopcf, mkfontdir, pkgconfig, qt5
+}:
+
+let
+  platform =
+    if stdenv.hostPlatform.isUnix then "unix"
+    else throw "Unknown platform for NetHack: ${stdenv.hostPlatform.system}";
+  unixHint =
+    if x11Mode then "linux-x11"
+    else if qtMode then "linux-qt4"
+    else if stdenv.hostPlatform.isLinux  then "linux"
+    else if stdenv.hostPlatform.isDarwin then "macosx10.10"
+    # We probably want something different for Darwin
+    else "unix";
+  userDir = "~/.config/nethack";
+  binPath = lib.makeBinPath [ coreutils less ];
+
+in stdenv.mkDerivation rec {
+  version = "3.6.1";
+  name = if x11Mode then "nethack-x11-${version}"
+         else if qtMode then "nethack-qt-${version}"
+         else "nethack-${version}";
+
+  src = fetchurl {
+    url = "https://nethack.org/download/3.6.1/nethack-361-src.tgz";
+    sha256 = "1dha0ijvxhx7c9hr0452h93x81iiqsll8bc9msdnp7xdqcfbz32b";
+  };
+
+  buildInputs = [ ncurses ]
+                ++ lib.optionals x11Mode [ libXaw libXext ]
+                ++ lib.optionals qtMode [ gzip qt5.qtbase.bin qt5.qtmultimedia.bin ];
+
+  nativeBuildInputs = [ flex bison ]
+                      ++ lib.optionals x11Mode [ mkfontdir bdftopcf ]
+                      ++ lib.optionals qtMode [
+                           pkgconfig mkfontdir qt5.qtbase.dev
+                           qt5.qtmultimedia.dev makeWrapper
+                           bdftopcf
+                         ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  postPatch = ''
+    sed -e '/^ *cd /d' -i sys/unix/nethack.sh
+    sed \
+      -e 's/^YACC *=.*/YACC = bison -y/' \
+      -e 's/^LEX *=.*/LEX = flex/' \
+      -i sys/unix/Makefile.utl
+    sed \
+      -e 's,^WINQT4LIB =.*,WINQT4LIB = `pkg-config Qt5Gui --libs` \\\
+            `pkg-config Qt5Widgets --libs` \\\
+            `pkg-config Qt5Multimedia --libs`,' \
+      -i sys/unix/Makefile.src
+    sed \
+      -e 's,^CFLAGS=-g,CFLAGS=,' \
+      -e 's,/bin/gzip,${gzip}/bin/gzip,g' \
+      -e 's,^WINTTYLIB=.*,WINTTYLIB=-lncurses,' \
+      -i sys/unix/hints/linux
+    sed \
+      -e 's,^CC=.*$,CC=cc,' \
+      -e 's,^HACKDIR=.*$,HACKDIR=\$(PREFIX)/games/lib/\$(GAME)dir,' \
+      -e 's,^SHELLDIR=.*$,SHELLDIR=\$(PREFIX)/games,' \
+      -e 's,^CFLAGS=-g,CFLAGS=,' \
+      -i sys/unix/hints/macosx10.10
+    sed -e '/define CHDIR/d' -i include/config.h
+    ${lib.optionalString qtMode ''
+    sed \
+      -e 's,^QTDIR *=.*,QTDIR=${qt5.qtbase.dev},' \
+      -e 's,CFLAGS.*QtGui.*,CFLAGS += `pkg-config Qt5Gui --cflags`,' \
+      -e 's,CFLAGS+=-DCOMPRESS.*,CFLAGS+=-DCOMPRESS=\\"${gzip}/bin/gzip\\" \\\
+        -DCOMPRESS_EXTENSION=\\".gz\\",' \
+      -i sys/unix/hints/linux-qt4
+    ''}
+    ${lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform)
+    # If we're cross-compiling, replace the paths to the data generation tools
+    # with the ones from the build platform's nethack package, since we can't
+    # run the ones we've built here.
+    ''
+    ${buildPackages.perl}/bin/perl -p \
+      -e 's,[a-z./]+/(makedefs|dgn_comp|lev_comp|dlb)(?!\.),${buildPackages.nethack}/libexec/nethack/\1,g' \
+      -i sys/unix/Makefile.*
+    ''}
+    sed -i -e '/rm -f $(MAKEDEFS)/d' sys/unix/Makefile.src
+  '';
+
+  configurePhase = ''
+    pushd sys/${platform}
+    ${lib.optionalString (platform == "unix") ''
+      sh setup.sh hints/${unixHint}
+    ''}
+    popd
+  '';
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    mkdir -p $out/games/lib/nethackuserdir
+    for i in xlogfile logfile perm record save; do
+      mv $out/games/lib/nethackdir/$i $out/games/lib/nethackuserdir
+    done
+
+    mkdir -p $out/bin
+    cat <<EOF >$out/bin/nethack
+    #! ${stdenv.shell} -e
+    PATH=${binPath}:\$PATH
+
+    if [ ! -d ${userDir} ]; then
+      mkdir -p ${userDir}
+      cp -r $out/games/lib/nethackuserdir/* ${userDir}
+      chmod -R +w ${userDir}
+    fi
+
+    RUNDIR=\$(mktemp -d)
+
+    cleanup() {
+      rm -rf \$RUNDIR
+    }
+    trap cleanup EXIT
+
+    cd \$RUNDIR
+    for i in ${userDir}/*; do
+      ln -s \$i \$(basename \$i)
+    done
+    for i in $out/games/lib/nethackdir/*; do
+      ln -s \$i \$(basename \$i)
+    done
+    $out/games/nethack
+    EOF
+    chmod +x $out/bin/nethack
+    ${lib.optionalString x11Mode "mv $out/bin/nethack $out/bin/nethack-x11"}
+    ${lib.optionalString qtMode "mv $out/bin/nethack $out/bin/nethack-qt"}
+    install -Dm 555 util/{makedefs,dgn_comp,lev_comp} -t $out/libexec/nethack/
+    ${lib.optionalString (!(x11Mode || qtMode)) "install -Dm 555 util/dlb -t $out/libexec/nethack/"}
+  '';
+
+  postFixup = lib.optionalString qtMode ''
+    wrapProgram $out/bin/nethack-qt \
+      --prefix QT_PLUGIN_PATH : "${qt5.qtbase}/${qt5.qtbase.qtPluginPrefix}"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Rogue-like game";
+    homepage = http://nethack.org/;
+    license = "nethack";
+    platforms = if x11Mode then platforms.linux else platforms.unix;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/neverball/default.nix b/nixpkgs/pkgs/games/neverball/default.nix
new file mode 100644
index 000000000000..50f96a7ee2c8
--- /dev/null
+++ b/nixpkgs/pkgs/games/neverball/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, SDL2, libGL, libpng, libjpeg, SDL2_ttf, libvorbis, gettext
+, physfs }:
+
+stdenv.mkDerivation rec {
+  name = "neverball-1.6.0";
+  src = fetchurl {
+    url = "https://neverball.org/${name}.tar.gz";
+    sha256 = "184gm36c6p6vaa6gwrfzmfh86klhnb03pl40ahsjsvprlk667zkk";
+  };
+
+  buildInputs = [ libpng SDL2 libGL libjpeg SDL2_ttf libvorbis gettext physfs ];
+
+  dontPatchElf = true;
+
+  patchPhase = ''
+    sed -i -e 's@\./data@'$out/share/neverball/data@ share/base_config.h Makefile
+    sed -i -e 's@\./locale@'$out/share/neverball/locale@ share/base_config.h Makefile
+    sed -i -e 's@-lvorbisfile@-lvorbisfile -lX11 -lgcc_s@' Makefile
+  '';
+
+  # The map generation code requires a writable HOME
+  preConfigure = "export HOME=$TMPDIR";
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/neverball
+    cp -R data locale $out/share/neverball
+    cp neverball $out/bin
+    cp neverputt $out/bin
+    cp mapc $out/bin
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = https://neverball.org/;
+    description = "Tilt the floor to roll a ball";
+    license = "GPL";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/newtonwars/default.nix b/nixpkgs/pkgs/games/newtonwars/default.nix
new file mode 100644
index 000000000000..c806dfa5b806
--- /dev/null
+++ b/nixpkgs/pkgs/games/newtonwars/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, makeWrapper, freeglut, libGLU_combined }:
+
+stdenv.mkDerivation rec {
+  name = "newtonwars-${version}";
+  version = "20150609";
+
+  src = fetchFromGitHub {
+    owner = "Draradech";
+    repo = "NewtonWars";
+    rev = "98bb99a1797fd0073e0fd25ef9218468d3a9f7cb";
+    sha256 = "0g63fwfcdxxlnqlagj1fb8ngm385gmv8f7p8b4r1z5cny2znxdvs";
+  };
+
+  buildInputs = [ makeWrapper freeglut libGLU_combined ];
+
+  patchPhase = ''
+    sed -i "s;font24.raw;$out/share/font24.raw;g" display.c
+  '';
+
+  buildPhase = "sh build-linux.sh";
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share
+    cp nw $out/bin
+    cp font24.raw $out/share
+
+    wrapProgram $out/bin/nw \
+      --prefix LD_LIBRARY_PATH ":" ${freeglut}/lib \
+      --prefix LD_LIBRARY_PATH ":" ${libGLU_combined}/lib
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A space battle game with gravity as the main theme";
+    maintainers = with maintainers; [ pSub ];
+    platforms = platforms.linux;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/games/nexuiz/default.nix b/nixpkgs/pkgs/games/nexuiz/default.nix
new file mode 100644
index 000000000000..39b3ae36f506
--- /dev/null
+++ b/nixpkgs/pkgs/games/nexuiz/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, fetchurl
+, # required for both
+  unzip, zlib, curl, libjpeg, libpng, libvorbis, libtheora
+, libogg, libmodplug
+, # glx
+  libX11, libGLU_combined, libXpm, libXext, libXxf86vm, libXxf86dga, alsaLib
+, # sdl
+  SDL
+}:
+
+let
+  version = "2.5.2";
+
+  version_short = stdenv.lib.replaceChars [ "." ] [ "" ] "${version}";
+in stdenv.mkDerivation {
+  name = "nexuiz-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/nexuiz/nexuiz-${version_short}.zip";
+    sha256 = "0010jrxc68qqinkvdh1qn2b8z3sa5v1kcd8d1m4llp3pr6y7xqm5";
+  };
+
+  buildInputs = [
+    # required for both
+    unzip
+    # glx
+    libX11 libGLU_combined libXpm libXext libXxf86vm libXxf86dga alsaLib
+    # sdl
+    SDL
+  ];
+
+  postUnpack = ''
+    cd Nexuiz/sources/
+    unzip enginesource*.zip
+    cd ../../
+  '';
+
+  NIX_LDFLAGS = ''
+    -rpath ${zlib.out}/lib
+    -rpath ${curl.out}/lib
+    -rpath ${libjpeg.out}/lib
+    -rpath ${libpng.out}/lib
+    -rpath ${libvorbis.out}/lib
+    -rpath ${libtheora.out}/lib
+    -rpath ${libogg.out}/lib
+    -rpath ${libmodplug.out}/lib
+  '';
+
+  buildPhase = ''
+    cd sources/darkplaces/
+    DP_FS_BASEDIR="$out/share/nexuiz"
+    make DP_FS_BASEDIR=$DP_FS_BASEDIR cl-release
+    make DP_FS_BASEDIR=$DP_FS_BASEDIR sdl-release
+    make DP_FS_BASEDIR=$DP_FS_BASEDIR sv-release
+    cd ../../
+  '';
+
+  installPhase = ''
+    mkdir -pv "$out/bin/"
+    cp -v sources/darkplaces/darkplaces-glx "$out/bin/nexuiz-glx"
+    cp -v sources/darkplaces/darkplaces-sdl "$out/bin/nexuiz-sdl"
+    cp -v sources/darkplaces/darkplaces-dedicated "$out/bin/nexuiz-dedicated"
+    mkdir -pv "$out/share/nexuiz/"
+    cp -rv data/ "$out/share/nexuiz/"
+    ln -s "$out/bin/nexuiz-sdl" "$out/bin/nexuiz"
+  '';
+
+  dontPatchELF = true;
+
+  meta = {
+    description = "A free fast-paced first-person shooter";
+    homepage = http://www.alientrap.org/games/nexuiz;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/njam/default.nix b/nixpkgs/pkgs/games/njam/default.nix
new file mode 100644
index 000000000000..bcbbc9e7756b
--- /dev/null
+++ b/nixpkgs/pkgs/games/njam/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, SDL, SDL_image, SDL_mixer, SDL_net }:
+
+stdenv.mkDerivation rec {
+  name = "njam-1.25";
+
+  src = fetchurl {
+    url = mirror://sourceforge/njam/njam-1.25-src.tar.gz;
+    sha256 = "0ysvqw017xkvddj957pdfmbmji7qi20nyr7f0zxvcvm6c7d3cc7s";
+  };
+
+  preBuild = ''
+    rm src/*.o
+  '';
+
+  buildInputs = [ SDL SDL_image SDL_mixer SDL_net ];
+
+  hardeningDisable = [ "format" ];
+
+  patches = [ ./logfile.patch ];
+
+  meta = {
+    homepage = http://trackballs.sourceforge.net/;
+    description = "Cross-platform pacman-like game";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/njam/logfile.patch b/nixpkgs/pkgs/games/njam/logfile.patch
new file mode 100644
index 000000000000..45fd82a0845b
--- /dev/null
+++ b/nixpkgs/pkgs/games/njam/logfile.patch
@@ -0,0 +1,22 @@
+diff --git a/src/njamedit.cpp b/src/njamedit.cpp
+index a895ca9..38477db 100644
+--- a/src/njamedit.cpp
++++ b/src/njamedit.cpp
+@@ -114,7 +114,7 @@ void NjamEngine::LevelEditor()
+ 				key = SDLK_a;
+ 			else if (CheckForSave())
+ 			{
+-				LogFile::LogFile("Saving maps");
++				LogFile("Saving maps");
+ 				m_Maps.Save(filename);
+ 				level_type_was = level_type;
+ 				changed = false;
+@@ -139,7 +139,7 @@ void NjamEngine::LevelEditor()
+ 						"levels/%s.%s",
+ #endif					
+ 						filename, types[level_type]);
+-					LogFile::LogFile("Saving maps");
++					LogFile("Saving maps");
+ 					m_Maps.Save(buf);
+ 					level_type_was = level_type;
+ 					changed = false;
diff --git a/nixpkgs/pkgs/games/odamex/default.nix b/nixpkgs/pkgs/games/odamex/default.nix
new file mode 100644
index 000000000000..c70744ea2991
--- /dev/null
+++ b/nixpkgs/pkgs/games/odamex/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, cmake, fetchurl, pkgconfig, SDL, SDL_mixer, SDL_net }:
+
+stdenv.mkDerivation rec {
+  name = "odamex-0.7.0";
+  src = fetchurl {
+    url = mirror://sourceforge/odamex/odamex-src-0.7.0.tar.bz2;
+    sha256 = "0cb6p58yv55kdyfj7s9n9xcwpvxrj8nyc6brw9jvwlc5n4y3cd5a";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake SDL SDL_mixer SDL_net ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://odamex.net/;
+    description = "A client/server port for playing old-school Doom online";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ MP2E ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/games/oilrush/default.nix b/nixpkgs/pkgs/games/oilrush/default.nix
new file mode 100644
index 000000000000..1d56d86f5301
--- /dev/null
+++ b/nixpkgs/pkgs/games/oilrush/default.nix
@@ -0,0 +1,78 @@
+{ stdenv, config, fetchurl, libX11, libXext, libXinerama, libXrandr
+, libXrender, fontconfig, freetype, openal, runtimeShell }:
+
+let inherit (stdenv.lib) makeLibraryPath; in
+
+stdenv.mkDerivation {
+  name = "oilrush";
+  src =
+  let
+    url = config.oilrush.url or null;
+    sha256 = config.oilrush.sha256 or null;
+  in
+    assert url != null && sha256 != null;
+    fetchurl { inherit url sha256; };
+  shell = stdenv.shell;
+  arch = if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
+         else if stdenv.hostPlatform.system == "i686-linux" then "x86"
+         else "";
+  unpackPhase = ''
+    mkdir oilrush
+    cd oilrush
+    "$shell" "$src" --tar xf
+  '';
+  patchPhase = ''
+    cd bin
+    for f in launcher_$arch libQtCoreUnigine_$arch.so.4 OilRush_$arch
+    do
+      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $f
+    done
+    patchelf --set-rpath ${stdenv.cc.cc.lib}/lib64:${makeLibraryPath [ stdenv.cc.cc libX11 libXext libXrender fontconfig freetype ]}\
+             launcher_$arch
+    patchelf --set-rpath ${stdenv.cc.cc.lib}/lib64:${stdenv.cc.cc.lib}/lib\
+             libNetwork_$arch.so
+    patchelf --set-rpath ${stdenv.cc.cc.lib}/lib64:${stdenv.cc.cc.lib}/lib\
+             libQtCoreUnigine_$arch.so.4
+    patchelf --set-rpath ${stdenv.cc.cc.lib}/lib64:${makeLibraryPath [ stdenv.cc.cc libX11 libXext libXrender fontconfig freetype ]}\
+             libQtGuiUnigine_$arch.so.4
+    patchelf --set-rpath ${stdenv.cc.cc.lib}/lib64:${stdenv.cc.cc.lib}/lib\
+             libQtNetworkUnigine_$arch.so.4
+    patchelf --set-rpath ${stdenv.cc.cc.lib}/lib64:${makeLibraryPath [ stdenv.cc.cc libX11 libXext libXrender fontconfig freetype ]}\
+             libQtWebKitUnigine_$arch.so.4
+    patchelf --set-rpath ${stdenv.cc.cc.lib}/lib64:${stdenv.cc.cc.lib}/lib\
+             libQtXmlUnigine_$arch.so.4
+    patchelf --set-rpath ${stdenv.cc.cc.lib}/lib64:${stdenv.cc.cc.lib}/lib\
+             libRakNet_$arch.so
+    patchelf --set-rpath ${stdenv.cc.cc.lib}/lib64:${makeLibraryPath [ stdenv.cc.cc libX11 libXext libXinerama libXrandr ]}\
+             libUnigine_$arch.so
+    patchelf --set-rpath ${stdenv.cc.cc.lib}/lib64:${makeLibraryPath [ stdenv.cc.cc libX11 libXext libXinerama libXrandr ]}\
+             OilRush_$arch
+  '';
+  installPhase = ''
+    cd ..
+    mkdir -p "$out/opt/oilrush"
+    cp -r * "$out/opt/oilrush"
+    mkdir -p "$out/bin"
+    cat << EOF > "$out/bin/oilrush"
+    #!${runtimeShell}
+    LD_LIBRARY_PATH=.:${makeLibraryPath [ openal ]}:\$LD_LIBRARY_PATH
+    cd "$out/opt/oilrush"
+    exec ./launcher_$arch.sh "\$@"
+    EOF
+    chmod +x "$out/bin/oilrush"
+  '';
+  meta = {
+    description = "A naval strategy game";
+    longDescription = ''
+      Oil Rush is a real-time naval strategy game based on group control. It
+      combines the strategic challenge of a classical RTS with the sheer fun
+      of Tower Defense.
+    '';
+    homepage = http://oilrush-game.com/;
+    license = stdenv.lib.licenses.unfree;
+    #maintainers = with stdenv.lib.maintainers; [ astsmtl ];
+    platforms = stdenv.lib.platforms.linux;
+    hydraPlatforms = [];
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/onscripter-en/default.nix b/nixpkgs/pkgs/games/onscripter-en/default.nix
new file mode 100644
index 000000000000..cc337f58f735
--- /dev/null
+++ b/nixpkgs/pkgs/games/onscripter-en/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl
+, libpng, libjpeg, libogg, libvorbis, freetype, smpeg
+, SDL, SDL_image, SDL_mixer, SDL_ttf }:
+
+
+stdenv.mkDerivation rec {
+  name = "onscripter-en-20110930";
+
+  src = fetchurl {
+    url = "http://unclemion.com/dev/attachments/download/36/${name}-src.tar.bz2";
+    sha256 = "1kzm6d894c0ihgkwhd03x3kaqqz0sb6kf0r86xrrz12y309zfam6";
+  };
+
+  buildInputs = [ libpng libjpeg libogg libvorbis freetype smpeg
+                  SDL SDL_image SDL_mixer SDL_ttf
+                ];
+
+  configureFlags = [ "--no-werror" ];
+
+  # Without this libvorbisfile.so is not getting linked properly for some reason.
+  NIX_CFLAGS_LINK = [ "-lvorbisfile" ];
+
+  preBuild = ''
+    sed -i 's/.dll//g' Makefile
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Japanese visual novel scripting engine";
+    homepage = http://unclemion.com/onscripter/;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/openarena/default.nix b/nixpkgs/pkgs/games/openarena/default.nix
new file mode 100644
index 000000000000..8ac020f3ce09
--- /dev/null
+++ b/nixpkgs/pkgs/games/openarena/default.nix
@@ -0,0 +1,42 @@
+{ fetchurl, makeWrapper, patchelf, pkgs, stdenv, SDL, libglvnd, libogg, libvorbis, curl, openal }:
+
+stdenv.mkDerivation rec {
+  name = "openarena-${version}";
+  version = "0.8.8";
+
+  src = fetchurl {
+    name = "openarena.zip";
+    url = "http://openarena.ws/request.php?4";
+    sha256 = "0jmc1cmdz1rcvqc9ilzib1kilpwap6v0d331l6q53wsibdzsz3ss";
+  };
+
+  nativeBuildInputs = [ pkgs.unzip patchelf makeWrapper];
+
+  installPhase = let
+    gameDir = "$out/openarena-$version";
+    interpreter = "$(< \"$NIX_CC/nix-support/dynamic-linker\")";
+    libPath = stdenv.lib.makeLibraryPath [ SDL libglvnd libogg libvorbis curl openal ];
+  in ''
+    mkdir -pv $out/bin
+    cd $out
+    unzip $src
+
+    ${if stdenv.hostPlatform.system == "x86_64-linux" then ''
+      patchelf --set-interpreter "${interpreter}" "${gameDir}/openarena.x86_64"
+      makeWrapper "${gameDir}/openarena.x86_64" "$out/bin/openarena" \
+        --prefix LD_LIBRARY_PATH : "${libPath}"
+    '' else ''
+      patchelf --set-interpreter "${interpreter}" "${gameDir}/openarena.i386"
+      makeWrapper "${gameDir}/openarena.i386" "$out/bin/openarena" \
+        --prefix LD_LIBRARY_PATH : "${libPath}"
+    ''}
+  '';
+
+  meta = {
+    description = "Crossplatform openarena client";
+    homepage = http://openarena.ws/;
+    maintainers = [ stdenv.lib.maintainers.wyvie ];
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/games/openclonk/default.nix b/nixpkgs/pkgs/games/openclonk/default.nix
new file mode 100644
index 000000000000..fa0411196318
--- /dev/null
+++ b/nixpkgs/pkgs/games/openclonk/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, cmake, pkgconfig
+, SDL2, libvorbis, libogg, libjpeg, libpng, freetype, glew, tinyxml, openal
+, freealut, readline, gcc-unwrapped
+, enableSoundtrack ? false # Enable the "Open Clonk Soundtrack - Explorers Journey" by David Oerther
+}:
+
+let
+  soundtrack_src = fetchurl {
+    url = "http://www.openclonk.org/download/Music.ocg";
+    sha256 = "1ckj0dlpp5zsnkbb5qxxfxpkiq76jj2fgj91fyf3ll7n0gbwcgw5";
+  };
+in stdenv.mkDerivation rec {
+  version = "8.1";
+  name = "openclonk-${version}";
+
+  src = fetchurl {
+    url = "https://www.openclonk.org/builds/release/8.1/openclonk-${version}-src.tar.bz2";
+    sha256 = "0imkqjp8lww5p0cnqf4k4mb2v682mnsas63qmiz17rspakr7fxik";
+  };
+
+  postInstall = ''
+    mv -v $out/games/openclonk $out/bin/
+  '' + stdenv.lib.optionalString enableSoundtrack ''
+    ln -sv ${soundtrack_src} $out/share/games/openclonk/Music.ocg
+  '';
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [
+    SDL2 libvorbis libogg libjpeg libpng freetype glew tinyxml openal freealut
+    readline
+  ];
+
+  cmakeFlags = [ "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar" "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib" ];
+
+  cmakeBuildType = "RelWithDebInfo";
+
+  meta = with stdenv.lib; {
+    description = "Free multiplayer action game in which you control clonks, small but witty and nimble humanoid beings";
+    homepage = https://www.openclonk.org;
+    license = if enableSoundtrack then licenses.unfreeRedistributable else licenses.isc;
+    maintainers = with maintainers; [ lheckemann ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/opendune/default.nix b/nixpkgs/pkgs/games/opendune/default.nix
new file mode 100644
index 000000000000..0f045faf371e
--- /dev/null
+++ b/nixpkgs/pkgs/games/opendune/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, SDL, SDL_image, SDL_mixer }:
+
+# - set the opendune configuration at ~/.config/opendune/opendune.ini:
+#     [opendune]
+#     datadir=/path/to/opendune-data
+# - download dune2 into [datadir] http://www.bestoldgames.net/eng/old-games/dune-2.php
+
+stdenv.mkDerivation rec {
+  name = "opendune-${version}";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "OpenDUNE";
+    repo = "OpenDUNE";
+    rev = version;
+    sha256 = "15rvrnszdy3db8s0dmb696l4isb3x2cpj7wcl4j09pdi59pc8p37";
+  };
+
+  buildInputs = [ SDL SDL_image SDL_mixer ];
+
+  installPhase = ''
+    install -m 555 -D bin/opendune $out/bin/opendune
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Dune, Reinvented";
+    homepage = https://github.com/OpenDUNE/OpenDUNE;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.nand0p ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/opendungeons/cmakepaths.patch b/nixpkgs/pkgs/games/opendungeons/cmakepaths.patch
new file mode 100644
index 000000000000..bcffd7a22bcf
--- /dev/null
+++ b/nixpkgs/pkgs/games/opendungeons/cmakepaths.patch
@@ -0,0 +1,17 @@
+--- ../CMakeLists.txt	
++++ ../CMakeLists.txt	
+@@ -31,12 +31,12 @@
+     set(OD_PLUGINS_CFG_PATH ".")
+ else()
+     # Set binary and data install locations if we want to use the installer
+-    set(OD_BIN_PATH ${CMAKE_INSTALL_PREFIX}/games CACHE PATH "Absolute path to the game binary directory")
++    set(OD_BIN_PATH ${CMAKE_INSTALL_PREFIX}/bin CACHE PATH "Absolute path to the game binary directory")
+     set(OD_DATA_PATH ${CMAKE_INSTALL_PREFIX}/share/games/${PROJECT_NAME} CACHE PATH "Absolute path to the game data directory")
+     set(OD_SHARE_PATH ${CMAKE_INSTALL_PREFIX}/share CACHE PATH "Absolute path to the shared data directory (desktop file, icons, etc.)")
+     # Set the plugins.cfg file path to a common but architecture-dependent location.
+     # Because the plugins.cfg Ogre plugins path path may vary depending on the architecture used.
+-    set(OD_PLUGINS_CFG_PATH /etc/${PROJECT_NAME} CACHE PATH "Absolute path to the Ogre plugins.cfg file")
++    set(OD_PLUGINS_CFG_PATH ${CMAKE_INSTALL_PREFIX}/etc/${PROJECT_NAME} CACHE PATH "Absolute path to the Ogre plugins.cfg file")
+ endif()
+ 
+ if(NOT MSVC)
diff --git a/nixpkgs/pkgs/games/opendungeons/default.nix b/nixpkgs/pkgs/games/opendungeons/default.nix
new file mode 100644
index 000000000000..3c4e85a91e5a
--- /dev/null
+++ b/nixpkgs/pkgs/games/opendungeons/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, ogre, cegui, boost, sfml, openal, cmake, ois, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "opendungeons-${version}";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "OpenDungeons";
+    repo = "OpenDungeons";
+    rev = version;
+    sha256 = "0nipb2h0gn628yxlahjgnfhmpfqa19mjdbj3aqabimdfqds9pryh";
+  };
+
+  patches = [ ./cmakepaths.patch ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake ogre cegui boost sfml openal ois ];
+  NIX_LDFLAGS = [
+    "-lpthread"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "An open source, real time strategy game sharing game elements with the Dungeon Keeper series and Evil Genius.";
+    homepage = https://opendungeons.github.io;
+    license = [ licenses.gpl3Plus licenses.zlib licenses.mit licenses.cc-by-sa-30 licenses.cc0 licenses.ofl licenses.cc-by-30 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/openjk/default.nix b/nixpkgs/pkgs/games/openjk/default.nix
new file mode 100644
index 000000000000..a03599b50895
--- /dev/null
+++ b/nixpkgs/pkgs/games/openjk/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, cmake, libjpeg, zlib, libpng, libGL, SDL2 }:
+
+let
+  jamp = makeDesktopItem rec {
+    name = "jamp";
+    exec = name;
+    icon = "OpenJK_Icon_128";
+    comment = "Open Source Jedi Academy game released by Raven Software";
+    desktopName = "Jedi Academy (Multi Player)";
+    genericName = "Jedi Academy";
+    categories = "Game;";
+  };
+  jasp = makeDesktopItem rec {
+    name = "jasp";
+    exec = name;
+    icon = "OpenJK_Icon_128";
+    comment = "Open Source Jedi Academy game released by Raven Software";
+    desktopName = "Jedi Academy (Single Player)";
+    genericName = "Jedi Academy";
+    categories = "Game;";
+  };
+in stdenv.mkDerivation rec {
+  name = "OpenJK-2018-09-17";
+
+  src = fetchFromGitHub {
+    owner = "JACoders";
+    repo = "OpenJK";
+    rev = "cc4094c8fa989663eb8087b33d97bb2749295b9f";
+    sha256 = "1fzijlf4izpm6n92cwv951c10nb18pg5zhc5xx7pw3i4sy8h9nyk";
+  };
+
+  dontAddPrefix = true;
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ makeWrapper cmake ];
+  buildInputs = [ libjpeg zlib libpng libGL SDL2 ];
+
+  # move from $out/JediAcademy to $out/opt/JediAcademy
+  preConfigure = ''
+    cmakeFlagsArray=("-DCMAKE_INSTALL_PREFIX=$out/opt")
+  '';
+
+  postInstall = ''
+    mkdir -p $out/bin $out/share/applications $out/share/icons/hicolor/128x128/apps
+    prefix=$out/opt/JediAcademy
+
+    makeWrapper $prefix/openjk.* $out/bin/jamp --run "cd $prefix"
+    makeWrapper $prefix/openjk_sp.* $out/bin/jasp --run "cd $prefix"
+    makeWrapper $prefix/openjkded.* $out/bin/openjkded --run "cd $prefix"
+
+    cp $src/shared/icons/OpenJK_Icon_128.png $out/share/icons/hicolor/128x128/apps
+    ln -s ${jamp}/share/applications/* $out/share/applications
+    ln -s ${jasp}/share/applications/* $out/share/applications
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An open-source engine for Star Wars Jedi Academy game";
+    homepage = https://github.com/JACoders/OpenJK;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ gnidorah ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/openlierox/default.nix b/nixpkgs/pkgs/games/openlierox/default.nix
new file mode 100644
index 000000000000..4b1385f3e10d
--- /dev/null
+++ b/nixpkgs/pkgs/games/openlierox/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, libX11, xorgproto, gd, SDL, SDL_image, SDL_mixer, zlib
+, libxml2, pkgconfig, curl, cmake, libzip }:
+
+stdenv.mkDerivation {
+  name = "openlierox-0.58rc3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/openlierox/OpenLieroX_0.58_rc3.src.tar.bz2";
+    sha256 = "1k35xppfqi3qfysv81xq3hj4qdy9j2ciinbkfdcmwclcsf3nh94z";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2 -std=c++98 -Wno-error";
+
+  # The breakpad fails to build on x86_64, and it's only to report bugs upstream
+  cmakeFlags = [ "-DBREAKPAD=0" ];
+
+  preConfigure = ''
+    cmakeFlags="$cmakeFlags -DSYSTEM_DATA_DIR=$out/share"
+  '';
+
+  patchPhase = ''
+    sed -i s,curl/types.h,curl/curl.h, include/HTTP.h src/common/HTTP.cpp
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/OpenLieroX
+    cp bin/* $out/bin
+    cp -R ../share/gamedir/* $out/share/OpenLieroX
+  '';
+
+  buildInputs = [ libX11 xorgproto gd SDL SDL_image SDL_mixer zlib libxml2
+    pkgconfig curl cmake libzip ];
+
+  meta = {
+    homepage = http://openlierox.net;
+    description = "Real-time game with Worms-like shooting";
+    license = stdenv.lib.licenses.lgpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/openmw/default.nix b/nixpkgs/pkgs/games/openmw/default.nix
new file mode 100644
index 000000000000..47527a13b7b7
--- /dev/null
+++ b/nixpkgs/pkgs/games/openmw/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, qtbase, openscenegraph, mygui, bullet, ffmpeg
+, boost, cmake, SDL2, unshield, openal, libXt, pkgconfig }:
+
+let
+  openscenegraph_ = openscenegraph.overrideDerivation (self: {
+    src = fetchFromGitHub {
+      owner = "OpenMW";
+      repo = "osg";
+      rev = "2b4c8e37268e595b82da4b9aadd5507852569b87";
+      sha256 = "0admnllxic6dcpic0h100927yw766ab55dix002vvdx36i6994jb";
+    };
+  });
+in stdenv.mkDerivation rec {
+  version = "0.44.0";
+  name = "openmw-${version}";
+
+  src = fetchFromGitHub {
+    owner = "OpenMW";
+    repo = "openmw";
+    rev = name;
+    sha256 = "0rxkw0bzag7qffifg28dyyga47aaaf5ziiccpv7p8yax1wglvymh";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake boost ffmpeg bullet mygui openscenegraph_ SDL2 unshield openal libXt qtbase ];
+
+  cmakeFlags = [
+    "-DDESIRED_QT_VERSION:INT=5"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "An unofficial open source engine reimplementation of the game Morrowind";
+    homepage = http://openmw.org;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/openmw/tes3mp.nix b/nixpkgs/pkgs/games/openmw/tes3mp.nix
new file mode 100644
index 000000000000..a3ad0e637e5a
--- /dev/null
+++ b/nixpkgs/pkgs/games/openmw/tes3mp.nix
@@ -0,0 +1,102 @@
+{ stdenv, fetchFromGitHub, qtbase, openscenegraph, mygui, bullet, ffmpeg, boost, cmake, SDL2, unshield, openal
+, libXt, writeScriptBin, makeWrapper, ncurses, libGL, luajit }:
+
+let
+  version = "0.7.0-alpha";
+  TES3MP = fetchFromGitHub {
+    owner = "TES3MP";
+    repo = "openmw-tes3mp";
+    rev = version;
+    sha256 = "012f50f9jd29qcdww2vk4habg6pmxvxl0q6rrjq8xchb0566712q";
+  };
+  CallFF = fetchFromGitHub {
+    owner = "Koncord";
+    repo = "CallFF";
+    rev = "da94b59ffe95d45bf98b9264e3d1279c9f6ebb6b";
+    sha256 = "10wgiqmknh0av968c6r74n5n2izxsx8qawfrab57kkmj9h0zp0pm";
+  };
+  CrabNet = fetchFromGitHub {
+    owner = "TES3MP";
+    repo = "CrabNet";
+    rev = "ab1306050fe0f5b0f9c4f56893a79e56a9459567";
+    sha256 = "03q76pjv9mdi7w832b23q1mj4r2wb0hsnh4kpvwai607g04l0pp0";
+  };
+  CoreScripts = fetchFromGitHub {
+    owner = "TES3MP";
+    repo = "CoreScripts";
+    rev = "1e9f69f98051b2639b18203f989ffbd0a4b427ea";
+    sha256 = "03ysi7rh0k78kv4slvmkxpymxvdpr8b6hwr1lvjdgq7rq0ljy0lg";
+  };
+
+  fakegit = writeScriptBin "git" ''
+    #! ${stdenv.shell}
+  '';
+in stdenv.mkDerivation rec {
+  inherit version;
+  name = "tes3mp-${version}";
+
+  src = fetchFromGitHub {
+    owner = "GrimKriegor";
+    repo = "TES3MP-deploy";
+    rev = "1dd78a3e2cf9f4fe85bf7ca9c393251968a9c325";
+    sha256 = "1bp9c4kds9q0xhbn4sxb7n0f6rvb45gzx7ljdgc56wz4j5rfi3xn";
+  };
+
+  dontUseCmakeConfigure = true;
+
+  nativeBuildInputs = [ cmake makeWrapper fakegit ];
+  buildInputs = [ boost ffmpeg qtbase bullet mygui openscenegraph SDL2 unshield openal libXt
+    ncurses libGL luajit ];
+
+  buildPhase = ''
+    mkdir dependencies keepers
+    cp --no-preserve=mode -r ${TES3MP} code
+    cp --no-preserve=mode -r ${CallFF} dependencies/callff
+    cp --no-preserve=mode -r ${CrabNet} dependencies/raknet
+    cp --no-preserve=mode -r ${CoreScripts} keepers/CoreScripts
+
+    substituteInPlace tes3mp-deploy.sh \
+      --replace "-DBUILD_OPENCS=OFF" "-DBUILD_OPENCS=OFF -DCMAKE_INSTALL_PREFIX=$out"
+    patchShebangs tes3mp-deploy.sh
+    echo y | ./tes3mp-deploy.sh -i -c $NIX_BUILD_CORES
+  '';
+
+  installPhase = ''
+    prefix=$out/opt/tes3mp
+    mkdir -p $prefix/build $out/etc/openmw $out/bin
+    for i in build/*; do
+      if [ -f "$i" ] && [ -x "$i" ]; then
+        mv "$i" $prefix/build
+      fi
+    done
+    mv build/resources $prefix/build
+    mv build/{settings-default.cfg,openmw.cfg,gamecontrollerdb.txt} $out/etc/openmw
+    mv keepers $prefix
+    mv build/tes3mp-credits.md $prefix/build
+    mv -f $prefix/keepers/version $prefix/build/resources
+
+    for i in tes3mp.sh tes3mp-browser.sh tes3mp-server.sh
+    do
+      bin="$out/bin/''${i%.sh}"
+      mv $i $bin
+      substituteInPlace $bin \
+        --replace build/ $prefix/build/
+      chmod +x $bin
+    done
+    ln -s $prefix/keepers/*.cfg $out/etc/openmw/
+
+    wrapProgram $out/bin/tes3mp-server \
+      --run "mkdir -p ~/.config/openmw" \
+      --run "cd ~/.config/openmw" \
+      --run "[ -d CoreScripts ] || cp --no-preserve=mode -r $prefix/keepers/CoreScripts ." \
+      --run "[ -f tes3mp-server.cfg ] || echo \"[Plugins] home = \$HOME/.config/openmw/CoreScripts\" > tes3mp-server.cfg"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Multiplayer for TES3:Morrowind based on OpenMW";
+    homepage = "https://tes3mp.com/";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ gnidorah ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/openra/common.nix b/nixpkgs/pkgs/games/openra/common.nix
new file mode 100644
index 000000000000..200b9da4a7eb
--- /dev/null
+++ b/nixpkgs/pkgs/games/openra/common.nix
@@ -0,0 +1,87 @@
+/*  The reusable code, and package attributes, between OpenRA engine packages (engine.nix)
+    and out-of-tree mod packages (mod.nix).
+*/
+{ stdenv, makeSetupHook, curl, unzip, dos2unix, pkgconfig, makeWrapper
+, lua, mono, dotnetPackages, python
+, libGL, openal, SDL2
+, zenity
+}:
+
+with stdenv.lib;
+
+let
+  path = makeBinPath ([ mono python ] ++ optional (zenity != null) zenity);
+  rpath = makeLibraryPath [ lua openal SDL2 ];
+  mkdirp = makeSetupHook { } ./mkdirp.sh;
+
+in {
+  patchEngine = dir: version: ''
+    sed -i \
+      -e 's/^VERSION.*/VERSION = ${version}/g' \
+      -e '/fetch-geoip-db/d' \
+      -e '/GeoLite2-Country.mmdb.gz/d' \
+      ${dir}/Makefile
+
+    sed -i 's|locations=.*|locations=${lua}/lib|' ${dir}/thirdparty/configure-native-deps.sh
+  '';
+
+  wrapLaunchGame = openraSuffix: ''
+    # Setting TERM=xterm fixes an issue with terminfo in mono: System.Exception: Magic number is wrong: 542
+    # https://github.com/mono/mono/issues/6752#issuecomment-365212655
+    wrapProgram $out/lib/openra${openraSuffix}/launch-game.sh \
+      --prefix PATH : "${path}" \
+      --prefix LD_LIBRARY_PATH : "${rpath}" \
+      --set TERM xterm
+
+    makeWrapper $out/lib/openra${openraSuffix}/launch-game.sh $(mkdirp $out/bin)/openra${openraSuffix} \
+      --run "cd $out/lib/openra${openraSuffix}"
+  '';
+
+  packageAttrs = {
+    buildInputs = with dotnetPackages; [
+      FuzzyLogicLibrary
+      MaxMindDb
+      MaxMindGeoIP2
+      MonoNat
+      NewtonsoftJson
+      NUnit3
+      NUnitConsole
+      OpenNAT
+      RestSharp
+      SharpFont
+      SharpZipLib
+      SmartIrc4net
+      StyleCopMSBuild
+      StyleCopPlusMSBuild
+    ] ++ [
+      lua
+      libGL
+      openal
+      SDL2
+    ];
+
+    # TODO: Test if this is correct.
+    nativeBuildInputs = [
+      curl
+      unzip
+      dos2unix
+      pkgconfig
+      makeWrapper
+      mkdirp
+      mono
+      python
+    ];
+
+    makeFlags = "prefix=$(out)";
+
+    doCheck = true;
+
+    dontStrip = true;
+
+    meta = {
+      maintainers = with maintainers; [ fusion809 msteen rardiol ];
+      license = licenses.gpl3;
+      platforms = platforms.linux;
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/games/openra/default.nix b/nixpkgs/pkgs/games/openra/default.nix
new file mode 100644
index 000000000000..bf243e610bde
--- /dev/null
+++ b/nixpkgs/pkgs/games/openra/default.nix
@@ -0,0 +1,72 @@
+/*  This file defines all OpenRA packages under `openraPackages`,
+    e.g. the OpenRA release engine can be found at `openraPackages.engines.release` (see `engines.nix`),
+    or the out-of-tree mod "Combined Arms" can be found at `openraPackages.mods.ca` (see `mods.nix`).
+    The `openra` package is just an alias to `openraPackages.engines.release`,
+    and just provides the mods included in the source code of the engine.
+    Additional engines or mods can be added with `openraPackages.buildOpenRAEngine` (function around `engine.nix`)
+    and `openraPackages.buildOpenRAMod` (function around `mod.nix`), respectively.
+*/
+pkgs:
+
+with pkgs.lib;
+
+let
+  /*  Building an engine or out-of-tree mod is very similar,
+      but different enough not to be able to build them with the same package definition,
+      so instaed we define what is common between them in a seperate file.
+
+      Although `callPackage` could be used, it would require undoing `makeOverridable`,
+      because `common.nix` does not define a package, but just an attribute set,
+      which is directly passed as part of the argument to the engines and mods `callPackage`,
+      so either the attributes added by `makeOverridable` have to be removed
+      or the engine and mod package definitions will need to add `...` to the argument list.
+  */
+  common = let f = import ./common.nix; in f (builtins.intersectAttrs (functionArgs f) pkgs // {
+    lua = pkgs.lua5_1;
+    # It is not necessary to run the game, but it is nicer to be given an error dialog in the case of failure,
+    # rather than having to look to the logs why it is not starting.
+    inherit (pkgs.gnome3) zenity;
+  });
+
+  /*  Building a set of engines or mods requires some dependencies as well,
+      so the sets will actually be defined as a function instead,
+      requiring the dependencies and returning the actual set.
+
+      Not all dependencies for defining a engine or mod set are shared,
+      so additional arguments can be passed as well.
+
+      The builders for engines and mods allow to delay specifying the name,
+      by returning a function that expects a name, which we use, in this case,
+      to base the name on the attribute name instead, preventing the need to specify the name twice
+      if the attribute name and engine/mod name are equal.
+  */
+  callWithName = name: value: if isFunction value then value name else value;
+  buildOpenRASet = f: args: pkgs.recurseIntoAttrs (mapAttrs callWithName (f ({
+    inherit (pkgs) fetchFromGitHub;
+    abbrevCommit = commit: substring 0 7 commit;
+    extraPostFetch = ''
+      sed -i 's/curl/curl --insecure/g' $out/thirdparty/{fetch-thirdparty-deps,noget}.sh
+      $out/thirdparty/fetch-thirdparty-deps.sh
+    '';
+  } // args)));
+
+in pkgs.recurseIntoAttrs rec {
+  # The whole attribute set is destructered to ensure those (and only those) attributes are given
+  # and to provide defaults for those that are optional.
+  buildOpenRAEngine = { name ? null, version, description, homepage, mods, src }@engine:
+    # Allow specifying the name at a later point if no name has been given.
+    let builder = name: pkgs.callPackage ./engine.nix (common // {
+      engine = engine // { inherit name; };
+    }); in if name == null then builder else builder name;
+
+  # See `buildOpenRAEngine`.
+  buildOpenRAMod = { name ? null, version, title, description, homepage, src, engine, assetsError ? "" }@mod: ({ version, mods ? [], src }@engine:
+    let builder = name: pkgs.callPackage ./mod.nix (common // {
+      mod = mod // { inherit name assetsError; };
+      engine = engine // { inherit mods; };
+    }); in if name == null then builder else builder name) engine;
+
+  # See `buildOpenRASet`.
+  engines = buildOpenRASet (import ./engines.nix) { inherit buildOpenRAEngine; };
+  mods = buildOpenRASet (import ./mods.nix) { inherit buildOpenRAMod; };
+}
diff --git a/nixpkgs/pkgs/games/openra/engine.nix b/nixpkgs/pkgs/games/openra/engine.nix
new file mode 100644
index 000000000000..7d2d007d0758
--- /dev/null
+++ b/nixpkgs/pkgs/games/openra/engine.nix
@@ -0,0 +1,60 @@
+/*  The package defintion for an OpenRA engine.
+    It shares code with `mod.nix` by what is defined in `common.nix`.
+    Similar to `mod.nix` it is a generic package definition,
+    in order to make it easy to define multiple variants of the OpenRA engine.
+    For each mod provided by the engine, a wrapper script is created,
+    matching the naming convention used by `mod.nix`.
+    This package could be seen as providing a set of in-tree mods,
+    while the `mod.nix` pacakges provide a single out-of-tree mod.
+*/
+{ stdenv
+, packageAttrs
+, patchEngine
+, wrapLaunchGame
+, engine
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation (recursiveUpdate packageAttrs rec {
+  name = "${pname}-${version}";
+  pname = "openra";
+  version = "${engine.name}-${engine.version}";
+
+  src = engine.src;
+
+  postPatch = patchEngine "." version;
+
+  configurePhase = ''
+    runHook preConfigure
+
+    make version VERSION=${escapeShellArg version}
+
+    runHook postConfigure
+  '';
+
+  buildFlags = [ "DEBUG=false" "default" "man-page" ];
+
+  checkTarget = "nunit test";
+
+  installTargets = [
+    "install"
+    "install-linux-icons"
+    "install-linux-desktop"
+    "install-linux-appdata"
+    "install-linux-mime"
+    "install-man-page"
+  ];
+
+  postInstall = ''
+    ${wrapLaunchGame ""}
+
+    ${concatStrings (map (mod: ''
+      makeWrapper $out/bin/openra $out/bin/openra-${mod} --add-flags Game.Mod=${mod}
+    '') engine.mods)}
+  '';
+
+  meta = {
+    inherit (engine) description homepage;
+  };
+})
diff --git a/nixpkgs/pkgs/games/openra/engines.nix b/nixpkgs/pkgs/games/openra/engines.nix
new file mode 100644
index 000000000000..7454d32c1139
--- /dev/null
+++ b/nixpkgs/pkgs/games/openra/engines.nix
@@ -0,0 +1,41 @@
+{ buildOpenRAEngine, fetchFromGitHub, abbrevCommit, extraPostFetch }:
+
+let
+  buildUpstreamOpenRAEngine = { version, rev, sha256 }: name: (buildOpenRAEngine {
+    inherit version;
+    description = "Open-source re-implementation of Westwood Studios' 2D Command and Conquer games";
+    homepage = https://www.openra.net/;
+    mods = [ "cnc" "d2k" "ra" "ts" ];
+    src = fetchFromGitHub {
+      owner = "OpenRA";
+      repo = "OpenRA" ;
+      inherit rev sha256 extraPostFetch;
+    };
+  } name).overrideAttrs (origAttrs: {
+    postInstall = ''
+      ${origAttrs.postInstall}
+      cp -r mods/ts $out/lib/openra/mods/
+      cp mods/ts/icon.png $(mkdirp $out/share/pixmaps)/openra-ts.png
+      ( cd $out/share/applications; sed -e 's/Dawn/Sun/g' -e 's/cnc/ts/g' openra-cnc.desktop > openra-ts.desktop )
+    '';
+  });
+
+in {
+  release = name: (buildUpstreamOpenRAEngine rec {
+    version = "20181215";
+    rev = "${name}-${version}";
+    sha256 = "0p0izykjnz7pz02g2khp7msqa00jhjsrzk9y0g29dirmdv75qa4r";
+  } name);
+
+  playtest = name: (buildUpstreamOpenRAEngine rec {
+    version = "20190106";
+    rev = "${name}-${version}";
+    sha256 = "0ps9x379plrrj1hnj4fpr26lc46mzgxknv5imxi0bmrh5y4781ql";
+  } name);
+
+  bleed = buildUpstreamOpenRAEngine {
+    version = "9c9cad1";
+    rev = "9c9cad1a15c3a34dc2a61b305e4a9a735381a5f8";
+    sha256 = "0100p7wrnnlvkmy581m0gbyg3cvi4i1w3lzx2gq91ndz1sbm8nd2";
+  };
+}
diff --git a/nixpkgs/pkgs/games/openra/mkdirp.sh b/nixpkgs/pkgs/games/openra/mkdirp.sh
new file mode 100644
index 000000000000..7b2cf0b89c0e
--- /dev/null
+++ b/nixpkgs/pkgs/games/openra/mkdirp.sh
@@ -0,0 +1,4 @@
+mkdirp() {
+  mkdir -p "$@"
+  echo "$@"
+}
diff --git a/nixpkgs/pkgs/games/openra/mod-launch-game.sh b/nixpkgs/pkgs/games/openra/mod-launch-game.sh
new file mode 100644
index 000000000000..c0b6feb69c88
--- /dev/null
+++ b/nixpkgs/pkgs/games/openra/mod-launch-game.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+show_error() {
+  if command -v zenity > /dev/null; then
+    zenity --no-wrap --no-markup --error --title "OpenRA - @title@" --text "$1" 2>/dev/null
+  else
+    printf "$1\n" >&2
+  fi
+  exit 1
+}
+
+cd "@out@/lib/openra-@name@"
+
+# Check for missing assets
+assetsError='@assetsError@'
+if [ -n "$assetsError" -a ! -d "$HOME/.openra/Content/@name@" ]; then
+  show_error "$assetsError"
+fi
+
+# Run the game
+mono --debug OpenRA.Game.exe Game.Mod=@name@ Engine.LaunchPath="@out@/bin/openra-@name@" Engine.ModSearchPaths="@out@/lib/openra-@name@/mods" "$@"
+
+# Show a crash dialog if something went wrong
+if [ $? -ne 0 -a $? -ne 1 ]; then
+  show_error $'OpenRA - @title@ has encountered a fatal error.\nPlease refer to the crash logs for more information.\n\nLog files are located in ~/.openra/Logs'
+fi
diff --git a/nixpkgs/pkgs/games/openra/mod-update.sh b/nixpkgs/pkgs/games/openra/mod-update.sh
new file mode 100755
index 000000000000..52bcada8f9a1
--- /dev/null
+++ b/nixpkgs/pkgs/games/openra/mod-update.sh
@@ -0,0 +1,151 @@
+#!/usr/bin/env bash
+
+# for mod in $(nix eval --raw '(
+#   with import <nixpkgs> { };
+#   with lib;
+#   let mods = attrNames (removeAttrs openraPackages.mods [ "recurseForDerivations" ]);
+#   in concatStringsSep " " mods
+# )'); do
+#   ./mod-update.sh "$mod"
+# done
+
+# Uses:
+# https://github.com/msteen/nix-prefetch
+# https://github.com/msteen/nix-update-fetch
+
+mod=$1
+commit_count=$2
+token=
+nixpkgs='<nixpkgs>'
+
+die() {
+  ret=$?
+  echo "$*" >&2
+  exit $ret
+}
+
+curl() {
+  command curl --silent --show-error "$@"
+}
+
+get_sha1() {
+  local owner=$1 repo=$2 ref=$3
+  # https://developer.github.com/v3/#authentication
+  curl -H "Authorization: token $token" -H 'Accept: application/vnd.github.VERSION.sha' "https://api.github.com/repos/$owner/$repo/commits/$ref"
+}
+
+[[ -n $token ]] || die "Please edit this script to include a GitHub API access token, which is required for API v4:
+https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/"
+
+# Get current mod_owner and mod_repo.
+vars=$(nix-prefetch --file "$nixpkgs" "openraPackages.mods.$mod" --index 0 --quiet --output json --skip-hash > >(
+  jq --raw-output 'with_entries(select(.value | contains("\n") | not)) | to_entries | .[] | .key + "=" + .value')) || exit
+
+while IFS='=' read -r key val; do
+  declare "mod_${key}=${val}"
+done <<< "$vars"
+
+if [[ -n $commit_count ]]; then
+  query_on_commit='{
+  history(first: 10) {
+    nodes {
+      abbreviatedOid
+      oid
+    }
+    totalCount
+  }
+}'
+else
+  query_on_commit='{
+  history(first: 0) {
+    totalCount
+  }
+  abbreviatedOid
+  oid
+}'
+fi
+
+query='query {
+  repository(owner: \"'"$mod_owner"'\", name: \"'"$mod_repo"'\") {
+    defaultBranchRef {
+      target {
+        ... on Commit '"$query_on_commit"'
+      }
+    }
+    licenseInfo {
+      key
+    }
+  }
+}'
+
+# Newlines are not allowed in a query.
+# https://developer.github.com/v4/guides/forming-calls/#communicating-with-graphql
+query=$(echo $query)
+
+# https://developer.github.com/v4/guides/using-the-explorer/#configuring-graphiql
+json=$(curl -H "Authorization: bearer $token" -X POST -d '{ "query": "'"$query"'" }' https://api.github.com/graphql) || exit
+
+if [[ -n $commit_count ]]; then
+  json=$(jq "$commit_count"' as $commit_count
+    | .data.repository.defaultBranchRef.target
+    |= (.history |= (. | del(.nodes) | .totalCount = $commit_count))
+    + (.history | .nodes[.totalCount - $commit_count])' <<< "$json") || exit
+fi
+
+vars=$(jq --raw-output '.data.repository | {
+  license_key: .licenseInfo.key,
+} + (.defaultBranchRef.target | {
+  version: ((.history.totalCount | tostring) + ".git." + .abbreviatedOid),
+  rev: .oid,
+}) | to_entries | .[] | .key + "=" + (.value | tostring)' <<< "$json") || exit
+
+while IFS='=' read -r key val; do
+  declare "mod_${key}=${val}"
+done <<< "$vars"
+
+mod_config=$(curl "https://raw.githubusercontent.com/$mod_owner/$mod_repo/$mod_rev/mod.config") || exit
+
+while IFS='=' read -r key val; do
+  declare "${key,,}=$(jq --raw-output . <<< "$val")"
+done < <(grep '^\(MOD_ID\|ENGINE_VERSION\|AUTOMATIC_ENGINE_MANAGEMENT\|AUTOMATIC_ENGINE_SOURCE\)=' <<< "$mod_config")
+
+for var in mod_id engine_version automatic_engine_management automatic_engine_source; do
+  echo "$var=${!var}" >&2
+done
+echo >&2
+
+[[ $mod_id == "$mod" ]] ||
+  die "The mod '$mod' reports being mod '$mod_id' instead."
+[[ $mod_license_key == gpl-3.0 ]] ||
+[[ $(echo $(head -2 <(curl "https://raw.githubusercontent.com/$mod_owner/$mod_repo/$mod_rev/COPYING"))) == 'GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007' ]] ||
+  die "The mod '$mod' is licensed under '$mod_license_key' while expecting 'gpl-3.0'."
+[[ $automatic_engine_management == True ]] ||
+  die "The mod '$mod' engine is not managed as a read-only dependency."
+[[ $automatic_engine_source =~ https://github.com/([a-zA-Z0-9_\-]+)/([a-zA-Z0-9_\-]+)/archive/([a-zA-Z0-9_\-\$\{\}]+).zip ]] ||
+  die "The mod '$mod' engine is not hosted on GitHub as an archive."
+
+engine_owner=${BASH_REMATCH[1]}
+engine_repo=${BASH_REMATCH[2]}
+[[ ${BASH_REMATCH[3]} == '${ENGINE_VERSION}' ]] || engine_version=${BASH_REMATCH[3]}
+engine_rev=$(get_sha1 "$engine_owner" "$engine_repo" "$engine_version")
+
+for type in mod engine; do
+  for name in version owner repo rev; do
+    var="${type}_${name}"
+    echo "$var=${!var}" >&2
+  done
+  echo >&2
+done
+
+i=0
+for type in mod engine; do
+  fetcher_args=()
+  for name in owner repo rev; do
+    var="${type}_${name}"
+    fetcher_args+=( "--$name" "${!var}" )
+  done
+  var="${type}_version"
+  version=${!var}
+  nix-update-fetch --yes --version "$version" "$(nix-prefetch --quiet --file "$nixpkgs" "openraPackages.mods.$mod" --index $i --output json --with-position --diff -- "${fetcher_args[@]}")"
+  (( i++ ))
+done
diff --git a/nixpkgs/pkgs/games/openra/mod.nix b/nixpkgs/pkgs/games/openra/mod.nix
new file mode 100644
index 000000000000..8df5922a4418
--- /dev/null
+++ b/nixpkgs/pkgs/games/openra/mod.nix
@@ -0,0 +1,105 @@
+/*  The package defintion for an OpenRA out-of-tree mod.
+    It shares code with `engine.nix` by what is defined in `common.nix`.
+    To build an out-of-tree mod it needs the source code of the engine available,
+    and they each need to be build with a specific version or fork of the engine,
+    so the engine needs to be supplied as an argument as well.
+    The engine is relatively small and quick to build, so this is not much of a problem.
+    Building a mod will result in a wrapper script that starts the mod inside the specified engine.
+*/
+{ stdenv
+, packageAttrs
+, patchEngine
+, wrapLaunchGame
+, mod
+, engine
+}:
+
+with stdenv.lib;
+
+let
+  engineSourceName = engine.src.name or "engine";
+  modSourceName = mod.src.name or "mod";
+
+# Based on: https://build.opensuse.org/package/show/home:fusion809/openra-ura
+in stdenv.mkDerivation (recursiveUpdate packageAttrs rec {
+  name = "${pname}-${version}";
+  pname = "openra-${mod.name}";
+  inherit (mod) version;
+
+  srcs = [
+    mod.src
+    engine.src
+  ];
+
+  sourceRoot = ".";
+
+  postUnpack = ''
+    mv ${engineSourceName} ${modSourceName}
+    cd ${modSourceName}
+  '';
+
+  postPatch = ''
+    cat <<'EOF' > fetch-engine.sh
+    #!/bin/sh
+    exit 0
+    EOF
+
+    sed -i 's/^VERSION.*/VERSION = ${version}/g' Makefile
+
+    dos2unix *.md
+
+    ${patchEngine engineSourceName engine.version}
+  '';
+
+  configurePhase = ''
+    runHook preConfigure
+
+    make version VERSION=${escapeShellArg version}
+    make -C ${engineSourceName} version VERSION=${escapeShellArg engine.version}
+
+    runHook postConfigure
+  '';
+
+  checkTarget = "test";
+
+  installPhase = ''
+    runHook preInstall
+
+    make -C ${engineSourceName} install-engine install-common-mod-files DATA_INSTALL_DIR=$out/lib/${pname}
+
+    cp -r ${engineSourceName}/mods/{${concatStringsSep "," ([ "common" "modcontent" ] ++ engine.mods)}} mods/* \
+      $out/lib/${pname}/mods/
+
+    substitute ${./mod-launch-game.sh} $out/lib/${pname}/launch-game.sh \
+      --subst-var out \
+      --subst-var-by name ${escapeShellArg mod.name} \
+      --subst-var-by title ${escapeShellArg mod.title} \
+      --subst-var-by assetsError ${escapeShellArg mod.assetsError}
+    chmod +x $out/lib/${pname}/launch-game.sh
+
+    ${wrapLaunchGame "-${mod.name}"}
+
+    substitute ${./openra-mod.desktop} $(mkdirp $out/share/applications)/${pname}.desktop \
+      --subst-var-by name ${escapeShellArg mod.name} \
+      --subst-var-by title ${escapeShellArg mod.title} \
+      --subst-var-by description ${escapeShellArg mod.description}
+
+    cp README.md $(mkdirp $out/share/doc/packages/${pname})/README.md
+
+    [[ -e mods/${mod.name}/icon.png ]] && mod_icon=mods/${mod.name}/icon.png || {
+      [[ -e mods/${mod.name}/logo.png ]] && mod_icon=mods/${mod.name}/logo.png || mod_icon=packaging/linux/mod_256x256.png
+    }
+    cp "$mod_icon" $(mkdirp $out/share/pixmaps)/${pname}.png
+
+    for size in 16 32 48 64 128 256; do
+      size=''${size}x''${size}
+      cp packaging/linux/mod_''${size}.png $(mkdirp $out/share/icons/hicolor/''${size}/apps)/${pname}.png
+    done
+
+    runHook postInstall
+  '';
+
+  meta = {
+    inherit (mod) description homepage;
+  };
+})
diff --git a/nixpkgs/pkgs/games/openra/mods.nix b/nixpkgs/pkgs/games/openra/mods.nix
new file mode 100644
index 000000000000..ddc34dbda8f6
--- /dev/null
+++ b/nixpkgs/pkgs/games/openra/mods.nix
@@ -0,0 +1,344 @@
+{ buildOpenRAMod, fetchFromGitHub, abbrevCommit, extraPostFetch }:
+
+let
+  unsafeBuildOpenRAMod = attrs: name: (buildOpenRAMod attrs name).overrideAttrs (_: {
+    doCheck = false;
+  });
+
+in {
+  ca = buildOpenRAMod {
+    version = "96.git.fc3cf0b";
+    title = "Combined Arms";
+    description = "A game that combines units from the official OpenRA Red Alert and Tiberian Dawn mods";
+    homepage = https://github.com/Inq8/CAmod;
+    src = fetchFromGitHub {
+      owner = "Inq8";
+      repo = "CAmod";
+      rev = "fc3cf0baf2b827650eaae9e1d2335a3eed24bac9";
+      sha256 = "15w91xs253gyrlzsgid6ixxjazx0fbzick6vlkiay0znb58n883m";
+    };
+    engine = {
+      version = "b8a7dd5";
+      src = fetchFromGitHub {
+        owner = "Inq8";
+        repo = "CAengine" ;
+        rev = "b8a7dd52ff893ed8225726d4ed4e14ecad748404";
+        sha256 = "0dyk861qagibx8ldshz7d2nrki9q550f6f0wy8pvayvf1gv1dbxj";
+        name = "engine";
+        inherit extraPostFetch;
+      };
+    };
+  };
+
+  d2 = unsafeBuildOpenRAMod rec {
+    version = "134.git.69a4aa7";
+    title = "Dune II";
+    description = "A modernization of the original ${title} game";
+    homepage = https://github.com/OpenRA/d2;
+    src = fetchFromGitHub {
+      owner = "OpenRA";
+      repo = "d2";
+      rev = "69a4aa708e2c26376469c0048fac13592aa452ca";
+      sha256 = "1mfch4s6c05slyqvxllklbxpqq8dqcbx3515n3gyylyq43gq481r";
+    };
+    engine = rec {
+      version = "release-20181215";
+      mods = [ "cnc" "d2k" "ra" ];
+      src = fetchFromGitHub {
+        owner = "OpenRA";
+        repo = "OpenRA" ;
+        rev = version;
+        sha256 = "0p0izykjnz7pz02g2khp7msqa00jhjsrzk9y0g29dirmdv75qa4r";
+        name = "engine";
+        inherit extraPostFetch;
+      };
+    };
+    assetsError = ''
+      The mod expects the original ${title} game assets in place:
+      https://github.com/OpenRA/d2/wiki
+    '';
+  };
+
+  dr = buildOpenRAMod rec {
+    version = "266.git.920b476";
+    title = "Dark Reign";
+    description = "A re-imagination of the original Command & Conquer: ${title} game";
+    homepage = https://github.com/drogoganor/DarkReign;
+    src = fetchFromGitHub {
+      owner = "drogoganor";
+      repo = "DarkReign";
+      rev = "920b476be1b7751db087f1f7acd504b8a048d1e2";
+      sha256 = "11ir4pnichrnv4z9532fp9g166jl8fvy5kk03a2fgxssp3g40zz2";
+    };
+    engine = {
+      version = "DarkReign";
+      src = fetchFromGitHub {
+        owner = "drogoganor";
+        repo = "OpenRA" ;
+        rev = "e08b75c2add30439228ea3dd61d6be60d1800329";
+        sha256 = "125vf962p69ajrh5pxgfwsi0ksczqwvlw5kn2fvffiwvh8d5in23";
+        name = "engine";
+        inherit extraPostFetch;
+      };
+    };
+  };
+
+  gen = buildOpenRAMod {
+    version = "1157.git.4f5e11d";
+    title = "Generals Alpha";
+    description = "Re-imagination of the original Command & Conquer: Generals game";
+    homepage = https://github.com/MustaphaTR/Generals-Alpha;
+    src = fetchFromGitHub {
+      owner = "MustaphaTR";
+      repo = "Generals-Alpha";
+      rev = "4f5e11d916e4a03d8cf1c97eef484ce2d77d7df2";
+      sha256 = "1wnl4qrlhynnlahgdlxwhgsdba5wgdg9yrv9f8hkgi69j60szypd";
+    };
+    engine = rec {
+      version = "gen-20190128_3";
+      src = fetchFromGitHub {
+        owner = "MustaphaTR";
+        repo = "OpenRA" ;
+        rev = version;
+        sha256 = "1x6byz37s8qcpqj902zvkvbv95rv2mv2kj35c12gbpyc92xkqkq0";
+        name = "generals-alpha-engine";
+        inherit extraPostFetch;
+      };
+    };
+  };
+
+  kknd = let version = "145.git.5530bab"; in name: (buildOpenRAMod rec {
+    inherit version;
+    title = "Krush, Kill 'n' Destroy";
+    description = "Re-imagination of the original ${title} game";
+    homepage = https://kknd-game.com/;
+    src = fetchFromGitHub {
+      owner = "IceReaper";
+      repo = "KKnD";
+      rev = "5530babcb05170e0959e4cf2b079161e9fedde4f";
+      sha256 = "07jczrarmgm6zdk0myzwgq200x19yvpjyxrnhdac08mjgyz75zk1";
+    };
+    engine = {
+      version = "4e8eab4ca00d1910203c8a103dfd2c002714daa8";
+      src = fetchFromGitHub {
+        owner = "IceReaper";
+        repo = "OpenRA" ;
+        rev = "4e8eab4ca00d1910203c8a103dfd2c002714daa8";
+        sha256 = "1yyqparf93x8yzy1f46gsymgkj5jls25v2yc7ighr3f7mi3igdvq";
+        name = "engine";
+        inherit extraPostFetch;
+      };
+    };
+  } name).overrideAttrs (origAttrs: {
+    postPatch = ''
+      ${origAttrs.postPatch}
+      sed -i 's/{DEV_VERSION}/${version}/' mods/*/mod.yaml
+    '';
+  });
+
+  mw = buildOpenRAMod rec {
+    version = "257.git.c9be8f2";
+    title = "Medieval Warfare";
+    description = "A re-imagination of the original Command & Conquer: ${title} game";
+    homepage = https://github.com/CombinE88/Medieval-Warfare;
+    src = fetchFromGitHub {
+      owner = "CombinE88";
+      repo = "Medieval-Warfare";
+      rev = "c9be8f2a6f1dd710b1aedd9d5b00b4cf5020e2fe";
+      sha256 = "09fp7k95jd6hjqdasbspbd43z5670wkyzbbgqkll9dfsrv0sky0v";
+    };
+    engine = {
+      version = "MedievalWarfareEngine";
+      src = fetchFromGitHub {
+        owner = "CombinE88";
+        repo = "OpenRA" ;
+        rev = "52109c0910f479753704c46fb19e8afaab353c83";
+        sha256 = "0ga3855j6bc7h81q03cw6laiaiz12915zg8aqah1idvxbzicfy7l";
+        name = "engine";
+        inherit extraPostFetch;
+      };
+    };
+  };
+
+  ra2 = buildOpenRAMod rec {
+    version = "881.git.b37f4f9";
+    title = "Red Alert 2";
+    description = "Re-imagination of the original Command & Conquer: ${title} game";
+    homepage = https://github.com/OpenRA/ra2;
+    src = fetchFromGitHub {
+      owner = "OpenRA";
+      repo = "ra2";
+      rev = "b37f4f9f07404127062d9061966e9cc89dd86445";
+      sha256 = "1jiww66ma3qdk9hzyvhbcaa5h4p2mxxk22kvrw92ckpxy0bqba3h";
+    };
+    engine = rec {
+      version = "release-20180923";
+      src = fetchFromGitHub {
+        owner = "OpenRA";
+        repo = "OpenRA" ;
+        rev = version;
+        sha256 = "1pgi3zaq9fwwdq6yh19bwxscslqgabjxkvl9bcn1a5agy4bfbqk5";
+        name = "engine";
+        inherit extraPostFetch;
+      };
+    };
+    assetsError = ''
+      The mod expects the original ${title} game assets in place:
+      https://github.com/OpenRA/ra2/wiki
+    '';
+  };
+
+  raclassic = buildOpenRAMod {
+    version = "181.git.8240890";
+    title = "Red Alert Classic";
+    description = "A modernization of the original Command & Conquer: Red Alert game";
+    homepage = https://github.com/OpenRA/raclassic;
+    src = fetchFromGitHub {
+      owner = "OpenRA";
+      repo = "raclassic";
+      rev = "8240890b32191ce34241c22158b8a79e8c380879";
+      sha256 = "0dznyb6qa4n3ab87g1c4bihfc2nx53k6z0kajc7ynjdnwzvx69ww";
+    };
+    engine = rec {
+      version = "playtest-20190106";
+      src = fetchFromGitHub {
+        owner = "OpenRA";
+        repo = "OpenRA" ;
+        rev = version;
+        sha256 = "0ps9x379plrrj1hnj4fpr26lc46mzgxknv5imxi0bmrh5y4781ql";
+        name = "engine";
+        inherit extraPostFetch;
+      };
+    };
+  };
+
+  rv = unsafeBuildOpenRAMod {
+    version = "1330.git.9230e6f";
+    title = "Romanov's Vengeance";
+    description = "Re-imagination of the original Command & Conquer: Red Alert 2 game";
+    homepage = https://github.com/MustaphaTR/Romanovs-Vengeance;
+    src = fetchFromGitHub {
+      owner = "MustaphaTR";
+      repo = "Romanovs-Vengeance";
+      rev = "9230e6f1dd9758467832aee4eda115e18f0e635f";
+      sha256 = "0bwbmmlhp1kh8rgk2nx1ca9vqssj849amndacf318d61gksc1w9n";
+    };
+    engine = {
+      version = "f3873ae";
+      mods = [ "as" ];
+      src = fetchFromGitHub {
+        owner = "AttacqueSuperior";
+        repo = "Engine";
+        rev = "f3873ae242803051285994d77eb26f4b951594b5";
+        sha256 = "02rv29wja0p5d083pd087daz7x7pp5b9ym7sci2fhg3mrnaqgwkp";
+        name = "engine";
+        inherit extraPostFetch;
+      };
+    };
+    assetsError = ''
+      The mod expects the Command & Conquer: The Ultimate Collection assets in place:
+      https://github.com/OpenRA/ra2/wiki
+    '';
+  };
+
+  sp = unsafeBuildOpenRAMod {
+    version = "176.git.fc89ae8";
+    title = "Shattered Paradise";
+    description = "Re-imagination of the original Command & Conquer: Tiberian Sun game";
+    homepage = https://github.com/ABrandau/OpenRAModSDK;
+    src = fetchFromGitHub {
+      owner = "ABrandau";
+      repo = "OpenRAModSDK";
+      rev = "fc89ae8a10e0f765ac735f923e01aa24dd20e8d2";
+      sha256 = "0xyxhipmjlld0kp23fwsdwnspr7fci0mdnjd60gcsh34c7m0341p";
+    };
+    engine = {
+      version = "SP-Bleed-Branch";
+      mods = [ "as" "ts" ];
+      src = fetchFromGitHub {
+        owner = "ABrandau";
+        repo = "OpenRA" ;
+        rev = "d3545c0b751aea2105748eddaab5919313e35314";
+        sha256 = "1jsldl6vnf3r9dzppdm4z7kqbrzkidda5k74wc809i8c4jjnq9rq";
+        name = "engine";
+        inherit extraPostFetch;
+      };
+    };
+  };
+
+  ss = buildOpenRAMod rec {
+    version = "77.git.23e1f3e";
+    title = "Sole Survivor";
+    description = "A re-imagination of the original Command & Conquer: ${title} game";
+    homepage = https://github.com/MustaphaTR/sole-survivor;
+    src = fetchFromGitHub {
+      owner = "MustaphaTR";
+      repo = "sole-survivor";
+      rev = "23e1f3e5d8b98c936797b6680d95d56a69a9e2ab";
+      sha256 = "104clmxphchs7r8y7hpmw103bychayz80bqj98bp89i64nv9d89x";
+    };
+    engine = {
+      version = "6de92de";
+      src = fetchFromGitHub {
+        owner = "OpenRA";
+        repo = "OpenRA" ;
+        rev = "6de92de8d982094a766eab97a92225c240d85493";
+        sha256 = "0ps9x379plrrj1hnj4fpr26lc46mzgxknv5imxi0bmrh5y4781ql";
+        name = "engine";
+        inherit extraPostFetch;
+      };
+    };
+  };
+
+  ura = buildOpenRAMod {
+    version = "431.git.128dc53";
+    title = "Red Alert Unplugged";
+    description = "Re-imagination of the original Command & Conquer: Red Alert game";
+    homepage = http://redalertunplugged.com/;
+    src = fetchFromGitHub {
+      owner = "RAunplugged";
+      repo = "uRA";
+      rev = "128dc53741fae923f4af556f2293ceaa0cf571f0";
+      sha256 = "1mhr8kyh313z52gdrqv31d6z7jvdldiajalca5mcr8gzg6mph66p";
+    };
+    engine = rec {
+      version = "unplugged-cd82382";
+      src = fetchFromGitHub {
+        owner = "RAunplugged";
+        repo = "OpenRA" ;
+        rev = version;
+        sha256 = "1p5hgxxvxlz8480vj0qkmnxjh7zj3hahk312m0zljxfdb40652w1";
+        name = "engine";
+        inherit extraPostFetch;
+      };
+    };
+  };
+
+  yr = unsafeBuildOpenRAMod rec {
+    version = "118.git.c26bf14";
+    homepage = https://github.com/cookgreen/yr;
+    title = "Yuri's Revenge";
+    description = "Re-imagination of the original Command & Conquer: ${title} game";
+    src = fetchFromGitHub {
+      owner = "cookgreen";
+      repo = "yr";
+      rev = "c26bf14155d040edf33c6c5eb3677517d07b39f8";
+      sha256 = "15k6gv4rx3490n0cs9q7ah7q31z89v0pddsw6nqv0fhcahhvq1bc";
+    };
+    engine = rec {
+      version = "release-20180923";
+      src = fetchFromGitHub {
+        owner = "OpenRA";
+        repo = "OpenRA" ;
+        rev = version;
+        sha256 = "1pgi3zaq9fwwdq6yh19bwxscslqgabjxkvl9bcn1a5agy4bfbqk5";
+        name = "engine";
+        inherit extraPostFetch;
+      };
+    };
+    assetsError = ''
+      The mod expects the Command & Conquer: The Ultimate Collection assets in place:
+      https://github.com/OpenRA/ra2/wiki
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/games/openra/openra-mod.desktop b/nixpkgs/pkgs/games/openra/openra-mod.desktop
new file mode 100644
index 000000000000..090b6c1325d1
--- /dev/null
+++ b/nixpkgs/pkgs/games/openra/openra-mod.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+Name=OpenRA - @title@
+GenericName=Real Time Strategy Game
+GenericName[de]=Echtzeit-Strategiespiel
+Comment=@description@
+Icon=openra-@name@
+Exec=openra-@name@
+Terminal=false
+Categories=Game;StrategyGame;X-RTS;X-RealTimeStrategy;X-RealTimeStrategyGame;
diff --git a/nixpkgs/pkgs/games/openra/packages.nix b/nixpkgs/pkgs/games/openra/packages.nix
new file mode 100644
index 000000000000..c09b697771a3
--- /dev/null
+++ b/nixpkgs/pkgs/games/openra/packages.nix
@@ -0,0 +1,60 @@
+pkgs:
+
+let
+  /*  Building an engine or out-of-tree mod is very similar,
+      but different enough not to be able to build them with the same package definition,
+      so instaed we define what is common between them in a seperate file.
+
+      Although `callPackage` could be used, it would require undoing `makeOverridable`,
+      because `common.nix` does not define a package, but just an attribute set,
+      which is directly passed as part of the argument to the engines and mods `callPackage`,
+      so either the attributes added by `makeOverridable` have to be removed
+      or the engine and mod package definitions will need to add `...` to the argument list.
+  */
+  common = let f = import ./common.nix; in f (builtins.intersectAttrs (builtins.functionArgs f) pkgs // {
+    lua = pkgs.lua5_1;
+    # It is not necessary to run the game, but it is nicer to be given an error dialog in the case of failure,
+    # rather than having to look to the logs why it is not starting.
+    inherit (pkgs.gnome3) zenity;
+  });
+
+  /*  Building a set of engines or mods requires some dependencies as well,
+      so the sets will actually be defined as a function instead,
+      requiring the dependencies and returning the actual set.
+
+      Not all dependencies for defining a engine or mod set are shared,
+      so additional arguments can be passed as well.
+
+      The builders for engines and mods allow to delay specifying the name,
+      by returning a function that expects a name, which we use, in this case,
+      to base the name on the attribute name instead, preventing the need to specify the name twice
+      if the attribute name and engine/mod name are equal.
+  */
+  buildOpenRASet = f: args: builtins.mapAttrs (name: value: if builtins.isFunction value then value name else value) (f ({
+    inherit (pkgs) fetchFromGitHub;
+    extraPostFetch = ''
+      sed -i 's/curl/curl --insecure/g' $out/thirdparty/{fetch-thirdparty-deps,noget}.sh
+      $out/thirdparty/fetch-thirdparty-deps.sh
+    '';
+  } // args));
+
+in rec {
+  # The whole attribute set is destructered to ensure those (and only those) attributes are given
+  # and to provide defaults for those that are optional.
+  buildOpenRAEngine = { name ? null, version, description, homepage, mods, src, installExperimental ? "" }@engine:
+    # Allow specifying the name at a later point if no name has been given.
+    let builder = name: pkgs.callPackage ./engine.nix (common // {
+      engine = engine // { inherit name installExperimental; };
+    }); in if name == null then builder else builder name;
+
+  # See `buildOpenRAEngine`.
+  buildOpenRAMod = { name ? null, version, title, description, homepage, src, engine }@mod: ({ version, mods ? [], src }@engine:
+    let builder = name: pkgs.callPackage ./mod.nix (common // {
+      mod = mod // { inherit name; };
+      engine = engine // { inherit mods; };
+    }); in if name == null then builder else builder name) engine;
+
+  # See `buildOpenRASet`.
+  engines = buildOpenRASet (import ./engines.nix) { inherit buildOpenRAEngine; };
+  mods = buildOpenRASet (import ./mods.nix) { inherit buildOpenRAMod; };
+}
diff --git a/nixpkgs/pkgs/games/openrct2/default.nix b/nixpkgs/pkgs/games/openrct2/default.nix
new file mode 100644
index 000000000000..e41caa3db978
--- /dev/null
+++ b/nixpkgs/pkgs/games/openrct2/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchFromGitHub,
+  SDL2, cmake, curl, fontconfig, freetype, icu, jansson, libiconv, libpng,
+  libpthreadstubs, libzip, libGLU, openssl, pkgconfig, speexdsp, zlib
+}:
+
+let
+  name = "openrct2-${version}";
+  version = "0.2.1";
+
+  openrct2-src = fetchFromGitHub {
+    owner = "OpenRCT2";
+    repo = "OpenRCT2";
+    rev = "v${version}";
+    sha256 = "0dl1f0gvq0ifaii66c7bwp8k822krcdn9l44prnyds6smrdmd3dq";
+  };
+
+  objects-src = fetchFromGitHub {
+    owner = "OpenRCT2";
+    repo = "objects";
+    rev = "v1.0.6";
+    sha256 = "1yhyafsk2lyasgj1r7h2n4k7vp5q792aj86ggpbmd6bcp4kk6hbm";
+  };
+
+  title-sequences-src = fetchFromGitHub {
+    owner = "OpenRCT2";
+    repo = "title-sequences";
+    rev = "v0.1.2";
+    sha256 = "1yb1ynkfmiankii3fngr9km5wbc07rp30nh0apkj6wryrhy7imgm";
+  };
+in
+stdenv.mkDerivation rec {
+  inherit name;
+
+  src = openrct2-src;
+
+  buildInputs = [
+    SDL2
+    cmake
+    curl
+    fontconfig
+    freetype
+    icu
+    jansson
+    libiconv
+    libpng
+    libpthreadstubs
+    libzip
+    libGLU
+    openssl
+    pkgconfig
+    speexdsp
+    zlib
+  ];
+
+  postUnpack = ''
+    cp -r ${objects-src}         $sourceRoot/data/object
+    cp -r ${title-sequences-src} $sourceRoot/data/title
+  '';
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=RELWITHDEBINFO"
+    "-DDOWNLOAD_OBJECTS=OFF"
+    "-DDOWNLOAD_TITLE_SEQUENCES=OFF"
+  ];
+
+  makeFlags = ["all" "g2"];
+
+  preFixup = "ln -s $out/share/openrct2 $out/bin/data";
+
+  meta = with stdenv.lib; {
+    description = "An open source re-implementation of RollerCoaster Tycoon 2 (original game required)";
+    homepage = https://openrct2.io/;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ geistesk ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/openrw/default.nix b/nixpkgs/pkgs/games/openrw/default.nix
new file mode 100644
index 000000000000..63fb24dc4d7d
--- /dev/null
+++ b/nixpkgs/pkgs/games/openrw/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, cmake, sfml, libGLU_combined, bullet, glm, libmad, xlibsWrapper, openal
+, SDL2, boost, ffmpeg }:
+
+stdenv.mkDerivation rec {
+  version = "2017-09-17";
+  name = "openrw-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/rwengine/openrw";
+    rev = "11e90c61e56b60240251cd080f175ddff7d7a101";
+    sha256 = "16qklk9yc4ssxxkicxvww4gmg1c7cm6vhyilyv287vhz1fq9sz49";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [
+    cmake sfml libGLU_combined bullet glm libmad xlibsWrapper openal SDL2 boost ffmpeg
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Unofficial open source recreation of the classic Grand Theft Auto III game executable";
+    homepage = https://github.com/rwengine/openrw;
+    license = licenses.gpl3;
+    longDescription = ''
+      OpenRW is an open source re-implementation of Rockstar Games' Grand Theft
+      Auto III, a classic 3D action game first published in 2001.
+    '';
+    maintainers = with maintainers; [ kragniz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/openspades/default.nix b/nixpkgs/pkgs/games/openspades/default.nix
new file mode 100644
index 000000000000..f218ba762ca9
--- /dev/null
+++ b/nixpkgs/pkgs/games/openspades/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, fetchFromGitHub, fetchpatch, cmake, unzip, zip, file
+, curl, glew , libGL, SDL2, SDL2_image, zlib, freetype, imagemagick
+, openal , opusfile, libogg
+, Cocoa
+}:
+
+stdenv.mkDerivation rec {
+  name = "openspades-${version}";
+  version = "0.1.2";
+  devPakVersion = "33";
+
+  src = fetchFromGitHub {
+    owner = "yvt";
+    repo = "openspades";
+    rev = "v${version}";
+    sha256 = "1mfj46c3pnn1f6awy3b6faxs26i93a5jsrvkdlr12ndsykvi6ng6";
+  };
+
+  nativeBuildInputs = [ cmake imagemagick unzip zip file ];
+
+  buildInputs = [
+    freetype SDL2 SDL2_image libGL zlib curl glew opusfile openal libogg
+  ] ++ stdenv.lib.optionals stdenv.hostPlatform.isDarwin [
+    Cocoa
+  ];
+
+  patches = [
+    # https://github.com/yvt/openspades/pull/793 fix Darwin build
+    (fetchpatch {
+      url = "https://github.com/yvt/openspades/commit/2d13704fefc475b279337e89057b117f711a35d4.diff";
+      sha256 = "1i7rcpjzkjhbv5pp6byzrxv7sb1iamqq5k1vyqlvkbr38k2dz0rv";
+    })
+  ];
+
+  cmakeFlags = [
+    "-DOPENSPADES_INSTALL_BINARY=bin"
+  ];
+
+  devPak = fetchurl {
+    url = "https://github.com/yvt/openspades-paks/releases/download/r${devPakVersion}/OpenSpadesDevPackage-r${devPakVersion}.zip";
+    sha256 = "1bd2fyn7mlxa3xnsvzj08xjzw02baimqvmnix07blfhb78rdq9q9";
+  };
+
+  postPatch = ''
+    sed -i 's,^wget .*,cp $devPak "$PAK_NAME",' Resources/downloadpak.sh
+    patchShebangs Resources
+  '';
+
+  enableParallelBuilding = true;
+
+  NIX_CFLAGS_LINK = [ "-lopenal" ];
+
+  meta = with stdenv.lib; {
+    description = "A compatible client of Ace of Spades 0.75";
+    homepage    = "https://github.com/yvt/openspades/";
+    license     = licenses.gpl3;
+    platforms   = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/openttd/default.nix b/nixpkgs/pkgs/games/openttd/default.nix
new file mode 100644
index 000000000000..237021e98010
--- /dev/null
+++ b/nixpkgs/pkgs/games/openttd/default.nix
@@ -0,0 +1,94 @@
+{ stdenv, fetchurl, fetchzip, pkgconfig, SDL, libpng, zlib, xz, freetype, fontconfig
+, withOpenGFX ? true, withOpenSFX ? true, withOpenMSX ? true
+, withFluidSynth ? true, audioDriver ? "alsa", fluidsynth, soundfont-fluid, procps
+, writeScriptBin, makeWrapper, runtimeShell
+}:
+
+let
+  opengfx = fetchzip {
+    url = "http://binaries.openttd.org/extra/opengfx/0.5.2/opengfx-0.5.2-all.zip";
+    sha256 = "1sjzwl8wfdj0izlx2qdq15bqiy1vzq7gq7drydfwwryk173ig5sa";
+  };
+
+  opensfx = fetchzip {
+    url = "http://binaries.openttd.org/extra/opensfx/0.2.3/opensfx-0.2.3-all.zip";
+    sha256 = "1bb167kszdd6dqbcdjrxxwab6b7y7jilhzi3qijdhprpm5gf1lp3";
+  };
+
+  openmsx = fetchzip {
+    url = "http://binaries.openttd.org/extra/openmsx/0.3.1/openmsx-0.3.1-all.zip";
+    sha256 = "0qnmfzz0v8vxrrvxnm7szphrlrlvhkwn3y92b4iy0b4b6yam0yd4";
+  };
+
+  playmidi = writeScriptBin "playmidi" ''
+    #!${runtimeShell}
+    trap "${procps}/bin/pkill fluidsynth" EXIT
+    ${fluidsynth}/bin/fluidsynth -a ${audioDriver} -i ${soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2 $*
+  '';
+
+in
+stdenv.mkDerivation rec {
+  name = "openttd-${version}";
+  version = "1.8.0";
+
+  src = fetchurl {
+    url = "http://binaries.openttd.org/releases/${version}/${name}-source.tar.xz";
+    sha256 = "0zq8xdg0k92p3s4j9x76591zaqz7k9ra69q008m209vdfffjvly2";
+  };
+
+  nativeBuildInputs = [ pkgconfig makeWrapper ];
+  buildInputs = [ SDL libpng xz zlib freetype fontconfig ]
+    ++ stdenv.lib.optionals withFluidSynth [ fluidsynth soundfont-fluid ];
+
+  prefixKey = "--prefix-dir=";
+
+  configureFlags = [
+    "--without-liblzo2"
+  ];
+
+  makeFlags = "INSTALL_PERSONAL_DIR=";
+
+  postInstall = ''
+    mv $out/games/ $out/bin
+
+    ${stdenv.lib.optionalString withOpenGFX ''
+      cp ${opengfx}/* $out/share/games/openttd/baseset
+    ''}
+
+    mkdir -p $out/share/games/openttd/data
+
+    ${stdenv.lib.optionalString withOpenSFX ''
+      cp ${opensfx}/*.{obs,cat} $out/share/games/openttd/data
+    ''}
+
+    mkdir $out/share/games/openttd/baseset/openmsx
+
+    ${stdenv.lib.optionalString withOpenMSX ''
+      cp ${openmsx}/*.{obm,mid} $out/share/games/openttd/baseset/openmsx
+    ''}
+
+    ${stdenv.lib.optionalString withFluidSynth ''
+      wrapProgram $out/bin/openttd \
+        --add-flags -m \
+        --add-flags extmidi:cmd=${playmidi}/bin/playmidi
+    ''}
+  '';
+
+  meta = {
+    description = ''Open source clone of the Microprose game "Transport Tycoon Deluxe"'';
+    longDescription = ''
+      OpenTTD is a transportation economics simulator. In single player mode,
+      players control a transportation business, and use rail, road, sea, and air
+      transport to move goods and people around the simulated world.
+
+      In multiplayer networked mode, players may:
+        - play competitively as different businesses
+        - play cooperatively controlling the same business
+        - observe as spectators
+    '';
+    homepage = http://www.openttd.org/;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ jcumming the-kenny fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/opentyrian/default.nix b/nixpkgs/pkgs/games/opentyrian/default.nix
new file mode 100644
index 000000000000..c91f9807581e
--- /dev/null
+++ b/nixpkgs/pkgs/games/opentyrian/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchurl, fetchzip, SDL, SDL_net}:
+
+stdenv.mkDerivation rec {
+  name = "opentyrian-${version}";
+  version = "2.1.20130907";
+
+  src = fetchurl {
+    url = "https://bitbucket.org/opentyrian/opentyrian/get/${version}.tar.gz";
+    sha256 = "1jnrkq616pc4dhlbd4n30d65vmn25q84w6jfv9383l9q20cqf2ph";
+  };
+
+  data = fetchzip {
+    url = http://sites.google.com/a/camanis.net/opentyrian/tyrian/tyrian21.zip;
+    sha256 = "1biz6hf6s7qrwn8ky0g6p8w7yg715w7yklpn6258bkks1s15hpdb";
+  };
+
+  buildInputs = [SDL SDL_net];
+
+  patchPhase = "
+    substituteInPlace src/file.c --replace /usr/share $out/share
+  ";
+  buildPhase = "make release";
+  installPhase = "
+    mkdir -p $out/bin
+    cp ./opentyrian $out/bin
+    mkdir -p $out/share/opentyrian/data
+    cp -r $data/* $out/share/opentyrian/data
+  ";
+
+  meta = {
+    description = ''Open source port of the game "Tyrian"'';
+    homepage = https://bitbucket.org/opentyrian/opentyrian;
+    # This does not account of Tyrian data.
+    # license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/games/openxcom/default.nix b/nixpkgs/pkgs/games/openxcom/default.nix
new file mode 100644
index 000000000000..211172cee203
--- /dev/null
+++ b/nixpkgs/pkgs/games/openxcom/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchFromGitHub, cmake, libGLU_combined, zlib, openssl, libyamlcpp, boost
+, SDL, SDL_image, SDL_mixer, SDL_gfx }:
+
+let version = "1.0.0.2018.10.08"; in
+stdenv.mkDerivation {
+  name = "openxcom-${version}";
+  src = fetchFromGitHub {
+    owner = "SupSuper";
+    repo = "OpenXcom";
+    rev = "13049d617fe762b91893faaf7c14ddefa49e2f1d";
+    sha256 = "0vpcfk3g1bnwwmrln14jkj2wvw2z8igxw2mdb7c3y66466wm93ig";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ SDL SDL_gfx SDL_image SDL_mixer boost libyamlcpp libGLU_combined openssl zlib ];
+
+  meta = {
+    description = "Open source clone of UFO: Enemy Unknown";
+    homepage = https://openxcom.org;
+    repositories.git = https://github.com/SupSuper/OpenXcom.git;
+    maintainers = [ stdenv.lib.maintainers.cpages ];
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl3;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/orthorobot/default.nix b/nixpkgs/pkgs/games/orthorobot/default.nix
new file mode 100644
index 000000000000..377dc8652292
--- /dev/null
+++ b/nixpkgs/pkgs/games/orthorobot/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, fetchFromGitHub, zip, love, lua, makeWrapper, makeDesktopItem }:
+
+let
+  pname = "orthorobot";
+  version = "1.1.1";
+
+  icon = fetchurl {
+    url = "http://stabyourself.net/images/screenshots/orthorobot-5.png";
+    sha256 = "13fa4divdqz4vpdij1lcs5kf6w2c4jm3cc9q6bz5h7lkng31jzi6";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "orthorobot";
+    exec = "${pname}";
+    icon = "${icon}";
+    comment = "Robot game";
+    desktopName = "Orthorobot";
+    genericName = "orthorobot";
+    categories = "Game;";
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "Stabyourself";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ca6hvd890kxmamsmsfiqzw15ngsvb4lkihjb6kabgmss61a6s5p";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ lua love zip ];
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase =
+  ''
+    mkdir -p $out/bin $out/share/games/lovegames $out/share/applications
+    zip -9 -r ${pname}.love ./*
+    mv ${pname}.love $out/share/games/lovegames/${pname}.love
+    makeWrapper ${love}/bin/love $out/bin/${pname} --add-flags $out/share/games/lovegames/${pname}.love
+    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+    chmod +x $out/bin/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Recharge the robot";
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.linux;
+    license = licenses.free;
+    downloadPage = http://stabyourself.net/orthorobot/;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/pacvim/default.nix b/nixpkgs/pkgs/games/pacvim/default.nix
new file mode 100644
index 000000000000..59e7c874d141
--- /dev/null
+++ b/nixpkgs/pkgs/games/pacvim/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "pacvim-${version}";
+  version = "2018-05-16";
+  src = fetchFromGitHub {
+    owner = "jmoon018";
+    repo = "PacVim";
+    rev = "ca7c8833c22c5fe97974ba5247ef1fcc00cedb8e";
+    sha256 = "1kq6j7xmsl5qfl1246lyglkb2rs9mnb2rhsdrp18965dpbj2mhx2";
+  };
+
+  buildInputs = [ ncurses ];
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jmoon018/PacVim";
+    description = "PacVim is a game that teaches you vim commands.";
+    maintainers = with maintainers; [ infinisil ];
+    license = licenses.lgpl3;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/performous/default.nix b/nixpkgs/pkgs/games/performous/default.nix
new file mode 100644
index 000000000000..c73c346512f9
--- /dev/null
+++ b/nixpkgs/pkgs/games/performous/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, gettext
+, glibmm, libxmlxx, pango, librsvg
+, SDL2, glew, boost, libav, portaudio, epoxy
+}:
+
+stdenv.mkDerivation rec {
+  name = "performous-${version}";
+  version = "1.1";
+
+  meta = with stdenv.lib; {
+    description = "Karaoke, band and dancing game";
+    homepage    = "http://performous.org/";
+    license     = licenses.gpl2Plus;
+    platforms   = platforms.linux;
+  };
+
+  src = fetchFromGitHub {
+    owner = "performous";
+    repo = "performous";
+    rev = version;
+    sha256 = "08j0qhr65l7qnd5vxl4l07523qpvdwi31h4vzl3lfiinx1zcgr4x";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig gettext ];
+
+  buildInputs = [
+    glibmm libxmlxx pango librsvg
+    SDL2 glew boost libav portaudio epoxy
+  ];
+}
diff --git a/nixpkgs/pkgs/games/pingus/default.nix b/nixpkgs/pkgs/games/pingus/default.nix
new file mode 100644
index 000000000000..e8bac9571f89
--- /dev/null
+++ b/nixpkgs/pkgs/games/pingus/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchurl, fetchpatch, scons, SDL, SDL_image, boost, libpng, SDL_mixer
+, pkgconfig, libGLU_combined}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="pingus";
+    version="0.7.6";
+    name="pingus-0.7.6";
+    hash="0q34d2k6anzqvb0mf67x85q92lfx9jr71ry13dlp47jx0x9i573m";
+    url="http://pingus.googlecode.com/files/pingus-0.7.6.tar.bz2";
+    sha256="0q34d2k6anzqvb0mf67x85q92lfx9jr71ry13dlp47jx0x9i573m";
+  };
+in
+stdenv.mkDerivation rec {
+  inherit (s) name version;
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [scons SDL SDL_image boost libpng SDL_mixer libGLU_combined];
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  patches = [
+    # fix build with gcc7
+    (fetchpatch {
+      url = https://github.com/Pingus/pingus/commit/df6e2f445d3e2925a94d22faeb17be9444513e92.patch;
+      sha256 = "0nqyhznnnvpgfa6rfv8rapjfpw99b67n97jfqp9r3hpib1b3ja6p";
+    })
+  ];
+  makeFlags = '' PREFIX="$(out)" '';
+  meta = {
+    inherit (s) version;
+    description = ''A puzzle game with mechanics similar to Lemmings'';
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    license = stdenv.lib.licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/games/pingus/default.upstream b/nixpkgs/pkgs/games/pingus/default.upstream
new file mode 100644
index 000000000000..6b4eb31aa5f6
--- /dev/null
+++ b/nixpkgs/pkgs/games/pingus/default.upstream
@@ -0,0 +1 @@
+url http://pingus.seul.org/download.html
diff --git a/nixpkgs/pkgs/games/pioneer/default.nix b/nixpkgs/pkgs/games/pioneer/default.nix
new file mode 100644
index 000000000000..ffe0841184b1
--- /dev/null
+++ b/nixpkgs/pkgs/games/pioneer/default.nix
@@ -0,0 +1,39 @@
+{ fetchFromGitHub, stdenv, autoconf, automake, pkgconfig
+, curl, libsigcxx, SDL2, SDL2_image, freetype, libvorbis, libpng, assimp, libGLU_combined
+}:
+
+stdenv.mkDerivation rec {
+  name = "pioneer-${version}";
+  version = "20180203";
+
+  src = fetchFromGitHub{
+    owner = "pioneerspacesim";
+    repo = "pioneer";
+    rev = version;
+    sha256 = "0hp2mf36kj2v93hka8m8lxw2qhmnjc62wjlpw7c7ix0r8xa01i6h";
+  };
+
+  nativeBuildInputs = [ autoconf automake pkgconfig ];
+
+  buildInputs = [ curl libsigcxx SDL2 SDL2_image freetype libvorbis libpng assimp libGLU_combined ];
+
+  NIX_CFLAGS_COMPILE = [
+    "-I${SDL2}/include/SDL2"
+  ];
+
+  preConfigure = ''
+     export PIONEER_DATA_DIR="$out/share/pioneer/data";
+    ./bootstrap
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A space adventure game set in the Milky Way galaxy at the turn of the 31st century";
+    homepage = https://pioneerspacesim.net;
+    license = with licenses; [
+        gpl3 cc-by-sa-30
+    ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/pioneers/default.nix b/nixpkgs/pkgs/games/pioneers/default.nix
new file mode 100644
index 000000000000..53de9fa29e2d
--- /dev/null
+++ b/nixpkgs/pkgs/games/pioneers/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchurl, gtk3, pkgconfig, intltool } :
+
+stdenv.mkDerivation rec {
+  name = "pioneers-15.4";
+  src = fetchurl {
+    url = "mirror://sourceforge/pio/${name}.tar.gz";
+    sha256 = "1p1d18hrfmqcnghip3shkzcs5qkz6j99jvkdkqfi7pqdvjc323cs";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+  buildInputs = [ gtk3 ];
+
+  meta = {
+    homepage = http://pio.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl2Plus;
+    description = "Addicting game based on The Settlers of Catan";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/planetaryannihilation/default.nix b/nixpkgs/pkgs/games/planetaryannihilation/default.nix
new file mode 100644
index 000000000000..391ced362075
--- /dev/null
+++ b/nixpkgs/pkgs/games/planetaryannihilation/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, config, fetchurl, patchelf, makeWrapper, gtk2, glib, udev, alsaLib, atk
+, nspr, fontconfig, cairo, pango, nss, freetype, gnome2, gdk_pixbuf, curl, systemd, xorg }:
+
+# TODO: use dynamic attributes once Nix 1.7 is out
+assert ((config.planetary_annihilation or null).url or null) != null;
+assert ((config.planetary_annihilation or null).sha256 or null) != null;
+
+/* to setup:
+ $ cat ~/.config/nixpkgs/config.nix
+ {
+  planetary_annihilation = {
+    url = "file:///home/user/PA_Linux_62857.tar.bz2";
+    sha256 = "0imi3k5144dsn3ka9khx3dj76klkw46ga7m6rddqjk4yslwabh3k";
+  };
+}
+*/
+
+stdenv.mkDerivation {
+  name = "planetary-annihalation";
+
+  src = fetchurl {
+    inherit (config.planetary_annihilation) url sha256;
+  };
+
+  nativeBuildInputs = [ patchelf makeWrapper ];
+ 
+  installPhase = ''
+    mkdir -p $out/{bin,lib}
+
+    cp -R * $out/
+    mv $out/*.so $out/lib
+    ln -s $out/PA $out/bin/PA
+
+    ln -s ${systemd}/lib/libudev.so.1 $out/lib/libudev.so.0
+
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/PA"
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib xorg.libXdamage xorg.libXfixes gtk2 glib stdenv.glibc.out "$out" xorg.libXext pango udev xorg.libX11 xorg.libXcomposite alsaLib atk nspr fontconfig cairo pango nss freetype gnome2.GConf gdk_pixbuf xorg.libXrender ]}:{stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" "$out/host/CoherentUI_Host"
+
+    wrapProgram $out/PA --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib stdenv.glibc.out xorg.libX11 xorg.libXcursor gtk2 glib curl "$out" ]}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64"
+
+    for f in $out/lib/*; do
+      patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib curl xorg.libX11 stdenv.glibc.out xorg.libXcursor "$out" ]}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" $f
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.uberent.com/pa/;
+    description = "Next-generation RTS that takes the genre to a planetary scale";
+    license = stdenv.lib.licenses.unfree;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.domenkozar ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/pokerth/default.nix b/nixpkgs/pkgs/games/pokerth/default.nix
new file mode 100644
index 000000000000..e32bc06b8f5e
--- /dev/null
+++ b/nixpkgs/pkgs/games/pokerth/default.nix
@@ -0,0 +1,74 @@
+{ stdenv, fetchFromGitHub, runCommand, fetchpatch, patchutils, qmake, qtbase
+, SDL, SDL_mixer, boost, curl, gsasl, libgcrypt, libircclient, protobuf, sqlite
+, tinyxml2, target ? "client" }:
+
+with stdenv.lib;
+
+let
+  hiDPI = fetchpatch {
+    url = https://github.com/pokerth/pokerth/commit/ad8c9cabfb85d8293720d0f14840278d38b5feeb.patch;
+    sha256 = "192x3lqvd1fanasb95shdygn997qfrpk1k62k1f4j3s5chkwvjig";
+  };
+
+  revertPatch = patch: runCommand "revert-${patch.name}" {} ''
+    ${patchutils}/bin/interdiff ${patch} /dev/null > $out
+  '';
+in
+
+stdenv.mkDerivation rec {
+  name = "pokerth-${target}-${version}";
+  version = "1.1.2";
+
+  src = fetchFromGitHub {
+    owner = "pokerth";
+    repo = "pokerth";
+    rev = "f5688e01b0efb37035e3b0e3a432200185b9a0c5";
+    sha256 = "0la8d036pbscjnbxf8lkrqjfq8a4ywsfwxil452fhlays6mr19h0";
+  };
+
+  patches = [
+    (revertPatch hiDPI)
+  ];
+
+  postPatch = ''
+    for f in *.pro; do
+      substituteInPlace $f \
+        --replace '$$'{PREFIX}/include/libircclient ${libircclient.dev}/include/libircclient \
+        --replace 'LIB_DIRS =' 'LIB_DIRS = ${boost.out}/lib' \
+        --replace /opt/gsasl ${gsasl}
+    done
+  '';
+
+  nativeBuildInputs = [ qmake ];
+
+  buildInputs = [
+    SDL
+    SDL_mixer
+    boost
+    curl
+    gsasl
+    libgcrypt
+    libircclient
+    protobuf
+    qtbase
+    sqlite
+    tinyxml2
+  ];
+
+  qmakeFlags = [
+    "CONFIG+=${target}"
+    "pokerth.pro"
+  ];
+
+  NIX_CFLAGS_COMPILE = [ "-I${SDL.dev}/include/SDL" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = https://www.pokerth.net;
+    description = "Poker game ${target}";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ obadz yegortimoshenko ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/pong3d/default.nix b/nixpkgs/pkgs/games/pong3d/default.nix
new file mode 100644
index 000000000000..74e5e50b4e85
--- /dev/null
+++ b/nixpkgs/pkgs/games/pong3d/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, libX11}:
+
+stdenv.mkDerivation {
+  name = "3dpong-0.5";
+  src = fetchurl {
+    url = ftp://ftp.tuxpaint.org/unix/x/3dpong/src/3dpong-0.5.tar.gz;
+    sha256 = "1ibb79sbzlbn4ra3n0qk22gqr6fg7q0jy6cm0wg2qj4z64c7hmdi";
+  };
+
+  buildInputs = [ libX11 ];
+
+  preConfigure = ''
+    sed -i s,/usr/local,$out, Makefile
+    mkdir -p $out/bin
+  '';
+
+  meta = {
+    homepage = http://www.newbreedsoftware.com/3dpong/;
+    description = "One or two player 3d sports game based on Pong from Atari";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/prboom/default.nix b/nixpkgs/pkgs/games/prboom/default.nix
new file mode 100644
index 000000000000..520f6503edfd
--- /dev/null
+++ b/nixpkgs/pkgs/games/prboom/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, SDL, SDL_mixer, SDL_net
+, libGLU_combined ? assert false; null
+, useOpenGL ? stdenv.hostPlatform == stdenv.buildPlatform
+}:
+
+stdenv.mkDerivation rec {
+  name = "prboom-2.5.0";
+  src = fetchurl {
+    url = mirror://sourceforge/prboom/prboom-2.5.0.tar.gz;
+    sha256 = "1bjb04q8dk232956k30qlpq6q0hxb904yh1nflr87jcc1x3iqv12";
+  };
+
+  buildInputs = [ SDL SDL_mixer SDL_net ]
+    ++ stdenv.lib.optional useOpenGL libGLU_combined;
+
+  doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
+
+  configureFlags = [
+    (stdenv.lib.enableFeature useOpenGL "gl")
+    (stdenv.lib.enableFeature doCheck "sdltest")
+  ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--disable-cpu-opt"
+    "--without-x"
+    "ac_cv_type_uid_t=yes"
+    "ac_cv_type_gid_t=yes"
+  ];
+
+  postInstall = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+    mv $out/games/ $out/bin
+  '';
+}
diff --git a/nixpkgs/pkgs/games/privateer/0001-fix-VSFile-constructor.patch b/nixpkgs/pkgs/games/privateer/0001-fix-VSFile-constructor.patch
new file mode 100644
index 000000000000..05b02fe5d73b
--- /dev/null
+++ b/nixpkgs/pkgs/games/privateer/0001-fix-VSFile-constructor.patch
@@ -0,0 +1,25 @@
+From e779a2b8d53e7e4721ce5ddb8e8b1caa753b66dd Mon Sep 17 00:00:00 2001
+From: Florian Friesdorf <flo@chaoflow.net>
+Date: Wed, 4 Jan 2012 23:32:19 +0100
+Subject: [PATCH] fix VSFile constructor
+
+---
+ src/vsfilesystem.h |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/vsfilesystem.h b/src/vsfilesystem.h
+index 4bb7a66..71bf9b9 100644
+--- a/src/vsfilesystem.h
++++ b/src/vsfilesystem.h
+@@ -291,7 +291,7 @@ namespace VSFileSystem
+ 			VSFile();
+ 			VSFile( const char * buffer, long size, VSFileType type=ZoneBuffer, VSFileMode=ReadOnly);
+ 			VSFile( const char * filename, VSFileType type=UnknownFile, VSFileMode=ReadOnly);
+-			VSFile( const string &filename, VSFileType type=UnknownFile) { VSFile::VSFile( filename.c_str(), type); }
++			VSFile( const string &filename, VSFileType type=UnknownFile) { VSFile( filename.c_str(), type); }
+   			~VSFile();
+ 
+ 			FILE *	GetFP() { return this->fp; } // This is still needed for special cases (when loading PNG files)
+-- 
+1.7.8
+
diff --git a/nixpkgs/pkgs/games/privateer/default.nix b/nixpkgs/pkgs/games/privateer/default.nix
new file mode 100644
index 000000000000..d4945d43c7d7
--- /dev/null
+++ b/nixpkgs/pkgs/games/privateer/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchsvn, boost, cmake, ffmpeg, freeglut, glib,
+  gtk2, libjpeg, libpng, libpthreadstubs, libvorbis, libXau, libXdmcp,
+  libXmu, libGLU_combined, openal, pixman, pkgconfig, python27, SDL }:
+
+stdenv.mkDerivation {
+  name = "privateer-1.03";
+
+  src = fetchsvn {
+    #url = "mirror://sourceforge/project/privateer/Wing%20Commander%20Privateer/Privateer%20Gemini%20Gold%201.03/PrivateerGold1.03.bz2.bin";
+    url = "https://privateer.svn.sourceforge.net/svnroot/privateer/privgold/trunk/engine";
+    rev = "294";
+    sha256 = "e1759087d4565d3fc95e5c87d0f6ddf36b2cd5befec5695ec56ed5f3cd144c63";
+  };
+
+  buildInputs =
+    [ boost cmake ffmpeg freeglut glib gtk2 libjpeg libpng
+      libpthreadstubs libvorbis libXau libXdmcp libXmu libGLU_combined openal
+      pixman pkgconfig python27 SDL ];
+
+  patches = [ ./0001-fix-VSFile-constructor.patch ];
+
+  preConfigure = ''
+    NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags gtk+-2.0)"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp vegastrike $out/bin
+    cp vegaserver $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://privateer.sourceforge.net/;
+    description = "Adventure space flight simulation computer game";
+    license = licenses.gpl2Plus; # and a special license for art data
+    # https://sourceforge.net/p/privateer/code/HEAD/tree/privgold/trunk/data/art-license.txt
+
+    maintainers = with maintainers; [ ];
+    platforms = with platforms; linux ++ darwin;
+    hydraPlatforms = [];
+    broken = true; # it won't build
+  };
+}
diff --git a/nixpkgs/pkgs/games/pro-office-calculator/default.nix b/nixpkgs/pkgs/games/pro-office-calculator/default.nix
new file mode 100644
index 000000000000..0fcf5c60c2bc
--- /dev/null
+++ b/nixpkgs/pkgs/games/pro-office-calculator/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, tinyxml-2, cmake, qtbase, qtmultimedia, fetchpatch }:
+stdenv.mkDerivation rec {
+  version = "1.0.13";
+  name = "pro-office-calculator-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "RobJinman";
+    repo   = "pro_office_calc";
+    rev    = "v${version}";
+    sha256 = "1v75cysargmp4fk7px5zgib1p6h5ya4w39rndbzk614fcnv0iipd";
+  };
+
+  buildInputs = [ qtbase qtmultimedia tinyxml-2 ];
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "Just an ordinary calculator. Nothing to see here...";
+    homepage = http://proofficecalculator.com/;
+    maintainers = [ maintainers.pmiddend ];
+    platforms = platforms.linux;
+    license = licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/games/pysolfc/default.nix b/nixpkgs/pkgs/games/pysolfc/default.nix
new file mode 100644
index 000000000000..85424ebea9ba
--- /dev/null
+++ b/nixpkgs/pkgs/games/pysolfc/default.nix
@@ -0,0 +1,39 @@
+{ fetchurl, python2, stdenv }:
+
+with python2.pkgs;
+
+buildPythonApplication rec {
+  pname = "PySolFC";
+  version = "2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/pysolfc/${pname}-${version}.tar.bz2";
+    sha256 = "0v0v8iflw55f5mghglkw80j8b7lv1hffjassfhqc4y84dmz8xjyv";
+  };
+
+  patches = [
+    ./pysolfc-datadir.patch
+  ];
+
+  propagatedBuildInputs = [
+    tkinter
+  ];
+
+  # No tests in archive
+  doCheck = false;
+
+  postInstall = ''
+    # executables should not have an extension
+    pushd $out/bin
+    mv pysol.py pysol
+    rm pysol.pyc
+    popd
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A collection of more than 1000 solitaire card games";
+    homepage = http://pysolfc.sourceforge.net/;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ kierdavis ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/pysolfc/pysolfc-datadir.patch b/nixpkgs/pkgs/games/pysolfc/pysolfc-datadir.patch
new file mode 100644
index 000000000000..d9f1cf4e09f5
--- /dev/null
+++ b/nixpkgs/pkgs/games/pysolfc/pysolfc-datadir.patch
@@ -0,0 +1,19 @@
+diff --git a/pysollib/util.py b/pysollib/util.py
+index 8de3f00..26f4bc7 100644
+--- a/pysollib/util.py
++++ b/pysollib/util.py
+@@ -110,13 +110,7 @@ class DataLoader:
+         head, tail = os.path.split(argv0)
+         if not head:
+             head = os.curdir
+-        # dir where placed startup script
+-        path.append(head)
+-        path.append(os.path.join(head, "data"))
+-        path.append(os.path.join(head, os.pardir, "data"))
+-        # dir where placed pysol package
+-        path.append(os.path.join(sys.path[0], "data"))
+-        path.append(os.path.join(sys.path[0], "pysollib", "data"))
++        path.append(os.path.join(head, "..", "share", "PySolFC"))
+         # from settings.py
+         path.extend(DATA_DIRS)
+         # check path for valid directories
diff --git a/nixpkgs/pkgs/games/qgo/default.nix b/nixpkgs/pkgs/games/qgo/default.nix
new file mode 100644
index 000000000000..924101c2d4a8
--- /dev/null
+++ b/nixpkgs/pkgs/games/qgo/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchFromGitHub
+, makeWrapper
+, qmake
+, qtbase
+, qtmultimedia
+, qttranslations
+}:
+
+stdenv.mkDerivation rec {
+  name = "qgo-${version}";
+  version = "unstable-2017-12-18";
+
+  meta = with stdenv.lib; {
+    description = "A Go client based on Qt5";
+    longDescription = ''
+      qGo is a Go Client based on Qt 5. It supports playing online at
+      IGS-compatible servers (including some special tweaks for WING and LGS,
+      also NNGS was reported to work) and locally against gnugo (or other
+      GTP-compliant engines). It also has rudimentary support for editing SGF
+      files and parital support for CyberORO/WBaduk, Tygem, Tom, and eWeiqi
+      (developers of these backends are currently inactive, everybody is welcome
+      to take them over).
+
+      Go is an ancient Chinese board game. It's called "åœæ£‹(Wei Qi)" in
+      Chinese, "囲ç¢(Yi Go)" in Japanese, "바둑(Baduk)" in Korean.
+    '';
+    homepage = https://github.com/pzorin/qgo;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ zalakain ];
+  };
+
+  src = fetchFromGitHub {
+    owner = "pzorin";
+    repo = "qgo";
+    rev = "bef526dda4c79686edd95c88cc68de24f716703c";
+    sha256 = "1xzkayclmhsi07p9mnbf8185jw8n5ikxp2mik3x8qz1i6rmrfl5b";
+  };
+
+  patches = [ ./fix-paths.patch ];
+  postPatch = ''
+    sed -i 's|@out@|'"''${out}"'|g' src/src.pro src/defines.h
+  '';
+  nativeBuildInputs = [ makeWrapper qmake ];
+  buildInputs = [ qtbase qtmultimedia qttranslations ];
+  enableParallelBuilding = true;
+
+}
diff --git a/nixpkgs/pkgs/games/qgo/fix-paths.patch b/nixpkgs/pkgs/games/qgo/fix-paths.patch
new file mode 100644
index 000000000000..c1d1e399ec1a
--- /dev/null
+++ b/nixpkgs/pkgs/games/qgo/fix-paths.patch
@@ -0,0 +1,50 @@
+diff --git a/src/defines.h b/src/defines.h
+index 5d40955..82d0627 100644
+--- a/src/defines.h
++++ b/src/defines.h
+@@ -48,7 +48,7 @@
+ * GNUgo default level
+ */
+ #define DEFAULT_ENGINE "gnugo"
+-#define DEFAULT_ENGINE_PATH "/usr/games/"
++#define DEFAULT_ENGINE_PATH ""
+ #define DEFAULT_ENGINE_OPTIONS "--mode gtp --quiet --level 10"
+ 
+ 
+@@ -220,8 +220,8 @@ extern QString applicationPath;
+ 	#define SOUND_PATH_PREFIX			"qGo.app/Contents/Resources/Sounds/"
+     #define TRANSLATIONS_PATH		"qGo.app/Contents/Resources/Translations/"
+ #else
+-    #define SOUND_PATH_PREFIX		"/usr/share/qgo/sounds/"
+-    #define TRANSLATIONS_PATH		"/usr/share/qgo/languages"
++    #define SOUND_PATH_PREFIX		"/@out@/share/qgo/sounds/"
++    #define TRANSLATIONS_PATH		"/@out@/share/qgo/languages"
+ #endif
+ 
+ #endif
+diff --git a/src/src.pro b/src/src.pro
+index f989ce7..b7d691f 100644
+--- a/src/src.pro
++++ b/src/src.pro
+@@ -165,17 +165,17 @@ SOURCES += displayboard.cpp \
+     newgamedialog.cpp
+ 
+ unix*:!macx-* {
+-    QGO_INSTALL_PATH = /usr/share/qgo
+-    QGO_INSTALL_BIN_PATH = /usr/bin
++    QGO_INSTALL_PATH = @out@/share/qgo
++    QGO_INSTALL_BIN_PATH = /@out@/bin
+ 
+-    icon.path = /usr/share/pixmaps
++    icon.path = @out@/share/pixmaps
+     icon.files = resources/pics/qgo.png
+     icon.files += resources/pics/qgo_16x16.xpm
+     icon.files += resources/pics/qgo_32x32.xpm
+     icon.files += resources/pics/qgo_48x48.png
+     icon.files += resources/pics/qgo_48x48.xpm
+     INSTALLS += icon
+-    desktopfile.path = /usr/share/applications
++    desktopfile.path = @out@/share/applications
+     desktopfile.files = qgo.desktop
+     INSTALLS += desktopfile
+ }
diff --git a/nixpkgs/pkgs/games/qqwing/default.nix b/nixpkgs/pkgs/games/qqwing/default.nix
new file mode 100644
index 000000000000..dfd384761921
--- /dev/null
+++ b/nixpkgs/pkgs/games/qqwing/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, perl, autoconf, automake, libtool }:
+
+stdenv.mkDerivation rec {
+  name = "qqwing-${version}";
+  version = "1.3.4";
+
+  src = fetchFromGitHub {
+    owner = "stephenostermiller";
+    repo = "qqwing";
+    rev = "v${version}";
+    sha256 = "1qq0vi4ch4y3a5fb1ncr0yzkj3mbvdiwa3d51qpabq94sh0cz09i";
+  };
+
+  postPatch = ''
+    for file in "src-first-comment.pl" "src_neaten.pl"; do
+      substituteInPlace "build/$file" \
+        --replace "#!/usr/bin/perl" "#!${perl}/bin/perl"
+    done
+
+    substituteInPlace "build/cpp_install.sh" \
+      --replace "sudo " ""
+  '';
+
+  buildInputs = [ perl autoconf automake libtool ];
+
+  makeFlags = [ "prefix=$(out)" "tgz" ];
+
+  meta = with stdenv.lib; {
+    homepage = https://qqwing.com;
+    description = "Sudoku generating and solving software";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/quake2/yquake2/default.nix b/nixpkgs/pkgs/games/quake2/yquake2/default.nix
new file mode 100644
index 000000000000..1e7032eb05ce
--- /dev/null
+++ b/nixpkgs/pkgs/games/quake2/yquake2/default.nix
@@ -0,0 +1,93 @@
+{ stdenv, lib, fetchFromGitHub, buildEnv, cmake, makeWrapper
+, SDL2, libGL
+, oggSupport ? true, libogg, libvorbis
+, openalSupport ? true, openal
+, zipSupport ? true, zlib
+}:
+
+let
+  mkFlag = b: if b then "ON" else "OFF";
+
+  games = import ./games.nix { inherit stdenv lib fetchFromGitHub cmake; };
+
+  wrapper = import ./wrapper.nix { inherit stdenv lib buildEnv makeWrapper yquake2; };
+
+  yquake2 = stdenv.mkDerivation rec {
+    name = "yquake2-${version}";
+    version = "7.30";
+
+    src = fetchFromGitHub {
+      owner = "yquake2";
+      repo = "yquake2";
+      rev = "QUAKE2_${builtins.replaceStrings ["."] ["_"] version}";
+      sha256 = "0xfr620k1hns70dckv6k0kc72jbiwyghcys904jpriv5x94lnrlc";
+    };
+
+    enableParallelBuilding = true;
+
+    nativeBuildInputs = [ cmake ];
+
+    buildInputs = [ SDL2 libGL ]
+      ++ lib.optionals oggSupport [ libogg libvorbis ]
+      ++ lib.optional openalSupport openal
+      ++ lib.optional zipSupport zlib;
+
+    cmakeFlags = [
+      "-DCMAKE_BUILD_TYPE=Release"
+      "-DOGG_SUPPORT=${mkFlag oggSupport}"
+      "-DOPENAL_SUPPORT=${mkFlag openalSupport}"
+      "-DZIP_SUPPORT=${mkFlag zipSupport}"
+      "-DSYSTEMWIDE_SUPPORT=ON"
+    ];
+
+    preConfigure = ''
+      # Since we can't expand $out in `cmakeFlags`
+      cmakeFlags="$cmakeFlags -DSYSTEMDIR=$out/share/games/quake2"
+    '';
+
+    installPhase = ''
+      # Yamagi Quake II expects all binaries (executables and libs) to be in the
+      # same directory.
+      mkdir -p $out/bin $out/lib/yquake2 $out/share/games/quake2
+      cp -r release/* $out/lib/yquake2
+      ln -s $out/lib/yquake2/quake2 $out/bin/yquake2
+      ln -s $out/lib/yquake2/q2ded $out/bin/yq2ded
+      cp $src/stuff/yq2.cfg $out/share/games/quake2
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Yamagi Quake II client";
+      homepage = "https://www.yamagi.org/quake2/";
+      license = licenses.gpl2;
+      platforms = platforms.unix;
+      maintainers = with maintainers; [ tadfisher ];
+    };
+  };
+
+in rec {
+  inherit yquake2;
+
+  yquake2-ctf = wrapper {
+    games = [ games.ctf ];
+    name = "yquake2-ctf";
+    inherit (games.ctf) description;
+  };
+
+  yquake2-ground-zero = wrapper {
+    games = [ games.ground-zero ];
+    name = "yquake2-ground-zero";
+    inherit (games.ground-zero) description;
+  };
+
+  yquake2-the-reckoning = wrapper {
+    games = [ games.the-reckoning ];
+    name = "yquake2-the-reckoning";
+    inherit (games.the-reckoning) description;
+  };
+
+  yquake2-all-games = wrapper {
+    games = lib.attrValues games;
+    name = "yquake2-all-games";
+    description = "Yamagi Quake II with all add-on games";
+  };
+}
diff --git a/nixpkgs/pkgs/games/quake2/yquake2/games.nix b/nixpkgs/pkgs/games/quake2/yquake2/games.nix
new file mode 100644
index 000000000000..059fb26eb9b8
--- /dev/null
+++ b/nixpkgs/pkgs/games/quake2/yquake2/games.nix
@@ -0,0 +1,59 @@
+{ stdenv, lib, fetchFromGitHub, cmake }:
+
+let
+  games = {
+    ctf = {
+      id = "ctf";
+      version = "1.05";
+      description = "'Capture The Flag' for Yamagi Quake II";
+      sha256 = "15ihspyshls645ig0gq6bwdzvghyyysqk60g6ad3n4idb2ms52md";
+    };
+
+    ground-zero = {
+      id = "rogue";
+      version = "2.04";
+      description = "'Ground Zero' for Yamagi Quake II";
+      sha256 = "0x1maaycrxv7d3xvvk1ih2zymhvcd3jnab7g3by8qh6g5y33is5l";
+    };
+
+    the-reckoning = {
+      id = "xatrix";
+      version = "2.05";
+      description = "'The Reckoning' for Yamagi Quake II";
+      sha256 = "0gf2ryhgz8nw1mb1arlbriihjsx09fa0wmkgcayc8ijignfi1qkh";
+    };
+  };
+
+  toDrv = title: data: stdenv.mkDerivation rec {
+    inherit (data) id version description sha256;
+    inherit title;
+
+    name = "yquake2-${title}-${version}";
+
+    src = fetchFromGitHub {
+      inherit sha256;
+      owner = "yquake2";
+      repo = data.id;
+      rev = "${lib.toUpper id}_${builtins.replaceStrings ["."] ["_"] version}";
+    };
+
+    enableParallelBuilding = true;
+
+    nativeBuildInputs = [ cmake ];
+
+    installPhase = ''
+      mkdir -p $out/lib/yquake2/${id}
+      cp Release/* $out/lib/yquake2/${id}
+    '';
+
+    meta = with stdenv.lib; {
+      inherit (data) description;
+      homepage = "https://www.yamagi.org/quake2/";
+      license = licenses.unfree;
+      platforms = platforms.unix;
+      maintainers = with maintainers; [ tadfisher ];
+    };
+  };
+
+in
+  lib.mapAttrs toDrv games
diff --git a/nixpkgs/pkgs/games/quake2/yquake2/wrapper.nix b/nixpkgs/pkgs/games/quake2/yquake2/wrapper.nix
new file mode 100644
index 000000000000..9ab086f96a21
--- /dev/null
+++ b/nixpkgs/pkgs/games/quake2/yquake2/wrapper.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, buildEnv, makeWrapper, yquake2 }:
+
+{ games
+, name
+, description
+}:
+
+let
+  env = buildEnv {
+    name = "${name}-env";
+    paths = [ yquake2 ] ++ games;
+  };
+
+in stdenv.mkDerivation {
+  name = "${name}-${stdenv.lib.getVersion yquake2}";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildCommand = ''
+    mkdir -p $out/bin
+  '' + lib.concatMapStringsSep "\n" (game: ''
+    makeWrapper ${env}/bin/yquake2 $out/bin/yquake2-${game.title} \
+      --add-flags "+set game ${game.id}"
+    makeWrapper ${env}/bin/yq2ded $out/bin/yq2ded-${game.title} \
+      --add-flags "+set game ${game.id}"
+  '') games;
+
+  meta = {
+    inherit description;
+  };
+}
diff --git a/nixpkgs/pkgs/games/quake3/content/demo.nix b/nixpkgs/pkgs/games/quake3/content/demo.nix
new file mode 100644
index 000000000000..88ba8679e8a7
--- /dev/null
+++ b/nixpkgs/pkgs/games/quake3/content/demo.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+let
+  version = "1.11-6";
+in stdenv.mkDerivation {
+  name = "quake3-demodata-${version}";
+
+  src = fetchurl {
+    url = "https://ftp.gwdg.de/pub/misc/ftp.idsoftware.com/idstuff/quake3/linux/linuxq3ademo-${version}.x86.gz.sh";
+    sha256 = "1v54a1hx1bczk9hgn9qhx8vixsy7xn7wj2pylhfjsybfkgvf7pk4";
+  };
+
+  buildCommand = ''
+    tail -n +165 $src | tar xfz -
+
+    mkdir -p $out/baseq3
+    cp demoq3/*.pk3 $out/baseq3
+  '';
+
+  preferLocalBuild = true;
+
+  meta = with stdenv.lib; {
+    description = "Quake 3 Arena demo content";
+    license = licenses.unfreeRedistributable;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/quake3/content/pointrelease.nix b/nixpkgs/pkgs/games/quake3/content/pointrelease.nix
new file mode 100644
index 000000000000..f35aaaad3527
--- /dev/null
+++ b/nixpkgs/pkgs/games/quake3/content/pointrelease.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+let
+  version = "1.32b-3";
+in stdenv.mkDerivation {
+  name = "quake3-pointrelease-${version}";
+
+  src = fetchurl {
+    url = "https://ftp.gwdg.de/pub/misc/ftp.idsoftware.com/idstuff/quake3/linux/linuxq3apoint-${version}.x86.run";
+    sha256 = "11piyksfqyxwl9mpgbc71w9sacsh4d3cdsgia0cy0dbbap2k4qf3";
+  };
+
+  buildCommand = ''
+    sh $src --tar xf
+
+    mkdir -p $out/baseq3
+    cp baseq3/*.pk3 $out/baseq3
+  '';
+
+  preferLocalBuild = true;
+
+  meta = with stdenv.lib; {
+    description = "Quake 3 Arena point release";
+    license = licenses.unfreeRedistributable;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/quake3/ioquake/default.nix b/nixpkgs/pkgs/games/quake3/ioquake/default.nix
new file mode 100644
index 000000000000..0a3256976755
--- /dev/null
+++ b/nixpkgs/pkgs/games/quake3/ioquake/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, which, pkgconfig, SDL2, libGLU_combined, openalSoft
+, curl, speex, opusfile, libogg, libvorbis, libopus, libjpeg, mumble, freetype
+}:
+
+stdenv.mkDerivation rec {
+  name = "ioquake3-git-${version}";
+  version = "2018-12-14";
+
+  src = fetchFromGitHub {
+    owner = "ioquake";
+    repo = "ioq3";
+    rev = "b0d2b141e702aafc3dcf77a026e12757f00e45ed";
+    sha256 = "17qkqi22f2fyh6bnfcf1zz2lycgv08d6aw52sf0hqw7r3qq86d08";
+  };
+
+  nativeBuildInputs = [ which pkgconfig ];
+  buildInputs = [
+    SDL2 libGLU_combined openalSoft curl speex opusfile libogg libvorbis libopus libjpeg
+    freetype mumble
+  ];
+
+  enableParallelBuilding = true;
+
+  makeFlags = [ "USE_INTERNAL_LIBS=0" "USE_FREETYPE=1" "USE_OPENAL_DLOPEN=0" "USE_CURL_DLOPEN=0" ];
+
+  installTargets = [ "copyfiles" ];
+
+  installFlags = [ "COPYDIR=$(out)" ];
+
+  preInstall = ''
+    mkdir -p $out/baseq3
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://ioquake3.org/;
+    description = "First person shooter engine based on the Quake 3: Arena and Quake 3: Team Arena";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ rvolosatovs eelco abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/quake3/wrapper/default.nix b/nixpkgs/pkgs/games/quake3/wrapper/default.nix
new file mode 100644
index 000000000000..4ab53d677324
--- /dev/null
+++ b/nixpkgs/pkgs/games/quake3/wrapper/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, buildEnv, lib, libGL, ioquake3, makeWrapper }:
+
+{ paks, name ? (stdenv.lib.head paks).name, description ? "" }:
+
+let
+  libPath = lib.makeLibraryPath [ libGL stdenv.cc.cc ];
+  env = buildEnv {
+    name = "quake3-env";
+    paths = [ ioquake3 ] ++ paks;
+  };
+
+in stdenv.mkDerivation {
+  name = "${name}-${ioquake3.name}";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildCommand = ''
+    mkdir -p $out/bin
+
+    # We add Mesa to the end of $LD_LIBRARY_PATH to provide fallback
+    # software rendering. GCC is needed so that libgcc_s.so can be found
+    # when Mesa is used.
+    makeWrapper ${env}/ioquake3.* $out/bin/quake3 \
+      --suffix-each LD_LIBRARY_PATH ':' "${libPath}" \
+      --add-flags "+set fs_basepath ${env} +set r_allowSoftwareGL 1"
+
+    makeWrapper ${env}/ioq3ded.* $out/bin/quake3-server \
+      --add-flags "+set fs_basepath ${env}"
+  '';
+
+  meta = {
+    inherit description;
+  };
+}
diff --git a/nixpkgs/pkgs/games/quakespasm/default.nix b/nixpkgs/pkgs/games/quakespasm/default.nix
new file mode 100644
index 000000000000..f61b0e237925
--- /dev/null
+++ b/nixpkgs/pkgs/games/quakespasm/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, SDL, fetchurl, gzip, libvorbis, libmad }:
+stdenv.mkDerivation rec {
+  name = "quakespasm-${version}";
+  majorVersion = "0.93";
+  version = "${majorVersion}.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/quakespasm/quakespasm-${version}.tgz";
+    sha256 = "1bimv18f6rzhyjz78yvw2vqr5n0kdqbcqmq7cb3m951xgsxfcgpd";
+  };
+
+  sourceRoot = "${name}/Quake";
+
+  buildInputs = [
+    gzip SDL libvorbis libmad
+  ];
+
+  buildFlags = [ "DO_USERDIRS=1" ];
+
+  preInstall = ''
+    mkdir -p "$out/bin"
+    substituteInPlace Makefile --replace "/usr/local/games" "$out/bin"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "An engine for iD software's Quake";
+    homepage = http://quakespasm.sourceforge.net/;
+    longDescription = ''
+      QuakeSpasm is a modern, cross-platform Quake 1 engine based on FitzQuake.
+      It includes support for 64 bit CPUs and custom music playback, a new sound driver,
+      some graphical niceities, and numerous bug-fixes and other improvements.
+      Quakespasm utilizes either the SDL or SDL2 frameworks, so choose which one
+      works best for you. SDL is probably less buggy, but SDL2 has nicer features
+      and smoother mouse input - though no CD support.
+    '';
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.m3tti ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/quakespasm/vulkan.nix b/nixpkgs/pkgs/games/quakespasm/vulkan.nix
new file mode 100644
index 000000000000..4cd073869dc8
--- /dev/null
+++ b/nixpkgs/pkgs/games/quakespasm/vulkan.nix
@@ -0,0 +1,54 @@
+{ stdenv, SDL2, fetchFromGitHub, makeWrapper, gzip, libvorbis, libmad, vulkan-headers, vulkan-loader }:
+
+stdenv.mkDerivation rec {
+  name = "vkquake-${version}";
+  majorVersion = "1.01";
+  version = "${majorVersion}.0";
+
+  src = fetchFromGitHub {
+    owner = "Novum";
+    repo = "vkQuake";
+    rev = version;
+    sha256 = "1iwin8j5kbyrknbkhjgpy8nmm7pxqzr0daa9gn7p38qhg2mh0a39";
+  };
+
+  sourceRoot = "source/Quake";
+
+  nativeBuildInputs = [
+    makeWrapper vulkan-headers
+  ];
+
+  buildInputs = [
+    gzip SDL2 libvorbis libmad vulkan-loader
+  ];
+
+  buildFlags = [ "DO_USERDIRS=1" ];
+
+  preInstall = ''
+    mkdir -p "$out/bin"
+  '';
+
+  makeFlags = [ "prefix=$(out) bindir=$(out)/bin" ];
+
+  postFixup = ''
+    wrapProgram $out/bin/vkquake --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Vulkan Quake port based on QuakeSpasm";
+    homepage = src.meta.homepage;
+    longDescription = ''
+      vkQuake is a Quake 1 port using Vulkan instead of OpenGL for rendering.
+      It is based on the popular QuakeSpasm port and runs all mods compatible with it
+      like Arcane Dimensions or In The Shadows. vkQuake also serves as a Vulkan demo
+      application that shows basic usage of the API. For example it demonstrates render
+      passes & sub passes, pipeline barriers & synchronization, compute shaders, push &
+      specialization constants, CPU/GPU parallelism and memory pooling.
+    '';
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.gnidorah ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/quantumminigolf/default.nix b/nixpkgs/pkgs/games/quantumminigolf/default.nix
new file mode 100644
index 000000000000..1a8cbbea5f9c
--- /dev/null
+++ b/nixpkgs/pkgs/games/quantumminigolf/default.nix
@@ -0,0 +1,40 @@
+{stdenv, fetchurl, fftwSinglePrec, freetype, SDL, SDL_ttf}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="quantumminigolf";
+    version="1.1.1";
+    name="${baseName}-${version}";
+    hash="16av7fk0irhi5nd7y9h9vhb0kf0dk12p6976ai3f60m99qdd8wk3";
+    url="mirror://sourceforge/project/quantumminigolf/quantumminigolf/1.1.1/quantumminigolf-1.1.1.src.tar.gz";
+    sha256="16av7fk0irhi5nd7y9h9vhb0kf0dk12p6976ai3f60m99qdd8wk3";
+  };
+  buildInputs = [
+    fftwSinglePrec freetype SDL SDL_ttf
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  preBuild = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${SDL.dev}/include/SDL -I${SDL_ttf}/include/SDL"
+
+    sed -re 's@"(gfx|fonts|tracks)/@"'"$out"'/share/quantumminigolf/\1/@g' -i *.cpp
+  '';
+  installPhase = ''
+    mkdir -p "$out"/{share/doc,share/quantumminigolf,bin}
+    cp README THANKS LICENSE "$out/share/doc"
+    cp -r fonts gfx tracks "$out/share/quantumminigolf"
+    cp quantumminigolf "$out/bin"
+  '';
+  meta = {
+    inherit (s) version;
+    description = ''Quantum mechanics-based minigolf-like game'';
+    license = stdenv.lib.licenses.gpl2 ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/quantumminigolf/default.upstream b/nixpkgs/pkgs/games/quantumminigolf/default.upstream
new file mode 100644
index 000000000000..a994bb1a6cbe
--- /dev/null
+++ b/nixpkgs/pkgs/games/quantumminigolf/default.upstream
@@ -0,0 +1,4 @@
+url https://sourceforge.net/projects/quantumminigolf/files/quantumminigolf/
+SF_version_dir
+version_link '[.]tar[.][^.]+/download$'
+SF_redirect
diff --git a/nixpkgs/pkgs/games/racer/default.nix b/nixpkgs/pkgs/games/racer/default.nix
new file mode 100644
index 000000000000..d11315cd6dfa
--- /dev/null
+++ b/nixpkgs/pkgs/games/racer/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv, allegro, libjpeg, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "racer-1.1";
+
+  src = if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
+    url = http://hippo.nipax.cz/src/racer-1.1.tar.gz;
+    sha256 = "0fll1qkqfcjq87k0jzsilcw701z92lfxn2y5ga1n038772lymxl9";
+  } else if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl {
+    url = https://hippo.nipax.cz/src/racer-1.1.64.tar.gz;
+    sha256 = "0rjy3gmlhwfkb9zs58j0mc0dar0livwpbc19r6zw5r2k6r7xdan0";
+  } else
+    throw "System not supported";
+
+
+  buildInputs = [ allegro libjpeg makeWrapper ];
+
+  prePatch = ''
+    sed -i s,/usr/local,$out, Makefile src/HGFX.cpp src/STDH.cpp
+    sed -i s,/usr/share,$out/share, src/HGFX.cpp src/STDH.cpp
+  '';
+
+  patches = [ ./mkdir.patch ];
+
+  meta = {
+    description = "Car racing game";
+    homepage = http://hippo.nipax.cz/download.en.php;
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/racer/mkdir.patch b/nixpkgs/pkgs/games/racer/mkdir.patch
new file mode 100644
index 000000000000..910eaf390f4c
--- /dev/null
+++ b/nixpkgs/pkgs/games/racer/mkdir.patch
@@ -0,0 +1,13 @@
+diff --git a/src/STDH.cpp b/src/STDH.cpp
+index 5f78473..47c3f8b 100644
+--- a/src/STDH.cpp
++++ b/src/STDH.cpp
+@@ -5,6 +5,8 @@
+ #include "player.h"

+ #include "drivers.h"

+ #include "cup.h"

++#include <sys/stat.h>
++#include <sys/types.h>
+ 

+ HScreen hscreen;

+ 

diff --git a/nixpkgs/pkgs/games/residualvm/default.nix b/nixpkgs/pkgs/games/residualvm/default.nix
new file mode 100644
index 000000000000..f6969af30c2c
--- /dev/null
+++ b/nixpkgs/pkgs/games/residualvm/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, SDL, zlib, libmpeg2, libmad, libogg, libvorbis, flac, alsaLib
+, libGLSupported
+, openglSupport ? libGLSupported, libGLU_combined ? null
+}:
+
+assert openglSupport -> libGLU_combined != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  version = "0.1.1";
+  name = "residualvm-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/residualvm/residualvm-${version}-sources.tar.bz2";
+    sha256 = "99c419b13885a49bdfc10a50a3a6000fd1ba9504f6aae04c74b840ec6f57a963";
+  };
+
+  buildInputs = [ stdenv SDL zlib libmpeg2 libmad libogg libvorbis flac alsaLib ]
+    ++ optional openglSupport libGLU_combined;
+
+  configureFlags = [ "--enable-all-engines" ];
+
+  meta = {
+    description = "Interpreter for LucasArts' Lua-based 3D adventure games";
+    homepage = http://residualvm.org/;
+    repositories.git = https://github.com/residualvm/residualvm.git;
+    license = licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/rftg/default.nix b/nixpkgs/pkgs/games/rftg/default.nix
new file mode 100644
index 000000000000..b6a74ad8be65
--- /dev/null
+++ b/nixpkgs/pkgs/games/rftg/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, gtk2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+
+  name = "rftg-${version}";
+  version = "0.9.4";
+
+  src = fetchurl {
+    url = "http://keldon.net/rftg/rftg-${version}.tar.bz2";
+    sha256 = "0j2y6ggpwdlvyqhirp010aix2g6aacj3kvggvpwzxhig30x9vgq8";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2.dev ];
+
+  meta = {
+    homepage = http://keldon.net/rftg/;
+    description = "Implementation of the card game Race for the Galaxy, including an AI";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.falsifian ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/rigsofrods/default.nix b/nixpkgs/pkgs/games/rigsofrods/default.nix
new file mode 100644
index 000000000000..274a095de6f4
--- /dev/null
+++ b/nixpkgs/pkgs/games/rigsofrods/default.nix
@@ -0,0 +1,41 @@
+{ fetchFromGitHub, stdenv, wxGTK30, freeimage, cmake, zziplib, libGLU_combined, boost,
+  pkgconfig, libuuid, openal, ogre, ois, curl, gtk2, mygui, unzip,
+  angelscript, ogrepaged, mysocketw, libxcb
+  }:
+
+stdenv.mkDerivation rec {
+  version = "0.4.7.0";
+  name = "rigsofrods-${version}";
+
+  src = fetchFromGitHub {
+    owner = "RigsOfRods";
+    repo = "rigs-of-rods";
+    rev = version;
+    sha256 = "0cb1il7qm45kfhh6h6jwfpxvjlh2dmg8z1yz9kj4d6098myf2lg4";
+  };
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    sed -e "s@/usr/local/lib/OGRE@${ogre}/lib/OGRE@" -i ../tools/linux/binaries/plugins.cfg
+    mkdir -p $out/share/rigsofrods
+    cp -r bin/* $out/share/rigsofrods
+    cp ../tools/linux/binaries/plugins.cfg $out/share/rigsofrods
+    mkdir -p $out/bin
+    ln -s $out/share/rigsofrods/{RoR,RoRConfig} $out/bin
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ wxGTK30 freeimage cmake zziplib libGLU_combined boost
+    libuuid openal ogre ois curl gtk2 mygui unzip angelscript
+    ogrepaged mysocketw libxcb ];
+
+  meta = {
+    description = "3D simulator game where you can drive, fly and sail various vehicles";
+    homepage = http://rigsofrods.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    platforms = stdenv.lib.platforms.linux;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/games/rili/default.nix b/nixpkgs/pkgs/games/rili/default.nix
new file mode 100644
index 000000000000..df89f9dc743d
--- /dev/null
+++ b/nixpkgs/pkgs/games/rili/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, SDL_mixer, SDL, autoreconfHook }:
+
+stdenv.mkDerivation {
+  name = "ri_li-2.0.1";
+
+  src = fetchurl {
+    url = mirror://sourceforge/ri-li/Ri-li-2.0.1.tar.bz2;
+    sha256 = "f71ccc20c37c601358d963e087ac0d524de8c68e96df09c3aac1ae65edd38dbd";
+  };
+
+  patches = [ ./moderinze_cpp.patch ];
+
+  CPPFLAGS = "-I${SDL.dev}/include -I${SDL.dev}/include/SDL -I${SDL_mixer}/include";
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ SDL SDL_mixer ];
+
+  meta = {
+    homepage = http://ri-li.sourceforge.net;
+    license = stdenv.lib.licenses.gpl2Plus;
+    description = "A children's train game";
+    longDescription = ''
+     Ri-li is an arcade game licensed under the GPL (General Public License).
+You drive a toy wood engine in many levels and you must collect all the coaches
+to win.
+    '';
+    maintainers = with stdenv.lib.maintainers; [ jcumming ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/rili/moderinze_cpp.patch b/nixpkgs/pkgs/games/rili/moderinze_cpp.patch
new file mode 100644
index 000000000000..3d076afb39e3
--- /dev/null
+++ b/nixpkgs/pkgs/games/rili/moderinze_cpp.patch
@@ -0,0 +1,391 @@
+diff -r -u Ri-li-2.0.1.orig/src/audio.cc Ri-li-2.0.1/src/audio.cc
+--- Ri-li-2.0.1.orig/src/audio.cc	2012-01-22 00:40:56.928609371 -0800
++++ Ri-li-2.0.1/src/audio.cc	2012-01-22 00:28:33.360636539 -0800
+@@ -22,8 +22,8 @@
+ //    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+ #include <stdlib.h>
+-#include <iostream.h>
+-#include <string.h>
++#include <iostream>
++#include <string>
+ 
+ #include "audio.h"
+ #include "utils.h"
+@@ -57,7 +57,7 @@
+   char PathFile[512];
+ 
+   if(Mix_OpenAudio(22050,AUDIO_S16,1,1024)) {
+-    cerr <<"Enable to init Sound card ! "<<SDL_GetError()<<endl;
++    std::cerr <<"Enable to init Sound card ! "<<SDL_GetError()<<std::endl;
+     return false;
+   }
+   
+diff -r -u Ri-li-2.0.1.orig/src/ecran.cc Ri-li-2.0.1/src/ecran.cc
+--- Ri-li-2.0.1.orig/src/ecran.cc	2007-11-02 04:48:16.000000000 -0700
++++ Ri-li-2.0.1/src/ecran.cc	2012-01-22 00:13:54.422798653 -0800
+@@ -21,7 +21,7 @@
+ //    with this program; if not, write to the Free Software Foundation, Inc.,
+ //    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <math.h>
+diff -r -u Ri-li-2.0.1.orig/src/editeur.cc Ri-li-2.0.1/src/editeur.cc
+--- Ri-li-2.0.1.orig/src/editeur.cc	2007-11-02 04:48:17.000000000 -0700
++++ Ri-li-2.0.1/src/editeur.cc	2012-01-22 00:28:59.632635579 -0800
+@@ -25,10 +25,10 @@
+ #include <windows.h>
+ #endif
+ 
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <string>
+ #include <math.h>
+ #include <SDL/SDL.h>
+ 
+@@ -374,7 +374,7 @@
+     
+     // Sauve le niveau
+     if(Niveau.Save()==false) {
+-      cerr <<"ERREUR Saving levels!"<<endl;
++      std::cerr <<"ERREUR Saving levels!"<<std::endl;
+       exit(-1);
+     }
+     
+diff -r -u Ri-li-2.0.1.orig/src/jeux.cc Ri-li-2.0.1/src/jeux.cc
+--- Ri-li-2.0.1.orig/src/jeux.cc	2007-11-02 04:48:17.000000000 -0700
++++ Ri-li-2.0.1/src/jeux.cc	2012-01-22 00:14:08.422798143 -0800
+@@ -25,10 +25,10 @@
+ #include <windows.h>
+ #endif
+ 
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <string>
+ #include <math.h>
+ #include <SDL/SDL.h>
+ 
+diff -r -u Ri-li-2.0.1.orig/src/loco.cc Ri-li-2.0.1/src/loco.cc
+--- Ri-li-2.0.1.orig/src/loco.cc	2007-11-02 04:48:18.000000000 -0700
++++ Ri-li-2.0.1/src/loco.cc	2012-01-22 00:14:17.878797797 -0800
+@@ -21,10 +21,10 @@
+ //    with this program; if not, write to the Free Software Foundation, Inc.,
+ //    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <string>
+ #include <math.h>
+ #include "preference.h"
+ #include "loco.h"
+diff -r -u Ri-li-2.0.1.orig/src/main.cc Ri-li-2.0.1/src/main.cc
+--- Ri-li-2.0.1.orig/src/main.cc	2007-11-02 04:48:19.000000000 -0700
++++ Ri-li-2.0.1/src/main.cc	2012-01-22 00:29:40.080634136 -0800
+@@ -23,8 +23,8 @@
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <iostream.h>
+-#include <string.h>
++#include <iostream>
++#include <string>
+ #include <SDL/SDL.h>
+ #include <SDL/SDL_mixer.h>
+ 
+@@ -115,7 +115,7 @@
+  
+   // Initilise SDL
+   if( SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_AUDIO|SDL_INIT_NOPARACHUTE) < 0 ) {
+-    cerr <<"Impossible d'initialiser SDL:"<<SDL_GetError()<<endl;
++    std::cerr <<"Impossible d'initialiser SDL:"<<SDL_GetError()<<std::endl;
+     exit(-1);
+   }
+   // Ferme le programme correctement quant quit
+@@ -125,7 +125,7 @@
+   sdlVideoInfo=(SDL_VideoInfo*)SDL_GetVideoInfo();
+ 
+   if(sdlVideoInfo->vfmt->BitsPerPixel==8) {
+-    cerr <<"Impossible d'utiliser 8bits pour la vidéo !"<<endl;
++    std::cerr <<"Impossible d'utiliser 8bits pour la vidéo !"<<std::endl;
+     exit(-1);
+   }
+   
+@@ -145,7 +145,7 @@
+   sdlVideo=SDL_SetVideoMode(800,600,sdlVideoInfo->vfmt->BitsPerPixel,vOption);
+ 
+   if(sdlVideo==NULL) {
+-    cerr <<"Impossible de passer dans le mode vidéo 800x600 !"<<endl;
++    std::cerr <<"Impossible de passer dans le mode vidéo 800x600 !"<<std::endl;
+     exit(-1);
+   }
+   // Change le nom de la fenetre
+diff -r -u Ri-li-2.0.1.orig/src/menu.cc Ri-li-2.0.1/src/menu.cc
+--- Ri-li-2.0.1.orig/src/menu.cc	2007-11-02 04:48:19.000000000 -0700
++++ Ri-li-2.0.1/src/menu.cc	2012-01-22 00:30:04.752633198 -0800
+@@ -21,10 +21,10 @@
+ //    with this program; if not, write to the Free Software Foundation, Inc.,
+ //    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <string>
+ #include "preference.h"
+ #include "menu.h"
+ #include "sprite.h"
+@@ -92,7 +92,7 @@
+   // Teste la resolution video
+   sdlVideoInfo=(SDL_VideoInfo*)SDL_GetVideoInfo();
+   if(sdlVideoInfo->vfmt->BitsPerPixel==8) {
+-    cerr <<"Impossible d'utiliser 8bits pour la vidéo !"<<endl;
++    std::cerr <<"Impossible d'utiliser 8bits pour la vidéo !"<<std::endl;
+     exit(-1);
+   }
+   
+@@ -112,7 +112,7 @@
+   if(Pref.FullScreen) vOption|=SDL_FULLSCREEN;
+   sdlVideo=SDL_SetVideoMode(800,600,sdlVideoInfo->vfmt->BitsPerPixel,vOption);
+   if(sdlVideo==NULL) {
+-    cerr <<"Impossible de passer dans le mode vidéo 800x600 !"<<endl;
++    std::cerr <<"Impossible de passer dans le mode vidéo 800x600 !"<<std::endl;
+     exit(-1);
+   }
+   
+diff -r -u Ri-li-2.0.1.orig/src/mouse.cc Ri-li-2.0.1/src/mouse.cc
+--- Ri-li-2.0.1.orig/src/mouse.cc	2007-11-02 04:48:20.000000000 -0700
++++ Ri-li-2.0.1/src/mouse.cc	2012-01-22 00:14:36.438797120 -0800
+@@ -21,7 +21,7 @@
+ //    with this program; if not, write to the Free Software Foundation, Inc.,
+ //    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include "mouse.h"
+ #include "preference.h"
+diff -r -u Ri-li-2.0.1.orig/src/sprite.cc Ri-li-2.0.1/src/sprite.cc
+--- Ri-li-2.0.1.orig/src/sprite.cc	2007-11-02 04:48:20.000000000 -0700
++++ Ri-li-2.0.1/src/sprite.cc	2012-01-22 00:30:43.640631779 -0800
+@@ -21,10 +21,10 @@
+ //    with this program; if not, write to the Free Software Foundation, Inc.,
+ //    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <string>
+ #include <math.h>
+ #include "sprite.h"
+ #include "preference.h"
+@@ -84,7 +84,7 @@
+   strcpy(PathFile,Langue[Pref.Langue]);
+   GetPath(PathFile);
+   if(FileExiste(PathFile)==false) {
+-    cerr <<"Impossible de trouver "<<Langue[Pref.Langue]<<endl;
++    std::cerr <<"Impossible de trouver "<<Langue[Pref.Langue]<<std::endl;
+     return false;
+   }
+   L=ChargeFichier(PathFile,Buf);
+@@ -128,7 +128,7 @@
+   // *** Charge le fichier des langues ***
+   // *************************************
+   if(FileExiste(PathFile)==false) {
+-    cerr <<"Impossible de trouver 'language.dat'"<<endl;
++    std::cerr <<"Impossible de trouver 'language.dat'"<<std::endl;
+     return false;
+   }
+   L=ChargeFichier(PathFile,Buf);
+@@ -163,7 +163,7 @@
+   strcpy(PathFile,"sprites.dat");
+   GetPath(PathFile);
+   if(FileExiste(PathFile)==false) {
+-    cerr <<"Impossible de trouver 'sprites.dat'"<<endl;
++    std::cerr <<"Impossible de trouver 'sprites.dat'"<<std::endl;
+     return false;
+   }
+   L=ChargeFichier(PathFile,Buf);
+@@ -352,7 +352,7 @@
+     Image[i]=SDL_CreateRGBSurface((Dim[i].bpp-3)*SDL_SRCALPHA,Dim[i].L,Dim[i].H,Dim[i].bpp*8,
+ 				  0xff,0xff00,0xff0000,0xff000000*(Dim[i].bpp-3));
+     if(Image[i]<=NULL) {
+-      cerr <<"Impossible de créer une Surface SDL!"<<endl;
++      std::cerr <<"Impossible de créer une Surface SDL!"<<std::endl;
+       return false;
+     }
+     
+@@ -486,7 +486,7 @@
+   Image[0]=SDL_CreateRGBSurface((Dim[0].bpp-3)*SDL_SRCALPHA,Dim[0].L,Dim[0].H,Dim[0].bpp*8,
+ 				0xff,0xff00,0xff0000,0xff000000*(Dim[0].bpp-3));
+   if(Image[0]<=NULL) {
+-    cerr <<"Impossible de créer une Surface SDL!"<<endl;
++    std::cerr <<"Impossible de créer une Surface SDL!"<<std::endl;
+     return false;
+   }
+   return true;
+diff -r -u Ri-li-2.0.1.orig/src/tableau.cc Ri-li-2.0.1/src/tableau.cc
+--- Ri-li-2.0.1.orig/src/tableau.cc	2007-11-02 04:48:21.000000000 -0700
++++ Ri-li-2.0.1/src/tableau.cc	2012-01-22 00:14:50.710796598 -0800
+@@ -21,7 +21,7 @@
+ //    with this program; if not, write to the Free Software Foundation, Inc.,
+ //    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include "preference.h"
+diff -r -u Ri-li-2.0.1.orig/src/utils.cc Ri-li-2.0.1/src/utils.cc
+--- Ri-li-2.0.1.orig/src/utils.cc	2007-11-02 04:48:22.000000000 -0700
++++ Ri-li-2.0.1/src/utils.cc	2012-01-22 00:31:30.944630051 -0800
+@@ -21,10 +21,10 @@
+ //    with this program; if not, write to the Free Software Foundation, Inc.,
+ //    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <string>
+ 
+ #ifdef WINDOWS
+ #include <windows.h>
+@@ -77,7 +77,7 @@
+ 
+   file=fopen(Path,"r");
+   if(!file) {
+-    cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<endl;
++    std::cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<std::endl;
+     perror("fopen");
+     return -1;
+   }
+@@ -93,7 +93,7 @@
+ 
+   Buf=new unsigned char [L+1];
+   if(Buf==NULL) {
+-    cerr <<"ERREUR: Memoire insuffisante!"<<endl;
++    std::cerr <<"ERREUR: Memoire insuffisante!"<<std::endl;
+     fclose(file);
+     return -1;
+   }
+@@ -104,7 +104,7 @@
+   while(Compt>1024) {
+     AfficheChargeur();
+     if( fread(Po,1,1024,file) != 1024 ) {
+-      cerr <<"ERREUR de lecture du fichier '"<<Path<<"'"<<endl;
++      std::cerr <<"ERREUR de lecture du fichier '"<<Path<<"'"<<std::endl;
+       perror("fread");
+       fclose(file);
+       delete [] Buf;
+@@ -131,13 +131,13 @@
+ 
+   file=_lopen(Path,OF_READ);
+   if(file==-1) {
+-    cerr <<"Impossible d'ouvrir "<<Path<<endl;
++    std::cerr <<"Impossible d'ouvrir "<<Path<<std::endl;
+     exit(-1);
+   }
+   
+   long L=(long)_llseek(file,0,SEEK_END);
+   if(L==-1) {
+-    cerr <<"Impossible de trouver la longueur du fichier"<<endl;
++    std::cerr <<"Impossible de trouver la longueur du fichier"<<std::endl;
+     perror("lseek");
+     _lclose(file);
+     return -1;
+@@ -146,7 +146,7 @@
+   
+   Buf=new unsigned char [L+1];
+   if(Buf==NULL) {
+-    cerr <<"ERREUR: Memoire insuffisante!"<<endl;
++    std::cerr <<"ERREUR: Memoire insuffisante!"<<std::endl;
+     _lclose(file);
+     return -1;
+   }
+@@ -169,14 +169,14 @@
+   
+   file=fopen(Path,"w");
+   if(!file) {
+-    cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<endl;
++    std::cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<std::endl;
+     perror("fopen");
+     return false;
+   }
+   
+   while(L>512) {
+     if( fwrite(Buf,1,512,file) != 512 ) {
+-      cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<endl;
++      std::cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<std::endl;
+       perror("fwrite");
+       fclose(file);
+       return false;
+@@ -187,7 +187,7 @@
+ 
+   if(L>0) {
+     if( fwrite(Buf,1,(size_t)L,file) != (size_t)L ) {
+-      cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<endl;
++      std::cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<std::endl;
+       perror("fwrite");
+       fclose(file);
+       return false;
+@@ -208,7 +208,7 @@
+ 
+   file=_lcreat(Path,0);
+   if(!file) {
+-    cerr <<"ERREUR: Impossible de créer le fichier '"<<Path<<"'"<<endl;
++    std::cerr <<"ERREUR: Impossible de créer le fichier '"<<Path<<"'"<<std::endl;
+     return false;
+   }
+   
+@@ -216,7 +216,7 @@
+   _lclose(file);
+ 
+   if(Lec!=L) {
+-    cerr <<"Problème d'ecriture du fichier '"<<Path<<"' ecris="<<Lec<<" au lieux de ="<<L<<endl;
++    std::cerr <<"Problème d'ecriture du fichier '"<<Path<<"' ecris="<<Lec<<" au lieux de ="<<L<<std::endl;
+     return false;
+   }
+ 
+@@ -250,7 +250,7 @@
+   sprintf(Path,"/usr/share/games/Ri-li/%s",Provi);
+   if(FileExiste(Path)) return;
+   
+-  cerr <<"Impossible de trouver le fichier '"<<Provi<<endl;
++  std::cerr <<"Impossible de trouver le fichier '"<<Provi<<std::endl;
+   exit(-1);
+ }
+ #endif
+@@ -266,7 +266,7 @@
+   sprintf(Path,"PROGDIR:%s",Provi);
+   if(FileExiste(Path)) return;
+   
+-  cerr <<"Impossible de trouver le fichier '"<<Path<<endl;
++  std::cerr <<"Impossible de trouver le fichier '"<<Path<<std::endl;
+   exit(-1);
+ }
+ #endif
+@@ -282,7 +282,7 @@
+   sprintf(Path,"Ri-li.app/Contents/Resources/%s",Provi);
+   if(FileExiste(Path)) return;
+   
+-  cerr <<"Impossible de trouver le fichier '"<<Path<<endl;
++  std::cerr <<"Impossible de trouver le fichier '"<<Path<<std::endl;
+   exit(-1);
+ }
+ #endif
diff --git a/nixpkgs/pkgs/games/rimshot/default.nix b/nixpkgs/pkgs/games/rimshot/default.nix
new file mode 100644
index 000000000000..ac6fdee1f6b5
--- /dev/null
+++ b/nixpkgs/pkgs/games/rimshot/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, unzip, love, lua, makeWrapper, makeDesktopItem }:
+
+let
+  pname = "rimshot";
+  version = "1.0";
+
+  icon = fetchurl {
+    url = "http://stabyourself.net/images/screenshots/rimshot-2.png";
+    sha256 = "08fyiqym3gcpq2vgb5dvafkban42fsbzfcr3iiyw03hz99q53psd";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "rimshot";
+    exec = "${pname}";
+    icon = "${icon}";
+    comment = "Create your own music";
+    desktopName = "Rimshot";
+    genericName = "rimshot";
+    categories = "Audio;AudioVideo;Music";
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://stabyourself.net/dl.php?file=${pname}/${pname}-source.zip";
+    sha256 = "08pdkyvki92549605m9bqnr24ipkbwkp5nkr5aagdqnr8ai4rgmi";
+  };
+
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ lua love ];
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  unpackPhase = ''
+    unzip -j $src
+  '';  
+
+  installPhase =
+  ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/games/lovegames
+
+    cp -v ./*.love $out/share/games/lovegames/${pname}.love
+    makeWrapper ${love}/bin/love $out/bin/${pname} --add-flags $out/share/games/lovegames/${pname}.love
+
+    chmod +x $out/bin/${pname}
+    mkdir -p $out/share/applications
+    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Create your own music";
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.linux;
+    license = licenses.free;
+    downloadPage = http://stabyourself.net/rimshot/;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/robotfindskitten/default.nix b/nixpkgs/pkgs/games/robotfindskitten/default.nix
new file mode 100644
index 000000000000..00d73f95bdb3
--- /dev/null
+++ b/nixpkgs/pkgs/games/robotfindskitten/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, ncurses }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+  name = "robotfindskitten-${version}";
+  version = "2.7182818.701";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/rfk/robotfindskitten-POSIX/mayan_apocalypse_edition/${name}.tar.gz";
+    sha256 = "06fp6b4li50mzw83j3pkzqspm6dpgxgxw03b60xkxlkgg5qa6jbp";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ncurses ];
+
+  makeFlags = [ "execgamesdir=$(out)/bin" ];
+
+  postInstall = ''
+    install -Dm644 {nki,$out/share/games/robotfindskitten}/vanilla.nki
+  '';
+
+  meta = {
+    description = "Yet another zen simulation; A simple find-the-kitten game";
+    homepage = http://robotfindskitten.org/;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/rocksndiamonds/default.nix b/nixpkgs/pkgs/games/rocksndiamonds/default.nix
new file mode 100644
index 000000000000..c0b07814aa57
--- /dev/null
+++ b/nixpkgs/pkgs/games/rocksndiamonds/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, makeDesktopItem, SDL2, SDL2_image, SDL2_mixer, SDL2_net }:
+
+stdenv.mkDerivation rec {
+  name = "${project}-${version}";
+  project = "rocksndiamonds";
+  version = "4.1.1.0";
+
+  src = fetchurl {
+    url = "https://www.artsoft.org/RELEASES/unix/${project}/${name}.tar.gz";
+    sha256 = "1k0m6l5g886d9mwwh6q0gw75qsb85mpf8i0rglh047app56nsk72";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "rocksndiamonds";
+    exec = "rocksndiamonds";
+    icon = "rocksndiamonds";
+    comment = meta.description;
+    desktopName = "Rocks'n'Diamonds";
+    genericName = "Tile-based puzzle";
+    categories = "Game;LogicGame;";
+  };
+
+  buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_net ];
+
+  preBuild = ''
+    dataDir="$out/share/rocksndiamonds"
+    makeFlags+="RO_GAME_DIR=$dataDir"
+  '';
+
+  installPhase = ''
+    appDir=$out/share/applications
+    iconDir=$out/share/icons/hicolor/32x32/apps
+    mkdir -p $out/bin $appDir $iconDir $dataDir
+    cp rocksndiamonds $out/bin/
+    ln -s ${desktopItem}/share/applications/* $appDir/
+    ln -s $dataDir/graphics/gfx_classic/RocksIcon32x32.png $iconDir/rocksndiamonds.png
+    cp -r docs graphics levels music sounds $dataDir
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Scrolling tile-based arcade style puzzle game";
+    homepage = https://www.artsoft.org/rocksndiamonds/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ orivej ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/rogue/default.nix b/nixpkgs/pkgs/games/rogue/default.nix
new file mode 100644
index 000000000000..c8af2331b080
--- /dev/null
+++ b/nixpkgs/pkgs/games/rogue/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, ncurses}:
+
+stdenv.mkDerivation {
+  name = "rogue-5.4.4";
+
+  src = fetchurl {
+    urls = [
+      "https://src.fedoraproject.org/repo/pkgs/rogue/rogue5.4.4-src.tar.gz/033288f46444b06814c81ea69d96e075/rogue5.4.4-src.tar.gz"
+      "http://ftp.vim.org/ftp/pub/ftp/os/Linux/distr/slitaz/sources/packages-cooking/r/rogue5.4.4-src.tar.gz"
+      "http://rogue.rogueforge.net/files/rogue5.4/rogue5.4.4-src.tar.gz"
+    ];
+    sha256 = "18g81274d0f7sr04p7h7irz0d53j6kd9j1y3zbka1gcqq0gscdvx";
+  };
+
+  buildInputs = [ ncurses ];
+
+  # Fix build for recent ncurses versions
+  NIX_CFLAGS_COMPILE = [ "-DNCURSES_INTERNALS=1" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://rogue.rogueforge.net/rogue-5-4/;
+    description = "The final version of the original Rogue game developed for the UNIX operating system";
+    platforms = platforms.all;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.eelco ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/rrootage/default.nix b/nixpkgs/pkgs/games/rrootage/default.nix
new file mode 100644
index 000000000000..8b07a38c7bb7
--- /dev/null
+++ b/nixpkgs/pkgs/games/rrootage/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, fetchpatch, fetchurl, SDL, SDL_mixer, bulletml }:
+
+let
+  version = "0.23a";
+  debianRevision = "12";
+  debianPatch = patchname: hash: fetchpatch {
+    name = "${patchname}.patch";
+    url = "https://sources.debian.org/data/main/r/rrootage/${version}-${debianRevision}/debian/patches/${patchname}.patch";
+    sha256 = hash;
+  };
+
+in stdenv.mkDerivation {
+  name = "rrootage-${version}";
+  src = fetchurl {
+    url = "http://downloads.sourceforge.net/rrootage/rRootage-${version}.tar.gz";
+    sha256 = "01zzg4ih3kmbhsn1p9zr7g8srv1d2dhrp8cdd86y9qq233idnkln";
+  };
+
+  patches = [
+    (debianPatch
+      "01_makefile"
+      "0wgplznx9kgb82skwqplpydbpallgrby3w662h52wky5zl0pyijj")
+    (debianPatch
+      "02_data_dir"
+      "12vw60s94by3f6k8pk45k555h4y7gzlqfds0a96nrrryammpgnq3")
+    (debianPatch
+      "03_texture_filename"
+      "1qxkxy6821xvanacf25mi43wj8nf40c1qiyavhc8av798xprpkjh")
+    (debianPatch
+      "04_home"
+      "0s15b0liv40jzjd9l4zsq688ky1yp9b1gmb1xhi3bih4y7q9awdz")
+    (debianPatch
+      "05_gcc"
+      "06ihgbfrklabs7cb6216w1jjb9sglv86iagzhhmyydwyph4fb782")
+    (debianPatch
+      "06_rrootage_highres"
+      "0ifjmh236yiv3g896nfwwydgcnq3njdb8ldah7s3jxp3xkpvwcga")
+    (debianPatch
+      "07_use_system_bulletml"
+      "1sxsl1yzx3msvz8mf0jk1vnahqb1ahq9drm391idgh0afy77l6j7")
+    (debianPatch
+      "08_windowed_mode"
+      "0knx4g445ngilsz4dvdkq69f5f8i2xv2fnmdmq037xd5rhfg0b23")
+    (debianPatch
+      "09_rootage_make_highres_default"
+      "1zqz8s54rl8jmqmvdi9c3ayfcma6qkbfkx5vw0fzyn268wcs022p")
+    (debianPatch
+      "10_deg_out_of_range"
+      "1wr76az4rlv1gaj9xdknzqcjazw6h8myqw6y3753q259hxbq4cah")
+  ];
+  postPatch = ''
+    substituteInPlace "src/screen.c" --replace "/usr/share/games/rrootage" "$out/share/games/rrootage"
+    substituteInPlace "src/soundmanager.c" --replace "/usr/share/games/rrootage" "$out/share/games/rrootage"
+    substituteInPlace "src/barragemanager.cc" --replace "/usr/share/games/rrootage" "$out/share/games/rrootage"
+  '';
+
+  buildInputs = [ SDL SDL_mixer bulletml ];
+  makeFlags = [ "-C src" "-f makefile.lin" ];
+  hardeningDisable = [ "stackprotector" "fortify" ]; # buffer overflow without this
+
+  installPhase = ''
+    install -d "$out"/share/games
+    cp -r rr_share "$out"/share/games/rrootage
+    install -D src/rrootage "$out"/bin/rrootage
+
+    install -D -m 644 readme.txt "$out"/share/licenses/rrootage/README.jp
+    install -m 644 readme_e.txt "$out"/share/licenses/rrootage/README.en
+
+    install -D -m 644 readme.txt "$out"/share/doc/rrootage/README.jp
+    install -m 644 readme_e.txt "$out"/share/doc/rrootage/README.en
+    install -m 644 readme_linux "$out"/share/doc/rrootage/README
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Abstract shooter created by Kenta Cho";
+    homepage = "http://rrootage.sourceforge.net/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fgaz ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/runelite/default.nix b/nixpkgs/pkgs/games/runelite/default.nix
new file mode 100644
index 000000000000..4c06926ed506
--- /dev/null
+++ b/nixpkgs/pkgs/games/runelite/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, makeWrapper, jre, makeDesktopItem, lib }:
+
+  stdenv.mkDerivation rec {
+  name = "runelite-${version}";
+  version = "1.6.0";
+
+  src = fetchurl {
+    url = "https://github.com/runelite/launcher/releases/download/${version}/RuneLite.jar";
+    sha256 = "0q2xx0wrnlg5mrv8nnmnh300r8mqfm8k2p028m7mr09kn18xvkzx";
+  };
+
+  icon = fetchurl {
+    url = "https://github.com/runelite/runelite/raw/master/runelite-client/src/main/resources/runelite.png";
+    sha256 = "0fxzkpsin09giqp7h8z0plxznk5d5j60sv34v1lw61p7d5y2izvr";
+  };
+
+  desktop = makeDesktopItem {
+    name = "RuneLite";
+    type = "Application";
+    exec = "runelite";
+    icon = "${icon}";
+    comment = "Open source Old School RuneScape client";
+    terminal = "false";
+    desktopName = "RuneLite";
+    genericName = "Oldschool Runescape";
+    categories = "Application;Game";
+    startupNotify = null;
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  # colon is bash form of no-op (do nothing)
+  unpackPhase = ":";
+
+  installPhase = ''
+    mkdir -p $out/share/runelite
+    mkdir -p $out/share/applications
+
+    ln -s ${src} $out/share/runelite/RuneLite.jar
+    ln -s ${desktop}/share/applications/* $out/share/applications
+
+    makeWrapper ${jre}/bin/java $out/bin/runelite \
+    --add-flags "-jar $out/share/runelite/RuneLite.jar"
+  '';
+
+  meta = {
+    description = "Open source Old School RuneScape client";
+    homepage = "https://runelite.net/";
+    license = lib.licenses.bsd2;
+    maintainers = [ lib.maintainers.kmeakin ];
+    platforms = lib.platforms.all;
+  };
+  }
diff --git a/nixpkgs/pkgs/games/sauerbraten/default.nix b/nixpkgs/pkgs/games/sauerbraten/default.nix
new file mode 100644
index 000000000000..3a9635f67124
--- /dev/null
+++ b/nixpkgs/pkgs/games/sauerbraten/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchsvn, libGLU_combined, SDL, SDL_image, SDL_mixer
+, libpng, zlib, libjpeg, imagemagick, libX11, runtimeShell
+}:
+
+stdenv.mkDerivation rec {
+  name = "sauerbraten-r${version}";
+  version = "5000";
+
+  src = fetchsvn {
+    url = "https://svn.code.sf.net/p/sauerbraten/code";
+    sha256 = "17libj7dslprlwppdk3vyxdcigbsa4czln8gdyz9j264m11z1cbh";
+    rev = version;
+  };
+
+  buildInputs = [
+    libGLU_combined SDL SDL_image SDL_mixer libpng zlib libjpeg imagemagick
+    libX11
+  ];
+
+  preBuild = ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lX11"
+    pushd src
+  '';
+
+  installPhase = ''
+    popd
+    mkdir -p $out/bin $out/share/sauerbraten $out/share/doc/sauerbraten
+    cp -rv "docs/"* $out/share/doc/sauerbraten/
+    cp -v src/sauer_client src/sauer_server $out/share/sauerbraten/
+    cp -rv packages $out/share/sauerbraten/
+    cp -rv data $out/share/sauerbraten/
+    cat > $out/bin/sauerbraten_server <<EOF
+    #!${runtimeShell}
+    cd $out/share/sauerbraten
+    ./sauer_server "\$@"
+    EOF
+    cat > $out/bin/sauerbraten_client <<EOF
+    #!${runtimeShell}
+    cd $out/share/sauerbraten
+    ./sauer_client "\$@"
+    EOF
+    chmod a+x $out/bin/sauerbraten_*
+  '';
+
+  meta = with stdenv.lib; {
+    description = "";
+    maintainers = [ maintainers.raskin ];
+    hydraPlatforms =
+      # raskin: tested amd64-linux;
+      # not setting platforms because it is 0.5+ GiB of game data
+      [];
+    license = "freeware"; # as an aggregate - data files have different licenses
+                          # code is under zlib license
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/scid-vs-pc/0001-put-fonts-in-out.patch b/nixpkgs/pkgs/games/scid-vs-pc/0001-put-fonts-in-out.patch
new file mode 100644
index 000000000000..63f31d7ef9e0
--- /dev/null
+++ b/nixpkgs/pkgs/games/scid-vs-pc/0001-put-fonts-in-out.patch
@@ -0,0 +1,77 @@
+From 7e99cf4ae3f38406133a4abf962527cd02416f8e Mon Sep 17 00:00:00 2001
+From: Sebastian Galkin <paraseba@gmail.com>
+Date: Wed, 20 Dec 2017 18:23:03 -0200
+Subject: [PATCH] put fonts in $out
+
+---
+ Makefile.conf | 22 ++++------------------
+ configure     | 12 ------------
+ 2 files changed, 4 insertions(+), 30 deletions(-)
+
+diff --git a/Makefile.conf b/Makefile.conf
+index e7f8de9..87f3fff 100644
+--- a/Makefile.conf
++++ b/Makefile.conf
+@@ -226,19 +226,11 @@ install_scid: all_scid
+ 	fi
+ 	install -m 755 -d $(SHAREDIR)/bitmaps
+ 	cp -r ./bitmaps/* $(SHAREDIR)/bitmaps/
+-	@if [ "`id -u`" -eq 0 ]; then \
+-		install -m 755 -d $(FONTDIR); \
+-		install -m 644 -p fonts/*.ttf $(FONTDIR); \
+-	else \
+-		install -m 755 -d ~/.fonts; \
+-		install -m 644 -p fonts/*.ttf ~/.fonts; \
+-	fi
++	install -m 755 -d $(FONTDIR); \
++	install -m 644 -p fonts/*.ttf $(FONTDIR); \
++
+ 	@if [ ! -z "`which fc-cache`" ]; then \
+-		if [ "`id -u`" -eq 0 ]; then \
+- 			fc-cache -fv $(FONTDIR); \
+-		else \
+-			fc-cache -fv ~/.fonts; \
+-		fi; \
++ 		fc-cache -fv $(FONTDIR); \
+ 	else \
+ 		echo "Don't know how to setup truetype fonts (fc-cache not available)."; \
+ 		echo "Please contact your system administrator."; \
+@@ -292,12 +284,6 @@ uninstall:
+ 		for f in `ls fonts/*.ttf`; do \
+ 			rm -f ~/.$$f; \
+ 		done; \
+-		if [ ! -z "`which fc-cache`" ]; then \
+-			fc-cache -fv ~/.fonts; \
+-		fi; \
+-		if [ "`find ~/.fonts -type d -empty`" = "`ls -d ~/.fonts`" ]; then \
+-			rmdir ~/.fonts; \
+-		fi; \
+ 	fi
+ 
+ clean:
+diff --git a/configure b/configure
+index 4599c77..8b09678 100755
+--- a/configure
++++ b/configure
+@@ -473,18 +473,6 @@ proc writeMakefile {{type ""}} {
+        exit 1
+     }
+ 
+-    if {[isDarwin]} {
+-        set var(FONTDIR) /Library/Fonts/
+-    } else {
+-        # Just install fonts in to /usr irrespective of system prefix. /usr/local may not be active
+-        set prefix /usr
+-        if {![file isdirectory $prefix/share/fonts]} {
+-            set var(FONTDIR) "~/.fonts"
+-        } else {
+-            set var(FONTDIR) $prefix/share/fonts/truetype/Scid
+-        }
+-    }
+-
+     set line [gets $from]
+     while {1} {
+         set line [gets $from]
+-- 
+2.15.1
+
diff --git a/nixpkgs/pkgs/games/scid-vs-pc/default.nix b/nixpkgs/pkgs/games/scid-vs-pc/default.nix
new file mode 100644
index 000000000000..94e102e57520
--- /dev/null
+++ b/nixpkgs/pkgs/games/scid-vs-pc/default.nix
@@ -0,0 +1,82 @@
+{ stdenv, fetchurl, tcl, tk, libX11, zlib, makeWrapper, makeDesktopItem }:
+
+stdenv.mkDerivation rec {
+  name = "scid-vs-pc-${version}";
+  version = "4.19";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/scidvspc/scid_vs_pc-${version}.tgz";
+    sha256 = "1k2cgs6bjyrmxy5x6x1chmrxfmm224p3r9r9mpc37kridk4hshqs";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ tcl tk libX11 zlib ];
+
+  prePatch = ''
+    sed -i -e '/^ *set headerPath *{/a ${tcl}/include ${tk}/include' \
+           -e '/^ *set libraryPath *{/a ${tcl}/lib ${tk}/lib' \
+           -e '/^ *set x11Path *{/a ${libX11}/lib/' \
+           configure
+
+    sed -i -e '/^ *set scidShareDir/s|\[file.*|"'"$out/share"'"|' \
+      tcl/config.tcl
+  '';
+
+  # configureFlags = [
+  #   "BINDIR=$(out)/bin"
+  #   "SHAREDIR=$(out)/share"
+  #   "FONTDIR=$(out)/fonts"
+  # ];
+
+  preConfigure = ''configureFlags="
+    BINDIR=$out/bin
+    SHAREDIR=$out/share
+    FONTDIR=$out/fonts"
+  '';
+
+  patches = [
+    ./0001-put-fonts-in-out.patch
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  dontPatchShebangs = true;
+
+  postFixup = ''
+    sed -i -e '1c#!'"$out"'/bin/tcscid' "$out/bin/scidpgn"
+    sed -i -e '1c#!${tk}/bin/wish' "$out/bin/sc_remote"
+    sed -i -e '1c#!'"$out"'/bin/tkscid' "$out/bin/scid"
+
+    for cmd in $out/bin/* ; do
+      wrapProgram "$cmd" \
+        --set TCLLIBPATH "${tcl}/${tcl.libdir}" \
+        --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}"
+    done
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/applications
+    cp $desktopItem/share/applications/* $out/share/applications/
+
+    install -D icons/scid.png "$out"/share/icons/hicolor/128x128/apps/scid.png
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = "scid-vs-pc";
+    desktopName = "Scid vs. PC";
+    genericName = "Chess Database";
+    comment = meta.description;
+    icon = "scid";
+    exec = "scid";
+    categories = "Game;BoardGame;";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Chess database with play and training functionality";
+    homepage = http://scidvspc.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ maintainers.paraseba ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
+
diff --git a/nixpkgs/pkgs/games/scid/default.nix b/nixpkgs/pkgs/games/scid/default.nix
new file mode 100644
index 000000000000..301991c1a6fd
--- /dev/null
+++ b/nixpkgs/pkgs/games/scid/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, tcl, tk, libX11, zlib, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "scid-${version}";
+  version = "4.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/scid/scid-4.3.tar.bz2";
+    sha256 = "0zb5qp04x8w4gn2kvfdfq2p44kmzfcqn7v167dixz6nlyxg41hrw";
+  };
+
+  buildInputs = [ tcl tk libX11 zlib makeWrapper ];
+
+  prePatch = ''
+    sed -i -e '/^ *set headerPath *{/a ${tcl}/include ${tk}/include' \
+           -e '/^ *set libraryPath *{/a ${tcl}/lib ${tk}/lib' \
+           -e '/^ *set x11Path *{/a ${libX11}/lib/' \
+           configure
+
+    sed -i -e '/^ *set scidShareDir/s|\[file.*|"'"$out/share"'"|' \
+      tcl/config.tcl
+  '';
+
+  configureFlags = [
+    "BINDIR=$(out)/bin"
+    "SHAREDIR=$(out)/share"
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  dontPatchShebangs = true;
+
+  postFixup = ''
+    for cmd in sc_addmove sc_eco sc_epgn scidpgn \
+               sc_import sc_spell sc_tree spliteco
+    do
+      sed -i -e '1c#!'"$out"'/bin/tcscid' "$out/bin/$cmd"
+    done
+
+    sed -i -e '1c#!${tcl}/bin/tcslsh' "$out/bin/spf2spi"
+    sed -i -e '1c#!${tk}/bin/wish' "$out/bin/sc_remote"
+    sed -i -e '1c#!'"$out"'/bin/tkscid' "$out/bin/scid"
+
+    for cmd in $out/bin/*
+    do
+      wrapProgram "$cmd" \
+        --set TCLLIBPATH "${tcl}/${tcl.libdir}" \
+        --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}"
+    done
+  '';
+
+  meta = {
+    description = "Chess database with play and training functionality";
+    homepage = http://scid.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/games/scorched3d/default.nix b/nixpkgs/pkgs/games/scorched3d/default.nix
new file mode 100644
index 000000000000..430b22c9ba97
--- /dev/null
+++ b/nixpkgs/pkgs/games/scorched3d/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, libGLU_combined, glew, pkgconfig, openalSoft, freealut, wxGTK, libogg
+, freetype, libvorbis, fftwSinglePrec, SDL, SDL_net, expat, libjpeg, libpng }:
+
+stdenv.mkDerivation rec {
+  version = "44";
+  name = "scorched3d-${version}";
+  src = fetchurl {
+    url = "mirror://sourceforge/scorched3d/Scorched3D-${version}-src.tar.gz";
+    sha256 = "1fldi9pn7cz6hc9h70pacgb7sbykzcac44yp3pkhn0qh4axj10qw";
+  };
+
+  buildInputs =
+    [ libGLU_combined glew openalSoft freealut wxGTK libogg freetype libvorbis
+      SDL SDL_net expat libjpeg libpng fftwSinglePrec
+    ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  patches = [
+    ./file-existence.patch
+    (fetchurl {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/games-strategy/scorched3d/files/scorched3d-44-fix-c++14.patch?id=1bbcfc9ae3dfdfcbdd35151cb7b6050776215e4d";
+      sha256 = "1farmjxbc2wm4scsdbdnvh29fipnb6mp6z85hxz4bx6n9kbc8y7n";
+    })
+  ];
+
+  sourceRoot = "scorched";
+
+  configureFlags = [ "--with-fftw=${fftwSinglePrec.dev}" ];
+
+  NIX_LDFLAGS = [ "-lopenal" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://scorched3d.co.uk/;
+    description = "3D Clone of the classic Scorched Earth";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux; # maybe more
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/scorched3d/file-existence.patch b/nixpkgs/pkgs/games/scorched3d/file-existence.patch
new file mode 100644
index 000000000000..35eb63d07022
--- /dev/null
+++ b/nixpkgs/pkgs/games/scorched3d/file-existence.patch
@@ -0,0 +1,37 @@
+diff --git a/src/common/common/DefinesFile.cpp b/src/common/common/DefinesFile.cpp
+index 6ad803d..022797a 100644
+--- a/src/common/common/DefinesFile.cpp
++++ b/src/common/common/DefinesFile.cpp
+@@ -36,6 +36,17 @@
+ #include <unistd.h>

+ #endif

+ 

++namespace {

++    bool fileCanBeStated(const std::string &file)

++    {

++        struct stat buf;

++        memset(&buf, 0, sizeof(buf));

++        int result = stat(file.c_str(), &buf );

++

++        return result == 0;

++    }

++}

++

+ std::string S3D::getHomeDir()

+ {

+ #ifdef _WIN32

+@@ -74,12 +85,12 @@ bool S3D::dirMake(const std::string &file)
+ 

+ bool S3D::fileExists(const std::string &file)

+ {

+-	return (S3D::fileModTime(file) != 0);

++	return fileCanBeStated(file);

+ }

+ 

+ bool S3D::dirExists(const std::string &file)

+ {

+-	return (S3D::fileModTime(file) != 0);

++	return fileCanBeStated(file);

+ }

+ 

+ time_t S3D::fileModTime(const std::string &file)

diff --git a/nixpkgs/pkgs/games/scrolls/default.nix b/nixpkgs/pkgs/games/scrolls/default.nix
new file mode 100644
index 000000000000..b8bf4efcf0aa
--- /dev/null
+++ b/nixpkgs/pkgs/games/scrolls/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, gcc
+, libGLU, libX11, libXext, libXcursor, libpulseaudio
+}:
+stdenv.mkDerivation {
+  name = "scrolls-2015-10-13";
+
+  meta = {
+    description = "A strategy collectible card game";
+    homepage = https://scrolls.com/;
+    # http://www.reddit.com/r/Scrolls/comments/2j3pxw/linux_client_experimental/
+
+    platforms = [ "x86_64-linux" ];
+
+    license = stdenv.lib.licenses.unfree;
+  };
+
+  src = fetchurl {
+    url = "https://download.scrolls.com/client/linux.tar.gz";
+    sha256 = "ead1fd14988aa07041fedfa7f845c756cd5077a5a402d85bfb749cb669ececec";
+  };
+
+  libPath = stdenv.lib.makeLibraryPath [
+    gcc
+    libGLU
+    libX11
+    libXext
+    libXcursor
+    libpulseaudio
+  ];
+
+  phases = [ "unpackPhase" "installPhase" ];
+  installPhase = ''
+    mkdir -p "$out/opt/Scrolls"
+    cp -r ../Scrolls "$out/opt/Scrolls/"
+    cp -r ../Scrolls_Data "$out/opt/Scrolls/"
+    chmod +x "$out/opt/Scrolls/Scrolls"
+
+    patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      --set-rpath "$libPath" "$out/opt/Scrolls/Scrolls"
+
+    mkdir "$out/bin"
+    ln -s "$out/opt/Scrolls/Scrolls" "$out/bin/Scrolls"
+  '';
+
+}
diff --git a/nixpkgs/pkgs/games/scummvm/default.nix b/nixpkgs/pkgs/games/scummvm/default.nix
new file mode 100644
index 000000000000..2ebc2c82e506
--- /dev/null
+++ b/nixpkgs/pkgs/games/scummvm/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, nasm
+, alsaLib, flac, fluidsynth, freetype, libjpeg, libmad, libmpeg2, libogg, libvorbis, libGLU_combined, SDL2, zlib
+}:
+
+stdenv.mkDerivation rec {
+  name = "scummvm-${version}";
+  version = "2.0.0";
+
+  src = fetchurl {
+    url = "http://scummvm.org/frs/scummvm/${version}/${name}.tar.xz";
+    sha256 = "0q6aiw97wsrf8cjw9vjilzhqqsr2rw2lll99s8i5i9svan6l314p";
+  };
+
+  nativeBuildInputs = [ nasm ];
+
+  buildInputs = [
+    alsaLib freetype flac fluidsynth libjpeg libmad libmpeg2 libogg libvorbis libGLU_combined SDL2 zlib
+  ];
+
+  enableParallelBuilding = true;
+
+  configurePlatforms = [ "host" ];
+  configureFlags = [
+    "--enable-c++11"
+    "--enable-release"
+  ];
+
+  # They use 'install -s', that calls the native strip instead of the cross
+  postConfigure = ''
+    sed -i "s/-c -s/-c -s --strip-program=''${STRIP@Q}/" ports.mk
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Program to run certain classic graphical point-and-click adventure games (such as Monkey Island)";
+    homepage = https://www.scummvm.org/;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.peterhoeg ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/scummvm/games.nix b/nixpkgs/pkgs/games/scummvm/games.nix
new file mode 100644
index 000000000000..a96250e7acb6
--- /dev/null
+++ b/nixpkgs/pkgs/games/scummvm/games.nix
@@ -0,0 +1,125 @@
+{ stdenv, lib, fetchurl, makeDesktopItem, unzip, writeText
+, scummvm, runtimeShell }:
+
+let
+  desktopItem = name: short: long: description: makeDesktopItem {
+    categories  = "Game;AdventureGame;";
+    comment     = description;
+    desktopName = long;
+    exec        = "@out@/bin/${short}";
+    genericName = description;
+    icon        = "scummvm";
+    name        = name;
+  };
+
+  run = name: short: code: writeText "${short}.sh" ''
+    #!${runtimeShell} -eu
+
+    exec ${scummvm}/bin/scummvm \
+      --path=@out@/share/${name} \
+      --fullscreen \
+      ${code}
+  '';
+
+  generic = { plong, pshort, pcode, description, version, files, docs ? [ "readme.txt" ], ... } @attrs:
+    let
+      attrs' = builtins.removeAttrs attrs [ "plong" "pshort" "pcode" "description" "docs" "files" "version" ];
+      pname = lib.replaceStrings [ " " ":" ] [ "-" "" ] (lib.toLower plong);
+    in stdenv.mkDerivation ({
+      name = "${pname}-${version}";
+
+      nativeBuildInputs = [ unzip ];
+
+      dontBuild = true;
+      dontFixup = true;
+
+      installPhase = ''
+        runHook preInstall
+
+        mkdir -p $out/bin $out/share/{applications,${pname},doc/${pname}}
+
+        ${lib.concatStringsSep "\n" (map (f: "mv ${f} $out/share/doc/${pname}") docs)}
+        ${lib.concatStringsSep "\n" (map (f: "mv ${f} $out/share/${pname}") files)}
+
+        substitute ${run pname pshort pcode} $out/bin/${pshort} \
+          --subst-var out
+        substitute ${desktopItem pname pshort plong description}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop \
+          --subst-var out
+
+        chmod 0755 $out/bin/${pshort}
+
+        runHook postInstall
+      '';
+
+      meta = with stdenv.lib; {
+        homepage = https://www.scummvm.org;
+        license = licenses.free; # refer to the readme for exact wording
+        maintainers = with maintainers; [ peterhoeg ];
+        inherit description;
+        inherit (scummvm.meta) platforms;
+      };
+    } // attrs');
+
+in {
+  beneath-a-steel-sky = generic rec {
+    plong = "Beneath a Steel Sky";
+    pshort = "bass";
+    pcode = "sky";
+    description = "2D point-and-click science fiction thriller set in a bleak vision of the future";
+    version = "1.2";
+    src = fetchurl {
+      url = "mirror://sourceforge/scummvm/${pshort}-cd-${version}.zip";
+      sha256 = "14s5jz67kavm8l15gfm5xb7pbpn8azrv460mlxzzvdpa02a9n82k";
+    };
+    files = [ "sky.*" ];
+  };
+
+  drascula-the-vampire-strikes-back = generic rec {
+    plong = "Drascula: The Vampire Strikes Back";
+    pshort = "drascula";
+    pcode = "drascula";
+    description = "Spanish 2D classic point & click style adventure with tons of humor and an easy interface";
+    version = "1.0";
+    # srcs = {
+      src = fetchurl {
+        url = "mirror://sourceforge/scummvm/${pshort}-${version}.zip";
+        sha256 = "1pj29rpb754sn6a56f8brfv6f2m1p5qgaqik7d68pfi2bb5zccdp";
+      };
+      # audio = fetchurl {
+        # url = "mirror://sourceforge/scummvm/${pshort}-audio-flac-2.0.zip";
+        # sha256 = "1zmqhrby8f5sj1qy6xjdgkvk9wyhr3nw8ljrrl58fmxb83x1rryw";
+      # };
+    # };
+    sourceRoot = ".";
+    docs = [ "readme.txt" "drascula.doc" ];
+    files = [ "Packet.001" ];
+  };
+
+  flight-of-the-amazon-queen = generic rec {
+    plong = "Flight of the Amazon Queen";
+    pshort = "fotaq";
+    pcode = "queen";
+    description = "2D point-and-click adventure game set in the 1940s";
+    version = "1.1";
+    src = fetchurl {
+      url = "mirror://sourceforge/scummvm/FOTAQ_Talkie-${version}.zip";
+      sha256 = "1a6q71q1dl9vvw2qqsxk5h1sv0gaqy6236zr5905w2is01gdsp52";
+    };
+    sourceRoot = ".";
+    files = [ "*.1c" ];
+  };
+
+  lure-of-the-temptress = generic rec {
+    plong = "Lure of the Temptress";
+    pshort = "lott";
+    pcode = "lure";
+    description = "2D point-and-click adventure game with a fantasy theme";
+    version = "1.1";
+    src = fetchurl {
+      url = "mirror://sourceforge/scummvm/lure-${version}.zip";
+      sha256 = "0201i70qcs1m797kvxjx3ygkhg6kcl5yf49sihba2ga8l52q45zk";
+    };
+    docs = [ "README" "*.txt" "*.pdf" "*.PDF" ];
+    files = [ "*.vga" ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/sdlmame/default.nix b/nixpkgs/pkgs/games/sdlmame/default.nix
new file mode 100644
index 000000000000..9f90c9f14aac
--- /dev/null
+++ b/nixpkgs/pkgs/games/sdlmame/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, alsaLib, qt48, SDL, fontconfig, freetype, SDL_ttf, xorg }:
+
+stdenv.mkDerivation rec {
+  version = "0.151.u0-1";
+  name    = "sdlmame-${version}";
+
+  src = if stdenv.hostPlatform.system == "x86_64-linux"
+    then fetchurl {
+      url    = "http://seblu.net/a/archive/packages/s/sdlmame/${name}-x86_64.pkg.tar.xz";
+      sha256 = "1j9vjxhrhsskrlk5wr7al4wk2hh3983kcva42mqal09bmc8qg3m9";
+    }
+    else fetchurl {
+      url    = "http://seblu.net/a/archive/packages/s/sdlmame/${name}-i686.pkg.tar.xz";
+      sha256 = "1i38j9ml66pyxzm0zzf1fv4lb40f6w47cdgaw846q91pzakkkqn7";
+    };
+
+  buildPhase = ''
+    sed -i "s|/usr|$out|" bin/sdlmame
+  '';
+
+  installPhase = ''
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${stdenv.lib.makeLibraryPath [ alsaLib qt48 SDL fontconfig freetype SDL_ttf xorg.libX11 xorg.libXinerama stdenv.cc.cc ]}" \
+      share/sdlmame/sdlmame
+
+    mkdir -p "$out/bin"
+    cp -r bin/sdlmame "$out/bin"
+    cp -r share "$out"
+  '';
+
+  dontPatchELF = true;
+  dontStrip    = true;
+
+  meta = with stdenv.lib; {
+    homepage    = http://sdlmame.lngn.net;
+    description = "A port of the popular Multiple Arcade Machine Emulator using SDL with OpenGL support";
+    license     = "MAME";
+    maintainers = with maintainers; [ lovek323 ];
+    platforms   = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/sgt-puzzles/default.nix b/nixpkgs/pkgs/games/sgt-puzzles/default.nix
new file mode 100644
index 000000000000..ce8d38ca5d1d
--- /dev/null
+++ b/nixpkgs/pkgs/games/sgt-puzzles/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl
+, gtk3, libX11
+, makeWrapper, pkgconfig, perl, autoreconfHook, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  name = "sgt-puzzles-r${version}";
+  version = "20180429.31384ca";
+
+  src = fetchurl {
+   url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
+   sha256 = "0r97kyy0rxgzw78lby2kwi8fg1yimw8a3biy5psgd983d0nwcf9l";
+  };
+
+  nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig perl wrapGAppsHook ];
+
+  buildInputs = [ gtk3 libX11 ];
+
+  makeFlags = ["prefix=$(out)" "gamesdir=$(out)/bin"];
+  preInstall = ''
+    mkdir -p "$out"/{bin,share/doc/sgtpuzzles}
+    cp gamedesc.txt LICENCE README "$out/share/doc/sgtpuzzles"
+  '';
+  # SGT Puzzles use generic names like net, map, etc.
+  # Create symlinks with sgt-puzzle- prefix for possibility of
+  # disambiguation
+  postInstall = ''
+    (
+      cd "$out"/bin ;
+      for i in *; do ln -s "$i" "sgt-puzzle-$i"; done
+    )
+  '';
+  preConfigure = ''
+    perl mkfiles.pl
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lX11"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error"
+    cp Makefile.gtk Makefile
+  '';
+  meta = with stdenv.lib; {
+    description = "Simon Tatham's portable puzzle collection";
+    license = licenses.mit;
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.linux;
+    homepage = http://www.chiark.greenend.org.uk/~sgtatham/puzzles/;
+  };
+}
diff --git a/nixpkgs/pkgs/games/sgt-puzzles/default.upstream b/nixpkgs/pkgs/games/sgt-puzzles/default.upstream
new file mode 100644
index 000000000000..b6d048b68ae9
--- /dev/null
+++ b/nixpkgs/pkgs/games/sgt-puzzles/default.upstream
@@ -0,0 +1,5 @@
+minimize_overwrite
+url http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles.tar.gz
+redirect
+NEED_TO_CHOOSE_URL=
+version '.*[-_.]([0-9]{8}[.][^.]+)[.]tar[.].*' '\1'
diff --git a/nixpkgs/pkgs/games/sienna/default.nix b/nixpkgs/pkgs/games/sienna/default.nix
new file mode 100644
index 000000000000..58ed85c79fdb
--- /dev/null
+++ b/nixpkgs/pkgs/games/sienna/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }:
+
+let
+  pname = "sienna";
+  version = "1.0c";
+
+  icon = fetchurl {
+    url = "http://tangramgames.dk/img/thumb/sienna.png";
+    sha256 = "12q2rhk39dmb6ir50zafn8dylaad5gns8z3y21mfjabc5l5g02nn";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "sienna";
+    exec = "${pname}";
+    icon = "${icon}";
+    comment = "Fast-paced one button platformer"; 
+    desktopName = "Sienna";
+    genericName = "sienna";
+    categories = "Game;";
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/SimonLarsen/${pname}/releases/download/v${version}/${pname}-${version}.love";
+    sha256 = "1x15276fhqspgrrv8fzkp032i2qa8piywc0yy061x59mxhdndzj6";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ lua love ];
+
+  phases = "installPhase";
+
+  installPhase =
+  ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/games/lovegames
+
+    cp -v $src $out/share/games/lovegames/${pname}.love
+
+    makeWrapper ${love}/bin/love $out/bin/${pname} --add-flags $out/share/games/lovegames/${pname}.love
+
+    chmod +x $out/bin/${pname}
+    mkdir -p $out/share/applications
+    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Fast-paced one button platformer";
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.linux;
+    license = licenses.free;
+    downloadPage = http://tangramgames.dk/games/sienna;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/sil/default.nix b/nixpkgs/pkgs/games/sil/default.nix
new file mode 100644
index 000000000000..de91f26d95de
--- /dev/null
+++ b/nixpkgs/pkgs/games/sil/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchzip, ncurses, libX11, libXaw, libXt, libXext, libXmu, makeWrapper, writeScript, ... }:
+let 
+  setup = writeScript "setup" ''
+    mkdir -p "$ANGBAND_PATH"
+    # Copy all the data files into place
+    cp -ar $1/* "$ANGBAND_PATH"
+    # The copied files are not writable, make them so
+    chmod +w -R "$ANGBAND_PATH"
+  '';
+in
+stdenv.mkDerivation rec {
+  name = "Sil-${version}";
+  version = "1.3.0";
+
+  src = fetchzip {
+    url = "http://www.amirrorclear.net/flowers/game/sil/Sil-130-src.zip";
+    sha256 = "1amp2mr3fxascra0k76sdsvikjh8g76nqh46kka9379zd35lfq8w";
+    stripRoot=false;
+  };
+
+  buildInputs = [ makeWrapper ncurses libX11 libXaw libXt libXext libXmu ];
+
+  sourceRoot = "source/Sil/src";
+
+  makefile = "Makefile.std";
+
+  prePatch = ''
+    # Allow usage of ANGBAND_PATH
+    substituteInPlace config.h --replace "#define FIXED_PATHS" "" 
+  '';
+
+  preConfigure = ''
+    buildFlagsArray+=("LIBS=-lXaw -lXext -lSM -lICE -lXmu -lXt -lX11 -lncurses")
+  '';
+
+  installPhase = ''
+    # the makefile doesn't have a sensible install target, so we hav to do it ourselves
+    mkdir -p $out/bin
+    cp sil $out/bin/sil
+    # Wrap the program to set a user-local ANGBAND_PATH, and run the setup script to copy files into place
+    # We could just use the options for a user-local save and scores dir, but it tried to write to the 
+    # lib directory anyway, so we might as well give everyone a copy
+    wrapProgram $out/bin/sil \
+      --run "set -u" \
+      --run "export ANGBAND_PATH=\$HOME/.sil" \
+      --run "${setup} ${src}/Sil/lib"
+  '';
+
+  meta = {
+    description = "A rouge-like game set in the first age of Middle-earth";
+    longDescription = ''
+      A game of adventure set in the first age of Middle-earth, when the world still 
+      rang with elven song and gleamed with dwarven mail.
+
+      Walk the dark halls of Angband.  Slay creatures black and fell.  Wrest a shining 
+      Silmaril from Morgoth’s iron crown.
+    '';
+    homepage = http://www.amirrorclear.net/flowers/game/sil/index.html;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.michaelpj ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/simutrans/default.nix b/nixpkgs/pkgs/games/simutrans/default.nix
new file mode 100644
index 000000000000..a97338f6f204
--- /dev/null
+++ b/nixpkgs/pkgs/games/simutrans/default.nix
@@ -0,0 +1,169 @@
+{ stdenv, fetchurl, pkgconfig, unzip, zlib, libpng, bzip2, SDL, SDL_mixer
+, buildEnv, config, runtimeShell
+}:
+
+let
+  # Choose your "paksets" of objects, images, text, music, etc.
+  paksets = config.simutrans.paksets or "pak64 pak64.japan pak128 pak128.britain pak128.german";
+
+  result = with stdenv.lib; withPaks (
+    if paksets == "*" then attrValues pakSpec # taking all
+      else map (name: pakSpec.${name}) (splitString " " paksets)
+  );
+
+  ver1 = "120";
+  ver2 = "2";
+  ver3 = "2";
+  version =   "${ver1}.${ver2}.${ver3}";
+  ver_dash =  "${ver1}-${ver2}-${ver3}";
+
+  binary_src = fetchurl {
+    url = "mirror://sourceforge/simutrans/simutrans/${ver_dash}/simutrans-src-${ver_dash}.zip";
+    sha256 = "1yi6rwbrnfd65qfz63cncw2n56pbypvg6cllwh71mgvs6x2c28kz";
+  };
+
+
+  # As of 2015/03, many packsets still didn't have a release for version 120.
+  pakSpec = stdenv.lib.mapAttrs
+    (pakName: attrs: mkPak (attrs // {inherit pakName;}))
+  {
+    pak64 = {
+      srcPath = "120-2/simupak64-120-2";
+      sha256 = "1s310pssar4s1nf6gi9cizbx4m75avqm2qk039ha5rk8jk4lzkmk";
+    };
+    "pak64.japan" = {
+      # No release for 120.2 yet!
+      srcPath = "120-0/simupak64.japan-120-0-1";
+      sha256 = "14swy3h4ij74bgaw7scyvmivfb5fmp21nixmhlpk3mav3wr3167i";
+    };
+
+    pak128 = {
+      srcPath = "pak128%20for%20ST%20120.2.2%20%282.7%2C%20minor%20changes%29/pak128";
+      sha256 = "1x6g6yfv1hvjyh3ciccly1i2k2n2b63dw694gdg4j90a543rmclg";
+    };
+    "pak128.britain" = {
+      srcPath = "pak128.Britain%20for%20120-1/pak128.Britain.1.17-120-1";
+      sha256 = "1nviwqizvch9n3n826nmmi7c707dxv0727m7lhc1n2zsrrxcxlr5";
+    };
+    "pak128.cs" = { # note: it needs pak128 to work
+      url = "mirror://sourceforge/simutrans/Pak128.CS/pak128.cz_v.0.2.1.zip";
+      sha256 = "008d8x1s0vxsq78rkczlnf57pv1n5hi1v5nbd1l5w3yls7lk11sc";
+    };
+    "pak128.german" = {
+      url = "mirror://sourceforge/simutrans/PAK128.german/"
+        + "PAK128.german_0.10.x_for_ST_120.x/PAK128.german_0.10.3_for_ST_120.x.zip";
+      sha256 = "1379zcviyf3v0wsli33sqa509k6zlw6fkk57vahc44mrnhka5fpb";
+    };
+
+    /* This release contains accented filenames that prevent unzipping.
+    "pak192.comic" = {
+      srcPath = "pak192comic%20for%20${ver2_dash}/pak192comic-0.4-${ver2_dash}up";
+      sha256 = throw "";
+    };
+    */
+  };
+
+
+  mkPak = {
+    sha256, pakName, srcPath ? null
+    , url ? "mirror://sourceforge/simutrans/${pakName}/${srcPath}.zip"
+  }:
+    stdenv.mkDerivation {
+      name = "simutrans-${pakName}";
+      unpackPhase = "true";
+      preferLocalBuild = true;
+      installPhase = let src = fetchurl { inherit url sha256; };
+      in ''
+        mkdir -p "$out/share/simutrans/${pakName}"
+        cd "$out/share/simutrans/${pakName}"
+        "${unzip}/bin/unzip" "${src}"
+        chmod -R +w . # some zipfiles need that
+
+        set +o pipefail # no idea why it's needed
+        toStrip=`find . -iname '*.pak' | head -n 1 | sed 's|\./\(.*\)/[^/]*$|\1|'`
+        echo "Detected path '$toStrip' to strip"
+        mv ./"$toStrip"/* .
+        rmdir -p "$toStrip"
+      '';
+    };
+
+  /* The binaries need all data in one directory; the default is directory
+      of the executable, and another option is the current directory :-/ */
+  withPaks = paks: buildEnv {
+    inherit (binaries) name;
+    paths = [binaries] ++ paks;
+    postBuild = ''
+      rm "$out/bin" && mkdir "$out/bin"
+      cat > "$out/bin/simutrans" <<EOF
+      #!${runtimeShell}
+      cd "$out"/share/simutrans
+      exec "${binaries}/bin/simutrans" -use_workdir "\''${extraFlagsArray[@]}" "\$@"
+      EOF
+      chmod +x "$out/bin/simutrans"
+    '';
+
+    passthru.meta = binaries.meta // { hydraPlatforms = []; };
+    passthru.binaries = binaries;
+  };
+
+  binaries = stdenv.mkDerivation rec {
+    name = "simutrans-${version}";
+
+    src = binary_src;
+
+    sourceRoot = ".";
+
+  nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [ zlib libpng bzip2 SDL SDL_mixer unzip ];
+
+    configurePhase = let
+      # Configuration as per the readme.txt and config.template
+      platform =
+        if stdenv.isLinux then "linux" else
+        if stdenv.isDarwin then "mac" else throw "add your platform";
+      config = ''
+        BACKEND = mixer_sdl
+        COLOUR_DEPTH = 16
+        OSTYPE = ${platform}
+        VERBOSE = 1
+      '';
+      #TODO: MULTI_THREAD = 1 is "highly recommended",
+      # but it's roughly doubling CPU usage for me
+    in ''
+      echo "${config}" > config.default
+
+      # Use ~/.simutrans instead of ~/simutrans
+      substituteInPlace simsys.cc --replace '%s/simutrans' '%s/.simutrans'
+
+      # use -O2 optimization (defaults are -O or -O3)
+      sed -i -e '/CFLAGS += -O/d' Makefile
+      export CFLAGS+=-O2
+    '';
+
+    enableParallelBuilding = true;
+
+    installPhase = ''
+      mkdir -p $out/share/
+      mv simutrans $out/share/
+
+      mkdir -p $out/bin/
+      mv build/default/sim $out/bin/simutrans
+    '';
+
+    meta = with stdenv.lib; {
+      description = "A simulation game in which the player strives to run a successful transport system";
+      longDescription = ''
+        Simutrans is a cross-platform simulation game in which the
+        player strives to run a successful transport system by
+        transporting goods, passengers, and mail between
+        places. Simutrans is an open source remake of Transport Tycoon.
+      '';
+
+      homepage = http://www.simutrans.com/;
+      license = with licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ kkallio vcunat phile314 ];
+      platforms = with platforms; linux; # TODO: ++ darwin;
+    };
+  };
+
+in result
diff --git a/nixpkgs/pkgs/games/snake4/default.nix b/nixpkgs/pkgs/games/snake4/default.nix
new file mode 100644
index 000000000000..f37e15a22dfe
--- /dev/null
+++ b/nixpkgs/pkgs/games/snake4/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, shhmsg, shhopt, xorg }:
+
+stdenv.mkDerivation rec {
+  name = "snake4-1.0.14";
+
+  src = fetchurl {
+    url = "http://shh.thathost.com/pub-unix/files/${name}.tar.gz";
+    sha256 = "14cng9l857np42zixp440mbc8y5675frb6lhsds53j1cws9cncw9";
+  };
+
+  buildInputs = with xorg; [ shhmsg shhopt libX11 libXt libXpm libXaw libXext ];
+
+  preInstall = ''
+    substituteInPlace Makefile \
+      --replace "-o \$(OWNER) -g \$(GROUP)" "" \
+      --replace "4755" "755"
+  '';
+  
+  installFlags = [ "INSTLIBDIR=$(out)/lib"
+                   "INSTBINDIR=$(out)/bin"
+                   "INSTMANDIR=$(out)/man" ];
+
+  meta = with stdenv.lib; {
+    description = "A game starring a fruit-eating snake";
+    homepage = http://shh.thathost.com/pub-unix/html/snake4.html;
+    license = licenses.artistic1;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/snipes/default.nix b/nixpkgs/pkgs/games/snipes/default.nix
new file mode 100644
index 000000000000..e8d915dd31a5
--- /dev/null
+++ b/nixpkgs/pkgs/games/snipes/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, fetchurl, SDL2, SDL2_ttf }:
+
+let
+  font = fetchurl {
+    url    = "http://kingbird.myphotos.cc/ee22d44076adb8a34d8e20df4be3730a/SnipesConsole.ttf";
+    sha256 = "06n8gq18js0bv4svx84ljzhs9zmi81wy0zqcqj3b4g0rsrkr20a7";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "snipes-${version}";
+  version = "20180930";
+
+  src = fetchFromGitHub {
+    owner  = "Davidebyzero";
+    repo   = "Snipes";
+    rev    = "343e14104b7848eb1f882401888e685b7918ef9f";
+    sha256 = "1rl70d5miak34warbwfv27z11vln4lvf7maqqc78z0gdc5zivdv2";
+  };
+
+  postPatch = ''
+    substitute config-sample.h config.h \
+      --replace SnipesConsole.ttf $out/share/snipes/SnipesConsole.ttf
+  '';
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ SDL2 SDL2_ttf ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 -t $out/bin snipes
+    install -Dm644 -t $out/share/doc/snipes *.md
+    install -Dm644 ${font} $out/share/snipes/SnipesConsole.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Modern port of the classic 1982 text-mode game Snipes";
+    homepage    = https://www.vogons.org/viewtopic.php?f=7&t=49073;
+    license     = licenses.free; # This reverse-engineered source code is released with the original authors' permission.
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/soi/default.nix b/nixpkgs/pkgs/games/soi/default.nix
new file mode 100644
index 000000000000..7f9f49f363a8
--- /dev/null
+++ b/nixpkgs/pkgs/games/soi/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, cmake
+, boost, eigen2, lua, luabind, libGLU_combined, SDL }:
+
+stdenv.mkDerivation rec {
+  name = "soi-${version}";
+  version = "0.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/soi/Spheres%20of%20Influence-${version}-Source.tar.bz2";
+    name = "${name}.tar.bz2";
+    sha256 = "03c3wnvhd42qh8mi68lybf8nv6wzlm1nx16d6pdcn2jzgx1j2lzd";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ boost lua luabind libGLU_combined SDL ];
+
+  cmakeFlags = [
+    "-DEIGEN_INCLUDE_DIR=${eigen2}/include/eigen2"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A physics-based puzzle game";
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
+    license = licenses.free;
+    downloadPage = https://sourceforge.net/projects/soi/files/;
+  };
+}
diff --git a/nixpkgs/pkgs/games/solarus/default.nix b/nixpkgs/pkgs/games/solarus/default.nix
new file mode 100644
index 000000000000..1049b10d0b19
--- /dev/null
+++ b/nixpkgs/pkgs/games/solarus/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitLab, cmake, luajit,
+  SDL2, SDL2_image, SDL2_ttf, physfs,
+  openal, libmodplug, libvorbis,
+  qtbase, qttools }:
+
+stdenv.mkDerivation rec {
+  name = "solarus-${version}";
+  version = "1.6.0";
+
+  src = fetchFromGitLab {
+    owner = "solarus-games";
+    repo = "solarus";
+    rev = "v1.6.0";
+    sha256 = "0mlpa1ijaxy84f7xjgs2kjnpm035b8q9ckva6lg14q49gzy10fr2";
+  };
+
+  buildInputs = [ cmake luajit SDL2
+    SDL2_image SDL2_ttf physfs
+    openal libmodplug libvorbis
+    qtbase qttools ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A Zelda-like ARPG game engine";
+    longDescription = ''
+      Solarus is a game engine for Zelda-like ARPG games written in lua.
+      Many full-fledged games have been writen for the engine.
+    '';
+    homepage = http://www.solarus-games.org;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.Nate-Devv ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/space-orbit/default.nix b/nixpkgs/pkgs/games/space-orbit/default.nix
new file mode 100644
index 000000000000..162db9672699
--- /dev/null
+++ b/nixpkgs/pkgs/games/space-orbit/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl
+, libGLU_combined, libXi, libXt, libXext, libX11, libXmu, freeglut
+}:
+
+stdenv.mkDerivation rec {
+  name = "space-orbit-${version}";
+  version = "1.01";
+  patchversion = "9";
+
+  buildInputs = [ libGLU_combined libXi libXt libXext libX11 libXmu freeglut ];
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/s/space-orbit/space-orbit_${version}.orig.tar.gz";
+    sha256 = "1kx69f9jqnfzwjh47cl1df8p8hn3bnp6bznxnb6c4wx32ijn5gri";
+  };
+
+  patches = [
+    (fetchurl {
+       url = "mirror://debian/pool/main/s/space-orbit/space-orbit_${version}-${patchversion}.diff.gz";
+       sha256 = "1v3s97day6fhv08l2rn81waiprhi1lfyjjsj55axfh6n6zqfn1w2";
+     })
+  ];
+
+  preBuild = ''
+    cd src
+    sed -e 's@/usr/share/games/orbit/@'$out'/dump/@g' -i *.c
+    sed -e '/DIR=/d; s/-lesd//; s/-DESD//;' -i Makefile
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -r .. $out/dump
+    cat >$out/bin/space-orbit <<EOF
+#! ${stdenv.shell}
+exec $out/dump/orbit "\$@"
+EOF
+    chmod a+x $out/bin/space-orbit
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A space combat simulator";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/speed-dreams/default.nix b/nixpkgs/pkgs/games/speed-dreams/default.nix
new file mode 100644
index 000000000000..2556aa49b4c1
--- /dev/null
+++ b/nixpkgs/pkgs/games/speed-dreams/default.nix
@@ -0,0 +1,75 @@
+{ fetchurl, stdenv, libGLU_combined, freeglut, libX11, plib, openal, freealut, libXrandr, xorgproto,
+libXext, libSM, libICE, libXi, libXt, libXrender, libXxf86vm, openscenegraph, expat,
+libpng, zlib, bash, SDL2, enet, libjpeg, cmake, pkgconfig, libvorbis, runtimeShell }:
+
+stdenv.mkDerivation rec {
+  version = "2.2.1-r6404";
+  name = "speed-dreams-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/speed-dreams/2.2.1/speed-dreams-src-base-${version}.tar.xz";
+    sha256 = "0347sk8xbdsyvl48qybbycd7hvzsx5b37zzjx1yx73nzddhmlpbx";
+  };
+
+  cars-and-tracks = fetchurl {
+    url = "mirror://sourceforge/speed-dreams/2.2.1/speed-dreams-src-hq-cars-and-tracks-${version}.tar.xz";
+    sha256 = "1h50l110n42nrq6j3kcyhi3swgmrjcg979vb6h0zsf46afwv0z3q";
+  };
+
+  more-cars-and-tracks = fetchurl {
+    url = "mirror://sourceforge/speed-dreams/2.2.1/speed-dreams-src-more-hq-cars-and-tracks-${version}.tar.xz";
+    sha256 = "03m3gwd03jqgsfjdglzmrv613cp4gh50i63fwmnwl282zhxydcwd";
+  };
+
+  wip-cars-and-tracks = fetchurl {
+    url = "mirror://sourceforge/speed-dreams/2.2.1/speed-dreams-src-wip-cars-and-tracks-${version}.tar.xz";
+    sha256 = "0ysk756rd294xzpwvmjh0mb229ngzrc4ry9lpyhyak98rbcp9hxm";
+  };
+
+  sourceRoot = ".";
+
+  postUnpack = ''
+    echo Unpacking data
+    tar -xf ${cars-and-tracks}
+    tar -xf ${more-cars-and-tracks}
+    tar -xf ${wip-cars-and-tracks}
+  '';
+
+  prePatch = ''
+    # https://sourceforge.net/p/speed-dreams/mailman/message/35665539/
+    sed -i "s|lastSlash = '\\\0'|lastSlash = NULL|" src/libs/tgf/params.cpp
+    sed -i "s|const char\* error = '\\\0'|const char\* error = NULL|" src/libs/tgfclient/openalmusicplayer.cpp
+  '';
+
+  preBuild = ''
+    make -C src/libs/portability
+    make -C src/libs/portability portability.o
+    ar -rv "$(echo lib*/games/speed-dreams*/lib)"/libportability_static.a src/libs/portability/CMakeFiles/portability.dir/portability.cpp.o
+    export NIX_LDFLAGS="$NIX_LDFLAGS -L$(echo $PWD/lib*/games/speed-dreams*/lib) -lexpat"
+    echo "libportability_static.a built"
+  '';
+
+  postInstall = ''
+    mkdir "$out/bin"
+    for i in "$out"/games/*; do
+      echo '#!${runtimeShell}' >> "$out/bin/$(basename "$i")"
+      echo "$i"' "$@"' >> "$out/bin/$(basename "$i")"
+      chmod a+x "$out/bin/$(basename "$i")"
+    done
+  '';
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+
+  buildInputs = [ libpng libGLU_combined freeglut libX11 plib openal freealut libXrandr xorgproto
+    libXext libSM libICE libXi libXt libXrender libXxf86vm zlib bash expat
+    SDL2 enet libjpeg openscenegraph libvorbis ];
+
+  meta = {
+    description = "Car racing game - TORCS fork with more experimental approach";
+    homepage = http://speed-dreams.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    platforms = stdenv.lib.platforms.linux;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/games/spring/default.nix b/nixpkgs/pkgs/games/spring/default.nix
new file mode 100644
index 000000000000..1dcf432ccd48
--- /dev/null
+++ b/nixpkgs/pkgs/games/spring/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, cmake, lzma, boost, libdevil, zlib, p7zip
+, openal, libvorbis, glew, freetype, xorg, SDL2, libGLU_combined
+, asciidoc, libxslt, docbook_xsl, docbook_xsl_ns, curl, makeWrapper
+, jdk ? null, python ? null, systemd, libunwind, which, minizip
+, withAI ? true # support for AI Interfaces and Skirmish AIs
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "spring-${version}";
+  version = "104.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/springrts/spring_${version}_src.tar.lzma";
+    sha256 = "05pclcbw7v481pqz7bgirlk37494hy4hx4jghhnlzhdaz1cvzc6f";
+  };
+
+  # The cmake included module correcly finds nix's glew, however
+  # it has to be the bundled FindGLEW for headless or dedicated builds
+  prePatch = ''
+    substituteInPlace ./rts/build/cmake/FindAsciiDoc.cmake \
+      --replace "PATHS /usr /usr/share /usr/local /usr/local/share" "PATHS ${docbook_xsl}"\
+      --replace "xsl/docbook/manpages" "share/xml/docbook-xsl/manpages"
+    patchShebangs .
+    rm rts/build/cmake/FindGLEW.cmake
+  '';
+
+  cmakeFlags = ["-DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON"
+                "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON"
+                "-DPREFER_STATIC_LIBS:BOOL=OFF"];
+
+  buildInputs = [ cmake lzma boost libdevil zlib p7zip openal libvorbis freetype SDL2
+    xorg.libX11 xorg.libXcursor libGLU_combined glew asciidoc libxslt docbook_xsl curl makeWrapper
+    docbook_xsl_ns systemd libunwind which minizip ]
+    ++ stdenv.lib.optional withAI jdk
+    ++ stdenv.lib.optional withAI python;
+
+  enableParallelBuilding = true;
+
+  NIX_CFLAGS_COMPILE = "-fpermissive"; # GL header minor incompatibility
+
+  postInstall = ''
+    wrapProgram "$out/bin/spring" \
+      --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc systemd ]}"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://springrts.com/;
+    description = "A powerful real-time strategy (RTS) game engine";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.phreedom maintainers.qknight maintainers.domenkozar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/spring/fix-certs.patch b/nixpkgs/pkgs/games/spring/fix-certs.patch
new file mode 100644
index 000000000000..b31160a05cc6
--- /dev/null
+++ b/nixpkgs/pkgs/games/spring/fix-certs.patch
@@ -0,0 +1,11 @@
+--- a/src/downloader/lib/src/Downloader/CurlWrapper.cpp
++++ b/src/downloader/lib/src/Downloader/CurlWrapper.cpp
+@@ -108,7 +108,6 @@
+ 		if (res != CURLE_OK) {
+ 			LOG_WARN("Error setting CURLOPT_CAPATH: %d", res);
+ 		}
+-		return;
+ 	}
+ 
+ 	const std::string cafile = GetCAFilePath();
+
diff --git a/nixpkgs/pkgs/games/spring/revert_58b423e.patch b/nixpkgs/pkgs/games/spring/revert_58b423e.patch
new file mode 100644
index 000000000000..79a42cefa5a6
--- /dev/null
+++ b/nixpkgs/pkgs/games/spring/revert_58b423e.patch
@@ -0,0 +1,16 @@
+--- a/src/utils/slpaths.cpp
++++ b/src/utils/slpaths.cpp
+@@ -165,13 +165,10 @@
+ 			usync_paths.push_back(bundle);
+ 		}
+ 		if (!SlPaths::IsPortableMode()) {
+-			/*
+-//FIXME: reenable when #707 is fixed / spring 102.0 is "established"
+ 			LSL::SpringBundle systembundle;
+ 			if (LSL::SpringBundle::LocateSystemInstalledSpring(systembundle)) {
+ 				usync_paths.push_back(systembundle);
+ 			}
+-*/
+ 
+ 			std::vector<std::string> paths;
+ 			PossibleEnginePaths(paths);
diff --git a/nixpkgs/pkgs/games/spring/springlobby.nix b/nixpkgs/pkgs/games/spring/springlobby.nix
new file mode 100644
index 000000000000..8df4450d13d1
--- /dev/null
+++ b/nixpkgs/pkgs/games/spring/springlobby.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, cmake, wxGTK30, openal, pkgconfig, curl, libtorrentRasterbar
+, libpng, libX11, gettext, boost, libnotify, gtk2, doxygen, spring
+, makeWrapper, glib, minizip, alure, pcre, jsoncpp }:
+
+stdenv.mkDerivation rec {
+  name = "springlobby-${version}";
+  version = "0.267";
+
+  src = fetchurl {
+    url = "http://www.springlobby.info/tarballs/springlobby-${version}.tar.bz2";
+    sha256 = "0yv7j9l763iqx7hdi2pcz5jkj0068yrffb8nrav7pwg0g3s0znak";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    cmake wxGTK30 openal curl gettext libtorrentRasterbar pcre jsoncpp
+    boost libpng libX11 libnotify gtk2 doxygen makeWrapper glib minizip alure
+  ];
+
+  patches = [ ./revert_58b423e.patch ./fix-certs.patch ]; # Allows springLobby to continue using system installed spring until #707 is fixed
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    wrapProgram $out/bin/springlobby \
+      --prefix PATH : "${spring}/bin" \
+      --set SPRING_BUNDLE_DIR "${spring}/lib"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://springlobby.info/;
+    repositories.git = git://github.com/springlobby/springlobby.git;
+    description = "Cross-platform lobby client for the Spring RTS project";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ phreedom qknight domenkozar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/stardust/default.nix b/nixpkgs/pkgs/games/stardust/default.nix
new file mode 100644
index 000000000000..1408b66ab41b
--- /dev/null
+++ b/nixpkgs/pkgs/games/stardust/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, zlib, libtiff, libxml2, SDL, xorgproto, libX11
+, libXi, libXmu, libXext, libGLU_combined }:
+
+stdenv.mkDerivation rec {
+  name = "stardust-${version}";
+  version = "0.1.13";
+
+  src = fetchurl {
+    url = "http://iwar.free.fr/IMG/gz/${name}.tar.gz";
+    sha256 = "19rs9lz5y5g2yiq1cw0j05b11digw40gar6rw8iqc7bk3s8355xp";
+  };
+
+  buildInputs = [
+    zlib libtiff libxml2 SDL xorgproto libX11 libXi
+    libXmu libXext libGLU_combined
+  ];
+
+  installFlags = [ "bindir=\${out}/bin" ];
+
+  hardeningDisable = [ "format" ];
+
+  postConfigure = ''
+    substituteInPlace config.h \
+      --replace '#define PACKAGE ""' '#define PACKAGE "stardust"'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Space flight simulator";
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.linux;
+    license = licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/games/steam/build-runtime.py b/nixpkgs/pkgs/games/steam/build-runtime.py
new file mode 100644
index 000000000000..e0ff5cebd933
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/build-runtime.py
@@ -0,0 +1,98 @@
+#!/usr/bin/env python2
+#
+# Script to build and install packages into the Steam runtime
+# Patched version of https://github.com/ValveSoftware/steam-runtime/blob/master/build-runtime.py
+
+import os
+import re
+import sys
+import subprocess
+import argparse
+import json
+
+# The top level directory
+top = sys.path[0]
+
+def parse_args():
+	parser = argparse.ArgumentParser()
+	parser.add_argument("-r", "--runtime", help="specify runtime path", default=os.path.join(top,"runtime"))
+	parser.add_argument("-i", "--input", help="packages JSON", required=True)
+	return parser.parse_args()
+
+
+def install_deb (basename, deb, dest_dir):
+	installtag_dir=os.path.join(dest_dir, "installed")
+	if not os.access(installtag_dir, os.W_OK):
+		os.makedirs(installtag_dir)
+
+	#
+	# Unpack the package into the dest_dir
+	#
+	os.chdir(top)
+	subprocess.check_call(['dpkg-deb', '-x', deb, dest_dir])
+
+
+#
+# Walks through the files in the runtime directory and converts any absolute symlinks
+# to their relative equivalent
+#
+def fix_symlinks ():
+	for dir, subdirs, files in os.walk(args.runtime):
+		for name in files:
+			filepath=os.path.join(dir,name)
+			if os.path.islink(filepath):
+				target = os.readlink(filepath)
+				if os.path.isabs(target):
+					#
+					# compute the target of the symlink based on the 'root' of the architecture's runtime
+					#
+					target2 = os.path.join(args.runtime,target[1:])
+
+					#
+					# Set the new relative target path
+					#
+					os.unlink(filepath)
+					os.symlink(os.path.relpath(target2,dir), filepath)
+
+#
+# Creates the usr/lib/debug/.build-id/xx/xxxxxxxxx.debug symlink tree for all the debug
+# symbols
+#
+def fix_debuglinks ():
+	for dir, subdirs, files in os.walk(os.path.join(args.runtime,"usr/lib/debug")):
+		if ".build-id" in subdirs:
+			subdirs.remove(".build-id")		# don't recurse into .build-id directory we are creating
+
+		for file in files:
+
+			#
+			# scrape the output of readelf to find the buildid for this binary
+			#
+			p = subprocess.Popen(["readelf", '-n', os.path.join(dir,file)], stdout=subprocess.PIPE)
+			for line in iter(p.stdout.readline, ""):
+				m = re.search('Build ID: (\w{2})(\w+)',line)
+				if m:
+					linkdir = os.path.join(args.runtime,"usr/lib/debug/.build-id",m.group(1))
+					if not os.access(linkdir, os.W_OK):
+						os.makedirs(linkdir)
+					link = os.path.join(linkdir,m.group(2))
+					print "SYMLINKING symbol file %s to %s" % (link, os.path.relpath(os.path.join(dir,file),linkdir))
+					if os.path.lexists(link):
+						os.unlink(link)
+					os.symlink(os.path.relpath(os.path.join(dir,file), linkdir),link)
+
+
+args = parse_args()
+
+
+print ("Creating Steam Runtime in %s" % args.runtime)
+
+with open(args.input) as pkgfile:
+	pkgs = json.load(pkgfile)
+	for pkg in pkgs:
+		install_deb(pkg["name"], pkg["source"], args.runtime)
+
+fix_debuglinks()
+fix_symlinks()
+
+# vi: set noexpandtab:
diff --git a/nixpkgs/pkgs/games/steam/build-wrapped.sh b/nixpkgs/pkgs/games/steam/build-wrapped.sh
new file mode 100644
index 000000000000..ddf974671a03
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/build-wrapped.sh
@@ -0,0 +1,47 @@
+source $stdenv/setup
+
+outp=$out/lib/steam-runtime
+
+buildDir() {
+  paths="$1"
+  pkgs="$2"
+
+  for pkg in $pkgs; do
+    echo "adding package $pkg"
+    for path in $paths; do
+      if [ -d $pkg/$path ]; then
+        cd $pkg/$path
+        for file in *; do
+          found=""
+          for i in $paths; do
+            if [ -e "$outp/$i/$file" ]; then
+              found=1
+              break
+            fi
+          done
+          if [ -z "$found" ]; then
+            mkdir -p $outp/$path
+            ln -s "$pkg/$path/$file" $outp/$path
+            sovers=$(echo $file | perl -ne 'print if s/.*?\.so\.(.*)/\1/')
+            if [ ! -z "$sovers" ]; then
+              fname=''${file%.''${sovers}}
+              for ver in ''${sovers//./ }; do
+                found=""
+                for i in $paths; do
+                  if [ -e "$outp/$i/$fname" ]; then
+                    found=1
+                    break
+                  fi
+                done
+                [ -n "$found" ] || ln -s "$pkg/$path/$file" "$outp/$path/$fname"
+                fname="$fname.$ver"
+              done
+            fi
+          fi
+        done
+      fi
+    done
+  done
+}
+
+eval "$installPhase"
diff --git a/nixpkgs/pkgs/games/steam/chrootenv.nix b/nixpkgs/pkgs/games/steam/chrootenv.nix
new file mode 100644
index 000000000000..4661cf7d8035
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/chrootenv.nix
@@ -0,0 +1,241 @@
+{ config, stdenv, lib, writeScript, buildFHSUserEnv, steam, glxinfo-i686
+, steam-runtime-wrapped, steam-runtime-wrapped-i686 ? null
+, extraPkgs ? pkgs: [ ] # extra packages to add to targetPkgs
+, extraProfile ? "" # string to append to profile
+, nativeOnly ? false
+, runtimeOnly ? false
+, runtimeShell
+
+# DEPRECATED
+, withJava ? config.steam.java or false
+, withPrimus ? config.steam.primus or false
+}:
+
+let
+  commonTargetPkgs = pkgs: with pkgs;
+    [
+      steamPackages.steam-fonts
+      # Errors in output without those
+      pciutils
+      python2
+      # Games' dependencies
+      xorg.xrandr
+      which
+      # Needed by gdialog, including in the steam-runtime
+      perl
+      # Open URLs
+      xdg_utils
+      iana-etc
+      # Steam Play / Proton
+      python3
+    ] ++ lib.optional withJava jdk
+      ++ lib.optional withPrimus primus
+      ++ extraPkgs pkgs;
+
+  ldPath = map (x: "/steamrt/${steam-runtime-wrapped.arch}/" + x) steam-runtime-wrapped.libs
+           ++ lib.optionals (steam-runtime-wrapped-i686 != null) (map (x: "/steamrt/${steam-runtime-wrapped-i686.arch}/" + x) steam-runtime-wrapped-i686.libs);
+
+  runSh = writeScript "run.sh" ''
+    #!${runtimeShell}
+    runtime_paths="${lib.concatStringsSep ":" ldPath}"
+    if [ "$1" == "--print-steam-runtime-library-paths" ]; then
+      echo "$runtime_paths"
+      exit 0
+    fi
+    export LD_LIBRARY_PATH="$runtime_paths:$LD_LIBRARY_PATH"
+    exec "$@"
+  '';
+
+in buildFHSUserEnv rec {
+  name = "steam";
+
+  targetPkgs = pkgs: with pkgs; [
+    steamPackages.steam
+    # License agreement
+    gnome3.zenity
+  ] ++ commonTargetPkgs pkgs;
+
+  multiPkgs = pkgs: with pkgs; [
+    # These are required by steam with proper errors
+    xorg.libXcomposite
+    xorg.libXtst
+    xorg.libXrandr
+    xorg.libXext
+    xorg.libX11
+    xorg.libXfixes
+    libGL
+
+    # Not formally in runtime but needed by some games
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-ugly
+    libdrm
+    mono
+    xorg.xkeyboardconfig
+    xorg.libpciaccess
+  ] ++ (if (!nativeOnly) then [
+    (steamPackages.steam-runtime-wrapped.override {
+      inherit runtimeOnly;
+    })
+  ] else [
+    # Required
+    glib
+    gtk2
+    bzip2
+    zlib
+    gdk_pixbuf
+
+    # Without these it silently fails
+    xorg.libXinerama
+    xorg.libXdamage
+    xorg.libXcursor
+    xorg.libXrender
+    xorg.libXScrnSaver
+    xorg.libXxf86vm
+    xorg.libXi
+    xorg.libSM
+    xorg.libICE
+    gnome2.GConf
+    freetype
+    (curl.override { gnutlsSupport = true; sslSupport = false; })
+    nspr
+    nss
+    fontconfig
+    cairo
+    pango
+    expat
+    dbus
+    cups
+    libcap
+    SDL2
+    libusb1
+    dbus-glib
+    libav
+    atk
+    # Only libraries are needed from those two
+    libudev0-shim
+    networkmanager098
+
+    # Verified games requirements
+    xorg.libXt
+    xorg.libXmu
+    xorg.libxcb
+    libGLU
+    libuuid
+    libogg
+    libvorbis
+    SDL
+    SDL2_image
+    glew110
+    openssl
+    libidn
+    tbb
+    wayland
+    mesa_noglu
+    libxkbcommon
+
+    # Other things from runtime
+    flac
+    freeglut
+    libjpeg
+    libpng12
+    libsamplerate
+    libmikmod
+    libtheora
+    libtiff
+    pixman
+    speex
+    SDL_image
+    SDL_ttf
+    SDL_mixer
+    SDL2_ttf
+    SDL2_mixer
+    gstreamer
+    gst-plugins-base
+    libappindicator-gtk2
+    libcaca
+    libcanberra
+    libgcrypt
+    libvpx
+    librsvg
+    xorg.libXft
+    libvdpau
+  ] ++ steamPackages.steam-runtime-wrapped.overridePkgs);
+
+  extraBuildCommands = if (!nativeOnly) then ''
+    mkdir -p steamrt
+    ln -s ../lib/steam-runtime steamrt/${steam-runtime-wrapped.arch}
+    ${lib.optionalString (steam-runtime-wrapped-i686 != null) ''
+      ln -s ../lib32/steam-runtime steamrt/${steam-runtime-wrapped-i686.arch}
+    ''}
+    ln -s ${runSh} steamrt/run.sh
+  '' else ''
+    ln -s /usr/lib/libbz2.so usr/lib/libbz2.so.1.0
+    ${lib.optionalString (steam-runtime-wrapped-i686 != null) ''
+      ln -s /usr/lib32/libbz2.so usr/lib32/libbz2.so.1.0
+    ''}
+  '';
+
+  extraInstallCommands = ''
+    mkdir -p $out/share/applications
+    ln -s ${steam}/share/icons $out/share
+    ln -s ${steam}/share/pixmaps $out/share
+    sed "s,/usr/bin/steam,$out/bin/steam,g" ${steam}/share/applications/steam.desktop > $out/share/applications/steam.desktop
+  '';
+
+  profile = ''
+    # Workaround for issue #44254 (Steam cannot connect to friends network)
+    # https://github.com/NixOS/nixpkgs/issues/44254
+    if [ -z ''${TZ+x} ]; then
+      new_TZ="$(readlink -f /etc/localtime | grep -P -o '(?<=/zoneinfo/).*$')"
+      if [ $? -eq 0 ]; then
+        export TZ="$new_TZ"
+      fi
+    fi
+
+    export STEAM_RUNTIME=${if nativeOnly then "0" else "/steamrt"}
+  '' + extraProfile;
+
+  runScript = writeScript "steam-wrapper.sh" ''
+    #!${runtimeShell}
+    if [ -f /host/etc/NIXOS ]; then   # Check only useful on NixOS
+      ${glxinfo-i686}/bin/glxinfo >/dev/null 2>&1
+      # If there was an error running glxinfo, we know something is wrong with the configuration
+      if [ $? -ne 0 ]; then
+        cat <<EOF > /dev/stderr
+    **
+    WARNING: Steam is not set up. Add the following options to /etc/nixos/configuration.nix
+    and then run \`sudo nixos-rebuild switch\`:
+    {
+      hardware.opengl.driSupport32Bit = true;
+      hardware.pulseaudio.support32Bit = true;
+    }
+    **
+    EOF
+      fi
+    fi
+    exec steam "$@"
+  '';
+
+  meta = steam.meta // {
+    broken = nativeOnly;
+  };
+
+  passthru.run = buildFHSUserEnv {
+    name = "steam-run";
+
+    targetPkgs = commonTargetPkgs;
+    inherit multiPkgs extraBuildCommands;
+
+    runScript = writeScript "steam-run" ''
+      #!${runtimeShell}
+      run="$1"
+      if [ "$run" = "" ]; then
+        echo "Usage: steam-run command-to-run args..." >&2
+        exit 1
+      fi
+      shift
+      ${lib.optionalString (!nativeOnly) "export LD_LIBRARY_PATH=${lib.concatStringsSep ":" ldPath}:$LD_LIBRARY_PATH"}
+      exec -- "$run" "$@"
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/games/steam/default.nix b/nixpkgs/pkgs/games/steam/default.nix
new file mode 100644
index 000000000000..5aab54b83221
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/default.nix
@@ -0,0 +1,25 @@
+{ pkgs, newScope }:
+
+let
+  callPackage = newScope self;
+
+  self = rec {
+    steamArch = if pkgs.stdenv.hostPlatform.system == "x86_64-linux" then "amd64"
+                else if pkgs.stdenv.hostPlatform.system == "i686-linux" then "i386"
+                else throw "Unsupported platform: ${pkgs.stdenv.hostPlatform.system}";
+
+    steam-runtime = callPackage ./runtime.nix { };
+    steam-runtime-wrapped = callPackage ./runtime-wrapped.nix { };
+    steam = callPackage ./steam.nix { };
+    steam-fonts = callPackage ./fonts.nix { };
+    steam-chrootenv = callPackage ./chrootenv.nix {
+      glxinfo-i686 = pkgs.pkgsi686Linux.glxinfo;
+      steam-runtime-wrapped-i686 =
+        if steamArch == "amd64"
+        then pkgs.pkgsi686Linux.steamPackages.steam-runtime-wrapped
+        else null;
+    };
+    steamcmd = callPackage ./steamcmd.nix { };
+  };
+
+in self
diff --git a/nixpkgs/pkgs/games/steam/fonts.nix b/nixpkgs/pkgs/games/steam/fonts.nix
new file mode 100644
index 000000000000..dab393a86fb3
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/fonts.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation {
+  name = "steam-fonts-1";
+
+  src = fetchurl {
+    url = https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip;
+    sha256 = "1cgygmwich5f1jhhbmbkkpnzasjl8gy36xln76n6r2gjh6awqfx0";
+  };
+
+  buildInputs = [ unzip ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp -r *.TTF *.ttf $out/share/fonts/truetype
+  '';
+}
diff --git a/nixpkgs/pkgs/games/steam/runtime-generated.nix b/nixpkgs/pkgs/games/steam/runtime-generated.nix
new file mode 100644
index 000000000000..d5532c051d42
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/runtime-generated.nix
@@ -0,0 +1,3627 @@
+# This file is autogenerated! Do not edit it yourself, use update-runtime.py for regeneration.
+{ fetchurl }:
+
+{
+  amd64 = [
+    rec {
+      name = "dconf-gsettings-backend_0.12.0-0ubuntu1.1+steamrt1.1+srt1_amd64";
+      sha256 = "0qbr4jfqyda0fi3giwizfv3ainsvld9fl4vd7sylpi490yw7yymh";
+      url = "mirror://steamrt/pool/main/d/d-conf/dconf-gsettings-backend_0.12.0-0ubuntu1.1+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "dconf-gsettings-backend.deb";
+      };
+    }
+    rec {
+      name = "freeglut3_2.6.0-1ubuntu3+srt5_amd64";
+      sha256 = "08mpxxd12c2kwlab47nfz25vpn7ag2xkmxp2zn48ymxab7qhvr5r";
+      url = "mirror://steamrt/pool/main/f/freeglut/freeglut3_2.6.0-1ubuntu3+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "freeglut3.deb";
+      };
+    }
+    rec {
+      name = "gcc-4.6-base_4.6.3-1ubuntu5+steamrt1.2+srt1_amd64";
+      sha256 = "16dlf5zdy9njyaj9c9gdqcq73hd49lfm3ivwizs6i4jgfi44a2q0";
+      url = "mirror://steamrt/pool/main/g/gcc-4.6/gcc-4.6-base_4.6.3-1ubuntu5+steamrt1.2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "gcc-4.6-base.deb";
+      };
+    }
+    rec {
+      name = "gcc-5-base_5.4.0-7.really.6+steamrt1.1+srt2_amd64";
+      sha256 = "1vpdmgq0vbh7x4r6n1b5cxlz6yl2lfy5bwp89xph640kip1j1xax";
+      url = "mirror://steamrt/pool/main/g/gcc-5/gcc-5-base_5.4.0-7.really.6+steamrt1.1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "gcc-5-base.deb";
+      };
+    }
+    rec {
+      name = "gtk2-engines_2.20.2-1ubuntu1+srt5_amd64";
+      sha256 = "1w2aaddcrfg37fw7bl2jcbx14bp7ar8lyaq25j9pi8298wvbikly";
+      url = "mirror://steamrt/pool/main/g/gtk2-engines/gtk2-engines_2.20.2-1ubuntu1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "gtk2-engines.deb";
+      };
+    }
+    rec {
+      name = "gtk2-engines-murrine_0.98.2-0ubuntu1+srt5_amd64";
+      sha256 = "0fqbm6502zqw64lbzywz0cllxkj9n44fxb2gg8q160vcqzyvb8jf";
+      url = "mirror://steamrt/pool/main/g/gtk2-engines-murrine/gtk2-engines-murrine_0.98.2-0ubuntu1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "gtk2-engines-murrine.deb";
+      };
+    }
+    rec {
+      name = "gtk2-engines-pixbuf_2.24.10-0ubuntu6+steamrt1+srt5_amd64";
+      sha256 = "05d43583lj3ffskvmzcr6yb8a3jz1l8gc12mrmaix8w71bv81nr1";
+      url = "mirror://steamrt/pool/main/g/gtk+2.0/gtk2-engines-pixbuf_2.24.10-0ubuntu6+steamrt1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "gtk2-engines-pixbuf.deb";
+      };
+    }
+    rec {
+      name = "libacl1_2.2.51-5ubuntu1+steamrt1.1+srt2_amd64";
+      sha256 = "0anp6yvp59ian96pkzp899sjxl7l86gp0q5lfmwdiv74asixj52j";
+      url = "mirror://steamrt/pool/main/a/acl/libacl1_2.2.51-5ubuntu1+steamrt1.1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libacl1.deb";
+      };
+    }
+    rec {
+      name = "libappindicator1_0.4.92-0ubuntu1.1+steamrt1+srt1_amd64";
+      sha256 = "19s3s3fc4vcj5cg7fh40w35vjyhi7097vv83lwjzrzhz5jlgczmp";
+      url = "mirror://steamrt/pool/main/liba/libappindicator/libappindicator1_0.4.92-0ubuntu1.1+steamrt1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libappindicator1.deb";
+      };
+    }
+    rec {
+      name = "libasn1-8-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64";
+      sha256 = "0mib9hy38mbiz40dr7x7c9c0liqswmnnykij7xpp7kbfqlvlshb8";
+      url = "mirror://steamrt/pool/main/h/heimdal/libasn1-8-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libasn1-8-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libasound2_1.1.0-0ubuntu1+steamos1+srt2_amd64";
+      sha256 = "05d4ijlc20ss4rm2jxr5lxkgwbn0qcv5a7pj9aizl66klpbzsgay";
+      url = "mirror://steamrt/pool/main/a/alsa-lib/libasound2_1.1.0-0ubuntu1+steamos1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libasound2.deb";
+      };
+    }
+    rec {
+      name = "libasound2-plugins_1.1.0-0ubuntu1+srt2_amd64";
+      sha256 = "1dsa9z7ssf39c039a60axh36wgykyapv65gmlxnvxpkhqnw4zywm";
+      url = "mirror://steamrt/pool/main/a/alsa-plugins/libasound2-plugins_1.1.0-0ubuntu1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libasound2-plugins.deb";
+      };
+    }
+    rec {
+      name = "libasyncns0_0.8-4+srt5_amd64";
+      sha256 = "00nglm7sryy3y1pagjhv1mq6rvqiawmhf3kgwv0g7bqwgxcpia7p";
+      url = "mirror://steamrt/pool/main/liba/libasyncns/libasyncns0_0.8-4+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libasyncns0.deb";
+      };
+    }
+    rec {
+      name = "libatk1.0-0_2.18.0-1+steamrt1+srt1_amd64";
+      sha256 = "1rs9k9pcxmpwlwbxgalsqhiv7baqylaxpkhy4524a4b8dw1qx0k4";
+      url = "mirror://steamrt/pool/main/a/atk1.0/libatk1.0-0_2.18.0-1+steamrt1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libatk1.0-0.deb";
+      };
+    }
+    rec {
+      name = "libattr1_2.4.46-5ubuntu1+steamrt1.1+srt1_amd64";
+      sha256 = "1d19qccdzn82iqql513xgg0yb9w9frbq7v24v2i17140c0w0jhvn";
+      url = "mirror://steamrt/pool/main/a/attr/libattr1_2.4.46-5ubuntu1+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libattr1.deb";
+      };
+    }
+    rec {
+      name = "libavahi-client3_0.6.30-5ubuntu2.2+srt1_amd64";
+      sha256 = "04rkaiapl13rxlr2bwxz2q7z6i0091nm1c49kjnl1yckg64d7548";
+      url = "mirror://steamrt/pool/main/a/avahi/libavahi-client3_0.6.30-5ubuntu2.2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libavahi-client3.deb";
+      };
+    }
+    rec {
+      name = "libavahi-common3_0.6.30-5ubuntu2.2+srt1_amd64";
+      sha256 = "1a2x57s3072na65gr7ys0wl5cm2f1j2m5kkhlhq4i8ms6hxssgrk";
+      url = "mirror://steamrt/pool/main/a/avahi/libavahi-common3_0.6.30-5ubuntu2.2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libavahi-common3.deb";
+      };
+    }
+    rec {
+      name = "libavcodec53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_amd64";
+      sha256 = "0wpmnsnq5njv65iwq2g6819m2j5fda7jm8450qs3lmyc963ds0i2";
+      url = "mirror://steamrt/pool/main/liba/libav/libavcodec53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libavcodec53.deb";
+      };
+    }
+    rec {
+      name = "libavfilter2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_amd64";
+      sha256 = "1xpxmhhhgc7ap7f2ijlsgx9p58qqyvk2lgfn61dhlibq046px816";
+      url = "mirror://steamrt/pool/main/liba/libav/libavfilter2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libavfilter2.deb";
+      };
+    }
+    rec {
+      name = "libavformat53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_amd64";
+      sha256 = "0b8vx5lhsbynivm58zhxd0w6g7c7bqjvsr891wbqizbi325yja2b";
+      url = "mirror://steamrt/pool/main/liba/libav/libavformat53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libavformat53.deb";
+      };
+    }
+    rec {
+      name = "libavutil51_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_amd64";
+      sha256 = "1g3bdnfs0rgwnzrnwpj5hamynj1z0qs8wmxlfd0iqkah74ymgaaa";
+      url = "mirror://steamrt/pool/main/liba/libav/libavutil51_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libavutil51.deb";
+      };
+    }
+    rec {
+      name = "libbz2-1.0_1.0.6-1+srt5_amd64";
+      sha256 = "046y04ynczpydlrablks51mx4jc1313k89hsi8x4sj2a355819nz";
+      url = "mirror://steamrt/pool/main/b/bzip2/libbz2-1.0_1.0.6-1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libbz2-1.0.deb";
+      };
+    }
+    rec {
+      name = "libcairo2_1.10.2-6.1ubuntu3+srt5_amd64";
+      sha256 = "1j82gzl9hfxsrk2s3nxx1dpq6jlmkz5y5mkvxw9d166v0mlvxkq4";
+      url = "mirror://steamrt/pool/main/c/cairo/libcairo2_1.10.2-6.1ubuntu3+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcairo2.deb";
+      };
+    }
+    rec {
+      name = "libcanberra-gtk-module_0.28-3ubuntu3+steamrt1.1+srt1_amd64";
+      sha256 = "10mfqks3zw2cqn2kbcc0abswnx886bnrgaf51q5r919vwrm11vi6";
+      url = "mirror://steamrt/pool/main/libc/libcanberra/libcanberra-gtk-module_0.28-3ubuntu3+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcanberra-gtk-module.deb";
+      };
+    }
+    rec {
+      name = "libcanberra-gtk0_0.28-3ubuntu3+steamrt1.1+srt1_amd64";
+      sha256 = "1im7a6z47dwlwcvcafg3bmh055fjzrar6zl207hj9h8hkw3gdnxq";
+      url = "mirror://steamrt/pool/main/libc/libcanberra/libcanberra-gtk0_0.28-3ubuntu3+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcanberra-gtk0.deb";
+      };
+    }
+    rec {
+      name = "libcanberra0_0.28-3ubuntu3+steamrt1.1+srt1_amd64";
+      sha256 = "1blld717yb6npjswczs06khm3b6vp4r0yzlwfxjp76gvmazgc3iq";
+      url = "mirror://steamrt/pool/main/libc/libcanberra/libcanberra0_0.28-3ubuntu3+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcanberra0.deb";
+      };
+    }
+    rec {
+      name = "libcap2_2.22-1ubuntu3+srt5_amd64";
+      sha256 = "0bsjpbv2p7ir6w7dpjvs8y25skha72406mhgjrff9dvdvc9mwwpy";
+      url = "mirror://steamrt/pool/main/libc/libcap2/libcap2_2.22-1ubuntu3+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcap2.deb";
+      };
+    }
+    rec {
+      name = "libcg_3.0.0016-0ubuntu1+srt5_amd64";
+      sha256 = "1d4lc4krkphvmlvmd4z60l6cg37gd62x9m700s83jxbsz0fhwmrb";
+      url = "mirror://steamrt/pool/main/n/nvidia-cg-toolkit/libcg_3.0.0016-0ubuntu1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcg.deb";
+      };
+    }
+    rec {
+      name = "libcomerr2_1.42-1ubuntu2.3+srt1_amd64";
+      sha256 = "0ar9lzaxlmhqxpp6v2b3jz3lblkqhqwy0ywbwkdq4zs5za69kh1b";
+      url = "mirror://steamrt/pool/main/e/e2fsprogs/libcomerr2_1.42-1ubuntu2.3+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcomerr2.deb";
+      };
+    }
+    rec {
+      name = "libcups2_1.5.3-0ubuntu8.7+steamrt1.2+srt2_amd64";
+      sha256 = "012fv3d528iz1xdrqlk1xckaslda6kq1sm64kwb5zzm9bzzgnl29";
+      url = "mirror://steamrt/pool/main/c/cups/libcups2_1.5.3-0ubuntu8.7+steamrt1.2+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcups2.deb";
+      };
+    }
+    rec {
+      name = "libcurl3_7.22.0-3ubuntu4.17+steamrt1.1+srt4_amd64";
+      sha256 = "1zjy6vqay9ssaxvq11gnf9kr8y94idbx7abcrr4nbx7xkdijz0zi";
+      url = "mirror://steamrt/pool/main/c/curl/libcurl3_7.22.0-3ubuntu4.17+steamrt1.1+srt4_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcurl3.deb";
+      };
+    }
+    rec {
+      name = "libcurl3-gnutls_7.22.0-3ubuntu4.17+steamrt1.1+srt4_amd64";
+      sha256 = "1599nmpk68cn9awqfq0picwclap7fwfsm8gagz95y5a5nsmldii8";
+      url = "mirror://steamrt/pool/main/c/curl/libcurl3-gnutls_7.22.0-3ubuntu4.17+steamrt1.1+srt4_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcurl3-gnutls.deb";
+      };
+    }
+    rec {
+      name = "libdbus-1-3_1.4.18-1ubuntu1.8+srt1_amd64";
+      sha256 = "1m1q2q2s6b98x1zbk31hnd80dakfqg2g8yaj662vxrdrr85j6nza";
+      url = "mirror://steamrt/pool/main/d/dbus/libdbus-1-3_1.4.18-1ubuntu1.8+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libdbus-1-3.deb";
+      };
+    }
+    rec {
+      name = "libdbus-glib-1-2_0.98-1ubuntu1.1+srt5_amd64";
+      sha256 = "1f36vyq505hrfqmhizgplvvk17zhf1230wlrzibdwi04j275sahk";
+      url = "mirror://steamrt/pool/main/d/dbus-glib/libdbus-glib-1-2_0.98-1ubuntu1.1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libdbus-glib-1-2.deb";
+      };
+    }
+    rec {
+      name = "libdbusmenu-glib4_0.6.2-0ubuntu0.1+srt5_amd64";
+      sha256 = "064wwqbjrdvwkjpyi0k6vj7rrwkwcy49mrlsgrv3q4gckiqhjhbz";
+      url = "mirror://steamrt/pool/main/libd/libdbusmenu/libdbusmenu-glib4_0.6.2-0ubuntu0.1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libdbusmenu-glib4.deb";
+      };
+    }
+    rec {
+      name = "libdbusmenu-gtk4_0.6.2-0ubuntu0.1+srt5_amd64";
+      sha256 = "0vagal7jh6biarjf9sy219p2njb5k8ycv4v7glni8prli0c1zzxq";
+      url = "mirror://steamrt/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_0.6.2-0ubuntu0.1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libdbusmenu-gtk4.deb";
+      };
+    }
+    rec {
+      name = "libexif12_0.6.20-2ubuntu0.1+srt5_amd64";
+      sha256 = "15rk2yfvsy16azpcwl8xsxigmrdhl0pkg6dvyq2pknp08c72r5r7";
+      url = "mirror://steamrt/pool/main/libe/libexif/libexif12_0.6.20-2ubuntu0.1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libexif12.deb";
+      };
+    }
+    rec {
+      name = "libexpat1_2.0.1-7.2ubuntu1.4+srt2_amd64";
+      sha256 = "0pdn5f20pbmklnvsyl83x0rjafsjy8vxn4zd2nl7h0aabzng9vy2";
+      url = "mirror://steamrt/pool/main/e/expat/libexpat1_2.0.1-7.2ubuntu1.4+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libexpat1.deb";
+      };
+    }
+    rec {
+      name = "libffi6_3.0.11~rc1-5+srt5_amd64";
+      sha256 = "0i428a37s9lma09psy0d7vj2amnimwgx4izmmac4dlzyy6qpfn9s";
+      url = "mirror://steamrt/pool/main/libf/libffi/libffi6_3.0.11~rc1-5+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libffi6.deb";
+      };
+    }
+    rec {
+      name = "libflac8_1.2.1-6+steamrt1.1ubuntu0.1+srt1_amd64";
+      sha256 = "13hkikwbxsm3nf91rc1xa98apwx9y4mr9h20cd0206gm43qfyvh2";
+      url = "mirror://steamrt/pool/main/f/flac/libflac8_1.2.1-6+steamrt1.1ubuntu0.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libflac8.deb";
+      };
+    }
+    rec {
+      name = "libfltk1.1_1.1.10-10+srt5_amd64";
+      sha256 = "0zrx2mb5rl5hcyh6p0sglark6rh7s993sg26klizkswn2w53rv8j";
+      url = "mirror://steamrt/pool/main/f/fltk1.1/libfltk1.1_1.1.10-10+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libfltk1.1.deb";
+      };
+    }
+    rec {
+      name = "libfontconfig1_2.8.0-3ubuntu9.2+steamrt1.1+srt1_amd64";
+      sha256 = "1q3sk9ad8y1x6nbd86i417zp0j624m7b7yj6xp4gm96g8l443asj";
+      url = "mirror://steamrt/pool/main/f/fontconfig/libfontconfig1_2.8.0-3ubuntu9.2+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libfontconfig1.deb";
+      };
+    }
+    rec {
+      name = "libfreetype6_2.4.8-1ubuntu2.6+srt1_amd64";
+      sha256 = "01z4dwib9d7i7187yw1b0vji587hrj354cz6ll2iybrbg25w510w";
+      url = "mirror://steamrt/pool/main/f/freetype/libfreetype6_2.4.8-1ubuntu2.6+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libfreetype6.deb";
+      };
+    }
+    rec {
+      name = "libgcc1_5.4.0-7.really.6+steamrt1.1+srt2_amd64";
+      sha256 = "1r6nviva9jnkwyg28lxjcr142lda88f3r2312wgdfhry69szw2ld";
+      url = "mirror://steamrt/pool/main/g/gcc-5/libgcc1_5.4.0-7.really.6+steamrt1.1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgcc1.deb";
+      };
+    }
+    rec {
+      name = "libgconf-2-4_3.2.5-0ubuntu2+steamrt1.1+srt1_amd64";
+      sha256 = "1psyh5bcf3k28ziw0b2sxjyy2va6xahb0696rz0r6y9m924n0dn7";
+      url = "mirror://steamrt/pool/main/g/gconf/libgconf-2-4_3.2.5-0ubuntu2+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgconf-2-4.deb";
+      };
+    }
+    rec {
+      name = "libgcrypt11_1.5.0-3ubuntu0.6+srt2_amd64";
+      sha256 = "0p1vywfx5l9zhibr8c20by9w646przfjfaci5c6ifi7f4v5nn9hc";
+      url = "mirror://steamrt/pool/main/libg/libgcrypt11/libgcrypt11_1.5.0-3ubuntu0.6+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgcrypt11.deb";
+      };
+    }
+    rec {
+      name = "libgdk-pixbuf2.0-0_2.26.1-1+steamrt3+srt5_amd64";
+      sha256 = "1km2w0haybwal9zkhwsrx4i9yi2zkhbbfhh2xljhfw5m5g6s4mq5";
+      url = "mirror://steamrt/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.26.1-1+steamrt3+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgdk-pixbuf2.0-0.deb";
+      };
+    }
+    rec {
+      name = "libglew1.10_1.10.0-3+srt6_amd64";
+      sha256 = "19w95wfzzr909jgjg8w6fqff8x00izawqicw896fqbf44zmsc2l0";
+      url = "mirror://steamrt/pool/main/g/glew/libglew1.10_1.10.0-3+srt6_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libglew1.10.deb";
+      };
+    }
+    rec {
+      name = "libglew1.6_1.6.0-4+steamrt1.1+srt1_amd64";
+      sha256 = "0vh45a8dp2mqmkswam2rssawg0l0karbymqks3f3gj591d0d6fcv";
+      url = "mirror://steamrt/pool/main/g/glew1.6/libglew1.6_1.6.0-4+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libglew1.6.deb";
+      };
+    }
+    rec {
+      name = "libglib2.0-0_2.32.3-0ubuntu1+steamrt3+srt2_amd64";
+      sha256 = "1zhb0cpyl3vq5hg63j7wgw6bmwrn8xnq1ybnbigw439c0nq4f333";
+      url = "mirror://steamrt/pool/main/g/glib2.0/libglib2.0-0_2.32.3-0ubuntu1+steamrt3+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libglib2.0-0.deb";
+      };
+    }
+    rec {
+      name = "libglu1-mesa_8.0.4-0ubuntu0.7+srt5_amd64";
+      sha256 = "02fywg8h5jlkrh1qiqd0hpjv4v1hxggm3vjhnfn5rdj3xxmbvr2y";
+      url = "mirror://steamrt/pool/main/m/mesa/libglu1-mesa_8.0.4-0ubuntu0.7+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libglu1-mesa.deb";
+      };
+    }
+    rec {
+      name = "libgmp10_6.1.0+dfsg-2+srt1_amd64";
+      sha256 = "1q0qgpldz25pzbnmhw1vxqd0azp9qai9arydmw66f6kwflx6s7as";
+      url = "mirror://steamrt/pool/main/g/gmp/libgmp10_6.1.0+dfsg-2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgmp10.deb";
+      };
+    }
+    rec {
+      name = "libgnutls26_2.12.14-5ubuntu3.14+srt1_amd64";
+      sha256 = "19jl1ril1h2r66ilwi45j49g2ag9b4x5090ld0gqp4hbx6f67x9g";
+      url = "mirror://steamrt/pool/main/g/gnutls26/libgnutls26_2.12.14-5ubuntu3.14+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgnutls26.deb";
+      };
+    }
+    rec {
+      name = "libgnutls30_3.4.10-4ubuntu1.4+steamrt1.1+srt3_amd64";
+      sha256 = "1a1m1h7x0acympf7lsdn9k30crff4gkg31n82fxsf5mwbg5rzsy4";
+      url = "mirror://steamrt/pool/main/g/gnutls28/libgnutls30_3.4.10-4ubuntu1.4+steamrt1.1+srt3_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgnutls30.deb";
+      };
+    }
+    rec {
+      name = "libgomp1_5.4.0-7.really.6+steamrt1.1+srt2_amd64";
+      sha256 = "1pcc8jj73bgs2ks0pkxhn3hc43yk0h97jsss6ckhmp3j5mg9szq7";
+      url = "mirror://steamrt/pool/main/g/gcc-5/libgomp1_5.4.0-7.really.6+steamrt1.1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgomp1.deb";
+      };
+    }
+    rec {
+      name = "libgpg-error0_1.10-2ubuntu1+srt5_amd64";
+      sha256 = "1pgv5svrqvsyiakqqnbb1ph6sk5yd6lgk53k2isyyz44vdjch9py";
+      url = "mirror://steamrt/pool/main/libg/libgpg-error/libgpg-error0_1.10-2ubuntu1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgpg-error0.deb";
+      };
+    }
+    rec {
+      name = "libgssapi-krb5-2_1.10+dfsg~beta1-2ubuntu0.7+srt2_amd64";
+      sha256 = "1nv973s0h9vmnmslxyddd28p4yv8k47d685m8lxv1irc4skqxzzc";
+      url = "mirror://steamrt/pool/main/k/krb5/libgssapi-krb5-2_1.10+dfsg~beta1-2ubuntu0.7+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgssapi-krb5-2.deb";
+      };
+    }
+    rec {
+      name = "libgssapi3-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64";
+      sha256 = "02h7fqwwg7jpz8b86dbjhh067ah34x3ys9n5df1rksbzpvmqcbiy";
+      url = "mirror://steamrt/pool/main/h/heimdal/libgssapi3-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgssapi3-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libgstreamer-plugins-base0.10-0_0.10.36-1ubuntu0.2+srt1_amd64";
+      sha256 = "186hxj0jvgbxki0v6fx499pp796kcwiz86gqfhkd94k434aaqz1f";
+      url = "mirror://steamrt/pool/main/g/gst-plugins-base0.10/libgstreamer-plugins-base0.10-0_0.10.36-1ubuntu0.2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgstreamer-plugins-base0.10-0.deb";
+      };
+    }
+    rec {
+      name = "libgstreamer0.10-0_0.10.36-1ubuntu1+srt5_amd64";
+      sha256 = "1ddfd661703jgd8xai2ysh2gdvf0pkbvg46iazlg5jqr17i1b1sx";
+      url = "mirror://steamrt/pool/main/g/gstreamer0.10/libgstreamer0.10-0_0.10.36-1ubuntu1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgstreamer0.10-0.deb";
+      };
+    }
+    rec {
+      name = "libgtk2.0-0_2.24.10-0ubuntu6+steamrt1+srt5_amd64";
+      sha256 = "1bb7yf3ld99a9amdb6r8slw7g3xnj72za2nbpsrm6cwlw9nyxli0";
+      url = "mirror://steamrt/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.10-0ubuntu6+steamrt1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgtk2.0-0.deb";
+      };
+    }
+    rec {
+      name = "libgtk2.0-common_2.24.10-0ubuntu6+steamrt1+srt5_all";
+      sha256 = "0rw8iy16ij86abh444jk1xw78b5z81qjxm1292jin3sfhck4bd4x";
+      url = "mirror://steamrt/pool/main/g/gtk+2.0/libgtk2.0-common_2.24.10-0ubuntu6+steamrt1+srt5_all.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgtk2.0-common.deb";
+      };
+    }
+    rec {
+      name = "libgudev-1.0-0_175-0ubuntu9.10+srt1_amd64";
+      sha256 = "1i8k7y464zj3vb17kwim69kh57y9hnlx40xfs0hrfvjjlj3ih30w";
+      url = "mirror://steamrt/pool/main/u/udev/libgudev-1.0-0_175-0ubuntu9.10+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgudev-1.0-0.deb";
+      };
+    }
+    rec {
+      name = "libhcrypto4-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64";
+      sha256 = "1ihzd3ihylrbrwxqx8sam6lwkhkk2c9ys7vxah2yvj43fl8piiz8";
+      url = "mirror://steamrt/pool/main/h/heimdal/libhcrypto4-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libhcrypto4-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libheimbase1-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64";
+      sha256 = "1z4h6zdh5h9yvq4dfizy8ndskny94c86m5b4g9lpypfpzj259kpi";
+      url = "mirror://steamrt/pool/main/h/heimdal/libheimbase1-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libheimbase1-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libheimntlm0-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64";
+      sha256 = "13fgm887ycb1l5w1hxvlf906wr4k834drykg36ink6g9fi1smn79";
+      url = "mirror://steamrt/pool/main/h/heimdal/libheimntlm0-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libheimntlm0-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libhogweed4_3.2-1ubuntu0.16.04.1+srt1_amd64";
+      sha256 = "1d9746bfwajafd28292q0fl6mwj51in9qg7mbd583y459jyb0ffd";
+      url = "mirror://steamrt/pool/main/n/nettle/libhogweed4_3.2-1ubuntu0.16.04.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libhogweed4.deb";
+      };
+    }
+    rec {
+      name = "libhx509-5-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64";
+      sha256 = "0alagksf7h181r86iiddvb9sil9zwf7d8lhnikq2x1i1ncxnwbj9";
+      url = "mirror://steamrt/pool/main/h/heimdal/libhx509-5-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libhx509-5-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libice6_1.0.7-2build1+srt5_amd64";
+      sha256 = "0v1a4dbs6by8n3yi23xqs4qqvjjdhh1qqmacc2bybjd2qi8dps8y";
+      url = "mirror://steamrt/pool/main/libi/libice/libice6_1.0.7-2build1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libice6.deb";
+      };
+    }
+    rec {
+      name = "libidn11_1.32-3ubuntu1.2+steamrt1.1+srt1_amd64";
+      sha256 = "1qlpfhwvx4m72541rlk934h72hczb0gwiyiav8sd4kcwwkcacqml";
+      url = "mirror://steamrt/pool/main/libi/libidn/libidn11_1.32-3ubuntu1.2+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libidn11.deb";
+      };
+    }
+    rec {
+      name = "libindicator7_0.5.0-0ubuntu1+steamrt1+srt1_amd64";
+      sha256 = "0fcj1fmk70y8j1jcbr9dian2zrwf5m7yis4zpq8cc77838cdx0pg";
+      url = "mirror://steamrt/pool/main/libi/libindicator/libindicator7_0.5.0-0ubuntu1+steamrt1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libindicator7.deb";
+      };
+    }
+    rec {
+      name = "libjack-jackd2-0_1.9.8~dfsg.1-1ubuntu2+srt4_amd64";
+      sha256 = "0qpipr1anfy4y6m1syznmarsh3ni6db9dc7a1w0n11zfhp8lpihg";
+      url = "mirror://steamrt/pool/main/j/jackd2/libjack-jackd2-0_1.9.8~dfsg.1-1ubuntu2+srt4_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libjack-jackd2-0.deb";
+      };
+    }
+    rec {
+      name = "libjpeg-turbo8_1.1.90+svn733-0ubuntu4.3+srt5_amd64";
+      sha256 = "10r393m5xxqjd6hpvlnfvnba081crhs88x1knhi3s6mhg2xhg35y";
+      url = "mirror://steamrt/pool/main/libj/libjpeg-turbo/libjpeg-turbo8_1.1.90+svn733-0ubuntu4.3+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libjpeg-turbo8.deb";
+      };
+    }
+    rec {
+      name = "libjpeg62_6b1-2ubuntu1.1+srt5_amd64";
+      sha256 = "0wn9lgqc95gvck5k8qds9908j5ip3s3bz85a8l2bdprgg1q4rsrl";
+      url = "mirror://steamrt/pool/main/libj/libjpeg6b/libjpeg62_6b1-2ubuntu1.1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libjpeg62.deb";
+      };
+    }
+    rec {
+      name = "libjson0_0.9-1ubuntu1.1+srt3_amd64";
+      sha256 = "1pqncc63z9w3jg41xqklappyirajfrchdjp81bldrnmbpbj69xha";
+      url = "mirror://steamrt/pool/main/j/json-c/libjson0_0.9-1ubuntu1.1+srt3_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libjson0.deb";
+      };
+    }
+    rec {
+      name = "libk5crypto3_1.10+dfsg~beta1-2ubuntu0.7+srt2_amd64";
+      sha256 = "18xfi5c04s3z9brj1rrmvl9s67apd4d6ax7vfwwjzwh7ygnkp8h8";
+      url = "mirror://steamrt/pool/main/k/krb5/libk5crypto3_1.10+dfsg~beta1-2ubuntu0.7+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libk5crypto3.deb";
+      };
+    }
+    rec {
+      name = "libkeyutils1_1.5.2-2+srt5_amd64";
+      sha256 = "14mv4r05r0fzkbl3r4jaa7wwmmaprv3q5w36pyf3xqc3iynxnj2p";
+      url = "mirror://steamrt/pool/main/k/keyutils/libkeyutils1_1.5.2-2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libkeyutils1.deb";
+      };
+    }
+    rec {
+      name = "libkrb5-26-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64";
+      sha256 = "0xhz42f7lnsc69sfnj2w0917jwm82nbc9i56qq3s1g2sw7z6kb3q";
+      url = "mirror://steamrt/pool/main/h/heimdal/libkrb5-26-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libkrb5-26-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libkrb5-3_1.10+dfsg~beta1-2ubuntu0.7+srt2_amd64";
+      sha256 = "1k3d1775ran10y79s7n5lmdlqlr7kscvxmj1887bnn4yxbwlgy73";
+      url = "mirror://steamrt/pool/main/k/krb5/libkrb5-3_1.10+dfsg~beta1-2ubuntu0.7+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libkrb5-3.deb";
+      };
+    }
+    rec {
+      name = "libkrb5support0_1.10+dfsg~beta1-2ubuntu0.7+srt2_amd64";
+      sha256 = "1xml3gfn253lydqaqk27209sr1x0vvrbbkmb63z5cyy4i1yfpvmr";
+      url = "mirror://steamrt/pool/main/k/krb5/libkrb5support0_1.10+dfsg~beta1-2ubuntu0.7+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libkrb5support0.deb";
+      };
+    }
+    rec {
+      name = "liblcms2-2_2.2+git20110628-2ubuntu3.1+srt5_amd64";
+      sha256 = "0wj24yi2ws12lfs0pi0bq9rbr1gyk2nv30rf46bav41mpn2fj9mg";
+      url = "mirror://steamrt/pool/main/l/lcms2/liblcms2-2_2.2+git20110628-2ubuntu3.1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "liblcms2-2.deb";
+      };
+    }
+    rec {
+      name = "libldap-2.4-2_2.4.28-1.1ubuntu4.6+steamrt1.2+srt3_amd64";
+      sha256 = "02w5h7hbapwwsya468v6wcizm9nra5c9nbbf86666mlkgb6y6z20";
+      url = "mirror://steamrt/pool/main/o/openldap/libldap-2.4-2_2.4.28-1.1ubuntu4.6+steamrt1.2+srt3_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libldap-2.4-2.deb";
+      };
+    }
+    rec {
+      name = "libltdl7_2.4.2-1ubuntu1+srt5_amd64";
+      sha256 = "0ly9p5xilsf0d214mrx96nc3gn1xm1b68dzizsimhqa3bfpckzbb";
+      url = "mirror://steamrt/pool/main/libt/libtool/libltdl7_2.4.2-1ubuntu1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libltdl7.deb";
+      };
+    }
+    rec {
+      name = "libmikmod2_3.1.12-2+srt5_amd64";
+      sha256 = "1i6kwzy1dz0a78jm0vpa0hjqahkwnj8yab8aky2srsf07y8bz2r8";
+      url = "mirror://steamrt/pool/main/libm/libmikmod/libmikmod2_3.1.12-2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libmikmod2.deb";
+      };
+    }
+    rec {
+      name = "libmpg123-0_1.25.10-1+steamrt1+srt1_amd64";
+      sha256 = "1szlchrl7vmclk80jpjj799in0fnx5263dqlh896qprl63zjnnx3";
+      url = "mirror://steamrt/pool/main/m/mpg123/libmpg123-0_1.25.10-1+steamrt1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libmpg123-0.deb";
+      };
+    }
+    rec {
+      name = "libncurses5_5.9-4+srt5_amd64";
+      sha256 = "1b4j17npqdhj6afcw7cj37k6dr2kmbgpjyv7c0viq82165bjacfp";
+      url = "mirror://steamrt/pool/main/n/ncurses/libncurses5_5.9-4+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libncurses5.deb";
+      };
+    }
+    rec {
+      name = "libncursesw5_5.9-4+srt5_amd64";
+      sha256 = "0gavz5rh8hz6ir3x09p57balxl8zprjsglgf2craq340qpgqw4s6";
+      url = "mirror://steamrt/pool/main/n/ncurses/libncursesw5_5.9-4+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libncursesw5.deb";
+      };
+    }
+    rec {
+      name = "libnettle6_3.2-1ubuntu0.16.04.1+srt1_amd64";
+      sha256 = "18f9ymqkmnnx2hxfms2ph7hajl0ghk8ywav5vaihaii47wfzkdww";
+      url = "mirror://steamrt/pool/main/n/nettle/libnettle6_3.2-1ubuntu0.16.04.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libnettle6.deb";
+      };
+    }
+    rec {
+      name = "libnm-glib4_0.9.4.0-0ubuntu4.2+steamrt2+srt1_amd64";
+      sha256 = "0dw0mfwia3z6icj01558xgdjmi7g6g4nig4vrjbmlz05f9l2rck3";
+      url = "mirror://steamrt/pool/main/n/network-manager/libnm-glib4_0.9.4.0-0ubuntu4.2+steamrt2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libnm-glib4.deb";
+      };
+    }
+    rec {
+      name = "libnm-util2_0.9.4.0-0ubuntu4.2+steamrt2+srt1_amd64";
+      sha256 = "1r9qw0mx38zisj6lr9bk8yv9f3yf2l80y4rvgxq6k28ccz5sahvs";
+      url = "mirror://steamrt/pool/main/n/network-manager/libnm-util2_0.9.4.0-0ubuntu4.2+steamrt2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libnm-util2.deb";
+      };
+    }
+    rec {
+      name = "libnotify4_0.7.5-1+srt5_amd64";
+      sha256 = "15ny5m925wrn0m394gn88288zgdjf99m5jg9pxyfirhvjmpp8pmf";
+      url = "mirror://steamrt/pool/main/libn/libnotify/libnotify4_0.7.5-1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libnotify4.deb";
+      };
+    }
+    rec {
+      name = "libnspr4_4.12-0ubuntu0.12.04.1+srt2_amd64";
+      sha256 = "11y0nj7pc94gs3ndxph50whs1yx8lys48c44vj1207m2mkw3xdq7";
+      url = "mirror://steamrt/pool/main/n/nspr/libnspr4_4.12-0ubuntu0.12.04.1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libnspr4.deb";
+      };
+    }
+    rec {
+      name = "libnss3_3.26.2-0ubuntu0.12.04.1+srt1_amd64";
+      sha256 = "0a5mqk6fry96jgpn27fv66mzg7s7mn00jhiayh73q4ddlv52p1r6";
+      url = "mirror://steamrt/pool/main/n/nss/libnss3_3.26.2-0ubuntu0.12.04.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libnss3.deb";
+      };
+    }
+    rec {
+      name = "libogg0_1.3.2-1+srt1_amd64";
+      sha256 = "1x8nrq4gm3n996zqgdy8msbgpflpl2gaqsm68nbfv703gxbzfi5p";
+      url = "mirror://steamrt/pool/main/libo/libogg/libogg0_1.3.2-1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libogg0.deb";
+      };
+    }
+    rec {
+      name = "libopenal1_1.16.0-3+srt1_amd64";
+      sha256 = "02dc0xfwh1jmhm0l4wig3ybs2yy48hdarnbfjv69m9aryjpbh6gj";
+      url = "mirror://steamrt/pool/main/o/openal-soft/libopenal1_1.16.0-3+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libopenal1.deb";
+      };
+    }
+    rec {
+      name = "libopus0_1.3-0+steamrt1.1+srt2_amd64";
+      sha256 = "1hjff7lm9vjs3rkjmqwchnrli4bwpbx46jy4ngahiywcw3n94959";
+      url = "mirror://steamrt/pool/main/o/opus/libopus0_1.3-0+steamrt1.1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libopus0.deb";
+      };
+    }
+    rec {
+      name = "libopusfile0_0.11-0+steamrt1.2+srt1_amd64";
+      sha256 = "1q5n474br6k0l5xhr1b7bclrmdqpcd98dq4yd92rsybjnf9xiqgq";
+      url = "mirror://steamrt/pool/main/o/opusfile/libopusfile0_0.11-0+steamrt1.2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libopusfile0.deb";
+      };
+    }
+    rec {
+      name = "liborc-0.4-0_0.4.16-1ubuntu2+srt5_amd64";
+      sha256 = "13s7ni24igdkvmcs3d13ncll36clfmm14ggjqd23dsgyzmip5n18";
+      url = "mirror://steamrt/pool/main/o/orc/liborc-0.4-0_0.4.16-1ubuntu2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "liborc-0.4-0.deb";
+      };
+    }
+    rec {
+      name = "libp11-kit0_0.23.2-5~ubuntu16.04.1~steamrt1.1+srt1_amd64";
+      sha256 = "1hm1lqphdp0vk1zyyyxz78k15lqw7w6vmv64pp27cwm8zkqmvj4q";
+      url = "mirror://steamrt/pool/main/p/p11-kit/libp11-kit0_0.23.2-5~ubuntu16.04.1~steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libp11-kit0.deb";
+      };
+    }
+    rec {
+      name = "libpango1.0-0_1.30.0-0ubuntu3.1+steamrt1+srt5_amd64";
+      sha256 = "0dcimf6vsiv51lkavwbw980fll3vpki86i3rqm8vr37iz59798zf";
+      url = "mirror://steamrt/pool/main/p/pango1.0/libpango1.0-0_1.30.0-0ubuntu3.1+steamrt1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpango1.0-0.deb";
+      };
+    }
+    rec {
+      name = "libpci3_3.1.8-2ubuntu6+srt1_amd64";
+      sha256 = "167a5rgzyss746s07fkal7vy89i0m5syjm2vdwfiln3ncil4s86y";
+      url = "mirror://steamrt/pool/main/p/pciutils/libpci3_3.1.8-2ubuntu6+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpci3.deb";
+      };
+    }
+    rec {
+      name = "libpcre3_8.12-4+steamrt1.1ubuntu0.2+srt1_amd64";
+      sha256 = "0x3yzmxvlg2xyy2sm03vvr4c46r7ywbns7gqbshzgn656zqdid00";
+      url = "mirror://steamrt/pool/main/p/pcre3/libpcre3_8.12-4+steamrt1.1ubuntu0.2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpcre3.deb";
+      };
+    }
+    rec {
+      name = "libpcrecpp0_8.12-4+steamrt1.1ubuntu0.2+srt1_amd64";
+      sha256 = "1rlkj982w99x0mz008snkyqr1v13h165yj2z4jwdczpd1bsrra9h";
+      url = "mirror://steamrt/pool/main/p/pcre3/libpcrecpp0_8.12-4+steamrt1.1ubuntu0.2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpcrecpp0.deb";
+      };
+    }
+    rec {
+      name = "libpixman-1-0_0.30.2-1ubuntu0.0.0.0.3+srt2_amd64";
+      sha256 = "15sa863fia26lclp821j0c747dv8a8igz5l86n5ff1m3dmlb5hp3";
+      url = "mirror://steamrt/pool/main/p/pixman/libpixman-1-0_0.30.2-1ubuntu0.0.0.0.3+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpixman-1-0.deb";
+      };
+    }
+    rec {
+      name = "libpng12-0_1.2.46-3ubuntu4.2+srt2_amd64";
+      sha256 = "0gnjsh72c9w1229fk5fx753lpmcqzizx7dizrdh3wk1qmivhddl1";
+      url = "mirror://steamrt/pool/main/libp/libpng/libpng12-0_1.2.46-3ubuntu4.2+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpng12-0.deb";
+      };
+    }
+    rec {
+      name = "libpulse0_1.1-0ubuntu15.2+steamrt1+srt5_amd64";
+      sha256 = "17d3f6gwbdyn058bbd8f0hj4ywp8rmhy9wsf2pnfkh219r5b98h2";
+      url = "mirror://steamrt/pool/main/p/pulseaudio/libpulse0_1.1-0ubuntu15.2+steamrt1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpulse0.deb";
+      };
+    }
+    rec {
+      name = "libroken18-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64";
+      sha256 = "16j666k8l85icbgy9ds9hdmcm60axsp8nxjc1n11jd64d9slb792";
+      url = "mirror://steamrt/pool/main/h/heimdal/libroken18-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libroken18-heimdal.deb";
+      };
+    }
+    rec {
+      name = "librtmp0_2.4~20110711.gitc28f1bab-1+steamrt1.1+srt3_amd64";
+      sha256 = "05wm9ddpy2axf0a7vsrfc7prhaqf7npbcfrsy57f66aachpj778r";
+      url = "mirror://steamrt/pool/main/r/rtmpdump/librtmp0_2.4~20110711.gitc28f1bab-1+steamrt1.1+srt3_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "librtmp0.deb";
+      };
+    }
+    rec {
+      name = "libsamplerate0_0.1.8-4+srt5_amd64";
+      sha256 = "1xr5k6zyfw8lc5s6sbg57d7v33045hg9l6a1rh5f46v99hi8k1rr";
+      url = "mirror://steamrt/pool/main/libs/libsamplerate/libsamplerate0_0.1.8-4+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsamplerate0.deb";
+      };
+    }
+    rec {
+      name = "libsasl2-2_2.1.25.dfsg1-3ubuntu0.1+srt5_amd64";
+      sha256 = "1i7hh43fiadg1y35dmjm03s8mcbanv8jfnnjrcccabahsk8fpdj0";
+      url = "mirror://steamrt/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.25.dfsg1-3ubuntu0.1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsasl2-2.deb";
+      };
+    }
+    rec {
+      name = "libsdl-image1.2_1.2.10-3+srt5_amd64";
+      sha256 = "180sia6zc48y2f3l1sywp8am0gqzc9swm711fq8b2kdd4rn3wicm";
+      url = "mirror://steamrt/pool/main/s/sdl-image1.2/libsdl-image1.2_1.2.10-3+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl-image1.2.deb";
+      };
+    }
+    rec {
+      name = "libsdl-mixer1.2_1.2.11-7+steamrt1+srt5_amd64";
+      sha256 = "0z3zxvsvlnvzsvprvy5q4y99irjkzm4ilv0znaic5x967k3zpjp0";
+      url = "mirror://steamrt/pool/main/s/sdl-mixer1.2/libsdl-mixer1.2_1.2.11-7+steamrt1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl-mixer1.2.deb";
+      };
+    }
+    rec {
+      name = "libsdl-ttf2.0-0_2.0.9-1.1ubuntu1+srt5_amd64";
+      sha256 = "11ks71izg46k2pjnd5jdk03xkzz7jmxm5k3mkwq8b42grdiadd6a";
+      url = "mirror://steamrt/pool/main/s/sdl-ttf2.0/libsdl-ttf2.0-0_2.0.9-1.1ubuntu1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl-ttf2.0-0.deb";
+      };
+    }
+    rec {
+      name = "libsdl1.2debian_1.2.15-5+steamrt1+srt5_amd64";
+      sha256 = "1i2072wzjmrz97pqxm9mfdqqvx6q6x6w8xqa5f4jxmhm9sb7x7wb";
+      url = "mirror://steamrt/pool/main/libs/libsdl1.2/libsdl1.2debian_1.2.15-5+steamrt1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl1.2debian.deb";
+      };
+    }
+    rec {
+      name = "libsdl2_2.0.9.~reimport-0+steamrt1.1+srt1_amd64";
+      sha256 = "0iahnd0z5qpdgznq1w88m9b7ham3yr0rcidxm9459qpyan7ny2yc";
+      url = "mirror://steamrt/pool/main/libs/libsdl2/libsdl2_2.0.9.~reimport-0+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl2.deb";
+      };
+    }
+    rec {
+      name = "libsdl2-image_2.0.4.~reimport-0+steamrt1.1+srt1_amd64";
+      sha256 = "1xy9l0jzrxr0vz0kgys2g055vdzw3hxkj1xmmzd57bn8dq0yxwfx";
+      url = "mirror://steamrt/pool/main/libs/libsdl2-image/libsdl2-image_2.0.4.~reimport-0+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl2-image.deb";
+      };
+    }
+    rec {
+      name = "libsdl2-mixer_2.0.4.~reimport-0+steamrt1.1+srt1_amd64";
+      sha256 = "06i3g17rqm729mpgkl24rlbkx4ya4mmqjlsndsznymabk5ly5pz5";
+      url = "mirror://steamrt/pool/main/libs/libsdl2-mixer/libsdl2-mixer_2.0.4.~reimport-0+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl2-mixer.deb";
+      };
+    }
+    rec {
+      name = "libsdl2-net_2.0.1+srt2_amd64";
+      sha256 = "1850n1zv9cpbnv5n3nk5knk30pm0f4g8x2cx70kyxbprfkq7894v";
+      url = "mirror://steamrt/pool/main/libs/libsdl2-net/libsdl2-net_2.0.1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl2-net.deb";
+      };
+    }
+    rec {
+      name = "libsdl2-ttf_2.0.14+srt2_amd64";
+      sha256 = "1bwhm58zqh452szjjj3m3ny2samx19qw3x6q7f18h7164d5vvm4a";
+      url = "mirror://steamrt/pool/main/libs/libsdl2-ttf/libsdl2-ttf_2.0.14+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl2-ttf.deb";
+      };
+    }
+    rec {
+      name = "libselinux1_2.1.0-4.1ubuntu1+srt5_amd64";
+      sha256 = "001wfrryd549gh1qd4v8fz3m78vpjwdx1vh34cw0dgi3kxmjxp0q";
+      url = "mirror://steamrt/pool/main/libs/libselinux/libselinux1_2.1.0-4.1ubuntu1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libselinux1.deb";
+      };
+    }
+    rec {
+      name = "libsm6_1.2.0-2build1+srt5_amd64";
+      sha256 = "0k0hyh6b36wvcn8ss24f7lqp2pb0wdvb5zh57y7zfxglgr9vj083";
+      url = "mirror://steamrt/pool/main/libs/libsm/libsm6_1.2.0-2build1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsm6.deb";
+      };
+    }
+    rec {
+      name = "libsndfile1_1.0.25-4+steamrt1.1ubuntu0.1+srt1_amd64";
+      sha256 = "17sds50cyvpfrm6x8hddb0ir5xsch79k8gyghkzi59dav2j4j2f4";
+      url = "mirror://steamrt/pool/main/libs/libsndfile/libsndfile1_1.0.25-4+steamrt1.1ubuntu0.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsndfile1.deb";
+      };
+    }
+    rec {
+      name = "libspeex1_1.2~rc1-3ubuntu2+srt5_amd64";
+      sha256 = "0b0lrg7arrnszc1hzya04ch3j4lbcrpxqf5hxxz2wm5k5qb9f6rv";
+      url = "mirror://steamrt/pool/main/s/speex/libspeex1_1.2~rc1-3ubuntu2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libspeex1.deb";
+      };
+    }
+    rec {
+      name = "libspeexdsp1_1.2~rc1-3ubuntu2+srt5_amd64";
+      sha256 = "1vks6i3ipggcd2b4ayhkpzj70rdwvlmgh20z7ac8hcnhfnsmvmbc";
+      url = "mirror://steamrt/pool/main/s/speex/libspeexdsp1_1.2~rc1-3ubuntu2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libspeexdsp1.deb";
+      };
+    }
+    rec {
+      name = "libsqlite3-0_3.7.9-2ubuntu1.2+srt2_amd64";
+      sha256 = "0yavzpx56kf27pfjif6s86bg9wmr9078d7p34dpvbzp0aibjifs8";
+      url = "mirror://steamrt/pool/main/s/sqlite3/libsqlite3-0_3.7.9-2ubuntu1.2+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsqlite3-0.deb";
+      };
+    }
+    rec {
+      name = "libssl1.0.0_1.0.1-4ubuntu5.39+steamrt1.1+srt1_amd64";
+      sha256 = "1s82s5ylmsbbx567bdjv9dh53nzzwqskfpry3a61naw8nsbxg5kb";
+      url = "mirror://steamrt/pool/main/o/openssl/libssl1.0.0_1.0.1-4ubuntu5.39+steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libssl1.0.0.deb";
+      };
+    }
+    rec {
+      name = "libstdc++6_5.4.0-7.really.6+steamrt1.1+srt2_amd64";
+      sha256 = "09gn89qdjpwhh4yzydrpjbpwgbfhc0xmy56113an0rk9hs43ym1i";
+      url = "mirror://steamrt/pool/main/g/gcc-5/libstdc++6_5.4.0-7.really.6+steamrt1.1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libstdc++6.deb";
+      };
+    }
+    rec {
+      name = "libstdc++6-4.6-pic_4.6.3-1ubuntu5+steamrt1.2+srt1_amd64";
+      sha256 = "175qkx9blsjidsbg7dkp6anyhfdpv1njqs2hzhjnfnsdz0hsy5pp";
+      url = "mirror://steamrt/pool/main/g/gcc-4.6/libstdc++6-4.6-pic_4.6.3-1ubuntu5+steamrt1.2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libstdc++6-4.6-pic.deb";
+      };
+    }
+    rec {
+      name = "libswscale2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_amd64";
+      sha256 = "1shni0sdcv1jqkfsqy5j3kkr73lifb3ip9lqz8cxx23dlvbllly9";
+      url = "mirror://steamrt/pool/main/liba/libav/libswscale2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libswscale2.deb";
+      };
+    }
+    rec {
+      name = "libtasn1-3_2.10-1ubuntu1.5+srt2_amd64";
+      sha256 = "1sjklhs977mrvs7qci0hc3w6x3gjrq5c6lfxjma7bjg731xwdivp";
+      url = "mirror://steamrt/pool/main/libt/libtasn1-3/libtasn1-3_2.10-1ubuntu1.5+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtasn1-3.deb";
+      };
+    }
+    rec {
+      name = "libtasn1-6_4.7-3ubuntu0.16.04.3~steamrt1.1+srt1_amd64";
+      sha256 = "0s6rljgvgcawws574ka2kn944w64fwjan1lri1anszg0m274n5na";
+      url = "mirror://steamrt/pool/main/libt/libtasn1-6/libtasn1-6_4.7-3ubuntu0.16.04.3~steamrt1.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtasn1-6.deb";
+      };
+    }
+    rec {
+      name = "libtbb2_4.0+r233-1+steamrt2+srt1_amd64";
+      sha256 = "18rc6jhkpqnqvrw29zffahmjihrdrwmh4ydnx3433j6wc29m8p4v";
+      url = "mirror://steamrt/pool/main/t/tbb/libtbb2_4.0+r233-1+steamrt2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtbb2.deb";
+      };
+    }
+    rec {
+      name = "libtdb1_1.2.9-4+srt5_amd64";
+      sha256 = "1wq2956jmq9zhd7gcpgvqq7d1rdjk954hgcx540zwgxs57brzkrw";
+      url = "mirror://steamrt/pool/main/t/tdb/libtdb1_1.2.9-4+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtdb1.deb";
+      };
+    }
+    rec {
+      name = "libtheora0_1.1.1+dfsg.1-3ubuntu2+srt5_amd64";
+      sha256 = "15b6sg3dhamlgaq28w3zlwif5aps0ybi0hc29k3vv2s48f6vqfi8";
+      url = "mirror://steamrt/pool/main/libt/libtheora/libtheora0_1.1.1+dfsg.1-3ubuntu2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtheora0.deb";
+      };
+    }
+    rec {
+      name = "libtiff4_3.9.5-2ubuntu1.9+srt2_amd64";
+      sha256 = "038wcp777pj2y3scwkqfdnb6yjsag5dnqajrdiv7pxmvkgn3bc2l";
+      url = "mirror://steamrt/pool/main/t/tiff/libtiff4_3.9.5-2ubuntu1.9+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtiff4.deb";
+      };
+    }
+    rec {
+      name = "libtinfo5_5.9-4+srt5_amd64";
+      sha256 = "1w22aqm9zla5cfcvkridgzwnkhj3lyjqf61dl8ppnnbk8rhj07x4";
+      url = "mirror://steamrt/pool/main/n/ncurses/libtinfo5_5.9-4+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtinfo5.deb";
+      };
+    }
+    rec {
+      name = "libudev0_175-0ubuntu9.10+srt1_amd64";
+      sha256 = "146kdj719rkgj5v2g0lzs7qqb59a2xgplkqrrafpkssqangvfmq1";
+      url = "mirror://steamrt/pool/main/u/udev/libudev0_175-0ubuntu9.10+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libudev0.deb";
+      };
+    }
+    rec {
+      name = "libusb-1.0-0_1.0.19-1+srt2_amd64";
+      sha256 = "0vnsr4syd7alas356hv1radm5rb8vlh69h5ljlh24sqs923vgg28";
+      url = "mirror://steamrt/pool/main/libu/libusb-1.0/libusb-1.0-0_1.0.19-1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libusb-1.0-0.deb";
+      };
+    }
+    rec {
+      name = "libuuid1_2.20.1-1ubuntu3.1+steamrt1.2+srt1_amd64";
+      sha256 = "17f8cqf20fm9yak1i3d25x4a7pznhsc6xj3949zk2pbn4jiz1q3h";
+      url = "mirror://steamrt/pool/main/u/util-linux/libuuid1_2.20.1-1ubuntu3.1+steamrt1.2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libuuid1.deb";
+      };
+    }
+    rec {
+      name = "libva-glx1_1.7.0-1+steamos1+srt1_amd64";
+      sha256 = "15scnb989xybb4l8gspbjvs058kjfw0r7ajqak3gxrx7vgqb3i92";
+      url = "mirror://steamrt/pool/main/libv/libva/libva-glx1_1.7.0-1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libva-glx1.deb";
+      };
+    }
+    rec {
+      name = "libva-x11-1_1.7.0-1+steamos1+srt1_amd64";
+      sha256 = "0f1hmz4218isrwx8823sm7v08dlvyjwphvbjqsgg9qgim0f13j8a";
+      url = "mirror://steamrt/pool/main/libv/libva/libva-x11-1_1.7.0-1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libva-x11-1.deb";
+      };
+    }
+    rec {
+      name = "libva1_1.7.0-1+steamos1+srt1_amd64";
+      sha256 = "0p3548fnf47vj5kxzrqqpdxvip35xyydkxj7d5iiw9f26fz06drd";
+      url = "mirror://steamrt/pool/main/libv/libva/libva1_1.7.0-1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libva1.deb";
+      };
+    }
+    rec {
+      name = "libvdpau1_0.4.1-3ubuntu1.2+srt2_amd64";
+      sha256 = "1f1h77y6mf7xs8biaz77kfimp98v9cpjrbfg0qyi4wafwn7jmnsr";
+      url = "mirror://steamrt/pool/main/libv/libvdpau/libvdpau1_0.4.1-3ubuntu1.2+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libvdpau1.deb";
+      };
+    }
+    rec {
+      name = "libvorbis0a_1.3.5-4.2+srt1_amd64";
+      sha256 = "1dxl9k7x3vm9zagd03z73k6v86ybp94zilsdg29nsx86g77x87gz";
+      url = "mirror://steamrt/pool/main/libv/libvorbis/libvorbis0a_1.3.5-4.2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libvorbis0a.deb";
+      };
+    }
+    rec {
+      name = "libvorbisenc2_1.3.5-4.2+srt1_amd64";
+      sha256 = "1b49vbmc7b7113h555s4lrx8j4x2kn90x8g25744z13fbq3ac6qz";
+      url = "mirror://steamrt/pool/main/libv/libvorbis/libvorbisenc2_1.3.5-4.2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libvorbisenc2.deb";
+      };
+    }
+    rec {
+      name = "libvorbisfile3_1.3.5-4.2+srt1_amd64";
+      sha256 = "1gws44n84b3rj5pmzc58b3bfmm38nrcij39krnx2x8d10627c3cv";
+      url = "mirror://steamrt/pool/main/libv/libvorbis/libvorbisfile3_1.3.5-4.2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libvorbisfile3.deb";
+      };
+    }
+    rec {
+      name = "libvpx1_1.0.0-2+srt1_amd64";
+      sha256 = "02r8yklax0nd9z9s0c2iv1pdnwaq7h3ys46vf0wcwfc8n1p6jj9j";
+      url = "mirror://steamrt/pool/main/libv/libvpx/libvpx1_1.0.0-2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libvpx1.deb";
+      };
+    }
+    rec {
+      name = "libvulkan1_1.1.73+dfsg-1+steamosc2+srt1_amd64";
+      sha256 = "1f58xi83frcxpq62yfyqjhxzg2ali4hafv8zinial4ixh5nk2a07";
+      url = "mirror://steamrt/pool/main/v/vulkan/libvulkan1_1.1.73+dfsg-1+steamosc2+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libvulkan1.deb";
+      };
+    }
+    rec {
+      name = "libwind0-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64";
+      sha256 = "0wfs33djnx2k5clhwn6rq17pmqv7d2xyr5mihhylc4fs7q179pg0";
+      url = "mirror://steamrt/pool/main/h/heimdal/libwind0-heimdal_1.6~git20120311.dfsg.1-2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libwind0-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libwrap0_7.6.q-21+srt5_amd64";
+      sha256 = "1rvgmwh2m633mmz78lccs97sr489bc2qv1vvwl1gf6rd01cmgd99";
+      url = "mirror://steamrt/pool/main/t/tcp-wrappers/libwrap0_7.6.q-21+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libwrap0.deb";
+      };
+    }
+    rec {
+      name = "libx11-6_1.6.3-1ubuntu2.1+srt1_amd64";
+      sha256 = "0lf1k902i59f3v9jgjav9gzsiq7pnrfnlzmlmyxkcfwkd8pvkign";
+      url = "mirror://steamrt/pool/main/libx/libx11/libx11-6_1.6.3-1ubuntu2.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libx11-6.deb";
+      };
+    }
+    rec {
+      name = "libx11-data_1.6.3-1ubuntu2.1+srt1_all";
+      sha256 = "1imsbk4mg6n1083gjjv6kssm5g842xlbg40vsc4dw97myxycpncw";
+      url = "mirror://steamrt/pool/main/libx/libx11/libx11-data_1.6.3-1ubuntu2.1+srt1_all.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libx11-data.deb";
+      };
+    }
+    rec {
+      name = "libx11-xcb1_1.6.3-1ubuntu2.1+srt1_amd64";
+      sha256 = "0l9zprciyrgn4aq91ddmmfhffvms8p9258vv109l62bar4mmg9sz";
+      url = "mirror://steamrt/pool/main/libx/libx11/libx11-xcb1_1.6.3-1ubuntu2.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libx11-xcb1.deb";
+      };
+    }
+    rec {
+      name = "libxau6_1.0.6-4+srt5_amd64";
+      sha256 = "1l4ij8c6gmv54yfv24dw9903zjczasd6z9lvzd07c5zj4rj7gx62";
+      url = "mirror://steamrt/pool/main/libx/libxau/libxau6_1.0.6-4+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxau6.deb";
+      };
+    }
+    rec {
+      name = "libxaw7_1.0.9-3ubuntu1+srt5_amd64";
+      sha256 = "1a15brx602gg6jq708ymngyr3rcbapmk5620wdx094vdclc665g9";
+      url = "mirror://steamrt/pool/main/libx/libxaw/libxaw7_1.0.9-3ubuntu1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxaw7.deb";
+      };
+    }
+    rec {
+      name = "libxcb-composite0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "0h0yfv4ana590x038lwbz4cxfb3smcqbd394ggir0kv9m1przp78";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-composite0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-composite0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-damage0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1431qrr9kg3mdbag9sfdcqy0g84w074k01r2nyr3bq0w5q8px15l";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-damage0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-damage0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-dpms0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1p2hd14zb1zvqkvgs0apc6m2dwh7kwbxv12py10nr6rzmkr75z1k";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-dpms0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-dpms0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-dri2-0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1ixndxxr7ff48p4sp6rim5bjjvncyc2qcld13az56hjybyq90ka1";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-dri2-0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-dri2-0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-dri3-0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "0l4j5ydzfnzl5wmabwh8jv2qcdgi5blks8ys06cjri8dq4fqq3gg";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-dri3-0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-dri3-0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-glx0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1shd1g43pq5hqpmxkfp8lykpqzzdn0a0w53m20bkz133jgjwqq1i";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-glx0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-glx0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-present0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1m3xf4vkbk2iwy64y8ak51b8wrd5g8hyfbankvfaf123dyyk8z7x";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-present0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-present0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-randr0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "047j08nl310s4m8d2gk555bhf1q0s78pq882dqqla2skhfslg645";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-randr0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-randr0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-record0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "0qfh1wnd11z8r9a7zyrvsa4banisvmi3vj5zvihppz2698ln53rv";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-record0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-record0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-render0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1yj9hxmdjqqinkx8a1gm7nwyxpj6adxphl2f3i863m0gp679bvag";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-render0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-render0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-res0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1v8ipbhabg72mc3rf378l0c8x5apndkgjqbvg5qzp4s591w251np";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-res0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-res0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-screensaver0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "04cm77may727miynsqw0937cvs5kjbh85csrdr86yyayvlqygs02";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-screensaver0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-screensaver0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-shape0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1z0jlvv25ya5v4rn7cmpwpdbafjmhrb9b7hp6x9nlwrhbpwjh6q2";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-shape0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-shape0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-shm0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "0sdajn0sxkvqpy69ccl3l7f7ky4yhj4z304b19wplqfy0qal2gn7";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-shm0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-shm0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-sync1_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1dvq7n1jrsj07hikqvbbbc4wmmk5i9vsvgfcg39vaywmx5fdmfw8";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-sync1_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-sync1.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xevie0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "07qsfdyym47shm3n6m7i9flb339xannxlch2h0i5p9ca2z1a34g2";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xevie0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xevie0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xf86dri0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "06ha588as5j1njqga4xamfnw79z6y13i596syl0h34pdmsqd2jll";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xf86dri0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xf86dri0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xfixes0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1npk19k2qhqm89hk2jhf49acig330myvksamd3xw2gjxa99xz7lz";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xfixes0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xfixes0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xinerama0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "0s117w3a3ql7d6k2bp88hzni3k9cg24qcmbqz50z8b1gqhpw9y6b";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xinerama0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xinerama0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xkb1_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "0kximpl89ks2simxnz10z836rnvaysys7c2jddhsy1z7z30gpb9h";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xkb1_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xkb1.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xprint0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1l2lxnwp129sa268n3xbrifq8yyfn292nz9arqp95za091zj2rri";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xprint0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xprint0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xtest0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1pybcn6rwwg6b4l7a1sn0nxkp2lb5ar9vzwn6ggd8vwrwnppjvq4";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xtest0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xtest0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xv0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "13jyd5jkz8wmbz6n7azxdnbw48c9i5zkwysza50d1c3rlxalpq82";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xv0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xv0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xvmc0_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "0l4wagp619qar8g9yji1sf4schlclyl1zvdmp3w2cp9lnnwx1p1w";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xvmc0_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xvmc0.deb";
+      };
+    }
+    rec {
+      name = "libxcb1_1.11.1-1ubuntu1+steamos1+srt1_amd64";
+      sha256 = "1a8x128bgbz9gy2wsmhijg4di99k18ybs9mwvv37hkpw6mlfaxdx";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb1_1.11.1-1ubuntu1+steamos1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb1.deb";
+      };
+    }
+    rec {
+      name = "libxcomposite1_0.4.3-2build1+srt5_amd64";
+      sha256 = "01kkvnndzkzqx9pacrlirn435z7dky7lkm0clv7yya3xaw5fslv4";
+      url = "mirror://steamrt/pool/main/libx/libxcomposite/libxcomposite1_0.4.3-2build1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcomposite1.deb";
+      };
+    }
+    rec {
+      name = "libxcursor1_1.1.12-1ubuntu0.1+srt5_amd64";
+      sha256 = "0n9dgdi8hb1w5dpasi2pmm5ysrckfch930yvx9grs026dgz3s2g7";
+      url = "mirror://steamrt/pool/main/libx/libxcursor/libxcursor1_1.1.12-1ubuntu0.1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcursor1.deb";
+      };
+    }
+    rec {
+      name = "libxdamage1_1.1.3-2build1+srt5_amd64";
+      sha256 = "0l088wzpyn15nmy8c6nx3p97qhklxhyaxm8bhafv9sddpr407p4k";
+      url = "mirror://steamrt/pool/main/libx/libxdamage/libxdamage1_1.1.3-2build1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxdamage1.deb";
+      };
+    }
+    rec {
+      name = "libxdmcp6_1.1.0-4+srt5_amd64";
+      sha256 = "1jx1i0i6vrm6h2sq99f61dix0v8j1f6nq4d2a1hqaw5f1bsra4q7";
+      url = "mirror://steamrt/pool/main/libx/libxdmcp/libxdmcp6_1.1.0-4+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxdmcp6.deb";
+      };
+    }
+    rec {
+      name = "libxext6_1.3.0-3ubuntu0.2+steamrt1+srt2_amd64";
+      sha256 = "0ip72ys964g5569rbgsrcv8b1afmwm1mrskgrgiqjs93bhr5i4c4";
+      url = "mirror://steamrt/pool/main/libx/libxext/libxext6_1.3.0-3ubuntu0.2+steamrt1+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxext6.deb";
+      };
+    }
+    rec {
+      name = "libxfixes3_5.0-4ubuntu4.4+srt2_amd64";
+      sha256 = "1x2255fch7g2skiz1x94vrm63ahcwf258w2qjkadnbqwivyf8crz";
+      url = "mirror://steamrt/pool/main/libx/libxfixes/libxfixes3_5.0-4ubuntu4.4+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxfixes3.deb";
+      };
+    }
+    rec {
+      name = "libxft2_2.2.0-3ubuntu2+srt5_amd64";
+      sha256 = "0ylsvvd28qwz442scylrp9gmmp1y6lvyj1bcjd5d4g0fc9iwm37d";
+      url = "mirror://steamrt/pool/main/x/xft/libxft2_2.2.0-3ubuntu2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxft2.deb";
+      };
+    }
+    rec {
+      name = "libxi6_1.7.1.901-1ubuntu1~precise3+srt2_amd64";
+      sha256 = "0g3nazw6w77q91c0dsn040y79d1rmg4njg2n3cv871630zghz6rs";
+      url = "mirror://steamrt/pool/main/libx/libxi/libxi6_1.7.1.901-1ubuntu1~precise3+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxi6.deb";
+      };
+    }
+    rec {
+      name = "libxinerama1_1.1.1-3ubuntu0.1+srt5_amd64";
+      sha256 = "1icp7syxhfgwpiabl7503ylw66m7z3sq5pn7wkxb2yriqxfj3nmp";
+      url = "mirror://steamrt/pool/main/libx/libxinerama/libxinerama1_1.1.1-3ubuntu0.1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxinerama1.deb";
+      };
+    }
+    rec {
+      name = "libxml2_2.7.8.dfsg-5.1ubuntu4.17+srt1_amd64";
+      sha256 = "0k5wagjkf60ys0cg639758c1h0cjmziyxvp5597vavbds32sl2hm";
+      url = "mirror://steamrt/pool/main/libx/libxml2/libxml2_2.7.8.dfsg-5.1ubuntu4.17+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxml2.deb";
+      };
+    }
+    rec {
+      name = "libxmu6_1.1.0-3+srt5_amd64";
+      sha256 = "0pabx6pyazssqfs775k4l19frqv20225n7jmr1ncvwfikiw48gsl";
+      url = "mirror://steamrt/pool/main/libx/libxmu/libxmu6_1.1.0-3+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxmu6.deb";
+      };
+    }
+    rec {
+      name = "libxpm4_3.5.9-4+steamrt1.1ubuntu0.1+srt1_amd64";
+      sha256 = "0nv7v30mh3j53h7lcvqm2ixnsbn8328vcfbd2ysx2r2fac9waw7j";
+      url = "mirror://steamrt/pool/main/libx/libxpm/libxpm4_3.5.9-4+steamrt1.1ubuntu0.1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxpm4.deb";
+      };
+    }
+    rec {
+      name = "libxrandr2_1.5.0-1+srt1_amd64";
+      sha256 = "1i55vzgaalxlm0mgi7c52nmpmksyffbf93isg3i2syg5nzain8v2";
+      url = "mirror://steamrt/pool/main/libx/libxrandr/libxrandr2_1.5.0-1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxrandr2.deb";
+      };
+    }
+    rec {
+      name = "libxrender1_0.9.6-2ubuntu0.2+srt2_amd64";
+      sha256 = "0zd4kd5235vn575msfgl48j4czfp4fc44y439gcclpadkhvciviz";
+      url = "mirror://steamrt/pool/main/libx/libxrender/libxrender1_0.9.6-2ubuntu0.2+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxrender1.deb";
+      };
+    }
+    rec {
+      name = "libxss1_1.2.1-2+srt5_amd64";
+      sha256 = "1k7248hb63ml79nqzij65rmg8x0ayi41zpl9ls6my87a6gzswyhr";
+      url = "mirror://steamrt/pool/main/libx/libxss/libxss1_1.2.1-2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxss1.deb";
+      };
+    }
+    rec {
+      name = "libxt6_1.1.1-2ubuntu0.1+srt5_amd64";
+      sha256 = "0gd81vk2bzjc9zcdbgj57hwhs6v9dmzajrmngmaxavyzv2fgamka";
+      url = "mirror://steamrt/pool/main/libx/libxt/libxt6_1.1.1-2ubuntu0.1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxt6.deb";
+      };
+    }
+    rec {
+      name = "libxtst6_1.2.0-4ubuntu0.1+srt5_amd64";
+      sha256 = "1l1l2073b9cd76ckn5f2d4qb4w1k48s0dlki93bfikph8ms6px8d";
+      url = "mirror://steamrt/pool/main/libx/libxtst/libxtst6_1.2.0-4ubuntu0.1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxtst6.deb";
+      };
+    }
+    rec {
+      name = "libxxf86vm1_1.1.1-2ubuntu0.1+srt5_amd64";
+      sha256 = "1diqhhj91knlz02b6ha940091yjris46d5swy3zi3r389w2b2crm";
+      url = "mirror://steamrt/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.1-2ubuntu0.1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxxf86vm1.deb";
+      };
+    }
+    rec {
+      name = "nvidia-cg-toolkit_3.0.0016-0ubuntu1+srt5_amd64";
+      sha256 = "0cr24gybxz7h8s9rijr75dayahy1kx4i6gn5q2q6h4z29v046nc4";
+      url = "mirror://steamrt/pool/main/n/nvidia-cg-toolkit/nvidia-cg-toolkit_3.0.0016-0ubuntu1+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "nvidia-cg-toolkit.deb";
+      };
+    }
+    rec {
+      name = "zenity_3.4.0-0ubuntu4+steamrt2+srt5_amd64";
+      sha256 = "0ajisfqvlajw0m6kq3yv8j6f38dfhlavrmmfdq5yqmb70wmmkk71";
+      url = "mirror://steamrt/pool/main/z/zenity/zenity_3.4.0-0ubuntu4+steamrt2+srt5_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "zenity.deb";
+      };
+    }
+    rec {
+      name = "zlib1g_1.2.3.4.dfsg-3ubuntu4+srt6_amd64";
+      sha256 = "0962hhdg3knxnjinkv7m3h510fq8vghjyaxnsnsyijqzfawi4rfj";
+      url = "mirror://steamrt/pool/main/z/zlib/zlib1g_1.2.3.4.dfsg-3ubuntu4+srt6_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "zlib1g.deb";
+      };
+    }
+  ];
+  i386 = [
+    rec {
+      name = "dconf-gsettings-backend_0.12.0-0ubuntu1.1+steamrt1.1+srt1_i386";
+      sha256 = "134fv1d73hnlfn14asgmi36pwbs3mlri290jbl0621mih1iq8b7i";
+      url = "mirror://steamrt/pool/main/d/d-conf/dconf-gsettings-backend_0.12.0-0ubuntu1.1+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "dconf-gsettings-backend.deb";
+      };
+    }
+    rec {
+      name = "freeglut3_2.6.0-1ubuntu3+srt5_i386";
+      sha256 = "0jdn9nvjmhphv9iw1h589cy5q1iq0gp9q4ibm0m69lkazi2v1blb";
+      url = "mirror://steamrt/pool/main/f/freeglut/freeglut3_2.6.0-1ubuntu3+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "freeglut3.deb";
+      };
+    }
+    rec {
+      name = "gcc-4.6-base_4.6.3-1ubuntu5+steamrt1.2+srt1_i386";
+      sha256 = "0lq2bm237vwjkclxjqldw4cy1mirbw6lx6ryqmjwzwq1ya5490sr";
+      url = "mirror://steamrt/pool/main/g/gcc-4.6/gcc-4.6-base_4.6.3-1ubuntu5+steamrt1.2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "gcc-4.6-base.deb";
+      };
+    }
+    rec {
+      name = "gcc-5-base_5.4.0-7.really.6+steamrt1.1+srt2_i386";
+      sha256 = "1jlyq99j7rgw6m4rvrxcrpk5l386sps36isld18bg7hb67qm5gzy";
+      url = "mirror://steamrt/pool/main/g/gcc-5/gcc-5-base_5.4.0-7.really.6+steamrt1.1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "gcc-5-base.deb";
+      };
+    }
+    rec {
+      name = "gtk2-engines_2.20.2-1ubuntu1+srt5_i386";
+      sha256 = "06h5229y2md6d73imgy5wg4msv6s9vl056p97jq2hrf4di0q6a76";
+      url = "mirror://steamrt/pool/main/g/gtk2-engines/gtk2-engines_2.20.2-1ubuntu1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "gtk2-engines.deb";
+      };
+    }
+    rec {
+      name = "gtk2-engines-murrine_0.98.2-0ubuntu1+srt5_i386";
+      sha256 = "1fyha082h0jr26gjnsxzj1c6rl63c9xc2kgf6cfb86dmsmbvpqqg";
+      url = "mirror://steamrt/pool/main/g/gtk2-engines-murrine/gtk2-engines-murrine_0.98.2-0ubuntu1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "gtk2-engines-murrine.deb";
+      };
+    }
+    rec {
+      name = "gtk2-engines-pixbuf_2.24.10-0ubuntu6+steamrt1+srt5_i386";
+      sha256 = "0ix60pix5cnzd807v8q9mqhyhhksqndd7vc6brs1daknhxn5dsi4";
+      url = "mirror://steamrt/pool/main/g/gtk+2.0/gtk2-engines-pixbuf_2.24.10-0ubuntu6+steamrt1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "gtk2-engines-pixbuf.deb";
+      };
+    }
+    rec {
+      name = "libacl1_2.2.51-5ubuntu1+steamrt1.1+srt2_i386";
+      sha256 = "01cmbrlgzx7djy0xgf4950936s596rp8cn51qadbfz0sad5w7sd9";
+      url = "mirror://steamrt/pool/main/a/acl/libacl1_2.2.51-5ubuntu1+steamrt1.1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libacl1.deb";
+      };
+    }
+    rec {
+      name = "libappindicator1_0.4.92-0ubuntu1.1+steamrt1+srt1_i386";
+      sha256 = "1bbf9k50d3df4sjn2idizk2bcpkcxkg0wz8mczgzkh634753pkld";
+      url = "mirror://steamrt/pool/main/liba/libappindicator/libappindicator1_0.4.92-0ubuntu1.1+steamrt1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libappindicator1.deb";
+      };
+    }
+    rec {
+      name = "libasn1-8-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386";
+      sha256 = "1qgap0ha5vlpz1fnf2fppprzh4lyrvy7k9sj0whhb3f48ass8mh5";
+      url = "mirror://steamrt/pool/main/h/heimdal/libasn1-8-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libasn1-8-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libasound2_1.1.0-0ubuntu1+steamos1+srt2_i386";
+      sha256 = "0wa019012di6slf29ambq249fn6w9ldmyxx80k564j9s1k510ivc";
+      url = "mirror://steamrt/pool/main/a/alsa-lib/libasound2_1.1.0-0ubuntu1+steamos1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libasound2.deb";
+      };
+    }
+    rec {
+      name = "libasound2-plugins_1.1.0-0ubuntu1+srt2_i386";
+      sha256 = "0hrrpjp4wg13vfam863hwkhzv7ngcydx0iysmfkxjzhmpf3j4ghd";
+      url = "mirror://steamrt/pool/main/a/alsa-plugins/libasound2-plugins_1.1.0-0ubuntu1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libasound2-plugins.deb";
+      };
+    }
+    rec {
+      name = "libasyncns0_0.8-4+srt5_i386";
+      sha256 = "0k8rngiq74b574fc1jqfwf77f57qcflimbs63pa2jx1jqg7gxjx2";
+      url = "mirror://steamrt/pool/main/liba/libasyncns/libasyncns0_0.8-4+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libasyncns0.deb";
+      };
+    }
+    rec {
+      name = "libatk1.0-0_2.18.0-1+steamrt1+srt1_i386";
+      sha256 = "0ldl3jsmf16mbf1bs94zkmaa1b1p9d9rvajlyp7iqkbqw6qkszlz";
+      url = "mirror://steamrt/pool/main/a/atk1.0/libatk1.0-0_2.18.0-1+steamrt1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libatk1.0-0.deb";
+      };
+    }
+    rec {
+      name = "libattr1_2.4.46-5ubuntu1+steamrt1.1+srt1_i386";
+      sha256 = "0crgd6ww9z1b69g9x1acxnlxaw3nyymq1fhjpxzs1x0vrlhj8wsg";
+      url = "mirror://steamrt/pool/main/a/attr/libattr1_2.4.46-5ubuntu1+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libattr1.deb";
+      };
+    }
+    rec {
+      name = "libavahi-client3_0.6.30-5ubuntu2.2+srt1_i386";
+      sha256 = "1yyq436zsx8hbfhhv4l8ji85narl6ws8flhfcbqvxldaxlzv4ls7";
+      url = "mirror://steamrt/pool/main/a/avahi/libavahi-client3_0.6.30-5ubuntu2.2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libavahi-client3.deb";
+      };
+    }
+    rec {
+      name = "libavahi-common3_0.6.30-5ubuntu2.2+srt1_i386";
+      sha256 = "0lhvj64i4dqy0lh73kyk32992fqkhxxr7k1cr97a03hdpaa06ycq";
+      url = "mirror://steamrt/pool/main/a/avahi/libavahi-common3_0.6.30-5ubuntu2.2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libavahi-common3.deb";
+      };
+    }
+    rec {
+      name = "libavcodec53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_i386";
+      sha256 = "129g8jgy4va5gszrq9pxd4p51zja9svcm0hqx8g12ryx5lfkjjc5";
+      url = "mirror://steamrt/pool/main/liba/libav/libavcodec53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libavcodec53.deb";
+      };
+    }
+    rec {
+      name = "libavfilter2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_i386";
+      sha256 = "1vnj97sl686wlkkxbhvn5s3ck60nzrqr60y4wxg9a2hxxf7ba1gf";
+      url = "mirror://steamrt/pool/main/liba/libav/libavfilter2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libavfilter2.deb";
+      };
+    }
+    rec {
+      name = "libavformat53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_i386";
+      sha256 = "12zikl29fcq5vc0k5n4l8db8q0f95h13hlqgka3cy13nf31kbk06";
+      url = "mirror://steamrt/pool/main/liba/libav/libavformat53_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libavformat53.deb";
+      };
+    }
+    rec {
+      name = "libavutil51_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_i386";
+      sha256 = "1brfvbqwga1hmmyarbwksbrj6kabnfnrk8hv9xrvd99jak3wsipl";
+      url = "mirror://steamrt/pool/main/liba/libav/libavutil51_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libavutil51.deb";
+      };
+    }
+    rec {
+      name = "libbz2-1.0_1.0.6-1+srt5_i386";
+      sha256 = "1nngc07hwr96n1k56bi3i2yffad8dhf1zfblqlz8pffi1yl92vjz";
+      url = "mirror://steamrt/pool/main/b/bzip2/libbz2-1.0_1.0.6-1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libbz2-1.0.deb";
+      };
+    }
+    rec {
+      name = "libcairo2_1.10.2-6.1ubuntu3+srt5_i386";
+      sha256 = "0vnz2d66q9pkn8ry2ixbmqcyz0kpqqmimaxnrfq42g1lz8k44cs6";
+      url = "mirror://steamrt/pool/main/c/cairo/libcairo2_1.10.2-6.1ubuntu3+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcairo2.deb";
+      };
+    }
+    rec {
+      name = "libcanberra-gtk-module_0.28-3ubuntu3+steamrt1.1+srt1_i386";
+      sha256 = "1lg98x7cr66nq48k3klah9apskvk2cqdpj3g52z5yffkrrd1sqci";
+      url = "mirror://steamrt/pool/main/libc/libcanberra/libcanberra-gtk-module_0.28-3ubuntu3+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcanberra-gtk-module.deb";
+      };
+    }
+    rec {
+      name = "libcanberra-gtk0_0.28-3ubuntu3+steamrt1.1+srt1_i386";
+      sha256 = "0jnqzfshd1f16f3gcq3fw955i6w9pfizli0l0zxl6fl58ad6g9as";
+      url = "mirror://steamrt/pool/main/libc/libcanberra/libcanberra-gtk0_0.28-3ubuntu3+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcanberra-gtk0.deb";
+      };
+    }
+    rec {
+      name = "libcanberra0_0.28-3ubuntu3+steamrt1.1+srt1_i386";
+      sha256 = "0kfw2ghb47ysww9wrp9gjq449j82a22f5w5xn1vk17bq0kk2vg8c";
+      url = "mirror://steamrt/pool/main/libc/libcanberra/libcanberra0_0.28-3ubuntu3+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcanberra0.deb";
+      };
+    }
+    rec {
+      name = "libcap2_2.22-1ubuntu3+srt5_i386";
+      sha256 = "1qy9ggswl8cbp0zbaryc7cd4bcq17qb4llv8v3zcj08wxr6v2ram";
+      url = "mirror://steamrt/pool/main/libc/libcap2/libcap2_2.22-1ubuntu3+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcap2.deb";
+      };
+    }
+    rec {
+      name = "libcg_3.0.0016-0ubuntu1+srt5_i386";
+      sha256 = "0gs2q5ql7wq28y2qrs9v9gs75r6ycq7c6xghf4s6g5s8q4cq205k";
+      url = "mirror://steamrt/pool/main/n/nvidia-cg-toolkit/libcg_3.0.0016-0ubuntu1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcg.deb";
+      };
+    }
+    rec {
+      name = "libcomerr2_1.42-1ubuntu2.3+srt1_i386";
+      sha256 = "12c8gxi0l0qysbiw81hbysf5hn1kgv956csvrn71yf52zwqwr388";
+      url = "mirror://steamrt/pool/main/e/e2fsprogs/libcomerr2_1.42-1ubuntu2.3+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcomerr2.deb";
+      };
+    }
+    rec {
+      name = "libcups2_1.5.3-0ubuntu8.7+steamrt1.2+srt2_i386";
+      sha256 = "02p2svhf5zr2q5pga2qbnk5v6v6isjymli8arfarqcawgw8x8abg";
+      url = "mirror://steamrt/pool/main/c/cups/libcups2_1.5.3-0ubuntu8.7+steamrt1.2+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcups2.deb";
+      };
+    }
+    rec {
+      name = "libcurl3_7.22.0-3ubuntu4.17+steamrt1.1+srt4_i386";
+      sha256 = "18kysm6nj8jfankkarphpzk03cab126pnili4p3kfglw2z7dxci0";
+      url = "mirror://steamrt/pool/main/c/curl/libcurl3_7.22.0-3ubuntu4.17+steamrt1.1+srt4_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcurl3.deb";
+      };
+    }
+    rec {
+      name = "libcurl3-gnutls_7.22.0-3ubuntu4.17+steamrt1.1+srt4_i386";
+      sha256 = "166mcqrwh86qx2dpsi5qx9nczzwyyih51d0ssrbnxzabshkyzmsx";
+      url = "mirror://steamrt/pool/main/c/curl/libcurl3-gnutls_7.22.0-3ubuntu4.17+steamrt1.1+srt4_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcurl3-gnutls.deb";
+      };
+    }
+    rec {
+      name = "libdbus-1-3_1.4.18-1ubuntu1.8+srt1_i386";
+      sha256 = "1m8aqb9hvprl0hbswha0raz6pp3gs84cmqg40fblbfqya8nibdlk";
+      url = "mirror://steamrt/pool/main/d/dbus/libdbus-1-3_1.4.18-1ubuntu1.8+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libdbus-1-3.deb";
+      };
+    }
+    rec {
+      name = "libdbus-glib-1-2_0.98-1ubuntu1.1+srt5_i386";
+      sha256 = "0slsk7cqdrbnm35zqir21ms0vv1hv44i184x8ip1lg936vrvbxka";
+      url = "mirror://steamrt/pool/main/d/dbus-glib/libdbus-glib-1-2_0.98-1ubuntu1.1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libdbus-glib-1-2.deb";
+      };
+    }
+    rec {
+      name = "libdbusmenu-glib4_0.6.2-0ubuntu0.1+srt5_i386";
+      sha256 = "0g4zmrwpifl4kxv311spwyia1xrd76m0aizb3jzv6q8cc4hla3ii";
+      url = "mirror://steamrt/pool/main/libd/libdbusmenu/libdbusmenu-glib4_0.6.2-0ubuntu0.1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libdbusmenu-glib4.deb";
+      };
+    }
+    rec {
+      name = "libdbusmenu-gtk4_0.6.2-0ubuntu0.1+srt5_i386";
+      sha256 = "0kj6pfpgybkkb5bjfr9qgczwddx5lkbwhknlcymhhi94jcfbcnbc";
+      url = "mirror://steamrt/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_0.6.2-0ubuntu0.1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libdbusmenu-gtk4.deb";
+      };
+    }
+    rec {
+      name = "libexif12_0.6.20-2ubuntu0.1+srt5_i386";
+      sha256 = "06br49sn30hrxlq479xi3vxw3blkr558kz4d7gym3fxnwfa6im9w";
+      url = "mirror://steamrt/pool/main/libe/libexif/libexif12_0.6.20-2ubuntu0.1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libexif12.deb";
+      };
+    }
+    rec {
+      name = "libexpat1_2.0.1-7.2ubuntu1.4+srt2_i386";
+      sha256 = "0av7wcy104jz6pci7lgwpmvb528v9idx660qrrabdqhpd1m4hv8s";
+      url = "mirror://steamrt/pool/main/e/expat/libexpat1_2.0.1-7.2ubuntu1.4+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libexpat1.deb";
+      };
+    }
+    rec {
+      name = "libffi6_3.0.11~rc1-5+srt5_i386";
+      sha256 = "0gvhndr5y4zl097h105fr4q60sg38mhkhlw8ha51ypzcm9f8na6d";
+      url = "mirror://steamrt/pool/main/libf/libffi/libffi6_3.0.11~rc1-5+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libffi6.deb";
+      };
+    }
+    rec {
+      name = "libflac8_1.2.1-6+steamrt1.1ubuntu0.1+srt1_i386";
+      sha256 = "1rdfykm113vps893xdkcrpphb06winv2566yb9myg9m3aybcldrx";
+      url = "mirror://steamrt/pool/main/f/flac/libflac8_1.2.1-6+steamrt1.1ubuntu0.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libflac8.deb";
+      };
+    }
+    rec {
+      name = "libfltk1.1_1.1.10-10+srt5_i386";
+      sha256 = "1j0bhpgsaw6rphy1wqp40wn8yr6qzrxdmwarc2amryqw7bqslmy5";
+      url = "mirror://steamrt/pool/main/f/fltk1.1/libfltk1.1_1.1.10-10+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libfltk1.1.deb";
+      };
+    }
+    rec {
+      name = "libfontconfig1_2.8.0-3ubuntu9.2+steamrt1.1+srt1_i386";
+      sha256 = "19mqzn0p0x282wvh4njykiar10rc5zd43cl7pji9hkrq4xlv0s3j";
+      url = "mirror://steamrt/pool/main/f/fontconfig/libfontconfig1_2.8.0-3ubuntu9.2+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libfontconfig1.deb";
+      };
+    }
+    rec {
+      name = "libfreetype6_2.4.8-1ubuntu2.6+srt1_i386";
+      sha256 = "1zahvr5h833mppcpg648jv28dywx9jiqdv58wlv1vpsk6d9599bh";
+      url = "mirror://steamrt/pool/main/f/freetype/libfreetype6_2.4.8-1ubuntu2.6+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libfreetype6.deb";
+      };
+    }
+    rec {
+      name = "libgcc1_5.4.0-7.really.6+steamrt1.1+srt2_i386";
+      sha256 = "0x9sssiqkdpbya6v5slw6lv3ad0w7k4j25bxh0zqxgjfpf3np8m7";
+      url = "mirror://steamrt/pool/main/g/gcc-5/libgcc1_5.4.0-7.really.6+steamrt1.1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgcc1.deb";
+      };
+    }
+    rec {
+      name = "libgconf-2-4_3.2.5-0ubuntu2+steamrt1.1+srt1_i386";
+      sha256 = "1rf64kxpbjp0dvd0l5ip8qlrla69zj4h4wsx5hjhbrx2qhf9h31z";
+      url = "mirror://steamrt/pool/main/g/gconf/libgconf-2-4_3.2.5-0ubuntu2+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgconf-2-4.deb";
+      };
+    }
+    rec {
+      name = "libgcrypt11_1.5.0-3ubuntu0.6+srt2_i386";
+      sha256 = "1wbaml6cjdijcaq6c9m0lcdlh350fk9a2prh6z4k7fjhsms60ppc";
+      url = "mirror://steamrt/pool/main/libg/libgcrypt11/libgcrypt11_1.5.0-3ubuntu0.6+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgcrypt11.deb";
+      };
+    }
+    rec {
+      name = "libgdk-pixbuf2.0-0_2.26.1-1+steamrt3+srt5_i386";
+      sha256 = "0fis055pnc01rb5v9vdqc17w4ijdb6sksf2qjysc4q2j33gvh6d5";
+      url = "mirror://steamrt/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.26.1-1+steamrt3+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgdk-pixbuf2.0-0.deb";
+      };
+    }
+    rec {
+      name = "libglew1.10_1.10.0-3+srt6_i386";
+      sha256 = "17ki8vb4nbg140fg7vdfyb092lcr3hpsjx0z1gz13bvmzxcff3lf";
+      url = "mirror://steamrt/pool/main/g/glew/libglew1.10_1.10.0-3+srt6_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libglew1.10.deb";
+      };
+    }
+    rec {
+      name = "libglew1.6_1.6.0-4+steamrt1.1+srt1_i386";
+      sha256 = "1rpxqc5a0ys26ckzgsk7725wdvq2warcfyjabl1a4r1vikqj2nsz";
+      url = "mirror://steamrt/pool/main/g/glew1.6/libglew1.6_1.6.0-4+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libglew1.6.deb";
+      };
+    }
+    rec {
+      name = "libglib2.0-0_2.32.3-0ubuntu1+steamrt3+srt2_i386";
+      sha256 = "0l0vjcff86mw1mv5kizg3pcjr8rk9bn2gjf0d22jgljisq47f607";
+      url = "mirror://steamrt/pool/main/g/glib2.0/libglib2.0-0_2.32.3-0ubuntu1+steamrt3+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libglib2.0-0.deb";
+      };
+    }
+    rec {
+      name = "libglu1-mesa_8.0.4-0ubuntu0.7+srt5_i386";
+      sha256 = "1bc2hb2cb05j4iw9lrskrqkdh8iy7wv3d1sknqn1ya847w98h9hr";
+      url = "mirror://steamrt/pool/main/m/mesa/libglu1-mesa_8.0.4-0ubuntu0.7+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libglu1-mesa.deb";
+      };
+    }
+    rec {
+      name = "libgmp10_6.1.0+dfsg-2+srt1_i386";
+      sha256 = "0x0ipagi7z9s4cf5wsp1h5vbgx1czsnv3z9rvcz289fb88b7vn2f";
+      url = "mirror://steamrt/pool/main/g/gmp/libgmp10_6.1.0+dfsg-2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgmp10.deb";
+      };
+    }
+    rec {
+      name = "libgnutls26_2.12.14-5ubuntu3.14+srt1_i386";
+      sha256 = "1f5dv4bk2g9ldqfjm7a2a6mx2ignzgxy42ghl9yny6x9xz39g56h";
+      url = "mirror://steamrt/pool/main/g/gnutls26/libgnutls26_2.12.14-5ubuntu3.14+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgnutls26.deb";
+      };
+    }
+    rec {
+      name = "libgnutls30_3.4.10-4ubuntu1.4+steamrt1.1+srt3_i386";
+      sha256 = "12xzkh2fzlnqdpyf18a13dc92pk9fmakcsm89zs1lfq68ad7zlb6";
+      url = "mirror://steamrt/pool/main/g/gnutls28/libgnutls30_3.4.10-4ubuntu1.4+steamrt1.1+srt3_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgnutls30.deb";
+      };
+    }
+    rec {
+      name = "libgomp1_5.4.0-7.really.6+steamrt1.1+srt2_i386";
+      sha256 = "0z73ay26wi49hg74lwn13gyraqvdim7q79rpckvk7p7cimb65ina";
+      url = "mirror://steamrt/pool/main/g/gcc-5/libgomp1_5.4.0-7.really.6+steamrt1.1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgomp1.deb";
+      };
+    }
+    rec {
+      name = "libgpg-error0_1.10-2ubuntu1+srt5_i386";
+      sha256 = "19wh8hdp5lcf68w2hwmj8z55j2bcp61ydf37cs796rvzsxbsbamr";
+      url = "mirror://steamrt/pool/main/libg/libgpg-error/libgpg-error0_1.10-2ubuntu1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgpg-error0.deb";
+      };
+    }
+    rec {
+      name = "libgssapi-krb5-2_1.10+dfsg~beta1-2ubuntu0.7+srt2_i386";
+      sha256 = "1zkvqbm3i297b6pj0japgs3jcvps8my6icsh2n1ka6nvflvdr87h";
+      url = "mirror://steamrt/pool/main/k/krb5/libgssapi-krb5-2_1.10+dfsg~beta1-2ubuntu0.7+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgssapi-krb5-2.deb";
+      };
+    }
+    rec {
+      name = "libgssapi3-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386";
+      sha256 = "0q2r4fmpql34hpd061289ijl40y66wp8rlh78b2ysg8dkvycni0k";
+      url = "mirror://steamrt/pool/main/h/heimdal/libgssapi3-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgssapi3-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libgstreamer-plugins-base0.10-0_0.10.36-1ubuntu0.2+srt1_i386";
+      sha256 = "0nq6hvv00b3s5fmay2nm4s869y6lws8v2w9lrqlpgs08z6fh6mjp";
+      url = "mirror://steamrt/pool/main/g/gst-plugins-base0.10/libgstreamer-plugins-base0.10-0_0.10.36-1ubuntu0.2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgstreamer-plugins-base0.10-0.deb";
+      };
+    }
+    rec {
+      name = "libgstreamer0.10-0_0.10.36-1ubuntu1+srt5_i386";
+      sha256 = "0arypn4k1wvaiqqxc271r5w7bkdk0f4mh88l4np3ngfyzn2w6z61";
+      url = "mirror://steamrt/pool/main/g/gstreamer0.10/libgstreamer0.10-0_0.10.36-1ubuntu1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgstreamer0.10-0.deb";
+      };
+    }
+    rec {
+      name = "libgtk2.0-0_2.24.10-0ubuntu6+steamrt1+srt5_i386";
+      sha256 = "0swmpdf7872z0nb3rsfixspg11nvf0k7sm4xcdgvcliaqjhyv570";
+      url = "mirror://steamrt/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.10-0ubuntu6+steamrt1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgtk2.0-0.deb";
+      };
+    }
+    rec {
+      name = "libgtk2.0-common_2.24.10-0ubuntu6+steamrt1+srt5_all";
+      sha256 = "0rw8iy16ij86abh444jk1xw78b5z81qjxm1292jin3sfhck4bd4x";
+      url = "mirror://steamrt/pool/main/g/gtk+2.0/libgtk2.0-common_2.24.10-0ubuntu6+steamrt1+srt5_all.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgtk2.0-common.deb";
+      };
+    }
+    rec {
+      name = "libgudev-1.0-0_175-0ubuntu9.10+srt1_i386";
+      sha256 = "09gjla6gsx8whbvhzwvgjnm19md7bgpvb76kjfmxzm54hakcjxla";
+      url = "mirror://steamrt/pool/main/u/udev/libgudev-1.0-0_175-0ubuntu9.10+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libgudev-1.0-0.deb";
+      };
+    }
+    rec {
+      name = "libhcrypto4-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386";
+      sha256 = "18v3rqaclhdmbh25p48sa6qidi3birnymdfzg2c8z5bpg1giis83";
+      url = "mirror://steamrt/pool/main/h/heimdal/libhcrypto4-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libhcrypto4-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libheimbase1-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386";
+      sha256 = "1546i5h5137ysvcgvyi6hplfx54wqya8sr233vgn838xd2bz024r";
+      url = "mirror://steamrt/pool/main/h/heimdal/libheimbase1-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libheimbase1-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libheimntlm0-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386";
+      sha256 = "1yk0ap8wsi5k2wz5i9vcdw332kbhnlbf5hb8la9pckfrxy6bca82";
+      url = "mirror://steamrt/pool/main/h/heimdal/libheimntlm0-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libheimntlm0-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libhogweed4_3.2-1ubuntu0.16.04.1+srt1_i386";
+      sha256 = "1d3p11al48d1ig6kn74wkx298kizvw9i0s25rs1433k9cx5aissp";
+      url = "mirror://steamrt/pool/main/n/nettle/libhogweed4_3.2-1ubuntu0.16.04.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libhogweed4.deb";
+      };
+    }
+    rec {
+      name = "libhx509-5-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386";
+      sha256 = "0y6awbyl4w56qa8vkn9dzsnb3162x4p5nr1cf7ir119nl05987cp";
+      url = "mirror://steamrt/pool/main/h/heimdal/libhx509-5-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libhx509-5-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libice6_1.0.7-2build1+srt5_i386";
+      sha256 = "02nygw4q330jgrfgbp46fjpa97bmgzk7sg9ikh97k4c743lshija";
+      url = "mirror://steamrt/pool/main/libi/libice/libice6_1.0.7-2build1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libice6.deb";
+      };
+    }
+    rec {
+      name = "libidn11_1.32-3ubuntu1.2+steamrt1.1+srt1_i386";
+      sha256 = "0zx078d5ycbmy56lcl3j71r9ygfj1b18msrik36ya5qkqm9335rj";
+      url = "mirror://steamrt/pool/main/libi/libidn/libidn11_1.32-3ubuntu1.2+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libidn11.deb";
+      };
+    }
+    rec {
+      name = "libindicator7_0.5.0-0ubuntu1+steamrt1+srt1_i386";
+      sha256 = "1qiyw54y8yra871vzvdlj2cqhf1yvg68h9zckyyv87s753x98kkq";
+      url = "mirror://steamrt/pool/main/libi/libindicator/libindicator7_0.5.0-0ubuntu1+steamrt1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libindicator7.deb";
+      };
+    }
+    rec {
+      name = "libjack-jackd2-0_1.9.8~dfsg.1-1ubuntu2+srt4_i386";
+      sha256 = "02c4fj82svlkh9whsasclshjlvgbcabsz64ac47hvs2ccaap0gis";
+      url = "mirror://steamrt/pool/main/j/jackd2/libjack-jackd2-0_1.9.8~dfsg.1-1ubuntu2+srt4_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libjack-jackd2-0.deb";
+      };
+    }
+    rec {
+      name = "libjpeg-turbo8_1.1.90+svn733-0ubuntu4.3+srt5_i386";
+      sha256 = "0bcp6bxrgdbcgwrg2qgrax111w6xfwyf3rwrpf8j9mwd91hzm0c8";
+      url = "mirror://steamrt/pool/main/libj/libjpeg-turbo/libjpeg-turbo8_1.1.90+svn733-0ubuntu4.3+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libjpeg-turbo8.deb";
+      };
+    }
+    rec {
+      name = "libjpeg62_6b1-2ubuntu1.1+srt5_i386";
+      sha256 = "1l3hm9p30w2kwbjyri452h9v0nprznsl9jh32l9hg4php8kjfidw";
+      url = "mirror://steamrt/pool/main/libj/libjpeg6b/libjpeg62_6b1-2ubuntu1.1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libjpeg62.deb";
+      };
+    }
+    rec {
+      name = "libjson0_0.9-1ubuntu1.1+srt3_i386";
+      sha256 = "0jnbwf7j7fmrylav1dck17kajxdyc67gfmpn09wrrqy0zgdbg3zi";
+      url = "mirror://steamrt/pool/main/j/json-c/libjson0_0.9-1ubuntu1.1+srt3_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libjson0.deb";
+      };
+    }
+    rec {
+      name = "libk5crypto3_1.10+dfsg~beta1-2ubuntu0.7+srt2_i386";
+      sha256 = "0czc7vf1q84k252wsx9v9na2jn8vqym62dnb100992cpzj2956c1";
+      url = "mirror://steamrt/pool/main/k/krb5/libk5crypto3_1.10+dfsg~beta1-2ubuntu0.7+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libk5crypto3.deb";
+      };
+    }
+    rec {
+      name = "libkeyutils1_1.5.2-2+srt5_i386";
+      sha256 = "0vmd87b8kk579fi99di79p94nkl0584bsdhgw2gw03czbainq9rx";
+      url = "mirror://steamrt/pool/main/k/keyutils/libkeyutils1_1.5.2-2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libkeyutils1.deb";
+      };
+    }
+    rec {
+      name = "libkrb5-26-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386";
+      sha256 = "1hjdfsvqzvssxiamjq9dddlzjjz54grzva2a7rsipbmmvnw254yd";
+      url = "mirror://steamrt/pool/main/h/heimdal/libkrb5-26-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libkrb5-26-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libkrb5-3_1.10+dfsg~beta1-2ubuntu0.7+srt2_i386";
+      sha256 = "1cr6z0jv6mchs82p6iyskdq6ppbfpyixanxwdbjdg76cpb5as3ii";
+      url = "mirror://steamrt/pool/main/k/krb5/libkrb5-3_1.10+dfsg~beta1-2ubuntu0.7+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libkrb5-3.deb";
+      };
+    }
+    rec {
+      name = "libkrb5support0_1.10+dfsg~beta1-2ubuntu0.7+srt2_i386";
+      sha256 = "11v68jp8f24abx7i6b69jimlmv0lvpb5hnlxnj3f281zsz2smpyw";
+      url = "mirror://steamrt/pool/main/k/krb5/libkrb5support0_1.10+dfsg~beta1-2ubuntu0.7+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libkrb5support0.deb";
+      };
+    }
+    rec {
+      name = "liblcms2-2_2.2+git20110628-2ubuntu3.1+srt5_i386";
+      sha256 = "1bpb8gfach74nibzzd2mk7mkdhlw1j27yrgckpl9pgzq8jd0ch70";
+      url = "mirror://steamrt/pool/main/l/lcms2/liblcms2-2_2.2+git20110628-2ubuntu3.1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "liblcms2-2.deb";
+      };
+    }
+    rec {
+      name = "libldap-2.4-2_2.4.28-1.1ubuntu4.6+steamrt1.2+srt3_i386";
+      sha256 = "072vkbk177xxr0g50vban143m1r67ana3abkv4ha0wk4z8wvvw13";
+      url = "mirror://steamrt/pool/main/o/openldap/libldap-2.4-2_2.4.28-1.1ubuntu4.6+steamrt1.2+srt3_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libldap-2.4-2.deb";
+      };
+    }
+    rec {
+      name = "libltdl7_2.4.2-1ubuntu1+srt5_i386";
+      sha256 = "1jv01xk4bf0sbq8jawa0zm1q0imc7nmzdwcmkhgscld02rzwwffs";
+      url = "mirror://steamrt/pool/main/libt/libtool/libltdl7_2.4.2-1ubuntu1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libltdl7.deb";
+      };
+    }
+    rec {
+      name = "libmikmod2_3.1.12-2+srt5_i386";
+      sha256 = "12dmbmkv3gmi1cz0bs3fsbhgnhzvf8cjp0b6zj2a2dgplw1h6qdr";
+      url = "mirror://steamrt/pool/main/libm/libmikmod/libmikmod2_3.1.12-2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libmikmod2.deb";
+      };
+    }
+    rec {
+      name = "libmpg123-0_1.25.10-1+steamrt1+srt1_i386";
+      sha256 = "0rk7z6ps3gy6jl4v0apz8sdbfpb6xbwf9fniqii559wkhrr2hfn5";
+      url = "mirror://steamrt/pool/main/m/mpg123/libmpg123-0_1.25.10-1+steamrt1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libmpg123-0.deb";
+      };
+    }
+    rec {
+      name = "libncurses5_5.9-4+srt5_i386";
+      sha256 = "1jsi7qvwy4h1z1mf9qlhp5pizbn84qgnpgi2y1qjlgym8428k0ga";
+      url = "mirror://steamrt/pool/main/n/ncurses/libncurses5_5.9-4+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libncurses5.deb";
+      };
+    }
+    rec {
+      name = "libncursesw5_5.9-4+srt5_i386";
+      sha256 = "17hfrf97qcrw1n7p4nwwwiw3jpqpjphqwnq73pb7p8bsp53qa4h4";
+      url = "mirror://steamrt/pool/main/n/ncurses/libncursesw5_5.9-4+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libncursesw5.deb";
+      };
+    }
+    rec {
+      name = "libnettle6_3.2-1ubuntu0.16.04.1+srt1_i386";
+      sha256 = "0rpw9fg2xfccdvbq0ji66a52rb401r05cs16z9py9r6b0brrxvsf";
+      url = "mirror://steamrt/pool/main/n/nettle/libnettle6_3.2-1ubuntu0.16.04.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libnettle6.deb";
+      };
+    }
+    rec {
+      name = "libnm-glib4_0.9.4.0-0ubuntu4.2+steamrt2+srt1_i386";
+      sha256 = "0vsd00x0wvqw84zqlqrbmdxfmzshrvwbr2az3ynkaz8azkxj1d6d";
+      url = "mirror://steamrt/pool/main/n/network-manager/libnm-glib4_0.9.4.0-0ubuntu4.2+steamrt2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libnm-glib4.deb";
+      };
+    }
+    rec {
+      name = "libnm-util2_0.9.4.0-0ubuntu4.2+steamrt2+srt1_i386";
+      sha256 = "1vaqqgxzvixvh8cvdspyr7azfn8dmknvsypz628h2xvbldf0p156";
+      url = "mirror://steamrt/pool/main/n/network-manager/libnm-util2_0.9.4.0-0ubuntu4.2+steamrt2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libnm-util2.deb";
+      };
+    }
+    rec {
+      name = "libnotify4_0.7.5-1+srt5_i386";
+      sha256 = "0420awfss4r2j8ncrvnapdj9gbh68z7qlp1vbq9wiaqraqy7zccw";
+      url = "mirror://steamrt/pool/main/libn/libnotify/libnotify4_0.7.5-1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libnotify4.deb";
+      };
+    }
+    rec {
+      name = "libnspr4_4.12-0ubuntu0.12.04.1+srt2_i386";
+      sha256 = "1kfs3afaqrfhajbp6dlwzcbzvl8xsg2c04c6b5l1bby1l4ynmqv2";
+      url = "mirror://steamrt/pool/main/n/nspr/libnspr4_4.12-0ubuntu0.12.04.1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libnspr4.deb";
+      };
+    }
+    rec {
+      name = "libnss3_3.26.2-0ubuntu0.12.04.1+srt1_i386";
+      sha256 = "00m55f14ih9xyri197hnslw2mnzgl0dxwqvwiba0hnhfl3qvqi99";
+      url = "mirror://steamrt/pool/main/n/nss/libnss3_3.26.2-0ubuntu0.12.04.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libnss3.deb";
+      };
+    }
+    rec {
+      name = "libogg0_1.3.2-1+srt1_i386";
+      sha256 = "09acap6ghv0rf6cavrnqbfphz69sqs1nqacv8flh8sqnxjbrryr1";
+      url = "mirror://steamrt/pool/main/libo/libogg/libogg0_1.3.2-1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libogg0.deb";
+      };
+    }
+    rec {
+      name = "libopenal1_1.16.0-3+srt1_i386";
+      sha256 = "1barqvh4klpdabc1v9kb2q4l8pnmdx97h00hln32zca5z4y5ff9i";
+      url = "mirror://steamrt/pool/main/o/openal-soft/libopenal1_1.16.0-3+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libopenal1.deb";
+      };
+    }
+    rec {
+      name = "libopus0_1.3-0+steamrt1.1+srt2_i386";
+      sha256 = "1s4n86hjka5cxkn4znm5jvic89rqsky05bs8nlbyv3a1z4sqh83c";
+      url = "mirror://steamrt/pool/main/o/opus/libopus0_1.3-0+steamrt1.1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libopus0.deb";
+      };
+    }
+    rec {
+      name = "libopusfile0_0.11-0+steamrt1.2+srt1_i386";
+      sha256 = "19hsl0h0pgx6qc4sizpgj4mcipq2wk6w316mahv05iskkshwb2il";
+      url = "mirror://steamrt/pool/main/o/opusfile/libopusfile0_0.11-0+steamrt1.2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libopusfile0.deb";
+      };
+    }
+    rec {
+      name = "liborc-0.4-0_0.4.16-1ubuntu2+srt5_i386";
+      sha256 = "0n9fkxs3qkd4mwhm4cwlnljww1yalwqjcgia420ls3h7i4p7ss4v";
+      url = "mirror://steamrt/pool/main/o/orc/liborc-0.4-0_0.4.16-1ubuntu2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "liborc-0.4-0.deb";
+      };
+    }
+    rec {
+      name = "libp11-kit0_0.23.2-5~ubuntu16.04.1~steamrt1.1+srt1_i386";
+      sha256 = "0bvp8xslxfag2kpfyhhgsldb7687q11bj365z2m5xmwlk5ihf0bk";
+      url = "mirror://steamrt/pool/main/p/p11-kit/libp11-kit0_0.23.2-5~ubuntu16.04.1~steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libp11-kit0.deb";
+      };
+    }
+    rec {
+      name = "libpango1.0-0_1.30.0-0ubuntu3.1+steamrt1+srt5_i386";
+      sha256 = "0w6m9ycpmlir2wvb7jj0w1p6sh84bjng9i0549bn0afq58f05biw";
+      url = "mirror://steamrt/pool/main/p/pango1.0/libpango1.0-0_1.30.0-0ubuntu3.1+steamrt1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpango1.0-0.deb";
+      };
+    }
+    rec {
+      name = "libpci3_3.1.8-2ubuntu6+srt1_i386";
+      sha256 = "1jdakz038hxpkfh0g10acwlaaiqys7c546srdjhmhl9jxizw9ck8";
+      url = "mirror://steamrt/pool/main/p/pciutils/libpci3_3.1.8-2ubuntu6+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpci3.deb";
+      };
+    }
+    rec {
+      name = "libpcre3_8.12-4+steamrt1.1ubuntu0.2+srt1_i386";
+      sha256 = "12ycdj8pwxlhhqbg89h6smgvnik2pvy6bqyx9szqmpdcjzddagp5";
+      url = "mirror://steamrt/pool/main/p/pcre3/libpcre3_8.12-4+steamrt1.1ubuntu0.2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpcre3.deb";
+      };
+    }
+    rec {
+      name = "libpcrecpp0_8.12-4+steamrt1.1ubuntu0.2+srt1_i386";
+      sha256 = "0ml6bh7banikn75hzy68s2yx6y6924if4zar10lra1akl63by80l";
+      url = "mirror://steamrt/pool/main/p/pcre3/libpcrecpp0_8.12-4+steamrt1.1ubuntu0.2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpcrecpp0.deb";
+      };
+    }
+    rec {
+      name = "libpixman-1-0_0.30.2-1ubuntu0.0.0.0.3+srt2_i386";
+      sha256 = "06ch7dsjmjx2c67f932930rawn1cil6vxfnc0xcx937iwd3sq8i7";
+      url = "mirror://steamrt/pool/main/p/pixman/libpixman-1-0_0.30.2-1ubuntu0.0.0.0.3+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpixman-1-0.deb";
+      };
+    }
+    rec {
+      name = "libpng12-0_1.2.46-3ubuntu4.2+srt2_i386";
+      sha256 = "0vv10bzxqxnfmp1p4wl9c19kravqa7pcpcc6xar5przgwfv75fd8";
+      url = "mirror://steamrt/pool/main/libp/libpng/libpng12-0_1.2.46-3ubuntu4.2+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpng12-0.deb";
+      };
+    }
+    rec {
+      name = "libpulse0_1.1-0ubuntu15.2+steamrt1+srt5_i386";
+      sha256 = "0frhw8cw2ima5j40grmdk0hjf6hg6b029wr3f2g2252wzbhzx6ac";
+      url = "mirror://steamrt/pool/main/p/pulseaudio/libpulse0_1.1-0ubuntu15.2+steamrt1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libpulse0.deb";
+      };
+    }
+    rec {
+      name = "libroken18-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386";
+      sha256 = "1284xglgq9j0dqrgggs6455p0qidq5dxd7axgvi22zhzq3h5adfd";
+      url = "mirror://steamrt/pool/main/h/heimdal/libroken18-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libroken18-heimdal.deb";
+      };
+    }
+    rec {
+      name = "librtmp0_2.4~20110711.gitc28f1bab-1+steamrt1.1+srt3_i386";
+      sha256 = "0c9y8m7ynnchs7mj9nmp7y681mkphqy4p7vca7i5vw2cacd7bbv7";
+      url = "mirror://steamrt/pool/main/r/rtmpdump/librtmp0_2.4~20110711.gitc28f1bab-1+steamrt1.1+srt3_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "librtmp0.deb";
+      };
+    }
+    rec {
+      name = "libsamplerate0_0.1.8-4+srt5_i386";
+      sha256 = "070cz870znj9584a9y9npp7zzkkcb049ar2g6m3v1dzf8ijha38x";
+      url = "mirror://steamrt/pool/main/libs/libsamplerate/libsamplerate0_0.1.8-4+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsamplerate0.deb";
+      };
+    }
+    rec {
+      name = "libsasl2-2_2.1.25.dfsg1-3ubuntu0.1+srt5_i386";
+      sha256 = "10hnrhzfxbg2ka3wlhbvg1qd15k5vdbpfxhdi3ip6yynr00zb9zs";
+      url = "mirror://steamrt/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.25.dfsg1-3ubuntu0.1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsasl2-2.deb";
+      };
+    }
+    rec {
+      name = "libsdl-image1.2_1.2.10-3+srt5_i386";
+      sha256 = "0iam5axnl4is7avn37jc95c3qxb5zacl5kl2zg5mbnm4wgcywr08";
+      url = "mirror://steamrt/pool/main/s/sdl-image1.2/libsdl-image1.2_1.2.10-3+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl-image1.2.deb";
+      };
+    }
+    rec {
+      name = "libsdl-mixer1.2_1.2.11-7+steamrt1+srt5_i386";
+      sha256 = "1zv4iq7743y2g0zmycq1aj48s06lcmv60f0xig5s9zj8kj5nbg36";
+      url = "mirror://steamrt/pool/main/s/sdl-mixer1.2/libsdl-mixer1.2_1.2.11-7+steamrt1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl-mixer1.2.deb";
+      };
+    }
+    rec {
+      name = "libsdl-ttf2.0-0_2.0.9-1.1ubuntu1+srt5_i386";
+      sha256 = "15rbl3zbmg053ach4d25c988m3kj4gjndj5bz1v1spv46798lya8";
+      url = "mirror://steamrt/pool/main/s/sdl-ttf2.0/libsdl-ttf2.0-0_2.0.9-1.1ubuntu1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl-ttf2.0-0.deb";
+      };
+    }
+    rec {
+      name = "libsdl1.2debian_1.2.15-5+steamrt1+srt5_i386";
+      sha256 = "1da6gg64n9x86ldxns4dfnixxa4sc6bci34sgy08fa3r05aqh84a";
+      url = "mirror://steamrt/pool/main/libs/libsdl1.2/libsdl1.2debian_1.2.15-5+steamrt1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl1.2debian.deb";
+      };
+    }
+    rec {
+      name = "libsdl2_2.0.9.~reimport-0+steamrt1.1+srt1_i386";
+      sha256 = "1y5qnxyrsvzqklhdvk6wihmfsxvfd6c93r8fw192zr3f5awvksg3";
+      url = "mirror://steamrt/pool/main/libs/libsdl2/libsdl2_2.0.9.~reimport-0+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl2.deb";
+      };
+    }
+    rec {
+      name = "libsdl2-image_2.0.4.~reimport-0+steamrt1.1+srt1_i386";
+      sha256 = "1l3x865fm2jf1lzj2b5n0w24jykw3vsdqhj6xz5nzp49jksffwps";
+      url = "mirror://steamrt/pool/main/libs/libsdl2-image/libsdl2-image_2.0.4.~reimport-0+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl2-image.deb";
+      };
+    }
+    rec {
+      name = "libsdl2-mixer_2.0.4.~reimport-0+steamrt1.1+srt1_i386";
+      sha256 = "0d97ggcbssd07fdan6jzd8j7cp3v6apgysbwgaz5c6bn6g61kj9k";
+      url = "mirror://steamrt/pool/main/libs/libsdl2-mixer/libsdl2-mixer_2.0.4.~reimport-0+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl2-mixer.deb";
+      };
+    }
+    rec {
+      name = "libsdl2-net_2.0.1+srt2_i386";
+      sha256 = "0fk45d366021s31b8vlry93crm1c30fqiq2r4a4yvp9gkhlkww4a";
+      url = "mirror://steamrt/pool/main/libs/libsdl2-net/libsdl2-net_2.0.1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl2-net.deb";
+      };
+    }
+    rec {
+      name = "libsdl2-ttf_2.0.14+srt2_i386";
+      sha256 = "0v9myv9d04h5rs9x216qjg2lf6pwnngsbyylzc0fs5rlzshwdk9s";
+      url = "mirror://steamrt/pool/main/libs/libsdl2-ttf/libsdl2-ttf_2.0.14+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsdl2-ttf.deb";
+      };
+    }
+    rec {
+      name = "libselinux1_2.1.0-4.1ubuntu1+srt5_i386";
+      sha256 = "0s5x224hx0q6j49pvb3bflzyzzi4ryl60sx6sf7y6wi7kplvibvg";
+      url = "mirror://steamrt/pool/main/libs/libselinux/libselinux1_2.1.0-4.1ubuntu1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libselinux1.deb";
+      };
+    }
+    rec {
+      name = "libsm6_1.2.0-2build1+srt5_i386";
+      sha256 = "07vrs3rarjah3q06yfqqpb38j67s7dv2p30izhjzps7xxj2qfw6d";
+      url = "mirror://steamrt/pool/main/libs/libsm/libsm6_1.2.0-2build1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsm6.deb";
+      };
+    }
+    rec {
+      name = "libsndfile1_1.0.25-4+steamrt1.1ubuntu0.1+srt1_i386";
+      sha256 = "0y4hlf67cdlgcfsw03sjsvm2vch8gsasid58y77rzix43saay229";
+      url = "mirror://steamrt/pool/main/libs/libsndfile/libsndfile1_1.0.25-4+steamrt1.1ubuntu0.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsndfile1.deb";
+      };
+    }
+    rec {
+      name = "libspeex1_1.2~rc1-3ubuntu2+srt5_i386";
+      sha256 = "0d662dxr5dh6dvnz49pii1mqd8k2xk0jaw07sgl7nnd01926xa9p";
+      url = "mirror://steamrt/pool/main/s/speex/libspeex1_1.2~rc1-3ubuntu2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libspeex1.deb";
+      };
+    }
+    rec {
+      name = "libspeexdsp1_1.2~rc1-3ubuntu2+srt5_i386";
+      sha256 = "1924dczm2sxlfn9ibmp7yvn0chd3y201zhw0a6dv65fwngmzk725";
+      url = "mirror://steamrt/pool/main/s/speex/libspeexdsp1_1.2~rc1-3ubuntu2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libspeexdsp1.deb";
+      };
+    }
+    rec {
+      name = "libsqlite3-0_3.7.9-2ubuntu1.2+srt2_i386";
+      sha256 = "05cihfj3ap1xwpnlmvl3wdbqrbbm6ic10zbja98c429xxx7y8bgv";
+      url = "mirror://steamrt/pool/main/s/sqlite3/libsqlite3-0_3.7.9-2ubuntu1.2+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libsqlite3-0.deb";
+      };
+    }
+    rec {
+      name = "libssl1.0.0_1.0.1-4ubuntu5.39+steamrt1.1+srt1_i386";
+      sha256 = "1kwi96xyjf2gz021zg2hkd6ks9l2087r9ghh8iqgwqivbvcizvr7";
+      url = "mirror://steamrt/pool/main/o/openssl/libssl1.0.0_1.0.1-4ubuntu5.39+steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libssl1.0.0.deb";
+      };
+    }
+    rec {
+      name = "libstdc++6_5.4.0-7.really.6+steamrt1.1+srt2_i386";
+      sha256 = "0l60yc1i7p20gaih1mzjk8c62zq9ba4zvmfmrk5w8xr05dpyq9a6";
+      url = "mirror://steamrt/pool/main/g/gcc-5/libstdc++6_5.4.0-7.really.6+steamrt1.1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libstdc++6.deb";
+      };
+    }
+    rec {
+      name = "libstdc++6-4.6-pic_4.6.3-1ubuntu5+steamrt1.2+srt1_i386";
+      sha256 = "1a5hyz5185fhh64hw8kf6mav7jz07l9c9v3m9wwd92xj39sp0vzw";
+      url = "mirror://steamrt/pool/main/g/gcc-4.6/libstdc++6-4.6-pic_4.6.3-1ubuntu5+steamrt1.2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libstdc++6-4.6-pic.deb";
+      };
+    }
+    rec {
+      name = "libswscale2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_i386";
+      sha256 = "1cj7zfhxrb6mvsd8np6q1s1wja2rdd85h2cs9b2pbnlffbr0b9ad";
+      url = "mirror://steamrt/pool/main/liba/libav/libswscale2_0.8.13-0ubuntu0.12.04.1+steamrt1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libswscale2.deb";
+      };
+    }
+    rec {
+      name = "libtasn1-3_2.10-1ubuntu1.5+srt2_i386";
+      sha256 = "12lfinrk76laq7hiddsvi0gskyfgrf7nk2kflqryxwrpf1y34bcl";
+      url = "mirror://steamrt/pool/main/libt/libtasn1-3/libtasn1-3_2.10-1ubuntu1.5+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtasn1-3.deb";
+      };
+    }
+    rec {
+      name = "libtasn1-6_4.7-3ubuntu0.16.04.3~steamrt1.1+srt1_i386";
+      sha256 = "11bdwhyzzy5xa4p0rrirh7wqg3q1iwbw460nh4ya5aafysiw71il";
+      url = "mirror://steamrt/pool/main/libt/libtasn1-6/libtasn1-6_4.7-3ubuntu0.16.04.3~steamrt1.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtasn1-6.deb";
+      };
+    }
+    rec {
+      name = "libtbb2_4.0+r233-1+steamrt2+srt1_i386";
+      sha256 = "0ap5ar8v4ljv138p6kga1vzy96v5ilicxsk8lhp1scvcrcaqfppz";
+      url = "mirror://steamrt/pool/main/t/tbb/libtbb2_4.0+r233-1+steamrt2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtbb2.deb";
+      };
+    }
+    rec {
+      name = "libtdb1_1.2.9-4+srt5_i386";
+      sha256 = "0snf08x6fsjqxs2gzfa7sdxbznq7h347ndawmras84zi0g0bgj6q";
+      url = "mirror://steamrt/pool/main/t/tdb/libtdb1_1.2.9-4+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtdb1.deb";
+      };
+    }
+    rec {
+      name = "libtheora0_1.1.1+dfsg.1-3ubuntu2+srt5_i386";
+      sha256 = "1jjbd6yyyw5v5wnvsdc3s4gywm9q0mq32n2dr444qs030nkfvcrp";
+      url = "mirror://steamrt/pool/main/libt/libtheora/libtheora0_1.1.1+dfsg.1-3ubuntu2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtheora0.deb";
+      };
+    }
+    rec {
+      name = "libtiff4_3.9.5-2ubuntu1.9+srt2_i386";
+      sha256 = "0law24ini5ailgykff6blxqfj6zz0lfx5a2s5fzgf06s4j1n2cjv";
+      url = "mirror://steamrt/pool/main/t/tiff/libtiff4_3.9.5-2ubuntu1.9+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtiff4.deb";
+      };
+    }
+    rec {
+      name = "libtinfo5_5.9-4+srt5_i386";
+      sha256 = "1476jzkd5mcipafc8cfb03z9yzkxvdxnfc0qa34xq5rbjwcximmd";
+      url = "mirror://steamrt/pool/main/n/ncurses/libtinfo5_5.9-4+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libtinfo5.deb";
+      };
+    }
+    rec {
+      name = "libudev0_175-0ubuntu9.10+srt1_i386";
+      sha256 = "089z7vv229w6gnnzwwagixxwn2qcl8gfim1zbagg266vlwqvcyka";
+      url = "mirror://steamrt/pool/main/u/udev/libudev0_175-0ubuntu9.10+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libudev0.deb";
+      };
+    }
+    rec {
+      name = "libusb-1.0-0_1.0.19-1+srt2_i386";
+      sha256 = "1rjnir1gm768xhn4lqb4rdai6wabdfysnlzb47qxxzshpfphycmh";
+      url = "mirror://steamrt/pool/main/libu/libusb-1.0/libusb-1.0-0_1.0.19-1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libusb-1.0-0.deb";
+      };
+    }
+    rec {
+      name = "libuuid1_2.20.1-1ubuntu3.1+steamrt1.2+srt1_i386";
+      sha256 = "1xs58z4431ybrmnks0camc4svqpnd4zd814czchi0cs4h1vfvvb8";
+      url = "mirror://steamrt/pool/main/u/util-linux/libuuid1_2.20.1-1ubuntu3.1+steamrt1.2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libuuid1.deb";
+      };
+    }
+    rec {
+      name = "libva-glx1_1.7.0-1+steamos1+srt1_i386";
+      sha256 = "1q1aasyqlllhj0jhkf7mfcs4n83kj7yddxlsldl77v5x2rhn6ksx";
+      url = "mirror://steamrt/pool/main/libv/libva/libva-glx1_1.7.0-1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libva-glx1.deb";
+      };
+    }
+    rec {
+      name = "libva-x11-1_1.7.0-1+steamos1+srt1_i386";
+      sha256 = "1pk78g722w8j2zl0hij59p4v3j70am167mdd7f58d179j34v7y8p";
+      url = "mirror://steamrt/pool/main/libv/libva/libva-x11-1_1.7.0-1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libva-x11-1.deb";
+      };
+    }
+    rec {
+      name = "libva1_1.7.0-1+steamos1+srt1_i386";
+      sha256 = "17rlsh8sv8qymd17c8k1mlk5gb8fkjlgi2swxiaqnyzw40k52bi5";
+      url = "mirror://steamrt/pool/main/libv/libva/libva1_1.7.0-1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libva1.deb";
+      };
+    }
+    rec {
+      name = "libvdpau1_0.4.1-3ubuntu1.2+srt2_i386";
+      sha256 = "1qa6bssw4rnyjxw79pfpbhhlwzkxcxg2cx5i8lns5sxg072as5sj";
+      url = "mirror://steamrt/pool/main/libv/libvdpau/libvdpau1_0.4.1-3ubuntu1.2+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libvdpau1.deb";
+      };
+    }
+    rec {
+      name = "libvorbis0a_1.3.5-4.2+srt1_i386";
+      sha256 = "1xx0w861k72k7ksjcizm2j54wiqyvf59r82hcsii96gpx5zc2my4";
+      url = "mirror://steamrt/pool/main/libv/libvorbis/libvorbis0a_1.3.5-4.2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libvorbis0a.deb";
+      };
+    }
+    rec {
+      name = "libvorbisenc2_1.3.5-4.2+srt1_i386";
+      sha256 = "02zcqm71dnsxdbgcwcs5ay73y9mp0248pvd2ma8h7rb3waiigky1";
+      url = "mirror://steamrt/pool/main/libv/libvorbis/libvorbisenc2_1.3.5-4.2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libvorbisenc2.deb";
+      };
+    }
+    rec {
+      name = "libvorbisfile3_1.3.5-4.2+srt1_i386";
+      sha256 = "0703pgi72lrm46nmzpcn723x5m88ki0drm546ng37whs99ca9cb4";
+      url = "mirror://steamrt/pool/main/libv/libvorbis/libvorbisfile3_1.3.5-4.2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libvorbisfile3.deb";
+      };
+    }
+    rec {
+      name = "libvpx1_1.0.0-2+srt1_i386";
+      sha256 = "08yngwr92m787ycpsc798kgpyw6ixks55kmqmadjp8zx43pjzaai";
+      url = "mirror://steamrt/pool/main/libv/libvpx/libvpx1_1.0.0-2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libvpx1.deb";
+      };
+    }
+    rec {
+      name = "libvulkan1_1.1.73+dfsg-1+steamosc2+srt1_i386";
+      sha256 = "0g9f3nk2bq8knqqs6qplw39p729zxqnxyyhipnziqy8h38bilj86";
+      url = "mirror://steamrt/pool/main/v/vulkan/libvulkan1_1.1.73+dfsg-1+steamosc2+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libvulkan1.deb";
+      };
+    }
+    rec {
+      name = "libwind0-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386";
+      sha256 = "1xzj4q5wk1pjflqqd85cx1788sd89fjdjgwv4qlwyn76magxi7kh";
+      url = "mirror://steamrt/pool/main/h/heimdal/libwind0-heimdal_1.6~git20120311.dfsg.1-2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libwind0-heimdal.deb";
+      };
+    }
+    rec {
+      name = "libwrap0_7.6.q-21+srt5_i386";
+      sha256 = "1lhp9v9cpi5dgk0wdrivr50b0g3l4fy8cjgnjai25hb65w2hj33n";
+      url = "mirror://steamrt/pool/main/t/tcp-wrappers/libwrap0_7.6.q-21+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libwrap0.deb";
+      };
+    }
+    rec {
+      name = "libx11-6_1.6.3-1ubuntu2.1+srt1_i386";
+      sha256 = "0mvg378ja1znf6qf5228bmijrznhhzw3r7lxizk9iwhz5pm6h2pm";
+      url = "mirror://steamrt/pool/main/libx/libx11/libx11-6_1.6.3-1ubuntu2.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libx11-6.deb";
+      };
+    }
+    rec {
+      name = "libx11-data_1.6.3-1ubuntu2.1+srt1_all";
+      sha256 = "1imsbk4mg6n1083gjjv6kssm5g842xlbg40vsc4dw97myxycpncw";
+      url = "mirror://steamrt/pool/main/libx/libx11/libx11-data_1.6.3-1ubuntu2.1+srt1_all.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libx11-data.deb";
+      };
+    }
+    rec {
+      name = "libx11-xcb1_1.6.3-1ubuntu2.1+srt1_i386";
+      sha256 = "0vpnnsa4ayvin11c9gl5c8bbaplz1z6pm28k0fhfhla5ggq1kd46";
+      url = "mirror://steamrt/pool/main/libx/libx11/libx11-xcb1_1.6.3-1ubuntu2.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libx11-xcb1.deb";
+      };
+    }
+    rec {
+      name = "libxau6_1.0.6-4+srt5_i386";
+      sha256 = "1q5qryha5ng0cjcalz5qxd38djxd5n7kb2fnz9mnp4cy2vk5jhmq";
+      url = "mirror://steamrt/pool/main/libx/libxau/libxau6_1.0.6-4+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxau6.deb";
+      };
+    }
+    rec {
+      name = "libxaw7_1.0.9-3ubuntu1+srt5_i386";
+      sha256 = "17085yj7x9hncbgxw5jsi4inn17f6wzdx2akzv9v3l6hvhy8kmkl";
+      url = "mirror://steamrt/pool/main/libx/libxaw/libxaw7_1.0.9-3ubuntu1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxaw7.deb";
+      };
+    }
+    rec {
+      name = "libxcb-composite0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "00zfy06nf78gs7ji222lcy1cwzsqfbng9119cgkw5c1z25x0q6a5";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-composite0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-composite0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-damage0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "09y48s64kp0maldv9bwwpj8ahrssvrik8xmqzjgvxcxpblb1zfb7";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-damage0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-damage0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-dpms0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "085b0qhf15kaw9msmsk8jxp4rk7fym506jmiaqxh1i6wgr66ys86";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-dpms0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-dpms0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-dri2-0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "1nwdr550axxca7p438c3g9jb4y2zf8gxyd3756vav4jp1n57i1rq";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-dri2-0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-dri2-0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-dri3-0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "1vjklblpkdrki48dn890920nx8gcj25sxqp24qkpxja8samvl6gr";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-dri3-0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-dri3-0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-glx0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "0zwc8c896bka6wi5jri78q1pq5ppsi5dwih9rwfl5c96p6r4lbr6";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-glx0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-glx0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-present0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "0cd4jsyj1r6b7nm8g6342f8dafghzd1dc0k61iw3qncwx949j3gy";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-present0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-present0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-randr0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "1vfrbkq1qqjp0278j70jcldls2g9rmkh9ifb6pnqznagqsrrhwy7";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-randr0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-randr0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-record0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "0gy7l161idc59a6q8vhgq1krknwmd1cyh5ss2vhp7qznxwh9bd7j";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-record0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-record0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-render0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "0gl7389h5ppfd3p30v8vmwl4kxvsqjhmhazszs7mdgalfjwkf9rf";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-render0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-render0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-res0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "1ca5lk12qncrfkjakjb7yl5f5x41b3ynn3d9wk6paqrchhfn7yir";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-res0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-res0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-screensaver0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "0sz49j0z7zl2mx7cf6kw4ljzsbik92az35yj9i0426p1zaqzx0vs";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-screensaver0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-screensaver0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-shape0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "1mycsk8ixdn7c8c4ma4vbrilhcdjxqz92nzv9rwxf96vr0dj4bhd";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-shape0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-shape0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-shm0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "1w0d53d8hgzr5ql9is7x4dap6ny6bfp041qa6hldmg8jbw3x8wc3";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-shm0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-shm0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-sync1_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "1pd0pw5q7h28p0j6h4889dq7fpvkjwclsmg96m6sl7a3459cp6b0";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-sync1_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-sync1.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xevie0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "0nf3s5jff5psab8mv9avkflgwfj2pmbrvc3pyy743b9cwzv7q85p";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xevie0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xevie0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xf86dri0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "149dgslf6hhngjjkhdvrsl3hjx3l2llvnwv6jgnc8hqvz7ck1i1h";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xf86dri0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xf86dri0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xfixes0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "1rjynbvfxxzm5x07xxfq40qhs7b5pwassn1f7j02q3685swqmk0z";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xfixes0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xfixes0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xinerama0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "0m0v4c50104c2khx9vcsf3v3xyl031xv2yladxfp168gchrczyk9";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xinerama0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xinerama0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xkb1_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "0d56vivs4ykanc1v3pbn9mzgcyw4ffx7c59ck1758g2vxfvi837w";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xkb1_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xkb1.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xprint0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "0gclf7sgd661820bqqj3aabykxp0m38y3wd9m25znqgqqg5bk6im";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xprint0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xprint0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xtest0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "0swkpx39gd9n553qrc8dhdv4vvnan1byrkvy935zzimzxv8phxfm";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xtest0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xtest0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xv0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "0mi49k0xfk34x71ap4q9wy4p7cs31z25pg0p41yr859q4y49461r";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xv0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xv0.deb";
+      };
+    }
+    rec {
+      name = "libxcb-xvmc0_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "068y30y9ry4hlfc4dsza47z6lakfz2cy0zkdq5rn3nbs59d7f2nh";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb-xvmc0_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb-xvmc0.deb";
+      };
+    }
+    rec {
+      name = "libxcb1_1.11.1-1ubuntu1+steamos1+srt1_i386";
+      sha256 = "0sga5mjr5bk5w0mdq0y2hxfdhpfpzv9m9anfy2zkaw60gy6n0qk6";
+      url = "mirror://steamrt/pool/main/libx/libxcb/libxcb1_1.11.1-1ubuntu1+steamos1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcb1.deb";
+      };
+    }
+    rec {
+      name = "libxcomposite1_0.4.3-2build1+srt5_i386";
+      sha256 = "1c23iswcyi5axg5hql3kkfmcvxkzjl1db9klrlsqb2c0455pjlsf";
+      url = "mirror://steamrt/pool/main/libx/libxcomposite/libxcomposite1_0.4.3-2build1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcomposite1.deb";
+      };
+    }
+    rec {
+      name = "libxcursor1_1.1.12-1ubuntu0.1+srt5_i386";
+      sha256 = "18321skl4h2s3izzaaw1jk2blfq93ygk4b2f2g4mnkipn1i9rybx";
+      url = "mirror://steamrt/pool/main/libx/libxcursor/libxcursor1_1.1.12-1ubuntu0.1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxcursor1.deb";
+      };
+    }
+    rec {
+      name = "libxdamage1_1.1.3-2build1+srt5_i386";
+      sha256 = "01pam4srj0d3vyrrhlsnfkznpxgil3p674i0armxqfydzh4bww8q";
+      url = "mirror://steamrt/pool/main/libx/libxdamage/libxdamage1_1.1.3-2build1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxdamage1.deb";
+      };
+    }
+    rec {
+      name = "libxdmcp6_1.1.0-4+srt5_i386";
+      sha256 = "0vz6w11yld3ii0b3i68wwzx7qsgd64yj8709h32db08izc1a2wdh";
+      url = "mirror://steamrt/pool/main/libx/libxdmcp/libxdmcp6_1.1.0-4+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxdmcp6.deb";
+      };
+    }
+    rec {
+      name = "libxext6_1.3.0-3ubuntu0.2+steamrt1+srt2_i386";
+      sha256 = "11jjds6qk9wvx446rph5n2qsr9b36jlr99ayw98zr89b3y6y8lyf";
+      url = "mirror://steamrt/pool/main/libx/libxext/libxext6_1.3.0-3ubuntu0.2+steamrt1+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxext6.deb";
+      };
+    }
+    rec {
+      name = "libxfixes3_5.0-4ubuntu4.4+srt2_i386";
+      sha256 = "19rm8s1dq7vysijlksbac04045x5j4g30s377im4ydljjh2vajh6";
+      url = "mirror://steamrt/pool/main/libx/libxfixes/libxfixes3_5.0-4ubuntu4.4+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxfixes3.deb";
+      };
+    }
+    rec {
+      name = "libxft2_2.2.0-3ubuntu2+srt5_i386";
+      sha256 = "0pcd8bvdlh41bixbdkrl0sm6libgns7ndjzyvj86s3qks7k11g97";
+      url = "mirror://steamrt/pool/main/x/xft/libxft2_2.2.0-3ubuntu2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxft2.deb";
+      };
+    }
+    rec {
+      name = "libxi6_1.7.1.901-1ubuntu1~precise3+srt2_i386";
+      sha256 = "0pykpahh9j7cp91mbkqw22drl5npq3pbd712chbrmkdjdqm14x9p";
+      url = "mirror://steamrt/pool/main/libx/libxi/libxi6_1.7.1.901-1ubuntu1~precise3+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxi6.deb";
+      };
+    }
+    rec {
+      name = "libxinerama1_1.1.1-3ubuntu0.1+srt5_i386";
+      sha256 = "0xd0rfr6h25s3h6n8in5kby4fm88s1ykw2y8clymk79znmgby0av";
+      url = "mirror://steamrt/pool/main/libx/libxinerama/libxinerama1_1.1.1-3ubuntu0.1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxinerama1.deb";
+      };
+    }
+    rec {
+      name = "libxml2_2.7.8.dfsg-5.1ubuntu4.17+srt1_i386";
+      sha256 = "1ss7fpdqdgm8hmcgm1d59x5mfr4n7zps8bjg1304nn29a3cck26z";
+      url = "mirror://steamrt/pool/main/libx/libxml2/libxml2_2.7.8.dfsg-5.1ubuntu4.17+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxml2.deb";
+      };
+    }
+    rec {
+      name = "libxmu6_1.1.0-3+srt5_i386";
+      sha256 = "0z39zacqis2cq1gdwam1wk5xmisdhsrly7r1a8g5h8h6hbrri72w";
+      url = "mirror://steamrt/pool/main/libx/libxmu/libxmu6_1.1.0-3+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxmu6.deb";
+      };
+    }
+    rec {
+      name = "libxpm4_3.5.9-4+steamrt1.1ubuntu0.1+srt1_i386";
+      sha256 = "02k70n6v245l0kqf7gjjv4bm12zmxcw8cayjv9xh8cp6svsxdzsq";
+      url = "mirror://steamrt/pool/main/libx/libxpm/libxpm4_3.5.9-4+steamrt1.1ubuntu0.1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxpm4.deb";
+      };
+    }
+    rec {
+      name = "libxrandr2_1.5.0-1+srt1_i386";
+      sha256 = "10nqrxs2dxs06wah8dy48v7v8vdllpg9wwhcn67i7dkgfli27ykj";
+      url = "mirror://steamrt/pool/main/libx/libxrandr/libxrandr2_1.5.0-1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxrandr2.deb";
+      };
+    }
+    rec {
+      name = "libxrender1_0.9.6-2ubuntu0.2+srt2_i386";
+      sha256 = "0i48bi4zfv90dgc190mr8wd8hymbhdldrk1q2qag0l9fmn5hkwqv";
+      url = "mirror://steamrt/pool/main/libx/libxrender/libxrender1_0.9.6-2ubuntu0.2+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxrender1.deb";
+      };
+    }
+    rec {
+      name = "libxss1_1.2.1-2+srt5_i386";
+      sha256 = "015n1l1hl4vvgb53zx6gisl44p2pjj339adabqlfy1fqwjf0ff4z";
+      url = "mirror://steamrt/pool/main/libx/libxss/libxss1_1.2.1-2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxss1.deb";
+      };
+    }
+    rec {
+      name = "libxt6_1.1.1-2ubuntu0.1+srt5_i386";
+      sha256 = "0yqb6j6rh9y65bfbqv1hrggl1719lsm6yzydbmpnilz15p3f4sa9";
+      url = "mirror://steamrt/pool/main/libx/libxt/libxt6_1.1.1-2ubuntu0.1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxt6.deb";
+      };
+    }
+    rec {
+      name = "libxtst6_1.2.0-4ubuntu0.1+srt5_i386";
+      sha256 = "1h21nyc2bigm3brpzmdaafvry4wszmykbs13vagmibwhb6rls7xd";
+      url = "mirror://steamrt/pool/main/libx/libxtst/libxtst6_1.2.0-4ubuntu0.1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxtst6.deb";
+      };
+    }
+    rec {
+      name = "libxxf86vm1_1.1.1-2ubuntu0.1+srt5_i386";
+      sha256 = "133xi181g1pcd08px9yz7wqz93axy0cq9x5y76qp34dj7i9pscsg";
+      url = "mirror://steamrt/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.1-2ubuntu0.1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libxxf86vm1.deb";
+      };
+    }
+    rec {
+      name = "nvidia-cg-toolkit_3.0.0016-0ubuntu1+srt5_i386";
+      sha256 = "0nvhk0xyi1cc12j2j97x763irk2d9l8n0p3fjyg7s3jgm4va3yjj";
+      url = "mirror://steamrt/pool/main/n/nvidia-cg-toolkit/nvidia-cg-toolkit_3.0.0016-0ubuntu1+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "nvidia-cg-toolkit.deb";
+      };
+    }
+    rec {
+      name = "zenity_3.4.0-0ubuntu4+steamrt2+srt5_i386";
+      sha256 = "04j0mbdcv8891apw3lak161fbvpyl8qykvqvn6ljl3mimf3qabcd";
+      url = "mirror://steamrt/pool/main/z/zenity/zenity_3.4.0-0ubuntu4+steamrt2+srt5_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "zenity.deb";
+      };
+    }
+    rec {
+      name = "zlib1g_1.2.3.4.dfsg-3ubuntu4+srt6_i386";
+      sha256 = "1qbqclnhhwfxj5ajsb05c3pg5iq5imf4pl6yisx5hw5jndgmzch7";
+      url = "mirror://steamrt/pool/main/z/zlib/zlib1g_1.2.3.4.dfsg-3ubuntu4+srt6_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "zlib1g.deb";
+      };
+    }
+  ];
+}
diff --git a/nixpkgs/pkgs/games/steam/runtime-mirror.nix b/nixpkgs/pkgs/games/steam/runtime-mirror.nix
new file mode 100644
index 000000000000..49986a346e8e
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/runtime-mirror.nix
@@ -0,0 +1,20 @@
+{ pkgs ? import <nixpkgs> {} }:
+
+let
+  inherit (pkgs) lib;
+  rt = import ./runtime-generated.nix { inherit (pkgs) fetchurl; };
+  convRt = x: {
+    path = lib.removePrefix "mirror://steamrt/" x.url;
+    file = x.source;
+  };
+  files = builtins.map convRt (lib.concatLists (lib.attrValues rt));
+  
+in pkgs.stdenv.mkDerivation {
+  name = "steam-runtime-mirror";
+  buildCommand = ''
+    mkdir $out
+  '' + lib.concatMapStringsSep "\n" (x: ''
+    mkdir -p $(dirname $out/${x.path})
+    ln -sf ${x.file} $out/${x.path}
+  '') files;
+}
diff --git a/nixpkgs/pkgs/games/steam/runtime-wrapped.nix b/nixpkgs/pkgs/games/steam/runtime-wrapped.nix
new file mode 100644
index 000000000000..a851b5b8d978
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/runtime-wrapped.nix
@@ -0,0 +1,45 @@
+{ stdenv, steamArch, lib, perl, pkgs, steam-runtime
+, runtimeOnly ? false
+}:
+
+let
+  overridePkgs = lib.optionals (!runtimeOnly) (with pkgs; [
+    libgpgerror
+    libpulseaudio
+    alsaLib
+    openalSoft
+    libva1
+    libvdpau
+    vulkan-loader
+    gcc.cc.lib
+    nss
+    nspr
+    xorg.libxcb
+  ]);
+
+  allPkgs = overridePkgs ++ [ steam-runtime ];
+
+  gnuArch = if steamArch == "amd64" then "x86_64-linux-gnu"
+            else if steamArch == "i386" then "i386-linux-gnu"
+            else abort "Unsupported architecture";
+
+  libs = [ "lib/${gnuArch}" "lib" "usr/lib/${gnuArch}" "usr/lib" ];
+  bins = [ "bin" "usr/bin" ];
+
+in stdenv.mkDerivation rec {
+  name = "steam-runtime-wrapped";
+
+  nativeBuildInputs = [ perl ];
+
+  builder = ./build-wrapped.sh;
+
+  passthru = {
+    inherit gnuArch libs bins overridePkgs;
+    arch = steamArch;
+  };
+
+  installPhase = ''
+    buildDir "${toString libs}" "${toString (map lib.getLib allPkgs)}"
+    buildDir "${toString bins}" "${toString (map lib.getBin allPkgs)}"
+  '';
+}
diff --git a/nixpkgs/pkgs/games/steam/runtime.nix b/nixpkgs/pkgs/games/steam/runtime.nix
new file mode 100644
index 000000000000..1fa17c32d6c7
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/runtime.nix
@@ -0,0 +1,23 @@
+{ stdenv, steamArch, fetchurl, writeText, python2, dpkg }:
+
+let input = builtins.getAttr steamArch (import ./runtime-generated.nix { inherit fetchurl; });
+
+    inputFile = writeText "steam-runtime.json" (builtins.toJSON input);
+
+in stdenv.mkDerivation {
+  name = "steam-runtime-2016-08-13";
+
+  nativeBuildInputs = [ python2 dpkg stdenv.cc.bintools ];
+
+  buildCommand = ''
+    mkdir -p $out
+    python2 ${./build-runtime.py} -i ${inputFile} -r $out
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The official runtime used by Steam";
+    homepage = https://github.com/ValveSoftware/steam-runtime;
+    license = licenses.unfreeRedistributable; # Includes NVIDIA CG toolkit
+    maintainers = with maintainers; [ hrdinka abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/steam/steam.nix b/nixpkgs/pkgs/games/steam/steam.nix
new file mode 100644
index 000000000000..3e29ceb5b01f
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/steam.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl, runtimeShell, traceDeps ? false}:
+
+let
+  traceLog = "/tmp/steam-trace-dependencies.log";
+  version = "1.0.0.59";
+
+in stdenv.mkDerivation rec {
+  name = "steam-original-${version}";
+
+  src = fetchurl {
+    url = "http://repo.steampowered.com/steam/pool/steam/s/steam/steam_${version}.tar.gz";
+    sha256 = "17yrziy2bmzcppp5v3ycdjll250k4idak4rjakmw8gvr96whs255";
+  };
+
+  makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
+
+  postInstall = ''
+    rm $out/bin/steamdeps
+    ${stdenv.lib.optionalString traceDeps ''
+      cat > $out/bin/steamdeps <<EOF
+      #!${runtimeShell}
+      echo \$1 >> ${traceLog}
+      cat \$1 >> ${traceLog}
+      echo >> ${traceLog}
+      EOF
+      chmod +x $out/bin/steamdeps
+    ''}
+    install -d $out/lib/udev/rules.d
+    install -m644 lib/udev/rules.d/*.rules $out/lib/udev/rules.d
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A digital distribution platform";
+    homepage = http://store.steampowered.com/;
+    license = licenses.unfreeRedistributable;
+    maintainers = with maintainers; [ jagajaga ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/steam/steamcmd.nix b/nixpkgs/pkgs/games/steam/steamcmd.nix
new file mode 100644
index 000000000000..6a2c7fe01b4f
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/steamcmd.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, steam-run, bash
+, steamRoot ? "~/.local/share/Steam"
+}:
+
+stdenv.mkDerivation rec {
+  name = "steamcmd-${version}";
+  version = "20180104"; # According to steamcmd_linux.tar.gz mtime
+
+  src = fetchurl {
+    url = https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz;
+    sha256 = "0z0y0zqvhydmfc9y9vg5am0vz7m3gbj4l2dwlrfz936hpx301gyf";
+  };
+
+  # The source tarball does not have a single top-level directory.
+  preUnpack = ''
+    mkdir $name
+    cd $name
+    sourceRoot=.
+  '';
+
+  buildInputs = [ bash steam-run ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/share/steamcmd/linux32
+    install -Dm755 steamcmd.sh $out/share/steamcmd/steamcmd.sh
+    install -Dm755 linux32/* $out/share/steamcmd/linux32
+
+    mkdir -p $out/bin
+    substitute ${./steamcmd.sh} $out/bin/steamcmd \
+      --subst-var shell \
+      --subst-var out \
+      --subst-var-by steamRoot "${steamRoot}" \
+      --subst-var-by steamRun ${steam-run}
+    chmod 0755 $out/bin/steamcmd
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Steam command-line tools";
+    homepage = "https://developer.valvesoftware.com/wiki/SteamCMD";
+    platforms = platforms.linux;
+    license = licenses.unfreeRedistributable;
+    maintainers = with maintainers; [ tadfisher ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/steam/steamcmd.sh b/nixpkgs/pkgs/games/steam/steamcmd.sh
new file mode 100644
index 000000000000..e092a4fedbe9
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/steamcmd.sh
@@ -0,0 +1,24 @@
+#!@bash@/bin/bash -e
+
+# Always run steamcmd in the user's Steam root.
+STEAMROOT=@steamRoot@
+
+# Create a facsimile Steam root if it doesn't exist.
+if [ ! -e "$STEAMROOT" ]; then
+  mkdir -p "$STEAMROOT"/{appcache,config,logs,Steamapps/common}
+  mkdir -p ~/.steam
+  ln -sf "$STEAMROOT" ~/.steam/root
+  ln -sf "$STEAMROOT" ~/.steam/steam
+fi
+
+# Copy the system steamcmd install to the Steam root. If we don't do
+# this, steamcmd assumes the path to `steamcmd` is the Steam root.
+# Note that symlinks don't work here.
+if [ ! -e "$STEAMROOT/steamcmd.sh" ]; then
+  mkdir -p "$STEAMROOT/linux32"
+  # steamcmd.sh will replace these on first use
+  cp @out@/share/steamcmd/steamcmd.sh "$STEAMROOT/."
+  cp @out@/share/steamcmd/linux32/* "$STEAMROOT/linux32/."
+fi
+
+@steamRun@/bin/steam-run "$STEAMROOT/steamcmd.sh" "$@"
diff --git a/nixpkgs/pkgs/games/steam/update-runtime-shell.nix b/nixpkgs/pkgs/games/steam/update-runtime-shell.nix
new file mode 100644
index 000000000000..bb9362b9bf05
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/update-runtime-shell.nix
@@ -0,0 +1,13 @@
+with import <nixpkgs> {};
+
+(python2.buildEnv.override {
+  extraLibs = with python2Packages;
+    [ debian
+    ];
+  postBuild = ''
+    mkdir -p $out/bin
+    for i in ${nixUnstable}/bin/*; do
+      ln -s $i $out/bin/$(basename $i)
+    done
+  '';
+}).env
diff --git a/nixpkgs/pkgs/games/steam/update-runtime.py b/nixpkgs/pkgs/games/steam/update-runtime.py
new file mode 100755
index 000000000000..aed42cdd5668
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam/update-runtime.py
@@ -0,0 +1,139 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i python2 -p "with python2Packages; [python debian]"
+
+# Script to build a Nix script to actually build a Steam runtime.
+# Patched version of https://github.com/ValveSoftware/steam-runtime/blob/master/build-runtime.py
+
+import os
+import re
+import sys
+import urllib
+import gzip
+import cStringIO
+import subprocess
+from debian import deb822
+import argparse
+
+destdir="newpkg"
+arches=["amd64", "i386"]
+
+REPO="http://repo.steampowered.com/steamrt"
+DIST="scout"
+COMPONENT="main"
+
+out = open("runtime-generated.nix", "w")
+out.write("# This file is autogenerated! Do not edit it yourself, use update-runtime.py for regeneration.\n")
+out.write("{ fetchurl }:\n")
+out.write("\n")
+out.write("{\n")
+
+def parse_args():
+	parser = argparse.ArgumentParser()
+	parser.add_argument("-b", "--beta", help="build beta runtime", action="store_true")
+	parser.add_argument("-d", "--debug", help="build debug runtime", action="store_true")
+	parser.add_argument("--symbols", help="include debugging symbols", action="store_true")
+	parser.add_argument("--repo", help="source repository", default=REPO)
+	return parser.parse_args()
+
+def download_file(file_base, file_name, file_url):
+	file_shortname = file_base + ".deb"
+	sha256 = subprocess.check_output(["nix-prefetch-url", "--type", "sha256", "--name", file_shortname, file_url])
+	out.write("    rec {\n")
+	out.write("      name = \"%s\";\n" % file_name)
+	out.write("      sha256 = \"%s\";\n" % sha256.strip())
+	out.write("      url = \"%s\";\n" % file_url.replace(REPO, "mirror://steamrt", 1))
+	out.write("      source = fetchurl {\n")
+	out.write("        inherit url sha256;\n")
+	out.write("        name = \"%s\";\n" % file_shortname)
+	out.write("      };\n")
+	out.write("    }\n")
+
+
+def install_binaries (arch, binarylist):
+	installset = binarylist.copy()
+
+	#
+	# Load the Packages file so we can find the location of each binary package
+	#
+	packages_url = "%s/dists/%s/%s/binary-%s/Packages" % (REPO, DIST, COMPONENT, arch)
+	print("Downloading %s binaries from %s" % (arch, packages_url))
+	for stanza in deb822.Packages.iter_paragraphs(urllib.urlopen(packages_url)):
+		p = stanza['Package']
+		if p in installset:
+			print("DOWNLOADING BINARY: %s" % p)
+
+			#
+			# Download the package and install it
+			#
+			file_url="%s/%s" % (REPO,stanza['Filename'])
+			download_file(p, os.path.splitext(os.path.basename(stanza['Filename']))[0], file_url)
+			installset.remove(p)
+
+	for p in installset:
+		#
+		# There was a binary package in the list to be installed that is not in the repo
+		#
+		e = "ERROR: Package %s not found in Packages file %s\n" % (p, packages_url)
+		sys.stderr.write(e)
+
+
+
+def install_symbols (arch, binarylist):
+	#
+	# Load the Packages file to find the location of each symbol package
+	#
+	packages_url = "%s/dists/%s/%s/debug/binary-%s/Packages" % (REPO, DIST, COMPONENT, arch)
+	print("Downloading %s symbols from %s" % (arch, packages_url))
+	for stanza in deb822.Packages.iter_paragraphs(urllib.urlopen(packages_url)):
+		p = stanza['Package']
+		m = re.match('([\w\-\.]+)\-dbgsym', p)
+		if m and m.group(1) in binarylist:
+			print("DOWNLOADING SYMBOLS: %s" % p)
+			#
+			# Download the package and install it
+			#
+			file_url="%s/%s" % (REPO,stanza['Filename'])
+			download_file(p, os.path.splitext(os.path.basename(stanza['Filename']))[0], file_url)
+
+
+
+args = parse_args()
+
+REPO=args.repo
+
+if args.beta:
+	DIST="steam_beta"
+
+if args.debug:
+	COMPONENT = "debug"
+
+# Process packages.txt to get the list of source and binary packages
+source_pkgs = set()
+binary_pkgs = set()
+
+print ("Creating runtime-generated.nix")
+
+pkgs_list = urllib.urlopen("https://raw.githubusercontent.com/ValveSoftware/steam-runtime/master/packages.txt").readlines()
+for line in pkgs_list:
+	if line[0] != '#':
+		toks = line.split()
+		if len(toks) > 1:
+			source_pkgs.add(toks[0])
+			binary_pkgs.update(toks[1:])
+
+# remove development packages for end-user runtime
+if not args.debug:
+	binary_pkgs -= {x for x in binary_pkgs if re.search('-dbg$|-dev$|-multidev$',x)}
+
+for arch in arches:
+	out.write("  %s = [\n" % arch)
+	install_binaries(arch, binary_pkgs)
+
+	if args.symbols:
+		install_symbols(arch, binary_pkgs)
+
+	out.write("  ];\n");
+
+out.write("}\n")
+
+# vi: set noexpandtab:
diff --git a/nixpkgs/pkgs/games/stepmania/default.nix b/nixpkgs/pkgs/games/stepmania/default.nix
new file mode 100644
index 000000000000..864888741660
--- /dev/null
+++ b/nixpkgs/pkgs/games/stepmania/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, lib, fetchFromGitHub, cmake, nasm
+, gtk2, glib, ffmpeg, alsaLib, libmad, libogg, libvorbis
+, glew, libpulseaudio, udev
+}:
+
+stdenv.mkDerivation rec {
+  name = "stepmania-${version}";
+  version = "5.1.0-b2";
+
+  src = fetchFromGitHub {
+    owner = "stepmania";
+    repo  = "stepmania";
+    rev   = "v${version}";
+    sha256 = "0a7y9l7xm510vgnpmj1is7p9m6d6yd0fcaxrjcickz295k5w3rdn";
+  };
+
+  nativeBuildInputs = [ cmake nasm ];
+
+  buildInputs = [
+    gtk2 glib ffmpeg alsaLib libmad libogg libvorbis
+    glew libpulseaudio udev
+  ];
+
+  cmakeFlags = [
+    "-DWITH_SYSTEM_FFMPEG=1"
+    "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
+    "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
+  ];
+
+  postInstall = ''
+    mkdir -p $out/bin
+    ln -s $out/stepmania-5.1/stepmania $out/bin/stepmania
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = http://www.stepmania.com/;
+    description = "Free dance and rhythm game for Windows, Mac, and Linux";
+    platforms = platforms.linux;
+    license = licenses.mit; # expat version
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/stockfish/default.nix b/nixpkgs/pkgs/games/stockfish/default.nix
new file mode 100644
index 000000000000..13033c7f9f0a
--- /dev/null
+++ b/nixpkgs/pkgs/games/stockfish/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl }:
+
+let arch = if stdenv.isx86_64 then "x86-64" else
+           if stdenv.isi686 then "x86-32" else
+           "unknown";
+
+    version = "10";
+in
+
+stdenv.mkDerivation {
+
+  name = "stockfish-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/official-stockfish/Stockfish/archive/sf_${version}.tar.gz";
+    sha256 = "1lrxqq8fw1wrw5b45r4s3ddd51yr85a2k8a9i1wjvyd6v9vm7761";
+  };
+
+  postUnpack = "sourceRoot+=/src";
+  makeFlags = [ "PREFIX=$(out)" "ARCH=${arch}" ];
+  buildFlags = "build ";
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://stockfishchess.org/;
+    description = "Strong open source chess engine";
+    longDescription = ''
+      Stockfish is one of the strongest chess engines in the world. It is also
+      much stronger than the best human chess grandmasters.
+      '';
+    maintainers = with maintainers; [ luispedro peti ];
+    platforms = ["x86_64-linux" "i686-linux"];
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/stuntrally/default.nix b/nixpkgs/pkgs/games/stuntrally/default.nix
new file mode 100644
index 000000000000..c147bfb77ad7
--- /dev/null
+++ b/nixpkgs/pkgs/games/stuntrally/default.nix
@@ -0,0 +1,47 @@
+{ fetchurl, stdenv, cmake, boost, ogre, mygui, ois, SDL2, libvorbis, pkgconfig
+, makeWrapper, enet, libXcursor, bullet, openal }:
+
+stdenv.mkDerivation rec {
+  name = "stunt-rally-${version}";
+  version = "2.6";
+
+  src = fetchurl {
+    url = "https://github.com/stuntrally/stuntrally/archive/${version}.tar.gz";
+    sha256 = "1jmsxd2isq9q5paz43c3xw11vr5md1ym8h34b768vxr6gp90khwc";
+  };
+
+  tracks = fetchurl {
+    url = "https://github.com/stuntrally/tracks/archive/${version}.tar.gz";
+    sha256 = "0yv88l9s03kp1xkkwnigh0jj593vi3r7vgyg0jn7i8d22q2p1kjb";
+  };
+
+  # include/OGRE/OgreException.h:265:126: error: invalid conversion from
+  # 'int' to 'Ogre::Exception::ExceptionCodes' [-fpermissive]
+  NIX_CFLAGS_COMPILE="-fpermissive";
+
+  preConfigure = ''
+    pushd data
+    tar xf ${tracks}
+    mv tracks-2.6 tracks
+    popd
+  '';
+
+  patches = [
+    ./gcc6.patch
+  ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake boost ogre mygui ois SDL2 libvorbis 
+    makeWrapper enet libXcursor bullet openal
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Stunt Rally game with Track Editor, based on VDrift and OGRE";
+    homepage = http://stuntrally.tuxfamily.org/;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ pSub ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/stuntrally/gcc6.patch b/nixpkgs/pkgs/games/stuntrally/gcc6.patch
new file mode 100644
index 000000000000..6632ea4e8856
--- /dev/null
+++ b/nixpkgs/pkgs/games/stuntrally/gcc6.patch
@@ -0,0 +1,67 @@
+diff --git i/source/ogre/CarModel_Create.cpp w/source/ogre/CarModel_Create.cpp
+index 834eac7..47ec647 100644
+--- i/source/ogre/CarModel_Create.cpp
++++ w/source/ogre/CarModel_Create.cpp
+@@ -130,7 +130,8 @@ void CarModel::Load(int startId)
+ 
+ 	///  load config .car
+ 	string pathCar;
+-	pApp->gui->GetCarPath(&pathCar, 0, 0, sDirname, pApp->mClient);  // force orig for newtorked games
++  string empty;
++	pApp->gui->GetCarPath(&pathCar, &empty, &empty, sDirname, bool(pApp->mClient));  // force orig for newtorked games
+ 	LoadConfig(pathCar);
+ 	
+ 	
+diff --git i/source/ogre/Gui_Tweak.cpp w/source/ogre/Gui_Tweak.cpp
+index 76ed8e9..9444271 100644
+--- i/source/ogre/Gui_Tweak.cpp
++++ w/source/ogre/Gui_Tweak.cpp
+@@ -412,8 +412,8 @@ bool CGui::GetCarPath(std::string* pathCar,
+ 		pathUserD = PATHMANAGER::CarSimU() + "/" + pSet->game.sim_mode + "/cars/",
+ 		pathUser  = pathUserD + file;
+ 
+-	if (pathSave)  *pathSave = pathUser;
+-	if (pathSaveDir)  *pathSaveDir = pathUserD;
++	if (pathSave != "")  *pathSave = pathUser;
++	if (pathSaveDir != "")  *pathSaveDir = pathUserD;
+ 	
+ 	if (!forceOrig && PATHMANAGER::FileExists(pathUser))
+ 	{
+diff --git i/source/vdrift/cartire.cpp w/source/vdrift/cartire.cpp
+index dd6dd48..083fa0c 100644
+--- i/source/vdrift/cartire.cpp
++++ w/source/vdrift/cartire.cpp
+@@ -3,6 +3,7 @@
+ #include "cardefs.h"
+ //#include "../ogre/common/Def_Str.h"
+ 
++using namespace std;
+ 
+ void CARTIRE::FindSigmaHatAlphaHat(Dbl load, Dbl & output_sigmahat, Dbl & output_alphahat, int iterations)
+ {
+diff --git i/source/vdrift/model_obj.cpp w/source/vdrift/model_obj.cpp
+index 338d122..e67c1db 100644
+--- i/source/vdrift/model_obj.cpp
++++ w/source/vdrift/model_obj.cpp
+@@ -205,7 +205,7 @@ bool MODEL_OBJ::Save(const std::string & strFileName, std::ostream & error_outpu
+ 	std::ofstream f(strFileName.c_str());
+ 	if (!f)
+ 	{
+-		error_output << "Error opening file for writing: " << error_output << endl;
++		error_output << "Error opening file for writing: " << endl;
+ 		return false;
+ 	}
+ 	
+diff --git i/source/vdrift/texture.h w/source/vdrift/texture.h
+index b21846a..c115fd6 100644
+--- i/source/vdrift/texture.h
++++ w/source/vdrift/texture.h
+@@ -125,7 +125,7 @@ class TEXTURELIBRARY
+ 		bool FileExists(const std::string & filename)
+ 		{
+ 			std::ifstream f(filename.c_str());
+-			return f;
++			return bool(f);
+ 		}
+ 
+ 	public:
diff --git a/nixpkgs/pkgs/games/super-tux-kart/default.nix b/nixpkgs/pkgs/games/super-tux-kart/default.nix
new file mode 100644
index 000000000000..a81d7f33d43f
--- /dev/null
+++ b/nixpkgs/pkgs/games/super-tux-kart/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchFromGitHub, fetchsvn, fetchpatch, cmake, pkgconfig
+, openal, freealut, libGLU_combined, libvorbis, libogg, gettext, curl, freetype
+, fribidi, libtool, bluez, libjpeg, libpng, zlib, libX11, libXrandr }:
+
+let
+  dir = "stk-code";
+
+in stdenv.mkDerivation rec {
+  name = "supertuxkart-${version}";
+
+  version = "0.9.3";
+
+  srcs = [
+    (fetchFromGitHub {
+      owner  = "supertuxkart";
+      repo   = "stk-code";
+      rev    = version;
+      sha256 = "1smnanjjaj4yq2ywikv0l6xysh6n2h1cm549plbg5xdk9mx2sfia";
+      name   = dir;
+    })
+    (fetchsvn {
+      url    = "https://svn.code.sf.net/p/supertuxkart/code/stk-assets";
+      rev    = "17448";
+      sha256 = "0lxbb4k57gv4gj12l5hnvhwdycpzcxjwg7qdfwglj2bdvaxf9f21";
+      name   = "stk-assets";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake gettext libtool pkgconfig ];
+
+  buildInputs = [
+    libX11 libXrandr
+    openal freealut libGLU_combined libvorbis libogg zlib freetype
+    curl fribidi bluez libjpeg libpng
+  ];
+
+  # https://github.com/supertuxkart/stk-code/issues/3557#issuecomment-440794379
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/supertuxkart/stk-code/commit/3a3953f38c3555e87f3608d0291dbfccf34e9775.patch";
+      sha256 = "13mr5pwf45g7frpxzlxiyiq39qi3z9spd7l6gi8i3dr3li9wrb1k";
+    })
+  ];
+
+  enableParallelBuilding = true;
+
+  cmakeFlags = [
+    "-DBUILD_RECORDER=OFF"         # libopenglrecorder is not in nixpkgs
+    "-DUSE_SYSTEM_ANGELSCRIPT=OFF" # doesn't work with 2.31.2 or 2.32.0
+  ];
+
+  sourceRoot = dir;
+
+  meta = with stdenv.lib; {
+    description = "A Free 3D kart racing game";
+    longDescription = ''
+      SuperTuxKart is a Free 3D kart racing game, with many tracks,
+      characters and items for you to try, similar in spirit to Mario
+      Kart.
+    '';
+    homepage = https://supertuxkart.net/;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ c0dehero fuuzetsu peterhoeg ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/supertux/default.nix b/nixpkgs/pkgs/games/supertux/default.nix
new file mode 100644
index 000000000000..cee65bfa5638
--- /dev/null
+++ b/nixpkgs/pkgs/games/supertux/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, cmake, pkgconfig, SDL2, SDL2_image , curl
+, libogg, libvorbis, libGLU_combined, openal, boost, glew
+, libpng, freetype
+}:
+
+stdenv.mkDerivation rec {
+  name = "supertux-${version}";
+  version = "0.6.0";
+
+  src = fetchurl {
+    url = "https://github.com/SuperTux/supertux/releases/download/v${version}/SuperTux-v${version}-Source.tar.gz";
+    sha256 = "1h1s4abirkdv4ag22zvyk6zkk64skqbjmcnnba67ps4hdzxfbhy4";
+  };
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+
+  buildInputs = [ SDL2 SDL2_image curl libogg libvorbis libGLU_combined openal boost glew
+    libpng freetype
+  ];
+
+  cmakeFlags = [ "-DENABLE_BOOST_STATIC_LIBS=OFF" ];
+
+  postInstall = ''
+    mkdir $out/bin
+    ln -s $out/games/supertux2 $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Classic 2D jump'n run sidescroller game";
+    homepage = http://supertux.github.io/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pSub ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/t4kcommon/default.nix b/nixpkgs/pkgs/games/t4kcommon/default.nix
new file mode 100644
index 000000000000..f576403b70b2
--- /dev/null
+++ b/nixpkgs/pkgs/games/t4kcommon/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, fetchurl, cmake, pkgconfig, SDL, SDL_image, SDL_mixer, SDL_net, SDL_ttf, libpng, librsvg, libxml2 }:
+
+stdenv.mkDerivation rec {
+  version = "0.1.1";
+  pname = "t4kcommon";
+
+  src = fetchFromGitHub {
+    owner = "tux4kids";
+    repo = "t4kcommon";
+    rev = "upstream/${version}";
+    sha256 = "13q02xpmps9qg8zrzzy2gzv4a6afgi28lxk4z242j780v0gphchp";
+  };
+
+  patches = [
+    # patch from debian to support libpng16 instead of libpng12
+    (fetchurl {
+      url = "https://salsa.debian.org/tux4kids-pkg-team/t4kcommon/raw/f7073fa384f5a725139f54844e59b57338b69dc7/debian/patches/libpng16.patch";
+      sha256 = "1lcpkdy5gvxgljg1vkrxych74amq0gramb1snj2831dam48is054";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ SDL SDL_image SDL_mixer SDL_net SDL_ttf libpng librsvg libxml2 ];
+
+  meta = with stdenv.lib; {
+    description = "A library of code shared between tuxmath and tuxtype.";
+    homepage = https://github.com/tux4kids/t4kcommon;
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.aanderse ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/tcl2048/default.nix b/nixpkgs/pkgs/games/tcl2048/default.nix
new file mode 100644
index 000000000000..57e7217fcdbd
--- /dev/null
+++ b/nixpkgs/pkgs/games/tcl2048/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, tcl, tcllib, runtimeShell }:
+
+stdenv.mkDerivation {
+  name = "tcl2048-0.4.0";
+
+  src = fetchurl {
+    url = https://raw.githubusercontent.com/dbohdan/2048.tcl/v0.4.0/2048.tcl;
+    sha256 = "53f5503efd7f029b2614b0f9b1e3aac6c0342735a3c9b811d74a5135fee3e89e";
+  };
+
+  phases = "installPhase";
+
+  installPhase = ''
+    mkdir -pv $out/bin
+    cp $src $out/2048.tcl
+    cat > $out/bin/2048 << EOF
+    #!${runtimeShell}
+
+    # wrapper for tcl2048
+    export TCLLIBPATH="${tcllib}/lib/tcllib${tcllib.version}"
+    ${tcl}/bin/tclsh $out/2048.tcl
+    EOF
+
+    chmod +x $out/bin/2048
+  '';
+
+  meta = {
+    homepage = https://github.com/dbohdan/2048.tcl;
+    description = "The game of 2048 implemented in Tcl";
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ dbohdan ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/teetertorture/default.nix b/nixpkgs/pkgs/games/teetertorture/default.nix
new file mode 100644
index 000000000000..7933ef2f0695
--- /dev/null
+++ b/nixpkgs/pkgs/games/teetertorture/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, SDL, SDL_image, SDL_mixer}:
+
+stdenv.mkDerivation {
+  name = "teeter-torture-20051018";
+  src = fetchurl {
+    url = ftp://ftp.tuxpaint.org/unix/x/teetertorture/source/teetertorture-2005-10-18.tar.gz;
+    sha256 = "175gdbkx3m82icyzvwpyzs4v2fd69c695k5n8ca0lnjv81wnw2hr";
+  };
+
+  buildInputs = [ SDL SDL_image SDL_mixer];
+
+  configurePhase = ''
+    sed -i s,data/,$out/share/teetertorture/, src/teetertorture.c
+  '';
+
+  patchPhase = ''
+    sed -i '/free(home)/d' src/teetertorture.c
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/teetertorture
+    cp teetertorture $out/bin
+    cp -R data/* $out/share/teetertorture
+  '';
+
+  meta = {
+    homepage = http://www.newbreedsoftware.com/teetertorture/;
+    description = "Simple shooting game with your cannon is sitting atop a teeter totter";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/teeworlds/default.nix b/nixpkgs/pkgs/games/teeworlds/default.nix
new file mode 100644
index 000000000000..846054765e00
--- /dev/null
+++ b/nixpkgs/pkgs/games/teeworlds/default.nix
@@ -0,0 +1,62 @@
+{ fetchFromGitHub, fetchurl, stdenv, bam, pkgconfig, makeWrapper, python, alsaLib
+, libX11, libGLU, SDL2, lua5_3, zlib, freetype, wavpack
+}:
+
+stdenv.mkDerivation rec {
+  name = "teeworlds-0.7.2";
+
+  src = fetchFromGitHub {
+    owner = "teeworlds";
+    repo = "teeworlds";
+    rev = "0.7.2";
+    sha256 = "15l988qcsqgb6rjais0qd5sd2rjanm2708jmzvkariqzz0d6pb93";
+  };
+
+  postPatch = ''
+    # set compiled-in DATA_DIR so resources can be found
+    substituteInPlace src/engine/shared/storage.cpp \
+      --replace '#define DATA_DIR "data"' \
+                '#define DATA_DIR "${placeholder "out"}/share/teeworlds/data"'
+  '';
+
+  nativeBuildInputs = [ bam pkgconfig ];
+
+  configurePhase = ''
+    bam config
+  '';
+
+  buildPhase = ''
+    bam conf=release
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/teeworlds
+    cp build/x86_64/release/teeworlds{,_srv} $out/bin
+    cp -r build/x86_64/release/data $out/share/teeworlds
+  '';
+
+  buildInputs = [
+    python alsaLib libX11 libGLU SDL2 lua5_3 zlib freetype wavpack
+  ];
+
+  postInstall = ''
+    mkdir -p $out/share/doc/teeworlds
+    cp -v *.txt $out/share/doc/teeworlds/
+  '';
+
+  meta = {
+    description = "Retro multiplayer shooter game";
+
+    longDescription = ''
+      Teeworlds is a free online multiplayer game, available for all
+      major operating systems.  Battle with up to 12 players in a
+      variety of game modes, including Team Deathmatch and Capture The
+      Flag.  You can even design your own maps!
+    '';
+
+    homepage = https://teeworlds.com/;
+    license = "BSD-style, see `license.txt'";
+    maintainers = with stdenv.lib.maintainers; [ astsmtl ];
+    platforms = ["x86_64-linux" "i686-linux"];
+  };
+}
diff --git a/nixpkgs/pkgs/games/tennix/default.nix b/nixpkgs/pkgs/games/tennix/default.nix
new file mode 100644
index 000000000000..283d8ad21d7e
--- /dev/null
+++ b/nixpkgs/pkgs/games/tennix/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_net, python } :
+
+stdenv.mkDerivation rec {
+  name = "tennix-1.1";
+  src = fetchurl {
+    url = "https://icculus.org/tennix/downloads/${name}.tar.gz";
+    sha256 = "0np5kw1y7i0z0dsqx4r2nvmq86qj8hv3mmgavm3hxraqnds5z8cm";
+  };
+
+  buildInputs = [ python SDL SDL_mixer SDL_image SDL_ttf SDL_net ];
+
+  patches = [ ./fix_FTBFS.patch ];
+
+  preConfigure = ''
+    makeFlags="PREFIX=$out"
+    installFlags="PREFIX=$out install"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://icculus.org/tennix/;
+    description = "Classic Championship Tour 2011";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ pSub ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/tennix/fix_FTBFS.patch b/nixpkgs/pkgs/games/tennix/fix_FTBFS.patch
new file mode 100644
index 000000000000..d58aa3a8129f
--- /dev/null
+++ b/nixpkgs/pkgs/games/tennix/fix_FTBFS.patch
@@ -0,0 +1,288 @@
+From: Thomas Perl <m@thp.io>
+Description: Fix FTBFS 
+Origin: upstream, https://repo.or.cz/w/tennix.git/commitdiff/6144cb7626dfdc0820a0036af83a531e8e68bae6
+Bug-Debian:  https://bugs.debian.org/664907
+
+--- tennix-1.1.orig/archivetool.cc
++++ tennix-1.1/archivetool.cc
+@@ -24,6 +24,7 @@
+ #include <assert.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <libgen.h>
+ #include <sys/stat.h>
+ 
+ #include "archive.hh"
+--- tennix-1.1.orig/game.c
++++ tennix-1.1/game.c
+@@ -388,6 +388,9 @@ void step(GameState* s) {
+                         s->ball.move_x = 4.0 + 3.0*PLAYER(s, p).power/PLAYER_POWER_MAX;
+                         s->ball.move_z = 1.1*PLAYER(s, p).power/PLAYER_POWER_MAX;
+                         break;
++                    default:
++                        assert(false);
++                        break;
+                 }
+                 s->ball.move_y = get_move_y( s, p);
+                 s->sound_events ^= SOUND_EVENT_RACKET;
+--- tennix-1.1.orig/network.h
++++ tennix-1.1/network.h
+@@ -103,19 +103,19 @@ void
+ net_serialize_ball(const Ball* src, NetworkBall* dest);
+ 
+ void
+-net_unserialize_ball(const NetworkBall* src, Ball* dest);
++net_unserialize_ball(NetworkBall* src, Ball* dest);
+ 
+ void
+ net_serialize_player(const Player* src, NetworkPlayer* dest);
+ 
+ void
+-net_unserialize_player(const NetworkPlayer* src, Player* dest);
++net_unserialize_player(NetworkPlayer* src, Player* dest);
+ 
+ void
+ net_serialize_gamestate(const GameState* src, NetworkGameState* dest);
+ 
+ void
+-net_unserialize_gamestate(const NetworkGameState* src, GameState* dest);
++net_unserialize_gamestate(NetworkGameState* src, GameState* dest);
+ 
+ #endif
+ 
+--- tennix-1.1.orig/locations.h
++++ tennix-1.1/locations.h
+@@ -155,7 +155,7 @@ static Location locations[] = {
+ #endif
+ 
+     /* End marker */
+-    { NULL, NULL, NULL, 0, 0, NULL, 0, 0, 0, 0, false }
++    { NULL, NULL, NULL, 0, 0, NULL, 0, 0, 0, 0, false, false, 0, 0 }
+ };
+ 
+ unsigned int location_count()
+--- tennix-1.1.orig/tennix.cc
++++ tennix-1.1/tennix.cc
+@@ -461,7 +461,7 @@ int main( int argc, char** argv) {
+                 start_fade();
+                 gameloop(current_game, connection);
+                 SDL_Delay(150);
+-                while(SDL_PollEvent(&e));
++                while (SDL_PollEvent(&e)) {};
+ #ifdef ENABLE_FPS_LIMIT
+                 frames = 0;
+                 ft = SDL_GetTicks();
+--- tennix-1.1.orig/SDL_rotozoom.c
++++ tennix-1.1/SDL_rotozoom.c
+@@ -365,6 +365,9 @@ int zoomSurfaceRGBA(SDL_Surface * src, S
+ 

+ int zoomSurfaceY(SDL_Surface * src, SDL_Surface * dst, int flipx, int flipy)

+ {

++    (void)flipx;

++    (void)flipy;

++

+     Uint32 x, y, sx, sy, *sax, *say, *csax, *csay, csx, csy;

+     Uint8 *sp, *dp, *csp;

+     int dgap;

+@@ -393,7 +396,7 @@ int zoomSurfaceY(SDL_Surface * src, SDL_
+      */

+     csx = 0;

+     csax = sax;

+-    for (x = 0; x < dst->w; x++) {

++    for (x = 0; x < (Uint32)dst->w; x++) {

+ 	csx += sx;

+ 	*csax = (csx >> 16);

+ 	csx &= 0xffff;

+@@ -401,7 +404,7 @@ int zoomSurfaceY(SDL_Surface * src, SDL_
+     }

+     csy = 0;

+     csay = say;

+-    for (y = 0; y < dst->h; y++) {

++    for (y = 0; y < (Uint32)dst->h; y++) {

+ 	csy += sy;

+ 	*csay = (csy >> 16);

+ 	csy &= 0xffff;

+@@ -410,13 +413,13 @@ int zoomSurfaceY(SDL_Surface * src, SDL_
+ 

+     csx = 0;

+     csax = sax;

+-    for (x = 0; x < dst->w; x++) {

++    for (x = 0; x < (Uint32)dst->w; x++) {

+ 	csx += (*csax);

+ 	csax++;

+     }

+     csy = 0;

+     csay = say;

+-    for (y = 0; y < dst->h; y++) {

++    for (y = 0; y < (Uint32)dst->h; y++) {

+ 	csy += (*csay);

+ 	csay++;

+     }

+@@ -432,10 +435,10 @@ int zoomSurfaceY(SDL_Surface * src, SDL_
+      * Draw 

+      */

+     csay = say;

+-    for (y = 0; y < dst->h; y++) {

++    for (y = 0; y < (Uint32)dst->h; y++) {

+ 	csax = sax;

+ 	sp = csp;

+-	for (x = 0; x < dst->w; x++) {

++	for (x = 0; x < (Uint32)dst->w; x++) {

+ 	    /*

+ 	     * Draw 

+ 	     */

+@@ -801,6 +804,8 @@ SDL_Surface* rotateSurface90Degrees(SDL_
+ void rotozoomSurfaceSizeTrig(int width, int height, double angle, double zoomx, double zoomy, int *dstwidth, int *dstheight, 

+ 			     double *canglezoom, double *sanglezoom)

+ {

++    (void)zoomy;

++

+     double x, y, cx, cy, sx, sy;

+     double radangle;

+     int dstwidthhalf, dstheighthalf;

+--- tennix-1.1.orig/network.c
++++ tennix-1.1/network.c
+@@ -183,7 +183,7 @@ net_serialize_ball(const Ball* src, Netw
+ }
+ 
+ void
+-net_unserialize_ball(const NetworkBall* src, Ball* dest)
++net_unserialize_ball(NetworkBall* src, Ball* dest)
+ {
+     assert(src != NULL && dest != NULL);
+     dest->x = unpack_float(SDLNet_Read32(&(src->x)), -WIDTH, WIDTH*2);
+@@ -213,7 +213,7 @@ net_serialize_player(const Player* src,
+ }
+ 
+ void
+-net_unserialize_player(const NetworkPlayer* src, Player* dest)
++net_unserialize_player(NetworkPlayer* src, Player* dest)
+ {
+     assert(src != NULL && dest != NULL);
+     dest->x = unpack_float(SDLNet_Read32(&(src->x)), 0, WIDTH*1.2);
+@@ -221,7 +221,7 @@ net_unserialize_player(const NetworkPlay
+     dest->power = unpack_float(SDLNet_Read32(&(src->power)), 0, 110);
+     dest->use_power = src->use_power;
+     dest->score = src->score;
+-    dest->desire = src->desire;
++    dest->desire = (PlayerDesire)src->desire;
+     dest->game = src->game;
+     memcpy(dest->sets, src->sets, sizeof(unsigned char)*(SETS_TO_WIN*2));
+     dest->accelerate = unpack_float(SDLNet_Read32(&(src->accelerate)), 0, 200);
+@@ -250,7 +250,7 @@ net_serialize_gamestate(const GameState*
+ }
+ 
+ void
+-net_unserialize_gamestate(const NetworkGameState* src, GameState* dest)
++net_unserialize_gamestate(NetworkGameState* src, GameState* dest)
+ {
+     int p;
+ 
+--- tennix-1.1.orig/makefile
++++ tennix-1.1/makefile
+@@ -27,24 +27,23 @@ ifeq ($(MKCALLGRAPH),1)
+   LD        =  nccld
+ endif
+ 
+-RELEASE   =  1.1
+-
+-UNAME = $(shell uname)
++RELEASE = 1.1.1
+ 
+ PREFIX ?= /usr/local
+ BINDIR ?= $(PREFIX)/bin
+ DATAROOTDIR ?= $(PREFIX)/share
+ DATADIR ?= $(DATAROOTDIR)/games
+ 
+-LIBS =
+-CFLAGS += -W -Wall -ansi -pedantic -Wcast-qual -Wwrite-strings -DVERSION=\"$(RELEASE)\" -O2 -DPREFIX=\"$(PREFIX)\" -g
++CFLAGS += -W -Wall -DVERSION=\"$(RELEASE)\" -O2 -DPREFIX=\"$(PREFIX)\"
+ CXXFLAGS += $(CFLAGS)
+ 
+ USE_PYTHON ?= 1
+ 
+ ifeq ($(USE_PYTHON),1)
+-  CFLAGS += `python-config --includes` -DTENNIX_PYTHON
+-  LIBS += `python-config --libs`
++  PYTHON_INCLUDES := $(shell python-config --includes)
++  PYTHON_LIBS := $(shell python-config --libs)
++  CFLAGS += $(PYTHON_INCLUDES) -DTENNIX_PYTHON
++  LIBS += $(PYTHON_LIBS)
+ endif
+ 
+ ifeq ($(NONFREE_LOCATIONS),1)
+@@ -67,17 +66,14 @@ ifeq ($(MAEMO),1)
+   CFLAGS += -DMAEMO
+ endif
+ 
+-ifeq ($(UNAME),Darwin)
+-  SDLLIBS=$$(sdl-config --prefix)/lib
+-  LIBS += $$(sdl-config --static-libs) $(SDLLIBS)/libSDL_mixer.a $(SDLLIBS)/libSDL_image.a $(SDLLIBS)/libSDL_ttf.a $(SDLLIBS)/libSDL_net.a $$(freetype-config --prefix)/lib/libfreetype.a
+-  CFLAGS += $$(sdl-config --cflags) -lz
+-else
+-  LIBS += $$(sdl-config --libs) -lSDL_mixer -lSDL_image -lSDL_ttf -lSDL_net
+-  CFLAGS += $$(sdl-config --cflags)
+-endif
++SDL_LIBS := $(shell sdl-config --libs)
++SDL_CFLAGS := $(shell sdl-config --cflags)
++
++LIBS += $(SDL_LIBS) -lSDL_mixer -lSDL_image -lSDL_ttf -lSDL_net
++CFLAGS += $(SDL_CFLAGS)
+ 
+-SRC = tennix.cc game.c graphics.cc input.c util.c sound.cc animation.c network.c
+ OBJ = tennix.o game.o graphics.o input.o util.o sound.o animation.o archive.o SDL_rotozoom.o network.o
++
+ ifeq ($(MSYSTEM),MINGW32)
+   OBJ += tennixres.o
+ endif
+--- tennix-1.1.orig/game.h
++++ tennix-1.1/game.h
+@@ -98,6 +98,13 @@ typedef struct {
+     bool inhibit_gravity;
+ } Ball;
+ 
++enum PlayerDesire {
++    DESIRE_NORMAL,
++    DESIRE_TOPSPIN,
++    DESIRE_SMASH,
++    DESIRE_MAX
++};
++
+ typedef struct {
+     InputDevice* input;
+     char input_device_index;
+@@ -106,9 +113,9 @@ typedef struct {
+     float power;
+     bool use_power;
+     unsigned char score;
+-    unsigned char desire;
++    PlayerDesire desire;
+     bool type; /* is this player ai-controlled or human? */
+-    char game; /* score for the current game */
++    int game; /* score for the current game */
+     unsigned char sets[SETS_TO_WIN*2]; /* score for each set */
+     float accelerate; /* a value [0..1] how fast the user accelerates */
+ } Player;
+@@ -118,13 +125,6 @@ enum {
+     PLAYER_TYPE_AI
+ };
+ 
+-enum {
+-    DESIRE_NORMAL,
+-    DESIRE_TOPSPIN,
+-    DESIRE_SMASH,
+-    DESIRE_MAX
+-};
+-
+ /* wait 2 seconds before we score the game */
+ #define SCORING_DELAY 1000
+ 
+@@ -161,7 +161,7 @@ enum {
+ 
+ typedef struct {
+     const Location* location;
+-    char current_location; /* index of loc. in global location table */
++    int current_location; /* index of loc. in global location table */
+     Ball ball;
+     Player players[MAXPLAYERS];
+     unsigned char serving_player;
diff --git a/nixpkgs/pkgs/games/terraria-server/default.nix b/nixpkgs/pkgs/games/terraria-server/default.nix
new file mode 100644
index 000000000000..13d296e5961a
--- /dev/null
+++ b/nixpkgs/pkgs/games/terraria-server/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, file, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  name    = "terraria-server-${version}";
+  version = "1.3.5.3";
+  urlVersion = lib.replaceChars ["."] [""] version;
+
+  src = fetchurl {
+    url = "https://terraria.org/server/terraria-server-${urlVersion}.zip";
+    sha256 = "0l7j2n6ip4hxph7dfal7kzdm3dqnm1wba6zc94gafkh97wr35ck3";
+  };
+
+  buildInputs = [ file unzip ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -r Linux $out/
+    chmod +x "$out/Linux/TerrariaServer.bin.x86_64"
+    ln -s "$out/Linux/TerrariaServer.bin.x86_64" $out/bin/TerrariaServer
+    # Fix "/lib64/ld-linux-x86-64.so.2" like references in ELF executables.
+    find "$out" | while read filepath; do
+      if file "$filepath" | grep -q "ELF.*executable"; then
+        echo "setting interpreter $(cat "$NIX_CC"/nix-support/dynamic-linker) in $filepath"
+        patchelf --set-interpreter "$(cat "$NIX_CC"/nix-support/dynamic-linker)" "$filepath"
+        test $? -eq 0 || { echo "patchelf failed to process $filepath"; exit 1; }
+      fi
+    done
+  '';
+
+  meta = with lib; {
+    homepage = http://terraria.org;
+    description = "Dedicated server for Terraria, a 2D action-adventure sandbox";
+    platforms = ["x86_64-linux"];
+    license = licenses.unfree;
+  };
+}
diff --git a/nixpkgs/pkgs/games/the-butterfly-effect/default.nix b/nixpkgs/pkgs/games/the-butterfly-effect/default.nix
new file mode 100644
index 000000000000..68114bb75652
--- /dev/null
+++ b/nixpkgs/pkgs/games/the-butterfly-effect/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchgit, qt5, box2d, which, cmake, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "tbe-${version}";
+  version = "0.9.3.1";
+
+  src = fetchgit {
+    url = "https://github.com/kaa-ching/tbe";
+    rev = "refs/tags/v${version}";
+    sha256 = "1ag2cp346f9bz9qy6za6q54id44d2ypvkyhvnjha14qzzapwaysj";
+  };
+
+  postPatch = "sed '1i#include <vector>' -i src/model/World.h";
+
+  buildInputs = [
+    qt5.qtbase qt5.qtsvg qt5.qttranslations box2d which cmake
+    gettext
+  ];
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    make DESTDIR=.. install
+    mkdir -p $out/bin
+    cp ../usr/games/tbe $out/bin
+    cp -r ../usr/share $out/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A physics-based game vaguely similar to Incredible Machine";
+    homepage = http://the-butterfly-effect.org/;
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.linux;
+    license = licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/games/the-powder-toy/default.nix b/nixpkgs/pkgs/games/the-powder-toy/default.nix
new file mode 100644
index 000000000000..c9637436bcfe
--- /dev/null
+++ b/nixpkgs/pkgs/games/the-powder-toy/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, scons, pkgconfig, SDL, lua, fftwFloat, zlib, bzip2 }:
+
+stdenv.mkDerivation rec {
+  name = "the-powder-toy-${version}";
+  version = "93.3";
+
+  src = fetchFromGitHub {
+    owner = "ThePowderToy";
+    repo = "The-Powder-Toy";
+    rev = "v${version}";
+    sha256 = "1bg1y13kpqxx4mpncxvmg8w02dyqyd9hl43rwnys3sqrjdm9k02j";
+  };
+
+  nativeBuildInputs = [ scons pkgconfig ];
+
+  buildInputs = [ SDL lua fftwFloat zlib bzip2 ];
+
+  sconsFlags = "--tool=";
+
+  installPhase = ''
+    install -Dm 755 build/powder* "$out/bin/powder"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A free 2D physics sandbox game";
+    homepage = http://powdertoy.co.uk/;
+    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/the-powder-toy/fix-env.patch b/nixpkgs/pkgs/games/the-powder-toy/fix-env.patch
new file mode 100644
index 000000000000..b09fd4dcbe9c
--- /dev/null
+++ b/nixpkgs/pkgs/games/the-powder-toy/fix-env.patch
@@ -0,0 +1,11 @@
+--- a/SConscript
++++ b/SConscript
+@@ -99,7 +99,7 @@
+ elif platform == "Windows" and not GetOption('msvc'):
+ 	env = Environment(tools=['mingw'], ENV={'PATH' : os.environ['PATH']})
+ else:
+-	env = Environment(tools=['default'], ENV={'PATH' : os.environ['PATH']})
++	env = Environment(tools=['default'], ENV = os.environ)
+ 
+ #attempt to automatically find cross compiler
+ if not tool and compilePlatform == "Linux" and compilePlatform != platform:
diff --git a/nixpkgs/pkgs/games/tibia/default.nix b/nixpkgs/pkgs/games/tibia/default.nix
new file mode 100644
index 000000000000..02c55d7d06c9
--- /dev/null
+++ b/nixpkgs/pkgs/games/tibia/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, glibc, libX11, runtimeShell, libGLU_combined }:
+
+with stdenv.lib;
+stdenv.mkDerivation {
+  name = "tibia-10.90";
+
+  src = fetchurl {
+    url = http://static.tibia.com/download/tibia1090.tgz;
+    sha256 = "11mkh2dynmbpay51yfaxm5dmcys3rnpk579s9ypfkhblsrchbkhx";
+  };
+
+  shell = stdenv.shell;
+
+  # These binaries come stripped already and trying to strip after the
+  # files are in $out/res and after patchelf just breaks them.
+  # Strangely it works if the files are in $out but then nix doesn't
+  # put them in our PATH. We set all the files to $out/res because
+  # we'll be using a wrapper to start the program which will go into
+  # $out/bin.
+  dontStrip = true;
+
+  installPhase = ''
+    mkdir -pv $out/res
+    cp -r * $out/res
+
+    patchelf --set-interpreter ${glibc.out}/lib/ld-linux.so.2 \
+             --set-rpath ${stdenv.lib.makeLibraryPath [ stdenv.cc.cc libX11 libGLU_combined ]} \
+             "$out/res/Tibia"
+
+    # We've patchelf'd the files. The main ‘Tibia’ binary is a bit
+    # dumb so it looks for ‘./Tibia.dat’. This requires us to be in
+    # the same directory as the file itself but that's very tedious,
+    # especially with nix which changes store hashes. Here we generate
+    # a simple wrapper that we put in $out/bin which will do the
+    # directory changing for us.
+
+    mkdir -pv $out/bin
+
+    # The wrapper script itself. We use $LD_LIBRARY_PATH for libGL.
+    cat << EOF > "$out/bin/Tibia"
+    #!${runtimeShell}
+    cd $out/res
+    ${glibc.out}/lib/ld-linux.so.2 --library-path \$LD_LIBRARY_PATH ./Tibia "\$@"
+    EOF
+
+    chmod +x $out/bin/Tibia
+
+  '';
+
+  meta = {
+    description = "Top-down MMORPG set in a fantasy world";
+    homepage = http://tibia.com;
+    license = stdenv.lib.licenses.unfree;
+    platforms = ["i686-linux"];
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/tintin/default.nix b/nixpkgs/pkgs/games/tintin/default.nix
new file mode 100644
index 000000000000..286e408e2555
--- /dev/null
+++ b/nixpkgs/pkgs/games/tintin/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, zlib, pcre }:
+
+stdenv.mkDerivation rec {
+  name = "tintin-2.01.4";
+
+  src = fetchurl {
+    url    = "mirror://sourceforge/tintin/${name}.tar.gz";
+    sha256 = "1g7bh8xs1ml0iyraps3a3dzaycci922y7fk5j0wyr4ssyjzsy8nx";
+  };
+
+  buildInputs = [ zlib pcre ];
+
+  preConfigure = ''
+    cd src
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A free MUD client for macOS, Linux and Windows";
+    homepage    = http://tintin.sourceforge.net;
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ lovek323 ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/tinyfugue/default.nix b/nixpkgs/pkgs/games/tinyfugue/default.nix
new file mode 100644
index 000000000000..f230a70c0880
--- /dev/null
+++ b/nixpkgs/pkgs/games/tinyfugue/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, ncurses, zlib
+, openssl ? null
+, sslSupport ? true
+}:
+
+with stdenv.lib;
+
+assert sslSupport -> openssl != null;
+
+stdenv.mkDerivation rec {
+  name = "tinyfugue-${version}";
+  version = "50b8";
+  verUrl = "5.0%20beta%208";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/tinyfugue/tinyfugue/${verUrl}/tf-${version}.tar.gz";
+    sha256 = "12fra2fdwqj6ilv9wdkc33rkj343rdcf5jyff4yiwywlrwaa2l1p";
+  };
+
+  configureFlags = optional (!sslSupport) "--disable-ssl";
+
+  buildInputs =
+    [ ncurses zlib ]
+    ++ optional sslSupport openssl;
+
+  meta = {
+    homepage = http://tinyfugue.sourceforge.net/;
+    description = "A terminal UI, screen-oriented MUD client";
+    longDescription = ''
+      TinyFugue, aka "tf", is a flexible, screen-oriented MUD client, for use
+      with any type of text MUD.
+    '';
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.KibaFox ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/tome4/default.nix b/nixpkgs/pkgs/games/tome4/default.nix
new file mode 100644
index 000000000000..ec529676463f
--- /dev/null
+++ b/nixpkgs/pkgs/games/tome4/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper, premake4, unzip
+, openal, libpng, libvorbis, libGLU, SDL2, SDL2_image, SDL2_ttf }:
+
+let
+  pname = "tome4";
+
+  desktop = makeDesktopItem {
+    desktopName = pname;
+    name = pname;
+    exec = "@out@/bin/${pname}";
+    icon = "${pname}";
+    terminal = "False";
+    comment = "An open-source, single-player, role-playing roguelike game set in the world of Eyal.";
+    type = "Application";
+    categories = "Game;RolePlaying;";
+    genericName = pname;
+  };
+
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  version = "1.5.10";
+
+  src = fetchurl {
+    url = "https://te4.org/dl/t-engine/t-engine4-src-${version}.tar.bz2";
+    sha256 = "0mc5dgh2x9nbili7gy6srjhb23ckalf08wqq2amyjr5rq392jvd7";
+  };
+
+  nativeBuildInputs = [ makeWrapper unzip premake4 ];
+
+  # tome4 vendors quite a few libraries so someone might want to look
+  # into avoiding that...
+  buildInputs = [
+    libGLU openal libpng libvorbis SDL2 SDL2_ttf SDL2_image
+  ];
+
+  # disable parallel building as it caused sporadic build failures
+  enableParallelBuilding = false;
+
+  NIX_CFLAGS_COMPILE = [
+    "-I${SDL2.dev}/include/SDL2"
+    "-I${SDL2_image}/include/SDL2"
+    "-I${SDL2_ttf}/include/SDL2"
+  ];
+
+  makeFlags = [ "config=release" ];
+
+  # The wrapper needs to cd into the correct directory as tome4's detection of
+  # the game asset root directory is faulty.
+
+  installPhase = ''
+    runHook preInstall
+
+    dir=$out/share/${pname}
+
+    install -Dm755 t-engine $dir/t-engine
+    cp -r bootstrap game $dir
+    makeWrapper $dir/t-engine $out/bin/${pname} \
+      --run "cd $dir"
+
+    install -Dm755 ${desktop}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --subst-var out
+
+    unzip -oj -qq game/engines/te4-${version}.teae data/gfx/te4-icon.png
+    install -Dm644 te4-icon.png $out/share/icons/hicolor/64x64/${pname}.png
+
+    install -Dm644 -t $out/share/doc/${pname} CONTRIBUTING COPYING COPYING-MEDIA CREDITS
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tales of Maj'eyal (rogue-like game)";
+    homepage = https://te4.org/;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ chattered peterhoeg ];
+    platforms = with platforms; [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/torcs/default.nix b/nixpkgs/pkgs/games/torcs/default.nix
new file mode 100644
index 000000000000..f1718201998c
--- /dev/null
+++ b/nixpkgs/pkgs/games/torcs/default.nix
@@ -0,0 +1,45 @@
+{ fetchpatch, fetchurl, stdenv, libGLU, freeglut, libX11, plib, openal, freealut, libXrandr, xorgproto,
+libXext, libSM, libICE, libXi, libXt, libXrender, libXxf86vm, libvorbis,
+libpng, zlib, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "torcs-1.3.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/torcs/${name}.tar.bz2";
+    sha256 = "0kdq0sc7dsfzlr0ggbxggcbkivc6yp30nqwjwcaxg9295s3b06wa";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://anonscm.debian.org/git/pkg-games/torcs.git/plain/debian/patches/gcc6-isnan.patch";
+      sha256 = "16scmq30vwb8429ah9d4ws0v1w6ai59lvn7hcgnvfzyap42ry876";
+    })
+    (fetchpatch {
+      url = "https://anonscm.debian.org/git/pkg-games/torcs.git/plain/debian/patches/format-argument.patch";
+      sha256 = "04advcx88yh23ww767iysydzhp370x7cqp2wf9hk2y1qvw7mxsja";
+    })
+    (fetchpatch {
+      url = "https://anonscm.debian.org/git/pkg-games/torcs.git/plain/debian/patches/glibc-default-source.patch";
+      sha256 = "0k4hgpddnhv68mdc9ics7ah8q54j60g394d7zmcmzg6l3bjd9pyp";
+    })
+  ];
+
+  postPatch = ''
+    sed -i -e s,/bin/bash,`type -P bash`, src/linux/torcs.in
+  '';
+
+  buildInputs = [ libGLU freeglut libX11 plib openal freealut libXrandr xorgproto
+    libXext libSM libICE libXi libXt libXrender libXxf86vm libpng zlib libvorbis makeWrapper ];
+
+  installTargets = "install datainstall";
+
+  meta = {
+    description = "Car racing game";
+    homepage = http://torcs.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = stdenv.lib.platforms.linux;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/games/trackballs/default.nix b/nixpkgs/pkgs/games/trackballs/default.nix
new file mode 100644
index 000000000000..8549a860d8e8
--- /dev/null
+++ b/nixpkgs/pkgs/games/trackballs/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_ttf, gettext, zlib, SDL2_mixer, SDL2_image, guile, libGLU_combined }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "trackballs-${version}";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "trackballs";
+    repo = "trackballs";
+    rev = "v${version}";
+    sha256 = "1yjzz50r57aahy7wcbsmhrd40abzyriq40j49225ya7m9g28vmgl";
+  };
+
+  buildInputs = [ cmake zlib SDL2 SDL2_ttf SDL2_mixer SDL2_image guile gettext libGLU_combined ];
+
+  meta = {
+    homepage = https://trackballs.github.io/;
+    description = "3D Marble Madness clone";
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/games/tremulous/default.nix b/nixpkgs/pkgs/games/tremulous/default.nix
new file mode 100644
index 000000000000..470856af90e6
--- /dev/null
+++ b/nixpkgs/pkgs/games/tremulous/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchurl, unzip, libGLU_combined, libX11, SDL, openal, runtimeShell }:
+stdenv.mkDerivation rec {
+  name = "tremulous-${version}";
+  version = "1.1.0";
+  src1 = fetchurl {
+    url = "mirror://sourceforge/tremulous/${name}.zip";
+    sha256 = "11w96y7ggm2sn5ncyaffsbg0vy9pblz2av71vqp9725wbbsndfy7";
+  };
+  # http://tremulous.net/wiki/Client_versions
+  src2 = fetchurl {
+    url = "http://releases.mercenariesguild.net/client/mgclient_source_Release_1.011.tar.gz";
+    sha256 = "1vrsi7va7hdp8k824663s1pyw9zpsd4bwwr50j7i1nn72b0v9a26";
+  };
+  src3 = fetchurl {
+    url = "http://releases.mercenariesguild.net/tremded/mg_tremded_source_1.01.tar.gz";
+    sha256 = "1njrqlhzjvy9myddzkagszwdcf3m4h08wip888w2rmbshs6kz6ql";
+  };
+  buildInputs = [ unzip libGLU_combined libX11 SDL openal ];
+  unpackPhase = ''
+    unzip $src1
+    cd tremulous
+    tar xvf $src2
+    mkdir mg_tremded_source
+    cd mg_tremded_source
+    tar xvf $src3
+    cd ..
+  '';
+  patches = [ ./parse.patch ];
+  patchFlags = "-p 0";
+  NIX_LD_FLAGS = ''
+    -rpath ${stdenv.cc}/lib
+    -rpath ${stdenv.cc}/lib64
+  '';
+  buildPhase = ''
+    cd Release_1.011
+    make
+    cd ..
+    cd mg_tremded_source
+    make
+    cd ..
+  '';
+  installPhase = ''
+    arch=$(uname -m | sed -e s/i.86/x86/)
+    mkdir -p $out/opt/tremulous
+    cp -v Release_1.011/build/release-linux-$arch/tremulous.$arch $out/opt/tremulous/
+    cp -v mg_tremded_source/build/release-linux-$arch/tremded.$arch $out/opt/tremulous/
+    cp -rv base $out/opt/tremulous
+    mkdir -p $out/bin
+    for b in tremulous tremded
+    do
+        cat << EOF > $out/bin/$b
+    #!${runtimeShell}
+    cd $out/opt/tremulous
+    exec ./$b.$arch "\$@"
+    EOF
+        chmod +x $out/bin/$b
+    done
+  '';
+  dontPatchELF = true;
+  meta = with stdenv.lib; {
+    description = "A game that blends a team based FPS with elements of an RTS";
+    longDescription = ''
+      Tremulous is a free, open source game that blends a team based FPS with
+      elements of an RTS. Players can choose from 2 unique races, aliens and
+      humans. Players on both teams are able to build working structures
+      in-game like an RTS. These structures provide many functions, the most
+      important being spawning. The designated builders must ensure there are
+      spawn structures or other players will not be able to rejoin the game
+      after death. Other structures provide automated base defense (to some
+      degree), healing functions and much more...
+    '';
+    homepage = http://www.tremulous.net;
+    license = with licenses; [
+      gpl2
+      cc-by-sa-25 /* media */
+    ];
+    maintainers = with maintainers; [ astsmtl ];
+    platforms = platforms.linux;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/games/tremulous/parse.patch b/nixpkgs/pkgs/games/tremulous/parse.patch
new file mode 100644
index 000000000000..12a73138c099
--- /dev/null
+++ b/nixpkgs/pkgs/games/tremulous/parse.patch
@@ -0,0 +1,21 @@
+diff -ruN Release_1.011-old/src/qcommon/parse.c Release_1.011/src/qcommon/parse.c
+--- Release_1.011-old/src/qcommon/parse.c	2011-12-02 19:11:49.307368651 -0500
++++ Release_1.011/src/qcommon/parse.c	2011-12-02 19:13:27.556836387 -0500
+@@ -981,7 +981,7 @@
+ {
+   if (*string == '\"')
+   {
+-    strcpy(string, string+1);
++    memmove(string, string+1, strlen(string));
+   }
+   if (string[strlen(string)-1] == '\"')
+   {
+@@ -1784,7 +1784,7 @@
+     if ((*ptr == '\\' || *ptr == '/') &&
+         (*(ptr+1) == '\\' || *(ptr+1) == '/'))
+     {
+-      strcpy(ptr, ptr+1);
++      memmove(ptr, ptr+1, strlen(ptr));
+     }
+     else
+     {
diff --git a/nixpkgs/pkgs/games/trigger/default.nix b/nixpkgs/pkgs/games/trigger/default.nix
new file mode 100644
index 000000000000..0050ef19cea2
--- /dev/null
+++ b/nixpkgs/pkgs/games/trigger/default.nix
@@ -0,0 +1,40 @@
+{ fetchurl, stdenv, runtimeShell
+, SDL2, freealut, SDL2_image, openal, physfs, zlib, libGLU_combined, glew }:
+
+stdenv.mkDerivation rec {
+  name = "trigger-rally-0.6.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/trigger-rally/${name}.tar.gz";
+    sha256 = "08qa2f2s8zyn42ff6jb1gsi64d916020ixkzvl16kbb88rabqra8";
+  };
+
+  buildInputs = [ SDL2 freealut SDL2_image openal physfs zlib libGLU_combined glew ];
+
+  preConfigure = ''
+    sed s,/usr/local,$out, -i bin/*defs
+
+    cd src
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${SDL2.dev}/include/SDL2"
+    export makeFlags="$makeFlags prefix=$out"
+  '';
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    mkdir -p $out/bin
+    cat <<EOF > $out/bin/trigger-rally
+    #!${runtimeShell}
+    exec $out/games/trigger-rally "$@"
+    EOF
+    chmod +x $out/bin/trigger-rally
+  '';
+
+  meta = {
+    description = "Rally";
+    homepage = http://trigger-rally.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/trigger/search.patch b/nixpkgs/pkgs/games/trigger/search.patch
new file mode 100644
index 000000000000..60a69b159b5b
--- /dev/null
+++ b/nixpkgs/pkgs/games/trigger/search.patch
@@ -0,0 +1,14 @@
+diff --git a/src/Trigger/main.cpp b/src/Trigger/main.cpp
+index 39539e1..680c12c 100644
+--- a/src/Trigger/main.cpp
++++ b/src/Trigger/main.cpp
+@@ -890,7 +890,8 @@ bool MainApp::loadAll()
+                 std::smatch mr; // Match Results
+                 std::regex pat(R"(^(\w+)(\..+)$)"); // Pattern
+ 
+-                if (!std::regex_search(std::string(*fname), mr, pat))
++                std::string search(*fname);
++                if (!std::regex_search(search, mr, pat))
+                     continue;
+ 
+                 std::string basefname = mr[1];
diff --git a/nixpkgs/pkgs/games/tuxpaint/default.nix b/nixpkgs/pkgs/games/tuxpaint/default.nix
new file mode 100644
index 000000000000..ddf0782b210d
--- /dev/null
+++ b/nixpkgs/pkgs/games/tuxpaint/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, SDL, SDL_image, SDL_ttf, SDL_mixer, libpng,
+  cairo, librsvg, gettext, libpaper, fribidi, pkgconfig, gperf }:
+
+stdenv.mkDerivation rec {
+  version = "0.9.22";
+  name = "tuxpaint-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/tuxpaint/${version}/${name}.tar.gz";
+    sha256 = "1qrbrdck9yxpcg3si6jb9i11w8lw9h4hqad0pfaxgyiniqpr7gca";
+  };
+
+  nativeBuildInputs = [ SDL SDL_image SDL_ttf SDL_mixer libpng cairo
+    librsvg gettext libpaper fribidi pkgconfig gperf ];
+  hardeningDisable = [ "format" ];
+  makeFlags = [ "GPERF=${gperf}/bin/gperf"
+                "PREFIX=$$out"
+                "COMPLETIONDIR=$$out/share/bash-completion/completions"
+              ];
+
+  patches = [ ./tuxpaint-completion.diff ];
+  postPatch = ''
+    grep -Zlr include.*SDL . | xargs -0 sed -i -e 's,"SDL,"SDL/SDL,'
+  '';
+
+  # stamps
+  stamps = fetchurl {
+    url = "mirror://sourceforge/project/tuxpaint/tuxpaint-stamps/2014-08-23/tuxpaint-stamps-2014.08.23.tar.gz";
+    sha256 = "0rhlwrjz44wp269v3rid4p8pi0i615pzifm1ym6va64gn1bms06q";
+  };
+
+  postInstall = ''
+    tar xzf $stamps
+    cd tuxpaint-stamps-2014.08.23
+    make install-all PREFIX=$out
+    rm -rf $out/share/tuxpaint/stamps/military
+  '';
+
+  meta = {
+    description = "Open Source Drawing Software for Children";
+    homepage = http://www.tuxpaint.org/;
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [ woffs ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/tuxpaint/tuxpaint-completion.diff b/nixpkgs/pkgs/games/tuxpaint/tuxpaint-completion.diff
new file mode 100644
index 000000000000..0824b2becf49
--- /dev/null
+++ b/nixpkgs/pkgs/games/tuxpaint/tuxpaint-completion.diff
@@ -0,0 +1,16 @@
+--- tuxpaint-0.9.22/src/tuxpaint-completion.bash~	1970-01-01 01:00:01.000000000 +0100
++++ tuxpaint-0.9.22/src/tuxpaint-completion.bash	2018-03-06 10:54:03.437560921 +0100
+@@ -8,7 +8,6 @@
+ # FIXME: See http://www.debian-administration.org/articles/316 for an intro
+ # to how we should be doing this... -bjk 2009.09.09
+ 
+-have tuxpaint &&
+ _tuxpaint()
+ {
+         local cur
+@@ -96,4 +95,4 @@
+         fi
+ 
+ }
+-[ "${have:-}" ] && complete -F _tuxpaint $filenames tuxpaint
++complete -F _tuxpaint $filenames tuxpaint
diff --git a/nixpkgs/pkgs/games/tuxtype/default.nix b/nixpkgs/pkgs/games/tuxtype/default.nix
new file mode 100644
index 000000000000..6b2fb8178eac
--- /dev/null
+++ b/nixpkgs/pkgs/games/tuxtype/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, librsvg, libxml2, SDL, SDL_image, SDL_mixer, SDL_net, SDL_ttf, t4kcommon }:
+
+stdenv.mkDerivation rec {
+  version = "1.8.3";
+  pname = "tuxtype";
+
+  src = fetchFromGitHub {
+    owner = "tux4kids";
+    repo = "tuxtype";
+    rev = "upstream/${version}";
+    sha256 = "1i33rhi9gpzfml4hd73s18h6p2s8zcr26va2vwf2pqqd9fhdwpsg";
+  };
+
+  postPatch = ''
+    patchShebangs data/scripts/sed-linux.sh
+    patchShebangs data/themes/asturian/scripts/sed-linux.sh
+    patchShebangs data/themes/greek/scripts/sed-linux.sh
+    patchShebangs data/themes/hungarian/scripts/sed-linux.sh
+
+    substituteInPlace Makefile.am \
+      --replace "\$(MKDIR_P) -m 2755 " "\$(MKDIR_P) -m 755 " \
+      --replace "chown root:games \$(DESTDIR)\$(pkglocalstatedir)/words" " "
+
+    # required until the following has been merged:
+    # https://salsa.debian.org/tux4kids-pkg-team/tuxtype/merge_requests/1
+    substituteInPlace configure.ac \
+      --replace 'CFLAGS="$CFLAGS $SDL_IMAGE"' 'CFLAGS="$CFLAGS $SDL_IMAGE_CFLAGS"' \
+      --replace 'PKG_CHECK_MODULES([SDL_ttf],' 'PKG_CHECK_MODULES([SDL_TTF],'
+  '';
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ librsvg libxml2 SDL SDL_image SDL_mixer SDL_net SDL_ttf t4kcommon ];
+
+  configureFlags = [ "--without-sdlpango" ];
+
+  meta = with stdenv.lib; {
+    description = "An Educational Typing Tutor Game Starring Tux, the Linux Penguin";
+    homepage = https://github.com/tux4kids/tuxtype;
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.aanderse ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/typespeed/default.nix b/nixpkgs/pkgs/games/typespeed/default.nix
new file mode 100644
index 000000000000..6f0afc359ab4
--- /dev/null
+++ b/nixpkgs/pkgs/games/typespeed/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation {
+  name = "typespeed-0.6.5";
+  buildInputs = [ ncurses ];
+  src = fetchurl {
+    url = http://typespeed.sourceforge.net/typespeed-0.6.5.tar.gz;
+    sha256 = "5c860385ceed8a60f13217cc0192c4c2b4705c3e80f9866f7d72ff306eb72961";
+  };
+
+  patches = [ ./typespeed-config-in-home.patch ];
+
+  configureFlags = [ "--datadir=\${out}/share/" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
+  meta = with stdenv.lib; {
+    description = "A curses based typing game";
+    homepage = http://typespeed.sourceforge.net/;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.auntie ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/typespeed/typespeed-config-in-home.patch b/nixpkgs/pkgs/games/typespeed/typespeed-config-in-home.patch
new file mode 100644
index 000000000000..fe313a4392ed
--- /dev/null
+++ b/nixpkgs/pkgs/games/typespeed/typespeed-config-in-home.patch
@@ -0,0 +1,148 @@
+diff --git a/src/file.c b/src/file.c
+index d1d1982..1655f6f 100644
+--- a/src/file.c
++++ b/src/file.c
+@@ -125,6 +125,8 @@ int			 hcompar(const void *, const void *);
+ int			 loadscores(char *);
+ static int		 parseline(char *, char **, char **);
+ void			 readconfig(void);
++void			 mkconfig(char *filename);
++void			 mkscore(char *filename);
+ static void		 readfile(char *, int);
+ static void		 setoptions(char *, char *, int);
+ 
+@@ -1125,7 +1127,7 @@ void
+ readconfig(void)
+ {
+ 	char *envhome;
+-	char userhigh[MAXPATHLEN], userconf[MAXPATHLEN];
++	char userhigh[MAXPATHLEN], userconf[MAXPATHLEN], confdir[MAXPATHLEN];
+ 	struct stat sb;
+ 
+ 	if (xsnprintf(ruledir, sizeof(ruledir), "%s", RULEDIR)) {
+@@ -1140,18 +1142,33 @@ readconfig(void)
+ 	readfile(CONFIGFILE, 1);
+ 
+ 	if ((envhome = getenv("HOME")) == NULL)
+-		return;
++		xerr(1, "readconfig: environment variable HOME not set");
+ 
+ 	if (xsnprintf(userconf, sizeof(userconf), "%s/.typespeed/config",
+-	    envhome))
+-		return;
++				envhome))
++		xerr(1, "readconfig: string error");
++	if (xsnprintf(userhigh, sizeof(userhigh), "%s/.typespeed/score",
++				envhome))
++		xerr(1, "readconfig: string error");
+ 
+ 	if (stat(userconf, &sb) || (sb.st_mode & S_IFMT) != S_IFREG)
+-		return;
+-
+-	if (xsnprintf(userhigh, sizeof(userhigh), "%s/.typespeed/score",
+-	    envhome))
+-		return;
++	{
++		if (xsnprintf(confdir, sizeof(confdir), "%s/.typespeed",
++					envhome))
++			xerr(1, "readconfig: string error");
++		if(stat(confdir, &sb) == -1)
++			if(mkdir(confdir, S_IRWXU | S_IRWXG | S_IRWXO))
++				xerr(1, "readconfig: could not create config directory %s",
++					confdir);
++		/* create the user configuration with default values */
++		mkconfig(userconf);
++	}
++  /* check for the high score file */
++	if (stat(userhigh, &sb) || (sb.st_mode & S_IFMT) != S_IFREG)
++	{
++		/* create a blank high score file */
++		mkscore(userhigh);
++	}
+ 
+ 	/*
+ 	 * Open a user writable high score.
+@@ -1159,14 +1176,48 @@ readconfig(void)
+ 	 * file. Protect system-wide high score file with group
+ 	 * write permissions: privileged gid already dropped.
+ 	 */
+-	if (close(hfd) == -1)
+-		xerr(1, "readconfig: close");
+-	if ((hfd = open(userhigh, O_RDWR, 0)) == -1)
++	if ((hfd = open(userhigh, O_RDWR)) == -1)
+ 		xerr(1, "readconfig: open: %s", userhigh);
+ 
+ 	readfile(userconf, 1);
+ }
+ 
++#define DEFAULT_CONFIG	"cheat = no\n" \
++			"highorder = score cps tcps\n" \
++			"ruledir = " RULEDIR "\n" \
++			"worddir = " WORDDIR "\n"
++
++/*
++ * Create the user configuration, with default values, at the given path.
++ */
++void
++mkconfig(char *filename)
++{
++	int cfd;
++
++	if((cfd = open(filename, O_WRONLY | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO)) == -1)
++		xerr(1, "mkconfig: open: %s", filename);
++	if(write(cfd, DEFAULT_CONFIG, sizeof(DEFAULT_CONFIG)/sizeof(DEFAULT_CONFIG[0]) - 1) == -1)
++		xerr(1, "mkconfig: write: %s", filename);
++	if(close(cfd) == -1)
++		xerr(1, "mkconfig: close: %s", filename);
++}
++
++/*
++ * Create the user high score file, which is just a blank file.
++ */
++void
++mkscore(char *filename)
++{
++	int sfd;
++	if((sfd = open(filename, O_WRONLY | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO)) == -1)
++		xerr(1, "mkscore: open: %s", filename);
++	if(write(sfd, "", 0) == -1)
++		xerr(1, "mkconfig: write: %s", filename);
++	if(close(sfd) == -1)
++		xerr(1, "mkconfig: close: %s", filename);
++}
++
+ /*
+  * Function used to open configuration and game rule files and to
+  * set options with function setoptions.
+diff --git a/src/typespeed.c b/src/typespeed.c
+index 7ac5ee2..77e9acb 100644
+--- a/src/typespeed.c
++++ b/src/typespeed.c
+@@ -319,8 +319,13 @@ main(int argc, char **argv)
+ 		progname++;
+ 
+ 	/* just open high score file while being setgid games */
+-	if ((hfd = open(HIGHFILE, O_RDWR, 0)) == -1)
+-		xerr(1, "main: open: %s", HIGHFILE);
++  /*
++   * For NixOS, a global high score file doesn't make sense, so we just comment
++   * this out. A high score file in the user's home directory will be opened
++   * later in readconfig().
++   */
++/*	if ((hfd = open(HIGHFILE, O_RDWR, 0)) == -1)
++		xerr(1, "main: open: %s", HIGHFILE);  */
+ 
+ #ifndef WIN32
+ 	/* drop privileges */
+@@ -348,9 +353,9 @@ main(int argc, char **argv)
+ #endif /* WIN32 */
+ 
+ 	/* check file descriptors for consistency */
+-	if (hfd == STDIN_FILENO || hfd == STDOUT_FILENO ||
++/*	if (hfd == STDIN_FILENO || hfd == STDOUT_FILENO ||
+ 	    hfd == STDERR_FILENO)
+-		exit(1);
++		exit(1);  */
+ 	if (!isatty(STDIN_FILENO) || !isatty(STDOUT_FILENO) ||
+ 	    !isatty(STDERR_FILENO))
+ 		xerrx(1, "not fully connected to a terminal");
diff --git a/nixpkgs/pkgs/games/ue4/cdn-deps.nix b/nixpkgs/pkgs/games/ue4/cdn-deps.nix
new file mode 100644
index 000000000000..76c11c6baa70
--- /dev/null
+++ b/nixpkgs/pkgs/games/ue4/cdn-deps.nix
@@ -0,0 +1,7028 @@
+{ fetchurl }:
+
+{
+  "0049fd8a61e04257b6dcb37217d4d603cd74cc6b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/0049fd8a61e04257b6dcb37217d4d603cd74cc6b;
+    sha256 = "1dcyxixgqsw4lcwg9066q39yghhppfp85yyi4r4drq5j5rg3dgb1";
+  };
+  "0055e020f7505cf021eb66b73e3a8fa3cc308b05" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/0055e020f7505cf021eb66b73e3a8fa3cc308b05;
+    sha256 = "1i2ff0hzrs2kdqv860wjnddyp80asanx5zzispsbzm95iljfby70";
+  };
+  "007491dae0c56c74ca78a46639d8e41243bde83f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/007491dae0c56c74ca78a46639d8e41243bde83f;
+    sha256 = "14q664k5dgyc4f30mc6f2537w9mxw9407nba3023xss9vfijldgv";
+  };
+  "00927d42baa3e7f8fb204e62ea43ff39384f8679" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/00927d42baa3e7f8fb204e62ea43ff39384f8679;
+    sha256 = "1jpzh24r1xkn8vifqyqljfbb9jbmcl7syigaq2lkjjxfl9nzwqqv";
+  };
+  "0092dbc71c6b4bd985a697ac3d1f1597c0bc82f6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/0092dbc71c6b4bd985a697ac3d1f1597c0bc82f6;
+    sha256 = "17cdmr5p4vyq04m0njv4b82l6gnp0dpxs22y5466ksnksckh9xwz";
+  };
+  "009f9921fd444183569a1057648f0c3573688f98" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/009f9921fd444183569a1057648f0c3573688f98;
+    sha256 = "0pc107dgkg8v51gy4083myp01lby8xfvlkx5xplsq55lxifkxcqy";
+  };
+  "00ab55311f402e65385f797ea5e1c4ab4663553e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/00ab55311f402e65385f797ea5e1c4ab4663553e;
+    sha256 = "1d2hwgd2zk4alxb6fb4fzkxcpkl3gp95v39jd0g77frj5ajnf5yc";
+  };
+  "00add27414f59890b092ab4b03bbbc585cedb847" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/00add27414f59890b092ab4b03bbbc585cedb847;
+    sha256 = "0jmbay34rl6srpkylamsy409a2rpqb9jwhyxfph34bazsp3jv04k";
+  };
+  "00b98d4aec7a1f350c0fdd8186841aa96c0cce53" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/00b98d4aec7a1f350c0fdd8186841aa96c0cce53;
+    sha256 = "0lh9rdgg9nr2mxvgx0rdg0zk4q5gsza4yacxp933bm41vvdwr3kq";
+  };
+  "00c4eb5dc59035a15405197341b6b925473708db" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/00c4eb5dc59035a15405197341b6b925473708db;
+    sha256 = "00xl95hd2qcnzylvqc77pv758frws8z8anf4kb5vhz3lcv8c1n9n";
+  };
+  "00f460c11eef99d9e125c11687a40d39f7b74873" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/00f460c11eef99d9e125c11687a40d39f7b74873;
+    sha256 = "1zp0qrc4nrv2cy7mc0z7chm75pa6ffzzz7yr32lw9ijzv5rbcjml";
+  };
+  "0104416c142ca7b3174660267c22f049db573bdb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/0104416c142ca7b3174660267c22f049db573bdb;
+    sha256 = "0lzg75w1cnbm9yll32la7gcq5wv7wr8ckx3kxv4adhkkaz53bail";
+  };
+  "01687bd36252e9a263022192524ca8835ae9552b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/01687bd36252e9a263022192524ca8835ae9552b;
+    sha256 = "0cdql0x9nppg7lh4rlnc1k4cj4pv404881z02miqlr99a05rwzpv";
+  };
+  "01a1b60633d0e13df7952058973ca4979a5389e2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/01a1b60633d0e13df7952058973ca4979a5389e2;
+    sha256 = "127llh0ybq7f6fnsmh1hrh4xh46ap0x3za9xxqfmj0qhfbz5nanr";
+  };
+  "01b5b6310231646e87a0bfefaebfee7f0c9e1929" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/01b5b6310231646e87a0bfefaebfee7f0c9e1929;
+    sha256 = "0agyb9fy1vpnc06073c8j1k3d9n475pznf5chaxpcqpppcqi8j55";
+  };
+  "01d26cddb178f064c3cd74a09430970bf6cc12b7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/01d26cddb178f064c3cd74a09430970bf6cc12b7;
+    sha256 = "1lxb8g2hd2jdswinzgnr4dqknh1c6nm6xh3fwbkvniglglrr7w9z";
+  };
+  "01e6c01a96b3cbe860204f191d1b9153509a9dee" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/01e6c01a96b3cbe860204f191d1b9153509a9dee;
+    sha256 = "1ll3kahg1bvrw1djm855fan0yhfv385qaqbvsx11h4f7nsk1y8l1";
+  };
+  "0255260ee4d81de161e877cdcc3af4d7fcf8d0e3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/0255260ee4d81de161e877cdcc3af4d7fcf8d0e3;
+    sha256 = "1b35v17pkpxjak9nslgmqik0779yqpfmrqhxih85fw38cx883y9k";
+  };
+  "0287d808513bc8ab41d3a122437451b3505e5a06" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/0287d808513bc8ab41d3a122437451b3505e5a06;
+    sha256 = "0kjqvqs537kjji645wj9c7g0vm49saz7844gmsvaxbxa7j6qpv8r";
+  };
+  "0294cec564dabb2b74767382fed8bf1d85c3dd6a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/0294cec564dabb2b74767382fed8bf1d85c3dd6a;
+    sha256 = "1bc87j7aqh55c08r95iqhjy7yqyvjfrhnl5p9nvd9rmsywlcdpy6";
+  };
+  "02b79c9e934ba5d5df21ca904400f6921b0e919c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/02b79c9e934ba5d5df21ca904400f6921b0e919c;
+    sha256 = "0ky6wm47c5nly14jj171nvr1hyx9qn027jpxzhffmdj1zd0ab1n2";
+  };
+  "02db54285fbdc7bcbc5072716c06102dadbe73a3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/02db54285fbdc7bcbc5072716c06102dadbe73a3;
+    sha256 = "08j35dhpj1wpsjck57w6sncy9vciqmhpnzsmrb8a698alb4nq4la";
+  };
+  "02e23f8b72f230a371e141cf422d6339edc7f136" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/02e23f8b72f230a371e141cf422d6339edc7f136;
+    sha256 = "0lgfl91hyy4isy03jp1lprlr6p6vq95vs408rr620xrrx8v9g1xj";
+  };
+  "02e31aefb786970a757120d82ef7e57d99598e2a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/02e31aefb786970a757120d82ef7e57d99598e2a;
+    sha256 = "0kzp6hvpclqgm6ik46ifsb7q8cnyc1jpmn9hablz3bbcgz1ja1v6";
+  };
+  "02e3996085d4a6eadcc0403adb002e453626ad38" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/02e3996085d4a6eadcc0403adb002e453626ad38;
+    sha256 = "1av0m7l2yb9k74482i60gbshpbiay25j6272p78vzzky55gfvvkq";
+  };
+  "02f911003167be7b08c3fbf9bdababa124958f48" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2489400-f6cf8f7e3aa44b46b137c223b0724bd6/02f911003167be7b08c3fbf9bdababa124958f48;
+    sha256 = "1a63d9d3ca0fhzniqwksxfs1q9fzxa8wz8mmcavnhmh2hcdf8l7s";
+  };
+  "037becd787cf315691a800ac53fc1ace30efc22f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/037becd787cf315691a800ac53fc1ace30efc22f;
+    sha256 = "19jwdg0gi8axng2jc52i39bahzyhsksmza8ich6xbga7vzmcslic";
+  };
+  "038a65feb0c32e0a8997e4798012f90e380a5fa4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/038a65feb0c32e0a8997e4798012f90e380a5fa4;
+    sha256 = "11c1sk31f1wv2by7fvmwjlw0bf2khjh1gn7sx5iib6bx10mfk6zg";
+  };
+  "03bb65f1dc5e3bf35f5d6d5d6068a10aed0cf4a8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/03bb65f1dc5e3bf35f5d6d5d6068a10aed0cf4a8;
+    sha256 = "1akwa8n1h491r45w8z4396bpg53szq42ac081ra087a92x699h59";
+  };
+  "03eac14bed108c28a0a4450fa4f534d145c12179" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/03eac14bed108c28a0a4450fa4f534d145c12179;
+    sha256 = "1y2gwhynvyr499kj3l4w5wj55q938n6swb8wbzily46r24g8d6g6";
+  };
+  "0419d8143ae34750eb7de7c51c4d3cd231bbce51" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/0419d8143ae34750eb7de7c51c4d3cd231bbce51;
+    sha256 = "1nr22bs71msfzp0ndi5hm7y4blv51039dpcv05a0xv4s939y16bl";
+  };
+  "041d9b9407ae8d58c7c3a7110af093916fee573e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/041d9b9407ae8d58c7c3a7110af093916fee573e;
+    sha256 = "14syxk0bgc8khzabliibvm82asc692pyxa8m78f3jii47gy6vwcn";
+  };
+  "042de486169ab637609e1b035138f64893e04ad5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/042de486169ab637609e1b035138f64893e04ad5;
+    sha256 = "0j5p0bid72xs8r63nbkyx77w89fy6d1kbx6axph5w6nnkr2flvy6";
+  };
+  "049aaeab9a2e4405e946d0097d1a3e824c128df6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/049aaeab9a2e4405e946d0097d1a3e824c128df6;
+    sha256 = "0d56izrz5cbgib0mxzd5zj6yzvfln4rglpvxi1h05l5xrd9rcc9s";
+  };
+  "04b9a9091bba671b960e607283c6434625072697" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/04b9a9091bba671b960e607283c6434625072697;
+    sha256 = "1sbhvy7dyir4gk6ignmbssmmhjkqm34rpzri9jv50k59lhdzrmz4";
+  };
+  "04e55b081d4e6680ca0da096eab39443e53aeb2a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621793-1958bfdd4e3b49f3a0ca6a4c08a60a0a/04e55b081d4e6680ca0da096eab39443e53aeb2a;
+    sha256 = "1f4mypy8nv0m4xzljlj9d5h13670r78lmp1nrzkyj6pkjaiz9l1h";
+  };
+  "04ec121ce824aec5caca1ddb70eaa21e0191a5b4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/04ec121ce824aec5caca1ddb70eaa21e0191a5b4;
+    sha256 = "0a32ss082pizm8qybmpsl91mc60290wj192rlgbp7q7rvn85j5yi";
+  };
+  "04f2ae9278db23034ee3cb0bbbe67db49b5881fc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/04f2ae9278db23034ee3cb0bbbe67db49b5881fc;
+    sha256 = "1d0l0kjscdgwm5sb454hd7n5vn0x61v78b7zklhjrfzmfsqxxijz";
+  };
+  "052ad62516b7d63eaf4c6410cd2dca0264734665" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/052ad62516b7d63eaf4c6410cd2dca0264734665;
+    sha256 = "1a70f5mk7z053i0xl949gngkysdg3kc810mm88mirzn501xc6rq3";
+  };
+  "05be3410a78afea71327d64933707b9f7550d2f6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/05be3410a78afea71327d64933707b9f7550d2f6;
+    sha256 = "1vb8vsjx7h1k9vdikm02lzwjpyfm409kh8q8bv94d0plh9cpg03l";
+  };
+  "061b4fb485e75b96f3266aff9a762a28b2d77616" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/061b4fb485e75b96f3266aff9a762a28b2d77616;
+    sha256 = "0f4nbrgdpb6dy6z0brk7fidx97svxljqcwng4skqg0rww9275hh2";
+  };
+  "0625d1c6055de9cf9025b2e61299912a56f88ccb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/0625d1c6055de9cf9025b2e61299912a56f88ccb;
+    sha256 = "150c0n1n1fa6f89pxv3rp8yxfcvkca3ygp7fwia0s8zcakn02ail";
+  };
+  "0668d99201136f1b598c5795fa3e58050020e8b1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/0668d99201136f1b598c5795fa3e58050020e8b1;
+    sha256 = "0cmd3ix5b39bakyrra0p9847lq14kb7jkvcl3hw30v8kww4m056w";
+  };
+  "067baa5f7a564bf867b5b337369950ad00e13e99" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/067baa5f7a564bf867b5b337369950ad00e13e99;
+    sha256 = "1jmdc1hpl7hgn22ws8357lg0v98a51d3qa1fqhq3bbvhcssgls62";
+  };
+  "06ebb79f97706bad4850ce9077a9e7e90185e324" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605188-b2b13e5f7b3d453eb5d6b0cde31b638c/06ebb79f97706bad4850ce9077a9e7e90185e324;
+    sha256 = "18ykxqm31gd1ij30a9vf8saygjk162k2jqmpybx00vqawqwbbcx5";
+  };
+  "06f561a38764b8e9c4087a97ed512c995363927c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/06f561a38764b8e9c4087a97ed512c995363927c;
+    sha256 = "1wassg3y5yd5i5jqsd528ddb8j9f65r4k5g981z6l70spk5l0v34";
+  };
+  "0702299294e21ac823c34d43de2a89140288143d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/0702299294e21ac823c34d43de2a89140288143d;
+    sha256 = "08wjf4zk7pba5ac5s2d26zlrq7ld12bd7l35xn2pz9lsd1j4qwry";
+  };
+  "070b80d72403fb102b91c2c7c1eababab6aec2f7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/070b80d72403fb102b91c2c7c1eababab6aec2f7;
+    sha256 = "0jv0j6qp1k1zwww3qvrckisa5cdj39xq9aw3ljsvdfsp10x4i4a3";
+  };
+  "07a88f4f32dff82062e33545b17b0011c4f3242b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/07a88f4f32dff82062e33545b17b0011c4f3242b;
+    sha256 = "139xl7bzcab78s1ma42vl2yqxflxrpgl8qglnwbfdlq1nxbj8yiq";
+  };
+  "07bac5d4a23c9a7bc1695e030017c8694d72a735" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/07bac5d4a23c9a7bc1695e030017c8694d72a735;
+    sha256 = "0f6pjix0slzd06yqgd7vfsdssc3qkqi3av6kvfmjcn22xryq2qn6";
+  };
+  "0818124e55b7ae14e580ada76b6fca5656c05836" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/0818124e55b7ae14e580ada76b6fca5656c05836;
+    sha256 = "0a3frk5viy0pv4ac7jv50j74d985hgq2dnjq6vgkrdcrir7zbz0m";
+  };
+  "084e5de210ff35e876901668dd00537a3a019ac5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/084e5de210ff35e876901668dd00537a3a019ac5;
+    sha256 = "08v9q7796r1nab02ghyvbdsip8bmw07cab6w079vvrqwkrg2ajcm";
+  };
+  "0898f76e0b61476b01184a79f59737933332711f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/0898f76e0b61476b01184a79f59737933332711f;
+    sha256 = "1qrz8ld9a5lv5pxs34icsic6c8fy1ydjx79zf35hvzdaqkds22jc";
+  };
+  "08aafc6b5bf5f6834032ea41a414bf57378e9d6e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/08aafc6b5bf5f6834032ea41a414bf57378e9d6e;
+    sha256 = "10v3b2bsx240fa9xvarh5r4klz2gnqg9ljf2h34j8pqs1fq6dvc2";
+  };
+  "09007b1cd8b9f90a5ab85549323903759f18b852" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/09007b1cd8b9f90a5ab85549323903759f18b852;
+    sha256 = "0vx3k63svxh9iyzy69vwkm6i9kays9jdkc8fzyd71k9wspq4ynvr";
+  };
+  "09510670263d739c9271c8d43047c1e427873509" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2702576-55d4c00170ec40c8a92540c9aee72a96/09510670263d739c9271c8d43047c1e427873509;
+    sha256 = "1wzb6gsxrvc3l1yhlaj533k1ha8c6s5bpnivs0jcqflnc3lfcza7";
+  };
+  "095aae7dd171f8fa10295657651b0889b387ad68" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/095aae7dd171f8fa10295657651b0889b387ad68;
+    sha256 = "0fig4i1afa9y27hhq3dkc5j36hwi5m1h2yviwv2kv60g9k01rsil";
+  };
+  "09601c1491f5d27c2533b4e7c9fb26a2e5eaa4d3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/09601c1491f5d27c2533b4e7c9fb26a2e5eaa4d3;
+    sha256 = "1b99ms4v6shf8ld7faxlckgmz8c8ii5avkhk88809ry6v4mhm2qx";
+  };
+  "09732d6bf762ba4d866616248b46adff0e12d76b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/09732d6bf762ba4d866616248b46adff0e12d76b;
+    sha256 = "0g096y34r6a3f270n7gkh96ybrjl4afgscpzwbk860dik4xkzvnj";
+  };
+  "09b220dceaa8205e3a32a877c58c678dfdb8555f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/09b220dceaa8205e3a32a877c58c678dfdb8555f;
+    sha256 = "1a108nfspg6v2mfgj7g310cxvgq1b3b9i8l0sll8p7dcwdqk5077";
+  };
+  "0a17d50561c9bf1d85e82416f97726243726fe8e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/0a17d50561c9bf1d85e82416f97726243726fe8e;
+    sha256 = "1ibf6hr9zkrvj7x4mlmmvi552is75p60rgbcrr2bxjnk5vd5kixn";
+  };
+  "0a85e36f224c350b058936fdb88cb656864411c4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/0a85e36f224c350b058936fdb88cb656864411c4;
+    sha256 = "1wdrvm3s4asra41zgr309y5rwlw0nng1m4cd8p4gcch8q8vybl1z";
+  };
+  "0adcf8b7399354848f3b1659ae1bdfebe7c5fb54" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/0adcf8b7399354848f3b1659ae1bdfebe7c5fb54;
+    sha256 = "0f3zipklkp21qmsi5y9bm5539pgjn9h85w3r7qxhsa7arq4bfv9y";
+  };
+  "0ae58afa6b821d9172b327831297925b165ba540" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/0ae58afa6b821d9172b327831297925b165ba540;
+    sha256 = "0xi644mlx97vyfzcp4zg2xy4d7xl6bpsqbyrja8vc02ddcqrz8ws";
+  };
+  "0b0c49fd66d2a1e20b9c3dfbaf57920646259399" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/0b0c49fd66d2a1e20b9c3dfbaf57920646259399;
+    sha256 = "1862n366gcqqkf5apc19qg6w6vmyap3hz5f91lskhd3i28zmzcr6";
+  };
+  "0b19af7719665b5651dfb183e0f462030575539c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/0b19af7719665b5651dfb183e0f462030575539c;
+    sha256 = "02015jsy2mzf4hkir3f11xxg2z21vrz5qnwyias322jr3g3k4x8n";
+  };
+  "0b2364f6696f39626a964e4370380b3fc8768b43" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/0b2364f6696f39626a964e4370380b3fc8768b43;
+    sha256 = "0nfz5g0wp7l4kbdjg3qvl0p2nzcravivw0bhbwb7zppmmrsz08b9";
+  };
+  "0b2cd11ad11c170163c7958e24f339bf66609001" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2620227-83084f9091244f6c9bba34d6d2a0fc20/0b2cd11ad11c170163c7958e24f339bf66609001;
+    sha256 = "0qhsp71xk2pj9dq3al2pghnh5w1zsvfwgg4ykm2czn8dqpr6v2fm";
+  };
+  "0b41a5fe69764ca460a102d4569d5cf0a96262dc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/0b41a5fe69764ca460a102d4569d5cf0a96262dc;
+    sha256 = "1w56h4m41178dyi9swrqjbl6jk6hz36i1ax27gmbvlmn71bd25sr";
+  };
+  "0b650b20c8c8aba9b4ffbfff4555352296b8026d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/0b650b20c8c8aba9b4ffbfff4555352296b8026d;
+    sha256 = "0z46pi0np99l1dd63b8c7wlpzn9aqgfs8m90i8shkb8rr83yvqrd";
+  };
+  "0b65847315b6c2c97cf1cb6e6d159e22233c8251" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/0b65847315b6c2c97cf1cb6e6d159e22233c8251;
+    sha256 = "14pcxkamnwscpdq1gw0jdmpxsvilq8wdgpzlgsifdmwhrbzq9dhw";
+  };
+  "0b6608a97e2540ea5f17c2efa77ffe1ee1b3c533" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/0b6608a97e2540ea5f17c2efa77ffe1ee1b3c533;
+    sha256 = "03j28mjv9qhw3inkj2sq9ri7vbajkfg4yq4fydqgas8zxiy7p5sa";
+  };
+  "0bbfc90e364f03102506acd5ad039a28e02cadf7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2618399-180c811b4d074c95af323aa82cdccb34/0bbfc90e364f03102506acd5ad039a28e02cadf7;
+    sha256 = "1p276i1gcj0hm4y3n46mz7inc0dh5naz2kj85aa07dy734qmnayf";
+  };
+  "0bcc47e413bef8dae40e79c9757941b0db15f97a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/0bcc47e413bef8dae40e79c9757941b0db15f97a;
+    sha256 = "0h6qjxy1p9x7yfyawygb44bhlmdli96riclq9jbw9dypgpywmff3";
+  };
+  "0be87d25f74713be10bd98e1e966d795cfe4e5dc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/0be87d25f74713be10bd98e1e966d795cfe4e5dc;
+    sha256 = "0pd540vl2hs57fsbjrxj0vzsilr8mqx5ad47kmcpsk3nckrq6p1w";
+  };
+  "0c8fc2ef1a59d232fd4f22a022e20d492f6e2a84" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2706207-4f57365c766141c988cbd0106cf38f5c/0c8fc2ef1a59d232fd4f22a022e20d492f6e2a84;
+    sha256 = "0knhyb5y0fmbjds7qjhgxq5cvicv925qbp5pkdsa4bqab8vgzjaq";
+  };
+  "0c95d970796b73f6699b10dc55a5f23caeb0e7b6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/0c95d970796b73f6699b10dc55a5f23caeb0e7b6;
+    sha256 = "157klpl089j437v12ngyfy20jipwdb252khg84dhz54dnmsl30l7";
+  };
+  "0cad2c40463fe8795e6ba38765dd8c775689eca4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/0cad2c40463fe8795e6ba38765dd8c775689eca4;
+    sha256 = "1h85ix8ilw61jqiihm4xgkhknsqwfmkhw6zmyc1b3h5iczwa56m4";
+  };
+  "0cb75afcdc3e2acc810f4eaab1c4d0e47b71e66e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/0cb75afcdc3e2acc810f4eaab1c4d0e47b71e66e;
+    sha256 = "1w1h8gj1sln0h4vsbqljnbdwmvfii0iykf9p8pfi616pi1rk0zrz";
+  };
+  "0cec09dea442a96d2db56d5f25830c204faf9c73" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/0cec09dea442a96d2db56d5f25830c204faf9c73;
+    sha256 = "1lik501r5m0jgnrlkimbwanwdd9j5j81xlwcksiyfaf4mx4jfd5q";
+  };
+  "0d1962bd98cbfd172126e306fff8cf75b8796bc7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/0d1962bd98cbfd172126e306fff8cf75b8796bc7;
+    sha256 = "1vjgl25j9v7qnv9829jprsgdlgagsh9rzv22fpq9yyiclxavhza2";
+  };
+  "0d5caa5b5d94abc659bf759feee88b37f4cf4618" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/0d5caa5b5d94abc659bf759feee88b37f4cf4618;
+    sha256 = "0660nyachjcvccrdkrarqwwalp5whg7ja998la6vqbpfq3m4x9dx";
+  };
+  "0dcd2138b0d77e84dd01b019736eefc97445f806" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/0dcd2138b0d77e84dd01b019736eefc97445f806;
+    sha256 = "0a5693qjs5ap9m3idqiadaym0k6j4saan6jd7mi1db9y66r4czsk";
+  };
+  "0e1315e453e0b243c9c0afc4965bc9042f5eadfa" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/0e1315e453e0b243c9c0afc4965bc9042f5eadfa;
+    sha256 = "1gjk3jjcnns9pcab7q7b8i46k8lsn5sjmp9vh0cswkl23v3qqwwg";
+  };
+  "0e1a08f56c646fa8ce394a0e41b8cab5a658268d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2608258-d12288bf79ea446a9353c7f9d223b24e/0e1a08f56c646fa8ce394a0e41b8cab5a658268d;
+    sha256 = "1905j12lxpla20xiv6f2cjmnp100mzzp8076n8j295fdn7vbrb9v";
+  };
+  "0e26168a7254c7ba26bf4c06b28033e8387c689c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/0e26168a7254c7ba26bf4c06b28033e8387c689c;
+    sha256 = "026w09ixxqzfgp0kbf60h7qwixd2gnx4v13kb9l3nn0g9p73slzk";
+  };
+  "0e4c8e5cf7fcfddf545be976ecd6d676331d54c9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613635-9840736c5f9647ffa600ff7b7e36f4ea/0e4c8e5cf7fcfddf545be976ecd6d676331d54c9;
+    sha256 = "0r42n43jnwi8w8z0z08p6pzha973qxy3km94w3n0ywn7f1b20wbp";
+  };
+  "0e6c43d516af17c6766c4b204af1a1358451d364" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2748421-cc8960341ac147a18a63389f5fd32945/0e6c43d516af17c6766c4b204af1a1358451d364;
+    sha256 = "1n4n643zzh11k77vwvcsqsz10s8pks5729qbh9wq9ccrs2b5k2kd";
+  };
+  "0e934ae8f346ea8f7834da572917c93731ee3e71" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/0e934ae8f346ea8f7834da572917c93731ee3e71;
+    sha256 = "0n6czxwf531phc7l9d1daymylsvlhspfa6byx73nj2piifrnzcm3";
+  };
+  "0ed7e089f52f2e816998664ec165b776a056ee6e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/0ed7e089f52f2e816998664ec165b776a056ee6e;
+    sha256 = "0nl7j84np4v6109dnvslal6p6w8ycx8ai9nnagkg8bcsq9a4ramz";
+  };
+  "0ee5f371d8dffa94c5df7c2c1337d8a7029c022c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/0ee5f371d8dffa94c5df7c2c1337d8a7029c022c;
+    sha256 = "0jh51nbdqcd7bz5sqj112q4y3iqr47lnp725f32s5ad9ywa2jrpv";
+  };
+  "0ef3349a6ee43e03e0390d117749207582bd62fb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/0ef3349a6ee43e03e0390d117749207582bd62fb;
+    sha256 = "14qi1p9fxb0mgvhnriqf1qx716ap18vfsjp7kdcmn295fqzkxl8x";
+  };
+  "0f5530749f1eb9cd579c611a2c19eb675d225841" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/0f5530749f1eb9cd579c611a2c19eb675d225841;
+    sha256 = "1i3ngjajjhv2yamk2hcza399iylja42ygjbp7kwqx6qxvc2vh02p";
+  };
+  "0f74ff9d91cbb2b2061d50909d5d7f093b845a72" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/0f74ff9d91cbb2b2061d50909d5d7f093b845a72;
+    sha256 = "06a5r840iksqmzch0l6hkngd2rv2s7dbwlp7dw1gwfd1ql9vm3c1";
+  };
+  "1015366202732d5b428dc71ad9ec5fa99ca1b874" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/1015366202732d5b428dc71ad9ec5fa99ca1b874;
+    sha256 = "1s4q8bzbxypj650pwrbb6mqr9yqskavdrcj8kw03hj5fz29d9szy";
+  };
+  "1016254965add7631ca2982903c6d0169b0d45b2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1016254965add7631ca2982903c6d0169b0d45b2;
+    sha256 = "17rp6pixbs3qi9xyzh0w7kq1hcywckayd1q2db77m48rg36gvg6s";
+  };
+  "1028eaded56f0e46a92e7188a0e4dae970bc77c8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1028eaded56f0e46a92e7188a0e4dae970bc77c8;
+    sha256 = "0867qswbqmmlam1l1a2d2ynzb1p5fwwp92mfb19n1ippgy6d128g";
+  };
+  "104b55382829a7351cea26478445bfa8e601d755" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/104b55382829a7351cea26478445bfa8e601d755;
+    sha256 = "0sr5c506zphmxclrzbq9b23jc8bcvwx58hpqzqg07d94qw9p4rsb";
+  };
+  "104eb620cbaf2629b13d4f5dc9edc9a888ff2e33" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/104eb620cbaf2629b13d4f5dc9edc9a888ff2e33;
+    sha256 = "01z335z3ddkvsx4z96m9w96hbksg29miqyn6wmvgpbsvgbp1wmgp";
+  };
+  "106f60f7c4e09a6444df98f226b3b925941480d8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2467022-c410c14385ba462bb86b4995040cdcb9/106f60f7c4e09a6444df98f226b3b925941480d8;
+    sha256 = "18xzn1iphddc7hyniyhrlsv36cijij7724psb9nq2dz5dpclg3db";
+  };
+  "10723922ccc14914c163a9546c40f01779891869" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/10723922ccc14914c163a9546c40f01779891869;
+    sha256 = "0pi4s4r7pk6adb8v5f1g9bs3jb028yqsg4d82nd7p99qw4q4q20x";
+  };
+  "1077e9c2c6e2f36520c08a148ce3709a6e10a8ab" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1077e9c2c6e2f36520c08a148ce3709a6e10a8ab;
+    sha256 = "1ms7r8pkbrsrb7brbcralbmxl20lhb8a77zhiad3b9xbwyil4p67";
+  };
+  "109ac2799187c1e94076a2db14922c275e94adbb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/109ac2799187c1e94076a2db14922c275e94adbb;
+    sha256 = "1viw9fa3gd8sc4qdfxh5x5b9pz8712xa15sfgjr16h6mb9h5y4yy";
+  };
+  "10bc8f77ff0fe6245b5ecf2b32ffcee97d4d42d4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/10bc8f77ff0fe6245b5ecf2b32ffcee97d4d42d4;
+    sha256 = "0f7i36149z2g7i4j8z7d5d3xnw476d3raiij87y0siixw0fl0js1";
+  };
+  "10d7ee1bc39b827fc0238870cf1aebbee7ed2b0b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/10d7ee1bc39b827fc0238870cf1aebbee7ed2b0b;
+    sha256 = "1088hkj96l5kxx3mww39nmkv2mzvc97syx2a9w6yys89n5y166qg";
+  };
+  "1142cb9f18f922166ae87d131c1fd09dce63f6d9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1142cb9f18f922166ae87d131c1fd09dce63f6d9;
+    sha256 = "1frmz1rbhzfinz06lg14pcz7mbr1sddl6v9n53p2dq64lkrpcsw6";
+  };
+  "11485b16ed1b0a1f37aef0aec2e8a7afbf490e75" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/11485b16ed1b0a1f37aef0aec2e8a7afbf490e75;
+    sha256 = "1i1619cvimdj4a6786prdr1c76ga37blckyx6zzqkarq4idl3k9y";
+  };
+  "11beb714095ff4a699b6f0a3543c8c2b82cf1a0d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/11beb714095ff4a699b6f0a3543c8c2b82cf1a0d;
+    sha256 = "1iyb0g8rbhhjs87z8iadjddk254z3jn6g9c80v93i6vgw8k9bcbf";
+  };
+  "11fad551f44760406d524cb0e1892580b9be77bc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/11fad551f44760406d524cb0e1892580b9be77bc;
+    sha256 = "00bj5pkychks7kaipf1dqkw7bhf0597g4qlh6rbm8qn4zd5f2747";
+  };
+  "12468bf1be869d88d9a8104ffde7c4887839843d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2608258-d12288bf79ea446a9353c7f9d223b24e/12468bf1be869d88d9a8104ffde7c4887839843d;
+    sha256 = "0h5a4gfvj1hjxv4lj0m4bzavfh8akwbz6wg027q0mjnr143k0pr9";
+  };
+  "12d1a73c1c063a416ba2a70fa0cb25ebee04cedf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/12d1a73c1c063a416ba2a70fa0cb25ebee04cedf;
+    sha256 = "0wkrw8jwjwhk3zvrs883xhrwcrppg8j3plnvxb109d67k7c1pd1h";
+  };
+  "12d213957fbfe643a97d5072b1f6ae30aeebcbb7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/12d213957fbfe643a97d5072b1f6ae30aeebcbb7;
+    sha256 = "0p4pzcn3fmqnkz93wk023zzs1f12c1xpsx7fkz2hv8i4jm8mrkb4";
+  };
+  "12eb0444499ce41f101b1b5f9dd6b87894949511" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/12eb0444499ce41f101b1b5f9dd6b87894949511;
+    sha256 = "19nggqdvkq6rap0sqnpkyrwsc882dzy1cg2lbsbd88s2nn6lrc3q";
+  };
+  "131d64c4948a0370d99897b2ad5a968b160e4300" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/131d64c4948a0370d99897b2ad5a968b160e4300;
+    sha256 = "1g0wf836rpmy7g291wyf0xwyr8g196cb0val8lzg5pa5qxivpr1g";
+  };
+  "132e734bba8f24cfaecbe6e03b85b76158a57d1f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/132e734bba8f24cfaecbe6e03b85b76158a57d1f;
+    sha256 = "0g7qw0y8006hmmfpmrz80628l35380960j54iqrp88jbqlqsd1p9";
+  };
+  "139f335e517878be52106907638e80140951abaa" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/139f335e517878be52106907638e80140951abaa;
+    sha256 = "1xdwmml0i40dvdi148fzk7xp0wcpx4vfp488159xl09p88ad9zk3";
+  };
+  "13b3c6250566821e05b35dd3296b5686aae3f325" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/13b3c6250566821e05b35dd3296b5686aae3f325;
+    sha256 = "0dcis8x0fpq6k33bxfhnh0j0bywr084l8nla6jkx6pfvwirq06cy";
+  };
+  "13c7b27a977c4bf9c4e07a19ffb106c1128995bd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/13c7b27a977c4bf9c4e07a19ffb106c1128995bd;
+    sha256 = "1387mczy66xavzg995734s7vg45nn895pm3pp8n2yrgzhd1qfzjz";
+  };
+  "13f0a72b4826430335caa709e76f92079ca53b13" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/13f0a72b4826430335caa709e76f92079ca53b13;
+    sha256 = "1w7wbwifr9896ndbmpxmx85md5hb1v8amd8paryn8jb573hjl28d";
+  };
+  "1411432bb3fedd8dc4b429d4f6929746ef0e0a2e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2622402-86d1483fa60742b6be9fd5a0b0b946e0/1411432bb3fedd8dc4b429d4f6929746ef0e0a2e;
+    sha256 = "07586dvm3qmccm5i0894lwcc8zfjx95c8vvdp619vip6xg825g5x";
+  };
+  "142674e220c8509ae1f8b001af30a95d6b08951c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/142674e220c8509ae1f8b001af30a95d6b08951c;
+    sha256 = "0bzlrpir8fw10360kzi422zbhaal8sqdpl77qx3fk3gxhvj26r2h";
+  };
+  "145ca8052bc6fccd7bf7af21f36664fc217f2f70" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/145ca8052bc6fccd7bf7af21f36664fc217f2f70;
+    sha256 = "1ip6wspykfvmxidbwfhflfzbcnqzfmmmhgax5nxg5pla2yn71kdk";
+  };
+  "1463ec95f086a9205c1ab27df290f232964381a3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/1463ec95f086a9205c1ab27df290f232964381a3;
+    sha256 = "186vk4bdmrd6ggyxz2db5713i3zkqzph0lyr3aivgj0a4ha8gfkn";
+  };
+  "1467cb6b7644671f3127567be26cf07d20b6da7e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/1467cb6b7644671f3127567be26cf07d20b6da7e;
+    sha256 = "0laxdgvsskc4gzbfnbal80ab7pd81v31qg8rcp9pjw1np5zpb63j";
+  };
+  "146b3768fb0d7880b8c751140d38a1177906de0f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/146b3768fb0d7880b8c751140d38a1177906de0f;
+    sha256 = "15v9nwb7m1746zrwfrgfgf8va5x88by8chsa3ivgraa5j6if1px4";
+  };
+  "1471837617ec5898ca2e49cf20ad5e0795687b7b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/1471837617ec5898ca2e49cf20ad5e0795687b7b;
+    sha256 = "0gycs7mhhq9y3c5dd014ggbbg3609kds5vzj3v45kkydkylqm0l2";
+  };
+  "148131344e6fe6a2249ce840916527aca52dbc35" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/148131344e6fe6a2249ce840916527aca52dbc35;
+    sha256 = "0y5h5v8vlr8jr8yyy529yrjg5rw75jpxz4fa7jmbpr6syai2bdwx";
+  };
+  "149605f77f4487d4f238f2439c46df83708b08f8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/149605f77f4487d4f238f2439c46df83708b08f8;
+    sha256 = "04rqssi1ndhgps7wsq1zxd2sk5p6michbfn1hi9g072gc0qp5c8a";
+  };
+  "14b7da233b40c5199352d0ad87f5c2ef529fbfc2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/14b7da233b40c5199352d0ad87f5c2ef529fbfc2;
+    sha256 = "1akz1k4wh5hz1w8zd6hvkmvc6w6hadw2psrr4rwpvdnkvhmnh3yh";
+  };
+  "14d50f80e32417f2f524ef471610a343fd6eb8b3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/14d50f80e32417f2f524ef471610a343fd6eb8b3;
+    sha256 = "18db45x0zfwxd9v0x1jmid7lklp3ib565d98sqjzbyzfvmq8q6f3";
+  };
+  "15299d434cd85410167be0405f54ccdeeaa3f831" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/15299d434cd85410167be0405f54ccdeeaa3f831;
+    sha256 = "0ivkh9ysa6nx4dw5bgqb00nynjzbn9gb1ihj43nccxskj0rynz7a";
+  };
+  "154306df1d2a4877cbc22db8224277c856f1b6b2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/154306df1d2a4877cbc22db8224277c856f1b6b2;
+    sha256 = "0jys95p7vg6gjxsphg1widz471ap8hw3y4vz1msw85clkgxh9szl";
+  };
+  "1567a031ece4d70d2c360767b32f084b40eeef63" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/1567a031ece4d70d2c360767b32f084b40eeef63;
+    sha256 = "04gzs1apaimrmkgsc76qlccqh4z7y7d221fxfaszdlvjaz9k7njs";
+  };
+  "157c6388b0a3c7a95bc29c5ae0f8e920a39dd7dc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/157c6388b0a3c7a95bc29c5ae0f8e920a39dd7dc;
+    sha256 = "10sx2ac6w30jbf40l8gixwv8zx4rkdpi5n8a0nfgbpay72rymi2k";
+  };
+  "15a502cd7ed28b9a7f8bb3e95ed15009b0e9a29e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2468936-39e1c39556f84e60be8d850c452aed67/15a502cd7ed28b9a7f8bb3e95ed15009b0e9a29e;
+    sha256 = "14zkdf9f592y3ivk49by1dpydv9rrpzggwm5997ykxz7ws04i1lp";
+  };
+  "15a50c3fc6a68c2b5fc5d130da66af83529e7ed2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2709658-e5f367f730d84b618e9cbc16aceb91ca/15a50c3fc6a68c2b5fc5d130da66af83529e7ed2;
+    sha256 = "00021z0mfhlx9pkfn04cv07k4xlzywj4nd19mydqppm9r0vw5fwy";
+  };
+  "15eddf9d2c822c3f5a608ff772c24ca1c2928c60" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/15eddf9d2c822c3f5a608ff772c24ca1c2928c60;
+    sha256 = "0jnslw7j2msim71pgjv2w8jd2xq48ipjw0iryw9i8vibgb30ri90";
+  };
+  "160a1829963e541ea0fc69e090047543f0c547a2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/160a1829963e541ea0fc69e090047543f0c547a2;
+    sha256 = "0lshw7xhf4z4jzanbrr6q8hmq8xir8w9syl6akfbpjdc25yab0jy";
+  };
+  "1623d3a181ce7eddf10a90c3c235075fe55bca69" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/1623d3a181ce7eddf10a90c3c235075fe55bca69;
+    sha256 = "0r8plai0830ywnqpmrikzr7y1hw34qbfgiigagrr04z97g775l4k";
+  };
+  "1627ab02a99a1389c8f3330ff31a92d4994ef631" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/1627ab02a99a1389c8f3330ff31a92d4994ef631;
+    sha256 = "042si54d7qxziwy6d23fqkcdifqjpqf8j1gs9s5w2csaqy1bjyvl";
+  };
+  "162be3e52c290eda8052be126f9b1b9f19a5e182" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/162be3e52c290eda8052be126f9b1b9f19a5e182;
+    sha256 = "01g1bj3sld338a22ian9f0mnim418l6j3n7zy23sk6a5qip4h726";
+  };
+  "16311b83711df9620e3ea0adad878eb4547e2dc8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/16311b83711df9620e3ea0adad878eb4547e2dc8;
+    sha256 = "084iaizc503s24cmximifd4gadlksslras2dv4l46ngik7mmwkzw";
+  };
+  "163784cb855cf579aa85c8d84241ac308c31d9c6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/163784cb855cf579aa85c8d84241ac308c31d9c6;
+    sha256 = "185fjh744ynh1s45z7ikyhw0mml2vwfa2db4byv8zv122x10844h";
+  };
+  "1679ff7ab2527671a6c79835501cd4447f769d26" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1679ff7ab2527671a6c79835501cd4447f769d26;
+    sha256 = "1rdlg3y9ihvhi2lf1isabj58y6f8lj24x6yb4xh9jqm8fgdjbn5x";
+  };
+  "167a3b509221baa789dd8c568b74ddcaf7c4a7c5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/167a3b509221baa789dd8c568b74ddcaf7c4a7c5;
+    sha256 = "143g5h823i5pcbqb30419i1k6mq2s3mhmcgcfn8v0jm83lwar4i9";
+  };
+  "16e421c9204b08586edd8de93b93b19fb10644ea" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/16e421c9204b08586edd8de93b93b19fb10644ea;
+    sha256 = "0b9ki8rj1xmy9zaa52d3zbq7jk95mjv8b17qyb0zrpirl51g46gg";
+  };
+  "16ff1b3c00e3fef8b809b49a5b63be510b23dc97" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/16ff1b3c00e3fef8b809b49a5b63be510b23dc97;
+    sha256 = "1fa3b7wri025cgjkd4f4v7pmi13qkza4i1f9zpmcpwfiwvvi8dgx";
+  };
+  "17a98e6cd0892c88290f9dd9e9cb3fde84e8798f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/17a98e6cd0892c88290f9dd9e9cb3fde84e8798f;
+    sha256 = "0yhrwdwjn7fszj38ihq9cac1gk44xinnrh506rglmcw81iwz4j39";
+  };
+  "17b2ed6bd21c462973aa928a668bafd1f8ebcfbb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/17b2ed6bd21c462973aa928a668bafd1f8ebcfbb;
+    sha256 = "1pw6irhilhicr1xkxf5pvv1ylkckxr8180nvsdnfigrzyk5732sc";
+  };
+  "17f24542b619ed66aa29fe28eb716b4dd4c33d84" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/17f24542b619ed66aa29fe28eb716b4dd4c33d84;
+    sha256 = "15ssnahf78zv5is9n69cd4hyn55iij0zcdqzg446bzpslpd2y1vr";
+  };
+  "1802e0cd4e93677f9da0d094475296d070a0a167" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/1802e0cd4e93677f9da0d094475296d070a0a167;
+    sha256 = "195dqkx2pwmymd6agn5k72rs6plp6nvap7gk7h5wk9yip51lkmh4";
+  };
+  "1819e4a555e0b22457eb52ec088f2d106697434b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1819e4a555e0b22457eb52ec088f2d106697434b;
+    sha256 = "1pmz470s77fsl1d2sqf2kdspb8k08xw6hw3f3y1wk9w3w10mcqfd";
+  };
+  "184edcd2f9fc791ab8f0ecbb980e124e1622311d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/184edcd2f9fc791ab8f0ecbb980e124e1622311d;
+    sha256 = "0zcc4qhgzg56hayaiqxjp63bxa0jkf8ws95kfm9x3b4va4qzg907";
+  };
+  "185535353a9576cb4f9e4a7fa3c1fe649d00f26b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/185535353a9576cb4f9e4a7fa3c1fe649d00f26b;
+    sha256 = "0llsp8z8av08d6dp442abpp4pwvc7l5flh9nd29q7l156dxz5nq9";
+  };
+  "185908a865ebe7f6ee31701211aad217de343c7f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/185908a865ebe7f6ee31701211aad217de343c7f;
+    sha256 = "1xmi888fc5hwcvgyw73g6f7gwwhwpybi8sl41dbrj5pjcvrj2clg";
+  };
+  "187cc49caa5b9c37b965dc6d5ae486c963873c47" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/187cc49caa5b9c37b965dc6d5ae486c963873c47;
+    sha256 = "1ghn25c2pxibw2wnr5c7wyk8hfdvchm27bqncnxi0vby0bwdis6n";
+  };
+  "18943d114a03b9994e64f86843cbfbea2c18fc60" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/18943d114a03b9994e64f86843cbfbea2c18fc60;
+    sha256 = "00dgywg4p8502rm5b8ykm5xqfb8i98nqip3z96vpbwqlqllxz2fq";
+  };
+  "18d1e1adb711eb56d874c79f49ae68b3e26fb044" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/18d1e1adb711eb56d874c79f49ae68b3e26fb044;
+    sha256 = "1zmdhkcbb8bsciycigj8x7ijc7wxcg5hj21588jimfl4i48zqw78";
+  };
+  "1916cbea932d8ec4cbe73743294b2456b6f82f4d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/1916cbea932d8ec4cbe73743294b2456b6f82f4d;
+    sha256 = "1a0dqqqmk6aj2j90qgf6qz91i37azisqjbrr9srxs42x8q8mhx2s";
+  };
+  "1919f737357402ffd6035ef99089bf4492ef39ce" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/1919f737357402ffd6035ef99089bf4492ef39ce;
+    sha256 = "1qnry1aa0hhi4cr279293y35ywl57llrkdgrmhpwi6cvamyfpyrb";
+  };
+  "196a7cd92cd85833aa987ab46cc84abad637e671" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/196a7cd92cd85833aa987ab46cc84abad637e671;
+    sha256 = "1xfbv83r1920v5lv4fpklmv21mmhfykkrfar0cm0yky3nyl93wi3";
+  };
+  "19bf552b5636cd53f93b288b3393447e0a9fa015" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/19bf552b5636cd53f93b288b3393447e0a9fa015;
+    sha256 = "02cxv7wmy2frhl6kc93y8r98ccpq9cdjji5pdyxniwmwjvnbd152";
+  };
+  "19c8ede828d4e84d3023a8cad20c4118e92c51f6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/19c8ede828d4e84d3023a8cad20c4118e92c51f6;
+    sha256 = "1br3pqv9fwrfcrxmxai88qa0wbi56ik5v66x4pzwp2k20ihahmny";
+  };
+  "19eb01d07ed61f10eba97cb487040edf44235d88" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/19eb01d07ed61f10eba97cb487040edf44235d88;
+    sha256 = "13pyc8jpln5a5d3nxbbgjkqrl8v3vngg0lzsgkjaf0ddk6jr0vjv";
+  };
+  "1a2a4f3777f219966c172ba8de9cb16dc214645a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1a2a4f3777f219966c172ba8de9cb16dc214645a;
+    sha256 = "0ghw873w98wx4xv0qwfqa0yshfyf6l58yymf64yw5gignay2jzf1";
+  };
+  "1a42be4a1a8f42a72c27e99abb9741fb826a99e9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1a42be4a1a8f42a72c27e99abb9741fb826a99e9;
+    sha256 = "15ph4vwd1r4gcv25ib0y93jvcxd4nihs32c5j1f5jvr8xgrgrn7f";
+  };
+  "1a546bb1c6ba2765dbc10b34126650d033464bf8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1a546bb1c6ba2765dbc10b34126650d033464bf8;
+    sha256 = "089h0npcbvxh3nisns5p4ld9pfyk18f16gm9zf90jjcq4r528dqh";
+  };
+  "1a5ecbad3eddb57b522f4873840b8a716d98b2b9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/1a5ecbad3eddb57b522f4873840b8a716d98b2b9;
+    sha256 = "04yfwjcj5w7iwyghhzbqfj4vymy9lfvc9ncxk9z0ll75f2sf0kil";
+  };
+  "1a81e6c5fd4cc760a6589fa20070d26a9cb6e53a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/1a81e6c5fd4cc760a6589fa20070d26a9cb6e53a;
+    sha256 = "0gyx0sq7k9cilcbcl2z49icf5jbknc1qcix2156nar2f8v5mqxmz";
+  };
+  "1aad9a745382e917c890acd98a988a1536087fe2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/1aad9a745382e917c890acd98a988a1536087fe2;
+    sha256 = "1hjxm0jz4bwllb08ix354i6cy78dy9vwklw9rpspdxqqkis8jxs9";
+  };
+  "1acfcb65de4dc96785b1705ca6c0029e5e4cea95" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/1acfcb65de4dc96785b1705ca6c0029e5e4cea95;
+    sha256 = "169xwg1jrwclx20qyci8az8rffmfn22z1x2zvib9dsmi3451mk3i";
+  };
+  "1af0a9938323c32bfd00373e1eeec3f0eb7267f4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/1af0a9938323c32bfd00373e1eeec3f0eb7267f4;
+    sha256 = "1a70ajr3s1msvsmyjmyg6vq8jh8ba5xc1f0k2afjycj3vzjrlgmr";
+  };
+  "1af8c3dcef0a363b208600f3db2ab066d1c407b0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738476-1eae05647f894f068d67ed64f86505f8/1af8c3dcef0a363b208600f3db2ab066d1c407b0;
+    sha256 = "13q98b90nhzqm9mz24nhdahz1i1gvja5gkab5p5mxsqbkm15r6vn";
+  };
+  "1b6ac4ad1dd42a8d52a6cb4a24b64cd86c92cc83" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/1b6ac4ad1dd42a8d52a6cb4a24b64cd86c92cc83;
+    sha256 = "03nfc20m6av56gqsg20h2jzc28crmvxs8ychxg0k7cmx7bzz1r23";
+  };
+  "1b6e2211b6ef64b74fd226f74bb7fdf14f384868" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/1b6e2211b6ef64b74fd226f74bb7fdf14f384868;
+    sha256 = "0fnzj5qxrmgc1mly6my307g9if6mr3pq8mnsdhz7sdpglvqx9745";
+  };
+  "1b929d889ec58a690a9fb4fe5c7e74eb60c339a5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1b929d889ec58a690a9fb4fe5c7e74eb60c339a5;
+    sha256 = "1mrvhvp5r3mhq490w4ymjdf4f7ymp56ic8waxdd6ms8xgkrq9cpa";
+  };
+  "1bc440e5f448e7dec6f97dbb519814d6c4b17b0e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1bc440e5f448e7dec6f97dbb519814d6c4b17b0e;
+    sha256 = "1vriwq47ck2inw22jl3vy4hn82sphlkdp22jzsxl9wg1bjkp7phf";
+  };
+  "1be30bac2f567e402ae48b89e8355a4b4e609b8a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621166-706a1811c2684ac5bae65fafa17839c2/1be30bac2f567e402ae48b89e8355a4b4e609b8a;
+    sha256 = "145nr5766qs6nhakskrh03b13m650n499q3q1pcj2yzb8qcmr8ml";
+  };
+  "1bfd97f204592ed48706e423bb6ab7a6128cad7d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/1bfd97f204592ed48706e423bb6ab7a6128cad7d;
+    sha256 = "1702mbcd7a2y4hsqmqy7cdr23h628f31spyj6wyajrixqb0xgr24";
+  };
+  "1c70d51c5e2d2a9ebdb87dc176b3cbe48c275309" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621163-719903f8599f48949652ccefc2a2d5be/1c70d51c5e2d2a9ebdb87dc176b3cbe48c275309;
+    sha256 = "0rzwsxpr3bwsgfpwci3mmy9wvwjkf1p6jam19rnnqz1h88w7ijxx";
+  };
+  "1c803eb30ed3570e150cffbce8729d1cc54e8fc3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/1c803eb30ed3570e150cffbce8729d1cc54e8fc3;
+    sha256 = "0p9iyll322a8cfdy0h1briv01hxw0iafbq43w5k7sy8kysv5ffl0";
+  };
+  "1c8d955be9265f85641ccaa5c0c9abacc66115f7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1c8d955be9265f85641ccaa5c0c9abacc66115f7;
+    sha256 = "0x7f04mypvy01v78xqjf2q9psw5f0fhhyyf2q4hww70s23xl3j2s";
+  };
+  "1cbf6a11e17024243825f5ea454051bf5b1e7d3f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/1cbf6a11e17024243825f5ea454051bf5b1e7d3f;
+    sha256 = "0xhgb9grcd2nca9yn495n5d0c0higjqcglhc2ra5kp57fsqmf9vx";
+  };
+  "1ce933b4731d07d18548a668fca861035354bbf2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1ce933b4731d07d18548a668fca861035354bbf2;
+    sha256 = "1bww5rid4w5zjn40701x1509qgn44wfhp9mz723axmdykp5ak6kc";
+  };
+  "1cf61777b0744f76064a8cb5a1d0bc1bb2d3165b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/1cf61777b0744f76064a8cb5a1d0bc1bb2d3165b;
+    sha256 = "1x3jww0rzkrx2ybx85ncq0d4zwa60x6h05sjm4r0gps8vmjalnl9";
+  };
+  "1d09bb4f8ba502cef13de6d570839e6790bf3542" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1d09bb4f8ba502cef13de6d570839e6790bf3542;
+    sha256 = "1xfdfyf3pkazb1583qjgv6planywm5ajhqpjndhwn0wkim6lakmb";
+  };
+  "1d5c9571ce51f244f1e0158e0cd49bd36f16bfc5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/1d5c9571ce51f244f1e0158e0cd49bd36f16bfc5;
+    sha256 = "040f2qb2g7jf9hzc48xkszy5adbwnbxy22jmp8v6q9h9qkfvm7w4";
+  };
+  "1d81bb3fd4494d2d93359f0cbecd2e9e20e67a09" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2532063-ce5a2c068f9844c8bb5d0e603da092af/1d81bb3fd4494d2d93359f0cbecd2e9e20e67a09;
+    sha256 = "16xman4991dvi5m50rmplp18xb89181261g5rczkjznkf7q2973a";
+  };
+  "1d82f1e693e8f317ca408dc5159b1a6afd317016" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/1d82f1e693e8f317ca408dc5159b1a6afd317016;
+    sha256 = "1ng1h62id2a1h3kd9mhakbfr568wkm2whbn2lv2x4l1q3ahrw9ix";
+  };
+  "1dc7018f35ab6ebe2908608910fbaf9214506ecd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2616691-982be94b99b442419e99de37630ca843/1dc7018f35ab6ebe2908608910fbaf9214506ecd;
+    sha256 = "118xrnwqmjfqndg3shn1iw90jnjvxbmr6y9ws0zrn4bas0bsn9bj";
+  };
+  "1e0c495e2e2fc0f9ab567761cfeec0d8659f6572" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1e0c495e2e2fc0f9ab567761cfeec0d8659f6572;
+    sha256 = "0423h6jq38k03zcfrnh1kkz3dsplpyij4ysrqqyyagni3l0wpwad";
+  };
+  "1e8e90fc8fbee70866085a1fbd7ee5585941dc31" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/1e8e90fc8fbee70866085a1fbd7ee5585941dc31;
+    sha256 = "1qdm6qkkmxxcml9bi121dvg36j55qzzzy7hslzg5ap8c65vcd00x";
+  };
+  "1ef5c21107774059ed6c5010dd2d5f3373c81445" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/1ef5c21107774059ed6c5010dd2d5f3373c81445;
+    sha256 = "14lmgyagsk3sszh04w9r4gnyi99vhqkccy9408fypxs33l3g2n3a";
+  };
+  "1f10b8e0a3d6f6fdfe5b451508626eda10e3e771" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1f10b8e0a3d6f6fdfe5b451508626eda10e3e771;
+    sha256 = "1plprfagzg8izyrr3dy5wnmlp0sm76kg0w36001j105accnqkn7l";
+  };
+  "1f3815ccc8afbd78900f57993ac9ee538ad3a776" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716370-1fe4be93d0274863a43a7797419557e3/1f3815ccc8afbd78900f57993ac9ee538ad3a776;
+    sha256 = "11i9z6hzviapkp8llkn96m5nb9xmlkbxiv8196zkmqxp759a2917";
+  };
+  "1f8e075fc05cbc97e7fd21ab40e0ceeb595c741a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/1f8e075fc05cbc97e7fd21ab40e0ceeb595c741a;
+    sha256 = "11g2rvmdj5dv5r2kfrw5ccmgl8cbkkhjmbaqpdmhiw306fd9fq5a";
+  };
+  "1fe2947f6b39cef244fd00698c7cb7adcee1d927" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/1fe2947f6b39cef244fd00698c7cb7adcee1d927;
+    sha256 = "0kviyyjr9hqnibzk36fxnbk7ad8fb2a7gf3hdmlb88jq3ymd4bm2";
+  };
+  "1ff18f725dd963421e618df72bf8a01bbb35d02b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/1ff18f725dd963421e618df72bf8a01bbb35d02b;
+    sha256 = "1ki17xws01fvhk796f1qf7yshwgv1a9xnmg25iq2ikm47gjjx9bi";
+  };
+  "2061aaa6e57d72cbc697076a3bfff9ede7a0a405" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/2061aaa6e57d72cbc697076a3bfff9ede7a0a405;
+    sha256 = "1siplly88g11327ync8771kzpbdc9g75645fai37rvawip526cln";
+  };
+  "2099a8b27bb01df580dca27c74682abb819d7424" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/2099a8b27bb01df580dca27c74682abb819d7424;
+    sha256 = "1jjcpc1nqk10xhk5y53qv0xwzh34wjcvn2cykjxn5g10n1vs5iqx";
+  };
+  "20b2c00511aaf3fb29dfe2ad61683427686bdb7e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/20b2c00511aaf3fb29dfe2ad61683427686bdb7e;
+    sha256 = "1dkbivkv0vz5rdwaanjzvc47k1yczdgjb9w0qllxwrdgixacnbv4";
+  };
+  "20ce1ae8d2c0f8a6cc946c302b619dfa82a8d0be" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/20ce1ae8d2c0f8a6cc946c302b619dfa82a8d0be;
+    sha256 = "0jba3b03d4gb62a7zj758j856mgw5l16zw99xdcgp8qd17nwlksp";
+  };
+  "20f22f8b8176717ac951ccdc7e6f5f56806df59d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/20f22f8b8176717ac951ccdc7e6f5f56806df59d;
+    sha256 = "1fndrfy6azyh1ckzmq4261cs1mpq393abl1mc2k3cxgn67s4ymcn";
+  };
+  "211fe5f3ea5194f89c18a81f99259151734b4118" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/211fe5f3ea5194f89c18a81f99259151734b4118;
+    sha256 = "121q1z4mj75vmcvbvyzb6i05xl8s7nkn700fd156z65g7ywn1dfd";
+  };
+  "2130d3a7a6cb4b7985001c43cece413b95605a04" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2130d3a7a6cb4b7985001c43cece413b95605a04;
+    sha256 = "0bx84arn6w9iic3q5xwd9v20qlpgashanm12qwrxy9dpvixb6z0l";
+  };
+  "215f16be383b3e37f6ab866a94263c078729c9ef" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/215f16be383b3e37f6ab866a94263c078729c9ef;
+    sha256 = "1k9dqr8ll66yp75mv2rx7if4zknrb02yb927xkwb2vvf8smy84x3";
+  };
+  "218b41b249f8b8cc60c48cdfe5f9f3139acec694" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605020-6cb4e3cef2f14bbc9f4e8bd763c3120d/218b41b249f8b8cc60c48cdfe5f9f3139acec694;
+    sha256 = "09iqnxhngdhsysdvlr05nvz261x7y320b66pgl3m5q5nm1b4vxc4";
+  };
+  "21907541d849646ca7b37552024a6bcbab11cce0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/21907541d849646ca7b37552024a6bcbab11cce0;
+    sha256 = "1dscgs1k5p0nsxkfhmwiw29vik2zs317gks9hb6hlkcl62852snl";
+  };
+  "219229e93fb1bf7a335603340498ba0d7dded08a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/219229e93fb1bf7a335603340498ba0d7dded08a;
+    sha256 = "19wwpdx566x9bj3ygiyni23z7q2qdj9nxvzl9wb5nym3nfk75zq5";
+  };
+  "21fa784bbf679195e305e3c41f0638cd402f6834" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/21fa784bbf679195e305e3c41f0638cd402f6834;
+    sha256 = "0iga4d8n471pvk1jfzkg0mvz37lp3b3908dmqfls0lvrqivyi68b";
+  };
+  "220e020f8e3d2a2de2da4e1a95e72d0a2efe26bd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/220e020f8e3d2a2de2da4e1a95e72d0a2efe26bd;
+    sha256 = "0jiva87bjrriz0jyx153p6ddisckqam6wl7vzxlxwg9bhc9yadww";
+  };
+  "22118798b30814806475890a25dbd3082cf56d24" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/22118798b30814806475890a25dbd3082cf56d24;
+    sha256 = "1sdlqrj1k5adb1z19mjikbm8cdg12h2kvaprnh6pc4bhs9l8210b";
+  };
+  "222160b66bde04349f00f790676a49a8bd3f2aac" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/222160b66bde04349f00f790676a49a8bd3f2aac;
+    sha256 = "0nyd9x389a3bk22kpgmispq6a62y8p5gbjbzdchcznvfjvbg8mdk";
+  };
+  "2265f48eeeda05a6393f1268fedaea74e5d989d4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/2265f48eeeda05a6393f1268fedaea74e5d989d4;
+    sha256 = "11wk6krf02vqza7mxxdfm22bl19dfsdb79fd23m56yq3i154z65b";
+  };
+  "22b3cc937fab3025d3abf8d725b2cb3b1d12ef3c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/22b3cc937fab3025d3abf8d725b2cb3b1d12ef3c;
+    sha256 = "17blrcaa86q8my9b4c1gnp804w7csbrxw92pa5jcag1h68vb2dir";
+  };
+  "22c962e9607d75b5917d731e9a66bd74fd15f2a2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2458551-07195e4b171247cfbc0f6645046eda02/22c962e9607d75b5917d731e9a66bd74fd15f2a2;
+    sha256 = "1vzg92pqixpi093rjb8mvnmxd94dplhwpwwm2wkip9asis0wamcb";
+  };
+  "22f8914859f73cc332699e1c40e17cd44d700b87" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2597566-6e859699948f4adda2592656e3924b32/22f8914859f73cc332699e1c40e17cd44d700b87;
+    sha256 = "019zcs7safk4pldr47v9qn710q4d5cw20v8i26frwwqimnjdgjka";
+  };
+  "232d603ed060bcff36c5d452ec42caf19d74ec9e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/232d603ed060bcff36c5d452ec42caf19d74ec9e;
+    sha256 = "0y9jplgh3dcf6p3n6vsrs7shz60jj8kx8ccz8yldm9wy7sjqhkzj";
+  };
+  "232eab324de501a6a4db9e0af2922875e7b6303f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2597177-394deee1ae174b2db1462326aa83252a/232eab324de501a6a4db9e0af2922875e7b6303f;
+    sha256 = "0dvnfwqnf1hwnbg3y0az2hc0zib18fizdska9w64xjni6zq3fy2y";
+  };
+  "2339c1d3bfb2db1621ef01225df981c1bcc32f49" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2339c1d3bfb2db1621ef01225df981c1bcc32f49;
+    sha256 = "17wks3c6nz4qxlz6qwgnbp14v4wda2ss5b8mhdiisc6zhsn2sn4f";
+  };
+  "23563ae9b7815c9196c9ea7c27b2c1b78c2e3b77" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/23563ae9b7815c9196c9ea7c27b2c1b78c2e3b77;
+    sha256 = "0v1pafnd21lss6pf6af5r3h5n3minzl45ckmxa1v4rmx3c3j8xnb";
+  };
+  "235cc68a11ea8011ea5ca0d1326a488fd48ee713" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/235cc68a11ea8011ea5ca0d1326a488fd48ee713;
+    sha256 = "0xcpafbrys5hkxqd76fx12cxjbf7i80b9206iz69hfprh0hsa2h6";
+  };
+  "236633a6e0745c5413ea190b0e07deb9e9b9d409" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/236633a6e0745c5413ea190b0e07deb9e9b9d409;
+    sha256 = "0ffj6q65nwwpr67pah2h3nzkp7m549zzb47pkbxsk54d06b9q1lq";
+  };
+  "23b01ee08bbe595a4dcb1a72014151b82e5e76ff" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/23b01ee08bbe595a4dcb1a72014151b82e5e76ff;
+    sha256 = "00fml6x864bvh4prq3bkpqn3q6ca4zwif7zxhnsx3ksia8kj9845";
+  };
+  "23cc3f11d38de5312fd5798024de0d232bbf2e68" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/23cc3f11d38de5312fd5798024de0d232bbf2e68;
+    sha256 = "1w0nr2hvcl0h8fkivrxval1l2vw4546rh9vpkwhybfwjh2g06q1y";
+  };
+  "2408381821f1ad904404880379feec1a2eeb2ad4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2547993-1fb84b9e293242c988e586c599eeeb56/2408381821f1ad904404880379feec1a2eeb2ad4;
+    sha256 = "159g6gb74b6nrmi7rln4mpk1yj3kzsf6bppx53i2sa9wcp0vzqyv";
+  };
+  "249d8cdb69fcbdd5f0dfef3a752eb2b7daaf01f4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/249d8cdb69fcbdd5f0dfef3a752eb2b7daaf01f4;
+    sha256 = "1jgr54z0ic0gaby8zml5kj7iyx60v1spf4a1wqiqq61frbkm4qgr";
+  };
+  "24f19b36203cb12aa6892d2d4399df0a679189f7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/24f19b36203cb12aa6892d2d4399df0a679189f7;
+    sha256 = "0drx0nv2249nfdbmlhc24isigf0bxv2n0vyjr62hpddb6xjqikq2";
+  };
+  "252915e59bf956eba7b4eb84256f1eb9c08c16e6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/252915e59bf956eba7b4eb84256f1eb9c08c16e6;
+    sha256 = "0qkvmqhirgdq9wlv0zkkqqa1gl45bw3i19711vfv487n37d2acmf";
+  };
+  "254bdc731ce0a3bef83fa6dd6c76771cadefeab5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/254bdc731ce0a3bef83fa6dd6c76771cadefeab5;
+    sha256 = "0pr4zh0kf2j52msqfwaailrgm5i091msf7s72nk9j5p4zjmcy4qw";
+  };
+  "2573361ce50bbcbed674e108ea4cbb055cd0f2ec" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2573361ce50bbcbed674e108ea4cbb055cd0f2ec;
+    sha256 = "1ms3v0avlbwf3p8g2zw9w5d90hmyf7ba5d3ya7w4mv9sc3a8h5v2";
+  };
+  "25a0a89eda2d7c97ae3a37ba14f151b4682617e9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/25a0a89eda2d7c97ae3a37ba14f151b4682617e9;
+    sha256 = "1656qa6wxbw19kcihb0rl0ssyhrr7pklhflrbwz7f9nsanw6zjmf";
+  };
+  "25a1ae1b60746c8e36e21531648e67b4c330d30d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/25a1ae1b60746c8e36e21531648e67b4c330d30d;
+    sha256 = "04wb1hkil0khgk7qsndar970wgky73f93ng3kgp4c9sgck46gkqz";
+  };
+  "25b04d770d7a50481f9276487a5ed9834119dabd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2602350-38e0d307a57a47baa00ee5f892c9ced6/25b04d770d7a50481f9276487a5ed9834119dabd;
+    sha256 = "1pxvxdxjidk0qsxr0j04jsmjxbjz8havi7ngqfx9dfl6w9nxc0vn";
+  };
+  "25d67f4de95951cb969435a84594979cd05c4091" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/25d67f4de95951cb969435a84594979cd05c4091;
+    sha256 = "0rjmj5395cbcg275yd47gmd8gjgq1nip77k8vy8nn4k2cqpn2rlh";
+  };
+  "260381a0277c560f8c2006d8bfd4f7069cd5640d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/260381a0277c560f8c2006d8bfd4f7069cd5640d;
+    sha256 = "03v2nzwhbb0f728qyd60l68w2nvpadfz8sppzr3y1zbz75rd2k3r";
+  };
+  "2616e3cfebab7a82dd81c3bfee37a62f3317e357" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/2616e3cfebab7a82dd81c3bfee37a62f3317e357;
+    sha256 = "1m01ldgxq49rpr4bvrqppkfk9l8ajrw0401704hgnz06xs3sczql";
+  };
+  "26407337ede0c844ad2b9b9e4eec2286431b0fc9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/26407337ede0c844ad2b9b9e4eec2286431b0fc9;
+    sha256 = "0kwhdyyg2wqy9z0x9v4rprvy84a1l65777fp9nlq5kqmkhl5qhaa";
+  };
+  "267f7ab24d96a8949db4cbc89f50cb9aa755e5e7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/267f7ab24d96a8949db4cbc89f50cb9aa755e5e7;
+    sha256 = "1m26i9cxxy8dbfgnmcpar7a19jr7kz57nxqnim3vbkycvfj0i75q";
+  };
+  "269c797991f91dddf54acd99a214152e8f155f8f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/269c797991f91dddf54acd99a214152e8f155f8f;
+    sha256 = "0k61nipciisz9q6riyd08n7zi78nnm5b454zg4rnpv4fxkxwrmkh";
+  };
+  "27098f36979ec3e79f5f7d7145dae3cfedf9b0a9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/27098f36979ec3e79f5f7d7145dae3cfedf9b0a9;
+    sha256 = "0ygswmzmb89m4mpl2zansjppn1r83dkwxg5r68ssk4isrr8dha8m";
+  };
+  "279afe349fb3fbd2a845d8f650df0bf1dbb73c45" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738466-c1f653d3509f461bb7b24e2d8451128d/279afe349fb3fbd2a845d8f650df0bf1dbb73c45;
+    sha256 = "1rcww7wpbygq82zlpnh6gh79yw9w7rb7zjlx9dpdkys3v81rkzr0";
+  };
+  "27ab355d7817d1ffb8eb77e96879aab84b9ad7de" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2599004-dd46a4b56e3e4811a26bcf6c9cddf877/27ab355d7817d1ffb8eb77e96879aab84b9ad7de;
+    sha256 = "104zskbv7ii90incdrl8gwqx60bgfghyl8si1rmnvch2ppnb9cmx";
+  };
+  "27e4175b9bbb4b175f9daaa9a824638a178a6d76" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2393838-48fca459a31f4f83a05d71c733f01d7a/27e4175b9bbb4b175f9daaa9a824638a178a6d76;
+    sha256 = "0845rjmqick7mmymkprd4bjpszldxrqcgg56kndy4x0qrmdmh5lc";
+  };
+  "2827f79a76e04e6ba05b6cd3cc73e4dfce1ca961" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2468936-39e1c39556f84e60be8d850c452aed67/2827f79a76e04e6ba05b6cd3cc73e4dfce1ca961;
+    sha256 = "18y83fxfr8r6fya771s8wn3fpwd0f0kpdd3bvnr5f0dqqqa84g1d";
+  };
+  "28438bc19c11df6c698e30491b3413fed60b2f0e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/28438bc19c11df6c698e30491b3413fed60b2f0e;
+    sha256 = "0vp18h36h5wdy17a31mwl2mf049kk2mkg09ldjidn25qfd4cdjm4";
+  };
+  "28783f63ac21ccc8c6ba68949502795e3a63f569" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/28783f63ac21ccc8c6ba68949502795e3a63f569;
+    sha256 = "19cd3p7gsd9ka8gmpzrabcya7pzmsmmjr3djmvj5nmraf4qxprd1";
+  };
+  "288cc5ec4da8903ba6077e259a8d9f1a0e5360c5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/288cc5ec4da8903ba6077e259a8d9f1a0e5360c5;
+    sha256 = "0ypv6mj46hibaa5hbi1i8a44gjmbp1y7qlvk4xywrqsj9fiadjyj";
+  };
+  "288d0122b6bf19ad09a81fb7a631a19113ae96f1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/288d0122b6bf19ad09a81fb7a631a19113ae96f1;
+    sha256 = "0araqg4vmbmpfbda1m1pj7b62rh1nd8pqs3smha0jpmfx1gj75xb";
+  };
+  "28926b6102371746bf5dd7c493c2353392ba76f7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/28926b6102371746bf5dd7c493c2353392ba76f7;
+    sha256 = "0b24j3l4ln2rjkc6bfczdyzpgzmc0kbai26di8afz2lsklsmpjdn";
+  };
+  "289a1b921105ce48ba09d95a245cd2daa77b05bb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/289a1b921105ce48ba09d95a245cd2daa77b05bb;
+    sha256 = "0p903d63x9zxqlfs23c48v52gmvja3p71z8bcc2qbryrcv7w50bl";
+  };
+  "289c460fd7eac93f2aa4548c3c805ce6f69f32ce" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/289c460fd7eac93f2aa4548c3c805ce6f69f32ce;
+    sha256 = "123pwgcmmyv03b1i9i6q6ks457hsipwbkvap8jfjvn2rppy4cr1b";
+  };
+  "28a656853baebf8714c795ebceb8ac04f687f67f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/28a656853baebf8714c795ebceb8ac04f687f67f;
+    sha256 = "0g4w1nkwi27mbh523511qwsdpjzi5lz9awcaha94031krjayfn69";
+  };
+  "28f2170447e86afc17f7c14affde7f2dd410c256" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/28f2170447e86afc17f7c14affde7f2dd410c256;
+    sha256 = "07y161rsf1j7s6pna2nsjm9jvzr9ai8i5hxwxd2q64labz0403z5";
+  };
+  "28f89206861167b3d68bb1c6d131985c152b757d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/28f89206861167b3d68bb1c6d131985c152b757d;
+    sha256 = "0rfkf21snlq5rsq39sfz9ala1qf4d85ns9qfy9k8sf274sr0z1sh";
+  };
+  "2914f32cdeac7870819661e0fe54b4833a9962c0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2914f32cdeac7870819661e0fe54b4833a9962c0;
+    sha256 = "1rkl3b1j864x9j1rbw7h7hhnhdb9m4r7b17py9kqvy6mfhacjanr";
+  };
+  "292a8fbb5a1aff92533e52ded470f85af5ffd6c4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/292a8fbb5a1aff92533e52ded470f85af5ffd6c4;
+    sha256 = "0flbsvx3d2x5qlxfj5fk9nsd6b2x9nn8mx65dqlwws2pvkw6ah8s";
+  };
+  "2944a0052b881a644f04844186daa4ae54aad523" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2944a0052b881a644f04844186daa4ae54aad523;
+    sha256 = "1fzmcs75y6q3fmlldrp6yk10bfw7vxmlg2swz995i9ry1avmjmq1";
+  };
+  "295f41723355e152d24716ed3125507d5155eccc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/295f41723355e152d24716ed3125507d5155eccc;
+    sha256 = "1gzxs53jhaskdwkiqw5kxvhfh02b9vcyql1v1kzii23f3vv1kvx3";
+  };
+  "29681ec614276ed188ccfff2342d818c3503f114" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/29681ec614276ed188ccfff2342d818c3503f114;
+    sha256 = "1f10r2iv2xq3zcl4bpcapzab9rkfscpxm83g23hszbp8yjs2bvi8";
+  };
+  "29ba225936b8addec463e591b235407a300ecaca" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2467022-c410c14385ba462bb86b4995040cdcb9/29ba225936b8addec463e591b235407a300ecaca;
+    sha256 = "1rvhh8hxxy6dv23m8qhn1bvy409szfxj7yz73dv6bzj4kf8xhm05";
+  };
+  "29eae01c452b3ae340b64ad4266ea1152b4e6729" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/29eae01c452b3ae340b64ad4266ea1152b4e6729;
+    sha256 = "1y4cmksxajljfgr8vmh7rvn7dlf43z2rw4hxfnxhri3bl55y5cg8";
+  };
+  "2a26f841843dd2551c447764a346353954884612" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2791326-4a233957ffc54c94b38c9ceaf84d58de/2a26f841843dd2551c447764a346353954884612;
+    sha256 = "0zn93s7bwy5z1cscs79bd27qxyjgdj6ry9j1nwkcvd9irw2ca14k";
+  };
+  "2aa18a35f72b72172e9b2c30c8ef7dbe2031303c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2aa18a35f72b72172e9b2c30c8ef7dbe2031303c;
+    sha256 = "0jj1cjhj4y50hjbsslxhrjc8byjngvcg4fllc6fysd01hdbzx267";
+  };
+  "2acb20ce30a8d1a5aa3f7506c94c9f8a93297c8d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/2acb20ce30a8d1a5aa3f7506c94c9f8a93297c8d;
+    sha256 = "07pr5hm5pv8s1qw3lmgasg8ppsga50h6dhpbm7z5lcnc70nd5fkm";
+  };
+  "2b1ea22d749ba6df5bafa9119fe8a0c0d4ba68c1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/2b1ea22d749ba6df5bafa9119fe8a0c0d4ba68c1;
+    sha256 = "1i5cvjjm2sjx77qahmk4p26gm30rri50fdm1jfypp45y0hqa34wn";
+  };
+  "2b2f6a55cc19d94c0130e833f2e70c29e8bfa2e4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/2b2f6a55cc19d94c0130e833f2e70c29e8bfa2e4;
+    sha256 = "0z3vk2yn1afbkx5lni2pwii3v9by37rixz1brws112h79a2mnbd4";
+  };
+  "2b83155ddf092ccd8d8baeb9898fe084b587e82d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2488287-03e6f1d9f826475c81f3125cbcc669d9/2b83155ddf092ccd8d8baeb9898fe084b587e82d;
+    sha256 = "1jg06zvfzbz1s34wfnvcnkpjhad8kmlcf0byf61dyfacjw0rpfr0";
+  };
+  "2bac5c303baf3d4800852e359ebe06398d185cd9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/2bac5c303baf3d4800852e359ebe06398d185cd9;
+    sha256 = "1wg72mlyh82ah0p7fxkj83wkllx6r8ya0x9adizvlaf8mw7ymhvj";
+  };
+  "2bc488cec0bae3f273fcf9d172b61b9a12489423" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2622232-9cbce5f5f69743598cf4bcb212040bd6/2bc488cec0bae3f273fcf9d172b61b9a12489423;
+    sha256 = "10bqvkyzynfi9k4s697i6qzpfc3p5dyw77k3wqsdm686kaaa035x";
+  };
+  "2c391f34048aae95fed7d9649088e50dc62d614a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/2c391f34048aae95fed7d9649088e50dc62d614a;
+    sha256 = "0k6vzh8kkfvgb8km5jd6qn3fw84snm9xz0fmx3jffc7g5n1jywsz";
+  };
+  "2c42aecf4d302508d97a42889f9c616197b1bd9d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2c42aecf4d302508d97a42889f9c616197b1bd9d;
+    sha256 = "0f7h2w6pppdi7gp8h50528xf25d382fkf1mckckzfilvs3xvsqrn";
+  };
+  "2c6a334523bb0b39b337ae9f3754d787d930b6ce" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/2c6a334523bb0b39b337ae9f3754d787d930b6ce;
+    sha256 = "1537cbvm3byiz5yifw43236yv2ffr1h9xn5kn1m3x031q1lkrvj7";
+  };
+  "2c8420f6e48f529d116aafee46759cdf99e8a724" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2748148-aeba26080cd64d52aecc49d22cba05f4/2c8420f6e48f529d116aafee46759cdf99e8a724;
+    sha256 = "01bc98a4q8h02f3iclrd99sg215jpznqr5dviakrhakvyg2qifm5";
+  };
+  "2ccd26d6297607f50e2fd8c1b54cde1f6e6509a5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/2ccd26d6297607f50e2fd8c1b54cde1f6e6509a5;
+    sha256 = "12w39ljrf6nrvixky4dzx8q4izwba17a8bc65f561wp49305rq8j";
+  };
+  "2cd1739a082210f13445cb6acb076e89cb209759" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/2cd1739a082210f13445cb6acb076e89cb209759;
+    sha256 = "1g8miwfg84c0z6hxm2j7lqk7khbvk80jkzavb0fwygyml9xlwgfv";
+  };
+  "2cf7b40136915c48e206e1052021eb226c0050ca" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2495503-7390cc25898b4ab0a4f9f846f2fd7754/2cf7b40136915c48e206e1052021eb226c0050ca;
+    sha256 = "0gs5ylym2j8sk1jg4b6217nchv10d9bigl1nd94amzss2d4aq86j";
+  };
+  "2d54103141e313b63ef5cf774325a15054e9ff39" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/2d54103141e313b63ef5cf774325a15054e9ff39;
+    sha256 = "109gvy1i6g2bk3cj0q833gc2rc2mg5w34q6j4jx6ff956dvl9drb";
+  };
+  "2d883815049fa9361c8c5c425fbea36dcd903c7a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/2d883815049fa9361c8c5c425fbea36dcd903c7a;
+    sha256 = "0g2ld1zbwck746j2i2gl61xplp4rg54vw7yk9rc81w60889z7zbh";
+  };
+  "2dc37c85bc4dd351cd3d177f7e6f986d186bd1f2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738466-c1f653d3509f461bb7b24e2d8451128d/2dc37c85bc4dd351cd3d177f7e6f986d186bd1f2;
+    sha256 = "1nf42p4lzwz88g91wc9i4vcawsdnskjf4s93sha70mx38xbk82fd";
+  };
+  "2de8f1186afad5e4c4f23315078e4d2bf6df4264" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2653899-1a26143a64884f27a8bfc418cb1e75f0/2de8f1186afad5e4c4f23315078e4d2bf6df4264;
+    sha256 = "1hcpcss34rv1q9cw8g3lnqfxhmd4gqb52zll1g44biid1ybhjyqj";
+  };
+  "2e01332dbabb9d7f2325d7f297f41fcd48933c46" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/2e01332dbabb9d7f2325d7f297f41fcd48933c46;
+    sha256 = "07j0r50lbva8dzkpp1cym72995p9lsbc3hxkczhdydaff2cxkbpp";
+  };
+  "2e09a8e7ade5fdf179f0918bc2abac9c18e85901" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/2e09a8e7ade5fdf179f0918bc2abac9c18e85901;
+    sha256 = "1sh9srrwzs9fzy1ds452h8dzangi8q2kvnn9sq39b8cpgffjy1qc";
+  };
+  "2e601894255189d2db25a10b7d612d09c725aba7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2e601894255189d2db25a10b7d612d09c725aba7;
+    sha256 = "1y0pfngnbfzc7zlwalf7w1f97fx6aclrkhzl91axjdgnkwcnnp2f";
+  };
+  "2e6729373c277fcfd3a59532e1e7738523370fb8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/2e6729373c277fcfd3a59532e1e7738523370fb8;
+    sha256 = "12farscg3s037w3mylb5s7xnv4gzriqpbgadg7jxpl4znpdafdy2";
+  };
+  "2e6b877018994d97122a9b698eba651b59cbe02d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2e6b877018994d97122a9b698eba651b59cbe02d;
+    sha256 = "1pgfa4bx7sy8x7dq1zy0jifkaj2jmw12v0fnd4wdcnkraw9wh25y";
+  };
+  "2e8c5279ef8b2e93ab8c738c3e9b8689fc63b839" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/2e8c5279ef8b2e93ab8c738c3e9b8689fc63b839;
+    sha256 = "10hff6yk8q7kwn3557s4fbx7gbhwxsk44j7h8xqn26qzm6xbwd34";
+  };
+  "2ecfd27e7e8beaa971269c4d29040f148b7fdf07" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2ecfd27e7e8beaa971269c4d29040f148b7fdf07;
+    sha256 = "128y3l95zg1qxz9bwf3wzjb8hr89d3v74dix0c4qiv4srk300d1c";
+  };
+  "2eddeeafbb16203bad1207fe3c70aaf2e165ebea" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/2eddeeafbb16203bad1207fe3c70aaf2e165ebea;
+    sha256 = "1gr063b3z1q7d7q9ygvyj7qh1z922r8c2mh5aw2wq0s15sxjqq7p";
+  };
+  "2eebb65cf7012650afcab43c7f2f559c86b2f3a3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2eebb65cf7012650afcab43c7f2f559c86b2f3a3;
+    sha256 = "1v1kwg15r7fns0gash84zff9r25amphma6jfpzl2yr2qcydyqkdn";
+  };
+  "2efd964b62d457693b93d311acd7d54dc4e7f177" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/2efd964b62d457693b93d311acd7d54dc4e7f177;
+    sha256 = "1kd99v2l23ming81m799zz666pyk7pvzlykd9iqd9a1b8xi8q80l";
+  };
+  "2f143d8520d94bbf2cb250b35a8f79e3d3e8572c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2f143d8520d94bbf2cb250b35a8f79e3d3e8572c;
+    sha256 = "1wrzkwv1vl3r7hczgmyxw4gv2nlwjivds8x1myicrb3wqz85b2wr";
+  };
+  "2f3b66c8bc4bc7ba4a38982c19f7aea56a40fa44" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/2f3b66c8bc4bc7ba4a38982c19f7aea56a40fa44;
+    sha256 = "1bz12dwy7yyg4niq822jqv7vi5g7mmfiscsdbay08184niw1a2fc";
+  };
+  "2f4b14734a09e63c0347c348f77cd0da3c72b561" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/2f4b14734a09e63c0347c348f77cd0da3c72b561;
+    sha256 = "0ypvfnnsl2q15qmqkq9qs1mfmyk63jjxhr2w54v7xcxv40l2d0ah";
+  };
+  "2f8b4043d609acb0eee65a86210c9881d1e4a9b5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/2f8b4043d609acb0eee65a86210c9881d1e4a9b5;
+    sha256 = "0yqildrca6fx0gvhb08s3m4dwfkrzbyq877nkcykzid687q6f2h6";
+  };
+  "2fb0ce94e7960b83e88bc4d2687ba07c94e9d96f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/2fb0ce94e7960b83e88bc4d2687ba07c94e9d96f;
+    sha256 = "0jlakpvdmqscxgdwlgyrx69bdpfpx9bxinz56hwrfdqlsl13d6zp";
+  };
+  "2fbbb90552e28dbaf47f41fa63652c11c7b99c78" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/2fbbb90552e28dbaf47f41fa63652c11c7b99c78;
+    sha256 = "1w8zvb659f0xd5fa0bhclmrkavb82nj8xwwcan1rwys38vvghl6h";
+  };
+  "2fda5ea89a82d953d04583ab86b387b1b3f3dd6f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/2fda5ea89a82d953d04583ab86b387b1b3f3dd6f;
+    sha256 = "1l8slfjrais377xrpj9lm0058y2r4qb24yvh30fpxmw3alvw5wg2";
+  };
+  "2fdbf124501fb7d04dae2e4dea0e796f8a098f36" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2fdbf124501fb7d04dae2e4dea0e796f8a098f36;
+    sha256 = "1b4id5wcrfjl6b0qp5c1y1dq62g8sn7ln8j1idvi5ffwwrmsx8j3";
+  };
+  "2fe1fb9f98af4a68ceb9adee909fe7b67917ea81" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621991-64978bb873e64559b7c143597fba3856/2fe1fb9f98af4a68ceb9adee909fe7b67917ea81;
+    sha256 = "0n35g4sb7wymb0k22n0frapdhw6zz1aiiv5xynjk8c99pivdnism";
+  };
+  "2ff8709ada5b8bbfe994f55ce697983225440813" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/2ff8709ada5b8bbfe994f55ce697983225440813;
+    sha256 = "1h57h9z44acyrw5klcslbg9g7zxgxaz26d3ab18q2mp17mrw3wk3";
+  };
+  "3012eb0c18cf3faab0fd1a8290905b902456192c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/3012eb0c18cf3faab0fd1a8290905b902456192c;
+    sha256 = "1halwqjmiprn659fqcdfw5g3ffanx34j0ri8n00xmbwv4hhkvsvh";
+  };
+  "307b166459a0b56cda3d5d3235e3c39b37b2e2e7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/307b166459a0b56cda3d5d3235e3c39b37b2e2e7;
+    sha256 = "0hmc67ngk3s4by9k2kcl5kqi8vmkrqp0vaphd0v88z162vax44pk";
+  };
+  "30bf523aff5cc60cdbb2da5ca9b51226e6aefc9b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/30bf523aff5cc60cdbb2da5ca9b51226e6aefc9b;
+    sha256 = "0cvfn3vv6jhhpimc8s9q37k041c3qc8rrh1fkab89y1d1g430mil";
+  };
+  "30e4e0e87aa3c6ed5b9d99e89c3e3986727405b4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/30e4e0e87aa3c6ed5b9d99e89c3e3986727405b4;
+    sha256 = "0gpvcs6q6cprbirwndirz8a75d5xrsxdzplh9j2zknqkybwbdsyg";
+  };
+  "31513973d4d5ca51b8bb4b0b965dd53bed0284bf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/31513973d4d5ca51b8bb4b0b965dd53bed0284bf;
+    sha256 = "1y1lnwvzs2v6yibnxb5lxcc74gn2pgarqdqhs26501hf35cw400m";
+  };
+  "31a9943db56acc38a4a6083517d5981accfd7b0f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/31a9943db56acc38a4a6083517d5981accfd7b0f;
+    sha256 = "0i6n6hhcjg2ccqxmajmb3nhwbfx2bkfszxycs1k4ip34yhb7fbcd";
+  };
+  "31b00e20c26ba53e1e4071f88ae88e478dddc667" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/31b00e20c26ba53e1e4071f88ae88e478dddc667;
+    sha256 = "0n9fwvmp1r5h3z9sbqx1ywr1azm0ckrgk4j2557n06l4f539bah5";
+  };
+  "31d76d0dbcad8d9f1b4242247389a533fb8e3ca1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/31d76d0dbcad8d9f1b4242247389a533fb8e3ca1;
+    sha256 = "1iwqppypjqvq32csylhbrq7kjcm1533fdaq4m6pdnb8cf3q0haa3";
+  };
+  "31dc2af99e1bb1eecb4ddcb3b2983a0563cde9f6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/31dc2af99e1bb1eecb4ddcb3b2983a0563cde9f6;
+    sha256 = "03awckc4gh0ypdkglzhy4fg79fik904nczmwpf4vwrd83xin7dp7";
+  };
+  "3227bc9c7feb2325ecd2c4144ae0feae8ddc8b90" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/3227bc9c7feb2325ecd2c4144ae0feae8ddc8b90;
+    sha256 = "1k11sd1jsbbcgr71jn67vq4zjwxa96y8qknl4b9p3333skixvhmy";
+  };
+  "32860f0809372d37c40310daf0184877322fc636" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/32860f0809372d37c40310daf0184877322fc636;
+    sha256 = "0dg7hjwhpbfbqxwn4dgclpfrbbrjn5l8xbdpx9n3fvsrr861zdxg";
+  };
+  "32bb97834c48d10d8115a0167b8372bca6b8b179" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/32bb97834c48d10d8115a0167b8372bca6b8b179;
+    sha256 = "04z8ppim2mh792m2fqw2xws7j1m6xrd1jp1pcn7lgfaiz98yxvr1";
+  };
+  "32d809d2943a46adfb06d390602d4be87fa510ba" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/32d809d2943a46adfb06d390602d4be87fa510ba;
+    sha256 = "04fn639135gmvmrq4i7jq0s6k8rfd3jj4a11740avbpbynw9gr25";
+  };
+  "32f81135ef65d05728ba2f1c5b5f3935a52334d7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2467022-c410c14385ba462bb86b4995040cdcb9/32f81135ef65d05728ba2f1c5b5f3935a52334d7;
+    sha256 = "0sczgfd4kksl69gw3zazx7r046vb3dxgbpb6njzv52yj5q13ha4f";
+  };
+  "330afd81b039c963aa95ebf7fcb5e01b8ce9ee3f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2620227-83084f9091244f6c9bba34d6d2a0fc20/330afd81b039c963aa95ebf7fcb5e01b8ce9ee3f;
+    sha256 = "0fv2jyajl8p8v9vini5iqmj6gnzzccjvmgzk121vmnhnm4090p1m";
+  };
+  "330e7d22693575d7c1e3bc8598676d1ad936a018" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/330e7d22693575d7c1e3bc8598676d1ad936a018;
+    sha256 = "08s5fpxn14xppyif4yx6w1sgrxb74q2aw4ar126b9pc1ihlw2c0h";
+  };
+  "33450e05fddd79d7692866accaff42adf9cb9a97" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2706207-4f57365c766141c988cbd0106cf38f5c/33450e05fddd79d7692866accaff42adf9cb9a97;
+    sha256 = "0yg8i2hg1mrx6mppwm1xs3hwpdv9m20l5881vbncyvgpy9a37kgb";
+  };
+  "3347d72ae38994059c896549688eac5a145b35fe" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/3347d72ae38994059c896549688eac5a145b35fe;
+    sha256 = "1pxfsdbmrhal911bb5pjmkk0j70nik0m5kc1b9i675v4h4ysfk3x";
+  };
+  "33870814a45b700847bc8d18c59c18d1daa72623" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/33870814a45b700847bc8d18c59c18d1daa72623;
+    sha256 = "015v4x2gkkcpnz7jf35gbq0z1x3b0drcyp21ignx3xz7w6cxz97m";
+  };
+  "33902cc01c7eda10161025651275a129da5ead6e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/33902cc01c7eda10161025651275a129da5ead6e;
+    sha256 = "1g3i1zx14zg5dmbs6pcrrg0xw1rpsqavvbrxd79m5r09c90y6kbh";
+  };
+  "33d0a2949662b327b35a881192e85107ecafc8ac" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/33d0a2949662b327b35a881192e85107ecafc8ac;
+    sha256 = "1x60d939njwsak5r3mga01bkv2c2ggvq28hvqnx6s0z7icch7vib";
+  };
+  "342f323d0582f6c4897956e82b4549bbf9c47973" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/342f323d0582f6c4897956e82b4549bbf9c47973;
+    sha256 = "1l6wr3rbkg5hs0wda43c1dk2gfg2a9r53rki2yls0i9xirhfmkd7";
+  };
+  "345fb7a468fc7c5315a11b86b2c600ac91955213" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/345fb7a468fc7c5315a11b86b2c600ac91955213;
+    sha256 = "1jw46pcrndls655pyx57acdj44v4kr3jg7b04ibmxc31j0mn1955";
+  };
+  "34901ceb8b3afa22d4a75f06c3c465a3292592d3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/34901ceb8b3afa22d4a75f06c3c465a3292592d3;
+    sha256 = "1lmnfbi5l6fk6p4iaa30dpali392xm8r1fz1nd0jil0zr7d3kcll";
+  };
+  "349fb1419c99f4b260e3bb7b3a7cb5273c5b88dc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/349fb1419c99f4b260e3bb7b3a7cb5273c5b88dc;
+    sha256 = "0xdrf7zqci1ffn6w0pw8hq4ijbppbka72fb2lgrqjiawzmhh1i5h";
+  };
+  "34a9c86849d93a7f932667ae0e2d9fc3f4aceeb7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/34a9c86849d93a7f932667ae0e2d9fc3f4aceeb7;
+    sha256 = "0fvrksn1668yxx9fbpchawvnah6n4zpicc865djhfqq1h5vfndfv";
+  };
+  "34b38730a025a0c75cff4caa03512a0054d0695c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/34b38730a025a0c75cff4caa03512a0054d0695c;
+    sha256 = "03m8rvh9hrz1rp0004vav5gdkj2c79j2h3adhjlbgcx8llr3z3p4";
+  };
+  "34da962d8bda23fc14978d82c2c5fb761acc5815" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/34da962d8bda23fc14978d82c2c5fb761acc5815;
+    sha256 = "13xv0nb13z4f57xf9rvnnd73ssf8cx26mvagjmikzsi7chvbpbwn";
+  };
+  "34f9df3c5cbc087be9cf8b8b2084287fb9f3b2e2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/34f9df3c5cbc087be9cf8b8b2084287fb9f3b2e2;
+    sha256 = "0dywks9jrd72xlmxzvcgd5blphf89r98g5h6k76grmc9k2mswwv3";
+  };
+  "351da091078402bf85cff8964a50e1ecaf81e7ce" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/351da091078402bf85cff8964a50e1ecaf81e7ce;
+    sha256 = "1qx85bsc094gzng5x426d6gcbhfjnqhahly3s0dq3g3vw915jl2s";
+  };
+  "353076c56a6ecfb890a7ab5f30c881a73e09d508" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/353076c56a6ecfb890a7ab5f30c881a73e09d508;
+    sha256 = "17lbpk2zkm36l67lfbrmf0wc8x47ywkji127592q707wc4zgh397";
+  };
+  "3579a812b187dc0ebafb13d5914b27deab2c4367" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3579a812b187dc0ebafb13d5914b27deab2c4367;
+    sha256 = "0pnppnyx0nk9grvn2sqha2wmfky42f92mvnxs7scavg913zxi3sg";
+  };
+  "357fc4cd09e4eea77faa70a271346bfd5d0b8417" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/357fc4cd09e4eea77faa70a271346bfd5d0b8417;
+    sha256 = "05xfhmc9y3q31nrjsfnifx709l5yrss0qkilbw19da4lhxqknb6i";
+  };
+  "35b0e5ed5cbf20a0b47af4bb9ca6ffef4d3e5d8e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2602350-38e0d307a57a47baa00ee5f892c9ced6/35b0e5ed5cbf20a0b47af4bb9ca6ffef4d3e5d8e;
+    sha256 = "1i88krwy1kxphjcl4l5bxfp4z8dyl4lgj9nrw09dvj8k7azzjvlx";
+  };
+  "35e0d2f1b5d56bea19aa9443dd5c41b4ef095b4e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2638350-39632eb9e5f94ba4ab8e97fa2d5a3251/35e0d2f1b5d56bea19aa9443dd5c41b4ef095b4e;
+    sha256 = "16k5gkkwmwldbaf29yfshhawqxxq5ccpwylw8wklc56705ib3x96";
+  };
+  "35f95404a8393dcd6374b594b1c2bb5acce427ed" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/35f95404a8393dcd6374b594b1c2bb5acce427ed;
+    sha256 = "0qvh62961qhp0j46p18iiyv3fw783lrcljlxzr3vv3zszpvnqyhv";
+  };
+  "3639943c4bf99c8f284de9f812bf2cd6eff5d49b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2456855-d820875aa14148d6807c08cda631b764/3639943c4bf99c8f284de9f812bf2cd6eff5d49b;
+    sha256 = "00rdh4lcfb7mwlkqxzrpqd9g88znfajm1cbcd83zxdyc2jkipi18";
+  };
+  "363bd76bc4fa81ad344802f2fb8610153a5ca75f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/363bd76bc4fa81ad344802f2fb8610153a5ca75f;
+    sha256 = "0sllg3pgm9jqq73i89l1smrl2y35cgd8667q05v1x9ilhlxpb2zs";
+  };
+  "36922d450606299836b10b930c0c66af1f780347" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/36922d450606299836b10b930c0c66af1f780347;
+    sha256 = "0ribsanhwk7m3qvqydpkhvhi00js7n9wabi3c3l0jib6knndphsh";
+  };
+  "36923d3780cea992eb61b86d48b1a61297b44536" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/36923d3780cea992eb61b86d48b1a61297b44536;
+    sha256 = "0i4av37slygbl1xynai7h6cb7dsg773zgafdmy10jmc2bb8dp4ky";
+  };
+  "36af7f5290dd60c07f83b8a398eb9721c24a6154" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/36af7f5290dd60c07f83b8a398eb9721c24a6154;
+    sha256 = "0rwi5y9sra4pnxdw5l8ykf6s26dg5clflr76f66vdppvipd38rf0";
+  };
+  "372698b3d3b17da23c0c53958fefda69c1198f54" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/372698b3d3b17da23c0c53958fefda69c1198f54;
+    sha256 = "1824igxlj2yc3b2li4gapwlgzgx9gd3kw2gnlkcxdsw1m2h79npd";
+  };
+  "374b33734d17be020f3eec73cf16a100e905a8c5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/374b33734d17be020f3eec73cf16a100e905a8c5;
+    sha256 = "0d3ax4shw2y8bivqajmfgzmf3bg1syz6i91pk8jbl38i1007h4l1";
+  };
+  "376fa7bdb1a776f7100bfaa29f24a9b81bb5a97a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2701146-722550daa90f4e4996a6cdd478880969/376fa7bdb1a776f7100bfaa29f24a9b81bb5a97a;
+    sha256 = "1znfn4asyx1spinx8jpc5r479a30n5cnbb4pvlas6sb3hy8q68hd";
+  };
+  "3779adbbb84b7918fcaa4bc8df4b64a45e50aa88" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/3779adbbb84b7918fcaa4bc8df4b64a45e50aa88;
+    sha256 = "0g3gww1rq1z7lrnxw6gw3i33h799fbmh717qm599w47pq73xmffl";
+  };
+  "37a47bf076c47063d031b82f827412bf05a5f500" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2550873-dbd5ea4331fc461794c4770d56863ff2/37a47bf076c47063d031b82f827412bf05a5f500;
+    sha256 = "0v71m3c03xv44f17rznw6jbn5k7vac2g3547wsvin7y1vr7jhy11";
+  };
+  "37d805efe0d2358727b0deeb9f5c56b3b68a8478" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2653899-1a26143a64884f27a8bfc418cb1e75f0/37d805efe0d2358727b0deeb9f5c56b3b68a8478;
+    sha256 = "0chznyg2xnyx3zz2q9q6i9cdk26m6chcp6pjzm8lnvc4k7p2mbls";
+  };
+  "37f1c844684794da07d9c537b175855f8266fdbb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/37f1c844684794da07d9c537b175855f8266fdbb;
+    sha256 = "07ypy820rrps4d4icdv0bklaa6kyn50gyyaq5yspmwkn07rp5hbv";
+  };
+  "37ff9ca732f3611a92185cfbfd25e6eb7d3d2fde" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/37ff9ca732f3611a92185cfbfd25e6eb7d3d2fde;
+    sha256 = "0lj5ajjx53k7d7m770hdm0mfanfi0kj7vhnfi7x5h75gpzihi6g6";
+  };
+  "3811b277d1080f2314e9ffd524da841aefd84ce0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2547993-1fb84b9e293242c988e586c599eeeb56/3811b277d1080f2314e9ffd524da841aefd84ce0;
+    sha256 = "1m9hjjiskwc6xnfkyzbg52mx2alxl8qh19cawykr1dnd1qs2ngz6";
+  };
+  "38c9a6c68be0ce7a36d83391a637010447ad3301" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/38c9a6c68be0ce7a36d83391a637010447ad3301;
+    sha256 = "08j52b49p3ps6i78v9h04gwxzcbibg41i5dcxqi47vq9ihhb1nsa";
+  };
+  "38e0e2e02bc165327038c973058790e3962d6079" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2686985-76325fadec474557a67995f00383ea6d/38e0e2e02bc165327038c973058790e3962d6079;
+    sha256 = "0yb69a7b63sjcjha8lh1l86jlfxln1gz5y7gplqbj0m0c4qrg72v";
+  };
+  "38e6833dfb6b74f5acf23d984bb9ad01086e1f39" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/38e6833dfb6b74f5acf23d984bb9ad01086e1f39;
+    sha256 = "10ln9haj9317g49zmi5jc4dq56qs0b4qr8g1g6rypiw8ndlm00rq";
+  };
+  "38e79fc7612d6ebd7278e23e7d0a9df3b95155d5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2739939-d1b07735d39c4b8c8427e05b6d9e3571/38e79fc7612d6ebd7278e23e7d0a9df3b95155d5;
+    sha256 = "0w1lwm9dfrprxa3dcaln774c3l5b4ai2sssww81f8adjafbvzr7l";
+  };
+  "392d5e0536abeb83ccfc28ba9fb96e9d1d6507f3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/392d5e0536abeb83ccfc28ba9fb96e9d1d6507f3;
+    sha256 = "1b9a86drlml4cflilwa188i5ay69ydhpc3q477947vs5gbgc7ln7";
+  };
+  "3965204d2b18ccd0b4d2191500d373ac064180df" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/3965204d2b18ccd0b4d2191500d373ac064180df;
+    sha256 = "0k801x11n4zmfshdmb6sby0k29bjcd83hzcbwp0hg7vnnxqsmfm9";
+  };
+  "39935e746b413e3c60c9a519e893cd19db5425ed" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/39935e746b413e3c60c9a519e893cd19db5425ed;
+    sha256 = "1cr5666m83v6xkpwr2j51sf1c3a0q5kahh3j8ygrd74alm9v4wqd";
+  };
+  "3994a8a3195661395d89f209755bbab5ce1861c1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3994a8a3195661395d89f209755bbab5ce1861c1;
+    sha256 = "1jybg0wg5n99rsmzd4i3a1bs1p78gngzar0qan131scdywcv8384";
+  };
+  "39e7e3f8feb9564c8b90f2f6d630bb8ba96f2eb9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/39e7e3f8feb9564c8b90f2f6d630bb8ba96f2eb9;
+    sha256 = "098vn5ps7qv0qjs6fvrzyx9qiq9qw7pslnhy4djm4xzamxs0n49n";
+  };
+  "3a6db69d4f8128addbe24660128ecd2ed9fd6dd0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/3a6db69d4f8128addbe24660128ecd2ed9fd6dd0;
+    sha256 = "04kx57syka9vpvgh5mjlmc1gg8d2ng5snrv36vmw4gq3pm0dpfi5";
+  };
+  "3a7f7a47aca5ad86176f1ceafd77139a06b89e11" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/3a7f7a47aca5ad86176f1ceafd77139a06b89e11;
+    sha256 = "06vrb7nwi09vdkv8b143g2wz0wvn1qbp0l3l95g9frp4xkd6j8cf";
+  };
+  "3ab17699ce95c427b0c0f3466b4226e2e30b92d0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3ab17699ce95c427b0c0f3466b4226e2e30b92d0;
+    sha256 = "0vl7np8bpwcylsgdlvy8hmkzapj1a8pqywy0n01vk7q0fi0wxmc8";
+  };
+  "3b07d6bb5a24bb96557c48982e8b3389df33cfef" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/3b07d6bb5a24bb96557c48982e8b3389df33cfef;
+    sha256 = "1fgkqm5f66x937nlmbsz2qx2lnd276f7rjhcyf073prv9hwhi2vh";
+  };
+  "3b14a44c8ac4cda934824f4a48fdf11ae6dc27fc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/3b14a44c8ac4cda934824f4a48fdf11ae6dc27fc;
+    sha256 = "16y6n3nlpkccpafcbavp8qhcc9adyjfyw75wjafkaw5ixd7c89ag";
+  };
+  "3b1f533104a3f316e188203a3b20770df4580018" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/3b1f533104a3f316e188203a3b20770df4580018;
+    sha256 = "1wmryvw8i7zvkcb2z2ajafsngnj66cls3918n91d2lqihsjp5x6c";
+  };
+  "3b5ec1d1c8209489d78b2eabab46ec59ea1f65b2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3b5ec1d1c8209489d78b2eabab46ec59ea1f65b2;
+    sha256 = "1qvjpm5sy6544wfvnlgd5qa2sw9q0nd3dvxqdqsvbjfzf1da6min";
+  };
+  "3b5feab7a5f46b3129c78ca6512692588d73eb8a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3b5feab7a5f46b3129c78ca6512692588d73eb8a;
+    sha256 = "1q0is2ciaxcan8fzlf57pbwj096d1lhnym8653ifxbxii9jm7ng3";
+  };
+  "3b8d4ffa1666bbdbcc426ba6232275bc853755ea" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/3b8d4ffa1666bbdbcc426ba6232275bc853755ea;
+    sha256 = "0mws36ydilcpavzhc32jzxllwgkxsk7d5yhrfa51j1b894wn60qp";
+  };
+  "3b9f2ea7dea75e5b70ff3776eb46e114725fed92" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3b9f2ea7dea75e5b70ff3776eb46e114725fed92;
+    sha256 = "054gxl8l03zzib7awcq2va0gh0xisl7yzz2x4rdpiv97zm0hlzx7";
+  };
+  "3ba6f94d6907237623e86c589cc6e9a1399e5a2e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/3ba6f94d6907237623e86c589cc6e9a1399e5a2e;
+    sha256 = "022lj7l1w267kw44flfjpbsq9qj99xinw5qqxk352h8py2nddm2a";
+  };
+  "3bbd878e5357ee3dc1e752b07819ba87b7230ef4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/3bbd878e5357ee3dc1e752b07819ba87b7230ef4;
+    sha256 = "146g6zzaiwj2lcfazn6ap8ldqxs16cfdm6larc93g3yys16c87y9";
+  };
+  "3bc0fb4bdfdd1b6c1c684583efe02591afadb98e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/3bc0fb4bdfdd1b6c1c684583efe02591afadb98e;
+    sha256 = "1diniwvlf76vcfxb3cqxx2xdkwsvd486qwkdgfvwyx3np2kypk8b";
+  };
+  "3c01d8c58f5ec428fdb8057af5387b8bca2816eb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/3c01d8c58f5ec428fdb8057af5387b8bca2816eb;
+    sha256 = "0mrfagcmk325vzrhw1zb96ka5b0a37xm7g1k2b4s62xcl641qk55";
+  };
+  "3c048c63475cdefe078376d2fc1ab8294de64e58" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/3c048c63475cdefe078376d2fc1ab8294de64e58;
+    sha256 = "1gkh00i117krs57p2xwpi4s3vwby5na98nni0n5xf3aglqwa9anz";
+  };
+  "3c262ad594e83bd32b0d3a0f794b737101eb2874" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3c262ad594e83bd32b0d3a0f794b737101eb2874;
+    sha256 = "065r44gb0jsfz4m6zfvlj3w6wgh4fdmr52f353r5z1gxqqzqszr2";
+  };
+  "3c3769be5270bdf2ff4215c9f2f6c15d0ae05b7e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/3c3769be5270bdf2ff4215c9f2f6c15d0ae05b7e;
+    sha256 = "0ia41s3fvywhfgb2riqxq9mhhzy477yjix2v1bzq034g19bp4s1i";
+  };
+  "3c3a62993361bbb928b7f5c0407be6bee08da734" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/3c3a62993361bbb928b7f5c0407be6bee08da734;
+    sha256 = "0qn8mkxlll5rg4vr22xlwr6dmbsmvvyniry3jv7d3cj3bajqgavp";
+  };
+  "3c477e2e63d3533e62d654e63f012e59da5a3edc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2638350-39632eb9e5f94ba4ab8e97fa2d5a3251/3c477e2e63d3533e62d654e63f012e59da5a3edc;
+    sha256 = "1f625rs8277bqv7wb6cpxpv1ry7zcy4an9q5gq5iz0f56qs3hyxc";
+  };
+  "3c65149be3cd5e4689b4eda6bf5569d16b149f6e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/3c65149be3cd5e4689b4eda6bf5569d16b149f6e;
+    sha256 = "1zs20c26z86jwjx18zsppkra3d147vynyigibx0klrp0g2lfkpdr";
+  };
+  "3c6fd2f94e3497924851a5d8254666518d47a633" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3c6fd2f94e3497924851a5d8254666518d47a633;
+    sha256 = "00rh0skjjx7b8pd8mmnd2v35vhmsly1f0pnrvwyr9d5pfzsnxb6j";
+  };
+  "3c70f43afffaaed52bb87c78f1ecf8de846ce76d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/3c70f43afffaaed52bb87c78f1ecf8de846ce76d;
+    sha256 = "106bj18q36wr5f1k2fjfish63q6phzwavcl5fh6sq1vzlh6gggz4";
+  };
+  "3c8149ddaa7dec626f08fd4fc2d852a4536ddabc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621991-64978bb873e64559b7c143597fba3856/3c8149ddaa7dec626f08fd4fc2d852a4536ddabc;
+    sha256 = "1zl5kv0d37dhvkrhzzs9xn5qx1zpfa5nzy3cc4dvmfhsp74bgf7y";
+  };
+  "3c9ccdfb5da6f595a26f2e1f746cfc9f639e57dd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2625762-5759dd47f697403cb15f8e48090b1010/3c9ccdfb5da6f595a26f2e1f746cfc9f639e57dd;
+    sha256 = "17wp0p9miy3yll9wyl5kggdg8x1rlbjwpw1w8gyinbvlp87y41md";
+  };
+  "3cc84281c7db62939c39b08c06b3174dc52ae63f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3cc84281c7db62939c39b08c06b3174dc52ae63f;
+    sha256 = "06da44vi1v0gcrq4q3aanrqbpywqjrcm12w6i38kkwa8w2m7fq9d";
+  };
+  "3cd0df317d9f5715cd35c147537107dc3a588008" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/3cd0df317d9f5715cd35c147537107dc3a588008;
+    sha256 = "0ic2xh8327zzgrpgrcggdq10cx906sidv55ys6bn37yqcm86ihyr";
+  };
+  "3ce154ee1488f62d7804205c87d8e37504733e7a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3ce154ee1488f62d7804205c87d8e37504733e7a;
+    sha256 = "1gn1lmmnz00cbrm054q8wf3hxb2i7dhi7vb38dmgy4zwk67qdf3y";
+  };
+  "3ce4d40ab5c9c0141c6b805ed0eaa638cacc0e8f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/3ce4d40ab5c9c0141c6b805ed0eaa638cacc0e8f;
+    sha256 = "1zv992b5bndxizgvcmxwdl1mrahg0xpn356s8y4xnbvf4ysimpiv";
+  };
+  "3d0b21a35355415e71e8fb7ea0012b306e2a037e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738466-c1f653d3509f461bb7b24e2d8451128d/3d0b21a35355415e71e8fb7ea0012b306e2a037e;
+    sha256 = "1zwykg73i0rnga0y6cal2x4jlz69n3c6iq3g7c1c7d7a4hsgpy76";
+  };
+  "3d2991e772cfa979508e25de5935a89210973591" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/3d2991e772cfa979508e25de5935a89210973591;
+    sha256 = "1cacv6pd0p5wmxmfxfp56v4qd3chz6r27c6kbax3p325b6cjf9kz";
+  };
+  "3d3ffa0f6b5db075797d9657c491f1cec7434474" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3d3ffa0f6b5db075797d9657c491f1cec7434474;
+    sha256 = "0gzfpaw0v6xxbwrj14k1hl6dzn3g532war2h0mbpk5x2zgf05ppw";
+  };
+  "3dae84206c49a13a781a04f072560fdaae772628" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2542875-37bf4143b09d4d7a88bd89c6cbba110c/3dae84206c49a13a781a04f072560fdaae772628;
+    sha256 = "027xmslcmb490svay10k7xhj8rsjlmqv13igafnrqw082fz2crvi";
+  };
+  "3e2b9f360e17b90289d6aa8e07f64f8bec445375" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/3e2b9f360e17b90289d6aa8e07f64f8bec445375;
+    sha256 = "0hpm43hbn6wj8gv2hr47cnbfky2732pbqpmhjd33lgd5zjm17ki5";
+  };
+  "3edebf50b702f5e5d08876bdea65dbffa3d1e98f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/3edebf50b702f5e5d08876bdea65dbffa3d1e98f;
+    sha256 = "196mmj2w2dzp9d9gyllpivnmik2kg54kk1qini5c7va9v0iifh7l";
+  };
+  "3eeb2f03152b2114d56a8804fb8d634405321569" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3eeb2f03152b2114d56a8804fb8d634405321569;
+    sha256 = "1mr55cjp8l7jmql2lj146lw2rqgyxb7wff71nm2i8b5mp6w7fa5i";
+  };
+  "3ef09650cc8541a72fb0c287cf9008a6ed209a58" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/3ef09650cc8541a72fb0c287cf9008a6ed209a58;
+    sha256 = "0wmf0hxsyxqzbzj8r1d7f2pfrqjqwa56wj4i2nnp6cccb7z8vdh1";
+  };
+  "3f4cbf00af0438c956f74f514929e02e3e8d43bc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2616691-982be94b99b442419e99de37630ca843/3f4cbf00af0438c956f74f514929e02e3e8d43bc;
+    sha256 = "0294prdqycf6w77hb88jxirl7jgm00sjgc4nzwkznpf6q32jc1if";
+  };
+  "3f75f49ccfcf87ae2a3bcc2a68cf49fb510ada09" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/3f75f49ccfcf87ae2a3bcc2a68cf49fb510ada09;
+    sha256 = "1yq7yamysw27k0znsji1p850gk56vq07lbhxs837x0j9mp2qbfml";
+  };
+  "3f77d7050ec7beb565e4f6d6ad5f1291b2a066e4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/3f77d7050ec7beb565e4f6d6ad5f1291b2a066e4;
+    sha256 = "1ibs8qdbh8vp9ba04qs3bziwss5hbqknylqsydafqzmsvg0qgm5k";
+  };
+  "3fb53e132dfce0a5c72b3b10fb63fd6b5b89b16d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/3fb53e132dfce0a5c72b3b10fb63fd6b5b89b16d;
+    sha256 = "0lrs4n23klz5jqvchpzpflk3hyva9rr335qx3psd34q64hnkxs89";
+  };
+  "401dde870b0593ea8eb48a00e180d088dd331d41" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/401dde870b0593ea8eb48a00e180d088dd331d41;
+    sha256 = "0ijdkqiymih4nm75gky9h6yycd496hjg60kimjnz73bdadanq4g5";
+  };
+  "4022d82d143e72ccce04e7825d3328a7b02fc901" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/4022d82d143e72ccce04e7825d3328a7b02fc901;
+    sha256 = "0f69a35zcjw4l68gd1qv21xnxhlwgx5fxi2msxfa5blg9i45vkvv";
+  };
+  "402bb37cf56e4ae0f047b4de8eed748f259c6a15" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/402bb37cf56e4ae0f047b4de8eed748f259c6a15;
+    sha256 = "0l3sgilafh4ri0mjz6jlx59bz82qbd6q119alb9wjpvlwgk19s9d";
+  };
+  "402bd33734002ac97efc2300bb3bcf9d2cad7bac" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2514362-4164223ab78d4e529a0f07d941c2c537/402bd33734002ac97efc2300bb3bcf9d2cad7bac;
+    sha256 = "18p16j0jpavsdyv2mgif0s7xcqhw9574vfi95qs7q4pb4lpd89pq";
+  };
+  "402fa9c093561a043e89a83d3b0553126fdf2bb7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/402fa9c093561a043e89a83d3b0553126fdf2bb7;
+    sha256 = "1ga2xj4v20a28fj6n8byq7082psawipfr00f54mx33wr2flb6c7n";
+  };
+  "403c4174a81ed034269a740a7bb9739dd07b91da" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/403c4174a81ed034269a740a7bb9739dd07b91da;
+    sha256 = "157xba3mjgw37m6i29chdk2l4jg4jmlp4fkmfsanl9g66z7aw4hg";
+  };
+  "4041329918332581cd573d410c6a163dcf7b7495" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/4041329918332581cd573d410c6a163dcf7b7495;
+    sha256 = "1gvjy14zqhnyx4nnlcbj6649d2aw3vwaxhrls3ngrkw5jw74ckxj";
+  };
+  "409e09bd60df0765b85577118bd3da12988d97d9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613445-f4cf430b68ba4dbf80d97361d7c5dd6e/409e09bd60df0765b85577118bd3da12988d97d9;
+    sha256 = "0lq5lril4ylw3xg46djxzlkbvv109lpa4l0l7ag0q555yzhfcnp8";
+  };
+  "40b467567f62e9c6d0bf5cba7d2ff43cb9a687b3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2599079-89300969452d4a5eaefe1ab4af976839/40b467567f62e9c6d0bf5cba7d2ff43cb9a687b3;
+    sha256 = "02qslivwbnycygypvqicgv8syrsrdw9cv7bmz4zxp9ghbkmasx5g";
+  };
+  "40ddad780beeb95a141365c9ee5c50502ecf9a3f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/40ddad780beeb95a141365c9ee5c50502ecf9a3f;
+    sha256 = "0bd531adivbi47mb1nqmwm23plhsh6hbj54wrpnkyzbkciq24jd8";
+  };
+  "40f7222800bd5c3a14980a0f6e706ce2b8a6dc8a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/40f7222800bd5c3a14980a0f6e706ce2b8a6dc8a;
+    sha256 = "13rzkw224mz4qfsz7f3pywdl2nkly5k28jvrzqqhksrrddf4y78g";
+  };
+  "410e46447d67d73c00b681403bff72bd1c8db3e1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/410e46447d67d73c00b681403bff72bd1c8db3e1;
+    sha256 = "0dahfv97qdxza2yjp60mkflmf541s99c8j0m119vigv5795nrp2l";
+  };
+  "4138035f335e8ef4c9bd7d4700011e8ce6bc06dc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/4138035f335e8ef4c9bd7d4700011e8ce6bc06dc;
+    sha256 = "1fn99hdnba0zza6w416xkqj6vajgk57s5qphqbn2jsrf024kaal4";
+  };
+  "41478e3ee1bd4eb5b22ccbef4265d78586e0a9d3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/41478e3ee1bd4eb5b22ccbef4265d78586e0a9d3;
+    sha256 = "0k259kbgvw1zm8dcs0mp21lh88zvkxzy1v2zyj8yb8hp94gdwp1r";
+  };
+  "416a2ef9e1d85c9801e1c11b5b75e6647f40b196" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/416a2ef9e1d85c9801e1c11b5b75e6647f40b196;
+    sha256 = "1zxg97c2211hspph0d9jzaqlvrfd8cx49d40k5halnz3h682cl2d";
+  };
+  "416d80d6a7cfb22bb899d4a75a80c78ddd81ffbf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/416d80d6a7cfb22bb899d4a75a80c78ddd81ffbf;
+    sha256 = "16xfnicsjfvhzcnzpf1rpbb9q42dq67kbxi84mb4gvdrqigkvmg5";
+  };
+  "4179740ad0fac203ef6afbed2ade36619667a9f2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/4179740ad0fac203ef6afbed2ade36619667a9f2;
+    sha256 = "02kg5bp115via7359bkr3vgbk1nvylhzjc9szzqjbff3mb2fxgdn";
+  };
+  "418d45c49afe937049dd1f731516162b1f716dda" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2608258-d12288bf79ea446a9353c7f9d223b24e/418d45c49afe937049dd1f731516162b1f716dda;
+    sha256 = "05fqszk0lv9ynzpf6lr44jddhm5lr476naxiiqsvwj4g62i8nv6i";
+  };
+  "41b5b5efc87e1d57447016f701ab6688ba9bed94" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/41b5b5efc87e1d57447016f701ab6688ba9bed94;
+    sha256 = "0gcfhbzh8hqhv5xzyfz20j01haxgyirilv8nphg74ky961y2sj2g";
+  };
+  "41d5dc73ef01e6cc21c028fba64a655a4f2d3d52" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2467022-c410c14385ba462bb86b4995040cdcb9/41d5dc73ef01e6cc21c028fba64a655a4f2d3d52;
+    sha256 = "13sdr479wysfckxv8lx7p3kh0mc9ajdyknkvzgklaxcxpl591y67";
+  };
+  "41e03d2c0ea9b66441ae01c7aa831107fba3ffed" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2612065-7518df1e66b64067baa9f5dbe835628e/41e03d2c0ea9b66441ae01c7aa831107fba3ffed;
+    sha256 = "0zfmpa24cl54f7zlpcmc6ki6kqh0qnv6g5kfi9jv51m9l2cg0x5g";
+  };
+  "41e5224b15d09a7227b36b443d5ad87d74e45b50" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/41e5224b15d09a7227b36b443d5ad87d74e45b50;
+    sha256 = "1mpq5lifwddv3mg2lxh3973nz3k3j9bs6r0ma3zknc9pjzvhr6z4";
+  };
+  "41fd3f7a3fb916297e3f478f49ee73a7ef8b0eea" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/41fd3f7a3fb916297e3f478f49ee73a7ef8b0eea;
+    sha256 = "1m0san717x975926nnbinwbq8wchxbrj8w9pddq72s9k3h57a51q";
+  };
+  "41fddcc984061641cb8c27aba4b296bd158bb7b6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2622402-86d1483fa60742b6be9fd5a0b0b946e0/41fddcc984061641cb8c27aba4b296bd158bb7b6;
+    sha256 = "0pq8gl1n7anxky03fy135mwcp76y6270i5jjq7il985mhqa9n3xs";
+  };
+  "42325aa5f02bc9fc9310d7edd42e4e731ef6896a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/42325aa5f02bc9fc9310d7edd42e4e731ef6896a;
+    sha256 = "1r6fhxi4341408ibhgq92yw8hih2nq7m9klax7hsfmdr4di537hg";
+  };
+  "4245e1d2e7ad643f66f744a3ed38052789489640" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/4245e1d2e7ad643f66f744a3ed38052789489640;
+    sha256 = "08fnw7apzsdwx44q2bc66r6gb24z5df5573zsf0fibnflz457zj0";
+  };
+  "427e2d72759a41c12424a8f41db8c46c533e7aad" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/427e2d72759a41c12424a8f41db8c46c533e7aad;
+    sha256 = "1anhhx1xifzqa7lifb63jgrfdx0j5j3ngr7pd9acbwhf1fnz1xan";
+  };
+  "4287f776bff018fbd5847a483885c62661d3e8b7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/4287f776bff018fbd5847a483885c62661d3e8b7;
+    sha256 = "0ka3mm4icsf0rvlq84s0zc2pyyymwfl7vidvhp6gphi9wb0gg0si";
+  };
+  "429bcf5d037539b13d24742b82d8b2e4dfc310a2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/429bcf5d037539b13d24742b82d8b2e4dfc310a2;
+    sha256 = "15609z8zkg3xf0374ccr3qw4c0y4l6via1c8vpn1g3n3aclgrcvr";
+  };
+  "42a2da181f0e0c22a37f4fd84ebb8992f5801a40" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/42a2da181f0e0c22a37f4fd84ebb8992f5801a40;
+    sha256 = "134cik312f2mc2cm6syz3khm11j4z5mki1ajis11plp9yc4awlrb";
+  };
+  "42a53ede1b023f8c062f8cdda02e206b50d9b706" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/42a53ede1b023f8c062f8cdda02e206b50d9b706;
+    sha256 = "0bf6waiwj827d6q4jlk84iz194gkrwyq62iqbh5k7via2xwq8j1w";
+  };
+  "42d3f4d56675451d30b582bc5dbd45fd3782d471" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/42d3f4d56675451d30b582bc5dbd45fd3782d471;
+    sha256 = "1k865pqjyn2i29kypga3m3g705pclw082zcr50yx4pzb4gyx81ss";
+  };
+  "43024ccccfd7e2f51ab71730d53234756da7f75e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/43024ccccfd7e2f51ab71730d53234756da7f75e;
+    sha256 = "0qiafmz9hg9g936y32jfi81whv6ijsbxi3wq2vjygwvw12z3pp7k";
+  };
+  "4325240311aaa4a187fdea78519062e5a4d7269b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/4325240311aaa4a187fdea78519062e5a4d7269b;
+    sha256 = "13im2y96y8wlfq6i85dw6rpbrzqypvzhbb5f6272zi8mg0vl68c4";
+  };
+  "434d698cf6b167859c6903ad11759566d8f57b0e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/434d698cf6b167859c6903ad11759566d8f57b0e;
+    sha256 = "1p1mx0lffkz0lb4ryrjv8nbvmb3vzr1yhd6bar6mgn9j26x68nhd";
+  };
+  "4358d2bea62c66562030e8970bcc999a9f049cd9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2565979-eaaf2006b54843b69b5280979c12ed6d/4358d2bea62c66562030e8970bcc999a9f049cd9;
+    sha256 = "10g40dfpwcmwid6x2zj4jsr8wlfaj19wncimrj64ma84x9asid6l";
+  };
+  "439b6b4397b03135c193062962f4e04f7efb2f97" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/439b6b4397b03135c193062962f4e04f7efb2f97;
+    sha256 = "0fxgi0m96lz8vsig99mi43bmkxj4zqhdrmcin3s15qgqv5fnpp0i";
+  };
+  "43af1512f9c03f740a4b1e5e5d430bc184358f2c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2482391-24fb529bc09847ca8c3576d69ba36285/43af1512f9c03f740a4b1e5e5d430bc184358f2c;
+    sha256 = "0rllprr8x2wylsymvmwjbfxm5wc81q6hxz9xqz7ps99wnaa376vj";
+  };
+  "43ce938e9264c991f07b4ab978d5801d8b385c7f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/43ce938e9264c991f07b4ab978d5801d8b385c7f;
+    sha256 = "1xlk578ab6r0jia0ipsznr8kb0r95ljzqxhlxbp2gizyad80rbvw";
+  };
+  "43d2fd6b8e568774d422003e4f1d8cbd90c8ad09" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/43d2fd6b8e568774d422003e4f1d8cbd90c8ad09;
+    sha256 = "1gz46rhfy3w67945dwrbj5364z3r5vfkq7kcsdvlam8sn31mban6";
+  };
+  "43d5b1f0c816ddc1a75dc7c9eba7e3861bfac93b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/43d5b1f0c816ddc1a75dc7c9eba7e3861bfac93b;
+    sha256 = "05x9b14mm65v3kg0w3vknv0las5669dxqi863pj283gykai5y5j8";
+  };
+  "44550fffb2c3c4bd3e389a62349314f917149551" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/44550fffb2c3c4bd3e389a62349314f917149551;
+    sha256 = "0gwbyp4cz93dhp4lvlzb16ylkdkl1861q5sc9x8lzcfhrdlzbbqx";
+  };
+  "44988d061edf9fe35e6423243372b984f7bbc8ce" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/44988d061edf9fe35e6423243372b984f7bbc8ce;
+    sha256 = "1ijy29lal9bg8kwbjgzvzjc57f1vls2g073hvlgvha84a32qhd5f";
+  };
+  "44aea7fc4f0d356841e342fce80616815268e97c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/44aea7fc4f0d356841e342fce80616815268e97c;
+    sha256 = "1xspkr7cq8whhk66z695yvgf0z1z4w6rck41n9jxr9c2xkycafvs";
+  };
+  "44bfee33fde62aa26954c1ac4481489a0997550f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/44bfee33fde62aa26954c1ac4481489a0997550f;
+    sha256 = "1r6zdd24m7m0rykn7qbl1bkbxmiwh2jmkkqva5nw0zyc33rhy6dz";
+  };
+  "44e185cd6baca3dd0931a5b2c536c61efdb62652" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/44e185cd6baca3dd0931a5b2c536c61efdb62652;
+    sha256 = "10ji73zvb3wjsr9283r2may7kwjwrch0zdkw5qi845q1xdsy03qn";
+  };
+  "44f209fa07e3956ffbde948b34a35bca08039bf4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/44f209fa07e3956ffbde948b34a35bca08039bf4;
+    sha256 = "19h5cpf1n828wxy77sa7ajfiy3pfg2hjnaprml3wl7g607zsb2wi";
+  };
+  "450752e8befdc19f8af240d074de7cfdff240ff6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/450752e8befdc19f8af240d074de7cfdff240ff6;
+    sha256 = "03f7fvkqvbxi8xfqc5x6zzwa141rzjrvxfn4npcqifzv543zlwfl";
+  };
+  "451249045a83162ab51a602006391035d937b4fe" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/451249045a83162ab51a602006391035d937b4fe;
+    sha256 = "1f594dpxyb2vln0bjj10yzxmxim88d27asaxb05b7msj8s4if4qz";
+  };
+  "457e4cce8cc3af1d0237efdf32e01dd8149d1366" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/457e4cce8cc3af1d0237efdf32e01dd8149d1366;
+    sha256 = "0ipki4pq2irfhy10sapsah9frp3nx6j33sjdi5a82sz5hc00czvy";
+  };
+  "458ce5eadcec7db6c79cc7c4785864957159d82d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2649176-0ea78bc522e047c6b5b5e477faaaf0eb/458ce5eadcec7db6c79cc7c4785864957159d82d;
+    sha256 = "0xlz9ag4xxqza8c1bbx4aj73nphngqnqmb2g2kx4wzrsf60balqk";
+  };
+  "45b816b4d0f405c95179b48d4aef89b863be886b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/45b816b4d0f405c95179b48d4aef89b863be886b;
+    sha256 = "1b6n8l0xwxfpxysljvqgh2pccqxsv7hhsgvigk7bc7bfvm4f2bc5";
+  };
+  "45b8181ade7c5f9416382db55ebb9ff006a860ae" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/45b8181ade7c5f9416382db55ebb9ff006a860ae;
+    sha256 = "0mns61vw4kv3v6pjmkqzad95x9sqlvkazr2qcxlp2pjl41h349jw";
+  };
+  "45b97a83e7de5add19253c91c6f9c3fca6133a0b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2515854-a6b06d306d9743a78268eae33a3084ae/45b97a83e7de5add19253c91c6f9c3fca6133a0b;
+    sha256 = "0bymag4rf1gnyc3yfn4xjmi1n22zkfqzqdpg09wbnrmghld92rhx";
+  };
+  "45c2f6d67121c2498bd3723b899243959da6e017" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/45c2f6d67121c2498bd3723b899243959da6e017;
+    sha256 = "1z8ks07y1q8ifi8mbb2n1igfa6a6dpmmzscn14mr860a8lh9lp1v";
+  };
+  "4653f71982a36f99d16331bbaebded3036eff50f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/4653f71982a36f99d16331bbaebded3036eff50f;
+    sha256 = "05n5s7vhiiisamy7n1c31s68yy7iplfsr8q7qkjwijp6svpz3w4r";
+  };
+  "46cacf33335ca2ec60df0c71cc36af0602ca8bfb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2608258-d12288bf79ea446a9353c7f9d223b24e/46cacf33335ca2ec60df0c71cc36af0602ca8bfb;
+    sha256 = "117j7ps781wbi14cc9r5v0n64xsl7p8yr2ism8i4n8ij3i106cf7";
+  };
+  "46cea2f0ed5abe44ea23ba16c356889ae16636e3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/46cea2f0ed5abe44ea23ba16c356889ae16636e3;
+    sha256 = "1rsy2lac1ck6flh60jh5b640kns104f40qr5ffsf7mxj3zzc9h3w";
+  };
+  "46e1d0fc2b1da401fb554e93a9e7f69ba5b9857e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/46e1d0fc2b1da401fb554e93a9e7f69ba5b9857e;
+    sha256 = "18vcpjb9qvy9xswrk2zna7g2xmj0dycpsnnpddydlby8mrda1vd0";
+  };
+  "47057afb3b675c9635a3a671c05a32525083c8c4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/47057afb3b675c9635a3a671c05a32525083c8c4;
+    sha256 = "120gd17dy4m36r4y36ivjkmn9vvfgycfw0jna7vx85qys7f2qslx";
+  };
+  "471521a96267727393067d510fa208a9f090ee56" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/471521a96267727393067d510fa208a9f090ee56;
+    sha256 = "043gl3chcbcyh3na9wcv26kag7hixk31yh8synihybml4bf30am1";
+  };
+  "4733ca75068a23a29a578352ecc8dddc16d714e6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/4733ca75068a23a29a578352ecc8dddc16d714e6;
+    sha256 = "11g301j3gim04xisk1pzdsxv5ygj6mf39rkxw9hfrbzky4y5zfb5";
+  };
+  "476436af18523fd743894ca8676ceb74f5d392f4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/476436af18523fd743894ca8676ceb74f5d392f4;
+    sha256 = "1qld1qqnmmn6bcw8gxs8fi0227w5d2pwyk9hxqqwfvqazmbmrdra";
+  };
+  "4782725e3bb079fa03e2bc6e6d6ca44c9352c9ce" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/4782725e3bb079fa03e2bc6e6d6ca44c9352c9ce;
+    sha256 = "002qq97afjmvpwa5vhpzyknywxfg4f6hm8f9z6vhcbc487j24dfx";
+  };
+  "47c3dd6d524f1923aa08644c2e4083ced4d481a0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/47c3dd6d524f1923aa08644c2e4083ced4d481a0;
+    sha256 = "093zcfgvnr9x6b50zi4dcvp0qp6dsp4y9z438gzf8cz41ilmk2mq";
+  };
+  "47cb5394541c26f3bab3e60fab36b8acba1d8907" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/47cb5394541c26f3bab3e60fab36b8acba1d8907;
+    sha256 = "0aqwpc5krlqi81g2wcbq2591kbnnv01cgiq4qdyd9jlkfpk79ra3";
+  };
+  "485fd4e8653da37ae3302212c1ff6c808f2e1e7a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/485fd4e8653da37ae3302212c1ff6c808f2e1e7a;
+    sha256 = "10k9s21042a9gi2k03d9r5lg8h2gx07sa39wx8zrfs697g0g9082";
+  };
+  "486e59fe184e878bc399bc95f1f81b94c3e84237" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/486e59fe184e878bc399bc95f1f81b94c3e84237;
+    sha256 = "19ck4wmlzfj43w9b1l54na3ql62n0jx0h7ffb0ghizswnb36nvcv";
+  };
+  "487d06c15e88caec9f131b002ba4ced31ca8ea46" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/487d06c15e88caec9f131b002ba4ced31ca8ea46;
+    sha256 = "1mfvbd2p8508f07dhh1dfqaq1a9n7c4l5dsfajzhcdndlzawrbbc";
+  };
+  "488efa1da7ed78314cdd0c95ad874f812853fcd7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/488efa1da7ed78314cdd0c95ad874f812853fcd7;
+    sha256 = "09jjzzvszqv7f7a70i8gib9x04h6967by6cs8dfqfb8ysfrx426n";
+  };
+  "489e5e0492743ad3dbfd8599a5d00f284d4b13d3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/489e5e0492743ad3dbfd8599a5d00f284d4b13d3;
+    sha256 = "1szgnqakysr4r59zqi8i1sjqbpykjb7flvmw8p00mx0zqpw2qi6y";
+  };
+  "48a51059aeb73ec544e6c1ace7303ebc6143b782" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/48a51059aeb73ec544e6c1ace7303ebc6143b782;
+    sha256 = "0w212ajaypf69mx8hc94kz61l1f64dvh99rpmzrycwllxk17il1w";
+  };
+  "48becdab8fce5451f3de26a98ad8c4b41c51c09e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/48becdab8fce5451f3de26a98ad8c4b41c51c09e;
+    sha256 = "1pb09gl5ji1c71nhg2bv6i3wknx11vnxcjjyfvlzgpfsw7mi9c99";
+  };
+  "48e9d691a3bd11810596fcf32aef9faa872a8fc3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/48e9d691a3bd11810596fcf32aef9faa872a8fc3;
+    sha256 = "0anv20icv51j79f4vzzh7q1a9jwpk65zzs0brsylyfkylskd9wz7";
+  };
+  "4905bf362dac5be04631d1ce552b8184a6f9eb7f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/4905bf362dac5be04631d1ce552b8184a6f9eb7f;
+    sha256 = "0yf7x9wc9zwdpdpqh6x8kcrphmc63ij9xcb6ggfbihjhhfkq9m2y";
+  };
+  "493b6e580a2441b91435c406da869b799e031da2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/493b6e580a2441b91435c406da869b799e031da2;
+    sha256 = "0ic4h663s8yyckvzrkbbhg8ih888igvcswsnnh66zwrl3h5wjshd";
+  };
+  "497e1a2128ecd56307d393c59ed4962de200412c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621802-1efd555e661e4948aa22f3883712aa6c/497e1a2128ecd56307d393c59ed4962de200412c;
+    sha256 = "0860mkkg6k4c2fjzq573xpf13cvcmn276z45hi146y0llsb9hpwf";
+  };
+  "49d7eaf76b4f243057c59f3fda3310c655144a0e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/49d7eaf76b4f243057c59f3fda3310c655144a0e;
+    sha256 = "07sn2y8bzh0flhrkkw12x7rc9p78mmsx0dphsm0mxb9nkkznygq0";
+  };
+  "49e02b1078a769deaf14989f1731daeb927f2192" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2787088-b587684669f0414288401564922cf5d8/49e02b1078a769deaf14989f1731daeb927f2192;
+    sha256 = "180yvr32wnhgivkz5i00l88wkw4l5v9d5vgmdxhjvndzv52ij00p";
+  };
+  "49ffdfd5801c4c8c2b51be4b2e51108595a340f7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/49ffdfd5801c4c8c2b51be4b2e51108595a340f7;
+    sha256 = "0m0qv1wyslkdg75ymbba0ppp35ir9wmm51jqsaac3wxjacgwp85f";
+  };
+  "4a3c35cce04ee67dd38baa7ef7703dbd6fa6b14f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/4a3c35cce04ee67dd38baa7ef7703dbd6fa6b14f;
+    sha256 = "02kqv01gjhj6402i18cq5ihp9nbcl4ij7hanb2l6k3mw2f3h9202";
+  };
+  "4a6de8866429da8f1baf5ddaf3973c381e507f9f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/4a6de8866429da8f1baf5ddaf3973c381e507f9f;
+    sha256 = "113qadrkv6calsid2bbb0lswimr3qasf0mzyvbxcg888q934dirp";
+  };
+  "4a996ed0676c92d061e923599186c0d592b8c180" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/4a996ed0676c92d061e923599186c0d592b8c180;
+    sha256 = "0gfmg2si5wmv99d0f3z82qdpcnkb377hvd9mjn29npvmzcxdk8xl";
+  };
+  "4aac38fbf89541859c14c7fbf320b1f9deb410f4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/4aac38fbf89541859c14c7fbf320b1f9deb410f4;
+    sha256 = "1snz21gw73zi27bha2jq2099j4hgk03xrn382rgc9l0j6zx1hcld";
+  };
+  "4ac1a3a1641db0a7d533dc58b147c50ee5e61f2d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2495503-7390cc25898b4ab0a4f9f846f2fd7754/4ac1a3a1641db0a7d533dc58b147c50ee5e61f2d;
+    sha256 = "1b0wz0gz103l9vvg2g9xbds3nc65x3bv7nb4rw8k1lafnpypxvx4";
+  };
+  "4ac1a96d979c84bea010254903c746d8f0192931" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/4ac1a96d979c84bea010254903c746d8f0192931;
+    sha256 = "0p4zjrik6jbp25vsahv7g8jkpvydkh19winqiswiz91xfjzi7wfl";
+  };
+  "4adb6983f2858294dd67959dbb107cb141c93c74" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/4adb6983f2858294dd67959dbb107cb141c93c74;
+    sha256 = "07fbgdm1d6ymv6m046pmjh0af4syin13f3g36kyh19gbsf81gn51";
+  };
+  "4b0a3157b647ecf945962c64e6c1f2a4b0841404" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/4b0a3157b647ecf945962c64e6c1f2a4b0841404;
+    sha256 = "0qh7irvdj2ak0ixbq8mvgnyak9l378463ffgvh8a76rvajlmfw01";
+  };
+  "4b6a1631906e490aad98097955aaed303b835e4c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/4b6a1631906e490aad98097955aaed303b835e4c;
+    sha256 = "1c8mzirs8qbk2532ai7sj6gx98lhzl2r8c5w78p2zhxc44qds6cy";
+  };
+  "4b6f876e200503f43b0378c2bff4e3371dede19d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/4b6f876e200503f43b0378c2bff4e3371dede19d;
+    sha256 = "1wxz4zscc57j0h8jrdxiy7qjx5gyz5wv552hkx9swzl8zv1c4vxi";
+  };
+  "4ba7bd51b92bbbea7f47cede7dccb18ed74c4da9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/4ba7bd51b92bbbea7f47cede7dccb18ed74c4da9;
+    sha256 = "10mgd6mhyp147v70vrjs2pni99f10wvjzzxgv4s1yb0kb1f3rx7m";
+  };
+  "4ba9e150400597410bcc2038b890c5ebfab59f97" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/4ba9e150400597410bcc2038b890c5ebfab59f97;
+    sha256 = "11gnqjjjdjjlxnzsx2p2j08xjjpr28zy5g0y5ba2q9fzz1pmi0xd";
+  };
+  "4bb876b638318dcb891581ef5c5b60ab49f84a14" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/4bb876b638318dcb891581ef5c5b60ab49f84a14;
+    sha256 = "0kabkyrgb8jbp90hbmksmh03r5bbfk9rk61rix4krk2dlcb0dazi";
+  };
+  "4bc5d5526880f85cc76aa4910df1d4cb262afea4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/4bc5d5526880f85cc76aa4910df1d4cb262afea4;
+    sha256 = "18g5sk5ck5yv7bm84c3hm4q1b05kwm4vv5dq5l54a0pkgp59grqv";
+  };
+  "4bdc7380f8fb8cd1f70702e4b5dd2f4ea262d125" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/4bdc7380f8fb8cd1f70702e4b5dd2f4ea262d125;
+    sha256 = "0j924pcmddwqap395nsygs3jzcsfp3f225waypzjzwzf0dqdwvdm";
+  };
+  "4be9c06ad3f3ec9e3ab2f093677c38c9a57609fd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/4be9c06ad3f3ec9e3ab2f093677c38c9a57609fd;
+    sha256 = "0inyckyvag3cjbjw7yir3ga8qx6kly82xhi4ibrqs5anmlbvg6wn";
+  };
+  "4bf3ad76dabf85f8e9a2caef2ec4cc44035c1748" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2557508-14de7cde62764f07a29f3058b3db36e8/4bf3ad76dabf85f8e9a2caef2ec4cc44035c1748;
+    sha256 = "0d9igj7ncm9bgx4z8sybfw5qa0vsslfp155wgycj77sqbk4vxw6f";
+  };
+  "4ca619b184d0aecc977846b5cb89a7789844736d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/4ca619b184d0aecc977846b5cb89a7789844736d;
+    sha256 = "0x6km34gk5wmd1p3i2b9a8bhv32337dxmilaq2x9zg12g5j0ab76";
+  };
+  "4ca7aeb41838db40fce0bd1181781152f3273c85" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/4ca7aeb41838db40fce0bd1181781152f3273c85;
+    sha256 = "1c47j2as7c67aa4y21gkli9qxzik75aq0abdvjln2mw2yidd9f6q";
+  };
+  "4cdfababde3088412ac7195d034c19f4f7e873cc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/4cdfababde3088412ac7195d034c19f4f7e873cc;
+    sha256 = "0mqq1vbh9ikcrplnr5sa0lz73p45kl8wc1py3ylmycifymjcb7jk";
+  };
+  "4cf428f5e7b38cea3b24dce0380c776e1a06ecaf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2787088-b587684669f0414288401564922cf5d8/4cf428f5e7b38cea3b24dce0380c776e1a06ecaf;
+    sha256 = "078yzqnwidsx5xqa5p9jvl4qqvhdmx5i2rv31azjc1s9bbyihnyg";
+  };
+  "4d0630a1e99d1c060c8dd45b809b2e6c5e6bde7a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/4d0630a1e99d1c060c8dd45b809b2e6c5e6bde7a;
+    sha256 = "0hrpqrb934z5qjxmvp2hpjqkbr80xwqrd8bxj63pdcz11axnk1c1";
+  };
+  "4d1f805d1ce7a7c6f0eb46295359f5ef01297c17" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/4d1f805d1ce7a7c6f0eb46295359f5ef01297c17;
+    sha256 = "1fh46cz761wk4cy6xskjs07a58sb2im6n56gk20mmslw2iv8y1z2";
+  };
+  "4d65a777c9a440e869ef25b04b71a9d9a6ff7190" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2593226-b511ed7dda124055acab1a4474628222/4d65a777c9a440e869ef25b04b71a9d9a6ff7190;
+    sha256 = "0jv2bpb77dshi3kj0wlgzl0y7f5b1g0jr0h47fyraxk2mg10ry5q";
+  };
+  "4d6f9c6d7a261e35898225b1fade32da175cb530" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/4d6f9c6d7a261e35898225b1fade32da175cb530;
+    sha256 = "1kn5zg25rwl37vskaggw7hlb2yxxambk0lhaa4i0mlgj8050m2n6";
+  };
+  "4db41bf84756d686fc71e275d2c94c5c2299de97" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/4db41bf84756d686fc71e275d2c94c5c2299de97;
+    sha256 = "17rijjf8k5fa827szbj2adz8ix8z6h607xpa0mg69hrl9jxbi7jp";
+  };
+  "4dbf88901817044507142dfafe605a1b527a5733" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2416381-a1125fd46e044645898de0a3f7870b3d/4dbf88901817044507142dfafe605a1b527a5733;
+    sha256 = "0bsykmshh4677rlkgd7qx2j0alcskw8krkvfzardcq481zkv3i7n";
+  };
+  "4de19ef682be73fd5616348eafabda7e5b5c2614" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/4de19ef682be73fd5616348eafabda7e5b5c2614;
+    sha256 = "0m3phx8581x615y7dg98kg0bdkka07897pjcd759dxjfbvvy2fyl";
+  };
+  "4e0bab5bde5138bbeb03c118ed5450afb6087c8f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/4e0bab5bde5138bbeb03c118ed5450afb6087c8f;
+    sha256 = "1afci1zkw3skyih5ij2ld2z75xp3vf2q4ssdb39xgjw84hagxybl";
+  };
+  "4e10a129d42108f8b10039ca6b879fd30bfeb431" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/4e10a129d42108f8b10039ca6b879fd30bfeb431;
+    sha256 = "0qyadw0q43aj15c699minvb2xbd6hlarwjy7gfsym9vbrv55fhjh";
+  };
+  "4e6e5e7b59b428c37f77a90e081f121a450cb039" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/4e6e5e7b59b428c37f77a90e081f121a450cb039;
+    sha256 = "0vpr0k1mf4zg5k90jkx8jxm11dl0ky8jlyq17zcdl4v0ricadw57";
+  };
+  "4e7e810806daa53af602a84d64ae8277b20e8884" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/4e7e810806daa53af602a84d64ae8277b20e8884;
+    sha256 = "1j4ms2b2g34d3hr2cwbimwlljpm9a08vwv6d644ryib170kiv8z2";
+  };
+  "4e98b65102ae8ae6833a82df09b1c4926070f680" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/4e98b65102ae8ae6833a82df09b1c4926070f680;
+    sha256 = "12np9i6rrfb72pzb53wqs9i2pi54gfd95sq5g1b5appj3qqvl5cw";
+  };
+  "4eacf8ae62800ea91a75533032d4a4abad00c1dc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/4eacf8ae62800ea91a75533032d4a4abad00c1dc;
+    sha256 = "1i23518c07q9q9npwrbmxl1dxx0sxyviv4l9892s8kjj2gamf4kn";
+  };
+  "4ee7da06ece4e65e4b1f6c4f3f60b4f183a6b0cc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/4ee7da06ece4e65e4b1f6c4f3f60b4f183a6b0cc;
+    sha256 = "1pliz4710qi465vhy2z90w9br02jx6k3r192izn96njsnd02mm4x";
+  };
+  "4efa7b4c022fb3147eafad578190d50881927acd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/4efa7b4c022fb3147eafad578190d50881927acd;
+    sha256 = "1pic400nbygcarkrkzcdvhb00pq25iipn3bwlgcng38ihfay7wjm";
+  };
+  "4f65d69acee548a54f8329d2457356d425bee4a7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/4f65d69acee548a54f8329d2457356d425bee4a7;
+    sha256 = "1bl8arab79mh10qclam0gmf0bf7rqj4zbas3bsz2jq6mnw7hz7py";
+  };
+  "4f6a87f4bf05f150a09c25735784bc3739871dfb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/4f6a87f4bf05f150a09c25735784bc3739871dfb;
+    sha256 = "0kal7sz290wjq3p8v76kyhj9l783h8br06cfyd8vr93xnrmxj18s";
+  };
+  "4f81cd7206cb477f1b15d71433f87035b8ef4b61" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/4f81cd7206cb477f1b15d71433f87035b8ef4b61;
+    sha256 = "0dkad05vjbxqvdhx3594j7vx7qjjckpzcsnbwmlb6jvlp7ki4qal";
+  };
+  "4f9629d19fa7928aaae10e4bb7c79195fb4f2436" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/4f9629d19fa7928aaae10e4bb7c79195fb4f2436;
+    sha256 = "0w26dm0npmlbdg73j89rmbxpkr64i80wdm4zzgsafrh3vmaqs38n";
+  };
+  "4fb2c8f58c15b33818735ef8f75ba170a1b1f65d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/4fb2c8f58c15b33818735ef8f75ba170a1b1f65d;
+    sha256 = "111hbfbikwl85iscj37k3wn35s47cd6qzpcsir1ylaxcb9q350j7";
+  };
+  "4fbda194b6083d60ec1a9e281eb6caad5716cf1e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2489751-c4626d8ec02a40d3817d364f1bc426a5/4fbda194b6083d60ec1a9e281eb6caad5716cf1e;
+    sha256 = "0nfihbl3pwni0gpfrpcdi4xggdkr0m9d4lq788w9hfb4phfppkjh";
+  };
+  "4fe88f539e62bf77da44db73cb91ffe913569e34" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/4fe88f539e62bf77da44db73cb91ffe913569e34;
+    sha256 = "0vl7g23l199imd5n0ll78bf6bk5spx33r1sdzwbwyf439xd53zn5";
+  };
+  "4fecd0bf8aca3391671cf59243a551e7b58f745f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2787088-b587684669f0414288401564922cf5d8/4fecd0bf8aca3391671cf59243a551e7b58f745f;
+    sha256 = "0yzh9i84lm4gh8wsljsa66bg9g6p0xbff3vq5rk1nha0zwg0i7x1";
+  };
+  "502e3c3b4dcae339b71743fc346f2398f2d7a218" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/502e3c3b4dcae339b71743fc346f2398f2d7a218;
+    sha256 = "1qirpjwv6cmx2g74dlswhd5haaqff9km47xv79m6rd3c4q5xn0xs";
+  };
+  "50606bde1b8f7f906c86dad14730c53cab06b477" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/50606bde1b8f7f906c86dad14730c53cab06b477;
+    sha256 = "1kfvwbxhl69f08ryfh39105xda14vz06r6zhvi18d3cy50znamw4";
+  };
+  "508797aad17ea00c10d3c50bebc98d3981dd7bb9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/508797aad17ea00c10d3c50bebc98d3981dd7bb9;
+    sha256 = "1r9csvlr703whm8dk759xnn89glrp1gbdxs60ahspls48yxj1syg";
+  };
+  "5098f795311987869f91ed638f4c0a395312211a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/5098f795311987869f91ed638f4c0a395312211a;
+    sha256 = "1j3k1vixg49ilcmvd9k82dq7lj0dlmf8iaz8zvsgzgril9azd3nw";
+  };
+  "50eea30641c70b731a2069bd514ef5f1709825de" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/50eea30641c70b731a2069bd514ef5f1709825de;
+    sha256 = "0p9k5jhmhv26i18c7axi9yvr29d4wzq4zr08875m1hcwhij3wyxg";
+  };
+  "51298934386bbe2da528af9262277810d6653396" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/51298934386bbe2da528af9262277810d6653396;
+    sha256 = "1yygwd8i6cp67rgz59g192x1klh3rxgsyzpmxcinj4b0iwihglvc";
+  };
+  "512f28040301a00935d7f1ded68e709b048d7f1d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/512f28040301a00935d7f1ded68e709b048d7f1d;
+    sha256 = "075szic2vp5f6c3kmy432xn8r81pb6c82dwhpigmyvjl0hjqqcf5";
+  };
+  "51413e0814803560ea68a0cdfa59ae901551ad14" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/51413e0814803560ea68a0cdfa59ae901551ad14;
+    sha256 = "1cbb5a1drx313zi7llrbwsj7yqshinxs3i1q86y63vrjh9yimsb6";
+  };
+  "514684d898b2ab6135a63ae87054e6af91cac2ae" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/514684d898b2ab6135a63ae87054e6af91cac2ae;
+    sha256 = "0xha9la702szpf8nqrm9kril6qdfl3vxpl18npm8d3rxgsbrrj1p";
+  };
+  "5147927b8b7ebed2923c8d3ae6b0e1f716b5fb61" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610954-bd0fcbe6f0c748508fe9438073c40b27/5147927b8b7ebed2923c8d3ae6b0e1f716b5fb61;
+    sha256 = "18p404kg10mqfh5d2rcwalxrgr5ihw0lp14rm5xf1aiw303mlf61";
+  };
+  "5152492459f57a1bb4d120be68d29ed666c87c33" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5152492459f57a1bb4d120be68d29ed666c87c33;
+    sha256 = "17nfafsnk349q31cyrppz4w50z8c5n0ff2v6n5s3z8vzx4pj1zhg";
+  };
+  "519dd66ccb831a904959a155fd43639be5a97863" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2686985-76325fadec474557a67995f00383ea6d/519dd66ccb831a904959a155fd43639be5a97863;
+    sha256 = "01rd9jvys40vi6xqpyf2r1dqj4r3gg61w58madq8wq7q0x4wvvcg";
+  };
+  "519e03a04b64bc3d14eefb416e21ae15c6f0121e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/519e03a04b64bc3d14eefb416e21ae15c6f0121e;
+    sha256 = "15gfg5klklnhbfbsx0jqy33zamc32l0aiji064mjbkliwv1hm51b";
+  };
+  "51f74fd271b725c13ee25b2dae5d9b5250116180" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/51f74fd271b725c13ee25b2dae5d9b5250116180;
+    sha256 = "1zn2lm64icq0bjnayczrl7a6d66jyxbv46cgnixlnvpa0dq1bx5m";
+  };
+  "51fd67fd01d7f93ebe372aa67ec66496e9ccf3b1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/51fd67fd01d7f93ebe372aa67ec66496e9ccf3b1;
+    sha256 = "0xzjsdcfbzl41lwbblq00hy4w3kmjsbl8ai85xa5qdkzc8d8krsk";
+  };
+  "525da4df29fa810fe46aef9432572bbb5743b36f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/525da4df29fa810fe46aef9432572bbb5743b36f;
+    sha256 = "0y445vx9i0572y6cj5jbzl9gkcxgs8kn1qpc3zjzhn61ckdijc4s";
+  };
+  "5270c6b547cfda7e26cad076321fd7be0e5a061d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2602350-38e0d307a57a47baa00ee5f892c9ced6/5270c6b547cfda7e26cad076321fd7be0e5a061d;
+    sha256 = "14r1vw9hw6nlndj1iplwk0qfnr2y8b880g6fgnzwd31p0dbcim8s";
+  };
+  "52ad7360b0e7a95cc19aa7de2f2433ca955eac9b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/52ad7360b0e7a95cc19aa7de2f2433ca955eac9b;
+    sha256 = "0z164smiksv7hka7cj4d68cj5nmy4marwipq48nan3365g9j0r37";
+  };
+  "530b33d367b237887fd7f3666822b40a696806f3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/530b33d367b237887fd7f3666822b40a696806f3;
+    sha256 = "0vj4bax08c5iq035kqihrpksprrkh0nj6hyfswx5qqsca0znh4br";
+  };
+  "53190479c1e53af3a2670f6eeb1f4bda0ebd5a80" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/53190479c1e53af3a2670f6eeb1f4bda0ebd5a80;
+    sha256 = "0gncl86d1j8228hcrfckn6ap632ljkxfbkya8wpqq8cspr5xbb0k";
+  };
+  "536b4cf746322581a3abe99533df6307e7a9c2c7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/536b4cf746322581a3abe99533df6307e7a9c2c7;
+    sha256 = "08d2hxd3v469b39ra57cb13shkzv4dxk44ksy92dw3m5wnwpq6w8";
+  };
+  "53738d12a38995c76f4de6f5f064a567f0ff3ac8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/53738d12a38995c76f4de6f5f064a567f0ff3ac8;
+    sha256 = "1ba1ygd5xwwgciy93pvl8ibd79glh8h7z8mxd32c301n1g7zyh42";
+  };
+  "541bb03057456219ae8a2ab97be5603923921739" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/541bb03057456219ae8a2ab97be5603923921739;
+    sha256 = "0fc4a7yw1psd4qlbc95gkanynyl5jmwdg3ddz3w93i02cd4l3y42";
+  };
+  "541d949e247ee005e6e55562dc29055d6159fb64" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/541d949e247ee005e6e55562dc29055d6159fb64;
+    sha256 = "11bws26a0j9wa8amwmpq632glrwmcwkfc5pzapwrhkd3s4snc5x8";
+  };
+  "5435cf07dad1155ea3ddbd5178f3dd6013a507d8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2615502-35e684f430004977ab5aaed43a0fab81/5435cf07dad1155ea3ddbd5178f3dd6013a507d8;
+    sha256 = "1mkhn4q4rrf7pdi49fd1968hrikham7s4wx6ch22psfinn5ysda6";
+  };
+  "543ebe1dfdaff4a1590fbd156175d836ae2beb0f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/543ebe1dfdaff4a1590fbd156175d836ae2beb0f;
+    sha256 = "1mdp47id04fc4gb247k0g40byv4nidrjnmyavpgq977yljfpzwip";
+  };
+  "544dffe0e2da98dba3a519141a740f849c5ca7ee" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/544dffe0e2da98dba3a519141a740f849c5ca7ee;
+    sha256 = "1kain6a7p6y533wl1075adfzh8733sdac87iq886hjqr89k5jdyx";
+  };
+  "5495c21514ee03fd9e7736742077960a79934c74" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/5495c21514ee03fd9e7736742077960a79934c74;
+    sha256 = "0n9cg673wa58r1xzspyxb4h3qa73jpw4sk9gc8d4dgl6z3q6lsji";
+  };
+  "54be461a1c72b36e4f01f2db78849473477d73dd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/54be461a1c72b36e4f01f2db78849473477d73dd;
+    sha256 = "0zlp7nhdl0b9yhlbclx3d3r2g4cymppwaa5w168chd4gym8qnv44";
+  };
+  "551654d82bdacbe12dfe0a27ff7948b6ad1894b5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/551654d82bdacbe12dfe0a27ff7948b6ad1894b5;
+    sha256 = "1d1bxj880nyrap1vrxfp9fn1b3pz5dbz6f50ccw6bvfwjg4fwkv1";
+  };
+  "5525223a6059a69ca58ad0617598cac64d8659b8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2620872-38314c216e7741359375cb68452fb2b2/5525223a6059a69ca58ad0617598cac64d8659b8;
+    sha256 = "1rvg2sgkbcnymrvp38847rw828ijr3mxl1zsa5706ndly6gysygb";
+  };
+  "553aa77e78f9ac7693e56c9b2ae642c4141aed66" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/553aa77e78f9ac7693e56c9b2ae642c4141aed66;
+    sha256 = "0nr6gsba11kk96l0r1hk08bbn2iy5z41hah14f85dcidcdfn8q3j";
+  };
+  "55575c3f7cb2cd14356f9dd1836e4beeb057941b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/55575c3f7cb2cd14356f9dd1836e4beeb057941b;
+    sha256 = "0g2x108hmsnfp3cgzxcdj91ikz3x3x4br6rl9vlry03dfvhzwvf3";
+  };
+  "5559dc18c6a3a435b34446daa5b51264cf9971fc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/5559dc18c6a3a435b34446daa5b51264cf9971fc;
+    sha256 = "10dvc0spvjp7r6lsvhr0f9r6nxm29053pr4q712akak7jnqh6nrd";
+  };
+  "55d527b168c8ad85340fae2fb9b238e7a568f338" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/55d527b168c8ad85340fae2fb9b238e7a568f338;
+    sha256 = "1dcjnifabnbk2v3pwkmk1hn07svavjqsck694dh8ybqcxbkf4sbq";
+  };
+  "561af5c6ee4445a0c380bce19a7f5ee82b3fe756" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/561af5c6ee4445a0c380bce19a7f5ee82b3fe756;
+    sha256 = "0r5p7rb865yrjag2wn1p8ps76ap6pa83c0lbq7fmsn4xr2m9aq8c";
+  };
+  "562c6d13b647a43c555b040ce69507c475089c24" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/562c6d13b647a43c555b040ce69507c475089c24;
+    sha256 = "1lq7cl1rbh2xyg52p6260gbqd2l6n58cm0g1ny0fwgkaskbsbvwx";
+  };
+  "567807ac295099a07a6c59a7bff568f21dd14860" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2534734-323cf099317f457e9467fda2d086db9a/567807ac295099a07a6c59a7bff568f21dd14860;
+    sha256 = "1cimyysd3z3miz0zwvnmqc60s2cc5ymb2dj4dy88iw3zw1a75hsk";
+  };
+  "568dc16559220cee02d71db824805edd0d74a3d4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621991-64978bb873e64559b7c143597fba3856/568dc16559220cee02d71db824805edd0d74a3d4;
+    sha256 = "1gmfb8106wb12757plw73g6znwqazya41dygzlpmc6zfc5sfd9kw";
+  };
+  "56b3ac7ff0cfd2d96ea21ec3d48bce76e2720807" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/56b3ac7ff0cfd2d96ea21ec3d48bce76e2720807;
+    sha256 = "0vf7hh0cav351qrpkvf897pwdlwnzwjhgfwr8dly6pjf0pqm4c3f";
+  };
+  "56d72a0ee05d644fc991dfc250a1534fdacb5b3e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/56d72a0ee05d644fc991dfc250a1534fdacb5b3e;
+    sha256 = "0r2kc6cnijar4z50xbsdf6ma4zfjqs9mzklbdamjy3niyzjy5s32";
+  };
+  "5725149f4c8e211494463fc9280b6c10907ea321" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/5725149f4c8e211494463fc9280b6c10907ea321;
+    sha256 = "0ifxhhl3rrcaqcxy1izy0abpmii9jzgs55kd537ifmnspi02674i";
+  };
+  "57518e7a38c99e38c3bb12baa69c5124f3780152" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/57518e7a38c99e38c3bb12baa69c5124f3780152;
+    sha256 = "1fya8iyfyjnqs0vgqsh3zkdb85z8s9snc188qnwypmyfpy8mpwp5";
+  };
+  "57a803d869d2db9788911933ffa0282320e75170" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/57a803d869d2db9788911933ffa0282320e75170;
+    sha256 = "1gy1dyjmpr6qap6irs2mzfpzmkjhkrci2r4ak1855ggycvy98d12";
+  };
+  "57be8202d1bdd44a6b6686351edba4e653af9f01" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/57be8202d1bdd44a6b6686351edba4e653af9f01;
+    sha256 = "167dndrfslwss276i0m1dwavg8kk27rhhalj200wk5ywb7dm6xg5";
+  };
+  "57d629f9fb09a65be5be7697a5d33a20c2b557a4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/57d629f9fb09a65be5be7697a5d33a20c2b557a4;
+    sha256 = "0xq600178i6hih6ap7aydgp0xpmmgz56ix21acrawikj89ykv5aq";
+  };
+  "57ffba4219a312d7e7daab46237a0f61ddb3ad28" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/57ffba4219a312d7e7daab46237a0f61ddb3ad28;
+    sha256 = "1qnw6qn7ywd96pv9bi9g006lnib6c60p312dlhyclphsykbn0lzf";
+  };
+  "58031ce6c4634d8b348854a1ad4bc1c74d022c7b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/58031ce6c4634d8b348854a1ad4bc1c74d022c7b;
+    sha256 = "0lz5wd4qzy64c2sr841ky129z46ha3mxx2xx0l9icxmcxczgaxq7";
+  };
+  "5828edda3a662171a3c8e304b857dc7a745b85e4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/5828edda3a662171a3c8e304b857dc7a745b85e4;
+    sha256 = "0m3p8iz4n03nw97v6iia6cdgniqp5f9zqr0mqxziwss5hhvwhaf6";
+  };
+  "5890d07428ec2ee9086c9f8d07792db118a1b57b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/5890d07428ec2ee9086c9f8d07792db118a1b57b;
+    sha256 = "1x5bqq655j50zfn31kxbrl0zbvf3zjvfgkgsp2w816lg01bkbr97";
+  };
+  "58b4bdbc8f5686d4ece9cb4a18f6367d8222f073" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/58b4bdbc8f5686d4ece9cb4a18f6367d8222f073;
+    sha256 = "0cw0gw0ky6gal0zjlxqbivhsxb1ys7whjfgjbcph9wfmws0n9cnv";
+  };
+  "58c296582abb3dba4bc073aa6708c81bc8798ff7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/58c296582abb3dba4bc073aa6708c81bc8798ff7;
+    sha256 = "1197ridzhpvih14rs5gxhvpnbpaz1l52x3cpxnfs5hd80qk212l6";
+  };
+  "58c56183f54227469e3aba4fe40c8fc227c66e55" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/58c56183f54227469e3aba4fe40c8fc227c66e55;
+    sha256 = "1nz8qyfhd6a7chs3a44aa8da1y0p7ikgd45y9w09k1wlmjgzby5i";
+  };
+  "58cf115d701dba2092d2e4a3f0ed075cc6fe3069" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/58cf115d701dba2092d2e4a3f0ed075cc6fe3069;
+    sha256 = "17h20ivmf3ks276vd96xc0z1ashyk3prk7f0p1w8z5vj7kv1y6wa";
+  };
+  "58db59892f8758da63e7b9c465b5615f6318634b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/58db59892f8758da63e7b9c465b5615f6318634b;
+    sha256 = "151qdvx1kk3r2hisn32g63jpcz5ji5n65ql000wxmav75m25dl9s";
+  };
+  "58e46f1625d6b6603897665bac292c5a3566d565" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/58e46f1625d6b6603897665bac292c5a3566d565;
+    sha256 = "0hh2kg1qz3xvcp0gmfky73gm8v2in7593hm59rqcwzk18q9pzwcs";
+  };
+  "58e4e03689103981844fc3f19413c5d3eebe2489" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/58e4e03689103981844fc3f19413c5d3eebe2489;
+    sha256 = "0h7qlwy4agc9130wb8j5a51pdy2ndvm6lbz1p55a3rjzxpmi7idf";
+  };
+  "58f1a93515f38b967b50196a9be74684efbca7b7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/58f1a93515f38b967b50196a9be74684efbca7b7;
+    sha256 = "1bwlqqs4pp20vzxvhs0cqpj3108bxbqk505q93rbgyvlif0kyidy";
+  };
+  "58f5f621564cce6f1eb3c9099a1645a0369ece56" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/58f5f621564cce6f1eb3c9099a1645a0369ece56;
+    sha256 = "04finlmybwqzb146rkqmgyfrq34ql2ih5gmxhalfwn2lvlzkykgd";
+  };
+  "58f7288e0fe3a5997003f6a117a30579d15f5973" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/58f7288e0fe3a5997003f6a117a30579d15f5973;
+    sha256 = "00a351ajzmfjpc6pbj80dbm677mqrdnx1b7dsjhx91gcarxq8q26";
+  };
+  "5906155140815aedc94241abd916f56c6ab4564b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5906155140815aedc94241abd916f56c6ab4564b;
+    sha256 = "12ywwixraayk1hvfq4i2hr5dgykv693sxv6vk6nigxq8kbg0rnqk";
+  };
+  "5925a9b0f257cc9517f224bec3dee7ecf883aa08" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/5925a9b0f257cc9517f224bec3dee7ecf883aa08;
+    sha256 = "0vglai3jkbls46qvss4l28h4b21ph5x79271hln3ypd2j4chswlx";
+  };
+  "59717f7d7697f047103bbfbca63b68088e7172bd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/59717f7d7697f047103bbfbca63b68088e7172bd;
+    sha256 = "1gfm6b9cypdsvndc4id9idainvddjb0zrsa601acy62h97b9gjpm";
+  };
+  "5977705c2272d0c3385b70ffc3e5f0a2983e986c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/5977705c2272d0c3385b70ffc3e5f0a2983e986c;
+    sha256 = "08zlxija7h63j10nhchjnh7mclsfqny6lr6ay8rwcxcgfqz3kr0z";
+  };
+  "5983c069abdec3469db5b5874ac27c17341e3f27" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5983c069abdec3469db5b5874ac27c17341e3f27;
+    sha256 = "0f8y8vikn7a6f1rkqkp9y1vyvnx5g8y4pmc0gyvw5lj6hi0ph83w";
+  };
+  "598492be84474143365fa6267a0e73936ce8a248" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/598492be84474143365fa6267a0e73936ce8a248;
+    sha256 = "1s6cvk6p6m8j0w1g45gg2hdnjiwa1sf8zsaf8xvlr10jcwlnc802";
+  };
+  "59c4bec5e2957d30ef37c5198c4b90381f3ba20f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/59c4bec5e2957d30ef37c5198c4b90381f3ba20f;
+    sha256 = "1pxdkbji2wqh6dp648ikn4367zzxfxa8g0lbvdrvbq0a6s5px02r";
+  };
+  "59d5809fb3d0b096e7104e798b12b06dc68c750e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/59d5809fb3d0b096e7104e798b12b06dc68c750e;
+    sha256 = "1i9mqv3jngvibkby1bfxqjrhib4a1w63sjp4y68cc52gqkv02c22";
+  };
+  "5a001646d2ea8b208174c4b954cf99309889bac0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/5a001646d2ea8b208174c4b954cf99309889bac0;
+    sha256 = "01gxymd2h4bm1b76yn6jpjpxnyw2ixax3rccmn7f36j8zjbnmcm0";
+  };
+  "5a2a13ad5533dc3b2172eb552b404c7c458983ac" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5a2a13ad5533dc3b2172eb552b404c7c458983ac;
+    sha256 = "1k2kjhx4y1zgz5sfnjsfdrqvjbr8vdqzg9q425ncd6zr198p5pl1";
+  };
+  "5a4c5b85fb81b291e8fb6f7c37c0b152f8aeb1bb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/5a4c5b85fb81b291e8fb6f7c37c0b152f8aeb1bb;
+    sha256 = "1s2nlmd81bnk6a884hpmpkgbznnwvilmbbkmx74r8wxwnsnsq3fc";
+  };
+  "5a668ab8aef15368ff281ed35e8f730cc8ec5c7f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/5a668ab8aef15368ff281ed35e8f730cc8ec5c7f;
+    sha256 = "0ha9h8ghv84byrxy7f0jqqq6gzw777vk73sh9n9kxk994a7r2dc2";
+  };
+  "5ab07520be55c428c36c959bcc9d4738bcc55daf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2791326-4a233957ffc54c94b38c9ceaf84d58de/5ab07520be55c428c36c959bcc9d4738bcc55daf;
+    sha256 = "029p4hajh92z6qf433kr6a4ahprqjj4cgbfqabf636q2d3cjwmxy";
+  };
+  "5b00e89032246f6937f2093a0f6510beb7eab715" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5b00e89032246f6937f2093a0f6510beb7eab715;
+    sha256 = "1svvf9jmhhjr36dwlw2lq6y1kl09vnhwcj2m2i8z5fbs2pa724bq";
+  };
+  "5b0c314a325c53eec5d98afdb50067ad99c6e99a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/5b0c314a325c53eec5d98afdb50067ad99c6e99a;
+    sha256 = "0g7yxicms3pkn4y90r14rf7m076fnf2vwq8rbb3wldqjl1yxmjik";
+  };
+  "5b37da6b06afe4b358305eda6827bea44e782b44" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/5b37da6b06afe4b358305eda6827bea44e782b44;
+    sha256 = "0d4k8ramsgvir0689dqxj79flqa1vls9lnjidhkwl8k7an5jf9p8";
+  };
+  "5b81c9f201693bb927130d9d31a3768f7143dfde" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/5b81c9f201693bb927130d9d31a3768f7143dfde;
+    sha256 = "1nk5jan996kb09v2cr1invjq8x3zlh4zmli57hik378x282isszz";
+  };
+  "5bbeebcd7d784670bb16f73b0bf59374d12e300d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5bbeebcd7d784670bb16f73b0bf59374d12e300d;
+    sha256 = "1i4xck1p3269fqa1p69pr7j5r5ssi4hf8p1iq988hhi10wnb74mn";
+  };
+  "5bd038cfe2a2f12f6753e85dee691c08d4fcb6e3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738466-c1f653d3509f461bb7b24e2d8451128d/5bd038cfe2a2f12f6753e85dee691c08d4fcb6e3;
+    sha256 = "184pccfp59sq2sg5wk7i20l2qxswv524nym06dpabm1fv9hi8v0m";
+  };
+  "5c42920f6f44c053dcf7e87f29ccef27b326822c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5c42920f6f44c053dcf7e87f29ccef27b326822c;
+    sha256 = "1z5ii5hslidbijzjqbx66f8h087vn7aidw02m1840pas9dqj9mwc";
+  };
+  "5c4dd9ea4a964b483b1e90c4c6a70cedc63ac70b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/5c4dd9ea4a964b483b1e90c4c6a70cedc63ac70b;
+    sha256 = "08d1f17f7prkw4c64xalywss6r0f3ab0q46hpamj5cb6xs4igccz";
+  };
+  "5c517712601cff542ae326efa6bdc3a7734755c9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5c517712601cff542ae326efa6bdc3a7734755c9;
+    sha256 = "0szgq7q7pf5chr81b1a021r6p2rlb30cyhyjazgq4snprx3f0ih2";
+  };
+  "5c53d41540d89216421c6738a2b0b389ab94ea8a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/5c53d41540d89216421c6738a2b0b389ab94ea8a;
+    sha256 = "0hcz2dj3aansxbyqcrhygsvksa3xlc156c4692rqgcfdawyz1yz2";
+  };
+  "5c65fc01f0d8703654412f609c5e78a363870079" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2468936-39e1c39556f84e60be8d850c452aed67/5c65fc01f0d8703654412f609c5e78a363870079;
+    sha256 = "1v6vgkp5vvjb4zfipyy7a5y5fqafpckb2636fx0bcfqd2ggbqwqd";
+  };
+  "5c8363a3b4c54cf612de94a0521b30e565085fc8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5c8363a3b4c54cf612de94a0521b30e565085fc8;
+    sha256 = "19fq6zfwiazkgra4dvpawh0fsk0c9278kl3jzanjlyxms9isncsf";
+  };
+  "5c9dc79aa298468ccc506369dd777f36e980e71e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/5c9dc79aa298468ccc506369dd777f36e980e71e;
+    sha256 = "0wxn9pw1h2ailgsvkpykrrjdffjdrhswhvznny0l49g7jy39asa2";
+  };
+  "5ca8bb4804169df408781649b3ef8a3d6dd2f414" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/5ca8bb4804169df408781649b3ef8a3d6dd2f414;
+    sha256 = "1nimfzwxc0nfyrp0avf0nhi7n8z21pgsr9321sk21rfv3ln74bab";
+  };
+  "5cf160a27902278f941572aa592a11cf80ac6972" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/5cf160a27902278f941572aa592a11cf80ac6972;
+    sha256 = "0x9ljwsb5jy434kpf0gkk6v1grsmksk691gv9ypn98r20rj1yix3";
+  };
+  "5d09c96c7e23adaab207052fa2fe12dea14e6a44" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5d09c96c7e23adaab207052fa2fe12dea14e6a44;
+    sha256 = "052z4i5naspmnvqlrnz13rvsgfm0qx6yiwq0w3lxwgp09ix612av";
+  };
+  "5d2198866f1b1047bb8a047bbeb38cc0622a4cfb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/5d2198866f1b1047bb8a047bbeb38cc0622a4cfb;
+    sha256 = "1qw4i3v9hfs04r9ys85074j0rdxadzmmjaf3fl6pvrqfprxl0x0x";
+  };
+  "5d8e7a77ae12035781174084d8cb9a4e1bcbfb0b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5d8e7a77ae12035781174084d8cb9a4e1bcbfb0b;
+    sha256 = "0xwnanfz1rxb8jkh27sirf7iv6dkb99i51q7my15amv5a6r9svrh";
+  };
+  "5dbebfe34ab5c28eca7d7b6c57ff41cda029cf64" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2489162-8b935a4b34ed4b3586d7fe3f6ce28b34/5dbebfe34ab5c28eca7d7b6c57ff41cda029cf64;
+    sha256 = "0kl73ymnq3w0wi630i3kdm2b0j60i708i5938qipq340cwjw4m7c";
+  };
+  "5e2314065445393471dbf0e9d3f2755a491d1bba" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/5e2314065445393471dbf0e9d3f2755a491d1bba;
+    sha256 = "1i9v4q0r13jd9x4n4inkin8p2936qzlx9bkm6wl0ab9fy0bzl0lm";
+  };
+  "5e58fbb85b49d5886aa35ed06da2fc6788db1320" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2596395-e8e15c40b8f2449b881e17834a75d9f8/5e58fbb85b49d5886aa35ed06da2fc6788db1320;
+    sha256 = "05051mjf0ywp7h94g4sxcxdplm3vfq5nc2l52y08gyz4348s66a5";
+  };
+  "5e7d96af5e5b1cafa670bd77ae918457a118f7a5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5e7d96af5e5b1cafa670bd77ae918457a118f7a5;
+    sha256 = "1p9phbl68bq2q7h0afa2q429pbyb0m2wprym4v1ydlz7c50mpkp9";
+  };
+  "5e9b459db24eeba207710184e58445974e211543" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/5e9b459db24eeba207710184e58445974e211543;
+    sha256 = "0r3vxr2hi86v8fhpcr3n4hacaisqn92a9ayh84fym4y964zg5c2d";
+  };
+  "5ec11a04eda7f0d96f115e200ac8029b95d4115d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5ec11a04eda7f0d96f115e200ac8029b95d4115d;
+    sha256 = "06jfn17h59jc4d0f81s09yfjl2a12r7d9b5p4pn08h50zjkwwhac";
+  };
+  "5ef88b8b3029a7aa2ddaaaf702ab09e6f18a9ab1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/5ef88b8b3029a7aa2ddaaaf702ab09e6f18a9ab1;
+    sha256 = "18zs81swncyyff3a26dlc9c87gvq75b9c0sscwhqak2m18jz1xqs";
+  };
+  "5f026e163284ef4d1dd49f3e7ab1ddb74e2e8dbf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/5f026e163284ef4d1dd49f3e7ab1ddb74e2e8dbf;
+    sha256 = "0rnhwgizkbxn5xdf63kbacsf9s54hzxl3zz6m72jzmlr0i3z17hh";
+  };
+  "5f116087ea09d4cd18e565462f0cb21da53cad86" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2407513-a097e3fe93574082b279540eec49fa58/5f116087ea09d4cd18e565462f0cb21da53cad86;
+    sha256 = "10blnrsjd5f90bkd48k4bqbz69xa0dd41yvkf4v21ffl4sdj184b";
+  };
+  "5f239795752cebffb0bd14bc3d14db541d74b95f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/5f239795752cebffb0bd14bc3d14db541d74b95f;
+    sha256 = "17wnf2ps8abp04i6mkqz9wmfm58vwjy355pqqs216ap3bq7l7iw7";
+  };
+  "5f29467ca4107002987a75eafe3c02d49c0d3fc8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/5f29467ca4107002987a75eafe3c02d49c0d3fc8;
+    sha256 = "1irzs3c6qwh0xl7dhpyk24iwbdxyrmpn9qdly7zshgqqzgz26caj";
+  };
+  "5fa26a7a3b2978df4bee466d4c76c7b95497e4a4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/5fa26a7a3b2978df4bee466d4c76c7b95497e4a4;
+    sha256 = "03d8366sam4f1xjf7jg2awir5hd3h7hgggif3nisbpvg91nip0vb";
+  };
+  "5fe5595a5a46eab069dcd2d6813c1b68cd9ade4f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/5fe5595a5a46eab069dcd2d6813c1b68cd9ade4f;
+    sha256 = "0s3a3w3xd7w1c7x19nljmkp68xq2b1m2klx60i739y5lb2g7x0lv";
+  };
+  "6028c6247770e169982f50ed839356448f3d93f5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/6028c6247770e169982f50ed839356448f3d93f5;
+    sha256 = "0fcg2pm4l5cg2vah26s2p0p5ljy3hk0vssc0f1f18pvw5zicv3g9";
+  };
+  "604e9fc9dd1c1b397add8f900213a87a9964ee51" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/604e9fc9dd1c1b397add8f900213a87a9964ee51;
+    sha256 = "0xsns5k5165s37f4q2qy12958zz112487313n6mlgny6zrp1azf9";
+  };
+  "607c94b25b7e4fd2ad13dfdf210e43eca3abf392" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/607c94b25b7e4fd2ad13dfdf210e43eca3abf392;
+    sha256 = "169603qzhzfnpmik6vaz14zggkvad57s3d46xlnc63hcq7ambj4a";
+  };
+  "60864e331c9e60034c81b9544ca30a14688574a3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/60864e331c9e60034c81b9544ca30a14688574a3;
+    sha256 = "1hqyxcf0nfwx83qb94534y5idxb0a3554nncbrxx9s4vigm4pdb7";
+  };
+  "6093beca3b21ddf0d2d599e6a841ea070ac01fae" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/6093beca3b21ddf0d2d599e6a841ea070ac01fae;
+    sha256 = "1hxgib9wc4d9s8n0b4y8vaisxqpbhxa699ls5358nz4gdw8zr0q8";
+  };
+  "60c5bb5120f6c73b23af87c97dd5179f0ade011f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/60c5bb5120f6c73b23af87c97dd5179f0ade011f;
+    sha256 = "0lcnjvklsxhfzcda286wkwjqdczyb7w0k8v9yybl0cj3ls1ikgnb";
+  };
+  "60d58acfdcf8d83f8a76a00017b7b2e18671b5a9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716370-1fe4be93d0274863a43a7797419557e3/60d58acfdcf8d83f8a76a00017b7b2e18671b5a9;
+    sha256 = "1gfl59bmrkvg038xw90xi2g1vmz6wzh84wmsk5g6mm8klpd57aw9";
+  };
+  "60f481b9e0149933c045fafa2e119c902e698d0e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/60f481b9e0149933c045fafa2e119c902e698d0e;
+    sha256 = "0l9rq8fh7mmkj363gzl673rknaacjv32276y0b52vxxg0m8fylfc";
+  };
+  "6110e8d90324f6bac6bd3173bc69f6c58d459d08" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/6110e8d90324f6bac6bd3173bc69f6c58d459d08;
+    sha256 = "15rqyi5w0nklw3v2r7fagaa0v6am1p1rgvq7fpk0x98axp7nvx71";
+  };
+  "61402aec078bfe9e6535f5a6ae537710fa5e79b0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/61402aec078bfe9e6535f5a6ae537710fa5e79b0;
+    sha256 = "0f9yjkz2myf9qnnk21n2alsb4ibznl96hh9i57d1y9w425jg4a2x";
+  };
+  "61588d85e249c225350c50ef50608fa8b9f4941a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/61588d85e249c225350c50ef50608fa8b9f4941a;
+    sha256 = "0daalrsynapmicj8bbv2cvg4kijm3x0c8zkayjjzixw5qy8sada9";
+  };
+  "618449250b93c28bb8f15751ff6bb653143e5ff0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/618449250b93c28bb8f15751ff6bb653143e5ff0;
+    sha256 = "0zkpxgpqcmkfd1a8rsivfrw5qxkqlcw9apa2jkf46417m1k5w2k1";
+  };
+  "61a4313e93aab82bab5da58a1b601aad41ecbd60" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/61a4313e93aab82bab5da58a1b601aad41ecbd60;
+    sha256 = "1gf7d5hxdl8hyfs30b2y9f1h6d3b17jfb65jlrx8fbcg70brad42";
+  };
+  "61edd2f04c73c5c3eca0bfae13c92213516504e3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/61edd2f04c73c5c3eca0bfae13c92213516504e3;
+    sha256 = "1aslzizrnnibzn5ynspirz9zz7667mzpz4gfvqb8k0x6zk46j5xz";
+  };
+  "61ff058a4cd1eab2481a48a115063c62660b78ca" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/61ff058a4cd1eab2481a48a115063c62660b78ca;
+    sha256 = "08m4b9c2dyld2hr7c8mxpfgvxxdaxj7svaspdfsg91ghq42mscdd";
+  };
+  "622d9c355d2344266a6a9065ae16e911791d9ac2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/622d9c355d2344266a6a9065ae16e911791d9ac2;
+    sha256 = "1i51r1bwfx7fsrykfbj5ylm1yjcp2q9a305vx070rig8m33qygla";
+  };
+  "6253baddbb265d8bcab9334e1bb48fee69c0a14c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/6253baddbb265d8bcab9334e1bb48fee69c0a14c;
+    sha256 = "0xfz545zngq5jnji3zxr8wlwjf8y7c8wd6bmmwkkjf1a2pipywiy";
+  };
+  "62cfaf0ed5a8437e74ef0b7331f28a86942cc8c8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605188-b2b13e5f7b3d453eb5d6b0cde31b638c/62cfaf0ed5a8437e74ef0b7331f28a86942cc8c8;
+    sha256 = "1asb6h92cnh2xmwnggn6kk9qly4pzw43aax3v07zhs69d3jbhg2x";
+  };
+  "62d297add5bd88f5ea16b2ba6b97664dd888eef8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/62d297add5bd88f5ea16b2ba6b97664dd888eef8;
+    sha256 = "1ajrnfsz53imm4hcsnjznbq087yvbj87s30v948x2vxy7ja17hi2";
+  };
+  "62e18e2b34d9ca5872cacacfd6eb9e94afd0eb2e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/62e18e2b34d9ca5872cacacfd6eb9e94afd0eb2e;
+    sha256 = "0jirs3ij917vqznqffqh5bisx4bvqfhbhr56fmlfyykckqwmq7i8";
+  };
+  "62e5d1e864e96e11f84e99dcab8cd16345641f43" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/62e5d1e864e96e11f84e99dcab8cd16345641f43;
+    sha256 = "1s7k9h8vpg5j5jq9mc4mgnrb1lyp3y3lvgc7n7l76djm61amqchz";
+  };
+  "63574e974c45ae3f0e8fbfcc9d896c53798dd161" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/63574e974c45ae3f0e8fbfcc9d896c53798dd161;
+    sha256 = "181s6b5j1zqv1hf905paxxgl4j4k20s7ypnv1h7f05qp4sq6wia2";
+  };
+  "6359e2376de35d2b27246726788d28d678796a20" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/6359e2376de35d2b27246726788d28d678796a20;
+    sha256 = "006mdqfgkxgppxcx8fdfza7z9f80rq27gjncnqpgk3wawb9033r6";
+  };
+  "6372acc1b0c4c85801bbd2b0fc9bd17a043c1b67" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/6372acc1b0c4c85801bbd2b0fc9bd17a043c1b67;
+    sha256 = "0c8fgaqy17nvsqx4lsiy4fd9z563rbf69sac18bkwyvw0wb4w1s6";
+  };
+  "637e6e050e0e294f4e7191f12ad96c9be75aa747" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/637e6e050e0e294f4e7191f12ad96c9be75aa747;
+    sha256 = "1s1vx86pp7c7kabvi0jpvqqykjb5127qwf6ljz8r6awmx9k32yly";
+  };
+  "6393b6f72772149473aacbdd6425bc77b7146697" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/6393b6f72772149473aacbdd6425bc77b7146697;
+    sha256 = "0jpjsh7r1m4isbhmmijlysv7jmnf01f3rj9q8z3v6fdmbi6v0d68";
+  };
+  "6393ed28494cd0c7bbfc3d90ee14a3c4fb5ffe2e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/6393ed28494cd0c7bbfc3d90ee14a3c4fb5ffe2e;
+    sha256 = "0972073k9di5s980ypdn4dww5y0drc1fsn7q5bk71ylz6pdx7ijh";
+  };
+  "639844a81c2400a43810b5674c144824ce23f3db" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2653253-b6a14aed15124b4891aa1fe8706033fb/639844a81c2400a43810b5674c144824ce23f3db;
+    sha256 = "0rflhgn3nxl5msfd7f8xmz56msgkqhadyh5n7b120lk34wa7bvw3";
+  };
+  "63b510d13c94072e9005674901d2b32ec9853167" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/63b510d13c94072e9005674901d2b32ec9853167;
+    sha256 = "1j10rlxqrdy1zv5fpx0zk4hy73fbi93zk7qsq59cfgpbgsd9n79g";
+  };
+  "63ceab8331229d4e03c85aa9b5f4671eda2643f1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/63ceab8331229d4e03c85aa9b5f4671eda2643f1;
+    sha256 = "05jv83mc7abw5zyad8wccnnh7q8f5ba82hq10w7d589gasdbj9s8";
+  };
+  "63fb6b15f90b5647d4e46169447beceac52a5dff" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/63fb6b15f90b5647d4e46169447beceac52a5dff;
+    sha256 = "1bhljn5pai17hw9znr22kv87p0fl01sx8h231v4mb96f8d1037q3";
+  };
+  "645a1e3bcfcb7345c6416a0ed520fae63329b8b3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2622232-9cbce5f5f69743598cf4bcb212040bd6/645a1e3bcfcb7345c6416a0ed520fae63329b8b3;
+    sha256 = "1mdx70n7hv42j7ychalbn2rwq8irm1nl1s0i5rgnbvsxb0z445pn";
+  };
+  "64e87def5324af1f8687a977b1aeca68f9ecf0a6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/64e87def5324af1f8687a977b1aeca68f9ecf0a6;
+    sha256 = "1alslkmk8i0vmg4v5bd8lizm1b51bp1mcy5bmwy03dfnpv9hd8yk";
+  };
+  "64f0b7d72766b49356b5948a55695a43f845be22" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/64f0b7d72766b49356b5948a55695a43f845be22;
+    sha256 = "0x7rh3sw20czicj5pb9p0z4xdhd7vc32562wlcwf5c9k0vdyddri";
+  };
+  "6522f3b24668a2691bee084b8ee44262dc6cc644" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/6522f3b24668a2691bee084b8ee44262dc6cc644;
+    sha256 = "0brl515h4axh92dypzyrcx5gjf3lzakmn48nn2aapk25l8lzw7fm";
+  };
+  "65578de12deaee566474c4d151d51dfbd4c073c9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/65578de12deaee566474c4d151d51dfbd4c073c9;
+    sha256 = "0n1rhn916zqr83fxzb6slwd3sj7xbxyi4j5371pndfq1ah8yynkr";
+  };
+  "6580420e45c35e3175f7714b91aa918b46c45984" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/6580420e45c35e3175f7714b91aa918b46c45984;
+    sha256 = "1xsyvsp7gr58v19k3b5d33ayhz38amckz6kcabv2jaj22d1m4zwv";
+  };
+  "658fa72e61b1133bc866dc68b7317dda0c190d51" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372492-7eda6cf2d68f471699ac1d302230bcd3/658fa72e61b1133bc866dc68b7317dda0c190d51;
+    sha256 = "0am1lpxk2jxhf015siabscd3b8i2p43xgg8p5bp0r0sxrcbxwy2j";
+  };
+  "65a719d77d9dbaa46e24a210a17ef22399982d13" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/65a719d77d9dbaa46e24a210a17ef22399982d13;
+    sha256 = "15wh8wv0fj30xy5lhz1vhw5a7d6fqk8pjpcivzmlc9qp48jaa9jr";
+  };
+  "65b78b6ca4fcbc234e459578f687f0a5f21ff467" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/65b78b6ca4fcbc234e459578f687f0a5f21ff467;
+    sha256 = "1xpkj42dfkpqa0bq1fvwwy8n4286h2xlwz0fm2m4yk3p7qs2yyn5";
+  };
+  "65c815431a222281ca4027a3409714aca969c404" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/65c815431a222281ca4027a3409714aca969c404;
+    sha256 = "11n5ra9mwj06zlilmn58xwhqr081ml58f8jd57sz994f3ci78kf4";
+  };
+  "65f992d64db107757f6c8186765571a2f85d60d1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/65f992d64db107757f6c8186765571a2f85d60d1;
+    sha256 = "1jfrsagmfvvjxji32w4p7qq6b2vyqfmn52d1xinxn11v575cmrxw";
+  };
+  "663723ac5cff1d4ea06e07da58676eda31ded8b7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/663723ac5cff1d4ea06e07da58676eda31ded8b7;
+    sha256 = "0yc5wmplmj4nqfzlydrf3gcphnym0vdy5l8xsb6l6gjm1rzn3w61";
+  };
+  "66b5c49c095c24e8ff5576638e6f43f40b60e398" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2467022-c410c14385ba462bb86b4995040cdcb9/66b5c49c095c24e8ff5576638e6f43f40b60e398;
+    sha256 = "1r4cq5hz5ciak42xy5h6jk8r55cy4a2am2x7nsm8n40pn1m86xg3";
+  };
+  "66e6d819829e7f036392ae108ecdedd0068b3fed" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/66e6d819829e7f036392ae108ecdedd0068b3fed;
+    sha256 = "00h32jp49052x7fms634savpk88976q973s1ixnkcl4q10y3ygc3";
+  };
+  "675414213a5992bda8f4bf33aa2feac7508eadb9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/675414213a5992bda8f4bf33aa2feac7508eadb9;
+    sha256 = "0b20idjyc0m9dqrnpzxxdshw29l7nlj1g7fi5zhf9y0hh77v1ji3";
+  };
+  "6758891f27f3f1b33f508442151c2d1d4244cacf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/6758891f27f3f1b33f508442151c2d1d4244cacf;
+    sha256 = "0ixakp9gxjjn5c19mir7qxjh7ywx6n2pncqiv37mbhj5c9z5r7mb";
+  };
+  "676f25261064cf478cd211dd584b7a391376f599" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/676f25261064cf478cd211dd584b7a391376f599;
+    sha256 = "0f0ix6vbx89pa9bpvnf87kwhbnf7q34mxf8ycw6md4brrjps21js";
+  };
+  "677b668be4a2ec5fa834fa988bf502390ca975d1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2703853-c90e6f22156c41b6b1968b2a029d291e/677b668be4a2ec5fa834fa988bf502390ca975d1;
+    sha256 = "16ppk310afb40np5slr1b7qy6ksq16d0pl2zavd4wrxr626c0yjb";
+  };
+  "67ebcec99338fbc806e98fe5ddcc80abd7cfe885" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/67ebcec99338fbc806e98fe5ddcc80abd7cfe885;
+    sha256 = "1rhm5ziiax99nlnyz1y3gqai9wkkvi0lwmsjn64xsqhp2cm93sag";
+  };
+  "67f9a57842391bca1072e56b907d2adde02d2d34" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2609785-e83ceb61e76a4e4bb9b4dc17c52d07b1/67f9a57842391bca1072e56b907d2adde02d2d34;
+    sha256 = "1i8aa40i83zlzydfdbf3k023329mlvlh32kwln6q9pg9998k5hr0";
+  };
+  "68290cfc4aa5f88785b355b66e5efa7ae2451f3f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/68290cfc4aa5f88785b355b66e5efa7ae2451f3f;
+    sha256 = "1s6m4qakr8bzyhak2v7d6b7h3g75iy4wfxplbz0r1bk79mlzh8ch";
+  };
+  "682beb667137b4be322732642ec6bd7a7fb77a67" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2474673-cc4b4abcf8d5453d9c14a5ad304063e3/682beb667137b4be322732642ec6bd7a7fb77a67;
+    sha256 = "1sap6ri29l2cd8yw5g5g8axy9nz8gy4lhrkvp1fnnf5c68cqqhm4";
+  };
+  "684a26e9ee9814c8e55834710a5e5395db2acbf6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/684a26e9ee9814c8e55834710a5e5395db2acbf6;
+    sha256 = "1g8alym478k5mla106h38zmspr1gvgbyckhc0hbjk950kffwg537";
+  };
+  "69435a1a9c544a85003dac3e715da698388e8cfe" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/69435a1a9c544a85003dac3e715da698388e8cfe;
+    sha256 = "1wb8slsppm2cz2g5qlccjgjayv3q8bl0p5hybz3gpicnjyhla1c0";
+  };
+  "694d6d6d33e802bd013aa60c6ceef225f1769a21" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/694d6d6d33e802bd013aa60c6ceef225f1769a21;
+    sha256 = "100b3c46qf5nhw3758203khsqjk5jq9hi3s7hsjsjrrz03p2fclp";
+  };
+  "696aa11a029bfeebe1885750c0a1219698f45667" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/696aa11a029bfeebe1885750c0a1219698f45667;
+    sha256 = "0nbr429yjr1xi2zlqz0k33p62d4mq4pcc49xshkdjbqm8j76yg9r";
+  };
+  "69fc2b97ab8ad300bd86bdb295b868f7e2bce67e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/69fc2b97ab8ad300bd86bdb295b868f7e2bce67e;
+    sha256 = "0538b6klq4k379vp6miha7y73sz3lbgj093hxhzl4jb7fqnrwpdr";
+  };
+  "6a0ea024e2030b5079a2b9e20aa262fcb1a4a4b3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/6a0ea024e2030b5079a2b9e20aa262fcb1a4a4b3;
+    sha256 = "1i6rijsnpwq58ngwdak1kx0kv53w2bqgl0jfwww2mpm9nwr34dgk";
+  };
+  "6a12e8d5c57226c69cfd4eea779767ef39cc7040" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/6a12e8d5c57226c69cfd4eea779767ef39cc7040;
+    sha256 = "0fpbgjzi79f8y2k8dmj596kndbjrpkaqvld1mpfd8mfxjg435psd";
+  };
+  "6a471e2c9660b457b6c96bac1a80ff31694ca135" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2602350-38e0d307a57a47baa00ee5f892c9ced6/6a471e2c9660b457b6c96bac1a80ff31694ca135;
+    sha256 = "0ifvzqzrjf1ich2m8r75czl46kyr0y2aagsb6h5mqnxmqbznwkq0";
+  };
+  "6a50182277880d3cdd4488457883c08e6765df35" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2587672-91bd78b10f504d6789cdb334ed27eda0/6a50182277880d3cdd4488457883c08e6765df35;
+    sha256 = "1pr0sfpya1izpppfdpypkpyqsalr02v0azcxyn2p8jibnzkg4qqa";
+  };
+  "6a67f7a815e887377e17dc82a86617bcbfd74f12" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/6a67f7a815e887377e17dc82a86617bcbfd74f12;
+    sha256 = "1wqf8h7wlwzwiv2syrs3c69lbiqr7505kkbfckrscj8ym2rgmqxl";
+  };
+  "6a6962c3f79f9f08e1b48bdf76659d8d0ac02e20" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/6a6962c3f79f9f08e1b48bdf76659d8d0ac02e20;
+    sha256 = "01dlplk4r00san6hbw5mclppb0kapx51w4mv2piihx6vcdq2dv2w";
+  };
+  "6a8708499175f48f9ac6e36dcde1684f5908e594" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/6a8708499175f48f9ac6e36dcde1684f5908e594;
+    sha256 = "0v67h7q7wz0xa66l8m8kk7adrf7mr9arns5w5rdv3m6dq9730cz1";
+  };
+  "6a9c5875310b65c3a8a12766aa12d23c75256911" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605188-b2b13e5f7b3d453eb5d6b0cde31b638c/6a9c5875310b65c3a8a12766aa12d23c75256911;
+    sha256 = "1x5q67kq3jrxhcvnc4xj2ic28ssmiyld4yp3y612vl71z02rsaji";
+  };
+  "6b3a9a128f40523d7b4663b4aff1259e204dc2fa" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2638350-39632eb9e5f94ba4ab8e97fa2d5a3251/6b3a9a128f40523d7b4663b4aff1259e204dc2fa;
+    sha256 = "1nhpvs47s221k07ix1i5sp4ba8mia36zmqfz66dz2x9yx87xm3gj";
+  };
+  "6b44b6d36ae3887d630357d09ac1f4655e43ca7b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/6b44b6d36ae3887d630357d09ac1f4655e43ca7b;
+    sha256 = "0rmj38k1zz4q2ckwngs38jn6z5w9kaxrghckqv60ajjpn47dk008";
+  };
+  "6b67c4b93edd66dc6876acdfaf991559f2387756" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2615502-35e684f430004977ab5aaed43a0fab81/6b67c4b93edd66dc6876acdfaf991559f2387756;
+    sha256 = "0mq7wi48fck0c8i1f08mkya5fjr5a2sip3g9lzzi4my3k6g0jdlc";
+  };
+  "6b6ea1539e3e10b995b117a201cd14188d7361cf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2528357-44d3814edbb84d09a5279fe4fd30ba86/6b6ea1539e3e10b995b117a201cd14188d7361cf;
+    sha256 = "1y7r4z90rp10b9pqp54awmnxqibx8pr2924l52z2abm3hza7h6da";
+  };
+  "6b990f3e47bfc2ed0ca6a8c68c9188a6788110bd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/6b990f3e47bfc2ed0ca6a8c68c9188a6788110bd;
+    sha256 = "1mwmkci1q5lk8vrqgcrng5p8vdg2y2k18g5x5csgfa0j0harwr20";
+  };
+  "6ba54736caaad91cbe96699871e5e369c615d477" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2528371-50b896349a4f4b48b4cce5ef240b0c45/6ba54736caaad91cbe96699871e5e369c615d477;
+    sha256 = "093pf4kdkisr2k3xkz7qx88503mr70y3crx4170lblax8mji89ib";
+  };
+  "6be690bb0e769b3f7e8d0ea9dc261b06f0496249" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/6be690bb0e769b3f7e8d0ea9dc261b06f0496249;
+    sha256 = "18cidvs8cv9air0l9g65s0010a677qpj3rjdx1z1p19mcr7w9ddz";
+  };
+  "6c0977b3790d44b85c497cbd724ffa4f744bd6b6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/6c0977b3790d44b85c497cbd724ffa4f744bd6b6;
+    sha256 = "0wcypa2p4wx0si460677y544hjp38vf81im61z5kq4scr5l4kwxs";
+  };
+  "6c431edb06befc6eec62ca59cc72f45697da876b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/6c431edb06befc6eec62ca59cc72f45697da876b;
+    sha256 = "0bm4r49wzm0bx5wa0xdpmld8y0cv6jin9wl3djlp7kwg0nix2fv8";
+  };
+  "6cac0ce67fc25ab9057de053ed68e469376a951a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/6cac0ce67fc25ab9057de053ed68e469376a951a;
+    sha256 = "04kbpf0pwsc1a5kz2yhg1azp0ng2zc4ff8dyhc58n543nyla68v2";
+  };
+  "6cb6768eacda17fd4b9089b3667e49c91b543347" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/6cb6768eacda17fd4b9089b3667e49c91b543347;
+    sha256 = "1wj29bzdnf3s0w5vymnj599jq926m5whdrllfx6869z32q8xasms";
+  };
+  "6d0a3530ef64aa77b0e3b1121ab3e5148367b843" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/6d0a3530ef64aa77b0e3b1121ab3e5148367b843;
+    sha256 = "16brrbwwhh9ddjs22ijqkaxrz56n4bmzfbkshipmc74p6ildw05n";
+  };
+  "6d10bf18bc8be763d3e8f14a5f604b8bbc8ba92b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/6d10bf18bc8be763d3e8f14a5f604b8bbc8ba92b;
+    sha256 = "12mw32xsaa1j0lcj5nbir2m7m3bp9sgvjf2022l5rxzs196kncdy";
+  };
+  "6d17b68e3ef2ba04421c03ad37c21c1871a7291b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2468685-6ced80b1c43d4f92b6c325ead32ec577/6d17b68e3ef2ba04421c03ad37c21c1871a7291b;
+    sha256 = "0lb1q5wp4px4kh5lkfbva078jk0jj2nli6nqf6501yq1gbq80q5v";
+  };
+  "6d2192770af113f0d25717171721654f92522bc7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/6d2192770af113f0d25717171721654f92522bc7;
+    sha256 = "0x9ayw21alzjqp5xwlj291klnxdkhqqgbz1wvppklmnw3yrqbha2";
+  };
+  "6d263531086a2ac8abcd381816ca4bbebeb2bb89" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/6d263531086a2ac8abcd381816ca4bbebeb2bb89;
+    sha256 = "10wihlpfq2ilg2a3rj6hdj2109rwsvsnjfs4x9l8pmr0imn6w4pz";
+  };
+  "6d2b2990842e4e124fa1767f5e6fb10dc1c8f0bd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2467022-c410c14385ba462bb86b4995040cdcb9/6d2b2990842e4e124fa1767f5e6fb10dc1c8f0bd;
+    sha256 = "1jvcscijpcpl4g17wl8h39p6jwngh8qys423najf9hxqxvx9l9w1";
+  };
+  "6d7357dd4987e9a687f666583450e9650b6bec3b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/6d7357dd4987e9a687f666583450e9650b6bec3b;
+    sha256 = "0xzzdsb63zb9771lxm845390d23hihgax7ksyrlhjmvj30kxxkhk";
+  };
+  "6d8bf7bc3f485cc58257d2f301a88e430fe47518" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/6d8bf7bc3f485cc58257d2f301a88e430fe47518;
+    sha256 = "1pvs3fl5qschq6gk12ig84wd4568sgmv4gv05kdvda44pnz3fbnd";
+  };
+  "6d9e988311499cbfde8b162b1b772f3ab0826cfa" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/6d9e988311499cbfde8b162b1b772f3ab0826cfa;
+    sha256 = "0bp2gbl6b2dimw4izmsa9cpsw2650g1a1apq5pv1j0a0ihahwfjn";
+  };
+  "6dbc1369cf4eb542c999ef1a7dc17798e967968e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/6dbc1369cf4eb542c999ef1a7dc17798e967968e;
+    sha256 = "15vl7c83w4l3jd366lxljgpjyh2dxi22s11sk83bkca9ig8p9rlb";
+  };
+  "6e12c754b5531592e7583c0ddf5ea9f617bc4393" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/6e12c754b5531592e7583c0ddf5ea9f617bc4393;
+    sha256 = "095hbf0bx9iwcyrljr23zg1dwd3n382s4pxgpvalpb6flk346i9l";
+  };
+  "6e4f2760b5d09171b1caf834191e8eff91e09092" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/6e4f2760b5d09171b1caf834191e8eff91e09092;
+    sha256 = "042615c1ssd8jd0swn6qxl55v619ilz3y5549qqaj2qbs2rxgda6";
+  };
+  "6e59a6401cd7e9537de8df24d6923df4897465b2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/6e59a6401cd7e9537de8df24d6923df4897465b2;
+    sha256 = "1pbk0lxx24w1bblnjnl2zvljy2pg4c8pad7xyfp5gwinz9ns045w";
+  };
+  "6e5a4c88769060bd4e1cc4b17dc6944cd5f3d5cf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/6e5a4c88769060bd4e1cc4b17dc6944cd5f3d5cf;
+    sha256 = "0y08zj57v9n6a1hp9rgrvx5zcj63kq3363xi2vfl5g0fl3n0rfn4";
+  };
+  "6e730e7ead3a2958afb3beeffb7961d98b372ba4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/6e730e7ead3a2958afb3beeffb7961d98b372ba4;
+    sha256 = "1d5rkr6qa8h4kxqcxarmvwfmn49k1rnfljvrm4b72yscl3x89pri";
+  };
+  "6e81558b9e889ebb9d8f50cf1f1d5c4ab32617ce" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/6e81558b9e889ebb9d8f50cf1f1d5c4ab32617ce;
+    sha256 = "1ljwpklbqah13l6mvrgfbn4xxwpxqycb4cr2ibh90aigjyjbijni";
+  };
+  "6ebcf68520fb80c14bda307947650ecbe5ed0335" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/6ebcf68520fb80c14bda307947650ecbe5ed0335;
+    sha256 = "1xq7g59xy3a25qiib3dv30in8yqg8667wpq940z64gapbsvjk106";
+  };
+  "6efaf9b48d52aee2c7a89e9fb7c8face3a1dab34" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/6efaf9b48d52aee2c7a89e9fb7c8face3a1dab34;
+    sha256 = "10iv45b9g9l3krxqs8cqkgad5zhvy64n84q94ghkyn86ilg6pmqb";
+  };
+  "6f05a4518d46fff2a081dfff843f2af3e163a983" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/6f05a4518d46fff2a081dfff843f2af3e163a983;
+    sha256 = "07qkvg5g4dnzwjv9s38gqjc5mzsa13xmv0g2d9wii4vwm9ray2sw";
+  };
+  "6f0e8b5effca878a55ca98bb70c7fc5b9c33a7ca" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/6f0e8b5effca878a55ca98bb70c7fc5b9c33a7ca;
+    sha256 = "1whaajzna61zci7cjpw0p3j7z1y3wiqz98qkn5s3lpl0j37l3pql";
+  };
+  "6f3fed4aa88e43e6ccbf7498ff502f8440e1d8b4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/6f3fed4aa88e43e6ccbf7498ff502f8440e1d8b4;
+    sha256 = "0hcsv3588k6ra0cd5l1f64m5r35fl6wbs9a8p9j29nigy3vdmbvv";
+  };
+  "6f51406032cee2275e7da1c749608e097223bcb1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/6f51406032cee2275e7da1c749608e097223bcb1;
+    sha256 = "1lcaxdjbkx2nklln244ljdfyhi4b246zvk7pl6hg29kbjaxh3grw";
+  };
+  "6f7d171cf322dcfd650c55aad7573fb99f926026" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/6f7d171cf322dcfd650c55aad7573fb99f926026;
+    sha256 = "06yn4cdz4rrvh1h483fj06n6n0jamngx2z24mjc1raf63slidb07";
+  };
+  "6f920a415787627f9dc4c1ef92a2a039a21976a6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/6f920a415787627f9dc4c1ef92a2a039a21976a6;
+    sha256 = "12szpcgm9mgddiyyf6yhs8rf6hlwa0kw0m9wzs9xdq1phxwwcvy6";
+  };
+  "701e08162a99eeb25b55b6133dfee51bf36e08d3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/701e08162a99eeb25b55b6133dfee51bf36e08d3;
+    sha256 = "1mffiwbv7qbwadrj6jkm1n4hzkjl5m3fc4dgxdijz7i79d8pgyk1";
+  };
+  "7054b730a39f0d762ba1602fbca946a38a8811cf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2565979-eaaf2006b54843b69b5280979c12ed6d/7054b730a39f0d762ba1602fbca946a38a8811cf;
+    sha256 = "1vmx4g2jyv97k5pbv6rayn8a0qd29dwmvbl60v266m2ld25mv59r";
+  };
+  "705da00d6ddc859d91abda6fb8299b957eb0d99f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/705da00d6ddc859d91abda6fb8299b957eb0d99f;
+    sha256 = "0sizr4r95pddbynh4kns28id4n99hb7cz5dxx5pj5ma8n3w5295f";
+  };
+  "7077b313799ab4557f8c8d9aa345313eb3c6fbae" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2622232-9cbce5f5f69743598cf4bcb212040bd6/7077b313799ab4557f8c8d9aa345313eb3c6fbae;
+    sha256 = "0mhm5c9z63i6v24bfkhci6zdzjzqwaimkd77p5whrnqrfw44iqz2";
+  };
+  "70bb4371a8b8f7a2118ee2f0a7604496b68eef9b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/70bb4371a8b8f7a2118ee2f0a7604496b68eef9b;
+    sha256 = "1sjrdhycvh0dy9c1b2abkpar8bjmm57xqpfp2qznah918mp43jds";
+  };
+  "70bd0e0e4dbec19c4cffb718ebb1ac84e037940e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/70bd0e0e4dbec19c4cffb718ebb1ac84e037940e;
+    sha256 = "0banm0bvf6rsz8jpkx7ivghf47ds8wf6dbcfg17f7nbbcnjg125d";
+  };
+  "70f50e9df2d8e0011bf9748ea4c1df4c8c8c2202" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/70f50e9df2d8e0011bf9748ea4c1df4c8c8c2202;
+    sha256 = "1cw8ykv8nzrvwc1rdr45ilr2cyl8f6crby374n8049dyx1bd2mmx";
+  };
+  "71031e888d4b28104016a406b7ab6e993322d9c8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/71031e888d4b28104016a406b7ab6e993322d9c8;
+    sha256 = "1ixxwv77kbnz8y8z64v0radxx3q7azbakcpq9nl84k8b93lzmp3z";
+  };
+  "716adbc60694f3f72ef5e25a38f3fb973fdc7a2e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/716adbc60694f3f72ef5e25a38f3fb973fdc7a2e;
+    sha256 = "1c8w4k96i6fgkd0jc9vwpmw31p4bcfw88x09c6781ri64qw1asl6";
+  };
+  "71a6745bfe2208e7c0eea0718fc3a06d9ebf12cf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/71a6745bfe2208e7c0eea0718fc3a06d9ebf12cf;
+    sha256 = "1q9ymfkjvbwv1bwvq5m5c31yb3kcvfwvgrsr803wqa6qm4s40zdd";
+  };
+  "71a806e6c281e55c56f6e0feb65e35d553d03b68" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/71a806e6c281e55c56f6e0feb65e35d553d03b68;
+    sha256 = "05065h1wgxihrmih7yc291vxgpyimcj2kgbqn4j8mly43llylp5f";
+  };
+  "71b05376f1ca6f9ebfddddb4cb2258620d57951f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/71b05376f1ca6f9ebfddddb4cb2258620d57951f;
+    sha256 = "09ccxpvjjs3yjc45ygjd6phff9ax7xa0lhr5sb5jzswfnblkb04i";
+  };
+  "71f91c9ee187d974e3f5da3d91a352d568c260a8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/71f91c9ee187d974e3f5da3d91a352d568c260a8;
+    sha256 = "1j2jk0qb9wdczxww1wl3rm07rhz1q3b4n6z23jja3r1fqsn8w50v";
+  };
+  "7210d2acb28ac3185e52b3c854c02db46878b00b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2499790-9469133ca7fa466794728dd13190004c/7210d2acb28ac3185e52b3c854c02db46878b00b;
+    sha256 = "15llgg0n7w2awbbkb0lvb90g8sjip1zj7knca21lyxgb86p4nfbq";
+  };
+  "7214bfbc3129849a9681c342e1873b66020b0420" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621802-1efd555e661e4948aa22f3883712aa6c/7214bfbc3129849a9681c342e1873b66020b0420;
+    sha256 = "0qpkvfjnmmf8bcvd8qddfyyf3hglkp3870z8rhpxcpyqbv5q644x";
+  };
+  "7221d90f16cb54cc4f5be63f68865da103cd4f5a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/7221d90f16cb54cc4f5be63f68865da103cd4f5a;
+    sha256 = "0xzcfz1npvnf3qidc2yffx5xqs587spjmrxsnsra8fqmghy7y513";
+  };
+  "7228172fbb398b4f9cca6ca9b5db85d1a6644b4a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/7228172fbb398b4f9cca6ca9b5db85d1a6644b4a;
+    sha256 = "1d62b5vw3l58667k2nf2dvladpkwpaaa0ai9x58bh46x1gazfdyq";
+  };
+  "725d0cc30e3c4b6a9e3dfac3f320a6c9904dd8a9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/725d0cc30e3c4b6a9e3dfac3f320a6c9904dd8a9;
+    sha256 = "1lq5pdjpa6jgrywfzx92vczlkqp8ggr6mqlnly772c6a4p507xvi";
+  };
+  "72e906fb126222e8269f7d46e2d9f1ac603baa5e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/72e906fb126222e8269f7d46e2d9f1ac603baa5e;
+    sha256 = "0by17bnb94wwv35bqbb7gxn64xppf6m88m50lm6dxyblclizk1sx";
+  };
+  "72e922640673b6171e86c8c7fcdfa148004c1301" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/72e922640673b6171e86c8c7fcdfa148004c1301;
+    sha256 = "0xbd7jd9pj1g3yf4252dy84w1x7czlqa1gxalk6p6awn1n1va815";
+  };
+  "72fc2150939a11815cfa929001ecb00ad565ce7e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/72fc2150939a11815cfa929001ecb00ad565ce7e;
+    sha256 = "1jbhd6mcrxk21dbjavkz6mf610zdql9srkd6c4flb794kfxx0gir";
+  };
+  "72fee8305071d508698fa86e4a89c80f5ee236b3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2608258-d12288bf79ea446a9353c7f9d223b24e/72fee8305071d508698fa86e4a89c80f5ee236b3;
+    sha256 = "1dkbhigrqnbdpp7ixm8fwhn4x294n7zi33xijw9vngysc7kngx7g";
+  };
+  "7305d73041a77bded642dbf6567625ac3c0208fe" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2466157-4ecb0085873048178dd6d2b8872eea79/7305d73041a77bded642dbf6567625ac3c0208fe;
+    sha256 = "17l3s1kn54kzjg7ajxhx7rvmw6rsvk1ad748dp9mqi5qd80096bp";
+  };
+  "730822767c19d479de3afc2e926cfd7438e23852" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/730822767c19d479de3afc2e926cfd7438e23852;
+    sha256 = "1hgcf7mzjamjjrs2636zdkz47knwy8hbvf1l4rm4slzi1mr2zrk1";
+  };
+  "7320897f4f1584c0e42fd2546557d85ca8f513db" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/7320897f4f1584c0e42fd2546557d85ca8f513db;
+    sha256 = "0r77s64pcx4585g5s3gbjksfsggbmp552fsipqzs4fv7qmanym5r";
+  };
+  "736ccee7ee45e606201ef7b7c643498cfa13d70e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/736ccee7ee45e606201ef7b7c643498cfa13d70e;
+    sha256 = "0p69pgkm72g46s76k1v8m2k77hh08sb0amx6lsszkipn86kx7ff4";
+  };
+  "73bae428e969b828d72a1c4b71208bd855b67233" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/73bae428e969b828d72a1c4b71208bd855b67233;
+    sha256 = "1x3ikd5ymqixs0zsny0lp6la3jhxay54iajw2m99w4bzfscqdkz5";
+  };
+  "73ee6ef047e32991fff9aeb313c0e8c7faf673dc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605188-b2b13e5f7b3d453eb5d6b0cde31b638c/73ee6ef047e32991fff9aeb313c0e8c7faf673dc;
+    sha256 = "06xm65k8i87crf0dq2iyj6mxwbyp0spmjwqha3n93fv63sgg3zrf";
+  };
+  "73ffe57844e03a4cafc0e9aa8819694c90e1522b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/73ffe57844e03a4cafc0e9aa8819694c90e1522b;
+    sha256 = "0j5ysqydqi51y5yv984wzs4q2y5d2d2cdrraw001yda5ghiidp4d";
+  };
+  "746b744c6a42c0f8af6feef784581873bde794e1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/746b744c6a42c0f8af6feef784581873bde794e1;
+    sha256 = "1wsmy3wazhzjk50yd2n3g9zrivzfwqvl2r5blcv7zvvqwyfhnpax";
+  };
+  "7491079d020d11f40f14eb94536fe09006ff2c16" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/7491079d020d11f40f14eb94536fe09006ff2c16;
+    sha256 = "03aqvnhvbw15kh30384pyg01s4nixjqz22780yjja4hj51frxps3";
+  };
+  "749a111a54b3257ccd4600b6ece1fd86a57efe58" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/749a111a54b3257ccd4600b6ece1fd86a57efe58;
+    sha256 = "09lf0sslsikg4jks8yzb6b9k3y9d0dbig5j45kfk58yjx90mgfhv";
+  };
+  "74a5411261270860b0b2d315c8398df07f956fa0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/74a5411261270860b0b2d315c8398df07f956fa0;
+    sha256 = "1c8zc6kryl6nn9bv77fim2ccd5ikqjnj5n0b75dii63znm8hlp2i";
+  };
+  "74bdfe7b7c5448f6b002b747a29ddf4eb214dc0a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/74bdfe7b7c5448f6b002b747a29ddf4eb214dc0a;
+    sha256 = "10kq66r73gc8ghb3b5jgahbgs9rnv2s3kbvd72vjbdbyz58wacrx";
+  };
+  "74c4761d61aabc4f7e227da3ff18fc3af1ea7f5f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/74c4761d61aabc4f7e227da3ff18fc3af1ea7f5f;
+    sha256 = "176b4fv2dmppcs9zyci4yilvj0kmn92cxybbwjllp2cr9x2ard91";
+  };
+  "74df4c8f82ff3081bd49648cee83a06677495bd4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/74df4c8f82ff3081bd49648cee83a06677495bd4;
+    sha256 = "12brl8hsdyv0gf4hggi7mf9j5q2r19w3najivicrq86rg0f2km1y";
+  };
+  "74f904f20ed3e1cd02cc9d0e07a2778948328274" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2547993-1fb84b9e293242c988e586c599eeeb56/74f904f20ed3e1cd02cc9d0e07a2778948328274;
+    sha256 = "0169jszrsidkhbhz906yc8a10ffkcnp2kxz193r46j9qpv69dk2q";
+  };
+  "75124406de34db23633265523d08e569d7889164" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/75124406de34db23633265523d08e569d7889164;
+    sha256 = "0709ach7hq7qn6452xd7n6jlqx6j5b597yyvzvmcfsbnp5nmn39k";
+  };
+  "751d2649bc4cf19cea075804463f00cf0ae61ed7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/751d2649bc4cf19cea075804463f00cf0ae61ed7;
+    sha256 = "1a5g17mvwa7f8ydwikgc0f4hf8wp8w491fhhzvnn4m4i6jam6hwn";
+  };
+  "753eb938736a4b412147164d4077e991f9c89950" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2618214-623983ec05b34939b08acd26ecfb4f92/753eb938736a4b412147164d4077e991f9c89950;
+    sha256 = "18zkl0jsx165akaxgxxzf3619jmclxc18nggcbyb1iwqmxrxpcak";
+  };
+  "759eb0a64477d1269a2089f229e3f0a2276fb531" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/759eb0a64477d1269a2089f229e3f0a2276fb531;
+    sha256 = "1v0wgzzv2d6mxmkb0s96q7jb9d5knnh2p0ja261kmqhyc6dlzlqr";
+  };
+  "75e0842c76b2e55a861da42ea1d7c4636ab53833" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/75e0842c76b2e55a861da42ea1d7c4636ab53833;
+    sha256 = "05a3azlaw3y38ysr9rdrjk8mcrzm46q39k9xy75jxg52qpbdxmzi";
+  };
+  "76b0c3828b07ab86d995f91647a8fddeda00981a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/76b0c3828b07ab86d995f91647a8fddeda00981a;
+    sha256 = "1jybpkydwa8ry4197hxb43f6lgszv6sl9fnpbd335mipn5gs9das";
+  };
+  "76df9b164d66551812ce65dddef45a44604b8c8c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2736314-83d0b2c86e6940798eae7a6b4a7a011b/76df9b164d66551812ce65dddef45a44604b8c8c;
+    sha256 = "1knls10cjd66hr0z4988gw5p782q7f7lyagpx9f63zxbqjn0l3v3";
+  };
+  "7725a79a9a5f662ca2adf8ae2efb114d32ff45a2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/7725a79a9a5f662ca2adf8ae2efb114d32ff45a2;
+    sha256 = "1vszgcnacspqzz1fj0y38gjj54qavksbwswbz2cmyml0m77h8qfr";
+  };
+  "77352bcc40b2053c8db752c49772dbf0d158af62" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/77352bcc40b2053c8db752c49772dbf0d158af62;
+    sha256 = "1pgz55g9wk1z146f00r6kbij5qkng7cb7ni22jgr6x3inblq28da";
+  };
+  "77464fb66258632d2799ac5491f4316d35cc346c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/77464fb66258632d2799ac5491f4316d35cc346c;
+    sha256 = "0iixcb51kdjnl8llbqiib1dkcv421d8pi9hly1r00clds5b5bpf0";
+  };
+  "7756f8e0698993a2efb94e15819a1d1a22edd9aa" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/7756f8e0698993a2efb94e15819a1d1a22edd9aa;
+    sha256 = "0pm34hr3jm8nsvaypl68nacmbpzi2ynfnxm02rkn589f03778sni";
+  };
+  "777419bfd692da1795221b0711a3b11467f5e4ad" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/777419bfd692da1795221b0711a3b11467f5e4ad;
+    sha256 = "1g2rl7j740zhf4y8pcbcdhpzxzw9hcp0vb82zm72nhfw8hp9z212";
+  };
+  "777fe4089b0a02f749411d577a2a17adf635dec1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/777fe4089b0a02f749411d577a2a17adf635dec1;
+    sha256 = "1lvj3lvc20rh4yvwbyafw270chkl16jlardv8pqavil085qz332f";
+  };
+  "77ab57479dfe164e72b8298375e3b9b577e6640d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/77ab57479dfe164e72b8298375e3b9b577e6640d;
+    sha256 = "18qjd9d7d66qjk087xg246d6gssbiiv08y3rq2v1d7cddbsbbzda";
+  };
+  "785a36aff000132218d273b16e36412342def12d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/785a36aff000132218d273b16e36412342def12d;
+    sha256 = "0235bgb8hzg5x5fhk8a5iasdjfbj5xzh0ccxx3iaadmadcn3xgxj";
+  };
+  "786040422666da11604af7280dd6eed639de30d4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/786040422666da11604af7280dd6eed639de30d4;
+    sha256 = "0na97fbmlgwl7kfp5asvj41llyrk6srn11argjq20vwrpzj9c0h4";
+  };
+  "788022e3bc41bf23e517d88df0ca24f715b1cad4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/788022e3bc41bf23e517d88df0ca24f715b1cad4;
+    sha256 = "1hhilba17whyl3iycd906nh0c4v9mia51pb8cgy7kqjiawypcp6k";
+  };
+  "788b132136ad4d08c5f03e4078824ec04b1ac0b9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2622232-9cbce5f5f69743598cf4bcb212040bd6/788b132136ad4d08c5f03e4078824ec04b1ac0b9;
+    sha256 = "1wf1kizj5s4nkkmyhc1xs1mqzzwc1b2vdybbnx3g7rn9p9rq3jgc";
+  };
+  "789b2bc3606dc2558b7cab5dbb62e8e76f20ef74" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/789b2bc3606dc2558b7cab5dbb62e8e76f20ef74;
+    sha256 = "10pzb9ylqbsls482sa1frmk7r8ra7b6y0fjb7x97v482pdskh64r";
+  };
+  "79042a16d0ef7feeccc76315246c5ee6f36dfafe" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/79042a16d0ef7feeccc76315246c5ee6f36dfafe;
+    sha256 = "1wn397vwkkakm5q0r2kk1axq3zxfrc1f65cbwqlixzfgpz8lybil";
+  };
+  "7927b5a5a5c57b3801e7d0d4a42fcb142f267b78" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2653252-2bb04ebcdd0e406596c1b14273fe0c06/7927b5a5a5c57b3801e7d0d4a42fcb142f267b78;
+    sha256 = "14w4h37fsmj9mjsfa53hc4ymx9j6b9dfia3n4gwkwmbw5sj8l9gp";
+  };
+  "792a616c0f78fa0b294f67b56549092efbbbeff6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/792a616c0f78fa0b294f67b56549092efbbbeff6;
+    sha256 = "1875sind4si5lwmbypjn3ssbdxn1w5a5wv61kllqw9a8iz76pc0x";
+  };
+  "79477f2a4147dd648f89b314306f5f0346278735" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/79477f2a4147dd648f89b314306f5f0346278735;
+    sha256 = "180qwmv30vf5fx724mn44l8p9j6ipaqqs83fsiwyaifa1zn4kaf8";
+  };
+  "796f0c398bb010288b3688e6743420cfb681a4b8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/796f0c398bb010288b3688e6743420cfb681a4b8;
+    sha256 = "07mj9nfb7ganiv6pc4yz30zsbfbhqpap2x21nrq93f7r75jckssw";
+  };
+  "7983882382ee0785a3619bfda754358f8d6cd5c9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/7983882382ee0785a3619bfda754358f8d6cd5c9;
+    sha256 = "0z3jwzxdmsdwx623fbhzp5jif0yv8v31br3ipbv6d3d8kv0cw90w";
+  };
+  "7996e8351b085aa99ee962c9a0abbbe9b077e23c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2616691-982be94b99b442419e99de37630ca843/7996e8351b085aa99ee962c9a0abbbe9b077e23c;
+    sha256 = "1wsg1f8y22m01m1x8ryxzbyqzgrk0v8wssvpzcdg95ld4n46z6ps";
+  };
+  "79cbc648416e750ee538d57d6b608e3b7bd7717d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/79cbc648416e750ee538d57d6b608e3b7bd7717d;
+    sha256 = "1z5ibq34jhlyszxxllfn1ffmp8b0y7w7cqmxridnq78b1zirsj65";
+  };
+  "7a02f98f23ebb4382454f2813a70cbb932fb9e13" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/7a02f98f23ebb4382454f2813a70cbb932fb9e13;
+    sha256 = "0k8ayk7rh6kkxf8bk9hqy4wa7zh1m5gzbxfds6cc0zd4kr150sqg";
+  };
+  "7a7d7497e9f19ef7a2e4e35a37308b21cec9f982" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/7a7d7497e9f19ef7a2e4e35a37308b21cec9f982;
+    sha256 = "0ba05lnjy3ghs3jy519pcjyav5r75lpall461qns2bppzpm4a076";
+  };
+  "7a8446207acdf4eaf9676898ddacf9bdbf595de9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/7a8446207acdf4eaf9676898ddacf9bdbf595de9;
+    sha256 = "1lndbrl5sp0gj7fasrzsc2yz4vmcr8q29yvp8cva2b9691q8gj4i";
+  };
+  "7ac1ecd1bdbc99aa980807c5645a78ae48ea9577" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604998-3c15fbba3f5f4174942b1436c2db55e8/7ac1ecd1bdbc99aa980807c5645a78ae48ea9577;
+    sha256 = "04m1a8g9w4hyclfx1nc6prd02kicjdsnzg4spwk63rgv3lamjqd0";
+  };
+  "7ad6959d0c1c635355409e72473d108d90869dab" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/7ad6959d0c1c635355409e72473d108d90869dab;
+    sha256 = "19nr57sy463g1m2fbrdhpb8p5yd5dls64gw9zq2zb4jyjj7y8fia";
+  };
+  "7adad32ec30d0be94dcf1a19012e273b9971057e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/7adad32ec30d0be94dcf1a19012e273b9971057e;
+    sha256 = "13f8c98an8ycv27kglnc46jl6abgyvnq6dm8xpzzlh28fj88gbjk";
+  };
+  "7ae477712090513005fe5af06c6026b245d3c946" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/7ae477712090513005fe5af06c6026b245d3c946;
+    sha256 = "1w1ihg63ks2ba8x4m04yblbc7d8ycgbczsjz2lp28j5dy7b10i48";
+  };
+  "7b091ff0e3269cd3b11fb00a394f82b1604095c7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/7b091ff0e3269cd3b11fb00a394f82b1604095c7;
+    sha256 = "10cysl5b6iagx699w1kw5xfa51flr433g4wl55bjz9bdjw4ln51r";
+  };
+  "7b6219b2124e3663a1f4383de616fd63676c9693" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/7b6219b2124e3663a1f4383de616fd63676c9693;
+    sha256 = "0260b4p3ng5jdjb8z22cpp2376wahvh4gihjxcghlk3bal5k743c";
+  };
+  "7b7d2e469aa46e6b7a1550e355690591e4ac54fa" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/7b7d2e469aa46e6b7a1550e355690591e4ac54fa;
+    sha256 = "1nyx2fjbcpdfrlbqb966x2zd1rbk7kx9x61knrfhhz7r5kb1z5bm";
+  };
+  "7b83af4328df75db5202d9e02c057d139ca1a9dc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/7b83af4328df75db5202d9e02c057d139ca1a9dc;
+    sha256 = "1igfygl9hk0q3ndjiji6bfgb4p77038bbk31kgrdy4gvky3qz21l";
+  };
+  "7ba89ad415dac138be18aeefe3423e3ebd56c0ee" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2448689-7792f1b8be254cc19b4c3379509684cc/7ba89ad415dac138be18aeefe3423e3ebd56c0ee;
+    sha256 = "10yn9d19andj61gj8x771yyrl2y7l0rgqg22mm53hkbdkfghml8h";
+  };
+  "7bc9f224a762158a310d9dd9c355f21bc20cf5fb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/7bc9f224a762158a310d9dd9c355f21bc20cf5fb;
+    sha256 = "1rxd81p9gd5rwqz9krv48bl5qzdqdb08xlc3ikn85mk847n6riyq";
+  };
+  "7bd4669f05c73f4cc2d165c712eeb0cca6711e7c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/7bd4669f05c73f4cc2d165c712eeb0cca6711e7c;
+    sha256 = "1ps1j2vywaxxcprmxbyzi3nzvks9gxviqjcvha4wv8p4igm7p861";
+  };
+  "7be14b1c31f9c742d61528f894b5a0faafdca608" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/7be14b1c31f9c742d61528f894b5a0faafdca608;
+    sha256 = "01snf2y4scl2vhbbmzs4hjayjp7hkydr7a2kbjgwc1kb41vcvvmg";
+  };
+  "7c8c84dac9bcec95152cac9aa9acac67f7702d08" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2639799-4ac82b5356a9467b8556f714f8dd9e00/7c8c84dac9bcec95152cac9aa9acac67f7702d08;
+    sha256 = "0w0ry83bxhw07l0y2zw3s1szx6gbhh2zbvwnjnd3qhjdic8abvzy";
+  };
+  "7c963542515f21d8db5b961bee100b6412d597d1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2377358-53c9e09a80d741708f589736e8974c22/7c963542515f21d8db5b961bee100b6412d597d1;
+    sha256 = "0y6186f5l3glsnnqv23npj6b1m23jxy18j6mg30g38g4lr2vk0ad";
+  };
+  "7cc355b9c369e318b838b18f749c24e2afd259c4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/7cc355b9c369e318b838b18f749c24e2afd259c4;
+    sha256 = "1jiz1n0wy6mqnv2m7v8mksrh3v6vwliqc8v6jjv7rxz1x4zclinz";
+  };
+  "7d8e31de63a57ce9a9e79c5263a63d5d46615baa" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2706207-4f57365c766141c988cbd0106cf38f5c/7d8e31de63a57ce9a9e79c5263a63d5d46615baa;
+    sha256 = "1iz5vbwxajss32yvjwdss1hfczp3viz8nfl9xsk35bh5q5az0mfx";
+  };
+  "7d9e9a2f89c7bbc7404f79811bf83f4076b5bc32" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/7d9e9a2f89c7bbc7404f79811bf83f4076b5bc32;
+    sha256 = "1p37wspipadj5qicv6bs3rg3vqiqx49jkd6q3pgkb40bp0gs70ld";
+  };
+  "7db350110118d3076728f890e80db47042b1c9c4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/7db350110118d3076728f890e80db47042b1c9c4;
+    sha256 = "1x5j73m7lvz6dacd7cl1g6x0206pmh394l650aidzmmywnmpni5y";
+  };
+  "7db51b6372a7e6ccd911890e40586056b5c3bf70" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/7db51b6372a7e6ccd911890e40586056b5c3bf70;
+    sha256 = "003dg3cglf6dbljyfdamahznka718qcpsfbkvsk1kbysa6nz0kcd";
+  };
+  "7dc9a4ae40e2c039f47bfa781f706c6ba93f5e77" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/7dc9a4ae40e2c039f47bfa781f706c6ba93f5e77;
+    sha256 = "11bjnjh99mdh9fqcrnddnhgjr1znlhi11rbqajc1wjwk4zrs7h51";
+  };
+  "7ddc7ee608268e6d717f879cf6b6b7305f636cd2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/7ddc7ee608268e6d717f879cf6b6b7305f636cd2;
+    sha256 = "16cz1bvq3za22myf04p2al6im72x6al6a2y5sv5mgz7nvnhi0q4d";
+  };
+  "7de52ed6339fe756210b171c838332e276370e70" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2619995-d5e097f793bd479d8592679759fb98be/7de52ed6339fe756210b171c838332e276370e70;
+    sha256 = "076p1hj2bjysj1yk45ywrahrz9d9k8q0cvw52g0141985g9av8fs";
+  };
+  "7df9510763997f0e8873568712dd0de573058bf3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/7df9510763997f0e8873568712dd0de573058bf3;
+    sha256 = "0iy45rddw5cq5w9qm6vd6lxjnf2b4hm4abnna0ay7qnmdkcxy0zp";
+  };
+  "7e1d5652590c12db0c440eac59f69a777425f9bf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/7e1d5652590c12db0c440eac59f69a777425f9bf;
+    sha256 = "0j3f2saflmsylyi4i2w4z56kwzpdvimi9na49m3nfd16d5m50fnz";
+  };
+  "7e6ab4f547b9d8bf5f8a35a74d335d500588d8d9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2431986-5a8dd079cf514ebd8b20693fadfa5a4e/7e6ab4f547b9d8bf5f8a35a74d335d500588d8d9;
+    sha256 = "0m45dhadisgl1n32vbj71vhj1avn9mcl3gx7dsrgd5pyj2cm0v2v";
+  };
+  "7e741bb7378733b67fd4bf594a5798fdbbf4c06b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/7e741bb7378733b67fd4bf594a5798fdbbf4c06b;
+    sha256 = "0090i1z4ggh0rjka4lk2nyh8vz6w5kbxrf5y8sb4lyhbggshypz4";
+  };
+  "7e74577c3774e9eb2328f96f667ae7df976b62e7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/7e74577c3774e9eb2328f96f667ae7df976b62e7;
+    sha256 = "03p73gsai1gzazyhi0s409d88b0vlnvap2dy5qas5xazhsj3s32v";
+  };
+  "7e929e26670125eb017b7f33f7906adcbf8cdbe9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/7e929e26670125eb017b7f33f7906adcbf8cdbe9;
+    sha256 = "04dx7sqs1s3h8msjfah395hjx4a2x51k0innh4np11zr0chw4rf0";
+  };
+  "7eab47f1da799465d08b68e26c7ae336a7b07a47" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/7eab47f1da799465d08b68e26c7ae336a7b07a47;
+    sha256 = "1nkgnvif8ysz26rwhxmr3kfk5xajr7z5nbbx4givpv16fmr67hp1";
+  };
+  "7f0b7231a2a6fd1df206769a4acb8cb861b09f02" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/7f0b7231a2a6fd1df206769a4acb8cb861b09f02;
+    sha256 = "0fbsqakyam8jacxw9kmifddmgilr1rlvcxp0dskvdlb31pfzzlx7";
+  };
+  "7f5b42e091a41c16eb4bfdfb2de3a36670854201" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/7f5b42e091a41c16eb4bfdfb2de3a36670854201;
+    sha256 = "1qbwixy33i07qcicgc2xra46nhb9jklal25pw0wrc0r7migxv9f9";
+  };
+  "7f8b724b75c6f29c33f33a1f310cb495e079aaa1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/7f8b724b75c6f29c33f33a1f310cb495e079aaa1;
+    sha256 = "0clv70849r47m9y7l5515xn9z2qn4vazkkpfpwdrgmbh8wjb0xnl";
+  };
+  "7fe64241b07105e31272f224ac763156f8b8296c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/7fe64241b07105e31272f224ac763156f8b8296c;
+    sha256 = "1h4b430rjv86bv4vcrj6hrza71b5hrrivllxn7an78yi7rigc761";
+  };
+  "801295549915c66473e6cd436dc1623ad50a6868" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/801295549915c66473e6cd436dc1623ad50a6868;
+    sha256 = "0d889wz1r7l3801gdcmdchnij3z3ch8adw0rn5rc613r3nz613hh";
+  };
+  "806cb366cb892bd749bb1e697026060f9943b794" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/806cb366cb892bd749bb1e697026060f9943b794;
+    sha256 = "0k470mdbdk4r7ryrm7b2m2mnmiwg9bqn6xrm9f426vj6409sh3bp";
+  };
+  "8083297580223f34923e3ed275ba2082cb6ff1b6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2639799-4ac82b5356a9467b8556f714f8dd9e00/8083297580223f34923e3ed275ba2082cb6ff1b6;
+    sha256 = "0rl4vw9nnarpbg9in4kj08yjran73yk821q03kggxjs9kd3m6p9a";
+  };
+  "80cd8c5c566432905a991761c25be7e43613ea68" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/80cd8c5c566432905a991761c25be7e43613ea68;
+    sha256 = "08d0cchndgs7z1m1iw78ri9b740z06daclbb1krnd9jbjbr72540";
+  };
+  "80cf2aada6b342c76be1c6617a893008f7a2e992" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/80cf2aada6b342c76be1c6617a893008f7a2e992;
+    sha256 = "1is1wl3m8l1gnfnhadnig3h4p3lg2dbrhx0j18zl01s5y5l5dz72";
+  };
+  "80fbbdd5d2b95966d99e270b260593880769871c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/80fbbdd5d2b95966d99e270b260593880769871c;
+    sha256 = "1dcag3ris9wpm0vfk296902arm6xph496gi13xr1lv2ic0ay4ajh";
+  };
+  "8113584b3d880586f19985a5103712b5251a347d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/8113584b3d880586f19985a5103712b5251a347d;
+    sha256 = "0qgsp5kjlbzmp2v979wnc30isn10mv8w42riynpkia2waqq1yypf";
+  };
+  "81306b38538d7e69e278eb4d4a1acb25c2d44dfc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2505717-ca6614fe3fb64e47b28005ce3736302b/81306b38538d7e69e278eb4d4a1acb25c2d44dfc;
+    sha256 = "1b3hfip5h2ra2cj3c80v87fyn5g52kfl8hi7l9ynx6rbh45jd7cp";
+  };
+  "81594c92fcec0b95d7d0b47ad36aef8d2605c8b8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2466157-4ecb0085873048178dd6d2b8872eea79/81594c92fcec0b95d7d0b47ad36aef8d2605c8b8;
+    sha256 = "0cj2l82yi6yp8x2rsv5ga7cl5jrmnl7wv68608ymrdimnrg1l19j";
+  };
+  "815c7f4ed8653c23f02829438b553e4e310c1185" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/815c7f4ed8653c23f02829438b553e4e310c1185;
+    sha256 = "1bd8y1165dgw5naxwzh92plkx24v468fz8i0afaxk8cpqvjcn4b4";
+  };
+  "815ceaba7a67e678c4a7187990c7367805ed6d7c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2616691-982be94b99b442419e99de37630ca843/815ceaba7a67e678c4a7187990c7367805ed6d7c;
+    sha256 = "0zrlxcqp7arscfbjsffganmr8ykjy9kavkq6r0sjv33nf2wahcxw";
+  };
+  "81bce187e69fb02baaecaa20027bd477eb1f990b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/81bce187e69fb02baaecaa20027bd477eb1f990b;
+    sha256 = "1pmpm2dppzr71qvrfb8h5837mxgl654hiihymh2aw12bh1hl84dk";
+  };
+  "820a14581d58bc24e04e70e2d050e8568367b29f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/820a14581d58bc24e04e70e2d050e8568367b29f;
+    sha256 = "0h5kl259s20bv2y8k0pklvl5lpv4qc2y742nfyph04d8gh44i11r";
+  };
+  "823786b849304f4f046e804e4c7a9578b0e7dc4d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/823786b849304f4f046e804e4c7a9578b0e7dc4d;
+    sha256 = "1nxcnkv4p6m57rwr4wj4pz19z579sf9mqay6x64ddbnlc0d8ijfv";
+  };
+  "82752934d29486bef3008fe2e7e9953dacd3a238" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/82752934d29486bef3008fe2e7e9953dacd3a238;
+    sha256 = "0i7l4yw0qrp29ax36lp3sgyqbqshv5v0y2y4jp9g8b996rr42ypp";
+  };
+  "82896a288bed5637b5e537aff3c81d9a146cad8b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/82896a288bed5637b5e537aff3c81d9a146cad8b;
+    sha256 = "0g2nh96n0k2mv4fdaw6sqlav9diclhmljsixvfbp0550p44i3dhf";
+  };
+  "82921dd1135940696b085da4d09cdd25eb6b740d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/82921dd1135940696b085da4d09cdd25eb6b740d;
+    sha256 = "0i7yiz8d1qqiy7i6yy389b44v29i3zl479jarss0x77m7nzlpi7v";
+  };
+  "82b74cc467fe5e422dffc6ccdaa2746b68a52fde" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/82b74cc467fe5e422dffc6ccdaa2746b68a52fde;
+    sha256 = "057npy7g6dvcqkj4yw89cpci8cizg636gah9qq82h00684215jsj";
+  };
+  "82db6fcd53c153656a49118fc20771a50c406e2c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/82db6fcd53c153656a49118fc20771a50c406e2c;
+    sha256 = "0wmb1vn704srn9w5a61bs7mb3rp3azgv5bh6rl4hi7wa9wffwmbi";
+  };
+  "8305a66fae9404fe58331fbef287d0215d05f2b3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/8305a66fae9404fe58331fbef287d0215d05f2b3;
+    sha256 = "196zwpsd8fz1s6gkd35psacb4v6bik4zjgbaqy6ff2118bg3l19y";
+  };
+  "83080f6144d571a9ef0996315476290d9c3fff68" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/83080f6144d571a9ef0996315476290d9c3fff68;
+    sha256 = "0rmk1xzs86dvr9k971mb3d5d9q0nbyxr6lh753pf5bqkjsrwirp8";
+  };
+  "83095c9481a4bebd25dad78e6ae747bd3674e086" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/83095c9481a4bebd25dad78e6ae747bd3674e086;
+    sha256 = "1r2p3xp0rv19i9dyrf0chc5n8f736d90w5paq90fdxvfzzzx562f";
+  };
+  "8309626bf9429a32adfd8e1526f7dcbfb250ca49" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2640065-e0e714c2e4584d65837eabf6f55a41ba/8309626bf9429a32adfd8e1526f7dcbfb250ca49;
+    sha256 = "02n8g65lp6zbqprxswz598076syxav2vy350yq2gvq6s2p1ad12y";
+  };
+  "831c19b0009bccd44d4c2837f3c8ba6e08753be0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2579917-73d6be760fd9486fbc9abe582732eb6e/831c19b0009bccd44d4c2837f3c8ba6e08753be0;
+    sha256 = "1b0gsmrzb0bh8mrjfmmxlp55867x5fhqm18wacqvzx2g62zmm0f3";
+  };
+  "8336cdf6f693aca7ab55371790ccf0bd5043c224" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/8336cdf6f693aca7ab55371790ccf0bd5043c224;
+    sha256 = "0bqsgbzhsd8dfjlfafs1yx833gwa8pm9jhgq72ymnk83kijhj01x";
+  };
+  "835db4359138adfe88490eae6e8d8c90b322dba7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/835db4359138adfe88490eae6e8d8c90b322dba7;
+    sha256 = "1wbs8pnhyyx84bb60ck5l18fljc37fma5131ijzmjqms84k34rqf";
+  };
+  "836ee88c57cc1b5617f36a2b9fb19db420285b69" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/836ee88c57cc1b5617f36a2b9fb19db420285b69;
+    sha256 = "1yiypr57ik8wpq2w7x5yqib411j2qphk6mnpgpraqydfc22qypca";
+  };
+  "83960dda908738b13095ce2b7d9b31fde2baf36a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/83960dda908738b13095ce2b7d9b31fde2baf36a;
+    sha256 = "0dld18rdn6yjmqzpy3fg36ih3dzr63jma237skjb2nz2d554nkvp";
+  };
+  "83b8a24a4c385e1b384d645d948485842fc3cc76" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2426077-b850b68463b841e5964d120c64b8bf13/83b8a24a4c385e1b384d645d948485842fc3cc76;
+    sha256 = "1z2a60b2h039a99ipx5gs299s5dbrmy23dgwpw4nrqksh0szzrhx";
+  };
+  "83c26e75614987b0816315db03de7aca670aae61" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/83c26e75614987b0816315db03de7aca670aae61;
+    sha256 = "0vsvf3yhc3gv4vcif0qlsakzmxdrziqjv575xpzbx421pk2sg809";
+  };
+  "83cf82ec1c25f57a747c78a0c0ee954463d3aaf8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/83cf82ec1c25f57a747c78a0c0ee954463d3aaf8;
+    sha256 = "180f440v26v4bmj6hbm162jj06vw9sd4kyvarnrazyiq4vmbx3wb";
+  };
+  "83d99abd11bcb8782d32661775471266e6254ae4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2638350-39632eb9e5f94ba4ab8e97fa2d5a3251/83d99abd11bcb8782d32661775471266e6254ae4;
+    sha256 = "0h49cfl1ybxvxgg9p5jq0nb93rqjlqbjabhsjkdzhb4pv9gm1fcf";
+  };
+  "83da0ef16746ffdc1151ecbda04a0b161e3f119e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/83da0ef16746ffdc1151ecbda04a0b161e3f119e;
+    sha256 = "0d4bximz6dkr5q5bbyzlnl2py330qij4i0w5pvgc76asyxl11s3n";
+  };
+  "83dc459b2d9c7905eb6f80c6ffd7c0c912a4b007" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/83dc459b2d9c7905eb6f80c6ffd7c0c912a4b007;
+    sha256 = "1xshwv0v6bzkn2px64jy5kzbwsh9mqmc9salvqdhw7c594gi1lki";
+  };
+  "83e36792413d3e3b767aae667cc67fd3b02ee133" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/83e36792413d3e3b767aae667cc67fd3b02ee133;
+    sha256 = "1vpvk4r3bxrb54ibpjffrj3wg37zp44xf8mz9fk3cn4gz8v18g1n";
+  };
+  "83eae7ee8ccb30a23878582ea6466cd8487f17f3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/83eae7ee8ccb30a23878582ea6466cd8487f17f3;
+    sha256 = "1s011h62ql0w95lkwwa0pwk2x4d086apijgw0zgmh7cmlzknppvk";
+  };
+  "83fd339d2e91415631d3bbe960361fef5a8a1d1b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738476-1eae05647f894f068d67ed64f86505f8/83fd339d2e91415631d3bbe960361fef5a8a1d1b;
+    sha256 = "06zcfs55vhpy9jh8330b1zrmsmf0j2f8w92kpxvgd8zi6xz5y9bs";
+  };
+  "841906d093cebbe152a1ae20fbab8decbd282e19" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/841906d093cebbe152a1ae20fbab8decbd282e19;
+    sha256 = "1zjl5jvq80cgr8lb03k687slrq9l336dryn2dwvwsrfc32rnpynl";
+  };
+  "841af4efd38ead50b821af773faa68345269e26f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/841af4efd38ead50b821af773faa68345269e26f;
+    sha256 = "0zrv8difxrfkkhhzni7qc91s1k30dwp6462c99iaxds8ly117p89";
+  };
+  "8460d3dfed9655b4e8ce53fc3cb879c8905b05f4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/8460d3dfed9655b4e8ce53fc3cb879c8905b05f4;
+    sha256 = "07cgvrc4yhakjs4p2sbkx5c3mch26krvvdx6ag0ijm85mx0gdl8l";
+  };
+  "8463cbaaa73774638635ddfac40864bed92f3c29" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/8463cbaaa73774638635ddfac40864bed92f3c29;
+    sha256 = "1si653ab54yh0fxfxh1wfwfzdq3v8wsxq2vzppl2l2wj96zc8cdr";
+  };
+  "848145830d667120c6b744edf11f9f6c7e2f8b7a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/848145830d667120c6b744edf11f9f6c7e2f8b7a;
+    sha256 = "0vvbpaksh7qdgiwcahdm9h9skp51qxiipzg3gdadam8v10a1g1xx";
+  };
+  "84a55e9bd6ceea8c4b1ef30457675290b8de8b27" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/84a55e9bd6ceea8c4b1ef30457675290b8de8b27;
+    sha256 = "16zjckcf8851kf9cnzij7mz6iwcvld7g7gxrs750gdp01i5wjpbn";
+  };
+  "84b6f854fbee939820a32e6dc3d2b219b84bd6a1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/84b6f854fbee939820a32e6dc3d2b219b84bd6a1;
+    sha256 = "1xd3hcs0nshn7c21kr1jhaskrslb6z91rp5rrlsq3pzclx740ssm";
+  };
+  "85317d647433d1e73e61ca6fe79b44f9b3abca42" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/85317d647433d1e73e61ca6fe79b44f9b3abca42;
+    sha256 = "0ix9vagi91lpqgn224qfxb4h1wvjc6jf3yz5zx4asv6c1bdx7x8l";
+  };
+  "85393f1f0730c3ae240238686b47d7643899d34d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/85393f1f0730c3ae240238686b47d7643899d34d;
+    sha256 = "0yy91726kxdpifa3pfhf987m1yya025q6ybh8c3650i0h9z2hzsw";
+  };
+  "853b10bea00eac17238cb14c6b39474e5d2d1518" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/853b10bea00eac17238cb14c6b39474e5d2d1518;
+    sha256 = "0lhld9bb134mphx4g83abrxf9syz5dx2hmjm701dnx7dsayfl5i9";
+  };
+  "858f8eae96cc6e3a7d1fc624e44ef972c47011b1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/858f8eae96cc6e3a7d1fc624e44ef972c47011b1;
+    sha256 = "0j9h3ysp390psxrc3g71029qsfy21j9jlyqqxgdsns465q0fb031";
+  };
+  "85b191ae1844ad6da93fa57876c8850de342b4ca" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/85b191ae1844ad6da93fa57876c8850de342b4ca;
+    sha256 = "0v5i8fznarbq8zdgi9kvg8hl8kb2293vfj6504a3km1my7frww96";
+  };
+  "85ba3d3276f5f01cc86df8c39d7cd730ed3b9a4d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/85ba3d3276f5f01cc86df8c39d7cd730ed3b9a4d;
+    sha256 = "1i53nv4v3wyy8vpgaglj865d8krmfd2yc8my9wq2yyyyiq9zvr3y";
+  };
+  "85ead6085f10e657e1a91326f3704d60b31164b3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/85ead6085f10e657e1a91326f3704d60b31164b3;
+    sha256 = "1xqzxrys82qxihz27s1p811gqhhswqjalzgdfafk490diah527ss";
+  };
+  "85f7ee1e6e05e198cbb99f56c5a3a9d81b41276c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605823-fed77bb1e455453286ca4bfc444c86ac/85f7ee1e6e05e198cbb99f56c5a3a9d81b41276c;
+    sha256 = "03qfjg299d6dx0xzgm822js1mwqs8n9v8hvw9mjc883y77piasgb";
+  };
+  "864bfa01d63681c131168385b66aa9d3e6b7e23b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/864bfa01d63681c131168385b66aa9d3e6b7e23b;
+    sha256 = "0lfc8a5f5skbdx263jh5m55fqnslva2pkx3yvifnzsgf396872bk";
+  };
+  "86a3ef300ab5182d7d6f3c7e1dec1ab017621176" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/86a3ef300ab5182d7d6f3c7e1dec1ab017621176;
+    sha256 = "1b8a7pm5bxf6gcrrx8d4ld19qgck19gd2nhp01dyjm7vqc8cl201";
+  };
+  "86ad290cb6e4e954f3e8ad5203151d7614279554" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2515854-a6b06d306d9743a78268eae33a3084ae/86ad290cb6e4e954f3e8ad5203151d7614279554;
+    sha256 = "1spwcj4yb5hc94m0f2hx13yfjrzsvkhcvgbmlj10ak9bvpkyx96m";
+  };
+  "86c299a2f4f573039b2558718ba45d95ff08ade1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/86c299a2f4f573039b2558718ba45d95ff08ade1;
+    sha256 = "18qmy1kl7x4jvyj0d9rsyiaq9gszjpx2v0983vbgdqszbgics4ax";
+  };
+  "86cf1c73f3f607e472fa7ae7be4709c191878044" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605596-b0ea63cedf984da9bdd8cabc290cfcc0/86cf1c73f3f607e472fa7ae7be4709c191878044;
+    sha256 = "0avis11c8p42c28k8pdvfns3m397mraj21kk2bnbaw9hmv5difzv";
+  };
+  "86fca9c30e8dbd28a791714c1385aea7dc583091" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/86fca9c30e8dbd28a791714c1385aea7dc583091;
+    sha256 = "1a91dlqcfrqck0q5285cljzdr9zi14g5dgbzy9772gabc49c01fq";
+  };
+  "8741e3f2519f1221c2f8bdb966cfa4504f3ba5a7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/8741e3f2519f1221c2f8bdb966cfa4504f3ba5a7;
+    sha256 = "028fhjrjcqnrjqx9i0v17mib24l20pd1bcpl8sc1bipa8yc0lk81";
+  };
+  "87758c549dbc2d3ff96e0ee0b82d6d99f20c0ab1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/87758c549dbc2d3ff96e0ee0b82d6d99f20c0ab1;
+    sha256 = "1jl52dabxi8rqhfadkwwrq68yiqxfvc2n82f9qvmc6viydjdrmpz";
+  };
+  "87925181e3a8b737757401a6114a8acf82625a49" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/87925181e3a8b737757401a6114a8acf82625a49;
+    sha256 = "1xkykqs3fzvkwf7hm0qxrbhjx1cibyns81cm4lcpad2b4f4a29nd";
+  };
+  "879da85ee7839263b362a6d69f41f3d4477d2263" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/879da85ee7839263b362a6d69f41f3d4477d2263;
+    sha256 = "1d89w13vkl8wjp0x22fsnz9yf7ln4jiadb3mfxfzykix884jr79w";
+  };
+  "8817e4ce5e9049b3ef1374d0f56fa509fa491f73" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/8817e4ce5e9049b3ef1374d0f56fa509fa491f73;
+    sha256 = "1ip08vk00921qgz5q70v60zsykyapjjxg7hghn2lbw54ylfy755r";
+  };
+  "88192934143593f3b9bdf82185f4ac7a7373da7b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/88192934143593f3b9bdf82185f4ac7a7373da7b;
+    sha256 = "0p4y1fi48k2jh288d2axriffynn4w824ngh0vfcd1wlrf988gcvp";
+  };
+  "883890e30ce2c617da8433831db3b480780ce910" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/883890e30ce2c617da8433831db3b480780ce910;
+    sha256 = "04knac1hybywc9rmd7cq11scg8hc3qn4yszf7hbak6z807j0abd0";
+  };
+  "885b477d70802077c49ab7c32a784bacd55ad24b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2467022-c410c14385ba462bb86b4995040cdcb9/885b477d70802077c49ab7c32a784bacd55ad24b;
+    sha256 = "0acf1z7q9wyvshacv9mfgc55kkl1fa4c7a3gv94jmk0jccmf6lkd";
+  };
+  "888feb5c0fbff7928f650be69fab3ac123ebaa26" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/888feb5c0fbff7928f650be69fab3ac123ebaa26;
+    sha256 = "1rj3434znf64z0cgi0dwx3pz5dhziqgm7gpcrx5ag2chkzixl7b0";
+  };
+  "88ea146643258d378d159b9f928c783774ea9c53" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/88ea146643258d378d159b9f928c783774ea9c53;
+    sha256 = "1wh8zfcswfp5ms94lgvl8yn0qjkbrznh95wln2hi9civ7594j3zs";
+  };
+  "88fb7a15bfd879a0c14ff7a16e321cc2b8896c38" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/88fb7a15bfd879a0c14ff7a16e321cc2b8896c38;
+    sha256 = "107xs4qhzjn2305hd84cbp2xnymba6sr8axd5snwwa9dzl39yaaz";
+  };
+  "8901801fb587b12a9aa6263540cdd95b46710f9c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/8901801fb587b12a9aa6263540cdd95b46710f9c;
+    sha256 = "1msg49v9hyvfy5ms00lyq9x322qwvw6akzpz1v6kylrakri8nwvr";
+  };
+  "8906ef4c42cb5d492b620e5d8dc2118dd976ea12" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/8906ef4c42cb5d492b620e5d8dc2118dd976ea12;
+    sha256 = "1xibvx905vvfvs0cdyjqbjy7wb3pvimzazd9ii5rwyvci6gj1vb8";
+  };
+  "89080b8cfede13b245eaadefec0b89e901ff8646" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/89080b8cfede13b245eaadefec0b89e901ff8646;
+    sha256 = "1103qvaxr40xq97p20x8zfv32hkz3nnv53lc8624qkjyhnqwni8c";
+  };
+  "890adf51623c1e158f5c9f34db7f7f686e7005b7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/890adf51623c1e158f5c9f34db7f7f686e7005b7;
+    sha256 = "00cb7r13zpgiw9x0ahiimx915ynikicv4ixlxgxrfyfvqvkb2w7b";
+  };
+  "890f859d20731989f0ce0e2ccc89da28cf0f8dbe" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/890f859d20731989f0ce0e2ccc89da28cf0f8dbe;
+    sha256 = "1sfsps751hwql9akgqvsxvbfp0hzzlgcxg4pf9wzv0fmsm5zk910";
+  };
+  "89550f66a2a48a9f1b9089703e9b33eb14a23ae5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/89550f66a2a48a9f1b9089703e9b33eb14a23ae5;
+    sha256 = "16bbs2r4i3bl6i0qp7snlifjh9s3gy33pdfjjpvnv0357wzama9g";
+  };
+  "89a680846da64558e5147c08cdce03270f11e7a4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/89a680846da64558e5147c08cdce03270f11e7a4;
+    sha256 = "119sjc3c9nqc1g8jij70kaa2rj2q4q6nd8dm4m4xmk32l9vf98rg";
+  };
+  "89be40342b7a93b0b11a6d495aa56ff3b8aebdbe" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/89be40342b7a93b0b11a6d495aa56ff3b8aebdbe;
+    sha256 = "0lbq80772si922f6s3qahsx89hdyzvd8351j2pqr019pnasgpic6";
+  };
+  "89cf6e0f862a93ef9e543780d100517db3f3327b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605642-f320d1a5ef22435181fcba597b91c63e/89cf6e0f862a93ef9e543780d100517db3f3327b;
+    sha256 = "0b5p8gphgwx322ddyizq83mlwx318m8ndw8b6d10pvh6kfzf5ry8";
+  };
+  "89d28cf4154268be0856af7d9417e5f4018f65b9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/89d28cf4154268be0856af7d9417e5f4018f65b9;
+    sha256 = "1mksxkj5hx9wbnswb3dal0qqijlnrcrxprc7ashz0cgs8svhvkj2";
+  };
+  "89e79ac4565d509ccc57badb152f9d534469f4e6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/89e79ac4565d509ccc57badb152f9d534469f4e6;
+    sha256 = "1vinxn36cb93zpri4zk8jxhbjnb11drb13fw7dxvjbivqdzakahl";
+  };
+  "8a1ff4c3dc8b96b41c8fca1325ddf964f3768446" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/8a1ff4c3dc8b96b41c8fca1325ddf964f3768446;
+    sha256 = "06gan1mbhj26z6flw0p1mw2qijv0nc8hpxl5q9dvwdmv5j1s937z";
+  };
+  "8a251169614945698a2c1990c0898641d380b289" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/8a251169614945698a2c1990c0898641d380b289;
+    sha256 = "1bd15y5ka1pzmj0y0i19w5r4pvgx36py84sfq097gvsbffx3ik56";
+  };
+  "8a7c6b0f9cc883870556fb456f20715ed40367c5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/8a7c6b0f9cc883870556fb456f20715ed40367c5;
+    sha256 = "1gd8mxmr9874577fzyhl5cl6rrx0sl4g8c7j8is3jp97zcng853g";
+  };
+  "8a933dd63dadc44c26fb7afa83573b5ab52aaf33" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/8a933dd63dadc44c26fb7afa83573b5ab52aaf33;
+    sha256 = "19fjz78gjlp50xq490wfvkjzpay9rrf78jnv0x0gs6kpnyd56x35";
+  };
+  "8abd833e1a283680a6e19d7896cda23b4f559012" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/8abd833e1a283680a6e19d7896cda23b4f559012;
+    sha256 = "0xq3c1hcmlki59g6y36zpfq6pm6cryg88sy364rayihlzgbc2dra";
+  };
+  "8ad5dea631af368fec9f5f42b6f235997a8131e9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/8ad5dea631af368fec9f5f42b6f235997a8131e9;
+    sha256 = "1hwnldwf0g7k34wg19yvzfz6939qc9kw9758fq7dsi0737cxykqc";
+  };
+  "8ad8c126595c03e31b971166788c82bdc9cf0544" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/8ad8c126595c03e31b971166788c82bdc9cf0544;
+    sha256 = "17vvcdpba4mijzlpi97xx7d022knpdw918npwq40vcmswmn758vg";
+  };
+  "8ae41d0c7d8fe2a00251726554c48ce1dec9ca04" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/8ae41d0c7d8fe2a00251726554c48ce1dec9ca04;
+    sha256 = "04dmv62qlczyj67rrfjnm790ksbpfwdgzl05zgqgi9lyrrsq3m8c";
+  };
+  "8af47f724bed2b5bd921d98f1d04d577d07ad781" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/8af47f724bed2b5bd921d98f1d04d577d07ad781;
+    sha256 = "0jy4dvz4fdf50283w6mcycq1hd7rvc3nawv9zylvb0pgxs6bvlnm";
+  };
+  "8b025a64e2081e1caa1c37427ec0e6194ec0275a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2517611-d0c4506b0eb74bb5b22fcaa18bed9682/8b025a64e2081e1caa1c37427ec0e6194ec0275a;
+    sha256 = "1pm6inqkiqwjf1yjc38ncky6ibm22ha1pj9r84mpwxc1c7f9js6x";
+  };
+  "8b0519b8991a39be23e66177b1f881b62f967cb0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/8b0519b8991a39be23e66177b1f881b62f967cb0;
+    sha256 = "1x5zmgn9h2hxnjsrip75mvj8qs5q5mws8zb72v6rlw8iy7hjf8vh";
+  };
+  "8b3162447aae7621530652ee14ce8da1c287d6b0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/8b3162447aae7621530652ee14ce8da1c287d6b0;
+    sha256 = "0r2377k0a3jjn73x5fn1g4ppnjdywzkfxgdf801wk06zdkn41gpk";
+  };
+  "8b8340f444f8bcbe6806d7f4b2a6d3894354baf5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/8b8340f444f8bcbe6806d7f4b2a6d3894354baf5;
+    sha256 = "0yqm3ib77952dsydjvw5dmw7fw94iny0zj1y4kkl8wpbcj414kk0";
+  };
+  "8bb26a65444fea08370321879198f39f86ba188c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/8bb26a65444fea08370321879198f39f86ba188c;
+    sha256 = "09912hlzrsgd7pickg9kgrc4rag393h1xkxybm5vnr3iyhd20wk7";
+  };
+  "8bcf71af2f119d1ff9d3b09fe4ddcb08fc1a7d95" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2700683-67efb93bd15f484599a98be1ae830afc/8bcf71af2f119d1ff9d3b09fe4ddcb08fc1a7d95;
+    sha256 = "1zs71smgc45hh3sr3f22l98ch9k5f1z6hppx0dbs2lgg2s8bgkfn";
+  };
+  "8bdaed33beb2fa505dd0ba8f7d9ca94208ec44a9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2468936-39e1c39556f84e60be8d850c452aed67/8bdaed33beb2fa505dd0ba8f7d9ca94208ec44a9;
+    sha256 = "09x8k8apm7kly0kb04ladywwzyy90nzjvnd6hh476ir9mss1mjj0";
+  };
+  "8c062ee2e53c0fdeef88071aad2ed5ca1787cc1e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/8c062ee2e53c0fdeef88071aad2ed5ca1787cc1e;
+    sha256 = "1ymf1zl36xfsc0wmipsps3l90jx04qgz8ri7hmwpy4831hc7r594";
+  };
+  "8c220042a37dc4cc1b8b05afb13afadab972b12d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/8c220042a37dc4cc1b8b05afb13afadab972b12d;
+    sha256 = "1hjg7wwfb217dansimncjya4ll7lsxshi0yvnyi2f2f9bm7jijd9";
+  };
+  "8c9f2e92d67f683596da321c8af36ece1d8ac774" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/8c9f2e92d67f683596da321c8af36ece1d8ac774;
+    sha256 = "0hiq4c2w47msrn5fiqggb7gf6fn59rk708xxl92jid8wa4h6xipa";
+  };
+  "8ca8fc4f81c127e4c748fcb899af430506bd0b01" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/8ca8fc4f81c127e4c748fcb899af430506bd0b01;
+    sha256 = "0y551cnm9r4jm05iqiwi8ysglkny6c78mwxrmxssabknlh0v15vv";
+  };
+  "8cd8b767b771e6d10c8f1f0b54ab812881f22fcd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604000-fac6782aa4fd45888363b062a8353761/8cd8b767b771e6d10c8f1f0b54ab812881f22fcd;
+    sha256 = "1wp04cwi17h2y01is0wvv02nhcn8nyb1f8c28hcm7dqswyw738j5";
+  };
+  "8d5fa95a3df6eb36318fcf2a135f464a76257cc5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/8d5fa95a3df6eb36318fcf2a135f464a76257cc5;
+    sha256 = "0axx62bip7rfrm0gbvdszdx1ik4mhxqxvi4ybmlbfhf2c1b26grg";
+  };
+  "8d8a695159bf666e16ab7b3558bb1d5e4e3b4698" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/8d8a695159bf666e16ab7b3558bb1d5e4e3b4698;
+    sha256 = "07c4p0dsl575zxamvvwh12hin7qnhk9lcd4aivnbbmrlhlrb23cf";
+  };
+  "8da60707e5826860752528702f9a7256a5d2ef81" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/8da60707e5826860752528702f9a7256a5d2ef81;
+    sha256 = "1701n4r1713crfxkaa0n2id346j1mf5nfg93givnr3c2qqlqz5yq";
+  };
+  "8db9bb91759363ec605c3d44273194136ce7dc1f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/8db9bb91759363ec605c3d44273194136ce7dc1f;
+    sha256 = "06xajy55psab26x65cvxyji5bm4cxyh4qb1kcg9a9qpfjip7wfjg";
+  };
+  "8dbbbdecc05ee43425e31b4f4eafb33b90db30ac" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/8dbbbdecc05ee43425e31b4f4eafb33b90db30ac;
+    sha256 = "1zch7l01gxhwwkm4i9a9dwa577rrp37vr6nkn1mkhakrjfirfams";
+  };
+  "8dd3bfc182e5277d4408943dba3520659e2928f4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/8dd3bfc182e5277d4408943dba3520659e2928f4;
+    sha256 = "02f3h1lsn8vkrixyb1lx1cbwffvby3i74ym71a05higvhw61mxaj";
+  };
+  "8ddadc13864ca20375d4b0f4ea443c123c3df3b7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/8ddadc13864ca20375d4b0f4ea443c123c3df3b7;
+    sha256 = "10vbj0h5k6s3ka3dqzfwz796cpx1ic5dxbaipcwyc45k2vj6ni4x";
+  };
+  "8e039420fc01a77f694997d93310f9ae83f1b6cb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/8e039420fc01a77f694997d93310f9ae83f1b6cb;
+    sha256 = "0jpxci1p47inn5qyp0jjh69ja0s7m5k07jhqvkpyvhy7pgdk0m56";
+  };
+  "8ec6e7ee9b649b9774e5429add4c5058fe492fd1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2791326-4a233957ffc54c94b38c9ceaf84d58de/8ec6e7ee9b649b9774e5429add4c5058fe492fd1;
+    sha256 = "1b29i8b6fh4siq5h8s48d97s0az2761l77z8vzykb4h0psxpzmy1";
+  };
+  "8f4c0d2091f953f5c7ea8154eaa6e6d04add923a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/8f4c0d2091f953f5c7ea8154eaa6e6d04add923a;
+    sha256 = "0sc09156h0vjc6jc67q1sp0khpzzkkvy9c8bh62rg7rbzlldlgiv";
+  };
+  "8f92c27e6fe54071ccf92649c25ae44991ea42c8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/8f92c27e6fe54071ccf92649c25ae44991ea42c8;
+    sha256 = "1ndfkv2zcamf377pbg67f257c4rqxh7ri06r4x2xqc4a5q0s60zl";
+  };
+  "8fb54a6908a0bea0b6a901eb32dd120dd2360fe2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2611810-c0cf8ef9a734410da79e56e1df15e175/8fb54a6908a0bea0b6a901eb32dd120dd2360fe2;
+    sha256 = "07dgqsshhamlgi79884dllr4253yr29ni84dhnrcfn540vpxbs5k";
+  };
+  "8fbbdcccea26e1c7cbd56a84637ec3564aec691b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/8fbbdcccea26e1c7cbd56a84637ec3564aec691b;
+    sha256 = "1vnpb1d239wp1nyrvwiv57rr7qwr2rplws6zcxfnl3rxmmfhkman";
+  };
+  "8fc77c86e05ff31bec85d8974938b0b5aa12fd1a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/8fc77c86e05ff31bec85d8974938b0b5aa12fd1a;
+    sha256 = "1v92ggrafax000jrdc6yhysyr8mridvdcss8zjc8ib5bwism9sdm";
+  };
+  "8ff23362f6d2fe2b1e7f422a3f52c13797ef128e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/8ff23362f6d2fe2b1e7f422a3f52c13797ef128e;
+    sha256 = "0faigq1s7yjji1khqm2g5bi6fm6217lm7lk5gy61ddwxqz1jkf6k";
+  };
+  "901760156bc3f4720396fcb487ad396709e18d9b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/901760156bc3f4720396fcb487ad396709e18d9b;
+    sha256 = "0sgp780bfy2gri238s8fsnbh7vbdrg5mdxla39j15nllfr1ybxfj";
+  };
+  "904a3b18b20eee856202f89aa46a20df12388dc1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/904a3b18b20eee856202f89aa46a20df12388dc1;
+    sha256 = "0ncm73g11s6x5lp5pz5b4xm2kfn7254hp4nzdfxwd841l96b4b7s";
+  };
+  "90874ee4cf89c6b1658479cf16716dd6d9f3391f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/90874ee4cf89c6b1658479cf16716dd6d9f3391f;
+    sha256 = "0hjrsp0jq1qgm9v31kdh7l67z9w54415a9f73lznsb1zmw1phz22";
+  };
+  "90d2bac8a115eb18639fab5f7840138c63cf9b8d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/90d2bac8a115eb18639fab5f7840138c63cf9b8d;
+    sha256 = "0ifayjg539ki273zzxx7b5jpjzdy50pyvb8d2a3r84216anww3qn";
+  };
+  "91475080ede727f0185da20abde65457b43d5476" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/91475080ede727f0185da20abde65457b43d5476;
+    sha256 = "0z6ql3zfvpiay87g3h14pfv5dyjx6d4r7n7ks0pvx829yb2h0n4c";
+  };
+  "9148d7be7b0930b397ef995a2e8cfdc6c7e2617f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/9148d7be7b0930b397ef995a2e8cfdc6c7e2617f;
+    sha256 = "13cw8rzvf6rm9dvj1d7q86l5r3bs4q23z588yd6imlvpf2pp7f5m";
+  };
+  "914d43c1dd28877dfe0d8b3b2fe4dca1ea17a575" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/914d43c1dd28877dfe0d8b3b2fe4dca1ea17a575;
+    sha256 = "1m7y3m9b1vvvvdw05g6hcs2hv9jh0947l9gjhr5zdj9adqf3aa72";
+  };
+  "9157e95d94d3ff3b40e3e507ef12528e8574f8d7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/9157e95d94d3ff3b40e3e507ef12528e8574f8d7;
+    sha256 = "0n825h58ygdqv93naavg0xm7p3ncxlyzp2c89dlfzzq4cs7mnvaz";
+  };
+  "91639ede60c084c481daea6546adf05ba88aeb17" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2618867-a941974a307a4d11a35487de88a65fbe/91639ede60c084c481daea6546adf05ba88aeb17;
+    sha256 = "0r2s4k616aj3y5q4cc6wmg1im4sd9qbi477kk4av2yxf1db078vg";
+  };
+  "919773af16fc549ebf79e9b9629c8d0c79d37927" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/919773af16fc549ebf79e9b9629c8d0c79d37927;
+    sha256 = "01xmmimdnzywvlnp3j9417iszkqmprjsb07gkh2rb6pqbabbjh3g";
+  };
+  "919cacfafb5826d92667b345276a3637499d8eac" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/919cacfafb5826d92667b345276a3637499d8eac;
+    sha256 = "00yyly9c0ggpl793mkzsa8dlbsh4drdagdhhv8vwdkldq666jizy";
+  };
+  "91eb46476dcb659fc2275fc18c2061796b561bed" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/91eb46476dcb659fc2275fc18c2061796b561bed;
+    sha256 = "020wajrnlvqk2c4pjpxf7562acryacxk1535fib0f6250wjhmh8r";
+  };
+  "91f1332208a164cfc7739215d515dc4574548eb4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/91f1332208a164cfc7739215d515dc4574548eb4;
+    sha256 = "1mxhnjf7vda1cxny35rw3ib4kp9i3h09a5lv0r70pazqj1ir23zi";
+  };
+  "91f5cdeaacc7b2be3fe926cfc1b9d3a054e143f2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/91f5cdeaacc7b2be3fe926cfc1b9d3a054e143f2;
+    sha256 = "0cvqrr7wvlgyvhh5bz61laigv9dy7ra65hdszi3sg467zy35b1dy";
+  };
+  "920bbd06b0082189854b0b43390a039f451bf843" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604998-3c15fbba3f5f4174942b1436c2db55e8/920bbd06b0082189854b0b43390a039f451bf843;
+    sha256 = "0r4wh2iswm4w1zgnjbmw8x4jpgd9zr2c1azy2nvgwg2rcja73adw";
+  };
+  "922b2bdba29589b9fa7f0b9dd3668e5703e9c88c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/922b2bdba29589b9fa7f0b9dd3668e5703e9c88c;
+    sha256 = "1af3n4b4h1yd92y4w660kslpz0nkvpsvinfs3p9l5yv1jfrz2lxi";
+  };
+  "9230b9bb873b7a7cfc1fd2410d1749427c7c3499" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/9230b9bb873b7a7cfc1fd2410d1749427c7c3499;
+    sha256 = "0c6c6rahp2x4n5vahs2csgx8gyzgqzajvzwx0dii1p44crb4cc2h";
+  };
+  "9241f4cc15ce04da3b203bb3ef60aa2a71cb19c4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/9241f4cc15ce04da3b203bb3ef60aa2a71cb19c4;
+    sha256 = "0v7xa1wzsd2rif4dikbm7dzzzw2k7c70vr6rp7l0wv3d978p9fr1";
+  };
+  "925f53a8ddf5e922520fc19cf6a17b00419817e7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/925f53a8ddf5e922520fc19cf6a17b00419817e7;
+    sha256 = "0p4l1r57w29bkir2k9y3pl50ycr5q3436ldrrm0dzzqb8ag5bkfd";
+  };
+  "926540c5a0b84439444ce2305aa3737763bb95a3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/926540c5a0b84439444ce2305aa3737763bb95a3;
+    sha256 = "1m1bsgri6xi5ijpyhpybrir760qrqy2hmwrsbifw0j5yxwxlvyrz";
+  };
+  "9285328e0b04faaf9fdc22bd27b76ef259020492" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/9285328e0b04faaf9fdc22bd27b76ef259020492;
+    sha256 = "0c2jz4pjf5f62ga9nlac4m3q92n9wgccjcwbyvr2scangawjh7sq";
+  };
+  "92abcde8582abb2913e4531cf3ea720b0e8c7d33" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/92abcde8582abb2913e4531cf3ea720b0e8c7d33;
+    sha256 = "1h66p5sp1j2l1jm4d6pjg34ng9k0d1796mns38gkcily554v4v6n";
+  };
+  "93423a9a78f3eaad42d062f8d2ff25e901ff455d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/93423a9a78f3eaad42d062f8d2ff25e901ff455d;
+    sha256 = "1hc5hwd0pazkcscicn8dpyyy9dc0aysbz9z95fwjfqsz1l7hg9k2";
+  };
+  "935837a33fa46d5ef7713fd4a123c61845ce49e5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/935837a33fa46d5ef7713fd4a123c61845ce49e5;
+    sha256 = "01dchcyd4z8a6vhk2j071a5rw3hv529cz5fhjkasplfqvl1dri7y";
+  };
+  "937a8d559bb1eaa790bd343ce8439885289660ad" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/937a8d559bb1eaa790bd343ce8439885289660ad;
+    sha256 = "17050dmx7pmsvxv4agmphln7xcy5bq058pmi47pqwlsf2njqskgm";
+  };
+  "93992b5277a20ed987f224c8f23f713677e0e25a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2546088-6cf476c573f0461594db3f64f59ec9cc/93992b5277a20ed987f224c8f23f713677e0e25a;
+    sha256 = "0v60rm9bh086p2agj0hl924lhmzsdbk6akycra97vvjf8riaznmd";
+  };
+  "93d5d44b151da63343cd4f052e5efab5039f13f8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/93d5d44b151da63343cd4f052e5efab5039f13f8;
+    sha256 = "0zq57rg4pw8ly7vr8wjshq5zjp93n4zgzzjqkwgh1lz542w8jrli";
+  };
+  "9402187f503c2f391c471ecb84988e49b0cac918" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2603097-3140b87e2cb94286beb08198353da9a9/9402187f503c2f391c471ecb84988e49b0cac918;
+    sha256 = "0qvxgvjr3fk8v4i5fcsz8vlxzw07hdyy0q94psngzjpvp0f9943d";
+  };
+  "941fcfee8a4d9b5b95af5e64593a01405ed864b8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605823-fed77bb1e455453286ca4bfc444c86ac/941fcfee8a4d9b5b95af5e64593a01405ed864b8;
+    sha256 = "0ipyq7ycmysav0p4n285w49394nxrq4nqqpdmlmd6gcjppv2hsd2";
+  };
+  "9480aeff10931a3129abfc074e9d75dc46fb60b1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/9480aeff10931a3129abfc074e9d75dc46fb60b1;
+    sha256 = "1mjpiaf4jh4fh8bld18gh97bnwhflyqyqb8zmawngbd0f686jhr6";
+  };
+  "948831f2786e73219fac5ebfe8a92939c3ea637f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/948831f2786e73219fac5ebfe8a92939c3ea637f;
+    sha256 = "0z6gh9j67d0as8x8v62n07w5xj2gj6x6k2pgynx01jp6z6k9x4dz";
+  };
+  "94ab4be561c4e5ce07253ce94aa3794090a44428" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/94ab4be561c4e5ce07253ce94aa3794090a44428;
+    sha256 = "0j0nwdwk46yskmmgx3y84wcr50ak801zdfj4mxwlai3bvb04f38n";
+  };
+  "94b9d86dc4aef7c178c2f9b2cd5360412b13b2df" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/94b9d86dc4aef7c178c2f9b2cd5360412b13b2df;
+    sha256 = "0fmkvvqy0v4wsd58hqlgrcpvm4a4qsrasfy5fy5h5b7j8z5q3vcl";
+  };
+  "94cfed4a88c4801ef537b65413db4cc3326b0a89" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/94cfed4a88c4801ef537b65413db4cc3326b0a89;
+    sha256 = "0smaxw3d54i6yymcil00mkdc5mp5yw95p18gc65sx0ir0yycviyc";
+  };
+  "954237c72446f3cdf8886043123658ca943e6a89" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/954237c72446f3cdf8886043123658ca943e6a89;
+    sha256 = "11rrbx70dmjyd97sk964lzjbpcyjg07zjfjnvn25z6v9bv3a49xb";
+  };
+  "957337ec86f032a91c82dfc2f859843e3a1c1e88" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/957337ec86f032a91c82dfc2f859843e3a1c1e88;
+    sha256 = "0gz05g4nh8645h4zdvrhmkpw9m3jlddk8ggd2h203h4zx51l3aav";
+  };
+  "95b668ea9989cc5ca54f2f7db9aafc7ae8277fb8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/95b668ea9989cc5ca54f2f7db9aafc7ae8277fb8;
+    sha256 = "1rprhq2rjgd5s4r8jn5f5nz6w20yckr79sh9mwmsfkx7zxkwda1b";
+  };
+  "95e4d7dc9cb01e3491442f9370e98e0d6361f556" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/95e4d7dc9cb01e3491442f9370e98e0d6361f556;
+    sha256 = "0w86a2dcdm4r0yqdy1ibdrmgmnb122znhacx9cz7jm2bsjb81nh6";
+  };
+  "95f7b61131b0b7361bd6b788845382016a65618d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/95f7b61131b0b7361bd6b788845382016a65618d;
+    sha256 = "1li07rkzvnasm9qc4qza2y6vyw7xhx33wmjzqbc2gwmawxjpl6an";
+  };
+  "960e4509e3bf35c6ecf5e52ebd53c18379354b18" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2634249-f2b4469cf0774eac818e7cb4565f1224/960e4509e3bf35c6ecf5e52ebd53c18379354b18;
+    sha256 = "16y0ffz0kn1k723xmr4vmna8giqsl6pqgp83a7w1hp8slmg1z1xs";
+  };
+  "960f838a00eaece74604333768e1901f77dc91e7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2597177-394deee1ae174b2db1462326aa83252a/960f838a00eaece74604333768e1901f77dc91e7;
+    sha256 = "08v86w4b8jx5af5agv2cyhxwc3a3w9xzr69lfvdljms51991qmkv";
+  };
+  "963f0fd12da9d6cf7d35a71dce090f7d5271d802" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/963f0fd12da9d6cf7d35a71dce090f7d5271d802;
+    sha256 = "133mrcxjpqhrffjbhiviwn91h3x5csqpk1fhhzlmc0spyf9bnswa";
+  };
+  "96421d48a3164d2d4259c4c9500dfbf44d9b90fb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2483157-ef88c8fb9abd408b8fe496d060749077/96421d48a3164d2d4259c4c9500dfbf44d9b90fb;
+    sha256 = "0kvplc4pwnjv7j240d2bcggwibrws3afamx6wh32lap5pps67d81";
+  };
+  "9653a9d2aef2e0fff14e4e16ca9058b38f172dd0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/9653a9d2aef2e0fff14e4e16ca9058b38f172dd0;
+    sha256 = "0d2z11fpnvx15yncyf840n7ww4vaaypyn4r7cg2ddscg8llp7056";
+  };
+  "9690133f46e7a766b46b38365897102baf062020" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/9690133f46e7a766b46b38365897102baf062020;
+    sha256 = "1jim7i5ih76c4wjm06y75iqw9ldcmc5wr0gs5vichdhgdj1y0ay6";
+  };
+  "96a0e755dc47a57b85791e7d748fe25e7258173e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/96a0e755dc47a57b85791e7d748fe25e7258173e;
+    sha256 = "1ibam8hh271ci3fp18baiw3jsll89i1w1q8z87gmi7y5qdasar02";
+  };
+  "96e618ee3726b5d13ee509923aeff0bb6272498c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/96e618ee3726b5d13ee509923aeff0bb6272498c;
+    sha256 = "13xa397xfya40cypwl20j332bp0rcljyj66z8vwdc10vxwwrdqv1";
+  };
+  "96ec8bc282d262d4764767c1478400c10994bf5e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/96ec8bc282d262d4764767c1478400c10994bf5e;
+    sha256 = "00x67b5sd3230k6q08z8n0ad95ia3fxzk0mssz6lmbi0zqqsvvbl";
+  };
+  "973fb0c29b2e3a44d2d370a545ef1a38a81ed07f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/973fb0c29b2e3a44d2d370a545ef1a38a81ed07f;
+    sha256 = "1n7kvxc135za5a2lzmrp18kpyka2gc2dynr30fpn1m1lfa09985b";
+  };
+  "97772a52cd613920ec0a84f0c8b57d0c8e88b1b6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/97772a52cd613920ec0a84f0c8b57d0c8e88b1b6;
+    sha256 = "1l262n4qq78fbvgrd6qilmp70rx4x5ciw444nw6qdjvbxag2va6g";
+  };
+  "9788909a70709303adf419bf0340b73ab037600b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/9788909a70709303adf419bf0340b73ab037600b;
+    sha256 = "1vw1a4nlwq6arcddbfiid9lmkfv8ylaakpggzb706hgr9jj1qi7h";
+  };
+  "980f3e90adc8557d71bfbef57bc146374612493f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/980f3e90adc8557d71bfbef57bc146374612493f;
+    sha256 = "1xvybmljiw3p3rwy91fi1dk7fmcpdys8b1c13yw4sij7ym0dqjkf";
+  };
+  "9851cf052473a71589aa7577f62e6b82f0298832" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/9851cf052473a71589aa7577f62e6b82f0298832;
+    sha256 = "0kd2bcr3n9l3qjxjij06gm0rgv5dhvrq3mdv6sqwmv3f28q1r8bq";
+  };
+  "985271d1e9b876cc6b98ce871d8efed7b2b3cbeb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/985271d1e9b876cc6b98ce871d8efed7b2b3cbeb;
+    sha256 = "1mh8jr05wk2wg1830bv1yq30ifxngjrb8nnilw2hwl1g6dmss3g9";
+  };
+  "985fcff275609870f5fa9ace4a4e31fcdef7eb1f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/985fcff275609870f5fa9ace4a4e31fcdef7eb1f;
+    sha256 = "03jw2kr34vxh4rpjq58rq00h0vv7mlbi3pc63aq6914yqwzvv36v";
+  };
+  "986472c357451eab93419161f5ccadfefcbdb41e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/986472c357451eab93419161f5ccadfefcbdb41e;
+    sha256 = "05arp7raj4ins0azci930klihg54zmj2b0ykhmnp91z6mdqw3nx0";
+  };
+  "98bce6b328014cb7a038cf71a5c84a03c88f3b63" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605596-b0ea63cedf984da9bdd8cabc290cfcc0/98bce6b328014cb7a038cf71a5c84a03c88f3b63;
+    sha256 = "1b50jfk9cz2x13378pbyd8lcg0m9jahhjwc1a9zfg68y6pf08rbm";
+  };
+  "98d4e369b78b0733da5369ef5d9a3d0821224bd8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/98d4e369b78b0733da5369ef5d9a3d0821224bd8;
+    sha256 = "1mdsmf24lwsbybjy687lsqhifg0d1za7vc6vaggba2x4gbb2rh2s";
+  };
+  "98dd7a062fbe1436797395825aec70ab45a9e01f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/98dd7a062fbe1436797395825aec70ab45a9e01f;
+    sha256 = "05xrlniqxkkw7c08r8m5ph88pmwsz1jbp0y437nrh4lz7z8xk6i8";
+  };
+  "98eaec4f30d9a8b65a6d9865fe0b1e5b7df1e740" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/98eaec4f30d9a8b65a6d9865fe0b1e5b7df1e740;
+    sha256 = "0kkzj77y0n39diqyfzx29rdi47ayg0f5cr6yi2syyimbq9i8vmb2";
+  };
+  "98f6aead047382d81ea82cfcf7d678c3d279b6ad" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/98f6aead047382d81ea82cfcf7d678c3d279b6ad;
+    sha256 = "0n6v34qn2v5cvqgzv1agp68hllcm9qjdl6928llln8mx56byr1y4";
+  };
+  "9905967a7ecb273ea4c135e170605bb12051e395" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738466-c1f653d3509f461bb7b24e2d8451128d/9905967a7ecb273ea4c135e170605bb12051e395;
+    sha256 = "1yn3gqiqdbbmxn1yn36d0cyf7cb8c74r0kq586fa9kyfq1kp6hcj";
+  };
+  "99408ec397e6f41cef3cc1118a42007c42240b73" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2483157-ef88c8fb9abd408b8fe496d060749077/99408ec397e6f41cef3cc1118a42007c42240b73;
+    sha256 = "07cx908z756kf2b7cbihipabh21zln8d58jaj0vh11fi7znwln7q";
+  };
+  "9960c14a54da2eea43d72be9aefeeb85b8cd4e7c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/9960c14a54da2eea43d72be9aefeeb85b8cd4e7c;
+    sha256 = "1wslww24dria8ka5d6a6by0ix81yg74783b2l8k59afjry3d4gn7";
+  };
+  "9974452a9032d4ef1911e1347776b088bf0f03df" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2579446-f2ba68e6c4fe40608f55a21e4d359a29/9974452a9032d4ef1911e1347776b088bf0f03df;
+    sha256 = "1kvgca25l2bbp416cqqw7ghrjq9mmwgy33qhbmkd665kyi3xcx02";
+  };
+  "998f25b9ce65d4cd484598d5f49cfdb023205ace" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/998f25b9ce65d4cd484598d5f49cfdb023205ace;
+    sha256 = "11m90pb307bpkd1cplzjavhbz76j8ywfwc1lrdp4zl5yb42avj7p";
+  };
+  "99985696491968b007dbff31cfeb9439637ad92d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/99985696491968b007dbff31cfeb9439637ad92d;
+    sha256 = "1n1rgz44hairjjvjc3937pin9rhxxa44sssi87z82965kbhqwmq3";
+  };
+  "9a10248ffa6ef2de0ff39750b0126e7d0b1557b6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/9a10248ffa6ef2de0ff39750b0126e7d0b1557b6;
+    sha256 = "1j4m3dg8l69iyxhy9gz915rinaas4a5mflj9a70lwciq01py9fad";
+  };
+  "9a27b682ddf08347ffdd2673c005febde327223b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/9a27b682ddf08347ffdd2673c005febde327223b;
+    sha256 = "050ywwrsm40br2mnqckg3jrgc2q31j8xf4h0za2l5ih2h3vq2ymn";
+  };
+  "9a6f36fd2204a5938bfaa23310ac94f3eac70d91" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/9a6f36fd2204a5938bfaa23310ac94f3eac70d91;
+    sha256 = "0ybib9bi9lfdxfb9ql3jip9fbfglzczyp8r9fsycfbwin33nqn6s";
+  };
+  "9a709e39d73f4dd05adc8a171c9e771ca1facd83" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/9a709e39d73f4dd05adc8a171c9e771ca1facd83;
+    sha256 = "1qrv0r9srbrqqwzw96ndirkn54my1ypyinsd1vdfvrwd19amwdpa";
+  };
+  "9abf05827a71d1c0a15a65473fe44db0a9c8676b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/9abf05827a71d1c0a15a65473fe44db0a9c8676b;
+    sha256 = "0x3kjyy72v9hx55bfj5yy5bhzip3i7fkpd0q6kgqi408wvz8345j";
+  };
+  "9ace33ad3d9ba29d499d254c077206230291f79a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/9ace33ad3d9ba29d499d254c077206230291f79a;
+    sha256 = "0jw0d0ck3p5h727apyp7190dm21q2mvf4kcipbaaa0rwdkynq70b";
+  };
+  "9ad3062b35efb39cfe52f02269e5e28c03df86f5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/9ad3062b35efb39cfe52f02269e5e28c03df86f5;
+    sha256 = "16lg92frzz8jqnvdw2r9w6a3fjlgvmndr7m1jlhq66k034d7jwia";
+  };
+  "9aec8735040beb57da24cffa27ef5d254408275f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/9aec8735040beb57da24cffa27ef5d254408275f;
+    sha256 = "1qgbkjhvhrsy7iy0r0gvs41m88har7i8m3ys03y5lrbmdazgb3q9";
+  };
+  "9b2025a39ed5dc7d0f745fd5f484fa5bd2f9b319" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2514423-e0ca01e1f08b4e2480fb868bca2e338b/9b2025a39ed5dc7d0f745fd5f484fa5bd2f9b319;
+    sha256 = "1jnlw9ifq8iyfvz8yn2jigfdq5qmhviy48vh461kfpx3isl1wvq3";
+  };
+  "9b367562030fc7238553c6aebec57181c96d88fa" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/9b367562030fc7238553c6aebec57181c96d88fa;
+    sha256 = "1jdr332ks1d1gqi9ygxdmjyr3lingzzb1pdgrnxkg7jbl9i7y4l7";
+  };
+  "9b622139c6c9738ed9a9c4bca74a20d18bea5a75" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2700727-ab54589e54a547ecb0e365d946b4351f/9b622139c6c9738ed9a9c4bca74a20d18bea5a75;
+    sha256 = "11i6g22ncsjn50yq3fmhv2mm6inxw6zhi0zznv0y7gwdyjrisasy";
+  };
+  "9b6f3a80dd242ad667ee7c33f54385d4fa791086" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/9b6f3a80dd242ad667ee7c33f54385d4fa791086;
+    sha256 = "0lb42d3a79q1k35jfa3b1c1z8n774nxkcr918cp9bay4saifvfzw";
+  };
+  "9b85c2fa156837a820c7e7ae27d2ade465850441" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/9b85c2fa156837a820c7e7ae27d2ade465850441;
+    sha256 = "1klwhr444j1pqn44fnjyq2nvlaiaib04n0dwykx181bz2nkjqdqv";
+  };
+  "9b8fbaeb9433a52f4f65397b66bc6da378e067b7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/9b8fbaeb9433a52f4f65397b66bc6da378e067b7;
+    sha256 = "1l4x5r8ghf70ddfyz1q6wpqlhrc10l41h33gmfhkjwm45fkvkxdh";
+  };
+  "9b97586a3c9bf005cab1870015b75587e39f94da" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/9b97586a3c9bf005cab1870015b75587e39f94da;
+    sha256 = "0a2nw9ibdv51n2b7a9x0jnx8cqxilknm79x210pr3h8p3fjdzlb7";
+  };
+  "9bb171f0382c86c213e8f4d3ffafe1e676490b21" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2718426-3062c3938efa4be7b8cd7493e66818c4/9bb171f0382c86c213e8f4d3ffafe1e676490b21;
+    sha256 = "1hgfyfwn19k47y6garrdfy4jlhis0mi1h7zfnab8x43w7pqjgjpv";
+  };
+  "9bb63a05f1dd1d7171eeb8018c29c90d81773605" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/9bb63a05f1dd1d7171eeb8018c29c90d81773605;
+    sha256 = "18cfpjnyamzwnrmz4i06iwir58dx6657gy4i8jgk8ga736j31vxr";
+  };
+  "9bdd5448dfc6229ba9d0261514a078236c882986" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/9bdd5448dfc6229ba9d0261514a078236c882986;
+    sha256 = "129pclb41yip44m87pr8l1rhdajhgnzcarh84j5w2kgqqmma9h8r";
+  };
+  "9be02ac4f895d7559b0cba2d4b65f8ffb5626236" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/9be02ac4f895d7559b0cba2d4b65f8ffb5626236;
+    sha256 = "0dh8vcf5dm36j4pjyc7m0i9f4947mk3r91ldbj6mhxfi90c6sn0j";
+  };
+  "9bfa76eaf50a585e99981b54ef5628fd89b397e7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2499980-1bec026979484bddb8aa39afef8358b9/9bfa76eaf50a585e99981b54ef5628fd89b397e7;
+    sha256 = "0rmv4ibakmvpllmq5cs1ihfkpvy1brkn8l42kmls66zlz478115l";
+  };
+  "9c2836065510901f9ba07928e4c7e319dd33b670" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/9c2836065510901f9ba07928e4c7e319dd33b670;
+    sha256 = "1b6igbp0mn78hvjgg33xyi6v7gd7nqvl3f4hgq5wfr8dzghx5gky";
+  };
+  "9c2b99ebfed2e931067e8842161b2811d04206eb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/9c2b99ebfed2e931067e8842161b2811d04206eb;
+    sha256 = "0j0p40hjbc1v0ld3halwhic0573n1z58sgpy112rqb1m667q87q6";
+  };
+  "9c45f6155855d24fbb8f12e7a40895df1e55b205" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/9c45f6155855d24fbb8f12e7a40895df1e55b205;
+    sha256 = "08rpzwbnxwpk5gvybxv7q0s9k25gn8vcm77k7s69r5wva0p8hl9r";
+  };
+  "9c46b9b756ef22a0a9aad7d5efcf7e670cf46b3c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/9c46b9b756ef22a0a9aad7d5efcf7e670cf46b3c;
+    sha256 = "17jc44fj6vs0kqxk568vn6vjapyc1r7k9b88pc5l96m53bdkn7cm";
+  };
+  "9c8dc173e3087266551343fc43db0a118e573cd5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/9c8dc173e3087266551343fc43db0a118e573cd5;
+    sha256 = "1np5grzkj4cib5mzwxksqh3crbfllwgsk3ss7jz03s5hgh8jk2fa";
+  };
+  "9cb4e1d5ca0e7935f8d937f678a9245ca0a8baf1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/9cb4e1d5ca0e7935f8d937f678a9245ca0a8baf1;
+    sha256 = "0wpqjvls8rdi6g47w8xzs71ynfg1aiw7jw1g160wxk11qvn17rid";
+  };
+  "9cdfcaa36a081486e8c591d1b0de339f20e19712" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/9cdfcaa36a081486e8c591d1b0de339f20e19712;
+    sha256 = "0y7h2ass8kgfabkvdwr3jcdi4znc6mcg4zklvw4yr3420d5h16x3";
+  };
+  "9cf547b1a8d0349c6997827cf3b1c76934a8f7e1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2714108-1287c19490104fa7a8ca7bc71daf7ae8/9cf547b1a8d0349c6997827cf3b1c76934a8f7e1;
+    sha256 = "1hh19pkjsnhjcsd8vj7d8l5nlk01iyp4kxf5hn2ymf0j1df0xns0";
+  };
+  "9d0629861bfc4948fc177763e87dc1ea3ac042ba" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/9d0629861bfc4948fc177763e87dc1ea3ac042ba;
+    sha256 = "0bal97q5lyz4s5z39jnxbabhll2agydcdw3mx0sikwr666aa8hac";
+  };
+  "9d238c0aed4cd73464dbba5fbf034030858fe441" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/9d238c0aed4cd73464dbba5fbf034030858fe441;
+    sha256 = "1n3fj5dsc4b9i8jwb1nzlnk1vbjnzlva3ljwkd16z8xfcdq3aqjd";
+  };
+  "9d2a8629491c47d32fd852ad683ba3be0f91dca2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/9d2a8629491c47d32fd852ad683ba3be0f91dca2;
+    sha256 = "0csiwyx12frg2bzyp72is2h6fi2vv961byc23k30p0yz22cybr6c";
+  };
+  "9d4088ad171c93938ed41b2c224a98da2eb8e600" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/9d4088ad171c93938ed41b2c224a98da2eb8e600;
+    sha256 = "02z4578c3939zq6m6l9ckjf0kiyf9biq98yqb6dmp93lanr9sahc";
+  };
+  "9d48d62d8894986890f0f871523b546e25618a96" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/9d48d62d8894986890f0f871523b546e25618a96;
+    sha256 = "12j6p2l09n1yv388h0ynxl0p1bply6217600ix7d8mpm4jjri9sa";
+  };
+  "9d6293584ce78fd938acc5ddf91597dead7b8ff0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/9d6293584ce78fd938acc5ddf91597dead7b8ff0;
+    sha256 = "1qxm6h3nl2aawl9z04gn1kzlaiaajccyh0b9gr85d6x8x2dwxjpg";
+  };
+  "9d8150632d85b43bd2be46924eb71dd19d5b444b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/9d8150632d85b43bd2be46924eb71dd19d5b444b;
+    sha256 = "14yw0xbyg1rq18xyfydfy3z0gnvkzr27f2vscsgiw1xmps0fsa6h";
+  };
+  "9d835adb6f30382cec8e1701c61f3a305fe5ebe5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/9d835adb6f30382cec8e1701c61f3a305fe5ebe5;
+    sha256 = "0vq311bgcj0zcicb05l5d1pl5jw1vqbblfzmzk3h6nf0hgn2db24";
+  };
+  "9d8f4ef5363610f4b47829299c0824147fa3c486" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/9d8f4ef5363610f4b47829299c0824147fa3c486;
+    sha256 = "0p5kp49clxg0ws3l3dslff5j54gi11bdpbsks2nh9081pfddla5z";
+  };
+  "9da60f5683310aa2ed53d90b2a9a246879223099" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/9da60f5683310aa2ed53d90b2a9a246879223099;
+    sha256 = "0zgiz6m2g1i5884izczyigh42bfw0xbkvf1r6jmavays26r83lb5";
+  };
+  "9dd86d52ca2bc2688244bec708a9054313d175c5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/9dd86d52ca2bc2688244bec708a9054313d175c5;
+    sha256 = "0viis6zccnxasxwfbi34xpqf4rnzr0w439qsskx7mbhg3zi8p0hz";
+  };
+  "9ddf004692c477b60fed575d57551fabdb00997c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/9ddf004692c477b60fed575d57551fabdb00997c;
+    sha256 = "1ij1pdln5llxl6cxsiz6kbfzsgqmk901mrgbzsdki3ibs75dzr1m";
+  };
+  "9de93e74f384195b52fb90f9e7767ece5fd84570" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/9de93e74f384195b52fb90f9e7767ece5fd84570;
+    sha256 = "1mj2syhcxq5qg23li9rh3814wiws421yasjw83j7b63yvpqbnyvl";
+  };
+  "9ded54d67930bcf5c3e95a10d2176c6106f2a3f8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/9ded54d67930bcf5c3e95a10d2176c6106f2a3f8;
+    sha256 = "0csk1i20kwp4rd1j6lci9v4wmc9jx3ji1i1m051iik0dy0553z3p";
+  };
+  "9e3075eea5e5e885d9aa9e6b2952ebe61a8b60a1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/9e3075eea5e5e885d9aa9e6b2952ebe61a8b60a1;
+    sha256 = "10gxi4n3k6fjsigv12603xsjp097b09bl6lli308xngjkiz55syp";
+  };
+  "9e397995b47d5acc37d38c9fa4935abec922ba48" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/9e397995b47d5acc37d38c9fa4935abec922ba48;
+    sha256 = "0cqayf9ag0snn0fab83fz3l5fqbjhllv86ik3vzx09zmg4i0d7n5";
+  };
+  "9e728c35e842f7af53a3e822acd469326d7cd52f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2677283-a70890a1537c42869136794b62c332a4/9e728c35e842f7af53a3e822acd469326d7cd52f;
+    sha256 = "1brpgrvcshwcrignfc257zg2jchav13kaz94n06i6i4fvd4la6ix";
+  };
+  "9e804a449e34aea4d5227c2a0cb3d96352a82de2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621793-1958bfdd4e3b49f3a0ca6a4c08a60a0a/9e804a449e34aea4d5227c2a0cb3d96352a82de2;
+    sha256 = "1rfn257jpdl61g0qf92lqybhj9j81gxq7h8igb7x5kwswa74c7ws";
+  };
+  "9e9a678ef5fe8d87a10fc7621ae8dd3c501e6236" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/9e9a678ef5fe8d87a10fc7621ae8dd3c501e6236;
+    sha256 = "1mijmzfvnxnii8z805a5hnhbiwwh3j16p8i7i0rhrmvkw5gnd68r";
+  };
+  "9ef14ed15fba71337b14c1e33972d9cd36fa9278" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/9ef14ed15fba71337b14c1e33972d9cd36fa9278;
+    sha256 = "157dz7i640q6scfpzqjw24i8qwlwjvrbdxqi60sx9hgkax1xw0n7";
+  };
+  "9ef93659a347d11fc1e9478c37043a0236e34ba5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/9ef93659a347d11fc1e9478c37043a0236e34ba5;
+    sha256 = "0qn4vd5pyjrsaa75n5avy0ri1s71nwnnkgn66qcdc2x5fckq6p3j";
+  };
+  "9f07f59f3c436bdfae1916ca914e86d02a7239eb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/9f07f59f3c436bdfae1916ca914e86d02a7239eb;
+    sha256 = "14qyjvd23zqc5dhv15z8sp9yl324fsfzy9p7x2nl35x14j667l8j";
+  };
+  "9f3ea83f4797ad2eb48a62d176d4849ab3b11b4e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2616691-982be94b99b442419e99de37630ca843/9f3ea83f4797ad2eb48a62d176d4849ab3b11b4e;
+    sha256 = "1fiah07i0wyvya8dwnlkfyq6csg9f0yly1x51j9s6jazy45xffrb";
+  };
+  "9f67c39f021b4b42e5fa8aec0f0be533c8341cac" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/9f67c39f021b4b42e5fa8aec0f0be533c8341cac;
+    sha256 = "0p4a43z84i8qjpnpich9rdxg0gsycblmif3slsad8ydabj094vkp";
+  };
+  "9fb4a9e94f7c935385fd64a3d3c2f58144e7118a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/9fb4a9e94f7c935385fd64a3d3c2f58144e7118a;
+    sha256 = "03hyf8kladlf5hwc1rija042pqcyzlbmla0c3pysrla33h4ca5qc";
+  };
+  "9fc2d2e4632111eca96621a257b4547fddf03746" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605188-b2b13e5f7b3d453eb5d6b0cde31b638c/9fc2d2e4632111eca96621a257b4547fddf03746;
+    sha256 = "0bmg6jvpwq02azazsh98mdh0x716lxslqai6g2b8icwxxi84p20s";
+  };
+  "a003e87a1243a65a9d38ce8666ba05cf9dff34df" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2634249-f2b4469cf0774eac818e7cb4565f1224/a003e87a1243a65a9d38ce8666ba05cf9dff34df;
+    sha256 = "08cbncxgcr83mld0qv6zc6mzjc00jjx8za0ii2v8r7a5jhr7hcr7";
+  };
+  "a00af92cb7dfede2f60df7468c841462cd3ef7bd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/a00af92cb7dfede2f60df7468c841462cd3ef7bd;
+    sha256 = "13arcphd636ahrdbxlxwb6yrximqgm9ixl745yqp83aihk2wwls1";
+  };
+  "a037040fb7bcc432add0b7d65dc1d3b078b6f143" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/a037040fb7bcc432add0b7d65dc1d3b078b6f143;
+    sha256 = "1jjcbw831yijkabzavbi4vmw3ba8vk248dnaqsjm5gkcajgwagxp";
+  };
+  "a04dbee3efc3178e3a175b2fb572cc36210ba9ce" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2599079-89300969452d4a5eaefe1ab4af976839/a04dbee3efc3178e3a175b2fb572cc36210ba9ce;
+    sha256 = "0xwqk4czfy62r9dh5yyan4kggijy5hgvbq084zbz3fc53cxrj3kc";
+  };
+  "a05558cf2d18454f06cd9c1a5b610a654ec0294d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/a05558cf2d18454f06cd9c1a5b610a654ec0294d;
+    sha256 = "0m9pngd6gnndqbww5xnwcfdf1gnkyipccixi6w4msps20s2bbkfr";
+  };
+  "a056afc246a9cdce5d7321930c97ccf0b9f19f15" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/a056afc246a9cdce5d7321930c97ccf0b9f19f15;
+    sha256 = "1y41y758jn47y9zy46f0inxlzl0h8wrdj4fm9937ypd2fyfw6nmg";
+  };
+  "a09bd78594e737689115679ea7f6a09ed557d18e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/a09bd78594e737689115679ea7f6a09ed557d18e;
+    sha256 = "1b1kivdj0qz5cr5igqmzbcyrmhbygvdavmfrqlqlrs1775411b7x";
+  };
+  "a0d83db11d6b2a64fdb82cc496d07a03ccaa142f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/a0d83db11d6b2a64fdb82cc496d07a03ccaa142f;
+    sha256 = "1qqrpmmdc0zg13x6qvjzi6zk6wvq0khiml4ksrhbn60si3gr8li0";
+  };
+  "a0de04466a75125d3528739deb44e12686e7a970" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/a0de04466a75125d3528739deb44e12686e7a970;
+    sha256 = "1k6ivx8bi63yivbw36lrpz8sv8gc2gzslb6pq2hq19jacl4v7xwy";
+  };
+  "a0f7010e4bf1452ec48d287d971a48198a78da69" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/a0f7010e4bf1452ec48d287d971a48198a78da69;
+    sha256 = "06s4hiwd7vr3n18p5pg34h1irzvq575n2pw9l2sskz6fj82m2fv8";
+  };
+  "a12df808dfee07a06515eabdd6c1b0124a7385d0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2619995-d5e097f793bd479d8592679759fb98be/a12df808dfee07a06515eabdd6c1b0124a7385d0;
+    sha256 = "1xnjwnfzaja205cm6c54nc53m3nbjfqk28ggi7h2rxg9cdjcv59y";
+  };
+  "a1820034a04f046e5f0c74444f653ee4869647c6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/a1820034a04f046e5f0c74444f653ee4869647c6;
+    sha256 = "1mi6z4s5wz9j4y097b27xp9038nar7nn2gmc1x7yaw97kh2z76n8";
+  };
+  "a18cebf9d16dc2e5a99da03353e404d64bce3ae6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/a18cebf9d16dc2e5a99da03353e404d64bce3ae6;
+    sha256 = "1g0arlnn0f4zhhj9lwmj3mjlwjwvj0gw8m8fbr2jw6rylmfag4av";
+  };
+  "a1c1fcef149d29408d496f35628d18dd9bd2e6df" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/a1c1fcef149d29408d496f35628d18dd9bd2e6df;
+    sha256 = "1b66dsbjjvz4gm7vm4vaapykhv7ni2y5rkycbfahzcigi5kasf57";
+  };
+  "a1f9df46b4e95588043a59820ba65fc28a8eea7f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/a1f9df46b4e95588043a59820ba65fc28a8eea7f;
+    sha256 = "0fbzj0bkkbm7rxdi6lva7g2qhgqmj4y2mhg72z1iw842bikr4l2f";
+  };
+  "a1fc05440064b28d5deb42b383bf1960ca27cb3b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738466-c1f653d3509f461bb7b24e2d8451128d/a1fc05440064b28d5deb42b383bf1960ca27cb3b;
+    sha256 = "1b0xagh5f596ww8g6yng6frrvkrs8vrhzzbnl59ab1cpbq3xn7dw";
+  };
+  "a21a78f021d580176e09c67d0643b83e80ca2744" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/a21a78f021d580176e09c67d0643b83e80ca2744;
+    sha256 = "1xjclk357lm9rydmhzvznq8rd4yysr2jzh5y1bvrbpvxpx4hc3if";
+  };
+  "a243a00aa61675be8ae46cdba7db99c8e8195984" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2615502-35e684f430004977ab5aaed43a0fab81/a243a00aa61675be8ae46cdba7db99c8e8195984;
+    sha256 = "1lvmwf0ajkjsdz68n22dhiihddv4ric0nch46ixvqg8di50fanj2";
+  };
+  "a24d76c382036592b023a22d61abbe88d52cb526" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/a24d76c382036592b023a22d61abbe88d52cb526;
+    sha256 = "0brdmg3xp6jgfhralw483pkyvgd305g3m4bcqcpg9vazsrwawypm";
+  };
+  "a2587b8104dccd8347dc49a52bb5643842856a16" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/a2587b8104dccd8347dc49a52bb5643842856a16;
+    sha256 = "0j8pwamzj2icivglw0ylpvbx76c0xyys79l049l7lpirp95y0hb0";
+  };
+  "a260cd8d85a752caa55d8857af979f5ae8a68d97" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2597174-0975f975d1f0463f931b68ea4b0ef6d0/a260cd8d85a752caa55d8857af979f5ae8a68d97;
+    sha256 = "19fijnc4j8pr726j3v3c0x35k8mnswk8jfjjzmgxdn6s95c6q9pm";
+  };
+  "a2731fbc3c50dde19f92ac5706a3b73a2fb50c05" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2761703-4d21a69f627145d58d1b542fa90eeb3e/a2731fbc3c50dde19f92ac5706a3b73a2fb50c05;
+    sha256 = "1adi6x27znln5qqkcl1x281csw27v5xd981n0az5wxqxfpssxriq";
+  };
+  "a2b0d085248240cde57087bc35816b078511c856" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/a2b0d085248240cde57087bc35816b078511c856;
+    sha256 = "0ksv63yssyqhphll4glyrizrsylkk2p82l2n653sw0jjrrbp5m20";
+  };
+  "a2b1b97c80248fb89a7ce7322cc399a4fdf3173c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/a2b1b97c80248fb89a7ce7322cc399a4fdf3173c;
+    sha256 = "1908grxgwb9sy4rd02jzc4zyi543dkxhynx0wkc0imfw4x2l9ixa";
+  };
+  "a2ce002a2a6a420e4c746eae8f553665e409a116" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/a2ce002a2a6a420e4c746eae8f553665e409a116;
+    sha256 = "021q59y3gi3f6ygddr736l75japm8zky3lz21z4bzik7kmirxq98";
+  };
+  "a2d4c282439a7d50a9b7005e9c3feb136cc093e8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/a2d4c282439a7d50a9b7005e9c3feb136cc093e8;
+    sha256 = "1wbn5yxpmfq5r20j9h27kpyc1v66a78dil39b83cpp4j7jkv687c";
+  };
+  "a333e2129a0a7518d47d81753d193ceecc5b881a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/a333e2129a0a7518d47d81753d193ceecc5b881a;
+    sha256 = "1ih9hbcsslfslb9wr1i5f2vk9746zczygn54lac2m108kf6y0jk4";
+  };
+  "a353e5dd34009fcbd0a5f9eced792d02ffd2cb97" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2710757-d76358e2c5474af8a7d14e3262b517a4/a353e5dd34009fcbd0a5f9eced792d02ffd2cb97;
+    sha256 = "1wf8zzpyp45c9bq2zwfcy5j33yj2gzf73zbfqcppxz89knyakic7";
+  };
+  "a36932c96e52dc3b154313d65c128fc6efa79367" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/a36932c96e52dc3b154313d65c128fc6efa79367;
+    sha256 = "1j2qd8j6sp3vj2rm8cxbli2d0l741i786widws427bddp1ma805y";
+  };
+  "a37744cecf38c8c2ca371eb33120654f8a53b5a3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/a37744cecf38c8c2ca371eb33120654f8a53b5a3;
+    sha256 = "1gi17xrvy9hl31z1bsxdq6awy93hllizvc4hbdc74xmpxdgnnqkx";
+  };
+  "a3891b8c154921b18b27b3c7915a8bab0b886565" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/a3891b8c154921b18b27b3c7915a8bab0b886565;
+    sha256 = "1ak3n4yyxpj34v9cjlglgpy0q292xrh7363p26xbkln39il8h51w";
+  };
+  "a3ea753b468f54a0a4c306c03130572f0ec0eee4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/a3ea753b468f54a0a4c306c03130572f0ec0eee4;
+    sha256 = "0fc6xv7d20c1nvzvw8dc1mwh1c51447y9fgl6z93c6xabvijc2q5";
+  };
+  "a3edc07dfea80da6d7d09067737fc4630c4bb81a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/a3edc07dfea80da6d7d09067737fc4630c4bb81a;
+    sha256 = "11wh3glqpficz5wj9cgif1kjpmcbziapza719gzadkcrjc1vasbl";
+  };
+  "a41d00077f02fab1c6a05e4607094b4eea3b6ad0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/a41d00077f02fab1c6a05e4607094b4eea3b6ad0;
+    sha256 = "1xrf0szqj7wxwqcw7lw43fpzqjq9lh3rr04jyfmnddasxd6qzfwz";
+  };
+  "a456f0111a1d9a6fb8045d0e5e9450b7c36f9374" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/a456f0111a1d9a6fb8045d0e5e9450b7c36f9374;
+    sha256 = "1p9bhg7sjvc70jsansrf9qa2wnxwk9dn4ic5k9jai9alcr48bjan";
+  };
+  "a46938a8170197df7ac0c8d9ca3c7e5aca696271" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/a46938a8170197df7ac0c8d9ca3c7e5aca696271;
+    sha256 = "01ipp4xnpgnnhlkqh1hpman6ifj77jij5b9mrra87dkcy83wd7j2";
+  };
+  "a4d7e28c74a63f10107957b9b6af00486f1e7358" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/a4d7e28c74a63f10107957b9b6af00486f1e7358;
+    sha256 = "19ldb1kdwiji7bwjz6fx8rak2dk8gpnvib5b3s3ywl0dxa85yv13";
+  };
+  "a507276db67feeb197bacced284be29d92bfb2b7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/a507276db67feeb197bacced284be29d92bfb2b7;
+    sha256 = "1a46d8km3ci1jy1hgq7mxcq0bhkd2n8bqrdd7x1nyybvh5r7hjn7";
+  };
+  "a561c854b1abb49bc710438edd6a17feb5370e73" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/a561c854b1abb49bc710438edd6a17feb5370e73;
+    sha256 = "0s9sw7kx3gj4xrckivfl2w2dvw2criwwm0bibh6dmajsj058pl84";
+  };
+  "a5a4b35f662228caee7476ddab2567611de6c35c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/a5a4b35f662228caee7476ddab2567611de6c35c;
+    sha256 = "0580qlzrvf1vw8rfncc50vyy9y5g79rwcvj8rjaxvdwmg1n4dpw0";
+  };
+  "a6287affa4b828301aafa84f7bd9ce71935997b1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2616691-982be94b99b442419e99de37630ca843/a6287affa4b828301aafa84f7bd9ce71935997b1;
+    sha256 = "06kdx9x2a4230k1c1b60cwkadarg62rnsbycgbqzhgbp6h4j8awn";
+  };
+  "a717434c111c75d501e35d8a5f4de2b75e299566" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/a717434c111c75d501e35d8a5f4de2b75e299566;
+    sha256 = "1410w7shpi913irx8b48mk7004vdsf0xa3hrh21bvd70askxn4ci";
+  };
+  "a74403ad656c7c68733bf1d09d994d0e8dccd94e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/a74403ad656c7c68733bf1d09d994d0e8dccd94e;
+    sha256 = "0b8kcrdcd4jmn2anxgd0x04szkf2k1gkqkl8srkbf4f5hh7aj27x";
+  };
+  "a744790bed001ed939d533b58c7d7132d8599ee6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/a744790bed001ed939d533b58c7d7132d8599ee6;
+    sha256 = "15gxpbd7p0pj67b1dwgnsq841zdfmzw27qvpzpg15nbdsm4bqknq";
+  };
+  "a7460f75270bd4946c7e856b9cba426bfd756474" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/a7460f75270bd4946c7e856b9cba426bfd756474;
+    sha256 = "1xl68yyf67zr08390y11p8il1g99crr9j71m7bqkps4sr236iv1l";
+  };
+  "a75892ec39777f5deec95c7ab34ac829e42f61f7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/a75892ec39777f5deec95c7ab34ac829e42f61f7;
+    sha256 = "1x83zbrnqx9856s515lqix9na8ir8991whgszbx84xjzs7507wag";
+  };
+  "a7675f8de766ef5fa71fd6c904b6000b880a463d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/a7675f8de766ef5fa71fd6c904b6000b880a463d;
+    sha256 = "0jmc22yiaw09cqx0wanyzbh46iblxpjzs9v1bl8hhicv360rq1ya";
+  };
+  "a7c85f34f7555c16973a534e2c21b5d0bf278e29" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/a7c85f34f7555c16973a534e2c21b5d0bf278e29;
+    sha256 = "1a7zbrmj2gdq61q2gw6jr6j3848mg85snj8hghmajndww1wspjlp";
+  };
+  "a8278a17fc9fa29308c59351a8c53b8330d33e88" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605188-b2b13e5f7b3d453eb5d6b0cde31b638c/a8278a17fc9fa29308c59351a8c53b8330d33e88;
+    sha256 = "0d391bz9b9c73xdnkxm3l8zyz1zjb6nv0vn5m3ihpgb7hkdgfxgz";
+  };
+  "a82d5d8a7e63a42fa0e2414ad66c400a3beb640a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2498161-1c427a8c10084d53ae743a11e6148406/a82d5d8a7e63a42fa0e2414ad66c400a3beb640a;
+    sha256 = "1cr9k5zlj9kl24ph9inczwm84rbch1vkvrkycs22yhqblgwf5zid";
+  };
+  "a84e9f4455088def00bab0652ca92a80ecce5e57" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/a84e9f4455088def00bab0652ca92a80ecce5e57;
+    sha256 = "1ks51i2490lymg2whdj1807z9asyl6gpsgbshw4bgdxd903aka1l";
+  };
+  "a8e8deae490071080b69408bf16c09b087801323" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/a8e8deae490071080b69408bf16c09b087801323;
+    sha256 = "1v0aaimfzl3f52cajgzv9v6wzjn4jpf95y40kalqbj2w7qvyzz4i";
+  };
+  "a980d01787b472fb299cc01e49a8a9da740ce81d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/a980d01787b472fb299cc01e49a8a9da740ce81d;
+    sha256 = "1laqjx21ik77p2xggii4pbcj7np9a6bpn8wlhivzk23zg0jnp0xz";
+  };
+  "a98192f145db4e2a545f79bc9d595f8f5c7fda34" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/a98192f145db4e2a545f79bc9d595f8f5c7fda34;
+    sha256 = "0kwb4jawlfvql1n1fbw04kqik33gmlzci7zc236gyhz4mhb86xd1";
+  };
+  "a98819bf37317dabf20f86b0fd6800a911717698" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/a98819bf37317dabf20f86b0fd6800a911717698;
+    sha256 = "0lh1288ab45p06082lb1a4cjh1k3gqmpxnbsilq5cgic98x7fwr9";
+  };
+  "a99daa4bfd46db4b416f47b4fc1972b221ea57e7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/a99daa4bfd46db4b416f47b4fc1972b221ea57e7;
+    sha256 = "1mk3s8g5vgjpmhw6pb14akvipbm31il3887f4qqgfxcdfgkj261h";
+  };
+  "a9c62ffacb1508452705b057c5f796573d47c78d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/a9c62ffacb1508452705b057c5f796573d47c78d;
+    sha256 = "0c0gm8yqkwbzbdlx625bng0hwg9l8fnwf02fkm7mai8qg2xbb76z";
+  };
+  "a9c93107f208faee20ff396148c3b9954b33aa06" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/a9c93107f208faee20ff396148c3b9954b33aa06;
+    sha256 = "0qrg2k8rf3ic7z9y0pv0mainwbqmhn4p5q6jajf08wndz2k3plr3";
+  };
+  "a9dfe0dbd869009eeca3fb67d49ce2c691877dc8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/a9dfe0dbd869009eeca3fb67d49ce2c691877dc8;
+    sha256 = "0i84q4qa7jp3yils2hi8qd9mp0xpazdmnr93739sqhd8wrvi3isi";
+  };
+  "a9f9260691fe2d9ade072d9589f478dbce491a25" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/a9f9260691fe2d9ade072d9589f478dbce491a25;
+    sha256 = "1bkkfvnxxxscv1rglxn9174h7zfa093j0ilq3wpc682hlihg1c7s";
+  };
+  "aa0999ac4a6e388aa9547c455a6ea08c98d7036a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/aa0999ac4a6e388aa9547c455a6ea08c98d7036a;
+    sha256 = "004gm6cfkrv1hccsqwd9qzby37rjjb5cmhz8z8a4wyr52vcccp6f";
+  };
+  "aa212839e3606b3a1bbb68c9c1353c627853d8d5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/aa212839e3606b3a1bbb68c9c1353c627853d8d5;
+    sha256 = "166y3z7h9ncjz34g9ljbch4knqgi8syhsyl1gkh5wnqwkhsdkyjl";
+  };
+  "aa40eee6849fd0b67b4a01d245e14e6f9cb562fe" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2481391-2b0dc74bc6d44dd4917420631716dc19/aa40eee6849fd0b67b4a01d245e14e6f9cb562fe;
+    sha256 = "1zhfxhr1ngxkigy2kbr0x19qa6bfh5jqh2kb04x6b5c5cl2rxnx0";
+  };
+  "aa7f77e42dedc93399b370b494f11d5cafe3ac1b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/aa7f77e42dedc93399b370b494f11d5cafe3ac1b;
+    sha256 = "0zj2dqfl1zc15i511n89g5gbjkxgr7ivsvjjnyxdw6pdcbx3820c";
+  };
+  "aa92bb8c104afa015ba28312d3eb02c006426dc4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/aa92bb8c104afa015ba28312d3eb02c006426dc4;
+    sha256 = "0xw13lfrl0nbhjr1haz9k5yf6vra4h2q72mf213h5aar0h2sfivl";
+  };
+  "aab7c2855fd330fbd2d86fae15fb7fc38e8117a4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/aab7c2855fd330fbd2d86fae15fb7fc38e8117a4;
+    sha256 = "1g615imqp4nvryqr7fzdg2xd62nv6nkq0n6a9s4vfl8di3hfywaz";
+  };
+  "aad648813ec7c3909fab2cba04e54a790f99d97d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/aad648813ec7c3909fab2cba04e54a790f99d97d;
+    sha256 = "1056xhjfdpyg3x778w33wmydzacgv24p9mrcsb0h1n09lkxbab5p";
+  };
+  "aadaaad6c3a74db06ec29a860e4cbdb518a7e965" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/aadaaad6c3a74db06ec29a860e4cbdb518a7e965;
+    sha256 = "1xyx0sr4vgbkyizvmjsykn3lg7mg0rgs3ha8xcvkn4m4wzhciwxs";
+  };
+  "aaf3a012f48b24c193628af42ef3302d96784c3f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/aaf3a012f48b24c193628af42ef3302d96784c3f;
+    sha256 = "1idl0rsr7waqbgydsbnlq7bl26s202arhzv5bzmcghy2jlzgavj1";
+  };
+  "aafb65596f063aac27c03ad64646b10e9cbd9e5f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/aafb65596f063aac27c03ad64646b10e9cbd9e5f;
+    sha256 = "0gmi9sd9sgzb1bmwgyaghslz2rxyba96qyvzn9mdxnh661cwnwsk";
+  };
+  "aaff771bff40e67acec754ff6a73103840091d71" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/aaff771bff40e67acec754ff6a73103840091d71;
+    sha256 = "15f92i5jph2hiihknkbyssif2gwlcm59vkqwj155c164g6fghdsc";
+  };
+  "ab091055311fa9bc429f0aacec0cc24290af3166" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/ab091055311fa9bc429f0aacec0cc24290af3166;
+    sha256 = "124wr5mfd3n11k6rdd60177hfjbjicyn57fccwzn2sxhq3rdxl7p";
+  };
+  "ab0a48b5c47c246a0d31750e9ae6b073ad35963e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/ab0a48b5c47c246a0d31750e9ae6b073ad35963e;
+    sha256 = "0ldkcyzq6jsjkb1w8qgrjjjz9sgpfa7syvmfnr4micv2jna867vc";
+  };
+  "ab0accca4b2e0942f55d408ed30bb84183371d99" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/ab0accca4b2e0942f55d408ed30bb84183371d99;
+    sha256 = "0j2pc8bpm3ikwzlkssgmbk1wcqskkbv9akyb07742vl034vzzc5z";
+  };
+  "ab199653d5f9dea6b89095016907a7ada2eea972" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ab199653d5f9dea6b89095016907a7ada2eea972;
+    sha256 = "0fk560jgq4avnlqvrj6y3qbd9r1zcyjxpvvpdcbwr57kqxqgki5d";
+  };
+  "ab1c1bb528f1ce09f2cd32ba886bdf658ee6ef6e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ab1c1bb528f1ce09f2cd32ba886bdf658ee6ef6e;
+    sha256 = "0jkdyzxqffi9zyfhi8pmh5z57z5cs4inn5cw92gbgh1fx760shx6";
+  };
+  "ab56f3655c7511b5ce622c56fc8f769b82720a77" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/ab56f3655c7511b5ce622c56fc8f769b82720a77;
+    sha256 = "10f5kb8yswwd8178104jz5ph7s5j3hzmicfggfsdmviw4760iplm";
+  };
+  "ab5d351cc1959e213540cc41dbe93cea75dda4d9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ab5d351cc1959e213540cc41dbe93cea75dda4d9;
+    sha256 = "1br599a6lsg7cq8a1zy7wicpjjmg1pvdmd9wph6xd4a4i5r5msh9";
+  };
+  "ab6ec6af0e90d693b32e063348193dfc34a5d608" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/ab6ec6af0e90d693b32e063348193dfc34a5d608;
+    sha256 = "1saj3cr67jik0xfak36j394irs648w4ws8yg1bzb2i4kxl4x4qjf";
+  };
+  "ab9668aa1cb36fe03fd80ec800264850f247911e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/ab9668aa1cb36fe03fd80ec800264850f247911e;
+    sha256 = "1z3sq5jnxannf084xrd5sgm64d54n5w4vhh2jcrch53vylkkf771";
+  };
+  "abcd992f6c90c47b9150148778b5e5dd0be366f5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/abcd992f6c90c47b9150148778b5e5dd0be366f5;
+    sha256 = "0sxcxwpz4xpxjnr5026xpp7m9jagvqb4ff0073r46a9jzp0y0nwh";
+  };
+  "abd31f5aa1a5bc7ad21bd97551365c4785a30537" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/abd31f5aa1a5bc7ad21bd97551365c4785a30537;
+    sha256 = "1si98cl159fdlqpqaagk3bsf8295nwbyf1x12fps78fw8svshhps";
+  };
+  "ac32cbcbb8641f87ce0f4e5e8ea11cdb33568e98" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2700710-7fab47bfec3142a7b4fa395fdd001748/ac32cbcbb8641f87ce0f4e5e8ea11cdb33568e98;
+    sha256 = "0vvxrykslg2klrfmg8nczaxb2picf30fiz19vnwrmkc2hdx8ipj5";
+  };
+  "ac90a77a8f7a8cffa48d869e60f393981eeb2ff1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2620418-84d187e8202a426594ec7cac6eeb85a1/ac90a77a8f7a8cffa48d869e60f393981eeb2ff1;
+    sha256 = "093cl6yhppbc6xqgfiy46rm2wip3cpvnkzxgff0k7bbb8chxp3al";
+  };
+  "ac98ab61a879076754296cafc03b793203fb6701" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ac98ab61a879076754296cafc03b793203fb6701;
+    sha256 = "1jcm9grs9s7prn4qxhpaw5np56g6s6k0z2xa8ky64i1c9rq0dyx4";
+  };
+  "ace785dacecc7b1203d5fd7ca358003149131381" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/ace785dacecc7b1203d5fd7ca358003149131381;
+    sha256 = "1i5aiksqi4hvjyzlrflh9v3dw9n4n4f38aw62flr92psnfy0ahr0";
+  };
+  "acf6558b1e3950d55a31da4e8614e4a357aa653c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2547993-1fb84b9e293242c988e586c599eeeb56/acf6558b1e3950d55a31da4e8614e4a357aa653c;
+    sha256 = "1gsdlhcwdd5dzl5qm8hsrgyg9bjmp0iyaa863fa4h40ammj0kg7a";
+  };
+  "ad4246832e88a45f0bdd6f9cafffd383ed378120" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/ad4246832e88a45f0bdd6f9cafffd383ed378120;
+    sha256 = "00g2y2p4aavw5bfc116k4qj49qkw2gprg4cxv2mnp1ldj9jh81fc";
+  };
+  "ad48b0d39c84ad3a23ee670e06d009fd1ef406ae" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ad48b0d39c84ad3a23ee670e06d009fd1ef406ae;
+    sha256 = "0a396fmil6q217fh2vr6wwm63wyq74j495dxj7y509swjsjf6zsc";
+  };
+  "ad735ce413f80f79900a87098c112c355b2269b9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/ad735ce413f80f79900a87098c112c355b2269b9;
+    sha256 = "1qgccwwrhkljak4xks9qnf0zq4j4q36n4134xs3nvmzbma9l6xw2";
+  };
+  "ad8485d0661bcc3b36bc884373baac7c82c1db1a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/ad8485d0661bcc3b36bc884373baac7c82c1db1a;
+    sha256 = "1w441r581slp32qhpnrpm2hacy3db8y7v5by2z0xycl2nfz25n1l";
+  };
+  "ada3dc17e0a699e9f0888f167ab43c95b9d087c9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610954-bd0fcbe6f0c748508fe9438073c40b27/ada3dc17e0a699e9f0888f167ab43c95b9d087c9;
+    sha256 = "0zzk3laz8wv0sd4gqc54p5hw86wvbjmy8vrdlq5hpfhg6z046cch";
+  };
+  "ada964ecffeda8e2a6db59b92272ea1e22dd17b5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2791326-4a233957ffc54c94b38c9ceaf84d58de/ada964ecffeda8e2a6db59b92272ea1e22dd17b5;
+    sha256 = "0s23ag4qfdy2h7cz7184i2vzbbb3bm3j3655vs8yb8gfjj1rbiyx";
+  };
+  "adb1f445a4a127969356b6635da51f637f54a0ac" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/adb1f445a4a127969356b6635da51f637f54a0ac;
+    sha256 = "1h5siwqpjjgqi695gsmbkdj4qx9cd3w4378i7w59dxv512zgkgrz";
+  };
+  "ade00d1c90e8988488643bcf563040510c4be517" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/ade00d1c90e8988488643bcf563040510c4be517;
+    sha256 = "07wc8b6i06hqp5mas7jjhs71ag0lb00z3w5gs25zrmz36ly898hl";
+  };
+  "adeb881928e136d07bc7684746ce44d02956f822" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/adeb881928e136d07bc7684746ce44d02956f822;
+    sha256 = "1bs2z2aw2pqiygq6ykznncfd029v483za1ii6sxbxdg59am4brii";
+  };
+  "ae2770ddebf925141015b1cd4b1bb15fe7ece06c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2659695-e878a65d22304b68a9e6878b07b5db24/ae2770ddebf925141015b1cd4b1bb15fe7ece06c;
+    sha256 = "074dv8w0rkv95qcjxrwsbr6imx41w5ywfx7vcd73l3llzdgfk46l";
+  };
+  "ae70c01ba3575e5558b7bde673a82e53494df34b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ae70c01ba3575e5558b7bde673a82e53494df34b;
+    sha256 = "14qd1wbnp3zkfb2ni0dghjbgca4w6c8mnh90f0ijfxwnywk1myba";
+  };
+  "ae8089d30509415ded81477eb41b29f55a431272" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/ae8089d30509415ded81477eb41b29f55a431272;
+    sha256 = "10y28v1pfxz5vdjxvb5kah2756lsl70z9grmda57l5wd4s9qmy91";
+  };
+  "ae874d3eb1af9a5081c94361a989f0b77e0ecf1b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/ae874d3eb1af9a5081c94361a989f0b77e0ecf1b;
+    sha256 = "1r3a0qndxy43pgwsjcc7ia3njip4zvh0419wbm502006amj07yrl";
+  };
+  "ae901fb15f84f70cf6979dafda0d8f5dbcc5c269" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/ae901fb15f84f70cf6979dafda0d8f5dbcc5c269;
+    sha256 = "1jipsy7d39z9qmz27ib75yixmgp0qqfazljgmisiw7kyii1m5fpp";
+  };
+  "aecbc01c44a31c0809a43e68b99e44ed1a66bd00" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/aecbc01c44a31c0809a43e68b99e44ed1a66bd00;
+    sha256 = "0vxvjjpr0hvivfsszf94ii8xl67xnb262mxfwm5xmml7472xzhsn";
+  };
+  "aeeedf07121752bb79af7caf8438e5c3d612cd7f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/aeeedf07121752bb79af7caf8438e5c3d612cd7f;
+    sha256 = "1dk4xvniy7cr3xss4s9nrbjgbmibbsb9s7plw20hlg0gzcyg24pn";
+  };
+  "af0b9f348ea115df7f34f8c6a13da31e75e76e16" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/af0b9f348ea115df7f34f8c6a13da31e75e76e16;
+    sha256 = "00y3h6bw7ljrnvy1d9fxff6ncsvgpqaj3hyp44q41w3xlwilsyq7";
+  };
+  "af0da89763358318771d8aefcb742e3416f57423" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/af0da89763358318771d8aefcb742e3416f57423;
+    sha256 = "18xak3xnl38n8mbqa5rv3m70595y36yy2l5rwlhy1k9g66lfvwf8";
+  };
+  "af313d299a6ace9cd07fe010e73680f12b0b5147" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/af313d299a6ace9cd07fe010e73680f12b0b5147;
+    sha256 = "151bsqly7rqy1isklgjvy39bnbxqd3vyjbqaf60lgs6h81ggj5fn";
+  };
+  "af32114b8b970d1d65271ed99052f0de3d4651eb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/af32114b8b970d1d65271ed99052f0de3d4651eb;
+    sha256 = "1pg0r81c1rg9r6m80k3907s77j9mqh8xy2zaym734r3zvjamwf54";
+  };
+  "af412e3bcac064293cc367941ad02eddcc3e5a44" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/af412e3bcac064293cc367941ad02eddcc3e5a44;
+    sha256 = "1gzy8vni5d61pp6v5ns1ykmg2xcgcrm6gd2w90bxgjn7fjxbm6y0";
+  };
+  "af915ecf45e7ce1cfbc694f16a90c5131e953240" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738466-c1f653d3509f461bb7b24e2d8451128d/af915ecf45e7ce1cfbc694f16a90c5131e953240;
+    sha256 = "192x7nbj1mkzvwcjmhaw65wpq0gkjsyx709dh4mkcrm6djw2si6v";
+  };
+  "afb2a10bcf6c13c0cfc4506cce58b6a4e8a8741d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/afb2a10bcf6c13c0cfc4506cce58b6a4e8a8741d;
+    sha256 = "0zqjqww51znppvgkgqinxa91zpwva3jwc8rd7x78f319f3wpka24";
+  };
+  "afb9d2946f9c3633fb9df0e2acc0f5a2cb5a7753" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/afb9d2946f9c3633fb9df0e2acc0f5a2cb5a7753;
+    sha256 = "0z2c3ac6ja8r82wr7fgbh6j9gpma7p1wxrwgqxdwysgys39z7dvr";
+  };
+  "afc1c36f600c80efcf810f3f49289880b32ab502" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/afc1c36f600c80efcf810f3f49289880b32ab502;
+    sha256 = "1clkj01cmpgx51zlqbypjdarm1anispwmch98y87gsmhpbgmgm7l";
+  };
+  "afd3591b1c847bb2dca52c7bab74b7f00043a210" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621658-dcc28ef36e554dd28b121fd140f310e9/afd3591b1c847bb2dca52c7bab74b7f00043a210;
+    sha256 = "1ymdczzqabd5alr8j3gmisrljfvdlncb79d8n62dkxkgp0f894ix";
+  };
+  "aff26a6b13744512c90c853c58676ace9431b24a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2612065-7518df1e66b64067baa9f5dbe835628e/aff26a6b13744512c90c853c58676ace9431b24a;
+    sha256 = "0g66byknihd0fkcd7h1bb7vbgzz8rsyjnkgf61sxbidxdis9v722";
+  };
+  "affb2ac1292b281f85114871becaf2e7a7adfa7e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/affb2ac1292b281f85114871becaf2e7a7adfa7e;
+    sha256 = "0s90sfpjphy4zs3ccwfhhxjh9irr0x4sijjg1k9r5ixzn19klb77";
+  };
+  "b05b1e539b6610459cb8b45e8d0b48d4de00fa44" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/b05b1e539b6610459cb8b45e8d0b48d4de00fa44;
+    sha256 = "0ac90aqnhkm3dvcm5ql5wg959v8y7pyjibppgran58sf0jph91v8";
+  };
+  "b08e33bfe04cad899bb61fb3d822e79b9203df59" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b08e33bfe04cad899bb61fb3d822e79b9203df59;
+    sha256 = "126xswxfgsv1yp33hvpxjfk4m22j3dvs4dhr83rpwqvyw139bxc8";
+  };
+  "b0ad17ab6dad98419386251c9553b4a5d0a73fad" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2597177-394deee1ae174b2db1462326aa83252a/b0ad17ab6dad98419386251c9553b4a5d0a73fad;
+    sha256 = "08rnn13hqbz2j70ldigc3ksa99jmc8gg9x5a2am545s5qw6p5myr";
+  };
+  "b0b3d44fba913897d01ea2ef6e8089c64f988ac6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/b0b3d44fba913897d01ea2ef6e8089c64f988ac6;
+    sha256 = "0lq9vbdkw3cqn0w7zd78n1wpnldxkr3azp02786gqrcx3lgwxffr";
+  };
+  "b0f0802f90e19b137dfc3482c478ce06deda9019" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/b0f0802f90e19b137dfc3482c478ce06deda9019;
+    sha256 = "0ivpnd7z9pl4pkdxsmfn0qnxh5ny19zxh2jvsdkwzj6qk49r7w8x";
+  };
+  "b10f9ee97120ca6711610befa4e7fab7977b88e9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2791326-4a233957ffc54c94b38c9ceaf84d58de/b10f9ee97120ca6711610befa4e7fab7977b88e9;
+    sha256 = "0mf5w54jw7vsk1l8x613zhq9060cd6xj03cjk93pbmkizvy0hxc1";
+  };
+  "b1554d1196eebddea596b1a7274981d7a2670be4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b1554d1196eebddea596b1a7274981d7a2670be4;
+    sha256 = "0rsf740756cc4samd688c81y49fsw1bkiipvahpj1h4kpqys8w4v";
+  };
+  "b16036ff8aa037d50175f1e65bd5504964b26e9a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b16036ff8aa037d50175f1e65bd5504964b26e9a;
+    sha256 = "034rljnxdmy11xhr3rpgzv4sdab87z3ybbrww0gvl0av3chmga5g";
+  };
+  "b176340bbc5d5b5bac78f855162c5a3ff0ba19ce" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2615502-35e684f430004977ab5aaed43a0fab81/b176340bbc5d5b5bac78f855162c5a3ff0ba19ce;
+    sha256 = "1ckgycqh4s28c0yq593d8405cz1g7pnmjpnnfvn3y8gn0yh8qb56";
+  };
+  "b176ee25e0ebb7afdb44613dac3f4254dc99ce2a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/b176ee25e0ebb7afdb44613dac3f4254dc99ce2a;
+    sha256 = "0jb1vsabmj29s03ghc2g48r9sjz2h4s96lvhkf6xgfgqi26nx0vq";
+  };
+  "b17f3e987930d01e04a825ded615a345c7af5ef7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/b17f3e987930d01e04a825ded615a345c7af5ef7;
+    sha256 = "1d4ibb02h26i5za5z7a9sj2cirvz8y93h2jxrb0llq9hfazzzgpv";
+  };
+  "b1bc628c3ffbbceef6e1ef0dfb467b793da712dc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/b1bc628c3ffbbceef6e1ef0dfb467b793da712dc;
+    sha256 = "1li9rf71003ixz42k3gcavfnnjjfgbp69qzxmddv7w8iykas5vli";
+  };
+  "b1cdfd2a0b486252f482eca80d3408be44b15168" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/b1cdfd2a0b486252f482eca80d3408be44b15168;
+    sha256 = "03ipjskn7j0ar4hz9n9w8r6m1wp3ag35n21sx3v594b332ma25cg";
+  };
+  "b1dfb94e146a98148e1f9ba9a56d7114a84628a8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/b1dfb94e146a98148e1f9ba9a56d7114a84628a8;
+    sha256 = "09imd5nsrina53my95vsd4jm9400qz0kc7vik3aafga9648h5nj6";
+  };
+  "b1f44610d6ce19e42537f436c4bfc70e275b432a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/b1f44610d6ce19e42537f436c4bfc70e275b432a;
+    sha256 = "1bfgybl30pgmjzvxiisy0bm6anh2nif2gc67a43ij0gxmbiigwyd";
+  };
+  "b20c27d04963b4b8e0c5dcfd81e51dfc59e30db2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b20c27d04963b4b8e0c5dcfd81e51dfc59e30db2;
+    sha256 = "1sfrx4dnqmp5d7j7xid8p0iv6fglbv7zsas1d1ig0knda2gc5c05";
+  };
+  "b24bbd337d9a9cf1085d4cd1df1e43e928749b90" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/b24bbd337d9a9cf1085d4cd1df1e43e928749b90;
+    sha256 = "0qsi9g0vn6q49w8xkfghkrjhb32jczinnjiyp5isyb19802zc6vm";
+  };
+  "b2b40485507860ae0f1ba756693b78123347a60b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b2b40485507860ae0f1ba756693b78123347a60b;
+    sha256 = "1y9i6ly60x5cyqf429ay00sy3f796ha65wcinjvsmixpgsqivm8h";
+  };
+  "b33175575bd5fbb07b2308fa24fbf8f548763435" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b33175575bd5fbb07b2308fa24fbf8f548763435;
+    sha256 = "120489jn9bnsj3v4v6icl3pvcpzm27g3900l3k8f263b8qz52jpy";
+  };
+  "b33dbe936d08959ce00d8d551c9861052b05a0e3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2468936-39e1c39556f84e60be8d850c452aed67/b33dbe936d08959ce00d8d551c9861052b05a0e3;
+    sha256 = "13l63iipsscfz4iqm9jsp68y0w1l2pmmg2skv5mnmlfm4ryq5dc5";
+  };
+  "b3643e64562cf8928fe74794820c500f305fac17" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/b3643e64562cf8928fe74794820c500f305fac17;
+    sha256 = "1gy3p72p0v67psb8n5gqmw6skxavcamq7c5i3mgc5pmys2jmspqd";
+  };
+  "b386d93988dde07a87de09757eacd3a2ecfd6202" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b386d93988dde07a87de09757eacd3a2ecfd6202;
+    sha256 = "1nmsqsm0g8zz3x4x5h3m2nf5ii5cqpr5x3kpcs5x9dpcsz1z5q9f";
+  };
+  "b3a267c43c45f392523e300a6f61318f4ae52d99" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/b3a267c43c45f392523e300a6f61318f4ae52d99;
+    sha256 = "1grivshi7cgmin5cab447s30byjlapnlcg010assxx36vgkhpihp";
+  };
+  "b3ba54dd3b4a9c7c235223aca9ad7d6007559484" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/b3ba54dd3b4a9c7c235223aca9ad7d6007559484;
+    sha256 = "15as68yknbf35zv5638qfc8j4pwry8zbmhn8k0ycjzyi7c5gqqpv";
+  };
+  "b3df044bb928c0123e3067b6ca07bc8db2c7c93c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610298-3f4939c916b54d799ac5de807895697f/b3df044bb928c0123e3067b6ca07bc8db2c7c93c;
+    sha256 = "1zcc27kh9mwhawpkfxishqhkngwp0ixasw091g0ydxvsawq7wikb";
+  };
+  "b4179284c669b70deca0e515159443b89dced17a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b4179284c669b70deca0e515159443b89dced17a;
+    sha256 = "1yi9jlqh5chhq5zrsi6581d20hy4wva56dwvik7p5azcwkv7jh2i";
+  };
+  "b4411a92ba0b237e9dee0988897930e64daca1a7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/b4411a92ba0b237e9dee0988897930e64daca1a7;
+    sha256 = "17ffzs8zmcwf3znbc8jzja6db4kcgj4mnzf90g061k6bx29rrnxi";
+  };
+  "b44f92d2adf2245433cfea594b8718a8a1d0935a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b44f92d2adf2245433cfea594b8718a8a1d0935a;
+    sha256 = "0r5mqhyn811cbwspbi6l9yssx2w8pg6brv52g8qhwjiapr70p6xf";
+  };
+  "b453a1dc5c79a3ef309710fa63d80177fdb4c947" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b453a1dc5c79a3ef309710fa63d80177fdb4c947;
+    sha256 = "0c331fw0hzzh15b0s1i0x52bmdlwwzyjxr9gj1rflm9i0h83xqk6";
+  };
+  "b4815536b7d3c4f5a1a07bf7a0a85f780d0a9a8f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2616691-982be94b99b442419e99de37630ca843/b4815536b7d3c4f5a1a07bf7a0a85f780d0a9a8f;
+    sha256 = "18r4lblc3zg86sfj27izlbgjdap2aw1hhx64s9aykj32k0slhq3k";
+  };
+  "b49270a6fb0733c3b9a3e6627fdc96c5b2b400f7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b49270a6fb0733c3b9a3e6627fdc96c5b2b400f7;
+    sha256 = "11v6h8xgr5lj7x8aakirdny73fsdidshg9ijhck7lq25sqrpg681";
+  };
+  "b49ba6bcffb62e7245700758aeb276ae404637e1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/b49ba6bcffb62e7245700758aeb276ae404637e1;
+    sha256 = "083hj8s2ihr85gb1lpy6zy2xfd7ilr3yr46jvv62i2v8v551y2ri";
+  };
+  "b4a7011b1f4b663e34e08b5caa1fe927463eb914" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2615623-07d97909df1d48be99bb54a411313382/b4a7011b1f4b663e34e08b5caa1fe927463eb914;
+    sha256 = "1442aqg7ds4xxq80jsk7y2bhj2dgnm4bk8ma0kcdhy8qnmhwwvz3";
+  };
+  "b4b01b3870e9301073475bb924e5463d76e87c0f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b4b01b3870e9301073475bb924e5463d76e87c0f;
+    sha256 = "0720v8f1mgqrkxgdk85w3bj68kai90xy6i5gc5b9sbg3dgw1giss";
+  };
+  "b5b76e5c16852517072b42a8cb51945d692252b7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b5b76e5c16852517072b42a8cb51945d692252b7;
+    sha256 = "0cxz5vh3j0mf2vfr94v535zl3aa41m0ynydw3phmi45nws9rqck1";
+  };
+  "b5d004587689d2ebd79e34905d174a376e575f5f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/b5d004587689d2ebd79e34905d174a376e575f5f;
+    sha256 = "0gj82721n05pymy3fpghics0v2pi5ck1liqv0d6976y89anz7vlj";
+  };
+  "b63ccd1617b08574d0129948ec7ad1e48f94a220" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b63ccd1617b08574d0129948ec7ad1e48f94a220;
+    sha256 = "1i1l5aq5da080145qxraaj8mh5hpjwk3l6cdl1k3acn3y8rdyb27";
+  };
+  "b66bb0fd25eed1110f4b97f5f4c3cccd294cb884" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/b66bb0fd25eed1110f4b97f5f4c3cccd294cb884;
+    sha256 = "166m1j21yq89qpf3g8h7rdkcdzcnhcj6aps29n5yx1zgay6kq9sd";
+  };
+  "b66faabd2faed41ddcfaa83fbc45e1c038712800" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b66faabd2faed41ddcfaa83fbc45e1c038712800;
+    sha256 = "0lg35984x9q9y0binxrkdwnj4c910nj8wj41bsggwsmfdxz3vi1b";
+  };
+  "b6774cdd5b050cfcaac3143c0a8f89705c6bde71" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/b6774cdd5b050cfcaac3143c0a8f89705c6bde71;
+    sha256 = "0xllvgabdrafyy0gh1plqnzbr9lwxw5xn357dc4bpz7a8nllnzpl";
+  };
+  "b6aa88050eb1fb1e9317e28c1342c6ea4ab7dbad" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/b6aa88050eb1fb1e9317e28c1342c6ea4ab7dbad;
+    sha256 = "1yxxvjhrj20m6jj26y53azikjw1jmdb1sc0l5876bkmwadl7rkyh";
+  };
+  "b6e51c5ce4619cf24deb50699e19457246a65fde" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/b6e51c5ce4619cf24deb50699e19457246a65fde;
+    sha256 = "00q6pplg3rq5wy73nj9gi0h14dvcnvsi0b51xbbbsvd6qnpgf9in";
+  };
+  "b751385c56ed5ce096df337d0a736bdb517071c0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2468936-39e1c39556f84e60be8d850c452aed67/b751385c56ed5ce096df337d0a736bdb517071c0;
+    sha256 = "134snqqpd11yd05jgw199fpv41pnw94kh8fig3gmkv2rc0ppdrqc";
+  };
+  "b76100c79e2052b6a9156a3a3b44dc46b73ba80b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/b76100c79e2052b6a9156a3a3b44dc46b73ba80b;
+    sha256 = "02igaa6r8rs8qk7235jvbryycz2v3cl4pd08ifwhg471w65zrwz9";
+  };
+  "b774b3a6af176fe17e8988b8ce8aae6fac0081c8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/b774b3a6af176fe17e8988b8ce8aae6fac0081c8;
+    sha256 = "1vjz9m66hfr3anm75vfb815i0al393rq0y0w0nbi8l5nxayl2fr4";
+  };
+  "b792f771ba89b6e97aa0da38cab7975e31240901" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/b792f771ba89b6e97aa0da38cab7975e31240901;
+    sha256 = "0wjqqiaj00ngyl6mzxqqpk4jbb4xngk6zcahs9jgiiwvr0fs31gr";
+  };
+  "b7cac0682cd1b758954a6990731d98ac60e931f4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/b7cac0682cd1b758954a6990731d98ac60e931f4;
+    sha256 = "1sjhah3cj62frm38rqs3v3mm0jmab39qx0ys39kgq15wl4gyhrs3";
+  };
+  "b7d98916d7231a6cc8fa4b5ba6d9a123af873b7c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/b7d98916d7231a6cc8fa4b5ba6d9a123af873b7c;
+    sha256 = "1y0iwjm5hkwqxz17b69xfvl200nsyf86i2fdm4kcyf8wq99a905r";
+  };
+  "b7e5e66ec2b311c32f25563c90d3883eaf9d7f01" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2386906-35f20c2d3732491bab9f172643aaf695/b7e5e66ec2b311c32f25563c90d3883eaf9d7f01;
+    sha256 = "02c5s02nj5zab4w019bawz9xf3z253w2kjwsnxx0pjzcgzn5dsic";
+  };
+  "b8063b5f31f092324c94ccf41e3dbbca020714c6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b8063b5f31f092324c94ccf41e3dbbca020714c6;
+    sha256 = "0sx6wmnjqmka3838541dwi668lxdyf4z8ddyy3x94qcg7xr67hx8";
+  };
+  "b8147ae4f4e48c66013e2ce160e307bdbf8bb643" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b8147ae4f4e48c66013e2ce160e307bdbf8bb643;
+    sha256 = "0p9sv64h64pjq8g2p2wb7yvmfma1d3dyp1p26vq9pxyx5vaj6c0h";
+  };
+  "b8280b60d889420165c4849a608f2f77a636a96e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/b8280b60d889420165c4849a608f2f77a636a96e;
+    sha256 = "0vqj80qdwi1dfxgijzjgk9wwfkvf07khgyjjw05801vkkjj75nyb";
+  };
+  "b832b94004977756477412eec3019f6cb37e62d1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738466-c1f653d3509f461bb7b24e2d8451128d/b832b94004977756477412eec3019f6cb37e62d1;
+    sha256 = "1vja9zxjlil78d20bmwq1cnzb99q2k3g2g75bpz51v6g5smnwwzm";
+  };
+  "b8394a23db9e6efd8594d13cde39d95e60a2b46d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/b8394a23db9e6efd8594d13cde39d95e60a2b46d;
+    sha256 = "199qs2a3ii5353ijcg7vrd2qjz1ig0zs58qpywjkqq5gcx1h3d3a";
+  };
+  "b8692885cc79308225c50faa58244e7006dadf91" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/b8692885cc79308225c50faa58244e7006dadf91;
+    sha256 = "0dmjw6wr6mb0y6ika02fnqngk9lghkm4hdwl2khlhzp25hn2ki6f";
+  };
+  "b88c8f32e5693eade30c534bf94f295df40e1d87" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2474673-cc4b4abcf8d5453d9c14a5ad304063e3/b88c8f32e5693eade30c534bf94f295df40e1d87;
+    sha256 = "0br9zqlnczmdcnay2lja9j6wahsi13182jvd823q0c5rz8r7y9ha";
+  };
+  "b8b07927a65a87a42232ceb51c98a8b5d6893348" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b8b07927a65a87a42232ceb51c98a8b5d6893348;
+    sha256 = "03kgb1qbibsrhf1h1xx6zlm0dckjymxbjkd0rr3r896xg10rgr5i";
+  };
+  "b8ddc52b5bf66003c85e7e259287f4741bfe8119" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/b8ddc52b5bf66003c85e7e259287f4741bfe8119;
+    sha256 = "1207ryz0lz26nw1vjnhicxn94xzf6i55h312xqgl3w1mz3l6m4pw";
+  };
+  "b8e153475935a408d91ca55c8e98030d5cc99ceb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2435859-13d694fe2b4f4b1b838326ec956dab4d/b8e153475935a408d91ca55c8e98030d5cc99ceb;
+    sha256 = "1rv2kj03nacyhh3bddn2vsvh98ld3f1rizx71hg5q5qx5ikihabp";
+  };
+  "b8e9ff6bec00725cf169b237001ce72af9342600" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/b8e9ff6bec00725cf169b237001ce72af9342600;
+    sha256 = "19cv6afmrykdhfwci6532yx560pc1l6a4z9k7fjh2y9zcgz5v38h";
+  };
+  "b8fd57460311ef331feabf98c510f76f80053855" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/b8fd57460311ef331feabf98c510f76f80053855;
+    sha256 = "0xki6y0slv4g5wg8z323pa09z2s0v14pkmkas9h7j1z8jh2wczwi";
+  };
+  "b94c9f0d77457d47a979c48f936f9be3c11930e0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/b94c9f0d77457d47a979c48f936f9be3c11930e0;
+    sha256 = "1nlg8bv50idaxxhawrxnwdr9s2cq31ac46s383lqmnxmbiyinx9q";
+  };
+  "b955f5ba1db0d7a6f27b22a2a79e008593d687e4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/b955f5ba1db0d7a6f27b22a2a79e008593d687e4;
+    sha256 = "0ywsp3g116w2cbavbm6hiv6sm60zm74lix5j1ipliq9nlkkjfd6a";
+  };
+  "b9e5928d9d628a4f6a0795a3f4947e59fd82874e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2468936-39e1c39556f84e60be8d850c452aed67/b9e5928d9d628a4f6a0795a3f4947e59fd82874e;
+    sha256 = "1p3sb9hzqi7isqpw3a4mzra1a56qrzvhrsc483qb8dpj85a134cr";
+  };
+  "ba2567e2e68ba6bc101c3614005d68fd1d0ac2c0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2624272-fa13935f6af5491e88fc623f350f6d60/ba2567e2e68ba6bc101c3614005d68fd1d0ac2c0;
+    sha256 = "055hiysma8dhw6fxclbc87s8r24sqrs8hddri0alc3x3ckgx1xvr";
+  };
+  "ba59a62dae63fc2d143e0cf4c7c65185055b6cfc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ba59a62dae63fc2d143e0cf4c7c65185055b6cfc;
+    sha256 = "0ds72np4k5a83wdianr988wl3l83ml4mmrv7xhq7knmxga11zgww";
+  };
+  "ba6332a94c99ed09c2a9e428e54763da5b1576f9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/ba6332a94c99ed09c2a9e428e54763da5b1576f9;
+    sha256 = "0hq06wfzqwddzmji8iwl93gn1h7bsrm5wydfhd2jdkvbchdjrng9";
+  };
+  "ba6a5b201e1374856d563e960e0a5f7a935cf37d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/ba6a5b201e1374856d563e960e0a5f7a935cf37d;
+    sha256 = "0i3lsazrz4d5y8k4569jc9qyr45r5mkp1bkm705ah2ykli1mwvgn";
+  };
+  "ba8f3a342d5ba472b330c322376f9f3d7921dcd3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/ba8f3a342d5ba472b330c322376f9f3d7921dcd3;
+    sha256 = "1m04gn311csvzbn4qmass7v0zpwgc6gb9bh76xk1nqirzm1sqjjx";
+  };
+  "bad3d27e656261f89d7bfe9409032b1623077a17" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/bad3d27e656261f89d7bfe9409032b1623077a17;
+    sha256 = "0j6q8pjr2iazpk2ljdxaa0f4m4nsw1bvgpqbnl3l7s8514r98yj5";
+  };
+  "bb049becabe678eba91b10ef8dceac666811ba85" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/bb049becabe678eba91b10ef8dceac666811ba85;
+    sha256 = "1gzd6j43gq4w5zrib4ww8ipdhkh8zmzfkiq55wwmfk6jpqqxyaxv";
+  };
+  "bb258d693db2159bec8923eb69e53769e0082936" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/bb258d693db2159bec8923eb69e53769e0082936;
+    sha256 = "0pgvj37zvrrxrpkd3a3iwp7d2kyd5c854vsbksq24cpjbdmdiazf";
+  };
+  "bb2be5134bddeb480f0a728bd702988afdd4811f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/bb2be5134bddeb480f0a728bd702988afdd4811f;
+    sha256 = "0z85frk7i22ql1flrnyipp5vwlyy2j5fw6nyx04pjhv8i0d86ims";
+  };
+  "bb5ab39ad700a8ef35bb3bbd27b4c382839c69ea" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/bb5ab39ad700a8ef35bb3bbd27b4c382839c69ea;
+    sha256 = "1p8q27cjb4mxn8y3x4l61z880bxs0swn6a8zgrmyzdmcxxnrkbck";
+  };
+  "bb77f99554309b937e1c3bc3c0569d3ef0568a00" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/bb77f99554309b937e1c3bc3c0569d3ef0568a00;
+    sha256 = "12kyhxb2sxk0n0j7xnsqccrmf6svsblpmg9hgx5p84qr1wwi3l8g";
+  };
+  "bbb17328cc23f4bf942377d41807a13a7b852229" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/bbb17328cc23f4bf942377d41807a13a7b852229;
+    sha256 = "13nj59zrhss1z8czcahqsljdgjbpcrn7ajyz2v0nvhlxv5zvqk56";
+  };
+  "bbcf231dbaac1a61eba6aa76798c72923c7ddc56" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/bbcf231dbaac1a61eba6aa76798c72923c7ddc56;
+    sha256 = "1zqi6x73wj86nzsnq3gc19f25s0hzjc72zhhn3k2mmmzg6c5rk06";
+  };
+  "bbd3ed12cac3a5812ed814525f0d0018011bcd2f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/bbd3ed12cac3a5812ed814525f0d0018011bcd2f;
+    sha256 = "13k4nj6cls0bm9fbfznanlpaxi6rf5cl96fjzdh5knakhr5pg4vb";
+  };
+  "bbdc2b6ed549549505ee1860ea5068ae5bfc7db2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/bbdc2b6ed549549505ee1860ea5068ae5bfc7db2;
+    sha256 = "04vf62h854l2bby4a101c4wcngvzh04n0agv8kckjbxd4484kqkh";
+  };
+  "bc249eda4e4d0e13fd0e6a660e8cb471ace80c0a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738466-c1f653d3509f461bb7b24e2d8451128d/bc249eda4e4d0e13fd0e6a660e8cb471ace80c0a;
+    sha256 = "01saqqwf52fg5cv3cbf7kx80pa5lp6n70wjc1vzkx322sz1d37wc";
+  };
+  "bc927fee31049f8467d1a02704ac805cef57cb71" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/bc927fee31049f8467d1a02704ac805cef57cb71;
+    sha256 = "03zny0fk95qr83wrdhhnb6knygc8m4y4z1b45m89gvxjz3s7qz9g";
+  };
+  "bca8b698f2e07aaa627a4e94587fdef669602b23" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716370-1fe4be93d0274863a43a7797419557e3/bca8b698f2e07aaa627a4e94587fdef669602b23;
+    sha256 = "1rdpv3fci2l9q3802wajkr1b8as0g17g1mnzyzndsr68jwafn4sf";
+  };
+  "bcb92df46de5890dc5538dd7f0256a6504653c01" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/bcb92df46de5890dc5538dd7f0256a6504653c01;
+    sha256 = "1rfdcc2ap488hr67sbpdafc3g4kpxhqv49yjqm9aygj9pb237amw";
+  };
+  "bcc1b9fa37b696e2b1e09da24ada79401007ef3b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/bcc1b9fa37b696e2b1e09da24ada79401007ef3b;
+    sha256 = "1g113bj35nm7nm0xabfdsrbx5p02cqynp2xr5m656k3iln0q57fg";
+  };
+  "bcc352fe44e93b30ce97deea8345406542f840d7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/bcc352fe44e93b30ce97deea8345406542f840d7;
+    sha256 = "0m5vf9x58s47bm4x1vrrs0hrv4pjiy1a6qxx36qrsrqfv6shb6k0";
+  };
+  "bcd0cabdfbee7db486a249459af2c96bbe597c9b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/bcd0cabdfbee7db486a249459af2c96bbe597c9b;
+    sha256 = "1gl16fgzp7ljwablwn7n7l6d27m2vfiwycwpqag3nmvcqmsa236c";
+  };
+  "bd11c74bd2655f16eff2974a9ea3299f642a52cf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/bd11c74bd2655f16eff2974a9ea3299f642a52cf;
+    sha256 = "168rzxjij3dpqjymrqyqqgablffs3mgqfhmi4fnd31mpq1cmx7lf";
+  };
+  "bd969e12b2d210ce0b8817860e18034a3a30c510" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/bd969e12b2d210ce0b8817860e18034a3a30c510;
+    sha256 = "0yal1m4cpkd4nqfarccf5z7szaz46k1cflv9v0797dlk81zgrwjh";
+  };
+  "bdd022a7d16d25b6d56f693ab8ddb909273da156" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/bdd022a7d16d25b6d56f693ab8ddb909273da156;
+    sha256 = "1zqrs5nan5ipaxf392f25ynyppxfc5zq9nafq15ic4z7a5az2nz7";
+  };
+  "be2367fa9ac1bcb508f247e19ea18ae92e277583" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/be2367fa9ac1bcb508f247e19ea18ae92e277583;
+    sha256 = "1pffz2clg1ql5d14an4y6g6i148vxiai2kq2hzkbvv23hgmhczlz";
+  };
+  "be250ea55f51ad2bfa64247db8ab7f7ba22bcc99" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/be250ea55f51ad2bfa64247db8ab7f7ba22bcc99;
+    sha256 = "1hrj2ggi584mlc8nxpniczsyj4xcgygf3adi7xql5vmmb5h8gvim";
+  };
+  "be6492e4410913060da03bbab7fc0ce412e8bb38" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/be6492e4410913060da03bbab7fc0ce412e8bb38;
+    sha256 = "0mpw68bffg01n0g5706nllhck685n32fy1fbg4fs6hk199ddz252";
+  };
+  "be6c1ac56f7b742b9f733b29f46549c5b46f7644" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/be6c1ac56f7b742b9f733b29f46549c5b46f7644;
+    sha256 = "1m4kszd8nqb7xwgmbf14d5ndfpjf1li2w7wsg00km3d5plsl1458";
+  };
+  "be8aba4af0c0804bb17d6ce660ccc3973fb6c35d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/be8aba4af0c0804bb17d6ce660ccc3973fb6c35d;
+    sha256 = "0y77nmzw5hg874iw4y69qmyiz5xg0kr685gprs4nhx09ia4j0c91";
+  };
+  "bee8e68740f8d36a56d9f09e880ff29b5adf0496" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/bee8e68740f8d36a56d9f09e880ff29b5adf0496;
+    sha256 = "1xkdq0792shkjmgf48j4cy4pf3d710zx91g2xmbjfax892n5k1lc";
+  };
+  "bf03069e8d65f6b224763824352cf754ebcbc339" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/bf03069e8d65f6b224763824352cf754ebcbc339;
+    sha256 = "1kv8kfwh0bki0zdfimhkrhib56p2bj02by25dmhqvg39r480rs36";
+  };
+  "bf03cada636a04cf211c2e10d586f47b2dda7902" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/bf03cada636a04cf211c2e10d586f47b2dda7902;
+    sha256 = "085zw12vjkdg9r3lki1wnzm8981d7mlzvsgihb7v34zh77idy2vd";
+  };
+  "bf30590744b68cebf21b6124ffdccdf6964f7163" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/bf30590744b68cebf21b6124ffdccdf6964f7163;
+    sha256 = "08dd0mg3p60gmzqh0dyfj65icyaa7q44daidqwdbd62h9yxxf9c3";
+  };
+  "bf49c9dd965903acaa8c00eba5613c4de5fe0250" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/bf49c9dd965903acaa8c00eba5613c4de5fe0250;
+    sha256 = "08ga8yhh586h0yc0i2n3a28wmwbzlhz57va40rq269dx93gap3mn";
+  };
+  "bf4dda70b776a7efb6c3302f7abb3d24e90652d7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2579917-73d6be760fd9486fbc9abe582732eb6e/bf4dda70b776a7efb6c3302f7abb3d24e90652d7;
+    sha256 = "0m11crr85b0315yvb4n4pwvzg24zdwgqzw0c5yf1kvjdzkm1z8w7";
+  };
+  "bf920c60bfd2a78e29432783f56c62f419515f85" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/bf920c60bfd2a78e29432783f56c62f419515f85;
+    sha256 = "1rvkpgzckmwrn4bndlq6zc38kc0wj4y6lv0xv26harw3z467fzbp";
+  };
+  "bfed7e9e92de3969ace22aefdf5d85a45b2068c5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/bfed7e9e92de3969ace22aefdf5d85a45b2068c5;
+    sha256 = "0srdb9aahfik14g4s2b7j6ff73g139iqx36fnm86nalf09digdnp";
+  };
+  "bff70448477367ce462c3ee06f051b1f047549ad" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613445-f4cf430b68ba4dbf80d97361d7c5dd6e/bff70448477367ce462c3ee06f051b1f047549ad;
+    sha256 = "1z2jva1iph244fay5f84srg2wpji4gyfv6qss3130i0yzwlbkpqd";
+  };
+  "c0078092106c7019d3c1a17afb492202a59101b2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2468936-39e1c39556f84e60be8d850c452aed67/c0078092106c7019d3c1a17afb492202a59101b2;
+    sha256 = "0k2i5d1lylbjq7wzi7hzazq5hhyiav9yjpc5y26dz5d2l06nc43i";
+  };
+  "c007855aa7a0479a01364a56f831920abf69f840" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/c007855aa7a0479a01364a56f831920abf69f840;
+    sha256 = "1cjd5amlgpgqr7fm98g515qd3hl169mw4lg7i7hv9h4d6jrynxrh";
+  };
+  "c02b5a7580fbfb67eb000c6b641d7431e90ce87f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/c02b5a7580fbfb67eb000c6b641d7431e90ce87f;
+    sha256 = "1iri4r9nrv07sd060d1iy31pp584svm3470rxb0a82wdifh592k5";
+  };
+  "c0476a6a0442712d3245a0babbf62c40e8e75b95" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/c0476a6a0442712d3245a0babbf62c40e8e75b95;
+    sha256 = "134j96dp2yy1n19mbh15cdbwwfi5kfi37bb36vc3jbpbispgbiw7";
+  };
+  "c05811bfedda9e7307a79810ed22e36c9b1e3639" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2728442-495b054ed4db444082c281db65b26f74/c05811bfedda9e7307a79810ed22e36c9b1e3639;
+    sha256 = "11jrzgkzjhnvzl26rq4cg64rn1w354fivkp0kmpn4l323ih89hlw";
+  };
+  "c059220dd6a95113a01bfba79f5ed3d5e1766535" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/c059220dd6a95113a01bfba79f5ed3d5e1766535;
+    sha256 = "1hlhsmrqkmivz7cgsj1r7g041fkgjqvff5dcafm6zfh9invjminv";
+  };
+  "c0890e191c0abbf571bc8e71dd0996ecee557a66" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/c0890e191c0abbf571bc8e71dd0996ecee557a66;
+    sha256 = "0gnmkajymhhvkygd35qbqbdfza3msjpsziwapr4l7fkzwn9nw4b6";
+  };
+  "c0c041729c29323273ff25722a4fde1aa90a2b9a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2388509-1346da53605048a5b86087c481124153/c0c041729c29323273ff25722a4fde1aa90a2b9a;
+    sha256 = "1kg32w0qqnsz45fpwj9vqcnnvn03f6m7ngswi5gni3asg3xxnlfa";
+  };
+  "c0c56d20bbce88d3e626d132185502535d37ae8c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/c0c56d20bbce88d3e626d132185502535d37ae8c;
+    sha256 = "1zijd325z8zvmz78qi34vn7bwc6glw0bv07av8kyxxl3q08yyi5y";
+  };
+  "c1023e403c67693d0cda4a7067f08cc4868b331f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/c1023e403c67693d0cda4a7067f08cc4868b331f;
+    sha256 = "1z1ridxkw4v62r7wpy8p3a2pvbbk5s6fvnb3pj6risyd2nalnx84";
+  };
+  "c1348ebfc2f62edbbaf065a9987835d16f3faebe" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/c1348ebfc2f62edbbaf065a9987835d16f3faebe;
+    sha256 = "1rbz1jawc4rga0r0153w48n10b5gvamv0356iw79pjag6naylb2z";
+  };
+  "c1621ab3068dbffadc595d03ef2ca486f7a5d484" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/c1621ab3068dbffadc595d03ef2ca486f7a5d484;
+    sha256 = "005d8nk35149kqw2jy0bmfkgs036ymj6khdpgyhybafyqns3kxl5";
+  };
+  "c16c7518b7bf0b8838fb4ec5d024020f7d7dcd2c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/c16c7518b7bf0b8838fb4ec5d024020f7d7dcd2c;
+    sha256 = "0v3frxr6pb15y1m6lvkblhhy08k67vbcnjxb0r6pldqqgr10w74d";
+  };
+  "c18d93c3fb088e46dc560285a889e191b2350e3b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/c18d93c3fb088e46dc560285a889e191b2350e3b;
+    sha256 = "1gpivr38hx21v5vclbgrbzjdg0ly1ksrdx03vnkjzm2f2564qany";
+  };
+  "c1aea1c747a9068d40e613d94eaf43b511d8008c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/c1aea1c747a9068d40e613d94eaf43b511d8008c;
+    sha256 = "0b7vs9yh0hl73zn5q7lxgwj898rh3qmphsmrab9b2byfbj4mk76k";
+  };
+  "c1d09face93090ba4fb6700351d2c5202a35a2f7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/c1d09face93090ba4fb6700351d2c5202a35a2f7;
+    sha256 = "117cl93bgd91lpp7xd6sr87xcr1j8bsam637khgdcw8mj5k3npqz";
+  };
+  "c25bec168e93ab9183b4187a3172187d41e8b094" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/c25bec168e93ab9183b4187a3172187d41e8b094;
+    sha256 = "0pgzkljpjj8r7l7b6bqqrvqhqcv67r4drbdlq0fqw1cgpspvk9zi";
+  };
+  "c260984388b36733a83e5c5a2d1bddf9202de51e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/c260984388b36733a83e5c5a2d1bddf9202de51e;
+    sha256 = "1qd8vzscnfygqbmwxf61df75j565jr052igscsrq2jy79ls6gndz";
+  };
+  "c28e42653d329ca15b9b65ef130aa7e18df44da4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716370-1fe4be93d0274863a43a7797419557e3/c28e42653d329ca15b9b65ef130aa7e18df44da4;
+    sha256 = "0bsbd40nwyx5592fs2clf6bf7am52fswa68lkpqdimq5srabwcyf";
+  };
+  "c299da387c827b828bdc3e81fb617c8992d1ffbe" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/c299da387c827b828bdc3e81fb617c8992d1ffbe;
+    sha256 = "1lfv6s7cjfibbyn89pwc15xfmz0ismcsd8hjna9a9isbi9bfqf8r";
+  };
+  "c2b5d2cc4aa67357f3ee15def8c1d137016f723e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2706207-4f57365c766141c988cbd0106cf38f5c/c2b5d2cc4aa67357f3ee15def8c1d137016f723e;
+    sha256 = "0y15qbgnfx0av2qlnff4xj0n1njnq00agxlr7sr0xwqabkkzlm9y";
+  };
+  "c2c0e9b8e4352e01ad72f4a6d2ce4e6c0c26878e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/c2c0e9b8e4352e01ad72f4a6d2ce4e6c0c26878e;
+    sha256 = "1b50br0m1ff7haidcqhnn3ggxa0jf57bsnzq1h90320ciszkk3rj";
+  };
+  "c2d1aa057a438fe3a8996316005b4f584d087df7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/c2d1aa057a438fe3a8996316005b4f584d087df7;
+    sha256 = "1fdgibvi2aiy9xd3xjvv6fm5qvz2bsmax9v648sb8gdlvp1a2s1i";
+  };
+  "c3390a1d1d84fd03f5aa0a105422b669c9f6ab91" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/c3390a1d1d84fd03f5aa0a105422b669c9f6ab91;
+    sha256 = "16gmb4j6ky53h7lzyccd59aidqxyvjiq9bh43m326jwvbnmcr7lg";
+  };
+  "c3a4ce7861427e417e289e118620ba02ecec6995" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/c3a4ce7861427e417e289e118620ba02ecec6995;
+    sha256 = "03qqa0w3p8isci9243jsivlrzzw0scf5w6371jfs4h109fw0qg6b";
+  };
+  "c40ca2cfe00fdc980844d0a02dfb2571b7fe48c3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/c40ca2cfe00fdc980844d0a02dfb2571b7fe48c3;
+    sha256 = "0cxr3qncsx37g69labw8lz622yn9rjxybagd6wrf1bgvacg9f8kv";
+  };
+  "c430a47ee45e5afb9a0831bf2ea38b466b497549" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/c430a47ee45e5afb9a0831bf2ea38b466b497549;
+    sha256 = "1bz6j9s06jn1nwyiczama8axg707vd5ny6p44i905z7z2r46s5nj";
+  };
+  "c431002fc0e408cf00a8650910c2f4bb3b85df53" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/c431002fc0e408cf00a8650910c2f4bb3b85df53;
+    sha256 = "01dc7m14cdf4dmc389d3wng39chqj7wiisxzzm83knbjdihrhfrp";
+  };
+  "c461017451f8ce7d5833a200e5d6fa969138fc0f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/c461017451f8ce7d5833a200e5d6fa969138fc0f;
+    sha256 = "1bm0alxlmrkzrrv23s2qab55wxccl3vkhq2srzcw2fnvi407gzif";
+  };
+  "c467b9d4b67580014c04e62e822a99d7cd7a6dbb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/c467b9d4b67580014c04e62e822a99d7cd7a6dbb;
+    sha256 = "0jw6ppirc57wqn41x1c4c9x6i8xrxy8yjwk999rz0swf4dwambx0";
+  };
+  "c4ac8e5f2224886f32727c69401d26eaf54e6d17" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/c4ac8e5f2224886f32727c69401d26eaf54e6d17;
+    sha256 = "05lsv3lpg7sa57q6vm98iskxmmza487nppahzqnc4g7h16k7x0v9";
+  };
+  "c4d70abc45c0067c48d200a7195e87cb07990867" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/c4d70abc45c0067c48d200a7195e87cb07990867;
+    sha256 = "12lbg924x6g1zq6bq0ah54k1vgj5bplayizb4ihrn28sgfmc9y29";
+  };
+  "c54921d21c20e7c27fee9dadcf212291b32f32de" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/c54921d21c20e7c27fee9dadcf212291b32f32de;
+    sha256 = "0yb7amg4pnaz7fjqwmjsydz6wig9rqig5wv74zpmc9yalxyfym5k";
+  };
+  "c57259f627108af7691176d6a5ab0a8bdb504fe8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/c57259f627108af7691176d6a5ab0a8bdb504fe8;
+    sha256 = "0426ssgyxinyvqq69hcah4ddl249ic412bdvlgwfx10m636h7nk4";
+  };
+  "c58fa62bd83bf317b52d835b43fe31cb0a5fed9c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/c58fa62bd83bf317b52d835b43fe31cb0a5fed9c;
+    sha256 = "0s66g3ggy0zz70p6vs4qwkwgv3jnk2b2y3a7rh58385gg3dk4ccm";
+  };
+  "c596e1a5af08148c69666476cb7a935d5b860e04" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/c596e1a5af08148c69666476cb7a935d5b860e04;
+    sha256 = "0sglq3myrvkw38gah4pgpslrsfrx7j1h9dxbx8dbykzjzprf3i0j";
+  };
+  "c620a0e05618810252d4b0f8e82fe97a677dde26" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/c620a0e05618810252d4b0f8e82fe97a677dde26;
+    sha256 = "1i95wlgkq1d3m7k4qdfm5h6vs2m0f45d6hpcg3dj8jxy5zvqsgmq";
+  };
+  "c63b8b65198dbac3e3764c69e57b85f011332ea1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/c63b8b65198dbac3e3764c69e57b85f011332ea1;
+    sha256 = "0ybhwi57ic2c0xshlj2jw9y0rmmnn9yy22dff4c51mj08g9xqjr0";
+  };
+  "c64839804e94445b7c1ac409d5d0f8f1ea36e54c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/c64839804e94445b7c1ac409d5d0f8f1ea36e54c;
+    sha256 = "00s8l1sr0cfkchqyhfvp0ix3fpf10a2smj93xibimkh9lfaz6i35";
+  };
+  "c650d7a313cf559c35793ae4885bfb7ab7e24cd2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2597174-0975f975d1f0463f931b68ea4b0ef6d0/c650d7a313cf559c35793ae4885bfb7ab7e24cd2;
+    sha256 = "1j9rkf1zys5sygijb650s5si25s95hfh6v5z2ahii1gylkrn7lh5";
+  };
+  "c653b9ebfd67dfad854b519e55534735d82f73f2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/c653b9ebfd67dfad854b519e55534735d82f73f2;
+    sha256 = "0s2fq88ay1080qqf3qlvh7g0sddbbs8a0jvb6992wbbb0y23839a";
+  };
+  "c705af8ab47f089acd3efa03df30ad116079209c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/c705af8ab47f089acd3efa03df30ad116079209c;
+    sha256 = "0dmpf4agrq74ga9sgp8qlb4wsps3fg33jiv0x8mj82d9h064y4li";
+  };
+  "c77e5ef4d0349554ba75af77135182db3577571a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/c77e5ef4d0349554ba75af77135182db3577571a;
+    sha256 = "03gir460iljc089y523fqlxvbp7sq1n9v6ldi6ij52fpm6wvzid1";
+  };
+  "c78d32aaf4ea80b2746ac7ad1692b021b1b548b7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/c78d32aaf4ea80b2746ac7ad1692b021b1b548b7;
+    sha256 = "1gwakfigb6bxjjr2scx753kjjvxy32npc5s5l3jqiidw27mbwrjh";
+  };
+  "c7945d9532844fa35363f33da23f208a629dbe28" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/c7945d9532844fa35363f33da23f208a629dbe28;
+    sha256 = "1g43sj9v065rvg73jynaycnp3jlw9cngbzr0lv4jyiip8ycd9m7z";
+  };
+  "c7a7c3acf3dd7cd611ae94f5c86473ecd3a2955b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/c7a7c3acf3dd7cd611ae94f5c86473ecd3a2955b;
+    sha256 = "1nh8drrb4sk4sid00m2l41pwz01n752jxn7xcxdjfgf1qri7gmfp";
+  };
+  "c7d451a7ac00e4726f44c4fb551c45dfd4614302" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/c7d451a7ac00e4726f44c4fb551c45dfd4614302;
+    sha256 = "0fmsf826chnq5lsfqgp8ndys4aa6v9gpsq3jcwwak3kl8vni21x8";
+  };
+  "c7ea7e43fc1d7ff54a1a54b74c3962098d7851bb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/c7ea7e43fc1d7ff54a1a54b74c3962098d7851bb;
+    sha256 = "0gxk8c51f6hsx98sx6f4laqmcc3ln3sslr8848blqwvnhwy3fqfn";
+  };
+  "c7fb09c7cbdf7c014549eb2b9c1345a0f2ac3770" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2714108-1287c19490104fa7a8ca7bc71daf7ae8/c7fb09c7cbdf7c014549eb2b9c1345a0f2ac3770;
+    sha256 = "1c51kddffr04xf65sykxy8lmx25066gcrz881m7iwx20l5rnlc1m";
+  };
+  "c840da0835818272e18eacdd15f50e802453c69c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/c840da0835818272e18eacdd15f50e802453c69c;
+    sha256 = "137193jraim288jy64k6sinwg4pqhc6cchspxjzzn8h7dzfbmyjr";
+  };
+  "c874ee18eb2aefe1e6d4345996da6c6ce2087d43" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/c874ee18eb2aefe1e6d4345996da6c6ce2087d43;
+    sha256 = "09i5kmida7s8zw8az2b1wxnsradjfv47hiy20fkrdqhpz0ra8lh7";
+  };
+  "c884f0dbf617ea1c10f5b347fd4f19d3d87befb2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/c884f0dbf617ea1c10f5b347fd4f19d3d87befb2;
+    sha256 = "1nhrhkzlvfdb4lp0v2syiwpd13sjx0z390wh404197p31xjwjvyq";
+  };
+  "c88fb38c74260fca80491abeaa7a26fd116fba25" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/c88fb38c74260fca80491abeaa7a26fd116fba25;
+    sha256 = "0bk6g0fns1g08zghm5nf2wipbcxzwprcg106d9rifgsq4w1bxk7i";
+  };
+  "c8fcf9a784756d66ad119b3e642423161380add6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2572690-84e70917b1c64a80b248151191ccd58a/c8fcf9a784756d66ad119b3e642423161380add6;
+    sha256 = "1ixadgvvl3w9wirikl6fsj3g7lkbji4pa67pplys3fxd3rwflzqg";
+  };
+  "c939abca16161626114a6afa440cfb71ae87dc6d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/c939abca16161626114a6afa440cfb71ae87dc6d;
+    sha256 = "1mqhplp4zkxr2qzcl4xdqgh8ng5yhgrmjqsm5g04zlyn1xb46ghi";
+  };
+  "c93c98cb950c9d8f504bea894ad865f29b9991ec" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2528371-50b896349a4f4b48b4cce5ef240b0c45/c93c98cb950c9d8f504bea894ad865f29b9991ec;
+    sha256 = "006lrid8py6qhn21gi6n80nfd4y7v29xpjz8c80q8a4p1klayvkr";
+  };
+  "c93f0a56e40373b70b8f6cfcd57796df6e3e5d64" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/c93f0a56e40373b70b8f6cfcd57796df6e3e5d64;
+    sha256 = "0s7dgwc50q78b20l33ra8wrlxkqf0666ldxqb4isx6bk973yf7kv";
+  };
+  "c9440b326c43f4ba6af0b71b1ca029ae223ecabb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/c9440b326c43f4ba6af0b71b1ca029ae223ecabb;
+    sha256 = "1wzfk57gnly1qafvjcy7jxa5nbq3fm89fjna9h7xfaf382kwviwm";
+  };
+  "c946526ac2560a1cf84cb7a63c24bc9994fed050" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/c946526ac2560a1cf84cb7a63c24bc9994fed050;
+    sha256 = "117i8fkym78xq4ssk9hvhfw51myx69xnxm9zxd8mvsa7yrfd3420";
+  };
+  "c95cdaed781fb020898a671e373b60aa382404ff" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/c95cdaed781fb020898a671e373b60aa382404ff;
+    sha256 = "19626mhx070k3myam8g2s9dvqqx82pv7jbrdnnkbiz3kc0i65xzm";
+  };
+  "c96e9cd94a86b222bed132142b65c1d90314445d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2441582-104388acf6d34237af496ee648a9c7db/c96e9cd94a86b222bed132142b65c1d90314445d;
+    sha256 = "1vp5lzll11hhn6qwn21qnidhlr6md2mm4cnafpbgsj7ci5jy9i8v";
+  };
+  "c9b2fa52f0b68b4de48806e71af562ddd9ab8363" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2501204-f81f6b4f13824670853a18474a99a9e4/c9b2fa52f0b68b4de48806e71af562ddd9ab8363;
+    sha256 = "1lhr1k6qj5v1j3h4g6q4cwmswpk96l3v26gbq5hj2alab6r5chvs";
+  };
+  "c9f7bd390be6e2f50469fcf024ace928b624a38d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/c9f7bd390be6e2f50469fcf024ace928b624a38d;
+    sha256 = "1rsbwbgiqgvck30gd86p2sh53gykb68sfgyfpflqng9psffzxfja";
+  };
+  "ca146ad3bcc63037df80affd27568080de042fd2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/ca146ad3bcc63037df80affd27568080de042fd2;
+    sha256 = "0dd3piwj2g5zfiidysy219xvcdypdmdqfccwv0ib4ddb6yxa0csd";
+  };
+  "ca3317bb9d7ae47177c0d9362f17d53c865d8b92" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/ca3317bb9d7ae47177c0d9362f17d53c865d8b92;
+    sha256 = "17vb8vrkc7y3rspnbd6nw34v58ifi8dr206kcf2ah8zpfbpqqkcd";
+  };
+  "ca72923ffc518f8f79ad2bb67a376e8c4e51c3ff" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2791326-4a233957ffc54c94b38c9ceaf84d58de/ca72923ffc518f8f79ad2bb67a376e8c4e51c3ff;
+    sha256 = "0zk6xryzk7d8g0f148n4n2zk92jspi71v530bp50nqpjzclv4j7f";
+  };
+  "ca83db39ca850bdf08a4e3bda07b207534365c24" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/ca83db39ca850bdf08a4e3bda07b207534365c24;
+    sha256 = "10a9vl982ni45wj3mnky56n2yljvha2xic4mf2n3vrmrr1aqxrah";
+  };
+  "caafa6d602fb6dfd386f6eb601ff8ed2b2e74234" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2622402-86d1483fa60742b6be9fd5a0b0b946e0/caafa6d602fb6dfd386f6eb601ff8ed2b2e74234;
+    sha256 = "1r4vjwkkckaj25ajhw3csn351lppwgb46dc6im023dy8lj5fvc5d";
+  };
+  "cad827e1f1025fed382fad69988e6878edf449bc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/cad827e1f1025fed382fad69988e6878edf449bc;
+    sha256 = "0fz5m8ab4xa5zm8n9w8a4yrzhzjfq7wald118r8s50r4fwsnm517";
+  };
+  "cb540e992bfeed51b40d2faa7209ebc16384c2cc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/cb540e992bfeed51b40d2faa7209ebc16384c2cc;
+    sha256 = "145pgs42bmwr56r4fkjf40l24j9imhcf1f004k2bbmjn8518h4nb";
+  };
+  "cb5e9b0f8eb95171fa01852fb15eabf2845a79f5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/cb5e9b0f8eb95171fa01852fb15eabf2845a79f5;
+    sha256 = "0yy29b05a07h2zk1zy298i1ydlh3vr9mmjawqb34fgff18m1xy3w";
+  };
+  "cb73a430e097bac42d93ec902203b7888ed0b681" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/cb73a430e097bac42d93ec902203b7888ed0b681;
+    sha256 = "1nysj9pxf2kwsh7v8iqz305slwy2s6ysmg9ra76ysmns7rh9rvap";
+  };
+  "cb81a778a0190199a4c52ec5e9e3f749c532fdf8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/cb81a778a0190199a4c52ec5e9e3f749c532fdf8;
+    sha256 = "1hl7yhy7ysg35vrq5y4ngq4aiqfkb5h74zd6x7qay1k588k3af7g";
+  };
+  "cbafcbe19329c889151577a995439d8c09b69f61" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/cbafcbe19329c889151577a995439d8c09b69f61;
+    sha256 = "194zad942iv7rr5fngyk0kpckafip987mhgl1bk2fflvxvs5nckg";
+  };
+  "cbe9427bf8fe34234353780bf7d7188dbd5673af" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/cbe9427bf8fe34234353780bf7d7188dbd5673af;
+    sha256 = "18ri7fwgvyp6p3qm4qn32dyiiwl2vw3f4j5g0dgv4k8p29cpx7d3";
+  };
+  "cc2764b781992363c5941eb2399962b3dc251c9a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/cc2764b781992363c5941eb2399962b3dc251c9a;
+    sha256 = "0sxvjqbyz3bvppf090vpwggb0f758mxh16m0f5lf3z6xv917vbqw";
+  };
+  "cc6c17f5d19462048695c62e88e553ff08996aea" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/cc6c17f5d19462048695c62e88e553ff08996aea;
+    sha256 = "0mi2m0f6j89dj3qbm43clcih8d06z943iv585ni8rp8dpvm733xn";
+  };
+  "ccb1bc3ca1edbf4177b3c0d1784bfcb61f87daae" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/ccb1bc3ca1edbf4177b3c0d1784bfcb61f87daae;
+    sha256 = "0lxc3imyakyqxphhyw7xxjlinyvvhpq050xwnydks6bja2nqjrvx";
+  };
+  "ccbf9e16dbb06aba05b68b87bd827f67b8eac84b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ccbf9e16dbb06aba05b68b87bd827f67b8eac84b;
+    sha256 = "1v65rdr6f3a5l8k9pa6aqnarv279ik4g82m3arnndlhs8d1fwry4";
+  };
+  "cd0d52d3a393b848c4524f8d20e9c3d772779d50" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/cd0d52d3a393b848c4524f8d20e9c3d772779d50;
+    sha256 = "1b1vccn5jhy79k1h1ilj572j0nkrv6imb3m3fk9zy897fp8phm86";
+  };
+  "cd136c8c017886023a62be7a07da35d0a4af997e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/cd136c8c017886023a62be7a07da35d0a4af997e;
+    sha256 = "0aw9ipcqp0iq706nw26rriqn1jvsczypwj46yk3sjxmcp7bzf0rg";
+  };
+  "cd20dd95dc2f4e182bbf98e7f0d6a7cd87f10df6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/cd20dd95dc2f4e182bbf98e7f0d6a7cd87f10df6;
+    sha256 = "06ba9m6rcvia5rr1pghi1x4z7xjvw1rj9p9hpd7yvzbn02vx58y1";
+  };
+  "cd28a4a14b5471b45eae79e893b8acbc4f7e1f94" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/cd28a4a14b5471b45eae79e893b8acbc4f7e1f94;
+    sha256 = "110936dirzdy78nxcplpnz8z2hnqpcwdbgb6yfsg9w7a9x0290pd";
+  };
+  "cd31abaa21b8f9ec03052817bf36f6c16178f5e5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2597174-0975f975d1f0463f931b68ea4b0ef6d0/cd31abaa21b8f9ec03052817bf36f6c16178f5e5;
+    sha256 = "0imni7w08al0d35nis2xz501zl5qz1dmc4myhhabvm0l6cf3x4ig";
+  };
+  "cd5ab248342e1a8cf9bd3f635151bfdd3d41ad3b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/cd5ab248342e1a8cf9bd3f635151bfdd3d41ad3b;
+    sha256 = "173d24jramz5i4h5pvm4v22jiqnw87b4g1bg0y2v79n313k4p87g";
+  };
+  "ce44b880be5cb6a25056be3c177c866b85aee1d5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/ce44b880be5cb6a25056be3c177c866b85aee1d5;
+    sha256 = "0gcvwwwzyl8s91fxvzaqnxvkz9kpw08643gra8acmbvplx2r92sj";
+  };
+  "ce8de3d894102a4bb85d1eaaa271f605239a2fd1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/ce8de3d894102a4bb85d1eaaa271f605239a2fd1;
+    sha256 = "1m385wpp8zv140c51yq0bybpja4j7rgy837myqb7xsi3cmwsmrdz";
+  };
+  "ced0e06e0c817a6519c5a995d3ba2743df02ecdf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/ced0e06e0c817a6519c5a995d3ba2743df02ecdf;
+    sha256 = "0hfxs8i2cjifry6sbyqhw5f54ngbl3dnhzmikvhci0mz1np1blah";
+  };
+  "ced6c6d11883cd80b95d5f522d9526e6467945e5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/ced6c6d11883cd80b95d5f522d9526e6467945e5;
+    sha256 = "0ii9010n609i4i4zip2mgjqnhpfb7imfxviqi8kbax35mkfv38ci";
+  };
+  "ceefcb84598a9a4c5ce8d34e749d52d7511a8013" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/ceefcb84598a9a4c5ce8d34e749d52d7511a8013;
+    sha256 = "0rynh9y2scir13ffmgwqcdvcm21p2n0q4i3di1aval7r690b0wz1";
+  };
+  "cefd87d67f6688e869ab62068aa16c5f02113c8c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2597174-0975f975d1f0463f931b68ea4b0ef6d0/cefd87d67f6688e869ab62068aa16c5f02113c8c;
+    sha256 = "0nli07f78bpmjk6bxaa2x32m1l7ds6d4rh8iycciywm8fwbw0ak6";
+  };
+  "cf4a635ba3a4c070a83394e45c5bae8ef8651afe" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621163-719903f8599f48949652ccefc2a2d5be/cf4a635ba3a4c070a83394e45c5bae8ef8651afe;
+    sha256 = "0pb38cbss34md3pn9j1rzhwanq1dwqw2jpaygsb9fzxnrgypismr";
+  };
+  "cf5e1ce959a11e3674cc1a7c352dc878022c2eff" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2547993-1fb84b9e293242c988e586c599eeeb56/cf5e1ce959a11e3674cc1a7c352dc878022c2eff;
+    sha256 = "0lyp1iavwk61iv47nlaw7s3bdfr469in0d9rngp7mr9w1b367szx";
+  };
+  "cf784788aae211d789405fe0a7308e059e15627c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/cf784788aae211d789405fe0a7308e059e15627c;
+    sha256 = "02cl56q4232l8y34ajl04s0zxq8mdbvbx7bad1q4f2fcx6g395x7";
+  };
+  "cfaa6e2212f937f340e867175482030d495675ed" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2448689-7792f1b8be254cc19b4c3379509684cc/cfaa6e2212f937f340e867175482030d495675ed;
+    sha256 = "0wdpkcnlnkj6bwv1q4g3i3yn2j7rv98h6l58y323h4bn2hn8f90y";
+  };
+  "cfc8c6e323848f57580a531e48fc4b81cdd17efd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2458551-07195e4b171247cfbc0f6645046eda02/cfc8c6e323848f57580a531e48fc4b81cdd17efd;
+    sha256 = "1bjsd26ckak6212lvb706653raz8sn8b380n5dp653frbsagnmgw";
+  };
+  "cff332b0fe6e7874406db49746b5a2be18f822f5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/cff332b0fe6e7874406db49746b5a2be18f822f5;
+    sha256 = "15w6kfv1pxzswr71knkkyw8zc7i1ibk9rapgp7s9ybkfkdfwrfjn";
+  };
+  "cffe52e7d9b8a547c321247c96a680a061a7c077" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/cffe52e7d9b8a547c321247c96a680a061a7c077;
+    sha256 = "1ha9z55y46lm88zai4dh9404gab7kfkcl95fm0ch22mv3ps94a86";
+  };
+  "d00340b56c80a33987bae91b824e43fa883353b9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/d00340b56c80a33987bae91b824e43fa883353b9;
+    sha256 = "1f9nz3vjw21gvg9s4ycmjcjp3kb79q0inirjnbp0wbxmmd0w102i";
+  };
+  "d01535f7276e94b02b13cc27f3966f8867e79101" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/d01535f7276e94b02b13cc27f3966f8867e79101;
+    sha256 = "05mzb8x5rhs4z9cdfsgv43ggigvpnhkq6jfd5apvsqqyzsrxpn48";
+  };
+  "d04d874a8a5abeb10db060dd59e268c16687663b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d04d874a8a5abeb10db060dd59e268c16687663b;
+    sha256 = "1qaspy0c182xnbpplw4bmnahd52l47g3gmws77gic0ls9dlm98b2";
+  };
+  "d0566c823351a86a79411b3b8d001317aa356284" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/d0566c823351a86a79411b3b8d001317aa356284;
+    sha256 = "1i2fxmzs90wjsaxrc26jjmy045gq08p8a3k7z8p9lxkk9xnvvq49";
+  };
+  "d0916b22915dc03f3e2bae8097e2ad696e7c8f4e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2620197-1c557d2f91dd4277b16fd1ed8715aab3/d0916b22915dc03f3e2bae8097e2ad696e7c8f4e;
+    sha256 = "06fl6qfyax8nkccimh3r771l6a36q9rkihdqhn13ax0klab27cmv";
+  };
+  "d0ac4798d087f4f67f533a8d8cc04a7685a380aa" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/d0ac4798d087f4f67f533a8d8cc04a7685a380aa;
+    sha256 = "1fbzjkmizabaxrjipsfx5y4qlsd0vddb0b20cwxx8q74q2m2ai63";
+  };
+  "d110f2213c54503001102b5f9a81fc0743ba32c0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/d110f2213c54503001102b5f9a81fc0743ba32c0;
+    sha256 = "12l3jzkrlqfkxrq9nk7ksyzy4ffawci9hlbfnrcwrckiz107360z";
+  };
+  "d111d246a5dff2d0eed94cb2592bfe277ad9e0ea" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d111d246a5dff2d0eed94cb2592bfe277ad9e0ea;
+    sha256 = "0qjagdpy4wx39jg31ib87dh1gfyyhd06aa1g044jnc9zjdx47n7a";
+  };
+  "d1450a3f59e35f9d62efa518fa3ecc4e3ce0b0ef" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d1450a3f59e35f9d62efa518fa3ecc4e3ce0b0ef;
+    sha256 = "0i7hjlykmzasgyxpw5sx7nrcpi6nmqj3ckcr1ayaym7j2d2dljpw";
+  };
+  "d165f29f588eae8d8a55d377f73b67973713c670" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/d165f29f588eae8d8a55d377f73b67973713c670;
+    sha256 = "0gqsm4h2bzvp7pm77z3alrm21pf8vp4m4ihlc9qqwv2jm98gmfi6";
+  };
+  "d1a31fc8df90aed8358e255ead086de9df9b8eea" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2622268-4534504e79af46a28b290d0661d1cc42/d1a31fc8df90aed8358e255ead086de9df9b8eea;
+    sha256 = "0gfbvm7l4skz5snpbk39hr9ccmja5fxkvnrr5278l9ways2d2ilg";
+  };
+  "d1cc40fc311b1fe882b059047a6c7f53925c9827" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d1cc40fc311b1fe882b059047a6c7f53925c9827;
+    sha256 = "0lxfzdv2gwjscqmxsdhdli5sg1mr08djq7ik8a26h96mvxwqna4j";
+  };
+  "d1e8035d7cb1c18606f75bf22a42e813f926497a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d1e8035d7cb1c18606f75bf22a42e813f926497a;
+    sha256 = "0il1fg83apcy0hvr78gfginpw3y522vqky8523wkbvrbipzqps1g";
+  };
+  "d25faf54b177d399192ede835440a8eb4948ab59" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d25faf54b177d399192ede835440a8eb4948ab59;
+    sha256 = "1fwd7slxj50zh75lcj8i17mijsah1gqnid4mvhvyh33fmgbmwc10";
+  };
+  "d27c0f6b2f82d4e0112056dc4963a251ad84b3c5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2482054-e6ea3bde29504ce5b51935e2939eefee/d27c0f6b2f82d4e0112056dc4963a251ad84b3c5;
+    sha256 = "1f6h8h1aaffy0hn17mlzynfaammkm8whsbjlbb31czgpiq445h9w";
+  };
+  "d27cda6ec1c697039954ff45ad0d4bc809382324" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/d27cda6ec1c697039954ff45ad0d4bc809382324;
+    sha256 = "119vqrcws2yfw532n7gykqbgh4p0jhx8vfyc7vkzfrj0ynrda9m6";
+  };
+  "d280f17be242e85379048663a32b3f86bfcd6625" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2629494-07ea5ec481884143ac3af33e276b7492/d280f17be242e85379048663a32b3f86bfcd6625;
+    sha256 = "1lfm6gjsz8y3z90ix3prmvpmx0ps8g4rpzflwd8p1wk8h8kqr4jy";
+  };
+  "d28b2e8946d305dc75d30be04ee1c9bfec7bf72a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/d28b2e8946d305dc75d30be04ee1c9bfec7bf72a;
+    sha256 = "15yjgzhi621bj13nz1wrs9m7jy2v0mjgx3w59fyv5vgf94mj6nyq";
+  };
+  "d292729e71bdf7b0dfe9367148d16b19fa7a5da7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/d292729e71bdf7b0dfe9367148d16b19fa7a5da7;
+    sha256 = "0g7z09z0rxrjf82y9m30qc2a2gbz34gf0hvwxyb3pwzgfbsapxh1";
+  };
+  "d2a00e055f1285c1fa4a975781d66bcdc44da301" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/d2a00e055f1285c1fa4a975781d66bcdc44da301;
+    sha256 = "0ndhbjbcr9mhjzzvfqxx38a84ch7jpb4vik096i71kji8pbby5my";
+  };
+  "d2dbfcbb4a4a5cb2324c962101ba1ae4ebedc502" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/d2dbfcbb4a4a5cb2324c962101ba1ae4ebedc502;
+    sha256 = "0ywl10w2xkcm1nc7zcwzsz1q3j25w37hhyrkkvhg41vqjdnibx2p";
+  };
+  "d2dc1c9128c24c0a330a534ae29cc6ae6beaffc0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/d2dc1c9128c24c0a330a534ae29cc6ae6beaffc0;
+    sha256 = "16d5d8n5m1srr2iddf0hvigpaybpyiwr3w2850sgn1qskbx5n2gb";
+  };
+  "d324c1434b20b5ef66a2937ab08337f78c5646a0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/d324c1434b20b5ef66a2937ab08337f78c5646a0;
+    sha256 = "0xnx3clcsxg0b5hmq22dz8wplhfvmckiz921arnl1hbwgfgjiwis";
+  };
+  "d338b1e7e6160d0f539aa12687e23db81cce61c4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2623227-c4b8ee6a09664c9dac75b68f4d1629d4/d338b1e7e6160d0f539aa12687e23db81cce61c4;
+    sha256 = "1zpbqrzxnmiq1wsvxr5gxv2gyf1kip08d8zpgfz6952bxh2ql2d2";
+  };
+  "d347f6ee6f9955b5ddb428582f0a5694be416663" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/d347f6ee6f9955b5ddb428582f0a5694be416663;
+    sha256 = "0a67s7r0gnpnb11p4dlz61zqmrk6jm3s2q6n6vz3sak9q046wiz6";
+  };
+  "d3603561d5e25d4f17d441b894b6b532ac8ca892" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745458-2d2488161ce24ccca70e5ce98643ad1d/d3603561d5e25d4f17d441b894b6b532ac8ca892;
+    sha256 = "1farglicxvs0xvrlkp8vhj8zad9c2zm7m7bwwgs35nbmk7ii3hvv";
+  };
+  "d3c4fc80dcded70862e182185119d810e694728f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/d3c4fc80dcded70862e182185119d810e694728f;
+    sha256 = "1g15fbqvwz35hy6czvwb23wv3hv8z62c2hzgnh6wpyliz8hvwvsm";
+  };
+  "d3fa6eb331487a41362af20fc809e610469ecc14" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d3fa6eb331487a41362af20fc809e610469ecc14;
+    sha256 = "1n15651kjzdp4nhxv8rl331gqa9drj2h2lz590ldcqngc27gdm7r";
+  };
+  "d40c0edc4a86159f31ffdeb1c868655892857c27" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/d40c0edc4a86159f31ffdeb1c868655892857c27;
+    sha256 = "08k3m19bgb2l0c7r1680gg3rhprinr9gr1qnmqw9vkpaclkbmhya";
+  };
+  "d43babee559c0a43f3cdfe93ac68d127740c7c60" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2706207-4f57365c766141c988cbd0106cf38f5c/d43babee559c0a43f3cdfe93ac68d127740c7c60;
+    sha256 = "16by5ci4078gbm4qq84np3z1gl6p9g1988nqzwavb1gmcd5l39lp";
+  };
+  "d48b4b394816bf765766cfb0de720c2fcf3dbe91" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/d48b4b394816bf765766cfb0de720c2fcf3dbe91;
+    sha256 = "03r22czm4w4l1cz5i9dl5v5nbij3zs4bkh5kgxbq9jd4vqkg15n0";
+  };
+  "d570076bdc206ebe525e4fdc41a05520d5f706fd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2638350-39632eb9e5f94ba4ab8e97fa2d5a3251/d570076bdc206ebe525e4fdc41a05520d5f706fd;
+    sha256 = "1bs1j3rya8w5xlmpws006dyzl6ma498qmjpbvy46588zv6id0h9d";
+  };
+  "d59bfb566ff92e983f4a66e10ce13ac21e90924d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2649176-0ea78bc522e047c6b5b5e477faaaf0eb/d59bfb566ff92e983f4a66e10ce13ac21e90924d;
+    sha256 = "0wgw0q5ln0cz34jc1pn2pqk49b2cbkxljw1c7cyixw81mq0750z3";
+  };
+  "d5cc1b80671cb302ce39ef82a91478483444777a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2612065-7518df1e66b64067baa9f5dbe835628e/d5cc1b80671cb302ce39ef82a91478483444777a;
+    sha256 = "1klyngm5zxnswi2cxj5sd6lcnxmxmj894mpzkbj5fc9l5k9zzh4f";
+  };
+  "d5f5f1dab637b46122ba0000804b82a3466d4f57" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/d5f5f1dab637b46122ba0000804b82a3466d4f57;
+    sha256 = "0wzzk0xm9q17myvgk7mbv21gnyjgms4cr397gxkdjfjljbb78n9b";
+  };
+  "d613d9e9dacb47de3549938a8e516310c73c64bc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/d613d9e9dacb47de3549938a8e516310c73c64bc;
+    sha256 = "17rskdgxjwdlq1v17l756z7fj1l0r96fkzpbagsp7w4h7lxkr3ii";
+  };
+  "d63c4c238a195e3f8e062b2a9cf0757f0ed55587" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d63c4c238a195e3f8e062b2a9cf0757f0ed55587;
+    sha256 = "0waid6qlkmm5avzmd63j7dapq2c5kad6727aalc66kf3bxqqk628";
+  };
+  "d65a42fdc8154793ead3cde82b7ec619bd249478" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/d65a42fdc8154793ead3cde82b7ec619bd249478;
+    sha256 = "097124ah7iynh2xq14wlarnqj5kqay45mcsfzy57fkr49kl9q31x";
+  };
+  "d6c884c9dad1608090dcb5009a5146b5e2cb307d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/d6c884c9dad1608090dcb5009a5146b5e2cb307d;
+    sha256 = "1z0nixzhmi07w3nfn2zb81qlq3hgc8x1n42rdafq7m4ddgaccp5b";
+  };
+  "d717fddace1fd0e9b4a4b2c78118ebb0c354e35a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2620878-145fecd6dbcb4cf59f55c309f12ff608/d717fddace1fd0e9b4a4b2c78118ebb0c354e35a;
+    sha256 = "0a25mfvkjyycc6ybffg5a453vvzgs0lxs11iwgbd366p1q1a9fc5";
+  };
+  "d777e45fe21ea823174bd647cf6817128035cf2d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d777e45fe21ea823174bd647cf6817128035cf2d;
+    sha256 = "1p363fd1fdl04md3cwpl8sk4n8vs1kbzlvf1m5hfjwjpwf4nrflr";
+  };
+  "d79b515a8ffc174a508593ce109108ecb9e44813" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/d79b515a8ffc174a508593ce109108ecb9e44813;
+    sha256 = "0wxp8x8f1s961vxlrr507rmngqqwaikj3i09zwzzif54gip02g2x";
+  };
+  "d7a56916778ad1fa03472f47ec92e8a9eed66219" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2482391-24fb529bc09847ca8c3576d69ba36285/d7a56916778ad1fa03472f47ec92e8a9eed66219;
+    sha256 = "06w8nb6bzpc98brswfk1ciikgghvx575w6il3l3p7yjx87093vbx";
+  };
+  "d7ae2a94509bb8a9d5e77006c5538cd11b721439" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/d7ae2a94509bb8a9d5e77006c5538cd11b721439;
+    sha256 = "12cwb2ajb3ikrr2pnk9djd9c4cyh2prigfy7x3q2kdni28dw4v9i";
+  };
+  "d7cd467675e181dbeba3cf24443590ebb76f9515" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d7cd467675e181dbeba3cf24443590ebb76f9515;
+    sha256 = "0d6s9lk446ixhiivxxrxv3s8l6xxlxqljkcj1ynyxcfcm9q6d29r";
+  };
+  "d7df186da35e7874ec3096cafd37119085cf5ce5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/d7df186da35e7874ec3096cafd37119085cf5ce5;
+    sha256 = "0l553fq2pmm2jpv9kag039kg8mjspnqaf9ja2g6ylgbkclm8sc60";
+  };
+  "d7eaad8d8e27e59910b9a915de128b42dda290db" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/d7eaad8d8e27e59910b9a915de128b42dda290db;
+    sha256 = "1l641nqdiyp8wvpiydmanb1i32da6naad7fiwggjk8y9dd035j3z";
+  };
+  "d814756dd80360682458cdbeed8859d522418bd2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/d814756dd80360682458cdbeed8859d522418bd2;
+    sha256 = "0lmvilkzvcipf1favy33khkfdg285l6cvfykzprljyff1jgqb16w";
+  };
+  "d82a48c7d5dec9cc59dfa1a8ee7298c7e787cee7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2627198-ce999b21af1d474180ef48e136faa3d2/d82a48c7d5dec9cc59dfa1a8ee7298c7e787cee7;
+    sha256 = "1lvp57nm4y0xfc09wqckfd6736qf994sgdwhvzd3a39xnjcm1zcf";
+  };
+  "d841bdc828b7ed9f4a76d474d455264dcaadbe38" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/d841bdc828b7ed9f4a76d474d455264dcaadbe38;
+    sha256 = "0vi449pj78607r89y2zbx2dm5qdk0njdnws55cmx6wv7p13wiwq4";
+  };
+  "d852eca7663f1c36dab87cbd527dbfac895faf97" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d852eca7663f1c36dab87cbd527dbfac895faf97;
+    sha256 = "09y0jdcsxnj6wmb1q60a79dfpn0qq9laxsh20glpgw00a302917z";
+  };
+  "d87a6dc2de5d3e0f991324f8edf80b016f15f204" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d87a6dc2de5d3e0f991324f8edf80b016f15f204;
+    sha256 = "08bmfkq48m62gahq3c9gjkjvwg1f7986kiq82xzr0vd15742l3vh";
+  };
+  "d889e4d65d962a36e5839fedc6a70a00ac10fafd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d889e4d65d962a36e5839fedc6a70a00ac10fafd;
+    sha256 = "15f3gbgqfjhcnmqqcbklp5qh5l4jrcb0mfg0gf4njaprb479274r";
+  };
+  "d8a13d14cf5b0d5bd31f2b05c3b53dbffdedc49c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/d8a13d14cf5b0d5bd31f2b05c3b53dbffdedc49c;
+    sha256 = "13hipnkqpzlxkx87yy49303fxs8mpna2947yaf06nyjwphy9y554";
+  };
+  "d8abbf7642437f66197d216a0eceef1ccce557c9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/d8abbf7642437f66197d216a0eceef1ccce557c9;
+    sha256 = "0jdfxmw3bqp1nws33hrch9j7irnln19ac5cf21bnzavsvkvfrwhv";
+  };
+  "d8f99844942adf5e16059b6743f25804288ee4ca" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/d8f99844942adf5e16059b6743f25804288ee4ca;
+    sha256 = "14fihk8cpbsdf26vfvhfx5finmvz6ckbxmhbkm7qh34wi6h10v6r";
+  };
+  "d904eb14d805f07ce46163d3b8b20c434fe0db0b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2706207-4f57365c766141c988cbd0106cf38f5c/d904eb14d805f07ce46163d3b8b20c434fe0db0b;
+    sha256 = "0pwnpnmca2s8qg2k27malnw6d20si50dp3rlqcciaihn6dbjn8qh";
+  };
+  "d92734f6a18a11d0dfbf8c9e12f63f2180c5225d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d92734f6a18a11d0dfbf8c9e12f63f2180c5225d;
+    sha256 = "1m8yai075pib0imrh5dlwifdgbzsijk0vcgz8n8yzgq4j7k6rk16";
+  };
+  "d9a9e14ffd76c4ec3dd9ed97fe543c3169480ecb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/d9a9e14ffd76c4ec3dd9ed97fe543c3169480ecb;
+    sha256 = "009fzivb39c6wx2mv4z6kjkfqr51fhkx6w08h8d9g0z0kin4hffl";
+  };
+  "d9b01b6ec88b6bdfbdb3493b4881158a6b4c8d81" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/d9b01b6ec88b6bdfbdb3493b4881158a6b4c8d81;
+    sha256 = "1nnk36bh320bblcnd8zvhfvgd9q456a007zwk8l11akx4yd645pj";
+  };
+  "d9eb718a9365d9af9b6cc77b440a8da1ea6c1bc1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/d9eb718a9365d9af9b6cc77b440a8da1ea6c1bc1;
+    sha256 = "15z0bl57iixqyghm5ac3gy8czvx03spwbm5m6i13nk48dvlfyh8w";
+  };
+  "d9edee7f1f74e5386558b4a961fca4552e02ed53" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/d9edee7f1f74e5386558b4a961fca4552e02ed53;
+    sha256 = "17gkslrvbvdkkdapsqpck8q3rczk4cam00c9yhyi137j7n1lkpyk";
+  };
+  "da1a0a91f4e47865a8becf9da734feefa1851a0e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/da1a0a91f4e47865a8becf9da734feefa1851a0e;
+    sha256 = "0lz6gkyn0vcwpgd3ln60cm4nnsz01g20h7qz00pgjczpa4j2qas4";
+  };
+  "da7b12758710d9e2c5869e221e94cef9c9eedfc1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/da7b12758710d9e2c5869e221e94cef9c9eedfc1;
+    sha256 = "03pxq5gncfxllslif2vsfacwxv3wpfgajsgdx0s62slsqrfgrm1h";
+  };
+  "da7ba6ca87d1fd789d7ec8278b87f5eb53200dae" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/da7ba6ca87d1fd789d7ec8278b87f5eb53200dae;
+    sha256 = "1xx0kk0n7lmd7llildsw03a7zbfd3dr3jcjjm2ljb3x2zxksapwz";
+  };
+  "da8b24eeab7203c68fbffbc306797cd5a0ad0a21" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2622247-8eee96f5d21944c4aceb4b5731ec49c7/da8b24eeab7203c68fbffbc306797cd5a0ad0a21;
+    sha256 = "0h522mjxnb25w077j7vfd7vw588w2wj3lhvb740hmzs8hg50grbf";
+  };
+  "db0072b27b24bda3fd51a10fdc7e99e0cd839029" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621850-a9425aa00359454986fe050ca270f1f8/db0072b27b24bda3fd51a10fdc7e99e0cd839029;
+    sha256 = "16py0ri5wzfyxi5yv673wwx4cvqdgibgf8g5gndwkvbxdk1901i1";
+  };
+  "db0399e0ca29f1327956d92769300c29b37b2b11" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/db0399e0ca29f1327956d92769300c29b37b2b11;
+    sha256 = "1rn19ggfrq07xpwv7hxlqsq01rz4s5aw8jyyk9jpgwm8951mdk0m";
+  };
+  "db1ce685def3bdbdaa34985a4bcc7f9397fe18c5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/db1ce685def3bdbdaa34985a4bcc7f9397fe18c5;
+    sha256 = "1jvh0j9208qp3msz14gg2dliasys859zfkwagwgcpwzz8r9750dg";
+  };
+  "db49a1753cbbba64d471588023c076a11c7f8ed0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2515540-18724700a05d4a0c889f39065edf2969/db49a1753cbbba64d471588023c076a11c7f8ed0;
+    sha256 = "19jb6xz05mnypcs43ld8lf2jvybkj8xr2mmbrhkpvwbxj0gz9mgq";
+  };
+  "dbaad381a8fe78e42dee5bc0259045658757985f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/dbaad381a8fe78e42dee5bc0259045658757985f;
+    sha256 = "10g36av438yi4gif8c1r35z2jfpqynkqw65nyhy3pnxhwph92hk8";
+  };
+  "dbd67380af0391a17ceebc816f623b42e665cd2d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/dbd67380af0391a17ceebc816f623b42e665cd2d;
+    sha256 = "11cdb6rm97vvmfhnf50sl1bcyrg3zki3v5vdhm3w4bzazmvw4d6b";
+  };
+  "dbe75239cd713a39f272a0de6cac2dfb95039ebb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/dbe75239cd713a39f272a0de6cac2dfb95039ebb;
+    sha256 = "0sy95z08ps7hmkzyg0ym20q9b2f2d1mfs8wp9zbcqixlbkgna90l";
+  };
+  "dc103daa4b0245c15f666e3b82ee1ca395c26e15" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/dc103daa4b0245c15f666e3b82ee1ca395c26e15;
+    sha256 = "1xy9yz8nrk8b1l64x0jq6cgdk10xjf1mmm4g62fqg6sn0zcl5ai0";
+  };
+  "dc8af4beee95a25b1c0cab56a5b11a66babc6a87" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/dc8af4beee95a25b1c0cab56a5b11a66babc6a87;
+    sha256 = "1shf8pf5xyqsjqslnj9m7a93xm9f6lydsf35vhq81p2sll5786kr";
+  };
+  "dc999c480c689209d1072c9b4435243a1121150a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738466-c1f653d3509f461bb7b24e2d8451128d/dc999c480c689209d1072c9b4435243a1121150a;
+    sha256 = "0lg507q9kwc16hn0f9dapahd0iymywswrn2iqd26lx7g6lvnckd0";
+  };
+  "dccb30d618cfef75cf0ac5c9e91b08be0183d1c6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/dccb30d618cfef75cf0ac5c9e91b08be0183d1c6;
+    sha256 = "1z6qy8hsnznrdfx3k6fqnnb8flv8s894ljrglppmr0f0sdbrvavk";
+  };
+  "dcd771e85d726f704215a4feaa632c6ad6472de7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/dcd771e85d726f704215a4feaa632c6ad6472de7;
+    sha256 = "0yqwa73qvwi1rmv4qlgwcn4fp88yqwijd4qw510abfljqgvkwnh5";
+  };
+  "dd2d043a6fefc80a25ca78d62c7e8ac26e471cc5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/dd2d043a6fefc80a25ca78d62c7e8ac26e471cc5;
+    sha256 = "10i0f74cgc3n0yiv88vggiwpsf8jjxg0jvqnqfcmpapd8m6f9s99";
+  };
+  "dd37156cd306b8d31089c3a93edede1ffb0d3293" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/dd37156cd306b8d31089c3a93edede1ffb0d3293;
+    sha256 = "0qldw0lnwx6qnlis7gxpgzdag2sk9cyg2myy8phmmd0407a4l6pl";
+  };
+  "dd67559046c4cec3957fcc155765827a5c36dfb2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/dd67559046c4cec3957fcc155765827a5c36dfb2;
+    sha256 = "1fxk257fjj23k4vx0p6fydbg0kmqd8lx0fbn0fiy94binwym6aiq";
+  };
+  "dd6aa88361efd8c13bc630db41c40d185f94dafa" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/dd6aa88361efd8c13bc630db41c40d185f94dafa;
+    sha256 = "1cd1knbxhzzjddavdnd996n53km3nrq0183nrvh7kmy7jp51b6i7";
+  };
+  "dd765b2a31ae5ecdd886e1550b3a93dbc11a74ae" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/dd765b2a31ae5ecdd886e1550b3a93dbc11a74ae;
+    sha256 = "1vlzi62gws4dby85aan2aw96gd9n1frrwvkym5jw9cn7m3rp7di3";
+  };
+  "dd8ef40e0195694f7f018da7e80a520807402c9b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2468936-39e1c39556f84e60be8d850c452aed67/dd8ef40e0195694f7f018da7e80a520807402c9b;
+    sha256 = "030hfr8vk0rn374h9gav0j3x8mvm5r8ggq37h666q4fswazqa2cv";
+  };
+  "ddad05592e192eebafd8842ac556d92572eef1aa" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/ddad05592e192eebafd8842ac556d92572eef1aa;
+    sha256 = "000r1d5nifky1yczl7p2fdygrl8yn9n5ajqbxmx2ccmavxr2wqjz";
+  };
+  "ddc5b08945cb44c8aa6434129c3f898bd87a41af" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ddc5b08945cb44c8aa6434129c3f898bd87a41af;
+    sha256 = "0gr5ra1izhksappm1k4s4n632dyzfxdlxv1ilnmfmcs4vhjphpg6";
+  };
+  "ddcc2181537ebf3c5cf4ba351f0960b885372aa9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/ddcc2181537ebf3c5cf4ba351f0960b885372aa9;
+    sha256 = "0hp5d6xj8dh033801j5bl07wji2489v4ci6fl0jljhsfwh9r9zcf";
+  };
+  "ddef4f0acf5f073d28dd6a38c4fa58630d3a68f8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/ddef4f0acf5f073d28dd6a38c4fa58630d3a68f8;
+    sha256 = "1p8ag7dgnrnpj2cj7l94ic98gghhs5xc1qsmwmr5m5v6ra6mkm3s";
+  };
+  "ddffea76154050032a408a3890c07633f1ba3b0b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2604938-a9e6e886491749ef99155ebfe50a18fa/ddffea76154050032a408a3890c07633f1ba3b0b;
+    sha256 = "1bfwfwg9hn4sh5nqwpd8nfjbqkkyp5nzns2cw47cqvrrz9m645hw";
+  };
+  "de0049c6936b76d5da37bb69dd25ac91e83514c3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/de0049c6936b76d5da37bb69dd25ac91e83514c3;
+    sha256 = "1abk2d6mp27rya7yp3dhvgwr18z7yny9l024l9wv2dzgfhw4mlmr";
+  };
+  "de01c69dad3bc654ab534e5eedcd2b8374f2a2e0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/de01c69dad3bc654ab534e5eedcd2b8374f2a2e0;
+    sha256 = "1dggg7qwqsfzcnr296qcw0k5k7bisg2nlxic185qydca0y844khg";
+  };
+  "de04f7b02c49aa87b2b6da18c62a5ff36858352c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/de04f7b02c49aa87b2b6da18c62a5ff36858352c;
+    sha256 = "1fljk9j3l64v4yf4by4n22pfdxa63frilac93wbw663nb7w5hrw6";
+  };
+  "de2d73029d96c42d88f7765a10be8b6af0007eb8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2701057-ddd66ac9b77f4863be4b1dc8e90d0e10/de2d73029d96c42d88f7765a10be8b6af0007eb8;
+    sha256 = "10hc364qj9mav9nqa8jvkiwmmrmx24xqpn8gknra4iw7nqhp43c8";
+  };
+  "de40a1a3ef4f09ae9523868d74d8cc9af2745ec8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/de40a1a3ef4f09ae9523868d74d8cc9af2745ec8;
+    sha256 = "16jhqdx31vid1knbfldhwf3d4vlap6p815q6ri64fb5g0drny9zn";
+  };
+  "de7be9bd446cca2c3d817d2f1d7042e9a6f27378" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/de7be9bd446cca2c3d817d2f1d7042e9a6f27378;
+    sha256 = "139pvk98m51s0i31s4621x83cdx81459fw5jj7sr1kby3g900adh";
+  };
+  "dea23be7b0f4c3aec67d1c95e616bc04d4e99100" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/dea23be7b0f4c3aec67d1c95e616bc04d4e99100;
+    sha256 = "09z1az90fg35rp8rfsnlqh5bhgrw1pdw14lkavnhz1kcpxzg429h";
+  };
+  "debdde2d089368f9ec40b6d50aed4cab14a4e785" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2533444-8b800f9092dc4a4c822daa186a0dd399/debdde2d089368f9ec40b6d50aed4cab14a4e785;
+    sha256 = "1gvk274y842is0k67pancjpbw7s0yqv1lqz36ar2l84b7mky9ncq";
+  };
+  "debfd2113b48ed4529163d952262d80fe8cc11f1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/debfd2113b48ed4529163d952262d80fe8cc11f1;
+    sha256 = "0ijv1i1xdsj15b63dvj1j248bcqylbp62cncza464jzpf1mgmjl1";
+  };
+  "df2925eb96fbc24fb45e29b8553772c650ff8c53" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2791326-4a233957ffc54c94b38c9ceaf84d58de/df2925eb96fbc24fb45e29b8553772c650ff8c53;
+    sha256 = "1msa6jm9c3x8150sci2bbs47l424xchjfgg5ixr388q5fiqjwv50";
+  };
+  "df3e6640f45ebf0909095b9ae74a7cb7404e447d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738466-c1f653d3509f461bb7b24e2d8451128d/df3e6640f45ebf0909095b9ae74a7cb7404e447d;
+    sha256 = "1rg63nvywdrzwvslzpq8z53wkhfm3fgw8x7lzxkqay58v3npdz44";
+  };
+  "df4ccc222a9b196a9484691be86f2d14462b2357" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/df4ccc222a9b196a9484691be86f2d14462b2357;
+    sha256 = "17gf45g193ind6i7m49ckwxrfffryi1xp3dl8gkgfj8q9yvlh01n";
+  };
+  "df5437931a8964c846c6c9377f381c0213082e22" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/df5437931a8964c846c6c9377f381c0213082e22;
+    sha256 = "0hllda7r7v1nvffb504djzc2l6l6bg1ldl3fgn5dz152jgvylq95";
+  };
+  "df54fb21975e218c1da9d209d52b225e78430abf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/df54fb21975e218c1da9d209d52b225e78430abf;
+    sha256 = "0cdj50yxdl4lfpmhydkymzc5p1zb07z86cgqmsyqs3b4xp7a410n";
+  };
+  "df6d4711f83f1c570af30ec97dd418f0664398b5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/df6d4711f83f1c570af30ec97dd418f0664398b5;
+    sha256 = "03vr4pvvr03nwwf4jp3q0fps1kaybk327z6r80cf934q8dq1hmam";
+  };
+  "df7074a5b6e12f2c024e07d5dd9fdcd863f0553a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2574758-8fd9f8c50854489f98b3664933c83100/df7074a5b6e12f2c024e07d5dd9fdcd863f0553a;
+    sha256 = "0m9mk7mr9i2i0rly7jb9vbz000rpxmpgrlawa1isvgpp98nq9jx9";
+  };
+  "df877ce5674ccd5af752d839ce7729c724750815" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/df877ce5674ccd5af752d839ce7729c724750815;
+    sha256 = "087wfyc54y7ay8bh5ml8g46402pk42mmimzvlpskq6vz6hwqbwg1";
+  };
+  "dfd7ec76ea282f899f489dcf84e86c17e2d5176b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/dfd7ec76ea282f899f489dcf84e86c17e2d5176b;
+    sha256 = "0yhnv54lb22ksa1b9rd12jwrpbfia6v46j60qszgp3wfzh927b7p";
+  };
+  "dfdacbcbdca178e9cf577d37637399e02c80c006" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/dfdacbcbdca178e9cf577d37637399e02c80c006;
+    sha256 = "1k16n6jf7jv3ja47faf27vkbhcwn99y6rgfzk5d9m5r18326m6is";
+  };
+  "e002d0958c673752ae43a0801b444a2ce1624b4a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/e002d0958c673752ae43a0801b444a2ce1624b4a;
+    sha256 = "14wkqdp6bwy7i9dx9lb7fxrhwsspxwn9hpsxc3qqd43gbff6vmg0";
+  };
+  "e02e3dbebd645b7ffc82cb42b41d79fd60a268cd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2634392-be4d7ed7261341cdaeeca1438154a993/e02e3dbebd645b7ffc82cb42b41d79fd60a268cd;
+    sha256 = "1gj5921y97f0f64iqf566hpsmm8gf39p0x51ps67r5hk89k52gj8";
+  };
+  "e03589b69f1b5cdf2431809897f2a1287d4d1db2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/e03589b69f1b5cdf2431809897f2a1287d4d1db2;
+    sha256 = "0bwr0lf8b523kwgrakm6cj2rpcaw1ql213xsa4gmaxbqjxmhjwn9";
+  };
+  "e0a2c1da63edd46fd58df91cebed0a6ba9d4e2ba" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/e0a2c1da63edd46fd58df91cebed0a6ba9d4e2ba;
+    sha256 = "1wlxk5v5jabmdg4i6nm91kqgx4lak68455chgyyzw83n3921cwc6";
+  };
+  "e0b52177b69db23587e60178455553700fca7a3e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/e0b52177b69db23587e60178455553700fca7a3e;
+    sha256 = "1dpp1ixnl806d5b7ag0chzd771nrlqpr0vp0xg6sqz77y9f64jdc";
+  };
+  "e0da56b57fd7c9eadf21a0c6bcaa75267e6eddd0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2762618-27ee95221f7a46349f0cabdf112a1cd5/e0da56b57fd7c9eadf21a0c6bcaa75267e6eddd0;
+    sha256 = "05phccb0fvx9li9yr689l2wxbana6hvzljwsn1a2113rkh794gql";
+  };
+  "e10e19c255056c096d6105cfbff767f6749ffeea" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2608258-d12288bf79ea446a9353c7f9d223b24e/e10e19c255056c096d6105cfbff767f6749ffeea;
+    sha256 = "0356fyglgynnlm1myic04f0g9c1yz12zz8z4vi7j8plypnsanqs8";
+  };
+  "e119a785ae743089d9760220e95431e5b5a828c3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/e119a785ae743089d9760220e95431e5b5a828c3;
+    sha256 = "1vqrm60v9jgd3xdvdwkavxfapl1424pcwm0w9zn4gypbkwfigs8g";
+  };
+  "e1a0aba6fa5c1c2bd71eb9f8b6fa3b6bd0c08378" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/e1a0aba6fa5c1c2bd71eb9f8b6fa3b6bd0c08378;
+    sha256 = "1qvnscdxnyyps3sm2625hjvb2glkcaxj3kd4qhcpaw99p22cp61z";
+  };
+  "e1a2109b7b2cea0b5a275ee93d3ec4dd15bda288" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/e1a2109b7b2cea0b5a275ee93d3ec4dd15bda288;
+    sha256 = "0b1namzxfx0pshfcixvzwpm19d29ma70wbsb5v37jx79bwplxvly";
+  };
+  "e1fb2b61f5ab2e0ded49292c3ba53d25ee0e31d4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/e1fb2b61f5ab2e0ded49292c3ba53d25ee0e31d4;
+    sha256 = "04xd0vdrqrlnakxg94racp4q4rqq8z383n6jyg798g386gd2nkyw";
+  };
+  "e214f8d9834372bc3a68863ed9b25f6d3468aab6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/e214f8d9834372bc3a68863ed9b25f6d3468aab6;
+    sha256 = "1x8alx8qywjysqs8fznf7f2rgz47ryi02711fj2vdifhiazl81z6";
+  };
+  "e2e2347e195fcb6908121d1d8252b675c0225733" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/e2e2347e195fcb6908121d1d8252b675c0225733;
+    sha256 = "0am2g2w1p9gbdc4r75gib8kadfkzxk0pl93bkggrvbc04gaajq0y";
+  };
+  "e2f498b239aa783a65b663c31fbe397e04857c5f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/e2f498b239aa783a65b663c31fbe397e04857c5f;
+    sha256 = "1abyxjalrqhvinl4agkhc5mwyvi18hip7v6rjvvzxi6c6jvlfbsf";
+  };
+  "e2f8447f74d7ae894d6ebc37fd1de2b774b15bb2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/e2f8447f74d7ae894d6ebc37fd1de2b774b15bb2;
+    sha256 = "08j2hxs3grsfk5y3xfq4ch1z4hd9rwgn5yfzd2h31ldrpyx4r39y";
+  };
+  "e2ff2a15b3b4f835c8275051591b9d4de07df86b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/e2ff2a15b3b4f835c8275051591b9d4de07df86b;
+    sha256 = "0q77kjwr6xi1drxv0kqxc4kbm93r42ygsyxfyk2rqjfa30v72496";
+  };
+  "e3adc0e94fdc76e94c4297ae60dc8b7678ff6d13" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/e3adc0e94fdc76e94c4297ae60dc8b7678ff6d13;
+    sha256 = "1cihl2vayvhqd8g2jvnzirfv2a2c7dadyvg2cmkd8rdcf7ry7r7m";
+  };
+  "e3e99323ec9693b9c6beafc30a7c439d27d51019" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2738466-c1f653d3509f461bb7b24e2d8451128d/e3e99323ec9693b9c6beafc30a7c439d27d51019;
+    sha256 = "1dw27yqsfdh6d8p4d9afwn9pz8dhd1lw1y72vw6vj15ns1m1hsj3";
+  };
+  "e3f2410485eaec849a562752ca8348217b12f390" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2611810-c0cf8ef9a734410da79e56e1df15e175/e3f2410485eaec849a562752ca8348217b12f390;
+    sha256 = "17n58ay2q59xc7d02dxzx4lxcqf1fm92pyz07w6fjlwiqlr30pz6";
+  };
+  "e412f545b4a58b60e62cd1dcf57ca25871356b05" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2515174-63b13cf90d1f431ebc611d28340ef4ba/e412f545b4a58b60e62cd1dcf57ca25871356b05;
+    sha256 = "19vbfalid5jpg1x9dbxip4fbdvpvyrhdjz8wfk9ysiw8nbk1xyj2";
+  };
+  "e4328c9505893ca9157deacf1baf1aea7d01f8d4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/e4328c9505893ca9157deacf1baf1aea7d01f8d4;
+    sha256 = "0ksgc1abgwmhgz9j557l6kj6awdfzivm08dfk0n4bspc8dmdp728";
+  };
+  "e458507f455e3bac9232d632426fc4b75f29841d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/e458507f455e3bac9232d632426fc4b75f29841d;
+    sha256 = "1y3w5h0ss3iq6sv0pmzw8n62s3asp616j6n3fqy8vja3bm6s57hr";
+  };
+  "e465c13305ee8aa9186e587aed90d1007e5b31e7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/e465c13305ee8aa9186e587aed90d1007e5b31e7;
+    sha256 = "04ig4zfzv4g24yr882hfrx4570jvhd3abvpig9mc1d7x6hg2vnn3";
+  };
+  "e4770351a3cb31df020fd6bff26ce03237621428" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/e4770351a3cb31df020fd6bff26ce03237621428;
+    sha256 = "1sza989jj7mhwv60ridbqpypskddsyx97vrlpflwq4i8xk8f0qhn";
+  };
+  "e4db89beb65b004392150dc83a65a28ea62cb155" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/e4db89beb65b004392150dc83a65a28ea62cb155;
+    sha256 = "14b951ymdf4difjjrcc9n6kg5ib5wks26kdagrr04bdb0qpv6m5s";
+  };
+  "e4e9b76a89d03aea789e6df7b7dcbc13cc7ca8cf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/e4e9b76a89d03aea789e6df7b7dcbc13cc7ca8cf;
+    sha256 = "1v9ldnkaq65zym2d439zbqvybfvpwj30hj6mdhwny84mf71kimmi";
+  };
+  "e4fa82ded20830726a04678904111f9fa6f26954" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621793-1958bfdd4e3b49f3a0ca6a4c08a60a0a/e4fa82ded20830726a04678904111f9fa6f26954;
+    sha256 = "0r22snlddx333vbz83h776njmycshb8kmx2biw7hs4qfyvj99y0j";
+  };
+  "e50119c064462a0e056574db4e21f359f7f0c159" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/e50119c064462a0e056574db4e21f359f7f0c159;
+    sha256 = "0gb1rbclzkxs1c63ylabam1il1nw85xvrd7n3s3gjb7s7dq5mmwb";
+  };
+  "e5146f66274a1f5409227f94447af2a1f4bfafd9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2745394-b798b336538945738fe2766d7bbc5abe/e5146f66274a1f5409227f94447af2a1f4bfafd9;
+    sha256 = "0vcn9fr140kvc5z65ra6qjymfzc4dmgmds4mnzg7n29bfkvmsxff";
+  };
+  "e55d8897009789617d8b961ae3c6c1d00a845bb3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/e55d8897009789617d8b961ae3c6c1d00a845bb3;
+    sha256 = "1rc7xs76q551a7vcy9642jrgvbl97y98gkdqkrb62ibpv3c2g4ps";
+  };
+  "e5e8a89007ed0e73685f9b0366b1eedf31f4c1e8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2608258-d12288bf79ea446a9353c7f9d223b24e/e5e8a89007ed0e73685f9b0366b1eedf31f4c1e8;
+    sha256 = "19w1q3wxbskznn1yiyzmds6dsnnb5ik31lhdqsxzqzjm0hl01m1w";
+  };
+  "e62a73c1c93258f0b94c3cc46e35318469afe84e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/e62a73c1c93258f0b94c3cc46e35318469afe84e;
+    sha256 = "1yrwbvldncip3xpcxq2n9q707z21zg85yxhgvp37j24nqagm6wfi";
+  };
+  "e65191a9b59946c7f04782468840b7352ab5c96b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/e65191a9b59946c7f04782468840b7352ab5c96b;
+    sha256 = "0q8qnncfb723n9ljzfsyi7v44q2301v37c2yjcaqdvs6vaij517x";
+  };
+  "e67a9dfa527d0eeb0ed24ef9d5e22b41baa25251" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/e67a9dfa527d0eeb0ed24ef9d5e22b41baa25251;
+    sha256 = "0vplmbsk6zpr416x96fdshakjymwa631y78c0sr24gqd853w88b4";
+  };
+  "e6a8b07d1017a517555ae184a3ce22fa2b948c72" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/e6a8b07d1017a517555ae184a3ce22fa2b948c72;
+    sha256 = "0wvi5d9ndis8zrbxgy62m6hmr3bvgygfw4hmq6gqay12z78rvchy";
+  };
+  "e6b8c05e76abc49f7a2264f2b95199b825fa851c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/e6b8c05e76abc49f7a2264f2b95199b825fa851c;
+    sha256 = "0m4dwy0mmyr0f1vjk8grqiapwc1q36cj3ischp2gf2ibj1xxiixa";
+  };
+  "e6fda4b3f8fe12c3bbe8ccf91bdcc8d759ea1ea2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/e6fda4b3f8fe12c3bbe8ccf91bdcc8d759ea1ea2;
+    sha256 = "0ggsvrwnfp10h4ns5vadpxnxm6m0nf5i0zr3i57k2h2kxx7vn192";
+  };
+  "e70061ffc85b6027a648cac0b1c8c6ef7d4e3106" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/e70061ffc85b6027a648cac0b1c8c6ef7d4e3106;
+    sha256 = "0y2lka9gippprgffs4w1p6yh3kvj8m3d749ysbc8lwjvijhh0dyg";
+  };
+  "e70429fd818fe983008a06e931d39724ea7a382c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/e70429fd818fe983008a06e931d39724ea7a382c;
+    sha256 = "0vhfpdbbv46z7kdl1dlnn7mlcpvygn4k6fb8wdgykavp0phzhj4j";
+  };
+  "e76c34cb7cbdb14d92e415c4af5ccdc344c4c58d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/e76c34cb7cbdb14d92e415c4af5ccdc344c4c58d;
+    sha256 = "0jkx8w6p77l53233cac8gzbwdmbbs3znkw588g8mcvwzkpszwbxi";
+  };
+  "e77064e9ba8339459d66bc680e55880bbcc5991f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2467022-c410c14385ba462bb86b4995040cdcb9/e77064e9ba8339459d66bc680e55880bbcc5991f;
+    sha256 = "1fc9jnqb7l5v20asz6cqyrp8vr0617n35k41wrqdcsy0qib9alkn";
+  };
+  "e7808a43acaf99637e43857c76760d74f77d6ae5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/e7808a43acaf99637e43857c76760d74f77d6ae5;
+    sha256 = "0s88msrsnmcqnjyzk7afzf6wikwyajjlybq7jsjyfaax4vaj1cbv";
+  };
+  "e7a4ddc64af2a43bf5c7d439244636d60a7dae07" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2500002-69b23dcf7a2d4165b2b432780845acb0/e7a4ddc64af2a43bf5c7d439244636d60a7dae07;
+    sha256 = "13i3cnkrkk0z01bf0prl77wmx4qbnckihgbxjv34lizv3mhd1yzg";
+  };
+  "e7fdcefcd4a8853ab010e1eb4f2d88b5bd9726a9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/e7fdcefcd4a8853ab010e1eb4f2d88b5bd9726a9;
+    sha256 = "1v4yq5b9rng7p1jsvhlnqvcxpnfd1iwmnmd9ygq25prxirlklx8z";
+  };
+  "e85ad2ef6896adbbc28a46b023af6b64deb29b88" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/e85ad2ef6896adbbc28a46b023af6b64deb29b88;
+    sha256 = "1albg4m9z0g6rv7bqd3mzb8k6r07n6hin3s05gzhl21qqiarwf95";
+  };
+  "e902a543218c50ffc9cd9a41bd8d53d0df1939c2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/e902a543218c50ffc9cd9a41bd8d53d0df1939c2;
+    sha256 = "17b3c4kp6a9kbs2k473zygn7w2xmmb19z3sk08alcp658isby3l4";
+  };
+  "e997f5bba3b4d4b283427ec3ca644a876f6dee7d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/e997f5bba3b4d4b283427ec3ca644a876f6dee7d;
+    sha256 = "1gc2rzz40ipkjy17fz6qiwsv2wxi4qmblmp0rbvafg8mgrhs2jnf";
+  };
+  "e9a64dd557215b53134c33355716c8a4bd1e22f7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2622402-86d1483fa60742b6be9fd5a0b0b946e0/e9a64dd557215b53134c33355716c8a4bd1e22f7;
+    sha256 = "1kjvf0spvmp1r8yh75n39a64w3xp1qiw17w8fv6lip3df8dbjywi";
+  };
+  "e9b508ed95c44a9c9e0d979b1ae02f7dcd5590a6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/e9b508ed95c44a9c9e0d979b1ae02f7dcd5590a6;
+    sha256 = "01dl9z60593mizz76sg55zhc949sgxcdp60vkfhrdkhl1l212sga";
+  };
+  "e9c7b3390ef65a90310c9cd4a97594bff007303c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/e9c7b3390ef65a90310c9cd4a97594bff007303c;
+    sha256 = "0jnx4b7pkycly81dka9vn01ky96j0xnzxg0f4z5fpfl8z8al3cgh";
+  };
+  "e9cec016ae177e586ef08f408aec2f7c4de9afdc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/e9cec016ae177e586ef08f408aec2f7c4de9afdc;
+    sha256 = "0k193y1kbmjq6yjxdgv59w1dn9f1b8i7yr2dbzwi2cr57wx3h483";
+  };
+  "e9d6f32dcb7a670874503cb3cb5d73fd9cb09cb2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/e9d6f32dcb7a670874503cb3cb5d73fd9cb09cb2;
+    sha256 = "0k3rw21ngsf677m8q4n1zil9fmbsdd97sxss3jv6hkyjq5r6djxl";
+  };
+  "e9f10cc1fed35407864f324f08f3c9fcb5a2847f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/e9f10cc1fed35407864f324f08f3c9fcb5a2847f;
+    sha256 = "1fz73zsa0f4dma3v47s0dcgdzz8aniryvmpx9rpx955rckrrawsg";
+  };
+  "ea58f8314459f7bf1d36a672ccc1f2c60c4e0eba" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ea58f8314459f7bf1d36a672ccc1f2c60c4e0eba;
+    sha256 = "1xlyfkxpk86w2ik8ppx6czlx6b5jfvz33k6in9y0zvpi1mvkvam3";
+  };
+  "ea7cb20f21cb971f2f7da29210e7bba16e97a53f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/ea7cb20f21cb971f2f7da29210e7bba16e97a53f;
+    sha256 = "1vl4hy09jqhb9h43gn6ymnq2027yc7cfvwh5bn860mj5syayjznl";
+  };
+  "eaceaa2d359d151c5394522df962ce393938a21b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2608258-d12288bf79ea446a9353c7f9d223b24e/eaceaa2d359d151c5394522df962ce393938a21b;
+    sha256 = "124s81bi0y3sx8r6f4qp7mb5294bivjickw7izg0qym3r35vpvy8";
+  };
+  "eaea434c65e3ccf8cec643ea1ec391bdddbc6fac" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/eaea434c65e3ccf8cec643ea1ec391bdddbc6fac;
+    sha256 = "0mdxz6820gcwgzaaipg8k0psddp4i5k0kgl4771kp3my736zsdp1";
+  };
+  "eb24d02e3515e1a1c0df3b6323b5ba9b795e16e3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/eb24d02e3515e1a1c0df3b6323b5ba9b795e16e3;
+    sha256 = "02768h2a16rzwn5d1qrcbxydi0nijyaf301aac32ngsp92y24ycg";
+  };
+  "eb942c482591c680356ad05c627b9153756a5c8a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/eb942c482591c680356ad05c627b9153756a5c8a;
+    sha256 = "05vpd0hwalasgjskblzqba8xadmrj10mjsvqis7chdq0am7g66r9";
+  };
+  "ebb51925dec18058068c3d6ba8d32c6bd5d8f5a8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ebb51925dec18058068c3d6ba8d32c6bd5d8f5a8;
+    sha256 = "0k1w16kh1fbk255qg9lhnbb192lifjskv5mqkd95rmzacpk1vypi";
+  };
+  "ebcdbd3113ce1b1b12aba710b9ed475f2b77bf74" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ebcdbd3113ce1b1b12aba710b9ed475f2b77bf74;
+    sha256 = "0iqxilmibqdpcl0k2qvcipw1nphvxykqi0b04si2mls71lawrklz";
+  };
+  "ebf62a48af4d0a972019aca5d8365670d7260bdd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/ebf62a48af4d0a972019aca5d8365670d7260bdd;
+    sha256 = "14gfqpfqr5nnj8q26vxa10c5p793zkf57j60563bk5ijm2rxrmgp";
+  };
+  "ebf8732591def396954f78bf472667f690877f95" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/ebf8732591def396954f78bf472667f690877f95;
+    sha256 = "13p11mvlnanlc64ap1xmq69m0gqgcks2jvh0f3j546dgw9x36yvc";
+  };
+  "ec13b2ec5777dbbd7c22e1e2bdcb3e127496b370" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2621793-1958bfdd4e3b49f3a0ca6a4c08a60a0a/ec13b2ec5777dbbd7c22e1e2bdcb3e127496b370;
+    sha256 = "0fqy9izbfficxmzf1pbw9w4yasvs55dawm0186afpkg7gcc8rqvd";
+  };
+  "ec35da884d7ee63a6b73a14153ebc0ef84e83072" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/ec35da884d7ee63a6b73a14153ebc0ef84e83072;
+    sha256 = "0vg8qmf8v73d2zg51yixzhsrgd92d03s5lfviympplshychims77";
+  };
+  "ec59e3143dfd3d4c018548a31a6481bc3f9e1137" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2431986-5a8dd079cf514ebd8b20693fadfa5a4e/ec59e3143dfd3d4c018548a31a6481bc3f9e1137;
+    sha256 = "1qfg4cmvb07q61rkj8ca6wzly9zzfaqbx77jlvy5gc0yn4mpijfy";
+  };
+  "ec5de1727c79fc933c910e364d19af5e7ebcbf99" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/ec5de1727c79fc933c910e364d19af5e7ebcbf99;
+    sha256 = "1cppbmy26118b0gxz6j4zk0zi9rlnd2v1pcbkj1ba86mh6b2d1bh";
+  };
+  "ec6d576df884aeea2ed37256df7caa8cc8040d6e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/ec6d576df884aeea2ed37256df7caa8cc8040d6e;
+    sha256 = "1139k9957gbripd65125gp72lg303z10j7yzkfafpbkkixbsi4n1";
+  };
+  "eceee0a55c343bdc9f43a6d2a6e1f7ae7429da77" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/eceee0a55c343bdc9f43a6d2a6e1f7ae7429da77;
+    sha256 = "1xd4y3y13qw8nm29d7w55k2cdy50j3jsndm7yhay2ciwwl9jqlhp";
+  };
+  "ed023b655c8dbac838b64bf7e6103b7e9d563ad0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/ed023b655c8dbac838b64bf7e6103b7e9d563ad0;
+    sha256 = "0d53hk0wkgrr8nwa74326ni3z00fmwvifq1i1fj4wca0n3qlgq3j";
+  };
+  "ed23ade7aa2af09963a993ee53ab33389aae2e80" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/ed23ade7aa2af09963a993ee53ab33389aae2e80;
+    sha256 = "1215la804zb4hnc6ily5vjzyrvzb0npyjfjl19kb8qrmcyiymfpz";
+  };
+  "ed2c9b990f683ecb84050df89e925e9f65e3883f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/ed2c9b990f683ecb84050df89e925e9f65e3883f;
+    sha256 = "1aixypsgvv780pyy8ncizmmysfx1hjym9rbb3m0h4xiizcl4q5ym";
+  };
+  "ed384e6a16f79979d70b9926060a68eeb610de53" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610584-8220d2cd9ec743a5b8ec0d50768a5d76/ed384e6a16f79979d70b9926060a68eeb610de53;
+    sha256 = "0bx62ijccnfyrknqrcw3ymvzvdjgc0qpllzaqn9vhnygxsjy4w2f";
+  };
+  "ed8d4fee989f83055b4947da8ddd5639f8168782" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/ed8d4fee989f83055b4947da8ddd5639f8168782;
+    sha256 = "1gf587b6qa3n3m3abshiw26nypr4wnzzj4i9qycfr33aasasgckg";
+  };
+  "edcad0b0c2862c776fa60784960b9a3a8b3ce6ef" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/edcad0b0c2862c776fa60784960b9a3a8b3ce6ef;
+    sha256 = "10ffm3i1lbyx05ffl8mksp58kagfwdh8kqfgplyxnlxpn2qxf48f";
+  };
+  "edd66f69f77a99b2383d34436d6be71565769a43" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/edd66f69f77a99b2383d34436d6be71565769a43;
+    sha256 = "0h7giabjphgikhdrc6r662xb0ahw4spr89jhckzgplr4l8z8nzz5";
+  };
+  "ee33cb45be04ea08ab507a4058d81bcdd1da7746" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2761703-4d21a69f627145d58d1b542fa90eeb3e/ee33cb45be04ea08ab507a4058d81bcdd1da7746;
+    sha256 = "0n99fhb5qng2x0y5rxp4x88jsdcyqliqi1z078lj6qhsjd8dmqlh";
+  };
+  "ee8662030dbca92bd70af3ba1550ece5c275d13e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/ee8662030dbca92bd70af3ba1550ece5c275d13e;
+    sha256 = "00hfl5h4yk3mc8dhxrlk0zg8nyfgrnmzzhglk0vgzi3mkcvc7jv1";
+  };
+  "eeaa24c1e61cc4b0806496b256349c44f84c02bc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2615502-35e684f430004977ab5aaed43a0fab81/eeaa24c1e61cc4b0806496b256349c44f84c02bc;
+    sha256 = "10kzf6q01v3xd9s7d594biwjy4zzq4wgnqq0ib50ii62rsvli112";
+  };
+  "eef24b0bf5f818f43c64498f50e0a79f5b683883" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2612065-7518df1e66b64067baa9f5dbe835628e/eef24b0bf5f818f43c64498f50e0a79f5b683883;
+    sha256 = "0sg9nyp4gvcqmxdx842nr9szfk1fmi4nrwxmmyvqhs774xavxw4d";
+  };
+  "ef8182b6df585c7dd91f05618e06fd8ee15be5f3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/ef8182b6df585c7dd91f05618e06fd8ee15be5f3;
+    sha256 = "1xrjsspjnfapf26k3ppjx3fzlfcq7qdnxwhvfhn4669spw0a8zgi";
+  };
+  "ef923ee8da67064c7a03f02651b14c309db14a3c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/ef923ee8da67064c7a03f02651b14c309db14a3c;
+    sha256 = "1rc0v251migvcrhvxc7cmv3c5qp1a51fzff6whl7h1qqbzc82ick";
+  };
+  "efd4413cfd5173a82811ede79b4a13bad5f6a450" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/efd4413cfd5173a82811ede79b4a13bad5f6a450;
+    sha256 = "1f76f939x8xkp5z2k8p0i70ig6i2m4ryj9lrc3x393sjlj26nqaa";
+  };
+  "efd812740856e722b88087211add0e268de83d7a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/efd812740856e722b88087211add0e268de83d7a;
+    sha256 = "0yj404y245zicyqgwg2bs9l14gr9vlaakrawk3hdrr24m4lczyz9";
+  };
+  "efe81a03fc4e327388573f361faff5b233243834" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/efe81a03fc4e327388573f361faff5b233243834;
+    sha256 = "1hd7zv4pv604pfbvfya15g3rba9ip6pbzqm6vazi7q7znigzxyql";
+  };
+  "eff7dae5ebb303e1c5f823e0de1accf1075e8402" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2638350-39632eb9e5f94ba4ab8e97fa2d5a3251/eff7dae5ebb303e1c5f823e0de1accf1075e8402;
+    sha256 = "0fa1ikjab52kxkrxb5lnajvwa2ims8d5sm7mi52sx1f67gb3dnb3";
+  };
+  "f0263ddc2018e02536d900df1e275809633e73a5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/f0263ddc2018e02536d900df1e275809633e73a5;
+    sha256 = "0likfdcz1k5acs9w9gxb4r7236ws01cwllrq8qnz3sc2ym111bm1";
+  };
+  "f04bb0803c834328c048cff05056081b1d0e8120" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/f04bb0803c834328c048cff05056081b1d0e8120;
+    sha256 = "0rncg0q01swbkl9pwr7jia19vgpx2yyl1bmyf6l9gz9sfmin1a1i";
+  };
+  "f0887df1b56e17573badb6af33d52f7ec6fb6138" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/f0887df1b56e17573badb6af33d52f7ec6fb6138;
+    sha256 = "1n0gg5af4i0bm854fbv7bvinwgjqda7fbr12q4zm0wqw41r19l3s";
+  };
+  "f0ae004e1cc9e390958b1988391d02b9c74849c3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/f0ae004e1cc9e390958b1988391d02b9c74849c3;
+    sha256 = "1k3gdybbilnkpsd2qf14gn6a0klb8ggdahmlp6wa373pvxf71vz6";
+  };
+  "f0d6a898c18d4750e572c04c2dc290f0628f238c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/f0d6a898c18d4750e572c04c2dc290f0628f238c;
+    sha256 = "1a3ymsi7x4aw0dgb5i1yfq517x9i9fs01mb51irxaamiavxw2zdq";
+  };
+  "f13495e23590f813c800280c335b159a2f568a9d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/f13495e23590f813c800280c335b159a2f568a9d;
+    sha256 = "14d25nmaic3j24dl6viy09alqi63q8vw71wzi7yxyhvgzy51ajv9";
+  };
+  "f1372e2ede9021ff61444ea132b18024ee271b60" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/f1372e2ede9021ff61444ea132b18024ee271b60;
+    sha256 = "113m23b78k218ag72040ggm73846xdyyyfqjc83pzx5g7gfzswyk";
+  };
+  "f13adaffef53d65d806c3eb02f96c6c7f0ac7272" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/f13adaffef53d65d806c3eb02f96c6c7f0ac7272;
+    sha256 = "1i7kv84qdf1srg0828yl4a984pc0c5gh6iqlh2wngxrk79vpvrmh";
+  };
+  "f14abb295c0159f6c8c07119ef3cd201b5062479" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/f14abb295c0159f6c8c07119ef3cd201b5062479;
+    sha256 = "05vakydf2xgpc07262dgv8h0761jswjcpz5z4gp6kan550zx46z4";
+  };
+  "f18da05b89b485f1870ff2b88125f3c1511f8805" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/f18da05b89b485f1870ff2b88125f3c1511f8805;
+    sha256 = "1xp77cwjj0iav25hk3w7n25mzchsbxbbkqhlicvqh41y4q489sxd";
+  };
+  "f199d69df437b77400f96b6d2d4f02360535404c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/f199d69df437b77400f96b6d2d4f02360535404c;
+    sha256 = "1cm14f0i1k92l4flbc00gwvqnvpiwhyyx0g0rf4ssnyp2is9jhy3";
+  };
+  "f1e035fa0d8b44b2b3aeb9958e9dea3862744d82" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/f1e035fa0d8b44b2b3aeb9958e9dea3862744d82;
+    sha256 = "10k3dhgg4h26kjxrvqbvzx6vxq5v9qyi4iwk2csjpyp6xpwzb74q";
+  };
+  "f2374c3116e4d1fae6b4cbd246c9033e282a6c10" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/f2374c3116e4d1fae6b4cbd246c9033e282a6c10;
+    sha256 = "07bjgb6ip8gzyckhsjwi1nlby9059givw8i7gxx09j9xmq6s6n15";
+  };
+  "f24d05b616e3f50a24367e32f8c42d68d40797a3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/f24d05b616e3f50a24367e32f8c42d68d40797a3;
+    sha256 = "01an1abvb6w7id44avc3fp35919avvqspmgl24ygp872xz6g5glh";
+  };
+  "f268daf62521a638834ffec5779bd359e0ffe63d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/f268daf62521a638834ffec5779bd359e0ffe63d;
+    sha256 = "0z4zbyjm9vlzk14r80j9ka8hdinylnbmf43mpna4rva27rqwsprh";
+  };
+  "f279ae70e30f66de7b592409e9ed96993301657f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/f279ae70e30f66de7b592409e9ed96993301657f;
+    sha256 = "057dpl4pgjd8p98vik95gwdj2z42al9ibr210h1j92jdvyjxg99z";
+  };
+  "f286035c2605a855fb9dda2fc06bb71648b1dbe6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/f286035c2605a855fb9dda2fc06bb71648b1dbe6;
+    sha256 = "10vsqbadg5y58skq4p79vdxlkwqqfvac5v91kq4dflgcs4h05960";
+  };
+  "f288cbb85cc9eecfcf90abe6376c32c54435f879" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/f288cbb85cc9eecfcf90abe6376c32c54435f879;
+    sha256 = "077rd0cqcpl629niwgs2qldrh4ld2xyiskg5x32m9igfwkq8dxyv";
+  };
+  "f2c0ebdd94707b207218226a42b19201386b9713" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2634249-f2b4469cf0774eac818e7cb4565f1224/f2c0ebdd94707b207218226a42b19201386b9713;
+    sha256 = "126bhrrj1q7b04wpbiyk1c8j9dpnkinfmm47z330jwis5mblrzzy";
+  };
+  "f2cc42adcfafd68a62e7d1b7e6af4e4968c0be10" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2572690-84e70917b1c64a80b248151191ccd58a/f2cc42adcfafd68a62e7d1b7e6af4e4968c0be10;
+    sha256 = "0kqv0iiy4fmcnbizc17kl3h8jv1knvn0h687fdjk68jhpkfh1fmv";
+  };
+  "f2dfdcb3b2d9423b17c83e2bf5fea37b9bee4681" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/f2dfdcb3b2d9423b17c83e2bf5fea37b9bee4681;
+    sha256 = "1p8dafdpjr058agppmhm2b5flsgk43f7rzisiplhw3qbmxn8s98x";
+  };
+  "f2e462f932cdcf953218a6d7c9cf6aeebf7dbfe4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613635-9840736c5f9647ffa600ff7b7e36f4ea/f2e462f932cdcf953218a6d7c9cf6aeebf7dbfe4;
+    sha256 = "07ypkcwj25x76055p99z54qramz975wlk3px6wy827i79zpgfx7s";
+  };
+  "f3543f8286961b827b3ed3afa8f7663b98d38b90" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2787088-b587684669f0414288401564922cf5d8/f3543f8286961b827b3ed3afa8f7663b98d38b90;
+    sha256 = "09lc3lpn3d0hqpldqld38l7lgdj9xscnnsamly8bxcajm3y3d9vr";
+  };
+  "f355e6bd836583380c61a5ed5a0c5d6150fe7542" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/f355e6bd836583380c61a5ed5a0c5d6150fe7542;
+    sha256 = "1pblr5r97iwmyv1j54hgsisdp4f7vp3l8mwj8zkiggk7nih7yi03";
+  };
+  "f380b2adccc3afba7a9a9a501560525a8359a651" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/f380b2adccc3afba7a9a9a501560525a8359a651;
+    sha256 = "0dh4k513j0q3h4ja144825fcc4cib1pfzjcpsr79kaj0villfp6i";
+  };
+  "f38889741341129aaa57f66f2c36e093673c46ea" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/f38889741341129aaa57f66f2c36e093673c46ea;
+    sha256 = "0nazhgzcmmrkkdjfqp29q2m01ca09cg2wwa23nvrjxra1bx394p4";
+  };
+  "f3a58411dee61c2a7993eb792fffd09b343e42eb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/f3a58411dee61c2a7993eb792fffd09b343e42eb;
+    sha256 = "1xffc2cbd8ccs1sw7yy8vvqy9pvngg5jwlp4g8hnyvvf2jpd0532";
+  };
+  "f441f0d4f281e728c3ca0c5b5f0e5838637eefba" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/f441f0d4f281e728c3ca0c5b5f0e5838637eefba;
+    sha256 = "122bsyzki9w8b2yz5l68k6yz9r4w7zs1949ii0ccy2d5dd707zzk";
+  };
+  "f44c1c4d05656c9a8e943d8738705031cef49e0b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/f44c1c4d05656c9a8e943d8738705031cef49e0b;
+    sha256 = "0piwkmqxqgp7i6r5z39xv1yqwx4v7k01yy2l4j70fbqa8zcvikdw";
+  };
+  "f4569ad2ff2b2fc1e09a93d172caa5084bdfe887" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/f4569ad2ff2b2fc1e09a93d172caa5084bdfe887;
+    sha256 = "0hnzdxvy9l3jwp6mp9hfvgks9mikpbhkdnv9dc3ydyw46f8d8m6f";
+  };
+  "f49df27b644738c41a183cbea4451a65d6ed937d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/f49df27b644738c41a183cbea4451a65d6ed937d;
+    sha256 = "1j2y6x1yilb35snqpsfz4d253hry23zbc2i1cas05yz7j06d248a";
+  };
+  "f4ac5ca56e38b43436485f6d2a480e5bc47d1e3c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/f4ac5ca56e38b43436485f6d2a480e5bc47d1e3c;
+    sha256 = "1cpdciik3mh3nh4z255yja75fpvsq1bfiwd5zlia95ypvfvvabyf";
+  };
+  "f4b57562abffd4d02b186411d743d78de996f9c1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2528371-50b896349a4f4b48b4cce5ef240b0c45/f4b57562abffd4d02b186411d743d78de996f9c1;
+    sha256 = "0lih22kxxnrnq7bg6hgmcszrjqidh89z6kz38c607wfgqks3f3fm";
+  };
+  "f4e5c321293ab07639b720b5f3c43e81d2476f5d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/f4e5c321293ab07639b720b5f3c43e81d2476f5d;
+    sha256 = "1rrzw4yms3rfdxb51sz6lfzh7w34v79fb6nlmqhs7zgjqg7nj5rq";
+  };
+  "f4f360f81e0fe0c3b19ba2e927c0edf2ca16dd74" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/f4f360f81e0fe0c3b19ba2e927c0edf2ca16dd74;
+    sha256 = "1ynp6x1zwx4kahvjp7c3k62f5kimg37l28v1jxrk42c6c590a9k1";
+  };
+  "f4f52945149f9b540099572fcd29c911f8f8fc18" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/f4f52945149f9b540099572fcd29c911f8f8fc18;
+    sha256 = "05jp9y3bsm2a5vyr6azbgn6isiw00wld1vbyw8f5sc7j4rbr2c8c";
+  };
+  "f51cdb5d1eca4ab02befd826a9ff14a8d168ba9d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/f51cdb5d1eca4ab02befd826a9ff14a8d168ba9d;
+    sha256 = "0089lky37w6yfm4xlwqdlrdj3jj6k3bkyhw3nbhprlf94r8h8s5s";
+  };
+  "f56a72b63003eb41d4300d8b2b39b21f53acfc8c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/f56a72b63003eb41d4300d8b2b39b21f53acfc8c;
+    sha256 = "0a0f4vfpncifw87j6h0ajnzwhk9d0s35l5s5dad6rp0ijh6d5axv";
+  };
+  "f56edcc07a586e9b6792c219e9e8eca444362bfa" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/f56edcc07a586e9b6792c219e9e8eca444362bfa;
+    sha256 = "1nk5jxlgscmsv9hnjqprsbkvc2g3wcdqx04xhnzcr992b4xr7p9a";
+  };
+  "f5a791771dabe2848c00de5551dea8e2ec534cc5" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/f5a791771dabe2848c00de5551dea8e2ec534cc5;
+    sha256 = "0wrs36vv55lzbzn2ixqyjnf15mf41xzbw7fvfgzcdxcmpscc76cy";
+  };
+  "f5a8823af793b1af1d0d25d57df351ef32bf3d40" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/f5a8823af793b1af1d0d25d57df351ef32bf3d40;
+    sha256 = "171lmzp6i9l2inwhpcif35v8j00dg44ipfkq1fxay58iinqjk9x1";
+  };
+  "f5d3ceb33b27c7cfc4a8e4689a6b49f594aea8e3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2590354-88fba4596efa431eaf994358f50a5f48/f5d3ceb33b27c7cfc4a8e4689a6b49f594aea8e3;
+    sha256 = "0pfplb9yqmhzxzkafhi8j5c8s7y9wqywrzxs7av8hnrhxxj0nasa";
+  };
+  "f602c209a799d0cc6814312718f806f70e09062b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/f602c209a799d0cc6814312718f806f70e09062b;
+    sha256 = "1kjb7vbq5xqz9wdbcwsyayr6mrl5r6zczqb7pjpgavwx7kfk5xw8";
+  };
+  "f65aee70832fe31db72589b465574d372fa46ea9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613304-102512ed386740db8ece250c091d390e/f65aee70832fe31db72589b465574d372fa46ea9;
+    sha256 = "14vany0873b0hsa28g724fj1zrk2ls4jwjrhs379wxmddhllrrfv";
+  };
+  "f6fadd3d388c12b5d7246b025244646c62920fdc" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/f6fadd3d388c12b5d7246b025244646c62920fdc;
+    sha256 = "1qx4xdscnfg5aha11sfvkqrp5w7db2idwhak9vph9fd5r2kg9anx";
+  };
+  "f6fdc33805bc89e2eaff8003a996f6bf8f880789" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/f6fdc33805bc89e2eaff8003a996f6bf8f880789;
+    sha256 = "1r5hx97nasmk8m37pw490im1fq85q35khjpm5kq36byly3f6nvph";
+  };
+  "f7301b809afdfc0f640f1ae1c5683ff024e82766" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/f7301b809afdfc0f640f1ae1c5683ff024e82766;
+    sha256 = "1bnbh14kj5ywifry0xnbzz1j9shnxizwamvi94ddjxidxacg8byh";
+  };
+  "f7543772618d958884a94ad5d6a90a39de6049c2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/f7543772618d958884a94ad5d6a90a39de6049c2;
+    sha256 = "1hl95yhmxgs6qwrg4fjlk1klqdf7wdssid60ysm7dyqcaf0pxq1s";
+  };
+  "f7a44be87cd8b2cc22a5c6580998902cd597ffac" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2615502-35e684f430004977ab5aaed43a0fab81/f7a44be87cd8b2cc22a5c6580998902cd597ffac;
+    sha256 = "0zcdg0hyrb57wl3hy3w5mh1jibd31k9lcj3sa1bqx1wvgy3axs35";
+  };
+  "f7f52ad80e2bfa86c133febe8231fb1c1f321c68" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/f7f52ad80e2bfa86c133febe8231fb1c1f321c68;
+    sha256 = "1wmasx8b2vjprs16iz2mm6djd0f9j5j2jp9mii9s55hqlc2x3zlv";
+  };
+  "f7ff067e31d48918ce41494b39f2f30c48890e55" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/f7ff067e31d48918ce41494b39f2f30c48890e55;
+    sha256 = "1xz599vrazq3gk6jcdnsrvg20dy6dfsjacm71fgi61ja9mb85kbx";
+  };
+  "f859df604a7deb221be8fb75f5eabac9a4518834" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641912-e998389b29084ea288ee35c8e738d35c/f859df604a7deb221be8fb75f5eabac9a4518834;
+    sha256 = "1mh460676fcx2557fjkfkvwl2ahxwadqyfa5axaf07fss3dnj865";
+  };
+  "f859fcf20b1d5912f1dd1fba6f9bd4393a014968" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/f859fcf20b1d5912f1dd1fba6f9bd4393a014968;
+    sha256 = "0nqg6j8kxhs5qrriaycj0ihv5hwwj8h5w4a9zjs2c23982cxgd6y";
+  };
+  "f8a7fca733ca940a07647121bde451787b5afb66" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/f8a7fca733ca940a07647121bde451787b5afb66;
+    sha256 = "18kg4v54a769z22py9zzm4llz6r8kf38nm1i54704mkm5py2h35l";
+  };
+  "f8deb83eeba474abd3c4332328d32de585f40d2e" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/f8deb83eeba474abd3c4332328d32de585f40d2e;
+    sha256 = "0ra7znx005gdyzybn66246bwjdkx3bwmzi99k0wqc8h3np0x3vh4";
+  };
+  "f938e9fb108c5df460b316ad63f8e4d43de264a9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/f938e9fb108c5df460b316ad63f8e4d43de264a9;
+    sha256 = "0xy3y79i0arjb3qcmq1psd3xbync91zbdfyxg2w542iviwcqx8b9";
+  };
+  "f9b69d517e1417f8099af43fbb448801dd00c40d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2539301-e5e4001afc404628b562e71e48fbe47f/f9b69d517e1417f8099af43fbb448801dd00c40d;
+    sha256 = "1813v1a3aaxpsa8fwfkwc5ik9fks5fcs1xy1spdag422iqg7752r";
+  };
+  "f9c0960de898d46640b7767a29c2119310539a4c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2612065-7518df1e66b64067baa9f5dbe835628e/f9c0960de898d46640b7767a29c2119310539a4c;
+    sha256 = "0vj3giryjmh9g43bngrimn0qm7lv41hsgwd034db6n341q2dcpsc";
+  };
+  "fa0f4ef2e4265e7a8b79791ead562e32bf436c05" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2431986-5a8dd079cf514ebd8b20693fadfa5a4e/fa0f4ef2e4265e7a8b79791ead562e32bf436c05;
+    sha256 = "1570238pvmaj2id29whvch7hn8914b2d8adf0gy6mcckgrjlx8d9";
+  };
+  "fa392f24144f8018b8a29676f4cae4fe188e7a7b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2610711-48667bb021d647959b5e191a0aa242db/fa392f24144f8018b8a29676f4cae4fe188e7a7b;
+    sha256 = "024xcvz6jh5zvx65rrip7wwrixpzdc3ww1kp6711w15qdv5nsqhk";
+  };
+  "fa3c3cf43525a5cf7e63f9b4de6d7441a0e826af" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/fa3c3cf43525a5cf7e63f9b4de6d7441a0e826af;
+    sha256 = "172birg7k18453hdz4smcr28n1dg3pvb8p3w8knjqmmg8kgy6lqv";
+  };
+  "fab186b2b42815a73845c32093d591f8d4623f0a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/fab186b2b42815a73845c32093d591f8d4623f0a;
+    sha256 = "1h55af59wbw1rq5gxrca12k1f9n65kxrqnp5bczvlmcm1nb3gi1h";
+  };
+  "fab30d459fc6efe51b656ac70e86c70a8772e5ae" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2528371-50b896349a4f4b48b4cce5ef240b0c45/fab30d459fc6efe51b656ac70e86c70a8772e5ae;
+    sha256 = "0zfymfssbgb22ixpqsiylyzygs331w5dnkjwqs1i6nwi5i2i83ds";
+  };
+  "fac6370a5441886d40a7aa7b4494da0c3304b397" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/fac6370a5441886d40a7aa7b4494da0c3304b397;
+    sha256 = "1y3b4rs1ca5v0imxx7iijr9lzxawf4brjdm62haxv6wadaqd27qm";
+  };
+  "fb092729cca1243487ce2f17b83e612ee2e645f0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fb092729cca1243487ce2f17b83e612ee2e645f0;
+    sha256 = "136ddzazdpyzk4178g7c88adh50c91bcnv993z87fny2yzc71rh8";
+  };
+  "fb175aabdcfafb6d77b5b7bad0de2c37cbabac81" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/fb175aabdcfafb6d77b5b7bad0de2c37cbabac81;
+    sha256 = "06hxp3g03bk3dvwnif9f5yhl6fc4dah722x5sabhi9pphq0z3ckc";
+  };
+  "fb4d3c4309ce988d3ebc299d517c232e83fdfe7b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/fb4d3c4309ce988d3ebc299d517c232e83fdfe7b;
+    sha256 = "1qkg8zi3czwsija16npjjgfkb2k15q6zrrp3f6nz6mn6443248my";
+  };
+  "fb634cba7663cb05cb4751272114071ba34cc677" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fb634cba7663cb05cb4751272114071ba34cc677;
+    sha256 = "0qd9raqdaw6ayza6ii6hs79ah97pb957bb22azvijmk6p2a81krz";
+  };
+  "fb807fd862137423f4c6611e8ee553e2b04a62e7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2785401-212f8ec6a3d142c8bfeb17366702bbce/fb807fd862137423f4c6611e8ee553e2b04a62e7;
+    sha256 = "14b8pbm93xd7nrb7spwb1wpsiyrqksb25y4mfn2inaismakzxq8p";
+  };
+  "fb8b95b64656d46eb01aeb66dc7607697828e39f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fb8b95b64656d46eb01aeb66dc7607697828e39f;
+    sha256 = "1bznalkd43vbl6x5p0mwpnjmjvs91l2v0nscling0csxkkkrna1w";
+  };
+  "fbc4c9072ed5c93f777e5f6fe6f43486862fa0b8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2613671-efa8cb7212aa45139aff99785a99f6c2/fbc4c9072ed5c93f777e5f6fe6f43486862fa0b8;
+    sha256 = "0kxdjzwk81ixnxxfp4wmn19qq2lbdgv1xic01mpdp00naxzw6s68";
+  };
+  "fc571a1d0a7202a062ecd269c06a2308ab378cb4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fc571a1d0a7202a062ecd269c06a2308ab378cb4;
+    sha256 = "1zfdsd060m1njrkx2hlw7bcwpff23pggyklza2hpdj9k6h3jmdn2";
+  };
+  "fc71358f88c1a01c32f496b064386dba3145a36a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fc71358f88c1a01c32f496b064386dba3145a36a;
+    sha256 = "1sq6f7zpmbqq9b27irf4xx8zg9p906xfpgsdxyrzgwf15vqc3cxc";
+  };
+  "fc72803a9439e161de25108be11e5429ed900f77" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fc72803a9439e161de25108be11e5429ed900f77;
+    sha256 = "1nhbsry6l2wb1w8rv4lkzp42r0iqfhd5r21ckxz10gsngf9v8d5z";
+  };
+  "fc7b29cbf72c69bffecb661d7345ac5be329c14d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2717066-919cce012f444f43b8fd9849400ad87b/fc7b29cbf72c69bffecb661d7345ac5be329c14d;
+    sha256 = "0gqb44kivk31lyrmvnfff65sb0llaqi04vc3270366x5h4sii9n9";
+  };
+  "fc97754c9af277910c57351443a42a210b2eb8a2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fc97754c9af277910c57351443a42a210b2eb8a2;
+    sha256 = "047psrjpddw50plbk1al6wgapzcdhzs8a7g0h2pypwiknxkw09cy";
+  };
+  "fc9d37a2c0ab6854c6b039c509d86b9459982472" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fc9d37a2c0ab6854c6b039c509d86b9459982472;
+    sha256 = "1p8j4q0blxpi9lblbyvix6w0vnds1yxn7ydq4z3qqaxmnixv9kvf";
+  };
+  "fcaba3584b9391b167f49dfe53afe253623ada36" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2608258-d12288bf79ea446a9353c7f9d223b24e/fcaba3584b9391b167f49dfe53afe253623ada36;
+    sha256 = "11dfccim0y3z9pw8hy0z0pqam8wcs3pn5sdr3yjd3g097hz2firp";
+  };
+  "fd441937ce92861563e4bd9e3619d5d9cdf73a55" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/fd441937ce92861563e4bd9e3619d5d9cdf73a55;
+    sha256 = "0fbyr6sax9j9mxfa86waw8v499yzb3sk4pqfsykcamy9dvzav6hm";
+  };
+  "fd44fdad76da5efbaf3bced1a5d2bf12eb028b35" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fd44fdad76da5efbaf3bced1a5d2bf12eb028b35;
+    sha256 = "141rnzqcg3p51saqqd54bl5nj7f5kkm6ysvbcmlcpd5qmxg0swqb";
+  };
+  "fd521968de6928ff3ba9e7a3568d3190fc56573a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fd521968de6928ff3ba9e7a3568d3190fc56573a;
+    sha256 = "0gxwqdk6d6lg3akvn5ydvr2jr2ywq4w38ql0ck1xxj8p5jnwh90m";
+  };
+  "fd5c39fee72ecaed24e8e462a4a71a69c06e4509" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/fd5c39fee72ecaed24e8e462a4a71a69c06e4509;
+    sha256 = "0jfdv5cbgqczza53gd35qgxykxa1660rj5r7p57kbyfhhn116785";
+  };
+  "fd621bb2eef661c744d767a89b7b835495af2a90" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/fd621bb2eef661c744d767a89b7b835495af2a90;
+    sha256 = "14pfnxzc77k809m22l6arqpi2rzdm8f5s07hkqn7ikvddyh55snq";
+  };
+  "fd63513879784b9901479056b82fc51c57ba8666" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/fd63513879784b9901479056b82fc51c57ba8666;
+    sha256 = "0qcxd2x5lhj2vkpc99y8yh0knsx0cnbr6h6zpv35ympybxffdm9r";
+  };
+  "fd9f084abed9009fd3d7585637980961e5ac37c9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2746336-9279cae0020b417daa2c9ef71df497d5/fd9f084abed9009fd3d7585637980961e5ac37c9;
+    sha256 = "1q21jh1pnq2hnc5pyx2bvjivly9d83mf3kh5xsvxgz73sviqr42h";
+  };
+  "fdb6c138bd7f73ccfc7a2324408b8199fe18c5c8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fdb6c138bd7f73ccfc7a2324408b8199fe18c5c8;
+    sha256 = "1sapx3lsi13mz76vljdiwddq5say5ing9jpckjpsg9vvzwpmd03k";
+  };
+  "fdddaa298c770236e8e0ae3fa46d56ab464ff590" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fdddaa298c770236e8e0ae3fa46d56ab464ff590;
+    sha256 = "0psr2i314z03ispws9cr2wfk6vq9l0fwcw1vz65rcns7i24l4bii";
+  };
+  "fdea9eb5b7adc1f8cdca84ff533afa9978bc74e2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2369826-2acd3c361c9d4a858bd63938a2ab980e/fdea9eb5b7adc1f8cdca84ff533afa9978bc74e2;
+    sha256 = "17pnggfb9aj0lahbbs0blfiywdz53bszbrh4bx0n86viyls5g36r";
+  };
+  "fe108abb775ce219aed6c508fa1d8d9ec9710c50" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/fe108abb775ce219aed6c508fa1d8d9ec9710c50;
+    sha256 = "0qknlj971xn147z7992idp3hbwif2fqy02ml8jbxah4v82d1ssdk";
+  };
+  "fe26cc5b44599296ab8cca48bf52350d32f5ccf3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2645089-febc94e74d4940f8a601cd6b98abe18d/fe26cc5b44599296ab8cca48bf52350d32f5ccf3;
+    sha256 = "154jg46kbbfn7ipjap4s8bgfjhzazj3pd2n7yd009drw2l1ald1q";
+  };
+  "fe2fd0043d9dceb3bd974fd46a7f657222f0068f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2616691-982be94b99b442419e99de37630ca843/fe2fd0043d9dceb3bd974fd46a7f657222f0068f;
+    sha256 = "0rq7hnir60k0ncfk0qzin2fk8w2m9l9259qzx7cryf9hvssy1vxq";
+  };
+  "fe34956f65e0611aa1584ca611b7843e22e3e29f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2636785-bb59fe7a4b5f4abc9305901e79ac10da/fe34956f65e0611aa1584ca611b7843e22e3e29f;
+    sha256 = "1hnasgpz4ml4095nnr1936jfx09vfajib3g9szrwdy0bf9rcrdh8";
+  };
+  "fe39e5851d68399087d05d9c22da12a1fdd7b6de" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2641797-79a5af4419414bd1af098301c8bac322/fe39e5851d68399087d05d9c22da12a1fdd7b6de;
+    sha256 = "1rfaalg6rbc1w45b5iipb81n6y0mdqkf1ylfphzbchpqliipl5ba";
+  };
+  "fe79883294e7b730b4ea0e6e72c662ced28e999b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2500002-69b23dcf7a2d4165b2b432780845acb0/fe79883294e7b730b4ea0e6e72c662ced28e999b;
+    sha256 = "0rc7vagcgn74cg4vkzhkhy0jyv5wphacb3kd8kfxzidb1v92k4br";
+  };
+  "fe94f39680410922eeef278b013e20b5ee27e7fe" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2372940-e2185854aff3439f82782883f74d5bf8/fe94f39680410922eeef278b013e20b5ee27e7fe;
+    sha256 = "0wllmwfggykl56kwb92jdz8rcfvrn4hxvj9mav19sc9fg2dibfzf";
+  };
+  "fecddbf47598e42c13644ce42253e7ca8178eb29" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/fecddbf47598e42c13644ce42253e7ca8178eb29;
+    sha256 = "0xwi7xa1jm012lmxhz3al7yhwwv33qz332bqvwamcza63ir6zpw9";
+  };
+  "fed2a12f5d40235d6295fed1092707889ff01b08" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/fed2a12f5d40235d6295fed1092707889ff01b08;
+    sha256 = "08cyqg80grwpmv9fkm7nldz8p12nzssg08cyijc4d5afx6xddym4";
+  };
+  "ff38188923ffc7c35c9b2e533f2ce6f3a9aa3a3d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/ff38188923ffc7c35c9b2e533f2ce6f3a9aa3a3d;
+    sha256 = "03vknw5a43n6kl3llyk7czg5a0w4fkic29b6d8i0q71jxknizf50";
+  };
+  "ff61432b09f3c5882ed0f5f932a0537f38cde5cf" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2716009-3335bc961a4d42e9ac0bd72e7491e442/ff61432b09f3c5882ed0f5f932a0537f38cde5cf;
+    sha256 = "08qcnz8qrxqrrhsll0n9k49cp6fqiacl85n0jhq53jsh805hlw2b";
+  };
+  "ff66ba394c099b33decda558509ec6f4fdb43892" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2581810-569aa4e20f7249d0bfc2a94ef91ec1a8/ff66ba394c099b33decda558509ec6f4fdb43892;
+    sha256 = "12qmiff7fynifhpaivsyg23v6jm89i903dhqqs2xiihbd77ln8lb";
+  };
+  "ffd25a14ee418633d47a558d3a953c501f56e2f3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2493588-b79d458e39e94a44804912814d8e1e50/ffd25a14ee418633d47a558d3a953c501f56e2f3;
+    sha256 = "0kclig15z3ywc7mb0xyv5pvijkzzj4llimij5hqagwwdgi31rirg";
+  };
+  "ffe1832c9002fb490bd976e6906fe43792e2e487" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2487260-b428468bcd6545bfbb79f02a6605b9ef/ffe1832c9002fb490bd976e6906fe43792e2e487;
+    sha256 = "1n5q3v765kblvn9z74jdgxj1f1qdqpnypx1i00xf8ni5if5w183d";
+  };
+  "ffe4b29f6febe2e6345b292bd341aefed751ae1d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2565979-eaaf2006b54843b69b5280979c12ed6d/ffe4b29f6febe2e6345b292bd341aefed751ae1d;
+    sha256 = "159bff8wiz2smjl34l7d581wyy9ihxr576s4blq8hdqkm1wl0va9";
+  };
+  "025037991170960704b2d2a49e7bf37cebf06b85" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/025037991170960704b2d2a49e7bf37cebf06b85;
+    sha256 = "05p86qn4g7qg9wzz62piksf2xi599hyim2bqi38158qrmfmqigdw";
+  };
+  "091a839006f281b7b12ee0d1bd0fff225f0ac73a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/091a839006f281b7b12ee0d1bd0fff225f0ac73a;
+    sha256 = "0m79g350p4gv3yb13i5921gbcc7bx852p5lmivfpwx3wqvghd5pz";
+  };
+  "09dbd9ce439ba4adad23922f5b9002fa4e759bd1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/09dbd9ce439ba4adad23922f5b9002fa4e759bd1;
+    sha256 = "188f2j0ik5c2cmw5ck386diabc24p57yhqrb4c7303d13dnqr1mm";
+  };
+  "0c416ae48c3e2ad2be1333ccc20f6992ce982aa4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/0c416ae48c3e2ad2be1333ccc20f6992ce982aa4;
+    sha256 = "1bm210fw20prl3k51dr9gai3asdg3kq30diln70lgm9wyk18kiv4";
+  };
+  "117189ccfc8241744b0cde19d866507341334ea0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/117189ccfc8241744b0cde19d866507341334ea0;
+    sha256 = "1nv2s6g8i7scqgwbqgsyicys2cwaf3mkvcqqvpc807ag2ad3rxl6";
+  };
+  "12164f23f40b93eb0a4cf6f0acb58596becc8f2f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/12164f23f40b93eb0a4cf6f0acb58596becc8f2f;
+    sha256 = "0px9qidckfldj9b9znxg31alsqrzzgpfjixr003lv410hbn099ir";
+  };
+  "1580d9078ae389f2cea6d568fc4ea0b0ebd5d183" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/1580d9078ae389f2cea6d568fc4ea0b0ebd5d183;
+    sha256 = "1xffqr3bhd4x5h36vk4dnz0hmc64gjg273ysnn68x9k2zdqgdmj0";
+  };
+  "1c44fa7c763743e619fef130346733eb5f107049" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/1c44fa7c763743e619fef130346733eb5f107049;
+    sha256 = "05nms6yrclw38v6180b4bqswwdmlb7l2l388wj4f7i0zi9cc0z1d";
+  };
+  "1f209ff22ef667820d2143b0bef1783612c2dc33" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/1f209ff22ef667820d2143b0bef1783612c2dc33;
+    sha256 = "1w6prwjci9fbp4jln2dl0pdjjiis30r982cjk261jb7ryrzm1bc6";
+  };
+  "2a13498d62f2897b95a2fde8f9117caf2213369d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/2a13498d62f2897b95a2fde8f9117caf2213369d;
+    sha256 = "11khy0pbyqbchzksfp51ihw8ahgpf9kvby6jp2spwf4cqglr4yzj";
+  };
+  "2c0a73c42dae723ea6ada9f3a83b520b4094655f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/2c0a73c42dae723ea6ada9f3a83b520b4094655f;
+    sha256 = "1gm11rsybfsdsbzbyrfwvp1wpy9x84plgwayv59qmn4j15hz7hya";
+  };
+  "2ea89fc7cf11ce2e9f8bd6df71dd99eff85bcc15" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/2ea89fc7cf11ce2e9f8bd6df71dd99eff85bcc15;
+    sha256 = "1zn4b57cf0w74m125iihbn2yjba95v22pn8gxq49qrfg5aci928r";
+  };
+  "2f7a26433cf0506c014fcc5694c194b28a811006" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/2f7a26433cf0506c014fcc5694c194b28a811006;
+    sha256 = "0ikgmmv133lamgmm5dah5sy50pr5g1125bw8rx4l27mgbz5yq276";
+  };
+  "316245a9c9d050b2bce9f47deafb0baa66af6347" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/316245a9c9d050b2bce9f47deafb0baa66af6347;
+    sha256 = "1389lmbg8dby7g14yq8jphvzdzswnwhkpm8aqa3h74ivnpabnpni";
+  };
+  "3536f544f9e91433e6939163fb611c524a5f468f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/3536f544f9e91433e6939163fb611c524a5f468f;
+    sha256 = "0wm2djjaksndivynjdz0f2c56a792r6q13vi19baipm0hglbaq3w";
+  };
+  "3663f96dbca6fd930e000a6617a3bb214a6ee0f0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/3663f96dbca6fd930e000a6617a3bb214a6ee0f0;
+    sha256 = "0qhpfkja24fxnzgl6vihwz2ilvz0jsdk04g5jn5r08iv90klj5c8";
+  };
+  "3d32ebca9fef4352a99f2e0636ac45e9d3b35d03" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/3d32ebca9fef4352a99f2e0636ac45e9d3b35d03;
+    sha256 = "02dsfahlg3fcvzb9aqxiycwd5vcb0q205gbzrh3x5m989flyrs1y";
+  };
+  "44c8dbacafb32300e6af2a0cf5897e5145c2b7f4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/44c8dbacafb32300e6af2a0cf5897e5145c2b7f4;
+    sha256 = "1vjyvp13qbfmv5jgdbicikhjq6wm9216ikqk23w1qsz0xzbn9wb9";
+  };
+  "4511815cd4297243a8afd7a2e799c60880a6ea95" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/4511815cd4297243a8afd7a2e799c60880a6ea95;
+    sha256 = "1rw6h3sc30ypr6304mjg6pzh841wmn5gjd4a3xv4y681nqys30li";
+  };
+  "4d9e2249062c1ccd50913501cbc7ea2fdb8cc94c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/4d9e2249062c1ccd50913501cbc7ea2fdb8cc94c;
+    sha256 = "0z86cczszfk05fmcd7dwfahnv0cm1wj7xq0yr0i332a7jr0g5s6d";
+  };
+  "4e3bb620861aa7c3d996fd8ee7cd3a40c2096bb0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/4e3bb620861aa7c3d996fd8ee7cd3a40c2096bb0;
+    sha256 = "0l9bfkanklr3zywkyn4lb5lzfpqkhr4c4n6kvw9gi4nzg063ifnh";
+  };
+  "574e359a11791294117e7f4ad4f677a99424170a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/574e359a11791294117e7f4ad4f677a99424170a;
+    sha256 = "1vhnylasbla79d2syx41804pshyd7w8ph1y88yyjp5w9g8zbcy0g";
+  };
+  "5756967d4a6019de75418949a564995c64fd81b1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/5756967d4a6019de75418949a564995c64fd81b1;
+    sha256 = "1fy2h21myp9yzc60545appg75in12f13rslhr7bpmsssgjrrz2fg";
+  };
+  "5c884c59ad7491166618894713300acc03499f45" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/5c884c59ad7491166618894713300acc03499f45;
+    sha256 = "19zrbvfnmhivs7gy0bm92kn04fqyc8179mkir5v4wycx7q24w938";
+  };
+  "5ea84c79c69cb4f20a2cbde31b1e9655f352f1c8" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/5ea84c79c69cb4f20a2cbde31b1e9655f352f1c8;
+    sha256 = "02rhs442s9y67kb8gympr42yl3xxx3d34iwqz926gr5721if0gh0";
+  };
+  "60be604621599e16ffec1f76e08339b6f9d89f8d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/60be604621599e16ffec1f76e08339b6f9d89f8d;
+    sha256 = "1nyll0lj0fmdphmah4zd5n6bn2zgy2sgff6mnwch2mm6bvxmgzlm";
+  };
+  "659b18633abf461608be32b8b565f4b70725ee20" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/659b18633abf461608be32b8b565f4b70725ee20;
+    sha256 = "00jywmppclqm62q0zq3b1dww6f27blblc633kcskyxc9f2i8p3qs";
+  };
+  "6f25ee59e861b5697b41d487ab19360684b2079b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/6f25ee59e861b5697b41d487ab19360684b2079b;
+    sha256 = "0y3fiwflj6qfmmpgpyi3xkyn6dls620iwcwq5cdpz4jhzhz5vbqm";
+  };
+  "723429357fc93c212749453abdecffa83625ce63" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/723429357fc93c212749453abdecffa83625ce63;
+    sha256 = "126ncm0szxkskfgwfbx5mhnbdpxl395gn62dv3rdg7xm4wjg3s07";
+  };
+  "73163f4d3a1f9f7015cad45b8b2fe49ee716aed2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/73163f4d3a1f9f7015cad45b8b2fe49ee716aed2;
+    sha256 = "1lkd1i92yc8lyfpnxp9gkgrklmxfj0p3zj1j0png50a4v6qyw55d";
+  };
+  "74ee06b2cb0a84dec755ca05d0b832517a58db9a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/74ee06b2cb0a84dec755ca05d0b832517a58db9a;
+    sha256 = "10xp24ija0l7dn3xd690dk6a342ma4iafmcywinvh111xcwkvvql";
+  };
+  "77c1ef425fc9a747ed3815f78a2616fee747fd12" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/77c1ef425fc9a747ed3815f78a2616fee747fd12;
+    sha256 = "0gspscdvrnvj0ps5z2ckga2ji00y8m9kj3zaqpl06kywyz5p1q1l";
+  };
+  "77cf0dabcf5441932f1317ec4ee4e28bf2039a85" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/77cf0dabcf5441932f1317ec4ee4e28bf2039a85;
+    sha256 = "1mdngkvkss3ia9g6kjiybvqj4w7q39iif1kqfjxzr1gs098q23ng";
+  };
+  "80d27f0c38fd20a082015a2b069457560f523b57" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/80d27f0c38fd20a082015a2b069457560f523b57;
+    sha256 = "1s2cxkgwnzisbj9r55ciwkv42m423cq7nhkywd7d80hy2wrpir5p";
+  };
+  "817fe5e5ddfde58d79455a8b2cf70079f0642770" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/817fe5e5ddfde58d79455a8b2cf70079f0642770;
+    sha256 = "03dh02fjc2ksdhifwx92qfvcaymvkhc5cf4m8jlg9v3lkz1dxa2z";
+  };
+  "81cf86d27a982faf7f6331f91b6b5634cfaa00d0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/81cf86d27a982faf7f6331f91b6b5634cfaa00d0;
+    sha256 = "0n9ra5ynq4kqpd5gsdx72qk8nn8nh9bffbqvyp1jwkbc7vbf6rn1";
+  };
+  "82368148bbcf9a6d07bead1e678bfee5f8631cfb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/82368148bbcf9a6d07bead1e678bfee5f8631cfb;
+    sha256 = "06f7ysl5zxx15x2mc0yl2qxdfydnaclr7zwffip03s1szjfdf078";
+  };
+  "85df0b8a16e3e1c2b99bd8d8703a8c00f80c4ffd" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/85df0b8a16e3e1c2b99bd8d8703a8c00f80c4ffd;
+    sha256 = "0gl18m1fqb2gyd0fnf5bvq77bqvlyngqvqbjikdr1vhj78jp8l2p";
+  };
+  "8a73223e8d37b2fb9151a753a24139f37818e434" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/8a73223e8d37b2fb9151a753a24139f37818e434;
+    sha256 = "0sk5l8ijfjrys0l3mj6ypgx4araw0hnxz0cjzm9bk8y605331znx";
+  };
+  "8ab79f2416da3c5f785bf291971680dbfdb62e26" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/8ab79f2416da3c5f785bf291971680dbfdb62e26;
+    sha256 = "1xlnzpljknkmbw85xz35a48h2fdv9c2ijf0nm7cdc489699v9gfv";
+  };
+  "8c09c7e57e2bc1a99df552e75f3bc3033364bbd1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/8c09c7e57e2bc1a99df552e75f3bc3033364bbd1;
+    sha256 = "168yb57ri0wibsy1gr940y8sxdc9s2vcniizkk4dykpnkay0izl1";
+  };
+  "8e02b6fe5eaaad154d3b7677458a9f52c538129f" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/8e02b6fe5eaaad154d3b7677458a9f52c538129f;
+    sha256 = "0zlz81qm00klwfmnc1133c8q1jgxn1w6b5fajs8jigmhwqahi806";
+  };
+  "8ef45e913784e24ac5b05d020bb1c90e5e1f65b4" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/8ef45e913784e24ac5b05d020bb1c90e5e1f65b4;
+    sha256 = "13rd7mvzc3vxgz7zpa89rdfidflvaxzlv60m1ngcsjigwank5a52";
+  };
+  "8f31c3a2ca87728958356ef279d797c21ff800d2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/8f31c3a2ca87728958356ef279d797c21ff800d2;
+    sha256 = "10vqrm360csnbncrhkyy45nnl9md88jl0f9lmvlav19m60cdxazi";
+  };
+  "90647a14bfb8f6e8cbcc8d8ecce7d8e2500818b9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/90647a14bfb8f6e8cbcc8d8ecce7d8e2500818b9;
+    sha256 = "0hlknlph7dw2c74pmg99apbhdfd844vq77navnynxm890nrjzqs0";
+  };
+  "a0032cd8280294edff61604e9bf0312230cfd79b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/a0032cd8280294edff61604e9bf0312230cfd79b;
+    sha256 = "026b18ka0nsb1ri7wk0iqnjz60fsnr11c22lvhq2wiqh9jqsl9f6";
+  };
+  "a038a78206b6b0572fa3a86e5a96e3fee0d32b04" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/a038a78206b6b0572fa3a86e5a96e3fee0d32b04;
+    sha256 = "0ahhkyb4h23apy04jjif0ys6nqjjrzf27w7h3xvw93mzasc4x515";
+  };
+  "a27eb78abbdabe194ad5b4c1bfe56dfca38e43b0" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/a27eb78abbdabe194ad5b4c1bfe56dfca38e43b0;
+    sha256 = "0bba6vpl4lk376yhjjlgxc81m20i9qq9b7kr2bf7lg76fx485ydq";
+  };
+  "a2e5471c647ec896793c1df59ec6c214756b7644" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/a2e5471c647ec896793c1df59ec6c214756b7644;
+    sha256 = "05n7fnxpg01xg4b8k323h0lbhlqxq2b432454rg5lj5ydd71w9vd";
+  };
+  "a6f1cf388c274ffbbbf5ee9f678d2fd2c982ac9d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/a6f1cf388c274ffbbbf5ee9f678d2fd2c982ac9d;
+    sha256 = "0l0fdmypq1h5whfnk1132z77sbnmgwqhizss8pgjwi9k0qgahgcc";
+  };
+  "afad2bca0d8075378f5239206210c90bc449f66d" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/afad2bca0d8075378f5239206210c90bc449f66d;
+    sha256 = "13944ai93z6md86wq4ghjhlgnw3xd5xf64ski1n0imxy3xnclki9";
+  };
+  "b49b4db86170da54d36c9f77345132f501569443" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/b49b4db86170da54d36c9f77345132f501569443;
+    sha256 = "1dm4ln3cky50hzwpfb8hyzj3wyiwnjzpwybmri7sp51yhfjbssh4";
+  };
+  "b928e6544636d28eb1f1fad8cbfb3a508d6b523b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/b928e6544636d28eb1f1fad8cbfb3a508d6b523b;
+    sha256 = "0a2lgynlylx99aj6jlzkbid6sq8sc1y9sblr3vjdc0rxpzyr7saf";
+  };
+  "bac3a42148c64a342e3a138e254acfc37baf7f7c" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/bac3a42148c64a342e3a138e254acfc37baf7f7c;
+    sha256 = "0z3vq7qnjjihk5h7rr4sjgiyqvqvm64ivra2bdb89hklycawz6c5";
+  };
+  "bf6954d37d21ccd063ce7829bdbf17a34a5972f6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/bf6954d37d21ccd063ce7829bdbf17a34a5972f6;
+    sha256 = "1wmm2rhf0c1351y9mjdyi4dxq2jmsl893ijm99f4zr64nqgxh76b";
+  };
+  "c48ea333ebc4208f44ca53ccec1b4a9224234423" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/c48ea333ebc4208f44ca53ccec1b4a9224234423;
+    sha256 = "0q536yk3rncy3gf6ch5mmsvjizq1n5lkk8nfhg1lrvg7mhxsd257";
+  };
+  "c4ab35a8f3c52c8999804559d5a506f4a4ea28d6" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/c4ab35a8f3c52c8999804559d5a506f4a4ea28d6;
+    sha256 = "03id4awm9lnrrk92d9vdzlwy5g6bai9ig4i5lsk90f814vhz11nq";
+  };
+  "c5f44e9ae34828343c5c6eb3e73c2c451120da78" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/c5f44e9ae34828343c5c6eb3e73c2c451120da78;
+    sha256 = "15qbc27xc2gp431i3hhslwbgsgg3az37swvc37rarqw8jaayfdzw";
+  };
+  "c97e1a685bb16bacc741e943d668230b044da28b" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/c97e1a685bb16bacc741e943d668230b044da28b;
+    sha256 = "1an5cdb74lspq3v15xdksjld444saw7b62nx8c9vy8hq0qkxmyg0";
+  };
+  "ceed10f922981467ca264e2f3c1ba9a6834ee9fb" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/ceed10f922981467ca264e2f3c1ba9a6834ee9fb;
+    sha256 = "0lsghjsy1dxr94crqd4z28vgl1fzwbw2q02k7yh2hzq3p5w5n08s";
+  };
+  "d657a675c488b3ceece090f664b8b3890c0f72c7" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/d657a675c488b3ceece090f664b8b3890c0f72c7;
+    sha256 = "1ddbjh67h2iz3pm0sfj77yc907zcfrzmn0bzyaa4rkz234zzp6hl";
+  };
+  "d80b9d2bef36dbe0669cfea717fe30315568ba9a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/d80b9d2bef36dbe0669cfea717fe30315568ba9a;
+    sha256 = "11p1dbc3zrakwhmw7xi2wdshsbm6azdix8gy81gf8icy55ggg8ma";
+  };
+  "d87b8c33d15b51b773c6f091853c54f865561e64" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/d87b8c33d15b51b773c6f091853c54f865561e64;
+    sha256 = "0qx0pb86fw6v50nl1p59d375bmc3x35cwd0qvbsbszr5w0wla0w2";
+  };
+  "d995c76652895e51297226aedf32dd0c715582e3" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/d995c76652895e51297226aedf32dd0c715582e3;
+    sha256 = "0pgwg8w2svxvnw1p7cp233p866f4kpmfsgaw1ids8z37dw8qa7h0";
+  };
+  "de6a3578fbc96909e587a897c860f56738c9a027" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/de6a3578fbc96909e587a897c860f56738c9a027;
+    sha256 = "1vpm2s3ndg9nqnady3kswfh4bwcrmx1x37m79kcvbpaalbb1w7cr";
+  };
+  "e0a272e2ea952c9c27d010098f6ed3be34d70023" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/e0a272e2ea952c9c27d010098f6ed3be34d70023;
+    sha256 = "1cw0bn4lrk11nynab2s56i982fljd39ibczp92lwv6f9crpbxqqd";
+  };
+  "e18cf443cf050171be2dafbb7847b1eef470d743" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/e18cf443cf050171be2dafbb7847b1eef470d743;
+    sha256 = "10pf020vhki6wv2a8ja4gx5lr4l8fc6fhbyvkmjw6fszf4qkmgzd";
+  };
+  "e89e8d979ec25d6a66f7a72b8390aaa876cb54b2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/e89e8d979ec25d6a66f7a72b8390aaa876cb54b2;
+    sha256 = "0x7mcg0rfx0nvr9356yk4lzilz5x732bhir53qis4z7rfjhdi3fn";
+  };
+  "ecee7a937781e9f7f6528b7bf03dd4cdc12bbd1a" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/ecee7a937781e9f7f6528b7bf03dd4cdc12bbd1a;
+    sha256 = "16l5vasgq7iykpgrhr2q5x5rp780fy5nhzg459varwpr2ixlj640";
+  };
+  "eef376599acf8af872a7ecceb89b8afc1dc53cca" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/eef376599acf8af872a7ecceb89b8afc1dc53cca;
+    sha256 = "10kjixb4gsdy2m0zj0v4sd38qqjbxcy4wmiwvpbpj95nyckf4695";
+  };
+  "f32b43ead099376849798c829e67335923b6f5df" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/f32b43ead099376849798c829e67335923b6f5df;
+    sha256 = "0bzabjvzamnadzx2idzviiyzhv3nkbp7w2wcq20lpzmszk0lxdn5";
+  };
+  "f6efa02b7fe9e154763f4e74a2d13e6016651478" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/f6efa02b7fe9e154763f4e74a2d13e6016651478;
+    sha256 = "1qwgrh9pdhp5rsiimwm6v0hvmi9v3fbijx4pkdgklm6c7mxfmh6g";
+  };
+  "f82d0258fa61f3050a7ec0c48a72a14882f4f9ff" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/f82d0258fa61f3050a7ec0c48a72a14882f4f9ff;
+    sha256 = "10yqzj12sma2xqcxvqdh3s24dl5pwk9wlplxiaplkwm802fn95sw";
+  };
+  "fd8eb71773dfc69f5da73a588a9487e8155eb7d9" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/fd8eb71773dfc69f5da73a588a9487e8155eb7d9;
+    sha256 = "1xfvsj2rsbmnhmgv67j7xkc41n3c61ikvmlglj47iyqxlrcp15hs";
+  };
+  "fe7abbfa12319d22b0735b908af92eafc25d27a2" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/fe7abbfa12319d22b0735b908af92eafc25d27a2;
+    sha256 = "0f6cvhhba05slb5wxyymx46syb7v1ggbgcvisifiaf8wnivh46f9";
+  };
+  "ff648984dc86f826cc03f174f5a1b26e33268529" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/ff648984dc86f826cc03f174f5a1b26e33268529;
+    sha256 = "0l2p41n9w4iap9nixxivn6vlzbl5bb3x47pkr250lgd3s81slhg5";
+  };
+  "ffcb54fe4e2f0e1ee2f22f84cff4ddc49da010f1" = fetchurl {
+    url = http://cdn.unrealengine.com/dependencies/2818068-50a136646fbe4d1b8b290d40ccd3f30a/ffcb54fe4e2f0e1ee2f22f84cff4ddc49da010f1;
+    sha256 = "1irjabajfblyl5s36lasq5rclxagc1finwb7y68wsj3w5195gihg";
+  };
+}
diff --git a/nixpkgs/pkgs/games/ue4/default.nix b/nixpkgs/pkgs/games/ue4/default.nix
new file mode 100644
index 000000000000..fa28dcefa5e0
--- /dev/null
+++ b/nixpkgs/pkgs/games/ue4/default.nix
@@ -0,0 +1,83 @@
+{ stdenv, writeScript, fetchurl, requireFile, unzip, clang_35, mono, which,
+  xorg, xdg-user-dirs }:
+
+let
+  inherit (stdenv) lib;
+  deps = import ./cdn-deps.nix { inherit fetchurl; };
+  linkDeps = writeScript "link-deps.sh" (lib.concatMapStringsSep "\n" (hash:
+    let prefix = lib.concatStrings (lib.take 2 (lib.stringToCharacters hash));
+    in ''
+      mkdir -p .git/ue4-gitdeps/${prefix}
+      ln -s ${lib.getAttr hash deps} .git/ue4-gitdeps/${prefix}/${hash}
+    ''
+  ) (lib.attrNames deps));
+  libPath = stdenv.lib.makeLibraryPath [
+    xorg.libX11 xorg.libXScrnSaver xorg.libXau xorg.libXcursor xorg.libXext
+    xorg.libXfixes xorg.libXi xorg.libXrandr xorg.libXrender xorg.libXxf86vm
+    xorg.libxcb
+  ];
+in
+stdenv.mkDerivation rec {
+  name = "ue4-${version}";
+  version = "4.10.2";
+  sourceRoot = "UnrealEngine-${version}-release";
+  src = requireFile {
+    name = "${sourceRoot}.zip";
+    url = "https://github.com/EpicGames/UnrealEngine/releases/tag/${version}";
+    sha256 = "1rh6r2z00kjzq1i2235py65bg9i482az4rwr14kq9n4slr60wkk1";
+  };
+  unpackPhase = ''
+    ${unzip}/bin/unzip $src
+  '';
+  configurePhase = ''
+    ${linkDeps}
+
+    # Sometimes mono segfaults and things start downloading instead of being
+    # deterministic. Let's just fail in that case.
+    export http_proxy="nodownloads"
+
+    patchShebangs Setup.sh
+    patchShebangs Engine/Build/BatchFiles/Linux
+    ./Setup.sh
+    ./GenerateProjectFiles.sh
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/UnrealEngine
+
+    sharedir="$out/share/UnrealEngine"
+
+    cat << EOF > $out/bin/UE4Editor
+    #! $SHELL -e
+
+    sharedir="$sharedir"
+
+    # Can't include spaces, so can't piggy-back off the other Unreal directory.
+    workdir="\$HOME/.config/unreal-engine-nix-workdir"
+    if [ ! -e "\$workdir" ]; then
+      mkdir -p "\$workdir"
+      ${xorg.lndir}/bin/lndir "\$sharedir" "\$workdir"
+      unlink "\$workdir/Engine/Binaries/Linux/UE4Editor"
+      cp "\$sharedir/Engine/Binaries/Linux/UE4Editor" "\$workdir/Engine/Binaries/Linux/UE4Editor"
+    fi
+
+    cd "\$workdir/Engine/Binaries/Linux"
+    export PATH="${xdg-user-dirs}/bin\''${PATH:+:}\$PATH"
+    export LD_LIBRARY_PATH="${libPath}\''${LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH"
+    exec ./UE4Editor "\$@"
+    EOF
+    chmod +x $out/bin/UE4Editor
+
+    cp -r . "$sharedir"
+  '';
+  buildInputs = [ clang_35 mono which xdg-user-dirs ];
+
+  meta = {
+    description = "A suite of integrated tools for game developers to design and build games, simulations, and visualizations";
+    homepage = https://www.unrealengine.com/what-is-unreal-engine-4;
+    license = stdenv.lib.licenses.unfree;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.puffnfresh ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/games/ue4/generate-expr-from-cdn.sh b/nixpkgs/pkgs/games/ue4/generate-expr-from-cdn.sh
new file mode 100644
index 000000000000..91cab1ca32f5
--- /dev/null
+++ b/nixpkgs/pkgs/games/ue4/generate-expr-from-cdn.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+go() {
+    file="$1"
+
+    IFS=$'\n'
+    for pack in $(perl -n -e '/(<Pack .*\/>)/ && print "$1\n"' $file); do
+        remotepath=$(echo "$pack" | perl -n -e '/RemotePath="([^"]*)"/ && print $1')
+        hash=$(echo "$pack" | perl -n -e '/Hash="([^"]*)"/ && print $1')
+        url="http://cdn.unrealengine.com/dependencies/$remotepath/$hash"
+
+        until sha256=$(nix-prefetch-url $url --type sha256); do
+            true
+        done
+
+        cat <<EOF
+  "$hash" = fetchurl {
+    url = $url;
+    sha256 = "$sha256";
+  };
+EOF
+    done
+}
+
+
+cat <<EOF
+{ fetchurl }:
+
+{
+EOF
+
+go Engine/Build/Commit.gitdeps.xml
+go Engine/Build/Promoted.gitdeps.xml
+
+cat <<EOF
+}
+EOF
diff --git a/nixpkgs/pkgs/games/ue4demos/default.nix b/nixpkgs/pkgs/games/ue4demos/default.nix
new file mode 100644
index 000000000000..b9cc8a6cd6dd
--- /dev/null
+++ b/nixpkgs/pkgs/games/ue4demos/default.nix
@@ -0,0 +1,195 @@
+{ stdenv, fetchurl, unzip, patchelf, xorg, openal }:
+
+let
+  urls = file:
+    [
+      # Untrusted mirrors - do not update hashes
+      "https://ludios.org/mirror/ue4demos/${file}"
+      "http://web.archive.org/web/20140824192039/http://ue4linux.raxxy.com/${file}"
+    ];
+
+  buildDemo = { name, src }:
+    stdenv.mkDerivation rec {
+      inherit name src;
+
+      nativeBuildInputs = [ unzip patchelf ];
+
+      rtdeps = stdenv.lib.makeLibraryPath
+        [ xorg.libXxf86vm xorg.libXext openal ]
+        + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ];
+
+      buildCommand =
+      ''
+        mkdir -p "$out"
+        cd $out
+        unzip $src
+
+        interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
+        binary=$(find . -executable -type f)
+        patchelf \
+          --set-interpreter $interpreter \
+          --set-rpath ${rtdeps} \
+          "$binary"
+
+        # Workaround on
+        # LogLinuxPlatformFile:Warning: open('/nix/store/hash-ue4demos-demo/demo/demo/Saved/Config/CleanSourceConfigs/Engine.ini', Flags=0x00080241) failed: errno=2 (No such file or directory)
+        # for Vehicle, Shooter and Strategy games.
+        ls | grep ' ' && $(
+          haxname=$(ls | grep ' ' | sed 's/ //g'); \
+          haxpath=$(ls | grep ' ')/$haxname/Saved; \
+          mkdir -p "$haxpath"/Config/CleanSourceConfigs; \
+          ln -s /dev/null "$haxpath"/Config/CleanSourceConfigs/Engine.ini; \
+          mkdir -p "$haxpath"/Logs; \
+          ln -s /dev/null "$haxpath"/Logs/$haxname.log)
+
+        # Executables are buried under a varied paths across demos.
+        mkdir bin
+        cd bin
+        ln -s "$out/$binary" $(basename "$out/$binary")
+      '';
+
+      meta = {
+        description = "Unreal Engine 4 Linux demos";
+        homepage = https://wiki.unrealengine.com/Linux_Demos;
+        platforms = [ "x86_64-linux" ];
+        license = stdenv.lib.licenses.unfree;
+      };
+    };
+
+in {
+  tappy_chicken = buildDemo rec {
+    name = "ue4demos-tappy_chicken";
+    src = fetchurl {
+      urls = urls "tappy_chicken.zip";
+      sha256 = "0lwhvk3lpb2r5ng2cnzk7fpjj5lwhy2sch1a8v154x1xfhfb3h4v";
+    };
+  };
+
+  swing_ninja = buildDemo rec {
+    name = "ue4demos-swing_ninja";
+    src = fetchurl {
+      urls = urls "swing_ninja.zip";
+      sha256 = "1bmgqqk3lda5h7nnqi59jgyrsn0clr3xs0k1jclnqf9fk0m8hjcv";
+    };
+  };
+
+  card_game = buildDemo rec {
+    name = "ue4demos-card_game";
+    src = fetchurl {
+      urls = urls "card_game.zip";
+      sha256 = "154baqias5q7kad0c89k35jbmnmlm865sll02mi7bk1yllcckz5z";
+    };
+  };
+
+  vehicle_game = buildDemo rec {
+    name = "ue4demos-vehicle_game";
+    src = fetchurl {
+      urls = urls "vehicle_game.zip";
+      sha256 = "03dlacf1iv7sgn7pl3sx9r6243wy8fsi2kd858syfm9slg0190bs";
+    };
+  };
+
+  shooter_game = buildDemo rec {
+    name = "ue4demos-shooter_game";
+    src = fetchurl {
+      urls = urls "shooter_game.zip";
+      sha256 = "1bk32k349iqbqk8x8jffnqq0pjiqmvrvv675xxmlvkkr8qrlhz98";
+    };
+  };
+
+  strategy_game = buildDemo rec {
+    name = "ue4demos-strategy_game";
+    src = fetchurl {
+      urls = urls "strategy_game.zip";
+      sha256 = "1p7i966v1ssm20y12g4wsccpgnky3szy19qyjlacynk7bgbk6lg7";
+    };
+  };
+
+  black_jack = buildDemo rec {
+    name = "ue4demos-black_jack";
+    src = fetchurl {
+      urls = urls "black_jack.zip";
+      sha256 = "0g52wkzn5isa3az32y25yx5b56wxks97pajqwkmm6gf4qpkfksxv";
+    };
+  };
+
+  landscape_mountains = buildDemo rec {
+    name = "ue4demos-landscape_mountains";
+    src = fetchurl {
+      urls = urls "landscape_mountains.zip";
+      sha256 = "14jzajhs3cpydvf3ag7lpj4hkpbjpwnn3xkdvdx92fi0pcl8cwym";
+    };
+  };
+
+  matinee_demo = buildDemo rec {
+    name = "ue4demos-matinee_demo";
+    src = fetchurl {
+      urls = urls "matinee_demo.zip";
+      sha256 = "0ib8k6fl15cxzdarar2sqq5v3g3c7p2jidkdjd00nym6cvkibb4d";
+    };
+  };
+
+  elemental_demo = buildDemo rec {
+    name = "ue4demos-elemental_demo";
+    src = fetchurl {
+      urls = urls "elemental_demo.zip";
+      sha256 = "1v4jdsy8jvv8wgc8dx17q17xigfrya5q0nfdzw4md7fzm3bg9z0v";
+    };
+  };
+
+  effects_cave_demo = buildDemo rec {
+    name = "ue4demos-effects_cave_demo";
+    src = fetchurl {
+      urls = urls "effects_cave_demo.zip";
+      sha256 = "0lvd3aaha2x9pnpkdmrzi6nf7hymr95834z3l8shygjf9kbbzsz4";
+    };
+  };
+
+  realistic_rendering = buildDemo rec {
+    name = "ue4demos-realistic_rendering";
+    src = fetchurl {
+      urls = urls "realistic_rendering_demo.zip";
+      sha256 = "0r16nznkv475hkw5rnngqsc69ch8vh86dppyyyr9nn43dkr2110a";
+    };
+  };
+
+  reflections_subway = buildDemo rec {
+    name = "ue4demos-reflections_subway";
+    src = fetchurl {
+      urls = urls "reflections_subway_demo.zip";
+      sha256 = "0dw5sm7405gxw9iqz0vpnhdprrb4wl5i14pvzl1381k973m8bd00";
+    };
+  };
+
+  scifi_hallway_demo = buildDemo rec {
+    name = "ue4demos-scifi_hallway_demo";
+    src = fetchurl {
+      urls = urls "sci-fi_hallway_demo.zip";
+      sha256 = "14qp9iwm47awn8d9j6ijh6cnds308x60xs4vi2fvz2666jlz1pq2";
+    };
+  };
+
+  mobile_temple_demo = buildDemo rec {
+    name = "ue4demos-mobile_temple_demo";
+    src = fetchurl {
+      urls = urls "mobile_temple_demo.zip";
+      sha256 = "12bz4h1b9lhmqglwsa6r8q48ijqbjdha9fql31540d01kigaka75";
+    };
+  };
+
+  stylized_demo = buildDemo rec {
+    name = "ue4demos-stylized_demo";
+    src = fetchurl {
+      urls = urls "stylized_demo.zip";
+      sha256 = "1676ridmj8rk4y4hbdscfnnka5l636av1xxl0qwvk236kq9j7v0l";
+    };
+  };
+
+  blueprint_examples_demo = buildDemo rec {
+    name = "ue4demos-blueprint_examples_demo";
+    src = fetchurl {
+      urls = urls "blueprint_examples_demo.zip";
+      sha256 = "076q33h2hy965fvr805hsprkpcmizf638lj2ik8k923v86b15nbv";
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/games/ufoai/default.nix b/nixpkgs/pkgs/games/ufoai/default.nix
new file mode 100644
index 000000000000..f699a6a05c62
--- /dev/null
+++ b/nixpkgs/pkgs/games/ufoai/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, libtheora, xvidcore, libGLU_combined, SDL, SDL_ttf, SDL_mixer
+, curl, libjpeg, libpng, gettext, cunit, enableEditor?false }:
+
+stdenv.mkDerivation rec {
+  name = "ufoai-2.4";
+  src = fetchurl {
+    url = "mirror://sourceforge/ufoai/${name}-source.tar.bz2";
+    sha256 = "0kxrbcjrharcwz319s90m789i4my9285ihp5ax6kfhgif2vn2ji5";
+  };
+
+  srcData = fetchurl {
+    url = "mirror://sourceforge/ufoai/${name}-data.tar";
+    sha256 = "1drhh08cqqkwv1yz3z4ngkplr23pqqrdx6cp8c3isy320gy25cvb";
+  };
+
+  preConfigure = ''tar xvf "${srcData}"'';
+
+  configureFlags = [ "--enable-release" "--enable-sse" ]
+    ++ stdenv.lib.optional enableEditor "--enable-uforadiant";
+
+  buildInputs = [
+    libtheora xvidcore libGLU_combined SDL SDL_ttf SDL_mixer
+    curl libjpeg libpng gettext cunit
+  ];
+
+  NIX_CFLAGS_LINK = "-lgcc_s"; # to avoid occasional runtime error in finding libgcc_s.so.1
+
+  meta = {
+    homepage = http://ufoai.org;
+    description = "A squad-based tactical strategy game in the tradition of X-Com";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = stdenv.lib.platforms.linux;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/games/ultimatestunts/default.nix b/nixpkgs/pkgs/games/ultimatestunts/default.nix
new file mode 100644
index 000000000000..63da46854857
--- /dev/null
+++ b/nixpkgs/pkgs/games/ultimatestunts/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl, SDL, libGLU_combined, SDL_image, freealut, openal, libvorbis,
+pkgconfig}:
+
+stdenv.mkDerivation rec {
+  name = "ultimate-stunts-0.7.6.1";
+  src = fetchurl {
+    url = mirror://sourceforge/ultimatestunts/ultimatestunts-srcdata-0761.tar.gz;
+    sha256 = "0rd565ml6l927gyq158klhni7myw8mgllhv0xl1fg9m8hlzssgrv";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ SDL libGLU_combined SDL_image freealut openal libvorbis ];
+
+  postPatch = ''
+    sed -e '1i#include <unistd.h>' -i $(find . -name '*.c' -o -name '*.cpp')
+  '';
+
+  meta = {
+    homepage = http://www.ultimatestunts.nl/;
+    description = "Remake of the popular racing DOS-game Stunts";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/ultrastardx/default.nix b/nixpkgs/pkgs/games/ultrastardx/default.nix
new file mode 100644
index 000000000000..2e9b3cf8d8ca
--- /dev/null
+++ b/nixpkgs/pkgs/games/ultrastardx/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, autoreconfHook, fetchFromGitHub, pkgconfig
+, lua, fpc, pcre, portaudio, freetype, libpng
+, SDL2, SDL2_image, SDL2_gfx, SDL2_mixer, SDL2_net, SDL2_ttf
+, ffmpeg, sqlite, zlib, libX11, libGLU_combined }:
+
+let
+  sharedLibs = [
+    pcre portaudio freetype
+    SDL2 SDL2_image SDL2_gfx SDL2_mixer SDL2_net SDL2_ttf
+    sqlite lua zlib libX11 libGLU_combined ffmpeg
+  ];
+
+in stdenv.mkDerivation rec {
+  name = "ultrastardx-${version}";
+  version = "2017.8.0";
+  src = fetchFromGitHub {
+    owner = "UltraStar-Deluxe";
+    repo = "USDX";
+    rev = "v${version}";
+    sha256 = "1zp0xfwzci3cjmwx3cprcxvm60cik5cvhvrz9n4d6yb8dv38nqzm";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ fpc libpng ] ++ sharedLibs;
+
+  postPatch = ''
+    # autoconf substitutes strange things otherwise
+    substituteInPlace src/config.inc.in \
+      --subst-var-by libpcre_LIBNAME libpcre.so.1
+  '';
+
+  preBuild = with stdenv.lib;
+    let items = concatMapStringsSep " " (x: "-rpath ${getLib x}/lib") sharedLibs;
+    in ''
+      export NIX_LDFLAGS="$NIX_LDFLAGS ${items}"
+    '';
+
+  # dlopened libgcc requires the rpath not to be shrinked
+  dontPatchELF = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://ultrastardx.sourceforge.net/;
+    description = "Free and open source karaoke game";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ Profpatsch ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/unnethack/default.nix b/nixpkgs/pkgs/games/unnethack/default.nix
new file mode 100644
index 000000000000..a1a8272fd0f9
--- /dev/null
+++ b/nixpkgs/pkgs/games/unnethack/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchgit, utillinux, ncurses, flex, bison }:
+
+stdenv.mkDerivation rec {
+  name = "unnethack-5.3.1";
+
+  src = fetchgit {
+    url = "https://github.com/UnNetHack/UnNetHack";
+    rev = "63677eb256b5a75430f190cfb0f76bdd9bd0b9dd";
+    sha256 = "0w6vyg0j2xdvr5vdlyf3dwliyxjzcr5fdbx5maygxiql44j104v3";
+  };
+
+  buildInputs = [ ncurses ];
+
+  nativeBuildInputs = [ utillinux flex bison ];
+
+  configureFlags = [ "--enable-curses-graphics"
+                     "--disable-tty-graphics"
+                     "--with-owner=no"
+                     "--with-group=no"
+                     "--with-gamesdir=/tmp/unnethack"
+                   ];
+
+  makeFlags = [ "GAMEPERM=744" ];
+
+  postInstall = ''
+    cp -r /tmp/unnethack $out/share/unnethack/profile
+    mv $out/bin/unnethack $out/bin/.wrapped_unnethack
+    cat <<EOF >$out/bin/unnethack
+      #! ${stdenv.shell} -e
+      if [ ! -d ~/.unnethack ]; then
+        mkdir -p ~/.unnethack
+        cp -r $out/share/unnethack/profile/* ~/.unnethack
+        chmod -R +w ~/.unnethack
+      fi
+
+      ln -s ~/.unnethack /tmp/unnethack
+
+      cleanup() {
+        rm -rf /tmp/unnethack
+      }
+      trap cleanup EXIT
+
+      $out/bin/.wrapped_unnethack
+    EOF
+    chmod +x $out/bin/unnethack
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Fork of NetHack";
+    homepage = https://unnethack.wordpress.com/;
+    license = "nethack";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ abbradar ];
+  }; 
+}
diff --git a/nixpkgs/pkgs/games/uqm/3dovideo.nix b/nixpkgs/pkgs/games/uqm/3dovideo.nix
new file mode 100644
index 000000000000..8d1bf2b68872
--- /dev/null
+++ b/nixpkgs/pkgs/games/uqm/3dovideo.nix
@@ -0,0 +1,61 @@
+{ stdenv, requireFile, writeText, fetchurl, haskellPackages }:
+
+with stdenv.lib;
+
+let
+  makeSpin = num: let
+    padded = (optionalString (lessThan num 10) "0") + toString num;
+  in "slides.spins.${padded} = 3DOVID:" +
+     "addons/3dovideo/spins/ship${padded}.duk:" +
+     "addons/3dovideo/spins/spin.aif:" +
+     "addons/3dovideo/spins/ship${padded}.aif:89";
+
+  videoRMP = writeText "3dovideo.rmp" (''
+    slides.ending = 3DOVID:addons/3dovideo/ending/victory.duk
+    slides.intro = 3DOVID:addons/3dovideo/intro/intro.duk
+  '' + concatMapStrings makeSpin (range 0 24));
+
+  helper = with haskellPackages; mkDerivation {
+    pname = "uqm3donix";
+    version = "0.1.0.0";
+
+    src = fetchurl {
+      url = "https://github.com/aszlig/uqm3donix/archive/v0.1.0.0.tar.gz";
+      sha256 = "0d40gpc3bqkw68varjxwgbdzxw0dvwqksijmvij5ixmlcspbjgvb";
+    };
+
+    isLibrary = false;
+    isExecutable = true;
+
+    buildDepends = [ base binary bytestring filepath tar ];
+
+    description = "Extract video files from a Star Control II 3DO image";
+    license = stdenv.lib.licenses.bsd3;
+  };
+
+in stdenv.mkDerivation {
+  name = "uqm-3dovideo";
+
+  src = requireFile rec {
+    name = "videos.tar";
+    sha256 = "044h0cl69r0kc43vk4n0akk0prwzb7inq324h5yfqb38sd4zkds1";
+    message = ''
+      In order to get the intro and ending sequences from the 3DO version, you
+      need to have the original 3DO Star Control II CD. Create an image from
+      the CD and use uqm3donix* to extract a tarball with the videos from it.
+      The reason for this is because the 3DO uses its own proprietary disk
+      format.
+
+      Save the file as videos.tar and use "nix-prefetch-url file://\$PWD/${name}" to
+      add it to the Nix store.
+
+      [*] ${helper}/bin/uqm3donix CDIMAGE ${name}
+    '';
+  };
+
+  buildCommand = ''
+    mkdir -vp "$out"
+    tar xf "$src" -C "$out" --strip-components=3
+    cp "${videoRMP}" "$out/3dovideo.rmp"
+  '';
+}
diff --git a/nixpkgs/pkgs/games/uqm/default.nix b/nixpkgs/pkgs/games/uqm/default.nix
new file mode 100644
index 000000000000..00592f7c39bb
--- /dev/null
+++ b/nixpkgs/pkgs/games/uqm/default.nix
@@ -0,0 +1,107 @@
+{ stdenv, lib, fetchurl, pkgconfig, libGLU_combined
+, SDL, SDL_image, libpng, libvorbis, libogg, libmikmod
+
+, use3DOVideos ? false, requireFile ? null, writeText ? null
+, haskellPackages ? null
+
+, useRemixPacks ? false
+}:
+
+assert use3DOVideos -> requireFile != null && writeText != null
+                    && haskellPackages != null;
+
+let
+  videos = import ./3dovideo.nix {
+    inherit stdenv requireFile writeText fetchurl haskellPackages;
+  };
+
+  remixPacks = lib.imap1 (num: sha256: fetchurl rec {
+    name = "uqm-remix-disc${toString num}.uqm";
+    url = "mirror://sourceforge/sc2/${name}";
+    inherit sha256;
+  }) [
+    "1s470i6hm53l214f2rkrbp111q4jyvnxbzdziqg32ffr8m3nk5xn"
+    "1pmsq65k8gk4jcbyk3qjgi9yqlm0dlaimc2r8hz2fc9f2124gfvz"
+    "07g966ylvw9k5q9jdzqdczp7c5qv4s91xjlg4z5z27fgcs7rzn76"
+    "1l46k9aqlcp7d3fjkjb3n05cjfkxx8rjlypgqy0jmdx529vikj54"
+  ];
+
+in stdenv.mkDerivation rec {
+  name = "uqm-${version}";
+  version = "0.7.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/sc2/uqm-${version}-source.tgz";
+    sha256 = "08dj7fsvflxx69an6vpf3wx050mk0ycmdv401yffrrqbgxgmqsd3";
+  };
+
+  content = fetchurl {
+    url = "mirror://sourceforge/sc2/uqm-${version}-content.uqm";
+    sha256 = "1gx39ns698hyczd4nx73mr0z86bbi4q3h8sw3pxjh1lzla5xpxmq";
+  };
+
+  voice = fetchurl {
+    url = "mirror://sourceforge/sc2/uqm-${version}-voice.uqm";
+    sha256 = "0yf9ff5sxk229202gsa7ski6wn7a8hkjjyr1yr7mjdxsnh0zik5w";
+  };
+
+  music = fetchurl {
+    url = "mirror://sourceforge/sc2/uqm-${version}-3domusic.uqm";
+    sha256 = "10nbvcrr0lc0mxivxfkcbxnibwk3vwmamabrlvwdsjxd9pk8aw65";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ SDL SDL_image libpng libvorbis libogg libmikmod libGLU_combined ];
+
+  postUnpack = ''
+    mkdir -p uqm-${version}/content/packages
+    mkdir -p uqm-${version}/content/addons
+    ln -s "$content" "uqm-${version}/content/packages/uqm-0.7.0-content.uqm"
+    ln -s "$music" "uqm-${version}/content/addons/uqm-0.7.0-3domusic.uqm"
+    ln -s "$voice" "uqm-${version}/content/addons/uqm-0.7.0-voice.uqm"
+  '' + lib.optionalString useRemixPacks (lib.concatMapStrings (disc: ''
+    ln -s "${disc}" "uqm-$version/content/addons/${disc.name}"
+  '') remixPacks) + lib.optionalString use3DOVideos ''
+    ln -s "${videos}" "uqm-${version}/content/addons/3dovideo"
+  '';
+
+  # Using _STRINGS_H as include guard conflicts with glibc.
+  postPatch = ''
+    sed -i -e '/^#/s/_STRINGS_H/_UQM_STRINGS_H/g' src/uqm/comm/*/strings.h
+  '';
+
+  # uqm has a 'unique' build system with a root script incidentally called
+  # 'build.sh'.
+  configurePhase = ''
+    echo "INPUT_install_prefix_VALUE='$out'" >> config.state
+    echo "INPUT_install_bindir_VALUE='$out/bin'" >> config.state
+    echo "INPUT_install_libdir_VALUE='$out/lib'" >> config.state
+    echo "INPUT_install_sharedir_VALUE='$out/share'" >> config.state
+    PREFIX=$out ./build.sh uqm config
+  '';
+
+  buildPhase = ''
+    ./build.sh uqm
+  '';
+
+  installPhase = ''
+    ./build.sh uqm install
+    sed -i $out/bin/uqm -e "s%/usr/local/games/%$out%g"
+  '';
+
+  meta = {
+    description = "Remake of Star Control II";
+    longDescription = ''
+      The goals for the The Ur-Quan Masters project are:
+        - to bring Star Control II to modern platforms, thereby making a lot of
+          people happy
+        - to make game translations easy, thereby making even more people happy
+        - to adapt the code so that people can more easily make their own
+          spin-offs, thereby making zillions more people happy!
+    '';
+    homepage = http://sc2.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with lib.maintainers; [ jcumming aszlig ];
+    platforms = with lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/urbanterror/default.nix b/nixpkgs/pkgs/games/urbanterror/default.nix
new file mode 100644
index 000000000000..1cd87541b8c3
--- /dev/null
+++ b/nixpkgs/pkgs/games/urbanterror/default.nix
@@ -0,0 +1,74 @@
+{ stdenv, fetchurl, unzip, SDL, libGLU_combined, openal, curl, libXxf86vm }:
+
+stdenv.mkDerivation rec {
+  name = "urbanterror-${version}";
+  version = "4.3.4";
+
+  srcs =
+    [ (fetchurl {
+         url = "http://cdn.urbanterror.info/urt/43/releases/zips/UrbanTerror434_full.zip";
+         sha256 = "1rx4nnndsk88nvd7k4p35cw6znclkkzm2bl5j6vn6mjjdk66jrki";
+       })
+      (fetchurl {
+         url = "https://github.com/FrozenSand/ioq3-for-UrbanTerror-4/archive/release-${version}.zip";
+         sha256 = "1s9pmw7rbnzwzl1llcs0kr2krf4daf8hhnz1j89qk4bq9a9qfp71";
+       })
+    ];
+
+  buildInputs = [ unzip SDL libGLU_combined openal curl libXxf86vm ];
+  sourceRoot = "ioq3-for-UrbanTerror-4-release-${version}";
+
+  configurePhase = ''
+    echo "USE_OPENAL = 1" > Makefile.local
+    echo "USE_OPENAL_DLOPEN = 0" >> Makefile.local
+    echo "USE_CURL = 1" >> Makefile.local
+    echo "USE_CURL_DLOPEN = 0" >> Makefile.local
+  '';
+
+  installPhase = ''
+    destDir="$out/opt/urbanterror"
+    mkdir -p "$destDir"
+    mkdir -p "$out/bin"
+    cp -v build/release-linux-*/Quake3-UrT.* \
+          "$destDir/Quake3-UrT"
+    cp -v build/release-linux-*/Quake3-UrT-Ded.* \
+          "$destDir/Quake3-UrT-Ded"
+    cp -rv ../UrbanTerror43/q3ut4 "$destDir"
+    cat << EOF > "$out/bin/urbanterror"
+    #! ${stdenv.shell}
+    cd "$destDir"
+    exec ./Quake3-UrT "\$@"
+    EOF
+    chmod +x "$out/bin/urbanterror"
+    cat << EOF > "$out/bin/urbanterror-ded"
+    #! ${stdenv.shell}
+    cd "$destDir"
+    exec ./Quake3-UrT-Ded "\$@"
+    EOF
+    chmod +x "$out/bin/urbanterror-ded"
+  '';
+
+  postFixup = ''
+    p=$out/opt/urbanterror/Quake3-UrT
+    cur_rpath=$(patchelf --print-rpath $p)
+    patchelf --set-rpath $cur_rpath:${libGLU_combined}/lib $p
+  '';
+
+  hardeningDisable = [ "format" ];
+
+  meta = with stdenv.lib; {
+    description = "A multiplayer tactical FPS on top of Quake 3 engine";
+    longDescription = ''
+      Urban Terror is a free multiplayer first person shooter developed by
+      FrozenSand, that (thanks to the ioquake3-code) does not require
+      Quake III Arena anymore. Urban Terror can be described as a Hollywood
+      tactical shooter; somewhat realism based, but the motto is "fun over
+      realism". This results in a very unique, enjoyable and addictive game.
+    '';
+    homepage = http://www.urbanterror.info;
+    license = licenses.unfreeRedistributable;
+    maintainers = with maintainers; [ astsmtl fpletz ];
+    platforms = platforms.linux;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/games/ut2004/default.nix b/nixpkgs/pkgs/games/ut2004/default.nix
new file mode 100644
index 000000000000..3f306ac6eb54
--- /dev/null
+++ b/nixpkgs/pkgs/games/ut2004/default.nix
@@ -0,0 +1,9 @@
+{ callPackage }:
+
+{
+  ut2004-demo = callPackage ./demo.nix { };
+
+  ut2004 = gamePacks: callPackage ./wrapper.nix {
+    inherit gamePacks;
+  };
+}
diff --git a/nixpkgs/pkgs/games/ut2004/demo.nix b/nixpkgs/pkgs/games/ut2004/demo.nix
new file mode 100644
index 000000000000..7039ff44a09b
--- /dev/null
+++ b/nixpkgs/pkgs/games/ut2004/demo.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl }:
+
+let
+  arch =
+    if stdenv.hostPlatform.system == "x86_64-linux" then "amd64"
+    else if stdenv.hostPlatform.system == "i686-linux" then "x86"
+    else throw "Unsupported architecture";
+
+in stdenv.mkDerivation rec {
+  name = "ut2004-demo-${version}";
+  version = "3334";
+
+  src = fetchurl {
+    url = "http://vlaai.snt.utwente.nl/pub/games/UT2004/demo/UT2004-LNX-Demo${version}.run.gz";
+    sha256 = "0d5f84qz8l1rg16yzx2k4ikr46n9iwj68na1bqi87wrww7ck6jh7";
+  };
+
+  buildCommand = ''
+    cat $src | gunzip > setup.run
+    chmod +x setup.run
+    ./setup.run --noexec --target .
+    mkdir $out
+    tar -xaf ut2004demo.tar.bz2 -C $out
+    tar -xaf linux-${arch}.tar.bz2 -C $out
+
+    rm $out/System/libSDL-1.2.so.0
+    rm $out/System/openal.so
+  '';
+
+  dontStrip = true;
+  dontPatchELF = true;
+
+  meta = with stdenv.lib; {
+    description = "A first-person shooter video game developed by Epic Games and Digital Extreme -- demo version";
+    homepage = http://www.unrealtournament2004.com;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ abbradar ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/ut2004/wrapper.nix b/nixpkgs/pkgs/games/ut2004/wrapper.nix
new file mode 100644
index 000000000000..31d0763be4d2
--- /dev/null
+++ b/nixpkgs/pkgs/games/ut2004/wrapper.nix
@@ -0,0 +1,46 @@
+{ stdenv, lib, runCommand, buildEnv, makeWrapper, makeDesktopItem, gamePacks, libstdcxx5, SDL, openal }:
+
+let
+  game = buildEnv {
+    name = "ut2004-game";
+    paths = gamePacks;
+    ignoreCollisions = true;
+    pathsToLink = [ "/" "/System" ];
+    postBuild = ''
+      ln -s ${lib.getLib SDL}/lib/libSDL-1.2.so.0 $out/System
+      ln -s ${lib.getLib openal}/lib/libopenal.so $out/System/openal.so
+      for i in $out/System/*-bin; do
+        path="$(readlink -f "$i")"
+        rm "$i"
+        cp "$path" "$i"
+        chmod +w "$i"
+        patchelf \
+          --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
+          --set-rpath "$out/System:${lib.makeLibraryPath [ libstdcxx5 ]}" \
+          "$i"
+      done
+    '';
+  };
+
+  desktop = makeDesktopItem {
+    name = "ut2004";
+    desktopName = "Unreal Tournament 2004";
+    comment = "A first-person shooter video game developed by Epic Games and Digital Extreme";
+    genericName = "First-person shooter";
+    categories = "Application;Game;";
+    exec = "ut2004";
+  };
+
+in runCommand "ut2004" {
+  nativeBuildInputs = [ makeWrapper ];
+} ''
+  mkdir -p $out/bin
+  for i in ${game}/System/*-bin; do
+    name="$(basename "$i")"
+    makeWrapper $i $out/bin/''${name%-bin} \
+      --run "cd ${game}/System"
+  done
+
+  mkdir -p $out/share/applications
+  ln -s ${desktop}/share/applications/* $out/share/applications
+''
diff --git a/nixpkgs/pkgs/games/vapor/default.nix b/nixpkgs/pkgs/games/vapor/default.nix
new file mode 100644
index 000000000000..0209fd83b1c6
--- /dev/null
+++ b/nixpkgs/pkgs/games/vapor/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }:
+
+let
+  pname = "vapor";
+  version = "0.2.3";
+  commitid = "dbf509f";
+
+  icon = fetchurl {
+    url = "http://vapor.love2d.org/sites/default/files/vapT240x90.png";
+    sha256 = "1xlra74lpm1y54z6zm6is0gldkswp3wdw09m6a306ch0xjf3f87f";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "Vapor";
+    exec = "${pname}";
+    icon = "${icon}";
+    comment = "LÖVE Distribution Client"; 
+    desktopName = "Vapor";
+    genericName = "vapor";
+    categories = "Game;";
+  };
+
+in 
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url =
+    "https://github.com/josefnpat/${pname}/releases/download/${version}/${pname}_${commitid}.love";
+    sha256 = "0w2qkrrkzfy4h4jld18apypmbi8a8r89y2l11axlv808i2rg68fk";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ lua love ];
+
+  phases = "installPhase";
+
+  installPhase =
+  ''
+    mkdir -p $out/bin
+    mkdir -p $out/share
+
+    cp -v $src $out/share/${pname}.love
+
+    makeWrapper ${love}/bin/love $out/bin/${pname} --add-flags $out/share/${pname}.love
+
+    chmod +x $out/bin/${pname}
+    mkdir -p $out/share/applications
+    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "LÖVE Distribution Client allowing access to many games";
+    platforms = platforms.linux;
+    license = licenses.zlib;
+    maintainers = with maintainers; [ leenaars ];
+    downloadPage = http://vapor.love2d.org/;
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/vassal/default.nix b/nixpkgs/pkgs/games/vassal/default.nix
new file mode 100644
index 000000000000..84984fcbb587
--- /dev/null
+++ b/nixpkgs/pkgs/games/vassal/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "VASSAL-3.2.17";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/vassalengine/${name}-linux.tar.bz2";
+    sha256 = "0nxskr46janxnb31c03zv61kr46vy98l7cwxha3vll81l4ij1sjb";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/vassal $out/doc
+
+    cp CHANGES LICENSE README $out
+    cp -R lib/* $out/share/vassal
+    cp -R doc/* $out/doc
+
+    makeWrapper ${jre}/bin/java $out/bin/vassal \
+      --add-flags "-Duser.dir=$out -cp $out/share/vassal/Vengine.jar \
+      VASSAL.launch.ModuleManager"
+  '';
+
+  # Don't move doc to share/, VASSAL expects it to be in the root
+  forceShare = [ "man" "info" ];
+
+  meta = with stdenv.lib; {
+      description = "A free, open-source boardgame engine";
+      homepage = http://www.vassalengine.org/;
+      license = licenses.lgpl21;
+      maintainers = with maintainers; [ tvestelind ];
+      platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/vdrift/0001-Ignore-missing-data-for-installation.patch b/nixpkgs/pkgs/games/vdrift/0001-Ignore-missing-data-for-installation.patch
new file mode 100644
index 000000000000..6794e8018aff
--- /dev/null
+++ b/nixpkgs/pkgs/games/vdrift/0001-Ignore-missing-data-for-installation.patch
@@ -0,0 +1,27 @@
+From 7ebe252a8488a63675d1c50c0faa1bdc5ff97889 Mon Sep 17 00:00:00 2001
+From: Linus Heckemann <git@sphalerite.org>
+Date: Fri, 5 Jan 2018 21:27:28 +0100
+Subject: [PATCH] Ignore missing data for installation
+
+This is for packaging vdrift separately from its data in nixpkgs.
+---
+ SConstruct | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 4394de0b..beef29a4 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -511,9 +511,6 @@ env.Alias(target = 'bin-package', source = bin_archive)
+ #----------------#
+ Export(['env', 'version', 'src_dir', 'bin_dir'])
+ if 'install' in COMMAND_LINE_TARGETS:
+-    if not os.path.isfile('data/SConscript'):
+-        raise 'VDrift data not found. Please make sure data is placed in vdrift directory. See README.md and http://wiki.vdrift.net.' 
+-    SConscript('data/SConscript')
+     # desktop appdata installation
+     install_desktop = env.Install(env['destdir'] + env['prefix'] + '/share/applications', 'vdrift.desktop')
+     install_appdata = env.Install(env['destdir'] + env['prefix'] + '/share/appdata', 'vdrift.appdata.xml')
+-- 
+2.15.0
+
diff --git a/nixpkgs/pkgs/games/vdrift/default.nix b/nixpkgs/pkgs/games/vdrift/default.nix
new file mode 100644
index 000000000000..6c571da561c5
--- /dev/null
+++ b/nixpkgs/pkgs/games/vdrift/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchFromGitHub, fetchsvn, pkgconfig, scons, libGLU_combined, SDL2, SDL2_image
+, libvorbis, bullet, curl, gettext, writeTextFile
+
+, data ? fetchsvn {
+    url = "svn://svn.code.sf.net/p/vdrift/code/vdrift-data";
+    rev = "1386";
+    sha256 = "0ka6zir9hg0md5p03dl461jkvbk05ywyw233hnc3ka6shz3vazi1";
+  }
+}:
+let
+  version = "git";
+  bin = stdenv.mkDerivation {
+    name = "vdrift-${version}";
+
+    src = fetchFromGitHub {
+      owner = "vdrift";
+      repo = "vdrift";
+      rev = "12d444ed18395be8827a21b96cc7974252fce6d1";
+      sha256 = "001wq3c4n9wzxqfpq40b1jcl16sxbqv2zbkpy9rq2wf9h417q6hg";
+    };
+
+    nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [ scons libGLU_combined 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";
+      homepage = http://vdrift.net/;
+      license = stdenv.lib.licenses.gpl2Plus;
+      maintainers = with stdenv.lib.maintainers; [viric];
+      platforms = stdenv.lib.platforms.linux;
+    };
+  };
+  wrappedName = "vdrift-${version}-with-data-${toString data.rev}";
+in writeTextFile {
+  name = wrappedName;
+  text = ''
+    export VDRIFT_DATA_DIRECTORY="${data}"
+    exec ${bin}/bin/vdrift "$@"
+  '';
+  destination = "/bin/vdrift";
+  executable = true;
+  checkPhase = ''
+    ${stdenv.shell} -n $out/bin/vdrift
+  '';
+} // {
+  meta = bin.meta // {
+    hydraPlatforms = [];
+  };
+  unwrapped = bin;
+  inherit bin data;
+}
diff --git a/nixpkgs/pkgs/games/vectoroids/default.nix b/nixpkgs/pkgs/games/vectoroids/default.nix
new file mode 100644
index 000000000000..f1e9c13f86b0
--- /dev/null
+++ b/nixpkgs/pkgs/games/vectoroids/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, SDL, SDL_image, SDL_mixer}:
+
+stdenv.mkDerivation {
+  name = "vectoroids-1.1.0";
+  src = fetchurl {
+    url = ftp://ftp.tuxpaint.org/unix/x/vectoroids/src/vectoroids-1.1.0.tar.gz;
+    sha256 = "0bkvd4a1v496w0vlvqyi1a6p25ssgpkchxxxi8899sb72wlds54d";
+  };
+
+  buildInputs = [ SDL SDL_image SDL_mixer];
+
+  preConfigure = ''
+    sed -i s,/usr/local,$out, Makefile
+    mkdir -p $out/bin
+  '';
+
+  meta = {
+    homepage = http://www.newbreedsoftware.com/vectoroids/;
+    description = "Clone of the classic arcade game Asteroids by Atari";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/vessel/default.nix b/nixpkgs/pkgs/games/vessel/default.nix
new file mode 100644
index 000000000000..483912bab45e
--- /dev/null
+++ b/nixpkgs/pkgs/games/vessel/default.nix
@@ -0,0 +1,83 @@
+{ stdenv, requireFile, SDL, libpulseaudio, alsaLib, runtimeShell }:
+
+stdenv.mkDerivation rec {
+  name = "vessel-12082012";
+
+  goBuyItNow = ''
+    We cannot download the full version automatically, as you require a license.
+    Once you bought a license, you need to add your downloaded version to the nix store.
+    You can do this by using "nix-prefetch-url file://\$PWD/${name}-bin" in the
+    directory where you saved it.
+  '';
+
+  src = if (stdenv.isi686) then
+    requireFile {
+      message = goBuyItNow;
+      name = "${name}-bin";
+      sha256 = "1vpwcrjiln2mx43h7ib3jnccyr3chk7a5x2bw9kb4lw8ycygvg96";
+    } else throw "unsupported platform ${stdenv.hostPlatform.system} only i686-linux supported for now.";
+
+  phases = "installPhase";
+  ld_preload = ./isatty.c;
+
+  libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc ]
+    + ":" + stdenv.lib.makeLibraryPath [ SDL libpulseaudio alsaLib ] ;
+
+  installPhase = ''
+    mkdir -p $out/libexec/strangeloop/vessel/
+    mkdir -p $out/bin
+
+    # allow scripting of the mojoinstaller
+    gcc -fPIC -shared -o isatty.so $ld_preload
+
+    echo @@@
+    echo @@@ this next step appears to hang for a while
+    echo @@@
+
+    # if we call ld.so $(bin) we don't need to set the ELF interpreter, and save a patchelf step.
+    LD_PRELOAD=./isatty.so $(cat $NIX_CC/nix-support/dynamic-linker) $src << IM_A_BOT
+    n
+    $out/libexec/strangeloop/vessel/
+    IM_A_BOT
+
+    # use nix SDL libraries
+    rm $out/libexec/strangeloop/vessel/x86/libSDL*
+    rm $out/libexec/strangeloop/vessel/x86/libstdc++*
+
+    # props to Ethan Lee (the Vessel porter) for understanding
+    # how $ORIGIN works in rpath. There is hope for humanity.
+    patchelf \
+      --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath $libPath:$out/libexec/strangeloop/vessel/x86/ \
+      $out/libexec/strangeloop/vessel/x86/vessel.x86
+
+    # we need to libs to find their deps
+    for lib in $out/libexec/strangeloop/vessel/x86/lib* ; do
+    patchelf \
+      --set-rpath $libPath:$out/libexec/strangeloop/vessel/x86/ \
+      $lib
+    done
+
+    cat > $out/bin/Vessel << EOW
+    #!${runtimeShell}
+    cd $out/libexec/strangeloop/vessel/
+    exec ./x86/vessel.x86
+    EOW
+
+    chmod +x $out/bin/Vessel
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A fluid physics based puzzle game";
+    longDescription = ''
+      Living liquid machines have overrun this world of unstoppable progress,
+      and it is the role of their inventor, Arkwright, to stop the chaos they are
+      causing. Vessel is a game about a man with the power to bring ordinary matter
+      to life, and all the consequences that ensue.
+    '';
+    homepage = http://www.strangeloopgames.com;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ jcumming ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/vessel/isatty.c b/nixpkgs/pkgs/games/vessel/isatty.c
new file mode 100644
index 000000000000..38ee2b6ce2e8
--- /dev/null
+++ b/nixpkgs/pkgs/games/vessel/isatty.c
@@ -0,0 +1,6 @@
+// We override isatty to help 'automate' installers. 
+
+// Some installers (mojoinstall) have a stdio GUI that refuses to run if you
+// feed it a file on stdin. This should help that. 
+
+int isatty(int fd) { return 1; }
diff --git a/nixpkgs/pkgs/games/vitetris/default.nix b/nixpkgs/pkgs/games/vitetris/default.nix
new file mode 100644
index 000000000000..3ed5700954a4
--- /dev/null
+++ b/nixpkgs/pkgs/games/vitetris/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, lib }:
+
+stdenv.mkDerivation rec {
+  name = "vitetris-${version}";
+  version = "0.57.2";
+
+  src = fetchFromGitHub {
+    owner = "vicgeralds";
+    repo = "vitetris";
+    rev = "v${version}";
+    sha256 = "0px0h4zrpzr6xd1vz7w9gr6rh0z74y66jfzschkcvj84plld10k6";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  makeFlags = "INSTALL=install";
+
+  meta = {
+    description = "Terminal-based Tetris clone by Victor Nilsson";
+    homepage = http://www.victornils.net/tetris/;
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ siers ];
+
+    longDescription = ''
+      vitetris is a terminal-based Tetris clone by Victor Nilsson. Gameplay is much
+      like the early Tetris games by Nintendo.
+
+      Features include: configurable keys, highscore table, two-player mode with
+      garbage, network play, joystick (gamepad) support on Linux or with Allegro.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/games/vms-empire/default.nix b/nixpkgs/pkgs/games/vms-empire/default.nix
new file mode 100644
index 000000000000..91f77277d9ec
--- /dev/null
+++ b/nixpkgs/pkgs/games/vms-empire/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, ncurses, xmlto }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec{
+
+  name = "vms-empire-${version}";
+  version = "1.14";
+
+  src = fetchurl{
+    url = "http://www.catb.org/~esr/vms-empire/${name}.tar.gz";
+    sha256 = "0cymzhivvaahgqz0p11w25a710ls4w0jhyqj789jas5s07nvd890";
+  };
+
+  buildInputs =
+  [ ncurses xmlto ];
+
+  patchPhase = ''
+    sed -i -e 's|^install: empire\.6 uninstall|install: empire.6|' -e 's|usr/||g' Makefile
+  '';
+
+  hardeningDisable = [ "format" ];
+
+  makeFlags = [ "DESTDIR=$(out)" ];
+
+  meta = {
+    description = "The ancestor of all expand/explore/exploit/exterminate games";
+    longDescription = ''
+      Empire is a simulation of a full-scale war between two emperors, the
+      computer and you. Naturally, there is only room for one, so the object of
+      the game is to destroy the other. The computer plays by the same rules
+      that you do. This game was ancestral to all later
+      expand/explore/exploit/exterminate games, including Civilization and
+      Master of Orion.
+    '';
+    homepage = http://catb.org/~esr/vms-empire/;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
+
+
diff --git a/nixpkgs/pkgs/games/voxelands/default.nix b/nixpkgs/pkgs/games/voxelands/default.nix
new file mode 100644
index 000000000000..69e90254682b
--- /dev/null
+++ b/nixpkgs/pkgs/games/voxelands/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, cmake, irrlicht, libpng, bzip2, sqlite
+, libjpeg, libXxf86vm, libGLU_combined, openal, libvorbis, xlibsWrapper, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "voxelands-${version}";
+  version = "1512.00";
+
+  src = fetchurl {
+    url = "http://voxelands.com/downloads/${name}-src.tar.bz2";
+    sha256 = "0bims0y0nyviv2f2nxfj37s3258cjbfp9xd97najz0yylnk3qdfw";
+  };
+
+  cmakeFlags = [
+    "-DIRRLICHT_INCLUDE_DIR=${irrlicht}/include/irrlicht"
+    "-DCMAKE_C_FLAGS_RELEASE=-DNDEBUG"
+    "-DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG"
+  ];
+
+  buildInputs = [
+    cmake irrlicht libpng bzip2 libjpeg sqlite
+    libXxf86vm libGLU_combined openal libvorbis xlibsWrapper pkgconfig
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://voxelands.com/;
+    description = "Infinite-world block sandbox game based on Minetest";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ c0dehero ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/warmux/default.nix b/nixpkgs/pkgs/games/warmux/default.nix
new file mode 100644
index 000000000000..04712b3ebff6
--- /dev/null
+++ b/nixpkgs/pkgs/games/warmux/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, autoconf, automake
+, zlib, curl, gnutls, fribidi, libpng, SDL, SDL_gfx, SDL_image, SDL_mixer
+, SDL_net, SDL_ttf, libunwind, libX11, xorgproto, libxml2, pkgconfig
+, gettext, intltool, libtool, perl
+}:
+
+stdenv.mkDerivation rec {
+  name = "warmux-${version}";
+  version = "unstable-2017-10-20";
+
+  src = fetchFromGitHub {
+    owner = "fluxer";
+    repo = "warmux";
+    rev = "8f81d4fc309a548ae89a068c2dde27b7e7ef8851";
+    sha256 = "1hvzglsmp75xiqqb0k75qjz4jwi8kl3fhn8zfsz53hhhqmbw6wkr";
+  };
+
+  preConfigure = "patchShebangs autogen.sh && ./autogen.sh";
+  configureFlagsArray = ("CFLAGS=-include ${zlib.dev}/include/zlib.h");
+
+  nativeBuildInputs = [
+    autoconf automake gettext intltool libtool pkgconfig
+  ];
+  buildInputs = [
+    zlib curl gnutls fribidi libpng SDL SDL_gfx SDL_image SDL_mixer
+    SDL_net SDL_ttf libunwind libX11 xorgproto libxml2 perl
+  ];
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Ballistics turn-based battle game between teams - unofficial copy";
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
+    license = with licenses; [ gpl2 ufl ];
+    homepage = https://github.com/fluxer/warmux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/warsow/default.nix b/nixpkgs/pkgs/games/warsow/default.nix
new file mode 100644
index 000000000000..1b51130768eb
--- /dev/null
+++ b/nixpkgs/pkgs/games/warsow/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, warsow-engine, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "warsow-${version}";
+  version = "2.1.2";
+
+  src = fetchurl {
+    url = "http://sebastian.network/warsow/${name}.tar.gz";
+    sha256 = "07y2airw5qg3s1bf1c63a6snjj22riz0mqhk62jmfm9nrarhavrc";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/share/warsow
+    cp -r basewsw $out/share/warsow
+    ln -s ${warsow-engine}/lib/warsow $out/share/warsow/libs
+
+    mkdir -p $out/bin
+    for i in ${warsow-engine}/bin/*; do
+      makeWrapper "$i" "$out/bin/$(basename "$i")" --run "cd $out/share/warsow"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Multiplayer FPS game designed for competitive gaming";
+    longDescription = ''
+      Set in a futuristic cartoon-like world where rocketlauncher-wielding
+      pigs and lasergun-carrying cyberpunks roam the streets, Warsow is a
+      completely free fast-paced first-person shooter (FPS) for Windows, Linux
+      and macOS.
+    '';
+    homepage = http://www.warsow.net;
+    license = licenses.unfreeRedistributable;
+    maintainers = with maintainers; [ astsmtl abbradar ];
+    platforms = warsow-engine.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/games/warsow/engine.nix b/nixpkgs/pkgs/games/warsow/engine.nix
new file mode 100644
index 000000000000..12832f2a4391
--- /dev/null
+++ b/nixpkgs/pkgs/games/warsow/engine.nix
@@ -0,0 +1,52 @@
+{ stdenv, lib, fetchurl, cmake, libogg, libvorbis, libtheora, curl, freetype
+, libjpeg, libpng, SDL2, libGL, openal, zlib
+}:
+
+let
+  # The game loads all those via dlopen().
+  libs = lib.mapAttrs (name: x: lib.getLib x) {
+    inherit zlib curl libpng libjpeg libogg libvorbis libtheora freetype;
+  };
+
+in stdenv.mkDerivation (libs // rec {
+  name = "warsow-engine-${version}";
+  version = "2.1.0";
+
+  src = fetchurl {
+    url = "http://sebastian.network/warsow/warsow_21_sdk.tar.gz";
+    sha256 = "0fj5k7qpf6far8i1xhqxlpfjch10zj26xpilhp95aq2yiz08pj4r";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    libogg libvorbis libtheora curl freetype libjpeg SDL2 libGL openal zlib
+    libpng
+  ];
+
+  patches = [ ./libpath.patch ];
+  postPatch = ''
+    cd source/source
+    substituteAllInPlace gameshared/q_arch.h
+  '';
+
+  cmakeFlags = [ "-DQFUSION_GAME=Warsow" ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    mkdir -p $out/lib
+    cp -r libs $out/lib/warsow
+    for i in warsow.* wsw_server.* wswtv_server.*; do
+      install -Dm755 "$i" "$out/bin/''${i%.*}"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Multiplayer FPS game designed for competitive gaming (engine only)";
+    homepage = http://www.warsow.net;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ astsmtl abbradar ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/games/warsow/libpath.patch b/nixpkgs/pkgs/games/warsow/libpath.patch
new file mode 100644
index 000000000000..ad2487102379
--- /dev/null
+++ b/nixpkgs/pkgs/games/warsow/libpath.patch
@@ -0,0 +1,28 @@
+diff -ru3 warsow_21_sdk_old/source/source/gameshared/q_arch.h warsow_21_sdk_new/source/source/gameshared/q_arch.h
+--- warsow_21_sdk_old/source/source/gameshared/q_arch.h	2016-03-26 22:22:10.000000000 +0300
++++ warsow_21_sdk_new/source/source/gameshared/q_arch.h	2018-03-13 00:37:29.907019953 +0300
+@@ -206,15 +206,15 @@
+ #endif
+ 
+ // FIXME: move these to CMakeLists.txt
+-#define LIBZ_LIBNAME "libz.so.1|libz.so"
+-#define LIBCURL_LIBNAME "libcurl.so.4|libcurl.so.3|libcurl.so"
+-#define LIBPNG_LIBNAME "libpng16.so.16|libpng15.so.15|libpng14.so.14|libpng12.so.0|libpng.so"
+-#define LIBJPEG_LIBNAME "libjpeg.so.8|libjpeg.so"
+-#define LIBOGG_LIBNAME "libogg.so.0|libogg.so"
+-#define LIBVORBIS_LIBNAME "libvorbis.so.0|libvorbis.so"
+-#define LIBVORBISFILE_LIBNAME "libvorbisfile.so.3|libvorbisfile.so"
+-#define LIBTHEORA_LIBNAME "libtheora.so.0|libtheora.so"
+-#define LIBFREETYPE_LIBNAME "libfreetype.so.6|libfreetype.so"
++#define LIBZ_LIBNAME "@zlib@/lib/libz.so"
++#define LIBCURL_LIBNAME "@curl@/lib/libcurl.so"
++#define LIBPNG_LIBNAME "@libpng@/lib/libpng.so"
++#define LIBJPEG_LIBNAME "@libjpeg@/lib/libjpeg.so"
++#define LIBOGG_LIBNAME "@libogg@/lib/libogg.so"
++#define LIBVORBIS_LIBNAME "@libvorbis@/lib/libvorbis.so"
++#define LIBVORBISFILE_LIBNAME "@libvorbis@/lib/libvorbisfile.so"
++#define LIBTHEORA_LIBNAME "@libtheora@/lib/libtheora.so"
++#define LIBFREETYPE_LIBNAME "@freetype@/lib/libfreetype.so"
+ 
+ #if defined ( __FreeBSD__ )
+ #define BUILDSTRING "FreeBSD"
diff --git a/nixpkgs/pkgs/games/warzone2100/default.nix b/nixpkgs/pkgs/games/warzone2100/default.nix
new file mode 100644
index 000000000000..6165cacfdca5
--- /dev/null
+++ b/nixpkgs/pkgs/games/warzone2100/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, lib, fetchurl, perl, unzip, zip, which, pkgconfig
+, qtbase, qtscript, SDL2, libtheora, openal, glew, physfs, fribidi, libXrandr
+, withVideos ? false
+}:
+
+let
+  pname = "warzone2100";
+  sequences_src = fetchurl {
+    url = "mirror://sourceforge/${pname}/warzone2100/Videos/high-quality-en/sequences.wz";
+    sha256 = "90ff552ca4a70e2537e027e22c5098ea4ed1bc11bb7fc94138c6c941a73d29fa";
+  };
+in
+
+stdenv.mkDerivation rec {
+  version = "3.2.3";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/releases/${version}/${name}.tar.xz";
+    sha256 = "10kmpr4cby95zwqsl1zwx95d9achli6khq7flv6xmrq30a39xazw";
+  };
+
+  buildInputs = [ qtbase qtscript SDL2 libtheora openal glew physfs fribidi libXrandr ];
+  nativeBuildInputs = [ perl zip unzip pkgconfig ];
+
+  postPatch = ''
+    substituteInPlace lib/exceptionhandler/dumpinfo.cpp \
+                      --replace "which %s" "${which}/bin/which %s"
+    substituteInPlace lib/exceptionhandler/exceptionhandler.cpp \
+                      --replace "which %s" "${which}/bin/which %s"
+  '';
+
+  configureFlags = [ "--with-distributor=NixOS" ];
+
+  hardeningDisable = [ "format" ];
+
+  enableParallelBuilding = true;
+
+  postInstall = lib.optionalString withVideos "cp ${sequences_src} $out/share/warzone2100/sequences.wz";
+
+  meta = with stdenv.lib; {
+    description = "A free RTS game, originally developed by Pumpkin Studios";
+    longDescription = ''
+        Warzone 2100 is an open source real-time strategy and real-time tactics
+      hybrid computer game, originally developed by Pumpkin Studios and
+      published by Eidos Interactive.
+        In Warzone 2100, you command the forces of The Project in a battle to
+      rebuild the world after mankind has almost been destroyed by nuclear
+      missiles. The game offers campaign, multi-player, and single-player
+      skirmish modes. An extensive tech tree with over 400 different
+      technologies, combined with the unit design system, allows for a wide
+      variety of possible units and tactics.
+    '';
+    homepage = http://wz2100.net;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.astsmtl ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/wesnoth/default.nix b/nixpkgs/pkgs/games/wesnoth/default.nix
new file mode 100644
index 000000000000..9d86afa97ec3
--- /dev/null
+++ b/nixpkgs/pkgs/games/wesnoth/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, cmake, pkgconfig, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf
+, pango, gettext, boost, libvorbis, fribidi, dbus, libpng, pcre, openssl, icu
+, Cocoa, Foundation
+, enableTools ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wesnoth";
+  version = "1.14.5";
+
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/sourceforge/${pname}/${name}.tar.bz2";
+    sha256 = "1kgpj2f22nnx4mwd1zis3s5ny2983aasgqsmz7wnqaq7n6a7ac85";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_net SDL2_ttf pango gettext boost
+                  libvorbis fribidi dbus libpng pcre openssl icu ]
+                ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa Foundation];
+
+  cmakeFlags = [ "-DENABLE_TOOLS=${if enableTools then "ON" else "OFF"}" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "The Battle for Wesnoth, a free, turn-based strategy game with a fantasy theme";
+    longDescription = ''
+      The Battle for Wesnoth is a Free, turn-based tactical strategy
+      game with a high fantasy theme, featuring both single-player, and
+      online/hotseat multiplayer combat. Fight a desperate battle to
+      reclaim the throne of Wesnoth, or take hand in any number of other
+      adventures.
+    '';
+
+    homepage = http://www.wesnoth.org/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ abbradar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/widelands/bincmake.patch b/nixpkgs/pkgs/games/widelands/bincmake.patch
new file mode 100644
index 000000000000..ed6a99125223
--- /dev/null
+++ b/nixpkgs/pkgs/games/widelands/bincmake.patch
@@ -0,0 +1,21 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -25,6 +25,8 @@
+ # Packagers (or people using make install) have to set this variable to an absolute path.
+ wl_set_if_unset(WL_INSTALL_DATADIR "./data")
+ 
++wl_set_if_unset(WL_INSTALL_BINARY "./bin")
++
+ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+   if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
+     message(FATAL_ERROR "Widelands needs GCC >= 4.7 to compile.")
+
+--- a/cmake/WlFunctions.cmake
++++ b/cmake/WlFunctions.cmake
+@@ -276,5 +276,5 @@
+ 
+   #Quoting the CMake documentation on DESTINATION:
+   #"If a relative path is given it is interpreted relative to the value of CMAKE_INSTALL_PREFIX"
+-  install(TARGETS ${NAME} DESTINATION "." COMPONENT ExecutableFiles)
++  install(TARGETS ${NAME} DESTINATION ${WL_INSTALL_BINARY} COMPONENT ExecutableFiles)
+ endfunction()
diff --git a/nixpkgs/pkgs/games/widelands/default.nix b/nixpkgs/pkgs/games/widelands/default.nix
new file mode 100644
index 000000000000..daf56b27e5d2
--- /dev/null
+++ b/nixpkgs/pkgs/games/widelands/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, cmake, python, gettext
+, boost, libpng, zlib, glew, lua, doxygen, icu
+, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf
+}:
+
+stdenv.mkDerivation rec {
+  name = "widelands-${version}";
+  version = "19";
+
+  meta = with stdenv.lib; {
+    description = "RTS with multiple-goods economy";
+    homepage    = "http://widelands.org/";
+    longDescription = ''
+      Widelands is a real time strategy game based on "The Settlers" and "The
+      Settlers II". It has a single player campaign mode, as well as a networked
+      multiplayer mode.
+    '';
+    license        = licenses.gpl2Plus;
+    platforms      = platforms.linux;
+    maintainers    = with maintainers; [ raskin jcumming ];
+    hydraPlatforms = [];
+  };
+
+  patches = [
+    ./bincmake.patch
+  ];
+
+  src = fetchurl {
+    url = "https://launchpad.net/widelands/build${version}/build${version}/+download/widelands-build${version}-src-gcc7.tar.bz2";
+    sha256 = "0n2lb1c2dix32j90nir96zfqivn63izr1pmabjnhns3wbb7vhwzg";
+  };
+
+  preConfigure = ''
+    cmakeFlags="
+      -DWL_INSTALL_BASEDIR=$out
+      -DWL_INSTALL_DATADIR=$out/share/widelands
+      -DWL_INSTALL_BINARY=$out/bin
+    "
+  '';
+
+  nativeBuildInputs = [ cmake python gettext ];
+
+  buildInputs = [
+    boost libpng zlib glew lua doxygen icu
+    SDL2 SDL2_image SDL2_mixer SDL2_net SDL2_ttf
+  ];
+
+  prePatch = ''
+    substituteInPlace ./debian/org.widelands.widelands.desktop --replace "/usr/share/games/widelands/data/" "$out/share/widelands/"
+  '';
+
+  postInstall = ''
+    mkdir -p "$out/share/applications/"
+    cp -v "../debian/org.widelands.widelands.desktop" "$out/share/applications/"
+  '';
+
+  enableParallelBuilding = true;
+}
diff --git a/nixpkgs/pkgs/games/worldofgoo/default.nix b/nixpkgs/pkgs/games/worldofgoo/default.nix
new file mode 100644
index 000000000000..7d8380e9f7ce
--- /dev/null
+++ b/nixpkgs/pkgs/games/worldofgoo/default.nix
@@ -0,0 +1,83 @@
+{ stdenv, requireFile
+, libX11, libXext, libXau, libxcb, libXdmcp , SDL, SDL_mixer, libvorbis, libGLU_combined
+, runtimeShell
+, demo ? false }:
+
+# TODO: add i686 support
+
+stdenv.mkDerivation rec {
+  name = if demo
+    then "WorldOfGooDemo-1.41"
+    else "WorldofGoo-1.41";
+
+  arch = if stdenv.hostPlatform.system == "x86_64-linux" then "supported"
+    else throw "Sorry. World of Goo only is only supported on x86_64 now.";
+
+  goBuyItNow = ''
+    We cannot download the full version automatically, as you require a license.
+    Once you bought a license, you need to add your downloaded version to the nix store.
+    You can do this by using "nix-prefetch-url file://\$PWD/WorldOfGooSetup.1.41.tar.gz" in the
+    directory where you saved it.
+
+    Or you can install the demo version: 'nix-env -i -A pkgs.worldofgoo_demo'.
+  '';
+
+  getTheDemo = ''
+    We cannot download the demo version automatically. Please go to
+    http://worldofgoo.com/dl2.php?lk=demo, then add it to your nix store.
+    You can do this by using "nix-prefetch-url file://\$PWD/WorldOfGooDemo.1.41.tar.gz" in the
+    directory where you saved it.
+  '';
+
+  src = if demo
+    then
+      requireFile {
+         message = getTheDemo;
+         name = "WorldOfGooDemo.1.41.tar.gz";
+         sha256 = "0ndcix1ckvcj47sgndncr3hxjcg402cbd8r16rhq4cc43ibbaxri";
+       }
+    else
+      requireFile {
+        message = goBuyItNow;
+        name = "WorldOfGooSetup.1.41.tar.gz";
+        sha256 = "0rj5asx4a2x41ncwdby26762my1lk1gaqar2rl8dijfnpq8qlnk7";
+      };
+
+  phases = "unpackPhase installPhase";
+
+  # XXX: stdenv.lib.makeLibraryPath doesn't pick up /lib64
+  libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc ]
+    + ":" + stdenv.lib.makeLibraryPath [libX11 libXext libXau libxcb libXdmcp SDL SDL_mixer libvorbis libGLU_combined ]
+    + ":" + stdenv.cc.cc + "/lib64";
+
+  installPhase = ''
+    mkdir -p $out/libexec/2dboy/WorldOfGoo/
+    mkdir -p $out/bin
+
+    patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath $libPath ./WorldOfGoo.bin64
+
+    cp -r * $out/libexec/2dboy/WorldOfGoo/
+
+    #makeWrapper doesn't do cd. :(
+
+    cat > $out/bin/WorldofGoo << EOF
+    #!${runtimeShell}
+    cd $out/libexec/2dboy/WorldOfGoo
+    exec ./WorldOfGoo.bin64
+    EOF
+    chmod +x $out/bin/WorldofGoo
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A physics based puzzle game";
+    longDescription = ''
+      World of Goo is a physics based puzzle / construction game. The millions of Goo
+      Balls who live in the beautiful World of Goo don't know that they are in a
+      game, or that they are extremely delicious.
+    '';
+    homepage = http://worldofgoo.com;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ jcumming ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/games/xboard/default.nix b/nixpkgs/pkgs/games/xboard/default.nix
new file mode 100644
index 000000000000..4a8e7188ce89
--- /dev/null
+++ b/nixpkgs/pkgs/games/xboard/default.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchurl, libX11, xorgproto, libXt, libXaw, libSM, libICE, libXmu
+, libXext, gnuchess, texinfo, libXpm, pkgconfig, librsvg, cairo, pango
+, gtk2
+}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="xboard";
+    version="4.9.1";
+    name="${baseName}-${version}";
+    hash="1mkh36xnnacnz9r00b5f9ld9309k32jv6mcavklbdnca8bl56bib";
+    url="https://ftp.gnu.org/gnu/xboard/xboard-4.9.1.tar.gz";
+    sha256="1mkh36xnnacnz9r00b5f9ld9309k32jv6mcavklbdnca8bl56bib";
+  };
+  buildInputs = [
+    libX11 xorgproto libXt libXaw libSM libICE libXmu
+    libXext gnuchess texinfo libXpm pkgconfig librsvg
+    cairo pango gtk2
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  meta = {
+    inherit (s) version;
+    description = ''GUI for chess engines'';
+    homepage = https://www.gnu.org/software/xboard/;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.unix;
+    license = stdenv.lib.licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/games/xboard/default.upstream b/nixpkgs/pkgs/games/xboard/default.upstream
new file mode 100644
index 000000000000..2e5af5d08725
--- /dev/null
+++ b/nixpkgs/pkgs/games/xboard/default.upstream
@@ -0,0 +1 @@
+url https://ftp.gnu.org/gnu/xboard/
diff --git a/nixpkgs/pkgs/games/xbomb/default.nix b/nixpkgs/pkgs/games/xbomb/default.nix
new file mode 100644
index 000000000000..946bff79f975
--- /dev/null
+++ b/nixpkgs/pkgs/games/xbomb/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, libX11, libXaw }:
+
+stdenv.mkDerivation rec {
+  name = "xbomb-2.2b";
+  src = fetchurl {
+    url    = "https://www.gedanken.org.uk/software/xbomb/download/${name}.tgz";
+    sha256 = "0692gjw28qvh8wj9l58scjw6kxj7jdyb3yzgcgs9wcznq11q839m";
+  };
+
+  buildInputs = [ libX11 libXaw ];
+
+  preBuild = ''
+    substituteInPlace Makefile \
+      --replace /usr/local $out
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.gedanken.org.uk/software/xbomb/;
+    description = "Minesweeper for X11 with various grid sizes and shapes";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/xconq/default.nix b/nixpkgs/pkgs/games/xconq/default.nix
new file mode 100644
index 000000000000..6e8526399794
--- /dev/null
+++ b/nixpkgs/pkgs/games/xconq/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, cpio, xorgproto, libX11, libXmu, libXaw, libXt, tcl, tk
+, libXext, fontconfig, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "${baseName}-${version}";
+  baseName = "xconq";
+  version = "7.5.0-0pre.0.20050612";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/${baseName}/${baseName}/${name}/${name}.tar.gz";
+    sha256 = "1za78yx57mgwcmmi33wx3533yz1x093dnqis8q2qmqivxav51lca";
+  };
+
+  buildInputs = [ cpio xorgproto libX11 libXmu libXaw libXt tcl tk libXext
+    fontconfig makeWrapper ];
+
+  configureFlags = [
+    "--enable-alternate-scoresdir=scores"
+    "--with-tclconfig=${tcl}/lib"
+    "--with-tkconfig=${tk}/lib"
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  patchPhase = ''
+    # Fix Makefiles
+    find . -name 'Makefile.in' -exec sed -re 's@^        ( *)(cd|[&][&])@	\1\2@' -i '{}' ';'
+    find . -name 'Makefile.in' -exec sed -e '/chown/d; /chgrp/d' -i '{}' ';'
+    # do not set sticky bit in nix store
+    find . -name 'Makefile.in' -exec sed -e 's/04755/755/g' -i '{}' ';'
+    sed -e '/^			* *[$][(]tcltkdir[)]\/[*][.][*]/d' -i tcltk/Makefile.in
+
+    # Fix C files
+    sed -re 's@[(]int[)]color@(long)color@' -i tcltk/tkmap.c
+    sed -re '/unitp = view_unit[(]uview[)]/aelse *unitp = NULL\;' -i tcltk/tkmap.c
+    sed -re 's@BMAP_BYTE char@BMAP_BYTE unsigned char@' -i kernel/ui.h
+
+    # Fix TCL files
+    sed -re 's@MediumBlue@LightBlue@g' -i tcltk/tkconq.tcl
+  '';
+
+  postInstall = ''
+    for file in $out/bin/*; do
+      wrapProgram $file --prefix TCLLIBPATH ' ' "${tk}/lib"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A programmable turn-based strategy game";
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
+    license = licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/games/xjump/darwin.patch b/nixpkgs/pkgs/games/xjump/darwin.patch
new file mode 100644
index 000000000000..8221677658e3
--- /dev/null
+++ b/nixpkgs/pkgs/games/xjump/darwin.patch
@@ -0,0 +1,21 @@
+--- xjump/src/main.c	2018-02-20 09:15:15.608807657 +0100
++++ xjump-patched/src/main.c	2018-02-20 09:15:34.148949100 +0100
+@@ -604,18 +604,6 @@
+    * optimistic privilege dropping function. */
+   setgroups(0, NULL);
+ 
+-  if (setresgid(-1, realgid, realgid) != 0) {
+-    perror("Could not drop setgid privileges.  Aborting.");
+-    exit(1);
+-  }
+-
+-  /* Dropping user privileges must come last.
+-   * Otherwise we won't be able to drop group privileges anymore */
+-  if (setresuid(-1, realuid, realuid) != 0) {
+-    perror("Could not drop setuid privileges.  Aborting.");
+-    exit(1);
+-  }
+-
+   /* From now on we run with regular user privileges */
+ 
+   static XtActionsRec a_table[] = {
diff --git a/nixpkgs/pkgs/games/xjump/default.nix b/nixpkgs/pkgs/games/xjump/default.nix
new file mode 100644
index 000000000000..028b5f49b66a
--- /dev/null
+++ b/nixpkgs/pkgs/games/xjump/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libX11, libXt, libXpm, libXaw, localStateDir?null }:
+
+stdenv.mkDerivation rec {
+  name = "xjump-${version}";
+  version = "2.9.3";
+  src = fetchFromGitHub {
+    owner = "hugomg";
+    repo = "xjump";
+    rev = "e7f20fb8c2c456bed70abb046c1a966462192b80";
+    sha256 = "0hq4739cvi5a47pxdc0wwkj2lmlqbf1xigq0v85qs5bq3ixmq2f7";
+  };
+  nativeBuildInputs = [ autoconf automake ];
+  buildInputs = [ libX11 libXt libXpm libXaw ];
+  preConfigure = "autoreconf --install";
+  patches = if stdenv.buildPlatform.isDarwin then [ ./darwin.patch ] else [];
+  configureFlags =
+    if localStateDir != null then
+      ["--localstatedir=${localStateDir}"]
+    else
+      [];
+
+  meta = with stdenv.lib; {
+    description = "The falling tower game";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pmeunier ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/xmoto/default.nix b/nixpkgs/pkgs/games/xmoto/default.nix
new file mode 100644
index 000000000000..a0fc6d5ca718
--- /dev/null
+++ b/nixpkgs/pkgs/games/xmoto/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, chipmunk, sqlite, curl, zlib, bzip2, libjpeg
+, libpng, freeglut, libGLU_combined, SDL, SDL_mixer, SDL_image, SDL_net
+, SDL_ttf, lua5, ode, libxdg_basedir, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "xmoto-${version}";
+  version = "0.5.11";
+
+  src = fetchurl {
+    url = "https://download.tuxfamily.org/xmoto/xmoto/${version}/xmoto-${version}-src.tar.gz";
+    sha256 = "1ci6r8zd0l7z28cy92ddf9dmqbdqwinz2y1cny34c61b57wsd155";
+  };
+
+  buildInputs = [
+    chipmunk sqlite curl zlib bzip2 libjpeg libpng
+    freeglut libGLU_combined SDL SDL_mixer SDL_image SDL_net SDL_ttf
+    lua5 ode libxdg_basedir libxml2
+  ];
+
+  CXXFLAGS = [ "-fpermissive" ];
+
+  meta = with stdenv.lib; {
+    description = "Obstacled race game";
+    homepage = http://xmoto.tuxfamily.org;
+    maintainers = with maintainers; [ raskin pSub ];
+    platforms = platforms.linux;
+    license = licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/games/xonotic/default.nix b/nixpkgs/pkgs/games/xonotic/default.nix
new file mode 100644
index 000000000000..ac7bf7973d77
--- /dev/null
+++ b/nixpkgs/pkgs/games/xonotic/default.nix
@@ -0,0 +1,88 @@
+{ stdenv, fetchurl
+, # required for both
+  unzip, libjpeg, zlib, libvorbis, curl
+, # glx
+  libX11, libGLU_combined, libXpm, libXext, libXxf86vm, alsaLib
+, # sdl
+  SDL2
+}:
+
+stdenv.mkDerivation rec {
+  name = "xonotic-0.8.2";
+
+  src = fetchurl {
+    url = "https://dl.xonotic.org/${name}.zip";
+    sha256 = "1mcs6l4clvn7ibfq3q69k2p0z6ww75rxvnngamdq5ic6yhq74bx2";
+  };
+
+  buildInputs = [
+    # required for both
+    unzip libjpeg
+    # glx
+    libX11 libGLU_combined libXpm libXext libXxf86vm alsaLib
+    # sdl
+    SDL2
+    zlib libvorbis curl
+  ];
+
+  sourceRoot = "Xonotic/source/darkplaces";
+
+  # "debug", "release", "profile"
+  target = "release";
+
+  dontStrip = target != "release";
+
+  buildPhase = ''
+    DP_FS_BASEDIR="$out/share/xonotic"
+    make DP_FS_BASEDIR=$DP_FS_BASEDIR cl-${target}
+    make DP_FS_BASEDIR=$DP_FS_BASEDIR sdl-${target}
+    make DP_FS_BASEDIR=$DP_FS_BASEDIR sv-${target}
+  '';
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp darkplaces-dedicated "$out/bin/xonotic-dedicated"
+    cp darkplaces-sdl "$out/bin/xonotic-sdl"
+    cp darkplaces-glx "$out/bin/xonotic-glx"
+    cd ../..
+    mkdir -p "$out/share/xonotic"
+    mv data "$out/share/xonotic"
+
+    # default to sdl
+    ln -s "$out/bin/xonotic-sdl" "$out/bin/xonotic"
+  '';
+
+  # Xonotic needs to find libcurl.so at runtime for map downloads
+  dontPatchELF = true;
+  postFixup = ''
+    patchelf --add-needed ${curl.out}/lib/libcurl.so $out/bin/xonotic-dedicated
+    patchelf \
+        --add-needed ${curl.out}/lib/libcurl.so \
+        --add-needed ${libvorbis}/lib/libvorbisfile.so \
+        --add-needed ${libvorbis}/lib/libvorbis.so \
+        $out/bin/xonotic-glx
+    patchelf \
+        --add-needed ${curl.out}/lib/libcurl.so \
+        --add-needed ${libvorbis}/lib/libvorbisfile.so \
+        --add-needed ${libvorbis}/lib/libvorbis.so \
+        $out/bin/xonotic-sdl
+  '';
+
+  meta = {
+    description = "A free fast-paced first-person shooter";
+    longDescription = ''
+      Xonotic is a free, fast-paced first-person shooter that works on
+      Windows, macOS and Linux. The project is geared towards providing
+      addictive arena shooter gameplay which is all spawned and driven
+      by the community itself. Xonotic is a direct successor of the
+      Nexuiz project with years of development between them, and it
+      aims to become the best possible open-source FPS of its kind.
+    '';
+    homepage = http://www.xonotic.org;
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [ astsmtl zalakain ];
+    platforms = stdenv.lib.platforms.linux;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/games/xpilot/bloodspilot-client.nix b/nixpkgs/pkgs/games/xpilot/bloodspilot-client.nix
new file mode 100644
index 000000000000..cd927a820aaa
--- /dev/null
+++ b/nixpkgs/pkgs/games/xpilot/bloodspilot-client.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, libX11, SDL, libGLU_combined, expat, zlib, SDL_ttf, SDL_image }:
+
+stdenv.mkDerivation rec {
+  version = "1.5.0";
+  name = "bloodspilot-client-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/bloodspilot/client-sdl/v${version}/bloodspilot-client-sdl-${version}.tar.gz";
+    sha256 = "1qwl95av5an2zl01m7saj6fyy49xpixga7gbn4lwbpgpqs1rbwxj";
+  };
+
+  buildInputs = [
+    libX11 SDL SDL_ttf SDL_image libGLU_combined expat zlib
+  ];
+
+  NIX_LDFLAGS = [ "-lX11" ];
+
+  meta = {
+    description = ''A multiplayer space combat game (client part)'';
+    homepage = http://bloodspilot.sf.net/;
+    license = stdenv.lib.licenses.gpl2Plus ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/xpilot/bloodspilot-server.nix b/nixpkgs/pkgs/games/xpilot/bloodspilot-server.nix
new file mode 100644
index 000000000000..42bcb3263169
--- /dev/null
+++ b/nixpkgs/pkgs/games/xpilot/bloodspilot-server.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, expat }:
+
+stdenv.mkDerivation rec {
+  name = "bloodspilot-xpilot-fxi-server-${version}";
+  version = "1.4.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/bloodspilot/server/server%20v${version}/xpilot-${version}fxi.tar.gz";
+    sha256 = "0d7hnpshifq6gy9a0g6il6h1hgqqjyys36n8w84hr8d4nhg4d1ji";
+  };
+
+  buildInputs = [
+    expat
+  ];
+
+  patches = [
+    ./server-gcc5.patch
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A multiplayer X11 space combat game (server part)";
+    homepage = http://bloodspilot.sf.net/;
+    license = licenses.gpl2Plus ;
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/xpilot/default.nix b/nixpkgs/pkgs/games/xpilot/default.nix
new file mode 100644
index 000000000000..2ae25e957bb2
--- /dev/null
+++ b/nixpkgs/pkgs/games/xpilot/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, libX11, libSM, SDL, libGLU_combined, expat, SDL_ttf
+, SDL_image, zlib, libXxf86misc }:
+stdenv.mkDerivation rec {
+  name = "xpilot-ng-${version}";
+  version = "4.7.3";
+  src = fetchurl {
+    url = "mirror://sourceforge/xpilot/xpilot_ng/${name}/${name}.tar.gz";
+    sha256 = "02a7pnp88kh88fzda5q8mzlckk6y9r5fw47j00h26wbsfly0k1zj";
+  };
+  buildInputs = [
+    libX11 libSM SDL SDL_ttf SDL_image libGLU_combined expat zlib libXxf86misc
+  ];
+  meta = with stdenv.lib; {
+    description = "A multiplayer X11 space combat game";
+    homepage = http://xpilot.sf.net/;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/xpilot/server-gcc5.patch b/nixpkgs/pkgs/games/xpilot/server-gcc5.patch
new file mode 100644
index 000000000000..5618399bfecd
--- /dev/null
+++ b/nixpkgs/pkgs/games/xpilot/server-gcc5.patch
@@ -0,0 +1,65 @@
+--- xpilot-1.4.6fxi/src/common/net.c	2016-02-09 00:20:43.531714342 +0000
++++ xpilot-1.4.6fxi/src/common/net.c	2016-02-09 00:21:15.301331053 +0000
+@@ -608,9 +608,9 @@
+ }
+ 
+ #if STDVA
+-inline int32_t Packet_scanf(sockbuf_t *sbuf, const char *fmt, ...)
++extern int32_t Packet_scanf(sockbuf_t *sbuf, const char *fmt, ...)
+ #else
+-inline int32_t Packet_scanf(va_alist)
++extern int32_t Packet_scanf(va_alist)
+ va_dcl
+ #endif
+ {
+--- xpilot-1.4.6fxi/src/server/collision.c	2016-02-09 00:22:29.581784405 +0000
++++ xpilot-1.4.6fxi/src/server/collision.c	2016-02-09 00:22:38.152952500 +0000
+@@ -71,7 +71,7 @@
+  * p: first object, q: second object
+  */
+ 
+-inline int32_t Collision_occured(int32_t p1x, int32_t p1y, int32_t p2x, int32_t p2y,
++extern int32_t Collision_occured(int32_t p1x, int32_t p1y, int32_t p2x, int32_t p2y,
+ 		int32_t q1x, int32_t q1y, int32_t q2x, int32_t q2y, int32_t r)
+ {
+ 	int32_t fac1, fac2;	/* contraction between the distance between the x and y coordinates of objects */
+--- xpilot-1.4.6fxi/src/server/player.c	2016-02-09 00:25:29.546313808 +0000
++++ xpilot-1.4.6fxi/src/server/player.c	2016-02-09 00:25:40.464527932 +0000
+@@ -1411,12 +1411,12 @@
+ 	return NULL;
+ }
+ 
+-inline bool Player_idle_timed_out(player_t *pl)
++extern bool Player_idle_timed_out(player_t *pl)
+ {
+ 	return (frame_loops - pl->frame_last_busy > MAX_PLAYER_IDLE_TICKS && (NumPlayers > 1)) ? true : false;
+ }
+ 
+-inline bool Player_is_recovered(player_t *pl)
++extern bool Player_is_recovered(player_t *pl)
+ {
+ 	return (pl->recovery_count <= 0.0) ? true : false;
+ }
+--- xpilot-1.4.6fxi/src/server/score.c	2016-02-09 00:21:45.659923025 +0000
++++ xpilot-1.4.6fxi/src/server/score.c	2016-02-09 00:22:07.224345939 +0000
+@@ -24,17 +24,17 @@
+ char msg[MSG_LEN];
+ 
+ 
+-inline double Get_Score(player_t *pl)
++extern double Get_Score(player_t *pl)
+ {
+     return pl->score;
+ }
+ 
+-inline void Score_set(player_t * pl, double score)
++extern void Score_set(player_t * pl, double score)
+ {
+     pl->score = score;
+ }
+ 
+-inline void Score_add(player_t * pl, double score)
++extern void Score_add(player_t * pl, double score)
+ {
+     pl->score += score;
+ }
diff --git a/nixpkgs/pkgs/games/xskat/default.nix b/nixpkgs/pkgs/games/xskat/default.nix
new file mode 100644
index 000000000000..383bdb882844
--- /dev/null
+++ b/nixpkgs/pkgs/games/xskat/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl, libX11, imake, gccmakedep}:
+
+
+let
+  s = # Generated upstream information
+  rec {
+    baseName="xskat";
+    version="4.0";
+    name="${baseName}-${version}";
+
+    url="http://www.xskat.de/xskat-4.0.tar.gz";
+    hash="8ba52797ccbd131dce69b96288f525b0d55dee5de4008733f7a5a51deb831c10";
+    sha256="8ba52797ccbd131dce69b96288f525b0d55dee5de4008733f7a5a51deb831c10";
+  };
+   buildInputs = [ libX11 imake gccmakedep ];
+in
+
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  preInstall = ''
+    sed -i Makefile \
+      -e "s|.* BINDIR .*|   BINDIR = $out/bin|" \
+      -e "s|.* MANPATH .*|  MANPATH = $out/man|"
+  '';
+  installTargets = "install install.man";
+  meta = {
+    inherit (s) version;
+    description = ''Famous german card game'';
+    platforms = stdenv.lib.platforms.unix;
+    license = stdenv.lib.licenses.free;
+    longDescription = ''Play the german card game Skat against the AI or over IRC.'';
+    homepage = http://www.xskat.de/;
+  };
+}
diff --git a/nixpkgs/pkgs/games/xsnow/default.nix b/nixpkgs/pkgs/games/xsnow/default.nix
new file mode 100644
index 000000000000..07ed50d4e7b3
--- /dev/null
+++ b/nixpkgs/pkgs/games/xsnow/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, libXt, libXpm, libXext, imake, gccmakedep }:
+
+stdenv.mkDerivation rec {
+
+  version = "1.42";
+  name = "xsnow-${version}";
+
+  src = fetchurl {
+    url = "https://janswaal.home.xs4all.nl/Xsnow/${name}.tar.gz";
+    sha256 = "06jnbp88wc9i9dbmy7kggplw4hzlx2bhghxijmlhkjlizgqwimyh";
+  };
+
+  nativeBuildInputs = [ imake gccmakedep ];
+  buildInputs = [
+    libXt libXpm libXext
+  ];
+
+  makeFlags = [ "BINDIR=$(out)/bin" "MANPATH=$(out)/share/man" ];
+
+  meta = {
+    description = "An X-windows application that will let it snow on the root, in between and on windows";
+    homepage = http://janswaal.home.xs4all.nl/Xsnow/;
+    license = stdenv.lib.licenses.unfree;
+    maintainers = [ stdenv.lib.maintainers.robberer ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/xsok/default.nix b/nixpkgs/pkgs/games/xsok/default.nix
new file mode 100644
index 000000000000..0aa0c97f07d2
--- /dev/null
+++ b/nixpkgs/pkgs/games/xsok/default.nix
@@ -0,0 +1,48 @@
+{stdenv, fetchurl, libX11, imake, libXt, libXaw, libXpm, libXext
+, withNethackLevels ? true
+}:
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "xsok";
+  version = "1.02";
+
+  src = fetchurl {
+    url = "http://http.debian.net/debian/pool/main/x/xsok/xsok_1.02.orig.tar.gz";
+    sha256 = "0f4z53xsy4w8x8zp5jya689xp3rcfpi5wri2ip0qa8nk3sw7zj73";
+  };
+
+  nethackLevels = fetchurl {
+    url = "https://www.electricmonk.nl/data/nethack/nethack.def";
+    sha256 = "057ircp13hfpy513c7wpyp986hsvhqs7km98w4k39f5wkvp3dj02";
+  };
+
+  buildInputs = [libX11 libXt libXaw libXpm libXext];
+  nativeBuildInputs = [imake];
+
+  NIX_CFLAGS_COMPILE=" -isystem ${libXpm.dev}/include/X11 ";
+
+  preConfigure = ''
+    sed -e "s@/usr/@$out/share/@g" -i src/Imakefile
+    sed -e "s@/var/games/xsok@./.xsok/@g" -i src/Imakefile
+    sed -e '/chown /d' -i src/Imakefile
+    sed -e '/chmod /d' -i src/Imakefile
+    sed -e '/InstallAppDefaults/d' -i src/Imakefile
+    sed -e 's/CC = gcc/CC = cc/g' -i src/Imakefile
+  '';
+
+  makeFlags = ["BINDIR=$(out)/bin"];
+
+  postInstall = stdenv.lib.optionalString withNethackLevels ''
+    gzip < ${nethackLevels} > "$out/share/games/lib/xsok/Nethack.def.gz"
+    echo Nethack > "$out/share/games/lib/xsok/gametypes"
+  '';
+
+  meta = {
+    inherit version;
+    description = "A generic Sokoban game for X11";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.unix;
+    homepage = https://tracker.debian.org/pkg/xsok;
+  };
+}
diff --git a/nixpkgs/pkgs/games/xsokoban/default.nix b/nixpkgs/pkgs/games/xsokoban/default.nix
new file mode 100644
index 000000000000..cf08db68cf03
--- /dev/null
+++ b/nixpkgs/pkgs/games/xsokoban/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, libX11, xorgproto, libXpm, libXt }:
+
+stdenv.mkDerivation rec {
+  name = "xsokoban-${version}";
+  version = "3.3c";
+
+  src = fetchurl {
+    url = "https://www.cs.cornell.edu/andru/release/${name}.tar.gz";
+    sha256 = "006lp8y22b9pi81x1a9ldfgkl1fbmkdzfw0lqw5y9svmisbafbr9";
+  };
+
+  buildInputs = [ libX11 xorgproto libXpm libXt ];
+
+  NIX_CFLAGS_COMPILE = "-I${libXpm.dev}/include/X11";
+
+  hardeningDisable = [ "format" ];
+
+  prePatch = ''
+    substituteInPlace Makefile.in --replace 4755 0755
+  '';
+
+  preConfigure = ''
+    sed -e 's/getline/my_getline/' -i score.c
+
+    chmod a+rw config.h
+    cat >>config.h <<EOF
+    #define HERE "@nixos-packaged"
+    #define WWW 0
+    #define OWNER "$(whoami)"
+    #define ROOTDIR "$out/lib/xsokoban"
+    #define ANYLEVEL 1
+    #define SCOREFILE ".xsokoban-score"
+    #define LOCKFILE ".xsokoban-score-lock"
+    EOF
+
+    sed -i main.c \
+      -e 's/getpass[(][^)]*[)]/PASSWORD/' \
+      -e '/if [(]owner[)]/iowner=1;'
+  '';
+
+  preBuild = ''
+    sed -i Makefile \
+      -e "s@/usr/local/@$out/@" \
+      -e "s@ /bin/@ @"
+    mkdir -p $out/bin $out/share $out/man/man1 $out/lib
+  '';
+
+  meta = with stdenv.lib; {
+    description = "X sokoban";
+    license = licenses.publicDomain;
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/zandronum/add_gitinfo.patch b/nixpkgs/pkgs/games/zandronum/add_gitinfo.patch
new file mode 100644
index 000000000000..4d8d7c837961
--- /dev/null
+++ b/nixpkgs/pkgs/games/zandronum/add_gitinfo.patch
@@ -0,0 +1,15 @@
+diff -Naur blah/src/gitinfo.h blah2/src/gitinfo.h
+--- blah/src/gitinfo.h	1969-12-31 16:00:00.000000000 -0800
++++ blah2/src/gitinfo.h	2017-09-15 01:44:43.953562714 -0700
+@@ -0,0 +1,11 @@
++// dd3c3b57023f64cda84f09ed13e4c03a4ad2b920
++//
++// This file was automatically generated by the
++// updaterevision tool. Do not edit by hand.
++
++#define GIT_DESCRIPTION "ZA_3.0-0-dd3c3b57023f"
++#define GIT_HASH "dd3c3b57023f64cda84f09ed13e4c03a4ad2b920"
++#define GIT_TIME "2017-09-01 06:40:50 -0500"
++#define HG_REVISION_NUMBER 1504266050
++#define HG_REVISION_HASH_STRING "dd3c3b57023f"
++#define HG_TIME "170901-1140"
diff --git a/nixpkgs/pkgs/games/zandronum/default.nix b/nixpkgs/pkgs/games/zandronum/default.nix
new file mode 100644
index 000000000000..ce32e435608b
--- /dev/null
+++ b/nixpkgs/pkgs/games/zandronum/default.nix
@@ -0,0 +1,83 @@
+{ stdenv, lib, fetchhg, cmake, pkgconfig, makeWrapper, callPackage
+, soundfont-fluid, SDL, libGL, glew, bzip2, zlib, libjpeg, fluidsynth, openssl, gtk2, python3, libgme
+, serverOnly ? false
+}:
+
+let
+  suffix = lib.optionalString serverOnly "-server";
+  fmod = callPackage ./fmod.nix { };
+  sqlite = callPackage ./sqlite.nix { };
+  clientLibPath = lib.makeLibraryPath [ fluidsynth ];
+
+in stdenv.mkDerivation {
+  name = "zandronum${suffix}-3.0";
+
+  src = fetchhg {
+    url = "https://bitbucket.org/Torr_Samaho/zandronum-stable";
+    rev = "dd3c3b57023f";
+    sha256 = "1f8pd8d2zjwdp6v9anp9yrkdbfhd2mp7svmnna0jiqgxjw6wkyls";
+  };
+
+  # zandronum tries to download sqlite now when running cmake, don't let it
+
+  # it also needs the current mercurial revision info embedded in gitinfo.h
+  # otherwise, the client will fail to connect to servers because the
+  # protocol version doesn't match.
+
+  patches = [ ./zan_configure_impurity.patch ./add_gitinfo.patch ./dont_update_gitinfo.patch ];
+
+  # I have no idea why would SDL and libjpeg be needed for the server part!
+  # But they are.
+  buildInputs = [ openssl bzip2 zlib SDL libjpeg sqlite libgme ]
+             ++ lib.optionals (!serverOnly) [ libGL glew fmod fluidsynth gtk2 ];
+
+  nativeBuildInputs = [ cmake pkgconfig makeWrapper python3 ];
+
+  preConfigure = ''
+    ln -s ${sqlite}/* sqlite/
+    sed -ie 's| restrict| _restrict|g' dumb/include/dumb.h \
+                                       dumb/src/it/*.c
+  '' + lib.optionalString (!serverOnly) ''
+    sed -i \
+      -e "s@/usr/share/sounds/sf2/@${soundfont-fluid}/share/soundfonts/@g" \
+      -e "s@FluidR3_GM.sf2@FluidR3_GM2-2.sf2@g" \
+      src/sound/music_fluidsynth_mididevice.cpp
+  '';
+
+  cmakeFlags =
+    [ "-DFORCE_INTERNAL_GME=OFF" ]
+    ++ (if serverOnly
+    then [ "-DSERVERONLY=ON" ]
+    else [ "-DFMOD_LIBRARY=${fmod}/lib/libfmodex.so" ]);
+
+  enableParallelBuilding = true;
+
+  hardeningDisable = [ "format" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/lib/zandronum
+    cp zandronum${suffix} \
+       *.pk3 \
+       ${lib.optionalString (!serverOnly) "liboutput_sdl.so"} \
+       $out/lib/zandronum
+    makeWrapper $out/lib/zandronum/zandronum${suffix} $out/bin/zandronum${suffix}
+  '';
+
+  postFixup = lib.optionalString (!serverOnly) ''
+    patchelf --set-rpath $(patchelf --print-rpath $out/lib/zandronum/zandronum):$out/lib/zandronum:${clientLibPath} \
+      $out/lib/zandronum/zandronum
+  '';
+
+  passthru = {
+    inherit fmod sqlite;
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://zandronum.com/;
+    description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software";
+    maintainers = with maintainers; [ lassulus MP2E ];
+    license = licenses.unfreeRedistributable;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/zandronum/dont_update_gitinfo.patch b/nixpkgs/pkgs/games/zandronum/dont_update_gitinfo.patch
new file mode 100644
index 000000000000..d6dd3a58f457
--- /dev/null
+++ b/nixpkgs/pkgs/games/zandronum/dont_update_gitinfo.patch
@@ -0,0 +1,19 @@
+diff -r dd3c3b57023f src/CMakeLists.txt
+--- a/src/CMakeLists.txt	Fri Sep 01 06:40:50 2017 -0500
++++ b/src/CMakeLists.txt	Fri Sep 15 01:46:34 2017 -0700
+@@ -636,15 +636,6 @@
+	add_definitions( -DBACKPATCH )
+ endif( BACKPATCH )
+
+-# Update gitinfo.h
+-
+-get_target_property( UPDATEREVISION_EXE updaterevision LOCATION )
+-
+-add_custom_target( revision_check ALL
+-	COMMAND ${UPDATEREVISION_EXE} src/gitinfo.h
+-	WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+-	DEPENDS updaterevision )
+-
+ # Libraries ZDoom needs
+
+ message( STATUS "Fluid synth libs: ${FLUIDSYNTH_LIBRARIES}" )
diff --git a/nixpkgs/pkgs/games/zandronum/fmod.nix b/nixpkgs/pkgs/games/zandronum/fmod.nix
new file mode 100644
index 000000000000..a5d9098242bd
--- /dev/null
+++ b/nixpkgs/pkgs/games/zandronum/fmod.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, fetchurl, alsaLib, libpulseaudio, undmg }:
+
+let
+  bits = stdenv.lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") "64";
+  libPath = lib.makeLibraryPath [ stdenv.cc.cc alsaLib libpulseaudio ];
+
+in
+stdenv.mkDerivation rec {
+  name = "fmod-${version}";
+  version = "4.44.64";
+  shortVersion = builtins.replaceStrings [ "." ] [ "" ] version;
+
+  src = fetchurl (if stdenv.isLinux then {
+    url = "https://zdoom.org/files/fmod/fmodapi${shortVersion}linux.tar.gz";
+    sha256 = "047hk92xapwwqj281f4zwl0ih821rrliya70gfj82sdfjh9lz8i1";
+  } else {
+    url = "https://zdoom.org/files/fmod/fmodapi${shortVersion}mac-installer.dmg";
+    sha256 = "1m1y4cpcwpkl8x31d3s68xzp107f343ma09w2437i2adn5y7m8ii";
+  });
+
+  nativeBuildInputs = [ undmg ];
+
+  dontStrip = true;
+  dontPatchELF = true;
+  dontBuild = true;
+
+  installPhase = lib.optionalString stdenv.isLinux ''
+    install -Dm755 api/lib/libfmodex${bits}-${version}.so $out/lib/libfmodex-${version}.so
+    ln -s libfmodex-${version}.so $out/lib/libfmodex.so
+    patchelf --set-rpath ${libPath} $out/lib/libfmodex.so
+  '' + lib.optionalString stdenv.isDarwin ''
+    install -D api/lib/libfmodex.dylib $out/lib/libfmodex.dylib
+    install -D api/lib/libfmodexL.dylib $out/lib/libfmodexL.dylib
+  '' + ''
+    cp -r api/inc $out/include
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Programming library and toolkit for the creation and playback of interactive audio";
+    homepage    = http://www.fmod.org/;
+    license     = licenses.unfreeRedistributable;
+    platforms   = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+    maintainers = [ maintainers.lassulus ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/zandronum/sqlite.nix b/nixpkgs/pkgs/games/zandronum/sqlite.nix
new file mode 100644
index 000000000000..3d60dab6fe00
--- /dev/null
+++ b/nixpkgs/pkgs/games/zandronum/sqlite.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "sqlite-zandronum-3.0";
+
+  src = fetchurl {
+    url = "https://www.sqlite.org/2017/sqlite-autoconf-3180000.tar.gz";
+    sha256 = "0p5cx7nbjxk7glcm277ypi5w4gv144qazw79ql47svlpccj62mrp";
+  };
+
+  phases = [ "unpackPhase" "buildPhase" ];
+
+  buildPhase = ''
+    mkdir -p $out
+    cp sqlite3.c $out/
+    cp sqlite3.h $out/
+    cp sqlite3ext.h $out/
+  '';
+
+  meta = {
+    homepage = http://www.sqlite.org/;
+    description = "A single C code file, named sqlite3.c, that contains all C code for the core SQLite library and the FTS3 and RTREE extensions";
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ lib.maintainers.lassulus ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/zandronum/zan_configure_impurity.patch b/nixpkgs/pkgs/games/zandronum/zan_configure_impurity.patch
new file mode 100644
index 000000000000..0cf7150502e4
--- /dev/null
+++ b/nixpkgs/pkgs/games/zandronum/zan_configure_impurity.patch
@@ -0,0 +1,65 @@
+diff -r 6d5130e4ae52 sqlite/CMakeLists.txt
+--- a/sqlite/CMakeLists.txt	Sun Sep 10 18:53:00 2017 +0200
++++ b/sqlite/CMakeLists.txt	Fri Sep 15 00:12:11 2017 -0700
+@@ -1,62 +1,5 @@
+ cmake_minimum_required( VERSION 2.4 )
+
+-# [BB/EP] Download SQLite archive and extract the sources if necessary.
+-set( ZAN_SQLITE_VERSION 3180000 ) # SQL version 3.18.0
+-set( ZAN_SQLITE_YEAR 2017 )
+-set( ZAN_SQLITE_SHA1 "74559194e1dd9b9d577cac001c0e9d370856671b" )
+-set( ZAN_SQLITE_DOWNLOAD_NAME "sqlite-autoconf-${ZAN_SQLITE_VERSION}" )
+-set( ZAN_SQLITE_TEMP_ARCHIVE "${CMAKE_CURRENT_SOURCE_DIR}/${ZAN_SQLITE_DOWNLOAD_NAME}.tar.gz" )
+-set( ZAN_SQLITE_HASHED_ARCHIVE "${CMAKE_CURRENT_SOURCE_DIR}/sqlite-${ZAN_SQLITE_SHA1}.tar.gz" )
+-
+-if( IS_DIRECTORY ${ZAN_SQLITE_HASHED_ARCHIVE} OR IS_SYMLINK ${ZAN_SQLITE_HASHED_ARCHIVE} )
+-	message( FATAL_ERROR "SQLite: ${ZAN_SQLITE_HASHED_ARCHIVE} must be a valid file.\n"
+-				"SQLite: Please remove it and try again." )
+-elseif( NOT EXISTS ${ZAN_SQLITE_HASHED_ARCHIVE} )
+-
+-	if( IS_DIRECTORY ${ZAN_SQLITE_TEMP_ARCHIVE} OR IS_SYMLINK ${ZAN_SQLITE_TEMP_ARCHIVE} )
+-		message( FATAL_ERROR "SQLite: ${ZAN_SQLITE_TEMP_ARCHIVE} must be a valid file.\n"
+-					"SQLite: Please remove it and try again." )
+-	endif()
+-	message( STATUS "SQLite: downloading the archive..." )
+-
+-	file( DOWNLOAD https://www.sqlite.org/${ZAN_SQLITE_YEAR}/${ZAN_SQLITE_DOWNLOAD_NAME}.tar.gz ${ZAN_SQLITE_TEMP_ARCHIVE}
+-			SHOW_PROGRESS
+-			STATUS ZAN_SQLITE_DOWNLOAD_STATUS )
+-
+-	# Report any problem if present and abort immediately.
+-	list( GET ZAN_SQLITE_DOWNLOAD_STATUS 0 ZAN_SQLITE_DOWNLOAD_ERROR_CODE )
+-	if( ZAN_SQLITE_DOWNLOAD_ERROR_CODE )
+-		list( GET ZAN_SQLITE_DOWNLOAD_STATUS 1 ZAN_SQLITE_DOWNLOAD_ERROR_MESSAGE )
+-		message( FATAL_ERROR "SQLite: download failed. Reason: ${ZAN_SQLITE_DOWNLOAD_ERROR_MESSAGE}" )
+-	endif()
+-
+-	# Check the hash. Abort immediately if it's not valid (something is wrong with the download)
+-	file( SHA1 ${ZAN_SQLITE_TEMP_ARCHIVE} ZAN_SQLITE_CURRENT_SHA1 )
+-	if( NOT ZAN_SQLITE_CURRENT_SHA1 STREQUAL ZAN_SQLITE_SHA1 )
+-		message( FATAL_ERROR "SQLite: download failed. The downloaded file has a different hash:\n"
+-					"SQLite:    valid:      ${ZAN_SQLITE_SHA1}\n"
+-					"SQLite:    downloaded: ${ZAN_SQLITE_CURRENT_SHA1}" )
+-	endif()
+-
+-	message( STATUS "SQLite: saving the source files into the 'sqlite' directory." )
+-
+-	# Rename the archive.
+-	execute_process( COMMAND ${CMAKE_COMMAND} -E rename ${ZAN_SQLITE_TEMP_ARCHIVE} ${ZAN_SQLITE_HASHED_ARCHIVE} )
+-
+-	# Extract the archive.
+-	execute_process( COMMAND ${CMAKE_COMMAND} -E tar xzf ${ZAN_SQLITE_HASHED_ARCHIVE} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
+-
+-	# Copy the required files.
+-	execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${ZAN_SQLITE_DOWNLOAD_NAME}/sqlite3.c ${CMAKE_CURRENT_SOURCE_DIR} )
+-	execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${ZAN_SQLITE_DOWNLOAD_NAME}/sqlite3.h ${CMAKE_CURRENT_SOURCE_DIR} )
+-	execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${ZAN_SQLITE_DOWNLOAD_NAME}/sqlite3ext.h ${CMAKE_CURRENT_SOURCE_DIR} )
+-
+-	# Remove the extracted folder.
+-	execute_process( COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_SOURCE_DIR}/${ZAN_SQLITE_DOWNLOAD_NAME} )
+-
+-	message( STATUS "SQLite: done." )
+-endif()
+-
+ add_library( sqlite3 sqlite3.c )
+ target_link_libraries( sqlite3 ${CMAKE_DL_LIBS} )
diff --git a/nixpkgs/pkgs/games/zangband/default.nix b/nixpkgs/pkgs/games/zangband/default.nix
new file mode 100644
index 000000000000..3d5da2391157
--- /dev/null
+++ b/nixpkgs/pkgs/games/zangband/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, ncurses, flex, bison, autoconf, automake, m4, coreutils }:
+
+stdenv.mkDerivation rec {
+  name = pname + "-" + version;
+  pname = "zangband";
+  version = "2.7.4b";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/${pname}/${pname}-src/${version}/${name}.tar.gz";
+    sha256 = "0kkz6f9myhjnr3308sdab8q186rd55lapvcp38w8qmakdbhc828j";
+  };
+
+  buildInputs = [
+    ncurses flex bison autoconf automake m4
+  ];
+
+  preConfigure = ''
+    sed -re 's/ch(own|grp|mod)/true/' -i lib/*/makefile.zb makefile.in
+    sed -e '/FIXED_PATHS/d' -i src/z-config.h
+    autoconf
+  '';
+
+  preInstall = ''
+    mkdir -p $out/share/games/zangband
+    mkdir -p $out/share/man
+    mkdir -p $out/bin
+  '';
+
+  postInstall = ''
+    mv $out/bin/zangband $out/bin/.zangband.real
+    echo '#! ${stdenv.shell}
+      PATH="$PATH:${coreutils}/bin"
+
+      ZANGBAND_PATH="$HOME/.zangband"
+      ORIG_PATH="'$out'"/share/games/zangband
+      mkdir -p "$ZANGBAND_PATH"
+      cd "$ZANGBAND_PATH"
+      for i in $(find "$ORIG_PATH" -type f); do
+        REL_PATH="''${i#$ORIG_PATH/}"
+        mkdir -p "$(dirname "$REL_PATH")"
+        ln -s "$i" "$REL_PATH" &>/dev/null
+      done
+      mkdir -p lib/user lib/save
+      for i in lib/*/*.raw; do
+        test -L "$i" && rm "$i";
+      done
+      for i in $(find lib -type l); do if ! test -e $(readlink "$i"); then rm "$i"; fi; done;
+      export ANGBAND_PATH="$PWD"
+      "'$out'/bin/.zangband.real" "$@"
+    ' > $out/bin/zangband
+    chmod +x $out/bin/zangband
+  '';
+
+  meta = {
+    description = "Rogue-like game";
+    license = stdenv.lib.licenses.unfree;
+    broken = true; # broken in runtime, will not get pass character generation
+  };
+}
diff --git a/nixpkgs/pkgs/games/zdoom/bcc-git.nix b/nixpkgs/pkgs/games/zdoom/bcc-git.nix
new file mode 100644
index 000000000000..2a1219e66ea0
--- /dev/null
+++ b/nixpkgs/pkgs/games/zdoom/bcc-git.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  name = "doom-bcc-git-0.8.0.2018.01.04";
+
+  src = fetchFromGitHub {
+    owner = "wormt";
+    repo = "bcc";
+    rev = "d58b44d9f18b28fd732c27113e5607a454506d19";
+    sha256 = "1m83ip40ln61qrvb1fbgaqbld2xip9n3k817lwkk1936pml9zcrq";
+  };
+
+  enableParallelBuilding = true;
+  makeFlags = ["CC=cc"];
+
+  patches = [ ./bcc-warning-fix.patch ];
+
+  installPhase = ''
+    mkdir -p $out/{bin,lib,share/doc}
+    install -m755 bcc $out/bin/bcc
+    cp -av doc $out/share/doc/bcc
+    cp -av lib $out/lib/bcc
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Compiler for Doom/Hexen scripts (ACS, BCS)";
+    homepage = https://github.com/wormt/bcc;
+    license = licenses.mit;
+    maintainers = with maintainers; [ertes];
+  };
+}
diff --git a/nixpkgs/pkgs/games/zdoom/bcc-warning-fix.patch b/nixpkgs/pkgs/games/zdoom/bcc-warning-fix.patch
new file mode 100644
index 000000000000..4a352cb1e471
--- /dev/null
+++ b/nixpkgs/pkgs/games/zdoom/bcc-warning-fix.patch
@@ -0,0 +1,25 @@
+From c6ac05c96b7908ccd35f3908fc0f13650b0583c0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ertugrul=20S=C3=B6ylemez?= <esz@posteo.de>
+Date: Sat, 3 Feb 2018 17:08:54 +0100
+Subject: [PATCH] Remove -Werror
+
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index bbe2c75..3357d2d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -4,7 +4,7 @@ EXE=bcc
+ BUILD_DIR=build
+ CC=gcc
+ INCLUDE=-Isrc -I src/parse
+-OPTIONS=-Wall -Werror -Wno-unused -std=c99 -pedantic -Wstrict-aliasing \
++OPTIONS=-Wall -Wno-unused -std=c99 -pedantic -Wstrict-aliasing \
+ 	-Wstrict-aliasing=2 -Wmissing-field-initializers -D_BSD_SOURCE \
+ 	-D_DEFAULT_SOURCE $(INCLUDE)
+ VERSION_FILE=$(BUILD_DIR)/version.c
+-- 
+2.15.1
+
diff --git a/nixpkgs/pkgs/games/zdoom/default.nix b/nixpkgs/pkgs/games/zdoom/default.nix
new file mode 100644
index 000000000000..d2b94a14fe41
--- /dev/null
+++ b/nixpkgs/pkgs/games/zdoom/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, p7zip, cmake
+, SDL2, openal, fluidsynth, soundfont-fluid, bzip2, zlib, libjpeg, game-music-emu
+, libsndfile, mpg123 }:
+
+stdenv.mkDerivation rec {
+  name = "zdoom-${version}";
+  majorVersion = "2.8";
+  version = "${majorVersion}.1";
+
+  src = fetchurl {
+    url = "https://zdoom.org/files/zdoom/${majorVersion}/zdoom-${version}-src.7z";
+    sha256 = "0453fqrh9l00xwphfxni5qkf9y134n3s1mr1dvi5cbkxcva7j8bq";
+  };
+
+  nativeBuildInputs = [ p7zip cmake ];
+  buildInputs = [
+    SDL2 openal fluidsynth bzip2 zlib libjpeg game-music-emu libsndfile mpg123
+  ];
+
+  cmakeFlags = [
+    "-DFORCE_INTERNAL_GME=OFF"
+    "-DGME_INCLUDE_DIR=${game-music-emu}/include"
+    "-DGME_LIBRARIES=${game-music-emu}/lib/libgme.so"
+  ];
+
+  sourceRoot = ".";
+
+  enableParallelBuilding = true;
+
+  NIX_CFLAGS_LINK = [ "-lopenal" "-lfluidsynth" ];
+
+  preConfigure = ''
+    sed -i \
+      -e "s@/usr/share/sounds/sf2/@${soundfont-fluid}/share/soundfonts/@g" \
+      -e "s@FluidR3_GM.sf2@FluidR3_GM2-2.sf2@g" \
+      src/sound/music_fluidsynth_mididevice.cpp
+  '';
+
+  installPhase = ''
+    install -Dm755 zdoom "$out/lib/zdoom/zdoom"
+    for i in *.pk3; do
+      install -Dm644 "$i" "$out/lib/zdoom/$i"
+    done
+    mkdir -p $out/bin
+    ln -s $out/lib/zdoom/zdoom $out/bin/zdoom
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://zdoom.org/;
+    description = "Enhanced port of the official DOOM source code";
+    # Doom source license, MAME license
+    license = licenses.unfreeRedistributable;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ lassulus ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/games/zdoom/zdbsp.nix b/nixpkgs/pkgs/games/zdoom/zdbsp.nix
new file mode 100644
index 000000000000..fa2cafa298ac
--- /dev/null
+++ b/nixpkgs/pkgs/games/zdoom/zdbsp.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, cmake, unzip, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "zdbsp-${version}";
+  version = "1.19";
+
+  src = fetchurl {
+    url = "https://zdoom.org/files/utils/zdbsp/zdbsp-${version}-src.zip";
+    sha256 = "0j82q7g7hgvnahk6gdyhmn9880mqii3b4agqc98f5xaj3kxmd2dr";
+  };
+
+  nativeBuildInputs = [cmake unzip];
+  buildInputs = [zlib];
+  sourceRoot = ".";
+  enableParallelBuilding = true;
+  installPhase = ''
+    install -Dm755 zdbsp $out/bin/zdbsp
+  '';
+
+  meta = with stdenv.lib; {
+    description = "ZDoom's internal node builder for DOOM maps";
+    homepage = https://zdoom.org/wiki/ZDBSP;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ertes];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/zod/default.nix b/nixpkgs/pkgs/games/zod/default.nix
new file mode 100644
index 000000000000..da2f256aeb71
--- /dev/null
+++ b/nixpkgs/pkgs/games/zod/default.nix
@@ -0,0 +1,45 @@
+{ fetchurl, stdenv, unrar, unzip, SDL, SDL_image, SDL_ttf, SDL_mixer
+, mysql, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "zod-engine-2011-03-18";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/zod/zod_src-2011-03-18.zip";
+    sha256 = "00ny7a1yfn9zgl7q1ys27qafwc92dzxv07wjxl8nxa4f98al2g4n";
+  };
+
+  srcAssets = fetchurl {
+    url = "mirror://sourceforge/zod/zod_assets-2011-03-12.rar";
+    sha256 = "0gmg4ppr4y6ck04mandlp2fmdcyssmck999m012jx5v1rm57g2hn";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  unpackPhase = ''
+    mkdir src
+    pushd src
+    unzip $src
+    popd
+    sourceRoot=`pwd`/src
+  '';
+
+  buildInputs = [ unrar unzip SDL SDL_image SDL_ttf SDL_mixer mysql.connector-c makeWrapper ];
+
+  NIX_LDFLAGS = "-L${mysql.connector-c}/lib/mysql";
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/zod
+    pushd $out/share/zod
+    unrar x $srcAssets
+    popd
+    cp zod $out/bin
+    wrapProgram $out/bin/zod --run "cd $out/share/zod"
+  '';
+
+  meta = {
+    description = "Multiplayer remake of ZED";
+    homepage = http://zod.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl3Plus; /* Says the web */
+  };
+}
diff --git a/nixpkgs/pkgs/games/zoom/default.nix b/nixpkgs/pkgs/games/zoom/default.nix
new file mode 100644
index 000000000000..449d7ae6e2d5
--- /dev/null
+++ b/nixpkgs/pkgs/games/zoom/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, perl, expat, xlibsWrapper, freetype }:
+
+# !!! assert freetype == xorg.freetype
+
+stdenv.mkDerivation rec {
+  name = "zoom-1.1.5";
+  
+  src = fetchurl {
+    url = "https://www.logicalshift.co.uk/unix/zoom/${name}.tar.gz";
+    sha256 = "1g6van7f7sg3zfcz80mncnnbccyg2hnm0hq4x558vpsm0lf7z5pj";
+  };
+  
+  buildInputs = [ perl expat xlibsWrapper freetype ];
+  
+  NIX_CFLAGS_COMPILE = [
+    # Zoom doesn't add the right directory in the include path.
+    "-I" (freetype + "/include/freetype2")
+
+    # for gcc5; c11 inline semantics breaks the build
+    "-fgnu89-inline"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Player for Z-Code, TADS and HUGO stories or games";
+    longDescription = ''
+      Zoom is a player for Z-Code, TADS and HUGO stories or games. These are
+      usually text adventures ('interactive fiction'), and were first created
+      by Infocom with the Zork series of games. Throughout the 80's, Infocom
+      released many interactive fiction stories before their ambitions to enter
+      the database market finally brought them low.
+    '';
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}