diff options
Diffstat (limited to 'nixpkgs/pkgs/games')
101 files changed, 5723 insertions, 884 deletions
diff --git a/nixpkgs/pkgs/games/angband/default.nix b/nixpkgs/pkgs/games/angband/default.nix index e7681a4b7f8..937fd30d405 100644 --- a/nixpkgs/pkgs/games/angband/default.nix +++ b/nixpkgs/pkgs/games/angband/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "angband"; - version = "4.2.0"; + version = "4.2.1"; src = fetchFromGitHub { owner = "angband"; repo = "angband"; rev = version; - sha256 = "0fr59986swx9a2xkxkbfgadzpwy2lq55fgcib05k393kibyz49kg"; + sha256 = "174fphiywwb4yb3kqavwaysx7c97an2n8wjbm4p4d41i1svjsryz"; }; nativeBuildInputs = [ autoreconfHook ]; diff --git a/nixpkgs/pkgs/games/anki/default.nix b/nixpkgs/pkgs/games/anki/default.nix index 1548a9de63a..0d713b1f71e 100644 --- a/nixpkgs/pkgs/games/anki/default.nix +++ b/nixpkgs/pkgs/games/anki/default.nix @@ -22,179 +22,180 @@ , setuptools , send2trash , CoreAudio -# This little flag adds a huge number of dependencies, but we assume that -# everyone wants Anki to draw plots with statistics by default. + # This little flag adds a huge number of dependencies, but we assume that + # everyone wants Anki to draw plots with statistics by default. , plotsSupport ? true -# manual + # manual , asciidoc }: let - # when updating, also update rev-manual to a recent version of - # https://github.com/dae/ankidocs - # The manual is distributed independently of the software. - version = "2.1.15"; - sha256-pkg = "12dvyf3j9df4nrhhnqbzd9b21rpzkh4i6yhhangn2zf7ch0pclss"; - rev-manual = "8f6387867ac37ef3fe9d0b986e70f898d1a49139"; - sha256-manual = "0pm5slxn78r44ggvbksz7rv9hmlnsvn9z811r6f63dsc8vm6mfml"; - - manual = stdenv.mkDerivation { - pname = "anki-manual"; - inherit version; - src = fetchFromGitHub { - owner = "dae"; - repo = "ankidocs"; - rev = rev-manual; - sha256 = sha256-manual; - }; - phases = [ "unpackPhase" "patchPhase" "buildPhase" ]; - nativeBuildInputs = [ asciidoc ]; - patchPhase = '' - # rsync isnt needed - # WEB is the PREFIX - # We remove any special ankiweb output generation - # and rename every .mako to .html - sed -e 's/rsync -a/cp -a/g' \ - -e "s|\$(WEB)/docs|$out/share/doc/anki/html|" \ - -e '/echo asciidoc/,/mv $@.tmp $@/c \\tasciidoc -b html5 -o $@ $<' \ - -e 's/\.mako/.html/g' \ - -i Makefile - # patch absolute links to the other language manuals - sed -e 's|https://apps.ankiweb.net/docs/|link:./|g' \ - -i {manual.txt,manual.*.txt} - # there’s an artifact in most input files - sed -e '/<%def.*title.*/d' \ - -i *.txt - mkdir -p $out/share/doc/anki/html - ''; + # when updating, also update rev-manual to a recent version of + # https://github.com/ankitects/anki-docs + # The manual is distributed independently of the software. + version = "2.1.15"; + sha256-pkg = "12dvyf3j9df4nrhhnqbzd9b21rpzkh4i6yhhangn2zf7ch0pclss"; + rev-manual = "8f6387867ac37ef3fe9d0b986e70f898d1a49139"; + sha256-manual = "0pm5slxn78r44ggvbksz7rv9hmlnsvn9z811r6f63dsc8vm6mfml"; + + manual = stdenv.mkDerivation { + pname = "anki-manual"; + inherit version; + src = fetchFromGitHub { + owner = "ankitects"; + repo = "anki-docs"; + rev = rev-manual; + sha256 = sha256-manual; }; + phases = [ "unpackPhase" "patchPhase" "buildPhase" ]; + nativeBuildInputs = [ asciidoc ]; + patchPhase = '' + # rsync isnt needed + # WEB is the PREFIX + # We remove any special ankiweb output generation + # and rename every .mako to .html + sed -e 's/rsync -a/cp -a/g' \ + -e "s|\$(WEB)/docs|$out/share/doc/anki/html|" \ + -e '/echo asciidoc/,/mv $@.tmp $@/c \\tasciidoc -b html5 -o $@ $<' \ + -e 's/\.mako/.html/g' \ + -i Makefile + # patch absolute links to the other language manuals + sed -e 's|https://apps.ankiweb.net/docs/|link:./|g' \ + -i {manual.txt,manual.*.txt} + # there’s an artifact in most input files + sed -e '/<%def.*title.*/d' \ + -i *.txt + mkdir -p $out/share/doc/anki/html + ''; + }; in buildPythonApplication rec { - pname = "anki"; - inherit version; - - src = fetchurl { - urls = [ - "https://apps.ankiweb.net/downloads/current/${pname}-${version}-source.tgz" - # "https://apps.ankiweb.net/downloads/current/${name}-source.tgz" - # "http://ankisrs.net/download/mirror/${name}.tgz" - # "http://ankisrs.net/download/mirror/archive/${name}.tgz" - ]; - sha256 = sha256-pkg; - }; - - outputs = [ "out" "doc" "man" ]; - - propagatedBuildInputs = [ - pyqtwebengine sqlalchemy beautifulsoup4 send2trash pyaudio requests decorator - markdown jsonschema setuptools - ] - ++ lib.optional plotsSupport matplotlib - ++ lib.optional stdenv.isDarwin [ CoreAudio ] - ; - - checkInputs = [ pytest glibcLocales nose ]; - - nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ]; - buildInputs = [ lame mplayer libpulseaudio ]; - - patches = [ - # Disable updated version check. - ./no-version-check.patch + pname = "anki"; + inherit version; + + src = fetchurl { + urls = [ + "https://apps.ankiweb.net/downloads/current/${pname}-${version}-source.tgz" + # "https://apps.ankiweb.net/downloads/current/${name}-source.tgz" + # "http://ankisrs.net/download/mirror/${name}.tgz" + # "http://ankisrs.net/download/mirror/archive/${name}.tgz" ]; - - buildPhase = '' - # Dummy build phase - # Anki does not use setup.py - ''; - - postPatch = '' - # Remove unused starter. We'll create our own, minimalistic, - # starter. - # rm anki/anki - - # Remove QT translation files. We'll use the standard QT ones. - rm "locale/"*.qm - - # hitting F1 should open the local manual - substituteInPlace anki/consts.py \ - --replace 'HELP_SITE="http://ankisrs.net/docs/manual.html"' \ - 'HELP_SITE="${manual}/share/doc/anki/html/manual.html"' - ''; - - # UTF-8 locale needed for testing - LC_ALL = "en_US.UTF-8"; - - checkPhase = '' - # - Anki writes some files to $HOME during tests - # - Skip tests using network - env HOME=$TMP pytest --ignore tests/test_sync.py - ''; - - installPhase = '' - pp=$out/lib/${python.libPrefix}/site-packages - - mkdir -p $out/bin - mkdir -p $out/share/applications - mkdir -p $doc/share/doc/anki - mkdir -p $man/share/man/man1 - mkdir -p $out/share/mime/packages - mkdir -p $out/share/pixmaps - mkdir -p $pp - - cat > $out/bin/anki <<EOF - #!${python}/bin/python - import aqt - aqt.run() - EOF - chmod 755 $out/bin/anki - - cp -v anki.desktop $out/share/applications/ - cp -v README* LICENSE* $doc/share/doc/anki/ - cp -v anki.1 $man/share/man/man1/ - cp -v anki.xml $out/share/mime/packages/ - cp -v anki.{png,xpm} $out/share/pixmaps/ - cp -rv locale $out/share/ - cp -rv anki aqt web $pp/ - - # copy the manual into $doc - cp -r ${manual}/share/doc/anki/html $doc/share/doc/anki - ''; - - dontWrapQtApps = true; - - preFixup = '' - makeWrapperArgs+=( - "''${qtWrapperArgs[@]}" - --prefix PATH ':' "${lame}/bin:${mplayer}/bin" - ) + sha256 = sha256-pkg; + }; + + outputs = [ "out" "doc" "man" ]; + + propagatedBuildInputs = [ + pyqtwebengine + sqlalchemy + beautifulsoup4 + send2trash + pyaudio + requests + decorator + markdown + jsonschema + setuptools + ] + ++ lib.optional plotsSupport matplotlib + ++ lib.optional stdenv.isDarwin [ CoreAudio ] + ; + + checkInputs = [ pytest glibcLocales nose ]; + + nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ]; + buildInputs = [ lame mplayer libpulseaudio ]; + + patches = [ + # Disable updated version check. + ./no-version-check.patch + ]; + + # Anki does not use setup.py + dontBuild = true; + + postPatch = '' + # Remove QT translation files. We'll use the standard QT ones. + rm "locale/"*.qm + + # hitting F1 should open the local manual + substituteInPlace anki/consts.py \ + --replace 'HELP_SITE="http://ankisrs.net/docs/manual.html"' \ + 'HELP_SITE="${manual}/share/doc/anki/html/manual.html"' + ''; + + # UTF-8 locale needed for testing + LC_ALL = "en_US.UTF-8"; + + # - Anki writes some files to $HOME during tests + # - Skip tests using network + checkPhase = '' + HOME=$TMP pytest --ignore tests/test_sync.py + ''; + + installPhase = '' + pp=$out/lib/${python.libPrefix}/site-packages + + mkdir -p $out/bin + mkdir -p $out/share/applications + mkdir -p $doc/share/doc/anki + mkdir -p $man/share/man/man1 + mkdir -p $out/share/mime/packages + mkdir -p $out/share/pixmaps + mkdir -p $pp + + cat > $out/bin/anki <<EOF + #!${python}/bin/python + import aqt + aqt.run() + EOF + chmod 755 $out/bin/anki + + cp -v anki.desktop $out/share/applications/ + cp -v README* LICENSE* $doc/share/doc/anki/ + cp -v anki.1 $man/share/man/man1/ + cp -v anki.xml $out/share/mime/packages/ + cp -v anki.{png,xpm} $out/share/pixmaps/ + cp -rv locale $out/share/ + cp -rv anki aqt web $pp/ + + # copy the manual into $doc + 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 = '' + makeWrapperArgs+=( + "''${qtWrapperArgs[@]}" + --prefix PATH ':' "${lame}/bin:${mplayer}/bin" + ) + ''; + + passthru = { + inherit manual; + }; + + meta = with lib; { + homepage = "https://apps.ankiweb.net/"; + description = "Spaced repetition flashcard program"; + longDescription = '' + Anki is a program which makes remembering things easy. Because it is a lot + more efficient than traditional study methods, you can either greatly + decrease your time spent studying, or greatly increase the amount you learn. + + Anyone who needs to remember things in their daily life can benefit from + Anki. Since it is content-agnostic and supports images, audio, videos and + scientific markup (via LaTeX), the possibilities are endless. For example: + learning a language, studying for medical and law exams, memorizing + people's names and faces, brushing up on geography, mastering long poems, + or even practicing guitar chords! ''; - - # now wrapPythonPrograms from postFixup will add both python and qt env variables - - passthru = { - inherit manual; - }; - - meta = with lib; { - homepage = "https://apps.ankiweb.net/"; - description = "Spaced repetition flashcard program"; - longDescription = '' - Anki is a program which makes remembering things easy. Because it is a lot - more efficient than traditional study methods, you can either greatly - decrease your time spent studying, or greatly increase the amount you learn. - - Anyone who needs to remember things in their daily life can benefit from - Anki. Since it is content-agnostic and supports images, audio, videos and - scientific markup (via LaTeX), the possibilities are endless. For example: - learning a language, studying for medical and law exams, memorizing - people's names and faces, brushing up on geography, mastering long poems, - or even practicing guitar chords! - ''; - license = licenses.agpl3Plus; - broken = stdenv.hostPlatform.isAarch64; - platforms = platforms.mesaPlatforms; - maintainers = with maintainers; [ oxij Profpatsch enzime ]; - }; + license = licenses.agpl3Plus; + broken = stdenv.hostPlatform.isAarch64; + platforms = platforms.mesaPlatforms; + maintainers = with maintainers; [ oxij Profpatsch enzime ]; + }; } diff --git a/nixpkgs/pkgs/games/arena/default.nix b/nixpkgs/pkgs/games/arena/default.nix index a8e147b6a7e..beba98b6316 100644 --- a/nixpkgs/pkgs/games/arena/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/assaultcube/default.nix b/nixpkgs/pkgs/games/assaultcube/default.nix index f40e2ecf220..6c3a7f1168e 100644 --- a/nixpkgs/pkgs/games/assaultcube/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/augustus/default.nix b/nixpkgs/pkgs/games/augustus/default.nix new file mode 100644 index 00000000000..cabe419ef5b --- /dev/null +++ b/nixpkgs/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/nixpkgs/pkgs/games/cataclysm-dda/builder.nix b/nixpkgs/pkgs/games/cataclysm-dda/builder.nix new file mode 100644 index 00000000000..24128875f3a --- /dev/null +++ b/nixpkgs/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/nixpkgs/pkgs/games/cataclysm-dda/common.nix b/nixpkgs/pkgs/games/cataclysm-dda/common.nix index f904a3c0f35..9ec73cdebe0 100644 --- a/nixpkgs/pkgs/games/cataclysm-dda/common.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/cataclysm-dda/default.nix b/nixpkgs/pkgs/games/cataclysm-dda/default.nix index ad1a9c409d5..ada212ea7e9 100644 --- a/nixpkgs/pkgs/games/cataclysm-dda/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/cataclysm-dda/git.nix b/nixpkgs/pkgs/games/cataclysm-dda/git.nix index 8e3c3e33994..36f37f7aeba 100644 --- a/nixpkgs/pkgs/games/cataclysm-dda/git.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/cataclysm-dda/lib.nix b/nixpkgs/pkgs/games/cataclysm-dda/lib.nix new file mode 100644 index 00000000000..02678ed0228 --- /dev/null +++ b/nixpkgs/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/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch b/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch deleted file mode 100644 index 5bfff892d2a..00000000000 --- a/nixpkgs/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/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch b/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch deleted file mode 100644 index 79b442ff5c9..00000000000 --- a/nixpkgs/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/nixpkgs/pkgs/games/cataclysm-dda/pkgs/default.nix b/nixpkgs/pkgs/games/cataclysm-dda/pkgs/default.nix new file mode 100644 index 00000000000..6f3df09a786 --- /dev/null +++ b/nixpkgs/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/nixpkgs/pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix b/nixpkgs/pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix new file mode 100644 index 00000000000..7a58cea8208 --- /dev/null +++ b/nixpkgs/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/nixpkgs/pkgs/games/cataclysm-dda/stable.nix b/nixpkgs/pkgs/games/cataclysm-dda/stable.nix new file mode 100644 index 00000000000..076a33a9e89 --- /dev/null +++ b/nixpkgs/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/nixpkgs/pkgs/games/cataclysm-dda/wrapper.nix b/nixpkgs/pkgs/games/cataclysm-dda/wrapper.nix new file mode 100644 index 00000000000..a73c320f9c6 --- /dev/null +++ b/nixpkgs/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/nixpkgs/pkgs/games/chiaki/default.nix b/nixpkgs/pkgs/games/chiaki/default.nix index 0d0bab2c4eb..be4ec7b73b4 100644 --- a/nixpkgs/pkgs/games/chiaki/default.nix +++ b/nixpkgs/pkgs/games/chiaki/default.nix @@ -4,14 +4,14 @@ 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 = [ diff --git a/nixpkgs/pkgs/games/chocolate-doom/default.nix b/nixpkgs/pkgs/games/chocolate-doom/default.nix index 1c2a24de01d..1b77a72f8d0 100644 --- a/nixpkgs/pkgs/games/chocolate-doom/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/cockatrice/default.nix b/nixpkgs/pkgs/games/cockatrice/default.nix index 9d07d09e27b..848bf2ab885 100644 --- a/nixpkgs/pkgs/games/cockatrice/default.nix +++ b/nixpkgs/pkgs/games/cockatrice/default.nix @@ -4,13 +4,13 @@ mkDerivation rec { pname = "cockatrice"; - version = "2020-03-20-Release-2.7.4"; + version = "2020-08-23-Release-2.7.5"; src = fetchFromGitHub { owner = "Cockatrice"; repo = "Cockatrice"; rev = "${version}"; - sha256 = "1d229gswfcqxch19wb744d9h897qwzf2y9imwrbcwnlhpbr1j62k"; + sha256 = "1yaxm7q0ja3rgx197hh8ynjc6ncc4hm0qdn9v7f0l4fbv0bdpv34"; }; buildInputs = [ diff --git a/nixpkgs/pkgs/games/crawl/crawl_purify.patch b/nixpkgs/pkgs/games/crawl/crawl_purify.patch index f792dc013f0..dda55b09f32 100644 --- a/nixpkgs/pkgs/games/crawl/crawl_purify.patch +++ b/nixpkgs/pkgs/games/crawl/crawl_purify.patch @@ -1,37 +1,22 @@ -diff -ru3 crawl-ref-0.23.2-src-old/crawl-ref/source/Makefile crawl-ref-0.23.2-src-new/crawl-ref/source/Makefile ---- crawl-ref-0.23.2-src-old/crawl-ref/source/Makefile 1970-01-01 03:00:01.000000000 +0300 -+++ crawl-ref-0.23.2-src-new/crawl-ref/source/Makefile 2017-07-27 14:45:34.611221571 +0300 -@@ -224,9 +224,9 @@ - STRIP := strip -x - NEED_APPKIT = YesPlease - LIBNCURSES_IS_UNICODE = Yes +diff --git a/crawl-ref/source/Makefile b/crawl-ref/source/Makefile +--- a/crawl-ref/source/Makefile ++++ b/crawl-ref/source/Makefile +@@ -248,9 +248,9 @@ ifeq ($(uname_S),Darwin) + STRIP := strip -x + NEED_APPKIT = YesPlease + LIBNCURSES_IS_UNICODE = Yes - NO_PKGCONFIG = Yes - BUILD_SQLITE = YesPlease - BUILD_ZLIB = YesPlease + #NO_PKGCONFIG = Yes + #BUILD_SQLITE = YesPlease + #BUILD_ZLIB = YesPlease - ifdef TILES - EXTRA_LIBS += -framework AppKit -framework AudioUnit -framework CoreAudio -framework ForceFeedback -framework Carbon -framework IOKit -framework OpenGL -framework AudioToolbox -framework CoreVideo contrib/install/$(ARCH)/lib/libSDL2main.a - BUILD_FREETYPE = YesPlease -@@ -286,13 +286,7 @@ - LIBZ := contrib/install/$(ARCH)/lib/libz.a - - ifndef CROSSHOST -- # FreeBSD keeps all of its userland includes in /usr/local so -- # look there -- ifeq ($(uname_S),FreeBSD) -- SQLITE_INCLUDE_DIR := /usr/local/include -- else -- SQLITE_INCLUDE_DIR := /usr/include -- endif -+ SQLITE_INCLUDE_DIR := ${sqlite}/include - else - # This is totally wrong, works only with some old-style setups, and - # on some architectures of Debian/new FHS multiarch -- excluding, for -diff -ru3 crawl-ref-0.23.2-src-old/crawl-ref/source/util/find_font crawl-ref-0.23.2-src-new/crawl-ref/source/util/find_font ---- crawl-ref-0.23.2-src-old/crawl-ref/source/util/find_font 1970-01-01 03:00:01.000000000 +0300 -+++ crawl-ref-0.23.2-src-new/crawl-ref/source/util/find_font 2017-07-27 14:44:29.784235540 +0300 + ifdef TILES + EXTRA_LIBS += -framework AppKit -framework AudioUnit -framework CoreAudio -framework ForceFeedback -framework Carbon -framework IOKit -framework OpenGL -framework AudioToolbox -framework CoreVideo contrib/install/$(ARCH)/lib/libSDL2main.a + BUILD_FREETYPE = YesPlease +diff --git a/crawl-ref/source/util/find_font b/crawl-ref/source/util/find_font +--- a/crawl-ref/source/util/find_font ++++ b/crawl-ref/source/util/find_font @@ -1,6 +1,6 @@ #! /bin/sh @@ -59,4 +44,4 @@ diff --git a/crawl-ref/source/windowmanager-sdl.cc b/crawl-ref/source/windowmana +# include <SDL2/SDL_image.h> # if defined(USE_SOUND) && !defined(WINMM_PLAY_SOUNDS) # include <SDL2/SDL_mixer.h> - # endif
\ No newline at end of file + # endif diff --git a/nixpkgs/pkgs/games/crawl/default.nix b/nixpkgs/pkgs/games/crawl/default.nix index 8fe3b20419a..eeb8bd7f9db 100644 --- a/nixpkgs/pkgs/games/crawl/default.nix +++ b/nixpkgs/pkgs/games/crawl/default.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { name = "crawl-${version}${lib.optionalString tileMode "-tiles"}"; - version = "0.24.1"; + version = "0.25.0"; src = fetchFromGitHub { owner = "crawl"; repo = "crawl"; rev = version; - sha256 = "1fiizkigmbrw0nb1l1m3syl2mw4a4r36l1y0n4z8z7slp79bsbv4"; + sha256 = "0swcl8cxz64yw8dl9macz8ar1ccwrkwz89j7s1f60inb5jlxifqm"; }; # Patch hard-coded paths and remove force library builds diff --git a/nixpkgs/pkgs/games/crispy-doom/default.nix b/nixpkgs/pkgs/games/crispy-doom/default.nix index ea7c3c6e478..5bd6e714e42 100644 --- a/nixpkgs/pkgs/games/crispy-doom/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/curseofwar/default.nix b/nixpkgs/pkgs/games/curseofwar/default.nix index 8b915345f86..9aff3798b6b 100644 --- a/nixpkgs/pkgs/games/curseofwar/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/dwarf-fortress/dfhack/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/dfhack/default.nix index bd37f6180b1..11c21b82c29 100644 --- a/nixpkgs/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix index b5bff0e9b7a..a0990e04f93 100644 --- a/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in index 054935af012..b041067d89e 100644 --- a/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in +++ b/nixpkgs/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/nixpkgs/pkgs/games/easyrpg-player/default.nix b/nixpkgs/pkgs/games/easyrpg-player/default.nix index dfa57a72864..79628d0d2ae 100644 --- a/nixpkgs/pkgs/games/easyrpg-player/default.nix +++ b/nixpkgs/pkgs/games/easyrpg-player/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "easyrpg-player"; - version = "0.6.1"; + version = "0.6.2.1"; src = fetchFromGitHub { owner = "EasyRPG"; repo = "Player"; rev = version; - sha256 = "0w4a4jg3py0phsp99nl7abyd31salnc57w4l05a228imvyy0maia"; + sha256 = "19wpjvlkjmjhdv1dbph6i2da1xx479zhr532x0ili1aphw1j9hi6"; }; nativeBuildInputs = [ cmake doxygen pkgconfig ]; diff --git a/nixpkgs/pkgs/games/eduke32/default.nix b/nixpkgs/pkgs/games/eduke32/default.nix index 60abe296467..53baac79eed 100644 --- a/nixpkgs/pkgs/games/eduke32/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/eidolon/default.nix b/nixpkgs/pkgs/games/eidolon/default.nix index 5461304d334..e982c95c4d6 100644 --- a/nixpkgs/pkgs/games/eidolon/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/empty-epsilon/default.nix b/nixpkgs/pkgs/games/empty-epsilon/default.nix index 73d42c65008..098ed35406f 100644 --- a/nixpkgs/pkgs/games/empty-epsilon/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/endgame-singularity/default.nix b/nixpkgs/pkgs/games/endgame-singularity/default.nix index 46f21629ca3..4e855dbd053 100644 --- a/nixpkgs/pkgs/games/endgame-singularity/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/exult/arch.patch b/nixpkgs/pkgs/games/exult/arch.patch deleted file mode 100644 index 70de34184a2..00000000000 --- a/nixpkgs/pkgs/games/exult/arch.patch +++ /dev/null @@ -1,123 +0,0 @@ -diff -aur exult-1.4.9rc1.orig/desktop/exult.desktop exult-1.4.9rc1/desktop/exult.desktop ---- exult-1.4.9rc1.orig/desktop/exult.desktop 2008-07-11 05:41:06.000000000 +0600 -+++ exult-1.4.9rc1/desktop/exult.desktop 2012-05-19 13:15:30.616084585 +0600 -@@ -1,9 +1,8 @@ - [Desktop Entry] --Encoding=UTF-8 - Name=Exult - Comment=Exult Ultima 7 Engine - Exec=exult --Icon=exult.png -+Icon=exult - Terminal=false - Type=Application --Categories=Application;Game;RolePlaying; -+Categories=Game;RolePlaying; -diff -aur exult-1.4.9rc1.orig/files/databuf.h exult-1.4.9rc1/files/databuf.h ---- exult-1.4.9rc1.orig/files/databuf.h 2010-03-10 09:07:05.000000000 +0500 -+++ exult-1.4.9rc1/files/databuf.h 2012-05-19 12:50:16.856076030 +0600 -@@ -18,6 +18,7 @@ - #define DATA_H - - #include <cstdio> -+#include <cstddef> - #include <cstring> - #include <cassert> - #include <fstream> -diff -aur exult-1.4.9rc1.orig/files/U7obj.h exult-1.4.9rc1/files/U7obj.h ---- exult-1.4.9rc1.orig/files/U7obj.h 2010-02-25 07:52:07.000000000 +0500 -+++ exult-1.4.9rc1/files/U7obj.h 2012-05-19 12:50:35.916076137 +0600 -@@ -26,6 +26,7 @@ - #include <string> - #include <vector> - #include <cstring> -+#include <cstddef> - #include "common_types.h" - #include "utils.h" - -diff -aur exult-1.4.9rc1.orig/imagewin/manip.h exult-1.4.9rc1/imagewin/manip.h ---- exult-1.4.9rc1.orig/imagewin/manip.h 2010-08-29 20:26:00.000000000 +0600 -+++ exult-1.4.9rc1/imagewin/manip.h 2012-05-19 13:02:45.159413596 +0600 -@@ -319,7 +319,7 @@ - static uintD copy(uintS src) - { - unsigned int r, g, b; -- split_source(src,r,g,b); -+ ManipBaseSrc<color_s,color_d>::split_source(src,r,g,b); - return ManipBaseDest<color_d>::rgb(r,g,b); - } - static void copy(uintD& dest, uintS src) -diff -aur exult-1.4.9rc1.orig/istring.h exult-1.4.9rc1/istring.h ---- exult-1.4.9rc1.orig/istring.h 2005-06-07 15:55:39.000000000 +0600 -+++ exult-1.4.9rc1/istring.h 2012-05-19 13:01:14.886079750 +0600 -@@ -162,19 +162,19 @@ - - _Myt& operator+=(const _Myt& _Right) - { // append _Right -- append(_Right); -+ this->append(_Right); - return (*this); - } - - _Myt& operator+=(const _Elem *_Ptr) - { // append [_Ptr, <null>) -- append(_Ptr); -+ this->append(_Ptr); - return (*this); - } - - _Myt& operator+=(_Elem _Ch) - { // append 1 * _Ch -- append(static_cast<size_type>(1), _Ch); -+ this->append(static_cast<size_type>(1), _Ch); - return (*this); - } - -diff -aur exult-1.4.9rc1.orig/shapes/pngio.cc exult-1.4.9rc1/shapes/pngio.cc ---- exult-1.4.9rc1.orig/shapes/pngio.cc 2010-02-15 18:48:11.000000000 -0200 -+++ exult-1.4.9rc1/shapes/pngio.cc 2013-09-22 20:56:37.809763588 -0300 -@@ -26,6 +26,7 @@ - #ifdef HAVE_CONFIG_H - # include <config.h> - #endif -+#include <string.h> - - #ifdef HAVE_PNG_H - -@@ -79,7 +80,7 @@ - } - // Allocate info. structure. - png_infop info = png_create_info_struct(png); -- if (setjmp(png->jmpbuf)) // Handle errors. -+ if (setjmp(png_jmpbuf(png))) // Handle errors. - { - png_destroy_read_struct(&png, &info, 0); - fclose(fp); -@@ -208,7 +209,7 @@ - } - // Allocate info. structure. - png_infop info = png_create_info_struct(png); -- if (setjmp(png->jmpbuf)) // Handle errors. -+ if (setjmp(png_jmpbuf(png))) // Handle errors. - { - png_destroy_write_struct(&png, &info); - fclose(fp); -@@ -306,7 +307,7 @@ - } - // Allocate info. structure. - png_infop info = png_create_info_struct(png); -- if (setjmp(png->jmpbuf)) // Handle errors. -+ if (setjmp(png_jmpbuf(png))) // Handle errors. - { - png_destroy_read_struct(&png, &info, 0); - fclose(fp); -@@ -395,7 +396,7 @@ - } - // Allocate info. structure. - png_infop info = png_create_info_struct(png); -- if (setjmp(png->jmpbuf)) // Handle errors. -+ if (setjmp(png_jmpbuf(png))) // Handle errors. - { - png_destroy_write_struct(&png, &info); - fclose(fp); - diff --git a/nixpkgs/pkgs/games/exult/default.nix b/nixpkgs/pkgs/games/exult/default.nix index e735c9c5817..adbf4dd0702 100644 --- a/nixpkgs/pkgs/games/exult/default.nix +++ b/nixpkgs/pkgs/games/exult/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, SDL, libogg, libvorbis, zlib, unzip }: +{ stdenv, fetchurl, pkgconfig, SDL2, libogg, libvorbis, zlib, unzip }: let @@ -12,27 +12,20 @@ let in stdenv.mkDerivation rec { - name = "exult-1.4.9rc1"; + name = "exult-1.6"; src = fetchurl { url = "mirror://sourceforge/exult/${name}.tar.gz"; - sha256 = "0a03a2l3ji6h48n106d4w55l8v6lni1axniafnvvv5c5n3nz5bgd"; + sha256 = "1dm27qkxj30567zb70q4acddsizn0xyi3z87hg7lysxdkyv49s3s"; }; configureFlags = [ "--disable-tools" ]; - patches = - [ # Arch Linux patch set. - ./arch.patch - ]; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ SDL libogg libvorbis zlib unzip ]; + buildInputs = [ SDL2 libogg libvorbis zlib unzip ]; enableParallelBuilding = true; - makeFlags = [ "DESTDIR=$(out)" ]; - NIX_LDFLAGS = "-lX11"; postInstall = diff --git a/nixpkgs/pkgs/games/factorio/default.nix b/nixpkgs/pkgs/games/factorio/default.nix index 19ed6ccab37..0226acf1604 100644 --- a/nixpkgs/pkgs/games/factorio/default.nix +++ b/nixpkgs/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 = "1ypq9qxry2b9a74p2i20f1yl20yf37xr4kvflbg1cn5nb8vvznxq"; version = "0.18.26"; 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 = "1srlzncwp1gcdy6ih8cc1ml5ggvg6xkw5jc2q95qjb9gpjv29mnl"; version = "0.18.26"; }; + 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/nixpkgs/pkgs/games/factorio/utils.nix b/nixpkgs/pkgs/games/factorio/utils.nix index 563ece6cb9c..2764592a324 100644 --- a/nixpkgs/pkgs/games/factorio/utils.nix +++ b/nixpkgs/pkgs/games/factorio/utils.nix @@ -5,7 +5,7 @@ with stdenv.lib; { mkModDirDrv = mods: # a list of mod derivations let - recursiveDeps = modDrv: [modDrv] ++ optionals (modDrv.deps == []) (map recursiveDeps modDrv.deps); + recursiveDeps = modDrv: [modDrv] ++ map recursiveDeps modDrv.deps; modDrvs = unique (flatten (map recursiveDeps mods)); in stdenv.mkDerivation { diff --git a/nixpkgs/pkgs/games/flightgear/default.nix b/nixpkgs/pkgs/games/flightgear/default.nix index c16c33666f3..e32f2e96d4f 100644 --- a/nixpkgs/pkgs/games/flightgear/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/freecell-solver/default.nix b/nixpkgs/pkgs/games/freecell-solver/default.nix index f574f253955..1845ba825eb 100644 --- a/nixpkgs/pkgs/games/freecell-solver/default.nix +++ b/nixpkgs/pkgs/games/freecell-solver/default.nix @@ -3,7 +3,7 @@ , perlPackages, python3 }: with stdenv.lib; -stdenv.mkDerivation rec{ +stdenv.mkDerivation rec { pname = "freecell-solver"; version = "4.18.0"; diff --git a/nixpkgs/pkgs/games/frogatto/default.nix b/nixpkgs/pkgs/games/frogatto/default.nix index 35ff9706112..efcff024a54 100644 --- a/nixpkgs/pkgs/games/frogatto/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/frotz/default.nix b/nixpkgs/pkgs/games/frotz/default.nix index 40b6748693d..800da177a3d 100644 --- a/nixpkgs/pkgs/games/frotz/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/galaxis/default.nix b/nixpkgs/pkgs/games/galaxis/default.nix index 1bbbc5ead94..19df8db78a0 100644 --- a/nixpkgs/pkgs/games/galaxis/default.nix +++ b/nixpkgs/pkgs/games/galaxis/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, ncurses, xmlto }: with stdenv.lib; -stdenv.mkDerivation rec{ +stdenv.mkDerivation rec { pname = "galaxis"; version = "1.10"; diff --git a/nixpkgs/pkgs/games/gargoyle/default.nix b/nixpkgs/pkgs/games/gargoyle/default.nix index 8c5675407d0..c4c512be2b8 100644 --- a/nixpkgs/pkgs/games/gargoyle/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/gemrb/default.nix b/nixpkgs/pkgs/games/gemrb/default.nix index 4f7d1cb3750..91b841f6c51 100644 --- a/nixpkgs/pkgs/games/gemrb/default.nix +++ b/nixpkgs/pkgs/games/gemrb/default.nix @@ -4,24 +4,27 @@ stdenv.mkDerivation rec { pname = "gemrb"; - version = "0.8.6"; + version = "0.8.7"; src = fetchFromGitHub { - owner = "gemrb"; - repo = "gemrb"; - rev = "v${version}"; - sha256 = "0vsr3fsqmv9b7s5l0cwhpq2pf7ah2wvgmcn9y8asj6w8hprp17d4"; + owner = "gemrb"; + repo = "gemrb"; + rev = "v${version}"; + sha256 = "14j9mhrbi4gnrbv25nlsvcxzkylijzrnwbqqnrg7pr452lb3srpb"; }; - # TODO: make libpng, libvorbis, sdl_mixer, freetype, vlc, glew (and other gl reqs) optional + # TODO: make libpng, libvorbis, sdl_mixer, freetype, vlc, glew (and other gl + # reqs) optional buildInputs = [ freetype python openal SDL2 SDL2_mixer zlib libpng libvorbis libiconv ]; nativeBuildInputs = [ cmake ]; - enableParallelBuilding = true; - + # TODO: add proper OpenGL support. We are currently (0.8.7) getting a shader + # error on execution when enabled. cmakeFlags = [ "-DLAYOUT=opt" + # "-DOPENGL_BACKEND=GLES" + # "-DOpenGL_GL_PREFERENCE=GLVND" ]; meta = with stdenv.lib; { diff --git a/nixpkgs/pkgs/games/gnome-hexgl/default.nix b/nixpkgs/pkgs/games/gnome-hexgl/default.nix index 6212c1bbec1..cfa9a0b81d0 100644 --- a/nixpkgs/pkgs/games/gnome-hexgl/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/gzdoom/default.nix b/nixpkgs/pkgs/games/gzdoom/default.nix index e6f27eedbb9..fdbdda2d313 100644 --- a/nixpkgs/pkgs/games/gzdoom/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/hedgewars/default.nix b/nixpkgs/pkgs/games/hedgewars/default.nix index 771554192d8..f31a44e97c0 100644 --- a/nixpkgs/pkgs/games/hedgewars/default.nix +++ b/nixpkgs/pkgs/games/hedgewars/default.nix @@ -1,7 +1,8 @@ -{ mkDerivation, SDL2_image, SDL2_ttf, SDL2_net, fpc, ghcWithPackages, ffmpeg, freeglut +{ mkDerivation, SDL2_image, SDL2_ttf, SDL2_net, fpc, ghcWithPackages, ffmpeg_3, freeglut , lib, fetchurl, cmake, pkgconfig, lua5_1, SDL2, SDL2_mixer , zlib, libpng, libGL, libGLU, physfs , qtbase, qttools +, llvm , withServer ? true }: @@ -27,13 +28,18 @@ mkDerivation rec { buildInputs = [ SDL2_ttf SDL2_net SDL2 SDL2_mixer SDL2_image fpc lua5_1 - ffmpeg freeglut physfs + llvm # hard-requirement on aarch64, for some reason not strictly necessary on x86-64 + ffmpeg_3 freeglut physfs qtbase ] ++ lib.optional withServer ghc; postPatch = '' substituteInPlace gameServer/CMakeLists.txt \ --replace mask evaluate + + # compile with fpc >= 3.2.0 + # https://github.com/archlinux/svntogit-community/blob/75a1b3900fb3dd553d5114bbc8474d85fd6abb02/trunk/PKGBUILD#L26 + sed -i 's/procedure ShiftWorld(Dir: LongInt); inline;/procedure ShiftWorld(Dir: LongInt);/' hedgewars/uWorld.pas ''; cmakeFlags = [ @@ -42,7 +48,7 @@ mkDerivation rec { ]; - # hslogger brings network-3 and network-bsd which conflict with + # hslogger brings network-3 and network-bsd which conflict with # network-2.6.3.1 preConfigure = '' substituteInPlace gameServer/CMakeLists.txt \ @@ -97,6 +103,5 @@ mkDerivation rec { all movement on the battlefield has ceased).''; maintainers = with maintainers; [ kragniz fpletz ]; inherit (ghc.meta) platforms; - hydraPlatforms = []; }; } diff --git a/nixpkgs/pkgs/games/hyperrogue/default.nix b/nixpkgs/pkgs/games/hyperrogue/default.nix index 1ef0fd147d8..32882f16894 100644 --- a/nixpkgs/pkgs/games/hyperrogue/default.nix +++ b/nixpkgs/pkgs/games/hyperrogue/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "hyperrogue"; - version = "11.3l"; + version = "11.3o"; src = fetchFromGitHub { owner = "zenorogue"; repo = "hyperrogue"; rev = "v${version}"; - sha256 = "0fniyaf9mgg99s03wbdc36zg909kshpdfk9pn8pkai0x99lghkwb"; + sha256 = "0bijgbqpc867pq8lbwwvcnc713gm51mmz625xb5br0q2qw09nkyh"; }; CPPFLAGS = "-I${SDL.dev}/include/SDL"; diff --git a/nixpkgs/pkgs/games/instead/default.nix b/nixpkgs/pkgs/games/instead/default.nix index f131b920990..34a31fee729 100644 --- a/nixpkgs/pkgs/games/instead/default.nix +++ b/nixpkgs/pkgs/games/instead/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, SDL2, SDL2_ttf, SDL2_image, SDL2_mixer, pkgconfig, lua, zlib, unzip }: let - version = "3.3.1"; + version = "3.3.2"; # I took several games at random from http://instead.syscall.ru/games/ games = [ @@ -33,7 +33,7 @@ stdenv.mkDerivation { src = fetchurl { url = "mirror://sourceforge/project/instead/instead/${version}/instead_${version}.tar.gz"; - sha256 = "10bppcdjnd0all71l5akdvy7fx0c8s8x0za9qxszs8cjmlv9z1q0"; + sha256 = "u5j2kDKRvMQPsG8iA6uOBScuyE/e1BJIK2+qVL6jqQs="; }; NIX_LDFLAGS = "-llua -lgcc_s"; @@ -41,6 +41,11 @@ stdenv.mkDerivation { nativeBuildInputs = [ pkgconfig unzip ]; buildInputs = [ SDL2 SDL2_ttf SDL2_image SDL2_mixer lua zlib ]; + postPatch = '' + substituteInPlace configure.sh \ + --replace "/tmp/sdl-test" $(mktemp) + ''; + configurePhase = '' { echo 2; echo $out; } | ./configure.sh ''; diff --git a/nixpkgs/pkgs/games/julius/default.nix b/nixpkgs/pkgs/games/julius/default.nix new file mode 100644 index 00000000000..d1dad86e1c5 --- /dev/null +++ b/nixpkgs/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/nixpkgs/pkgs/games/katago/default.nix b/nixpkgs/pkgs/games/katago/default.nix index 0a9ebd9e3eb..20ad47d3e0a 100644 --- a/nixpkgs/pkgs/games/katago/default.nix +++ b/nixpkgs/pkgs/games/katago/default.nix @@ -13,52 +13,46 @@ , opencl-headers ? null , ocl-icd ? null , gperftools ? null -, cudaSupport ? false -, useTcmalloc ? true}: +, eigen ? null +, enableAVX2 ? false +, enableBigBoards ? false +, enableCuda ? false +, enableGPU ? true +, enableTcmalloc ? true}: -assert cudaSupport -> ( - libGL_driver != null && +assert !enableGPU -> ( + eigen != null && + !enableCuda); + +assert enableCuda -> ( + libGL_driver != null && cudatoolkit != null && cudnn != null); -assert !cudaSupport -> ( - opencl-headers != null && - ocl-icd != null); +assert !enableCuda -> ( + !enableGPU || ( + opencl-headers != null && + ocl-icd != null)); -assert useTcmalloc -> ( +assert enableTcmalloc -> ( gperftools != null); let - env = if cudaSupport + env = if enableCuda then gcc8Stdenv else stdenv; in env.mkDerivation rec { pname = "katago"; - version = "1.4.2"; + version = "1.6.1"; src = fetchFromGitHub { owner = "lightvector"; repo = "katago"; rev = "v${version}"; - sha256 = "0qdc9hgbzd175b2xkjs62dy6gyybcn9lf1mifiyhjbzjpgv192h4"; + sha256 = "030ff9prnvpadgcb4x4hx6b6ggg10bwqcj8vd8nwrdz9sjq67yf7"; }; - # 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 @@ -67,36 +61,44 @@ in env.mkDerivation rec { buildInputs = [ libzip boost - ] ++ lib.optionals cudaSupport [ + ] ++ lib.optionals (!enableGPU) [ + eigen + ] ++ lib.optionals (enableGPU && enableCuda) [ cudnn libGL_driver - ] ++ lib.optionals (!cudaSupport) [ + ] ++ lib.optionals (enableGPU && !enableCuda) [ opencl-headers ocl-icd - ] ++ lib.optionals useTcmalloc [ + ] ++ lib.optionals enableTcmalloc [ gperftools ]; cmakeFlags = [ "-DNO_GIT_REVISION=ON" - ] ++ lib.optionals cudaSupport [ + ] ++ lib.optionals (!enableGPU) [ + "-DUSE_BACKEND=EIGEN" + ] ++ lib.optionals enableAVX2 [ + "-DUSE_AVX2=ON" + ] ++ lib.optionals (enableGPU && enableCuda) [ "-DUSE_BACKEND=CUDA" - ] ++ lib.optionals (!cudaSupport) [ + ] ++ lib.optionals (enableGPU && !enableCuda) [ "-DUSE_BACKEND=OPENCL" - ] ++ lib.optionals useTcmalloc [ + ] ++ lib.optionals enableTcmalloc [ "-DUSE_TCMALLOC=ON" + ] ++ lib.optionals enableBigBoards [ + "-DUSE_BIGGER_BOARDS_EXPENSIVE=ON" ]; preConfigure = '' cd cpp/ - '' + lib.optionalString cudaSupport '' + '' + lib.optionalString enableCuda '' export CUDA_PATH="${cudatoolkit}" export EXTRA_LDFLAGS="-L/run/opengl-driver/lib" ''; installPhase = '' mkdir -p $out/bin; cp katago $out/bin; - '' + lib.optionalString cudaSupport '' + '' + lib.optionalString enableCuda '' wrapProgram $out/bin/katago \ --prefix LD_LIBRARY_PATH : "/run/opengl-driver/lib" ''; diff --git a/nixpkgs/pkgs/games/klavaro/default.nix b/nixpkgs/pkgs/games/klavaro/default.nix index e62c5a18233..ac2c787d3ff 100644 --- a/nixpkgs/pkgs/games/klavaro/default.nix +++ b/nixpkgs/pkgs/games/klavaro/default.nix @@ -1,12 +1,20 @@ -{ stdenv, fetchurl, makeWrapper, pkgconfig, intltool, curl, gtk3 }: +{ stdenv +, fetchurl +, makeWrapper +, curl +, file +, gtk3 +, intltool +, pkgconfig +}: stdenv.mkDerivation rec { pname = "klavaro"; - version = "3.08"; + version = "3.11"; src = fetchurl { url = "mirror://sourceforge/klavaro/${pname}-${version}.tar.bz2"; - sha256 = "0qmvr6d8wshwp0xvk5wbig4vlzxzcxrakhyhd32v8v3s18nhqsrc"; + sha256 = "1rkxaqb62w4mv86fcnmr32lq6y0h4hh92wmsy5ddb9a8jnzx6r7w"; }; nativeBuildInputs = [ intltool makeWrapper pkgconfig ]; @@ -17,14 +25,21 @@ stdenv.mkDerivation rec { --prefix LD_LIBRARY_PATH : $out/lib ''; + # Fixes /usr/bin/file: No such file or directory + preConfigure = '' + substituteInPlace configure \ + --replace "/usr/bin/file" "${file}/bin/file" + ''; + # Hack to avoid TMPDIR in RPATHs. preFixup = ''rm -rf "$(pwd)" ''; - meta = { - description = "Just another free touch typing tutor program"; + meta = with stdenv.lib; { + description = "Free touch typing tutor program"; homepage = "http://klavaro.sourceforge.net/"; - license = stdenv.lib.licenses.gpl3Plus; - platforms = stdenv.lib.platforms.linux; - maintainers = [stdenv.lib.maintainers.mimame]; + changelog = "https://sourceforge.net/p/klavaro/code/HEAD/tree/trunk/ChangeLog"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ mimame davidak ]; }; } diff --git a/nixpkgs/pkgs/games/left4gore/default.nix b/nixpkgs/pkgs/games/left4gore/default.nix new file mode 100644 index 00000000000..597f7da2b3d --- /dev/null +++ b/nixpkgs/pkgs/games/left4gore/default.nix @@ -0,0 +1,48 @@ +{ stdenvNoCC, lib, fetchurl, buildFHSUserEnv }: + +let + version = "2.3"; + + # Unwrapped package, for putting into the FHS env + left4gore-unwrapped = stdenvNoCC.mkDerivation { + pname = "left4gore-unwrapped"; + inherit version; + + src = fetchurl { + url = "http://www.left4gore.com/dist/left4gore-${version}-linux.tar.gz"; + sha256 = "1n57nh32ybn6kirn8djh0nsjx6m84c0jfi1x8r4w2qr0qky3z7p0"; + }; + + installPhase = '' + mkdir -p $out/bin + cp left4gore $out/bin + ''; + }; + + # FHS env, as patchelf will not work + env = buildFHSUserEnv { + name = "left4gore-env-${version}"; + targetPkgs = _: [ left4gore-unwrapped ]; + runScript = "left4gore"; + }; + +in stdenvNoCC.mkDerivation { + pname = "left4gore"; + inherit version; + + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin + ln -s ${env}/bin/* $out/bin/left4gore + ''; + + meta = with lib; { + homepage = "http://www.left4gore.com"; + description = "Memory patcher which adds the gore back into Left 4 Dead 2"; + license = licenses.unfree; # Probably the best choice + maintainers = with maintainers; [ das_j ]; + }; +} diff --git a/nixpkgs/pkgs/games/legendary-gl/default.nix b/nixpkgs/pkgs/games/legendary-gl/default.nix new file mode 100644 index 00000000000..114aa6ab12a --- /dev/null +++ b/nixpkgs/pkgs/games/legendary-gl/default.nix @@ -0,0 +1,30 @@ +{ lib +, fetchFromGitHub +, buildPythonApplication +, pythonOlder +, requests +}: + +buildPythonApplication rec { + pname = "legendary-gl"; # Name in pypi + version = "0.0.14"; + + src = fetchFromGitHub { + owner = "derrod"; + repo = "legendary"; + rev = version; + sha256 = "05r88qi8mmbj07wxcpb3fhbl40qscbq1aqb0mnj9bpmi9gf5zll5"; + }; + + propagatedBuildInputs = [ requests ]; + + disabled = pythonOlder "3.8"; + + meta = with lib; { + description = "A free and open-source Epic Games Launcher alternative"; + homepage = "https://github.com/derrod/legendary"; + license = licenses.gpl3; + maintainers = with maintainers; [ wchresta ]; + }; +} + diff --git a/nixpkgs/pkgs/games/minecraft-server/default.nix b/nixpkgs/pkgs/games/minecraft-server/default.nix index d0ae0a59717..7216a42b00f 100644 --- a/nixpkgs/pkgs/games/minecraft-server/default.nix +++ b/nixpkgs/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.3"; src = fetchurl { - url = "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar"; + url = "https://launcher.mojang.com/v1/objects/f02f4473dbf152c23d7d484952121db0b36698cb/server.jar"; # sha1 because that comes from mojang via api - sha1 = "bb2b6b1aefcd70dfd1892149ac3a215f6c636b07"; + sha1 = "f02f4473dbf152c23d7d484952121db0b36698cb"; }; preferLocalBuild = true; diff --git a/nixpkgs/pkgs/games/minecraft/default.nix b/nixpkgs/pkgs/games/minecraft/default.nix index 650bb223c9a..9d23515c039 100644 --- a/nixpkgs/pkgs/games/minecraft/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/minetest/default.nix b/nixpkgs/pkgs/games/minetest/default.nix index db36b43ea29..f49ec1f4a82 100644 --- a/nixpkgs/pkgs/games/minetest/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/mnemosyne/default.nix b/nixpkgs/pkgs/games/mnemosyne/default.nix index 44bd396e9fa..4a92b8c1014 100644 --- a/nixpkgs/pkgs/games/mnemosyne/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/mudlet/default.nix b/nixpkgs/pkgs/games/mudlet/default.nix index 75d16586a39..b73af4515d3 100644 --- a/nixpkgs/pkgs/games/mudlet/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/ninvaders/default.nix b/nixpkgs/pkgs/games/ninvaders/default.nix new file mode 100644 index 00000000000..26462c1eef5 --- /dev/null +++ b/nixpkgs/pkgs/games/ninvaders/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchFromGitHub, cmake, ncurses }: + +stdenv.mkDerivation rec { + pname = "ninvaders"; + version = "0.1.2"; + + src = fetchFromGitHub { + owner = "sf-refugees"; + repo = pname; + rev = "v${version}"; + sha256 = "1wmwws1zsap4bfc2439p25vnja0hnsf57k293rdxw626gly06whi"; + }; + + buildInputs = [ cmake ncurses ]; + + meta = with stdenv.lib; { + description = "Space Invaders clone based on ncurses"; + homepage = "http://ninvaders.sourceforge.net/"; + license = licenses.gpl2; + maintainers = with maintainers; [ _1000101 ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/games/openjk/default.nix b/nixpkgs/pkgs/games/openjk/default.nix index 2d08a1da999..0fe327b308e 100644 --- a/nixpkgs/pkgs/games/openjk/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/openmw/default.nix b/nixpkgs/pkgs/games/openmw/default.nix index a9047de7041..22f3ea8d6ad 100644 --- a/nixpkgs/pkgs/games/openmw/default.nix +++ b/nixpkgs/pkgs/games/openmw/default.nix @@ -1,4 +1,4 @@ -{ stdenv, mkDerivationWith, fetchFromGitHub, qtbase, openscenegraph, mygui, bullet, ffmpeg +{ stdenv, mkDerivationWith, fetchFromGitHub, qtbase, openscenegraph, mygui, bullet, ffmpeg_3 , boost, cmake, SDL2, unshield, openal, libXt, pkgconfig }: let @@ -6,25 +6,25 @@ 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; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ cmake boost ffmpeg bullet mygui openscenegraph_ SDL2 unshield openal libXt qtbase ]; + buildInputs = [ cmake boost ffmpeg_3 bullet mygui openscenegraph_ SDL2 unshield openal libXt qtbase ]; cmakeFlags = [ "-DDESIRED_QT_VERSION:INT=5" diff --git a/nixpkgs/pkgs/games/openmw/tes3mp.nix b/nixpkgs/pkgs/games/openmw/tes3mp.nix index 59bdc690107..df332c0e5bf 100644 --- a/nixpkgs/pkgs/games/openmw/tes3mp.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/openrct2/default.nix b/nixpkgs/pkgs/games/openrct2/default.nix index b519e0c7e92..45133be461c 100644 --- a/nixpkgs/pkgs/games/openrct2/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/openrw/default.nix b/nixpkgs/pkgs/games/openrw/default.nix index c2bb5cfa20c..b53850a8743 100644 --- a/nixpkgs/pkgs/games/openrw/default.nix +++ b/nixpkgs/pkgs/games/openrw/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchgit, cmake, sfml, libGLU, libGL, bullet, glm, libmad, xlibsWrapper, openal -, SDL2, boost, ffmpeg, Cocoa, OpenAL }: +, SDL2, boost, ffmpeg_3, Cocoa, OpenAL }: stdenv.mkDerivation { version = "2019-10-26"; @@ -15,7 +15,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake ]; buildInputs = [ - sfml libGLU libGL bullet glm libmad xlibsWrapper openal SDL2 boost ffmpeg + sfml libGLU libGL bullet glm libmad xlibsWrapper openal SDL2 boost ffmpeg_3 ] ++ stdenv.lib.optionals stdenv.isDarwin [ OpenAL Cocoa ]; meta = with stdenv.lib; { diff --git a/nixpkgs/pkgs/games/openttd/default.nix b/nixpkgs/pkgs/games/openttd/default.nix index 519d4e3a741..bab4e510e7d 100644 --- a/nixpkgs/pkgs/games/openttd/default.nix +++ b/nixpkgs/pkgs/games/openttd/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchzip, pkgconfig, SDL2, libpng, zlib, xz, freetype, fontconfig, libxdg_basedir +{ stdenv, fetchurl, fetchzip, pkgconfig, which, SDL2, libpng, zlib, xz, freetype, fontconfig, libxdg_basedir , withOpenGFX ? true, withOpenSFX ? true, withOpenMSX ? true , withFluidSynth ? true, audioDriver ? "alsa", fluidsynth, soundfont-fluid, procps , writeScriptBin, makeWrapper, runtimeShell @@ -29,14 +29,14 @@ let in stdenv.mkDerivation rec { pname = "openttd"; - version = "1.10.1"; + version = "1.10.3"; src = fetchurl { url = "https://cdn.openttd.org/openttd-releases/${version}/${pname}-${version}-source.tar.xz"; - sha256 = "0d22a3c50f7a321f4f211594f4987ac16c381e8e3e40f116848e63e91e7fbb9b"; + sha256 = "0fxmfz1mm95a2x0rnzfff9wb8q57w0cvsdd0z7agdcbyakph25n1"; }; - nativeBuildInputs = [ pkgconfig makeWrapper ]; + nativeBuildInputs = [ pkgconfig which makeWrapper ]; buildInputs = [ SDL2 libpng xz zlib freetype fontconfig libxdg_basedir ] ++ stdenv.lib.optionals withFluidSynth [ fluidsynth soundfont-fluid ]; diff --git a/nixpkgs/pkgs/games/openttd/jgrpp.nix b/nixpkgs/pkgs/games/openttd/jgrpp.nix new file mode 100644 index 00000000000..83a8f927694 --- /dev/null +++ b/nixpkgs/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/nixpkgs/pkgs/games/openxray/default.nix b/nixpkgs/pkgs/games/openxray/default.nix index 9e38852a02a..fe2e978c4cc 100644 --- a/nixpkgs/pkgs/games/openxray/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/osu-lazer/bypass-tamper-detection.patch b/nixpkgs/pkgs/games/osu-lazer/bypass-tamper-detection.patch new file mode 100644 index 00000000000..576f83a96c5 --- /dev/null +++ b/nixpkgs/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/nixpkgs/pkgs/games/osu-lazer/default.nix b/nixpkgs/pkgs/games/osu-lazer/default.nix new file mode 100644 index 00000000000..2ce6806bcb4 --- /dev/null +++ b/nixpkgs/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.903.0"; + + src = fetchFromGitHub { + owner = "ppy"; + repo = "osu"; + rev = version; + sha256 = "01apjgi2r8jaihp7sp1y69fmplkiy383zxxdbjn1m797f0ls37ca"; + }; + + 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/nixpkgs/pkgs/games/osu-lazer/deps.nix b/nixpkgs/pkgs/games/osu-lazer/deps.nix new file mode 100644 index 00000000000..6c8aa4bd18f --- /dev/null +++ b/nixpkgs/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.21.1"; + sha256 = "119v22rvg51ifg54r1ndf2bw7hv1lf5wn3cd04ccg8d7r8c0yhbk"; + }) + (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.3.0"; + sha256 = "04z03ir9sal5h9ha97isbh660jijslb8zfiaa48w2r2l6pabz5kd"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.Common"; + version = "3.7.0"; + sha256 = "0882492nx6x68b0pkh3q5xaawz0b2l5x35r40722ignyjnvjydph"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.CSharp"; + version = "3.7.0"; + sha256 = "0adw6rcag8wxydzyiyhls2mxaqkay5qlz25z1fxrlv5qnchqn0n5"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.CSharp.Workspaces"; + version = "3.7.0"; + sha256 = "15rlz65wbky0yq7b9s8xwk68dgrhgsk4rj88q9pyjxbm5938vrav"; + }) + (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.7.0"; + sha256 = "00nm453w4n6kjsicmz5izvkf1ki9rp3xnc9n3y7a9b1g5sxg36fs"; + }) + (fetchNuGet { + name = "Microsoft.CodeAnalysis.Workspaces.MSBuild"; + version = "3.7.0"; + sha256 = "1sh8s7b16j06p3gmzsgwd8690vagah4908bpa3gyz2fxgfnj46ax"; + }) + (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.142701"; + sha256 = "114ivn09zlxkna78hyxa3h40k5iaivapws755i0aiys7nxhdn3mw"; + }) + (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.903.0"; + sha256 = "0g15yw8c21m2g0lpca4f519dgj2phccz15nqdbaq49736akr4qzm"; + }) + (fetchNuGet { + name = "ppy.osu.Framework.NativeLibs"; + version = "2020.213.0"; + sha256 = "1yzrx7bji2163dzvyqri42byc7lgxlm59xbwgi312dw5714snmxy"; + }) + (fetchNuGet { + name = "ppy.osu.Game.Resources"; + version = "2020.903.0"; + sha256 = "0f94kms4xyjl9xwf26j6n6k5zfbx61a6bkd3vljfmbmr88advssy"; + }) + (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.6"; + sha256 = "0vc45p1arxwifv5fb6lzkqqxlsvm4i0xmpq2vc73vbjqzydd2phm"; + }) + (fetchNuGet { + name = "Sentry.PlatformAbstractions"; + version = "1.1.1"; + sha256 = "10mxyxmyjpr0y1ik2j55pp7ifn101sw319cbpf28i2xbfp0cvcaj"; + }) + (fetchNuGet { + name = "Sentry.Protocol"; + version = "2.1.6"; + sha256 = "0qc18kc9d7f0s6hmnpji3sbz0z09kdgg4fwh55rrmpfgr3w851s7"; + }) + (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/nixpkgs/pkgs/games/osu-lazer/update.sh b/nixpkgs/pkgs/games/osu-lazer/update.sh new file mode 100755 index 00000000000..be8fa3fe716 --- /dev/null +++ b/nixpkgs/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/nixpkgs/pkgs/games/papermc/default.nix b/nixpkgs/pkgs/games/papermc/default.nix index 9695a350058..c5f7dc37925 100644 --- a/nixpkgs/pkgs/games/papermc/default.nix +++ b/nixpkgs/pkgs/games/papermc/default.nix @@ -1,10 +1,10 @@ -{ stdenv, fetchurl, jre }: +{ stdenv, fetchurl, bash, jre }: let - mcVersion = "1.15.2"; - buildNum = "161"; + mcVersion = "1.16.2"; + buildNum = "141"; jar = fetchurl { url = "https://papermc.io/api/v1/paper/${mcVersion}/${buildNum}/download"; - sha256 = "1jngj5djs1fjdj25wg9iszw0dsp56f386j8ydms7x4ky8s8kxyms"; + sha256 = "1qhhnaysw9r73fpvj9qcmjah722a6a4s6g4cblna56n1hpz4lw1s"; }; in stdenv.mkDerivation { pname = "papermc"; @@ -13,22 +13,23 @@ in stdenv.mkDerivation { preferLocalBuild = true; dontUnpack = true; - installPhase = '' - mkdir -p $out/bin - cp ${jar} $out/papermc.jar - cat > $out/bin/minecraft-server << EOF - #!/bin/sh - exec ${jre}/bin/java \$@ -jar $out/papermc.jar nogui - EOF - chmod +x $out/bin/minecraft-server + dontConfigure = true; + + buildPhase = '' + cat > minecraft-server << EOF + #!${bash}/bin/sh + exec ${jre}/bin/java \$@ -jar $out/share/papermc/papermc.jar nogui ''; - phases = "installPhase"; + installPhase = '' + install -Dm444 ${jar} $out/share/papermc/papermc.jar + install -Dm555 -t $out/bin minecraft-server + ''; meta = { description = "High-performance Minecraft Server"; homepage = "https://papermc.io/"; - license = stdenv.lib.licenses.gpl3; + license = stdenv.lib.licenses.gpl3Only; platforms = stdenv.lib.platforms.unix; maintainers = with stdenv.lib.maintainers; [ aaronjanse ]; }; diff --git a/nixpkgs/pkgs/games/pentobi/default.nix b/nixpkgs/pkgs/games/pentobi/default.nix index 909f09a0b39..2b5a86ad52c 100644 --- a/nixpkgs/pkgs/games/pentobi/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/privateer/default.nix b/nixpkgs/pkgs/games/privateer/default.nix index 9fd90945eba..16d0036b658 100644 --- a/nixpkgs/pkgs/games/privateer/default.nix +++ b/nixpkgs/pkgs/games/privateer/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchsvn, boost, cmake, ffmpeg, freeglut, glib, +{ stdenv, fetchsvn, boost, cmake, ffmpeg_3, freeglut, glib, gtk2, libjpeg, libpng, libpthreadstubs, libvorbis, libXau, libXdmcp, libXmu, libGLU, libGL, openal, pixman, pkgconfig, python27, SDL }: @@ -13,7 +13,7 @@ stdenv.mkDerivation { }; buildInputs = - [ boost cmake ffmpeg freeglut glib gtk2 libjpeg libpng + [ boost cmake ffmpeg_3 freeglut glib gtk2 libjpeg libpng libpthreadstubs libvorbis libXau libXdmcp libXmu libGLU libGL openal pixman pkgconfig python27 SDL ]; diff --git a/nixpkgs/pkgs/games/runelite/default.nix b/nixpkgs/pkgs/games/runelite/default.nix index 9b6ca4f7c05..df8a5c3e8dc 100644 --- a/nixpkgs/pkgs/games/runelite/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/sfrotz/default.nix b/nixpkgs/pkgs/games/sfrotz/default.nix new file mode 100644 index 00000000000..6e4839703a1 --- /dev/null +++ b/nixpkgs/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/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix b/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix index f96f61764b5..f3808102bd1 100644 --- a/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix +++ b/nixpkgs/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.2d"; src = fetchFromGitHub { owner = "00-Evan"; - repo = "shattered-pixel-dungeon-gdx"; + repo = "shattered-pixel-dungeon"; rev = "v${version}"; - sha256 = "05awbbc7np9li50shdbpv9dgdgry6lra8d5gibwn578m2g9srbxx"; + sha256 = "11lgalam1aacw01ar7nawiim4pbxqzrdrnxvj6wq9mg83hgsz65l"; }; 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/nixpkgs/pkgs/games/sm64ex/default.nix b/nixpkgs/pkgs/games/sm64ex/default.nix new file mode 100644 index 00000000000..e5aeb84fbf1 --- /dev/null +++ b/nixpkgs/pkgs/games/sm64ex/default.nix @@ -0,0 +1,69 @@ +{ stdenv +, fetchFromGitHub +, python3 +, pkg-config +, audiofile +, SDL2 +, hexdump +, requireFile +, compileFlags ? [ ] +, region ? "us" +, baseRom ? requireFile { + name = "baserom.${region}.z64"; + message = '' + This nix expression requires that baserom.${region}.z64 is + already part of the store. To get this file you can dump your Super Mario 64 cartridge's contents + and add it to the nix store with nix-store --add-fixed sha256 <FILE>. + Note that if you are not using a US baserom, you must overwrite the "region" attribute with either "eu" or "jp". + ''; + sha256 = { + "us" = "17ce077343c6133f8c9f2d6d6d9a4ab62c8cd2aa57c40aea1f490b4c8bb21d91"; + "eu" = "c792e5ebcba34c8d98c0c44cf29747c8ee67e7b907fcc77887f9ff2523f80572"; + "jp" = "9cf7a80db321b07a8d461fe536c02c87b7412433953891cdec9191bfad2db317"; + }.${region}; + } +}: + +stdenv.mkDerivation rec { + pname = "sm64ex"; + version = "unstable-2020-06-19"; + + src = fetchFromGitHub { + owner = "sm64pc"; + repo = "sm64ex"; + rev = "f5005418348cf1a53bfa75ff415a513ef0b9b273"; + sha256 = "0adyshkqk5c4lxhdxc3j6ax4svfka26486qpa5q2gl2nixwg9zxn"; + }; + + nativeBuildInputs = [ python3 pkg-config ]; + buildInputs = [ audiofile SDL2 hexdump ]; + + makeFlags = [ "VERSION=${region}" ] ++ compileFlags + ++ stdenv.lib.optionals stdenv.isDarwin [ "OSX_BUILD=1" ]; + + inherit baseRom; + + preBuild = '' + patchShebangs extract_assets.py + cp $baseRom ./baserom.${region}.z64 + ''; + + installPhase = '' + mkdir -p $out/bin + cp build/${region}_pc/sm64.${region}.f3dex2e $out/bin/sm64ex + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/sm64pc/sm64ex"; + description = "Super Mario 64 port based off of decompilation"; + longDescription = '' + Super Mario 64 port based off of decompilation. + Note that you must supply a baserom yourself to extract assets from. + If you are not using an US baserom, you must overwrite the "region" attribute with either "eu" or "jp". + If you would like to use patches sm64ex distributes as makeflags, add them to the "compileFlags" attribute. + ''; + license = licenses.unfree; + maintainers = with maintainers; [ ivar ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/games/spring/springlobby.nix b/nixpkgs/pkgs/games/spring/springlobby.nix index e627575df94..9912675ee67 100644 --- a/nixpkgs/pkgs/games/spring/springlobby.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/steam/default.nix b/nixpkgs/pkgs/games/steam/default.nix index 5aab54b8322..ff2c6e13288 100644 --- a/nixpkgs/pkgs/games/steam/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/steam/chrootenv.nix b/nixpkgs/pkgs/games/steam/fhsenv.nix index 56e1a09f36e..2c8063d4a05 100644 --- a/nixpkgs/pkgs/games/steam/chrootenv.nix +++ b/nixpkgs/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 "$@" ''; @@ -82,6 +89,7 @@ in buildFHSUserEnv rec { at-spi2-core # CrossCode gst_all_1.gstreamer gst_all_1.gst-plugins-ugly + gst_all_1.gst-plugins-base libdrm mono xorg.xkeyboardconfig @@ -186,8 +194,6 @@ in buildFHSUserEnv rec { SDL_mixer SDL2_ttf SDL2_mixer - gstreamer - gst-plugins-base libappindicator-gtk2 libcaca libcanberra @@ -251,6 +257,7 @@ in buildFHSUserEnv rec { EOF fi fi + ${lib.optionalString (!nativeOnly) exportLDPath} exec steam "$@" ''; @@ -272,7 +279,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/nixpkgs/pkgs/games/steam/runtime.nix b/nixpkgs/pkgs/games/steam/runtime.nix index 44d80c0d794..4f373b9be30 100644 --- a/nixpkgs/pkgs/games/steam/runtime.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/super-tux-kart/default.nix b/nixpkgs/pkgs/games/super-tux-kart/default.nix index 70c5657508b..b3a7966071a 100644 --- a/nixpkgs/pkgs/games/super-tux-kart/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/taisei/default.nix b/nixpkgs/pkgs/games/taisei/default.nix index c3b76b4980e..3c4d0df2b03 100644 --- a/nixpkgs/pkgs/games/taisei/default.nix +++ b/nixpkgs/pkgs/games/taisei/default.nix @@ -8,11 +8,11 @@ stdenv.mkDerivation rec { pname = "taisei"; - version = "1.3"; + version = "1.3.1"; src = fetchurl { url = "https://github.com/taisei-project/${pname}/releases/download/v${version}/${pname}-v${version}.tar.xz"; - sha256 = "0fl41cbjr8h6gmhc27l44cfkcnhg5c10b4fcfvnfsbjii8gdwvjd"; + sha256 = "11f9mlqmzy1lszwcc1nsbar9q1hs4ml6pbm52hqfd4q0f4x3ln46"; }; nativeBuildInputs = [ @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { project of shoot-em-up games set in an isolated world full of Japanese folklore. ''; - homepage = https://taisei-project.org/; + homepage = "https://taisei-project.org/"; license = [ licenses.mit licenses.cc-by-40 ]; maintainers = [ maintainers.lambda-11235 ]; platforms = platforms.all; diff --git a/nixpkgs/pkgs/games/tdm/default.nix b/nixpkgs/pkgs/games/tdm/default.nix index 32f91f59868..055ab9d38e8 100644 --- a/nixpkgs/pkgs/games/tdm/default.nix +++ b/nixpkgs/pkgs/games/tdm/default.nix @@ -1,17 +1,17 @@ -{ 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 }: let pname = "tdm"; - version = "2.07"; + version = "2.08"; desktop = makeDesktopItem { desktopName = pname; 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;"; @@ -21,10 +21,10 @@ in stdenv.mkDerivation { name = "${pname}-${version}"; src = fetchurl { url = "https://www.thedarkmod.com/sources/thedarkmod.${version}.src.7z"; - sha256 = "17wdpip8zvm2njz0xrf7xcxl73hnsc6i83zj18kn8rnjkpy50dd6"; + sha256 = "0bmv07j6s6q3m7hnpx7cwrycjkbvlf0y9sg9migakni0jg9yz5ps"; }; nativeBuildInputs = [ - p7zip scons.py2 gnum4 makeWrapper + p7zip sconsPackages.scons_3_1_2 gnum4 makeWrapper ]; buildInputs = [ glibc_multi mesa.dev xorg.libX11.dev openal @@ -39,13 +39,15 @@ in stdenv.mkDerivation { preBuild = '' pushd tdm_update scons BUILD=release TARGET_ARCH=x64 - install -Dm755 tdm_update.linux $out/share/libexec/tdm_update.linux + install -Dm755 bin/tdm_update.linux64 $out/share/libexec/tdm_update.linux popd ''; # why oh why can it find ld but not strip? postPatch = '' sed -i 's!strip \$!${binutils-unwrapped}/bin/strip $!' SConstruct + # This adds math.h needed for math::floor + sed -i 's|#include "Util.h"|#include "Util.h"\n#include <math.h>|' tdm_update/ConsoleUpdater.cpp ''; installPhase = '' diff --git a/nixpkgs/pkgs/games/teeworlds/default.nix b/nixpkgs/pkgs/games/teeworlds/default.nix index 3035c02e262..9ff50d533be 100644 --- a/nixpkgs/pkgs/games/teeworlds/default.nix +++ b/nixpkgs/pkgs/games/teeworlds/default.nix @@ -1,5 +1,6 @@ { fetchFromGitHub, stdenv, cmake, pkgconfig, python3, alsaLib , libX11, libGLU, SDL2, lua5_3, zlib, freetype, wavpack, icoutils +, nixosTests }: stdenv.mkDerivation rec { @@ -36,6 +37,8 @@ stdenv.mkDerivation rec { install -D $src/other/teeworlds.desktop $out/share/applications/teeworlds.desktop ''; + passthru.tests.teeworlds = nixosTests.teeworlds; + meta = { description = "Retro multiplayer shooter game"; diff --git a/nixpkgs/pkgs/games/terraria-server/default.nix b/nixpkgs/pkgs/games/terraria-server/default.nix index d3198e2b35c..e16a771d272 100644 --- a/nixpkgs/pkgs/games/terraria-server/default.nix +++ b/nixpkgs/pkgs/games/terraria-server/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "terraria-server"; - version = "1.4.0.4"; + version = "1.4.0.5"; urlVersion = lib.replaceChars [ "." ] [ "" ] version; src = fetchurl { - url = "https://terraria.org/system/dedicated_servers/archives/000/000/038/original/terraria-server-${urlVersion}.zip"; - sha256 = "09zkadjd04gbx1yvwpqmm89viydwxqgixbqhbqncb94qb2z5gfxk"; + url = "https://terraria.org/system/dedicated_servers/archives/000/000/039/original/terraria-server-${urlVersion}.zip"; + sha256 = "1bvcafpjxp7ddrbhm3z0xamgi71ymbi41dlx990daz0b5kbdir8y"; }; buildInputs = [ file unzip ]; diff --git a/nixpkgs/pkgs/games/the-powder-toy/default.nix b/nixpkgs/pkgs/games/the-powder-toy/default.nix index 72b4bf20383..af392eca8d8 100644 --- a/nixpkgs/pkgs/games/the-powder-toy/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/tintin/default.nix b/nixpkgs/pkgs/games/tintin/default.nix index 7291f5b4bd2..cd58fcf24fd 100644 --- a/nixpkgs/pkgs/games/tintin/default.nix +++ b/nixpkgs/pkgs/games/tintin/default.nix @@ -6,11 +6,11 @@ assert tlsSupport -> gnutls != null; stdenv.mkDerivation rec { - name = "tintin-2.02.02"; + name = "tintin-2.02.03"; src = fetchurl { url = "mirror://sourceforge/tintin/${name}.tar.gz"; - sha256 = "11ylbp8ip7dwmh4gzb53z147pcfxkl3lwhyy8ngyn2zc634vdn65"; + sha256 = "0ybgy8j8i36d7f892x539vl6fl5zvvfyy5ffc98550vjr6qqhk74"; }; nativeBuildInputs = lib.optional tlsSupport gnutls.dev; diff --git a/nixpkgs/pkgs/games/tome2/default.nix b/nixpkgs/pkgs/games/tome2/default.nix index a632e523aaa..fa73697ab42 100644 --- a/nixpkgs/pkgs/games/tome2/default.nix +++ b/nixpkgs/pkgs/games/tome2/default.nix @@ -9,7 +9,7 @@ let name = pname; exec = "${pname}-x11"; icon = pname; - terminal = "False"; + terminal = "false"; comment = description; type = "Application"; categories = "Game;RolePlaying;"; diff --git a/nixpkgs/pkgs/games/tome4/default.nix b/nixpkgs/pkgs/games/tome4/default.nix index 99391f2e301..59dced9ac67 100644 --- a/nixpkgs/pkgs/games/tome4/default.nix +++ b/nixpkgs/pkgs/games/tome4/default.nix @@ -9,7 +9,7 @@ let name = pname; exec = "@out@/bin/${pname}"; icon = pname; - terminal = "False"; + terminal = "false"; comment = "An open-source, single-player, role-playing roguelike game set in the world of Eyal."; type = "Application"; categories = "Game;RolePlaying;"; diff --git a/nixpkgs/pkgs/games/tuxpaint/default.nix b/nixpkgs/pkgs/games/tuxpaint/default.nix index b9d7f1b8c28..ea37ded6b6c 100644 --- a/nixpkgs/pkgs/games/tuxpaint/default.nix +++ b/nixpkgs/pkgs/games/tuxpaint/default.nix @@ -1,17 +1,17 @@ { stdenv, fetchurl, SDL, SDL_image, SDL_ttf, SDL_mixer, libpng, - cairo, librsvg, gettext, libpaper, fribidi, pkgconfig, gperf }: + cairo, librsvg, gettext, libpaper, fribidi, pkgconfig, gperf, imagemagick }: stdenv.mkDerivation rec { - version = "0.9.22"; + version = "0.9.24"; pname = "tuxpaint"; src = fetchurl { url = "mirror://sourceforge/tuxpaint/${version}/${pname}-${version}.tar.gz"; - sha256 = "1qrbrdck9yxpcg3si6jb9i11w8lw9h4hqad0pfaxgyiniqpr7gca"; + sha256 = "06m1lg2pikfkmassfvvrbwqffwgixcmjh1li6akaldgkalpmfql7"; }; nativeBuildInputs = [ SDL SDL_image SDL_ttf SDL_mixer libpng cairo - librsvg gettext libpaper fribidi pkgconfig gperf ]; + librsvg gettext libpaper fribidi pkgconfig gperf imagemagick ]; hardeningDisable = [ "format" ]; makeFlags = [ "GPERF=${gperf}/bin/gperf" "PREFIX=$$out" diff --git a/nixpkgs/pkgs/games/ultrastardx/default.nix b/nixpkgs/pkgs/games/ultrastardx/default.nix index 3e17dfdf644..b6e1da204ed 100644 --- a/nixpkgs/pkgs/games/ultrastardx/default.nix +++ b/nixpkgs/pkgs/games/ultrastardx/default.nix @@ -1,7 +1,26 @@ -{ stdenv, autoreconfHook, fetchFromGitHub, pkgconfig -, lua, fpc, pcre, portaudio, freetype, libpng -, SDL2, SDL2_image, SDL2_gfx, SDL2_mixer, SDL2_net, SDL2_ttf -, ffmpeg, sqlite, zlib, libX11, libGLU, libGL }: +{ stdenv +, autoreconfHook +, fetchFromGitHub +, fetchpatch +, pkgconfig +, lua +, fpc +, pcre +, portaudio +, freetype +, libpng +, SDL2 +, SDL2_image +, SDL2_gfx +, SDL2_mixer +, SDL2_net, SDL2_ttf +, ffmpeg +, sqlite +, zlib +, libX11 +, libGLU +, libGL +}: let sharedLibs = [ @@ -12,17 +31,25 @@ let in stdenv.mkDerivation rec { pname = "ultrastardx"; - version = "unstable-2019-01-07"; + version = "2020.4.0"; src = fetchFromGitHub { owner = "UltraStar-Deluxe"; repo = "USDX"; - rev = "3df142590f29db1505cc58746af9f8cf7cb4a6a5"; - sha256 = "EpwGKK9B8seF7gRwo3kCeSzFQQW1p8rP4HXeu8/LoyA="; + rev = "v${version}"; + sha256 = "0vmfv8zpyf8ymx3rjydpd7iqis080lni94vb316vfxkgvjmqbhym"; }; nativeBuildInputs = [ pkgconfig autoreconfHook ]; buildInputs = [ fpc libpng ] ++ sharedLibs; + patches = [ + (fetchpatch { + name = "fpc-3.2-support.patch"; + url = "https://github.com/UltraStar-Deluxe/USDX/commit/1b8e8714c1523ef49c2fd689a1545d097a3d76d7.patch"; + sha256 = "02zmjymj9w1mkpf7armdpf067byvml6lprs1ca4lhpkv45abddp4"; + }) + ]; + postPatch = '' substituteInPlace src/config.inc.in \ --subst-var-by libpcre_LIBNAME libpcre.so.1 diff --git a/nixpkgs/pkgs/games/ut2004/wrapper.nix b/nixpkgs/pkgs/games/ut2004/wrapper.nix index 31d0763be4d..0f70a07ca8f 100644 --- a/nixpkgs/pkgs/games/ut2004/wrapper.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/vassal/default.nix b/nixpkgs/pkgs/games/vassal/default.nix index 55848d91fab..413d98d26ac 100644 --- a/nixpkgs/pkgs/games/vassal/default.nix +++ b/nixpkgs/pkgs/games/vassal/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, jre, makeWrapper }: stdenv.mkDerivation rec { - name = "VASSAL-3.2.17"; + name = "VASSAL-3.3.2"; src = fetchurl { url = "mirror://sourceforge/vassalengine/${name}-linux.tar.bz2"; - sha256 = "0nxskr46janxnb31c03zv61kr46vy98l7cwxha3vll81l4ij1sjb"; + sha256 = "1abhlkl27gyfa1lghvv76xa6ks5hiwv2s9wb9ddadm0m07f87n1w"; }; buildInputs = [ makeWrapper ]; diff --git a/nixpkgs/pkgs/games/vdrift/default.nix b/nixpkgs/pkgs/games/vdrift/default.nix index 99475af49e1..ea8b3941f8b 100644 --- a/nixpkgs/pkgs/games/vdrift/default.nix +++ b/nixpkgs/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/nixpkgs/pkgs/games/vms-empire/default.nix b/nixpkgs/pkgs/games/vms-empire/default.nix index d0920b0c68d..eb9108c32c9 100644 --- a/nixpkgs/pkgs/games/vms-empire/default.nix +++ b/nixpkgs/pkgs/games/vms-empire/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, ncurses, xmlto }: with stdenv.lib; -stdenv.mkDerivation rec{ +stdenv.mkDerivation rec { pname = "vms-empire"; version = "1.15"; diff --git a/nixpkgs/pkgs/games/wesnoth/default.nix b/nixpkgs/pkgs/games/wesnoth/default.nix index 20ec0a978f5..ce375392041 100644 --- a/nixpkgs/pkgs/games/wesnoth/default.nix +++ b/nixpkgs/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; diff --git a/nixpkgs/pkgs/games/wyvern/cargo-lock.patch b/nixpkgs/pkgs/games/wyvern/cargo-lock.patch new file mode 100644 index 00000000000..89b2517e26d --- /dev/null +++ b/nixpkgs/pkgs/games/wyvern/cargo-lock.patch @@ -0,0 +1,2514 @@ +diff --git a/Cargo.lock b/Cargo.lock +new file mode 100644 +index 0000000..8be5b39 +--- /dev/null ++++ b/Cargo.lock +@@ -0,0 +1,2508 @@ ++# This file is automatically @generated by Cargo. ++# It is not intended for manual editing. ++[[package]] ++name = "adler32" ++version = "1.0.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "aho-corasick" ++version = "0.6.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "aho-corasick" ++version = "0.7.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "ansi_term" ++version = "0.11.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "argon2rs" ++version = "0.2.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "arrayvec" ++version = "0.4.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "atty" ++version = "0.2.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "autocfg" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "backtrace" ++version = "0.3.34" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "backtrace-sys 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "backtrace-sys" ++version = "0.1.31" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "base64" ++version = "0.10.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "bit-set" ++version = "0.5.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "bit-vec" ++version = "0.5.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "bitflags" ++version = "1.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "blake2-rfc" ++version = "0.2.18" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "build_const" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "butlerd" ++version = "0.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "byteorder" ++version = "1.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "bytes" ++version = "0.4.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "bzip2" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "bzip2-sys" ++version = "0.1.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "c2-chacha" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "cc" ++version = "1.0.38" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "cfg-if" ++version = "0.1.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "clap" ++version = "2.33.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "clap-verbosity-flag" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "clicolors-control" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "cloudabi" ++version = "0.0.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "confy" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "directories 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "console" ++version = "0.7.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "constant_time_eq" ++version = "0.1.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "cookie" ++version = "0.11.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "cookie" ++version = "0.12.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "cookie_store" ++version = "0.5.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cookie 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++ "try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "cookie_store" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++ "try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "core-foundation" ++version = "0.6.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "core-foundation-sys" ++version = "0.6.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "crc" ++version = "1.8.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "crc32fast" ++version = "1.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "crossbeam-deque" ++version = "0.6.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "crossbeam-epoch 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "crossbeam-deque" ++version = "0.7.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "crossbeam-epoch 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "crossbeam-epoch" ++version = "0.7.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "memoffset 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "crossbeam-queue" ++version = "0.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "crossbeam-utils" ++version = "0.6.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "curl" ++version = "0.4.22" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "curl-sys 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", ++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "openssl-sys 0.9.48 (registry+https://github.com/rust-lang/crates.io-index)", ++ "schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ++ "socket2 0.3.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "curl-sys" ++version = "0.4.20" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", ++ "openssl-sys 0.9.48 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", ++ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "dialoguer" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "directories" ++version = "0.10.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "dirs" ++version = "1.0.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "dtoa" ++version = "0.4.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "eidolon" ++version = "1.4.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "butlerd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "human-panic 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ++ "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "either" ++version = "1.5.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "encode_unicode" ++version = "0.3.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "encoding_rs" ++version = "0.8.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "env_logger" ++version = "0.5.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "error-chain" ++version = "0.12.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "backtrace 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)", ++ "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "failure" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "backtrace 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)", ++ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "failure_derive" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)", ++ "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "flate2" ++version = "1.0.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "miniz_oxide_c_api 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "fnv" ++version = "1.0.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "foreign-types" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "foreign-types-shared" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "fuchsia-cprng" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "fuchsia-zircon" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "fuchsia-zircon-sys" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "futf" ++version = "0.1.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "mac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "futures" ++version = "0.1.28" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "futures-cpupool" ++version = "0.1.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "getrandom" ++version = "0.1.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gog" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cookie 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "curl 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)", ++ "error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)", ++ "select 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++ "user_agent 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "h2" ++version = "0.1.26" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "string 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "heck" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "html5ever" ++version = "0.23.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "markup5ever 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "http" ++version = "0.1.18" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "http-body" ++version = "0.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "httparse" ++version = "1.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "human-panic" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "backtrace 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)", ++ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "humantime" ++version = "1.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "hyper" ++version = "0.12.33" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "h2 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", ++ "http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-threadpool 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "hyper-tls" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)", ++ "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "idna" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "indexmap" ++version = "1.0.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "indicatif" ++version = "0.10.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "inflate" ++version = "0.4.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "iovec" ++version = "0.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "itoa" ++version = "0.4.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "kernel32-sys" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "lazy_static" ++version = "1.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "libc" ++version = "0.2.60" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "libflate" ++version = "0.1.25" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rle-decode-fast 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "libz-sys" ++version = "1.0.25" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", ++ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "lock_api" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "lock_api" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "log" ++version = "0.4.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "mac" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "markup5ever" ++version = "0.8.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ++ "phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ++ "string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "string_cache_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "matches" ++version = "0.1.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "memchr" ++version = "2.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "memoffset" ++version = "0.5.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "mime" ++version = "0.3.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "mime_guess" ++version = "2.0.0-alpha.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ++ "phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "miniz_oxide" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "miniz_oxide_c_api" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "miniz_oxide 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "mio" ++version = "0.6.19" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", ++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "miow" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "native-tls" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "openssl 0.10.24 (registry+https://github.com/rust-lang/crates.io-index)", ++ "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "openssl-sys 0.9.48 (registry+https://github.com/rust-lang/crates.io-index)", ++ "schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ++ "security-framework 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "net2" ++version = "0.2.33" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "new_debug_unreachable" ++version = "1.0.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "nodrop" ++version = "0.1.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "num-traits" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "num_cpus" ++version = "1.10.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "number_prefix" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "openssl" ++version = "0.10.24" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "openssl-sys 0.9.48 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "openssl-probe" ++version = "0.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "openssl-sys" ++version = "0.9.48" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", ++ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "os_type" ++version = "2.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "owning_ref" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "parking_lot" ++version = "0.7.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "parking_lot" ++version = "0.9.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "parking_lot_core" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "parking_lot_core" ++version = "0.6.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "percent-encoding" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "phf" ++version = "0.7.24" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "phf_codegen" ++version = "0.7.24" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ++ "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "phf_generator" ++version = "0.7.24" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "phf_shared" ++version = "0.7.24" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "pkg-config" ++version = "0.3.15" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "podio" ++version = "0.1.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "ppv-lite86" ++version = "0.2.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "precomputed-hash" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "proc-macro2" ++version = "0.4.30" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "publicsuffix" ++version = "1.5.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "quick-error" ++version = "1.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "quote" ++version = "0.6.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand" ++version = "0.3.23" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand" ++version = "0.4.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand" ++version = "0.5.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand" ++version = "0.6.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "getrandom 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_chacha" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_chacha" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_core" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_core" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "rand_core" ++version = "0.5.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "getrandom 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_hc" ++version = "0.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_hc" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_isaac" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_jitter" ++version = "0.1.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_os" ++version = "0.1.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_pcg" ++version = "0.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_xorshift" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rayon" ++version = "1.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rayon-core 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rayon-core" ++version = "1.5.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rdrand" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "redox_syscall" ++version = "0.1.56" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "redox_users" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "argon2rs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "regex" ++version = "0.2.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "regex" ++version = "1.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex-syntax 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "regex-syntax" ++version = "0.5.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "ucd-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "regex-syntax" ++version = "0.6.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "remove_dir_all" ++version = "0.5.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "reqwest" ++version = "0.9.19" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cookie_store 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)", ++ "flate2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)", ++ "hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-threadpool 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rle-decode-fast" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "rustc-demangle" ++version = "0.1.15" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "rustc_version" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "ryu" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "same-file" ++version = "1.0.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "schannel" ++version = "0.1.15" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "scoped_threadpool" ++version = "0.1.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "scopeguard" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "scopeguard" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "security-framework" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "security-framework-sys" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "select" ++version = "0.4.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "html5ever 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "semver" ++version = "0.9.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "semver-parser" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "serde" ++version = "1.0.98" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "serde_derive" ++version = "1.0.98" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "serde_json" ++version = "1.0.40" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "serde_urlencoded" ++version = "0.5.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "siphasher" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "slab" ++version = "0.4.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "smallvec" ++version = "0.6.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "socket2" ++version = "0.3.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "stable_deref_trait" ++version = "1.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "string" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "string_cache" ++version = "0.7.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ++ "precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "string_cache_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "string_cache_codegen" ++version = "0.4.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ++ "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "string_cache_shared" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "strsim" ++version = "0.8.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "structopt" ++version = "0.2.18" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "structopt-derive" ++version = "0.2.18" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "syn" ++version = "0.15.42" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "synstructure" ++version = "0.10.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "take_mut" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "tempdir" ++version = "0.3.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tempfile" ++version = "2.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tempfile" ++version = "3.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tendril" ++version = "0.4.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "futf 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "utf-8 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "termcolor" ++version = "0.3.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "wincolor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "termcolor" ++version = "1.0.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "termios" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "textwrap" ++version = "0.11.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "thread_local" ++version = "0.3.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "time" ++version = "0.1.42" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tokio" ++version = "0.1.22" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-threadpool 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tokio-buf" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tokio-current-thread" ++version = "0.1.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tokio-executor" ++version = "0.1.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tokio-io" ++version = "0.1.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tokio-reactor" ++version = "0.1.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-sync 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tokio-sync" ++version = "0.1.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tokio-tcp" ++version = "0.1.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tokio-threadpool" ++version = "0.1.15" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tokio-timer" ++version = "0.2.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "toml" ++version = "0.4.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "try-lock" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "try_from" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "ucd-util" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "unicase" ++version = "1.4.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "unicase" ++version = "2.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "unicode-bidi" ++version = "0.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "unicode-normalization" ++version = "0.1.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "unicode-segmentation" ++version = "1.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "unicode-width" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "unicode-xid" ++version = "0.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "url" ++version = "1.7.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "user_agent" ++version = "0.6.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cookie 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cookie_store 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)", ++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "utf-8" ++version = "0.7.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "utf8-ranges" ++version = "1.0.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "uuid" ++version = "0.6.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "uuid" ++version = "0.7.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "vcpkg" ++version = "0.2.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "vec_map" ++version = "0.8.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "version_check" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "walkdir" ++version = "2.2.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "want" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "winapi" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi" ++version = "0.3.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "winapi-build" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi-i686-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi-util" ++version = "0.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "winapi-x86_64-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "wincolor" ++version = "0.1.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "wincolor" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "winreg" ++version = "0.6.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "ws2_32-sys" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "wyvern" ++version = "1.4.1" ++dependencies = [ ++ "clap-verbosity-flag 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "confy 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "curl 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)", ++ "dialoguer 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "eidolon 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gog 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "human-panic 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "indicatif 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "inflate 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rayon 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ++ "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "zip 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "zip" ++version = "0.5.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libflate 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", ++ "podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[metadata] ++"checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" ++"checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5" ++"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d" ++"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" ++"checksum argon2rs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3f67b0b6a86dae6e67ff4ca2b6201396074996379fba2b92ff649126f37cb392" ++"checksum arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba" ++"checksum atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90" ++"checksum autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "22130e92352b948e7e82a49cdb0aa94f2211761117f29e052dd397c1ac33542b" ++"checksum backtrace 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)" = "b5164d292487f037ece34ec0de2fcede2faa162f085dd96d2385ab81b12765ba" ++"checksum backtrace-sys 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)" = "82a830b4ef2d1124a711c71d263c5abdc710ef8e907bd508c88be475cebc422b" ++"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" ++"checksum bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80" ++"checksum bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb" ++"checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd" ++"checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" ++"checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" ++"checksum butlerd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "095899eb6b69e0a1c98215e51a44c67b8e3c902ebb9440afaafe2eb45e650a09" ++"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" ++"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" ++"checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b" ++"checksum bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6584aa36f5ad4c9247f5323b0a42f37802b37a836f0ad87084d7a33961abe25f" ++"checksum c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101" ++"checksum cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)" = "ce400c638d48ee0e9ab75aef7997609ec57367ccfe1463f21bf53c3eca67bf46" ++"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" ++"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" ++"checksum clap-verbosity-flag 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bda14f5323b2b747f52908c5b7b8af7790784088bc7c2957a11695e39ad476dc" ++"checksum clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "73abfd4c73d003a674ce5d2933fca6ce6c42480ea84a5ffe0a2dc39ed56300f9" ++"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" ++"checksum confy 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4b1400cd0dae7f27d2c7ced9492e1398d2e2df614570092a4936c73b416dedea" ++"checksum console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)" = "8ca57c2c14b8a2bf3105bc9d15574aad80babf6a9c44b1058034cdf8bd169628" ++"checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" ++"checksum cookie 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "99be24cfcf40d56ed37fd11c2123be833959bbc5bddecb46e1c2e442e15fa3e0" ++"checksum cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5" ++"checksum cookie_store 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b0d2f2ecb21dce00e2453268370312978af9b8024020c7a37ae2cc6dbbe64685" ++"checksum cookie_store 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46750b3f362965f197996c4448e4a0935e791bf7d6631bfce9ee0af3d24c919c" ++"checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" ++"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" ++"checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" ++"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" ++"checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" ++"checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" ++"checksum crossbeam-epoch 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fedcd6772e37f3da2a9af9bf12ebe046c0dfe657992377b4df982a2b54cd37a9" ++"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" ++"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" ++"checksum curl 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "f8ed9a22aa8c4e49ac0c896279ef532a43a7df2f54fcd19fa36960de029f965f" ++"checksum curl-sys 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "5e90ae10f635645cba9cad1023535f54915a95c58c44751c6ed70dbaeb17a408" ++"checksum dialoguer 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "116f66c4e7b19af0d52857aa4ff710cc3b4781d9c16616e31540bc55ec57ba8c" ++"checksum directories 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc2561db021b6f1321d0f16b67ed28ce843ef4610dfaa432e3ffa2e8a3050ebf" ++"checksum dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" ++"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e" ++"checksum eidolon 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8a501eef266fdb28e1414b6104ca799a216bce6dc4ae1217ad0f40d591351671" ++"checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b" ++"checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd" ++"checksum encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed" ++"checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" ++"checksum error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9" ++"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" ++"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" ++"checksum flate2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "550934ad4808d5d39365e5d61727309bf18b3b02c6c56b729cb92e7dd84bc3d8" ++"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" ++"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" ++"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" ++"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" ++"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" ++"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" ++"checksum futf 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b" ++"checksum futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "45dc39533a6cae6da2b56da48edae506bb767ec07370f86f70fc062e9d435869" ++"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" ++"checksum getrandom 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8e190892c840661957ba9f32dacfb3eb405e657f9f9f60485605f0bb37d6f8" ++"checksum gog 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "19bfb6c45ea1fba86f5880b4f239ef8034230387d90a0dfea70e094caeabf0be" ++"checksum h2 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)" = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462" ++"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" ++"checksum html5ever 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ce65ac8028cf5a287a7dbf6c4e0a6cf2dcf022ed5b167a81bae66ebf599a8b7" ++"checksum http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "372bcb56f939e449117fb0869c2e8fd8753a8223d92a172c6e808cf123a5b6e4" ++"checksum http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" ++"checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" ++"checksum human-panic 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "21638c5955a6daf3ecc42cae702335fc37a72a4abcc6959ce457b31a7d43bbdd" ++"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" ++"checksum hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)" = "7cb44cbce9d8ee4fb36e4c0ad7b794ac44ebaad924b9c8291a63215bb44c2c8f" ++"checksum hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f" ++"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" ++"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" ++"checksum indicatif 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "40ecd1e2ee08e6c255ce890f5a99d17000850e664e7acf119fb03b25b0575bfe" ++"checksum inflate 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff" ++"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" ++"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f" ++"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" ++"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" ++"checksum libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)" = "d44e80633f007889c7eff624b709ab43c92d708caad982295768a7b13ca3b5eb" ++"checksum libflate 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "90c6f86f4b0caa347206f916f8b687b51d77c6ef8ff18d52dd007491fd580529" ++"checksum libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" ++"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" ++"checksum lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f8912e782533a93a167888781b836336a6ca5da6175c05944c86cf28c31104dc" ++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" ++"checksum mac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" ++"checksum markup5ever 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f1af46a727284117e09780d05038b1ce6fc9c76cc6df183c3dae5a8955a25e21" ++"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" ++"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e" ++"checksum memoffset 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ce6075db033bbbb7ee5a0bbd3a3186bbae616f57fb001c485c7ff77955f8177f" ++"checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425" ++"checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed" ++"checksum miniz_oxide 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c061edee74a88eb35d876ce88b94d77a0448a201de111c244b70d047f5820516" ++"checksum miniz_oxide_c_api 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6c675792957b0d19933816c4e1d56663c341dd9bfa31cb2140ff2267c1d8ecf4" ++"checksum mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)" = "83f51996a3ed004ef184e16818edc51fadffe8e7ca68be67f9dee67d84d0ff23" ++"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" ++"checksum native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e" ++"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" ++"checksum new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f40f005c60db6e03bae699e414c58bf9aa7ea02a2d0b9bfbcf19286cc4c82b30" ++"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" ++"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32" ++"checksum num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273" ++"checksum number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dbf9993e59c894e3c08aa1c2712914e9e6bf1fcbfc6bef283e2183df345a4fee" ++"checksum openssl 0.10.24 (registry+https://github.com/rust-lang/crates.io-index)" = "8152bb5a9b5b721538462336e3bef9a539f892715e5037fda0f984577311af15" ++"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" ++"checksum openssl-sys 0.9.48 (registry+https://github.com/rust-lang/crates.io-index)" = "b5ba300217253bcc5dc68bed23d782affa45000193866e025329aa8a7a9f05b8" ++"checksum os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb" ++"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" ++"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" ++"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" ++"checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" ++"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" ++"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" ++"checksum phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" ++"checksum phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" ++"checksum phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" ++"checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" ++"checksum pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c1d2cfa5a714db3b5f24f0915e74fcdf91d09d496ba61329705dda7774d2af" ++"checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd" ++"checksum ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b" ++"checksum precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" ++"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" ++"checksum publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5afecba86dcf1e4fd610246f89899d1924fe12e1e89f555eb7c7f710f3c5ad1d" ++"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" ++"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" ++"checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" ++"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" ++"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" ++"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" ++"checksum rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d47eab0e83d9693d40f825f86948aa16eff6750ead4bdffc4ab95b8b3a7f052c" ++"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" ++"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853" ++"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" ++"checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" ++"checksum rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "615e683324e75af5d43d8f7a39ffe3ee4a9dc42c5c701167a71dc59c3a493aca" ++"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" ++"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" ++"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" ++"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" ++"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" ++"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" ++"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" ++"checksum rayon 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a4b0186e22767d5b9738a05eab7c6ac90b15db17e5b5f9bd87976dd7d89a10a4" ++"checksum rayon-core 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ebbe0df8435ac0c397d467b6cad6d25543d06e8a019ef3f6af3c384597515bd2" ++"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" ++"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" ++"checksum redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe5204c3a17e97dde73f285d49be585df59ed84b50a872baf416e73b62c3828" ++"checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" ++"checksum regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88c3d9193984285d544df4a30c23a4e62ead42edf70a4452ceb76dac1ce05c26" ++"checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" ++"checksum regex-syntax 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b143cceb2ca5e56d5671988ef8b15615733e7ee16cd348e064333b251b89343f" ++"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" ++"checksum reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)" = "1d0777154c2c3eb54f5c480db01de845652d941e47191277cc673634c3853939" ++"checksum rle-decode-fast 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac" ++"checksum rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f4dccf6f4891ebcc0c39f9b6eb1a83b9bf5d747cb439ec6fba4f3b977038af" ++"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" ++"checksum ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997" ++"checksum same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421" ++"checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339" ++"checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" ++"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" ++"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d" ++"checksum security-framework 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eee63d0f4a9ec776eeb30e220f0bc1e092c3ad744b2a379e3993070364d3adc2" ++"checksum security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9636f8989cbf61385ae4824b98c1aaa54c994d7d8b41f11c601ed799f0549a56" ++"checksum select 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ac645958c62108d11f90f8d34e4dc2799c838fc995ed4c2075867a2a8d5be76b" ++"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" ++"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" ++"checksum serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)" = "7fe5626ac617da2f2d9c48af5515a21d5a480dbd151e01bb1c355e26a3e68113" ++"checksum serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)" = "01e69e1b8a631f245467ee275b8c757b818653c6d704cdbcaeb56b56767b529c" ++"checksum serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)" = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704" ++"checksum serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a" ++"checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" ++"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" ++"checksum smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7" ++"checksum socket2 0.3.10 (registry+https://github.com/rust-lang/crates.io-index)" = "df028e0e632c2a1823d920ad74895e7f9128e6438cbc4bc6fd1f180e644767b9" ++"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" ++"checksum string 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d" ++"checksum string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "25d70109977172b127fe834e5449e5ab1740b9ba49fa18a2020f509174f25423" ++"checksum string_cache_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eea1eee654ef80933142157fdad9dd8bc43cf7c74e999e369263496f04ff4da" ++"checksum string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" ++"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" ++"checksum structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7" ++"checksum structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107" ++"checksum syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)" = "eadc09306ca51a40555dd6fc2b415538e9e18bc9f870e47b1a524a79fe2dcf5e" ++"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" ++"checksum take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" ++"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" ++"checksum tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "11ce2fe9db64b842314052e2421ac61a73ce41b898dc8e3750398b219c5fc1e0" ++"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" ++"checksum tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "707feda9f2582d5d680d733e38755547a3e8fb471e7ba11452ecfd9ce93a5d3b" ++"checksum termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "adc4587ead41bf016f11af03e55a624c06568b5a19db4e90fde573d805074f83" ++"checksum termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e" ++"checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625" ++"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" ++"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" ++"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" ++"checksum tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" ++"checksum tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" ++"checksum tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443" ++"checksum tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f27ee0e6db01c5f0b2973824547ce7e637b2ed79b891a9677b0de9bd532b6ac" ++"checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926" ++"checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce" ++"checksum tokio-sync 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2162248ff317e2bc713b261f242b69dbb838b85248ed20bb21df56d60ea4cae7" ++"checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" ++"checksum tokio-threadpool 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "90ca01319dea1e376a001e8dc192d42ebde6dd532532a5bad988ac37db365b19" ++"checksum tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "f2106812d500ed25a4f38235b9cae8f78a09edf43203e16e59c3b769a342a60e" ++"checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" ++"checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" ++"checksum try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b" ++"checksum ucd-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa9b3b49edd3468c0e6565d85783f51af95212b6fa3986a5500954f00b460874" ++"checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" ++"checksum unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a84e5511b2a947f3ae965dcb29b13b7b1691b6e7332cf5dbc1744138d5acb7f6" ++"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" ++"checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426" ++"checksum unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1967f4cdfc355b37fd76d2a954fb2ed3871034eb4f26d60537d88795cfc332a9" ++"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" ++"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" ++"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" ++"checksum user_agent 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "970a778e2284bd68e55ca4e93b858da333cd85c3d5d8b4eab2c6e729cd6f47c4" ++"checksum utf-8 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7" ++"checksum utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba" ++"checksum uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363" ++"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" ++"checksum vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "33dd455d0f96e90a75803cfeb7f948768c08d70a6de9a8d2362461935698bf95" ++"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" ++"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" ++"checksum walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e" ++"checksum want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230" ++"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" ++"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" ++"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" ++"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" ++"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" ++"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" ++"checksum wincolor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eeb06499a3a4d44302791052df005d5232b927ed1a9658146d842165c4de7767" ++"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" ++"checksum winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" ++"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" ++"checksum zip 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c18fc320faf909036e46ac785ea827f72e485304877faf1a3a39538d3714dbc3" diff --git a/nixpkgs/pkgs/games/wyvern/default.nix b/nixpkgs/pkgs/games/wyvern/default.nix new file mode 100644 index 00000000000..4723a6c52fa --- /dev/null +++ b/nixpkgs/pkgs/games/wyvern/default.nix @@ -0,0 +1,36 @@ +{ stdenv +, fetchgit +, rustPlatform +, unzip +, rsync +, innoextract +, curl +, cmake +, pkgconfig +, openssl +}: + +rustPlatform.buildRustPackage rec { + pname = "wyvern"; + version = "1.4.1"; + + src = fetchgit { + url = "https://git.sr.ht/~nicohman/wyvern"; + rev = "${version}"; + sha256 = "1sl3yhash1527amc8rs4374fd7jbgnkyy7qpw94ms2gs80sdv3s5"; + }; + cargoPatches = [ ./cargo-lock.patch ]; + + cargoSha256 = "sha256:1nd5qla3p1jrssg5fqal8m3jcbxax0wsfc8cp97jdrpqlcgqfmrx"; + + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ openssl ]; + + meta = with stdenv.lib; { + description = "A simple CLI client for installing and maintaining linux GOG games"; + homepage = "https://git.sr.ht/~nicohman/wyvern"; + license = licenses.gpl3; + maintainers = with maintainers;[ _0x4A6F ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/games/xcowsay/default.nix b/nixpkgs/pkgs/games/xcowsay/default.nix new file mode 100644 index 00000000000..dd95bf1e5a1 --- /dev/null +++ b/nixpkgs/pkgs/games/xcowsay/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, makeWrapper, pkg-config +, dbus, dbus-glib, gtk3, gdk-pixbuf, librsvg +, fortune +}: + +stdenv.mkDerivation rec { + pname = "xcowsay"; + version = "1.5"; + + src = fetchurl { + url = "http://www.nickg.me.uk/files/xcowsay-${version}.tar.gz"; + sha256 = "0pyaa062z1ag26dhkm1yzp2hivnlmhlpqn5xg7mx9r1m652mm91y"; + }; + + buildInputs = [ + dbus + dbus-glib + gtk3 + gdk-pixbuf # loading cow images + librsvg # dreaming SVG images + ]; + nativeBuildInputs = [ makeWrapper pkg-config ]; + + configureFlags = [ "--enable-dbus" ]; + + postInstall = '' + for tool in xcowdream xcowsay xcowthink xcowfortune; do + wrapProgram $out/bin/$tool \ + --prefix PATH : $out/bin:${fortune}/bin + done + ''; + + meta = with stdenv.lib; { + homepage = "http://www.doof.me.uk/xcowsay"; + description = + "A program based on cowsay that displays a cute cow and message on your desktop"; + license = licenses.gpl3; + maintainers = with maintainers; [ das_j ]; + }; +} diff --git a/nixpkgs/pkgs/games/zandronum/default.nix b/nixpkgs/pkgs/games/zandronum/default.nix index e7200ff22e9..bdafff99243 100644 --- a/nixpkgs/pkgs/games/zandronum/default.nix +++ b/nixpkgs/pkgs/games/zandronum/default.nix @@ -14,7 +14,7 @@ in stdenv.mkDerivation rec { version = "3.0.1"; src = fetchhg { - url = "https://bitbucket.org/Torr_Samaho/zandronum-stable"; + url = "https://hg.osdn.net/view/zandronum/zandronum-stable"; rev = "ZA_${version}"; sha256 = "16v5b6wfrmabs3ky6isbfhlrqdjrr1pvfxlxwk0im02kcpxxw9qw"; }; |