diff options
Diffstat (limited to 'pkgs/games')
68 files changed, 2618 insertions, 479 deletions
diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix index 489e72768ea..0d713b1f71e 100644 --- a/pkgs/games/anki/default.nix +++ b/pkgs/games/anki/default.nix @@ -31,7 +31,7 @@ let # when updating, also update rev-manual to a recent version of - # https://github.com/dae/ankidocs + # https://github.com/ankitects/anki-docs # The manual is distributed independently of the software. version = "2.1.15"; sha256-pkg = "12dvyf3j9df4nrhhnqbzd9b21rpzkh4i6yhhangn2zf7ch0pclss"; @@ -42,8 +42,8 @@ let pname = "anki-manual"; inherit version; src = fetchFromGitHub { - owner = "dae"; - repo = "ankidocs"; + owner = "ankitects"; + repo = "anki-docs"; rev = rev-manual; sha256 = sha256-manual; }; @@ -112,16 +112,10 @@ buildPythonApplication rec { ./no-version-check.patch ]; - buildPhase = '' - # Dummy build phase - # Anki does not use setup.py - ''; + # Anki does not use setup.py + dontBuild = true; 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 @@ -134,10 +128,10 @@ buildPythonApplication rec { # UTF-8 locale needed for testing LC_ALL = "en_US.UTF-8"; + # - Anki writes some files to $HOME during tests + # - Skip tests using network checkPhase = '' - # - Anki writes some files to $HOME during tests - # - Skip tests using network - env HOME=$TMP pytest --ignore tests/test_sync.py + HOME=$TMP pytest --ignore tests/test_sync.py ''; installPhase = '' @@ -170,6 +164,7 @@ buildPythonApplication rec { cp -r ${manual}/share/doc/anki/html $doc/share/doc/anki ''; + # now wrapPythonPrograms from postFixup will add both python and qt env variables dontWrapQtApps = true; preFixup = '' @@ -179,8 +174,6 @@ buildPythonApplication rec { ) ''; - # now wrapPythonPrograms from postFixup will add both python and qt env variables - passthru = { inherit manual; }; diff --git a/pkgs/games/arena/default.nix b/pkgs/games/arena/default.nix index a8e147b6a7e..beba98b6316 100644 --- a/pkgs/games/arena/default.nix +++ b/pkgs/games/arena/default.nix @@ -12,11 +12,11 @@ let in stdenv.mkDerivation rec { - name = "arena-1.1"; + name = "arena-3.10-beta"; src = fetchurl { - url = "http://www.playwitharena.de/downloads/arenalinux_64bit_1.1.tar.gz"; - sha256 = "1sh71v5ymzwflq8ycx9j9kl0jhqllgs6z24h4h8j5z8pwdh528v6"; + url = "http://www.playwitharena.de/downloads/arenalinux_64bit_3.10beta.tar.gz"; + sha256 = "1pzb9sg4lzbbi4gbldvlb85p8xyl9xnplxwyb9pkk2mwzvvxkf0d"; }; # stdenv.cc.cc.lib is in that list to pick up libstdc++.so. Is there a better way? @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { # 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} + chmod -x $out/lib/${name}/Engines/*/*.{txt,bin,bmp,zip} ''; buildPhase = '' diff --git a/pkgs/games/arx-libertatis/default.nix b/pkgs/games/arx-libertatis/default.nix index 8b2cf83e509..2e60f81f4d3 100644 --- a/pkgs/games/arx-libertatis/default.nix +++ b/pkgs/games/arx-libertatis/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchFromGitHub, cmake, zlib, boost , openal, glm, freetype, libGLU, SDL2, epoxy -, dejavu_fonts, inkscape, optipng, imagemagick +, dejavu_fonts, inkscape_0, optipng, imagemagick , withCrashReporter ? !stdenv.isDarwin , qtbase ? null , wrapQtAppsHook ? null @@ -22,7 +22,7 @@ stdenv.mkDerivation { }; nativeBuildInputs = [ - cmake inkscape imagemagick optipng + cmake inkscape_0 imagemagick optipng ] ++ optionals withCrashReporter [ wrapQtAppsHook ]; buildInputs = [ diff --git a/pkgs/games/assaultcube/default.nix b/pkgs/games/assaultcube/default.nix index f40e2ecf220..6c3a7f1168e 100644 --- a/pkgs/games/assaultcube/default.nix +++ b/pkgs/games/assaultcube/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { 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"; + categories = "Game;ActionGame;Shooter"; icon = "assaultcube.png"; exec = pname; }; diff --git a/pkgs/games/augustus/default.nix b/pkgs/games/augustus/default.nix new file mode 100644 index 00000000000..cabe419ef5b --- /dev/null +++ b/pkgs/games/augustus/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, libpng }: + +stdenv.mkDerivation rec { + pname = "augustus"; + version = "1.4.1a"; + + src = fetchFromGitHub { + owner = "Keriew"; + repo = "augustus"; + rev = "v${version}"; + sha256 = "1xqv8j8jh3f13fjhyf7hk1anrn799cwwsvsd75kpl9n5yh5s1j5y"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ SDL2 SDL2_mixer libpng ]; + + meta = with stdenv.lib; { + description = "An open source re-implementation of Caesar III. Fork of Julius incorporating gameplay changes"; + homepage = "https://github.com/Keriew/augustus"; + license = licenses.agpl3; + platforms = platforms.all; + maintainers = with maintainers; [ Thra11 ]; + }; +} diff --git a/pkgs/games/cataclysm-dda/builder.nix b/pkgs/games/cataclysm-dda/builder.nix new file mode 100644 index 00000000000..24128875f3a --- /dev/null +++ b/pkgs/games/cataclysm-dda/builder.nix @@ -0,0 +1,49 @@ +{ stdenvNoCC, lib, type }: + +assert lib.elem type [ + "mod" + "soundpack" + "tileset" +]; + +{ modName, version, src, ... } @ args: + +stdenvNoCC.mkDerivation (args // rec { + pname = args.pname or "cataclysm-dda-${type}-${modName}"; + + modRoot = args.modRoot or "."; + + configurePhase = args.configurePhase or '' + runHook preConfigure + runHook postConfigure + ''; + + buildPhase = args.buildPhase or '' + runHook preBuild + runHook postBuild + ''; + + checkPhase = args.checkPhase or '' + runHook preCheck + runHook postCheck + ''; + + installPhase = let + baseDir = { + mod = "mods"; + soundpack = "sound"; + tileset = "gfx"; + }.${type}; + in args.installPhase or '' + runHook preInstall + destdir="$out/share/cataclysm-dda/${baseDir}" + mkdir -p "$destdir" + cp -R "${modRoot}" "$destdir/${modName}" + runHook postInstall + ''; + + passthru = { + forTiles = true; + forCurses = type == "mod"; + }; +}) diff --git a/pkgs/games/cataclysm-dda/common.nix b/pkgs/games/cataclysm-dda/common.nix index f904a3c0f35..9ec73cdebe0 100644 --- a/pkgs/games/cataclysm-dda/common.nix +++ b/pkgs/games/cataclysm-dda/common.nix @@ -1,6 +1,7 @@ -{ stdenv, fetchFromGitHub, pkgconfig, gettext, ncurses, CoreFoundation +{ stdenv, runtimeShell, pkgconfig, gettext, ncurses, CoreFoundation , tiles, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, freetype, Cocoa -, debug, runtimeShell +, debug +, useXdgDir }: let @@ -12,98 +13,100 @@ let tilesDeps = [ SDL2 SDL2_image SDL2_mixer SDL2_ttf freetype ] ++ optionals stdenv.isDarwin [ Cocoa ]; - common = { - nativeBuildInputs = [ pkgconfig ]; - - buildInputs = cursesDeps ++ optionals tiles tilesDeps; - - postPatch = '' - patchShebangs . - ''; + 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 - makeFlags = [ - "PREFIX=$(out)" "USE_HOME_DIR=1" "LANGUAGES=all" - ] ++ optionals (!debug) [ - "RELEASE=1" - ] ++ optionals tiles [ - "TILES=1" "SOUND=1" - ] ++ optionals stdenv.isDarwin [ - "NATIVE=osx" "CLANG=1" - ]; - - postInstall = optionalString tiles - ( if !stdenv.isDarwin - then utils.installXDGAppLauncher - else utils.installMacOSAppLauncher - ); - - dontStrip = debug; - - # 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; { - 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; - }; +stdenv.mkDerivation { + pname = "cataclysm-dda"; + + nativeBuildInputs = [ pkgconfig ]; + + buildInputs = cursesDeps ++ optionals tiles tilesDeps; + + postPatch = '' + patchShebangs . + + # Locale patch required for Darwin builds, see: + # https://github.com/NixOS/nixpkgs/pull/74064#issuecomment-560083970 + sed -i src/translations.cpp \ + -e 's@#elif (defined(__linux__) || (defined(MACOSX) && !defined(TILES)))@#elif 1@' + ''; + + makeFlags = [ + "PREFIX=$(out)" "LANGUAGES=all" + (if useXdgDir then "USE_XDG_DIR=1" else "USE_HOME_DIR=1") + ] ++ optionals (!debug) [ + "RELEASE=1" + ] ++ optionals tiles [ + "TILES=1" "SOUND=1" + ] ++ optionals stdenv.isDarwin [ + "NATIVE=osx" "CLANG=1" + ]; + + postInstall = optionalString tiles + ( if !stdenv.isDarwin + then installXDGAppLauncher + else installMacOSAppLauncher + ); + + dontStrip = debug; + + # 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; + + passthru = { + isTiles = tiles; + isCurses = !tiles; }; - 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 + 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; }; -in - -{ inherit common utils; } +} diff --git a/pkgs/games/cataclysm-dda/default.nix b/pkgs/games/cataclysm-dda/default.nix index ad1a9c409d5..ada212ea7e9 100644 --- a/pkgs/games/cataclysm-dda/default.nix +++ b/pkgs/games/cataclysm-dda/default.nix @@ -1,25 +1,42 @@ -{ stdenv, callPackage, CoreFoundation -, tiles ? true, Cocoa -, debug ? false -}: +{ newScope, darwin }: let - inherit (callPackage ./common.nix { inherit tiles CoreFoundation Cocoa debug; }) common utils; - inherit (utils) fetchFromCleverRaven; -in + callPackage = newScope self; -stdenv.mkDerivation (common // rec { - version = "0.E"; - name = "cataclysm-dda-${version}"; + stable = rec { + tiles = callPackage ./stable.nix { + inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa; + }; - src = fetchFromCleverRaven { - rev = version; - sha256 = "0pbi0fw37zimzdklfj58s1ql0wlqq7dy6idkcsib3hn910ajaxan"; + curses = tiles.override { tiles = false; }; }; - patches = [ ./patches/fix_locale_dir.patch ]; + git = rec { + tiles = callPackage ./git.nix { + inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa; + }; - meta = with stdenv.lib.maintainers; common.meta // { - maintainers = common.meta.maintainers ++ [ skeidel ]; + curses = tiles.override { tiles = false; }; }; -}) + + lib = callPackage ./lib.nix {}; + + pkgs = callPackage ./pkgs {}; + + self = { + inherit + callPackage + stable + git; + + inherit (lib) + buildMod + buildSoundPack + buildTileSet + wrapCDDA; + + inherit pkgs; + }; +in + +self diff --git a/pkgs/games/cataclysm-dda/git.nix b/pkgs/games/cataclysm-dda/git.nix index 8e3c3e33994..36f37f7aeba 100644 --- a/pkgs/games/cataclysm-dda/git.nix +++ b/pkgs/games/cataclysm-dda/git.nix @@ -1,33 +1,41 @@ -{ stdenv, callPackage, CoreFoundation +{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA , tiles ? true, Cocoa , debug ? false +, useXdgDir ? false +, version ? "2019-11-22" +, rev ? "a6c8ece992bffeae3788425dd4b3b5871e66a9cd" +, sha256 ? "0ww2q5gykxm802z1kffmnrfahjlx123j1gfszklpsv0b1fccm1ab" }: let - inherit (stdenv.lib) substring; - inherit (callPackage ./common.nix { inherit tiles CoreFoundation Cocoa debug; }) common utils; - inherit (utils) fetchFromCleverRaven; -in + common = callPackage ./common.nix { + inherit CoreFoundation tiles Cocoa debug useXdgDir; + }; -stdenv.mkDerivation (common // rec { - version = "2019-11-22"; - name = "cataclysm-dda-git-${version}"; + self = common.overrideAttrs (common: rec { + pname = common.pname + "-git"; + inherit version; - src = fetchFromCleverRaven { - rev = "a6c8ece992bffeae3788425dd4b3b5871e66a9cd"; - sha256 = "0ww2q5gykxm802z1kffmnrfahjlx123j1gfszklpsv0b1fccm1ab"; - }; + src = fetchFromGitHub { + owner = "CleverRaven"; + repo = "Cataclysm-DDA"; + inherit rev sha256; + }; - patches = [ - # Locale patch required for Darwin builds, see: https://github.com/NixOS/nixpkgs/pull/74064#issuecomment-560083970 - ./patches/fix_locale_dir_git.patch - ]; + makeFlags = common.makeFlags ++ [ + "VERSION=git-${version}-${lib.substring 0 8 src.rev}" + ]; - makeFlags = common.makeFlags ++ [ - "VERSION=git-${version}-${substring 0 8 src.rev}" - ]; + passthru = common.passthru // { + pkgs = pkgs.override { build = self; }; + withMods = wrapCDDA self; + }; - meta = with stdenv.lib.maintainers; common.meta // { - maintainers = common.meta.maintainers ++ [ rardiol ]; - }; -}) + meta = common.meta // { + maintainers = with lib.maintainers; + common.meta.maintainers ++ [ rardiol ]; + }; + }); +in + +self diff --git a/pkgs/games/cataclysm-dda/lib.nix b/pkgs/games/cataclysm-dda/lib.nix new file mode 100644 index 00000000000..02678ed0228 --- /dev/null +++ b/pkgs/games/cataclysm-dda/lib.nix @@ -0,0 +1,17 @@ +{ callPackage }: + +{ + buildMod = callPackage ./builder.nix { + type = "mod"; + }; + + buildSoundPack = callPackage ./builder.nix { + type = "soundpack"; + }; + + buildTileSet = callPackage ./builder.nix { + type = "tileset"; + }; + + wrapCDDA = callPackage ./wrapper.nix {}; +} diff --git a/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch b/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch deleted file mode 100644 index 5bfff892d2a..00000000000 --- a/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/src/translations.cpp -+++ b/src/translations.cpp -@@ -212,14 +212,12 @@ void set_language() - auto env = getenv( "LANGUAGE" ); - locale_dir = std::string( PATH_INFO::base_path() + "lang/mo/" + ( env ? env : "none" ) + - "/LC_MESSAGES/cataclysm-dda.mo" ); --#elif (defined(__linux__) || (defined(MACOSX) && !defined(TILES))) -+#else - if( !PATH_INFO::base_path().empty() ) { - locale_dir = PATH_INFO::base_path() + "share/locale"; - } else { - locale_dir = "lang/mo"; - } --#else -- locale_dir = "lang/mo"; - #endif - - const char *locale_dir_char = locale_dir.c_str(); diff --git a/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch b/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch deleted file mode 100644 index 79b442ff5c9..00000000000 --- a/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/src/translations.cpp b/src/translations.cpp -index 067e2cd77d..5660d18b3d 100644 ---- a/src/translations.cpp -+++ b/src/translations.cpp -@@ -211,14 +211,12 @@ void set_language() - auto env = getenv( "LANGUAGE" ); - locale_dir = std::string( FILENAMES["base_path"] + "lang/mo/" + ( env ? env : "none" ) + - "/LC_MESSAGES/cataclysm-dda.mo" ); --#elif (defined(__linux__) || (defined(MACOSX) && !defined(TILES))) -+#else - if( !FILENAMES["base_path"].empty() ) { - locale_dir = FILENAMES["base_path"] + "share/locale"; - } else { - locale_dir = "lang/mo"; - } --#else -- locale_dir = "lang/mo"; - #endif - - const char *locale_dir_char = locale_dir.c_str(); diff --git a/pkgs/games/cataclysm-dda/pkgs/default.nix b/pkgs/games/cataclysm-dda/pkgs/default.nix new file mode 100644 index 00000000000..6f3df09a786 --- /dev/null +++ b/pkgs/games/cataclysm-dda/pkgs/default.nix @@ -0,0 +1,27 @@ +{ lib, callPackage, build ? null }: + +let + pkgs = { + mod = { + }; + + soundpack = { + }; + + tileset = { + UndeadPeople = callPackage ./tilesets/UndeadPeople {}; + }; + }; + + pkgs' = lib.mapAttrs (_: mod: lib.filterAttrs availableForBuild mod) pkgs; + + availableForBuild = _: mod: + if isNull build then + true + else if build.isTiles then + mod.forTiles + else + mod.forCurses; +in + +lib.makeExtensible (_: pkgs') diff --git a/pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix b/pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix new file mode 100644 index 00000000000..7a58cea8208 --- /dev/null +++ b/pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix @@ -0,0 +1,23 @@ +{ lib, buildTileSet, fetchFromGitHub }: + +buildTileSet { + modName = "UndeadPeople"; + version = "2020-07-08"; + + src = fetchFromGitHub { + owner = "SomeDeadGuy"; + repo = "UndeadPeopleTileset"; + rev = "f7f13b850fafe2261deee051f45d9c611a661534"; + sha256 = "0r06srjr7rq51jk9yfyxz80nfgb98mkn86cbcjfxpibgbqvcp0zm"; + }; + + modRoot = "MSX++UnDeadPeopleEdition"; + + meta = with lib; { + description = "Cataclysm DDA tileset based on MSX++ tileset"; + homepage = "https://github.com/SomeDeadGuy/UndeadPeopleTileset"; + license = licenses.unfree; + maintainers = with maintainers; [ mnacamura ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/games/cataclysm-dda/stable.nix b/pkgs/games/cataclysm-dda/stable.nix new file mode 100644 index 00000000000..076a33a9e89 --- /dev/null +++ b/pkgs/games/cataclysm-dda/stable.nix @@ -0,0 +1,34 @@ +{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA +, tiles ? true, Cocoa +, debug ? false +, useXdgDir ? false +}: + +let + common = callPackage ./common.nix { + inherit CoreFoundation tiles Cocoa debug useXdgDir; + }; + + self = common.overrideAttrs (common: rec { + version = "0.E-2"; + + src = fetchFromGitHub { + owner = "CleverRaven"; + repo = "Cataclysm-DDA"; + rev = version; + sha256 = "15l6w6lxays7qmsv0ci2ry53asb9an9dh7l7fc13256k085qcg68"; + }; + + passthru = common.passthru // { + pkgs = pkgs.override { build = self; }; + withMods = wrapCDDA self; + }; + + meta = common.meta // { + maintainers = with lib.maintainers; + common.meta.maintainers ++ [ skeidel ]; + }; + }); +in + +self diff --git a/pkgs/games/cataclysm-dda/wrapper.nix b/pkgs/games/cataclysm-dda/wrapper.nix new file mode 100644 index 00000000000..a73c320f9c6 --- /dev/null +++ b/pkgs/games/cataclysm-dda/wrapper.nix @@ -0,0 +1,47 @@ +{ lib, symlinkJoin, makeWrapper }: + +unwrapped: + +pkgsSpec: + +let + mods = if lib.isFunction pkgsSpec + then pkgsSpec unwrapped.pkgs + else pkgsSpec; +in + +if builtins.length mods == 0 +then unwrapped +else symlinkJoin { + name = unwrapped.name + "-with-mods"; + + paths = [ unwrapped ] ++ mods; + + nativeBuildInputs = [ makeWrapper ]; + + postBuild = '' + if [ -x $out/bin/cataclysm ]; then + wrapProgram $out/bin/cataclysm \ + --add-flags "--datadir $out/share/cataclysm-dda/" + fi + if [ -x $out/bin/cataclysm-tiles ]; then + wrapProgram $out/bin/cataclysm-tiles \ + --add-flags "--datadir $out/share/cataclysm-dda/" + fi + + # Launch the wrapped program + replaceProgram() { + cp "$1" "''${1}.bk" + unlink "$1" + mv "''${1}.bk" "$1" + sed -i "$1" -e "s,/nix/store/.\+\(/bin/cataclysm-tiles\),$out\1," + } + for script in "$out/share/applications/cataclysm-dda.desktop" \ + "$out/Applications/Cataclysm.app/Contents/MacOS/Cataclysm.sh" + do + if [ -e "$script" ]; then + replaceProgram "$script" + fi + done + ''; +} diff --git a/pkgs/games/chiaki/default.nix b/pkgs/games/chiaki/default.nix index ac228118444..be4ec7b73b4 100644 --- a/pkgs/games/chiaki/default.nix +++ b/pkgs/games/chiaki/default.nix @@ -1,23 +1,23 @@ { lib, mkDerivation, fetchFromGitHub -, cmake, ffmpeg_3, libopus, qtbase, qtmultimedia, qtsvg, pkgconfig, protobuf +, cmake, ffmpeg, libopus, qtbase, qtmultimedia, qtsvg, pkgconfig, protobuf , python3Packages, SDL2 }: mkDerivation rec { pname = "chiaki"; - version = "1.1.3"; + version = "1.2.1"; src = fetchFromGitHub { rev = "v${version}"; owner = "thestr4ng3r"; repo = "chiaki"; fetchSubmodules = true; - sha256 = "12cb4wpibh077san9rpsmavihf0xy9iqc9zl7y0aagrkl50h19kr"; + sha256 = "00lzsbjd1w1bhlblgf7zp112sk8ac09c3bzi5ljxbn02mi0an3qp"; }; nativeBuildInputs = [ cmake pkgconfig protobuf python3Packages.python python3Packages.protobuf ]; - buildInputs = [ ffmpeg_3 libopus qtbase qtmultimedia qtsvg protobuf SDL2 ]; + buildInputs = [ ffmpeg libopus qtbase qtmultimedia qtsvg protobuf SDL2 ]; doCheck = true; diff --git a/pkgs/games/chocolate-doom/default.nix b/pkgs/games/chocolate-doom/default.nix index 1c2a24de01d..1b77a72f8d0 100644 --- a/pkgs/games/chocolate-doom/default.nix +++ b/pkgs/games/chocolate-doom/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "chocolate-doom"; - version = "3.0.0"; + version = "3.0.1"; src = fetchFromGitHub { owner = "chocolate-doom"; repo = pname; rev = "${pname}-${version}"; - sha256 = "0ajzb767wyj8vzhjpsmgslw42b0155ji4alk26shxl7k5ijbzn0j"; + sha256 = "1zlcqhd49c5n8vaahgaqrc2y10z86xng51sbd82xm3rk2dly25jp"; }; postPatch = '' diff --git a/pkgs/games/crispy-doom/default.nix b/pkgs/games/crispy-doom/default.nix index ea7c3c6e478..5bd6e714e42 100644 --- a/pkgs/games/crispy-doom/default.nix +++ b/pkgs/games/crispy-doom/default.nix @@ -1,4 +1,4 @@ -{ stdenv, autoreconfHook, pkgconfig, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub }: +{ stdenv, autoreconfHook, pkgconfig, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub, fetchpatch }: stdenv.mkDerivation rec { pname = "crispy-doom"; @@ -11,6 +11,18 @@ stdenv.mkDerivation rec { sha256 = "1b6gn0dysv631jynh769whww9xcss1gms78sz3nrn855q1dsvcb4"; }; + patches = [ + # Fixes CVE-2020-14983 + (fetchpatch { + url = "https://github.com/chocolate-doom/chocolate-doom/commit/f1a8d991aa8a14afcb605cf2f65cd15fda204c56.diff"; + sha256 = "1z6pxg9azcqq7g09hjc09d01knd803nhqilkw2kbx8648hil9mgn"; + }) + (fetchpatch { + url = "https://github.com/chocolate-doom/chocolate-doom/commit/54fb12eeaa7d527defbe65e7e00e37d5feb7c597.diff"; + sha256 = "0ww21jn02ld73rkp06f7fqy92jqv8c9q4d1mvsryag1gmvy57znj"; + }) + ]; + postPatch = '' sed -e 's#/games#/bin#g' -i src{,/setup}/Makefile.am ''; diff --git a/pkgs/games/curseofwar/default.nix b/pkgs/games/curseofwar/default.nix index 8b915345f86..9aff3798b6b 100644 --- a/pkgs/games/curseofwar/default.nix +++ b/pkgs/games/curseofwar/default.nix @@ -1,34 +1,30 @@ { stdenv , fetchFromGitHub -, fetchpatch , ncurses , SDL }: stdenv.mkDerivation rec { pname = "curseofwar"; - version = "1.2.0"; + version = "1.3.0"; src = fetchFromGitHub { owner = "a-nikolaev"; repo = pname; rev = "v${version}"; - sha256 = "1bj3lv5vrnwzzkgj31pyf1lzkz10qphvzlfz7a3j4plqkczjq92y"; + sha256 = "1wd71wdnj9izg5d95m81yx3684g4zdi7fsy0j5wwnbd9j34ilz1i"; }; - patches = [(fetchpatch { - # Pull request #40: https://github.com/a-nikolaev/curseofwar/pull/40 - name = "prefix-independent-data"; - url = "https://github.com/fgaz/curseofwar/commit/947dea527b2bf4c6e107b8e9c66f4c4fd775b6f9.patch"; - sha256 = "0ak5igaxmbavkbl8101xx6gswhwgzm5f6wyplwapgh7cylnclc61"; - })]; - buildInputs = [ ncurses SDL ]; - makeFlags = (if isNull SDL then [] else [ "SDL=yes" ]) ++ [ "PREFIX=$(out)" ]; + makeFlags = (if isNull SDL then [] else [ "SDL=yes" ]) ++ [ + "PREFIX=$(out)" + # force platform's cc on darwin, otherwise gcc is used + "CC=${stdenv.cc.targetPrefix}cc" + ]; meta = with stdenv.lib; { description = "A fast-paced action strategy game"; diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index bd37f6180b1..11c21b82c29 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -1,5 +1,5 @@ { stdenv, buildEnv, lib, fetchFromGitHub, cmake, writeScriptBin -, perl, XMLLibXML, XMLLibXSLT, zlib +, perl, XMLLibXML, XMLLibXSLT, zlib, ruby , enableStoneSense ? false, allegro5, libGLU, libGL , enableTWBT ? true, twbt , SDL @@ -53,10 +53,10 @@ let prerelease = true; }; "0.47.04" = { - dfHackRelease = "0.47.04-alpha0"; - sha256 = "07056k6717mqim9skwjprqplj8jmmli6g4p2c72c8000jwnn2hjy"; - xmlRev = "23500e4e9bd1885365d0a2ef1746c321c1dd50aa"; - prerelease = true; + dfHackRelease = "0.47.04-r2"; + sha256 = "18ppn1dqaxi6ahjzsvb9kw70rvca106a1hibhzc4rxmraypnqb89"; + xmlRev = "036b662a1bbc96b4911f3cbe74dfa1243b6459bc"; + prerelease = false; }; }; @@ -109,6 +109,19 @@ let }; patches = [ ./fix-stonesense.patch ]; + + # As of + # https://github.com/DFHack/dfhack/commit/56e43a0dde023c5a4595a22b29d800153b31e3c4, + # dfhack gets its goodies from the directory above the Dwarf_Fortress + # executable, which leads to stock Dwarf Fortress and not the built + # environment where all the dfhack resources are symlinked to (typically + # ~/.local/share/df_linux). This causes errors like `tweak is not a + # recognized command` to be reported and dfhack to lose some of its + # functionality. + postPatch = '' + sed -i 's@cached_path = path_string.*@cached_path = getenv("DF_DIR");@' library/Process-linux.cpp + ''; + nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ]; # We don't use system libraries because dfhack needs old C++ ABI. buildInputs = [ zlib SDL ] @@ -127,6 +140,12 @@ let cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" "-DDOWNLOAD_RUBY=OFF" ] ++ lib.optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=OFF" ]; + # dfhack expects an unversioned libruby.so to be present in the hack + # subdirectory for ruby plugins to function. + postInstall = '' + ln -s ${ruby}/lib/libruby-*.so $out/hack/libruby.so + ''; + enableParallelBuilding = true; }; in diff --git a/pkgs/games/dwarf-fortress/twbt/default.nix b/pkgs/games/dwarf-fortress/twbt/default.nix index b5bff0e9b7a..a0990e04f93 100644 --- a/pkgs/games/dwarf-fortress/twbt/default.nix +++ b/pkgs/games/dwarf-fortress/twbt/default.nix @@ -42,9 +42,10 @@ let prerelease = false; }; "0.47.04" = { - twbtRelease = "6.61"; - sha256 = "07bqy9rkd64h033sxdpigp5zq4xrr0xd36wdr1b21g649mv8j6yw"; - prerelease = false; + twbtRelease = "6.xx"; + dfhackRelease = "0.47.04-r2"; + sha256 = "092dgp8fh1j4nqr9wbzn89ib1nhscclr8m91lfxsvg0mgn7j8xlv"; + prerelease = true; }; }; @@ -58,7 +59,11 @@ stdenvNoCC.mkDerivation rec { version = release.twbtRelease; src = fetchurl { - url = "https://github.com/mifki/df-twbt/releases/download/v${version}/twbt-${version}-linux.zip"; + url = + if version == "6.xx" then + "https://github.com/thurin/df-twbt/releases/download/${release.dfhackRelease}/twbt-${version}-linux64-${release.dfhackRelease}.zip" + else + "https://github.com/mifki/df-twbt/releases/download/v${version}/twbt-${version}-linux.zip"; sha256 = release.sha256; }; diff --git a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in index 054935af012..b041067d89e 100644 --- a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in +++ b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in @@ -1,6 +1,6 @@ shopt -s extglob -[ -z "$DF_DIR" ] && DF_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/df_linux" +[ -z "$DF_DIR" ] && export DF_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/df_linux" env_dir="@env@" exe="$env_dir/@exe@" diff --git a/pkgs/games/easyrpg-player/default.nix b/pkgs/games/easyrpg-player/default.nix index 1a540c6489c..79628d0d2ae 100644 --- a/pkgs/games/easyrpg-player/default.nix +++ b/pkgs/games/easyrpg-player/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "easyrpg-player"; - version = "0.6.2"; + version = "0.6.2.1"; src = fetchFromGitHub { owner = "EasyRPG"; repo = "Player"; rev = version; - sha256 = "1xjisqxmx1jc1afsr55hyr0l9v20gvchllby76pygkfkgifyidyp"; + sha256 = "19wpjvlkjmjhdv1dbph6i2da1xx479zhr532x0ili1aphw1j9hi6"; }; nativeBuildInputs = [ cmake doxygen pkgconfig ]; diff --git a/pkgs/games/eduke32/default.nix b/pkgs/games/eduke32/default.nix index 60abe296467..53baac79eed 100644 --- a/pkgs/games/eduke32/default.nix +++ b/pkgs/games/eduke32/default.nix @@ -12,7 +12,7 @@ let comment = "Duke Nukem 3D port"; desktopName = "Enhanced Duke Nukem 3D"; genericName = "Duke Nukem 3D port"; - categories = "Application;Game;"; + categories = "Game;"; }; wrapper = "eduke32-wrapper"; diff --git a/pkgs/games/eidolon/default.nix b/pkgs/games/eidolon/default.nix index 5461304d334..e982c95c4d6 100644 --- a/pkgs/games/eidolon/default.nix +++ b/pkgs/games/eidolon/default.nix @@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec { description = "A single TUI-based registry for drm-free, wine and steam games on linux, accessed through a rofi launch menu"; homepage = "https://github.com/nicohman/eidolon"; license = licenses.gpl3; - maintainers = [ maintainers."0x4A6F" ]; + maintainers = with maintainers; [ _0x4A6F ]; platforms = platforms.linux; }; } diff --git a/pkgs/games/empty-epsilon/default.nix b/pkgs/games/empty-epsilon/default.nix index 73d42c65008..098ed35406f 100644 --- a/pkgs/games/empty-epsilon/default.nix +++ b/pkgs/games/empty-epsilon/default.nix @@ -3,8 +3,8 @@ let major = "2020"; - minor = "04"; - patch = "09"; + minor = "08"; + patch = "07"; version = "${major}.${minor}.${patch}"; @@ -16,7 +16,7 @@ let owner = "daid"; repo = "SeriousProton"; rev = "EE-${version}"; - sha256 = "0blqsii8pgxajargd1idry2zakhnvl7j309yjmddarpvafg73blj"; + sha256 = "1mfizhmwh6xgb5n34l3wrbxm21f7gsvsyacsmnxw9rkz0ya7ch30"; }; nativeBuildInputs = [ cmake ]; @@ -42,7 +42,7 @@ stdenv.mkDerivation { owner = "daid"; repo = "EmptyEpsilon"; rev = "EE-${version}"; - sha256 = "1hdni8m6m7bgx11scqqqzhcjrmrl0jsxb6cr6rvjbqnahzi23slr"; + sha256 = "0p41wx9yk09xjmfkjpdgi3b2999ps2am3xqwd866q11f6ci7viv5"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/games/endgame-singularity/default.nix b/pkgs/games/endgame-singularity/default.nix index 46f21629ca3..4e855dbd053 100644 --- a/pkgs/games/endgame-singularity/default.nix +++ b/pkgs/games/endgame-singularity/default.nix @@ -1,46 +1,38 @@ -{ stdenv, fetchurl, unzip, python2 }: +{ stdenv +, fetchurl +, fetchFromGitHub +, unzip +, python3 +, enableDefaultMusicPack ? true +}: -python2.pkgs.buildPythonApplication rec { +python3.pkgs.buildPythonApplication rec { pname = "endgame-singularity"; - version = "0.30c"; - format = "other"; + version = "1.00"; srcs = [ - (fetchurl { - url = "http://www.emhsoft.com/singularity/singularity-${version}-src.tar.gz"; - sha256 = "13zjhf67gmla67nkfpxb01rxs8j9n4hs0s4n9lnnq4zgb709yxgl"; + (fetchFromGitHub { + owner = "singularity"; + repo = "singularity"; + rev = "v${version}"; + sha256 = "0ndrnxwii8lag6vrjpwpf5n36hhv223bb46d431l9gsigbizv0hl"; }) - (fetchurl { + ] ++ stdenv.lib.optional enableDefaultMusicPack ( + fetchurl { url = "http://www.emhsoft.com/singularity/endgame-singularity-music-007.zip"; sha256 = "0vf2qaf66jh56728pq1zbnw50yckjz6pf6c6qw6dl7vk60kkqnpb"; - }) - ]; - sourceRoot = "."; + } + ); + sourceRoot = "source"; 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" - ''; + propagatedBuildInputs = with python3.pkgs; [ pygame numpy polib ]; - # 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" + # Add the music + postInstall = stdenv.lib.optionalString enableDefaultMusicPack '' + cp -R "../endgame-singularity-music-007" \ + "$(echo $out/lib/python*/site-packages/singularity)/music" + # ↑ we cannot glob on [...]/music, it doesn't exist yet ''; meta = { diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix index fde3d31716e..0226acf1604 100644 --- a/pkgs/games/factorio/default.nix +++ b/pkgs/games/factorio/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, makeWrapper +{ stdenv, fetchurl, makeWrapper, makeDesktopItem , alsaLib, libpulseaudio, libX11, libXcursor, libXinerama, libXrandr, libXi, libGL , libSM, libICE, libXext, factorio-utils , releaseType @@ -45,6 +45,16 @@ let Note the ultimate "_" is replaced with "-" in the --name arg! ''; + desktopItem = makeDesktopItem { + name = "factorio"; + desktopName = "Factorio"; + comment = "A game in which you build and maintain factories."; + exec = "factorio"; + icon = "factorio"; + type = "Application"; + categories = "Game"; + }; + branch = if experimental then "experimental" else "stable"; # NB `experimental` directs us to take the latest build, regardless of its branch; @@ -52,15 +62,15 @@ let binDists = { x86_64-linux = let bdist = bdistForArch { inUrl = "linux64"; inTar = "x64"; }; in { alpha = { - stable = bdist { sha256 = "1fg2wnia6anzya4m53jf2xqwwspvwskz3awdb3j0v3fzijps94wc"; version = "0.17.79"; withAuth = true; }; - experimental = bdist { sha256 = "0dm2s8iz7247i3j8cl5f4i3kipnmn5514gm21p7b4ahj6fhpc7pf"; version = "0.18.30"; withAuth = true; }; + stable = bdist { sha256 = "0zixscff0svpb0yg8nzczp2z4filqqxi1k0z0nrpzn2hhzhf1464"; version = "1.0.0"; withAuth = true; }; + experimental = bdist { sha256 = "0zixscff0svpb0yg8nzczp2z4filqqxi1k0z0nrpzn2hhzhf1464"; version = "1.0.0"; withAuth = true; }; }; headless = { - stable = bdist { sha256 = "1pr39nm23fj83jy272798gbl9003rgi4vgsi33f2iw3dk3x15kls"; version = "0.17.79"; }; - experimental = bdist { sha256 = "1c5jiqva2z58lghm6bhvjdj2n61xk8b8ss2hx80qsywgh3nqafr3"; version = "0.18.30"; }; + stable = bdist { sha256 = "0r0lplns8nxna2viv8qyx9mp4cckdvx6k20w2g2fwnj3jjmf3nc1"; version = "1.0.0"; }; + experimental = bdist { sha256 = "0r0lplns8nxna2viv8qyx9mp4cckdvx6k20w2g2fwnj3jjmf3nc1"; version = "1.0.0"; }; }; demo = { - stable = bdist { sha256 = "07qknasaqvzl9vy1fglm7xmdi7ynhmslrb0a209fhbfs0s7qqlgi"; version = "0.17.79"; }; + stable = bdist { sha256 = "0h9cqbp143w47zcl4qg4skns4cngq0k40s5jwbk0wi5asjz8whqn"; version = "1.0.0"; }; }; }; i686-linux = let bdist = bdistForArch { inUrl = "linux32"; inTar = "i386"; }; in { @@ -166,7 +176,7 @@ let ''; homepage = "https://www.factorio.com/"; license = stdenv.lib.licenses.unfree; - maintainers = with stdenv.lib.maintainers; [ Baughn elitak erictapen ]; + maintainers = with stdenv.lib.maintainers; [ Baughn elitak erictapen priegger ]; platforms = [ "i686-linux" "x86_64-linux" ]; }; }; @@ -224,6 +234,11 @@ let ${updateConfigSh} EOF ) $out/share/factorio/update-config.sh + + mkdir -p $out/share/icons/hicolor/{64x64,128x128}/apps + cp -a data/core/graphics/factorio-icon.png $out/share/icons/hicolor/64x64/apps/factorio.png + cp -a data/core/graphics/factorio-icon@2x.png $out/share/icons/hicolor/128x128/apps/factorio.png + ln -s ${desktopItem}/share/applications $out/share/ ''; }; alpha = demo // { diff --git a/pkgs/games/flightgear/default.nix b/pkgs/games/flightgear/default.nix index c16c33666f3..e32f2e96d4f 100644 --- a/pkgs/games/flightgear/default.nix +++ b/pkgs/games/flightgear/default.nix @@ -6,15 +6,15 @@ }: let - version = "2019.1.1"; + version = "2020.1.2"; shortVersion = builtins.substring 0 6 version; data = stdenv.mkDerivation rec { - pname = "flightgear-base"; + pname = "flightgear-data"; inherit version; src = fetchurl { url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.tar.bz2"; - sha256 = "14zm0hzshbca4ych72631hpc4pw2w24zib62ri3lwm8nz6j63qhf"; + sha256 = "0ldsjb54k8nb99h6n4f4x20nawd2pa0a8skkwkrgckdpmdv0zwyk"; }; phases = [ "installPhase" ]; @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2"; - sha256 = "189wal08p9lrz757pmazxnf85sfymsqrm3nfvdad95pfp6bg7pyi"; + sha256 = "1770kgwa7z70sx6da9x1q9cszpd3ywz6nn8jrb6xv8ldjqcpqpvb"; }; # Of all the files in the source and data archives, there doesn't seem to be diff --git a/pkgs/games/frogatto/default.nix b/pkgs/games/frogatto/default.nix index 35ff9706112..efcff024a54 100644 --- a/pkgs/games/frogatto/default.nix +++ b/pkgs/games/frogatto/default.nix @@ -12,7 +12,7 @@ let comment = description; desktopName = "Frogatto"; genericName = "frogatto"; - categories = "Application;Game;ArcadeGame;"; + categories = "Game;ArcadeGame;"; }; version = "unstable-2018-12-18"; in buildEnv { diff --git a/pkgs/games/frotz/default.nix b/pkgs/games/frotz/default.nix index 40b6748693d..800da177a3d 100644 --- a/pkgs/games/frotz/default.nix +++ b/pkgs/games/frotz/default.nix @@ -1,25 +1,40 @@ -{ stdenv, fetchFromGitHub, ncurses }: +{ fetchFromGitLab +, libao +, libmodplug +, libsamplerate +, libsndfile +, libvorbis +, ncurses +, stdenv }: stdenv.mkDerivation rec { - version = "2.44"; + version = "2.52"; pname = "frotz"; - src = fetchFromGitHub { + src = fetchFromGitLab { + domain = "gitlab.com"; owner = "DavidGriffith"; repo = "frotz"; rev = version; - sha256 = "0gjkk4gxzqmxfdirrz2lr0bms6l9fc31vkmlywigkbdlh8wxgypp"; + sha256 = "11ca1dz31b7s5vxjqncwjwmbbcr2m5v2rxjn49g4gnvwd6mqw48y"; }; - makeFlags = [ "CC=cc" "PREFIX=$(out)" "CURSES=-lncurses" ]; - - buildInputs = [ ncurses ]; + buildInputs = [ libao libmodplug libsamplerate libsndfile libvorbis ncurses ]; + preBuild = '' + makeFlagsArray+=( + CC="cc" + CFLAGS="-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600" + LDFLAGS="-lncursesw -ltinfo" + ) + ''; + installFlags = [ "PREFIX=$(out)" ]; meta = with stdenv.lib; { - homepage = "http://frotz.sourceforge.net/"; + homepage = "https://davidgriffith.gitlab.io/frotz/"; + changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${version}/NEWS"; description = "A z-machine interpreter for Infocom games and other interactive fiction."; platforms = platforms.unix; - maintainers = [ maintainers.nicknovitski ]; + maintainers = with maintainers; [ nicknovitski ddelabru ]; license = licenses.gpl2; }; } diff --git a/pkgs/games/gargoyle/default.nix b/pkgs/games/gargoyle/default.nix index 8c5675407d0..c4c512be2b8 100644 --- a/pkgs/games/gargoyle/default.nix +++ b/pkgs/games/gargoyle/default.nix @@ -19,14 +19,15 @@ let in -stdenv.mkDerivation { - name = "gargoyle-2018-10-06"; +stdenv.mkDerivation rec { + pname = "gargoyle"; + version = "2019.1.1"; src = fetchFromGitHub { owner = "garglk"; repo = "garglk"; - rev = "d03391563fa75942fbf8f8deeeacf3a8be9fc3b0"; - sha256 = "0icwgc25gp7krq6zf66hljydc6vps6bb4knywnrfgnfcmcalqqx9"; + rev = version; + sha256 = "0w54avmbp4i4zps2rb4acmpa641s6wvwbrln4vbdhcz97fx48nzz"; }; nativeBuildInputs = [ jam pkgconfig ] ++ stdenv.lib.optional stdenv.isDarwin cctools; diff --git a/pkgs/games/gnome-hexgl/default.nix b/pkgs/games/gnome-hexgl/default.nix index 6212c1bbec1..cfa9a0b81d0 100644 --- a/pkgs/games/gnome-hexgl/default.nix +++ b/pkgs/games/gnome-hexgl/default.nix @@ -2,7 +2,7 @@ , fetchFromGitHub , ninja , meson -, pkgconfig +, pkg-config , gthree , gsound , epoxy @@ -11,19 +11,19 @@ stdenv.mkDerivation rec { pname = "gnome-hexgl"; - version = "0.2.0"; + version = "unstable-2020-07-24"; src = fetchFromGitHub { owner = "alexlarsson"; repo = "gnome-hexgl"; - rev = version; - sha256 = "08iy2iciscd2wbhh6v4cpghx8r94v1ffbgla9yb3bcsdhlag0iw4"; + rev = "f47a351055a235730795341dcd6b2397cc4bfa0c"; + sha256 = "yZWGymaSUfnCP8VAEdDH64w0muSnRK/XPi1/IqTrE4k="; }; nativeBuildInputs = [ ninja meson - pkgconfig + pkg-config ]; buildInputs = [ diff --git a/pkgs/games/gzdoom/default.nix b/pkgs/games/gzdoom/default.nix index e6f27eedbb9..fdbdda2d313 100644 --- a/pkgs/games/gzdoom/default.nix +++ b/pkgs/games/gzdoom/default.nix @@ -1,55 +1,85 @@ -{ stdenv, fetchFromGitHub, cmake, makeWrapper -, openal, fluidsynth_1, soundfont-fluid, libGL, SDL2 -, bzip2, zlib, libjpeg, libsndfile, mpg123, game-music-emu }: +{ stdenv, fetchFromGitHub, cmake, makeWrapper, openal, fluidsynth_1 +, soundfont-fluid, libGL, SDL2, bzip2, zlib, libjpeg, libsndfile, mpg123 +, game-music-emu, pkgconfig }: -stdenv.mkDerivation rec { - pname = "gzdoom"; - version = "4.3.3"; - - src = fetchFromGitHub { +let + zmusic-src = fetchFromGitHub { owner = "coelckers"; - repo = "gzdoom"; - rev = "g${version}"; - sha256 = "1c4vhnvvwy1rs8xm01kqd486h5xsiccwkf95fjx7912zr49yalks"; + repo = "zmusic"; + rev = "2d0ea861174f9e2031400ab29f5bcc8425521cc6"; + sha256 = "1ac7lhbzwfr0fsyv7n70hvb8imzngxn1qyanmv9j26j0h90hhl8a"; }; + zmusic = stdenv.mkDerivation { + pname = "zmusic"; + version = "1.1.0"; + + src = zmusic-src; + + nativeBuildInputs = [ cmake pkgconfig ]; + + preConfigure = '' + sed -i \ + -e "s@/usr/share/sounds/sf2/@${soundfont-fluid}/share/soundfonts/@g" \ + -e "s@FluidR3_GM.sf2@FluidR3_GM2-2.sf2@g" \ + source/mididevices/music_fluidsynth_mididevice.cpp + ''; - nativeBuildInputs = [ cmake makeWrapper ]; - buildInputs = [ - SDL2 libGL openal fluidsynth_1 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" \ - libraries/zmusic/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 - for i in fm_banks/*; do - install -Dm644 "$i" "$out/lib/gzdoom/$i" - done - for i in soundfonts/*; 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 ]; }; -} + + gzdoom = stdenv.mkDerivation rec { + pname = "gzdoom"; + version = "4.4.2"; + + src = fetchFromGitHub { + owner = "coelckers"; + repo = "gzdoom"; + rev = "g${version}"; + sha256 = "1xkkmbsdv64wyb9r2fv5mwyqw0bjryk528jghdrh47pndmjs9a38"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ cmake makeWrapper pkgconfig ]; + buildInputs = [ + SDL2 + libGL + openal + fluidsynth_1 + bzip2 + zlib + libjpeg + libsndfile + mpg123 + game-music-emu + zmusic + ]; + + enableParallelBuilding = true; + + NIX_CFLAGS_LINK = "-lopenal -lfluidsynth"; + + installPhase = '' + install -Dm755 gzdoom "$out/lib/gzdoom/gzdoom" + for i in *.pk3; do + install -Dm644 "$i" "$out/lib/gzdoom/$i" + done + for i in fm_banks/*; do + install -Dm644 "$i" "$out/lib/gzdoom/$i" + done + for i in soundfonts/*; 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 ]; + }; + }; + +in gzdoom diff --git a/pkgs/games/julius/default.nix b/pkgs/games/julius/default.nix new file mode 100644 index 00000000000..d1dad86e1c5 --- /dev/null +++ b/pkgs/games/julius/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, libpng }: + +stdenv.mkDerivation rec { + pname = "julius"; + version = "1.4.1"; + + src = fetchFromGitHub { + owner = "bvschaik"; + repo = "julius"; + rev = "v${version}"; + sha256 = "12hhnhdwgz7hd3hlndbnk15pxggm1375qs0764ija4nl1gbpb110"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ SDL2 SDL2_mixer libpng ]; + + meta = with stdenv.lib; { + description = "An open source re-implementation of Caesar III"; + homepage = "https://github.com/bvschaik/julius"; + license = licenses.agpl3; + platforms = platforms.all; + maintainers = with maintainers; [ Thra11 ]; + }; +} diff --git a/pkgs/games/katago/default.nix b/pkgs/games/katago/default.nix index 0a9ebd9e3eb..492ccbb63ab 100644 --- a/pkgs/games/katago/default.nix +++ b/pkgs/games/katago/default.nix @@ -17,7 +17,7 @@ , useTcmalloc ? true}: assert cudaSupport -> ( - libGL_driver != null && + libGL_driver != null && cudatoolkit != null && cudnn != null); @@ -29,36 +29,21 @@ assert useTcmalloc -> ( gperftools != null); let - env = if cudaSupport + env = if cudaSupport then gcc8Stdenv else stdenv; in env.mkDerivation rec { pname = "katago"; - version = "1.4.2"; + version = "1.5.0"; src = fetchFromGitHub { owner = "lightvector"; repo = "katago"; - rev = "v${version}"; - sha256 = "0qdc9hgbzd175b2xkjs62dy6gyybcn9lf1mifiyhjbzjpgv192h4"; + rev = "${version}"; + sha256 = "0ajdjdmlzwh7zwk5v0k9zzjawgkf7w30pzqp5bhcsdqz4svvyll2"; }; - # To workaround CMake 3.17.0's new buggy behavior wrt CUDA Compiler testing - # See the following tracking issues: - # KataGo: - # - Issue #225: https://github.com/lightvector/KataGo/issues/225 - # - PR #227: https://github.com/lightvector/KataGo/pull/227 - # CMake: - # - Issue #20708: https://gitlab.kitware.com/cmake/cmake/-/issues/20708 - patches = [ - (fetchpatch { - name = "227.patch"; - url = "https://patch-diff.githubusercontent.com/raw/lightvector/KataGo/pull/227.patch"; - sha256 = "03f1vmdjhb79mpj95sijcwla8acy32clrjgrn4xqw5h90zdgj511"; - }) - ]; - nativeBuildInputs = [ cmake makeWrapper diff --git a/pkgs/games/minecraft-server/default.nix b/pkgs/games/minecraft-server/default.nix index d0ae0a59717..5ba4b4de2f6 100644 --- a/pkgs/games/minecraft-server/default.nix +++ b/pkgs/games/minecraft-server/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, jre_headless }: stdenv.mkDerivation { pname = "minecraft-server"; - version = "1.15.2"; + version = "1.16.1"; src = fetchurl { - url = "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar"; + url = "https://launcher.mojang.com/v1/objects/a412fd69db1f81db3f511c1463fd304675244077/server.jar"; # sha1 because that comes from mojang via api - sha1 = "bb2b6b1aefcd70dfd1892149ac3a215f6c636b07"; + sha1 = "a412fd69db1f81db3f511c1463fd304675244077"; }; preferLocalBuild = true; diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix index 650bb223c9a..9d23515c039 100644 --- a/pkgs/games/minecraft/default.nix +++ b/pkgs/games/minecraft/default.nix @@ -36,7 +36,7 @@ let icon = "minecraft-launcher"; comment = "Official launcher for Minecraft, a sandbox-building game"; desktopName = "Minecraft Launcher"; - categories = "Game;Application;"; + categories = "Game;"; }; envLibPath = stdenv.lib.makeLibraryPath [ @@ -87,11 +87,11 @@ in stdenv.mkDerivation rec { pname = "minecraft-launcher"; - version = "2.1.14947"; + version = "2.1.16102"; src = fetchurl { url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz"; - sha256 = "1lsc39n1kq08sssnpr6kf4lfpy01a7i7rgvi298mmxsprjmc7a9q"; + sha256 = "17zgxmijk9mq651h7ymkr7h2099cw23kc0r7jyfkdccp60dfd60i"; }; icon = fetchurl { @@ -134,6 +134,7 @@ stdenv.mkDerivation rec { makeWrapper $out/opt/minecraft-launcher/minecraft-launcher $out/bin/minecraft-launcher \ --prefix LD_LIBRARY_PATH : ${envLibPath} \ --prefix PATH : ${stdenv.lib.makeBinPath [ jre ]} \ + --set JAVA_HOME ${stdenv.lib.makeBinPath [ jre ]} \ --run "cd /tmp" \ "''${gappsWrapperArgs[@]}" ''; diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix index db36b43ea29..f49ec1f4a82 100644 --- a/pkgs/games/minetest/default.nix +++ b/pkgs/games/minetest/default.nix @@ -39,7 +39,7 @@ let ] ++ optionals buildClient [ "-DOpenGL_GL_PREFERENCE=GLVND" ]; - + NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3 nativeBuildInputs = [ cmake doxygen graphviz ]; @@ -47,7 +47,7 @@ let buildInputs = [ irrlicht luajit jsoncpp gettext freetype sqlite curl bzip2 ncurses gmp libspatialindex - ] ++ optionals stdenv.isDarwin [ + ] ++ optionals stdenv.isDarwin [ libiconv OpenGL OpenAL Carbon Cocoa ] ++ optionals buildClient [ libpng libjpeg libGLU libGL openal libogg libvorbis xorg.libX11 libXxf86vm @@ -76,9 +76,9 @@ let }; v5 = { - version = "5.2.0"; - sha256 = "0pj9hkxwc1vzng2khbixi79557sbawf6mqkzl589jciyqa7jqkv1"; - dataSha256 = "1kjz7x3xiqqnpyrd6339a139pbdxx31c4qpg8pmns410hsm8i358"; + version = "5.3.0"; + sha256 = "03ga3j3cg38w4lg4d4qxasmnjdl8n3lbizidrinanvyfdyvznyh6"; + dataSha256 = "1liciwlh013z5h08ib0psjbwn5wkvlr937ir7kslfk4vly984cjx"; }; in { diff --git a/pkgs/games/mnemosyne/default.nix b/pkgs/games/mnemosyne/default.nix index 44bd396e9fa..4a92b8c1014 100644 --- a/pkgs/games/mnemosyne/default.nix +++ b/pkgs/games/mnemosyne/default.nix @@ -5,11 +5,11 @@ python.pkgs.buildPythonApplication rec { pname = "mnemosyne"; - version = "2.7.1"; + version = "2.7.2"; src = fetchurl { url = "mirror://sourceforge/project/mnemosyne-proj/mnemosyne/mnemosyne-${version}/Mnemosyne-${version}.tar.gz"; - sha256 = "0dhvg9cxc6m6kzk75h363h1g0bl80cqz11cijh0zpz9f4w6lnqsq"; + sha256 = "09yp9zc00xrc9dmjbsscnkb3hsv3yj46sxikc0r6s9cbghn3nypy"; }; nativeBuildInputs = with python.pkgs; [ pyqtwebengine.wrapQtAppsHook ]; diff --git a/pkgs/games/mudlet/default.nix b/pkgs/games/mudlet/default.nix index 75d16586a39..b73af4515d3 100644 --- a/pkgs/games/mudlet/default.nix +++ b/pkgs/games/mudlet/default.nix @@ -6,14 +6,14 @@ let in stdenv.mkDerivation rec { pname = "mudlet"; - version = "4.3"; + version = "4.9.1"; src = fetchFromGitHub { owner = "Mudlet"; repo = "Mudlet"; rev = "Mudlet-${version}"; fetchSubmodules = true; - sha256 = "0qqdmivfwf9jmv5yx90z1fj99nlhnq762lfw6bcxgv74y4l4b4c0"; + sha256 = "0i022qcmlq4xwl2yh4xd5qdc0ag52605qmqqz6bim0h8f3dp8cx1"; }; nativeBuildInputs = [ cmake wrapQtAppsHook git qttools which ]; diff --git a/pkgs/games/ninvaders/default.nix b/pkgs/games/ninvaders/default.nix index 009cb1e548f..26462c1eef5 100644 --- a/pkgs/games/ninvaders/default.nix +++ b/pkgs/games/ninvaders/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { description = "Space Invaders clone based on ncurses"; homepage = "http://ninvaders.sourceforge.net/"; license = licenses.gpl2; - maintainers = with maintainers; [ maintainers."1000101" ]; + maintainers = with maintainers; [ _1000101 ]; platforms = platforms.all; }; } diff --git a/pkgs/games/openjk/default.nix b/pkgs/games/openjk/default.nix index 2d08a1da999..0fe327b308e 100644 --- a/pkgs/games/openjk/default.nix +++ b/pkgs/games/openjk/default.nix @@ -21,13 +21,13 @@ let }; in stdenv.mkDerivation { pname = "OpenJK"; - version = "2019-11-29"; + version = "2020-07-03"; src = fetchFromGitHub { owner = "JACoders"; repo = "OpenJK"; - rev = "eed60925ad1b0d513d3747264f3bf98615fa4b2a"; - sha256 = "0b33cr540vz7w7dlagqf3yldmyx9y2pri20j44pd8fxapq4krrmb"; + rev = "0a336ce4dffe6505e3f754b59732402a1db95752"; + sha256 = "1xagbz42hi3ivs208mnay2dbgh90pmwwbar2p1yfhj3zl3cghcs8"; }; dontAddPrefix = true; diff --git a/pkgs/games/openmw/default.nix b/pkgs/games/openmw/default.nix index cae97dc4215..22f3ea8d6ad 100644 --- a/pkgs/games/openmw/default.nix +++ b/pkgs/games/openmw/default.nix @@ -6,19 +6,19 @@ let src = fetchFromGitHub { owner = "OpenMW"; repo = "osg"; - rev = "2b4c8e37268e595b82da4b9aadd5507852569b87"; - sha256 = "0admnllxic6dcpic0h100927yw766ab55dix002vvdx36i6994jb"; + rev = "1556cd7966ebc1c80b6626988d2b25fb43a744cf"; + sha256 = "0d74hijzmj82nx3jkv5qmr3pkgvplra0b8fbjx1y3vmzxamb0axd"; }; }); in mkDerivationWith stdenv.mkDerivation rec { - version = "0.45.0"; + version = "0.46.0"; pname = "openmw"; src = fetchFromGitHub { owner = "OpenMW"; repo = "openmw"; rev = "${pname}-${version}"; - sha256 = "1r87zrsnza2v9brksh809zzqj6zhk5xj15qs8iq11v1bscm2a2j4"; + sha256 = "0rm32zsmxvr6b0jjihfj543skhicbw5kg6shjx312clhlm035w2x"; }; enableParallelBuilding = true; diff --git a/pkgs/games/openmw/tes3mp.nix b/pkgs/games/openmw/tes3mp.nix index 59bdc690107..df332c0e5bf 100644 --- a/pkgs/games/openmw/tes3mp.nix +++ b/pkgs/games/openmw/tes3mp.nix @@ -1,4 +1,4 @@ -{ stdenv, cmake, openmw, fetchFromGitHub, luajit, makeWrapper }: +{ stdenv, cmake, openmw, fetchFromGitHub, luajit, makeWrapper, mygui }: # revisions are taken from https://github.com/GrimKriegor/TES3MP-deploy @@ -28,6 +28,17 @@ let rev = "24aae91d9ddad38cdb3b0e0a13af59f142803e94"; sha256 = "1rfmxxr9ircfagdpbdrzl26msdhx1i3g974cblbv69078cradfh3"; }; + # https://github.com/TES3MP/openmw-tes3mp/issues/555 + mygui_ = mygui.overrideAttrs (oldAttrs: rec { + version = "3.2.2"; + + src = fetchFromGitHub { + owner = "MyGUI"; + repo = "mygui"; + rev = "MyGUI${version}"; + sha256 = "1wk7jmwm55rhlqqcyvqsxdmwvl70bysl9azh4kd9n57qlmgk3zmw"; + }; + }); in openmw.overrideAttrs (oldAttrs: rec { version = "2019-11-19"; name = "openmw-tes3mp-${version}"; @@ -41,7 +52,7 @@ in openmw.overrideAttrs (oldAttrs: rec { }; nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ makeWrapper ]; - buildInputs = oldAttrs.buildInputs ++ [ luajit ]; + buildInputs = [ luajit mygui_ ] ++ oldAttrs.buildInputs; cmakeFlags = oldAttrs.cmakeFlags ++ [ "-DBUILD_OPENCS=OFF" @@ -50,7 +61,7 @@ in openmw.overrideAttrs (oldAttrs: rec { "-DRakNet_LIBRARY_DEBUG=${rakNetLibrary}/lib/libRakNetLibStatic.a" ]; - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95175 + # https://github.com/TES3MP/openmw-tes3mp/issues/552 patches = [ ./tes3mp.patch ]; diff --git a/pkgs/games/openrct2/default.nix b/pkgs/games/openrct2/default.nix index b519e0c7e92..45133be461c 100644 --- a/pkgs/games/openrct2/default.nix +++ b/pkgs/games/openrct2/default.nix @@ -1,23 +1,23 @@ -{ stdenv, fetchFromGitHub, - SDL2, cmake, curl, fontconfig, freetype, icu, jansson, libiconv, libpng, - libpthreadstubs, libzip, libGLU, openssl, pkgconfig, speexdsp, zlib +{ stdenv, fetchFromGitHub +, SDL2, cmake, curl, duktape, fontconfig, freetype, icu, jansson, libGLU +, libiconv, libpng, libpthreadstubs, libzip, openssl, pkgconfig, speexdsp, zlib }: let - version = "0.2.6"; + version = "0.3.0"; openrct2-src = fetchFromGitHub { owner = "OpenRCT2"; repo = "OpenRCT2"; rev = "v${version}"; - sha256 = "1vikbkg3wh5ngzdfilb6irbh6nqinf138qpdz8wz9izlvl8s36k4"; + sha256 = "0xs8pnn3lq30iy76pv42hywsrabapcrrkl597dhjafwh1xaxxj91"; }; objects-src = fetchFromGitHub { owner = "OpenRCT2"; repo = "objects"; - rev = "v1.0.14"; - sha256 = "1bqbia5y73v4r0sv5cvi5729jh2ns7cxn557blh715yxswk91590"; + rev = "v1.0.16"; + sha256 = "1xz50ghiqj9rm0m6d65j09ich6dlhyj36zah6zvmmzr4kg6svnk5"; }; title-sequences-src = fetchFromGitHub { @@ -41,15 +41,16 @@ stdenv.mkDerivation { buildInputs = [ SDL2 curl + duktape fontconfig freetype icu jansson + libGLU libiconv libpng libpthreadstubs libzip - libGLU openssl speexdsp zlib @@ -57,7 +58,7 @@ stdenv.mkDerivation { postUnpack = '' cp -r ${objects-src} $sourceRoot/data/object - cp -r ${title-sequences-src} $sourceRoot/data/title + cp -r ${title-sequences-src} $sourceRoot/data/sequence ''; cmakeFlags = [ @@ -74,6 +75,6 @@ stdenv.mkDerivation { homepage = "https://openrct2.io/"; license = licenses.gpl3; platforms = platforms.linux; - maintainers = with maintainers; [ geistesk ]; + maintainers = with maintainers; [ oxzi ]; }; } diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix index 223f0a6ae8c..bab4e510e7d 100644 --- a/pkgs/games/openttd/default.nix +++ b/pkgs/games/openttd/default.nix @@ -29,11 +29,11 @@ let in stdenv.mkDerivation rec { pname = "openttd"; - version = "1.10.2"; + version = "1.10.3"; src = fetchurl { url = "https://cdn.openttd.org/openttd-releases/${version}/${pname}-${version}-source.tar.xz"; - sha256 = "1xdn9rr858nq22a13cpbhcw74bwygf7lw95kvx3wn4zvb795b74k"; + sha256 = "0fxmfz1mm95a2x0rnzfff9wb8q57w0cvsdd0z7agdcbyakph25n1"; }; nativeBuildInputs = [ pkgconfig which makeWrapper ]; diff --git a/pkgs/games/openttd/jgrpp.nix b/pkgs/games/openttd/jgrpp.nix new file mode 100644 index 00000000000..83a8f927694 --- /dev/null +++ b/pkgs/games/openttd/jgrpp.nix @@ -0,0 +1,13 @@ +{ fetchFromGitHub, openttd, ... }: + +openttd.overrideAttrs (oldAttrs: rec { + pname = "openttd-jgrpp"; + version = "0.34.4"; + + src = fetchFromGitHub rec { + owner = "JGRennison"; + repo = "OpenTTD-patches"; + rev = "jgrpp-${version}"; + sha256 = "125mgia5hgcsn8314xyiip3z8y23rc3kdv7jczbncqlzsc75624v"; + }; +}) diff --git a/pkgs/games/openxray/default.nix b/pkgs/games/openxray/default.nix index 9e38852a02a..fe2e978c4cc 100644 --- a/pkgs/games/openxray/default.nix +++ b/pkgs/games/openxray/default.nix @@ -3,13 +3,13 @@ , pcre, makeWrapper }: let - version = "558"; + version = "730-july-preview"; src = fetchFromGitHub { owner = "OpenXRay"; repo = "xray-16"; rev = version; - sha256 = "1wnkx9g0ww4f5pljrb0wzs054jzkig1i5hlz1p509rfvnhc50afp"; + sha256 = "1nish3sbpk0hsag7r4nyx8j6pl9mlgx58v8dhzg2vwj2q32isyb2"; fetchSubmodules = true; }; @@ -40,7 +40,6 @@ in stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; cmakeFlags = [ "-DCMAKE_INCLUDE_PATH=${cryptopp}/include/cryptopp" ]; - installFlags = [ "DESTDIR=${placeholder "out"}" ]; buildInputs = [ glew freeimage liblockfile openal cryptopp libtheora SDL2 lzo @@ -54,11 +53,6 @@ in stdenv.mkDerivation rec { ''; postInstall = '' - mv $out/var/empty/* $out - install -Dm755 $out/games/xr_3da $out/bin/xr_3da - install -Dm644 $src/License.txt $out/share/licenses/openxray/License.txt - rm -r $out/var $out/games - # needed because of SDL_LoadObject library loading code wrapProgram $out/bin/xr_3da \ --prefix LD_LIBRARY_PATH : $out/lib diff --git a/pkgs/games/osu-lazer/bypass-tamper-detection.patch b/pkgs/games/osu-lazer/bypass-tamper-detection.patch new file mode 100644 index 00000000000..576f83a96c5 --- /dev/null +++ b/pkgs/games/osu-lazer/bypass-tamper-detection.patch @@ -0,0 +1,23 @@ +diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs +index 98f60d52d..a27ce47ca 100644 +--- a/osu.Game/OsuGameBase.cs ++++ b/osu.Game/OsuGameBase.cs +@@ -135,17 +135,7 @@ public OsuGameBase() + [BackgroundDependencyLoader] + private void load() + { +- try +- { +- using (var str = File.OpenRead(typeof(OsuGameBase).Assembly.Location)) +- VersionHash = str.ComputeMD5Hash(); +- } +- catch +- { +- // special case for android builds, which can't read DLLs from a packed apk. +- // should eventually be handled in a better way. +- VersionHash = $"{Version}-{RuntimeInfo.OS}".ComputeMD5Hash(); +- } ++ VersionHash = "253aa3a3a356a71295bf5b018cd4fda1"; + + Resources.AddStore(new DllResourceStore(OsuResources.ResourceAssembly)); + diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix new file mode 100644 index 00000000000..59e044b482b --- /dev/null +++ b/pkgs/games/osu-lazer/default.nix @@ -0,0 +1,111 @@ +{ lib, stdenv, fetchFromGitHub, fetchurl, makeWrapper, makeDesktopItem, linkFarmFromDrvs +, dotnet-sdk, dotnet-netcore, dotnetPackages +, ffmpeg_4, alsaLib, SDL2, lttng-ust, numactl, alsaPlugins +}: + +let + runtimeDeps = [ + ffmpeg_4 alsaLib SDL2 lttng-ust numactl + ]; + + # https://docs.microsoft.com/en-us/dotnet/core/rid-catalog#using-rids + runtimeId = "linux-x64"; + +in stdenv.mkDerivation rec { + pname = "osu-lazer"; + version = "2020.806.0"; + + src = fetchFromGitHub { + owner = "ppy"; + repo = "osu"; + rev = version; + sha256 = "BelmqcDnrGH84fTs6M0krwWz6SHn2hOm7y+PNEOOOZM="; + }; + + patches = [ ./bypass-tamper-detection.patch ]; + patchFlags = [ "--binary" "-p1" ]; + + nativeBuildInputs = [ dotnet-sdk dotnetPackages.Nuget makeWrapper ]; + + nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix { + fetchNuGet = { name, version, sha256 }: fetchurl { + name = "nuget-${name}-${version}.nupkg"; + url = "https://www.nuget.org/api/v2/package/${name}/${version}"; + inherit sha256; + }; + }); + + configurePhase = '' + runHook preConfigure + + export HOME=$(mktemp -d) + export DOTNET_CLI_TELEMETRY_OPTOUT=1 + export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 + + nuget sources Add -Name nixos -Source "$PWD/nixos" + nuget init "$nugetDeps" "$PWD/nixos" + + # FIXME: https://github.com/NuGet/Home/issues/4413 + mkdir -p $HOME/.nuget/NuGet + cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet + + dotnet restore --source nixos osu.Desktop + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + dotnet build osu.Desktop \ + --no-restore \ + --configuration Release \ + -p:Version=${version} + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + dotnet publish osu.Desktop \ + --no-build \ + --configuration Release \ + --no-self-contained \ + --output $out/lib/osu + shopt -s extglob + rm -r $out/lib/osu/runtimes/!(${runtimeId}) + + makeWrapper $out/lib/osu/osu\! $out/bin/osu\! \ + --set DOTNET_ROOT "${dotnet-netcore}" \ + --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" + for i in 16 32 48 64 96 128 256 512 1024; do + install -D ./assets/lazer.png $out/share/icons/hicolor/''${i}x$i/apps/osu\!.png + done + cp -r ${makeDesktopItem { + desktopName = "osu!"; + name = "osu"; + exec = "osu!"; + icon = "osu!"; + comment = meta.description; + type = "Application"; + categories = "Game;"; + }}/share/applications $out/share + + runHook postInstall + ''; + + # Strip breaks the executable. + dontStrip = true; + + meta = with lib; { + description = "Rhythm is just a *click* away"; + homepage = "https://osu.ppy.sh"; + license = with licenses; [ + mit + cc-by-nc-40 + unfreeRedistributable # osu-framework contains libbass.so in repository + ]; + maintainers = with maintainers; [ oxalica ]; + platforms = [ "x86_64-linux" ]; + }; + passthru.updateScript = ./update.sh; +} diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix new file mode 100644 index 00000000000..c29035e5724 --- /dev/null +++ b/pkgs/games/osu-lazer/deps.nix @@ -0,0 +1,1517 @@ +{ fetchNuGet }: [ + (fetchNuGet { + name = "Dapper"; + version = "2.0.35"; + sha256 = "0465i2p5kjj0hmadyw0xrpn43zpc4bnbid9mg561739fyjyjwmfm"; + }) + (fetchNuGet { + name = "DeltaCompressionDotNet"; + version = "2.0.0.0"; + sha256 = "0zhj7m3zaf9wcg51385in9qg1xgkvp8yyzgq3r5k4sagm7y68aqy"; + }) + (fetchNuGet { + name = "DiffPlex"; + version = "1.6.3"; + sha256 = "0yi72afddddz0s8phx855rnjrga7n51bcma10dc91l0ffcwf5xwz"; + }) + (fetchNuGet { + name = "DiscordRichPresence"; + version = "1.0.150"; + sha256 = "0qmbi4sccia3w80q8xfvj3bw62nvz047wq198n2b2aflkf47bq79"; + }) + (fetchNuGet { + name = "FFmpeg.AutoGen"; + version = "4.3.0.1"; + sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv"; + }) + (fetchNuGet { + name = "Humanizer"; + version = "2.8.26"; + sha256 = "11kddzyzqpq9gkz0hmrblq494nh86va6wxx6z89xi6w1f4vj15ak"; + }) + (fetchNuGet { + name = "Humanizer.Core"; + version = "2.2.0"; + sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5"; + }) + (fetchNuGet { + name = "Humanizer.Core"; + version = "2.8.26"; + sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm"; + }) + (fetchNuGet { + name = "Humanizer.Core.af"; + version = "2.8.26"; + sha256 = "0znrq4frlkq1qi20301hlzxa6mdc275fa1i1a1i8ldgk9cjq94k9"; + }) + (fetchNuGet { + name = "Humanizer.Core.ar"; + version = "2.8.26"; + sha256 = "1hi7mln48p1nmxlgdq725s4cvla9nlkvbmrsql1rfjjlsy8hn6n7"; + }) + (fetchNuGet { + name = "Humanizer.Core.az"; + version = "2.8.26"; + sha256 = "0av7ycrqwvmikqia3z3qkp9967zilrhayny17zkm0d0mnjq62vs6"; + }) + (fetchNuGet { + name = "Humanizer.Core.bg"; + version = "2.8.26"; + sha256 = "13j6zk2cmk7a119azxlpjhfwykrzk0vkf5a799fb2fzkvhnj4hkg"; + }) + (fetchNuGet { + name = "Humanizer.Core.bn-BD"; + version = "2.8.26"; + sha256 = "0h619sksggfi7dnaycz6bj9aiqdgn0d8dpgjgdl73crw52lr70p9"; + }) + (fetchNuGet { + name = "Humanizer.Core.cs"; + version = "2.8.26"; + sha256 = "11bh3k15388bi5wizaihnwqk7wb4n7q636fqjllwdhjggqrsc3f6"; + }) + (fetchNuGet { + name = "Humanizer.Core.da"; + version = "2.8.26"; + sha256 = "09b3x3bw3cgby9qvaccnqz2y6d8gl3497dh7q0dk1iznsxbk4x4m"; + }) + (fetchNuGet { + name = "Humanizer.Core.de"; + version = "2.8.26"; + sha256 = "1pyp2a9my20wlwjjzv563kshl9fpjb2kd4cw41l4wvsz1bsq3l22"; + }) + (fetchNuGet { + name = "Humanizer.Core.el"; + version = "2.8.26"; + sha256 = "0v3sdcxca4dam1y5yjh9n6v711ys0zdv38hr4kij35s6277ls6lb"; + }) + (fetchNuGet { + name = "Humanizer.Core.es"; + version = "2.8.26"; + sha256 = "0wh9qvqf80cngwsz2jnrsjpmaax4xa2xp8bbk5xs480kp071z37q"; + }) + (fetchNuGet { + name = "Humanizer.Core.fa"; + version = "2.8.26"; + sha256 = "00v56ddjfv6sr6w5246gn5z0padwswvnngp8mdl7gjfg5ycmbkl1"; + }) + (fetchNuGet { + name = "Humanizer.Core.fi-FI"; + version = "2.8.26"; + sha256 = "1pgs0j5ri50a6vhljplhrlc8jj1hrd9ggxkj60d9v5kk9xibzzyd"; + }) + (fetchNuGet { + name = "Humanizer.Core.fr"; + version = "2.8.26"; + sha256 = "0kkhgy3yn8vfqlx3dhb9m3cazkgfxarknam4macng9y17l7wj83m"; + }) + (fetchNuGet { + name = "Humanizer.Core.fr-BE"; + version = "2.8.26"; + sha256 = "13spcx07hph366qk073pz63s56nadaac7l4mr4a66gbpqd3814kb"; + }) + (fetchNuGet { + name = "Humanizer.Core.he"; + version = "2.8.26"; + sha256 = "1ccn82aj3rhrhsa3kvkrmjw0p687icxlfja8ngbh7sby4cszx9bk"; + }) + (fetchNuGet { + name = "Humanizer.Core.hr"; + version = "2.8.26"; + sha256 = "12ii79bhai3kv7zr3k9k9dh569r6p3m4l4gj25cln2isr4wdi5r9"; + }) + (fetchNuGet { + name = "Humanizer.Core.hu"; + version = "2.8.26"; + sha256 = "0cibbdxiqhwrjmxlr805mg3l9v0fl2ydx4m50608rkysjq6vxx7y"; + }) + (fetchNuGet { + name = "Humanizer.Core.hy"; + version = "2.8.26"; + sha256 = "15aikm04f74abm4ak8rvnnkrlcz155gibn1y81pbgsyn7yrh84v3"; + }) + (fetchNuGet { + name = "Humanizer.Core.id"; + version = "2.8.26"; + sha256 = "1i9gpzdfhmbvrqg858kqz5461sp3sh60g16dmcmyi1ik0qlspijn"; + }) + (fetchNuGet { + name = "Humanizer.Core.it"; + version = "2.8.26"; + sha256 = "01j7qskmqcxsakbx3bkxcjyzrh6nxi2v6kfzsfb0vf980qqq331l"; + }) + (fetchNuGet { + name = "Humanizer.Core.ja"; + version = "2.8.26"; + sha256 = "07d19ns4a4pa2k4vdc1af7wj10gaflq1ny4mx6y574afkdi8v6d5"; + }) + (fetchNuGet { + name = "Humanizer.Core.lv"; + version = "2.8.26"; + sha256 = "1pm64sj65nmngyfa3hjcw67icfmlzr232hmgpnw7306sb7dxmnfv"; + }) + (fetchNuGet { + name = "Humanizer.Core.ms-MY"; + version = "2.8.26"; + sha256 = "1yx4cc023kc4k14abk2ycmjy6y2xaknaz4zria7xsadf0fabd1jc"; + }) + (fetchNuGet { + name = "Humanizer.Core.mt"; + version = "2.8.26"; + sha256 = "0iai35pzka9g6c3sgswki06fk6gdnq8kc88wyb4pcciivazz31px"; + }) + (fetchNuGet { + name = "Humanizer.Core.nb"; + version = "2.8.26"; + sha256 = "0xprhiyjyq6mpha2lrav59n1f48508ddvm9nmdk5sm5k26ff3l90"; + }) + (fetchNuGet { + name = "Humanizer.Core.nb-NO"; + version = "2.8.26"; + sha256 = "160c98wfh7d2xlvlra4x5rdj4klgcjwcy3gkb4ipg655byn2m1j2"; + }) + (fetchNuGet { + name = "Humanizer.Core.nl"; + version = "2.8.26"; + sha256 = "067pqm4i1mk83fqqr0bvzrchrvxwdnff18z3djgagclh1i4xqlvk"; + }) + (fetchNuGet { + name = "Humanizer.Core.pl"; + version = "2.8.26"; + sha256 = "1r1bbqb990war1hiag5f88yxw0k9jiid1ihb4s5bc1lzs3vfsb6x"; + }) + (fetchNuGet { + name = "Humanizer.Core.pt"; + version = "2.8.26"; + sha256 = "1bik0vjjdzw51yl11ng9gsi3ihz50ibwh1gdhh2vd13jxjzb512p"; + }) + (fetchNuGet { + name = "Humanizer.Core.ro"; + version = "2.8.26"; + sha256 = "12f2hry6x1p1mgx6g4kpig2jpybx52ibghvhdhjbbfhy32gv8dr0"; + }) + (fetchNuGet { + name = "Humanizer.Core.ru"; + version = "2.8.26"; + sha256 = "1hri12kwymzvdqcr66l8yiqiw3pmf9fk492z10yqljm576kyshgg"; + }) + (fetchNuGet { + name = "Humanizer.Core.sk"; + version = "2.8.26"; + sha256 = "07jfgk67axw97b85dn4bwpjwf3swd74j9hdd870qps12xfp98i9j"; + }) + (fetchNuGet { + name = "Humanizer.Core.sl"; + version = "2.8.26"; + sha256 = "060xbzwb7p9ypbqfklih2zal2rh6h55gq4hv3i6alvlbd3vsx29n"; + }) + (fetchNuGet { + name = "Humanizer.Core.sr"; + version = "2.8.26"; + sha256 = "0i2c24qmqnhp85b088qlbagxd48hcl0v1ly4m7hfbvx5s7fg8riv"; + }) + (fetchNuGet { + name = "Humanizer.Core.sr-Latn"; + version = "2.8.26"; + sha256 = "1911a69sqssh9f007vmxbgyj4ym2ym4423xvw6cmbfhjcrhkfpbi"; + }) + (fetchNuGet { + name = "Humanizer.Core.sv"; + version = "2.8.26"; + sha256 = "056h8n9i18yl78f9ppzn2kkrz2cs46aqv0j5y8xq360zarggh0nm"; + }) + (fetchNuGet { + name = "Humanizer.Core.tr"; + version = "2.8.26"; + sha256 = "0dk8ga3fpxifxxkz0n68654h65cvrx00hy7q00m5vgvmcp70gxxn"; + }) + (fetchNuGet { + name = "Humanizer.Core.uk"; + version = "2.8.26"; + sha256 = "0bnj5xqlcqp4n8i04ra78dax4854zbf2jsygvb4lpiayyyaj2bxw"; + }) + (fetchNuGet { + name = "Humanizer.Core.uz-Cyrl-UZ"; + version = "2.8.26"; + sha256 = "1bbf6mxas6brjw7rjljq5saz6v3ic6zbvm1b3c1jbk0hc0qkd7c8"; + }) + (fetchNuGet { + name = "Humanizer.Core.uz-Latn-UZ"; + version = "2.8.26"; + sha256 = "1bfgfihpynax30g9kq8kra7c4jxps2ccxsxrs9gls47xbs35cw2f"; + }) + (fetchNuGet { + name = "Humanizer.Core.vi"; + version = "2.8.26"; + sha256 = "1vm765nvkp6wyfwlcgppimjrk04lkg8lscch3n1i1i5hlqxrs9ch"; + }) + (fetchNuGet { + name = "Humanizer.Core.zh-CN"; + version = "2.8.26"; + sha256 = "1qyl12rdh4iv1k1qcivcmxxnh8y93ainf22pmch8vvw9yjhs1y7s"; + }) + (fetchNuGet { + name = "Humanizer.Core.zh-Hans"; + version = "2.8.26"; + sha256 = "1gqv3dyk236wlp5wb7kd4qnyrmp3cy36ycykl7zr91s25cdls5vy"; + }) + (fetchNuGet { + name = "Humanizer.Core.zh-Hant"; + version = "2.8.26"; + sha256 = "1rhzbiqbx04l3kvzjklix90fxyc6vvmmw0p564ajdiximivs0pbh"; + }) + (fetchNuGet { + name = "JetBrains.Annotations"; + version = "2020.1.0"; + sha256 = "13fqcr6bs4x9rn0mpx110xl5apwh8ds1h0lx208znrm178ywqm8y"; + }) + (fetchNuGet { + name = "ManagedBass"; + version = "2.0.4"; + sha256 = "13hwd0yany4j52abbaaqsgq8lag2w9vjxxsj4qfbgwp4qs39x003"; + }) + (fetchNuGet { + name = "ManagedBass.Fx"; + version = "2.0.1"; + sha256 = "1rbjpgpm0ri7l2gqdy691rsv3visna2nbxawgvhdqljw068r8a8d"; + }) + (fetchNuGet { + name = "managed-midi"; + version = "1.9.14"; + sha256 = "025jh146zy98699y4civ7nxlkx312lwkl4sr8pha626q7q1kg89h"; + }) + (fetchNuGet { + name = "Markdig"; + version = "0.20.0"; + sha256 = "19qhvyj59i8zcxblpl4vqabb55y5xrk3iipmb656mid1b1m4jfkn"; + }) + (fetchNuGet { + name = "Microsoft.Bcl.AsyncInterfaces"; + version = "1.1.0"; + sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1"; + }) + (fetchNuGet { + name = "Microsoft.Build.Framework"; + version = "15.3.409"; + sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2"; + }) + (fetchNuGet { + name = "Microsoft.Build.Locator"; + version = "1.2.6"; + sha256 = "1rnfd7wq2bkynqj767xmq9ha38mz010fmqvvvrgb4v86gd537737"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.Analyzers"; + version = "3.0.0"; + sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; + version = "3.0.0"; + sha256 = "19zfz84c1860na8qpkzv6va6d7dh1md9wkrb7c6x3brhjnj859hk"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.Common"; + version = "3.6.0"; + sha256 = "0i8x90700jr30j580mpawj6d90fngrb2zpkjjbn7f8r2p1mz75y7"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.CSharp"; + version = "3.6.0"; + sha256 = "0c44qp7lfpja6cq5nk7851qrswm2z1k2pnvsw43j9ybf10a27jrn"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.CSharp.Workspaces"; + version = "3.6.0"; + sha256 = "1zc9328invqqpisdljw5vpm1kk416prfczakakw1vwkv9r54sd73"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.FxCopAnalyzers"; + version = "3.0.0"; + sha256 = "0a17vb6jnj6kch70d7vki84728hlc3zpffsbv533yji6kf6x6d24"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.VersionCheckAnalyzer"; + version = "3.0.0"; + sha256 = "11g3hj3p885zj7bn99qzh68m1xifbwzrgmx1pkvpi10rmgkpyh8j"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.Workspaces.Common"; + version = "3.6.0"; + sha256 = "176faadh1k9xcc8cc2qpkka9j1n426fdff1ax5ikmz2hbrspmigz"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.Workspaces.MSBuild"; + version = "3.6.0"; + sha256 = "0hxs9x5gpi7yvqf46bxh9niipb0jif7ak5baxw5l920787vysdhc"; + }) + (fetchNuGet { + name = "Microsoft.CodeQuality.Analyzers"; + version = "3.0.0"; + sha256 = "1x3yf21m41w2iv9nlwp03q6byqgivd48h2dlm5vgv5bd53xjfz77"; + }) + (fetchNuGet { + name = "Microsoft.CSharp"; + version = "4.0.1"; + sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; + }) + (fetchNuGet { + name = "Microsoft.CSharp"; + version = "4.5.0"; + sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; + }) + (fetchNuGet { + name = "Microsoft.Data.Sqlite.Core"; + version = "2.2.6"; + sha256 = "0fx8698k71vzr8pdc6q8bsbzg6r8a42s4hkzmiyv13ibmyb5q68k"; + }) + (fetchNuGet { + name = "Microsoft.Diagnostics.NETCore.Client"; + version = "0.2.61701"; + sha256 = "1ic1607jj4ln8dbibf1fz5v9svk9x2kqlgvhndc6ijaqnbc4wcr1"; + }) + (fetchNuGet { + name = "Microsoft.Diagnostics.Runtime"; + version = "2.0.137201"; + sha256 = "0cfsd8nn6y30bqzx1pf9xi29jnxap1fgk720zdpz93kqzqv8r0vc"; + }) + (fetchNuGet { + name = "Microsoft.DotNet.PlatformAbstractions"; + version = "2.1.0"; + sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy"; + }) + (fetchNuGet { + name = "Microsoft.EntityFrameworkCore"; + version = "2.2.6"; + sha256 = "18j2cr50wsikwv7gy3vrjvmpdxckvv537qma8afdpr3yn2klayh5"; + }) + (fetchNuGet { + name = "Microsoft.EntityFrameworkCore.Abstractions"; + version = "2.2.6"; + sha256 = "1dyxb5ibx24frlgbqy7zch0falq9p1189zvlbxgl94m0hvpml5j3"; + }) + (fetchNuGet { + name = "Microsoft.EntityFrameworkCore.Analyzers"; + version = "2.2.6"; + sha256 = "10f2lxxmh0xrdjvnam31fqfnjkaick23mpfvahj3ca5l07bph0rc"; + }) + (fetchNuGet { + name = "Microsoft.EntityFrameworkCore.Design"; + version = "2.2.6"; + sha256 = "0kjjkh1yfb56wnkmciqzfn9vymqfjap364y5amia0lmqmhfz8g7f"; + }) + (fetchNuGet { + name = "Microsoft.EntityFrameworkCore.Relational"; + version = "2.2.6"; + sha256 = "0c0z4mrqldjfslyxywb2ydk8hn9ybhkvz6lxx3idrfalq3ni5f1z"; + }) + (fetchNuGet { + name = "Microsoft.EntityFrameworkCore.Sqlite"; + version = "2.2.6"; + sha256 = "0z8k5ns841imaqha5abb1ka0rsfzy90k6qkrvix11sp6k9i7lsam"; + }) + (fetchNuGet { + name = "Microsoft.EntityFrameworkCore.Sqlite.Core"; + version = "2.2.6"; + sha256 = "0jzqw4672mzxjvzas09sl0zyzzayfgkv003a7bw5g2gjyiphf630"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.Caching.Abstractions"; + version = "2.2.0"; + sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.Caching.Memory"; + version = "2.2.0"; + sha256 = "0bzrsn5vas86w66bd04xilnlb21nx4l6lz7d3acvy6y8ir2vb5dv"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.Configuration"; + version = "2.2.0"; + sha256 = "02250qrs3jqqbggfvd0mkim82817f79x6jh8fx2i7r58d0m66qkl"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.Configuration.Abstractions"; + version = "2.2.0"; + sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.Configuration.Binder"; + version = "2.2.0"; + sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.DependencyInjection"; + version = "2.2.0"; + sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.DependencyInjection.Abstractions"; + version = "2.2.0"; + sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.DependencyModel"; + version = "2.1.0"; + sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.Logging"; + version = "2.2.0"; + sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.Logging.Abstractions"; + version = "2.2.0"; + sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.ObjectPool"; + version = "3.0.3"; + sha256 = "0zxsdwh9mhy3wsbjyfr4k0r10s1h06dzw8hcck9aknv155q26zqk"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.Options"; + version = "2.2.0"; + sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.Primitives"; + version = "2.2.0"; + sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c"; + }) + (fetchNuGet { + name = "Microsoft.Net.Compilers.Toolset"; + version = "3.1.0"; + sha256 = "1csf8hgwvyxjlxdygacrk3pp0xkzydc1kvsv68cxy8h7gd62k0w0"; + }) + (fetchNuGet { + name = "Microsoft.NetCore.Analyzers"; + version = "3.0.0"; + sha256 = "0b8biyw7nymqfbg08g2vmpf1xm6g1mm6hz4gjxc5f3g72kd2nswj"; + }) + (fetchNuGet { + name = "Microsoft.NETCore.Platforms"; + version = "1.0.1"; + sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; + }) + (fetchNuGet { + name = "Microsoft.NETCore.Platforms"; + version = "1.1.0"; + sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; + }) + (fetchNuGet { + name = "Microsoft.NETCore.Platforms"; + version = "2.1.2"; + sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; + }) + (fetchNuGet { + name = "Microsoft.NETCore.Platforms"; + version = "3.1.0"; + sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j"; + }) + (fetchNuGet { + name = "Microsoft.NETCore.Platforms"; + version = "3.1.1"; + sha256 = "05hmaygd5131rnqi6ipv7agsbpi7ka18779vw45iw6b385l7n987"; + }) + (fetchNuGet { + name = "Microsoft.NETCore.Targets"; + version = "1.0.1"; + sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; + }) + (fetchNuGet { + name = "Microsoft.NETCore.Targets"; + version = "1.1.0"; + sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; + }) + (fetchNuGet { + name = "Microsoft.NetFramework.Analyzers"; + version = "3.0.0"; + sha256 = "09dqizym3bca4281714yxrhhgryxpjhjfjnyfswlhyh42qi3ix2k"; + }) + (fetchNuGet { + name = "Microsoft.Win32.Primitives"; + version = "4.0.1"; + sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; + }) + (fetchNuGet { + name = "Microsoft.Win32.Primitives"; + version = "4.3.0"; + sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; + }) + (fetchNuGet { + name = "Microsoft.Win32.Registry"; + version = "4.7.0"; + sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs"; + }) + (fetchNuGet { + name = "Mono.Cecil"; + version = "0.9.6.1"; + sha256 = "1fr7969h5q611l5227xw6nvv5rzap76vbpk0wg9hxbcxk3hn7szf"; + }) + (fetchNuGet { + name = "NETStandard.Library"; + version = "1.6.0"; + sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; + }) + (fetchNuGet { + name = "NETStandard.Library"; + version = "1.6.1"; + sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; + }) + (fetchNuGet { + name = "NETStandard.Library"; + version = "2.0.0"; + sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; + }) + (fetchNuGet { + name = "Newtonsoft.Json"; + version = "12.0.2"; + sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; + }) + (fetchNuGet { + name = "Newtonsoft.Json"; + version = "12.0.3"; + sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x"; + }) + (fetchNuGet { + name = "Newtonsoft.Json"; + version = "9.0.1"; + sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; + }) + (fetchNuGet { + name = "NUnit"; + version = "3.12.0"; + sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2"; + }) + (fetchNuGet { + name = "ppy.osu.Framework"; + version = "2020.806.0"; + sha256 = "1d4aprz81xbhk5addl1n7jwj8xxny51s6nvpn37alld0x6n7k8nv"; + }) + (fetchNuGet { + name = "ppy.osu.Framework.NativeLibs"; + version = "2020.213.0"; + sha256 = "1yzrx7bji2163dzvyqri42byc7lgxlm59xbwgi312dw5714snmxy"; + }) + (fetchNuGet { + name = "ppy.osu.Game.Resources"; + version = "2020.731.0"; + sha256 = "1q58c627p0yz6b2y4c1hrrr4l9hii418y1vk6hv24x1csdsf3x8p"; + }) + (fetchNuGet { + name = "ppy.osuTK.NS20"; + version = "1.0.161"; + sha256 = "0li5vcpki1ih605c8h1hjf15m9wawkdaizcxib6v3mfjf860ma3s"; + }) + (fetchNuGet { + name = "ppy.SDL2-CS"; + version = "1.0.15"; + sha256 = "0qld7sp7y7hwwxsdxc8m17nyb2zwfxym63j50icvf0rlawmrl7ca"; + }) + (fetchNuGet { + name = "ppy.squirrel.windows"; + version = "1.9.0.4"; + sha256 = "1m8shcmgs0fs225qd0navr1qr6csqjin9sg2x0d7xpfk04nd2hi7"; + }) + (fetchNuGet { + name = "Remotion.Linq"; + version = "2.2.0"; + sha256 = "1y46ni0xswmmiryp8sydjgryafwn458dr91f9xn653w73kdyk4xf"; + }) + (fetchNuGet { + name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; + }) + (fetchNuGet { + name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; + }) + (fetchNuGet { + name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; + }) + (fetchNuGet { + name = "runtime.native.System"; + version = "4.0.0"; + sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; + }) + (fetchNuGet { + name = "runtime.native.System"; + version = "4.3.0"; + sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; + }) + (fetchNuGet { + name = "runtime.native.System.IO.Compression"; + version = "4.1.0"; + sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk"; + }) + (fetchNuGet { + name = "runtime.native.System.IO.Compression"; + version = "4.3.0"; + sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; + }) + (fetchNuGet { + name = "runtime.native.System.Net.Http"; + version = "4.0.1"; + sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; + }) + (fetchNuGet { + name = "runtime.native.System.Net.Http"; + version = "4.3.0"; + sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; + }) + (fetchNuGet { + name = "runtime.native.System.Security.Cryptography"; + version = "4.0.0"; + sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9"; + }) + (fetchNuGet { + name = "runtime.native.System.Security.Cryptography.Apple"; + version = "4.3.0"; + sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; + }) + (fetchNuGet { + name = "runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; + }) + (fetchNuGet { + name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; + }) + (fetchNuGet { + name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; + }) + (fetchNuGet { + name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; + version = "4.3.0"; + sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; + }) + (fetchNuGet { + name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; + }) + (fetchNuGet { + name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; + }) + (fetchNuGet { + name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; + }) + (fetchNuGet { + name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; + }) + (fetchNuGet { + name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; + }) + (fetchNuGet { + name = "Sentry"; + version = "2.1.5"; + sha256 = "094rhsn5rfk7f2ygk6jgv3cq01gv3a8lnqa85l593ys3957j0qhs"; + }) + (fetchNuGet { + name = "Sentry.PlatformAbstractions"; + version = "1.1.1"; + sha256 = "10mxyxmyjpr0y1ik2j55pp7ifn101sw319cbpf28i2xbfp0cvcaj"; + }) + (fetchNuGet { + name = "Sentry.Protocol"; + version = "2.1.5"; + sha256 = "1yjgn6na14rr6crmm886x597h9gdjyasgxx3n9m3zn7ig8726mpg"; + }) + (fetchNuGet { + name = "SharpCompress"; + version = "0.17.1"; + sha256 = "1ffiacghbcnr3fkgvdcad7b1nky54nhmmn2sm43sks9zm8grvva4"; + }) + (fetchNuGet { + name = "SharpCompress"; + version = "0.26.0"; + sha256 = "03cygf8p44j1bfn6z9cn2xrw6zhvhq17xac1sph5rgq7vq2m5iq5"; + }) + (fetchNuGet { + name = "SharpFNT"; + version = "2.0.0"; + sha256 = "1bgacgh9hbck0qvji6frbb50sdiqfdng2fvvfgfw8b9qaql91mx0"; + }) + (fetchNuGet { + name = "SixLabors.Core"; + version = "1.0.0-beta0008"; + sha256 = "1yqcv5d2igsrmi9hf8xzikn0fms47skqpr552yzbj4z4wnraahaw"; + }) + (fetchNuGet { + name = "SixLabors.ImageSharp"; + version = "1.0.0-beta0007"; + sha256 = "1k3hrp26imyqjarkrcsrhvamlmynzv6cakzq68yx69c0h8lmscaf"; + }) + (fetchNuGet { + name = "Splat"; + version = "1.6.2"; + sha256 = "154w9q0z8697rcpqs4x233crx5ap1z4pl4xc21hsd3csbhw13ykf"; + }) + (fetchNuGet { + name = "SQLitePCLRaw.bundle_green"; + version = "1.1.12"; + sha256 = "0jbyd25ag15fyn9nawjikv0v5ylk2zh5pxgr6gm4kpbpqys86sq9"; + }) + (fetchNuGet { + name = "SQLitePCLRaw.core"; + version = "1.1.12"; + sha256 = "03gflsn2wl6v0a8zvh6y5xdhx0xxmfrn6jfldiy829x3fx74zgdl"; + }) + (fetchNuGet { + name = "SQLitePCLRaw.lib.e_sqlite3.linux"; + version = "1.1.12"; + sha256 = "10mlq914d3zggdjf4bv27w6jx0gqqjf6f91y5ri6pbvaqyhi28h5"; + }) + (fetchNuGet { + name = "SQLitePCLRaw.lib.e_sqlite3.osx"; + version = "1.1.12"; + sha256 = "1hixg6n9sqllfrcihj145lh1l38inv827808difvazd4zr3mi0z1"; + }) + (fetchNuGet { + name = "SQLitePCLRaw.lib.e_sqlite3.v110_xp"; + version = "1.1.12"; + sha256 = "107sivk5p38dg1kyvqrxgp67dj89s8l6brf9l52k6s4vrn4hrrk7"; + }) + (fetchNuGet { + name = "SQLitePCLRaw.provider.e_sqlite3.netstandard11"; + version = "1.1.12"; + sha256 = "0qr2d7ka6f5c7bybdhiyq7nl90c9575szmi0nfpknd9c0w024if4"; + }) + (fetchNuGet { + name = "StbiSharp"; + version = "1.0.12"; + sha256 = "044lyc6522s8q4kgvly0rsxghkiv4dwzycl2ibxf7q5dvws02qvp"; + }) + (fetchNuGet { + name = "System.AppContext"; + version = "4.1.0"; + sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; + }) + (fetchNuGet { + name = "System.AppContext"; + version = "4.3.0"; + sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; + }) + (fetchNuGet { + name = "System.Buffers"; + version = "4.0.0"; + sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; + }) + (fetchNuGet { + name = "System.Buffers"; + version = "4.3.0"; + sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; + }) + (fetchNuGet { + name = "System.Buffers"; + version = "4.4.0"; + sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19"; + }) + (fetchNuGet { + name = "System.Buffers"; + version = "4.5.0"; + sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c"; + }) + (fetchNuGet { + name = "System.Buffers"; + version = "4.5.1"; + sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; + }) + (fetchNuGet { + name = "System.Collections"; + version = "4.0.11"; + sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; + }) + (fetchNuGet { + name = "System.Collections"; + version = "4.3.0"; + sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; + }) + (fetchNuGet { + name = "System.Collections.Concurrent"; + version = "4.0.12"; + sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; + }) + (fetchNuGet { + name = "System.Collections.Concurrent"; + version = "4.3.0"; + sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; + }) + (fetchNuGet { + name = "System.Collections.Immutable"; + version = "1.5.0"; + sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; + }) + (fetchNuGet { + name = "System.Collections.Immutable"; + version = "1.7.1"; + sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; + }) + (fetchNuGet { + name = "System.ComponentModel.Annotations"; + version = "4.5.0"; + sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; + }) + (fetchNuGet { + name = "System.ComponentModel.Annotations"; + version = "4.7.0"; + sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z"; + }) + (fetchNuGet { + name = "System.Composition"; + version = "1.0.31"; + sha256 = "0aa27jz73qb0xm6dyxv22qhfrmyyqjyn2dvvsd9asi82lcdh9i61"; + }) + (fetchNuGet { + name = "System.Composition.AttributedModel"; + version = "1.0.31"; + sha256 = "1ipyb86hvw754kmk47vjmzyilvj5hymg9nqabz70sbgsz1fygrdv"; + }) + (fetchNuGet { + name = "System.Composition.Convention"; + version = "1.0.31"; + sha256 = "00gqcdrql7vhynxh4xq0s9j5nw27kghmn2n773v7lhzjh3ash18r"; + }) + (fetchNuGet { + name = "System.Composition.Hosting"; + version = "1.0.31"; + sha256 = "1f1bnk3j7ndx9r7zpzibmrhw78clys1pspl20j2dhnmkiwhl23vy"; + }) + (fetchNuGet { + name = "System.Composition.Runtime"; + version = "1.0.31"; + sha256 = "1shfybfzsn4g6aim4pggb5ha31g0fz2kkk0519c4vj6m166g39ws"; + }) + (fetchNuGet { + name = "System.Composition.TypedParts"; + version = "1.0.31"; + sha256 = "1m4j19zx50lbbdx1xxbgpsd1dai2r3kzkyapw47kdvkb89qjkl63"; + }) + (fetchNuGet { + name = "System.Console"; + version = "4.0.0"; + sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; + }) + (fetchNuGet { + name = "System.Console"; + version = "4.3.0"; + sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; + }) + (fetchNuGet { + name = "System.Diagnostics.Debug"; + version = "4.0.11"; + sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; + }) + (fetchNuGet { + name = "System.Diagnostics.Debug"; + version = "4.3.0"; + sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; + }) + (fetchNuGet { + name = "System.Diagnostics.DiagnosticSource"; + version = "4.0.0"; + sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; + }) + (fetchNuGet { + name = "System.Diagnostics.DiagnosticSource"; + version = "4.3.0"; + sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; + }) + (fetchNuGet { + name = "System.Diagnostics.DiagnosticSource"; + version = "4.5.0"; + sha256 = "1y8m0p3127nak5yspapfnz25qc9x53gqpvwr3hdpsvrcd2r1pgyj"; + }) + (fetchNuGet { + name = "System.Diagnostics.Tools"; + version = "4.0.1"; + sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; + }) + (fetchNuGet { + name = "System.Diagnostics.Tools"; + version = "4.3.0"; + sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; + }) + (fetchNuGet { + name = "System.Diagnostics.Tracing"; + version = "4.1.0"; + sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; + }) + (fetchNuGet { + name = "System.Diagnostics.Tracing"; + version = "4.3.0"; + sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; + }) + (fetchNuGet { + name = "System.Dynamic.Runtime"; + version = "4.0.11"; + sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; + }) + (fetchNuGet { + name = "System.Globalization"; + version = "4.0.11"; + sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; + }) + (fetchNuGet { + name = "System.Globalization"; + version = "4.3.0"; + sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; + }) + (fetchNuGet { + name = "System.Globalization.Calendars"; + version = "4.0.1"; + sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; + }) + (fetchNuGet { + name = "System.Globalization.Calendars"; + version = "4.3.0"; + sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; + }) + (fetchNuGet { + name = "System.Globalization.Extensions"; + version = "4.0.1"; + sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; + }) + (fetchNuGet { + name = "System.Globalization.Extensions"; + version = "4.3.0"; + sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; + }) + (fetchNuGet { + name = "System.Interactive.Async"; + version = "3.2.0"; + sha256 = "0y5r5y7dlccjpgg17rjrrzi3jya4ysyydamxs33qckkv4jb3534d"; + }) + (fetchNuGet { + name = "System.IO"; + version = "4.1.0"; + sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; + }) + (fetchNuGet { + name = "System.IO"; + version = "4.3.0"; + sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; + }) + (fetchNuGet { + name = "System.IO.Compression"; + version = "4.1.0"; + sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; + }) + (fetchNuGet { + name = "System.IO.Compression"; + version = "4.3.0"; + sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; + }) + (fetchNuGet { + name = "System.IO.Compression.ZipFile"; + version = "4.0.1"; + sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; + }) + (fetchNuGet { + name = "System.IO.Compression.ZipFile"; + version = "4.3.0"; + sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; + }) + (fetchNuGet { + name = "System.IO.FileSystem"; + version = "4.0.1"; + sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; + }) + (fetchNuGet { + name = "System.IO.FileSystem"; + version = "4.3.0"; + sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; + }) + (fetchNuGet { + name = "System.IO.FileSystem.Primitives"; + version = "4.0.1"; + sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; + }) + (fetchNuGet { + name = "System.IO.FileSystem.Primitives"; + version = "4.3.0"; + sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; + }) + (fetchNuGet { + name = "System.IO.Packaging"; + version = "4.7.0"; + sha256 = "1vivvf158ilcpp6bq70zyafimi0lng546b34csmjb09k19wgxpiv"; + }) + (fetchNuGet { + name = "System.Linq"; + version = "4.1.0"; + sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; + }) + (fetchNuGet { + name = "System.Linq"; + version = "4.3.0"; + sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; + }) + (fetchNuGet { + name = "System.Linq.Expressions"; + version = "4.1.0"; + sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; + }) + (fetchNuGet { + name = "System.Linq.Expressions"; + version = "4.3.0"; + sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; + }) + (fetchNuGet { + name = "System.Linq.Queryable"; + version = "4.0.1"; + sha256 = "11jn9k34g245yyf260gr3ldzvaqa9477w2c5nhb1p8vjx4xm3qaw"; + }) + (fetchNuGet { + name = "System.Memory"; + version = "4.5.1"; + sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; + }) + (fetchNuGet { + name = "System.Memory"; + version = "4.5.3"; + sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; + }) + (fetchNuGet { + name = "System.Memory"; + version = "4.5.4"; + sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; + }) + (fetchNuGet { + name = "System.Net.Http"; + version = "4.1.0"; + sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; + }) + (fetchNuGet { + name = "System.Net.Http"; + version = "4.3.0"; + sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; + }) + (fetchNuGet { + name = "System.Net.Primitives"; + version = "4.0.11"; + sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; + }) + (fetchNuGet { + name = "System.Net.Primitives"; + version = "4.3.0"; + sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; + }) + (fetchNuGet { + name = "System.Net.Sockets"; + version = "4.1.0"; + sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; + }) + (fetchNuGet { + name = "System.Net.Sockets"; + version = "4.3.0"; + sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; + }) + (fetchNuGet { + name = "System.Numerics.Vectors"; + version = "4.4.0"; + sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; + }) + (fetchNuGet { + name = "System.Numerics.Vectors"; + version = "4.5.0"; + sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; + }) + (fetchNuGet { + name = "System.ObjectModel"; + version = "4.0.12"; + sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; + }) + (fetchNuGet { + name = "System.ObjectModel"; + version = "4.3.0"; + sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; + }) + (fetchNuGet { + name = "System.Reflection"; + version = "4.1.0"; + sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; + }) + (fetchNuGet { + name = "System.Reflection"; + version = "4.3.0"; + sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; + }) + (fetchNuGet { + name = "System.Reflection.Emit"; + version = "4.0.1"; + sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; + }) + (fetchNuGet { + name = "System.Reflection.Emit"; + version = "4.3.0"; + sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; + }) + (fetchNuGet { + name = "System.Reflection.Emit.ILGeneration"; + version = "4.0.1"; + sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; + }) + (fetchNuGet { + name = "System.Reflection.Emit.ILGeneration"; + version = "4.3.0"; + sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; + }) + (fetchNuGet { + name = "System.Reflection.Emit.Lightweight"; + version = "4.0.1"; + sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; + }) + (fetchNuGet { + name = "System.Reflection.Emit.Lightweight"; + version = "4.3.0"; + sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; + }) + (fetchNuGet { + name = "System.Reflection.Emit.Lightweight"; + version = "4.7.0"; + sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap"; + }) + (fetchNuGet { + name = "System.Reflection.Extensions"; + version = "4.0.1"; + sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; + }) + (fetchNuGet { + name = "System.Reflection.Extensions"; + version = "4.3.0"; + sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; + }) + (fetchNuGet { + name = "System.Reflection.Metadata"; + version = "1.6.0"; + sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; + }) + (fetchNuGet { + name = "System.Reflection.Metadata"; + version = "1.8.1"; + sha256 = "17xxl3m99wa4hcpqy42vl8qb1jk2jfq32rj3sfjc1a46hi2si5jj"; + }) + (fetchNuGet { + name = "System.Reflection.Primitives"; + version = "4.0.1"; + sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; + }) + (fetchNuGet { + name = "System.Reflection.Primitives"; + version = "4.3.0"; + sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; + }) + (fetchNuGet { + name = "System.Reflection.TypeExtensions"; + version = "4.1.0"; + sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; + }) + (fetchNuGet { + name = "System.Reflection.TypeExtensions"; + version = "4.3.0"; + sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; + }) + (fetchNuGet { + name = "System.Resources.ResourceManager"; + version = "4.0.1"; + sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; + }) + (fetchNuGet { + name = "System.Resources.ResourceManager"; + version = "4.3.0"; + sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; + }) + (fetchNuGet { + name = "System.Runtime"; + version = "4.1.0"; + sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; + }) + (fetchNuGet { + name = "System.Runtime"; + version = "4.3.0"; + sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; + }) + (fetchNuGet { + name = "System.Runtime.CompilerServices.Unsafe"; + version = "4.5.1"; + sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf"; + }) + (fetchNuGet { + name = "System.Runtime.CompilerServices.Unsafe"; + version = "4.5.2"; + sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; + }) + (fetchNuGet { + name = "System.Runtime.CompilerServices.Unsafe"; + version = "4.7.0"; + sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54"; + }) + (fetchNuGet { + name = "System.Runtime.CompilerServices.Unsafe"; + version = "4.7.1"; + sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; + }) + (fetchNuGet { + name = "System.Runtime.Extensions"; + version = "4.1.0"; + sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; + }) + (fetchNuGet { + name = "System.Runtime.Extensions"; + version = "4.3.0"; + sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; + }) + (fetchNuGet { + name = "System.Runtime.Handles"; + version = "4.0.1"; + sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; + }) + (fetchNuGet { + name = "System.Runtime.Handles"; + version = "4.3.0"; + sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; + }) + (fetchNuGet { + name = "System.Runtime.InteropServices"; + version = "4.1.0"; + sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; + }) + (fetchNuGet { + name = "System.Runtime.InteropServices"; + version = "4.3.0"; + sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; + }) + (fetchNuGet { + name = "System.Runtime.InteropServices.RuntimeInformation"; + version = "4.0.0"; + sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; + }) + (fetchNuGet { + name = "System.Runtime.InteropServices.RuntimeInformation"; + version = "4.3.0"; + sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; + }) + (fetchNuGet { + name = "System.Runtime.Numerics"; + version = "4.0.1"; + sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; + }) + (fetchNuGet { + name = "System.Runtime.Numerics"; + version = "4.3.0"; + sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; + }) + (fetchNuGet { + name = "System.Runtime.Serialization.Primitives"; + version = "4.1.1"; + sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; + }) + (fetchNuGet { + name = "System.Security.AccessControl"; + version = "4.7.0"; + sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Algorithms"; + version = "4.2.0"; + sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Algorithms"; + version = "4.3.0"; + sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Cng"; + version = "4.2.0"; + sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Cng"; + version = "4.3.0"; + sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Csp"; + version = "4.0.0"; + sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Csp"; + version = "4.3.0"; + sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Encoding"; + version = "4.0.0"; + sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Encoding"; + version = "4.3.0"; + sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.OpenSsl"; + version = "4.0.0"; + sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Primitives"; + version = "4.0.0"; + sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Primitives"; + version = "4.3.0"; + sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.X509Certificates"; + version = "4.1.0"; + sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.X509Certificates"; + version = "4.3.0"; + sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; + }) + (fetchNuGet { + name = "System.Security.Principal.Windows"; + version = "4.7.0"; + sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d"; + }) + (fetchNuGet { + name = "System.Text.Encoding"; + version = "4.0.11"; + sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; + }) + (fetchNuGet { + name = "System.Text.Encoding"; + version = "4.3.0"; + sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; + }) + (fetchNuGet { + name = "System.Text.Encoding.CodePages"; + version = "4.5.1"; + sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; + }) + (fetchNuGet { + name = "System.Text.Encoding.CodePages"; + version = "4.7.1"; + sha256 = "1y1hdap9qbl7vp74j8s9zcbh3v1rnrrvcc55wj1hl6has2v3qh1r"; + }) + (fetchNuGet { + name = "System.Text.Encoding.Extensions"; + version = "4.0.11"; + sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; + }) + (fetchNuGet { + name = "System.Text.Encoding.Extensions"; + version = "4.3.0"; + sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; + }) + (fetchNuGet { + name = "System.Text.RegularExpressions"; + version = "4.1.0"; + sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; + }) + (fetchNuGet { + name = "System.Text.RegularExpressions"; + version = "4.3.0"; + sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; + }) + (fetchNuGet { + name = "System.Threading"; + version = "4.0.11"; + sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; + }) + (fetchNuGet { + name = "System.Threading"; + version = "4.3.0"; + sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; + }) + (fetchNuGet { + name = "System.Threading.Tasks"; + version = "4.0.11"; + sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; + }) + (fetchNuGet { + name = "System.Threading.Tasks"; + version = "4.3.0"; + sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; + }) + (fetchNuGet { + name = "System.Threading.Tasks.Extensions"; + version = "4.0.0"; + sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; + }) + (fetchNuGet { + name = "System.Threading.Tasks.Extensions"; + version = "4.3.0"; + sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; + }) + (fetchNuGet { + name = "System.Threading.Tasks.Extensions"; + version = "4.5.3"; + sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i"; + }) + (fetchNuGet { + name = "System.Threading.Thread"; + version = "4.0.0"; + sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc"; + }) + (fetchNuGet { + name = "System.Threading.Timer"; + version = "4.0.1"; + sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; + }) + (fetchNuGet { + name = "System.Threading.Timer"; + version = "4.3.0"; + sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; + }) + (fetchNuGet { + name = "System.Xml.ReaderWriter"; + version = "4.0.11"; + sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; + }) + (fetchNuGet { + name = "System.Xml.ReaderWriter"; + version = "4.3.0"; + sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; + }) + (fetchNuGet { + name = "System.Xml.XDocument"; + version = "4.0.11"; + sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; + }) + (fetchNuGet { + name = "System.Xml.XDocument"; + version = "4.3.0"; + sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; + }) +] diff --git a/pkgs/games/osu-lazer/update.sh b/pkgs/games/osu-lazer/update.sh new file mode 100755 index 00000000000..be8fa3fe716 --- /dev/null +++ b/pkgs/games/osu-lazer/update.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl jq common-updater-scripts dotnet-sdk_3 +set -eo pipefail +cd "$(dirname "${BASH_SOURCE[0]}")" + +deps_file="$(realpath "./deps.nix")" + +new_version="$(curl -s "https://api.github.com/repos/ppy/osu/releases" | jq -r '.[0].name')" +old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)" +if [[ "$new_version" == "$old_version" ]]; then + echo "Up to date" + exit 0 +fi + +cd ../../.. +update-source-version osu-lazer "$new_version" +store_src="$(nix-build . -A osu-lazer.src --no-out-link)" +src="$(mktemp -d /tmp/osu-src.XXX)" +echo "Temp src dir: $src" +cp -rT "$store_src" "$src" +chmod -R +w "$src" + +pushd "$src" + +# Setup empty nuget package folder to force reinstall. +mkdir ./nuget_tmp.packages +cat >./nuget_tmp.config <<EOF +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <packageSources> + <add key="nuget" value="https://api.nuget.org/v3/index.json" /> + </packageSources> + <config> + <add key="globalPackagesFolder" value="$(realpath ./nuget_tmp.packages)" /> + </config> +</configuration> +EOF + +dotnet restore osu.Desktop --configfile ./nuget_tmp.config + +echo "{ fetchNuGet }: [" >"$deps_file" +while read pkg_spec; do + { read pkg_name; read pkg_version; } < <( + # Build version part should be ignored: `3.0.0-beta2.20059.3+77df2220` -> `3.0.0-beta2.20059.3` + sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkg_spec") + pkg_sha256="$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkg_spec")"/*.nupkg)" + cat >>"$deps_file" <<EOF + (fetchNuGet { + name = "$pkg_name"; + version = "$pkg_version"; + sha256 = "$pkg_sha256"; + }) +EOF +done < <(find ./nuget_tmp.packages -name '*.nuspec' | sort) +echo "]" >>"$deps_file" + +popd +rm -r "$src" diff --git a/pkgs/games/pentobi/default.nix b/pkgs/games/pentobi/default.nix index 909f09a0b39..2b5a86ad52c 100644 --- a/pkgs/games/pentobi/default.nix +++ b/pkgs/games/pentobi/default.nix @@ -5,12 +5,12 @@ with stdenv.lib; stdenv.mkDerivation rec { - version = "18.0"; + version = "18.1"; pname = "pentobi"; src = fetchurl { url = "mirror://sourceforge/pentobi/${pname}-${version}.tar.xz"; - sha256 = "0dlvshywxijl0hrkl66szamcr77arh118f44ngr1ail8mg1fx1fy"; + sha256 = "1vfw61lk9z7dngncmx3fggy5ld7ksdk48dpwnsq2vl5fh3f71qbq"; }; nativeBuildInputs = [ cmake docbook_xsl wrapQtAppsHook ]; diff --git a/pkgs/games/runelite/default.nix b/pkgs/games/runelite/default.nix index 9b6ca4f7c05..df8a5c3e8dc 100644 --- a/pkgs/games/runelite/default.nix +++ b/pkgs/games/runelite/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { terminal = "false"; desktopName = "RuneLite"; genericName = "Oldschool Runescape"; - categories = "Application;Game"; + categories = "Game"; startupNotify = null; }; diff --git a/pkgs/games/sfrotz/default.nix b/pkgs/games/sfrotz/default.nix new file mode 100644 index 00000000000..6e4839703a1 --- /dev/null +++ b/pkgs/games/sfrotz/default.nix @@ -0,0 +1,69 @@ +{ fetchFromGitLab +, freetype +, libao +, libjpeg +, libmodplug +, libpng +, libsamplerate +, libsndfile +, libvorbis +, pkg-config +, SDL2 +, SDL2_mixer +, stdenv +, zlib }: + +stdenv.mkDerivation rec { + pname = "sfrotz"; + version = "2.52"; + + src = fetchFromGitLab { + domain = "gitlab.com"; + owner = "DavidGriffith"; + repo = "frotz"; + rev = version; + sha256 = "11ca1dz31b7s5vxjqncwjwmbbcr2m5v2rxjn49g4gnvwd6mqw48y"; + }; + + buildInputs = [ + freetype + libao + libjpeg + libmodplug + libpng + libsamplerate + libsndfile + libvorbis + SDL2 + SDL2_mixer + zlib + ]; + nativeBuildInputs = [ pkg-config ]; + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + buildPhase = "make sdl"; + installTargets = [ "install_sfrotz" ]; + + meta = with stdenv.lib; { + description = + "Interpreter for Infocom and other Z-Machine games (SDL interface)"; + longDescription = '' + Frotz is a Z-Machine interpreter. The Z-machine is a virtual machine + designed by Infocom to run all of their text adventures. It went through + multiple revisions during the lifetime of the company, and two further + revisions (V7 and V8) were created by Graham Nelson after the company's + demise. The specification is now quite well documented; this version of + Frotz supports version 1.0. + + This version of Frotz fully supports all these versions of the Z-Machine + including the graphical version 6. Graphics and sound are created through + the use of the SDL libraries. AIFF sound effects and music in MOD and OGG + formats are supported when packaged in Blorb container files or optionally + from individual files. + ''; + homepage = "https://davidgriffith.gitlab.io/frotz/"; + changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${version}/NEWS"; + license = licenses.gpl2; + maintainers = with maintainers; [ ddelabru ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/shattered-pixel-dungeon/default.nix b/pkgs/games/shattered-pixel-dungeon/default.nix index f96f61764b5..76f6ecfb81a 100644 --- a/pkgs/games/shattered-pixel-dungeon/default.nix +++ b/pkgs/games/shattered-pixel-dungeon/default.nix @@ -1,29 +1,30 @@ { stdenv -, fetchurl , makeWrapper , fetchFromGitHub +, nixosTests , gradle_5 , perl , jre -, xorg -, openal +, libpulseaudio }: let pname = "shattered-pixel-dungeon"; - version = "0.7.5f"; + version = "0.8.2"; src = fetchFromGitHub { owner = "00-Evan"; - repo = "shattered-pixel-dungeon-gdx"; + repo = "shattered-pixel-dungeon"; rev = "v${version}"; - sha256 = "05awbbc7np9li50shdbpv9dgdgry6lra8d5gibwn578m2g9srbxx"; + sha256 = "1ra697237vnpx8nsy7dzk958vlyf6jpx1k5dpbr8ybg6vgc3kqx3"; }; postPatch = '' # disable gradle plugins with native code and their targets perl -i.bak1 -pe "s#(^\s*id '.+' version '.+'$)#// \1#" build.gradle perl -i.bak2 -pe "s#(.*)#// \1# if /^(buildscript|task portable|task nsis|task proguard|task tgz|task\(afterEclipseImport\)|launch4j|macAppBundle|buildRpm|buildDeb|shadowJar)/ ... /^}/" build.gradle + # Remove unbuildable android stuff + rm android/build.gradle ''; # fake build to pre-download deps into fixed-output derivation @@ -33,7 +34,7 @@ let nativeBuildInputs = [ gradle_5 perl ]; buildPhase = '' export GRADLE_USER_HOME=$(mktemp -d) - gradle --no-daemon desktop:dist + gradle --no-daemon desktop:release ''; # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) installPhase = '' @@ -43,7 +44,7 @@ let ''; outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = "1k0v5scadw9ziq4dw2rckmh8x2xlmxslfsxmpw79zg78n3hvwhf1"; + outputHash = "0ih10c6c85vhrqgilqmkzqjx3dc8cscvs9wkh90zgdj10qv0iba3"; }; in stdenv.mkDerivation rec { @@ -54,21 +55,25 @@ in stdenv.mkDerivation rec { buildPhase = '' export GRADLE_USER_HOME=$(mktemp -d) # point to offline repo - sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" build.gradle - gradle --offline --no-daemon desktop:dist + sed -ie "s#repositories {#repositories { maven { url '${deps}' };#g" build.gradle + gradle --offline --no-daemon desktop:release ''; installPhase = '' install -Dm644 desktop/build/libs/desktop-${version}.jar $out/share/shattered-pixel-dungeon.jar mkdir $out/bin makeWrapper ${jre}/bin/java $out/bin/shattered-pixel-dungeon \ - --prefix LD_LIBRARY_PATH : ${xorg.libXxf86vm}/lib:${openal}/lib \ + --prefix LD_LIBRARY_PATH : ${libpulseaudio}/lib \ --add-flags "-jar $out/share/shattered-pixel-dungeon.jar" ''; + passthru.tests = { + shattered-pixel-dungeon-starts = nixosTests.shattered-pixel-dungeon; + }; + meta = with stdenv.lib; { homepage = "https://shatteredpixel.com/"; - downloadPage = "https://github.com/00-Evan/shattered-pixel-dungeon-gdx/releases"; + downloadPage = "https://github.com/00-Evan/shattered-pixel-dungeon/releases"; description = "Traditional roguelike game with pixel-art graphics and simple interface"; license = licenses.gpl3; maintainers = with maintainers; [ fgaz ]; diff --git a/pkgs/games/spring/springlobby.nix b/pkgs/games/spring/springlobby.nix index e627575df94..9912675ee67 100644 --- a/pkgs/games/spring/springlobby.nix +++ b/pkgs/games/spring/springlobby.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "springlobby"; - version = "0.269"; + version = "0.270"; src = fetchurl { url = "https://springlobby.springrts.com/dl/stable/springlobby-${version}.tar.bz2"; - sha256 = "1shgrfs4ssjj8m0c7805jisjzpc60796l0vja3yjfdksrz7yxvhg"; + sha256 = "1r1g2hw9ipsmsmzbhsi7bxqra1za6x7j1kw12qzl5psqyq8rqbgs"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/games/steam/default.nix b/pkgs/games/steam/default.nix index 5aab54b8322..ff2c6e13288 100644 --- a/pkgs/games/steam/default.nix +++ b/pkgs/games/steam/default.nix @@ -1,4 +1,4 @@ -{ pkgs, newScope }: +{ pkgs, newScope, buildFHSUserEnv }: let callPackage = newScope self; @@ -12,12 +12,13 @@ let steam-runtime-wrapped = callPackage ./runtime-wrapped.nix { }; steam = callPackage ./steam.nix { }; steam-fonts = callPackage ./fonts.nix { }; - steam-chrootenv = callPackage ./chrootenv.nix { + steam-fhsenv = callPackage ./fhsenv.nix { glxinfo-i686 = pkgs.pkgsi686Linux.glxinfo; steam-runtime-wrapped-i686 = if steamArch == "amd64" then pkgs.pkgsi686Linux.steamPackages.steam-runtime-wrapped else null; + inherit buildFHSUserEnv; }; steamcmd = callPackage ./steamcmd.nix { }; }; diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/fhsenv.nix index 56e1a09f36e..2c7cde78c43 100644 --- a/pkgs/games/steam/chrootenv.nix +++ b/pkgs/games/steam/fhsenv.nix @@ -42,6 +42,12 @@ let 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); + # Zachtronics and a few other studios expect STEAM_LD_LIBRARY_PATH to be present + exportLDPath = '' + export LD_LIBRARY_PATH=/lib32:/lib64:${lib.concatStringsSep ":" ldPath}\''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH + export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" + ''; + setupSh = writeScript "setup.sh" '' #!${runtimeShell} ''; @@ -54,6 +60,7 @@ let exit 0 fi export LD_LIBRARY_PATH="$runtime_paths''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" + export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" exec "$@" ''; @@ -251,6 +258,7 @@ in buildFHSUserEnv rec { EOF fi fi + ${lib.optionalString (!nativeOnly) exportLDPath} exec steam "$@" ''; @@ -272,7 +280,7 @@ in buildFHSUserEnv rec { exit 1 fi shift - ${lib.optionalString (!nativeOnly) "export LD_LIBRARY_PATH=/lib32:/lib64:${lib.concatStringsSep ":" ldPath}\${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"} + ${lib.optionalString (!nativeOnly) exportLDPath} exec -- "$run" "$@" ''; }; diff --git a/pkgs/games/steam/runtime.nix b/pkgs/games/steam/runtime.nix index 44d80c0d794..4f373b9be30 100644 --- a/pkgs/games/steam/runtime.nix +++ b/pkgs/games/steam/runtime.nix @@ -1,25 +1,20 @@ -{ stdenv, steamArch, fetchurl, }: +{ stdenv, fetchurl }: stdenv.mkDerivation rec { name = "steam-runtime"; # from https://repo.steampowered.com/steamrt-images-scout/snapshots/ - version = "0.20200417.0"; + version = "0.20200720.0"; - src = - if steamArch == "amd64" then fetchurl { - url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${version}/com.valvesoftware.SteamRuntime.Platform-amd64,i386-scout-runtime.tar.gz"; - sha256 = "0kps8i5v23sycqm69xz389n8k831jd7ncsmlrkky7nib2q91rbvj"; - name = "scout-runtime-${version}.tar.gz"; - } else fetchurl { - url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${version}/com.valvesoftware.SteamRuntime.Platform-i386-scout-runtime.tar.gz"; - sha256 = "03fhac1r25xf7ia2pd35wjw360v5pa9h4870yrhhygp9h7v4klzf"; - name = "scout-runtime-i386-${version}.tar.gz"; - }; + src = fetchurl { + url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${version}/steam-runtime.tar.xz"; + sha256 = "03qdlr1xk84jb4c60ilis00vjhj70bxc0bbgk5g5b1883l2frljd"; + name = "scout-runtime-${version}.tar.gz"; + }; buildCommand = '' mkdir -p $out - tar -C $out -x --strip=1 -f $src files/ + tar -C $out --strip=1 -x -f $src ''; meta = with stdenv.lib; { diff --git a/pkgs/games/super-tux-kart/default.nix b/pkgs/games/super-tux-kart/default.nix index 70c5657508b..b3a7966071a 100644 --- a/pkgs/games/super-tux-kart/default.nix +++ b/pkgs/games/super-tux-kart/default.nix @@ -1,7 +1,8 @@ -{ stdenv, fetchFromGitHub, fetchsvn, cmake, pkgconfig, makeWrapper -, openal, freealut, libGLU, libGL, libvorbis, libogg, gettext, curl, freetype -, fribidi, libtool, bluez, libjpeg, libpng, zlib, libX11, libXrandr, enet, harfbuzz }: - +{ lib, stdenv, fetchFromGitHub, fetchsvn, cmake, pkgconfig, makeWrapper +, openal, freealut, libGLU, libGL, libvorbis, libogg, gettext, curl, freetype, glew +, fribidi, libtool, bluez, libjpeg, libpng, zlib, libX11, libXrandr, harfbuzz +, mcpp, wiiuse, angelscript +}: let dir = "stk-code"; assets = fetchsvn { @@ -11,34 +12,62 @@ let name = "stk-assets"; }; + # List of bundled libraries in stk-code/lib to keep + # Those are the libraries that cannot be replaced + # with system packages. + bundledLibraries = [ + # Bullet 2.87 is incompatible (bullet 2.79 needed whereas 2.87 is packaged) + # The api changed in a lot of classes, too much work to adapt + "bullet" + # Upstream Libenet doesn't yet support IPv6, + # So we will use the bundled libenet which + # has been fixed to support it. + "enet" + # Internal library of STK, nothing to do about it + "graphics_utils" + # This irrlicht is bundled with cmake + # whereas upstream irrlicht still uses + # archaic Makefiles, too complicated to switch to. + "irrlicht" + # Not packaged to this date + "libraqm" + # Not packaged to this date + "libsquish" + ]; in stdenv.mkDerivation rec { + pname = "supertuxkart"; version = "1.1"; - srcs = [ - (fetchFromGitHub { - owner = "supertuxkart"; - repo = "stk-code"; - rev = version; - sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp"; - name = dir; - }) - ]; + src = fetchFromGitHub { + owner = "supertuxkart"; + repo = "stk-code"; + rev = version; + sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp"; + name = dir; + }; + + # Deletes all bundled libs in stk-code/lib except those + # That couldn't be replaced with system packages + postPatch = '' + find lib -maxdepth 1 -type d | egrep -v "^lib$|${(lib.concatStringsSep "|" bundledLibraries)}" | xargs -n1 -L1 -r -I{} rm -rf {} + ''; nativeBuildInputs = [ cmake gettext libtool pkgconfig makeWrapper ]; buildInputs = [ libX11 libXrandr - openal freealut libGLU libGL libvorbis libogg zlib freetype - curl fribidi bluez libjpeg libpng enet harfbuzz + openal freealut libGLU libGL libvorbis libogg zlib freetype glew + curl fribidi bluez libjpeg libpng harfbuzz + mcpp wiiuse angelscript ]; - 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 "-DCHECK_ASSETS=OFF" + "-DUSE_SYSTEM_WIIUSE=ON" + "-DUSE_SYSTEM_ANGELSCRIPT=ON" ]; # Obtain the assets directly from the fetched store path, to avoid duplicating assets across multiple engine builds @@ -46,9 +75,9 @@ in stdenv.mkDerivation rec { wrapProgram $out/bin/supertuxkart --set-default SUPERTUXKART_ASSETS_DIR "${assets}" ''; - sourceRoot = dir; + enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { description = "A Free 3D kart racing game"; longDescription = '' SuperTuxKart is a Free 3D kart racing game, with many tracks, diff --git a/pkgs/games/tdm/default.nix b/pkgs/games/tdm/default.nix index 32f91f59868..d0133df59dd 100644 --- a/pkgs/games/tdm/default.nix +++ b/pkgs/games/tdm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, binutils-unwrapped, scons, gnum4, p7zip, glibc_multi, mesa +{ stdenv, fetchurl, binutils-unwrapped, sconsPackages, gnum4, p7zip, glibc_multi, mesa , xorg, libGLU, libGL, openal , lib, makeWrapper, makeDesktopItem }: @@ -11,7 +11,7 @@ let name = pname; exec = "@out@/bin/${pname}"; icon = pname; - terminal = "False"; + terminal = "false"; comment = "The Dark Mod - stealth FPS inspired by the Thief series"; type = "Application"; categories = "Game;"; @@ -24,7 +24,7 @@ in stdenv.mkDerivation { sha256 = "17wdpip8zvm2njz0xrf7xcxl73hnsc6i83zj18kn8rnjkpy50dd6"; }; nativeBuildInputs = [ - p7zip scons.py2 gnum4 makeWrapper + p7zip sconsPackages.scons_3_1_2 gnum4 makeWrapper ]; buildInputs = [ glibc_multi mesa.dev xorg.libX11.dev openal diff --git a/pkgs/games/the-powder-toy/default.nix b/pkgs/games/the-powder-toy/default.nix index 72b4bf20383..af392eca8d8 100644 --- a/pkgs/games/the-powder-toy/default.nix +++ b/pkgs/games/the-powder-toy/default.nix @@ -1,21 +1,24 @@ -{ stdenv, fetchFromGitHub, scons, pkgconfig, SDL2, lua, fftwFloat, zlib, bzip2 }: + +{ stdenv, fetchFromGitHub, scons, pkgconfig, SDL2, lua, fftwFloat, + zlib, bzip2, curl, darwin }: stdenv.mkDerivation rec { pname = "the-powder-toy"; - version = "94.1"; + version = "95.0"; src = fetchFromGitHub { - owner = "ThePowderToy"; + owner = "The-Powder-Toy"; repo = "The-Powder-Toy"; rev = "v${version}"; - sha256 = "0w3i4zjkw52qbv3s9cgcwxrdbb1npy0ka7wygyb76xcb17bj0l0b"; + sha256 = "18rp2g1mj0gklra06wm9dm57h73hmm301npndh0y8ap192i5s8sa"; }; nativeBuildInputs = [ scons pkgconfig ]; - buildInputs = [ SDL2 lua fftwFloat zlib bzip2 ]; + propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin + [ darwin.apple_sdk.frameworks.Cocoa ]; - sconsFlags = "--tool="; + buildInputs = [ SDL2 lua fftwFloat zlib bzip2 curl ]; installPhase = '' install -Dm 755 build/powder* "$out/bin/powder" @@ -28,6 +31,6 @@ stdenv.mkDerivation rec { homepage = "http://powdertoy.co.uk/"; platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ]; license = licenses.gpl3; - maintainers = with maintainers; [ abbradar ]; + maintainers = with maintainers; [ abbradar siraben ]; }; } diff --git a/pkgs/games/ut2004/wrapper.nix b/pkgs/games/ut2004/wrapper.nix index 31d0763be4d..0f70a07ca8f 100644 --- a/pkgs/games/ut2004/wrapper.nix +++ b/pkgs/games/ut2004/wrapper.nix @@ -27,7 +27,7 @@ let 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;"; + categories = "Game;"; exec = "ut2004"; }; diff --git a/pkgs/games/vdrift/default.nix b/pkgs/games/vdrift/default.nix index 99475af49e1..ea8b3941f8b 100644 --- a/pkgs/games/vdrift/default.nix +++ b/pkgs/games/vdrift/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, fetchsvn, pkgconfig, scons, libGLU, libGL, SDL2, SDL2_image +{ stdenv, fetchFromGitHub, fetchsvn, pkgconfig, sconsPackages, libGLU, libGL, SDL2, SDL2_image , libvorbis, bullet, curl, gettext, writeTextFile , data ? fetchsvn { @@ -20,7 +20,7 @@ let sha256 = "001wq3c4n9wzxqfpq40b1jcl16sxbqv2zbkpy9rq2wf9h417q6hg"; }; - nativeBuildInputs = [ pkgconfig scons.py2 ]; + nativeBuildInputs = [ pkgconfig sconsPackages.scons_3_1_2 ]; buildInputs = [ libGLU libGL SDL2 SDL2_image libvorbis bullet curl gettext ]; patches = [ ./0001-Ignore-missing-data-for-installation.patch ]; diff --git a/pkgs/games/wesnoth/default.nix b/pkgs/games/wesnoth/default.nix index 20ec0a978f5..ce375392041 100644 --- a/pkgs/games/wesnoth/default.nix +++ b/pkgs/games/wesnoth/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cmake, pkgconfig, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf +{ stdenv, fetchFromGitHub, 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 @@ -6,11 +6,13 @@ stdenv.mkDerivation rec { pname = "wesnoth"; - version = "1.14.11"; + version = "1.14.13"; - src = fetchurl { - url = "mirror://sourceforge/sourceforge/${pname}/${pname}-${version}.tar.bz2"; - sha256 = "1i8mz6gw3qar09bscczhki0g4scj8pl58v85rp0g55r4bcq41l5v"; + src = fetchFromGitHub { + rev = version; + owner = "wesnoth"; + repo = "wesnoth"; + sha256 = "1ka07h4sgmbc24qbaz0pbryx0yk339l4jzg32hy01qdvl2n40w3h"; }; nativeBuildInputs = [ cmake pkgconfig ]; @@ -33,7 +35,7 @@ stdenv.mkDerivation rec { adventures. ''; - homepage = "http://www.wesnoth.org/"; + homepage = "https://www.wesnoth.org/"; license = licenses.gpl2; maintainers = with maintainers; [ abbradar ]; platforms = platforms.unix; |