diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-08-04 10:43:07 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-08-04 10:43:07 +0000 |
commit | 62614cbef7da005c1eda8c9400160f6bcd6546b8 (patch) | |
tree | c2630f69080637987b68acb1ee8676d2681fe304 /pkgs/games | |
parent | d9c82ed3044c72cecf01c6ea042489d30914577c (diff) | |
parent | e24069138dfec3ef94f211f1da005bb5395adc11 (diff) | |
download | nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.gz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.bz2 nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.lz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.xz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.zst nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.zip |
Merge branch 'nixpkgs-update' into master
Diffstat (limited to 'pkgs/games')
467 files changed, 12449 insertions, 3713 deletions
diff --git a/pkgs/games/0ad/data.nix b/pkgs/games/0ad/data.nix index eeedae92440..9533af21b15 100644 --- a/pkgs/games/0ad/data.nix +++ b/pkgs/games/0ad/data.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, zeroad-unwrapped }: +{ lib, stdenv, fetchurl, zeroad-unwrapped }: stdenv.mkDerivation rec { pname = "0ad-data"; @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://releases.wildfiregames.com/0ad-${version}-alpha-unix-data.tar.xz"; - sha256 = "04x7729hk6zw1xj3n4s4lvaviijsnbjf5rhzvjxlr5fygvg4l6z1"; + sha256 = "0b53jzl64i49rk3n3c3x0hibwbl7vih2xym8jq5s56klg61qdxa1"; }; installPhase = '' @@ -15,10 +15,11 @@ stdenv.mkDerivation rec { cp -r binaries/data $out/share/0ad/ ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A free, open-source game of ancient warfare -- data files"; homepage = "https://play0ad.com/"; license = licenses.cc-by-sa-30; + maintainers = with maintainers; [ chvp ]; platforms = platforms.linux; hydraPlatforms = []; }; diff --git a/pkgs/games/0ad/default.nix b/pkgs/games/0ad/default.nix index d53942766bb..860db7c6d5a 100644 --- a/pkgs/games/0ad/default.nix +++ b/pkgs/games/0ad/default.nix @@ -1,14 +1,14 @@ -{ wxGTK, newScope }: - +{ wxGTK, stdenv, newScope }: let callPackage = newScope self; self = { - zeroad-unwrapped = callPackage ./game.nix { inherit wxGTK; }; + zeroad-unwrapped = callPackage ./game.nix { inherit wxGTK stdenv; }; - zeroad-data = callPackage ./data.nix { }; + zeroad-data = callPackage ./data.nix { inherit stdenv; }; zeroad = callPackage ./wrapper.nix { }; }; -in self +in +self diff --git a/pkgs/games/0ad/game.nix b/pkgs/games/0ad/game.nix index 4c9ad706887..feaf4347329 100644 --- a/pkgs/games/0ad/game.nix +++ b/pkgs/games/0ad/game.nix @@ -1,29 +1,45 @@ -{ stdenv, lib, perl, fetchurl, python2 -, pkgconfig, spidermonkey_38, boost, icu, libxml2, libpng, libsodium +{ stdenv, lib, perl, fetchurl, python2, fmt, libidn +, pkg-config, spidermonkey_78, boost, icu, libxml2, libpng, libsodium , libjpeg, zlib, curl, libogg, libvorbis, enet, miniupnpc , openal, libGLU, libGL, xorgproto, libX11, libXcursor, nspr, SDL2 , gloox, nvidia-texture-tools -, withEditor ? true, wxGTK ? null +, withEditor ? true, wxGTK }: -assert withEditor -> wxGTK != null; - +# You can find more instructions on how to build 0ad here: +# https://trac.wildfiregames.com/wiki/BuildInstructions + +let + # the game requires a special version 78.6.0 of spidermonkey, otherwise + # we get compilation errors. We override the src attribute of spidermonkey_78 + # in order to reuse that declartion, while giving it a different source input. + spidermonkey_78_6 = spidermonkey_78.overrideAttrs(old: rec { + version = "78.6.0"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"; + sha256 = "0lyg65v380j8i2lrylwz8a5ya80822l8vcnlx3dfqpd3s6zzjsay"; + }; + patches = (old.patches or []) ++ [ + ./spidermonkey-cargo-toml.patch + ]; + }); +in stdenv.mkDerivation rec { pname = "0ad"; - version = "0.0.23b"; + version = "0.0.24b"; src = fetchurl { url = "http://releases.wildfiregames.com/0ad-${version}-alpha-unix-build.tar.xz"; - sha256 = "0draa53xg69i5qhqym85658m45xhwkbiimaldj4sr3703rjgggq1"; + sha256 = "1a1py45hkh2cswi09vbf9chikgxdv9xplsmg6sv6xhdznv4j6p1j"; }; - nativeBuildInputs = [ python2 perl pkgconfig ]; + nativeBuildInputs = [ python2 perl pkg-config ]; buildInputs = [ - spidermonkey_38 boost icu libxml2 libpng libjpeg - zlib curl libogg libvorbis enet miniupnpc openal + spidermonkey_78_6 boost icu libxml2 libpng libjpeg + zlib curl libogg libvorbis enet miniupnpc openal libidn libGLU libGL xorgproto libX11 libXcursor nspr SDL2 gloox - nvidia-texture-tools libsodium + nvidia-texture-tools libsodium fmt ] ++ lib.optional withEditor wxGTK; NIX_CFLAGS_COMPILE = toString [ @@ -31,32 +47,20 @@ stdenv.mkDerivation rec { "-I${libX11.dev}/include/X11" "-I${libXcursor.dev}/include/X11" "-I${SDL2}/include/SDL2" + "-I${fmt.dev}/include" ]; - patches = [ - ./rootdir_env.patch - # Fixes build with spidermonkey-38.8.0, includes the minor version check: - # https://src.fedoraproject.org/rpms/0ad/c/26dc1657f6e3c0ad9f1180ca38cd79b933ef0c8b - (fetchurl { - url = "https://src.fedoraproject.org/rpms/0ad/raw/26dc1657f6e3c0ad9f1180ca38cd79b933ef0c8b/f/0ad-mozjs-incompatible.patch"; - sha256 = "1rzpaalcrzihsgvlk3nqd87n2kxjldlwvb3qp5fcd5ffzr6k90wa"; - }) - ]; + patches = [ ./rootdir_env.patch ]; configurePhase = '' # Delete shipped libraries which we don't need. rm -rf libraries/source/{enet,miniupnpc,nvtt,spidermonkey} - # Workaround invalid pkgconfig name for mozjs - mkdir pkgconfig - ln -s ${spidermonkey_38}/lib/pkgconfig/* pkgconfig/mozjs-38.pc - PKG_CONFIG_PATH="$PWD/pkgconfig:$PKG_CONFIG_PATH" - # Update Makefiles pushd build/workspaces ./update-workspaces.sh \ --with-system-nvtt \ - --with-system-mozjs38 \ + --with-system-mozjs \ ${lib.optionalString withEditor "--enable-atlas"} \ --bindir="$out"/bin \ --libdir="$out"/lib/0ad \ @@ -90,13 +94,14 @@ stdenv.mkDerivation rec { install -D build/resources/0ad.desktop $out/share/applications/0ad.desktop ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A free, open-source game of ancient warfare"; homepage = "https://play0ad.com/"; license = with licenses; [ gpl2 lgpl21 mit cc-by-sa-30 licenses.zlib # otherwise masked by pkgs.zlib ]; + maintainers = with maintainers; [ chvp ]; platforms = subtractLists platforms.i686 platforms.linux; }; } diff --git a/pkgs/games/0ad/rootdir_env.patch b/pkgs/games/0ad/rootdir_env.patch index c001473e510..95463c7e2df 100644 --- a/pkgs/games/0ad/rootdir_env.patch +++ b/pkgs/games/0ad/rootdir_env.patch @@ -1,7 +1,8 @@ -diff -ru3 0ad-0.0.20-alpha/source/ps/GameSetup/Paths.cpp 0ad-0.0.20-alpha-new/source/ps/GameSetup/Paths.cpp ---- 0ad-0.0.20-alpha/source/ps/GameSetup/Paths.cpp 2015-02-14 04:45:13.000000000 +0300 -+++ 0ad-0.0.20-alpha-new/source/ps/GameSetup/Paths.cpp 2016-11-03 16:23:47.241514876 +0300 -@@ -155,32 +155,8 @@ +diff --git a/source/ps/GameSetup/Paths.cpp b/source/ps/GameSetup/Paths.cpp +index 474364e..bf084b4 100644 +--- a/source/ps/GameSetup/Paths.cpp ++++ b/source/ps/GameSetup/Paths.cpp +@@ -155,32 +155,8 @@ Paths::Paths(const CmdLineArgs& args) /*static*/ OsPath Paths::Root(const OsPath& argv0) { @@ -31,8 +32,8 @@ diff -ru3 0ad-0.0.20-alpha/source/ps/GameSetup/Paths.cpp 0ad-0.0.20-alpha-new/so - return pathname; - -#endif -+ UNUSED2(argv0); -+ return getenv("ZEROAD_ROOTDIR"); ++ UNUSED2(argv0); ++ return OsPath(getenv("ZEROAD_ROOTDIR")); } /*static*/ OsPath Paths::RootData(const OsPath& argv0) diff --git a/pkgs/games/0ad/spidermonkey-cargo-toml.patch b/pkgs/games/0ad/spidermonkey-cargo-toml.patch new file mode 100644 index 00000000000..4cb8c3735db --- /dev/null +++ b/pkgs/games/0ad/spidermonkey-cargo-toml.patch @@ -0,0 +1,15 @@ +diff --git a/Cargo.toml b/Cargo.toml +index 6f6199ab26..c3f92db9d8 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -68,8 +68,8 @@ panic = "abort" + libudev-sys = { path = "dom/webauthn/libudev-sys" } + packed_simd = { git = "https://github.com/hsivonen/packed_simd", rev="3541e3818fdc7c2a24f87e3459151a4ce955a67a" } + rlbox_lucet_sandbox = { git = "https://github.com/PLSysSec/rlbox_lucet_sandbox/", rev="d510da5999a744c563b0acd18056069d1698273f" } +-nix = { git = "https://github.com/shravanrn/nix/", branch = "r0.13.1", rev="4af6c367603869a30fddb5ffb0aba2b9477ba92e" } +-spirv_cross = { git = "https://github.com/kvark/spirv_cross", branch = "wgpu3", rev = "20191ad2f370afd6d247edcb9ff9da32d3bedb9c" } ++nix = { git = "https://github.com/shravanrn/nix/", branch = "r0.13.1" } ++spirv_cross = { git = "https://github.com/kvark/spirv_cross", branch = "wgpu3" } + # failure's backtrace feature might break our builds, see bug 1608157. + failure = { git = "https://github.com/badboy/failure", rev = "64af847bc5fdcb6d2438bec8a6030812a80519a5" } + failure_derive = { git = "https://github.com/badboy/failure", rev = "64af847bc5fdcb6d2438bec8a6030812a80519a5" } diff --git a/pkgs/games/0ad/wrapper.nix b/pkgs/games/0ad/wrapper.nix index ca7c8e16e3c..ede151307d5 100644 --- a/pkgs/games/0ad/wrapper.nix +++ b/pkgs/games/0ad/wrapper.nix @@ -6,7 +6,7 @@ buildEnv { name = "zeroad-${zeroad-unwrapped.version}"; inherit (zeroad-unwrapped) meta; - buildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper ]; paths = [ zeroad-unwrapped zeroad-data ]; diff --git a/pkgs/games/0verkill/default.nix b/pkgs/games/0verkill/default.nix new file mode 100644 index 00000000000..fa654832e2e --- /dev/null +++ b/pkgs/games/0verkill/default.nix @@ -0,0 +1,39 @@ +{ lib +, gccStdenv +, fetchFromGitHub +, autoreconfHook +, xorgproto +, libX11 +, libXpm +}: + +gccStdenv.mkDerivation rec { + pname = "0verkill"; + version = "unstable-2011-01-13"; + + src = fetchFromGitHub { + owner = "hackndev"; + repo = pname; + rev = "522f11a3e40670bbf85e0fada285141448167968"; + sha256 = "WO7PN192HhcDl6iHIbVbH7MVMi1Tl2KyQbDa9DWRO6M="; + }; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ libX11 xorgproto libXpm ]; + + configureFlags = [ "--with-x" ]; + + preAutoreconf = '' + autoupdate + ''; + + hardeningDisable = [ "all" ]; # Someday the upstream will update the code... + + meta = with lib; { + homepage = "https://github.com/hackndev/0verkill"; + description = "ASCII-ART bloody 2D action deathmatch-like game"; + license = with licenses; gpl2Only; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = with platforms; unix; + }; +} diff --git a/pkgs/games/1oom/default.nix b/pkgs/games/1oom/default.nix new file mode 100644 index 00000000000..54bfb4d0b32 --- /dev/null +++ b/pkgs/games/1oom/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitLab, autoreconfHook, libsamplerate, SDL2, SDL2_mixer, readline }: + +stdenv.mkDerivation rec { + pname = "1oom"; + version = "1.0"; + + src = fetchFromGitLab { + owner = "KilgoreTroutMaskReplicant"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-+HwSykSyAGHtITVOu4nIG87kWwVxGyFXb/NRSjhWlvs="; + }; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ libsamplerate SDL2 SDL2_mixer readline ]; + + outputs = [ "out" "doc" ]; + + postInstall = '' + install -d $doc/share/doc/${pname} + install -t $doc/share/doc/${pname} \ + HACKING NEWS PHILOSOPHY README doc/*.txt + ''; + + meta = with lib; { + homepage = "https://kilgoretroutmaskreplicant.gitlab.io/plain-html/"; + description = "Master of Orion (1993) game engine recreation"; + license = licenses.gpl2Only; + platforms = platforms.linux; + maintainers = [ maintainers.AndersonTorres ]; + }; +} diff --git a/pkgs/games/2048-in-terminal/default.nix b/pkgs/games/2048-in-terminal/default.nix index 446252062fa..8ac72db65f5 100644 --- a/pkgs/games/2048-in-terminal/default.nix +++ b/pkgs/games/2048-in-terminal/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, ncurses }: +{ lib, stdenv, fetchFromGitHub, ncurses }: stdenv.mkDerivation rec { pname = "2048-in-terminal"; @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { ''; installFlags = [ "DESTDIR=$(out)/bin" ]; - meta = with stdenv.lib; { + meta = with lib; { inherit (src.meta) homepage; description = "Animated console version of the 2048 game"; license = licenses.mit; diff --git a/pkgs/games/20kly/default.nix b/pkgs/games/20kly/default.nix index 8c81b8b2360..0cc61367e28 100644 --- a/pkgs/games/20kly/default.nix +++ b/pkgs/games/20kly/default.nix @@ -1,16 +1,19 @@ -{ stdenv -, fetchurl -, python }: +{ lib +, fetchFromGitHub +, python3Packages +}: -python.pkgs.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "20kly"; - version = "1.4"; + version = "1.5.0"; + format = "other"; - disabled = !(python.isPy2 or false); - src = fetchurl { - url = "http://jwhitham.org.uk/20kly/lightyears-${version}.tar.bz2"; - sha256 = "13h73cmfjqkipffimfc4iv0hf89if490ng6vd6xf3wcalpgaim5d"; + src = fetchFromGitHub { + owner = "20kly"; + repo = "20kly"; + rev = "v${version}"; + sha256 = "1zxsxg49a02k7zidx3kgk2maa0vv0n1f9wrl5vch07sq3ghvpphx"; }; patchPhase = '' @@ -20,21 +23,24 @@ python.pkgs.buildPythonApplication rec { "LIGHTYEARS_DIR = \"$out/share\"" ''; - propagatedBuildInputs = with python.pkgs; [ pygame ]; + propagatedBuildInputs = with python3Packages; [ + pygame + ]; - buildPhase = "python -O -m compileall ."; + buildPhase = '' + python -O -m compileall . + ''; installPhase = '' mkdir -p "$out/share" - cp -r audio code data lightyears "$out/share" + cp -r data lib20k lightyears "$out/share" install -Dm755 lightyears "$out/bin/lightyears" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A steampunk-themed strategy game where you have to manage a steam supply network"; homepage = "http://jwhitham.org.uk/20kly/"; - license = licenses.gpl2; + license = licenses.gpl2Only; maintainers = with maintainers; [ fgaz ]; }; } - diff --git a/pkgs/games/90secondportraits/default.nix b/pkgs/games/90secondportraits/default.nix index 334a7f873bb..a5b504995f7 100644 --- a/pkgs/games/90secondportraits/default.nix +++ b/pkgs/games/90secondportraits/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }: +{ lib, stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }: let pname = "90secondportraits"; @@ -48,7 +48,7 @@ stdenv.mkDerivation { ln -s ${desktopItem}/share/applications/* $out/share/applications/ ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A silly speed painting game"; maintainers = with maintainers; [ leenaars ]; platforms = platforms.linux; diff --git a/pkgs/games/abbaye-des-morts/default.nix b/pkgs/games/abbaye-des-morts/default.nix index 103b67e99ed..3091c8feff2 100644 --- a/pkgs/games/abbaye-des-morts/default.nix +++ b/pkgs/games/abbaye-des-morts/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, SDL2, SDL2_image, SDL2_mixer }: +{ lib, stdenv, fetchFromGitHub, SDL2, SDL2_image, SDL2_mixer }: stdenv.mkDerivation rec { pname = "abbaye-des-morts"; @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=$(out)" "DESTDIR=" ]; - preBuild = stdenv.lib.optionalString stdenv.cc.isClang + preBuild = lib.optionalString stdenv.cc.isClang '' substituteInPlace Makefile \ --replace -fpredictive-commoning "" @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { mkdir -p $out/share/applications ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://locomalito.com/abbaye_des_morts.php"; description = "A retro arcade video game"; license = licenses.gpl3; diff --git a/pkgs/games/abuse/abuse.sh b/pkgs/games/abuse/abuse.sh new file mode 100644 index 00000000000..de837d27181 --- /dev/null +++ b/pkgs/games/abuse/abuse.sh @@ -0,0 +1,18 @@ +#! @shell@ + +if grep datadir ~/.abuse/abuserc &>/dev/null; then + if [ ! -d "$(grep datadir ~/.abuse/abuserc | cut -d= -f2)" ]; then + echo "Warning: ~/.abuse/abuserc references a datadir which is not existent." >&2 + echo "Try removing ~/.abuse/abuserc, else abuse will most likely not run." >&2 + echo >&2 + # This can happen if the build hash of abuse changes and the older version + # is garbage-collected. The correct path of the datadir is compiled into + # the binary, but unfortunately abuse writes out the path into abuserc on + # first start. This entry may later become stale. + fi +fi + +# The timidity bundled into SDL_mixer looks in . and in several global places +# like /etc for its configuration file. +cd @out@/etc +exec @out@/bin/.abuse-bin "$@" diff --git a/pkgs/games/abuse/default.nix b/pkgs/games/abuse/default.nix new file mode 100644 index 00000000000..2e863022a68 --- /dev/null +++ b/pkgs/games/abuse/default.nix @@ -0,0 +1,54 @@ +{ lib, stdenv, fetchurl, makeDesktopItem, copyDesktopItems, SDL, SDL_mixer, freepats }: + +stdenv.mkDerivation rec { + pname = "abuse"; + version = "0.8"; + + src = fetchurl { + url = "http://abuse.zoy.org/raw-attachment/wiki/download/${pname}-${version}.tar.gz"; + sha256 = "0104db5fd2695c9518583783f7aaa7e5c0355e27c5a803840a05aef97f9d3488"; + }; + + configureFlags = [ + "--with-x" + "--with-assetdir=$(out)/orig" + # The "--enable-debug" is to work around a segfault on start, see https://bugs.archlinux.org/task/52915. + "--enable-debug" + ]; + + desktopItems = [ (makeDesktopItem { + name = "abuse"; + exec = "abuse"; + icon = "abuse"; + desktopName = "Abuse"; + comment = "Side-scroller action game that pits you against ruthless alien killers"; + categories = "Game;ActionGame;"; + }) ]; + + postInstall = '' + mkdir $out/etc + echo -e "dir ${freepats}\nsource ${freepats}/freepats.cfg" > $out/etc/timidity.cfg + + mv $out/bin/abuse $out/bin/.abuse-bin + substituteAll "${./abuse.sh}" $out/bin/abuse + chmod +x $out/bin/abuse + + install -Dm644 doc/abuse.png $out/share/pixmaps/abuse.png + ''; + + nativeBuildInputs = [ copyDesktopItems ]; + buildInputs = [ SDL SDL_mixer freepats ]; + + meta = with lib; { + description = "Side-scroller action game that pits you against ruthless alien killers"; + homepage = "http://abuse.zoy.org/"; + license = with licenses; [ unfree ]; + # Most of abuse is free (public domain, GPL2+, WTFPL), however the creator + # of its sfx and music only gave Debian permission to redistribute the + # files. Our friends from Debian thought about it some more: + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648272 + maintainers = with maintainers; [ iblech ]; + platforms = platforms.unix; + broken = stdenv.isDarwin; + }; +} diff --git a/pkgs/games/adom/default.nix b/pkgs/games/adom/default.nix index 055959fff2d..b40a608412e 100644 --- a/pkgs/games/adom/default.nix +++ b/pkgs/games/adom/default.nix @@ -1,12 +1,12 @@ -{ stdenv, fetchurl, patchelf, zlib, libmad, libpng12, libcaca, libGLU, libGL, alsaLib, libpulseaudio +{ lib, stdenv, fetchurl, patchelf, zlib, libmad, libpng12, libcaca, libGLU, libGL, alsa-lib, libpulseaudio , xorg }: let inherit (xorg) libXext libX11; - lpath = "${stdenv.cc.cc.lib}/lib64:" + stdenv.lib.makeLibraryPath [ - zlib libmad libpng12 libcaca libXext libX11 libGLU libGL alsaLib libpulseaudio]; + lpath = "${stdenv.cc.cc.lib}/lib64:" + lib.makeLibraryPath [ + zlib libmad libpng12 libcaca libXext libX11 libGLU libGL alsa-lib libpulseaudio]; in stdenv.mkDerivation rec { @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { chmod +x $out/bin/adom ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A rogue-like game with nice graphical interface"; homepage = "http://adom.de/"; license = licenses.unfreeRedistributable; diff --git a/pkgs/games/airstrike/default.nix b/pkgs/games/airstrike/default.nix index 10dfc7501fb..12b485764a5 100644 --- a/pkgs/games/airstrike/default.nix +++ b/pkgs/games/airstrike/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, makeWrapper, SDL, SDL_image }: +{ lib, stdenv, fetchurl, makeWrapper, SDL, SDL_image }: stdenv.mkDerivation rec { pname = "airstrike-pre"; @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "1h6rv2zcp84ycmd0kv1pbpqjgwx57dw42x7878d2c2vnpi5jn8qi"; }; - buildInputs = [ makeWrapper SDL SDL_image ]; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ SDL SDL_image ]; NIX_LDFLAGS = "-lm"; @@ -25,7 +26,7 @@ stdenv.mkDerivation rec { --run "cd $out/share" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A 2d dogfighting game"; homepage = "https://icculus.org/airstrike/"; license = licenses.gpl2; diff --git a/pkgs/games/alephone/default.nix b/pkgs/games/alephone/default.nix index 879571df7a1..347ccd8df63 100644 --- a/pkgs/games/alephone/default.nix +++ b/pkgs/games/alephone/default.nix @@ -1,35 +1,37 @@ -{ stdenv, fetchurl, boost, curl, ffmpeg, icoutils, libmad, libogg, libpng -, libsndfile, libvorbis, lua, pkgconfig, SDL, SDL_image, SDL_net, SDL_ttf, smpeg -, speex, zziplib, zlib, makeWrapper, makeDesktopItem, unzip, alephone }: +{ lib, stdenv, fetchurl, boost, curl, ffmpeg, icoutils, libGLU, libmad, libogg +, libpng, libsndfile, libvorbis, lua, pkg-config, SDL2, SDL2_image, SDL2_net +, SDL2_ttf, smpeg, speex, zziplib, zlib, makeWrapper, makeDesktopItem, unzip +, alephone }: let self = stdenv.mkDerivation rec { outputs = [ "out" "icons" ]; pname = "alephone"; - version = "20150620"; + version = "1.4"; src = fetchurl { - url = - "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/AlephOne-${version}.tar.bz2"; - sha256 = "0cz18fa3gx8mz5j09ywz8gq0r4q082kh6l9pbpwn8qjanzgn1wy0"; + url = let date = "20210408"; + in "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${date}/AlephOne-${date}.tar.bz2"; + sha256 = "sha256-tMwATUhUpo8W2oSWxGSZcAHVkj1PWEvUR/rpMZwWCWA="; }; - nativeBuildInputs = [ pkgconfig icoutils ]; + nativeBuildInputs = [ pkg-config icoutils ]; buildInputs = [ boost curl ffmpeg + libGLU libmad libsndfile libogg libpng libvorbis lua - SDL - SDL_image - SDL_net - SDL_ttf + SDL2 + SDL2_image + SDL2_net + SDL2_ttf smpeg speex zziplib @@ -50,7 +52,7 @@ let popd ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Aleph One is the open source continuation of Bungie’s Marathon 2 game engine"; homepage = "https://alephone.lhowon.org/"; @@ -91,8 +93,8 @@ in self // { ''; meta = alephone.meta // { - license = stdenv.lib.licenses.free; + license = lib.licenses.free; hydraPlatforms = [ ]; } // meta; - }); + } // extraArgs); } diff --git a/pkgs/games/alephone/infinity/default.nix b/pkgs/games/alephone/infinity/default.nix index fc3500d0eb9..f6002469a09 100644 --- a/pkgs/games/alephone/infinity/default.nix +++ b/pkgs/games/alephone/infinity/default.nix @@ -3,13 +3,13 @@ alephone.makeWrapper rec { pname = "marathon-infinity"; desktopName = "Marathon-Infinity"; - version = "20190331"; + version = "20210408"; icon = alephone.icons + "/marathon-infinity.png"; zip = fetchurl { url = "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/MarathonInfinity-${version}-Data.zip"; - sha256 = "03vn91arnsm71dakbfzrdfwpwh5vkwildl7i16xqi1apinmvvh86"; + sha256 = "sha256-j9iwSrI7cjqnuRQX+qn8sWXQ6E+DQ19l7OzAL9KHcJU="; }; meta = { diff --git a/pkgs/games/alephone/marathon/default.nix b/pkgs/games/alephone/marathon/default.nix index 1d0787067af..4518215a337 100644 --- a/pkgs/games/alephone/marathon/default.nix +++ b/pkgs/games/alephone/marathon/default.nix @@ -3,13 +3,13 @@ alephone.makeWrapper rec { pname = "marathon"; desktopName = "Marathon"; - version = "20190331"; + version = "20200904"; icon = alephone.icons + "/marathon.png"; zip = fetchurl { url = "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/Marathon-${version}-Data.zip"; - sha256 = "1d18a7hn8s50rqcs9i72ak5fq5a76hwk7nylfinrxjb134c9vlpz"; + sha256 = "sha256-x5M8RkxH+Rn8hUJIIq/AFC5Ibn0zF95BqZIDEwM6wVg="; }; meta = { diff --git a/pkgs/games/alienarena/default.nix b/pkgs/games/alienarena/default.nix index a28cf2508e2..39b232b267c 100644 --- a/pkgs/games/alienarena/default.nix +++ b/pkgs/games/alienarena/default.nix @@ -1,15 +1,17 @@ -{ stdenv, fetchurl, pkgconfig, libjpeg, libX11, libXxf86vm, curl, libogg +{ lib, stdenv, fetchsvn, pkg-config, libjpeg, libX11, libXxf86vm, curl, libogg , libvorbis, freetype, openal, libGL }: -stdenv.mkDerivation { - name = "alienarena-7.65"; +stdenv.mkDerivation rec { + pname = "alienarena"; + version = "7.71.2"; - src = fetchurl { - url = "https://icculus.org/alienarena/Files/alienarena-7.65-linux20130207.tar.gz"; - sha256 = "03nnv4m2xmswr0020hssajncdb8sy95jp5yccsm53sgxga4r8igg"; + src = fetchsvn { + url = "svn://svn.icculus.org/alienarena/trunk"; + rev = "5673"; + sha256 = "1qfrgrp7nznk5n1jqvjba6l1w8y2ixzyx9swkpvd02rdwlwrp9kw"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ libjpeg libX11 curl libogg libvorbis freetype openal libGL libXxf86vm ]; @@ -19,7 +21,7 @@ stdenv.mkDerivation { --replace libGL.so.1 ${libGL}/lib/libGL.so.1 ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A free, stand-alone first-person shooter computer game"; longDescription = '' Do you like old school deathmatch with modern features? How diff --git a/pkgs/games/amoeba/data.nix b/pkgs/games/amoeba/data.nix index f86ee71aa42..193c710b31a 100644 --- a/pkgs/games/amoeba/data.nix +++ b/pkgs/games/amoeba/data.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl }: +{ lib, stdenv, fetchurl }: stdenv.mkDerivation rec { pname = "amoeba-data"; @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { cp demo.dat $out/share/amoeba/ ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Fast-paced, polished OpenGL demonstration by Excess (data files)"; homepage = "https://packages.qa.debian.org/a/amoeba-data.html"; license = licenses.unfree; diff --git a/pkgs/games/amoeba/default.nix b/pkgs/games/amoeba/default.nix index 0475a6b50b5..61f5a5bf824 100644 --- a/pkgs/games/amoeba/default.nix +++ b/pkgs/games/amoeba/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, amoeba-data, alsaLib, expat, freetype, gtk2, libvorbis, libGLU, pkgconfig }: +{ lib, stdenv, fetchurl, amoeba-data, alsa-lib, expat, freetype, gtk2, libvorbis, libGLU, xorg, pkg-config }: stdenv.mkDerivation rec { name = "amoeba-${version}-${debver}"; @@ -26,8 +26,8 @@ stdenv.mkDerivation rec { sed -i main/linux-config/linux-config.cpp -e 's|libgtk-x11-2.0.so.0|${gtk2}/lib/&|' ''; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ alsaLib expat freetype gtk2 libvorbis libGLU ]; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ alsa-lib expat freetype gtk2 libvorbis libGLU xorg.libXxf86vm ]; installPhase = '' mkdir -p $out/bin $out/share/man/man1/ @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { cp ../debian/amoeba.1 $out/share/man/man1/ ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Fast-paced, polished OpenGL demonstration by Excess"; homepage = "https://packages.qa.debian.org/a/amoeba.html"; license = licenses.gpl2; # Engine is GPLv2, data files in amoeba-data nonfree diff --git a/pkgs/games/among-sus/default.nix b/pkgs/games/among-sus/default.nix new file mode 100644 index 00000000000..454c7d181f9 --- /dev/null +++ b/pkgs/games/among-sus/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromSourcehut, port ? "1234" }: + +stdenv.mkDerivation { + pname = "among-sus-unstable"; + version = "2020-10-29"; + + src = fetchFromSourcehut { + owner = "~martijnbraam"; + repo = "among-sus"; + rev = "1f4c8d800d025d36ac66826937161be3252fbc57"; + sha256 = "19jq7ygh9l11dl1h6702bg57m04y35nqd6yqx1rgp1kxwhp45xyh"; + }; + + patchPhase = '' + sed -i 's/port = 1234/port = ${port}/g' main.c + ''; + + installPhase = '' + mkdir -p $out/bin + install -Dm755 among-sus $out/bin + ''; + + meta = with lib; { + homepage = "https://git.sr.ht/~martijnbraam/among-sus"; + description = "Among us, but it's a text adventure"; + license = licenses.agpl3Plus; + maintainers = [ maintainers.eyjhb ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/games/andyetitmoves/default.nix b/pkgs/games/andyetitmoves/default.nix index 84c1f545a38..9eb1c7594a1 100644 --- a/pkgs/games/andyetitmoves/default.nix +++ b/pkgs/games/andyetitmoves/default.nix @@ -1,17 +1,14 @@ -{ stdenv, fetchurl, libvorbis, libogg, libtheora, SDL, libXft, SDL_image, zlib, libX11, libpng, openal, runtimeShell, requireFile, commercialVersion ? false }: +{ lib, stdenv, fetchurl, libvorbis, libogg, libtheora, SDL, libXft, SDL_image, zlib, libX11, libpng, openal, runtimeShell, requireFile, commercialVersion ? false }: -let plainName = "andyetitmoves"; - version = "1.2.2"; -in - -stdenv.mkDerivation { - name = "${plainName}-${version}"; +stdenv.mkDerivation rec { + pname = "andyetitmoves"; + version = "1.2.2"; src = if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux" then let postfix = if stdenv.hostPlatform.system == "i686-linux" then "i386" else "x86_64"; - commercialName = "${plainName}-${version}_${postfix}.tar.gz"; - demoUrl = "http://www.andyetitmoves.net/demo/${plainName}Demo-${version}_${postfix}.tar.gz"; + commercialName = "${pname}-${version}_${postfix}.tar.gz"; + demoUrl = "http://www.andyetitmoves.net/demo/${pname}Demo-${version}_${postfix}.tar.gz"; in if commercialVersion then requireFile { @@ -68,8 +65,8 @@ stdenv.mkDerivation { homepage = "http://www.andyetitmoves.net/"; - license = stdenv.lib.licenses.unfree; + license = lib.licenses.unfree; - maintainers = with stdenv.lib.maintainers; [bluescreen303]; + maintainers = with lib.maintainers; [bluescreen303]; }; } diff --git a/pkgs/games/angband/default.nix b/pkgs/games/angband/default.nix index 937fd30d405..e14629dce8f 100644 --- a/pkgs/games/angband/default.nix +++ b/pkgs/games/angband/default.nix @@ -1,21 +1,21 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, ncurses5 }: +{ lib, stdenv, fetchFromGitHub, autoreconfHook, ncurses5 }: stdenv.mkDerivation rec { pname = "angband"; - version = "4.2.1"; + version = "4.2.2"; src = fetchFromGitHub { owner = "angband"; repo = "angband"; rev = version; - sha256 = "174fphiywwb4yb3kqavwaysx7c97an2n8wjbm4p4d41i1svjsryz"; + sha256 = "sha256-z1HTt3+lWIr2F9YZFdw47lkYVgYl17qbb/OJ9YyYQa8="; }; nativeBuildInputs = [ autoreconfHook ]; buildInputs = [ ncurses5 ]; installFlags = [ "bindir=$(out)/bin" ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://rephial.org/"; description = "A single-player roguelike dungeon exploration game"; maintainers = [ maintainers.chattered ]; diff --git a/pkgs/games/anki/bin.nix b/pkgs/games/anki/bin.nix new file mode 100644 index 00000000000..26b29b9228e --- /dev/null +++ b/pkgs/games/anki/bin.nix @@ -0,0 +1,72 @@ +{ fetchurl, stdenv, lib, buildFHSUserEnv, appimageTools, writeShellScript, anki, undmg }: + +let + pname = "anki-bin"; + # Update hashes for both Linux and Darwin! + version = "2.1.44"; + + unpacked = stdenv.mkDerivation { + inherit pname version; + + src = fetchurl { + url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux.tar.bz2"; + sha256 = "01d5ll3vsd4v0ikxgamv47bkwmag15vnmsgpda5wivc3dyawc9j9"; + }; + + installPhase = '' + runHook preInstall + + xdg-mime () { + echo Stubbed! + } + export -f xdg-mime + + PREFIX=$out bash install.sh + + runHook postInstall + ''; + }; + + meta = with lib; { + inherit (anki.meta) license homepage description longDescription; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + maintainers = with maintainers; [ atemu ]; + }; +in + +if stdenv.isLinux then buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // { + name = "anki"; + + runScript = writeShellScript "anki-wrapper.sh" '' + # Wayland support is broken, disable via ENV variable + export QT_QPA_PLATFORM=xcb + exec ${unpacked}/bin/anki + ''; + + extraInstallCommands = '' + mkdir -p $out/share + cp -R ${unpacked}/share/applications \ + ${unpacked}/share/man \ + ${unpacked}/share/pixmaps \ + $out/share/ + ''; + + inherit meta; +}) else stdenv.mkDerivation { + inherit pname version; + + src = fetchurl { + url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac.dmg"; + sha256 = "1zrdih4rjsq30480sf200pw59r42p3nq2md56kj2l641kbc7ljka"; + }; + + nativeBuildInputs = [ undmg ]; + sourceRoot = "."; + + installPhase = '' + mkdir -p $out/Applications/ + cp -a Anki.app $out/Applications/ + ''; + + inherit meta; +} diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix index 0d713b1f71e..6edddfeed5c 100644 --- a/pkgs/games/anki/default.nix +++ b/pkgs/games/anki/default.nix @@ -4,8 +4,9 @@ , python , fetchurl , fetchFromGitHub +, fetchpatch , lame -, mplayer +, mpv-unwrapped , libpulseaudio , pyqtwebengine , decorator @@ -105,11 +106,16 @@ buildPythonApplication rec { checkInputs = [ pytest glibcLocales nose ]; nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ]; - buildInputs = [ lame mplayer libpulseaudio ]; + buildInputs = [ lame mpv-unwrapped libpulseaudio ]; patches = [ # Disable updated version check. ./no-version-check.patch + (fetchpatch { + name = "fix-mpv-args.patch"; + url = "https://sources.debian.org/data/main/a/anki/2.1.15+dfsg-3/debian/patches/fix-mpv-args.patch"; + sha256 = "1dimnnawk64m5bbdbjrxw5k08q95l728n94cgkrrwxwavmmywaj2"; + }) ]; # Anki does not use setup.py @@ -128,6 +134,9 @@ buildPythonApplication rec { # UTF-8 locale needed for testing LC_ALL = "en_US.UTF-8"; + # tests fail with to many open files + doCheck = !stdenv.isDarwin; + # - Anki writes some files to $HOME during tests # - Skip tests using network checkPhase = '' @@ -170,7 +179,7 @@ buildPythonApplication rec { preFixup = '' makeWrapperArgs+=( "''${qtWrapperArgs[@]}" - --prefix PATH ':' "${lame}/bin:${mplayer}/bin" + --prefix PATH ':' "${lame}/bin:${mpv-unwrapped}/bin" ) ''; @@ -194,8 +203,7 @@ buildPythonApplication rec { or even practicing guitar chords! ''; license = licenses.agpl3Plus; - broken = stdenv.hostPlatform.isAarch64; platforms = platforms.mesaPlatforms; - maintainers = with maintainers; [ oxij Profpatsch enzime ]; + maintainers = with maintainers; [ oxij Profpatsch ]; }; } diff --git a/pkgs/games/antsimulator/default.nix b/pkgs/games/antsimulator/default.nix new file mode 100644 index 00000000000..b43b91d5cb9 --- /dev/null +++ b/pkgs/games/antsimulator/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchFromGitHub, cmake, sfml }: + +stdenv.mkDerivation rec { + pname = "antsimulator"; + version = "1.2"; + + src = fetchFromGitHub { + owner = "johnBuffer"; + repo = "AntSimulator"; + rev = "v${version}"; + sha256 = "0wz80971rf86kb7mcnxwrq75vriwhmyir5s5n3wzml12rzfnj5f1"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ sfml ]; + + installPhase = '' + mkdir -p $out/bin + install -Dm755 ./AntSimulator $out/bin/antsimulator + ''; + + meta = with lib; { + homepage = "https://github.com/johnBuffer/AntSimulator"; + description = "Simple Ants simulator"; + license = licenses.free; + maintainers = with maintainers; [ ivar ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/games/arena/default.nix b/pkgs/games/arena/default.nix index beba98b6316..16553a5f8ea 100644 --- a/pkgs/games/arena/default.nix +++ b/pkgs/games/arena/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, gtk2-x11, glib, pango, cairo, atk, gdk-pixbuf, libX11 }: +{ lib, stdenv, fetchurl, gtk2-x11, glib, pango, cairo, atk, gdk-pixbuf, libX11 }: # Arena is free software in the sense of "free beer" but not as in "free # speech". We can install it as we please, but we cannot re-distribute it in @@ -7,15 +7,16 @@ let - inherit (stdenv.lib) makeLibraryPath; + inherit (lib) makeLibraryPath; libDir = "lib64"; in stdenv.mkDerivation rec { - name = "arena-3.10-beta"; + pname = "arena"; + version = "3.10-beta"; src = fetchurl { - url = "http://www.playwitharena.de/downloads/arenalinux_64bit_3.10beta.tar.gz"; + url = "http://www.playwitharena.de/downloads/arenalinux_64bit_${lib.replaceStrings ["-"] [""] version}.tar.gz"; sha256 = "1pzb9sg4lzbbi4gbldvlb85p8xyl9xnplxwyb9pkk2mwzvvxkf0d"; }; @@ -25,19 +26,19 @@ stdenv.mkDerivation rec { unpackPhase = '' # This is is a tar bomb, i.e. it extract a dozen files and directories to # the top-level, so we must create a sub-directory first. - mkdir -p $out/lib/${name} - tar -C $out/lib/${name} -xf ${src} + mkdir -p $out/lib/${pname}-${version} + tar -C $out/lib/${pname}-${version} -xf ${src} # Remove executable bits from data files. This matters for the find command # we'll use below to find all bundled engines. - chmod -x $out/lib/${name}/Engines/*/*.{txt,bin,bmp,zip} + chmod -x $out/lib/${pname}-${version}/Engines/*/*.{txt,bin,bmp,zip} ''; buildPhase = '' # Arena has (at least) two executables plus a couple of bundled chess # engines that we need to patch. exes=( $(find $out -name '*x86_64_linux') - $(find $out/lib/${name}/Engines -type f -perm /u+x) + $(find $out/lib/${pname}-${version}/Engines -type f -perm /u+x) ) for i in "''${exes[@]}"; do # Arminius is statically linked. @@ -52,7 +53,7 @@ stdenv.mkDerivation rec { installPhase = '' mkdir -p $out/bin - ln -s $out/lib/${name}/Arena_x86_64_linux $out/bin/arena + ln -s $out/lib/${pname}-${version}/Arena_x86_64_linux $out/bin/arena ''; dontStrip = true; @@ -66,9 +67,9 @@ stdenv.mkDerivation rec { UCI protocol I, II. Furthermore, compatible to Chess960, DGT electronic chess board & DGT clocks and much more. ''; - license = stdenv.lib.licenses.unfree; + license = lib.licenses.unfree; platforms = ["x86_64-linux"]; - hydraPlatforms = stdenv.lib.platforms.none; + hydraPlatforms = lib.platforms.none; }; } diff --git a/pkgs/games/armagetronad/default.nix b/pkgs/games/armagetronad/default.nix index d4d2cbef164..27f509c3f72 100644 --- a/pkgs/games/armagetronad/default.nix +++ b/pkgs/games/armagetronad/default.nix @@ -1,30 +1,42 @@ -{ stdenv, fetchurl, SDL, libxml2, SDL_image, libjpeg, libpng, libGLU, libGL, zlib }: +{ lib, stdenv, fetchurl +, pkg-config, SDL, libxml2, SDL_image, libjpeg, libpng, libGLU, libGL, zlib +, dedicatedServer ? false }: let - versionMajor = "0.2.8"; - versionMinor = "3.5"; + versionMajor = "0.2.9"; + versionMinor = "1.0"; version = "${versionMajor}.${versionMinor}"; in - stdenv.mkDerivation { - pname = "armagetron"; + pname = if dedicatedServer then "armagetronad-dedicated" else "armagetronad"; inherit version; src = fetchurl { - url = "https://launchpad.net/armagetronad/${versionMajor}/${versionMajor}.${versionMinor}/+download/armagetronad-${version}.src.tar.bz2"; - sha256 = "1vyja7mzivs3pacxb7kznndsgqhq4p0f7x2zg55dckvzqwprdhqx"; + url = "https://launchpad.net/armagetronad/${versionMajor}/${version}/+download/armagetronad-${version}.tbz"; + sha256 = "sha256-WbbHwBzj+MylQ34z+XSmN1KVQaEapPUsGlwXSZ4m9qE"; }; - NIX_LDFLAGS = "-lSDL_image"; - enableParallelBuilding = true; - configureFlags = [ "--disable-etc" ]; - buildInputs = [ SDL SDL_image libxml2 libjpeg libpng libGLU libGL zlib ]; + configureFlags = [ + "--enable-memmanager" + "--enable-automakedefaults" + "--disable-useradd" + "--disable-initscripts" + "--disable-etc" + "--disable-uninstall" + "--disable-sysinstall" + ] ++ lib.optional dedicatedServer "--enable-dedicated"; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ libxml2 zlib ] + ++ lib.optionals (!dedicatedServer) [ SDL SDL_image libxml2 libjpeg libpng libGLU libGL ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://armagetronad.org"; - description = "An multiplayer networked arcade racing game in 3D similar to Tron"; - license = licenses.gpl2; + description = "A multiplayer networked arcade racing game in 3D similar to Tron"; + maintainers = with maintainers; [ numinit ]; + license = licenses.gpl2Plus; platforms = platforms.linux; }; } diff --git a/pkgs/games/arx-libertatis/default.nix b/pkgs/games/arx-libertatis/default.nix index 2e60f81f4d3..945ebf7b785 100644 --- a/pkgs/games/arx-libertatis/default.nix +++ b/pkgs/games/arx-libertatis/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchFromGitHub, cmake, zlib, boost +{ lib, stdenv, fetchFromGitHub, cmake, zlib, boost , openal, glm, freetype, libGLU, SDL2, epoxy -, dejavu_fonts, inkscape_0, optipng, imagemagick +, dejavu_fonts, inkscape, optipng, imagemagick , withCrashReporter ? !stdenv.isDarwin , qtbase ? null , wrapQtAppsHook ? null @@ -8,21 +8,21 @@ , gdb ? null }: -with stdenv.lib; +with lib; stdenv.mkDerivation { pname = "arx-libertatis"; - version = "2019-07-22"; + version = "2020-10-20"; src = fetchFromGitHub { owner = "arx"; repo = "ArxLibertatis"; - rev = "db77aa26bb8612f711b65e72b1cd8cf6481700c7"; - sha256 = "0c88djyzjna17wjcvkgsfx3011m1rba5xdzdldy1hjmafpqgb4jj"; + rev = "21df2e37664de79e117eff2af164873f05600f4c"; + sha256 = "06plyyh0ddqv1j04m1vclz9j72609pgrp61v8wfjdcln8djm376i"; }; nativeBuildInputs = [ - cmake inkscape_0 imagemagick optipng + cmake inkscape imagemagick optipng ] ++ optionals withCrashReporter [ wrapQtAppsHook ]; buildInputs = [ @@ -37,7 +37,6 @@ stdenv.mkDerivation { "-DImageMagick_mogrify_EXECUTABLE=${imagemagick.out}/bin/mogrify" ]; - enableParallelBuilding = true; dontWrapQtApps = true; postInstall = '' diff --git a/pkgs/games/asc/default.nix b/pkgs/games/asc/default.nix index 28b144a4e86..af3f9f40310 100644 --- a/pkgs/games/asc/default.nix +++ b/pkgs/games/asc/default.nix @@ -1,27 +1,28 @@ -{ fetchurl, stdenv, SDL, SDL_image, SDL_mixer, SDL_sound, libsigcxx, physfs -, boost, expat, freetype, libjpeg, wxGTK, lua, perl, pkgconfig, zlib, zip, bzip2 +{ fetchurl, lib, stdenv, SDL, SDL_image, SDL_mixer, SDL_sound, libsigcxx, physfs +, boost, expat, freetype, libjpeg, wxGTK, lua, perl, pkg-config, zlib, zip, bzip2 , libpng, libtiff, fluidsynth, libmikmod, libvorbis, flac, libogg }: stdenv.mkDerivation rec { - name = "asc-2.6.0.0"; + pname = "asc"; + version = "2.6.0.0"; src = fetchurl { - url = "mirror://sourceforge/asc-hq/${name}.tar.bz2"; + url = "mirror://sourceforge/asc-hq/asc-${version}.tar.bz2"; sha256 = "1fybasb6srqfg6pqbvh0s0vvzjq9r0n6aq0z44hs7n68kmaam775"; }; configureFlags = [ "--disable-paragui" "--disable-paraguitest" ]; - NIX_CFLAGS_COMPILE = "-fpermissive"; # I'm too lazy to catch all gcc47-related problems + NIX_CFLAGS_COMPILE = "-fpermissive -Wno-error=narrowing"; # I'm too lazy to catch all gcc47-related problems hardeningDisable = [ "format" ]; buildInputs = [ SDL SDL_image SDL_mixer SDL_sound libsigcxx physfs boost expat - freetype libjpeg wxGTK lua perl pkgconfig zlib zip bzip2 libpng + freetype libjpeg wxGTK lua perl pkg-config zlib zip bzip2 libpng libtiff fluidsynth libmikmod flac libvorbis libogg ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Turn based strategy game"; longDescription = '' diff --git a/pkgs/games/assaultcube/default.nix b/pkgs/games/assaultcube/default.nix index 6c3a7f1168e..640ea81c6c6 100644 --- a/pkgs/games/assaultcube/default.nix +++ b/pkgs/games/assaultcube/default.nix @@ -1,8 +1,8 @@ -{ fetchFromGitHub, stdenv, makeDesktopItem, openal, pkgconfig, libogg, +{ fetchFromGitHub, lib, stdenv, makeDesktopItem, openal, pkg-config, libogg, libvorbis, SDL, SDL_image, makeWrapper, zlib, file, client ? true, server ? true }: -with stdenv.lib; +with lib; stdenv.mkDerivation rec { @@ -17,12 +17,12 @@ stdenv.mkDerivation rec { sha256 = "1vfn3d55vmmipdykrcfvgk6dddi9y95vlclsliirm7jdp20f15hd"; }; - nativeBuildInputs = [ makeWrapper pkgconfig ]; + nativeBuildInputs = [ makeWrapper pkg-config ]; buildInputs = [ file zlib ] ++ optionals client [ openal SDL SDL_image libogg libvorbis ]; targets = (optionalString server "server") + (optionalString client " client"); - makeFlags = [ "-C source/src" "CXX=c++" targets ]; + makeFlags = [ "-C source/src" "CXX=${stdenv.cc.targetPrefix}c++" targets ]; desktop = makeDesktopItem { name = "AssaultCube"; @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { cp ${desktop}/share/applications/* $out/share/applications install -Dpm644 packages/misc/icon.png $out/share/icons/assaultcube.png install -Dpm644 packages/misc/icon.png $out/share/pixmaps/assaultcube.png - + makeWrapper $out/bin/ac_client $out/bin/${pname} \ --run "cd $out/$gamedatadir" --add-flags "--home=\$HOME/.assaultcube/v1.2next --init" fi @@ -65,8 +65,8 @@ stdenv.mkDerivation rec { meta = { description = "Fast and fun first-person-shooter based on the Cube fps"; homepage = "https://assault.cubers.net"; - maintainers = [ maintainers.genesis ]; + maintainers = [ ]; platforms = platforms.linux; # should work on darwin with a little effort. - license = stdenv.lib.licenses.zlib; + license = lib.licenses.unfree; }; } diff --git a/pkgs/games/astromenace/default.nix b/pkgs/games/astromenace/default.nix index 7f1ca325746..cbe2385ea12 100644 --- a/pkgs/games/astromenace/default.nix +++ b/pkgs/games/astromenace/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, cmake, xlibsWrapper, libGLU, libGL, SDL, openal, freealut, libogg, libvorbis, runtimeShell }: +{ fetchurl, lib, stdenv, cmake, xlibsWrapper, libGLU, libGL, SDL, openal, freealut, libogg, libvorbis, runtimeShell }: stdenv.mkDerivation rec { version = "1.3.2"; @@ -9,7 +9,8 @@ stdenv.mkDerivation rec { sha256 = "1rkz6lwjcd5mwv72kf07ghvx6z46kf3xs250mjbmnmjpn7r5sxwv"; }; - buildInputs = [ cmake xlibsWrapper libGLU libGL SDL openal freealut libogg libvorbis ]; + nativeBuildInputs = [ cmake ]; + buildInputs = [ xlibsWrapper libGLU libGL SDL openal freealut libogg libvorbis ]; buildPhase = '' cmake ./ @@ -30,7 +31,7 @@ stdenv.mkDerivation rec { meta = { description = "Hardcore 3D space shooter with spaceship upgrade possibilities"; homepage = "https://www.viewizard.com/"; - license = stdenv.lib.licenses.gpl3; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl3; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/atanks/default.nix b/pkgs/games/atanks/default.nix index bb11acf3866..f92f2e19c33 100644 --- a/pkgs/games/atanks/default.nix +++ b/pkgs/games/atanks/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, allegro }: +{ lib, stdenv, fetchurl, allegro }: stdenv.mkDerivation rec { pname = "atanks"; @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=$(out)/" "INSTALL=install" "CXX=g++" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Atomic Tanks ballistics game"; homepage = "http://atanks.sourceforge.net/"; maintainers = [ maintainers.raskin ]; diff --git a/pkgs/games/augustus/default.nix b/pkgs/games/augustus/default.nix index cabe419ef5b..4693e290da6 100644 --- a/pkgs/games/augustus/default.nix +++ b/pkgs/games/augustus/default.nix @@ -1,24 +1,25 @@ -{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, libpng }: +{ lib, stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, libpng }: stdenv.mkDerivation rec { pname = "augustus"; - version = "1.4.1a"; + version = "3.0.1"; src = fetchFromGitHub { owner = "Keriew"; repo = "augustus"; rev = "v${version}"; - sha256 = "1xqv8j8jh3f13fjhyf7hk1anrn799cwwsvsd75kpl9n5yh5s1j5y"; + sha256 = "03pmnwq6bahq854vh1vmv1vabb8cs0alca8f36id8dlz8bw95nik"; }; nativeBuildInputs = [ cmake ]; buildInputs = [ SDL2 SDL2_mixer libpng ]; - meta = with stdenv.lib; { + meta = with 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; + license = licenses.agpl3Only; platforms = platforms.all; + broken = stdenv.isDarwin; maintainers = with maintainers; [ Thra11 ]; }; } diff --git a/pkgs/games/azimuth/default.nix b/pkgs/games/azimuth/default.nix index 67bbd8558c3..dcc67533fac 100644 --- a/pkgs/games/azimuth/default.nix +++ b/pkgs/games/azimuth/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, SDL, which, installTool ? false }: +{ lib, stdenv, fetchFromGitHub, SDL, which, installTool ? false }: stdenv.mkDerivation rec { pname = "azimuth"; @@ -41,10 +41,10 @@ stdenv.mkDerivation rec { bosses to tangle with. ''; - license = stdenv.lib.licenses.gpl3Plus; + license = lib.licenses.gpl3Plus; homepage = "https://mdsteele.games/azimuth/index.html"; - maintainers = with stdenv.lib.maintainers; [ marius851000 ]; - platforms = stdenv.lib.platforms.linux; + maintainers = with lib.maintainers; [ marius851000 ]; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/ball-and-paddle/default.nix b/pkgs/games/ball-and-paddle/default.nix index 862905efd3b..a935f3d4686 100644 --- a/pkgs/games/ball-and-paddle/default.nix +++ b/pkgs/games/ball-and-paddle/default.nix @@ -1,10 +1,11 @@ -{ fetchurl, stdenv, SDL, SDL_image, SDL_mixer, SDL_ttf, guile, gettext }: +{ fetchurl, lib, stdenv, SDL, SDL_image, SDL_mixer, SDL_ttf, guile, gettext }: stdenv.mkDerivation rec { - name = "ballandpaddle-0.8.1"; + pname = "ballandpaddle"; + version = "0.8.1"; src = fetchurl { - url = "mirror://gnu/ballandpaddle/${name}.tar.gz"; + url = "mirror://gnu/ballandpaddle/ballandpaddle-${version}.tar.gz"; sha256 = "0zgpydad0mj7fbkippw3n9hlda6nac084dq5xfbsks9jn1xd30ny"; }; @@ -31,14 +32,14 @@ stdenv.mkDerivation rec { with Guile. Follow the example level sets and the documentation. ''; - license = stdenv.lib.licenses.gpl3Plus; + license = lib.licenses.gpl3Plus; homepage = "https://www.gnu.org/software/ballandpaddle/"; maintainers = [ ]; - platforms = stdenv.lib.platforms.unix; + platforms = lib.platforms.unix; - hydraPlatforms = stdenv.lib.platforms.linux; # sdl-config times out on darwin + hydraPlatforms = lib.platforms.linux; # sdl-config times out on darwin }; } diff --git a/pkgs/games/banner/default.nix b/pkgs/games/banner/default.nix index 6da8e1bf9bf..084dd37d322 100644 --- a/pkgs/games/banner/default.nix +++ b/pkgs/games/banner/default.nix @@ -1,17 +1,20 @@ -{ stdenv, fetchurl }: +{ lib, stdenv, fetchFromGitHub }: stdenv.mkDerivation rec { - name = "banner-1.3.4"; + pname = "banner"; + version = "1.3.5"; - src = fetchurl { - url = "http://software.cedar-solutions.com/ftp/software/${name}.tar.gz"; - sha256 = "04q5ribr0r9s8waky3nk356l0qdhfxw15ipz7lsfgv1fxq3qk6bz"; + src = fetchFromGitHub { + owner = "pronovic"; + repo = "banner"; + rev = "BANNER_V${version}"; + sha256 = "ISSnGzrFSzSj/+KxgeFtaw4H+4Ea5x5S5C8xjcjKWqQ="; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://software.cedar-solutions.com/utilities.html"; description = "Print large banners to ASCII terminals"; - license = licenses.gpl2; + license = licenses.gpl2Only; longDescription = '' An implementation of the traditional Unix-program used to display diff --git a/pkgs/games/bastet/default.nix b/pkgs/games/bastet/default.nix index d68a05137b4..053eca57528 100644 --- a/pkgs/games/bastet/default.nix +++ b/pkgs/games/bastet/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, fetchpatch, ncurses, boost }: +{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, boost }: stdenv.mkDerivation rec { pname = "bastet"; @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { cp bastet.6 "$out"/share/man/man6 ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Tetris clone with 'bastard' block-choosing AI"; homepage = "http://fph.altervista.org/prog/bastet.html"; license = licenses.gpl3; diff --git a/pkgs/games/beret/default.nix b/pkgs/games/beret/default.nix index f640e2c6aef..5d1bf0dd47c 100644 --- a/pkgs/games/beret/default.nix +++ b/pkgs/games/beret/default.nix @@ -1,13 +1,14 @@ -{ stdenv, fetchurl, SDL, SDL_image, SDL_ttf, SDL_mixer }: +{ lib, stdenv, fetchurl, SDL, SDL_image, SDL_ttf, SDL_mixer }: stdenv.mkDerivation { - name = "beret-1.2.0"; + pname = "beret"; + version = "1.2.0"; buildInputs = [ SDL SDL_image SDL_ttf SDL_mixer ]; NIX_CFLAGS_COMPILE = "-I${SDL.dev}/include/SDL"; - NIX_CFLAGS_LINK = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s"; - NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin + NIX_CFLAGS_LINK = lib.optionalString (!stdenv.isDarwin) "-lgcc_s"; + NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreFoundation -framework OpenGL -framework Cocoa"; patches = [ ./use-home-dir.patch ]; @@ -29,7 +30,7 @@ stdenv.mkDerivation { cp -av tahoma.ttf images music rooms sfx $out/share ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A 2D puzzle-platformer game about a scientist with telekinetic abilities"; homepage = "http://kiwisauce.com/beret/"; license = licenses.lgpl2; diff --git a/pkgs/games/bitsnbots/default.nix b/pkgs/games/bitsnbots/default.nix index 52286b32f90..e5e718e3ca5 100644 --- a/pkgs/games/bitsnbots/default.nix +++ b/pkgs/games/bitsnbots/default.nix @@ -1,7 +1,8 @@ -{ stdenv, fetchurl, SDL, lua, libGLU, libGL }: +{ lib, stdenv, fetchurl, SDL, lua, libGLU, libGL }: stdenv.mkDerivation rec { - name = "bitsnbots-20111230"; + pname = "bitsnbots"; + version = "20111230"; src = fetchurl { url = "http://moikmellah.org/downloads/bitsnbots/bitsnbots.source.tgz"; @@ -19,10 +20,10 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = "-lGL"; installPhase = '' - mkdir -p $out/share/${name} - cp -R bitsnbots resource scripts README $out/share/${name} + mkdir -p $out/share/${pname}-${version} + cp -R bitsnbots resource scripts README $out/share/${pname}-${version} mkdir -p $out/bin - ln -s $out/share/${name}/bitsnbots $out/bin + ln -s $out/share/${pname}-${version}/bitsnbots $out/bin ''; buildInputs = [ SDL lua libGLU libGL ]; @@ -30,7 +31,7 @@ stdenv.mkDerivation rec { meta = { description = "Simple puzzle game with moving robots"; homepage = "http://moikmellah.org/blog/?page_id=19"; - license = stdenv.lib.licenses.gpl3Plus; - platforms = with stdenv.lib.platforms; linux; + license = lib.licenses.gpl3Plus; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/games/black-hole-solver/default.nix b/pkgs/games/black-hole-solver/default.nix new file mode 100644 index 00000000000..e859e72d96b --- /dev/null +++ b/pkgs/games/black-hole-solver/default.nix @@ -0,0 +1,30 @@ +{ + stdenv, lib, fetchurl, + cmake, perl, pkg-config, python3, + rinutils, PathTiny, +}: + +stdenv.mkDerivation rec { + pname = "black-hole-solver"; + version = "1.10.1"; + + meta = with lib; { + homepage = "https://www.shlomifish.org/open-source/projects/black-hole-solitaire-solver/"; + description = "A solver for Solitaire variants Golf, Black Hole, and All in a Row."; + license = licenses.mit; + }; + + src = fetchurl { + url = "https://fc-solve.shlomifish.org/downloads/fc-solve/${pname}-${version}.tar.xz"; + sha256 = "1qhihmk4fwz6n16c7bnxnh3v7jhbb7xhkc9wk9484bp0k4x9bq9n"; + }; + + nativeBuildInputs = [ cmake perl pkg-config python3 ]; + + buildInputs = [ rinutils PathTiny ]; + + prePatch = '' + patchShebangs ./scripts + ''; + +} diff --git a/pkgs/games/blackshades/default.nix b/pkgs/games/blackshades/default.nix index e47e430d84c..bd29c7b616c 100644 --- a/pkgs/games/blackshades/default.nix +++ b/pkgs/games/blackshades/default.nix @@ -1,34 +1,36 @@ -{stdenv, fetchsvn, SDL, libGLU, libGL, openal, libvorbis, freealut, SDL_image}: +{ lib, stdenv, fetchFromSourcehut +, SDL, stb, libGLU, libGL, openal, libvorbis, freealut }: -stdenv.mkDerivation { - name = "blackshades-svn-110"; - src = fetchsvn { - url = "svn://svn.icculus.org/blackshades/trunk"; - rev = "110"; - sha256 = "0kbrh1dympk8scjxr6av24qs2bffz44l8qmw2m5gyqf4g3rxf6ra"; - }; +stdenv.mkDerivation rec { + pname = "blackshades"; + version = "1.3.1"; - NIX_LDFLAGS = "-lSDL_image"; + src = fetchFromSourcehut { + owner = "~cnx"; + repo = pname; + rev = version; + sha256 = "0yzp74ynkcp6hh5m4zmvrgx5gwm186hq7p3m7qkww54qdyijb3rv"; + }; - buildInputs = [ SDL SDL_image libGLU libGL openal libvorbis freealut ]; + buildInputs = [ SDL stb libGLU libGL openal libvorbis freealut ]; - patchPhase = '' - sed -i -e s,Data/,$out/opt/$name/Data/,g \ - -e s,Data:,$out/opt/$name/Data/,g \ - Source/*.cpp + postPatch = '' + sed -i -e s,Data/,$out/share/$pname/,g \ + -e s,Data:,$out/share/$pname/,g \ + src/*.cpp ''; installPhase = '' - mkdir -p $out/bin $out/opt/$name - cp objs/blackshades $out/bin - cp -R Data IF* Readme $out/opt/$name/ + mkdir -p $out/bin $out/share + cp build/blackshades $out/bin + cp -R Data $out/share/$pname ''; meta = { - homepage = "http://icculus.org/blackshades/"; - description = "Protect the VIP"; - license = stdenv.lib.licenses.free; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + homepage = "https://sr.ht/~cnx/blackshades"; + description = "A psychic bodyguard FPS"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ McSinyx viric ]; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/games/blobby/default.nix b/pkgs/games/blobby/default.nix index ea8bddfa16d..9dad0b84d1e 100644 --- a/pkgs/games/blobby/default.nix +++ b/pkgs/games/blobby/default.nix @@ -1,24 +1,21 @@ -{stdenv, fetchurl, SDL2, SDL2_image, libGLU, libGL, cmake, physfs, boost, zip, zlib -, pkgconfig, unzip}: +{ lib, stdenv, fetchurl, SDL2, SDL2_image, libGLU, libGL, cmake, physfs, boost, zip, zlib, pkg-config }: + stdenv.mkDerivation rec { - version = "1.0"; pname = "blobby-volley"; + version = "1.0"; src = fetchurl { url = "mirror://sourceforge/blobby/Blobby%20Volley%202%20%28Linux%29/1.0/blobby2-linux-1.0.tar.gz"; sha256 = "1qpmbdlyhfbrdsq4vkb6cb3b8mh27fpizb71q4a21ala56g08yms"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [SDL2 SDL2_image libGLU libGL cmake physfs boost zip zlib - unzip]; + nativeBuildInputs = [ cmake pkg-config zip ]; + buildInputs = [ SDL2 SDL2_image libGLU libGL physfs boost zlib ]; preConfigure='' sed -e '1i#include <iostream>' -i src/NetworkMessage.cpp ''; - inherit unzip; - postInstall = '' cp ../data/Icon.bmp "$out/share/blobby/" mv "$out/bin"/blobby{,.bin} @@ -26,13 +23,12 @@ stdenv.mkDerivation rec { chmod a+x "$out/bin/blobby" ''; - meta = { - description = ''A blobby volleyball game''; - license = stdenv.lib.licenses.bsd3; - platforms = with stdenv.lib.platforms; linux; - maintainers = with stdenv.lib.maintainers; [raskin]; + meta = with lib; { + description = "A blobby volleyball game"; + license = licenses.bsd3; + platforms = platforms.linux; + maintainers = with maintainers; [ raskin ]; homepage = "http://blobby.sourceforge.net/"; downloadPage = "https://sourceforge.net/projects/blobby/files/Blobby%20Volley%202%20%28Linux%29/"; - inherit version; }; } diff --git a/pkgs/games/blobwars/default.nix b/pkgs/games/blobwars/default.nix new file mode 100644 index 00000000000..b99c9f2b8e3 --- /dev/null +++ b/pkgs/games/blobwars/default.nix @@ -0,0 +1,34 @@ +{ stdenv, lib, fetchurl, pkg-config, gettext, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf, zlib }: + +stdenv.mkDerivation rec { + pname = "blobwars"; + version = "2.00"; + + src = fetchurl { + url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz"; + sha256 = "c406279f6cdf2aed3c6edb8d8be16efeda0217494acd525f39ee2bd3e77e4a99"; + }; + + nativeBuildInputs = [ pkg-config gettext ]; + buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_net SDL2_ttf zlib ]; + NIX_CFLAGS_COMPILE = [ "-Wno-error" ]; + + makeFlags = [ "PREFIX=$(out)" "RELEASE=1" ]; + + postInstall = '' + install -Dm755 $out/games/blobwars -t $out/bin + rm -r $out/games + cp -r {data,gfx,sound,music} $out/share/games/blobwars/ + # fix world readable bit + find $out/share/games/blobwars/. -type d -exec chmod 755 {} + + find $out/share/games/blobwars/. -type f -exec chmod 644 {} + + ''; + + meta = with lib; { + description = "Platform action game featuring a blob with lots of weapons"; + homepage = "https://www.parallelrealities.co.uk/games/metalBlobSolid/"; + license = with licenses; [ gpl2Plus free ]; + maintainers = with maintainers; [ iblech ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/games/boohu/default.nix b/pkgs/games/boohu/default.nix index 3ca8ee4693a..6b3c0e04f98 100644 --- a/pkgs/games/boohu/default.nix +++ b/pkgs/games/boohu/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, buildGoPackage}: +{lib, fetchurl, buildGoPackage}: buildGoPackage rec { @@ -16,7 +16,7 @@ buildGoPackage rec { postInstall = "mv $out/bin/boohu.git $out/bin/boohu"; - meta = with stdenv.lib; { + meta = with lib; { description = "A new coffee-break roguelike game"; longDescription = '' Break Out Of Hareka's Underground (Boohu) is a roguelike game mainly @@ -27,6 +27,6 @@ buildGoPackage rec { homepage = "https://download.tuxfamily.org/boohu/index.html"; license = licenses.isc; platforms = platforms.unix; - maintainers = with maintainers; [freepotion]; + maintainers = with maintainers; []; }; } diff --git a/pkgs/games/braincurses/default.nix b/pkgs/games/braincurses/default.nix index 86a8f865442..f3f862b97ef 100644 --- a/pkgs/games/braincurses/default.nix +++ b/pkgs/games/braincurses/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, ncurses }: +{ lib, stdenv, fetchFromGitHub, ncurses }: stdenv.mkDerivation rec { pname = "braincurses"; @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { install -Dt $out/bin braincurses ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/bderrly/braincurses"; description = "A version of the classic game Mastermind"; license = licenses.gpl2; diff --git a/pkgs/games/brogue/default.nix b/pkgs/games/brogue/default.nix index 1662f847bfa..77811e76e96 100644 --- a/pkgs/games/brogue/default.nix +++ b/pkgs/games/brogue/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, SDL, ncurses, libtcod, makeDesktopItem }: +{ lib, stdenv, fetchurl, SDL, ncurses, libtcod, makeDesktopItem }: stdenv.mkDerivation rec { pname = "brogue"; @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { # fix crash; shouldn’t be a security risk because it’s an offline game hardeningDisable = [ "stackprotector" "fortify" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A roguelike game"; homepage = "https://sites.google.com/site/broguegame/"; license = licenses.agpl3; diff --git a/pkgs/games/bsdgames/default.nix b/pkgs/games/bsdgames/default.nix index 41414a573a6..837fb4e1768 100644 --- a/pkgs/games/bsdgames/default.nix +++ b/pkgs/games/bsdgames/default.nix @@ -1,10 +1,11 @@ -{ stdenv, fetchurl, ncurses, openssl, flex, bison, less, miscfiles }: +{ lib, stdenv, fetchurl, ncurses, openssl, flex, bison, less, miscfiles }: -stdenv.mkDerivation { - name = "bsd-games-2.17"; +stdenv.mkDerivation rec { + pname = "bsd-games"; + version = "2.17"; src = fetchurl { - url = "ftp://metalab.unc.edu/pub/Linux/games/bsd-games-2.17.tar.gz"; + url = "ftp://metalab.unc.edu/pub/Linux/games/bsd-games-${version}.tar.gz"; sha256 = "0q7zdyyfvn15y0w4g54kq3gza89h61py727m8slmw73cxx594vq6"; }; @@ -60,8 +61,8 @@ stdenv.mkDerivation { meta = { homepage = "http://www.t2-project.org/packages/bsd-games.html"; description = "Ports of all the games from NetBSD-current that are free"; - license = stdenv.lib.licenses.free; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + license = lib.licenses.free; + maintainers = with lib.maintainers; [viric]; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/games/btanks/default.nix b/pkgs/games/btanks/default.nix index 5bb7cfa215b..202bab0df66 100644 --- a/pkgs/games/btanks/default.nix +++ b/pkgs/games/btanks/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchpatch, sconsPackages, pkgconfig, SDL, libGL, zlib, smpeg +{ lib, stdenv, fetchurl, fetchpatch, sconsPackages, pkg-config, SDL, libGL, zlib, smpeg , SDL_image, libvorbis, expat, zip, lua }: stdenv.mkDerivation rec { @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { sha256 = "0ha35kxc8xlbg74wsrbapfgxvcrwy6psjkqi7c6adxs55dmcxliz"; }; - nativeBuildInputs = [ sconsPackages.scons_3_0_1 pkgconfig ]; + nativeBuildInputs = [ sconsPackages.scons_3_0_1 pkg-config ]; buildInputs = [ SDL libGL zlib smpeg SDL_image libvorbis expat zip lua ]; @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { }) ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Fast 2d tank arcade game"; homepage = "https://sourceforge.net/projects/btanks/"; license = licenses.gpl2Plus; diff --git a/pkgs/games/bzflag/default.nix b/pkgs/games/bzflag/default.nix index 1ec24e02be0..35a481fb2f4 100644 --- a/pkgs/games/bzflag/default.nix +++ b/pkgs/games/bzflag/default.nix @@ -1,17 +1,17 @@ -{ stdenv, lib, fetchurl, pkgconfig +{ stdenv, lib, fetchurl, pkg-config , curl, SDL2, libGLU, libGL, glew, ncurses, c-ares , Carbon, CoreServices }: stdenv.mkDerivation rec { pname = "bzflag"; - version = "2.4.20"; + version = "2.4.22"; src = fetchurl { url = "https://download.bzflag.org/${pname}/source/${version}/${pname}-${version}.tar.bz2"; - sha256 = "16brxqmfiyz4j4lb8ihzjcbwqmpsms6vm3ijbp34lnw0blbwdjb2"; + sha256 = "sha256-nmRlMwK2V72LX5b+EVCp/4Ch1Tptfoo1E4xrGwIAak0="; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ curl SDL2 libGLU libGL glew ncurses c-ares ] ++ lib.optionals stdenv.isDarwin [ Carbon CoreServices ]; diff --git a/pkgs/games/cataclysm-dda/common.nix b/pkgs/games/cataclysm-dda/common.nix index 9ec73cdebe0..d91db073ff6 100644 --- a/pkgs/games/cataclysm-dda/common.nix +++ b/pkgs/games/cataclysm-dda/common.nix @@ -1,11 +1,11 @@ -{ stdenv, runtimeShell, pkgconfig, gettext, ncurses, CoreFoundation +{ lib, stdenv, runtimeShell, pkg-config, gettext, ncurses, CoreFoundation , tiles, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, freetype, Cocoa , debug , useXdgDir }: let - inherit (stdenv.lib) optionals optionalString; + inherit (lib) optionals optionalString; cursesDeps = [ gettext ncurses ] ++ optionals stdenv.isDarwin [ CoreFoundation ]; @@ -13,17 +13,15 @@ let tilesDeps = [ SDL2 SDL2_image SDL2_mixer SDL2_ttf freetype ] ++ optionals stdenv.isDarwin [ Cocoa ]; - 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 + patchDesktopFile = '' + substituteInPlace $out/share/applications/org.cataclysmdda.CataclysmDDA.desktop \ + --replace "Exec=cataclysm-tiles" "Exec=$out/bin/cataclysm-tiles" ''; 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 + install -D -m 444 build-data/osx/Info.plist -t $app/Contents + install -D -m 444 build-data/osx/AppIcon.icns -t $app/Contents/Resources mkdir $app/Contents/MacOS launcher=$app/Contents/MacOS/Cataclysm.sh cat << EOF > $launcher @@ -37,7 +35,7 @@ in stdenv.mkDerivation { pname = "cataclysm-dda"; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = cursesDeps ++ optionals tiles tilesDeps; @@ -58,28 +56,25 @@ stdenv.mkDerivation { ] ++ optionals tiles [ "TILES=1" "SOUND=1" ] ++ optionals stdenv.isDarwin [ - "NATIVE=osx" "CLANG=1" + "NATIVE=osx" + "CLANG=1" + "OSX_MIN=${stdenv.targetPlatform.darwinMinVersion}" ]; postInstall = optionalString tiles ( if !stdenv.isDarwin - then installXDGAppLauncher + then patchDesktopFile 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; }; - meta = with stdenv.lib; { + meta = with lib; { description = "A free, post apocalyptic, zombie infested rogue-like"; longDescription = '' Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world. diff --git a/pkgs/games/cataclysm-dda/default.nix b/pkgs/games/cataclysm-dda/default.nix index ada212ea7e9..1649cd031a4 100644 --- a/pkgs/games/cataclysm-dda/default.nix +++ b/pkgs/games/cataclysm-dda/default.nix @@ -33,7 +33,8 @@ let buildMod buildSoundPack buildTileSet - wrapCDDA; + wrapCDDA + attachPkgs; inherit pkgs; }; diff --git a/pkgs/games/cataclysm-dda/git.nix b/pkgs/games/cataclysm-dda/git.nix index 36f37f7aeba..3dc0e944b5e 100644 --- a/pkgs/games/cataclysm-dda/git.nix +++ b/pkgs/games/cataclysm-dda/git.nix @@ -1,10 +1,10 @@ -{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA +{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA, attachPkgs , tiles ? true, Cocoa , debug ? false , useXdgDir ? false -, version ? "2019-11-22" -, rev ? "a6c8ece992bffeae3788425dd4b3b5871e66a9cd" -, sha256 ? "0ww2q5gykxm802z1kffmnrfahjlx123j1gfszklpsv0b1fccm1ab" +, version ? "2021-07-03" +, rev ? "9017808252e1e149446c8f8bd7a6582ce0f95285" +, sha256 ? "0qrvkbyg098jb9hv69sg5093b1vj8f4n75p73v01jnmyxlz3ax28" }: let @@ -26,11 +26,6 @@ let "VERSION=git-${version}-${lib.substring 0 8 src.rev}" ]; - passthru = common.passthru // { - pkgs = pkgs.override { build = self; }; - withMods = wrapCDDA self; - }; - meta = common.meta // { maintainers = with lib.maintainers; common.meta.maintainers ++ [ rardiol ]; @@ -38,4 +33,4 @@ let }); in -self +attachPkgs pkgs self diff --git a/pkgs/games/cataclysm-dda/lib.nix b/pkgs/games/cataclysm-dda/lib.nix index 02678ed0228..f2b38a16aa5 100644 --- a/pkgs/games/cataclysm-dda/lib.nix +++ b/pkgs/games/cataclysm-dda/lib.nix @@ -1,6 +1,6 @@ { callPackage }: -{ +rec { buildMod = callPackage ./builder.nix { type = "mod"; }; @@ -14,4 +14,33 @@ }; wrapCDDA = callPackage ./wrapper.nix {}; + + # Required to fix `pkgs` and `withMods` attrs after applying `overrideAttrs`. + # + # Example: + # let + # myBuild = cataclysmDDA.jenkins.latest.tiles.overrideAttrs (_: { + # x = "hello"; + # }); + # + # # This refers to the derivation before overriding! So, `badExample.x` is not accessible. + # badExample = myBuild.withMods (_: []); + # + # # `myBuild` is correctly referred by `withMods` and `goodExample.x` is accessible. + # goodExample = let + # inherit (cataclysmDDA) attachPkgs pkgs; + # in + # (attachPkgs pkgs myBuild).withMods (_: []); + # in + # goodExample.x # returns "hello" + attachPkgs = pkgs: super: + let + self = super.overrideAttrs (old: { + passthru = old.passthru // { + pkgs = pkgs.override { build = self; }; + withMods = wrapCDDA self; + }; + }); + in + self; } diff --git a/pkgs/games/cataclysm-dda/pkgs/default.nix b/pkgs/games/cataclysm-dda/pkgs/default.nix index 6f3df09a786..39abad809c5 100644 --- a/pkgs/games/cataclysm-dda/pkgs/default.nix +++ b/pkgs/games/cataclysm-dda/pkgs/default.nix @@ -13,15 +13,17 @@ let }; }; - pkgs' = lib.mapAttrs (_: mod: lib.filterAttrs availableForBuild mod) pkgs; + pkgs' = lib.mapAttrs (_: mods: lib.filterAttrs isAvailable mods) pkgs; - availableForBuild = _: mod: + isAvailable = _: mod: if isNull build then true else if build.isTiles then - mod.forTiles + mod.forTiles or false + else if build.isCurses then + mod.forCurses or false else - mod.forCurses; + false; in lib.makeExtensible (_: pkgs') diff --git a/pkgs/games/cataclysm-dda/stable.nix b/pkgs/games/cataclysm-dda/stable.nix index 076a33a9e89..ba475ac9601 100644 --- a/pkgs/games/cataclysm-dda/stable.nix +++ b/pkgs/games/cataclysm-dda/stable.nix @@ -1,4 +1,4 @@ -{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA +{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA, attachPkgs , tiles ? true, Cocoa , debug ? false , useXdgDir ? false @@ -10,18 +10,13 @@ let }; self = common.overrideAttrs (common: rec { - version = "0.E-2"; + version = "0.F"; src = fetchFromGitHub { owner = "CleverRaven"; repo = "Cataclysm-DDA"; rev = version; - sha256 = "15l6w6lxays7qmsv0ci2ry53asb9an9dh7l7fc13256k085qcg68"; - }; - - passthru = common.passthru // { - pkgs = pkgs.override { build = self; }; - withMods = wrapCDDA self; + sha256 = "1jid8lcl04y768b3psj1ifhx96lmd6fn1j2wzxhl4ic7ra66p2z3"; }; meta = common.meta // { @@ -31,4 +26,4 @@ let }); in -self +attachPkgs pkgs self diff --git a/pkgs/games/cbonsai/default.nix b/pkgs/games/cbonsai/default.nix new file mode 100644 index 00000000000..0425f4f56b3 --- /dev/null +++ b/pkgs/games/cbonsai/default.nix @@ -0,0 +1,29 @@ +{ stdenv, lib, fetchFromGitLab, ncurses, pkg-config, nix-update-script }: + +stdenv.mkDerivation rec { + version = "1.2.1"; + pname = "cbonsai"; + + src = fetchFromGitLab { + owner = "jallbrit"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-kofJqMoBsvHrV3XfIQbSYO7OWpN7UgvrSs3WX3IVAJs="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ncurses ]; + + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; + installFlags = [ "PREFIX=$(out)" ]; + + passthru.updateScript = nix-update-script { attrPath = pname; }; + + meta = with lib; { + description = "Grow bonsai trees in your terminal"; + homepage = "https://gitlab.com/jallbrit/cbonsai"; + license = with licenses; [ gpl3Only ]; + maintainers = with maintainers; [ manveru ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/games/cdogs-sdl/default.nix b/pkgs/games/cdogs-sdl/default.nix new file mode 100644 index 00000000000..c34c9efb167 --- /dev/null +++ b/pkgs/games/cdogs-sdl/default.nix @@ -0,0 +1,52 @@ +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, SDL2 +, SDL2_image +, SDL2_mixer +, cmake +, gtk3-x11 +, python3 +, protobuf +}: + +stdenv.mkDerivation rec { + pname = "cdogs"; + version = "0.13.0"; + + src = fetchFromGitHub { + repo = "cdogs-sdl"; + owner = "cxong"; + rev = version; + sha256 = "sha256-7wNiDA/gOpqzSFWw8Bn6suC/f5RXdDTxPV49nCvOxas="; + }; + + postPatch = '' + patchShebangs src/proto/nanopb/generator/* + ''; + + cmakeFlags = [ "-DCDOGS_DATA_DIR=${placeholder "out"}/" ]; + + nativeBuildInputs = [ + pkg-config + cmake + (python3.withPackages (pp: with pp; [ pp.protobuf setuptools ])) + ]; + + buildInputs = [ + SDL2 + SDL2_image + SDL2_mixer + gtk3-x11 + protobuf + ]; + + meta = with lib; { + homepage = "https://cxong.github.io/cdogs-sdl"; + description = "Open source classic overhead run-and-gun game"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ nixinator ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/games/cgoban/default.nix b/pkgs/games/cgoban/default.nix new file mode 100644 index 00000000000..162de112fb5 --- /dev/null +++ b/pkgs/games/cgoban/default.nix @@ -0,0 +1,38 @@ +{ lib +, stdenv +, writers +, adoptopenjdk-jre-bin +, fetchurl +, makeWrapper +}: +stdenv.mkDerivation rec { + pname = "cgoban"; + version = "3.5.23"; + + nativeBuildInputs = [ adoptopenjdk-jre-bin makeWrapper ]; + + src = fetchurl { + url = "https://web.archive.org/web/20210116034119/https://files.gokgs.com/javaBin/cgoban.jar"; + sha256 = "0srw1hqr9prgr9dagfbh2j6p9ivaj40kdpyhs6zjkg7lhnnrrrcv"; + }; + + dontConfigure = true; + dontUnpack = true; + dontBuild = true; + dontPatchELF = true; + + installPhase = '' + runHook preInstall + install -D $src $out/lib/cgoban.jar + makeWrapper ${adoptopenjdk-jre-bin}/bin/java $out/bin/cgoban --add-flags "-jar $out/lib/cgoban.jar" + runHook postInstall + ''; + + meta = with lib; { + description = "Client for the KGS Go Server"; + homepage = "https://www.gokgs.com/"; + license = licenses.free; + maintainers = with maintainers; [ savannidgerinel ]; + platforms = adoptopenjdk-jre-bin.meta.platforms; + }; +} diff --git a/pkgs/games/chessdb/default.nix b/pkgs/games/chessdb/default.nix index 76862c4bffe..6de8726722e 100644 --- a/pkgs/games/chessdb/default.nix +++ b/pkgs/games/chessdb/default.nix @@ -1,14 +1,16 @@ -{ stdenv, fetchurl, tcl, tk, libX11, makeWrapper }: +{ lib, stdenv, fetchurl, tcl, tk, libX11, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "chessdb"; + version = "3.6.19-beta-1"; -stdenv.mkDerivation { - name = "chessdb-3.6.19-beta-1"; - src = fetchurl { - url = "mirror://sourceforge/chessdb/ChessDB-3.6.19-beta-1.tar.gz"; + url = "mirror://sourceforge/chessdb/ChessDB-${version}.tar.gz"; sha256 = "0brc3wln3bxp979iqj2w1zxpfd0pch8zzazhdmwf7acww4hrsz62"; }; - buildInputs = [ tcl tk libX11 makeWrapper ]; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ tcl tk libX11 ]; makeFlags = [ "BINDIR=$(out)/bin" @@ -25,6 +27,6 @@ stdenv.mkDerivation { meta = { homepage = "http://chessdb.sourceforge.net/"; description = "A free chess database"; - platforms = stdenv.lib.platforms.linux; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/chessx/default.nix b/pkgs/games/chessx/default.nix index 0ff05556cdb..1d2b366cf38 100644 --- a/pkgs/games/chessx/default.nix +++ b/pkgs/games/chessx/default.nix @@ -1,6 +1,6 @@ { mkDerivation -, stdenv -, pkgconfig +, lib +, pkg-config , zlib , qtbase , qtsvg @@ -12,15 +12,15 @@ mkDerivation rec { pname = "chessx"; - version = "1.5.0"; + version = "1.5.6"; src = fetchurl { url = "mirror://sourceforge/chessx/chessx-${version}.tgz"; - sha256 = "09rqyra28w3z9ldw8sx07k5ap3sjlli848p737maj7c240rasc6i"; + sha256 = "sha256-0JpLU0qQnF8aOYxkBlBJov3zBJe8gcy98NlAQSNk0gU="; }; nativeBuildInputs = [ - pkgconfig + pkg-config qmake ]; @@ -46,9 +46,9 @@ mkDerivation rec { runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://chessx.sourceforge.net/"; - description = "ChessX allows you to browse and analyse chess games"; + description = "Browse and analyse chess games"; license = licenses.gpl2; maintainers = [ maintainers.luispedro ]; platforms = platforms.linux; diff --git a/pkgs/games/chiaki/default.nix b/pkgs/games/chiaki/default.nix index be4ec7b73b4..ef454e50006 100644 --- a/pkgs/games/chiaki/default.nix +++ b/pkgs/games/chiaki/default.nix @@ -1,30 +1,63 @@ -{ lib, mkDerivation, fetchFromGitHub -, cmake, ffmpeg, libopus, qtbase, qtmultimedia, qtsvg, pkgconfig, protobuf -, python3Packages, SDL2 }: +{ lib, stdenv +, fetchgit +, cmake +, pkg-config +, protobuf +, python3Packages +, ffmpeg +, libopus +, mkDerivation +, qtbase +, qtmultimedia +, qtsvg +, SDL2 +, libevdev +, udev +, qtmacextras +}: mkDerivation rec { pname = "chiaki"; - version = "1.2.1"; + version = "2.1.0"; - src = fetchFromGitHub { + src = fetchgit { + url = "https://git.sr.ht/~thestr4ng3r/chiaki"; rev = "v${version}"; - owner = "thestr4ng3r"; - repo = "chiaki"; fetchSubmodules = true; - sha256 = "00lzsbjd1w1bhlblgf7zp112sk8ac09c3bzi5ljxbn02mi0an3qp"; + sha256 = "1hgh2j71rch53cnpm3f195gpfgrb4hd0yqa810k3ikar8zl4h7sd"; }; nativeBuildInputs = [ - cmake pkgconfig protobuf python3Packages.python python3Packages.protobuf + cmake + pkg-config + protobuf + python3Packages.protobuf + python3Packages.python + ]; + + buildInputs = [ + ffmpeg + libopus + qtbase + qtmultimedia + qtsvg + protobuf + SDL2 + ] ++ lib.optionals stdenv.isLinux [ + libevdev + udev + ] ++ lib.optionals stdenv.isDarwin [ + qtmacextras ]; - buildInputs = [ ffmpeg libopus qtbase qtmultimedia qtsvg protobuf SDL2 ]; doCheck = true; + installCheckPhase = "$out/bin/chiaki --help"; + meta = with lib; { - homepage = "https://github.com/thestr4ng3r/chiaki"; - description = "Free and Open Source PS4 Remote Play Client"; - license = licenses.gpl3Plus; + homepage = "https://git.sr.ht/~thestr4ng3r/chiaki"; + description = "Free and Open Source PlayStation Remote Play Client"; + license = licenses.agpl3Only; maintainers = with maintainers; [ delroth ]; platforms = platforms.all; }; diff --git a/pkgs/games/chocolate-doom/default.nix b/pkgs/games/chocolate-doom/default.nix index 1b77a72f8d0..28ef9b6417e 100644 --- a/pkgs/games/chocolate-doom/default.nix +++ b/pkgs/games/chocolate-doom/default.nix @@ -1,4 +1,4 @@ -{ stdenv, autoreconfHook, pkgconfig, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub }: +{ lib, stdenv, autoreconfHook, pkg-config, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub }: stdenv.mkDerivation rec { pname = "chocolate-doom"; @@ -15,16 +15,16 @@ stdenv.mkDerivation rec { sed -e 's#/games#/bin#g' -i src{,/setup}/Makefile.am ''; - nativeBuildInputs = [ autoreconfHook pkgconfig ]; + nativeBuildInputs = [ autoreconfHook pkg-config ]; buildInputs = [ SDL2 SDL2_mixer SDL2_net ]; enableParallelBuilding = true; meta = { homepage = "http://chocolate-doom.org/"; description = "A Doom source port that accurately reproduces the experience of Doom as it was played in the 1990s"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.unix; - hydraPlatforms = stdenv.lib.platforms.linux; # darwin times out - maintainers = with stdenv.lib.maintainers; [ MP2E ]; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.unix; + hydraPlatforms = lib.platforms.linux; # darwin times out + maintainers = with lib.maintainers; [ MP2E ]; }; } diff --git a/pkgs/games/chromium-bsu/default.nix b/pkgs/games/chromium-bsu/default.nix new file mode 100644 index 00000000000..1ab2fb8722b --- /dev/null +++ b/pkgs/games/chromium-bsu/default.nix @@ -0,0 +1,68 @@ +{ lib +, stdenv +, fetchurl +, SDL2 +, SDL2_image +, SDL2_mixer +, fontconfig +, freealut +, freeglut +, ftgl +, gettext +, glpng +, libGL +, libGLU +, openal +, pkg-config +, quesoglc +}: + +stdenv.mkDerivation rec { + pname = "chromium-bsu"; + version = "0.9.16.1"; + + src = fetchurl { + url = "mirror://sourceforge/project/chromium-bsu/Chromium%20B.S.U.%20source%20code/${pname}-${version}.tar.gz"; + hash = "sha256-ocFBo00ZpZYHroEWahmGTrjITPhrFVRi/tMabVbhYko="; + }; + + nativeBuildInputs = [ + gettext + pkg-config + ]; + buildInputs = [ + SDL2 + SDL2_image + SDL2_mixer + fontconfig + freealut + freeglut + ftgl + glpng + libGL + libGLU + openal + quesoglc + ]; + + # Autodetection is somewhat buggy; this is to avoid SLD1 to be loaded + configureFlags = [ + "--disable-sdlimage" + "--disable-sdlmixer" + ]; + + + postInstall = '' + install -D misc/chromium-bsu.png $out/share/pixmaps/chromium-bsu.png + install -D misc/chromium-bsu.desktop $out/share/applications/chromium-bsu.desktop + ''; + + meta = with lib; { + homepage = "http://chromium-bsu.sourceforge.net/"; + description = "A fast paced, arcade-style, top-scrolling space shooter"; + license = licenses.artistic1; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + }; +} +# TODO [ AndersonTorres ]: joystick; gothic uralic font diff --git a/pkgs/games/ckan/default.nix b/pkgs/games/ckan/default.nix index a13ff8d66fa..3649369aeaa 100644 --- a/pkgs/games/ckan/default.nix +++ b/pkgs/games/ckan/default.nix @@ -1,44 +1,35 @@ -{ stdenv, fetchFromGitHub, makeWrapper, perl, mono, gtk2, curl }: +{ lib, stdenv, fetchurl, makeWrapper, mono, gtk2, curl }: stdenv.mkDerivation rec { pname = "ckan"; - version = "1.16.1"; + version = "1.30.4"; - src = fetchFromGitHub { - owner = "KSP-CKAN"; - repo = "CKAN"; - rev = "v${version}"; - sha256 = "0lfvl8w09lakz35szp5grfvhq8xx486f5igvj1m6azsql4n929lg"; + src = fetchurl { + url = "https://github.com/KSP-CKAN/CKAN/releases/download/v${version}/ckan.exe"; + sha256 = "sha256-IgPqUEDpaIuGoaGoH2GCEzh3KxF3pkJC3VjTYXwSiQE="; }; - buildInputs = [ makeWrapper perl mono ]; + dontUnpack = true; - postPatch = '' - substituteInPlace bin/build \ - --replace /usr/bin/perl ${perl}/bin/perl - ''; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ mono ]; - # Tests don't currently work, as they try to write into /var/empty. - doCheck = false; - checkTarget = "test"; + libraries = lib.makeLibraryPath [ gtk2 curl ]; - libraries = stdenv.lib.makeLibraryPath [ gtk2 curl ]; + buildPhase = "true"; installPhase = '' - mkdir -p $out/bin - for exe in *.exe; do - install -m 0644 $exe $out/bin - makeWrapper ${mono}/bin/mono $out/bin/$(basename $exe .exe) \ - --add-flags $out/bin/$exe \ - --set LD_LIBRARY_PATH $libraries - done + install -m 644 -D $src $out/bin/ckan.exe + makeWrapper ${mono}/bin/mono $out/bin/ckan \ + --add-flags $out/bin/ckan.exe \ + --set LD_LIBRARY_PATH $libraries ''; - meta = { + meta = with lib; { description = "Mod manager for Kerbal Space Program"; homepage = "https://github.com/KSP-CKAN/CKAN"; - license = stdenv.lib.licenses.mit; - maintainers = [ stdenv.lib.maintainers.Baughn ]; - platforms = stdenv.lib.platforms.all; - }; + license = licenses.mit; + maintainers = with maintainers; [ Baughn ymarkus ]; + platforms = platforms.all; + }; } diff --git a/pkgs/games/clonehero/default.nix b/pkgs/games/clonehero/default.nix new file mode 100644 index 00000000000..cf1fad8d945 --- /dev/null +++ b/pkgs/games/clonehero/default.nix @@ -0,0 +1,73 @@ +{ lib +, stdenv +, fetchurl +, autoPatchelfHook +, alsa-lib +, gtk2 +, libXrandr +, libXScrnSaver +, udev +, zlib +}: + +let + name = "clonehero"; +in +stdenv.mkDerivation rec { + pname = "${name}-unwrapped"; + version = "0.23.2.2"; + + src = fetchurl { + url = "http://dl.clonehero.net/${name}-v${lib.removePrefix "0" version}/${name}-linux.tar.gz"; + sha256 = "0k9jcnd55yhr42gj8cmysd18yldp4k3cpk4z884p2ww03fyfq7mi"; + }; + + outputs = [ "out" "doc" ]; + + nativeBuildInputs = [ autoPatchelfHook ]; + + buildInputs = [ + # Load-time libraries (loaded from DT_NEEDED section in ELF binary) + gtk2 + stdenv.cc.cc.lib + zlib + + # Run-time libraries (loaded with dlopen) + alsa-lib # ALSA sound + libXrandr # X11 resolution detection + libXScrnSaver # X11 screensaver prevention + udev # udev input drivers + ]; + + installPhase = '' + mkdir -p "$out/bin" "$out/share" + install -Dm755 ${name} "$out/bin" + cp -r clonehero_Data "$out/share" + + mkdir -p "$doc/share/${name}" + cp README.txt "$doc/share/${name}" + ''; + + # Patch required run-time libraries as load-time libraries + # + # Libraries found with: + # > strings clonehero | grep '\.so' + # and + # > strace clonehero 2>&1 | grep '\.so' + postFixup = '' + patchelf \ + --add-needed libasound.so.2 \ + --add-needed libudev.so.1 \ + --add-needed libXrandr.so.2 \ + --add-needed libXss.so.1 \ + "$out/bin/${name}" + ''; + + meta = with lib; { + description = "Clone of Guitar Hero and Rockband-style games"; + homepage = "https://clonehero.net"; + license = licenses.unfree; + maintainers = with maintainers; [ kira-bruneau ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/games/clonehero/fhs-wrapper.nix b/pkgs/games/clonehero/fhs-wrapper.nix new file mode 100644 index 00000000000..97758b2c1fa --- /dev/null +++ b/pkgs/games/clonehero/fhs-wrapper.nix @@ -0,0 +1,39 @@ +{ clonehero-unwrapped +, makeDesktopItem +, buildFHSUserEnv +, liberation_ttf +, callPackage +}: + +let + name = "clonehero"; + desktopName = "Clone Hero"; + desktopItem = makeDesktopItem { + inherit name desktopName; + comment = clonehero-unwrapped.meta.description; + exec = name; + icon = name; + categories = "Game;"; + }; +in +buildFHSUserEnv { + inherit name; + inherit (clonehero-unwrapped) meta; + + # Clone Hero has /usr/share/fonts hard-coded in its binary for looking up fonts. + # This workaround is necessary for rendering text on the keybinding screen (and possibly elsewhere) + # If a better solution is found, the FHS environment can be removed. + extraBuildCommands = '' + chmod +w usr/share + mkdir -p usr/share/fonts/truetype + ln -s ${liberation_ttf}/share/fonts/truetype/* usr/share/fonts/truetype + ''; + + extraInstallCommands = '' + mkdir -p "$out/share/applications" "$out/share/pixmaps" + cp ${desktopItem}/share/applications/* "$out/share/applications" + ln -s ${clonehero-unwrapped}/share/clonehero_Data/Resources/UnityPlayer.png "$out/share/pixmaps/${name}.png" + ''; + + runScript = callPackage ./xdg-wrapper.nix { }; +} diff --git a/pkgs/games/clonehero/xdg-wrapper.nix b/pkgs/games/clonehero/xdg-wrapper.nix new file mode 100644 index 00000000000..2890e469db0 --- /dev/null +++ b/pkgs/games/clonehero/xdg-wrapper.nix @@ -0,0 +1,21 @@ +{ stdenv, clonehero-unwrapped, writeScript }: + +# Clone Hero doesn't have an installer, so it just stores configuration & data relative to the binary. +# This wrapper works around that limitation, storing game configuration & data in XDG_CONFIG_HOME. +let + name = "clonehero"; + desktopName = "Clone Hero"; +in +writeScript "${name}-xdg-wrapper-${clonehero-unwrapped.version}" '' + #!${stdenv.shell} -e + configDir="''${XDG_CONFIG_HOME:-$HOME/.config}/unity3d/srylain Inc_/${desktopName}" + mkdir -p "$configDir" + + # Force link shipped clonehero_Data, unless directory already exists (to allow modding) + if [ ! -d "$configDir/clonehero_Data" ] || [ -L "$configDir/clonehero_Data" ]; then + ln -snf ${clonehero-unwrapped}/share/clonehero_Data "$configDir" + fi + + # Fake argv[0] to emulate running in the config directory + exec -a "$configDir/${name}" ${clonehero-unwrapped}/bin/${name} "$@" +'' diff --git a/pkgs/games/cockatrice/default.nix b/pkgs/games/cockatrice/default.nix index 9d07d09e27b..1388d830a9e 100644 --- a/pkgs/games/cockatrice/default.nix +++ b/pkgs/games/cockatrice/default.nix @@ -1,29 +1,29 @@ -{ stdenv, fetchFromGitHub, mkDerivation, cmake, protobuf +{ lib, fetchFromGitHub, mkDerivation, cmake, protobuf , qtbase, qtmultimedia, qttools, qtwebsockets, wrapQtAppsHook }: mkDerivation rec { pname = "cockatrice"; - version = "2020-03-20-Release-2.7.4"; + version = "2021-02-03-Development-2.8.1-beta"; src = fetchFromGitHub { owner = "Cockatrice"; repo = "Cockatrice"; - rev = "${version}"; - sha256 = "1d229gswfcqxch19wb744d9h897qwzf2y9imwrbcwnlhpbr1j62k"; + rev = version; + sha256 = "0g1d7zq4lh4jf08mvvgp6m2r2gdvy4y1mhf46c0s8607h2l8vavh"; }; buildInputs = [ - cmake qtbase qtmultimedia protobuf qttools qtwebsockets + qtbase qtmultimedia protobuf qttools qtwebsockets ]; - nativeBuildInputs = [ wrapQtAppsHook ]; + nativeBuildInputs = [ cmake wrapQtAppsHook ]; meta = { homepage = "https://github.com/Cockatrice/Cockatrice"; description = "A cross-platform virtual tabletop for multiplayer card games"; - license = stdenv.lib.licenses.gpl2; - maintainers = with stdenv.lib.maintainers; [ evanjs ]; - platforms = with stdenv.lib.platforms; linux; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ evanjs ]; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/games/colobot/data.nix b/pkgs/games/colobot/data.nix new file mode 100644 index 00000000000..7ae9dbb2b5e --- /dev/null +++ b/pkgs/games/colobot/data.nix @@ -0,0 +1,41 @@ +{ stdenv, lib, fetchFromGitHub, cmake +, gettext, vorbis-tools +, xmlstarlet, doxygen, python3 }: + +stdenv.mkDerivation rec { + pname = "colobot-data"; + version = "0.1.12-alpha"; + + src = fetchFromGitHub { + owner = "colobot"; + repo = "colobot-data"; + rev = "colobot-gold-${version}"; + sha256 = "1vm33s52ymwd03x24i9bqiglw5v3wgd7rlzyx9r5ww0nnqzwbwi6"; + }; + + nativeBuildInputs = [ cmake vorbis-tools xmlstarlet doxygen python3 ]; + buildInputs = [ gettext ]; + + enableParallelBuilding = false; + # Build procedure requires the data folder + patchPhase = '' + cp -r $src localSrc + chmod +w localSrc/help/bots/po + find -type d -exec chmod +w {} \; + for po in localSrc/help/{bots,cbot,object,generic,programs}/po/* localSrc/levels/*{/*/*,}/po/*; do + rm $po + touch $po + done + # skip music + rm localSrc/music/CMakeLists.txt + cd localSrc + ''; + + meta = with lib; { + homepage = "https://colobot.info/"; + description = "Game data for colobot"; + license = licenses.gpl3; + maintainers = with maintainers; [ freezeboy ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/colobot/default.nix b/pkgs/games/colobot/default.nix new file mode 100644 index 00000000000..b26244ccc5f --- /dev/null +++ b/pkgs/games/colobot/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, boost, SDL2, SDL2_image, SDL2_ttf, libpng +, glew, gettext, libsndfile, libvorbis, libogg, physfs, openal +, xmlstarlet, doxygen, python3, callPackage }: + +let + colobot-data = callPackage ./data.nix {}; +in +stdenv.mkDerivation rec { + pname = "colobot"; + # Maybe require an update to package colobot-data as well + # in file data.nix next to this one + version = "0.1.12-alpha"; + + src = fetchFromGitHub { + owner = "colobot"; + repo = "colobot"; + rev = "colobot-gold-${version}"; + sha256 = "0viq5s4zqs33an7rdmc3anf74ml7mwwcwf60alhvp9hj5jr547s2"; + }; + + patches = [ + # Fix issue with newer compilers, like used in nixpkgs + # https://github.com/colobot/colobot/pull/1291 + (fetchpatch { + url = "https://github.com/colobot/colobot/commit/fc2bd68876ac6302dbc8e91e8ffa33592db14b21.patch"; + sha256 = "sha256-PKe8jeyHpTT86tprSafQhNqTYBrSonz+r2fL1lVJdfo="; + }) + ]; + + nativeBuildInputs = [ cmake xmlstarlet doxygen python3 ]; + buildInputs = [ boost SDL2 SDL2_image SDL2_ttf libpng glew gettext libsndfile libvorbis libogg physfs openal ]; + + enableParallelBuilding = false; + + # The binary ends in games directoy + postInstall = '' + mv $out/games $out/bin + for contents in ${colobot-data}/share/games/colobot/*; do + ln -s $contents $out/share/games/colobot + done + ''; + + meta = with lib; { + homepage = "https://colobot.info/"; + description = "Colobot: Gold Edition is a real-time strategy game, where you can program your bots"; + license = licenses.gpl3; + maintainers = with maintainers; [ freezeboy ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/commandergenius/default.nix b/pkgs/games/commandergenius/default.nix index 251ea852cf1..725cc5231c7 100644 --- a/pkgs/games/commandergenius/default.nix +++ b/pkgs/games/commandergenius/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitLab, SDL2, SDL2_image, pkgconfig +{ lib, stdenv, fetchFromGitLab, SDL2, SDL2_image, pkg-config , libvorbis, libGL, boost, cmake, zlib, curl, SDL2_mixer, python3 }: @@ -20,14 +20,14 @@ stdenv.mkDerivation rec { export makeFlags="$makeFlags DESTDIR=$(out)" ''; - nativeBuildInputs = [ cmake pkgconfig ]; + nativeBuildInputs = [ cmake pkg-config ]; postPatch = '' NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(sdl2-config --cflags)" sed -i 's,APPDIR games,APPDIR bin,' src/install.cmake ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Modern Interpreter for the Commander Keen Games"; longDescription = '' Commander Genius is an open-source clone of diff --git a/pkgs/games/construo/default.nix b/pkgs/games/construo/default.nix index 815c2f3fab4..2565d8599a5 100644 --- a/pkgs/games/construo/default.nix +++ b/pkgs/games/construo/default.nix @@ -1,4 +1,4 @@ -{ stdenv +{ lib, stdenv , fetchurl , libX11 , zlib @@ -18,9 +18,9 @@ stdenv.mkDerivation rec { }; buildInputs = [ libX11 zlib xorgproto ] - ++ stdenv.lib.optional (libGL != null) libGL - ++ stdenv.lib.optional (libGLU != null) libGLU - ++ stdenv.lib.optional (freeglut != null) freeglut; + ++ lib.optional (libGL != null) libGL + ++ lib.optional (libGLU != null) libGLU + ++ lib.optional (freeglut != null) freeglut; preConfigure = '' substituteInPlace src/Makefile.in \ @@ -30,6 +30,6 @@ stdenv.mkDerivation rec { meta = { description = "Masses and springs simulation game"; homepage = "http://fs.fsf.org/construo/"; - license = stdenv.lib.licenses.gpl3; + license = lib.licenses.gpl3; }; } diff --git a/pkgs/games/crack-attack/default.nix b/pkgs/games/crack-attack/default.nix index 05c829441ad..fb13ce8c163 100644 --- a/pkgs/games/crack-attack/default.nix +++ b/pkgs/games/crack-attack/default.nix @@ -1,10 +1,11 @@ -{ stdenv, fetchurl, pkgconfig, gtk2, freeglut, SDL, SDL_mixer, libGLU, libGL, libXi, libXmu }: +{ lib, stdenv, fetchurl, pkg-config, gtk2, freeglut, SDL, SDL_mixer, libGLU, libGL, libXi, libXmu }: -stdenv.mkDerivation { - name = "crack-attack-1.1.14"; +stdenv.mkDerivation rec { + pname = "crack-attack"; + version = "1.1.14"; src = fetchurl { - url = "mirror://savannah/crack-attack/crack-attack-1.1.14.tar.gz"; + url = "mirror://savannah/crack-attack/crack-attack-${version}.tar.gz"; sha256 = "1sakj9a2q05brpd7lkqxi8q30bccycdzd96ns00s6jbxrzjlijkm"; }; @@ -19,7 +20,7 @@ stdenv.mkDerivation { "--datadir=${placeholder "out"}/share" ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ gtk2 freeglut SDL SDL_mixer libGLU libGL libXi libXmu ]; hardeningDisable = [ "format" ]; @@ -28,8 +29,8 @@ stdenv.mkDerivation { meta = { description = "A fast-paced puzzle game inspired by the classic Super NES title Tetris Attack!"; homepage = "https://www.nongnu.org/crack-attack/"; - license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.linux; - maintainers = [ stdenv.lib.maintainers.piotr ]; + license = lib.licenses.gpl2; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.piotr ]; }; } diff --git a/pkgs/games/crafty/default.nix b/pkgs/games/crafty/default.nix index 191baa7e592..b5b53aa3c41 100644 --- a/pkgs/games/crafty/default.nix +++ b/pkgs/games/crafty/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, unzip }: +{ lib, stdenv, fetchurl, unzip }: stdenv.mkDerivation rec { pname = "crafty"; @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { sha256 = "12g70mgfifwssfvndzq94pin34dizlixhsga75vgj7dakysi2p7f"; }; - buildInputs = [ unzip ]; + nativeBuildInputs = [ unzip ]; unpackPhase = '' mkdir "craftysrc" @@ -66,8 +66,8 @@ stdenv.mkDerivation rec { meta = { homepage = "http://www.craftychess.com/"; description = "Chess program developed by Dr. Robert M. Hyatt"; - license = stdenv.lib.licenses.unfree; - platforms = stdenv.lib.platforms.unix; - maintainers = [ stdenv.lib.maintainers.jwiegley ]; + license = lib.licenses.unfree; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.jwiegley ]; }; } diff --git a/pkgs/games/crawl/crawl_purify.patch b/pkgs/games/crawl/crawl_purify.patch index dda55b09f32..8650141744d 100644 --- a/pkgs/games/crawl/crawl_purify.patch +++ b/pkgs/games/crawl/crawl_purify.patch @@ -1,20 +1,5 @@ -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 diff --git a/crawl-ref/source/util/find_font b/crawl-ref/source/util/find_font +index f8b576fd63..b95c21c0a1 100755 --- a/crawl-ref/source/util/find_font +++ b/crawl-ref/source/util/find_font @@ -1,6 +1,6 @@ @@ -25,7 +10,7 @@ diff --git a/crawl-ref/source/util/find_font b/crawl-ref/source/util/find_font name=$1 [ "$name" ] || { echo "Usage: $0 <fontname.ttf>" >&2; exit 100; } -@@ -11,6 +11,6 @@ +@@ -11,6 +11,6 @@ name=$1 for dir in $FONTDIRS; do [ -d "$dir" ] && echo "$dir" done @@ -34,6 +19,7 @@ diff --git a/crawl-ref/source/util/find_font b/crawl-ref/source/util/find_font | head -n1 } 2>/dev/null diff --git a/crawl-ref/source/windowmanager-sdl.cc b/crawl-ref/source/windowmanager-sdl.cc +index e29ccff507..9bf01e040a 100644 --- a/crawl-ref/source/windowmanager-sdl.cc +++ b/crawl-ref/source/windowmanager-sdl.cc @@ -20,7 +20,7 @@ diff --git a/pkgs/games/crawl/default.nix b/pkgs/games/crawl/default.nix index eeb8bd7f9db..11ac23fcef3 100644 --- a/pkgs/games/crawl/default.nix +++ b/pkgs/games/crawl/default.nix @@ -1,6 +1,6 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, which, sqlite, lua5_1, perl, python3, zlib, pkgconfig, ncurses +{ stdenv, lib, fetchFromGitHub, fetchpatch, which, sqlite, lua5_1, perl, python3, zlib, pkg-config, ncurses , dejavu_fonts, libpng, SDL2, SDL2_image, SDL2_mixer, libGLU, libGL, freetype, pngcrush, advancecomp -, tileMode ? false, enableSound ? tileMode +, tileMode ? false, enableSound ? tileMode, buildPackages # MacOS / Darwin builds , darwin ? null @@ -8,19 +8,19 @@ stdenv.mkDerivation rec { name = "crawl-${version}${lib.optionalString tileMode "-tiles"}"; - version = "0.25.0"; + version = "0.26.1"; src = fetchFromGitHub { owner = "crawl"; repo = "crawl"; rev = version; - sha256 = "0swcl8cxz64yw8dl9macz8ar1ccwrkwz89j7s1f60inb5jlxifqm"; + sha256 = "sha256-lh0lCMZRH+c6jSHjLFDU3wjy6Oyp59ZcPaqg5PWVrkk="; }; # Patch hard-coded paths and remove force library builds patches = [ ./crawl_purify.patch ]; - nativeBuildInputs = [ pkgconfig which perl pngcrush advancecomp ]; + nativeBuildInputs = [ pkg-config which perl pngcrush advancecomp ]; # Still unstable with luajit buildInputs = [ lua5_1 zlib sqlite ncurses ] @@ -44,7 +44,8 @@ stdenv.mkDerivation rec { fontsPath = lib.optionalString tileMode dejavu_fonts; - makeFlags = [ "prefix=${placeholder "out"}" "FORCE_CC=cc" "FORCE_CXX=c++" "HOSTCXX=c++" + makeFlags = [ "prefix=${placeholder "out"}" "FORCE_CC=${stdenv.cc.targetPrefix}cc" "FORCE_CXX=${stdenv.cc.targetPrefix}c++" "HOSTCXX=${buildPackages.stdenv.cc.targetPrefix}c++" + "FORCE_PKGCONFIG=y" "SAVEDIR=~/.crawl" "sqlite=${sqlite.dev}" "DATADIR=${placeholder "out"}" ] ++ lib.optional tileMode "TILES=y" @@ -60,7 +61,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { description = "Open-source, single-player, role-playing roguelike game"; homepage = "http://crawl.develz.org/"; longDescription = '' diff --git a/pkgs/games/crispy-doom/default.nix b/pkgs/games/crispy-doom/default.nix index 5bd6e714e42..04c0868510f 100644 --- a/pkgs/games/crispy-doom/default.nix +++ b/pkgs/games/crispy-doom/default.nix @@ -1,36 +1,27 @@ -{ stdenv, autoreconfHook, pkgconfig, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub, fetchpatch }: +{ lib, stdenv, autoreconfHook, pkg-config, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub, python2 }: stdenv.mkDerivation rec { pname = "crispy-doom"; - version = "5.8.0"; + version = "5.10.1"; src = fetchFromGitHub { owner = "fabiangreffrath"; repo = pname; rev = "${pname}-${version}"; - sha256 = "1b6gn0dysv631jynh769whww9xcss1gms78sz3nrn855q1dsvcb4"; + sha256 = "sha256-5doytVxemqaXWXiqDSQUEAe71xmY0pOLASj/NJNyM5g="; }; - 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 + for script in $(grep -lr '^#!/usr/bin/env python$'); do patchShebangs $script; done ''; - nativeBuildInputs = [ autoreconfHook pkgconfig ]; + nativeBuildInputs = [ autoreconfHook pkg-config python2 ]; buildInputs = [ SDL2 SDL2_mixer SDL2_net ]; enableParallelBuilding = true; + strictDeps = true; + meta = { homepage = "http://fabiangreffrath.github.io/crispy-doom"; description = "A limit-removing enhanced-resolution Doom source port based on Chocolate Doom"; @@ -38,8 +29,8 @@ stdenv.mkDerivation rec { Crispy Doom is a limit-removing enhanced-resolution Doom source port based on Chocolate Doom. Its name means that 640x400 looks \"crisp\" and is also a slight reference to its origin. ''; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.unix; - maintainers = with stdenv.lib.maintainers; [ neonfuz ]; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ neonfuz ]; }; } diff --git a/pkgs/games/crrcsim/default.nix b/pkgs/games/crrcsim/default.nix index e57d6bcab06..741f402870a 100644 --- a/pkgs/games/crrcsim/default.nix +++ b/pkgs/games/crrcsim/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, libGLU, libGL, SDL, SDL_mixer, plib, libjpeg }: +{ lib, stdenv, fetchurl, libGLU, libGL, SDL, SDL_mixer, plib, libjpeg }: let version = "0.9.13"; in @@ -21,8 +21,8 @@ stdenv.mkDerivation rec { meta = { description = "A model-airplane flight simulator"; - maintainers = with stdenv.lib.maintainers; [ raskin ]; + maintainers = with lib.maintainers; [ raskin ]; platforms = [ "i686-linux" "x86_64-linux" ]; - license = stdenv.lib.licenses.gpl2; + license = lib.licenses.gpl2; }; } diff --git a/pkgs/games/curseofwar/default.nix b/pkgs/games/curseofwar/default.nix index 9aff3798b6b..6271a60f5b9 100644 --- a/pkgs/games/curseofwar/default.nix +++ b/pkgs/games/curseofwar/default.nix @@ -1,4 +1,4 @@ -{ stdenv +{ lib, stdenv , fetchFromGitHub , ncurses , SDL @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { "CC=${stdenv.cc.targetPrefix}cc" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A fast-paced action strategy game"; homepage = "https://a-nikolaev.github.io/curseofwar/"; license = licenses.gpl3; diff --git a/pkgs/games/cutemaze/default.nix b/pkgs/games/cutemaze/default.nix index a293989d5e6..44c48af5c29 100644 --- a/pkgs/games/cutemaze/default.nix +++ b/pkgs/games/cutemaze/default.nix @@ -1,24 +1,24 @@ -{ stdenv, fetchurl, qmake, qttools, qtsvg, mkDerivation }: +{ lib, stdenv, fetchurl, qmake, qttools, qtsvg, mkDerivation }: mkDerivation rec { pname = "cutemaze"; - version = "1.2.6"; + version = "1.3.0"; src = fetchurl { url = "https://gottcode.org/cutemaze/${pname}-${version}-src.tar.bz2"; - sha256 = "0pw31j2i3ifndikhz9w684ia00r8zvcgnb66ign9w4lgs1zjgcrw"; + sha256 = "sha256-h7+H2E37ZVSnlPa6ID+lNEvFtU5PfdMSlBjqBumojoU="; }; nativeBuildInputs = [ qmake qttools ]; buildInputs = [ qtsvg ]; - postInstall = stdenv.lib.optionalString stdenv.isDarwin '' + postInstall = lib.optionalString stdenv.isDarwin '' mkdir -p $out/Applications mv CuteMaze.app $out/Applications ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://gottcode.org/cutemaze/"; description = "Simple, top-down game in which mazes are randomly generated"; license = licenses.gpl3Plus; diff --git a/pkgs/games/cuyo/default.nix b/pkgs/games/cuyo/default.nix index 72c55fc1811..871812e097a 100644 --- a/pkgs/games/cuyo/default.nix +++ b/pkgs/games/cuyo/default.nix @@ -1,21 +1,21 @@ -{ stdenv, fetchurl, SDL, SDL_mixer, zlib }: +{ lib, stdenv, fetchurl, SDL, SDL_mixer, zlib }: stdenv.mkDerivation { pname = "cuyo"; version = "2.1.0"; - + src = fetchurl { url = "https://download.savannah.gnu.org/releases/cuyo/cuyo-2.1.0.tar.gz"; sha256 = "17yqv924x7yvwix7yz9jdhgyar8lzdhqvmpvv0any8rdkajhj23c"; }; buildInputs = [ SDL SDL_mixer zlib ]; - + meta = { homepage = "http://karimmi.de/cuyo"; description = "Stacking blocks game, with different rules for each level"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; }; - + } diff --git a/pkgs/games/devilutionx/default.nix b/pkgs/games/devilutionx/default.nix index 69d7e3ca666..fa457b1f1bc 100644 --- a/pkgs/games/devilutionx/default.nix +++ b/pkgs/games/devilutionx/default.nix @@ -1,20 +1,30 @@ -{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, SDL2_ttf, libsodium, pkg-config }: +{ lib, stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, SDL2_ttf, libsodium, pkg-config }: + stdenv.mkDerivation rec { - version = "1.0.1"; pname = "devilutionx"; + version = "1.2.1"; src = fetchFromGitHub { owner = "diasurgical"; repo = "devilutionX"; rev = version; - sha256 = "1jvjlch9ql5s5jx9g5y5pkc2xn62199qylsmzpqzx1jc3k2vmw5i"; + sha256 = "sha256-PgYlNO1p78d0uiL474bDJOL++SxJfeBLK65czdaylHU="; }; + postPatch = '' + substituteInPlace Source/init.cpp --replace "/usr/share/diasurgical/devilutionx/" "${placeholder "out"}/share/diasurgical/devilutionx/" + ''; + NIX_CFLAGS_COMPILE = [ "-I${SDL2_ttf}/include/SDL2" ''-DTTF_FONT_PATH="${placeholder "out"}/share/fonts/truetype/CharisSILB.ttf"'' ]; + cmakeFlags = [ + "-DBINARY_RELEASE=ON" + "-DVERSION_NUM=${version}" + ]; + nativeBuildInputs = [ pkg-config cmake ]; buildInputs = [ libsodium SDL2 SDL2_mixer SDL2_ttf ]; @@ -27,6 +37,7 @@ stdenv.mkDerivation rec { '' else '' install -Dm755 -t $out/bin devilutionx install -Dt $out/share/fonts/truetype ../Packaging/resources/CharisSILB.ttf + install -Dt $out/share/diasurgical/devilutionx ../Packaging/resources/devilutionx.mpq # TODO: icons and .desktop (see Packages/{debian,fedora}/*) '') + '' @@ -34,12 +45,12 @@ stdenv.mkDerivation rec { runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/diasurgical/devilutionX"; description = "Diablo build for modern operating systems"; longDescription = "In order to play this game a copy of diabdat.mpq is required. Place a copy of diabdat.mpq in ~/.local/share/diasurgical/devilution before executing the game."; license = licenses.unlicense; maintainers = [ maintainers.karolchmist ]; - platforms = platforms.linux ++ platforms.darwin ++ platforms.windows; + platforms = platforms.linux ++ platforms.windows; }; } diff --git a/pkgs/games/dhewm3/default.nix b/pkgs/games/dhewm3/default.nix index 1735c4380f2..b5caa603eaf 100644 --- a/pkgs/games/dhewm3/default.nix +++ b/pkgs/games/dhewm3/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, SDL2, libGLU, libGL, zlib, libjpeg, libogg, libvorbis +{ lib, stdenv, fetchFromGitHub, cmake, SDL2, libGLU, libGL, zlib, libjpeg, libogg, libvorbis , openal, curl }: stdenv.mkDerivation rec { @@ -24,14 +24,12 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; buildInputs = [ SDL2 libGLU libGL zlib libjpeg libogg libvorbis openal curl ]; - enableParallelBuilding = true; - hardeningDisable = [ "format" ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/dhewm/dhewm3"; description = "Doom 3 port to SDL"; - license = stdenv.lib.licenses.gpl3; + license = lib.licenses.gpl3; maintainers = with maintainers; [ MP2E ]; platforms = with platforms; linux; }; diff --git a/pkgs/games/domination/default.nix b/pkgs/games/domination/default.nix new file mode 100644 index 00000000000..2fc4f8d36cb --- /dev/null +++ b/pkgs/games/domination/default.nix @@ -0,0 +1,93 @@ +{ lib, stdenv +, fetchsvn +# jdk8 is needed for building, but the game runs on newer jres as well +, jdk8 +, jre +, ant +, makeWrapper +, makeDesktopItem +}: + +let + desktopItem = makeDesktopItem { + type = "Application"; + name = "Domination"; + desktopName = "Domination"; + exec = "domination"; + icon = "domination"; + }; + editorDesktopItem = makeDesktopItem { + type = "Application"; + name = "Domination Map Editor"; + desktopName = "Domination Map Editor"; + exec = "domination-map-editor"; + icon = "domination"; + }; + +in stdenv.mkDerivation { + pname = "domination"; + version = "1.2.3"; + + # The .zip releases do not contain the build.xml file + src = fetchsvn { + url = "https://svn.code.sf.net/p/domination/code/Domination"; + # There are no tags in the repository. + # Look for commits like "new version x.y.z info on website" + # or "website update for x.y.z". + rev = "1964"; + sha256 = "0718gns8d69a1dfq3ywc9kddl1khnrmxqyal7brckbjgay8dq42f"; + }; + + nativeBuildInputs = [ + jdk8 + ant + makeWrapper + ]; + + buildPhase = "ant"; + + installPhase = '' + # Remove unnecessary files and launchers (they'd need to be wrapped anyway) + rm -r \ + build/game/src.zip \ + build/game/*.sh \ + build/game/*.cmd \ + build/game/*.exe \ + build/game/*.app + + mkdir -p $out/share/domination + cp -r build/game/* $out/share/domination/ + + # Reimplement the two launchers mentioned in Unix_shortcutSpec.xml with makeWrapper + mkdir -p $out/bin + makeWrapper ${jre}/bin/java $out/bin/domination \ + --run "cd $out/share/domination" \ + --add-flags "-jar $out/share/domination/Domination.jar" + makeWrapper ${jre}/bin/java $out/bin/domination-map-editor \ + --run "cd $out/share/domination" \ + --add-flags "-cp $out/share/domination/Domination.jar net.yura.domination.ui.swinggui.SwingGUIFrame" + + install -Dm644 \ + ${desktopItem}/share/applications/Domination.desktop \ + $out/share/applications/Domination.desktop + install -Dm644 \ + "${editorDesktopItem}/share/applications/Domination Map Editor.desktop" \ + "$out/share/applications/Domination Map Editor.desktop" + install -Dm644 build/game/resources/icon.png $out/share/pixmaps/domination.png + ''; + + meta = with lib; { + homepage = "http://domination.sourceforge.net/"; + downloadPage = "http://domination.sourceforge.net/download.shtml"; + description = "A game that is a bit like the board game Risk or RisiKo"; + longDescription = '' + Domination is a game that is a bit like the well known board game of Risk + or RisiKo. It has many game options and includes many maps. + It includes a map editor, a simple map format, multiplayer network play, + single player, hotseat, 5 user interfaces and many more features. + ''; + license = licenses.gpl3; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/games/duckmarines/default.nix b/pkgs/games/duckmarines/default.nix index 7af31c606a9..ca2a7439141 100644 --- a/pkgs/games/duckmarines/default.nix +++ b/pkgs/games/duckmarines/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }: +{ lib, stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }: -let +stdenv.mkDerivation rec { pname = "duckmarines"; version = "1.0c"; @@ -19,11 +19,6 @@ let categories = "Game;"; }; -in - -stdenv.mkDerivation rec { - name = "${pname}-${version}"; - src = fetchurl { url = "https://github.com/SimonLarsen/${pname}/releases/download/v${version}/${pname}-1.0c.love"; sha256 = "1rvgpkvi4h9zhc4fwb4knhsa789yjcx4a14fi4vqfdyybhvg5sh9"; @@ -48,7 +43,7 @@ stdenv.mkDerivation rec { ln -s ${desktopItem}/share/applications/* $out/share/applications/ ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Duck-themed action puzzle video game"; maintainers = with maintainers; [ leenaars ]; platforms = platforms.linux; diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix index 0664af117e1..7fd3dc61dd4 100644 --- a/pkgs/games/dwarf-fortress/default.nix +++ b/pkgs/games/dwarf-fortress/default.nix @@ -1,4 +1,4 @@ -{ pkgs, stdenv, stdenvNoCC, gccStdenv, lib, recurseIntoAttrs }: +{ stdenv, stdenvNoCC, gccStdenv, lib, recurseIntoAttrs, libsForQt5, newScope, texlive, perlPackages, jdk8, jre8 }: # To whomever it may concern: # @@ -35,59 +35,64 @@ with lib; let - callPackage = pkgs.newScope self; + callPackage = newScope self; # The latest Dwarf Fortress version. Maintainers: when a new version comes # out, ensure that (unfuck|dfhack|twbt) are all up to date before changing # this. - latestVersion = "0.47.04"; + latestVersion = "0.47.05"; # Converts a version to a package name. versionToName = version: "dwarf-fortress_${lib.replaceStrings ["."] ["_"] version}"; - dwarf-therapist-original = pkgs.qt5.callPackage ./dwarf-therapist { - texlive = pkgs.texlive.combine { - inherit (pkgs.texlive) scheme-basic float caption wrapfig adjmulticol sidecap preprint enumitem; + dwarf-therapist-original = libsForQt5.callPackage ./dwarf-therapist { + texlive = texlive.combine { + inherit (texlive) scheme-basic float caption wrapfig adjmulticol sidecap preprint enumitem; }; }; # A map of names to each Dwarf Fortress package we know about. - df-games = lib.listToAttrs (map (dfVersion: { - name = versionToName dfVersion; - value = - let - # I can't believe this syntax works. Spikes of Nix code indeed... - dwarf-fortress = callPackage ./game.nix { - inherit dfVersion; - inherit dwarf-fortress-unfuck; + df-games = lib.listToAttrs (map + (dfVersion: { + name = versionToName dfVersion; + value = + let + # I can't believe this syntax works. Spikes of Nix code indeed... + dwarf-fortress = callPackage ./game.nix { + inherit dfVersion; + inherit dwarf-fortress-unfuck; + }; + + # unfuck is linux-only right now, we will only use it there. + dwarf-fortress-unfuck = + if stdenv.isLinux then callPackage ./unfuck.nix { inherit dfVersion; } + else null; + + twbt = callPackage ./twbt { inherit dfVersion; }; + + dfhack = callPackage ./dfhack { + inherit (perlPackages) XMLLibXML XMLLibXSLT; + inherit dfVersion twbt; + stdenv = gccStdenv; + }; + + dwarf-therapist = libsForQt5.callPackage ./dwarf-therapist/wrapper.nix { + inherit dwarf-fortress; + dwarf-therapist = dwarf-therapist-original; + }; + in + callPackage ./wrapper { + inherit (self) themes; + + dwarf-fortress = dwarf-fortress; + twbt = twbt; + dfhack = dfhack; + dwarf-therapist = dwarf-therapist; + + jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 }; - - # unfuck is linux-only right now, we will only use it there. - dwarf-fortress-unfuck = if stdenv.isLinux then callPackage ./unfuck.nix { inherit dfVersion; } - else null; - - twbt = callPackage ./twbt { inherit dfVersion; }; - - dfhack = callPackage ./dfhack { - inherit (pkgs.perlPackages) XMLLibXML XMLLibXSLT; - inherit dfVersion twbt; - stdenv = gccStdenv; - }; - - dwarf-therapist = callPackage ./dwarf-therapist/wrapper.nix { - inherit dwarf-fortress; - dwarf-therapist = dwarf-therapist-original; - }; - in - callPackage ./wrapper { - inherit (self) themes; - - dwarf-fortress = dwarf-fortress; - twbt = twbt; - dfhack = dfhack; - dwarf-therapist = dwarf-therapist; - }; - }) (lib.attrNames self.df-hashes)); + }) + (lib.attrNames self.df-hashes)); self = rec { df-hashes = builtins.fromJSON (builtins.readFile ./game.json); @@ -104,7 +109,9 @@ let soundSense = callPackage ./soundsense.nix { }; - legends-browser = callPackage ./legends-browser {}; + legends-browser = callPackage ./legends-browser { + jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 + }; themes = recurseIntoAttrs (callPackage ./themes { stdenv = stdenvNoCC; @@ -115,4 +122,5 @@ let cla-theme = themes.cla; }; -in self // df-games +in +self // df-games diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index 11c21b82c29..80fa1de18e4 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -1,7 +1,20 @@ -{ stdenv, buildEnv, lib, fetchFromGitHub, cmake, writeScriptBin -, perl, XMLLibXML, XMLLibXSLT, zlib, ruby -, enableStoneSense ? false, allegro5, libGLU, libGL -, enableTWBT ? true, twbt +{ stdenv +, buildEnv +, lib +, fetchFromGitHub +, cmake +, writeScriptBin +, perl +, XMLLibXML +, XMLLibXSLT +, zlib +, ruby +, enableStoneSense ? false +, allegro5 +, libGLU +, libGL +, enableTWBT ? true +, twbt , SDL , dfVersion }: @@ -58,11 +71,19 @@ let xmlRev = "036b662a1bbc96b4911f3cbe74dfa1243b6459bc"; prerelease = false; }; + "0.47.05" = { + dfHackRelease = "0.47.05-r1"; + sha256 = "sha256-B0iv7fpIcnaO8sx9wPqI7/WuyLK15p8UYlYIcF5F5bw="; + xmlRev = "11c379ffd31255f2a1415d98106114a46245e1c3"; + prerelease = false; + }; + }; - release = if hasAttr dfVersion dfhack-releases - then getAttr dfVersion dfhack-releases - else throw "[DFHack] Unsupported Dwarf Fortress version: ${dfVersion}"; + release = + if hasAttr dfVersion dfhack-releases + then getAttr dfVersion dfhack-releases + else throw "[DFHack] Unsupported Dwarf Fortress version: ${dfVersion}"; version = release.dfHackRelease; @@ -125,7 +146,7 @@ let nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ]; # We don't use system libraries because dfhack needs old C++ ABI. buildInputs = [ zlib SDL ] - ++ lib.optionals enableStoneSense [ allegro5 libGLU libGL ]; + ++ lib.optionals enableStoneSense [ allegro5 libGLU libGL ]; preConfigure = '' # Trick build system into believing we have .git @@ -138,7 +159,7 @@ let ''; cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" "-DDOWNLOAD_RUBY=OFF" ] - ++ lib.optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=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. @@ -146,7 +167,6 @@ let ln -s ${ruby}/lib/libruby-*.so $out/hack/libruby.so ''; - enableParallelBuilding = true; }; in @@ -157,7 +177,7 @@ buildEnv { paths = [ dfhack ] ++ lib.optionals enableTWBT [ twbt.lib ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Memory hacking library for Dwarf Fortress and a set of tools that use it"; homepage = "https://github.com/DFHack/dfhack/"; license = licenses.zlib; diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix index f5c093e1f16..ec765e71158 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix @@ -1,26 +1,36 @@ -{ stdenv, fetchFromGitHub, qtbase -, qtdeclarative, cmake, texlive, ninja }: +{ lib +, stdenv +, fetchFromGitHub +, qtbase +, qtdeclarative +, cmake +, texlive +, ninja +}: stdenv.mkDerivation rec { pname = "dwarf-therapist"; - version = "41.1.5"; + version = "41.2.2"; src = fetchFromGitHub { owner = "Dwarf-Therapist"; repo = "Dwarf-Therapist"; rev = "v${version}"; - sha256 = "0w1mwwf49vdmvmdfvlkn4m0hzvlj111rpl8hv4rw6v8nv6yfb2y4"; + sha256 = "sha256-zsEG68ioSw64UfmqlTLO1i5sObg8C4zxvdPxdQGMhhU="; }; nativeBuildInputs = [ texlive cmake ninja ]; buildInputs = [ qtbase qtdeclarative ]; - installPhase = if stdenv.isDarwin then '' - mkdir -p $out/Applications - cp -r DwarfTherapist.app $out/Applications - '' else null; + installPhase = + if stdenv.isDarwin then '' + mkdir -p $out/Applications + cp -r DwarfTherapist.app $out/Applications + '' else null; - meta = with stdenv.lib; { + dontWrapQtApps = true; + + meta = with lib; { description = "Tool to manage dwarves in a running game of Dwarf Fortress"; maintainers = with maintainers; [ abbradar bendlas numinit jonringer ]; license = licenses.mit; diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in b/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in index 77936c430e2..5ae0a35b5e2 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in @@ -5,22 +5,21 @@ install_dir="@install@" therapist_dir="@therapist@" -cat <<EOF >&2 +@cat@ <<EOF >&2 Using $DT_DIR as Dwarf Therapist overlay directory. EOF update_path() { local path="$1" - mkdir -p "$DT_DIR/$(dirname "$path")" + @mkdir@ -p "$DT_DIR/$(@dirname@ "$path")" if [ ! -e "$DT_DIR/$path" ] || [ -L "$DT_DIR/$path" ]; then - rm -f "$DT_DIR/$path" - ln -s "$install_dir/share/dwarftherapist/$path" "$DT_DIR/$path" + @rm@ -f "$DT_DIR/$path" + @ln@ -s "$install_dir/share/dwarftherapist/$path" "$DT_DIR/$path" fi } cd "$install_dir/share/dwarftherapist" update_path memory_layouts -QT_QPA_PLATFORM_PLUGIN_PATH="@qt_plugin_path@" \ - exec "$therapist_dir/bin/dwarftherapist" "$@" +exec "$therapist_dir/bin/dwarftherapist" "$@" diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix index 6871a611784..93f51df1819 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix @@ -1,33 +1,42 @@ -{ pkgs, stdenv, dwarf-therapist, dwarf-fortress, makeWrapper }: +{ stdenv, dwarf-therapist, dwarf-fortress, substituteAll, coreutils, wrapQtAppsHook }: let - platformSlug = if stdenv.targetPlatform.is32bit then - "linux32" else "linux64"; + platformSlug = + if stdenv.targetPlatform.is32bit then + "linux32" else "linux64"; inifile = "linux/v0.${dwarf-fortress.baseVersion}.${dwarf-fortress.patchVersion}_${platformSlug}.ini"; in - + stdenv.mkDerivation { name = "dwarf-therapist-${dwarf-therapist.version}"; - - wrapper = ./dwarf-therapist.in; + + wrapper = substituteAll { + src = ./dwarf-therapist.in; + stdenv_shell = "${stdenv.shell}"; + rm = "${coreutils}/bin/rm"; + ln = "${coreutils}/bin/ln"; + cat = "${coreutils}/bin/cat"; + mkdir = "${coreutils}/bin/mkdir"; + dirname = "${coreutils}/bin/dirname"; + therapist = "${dwarf-therapist}"; + }; paths = [ dwarf-therapist ]; - buildInputs = [ makeWrapper ]; + nativeBuildInputs = [ wrapQtAppsHook ]; passthru = { inherit dwarf-fortress dwarf-therapist; }; buildCommand = '' mkdir -p $out/bin + + install -Dm755 $wrapper $out/bin/dwarftherapist ln -s $out/bin/dwarftherapist $out/bin/DwarfTherapist - substitute $wrapper $out/bin/dwarftherapist \ - --subst-var-by stdenv_shell ${stdenv.shell} \ - --subst-var-by install $out \ - --subst-var-by therapist ${dwarf-therapist} \ - --subst-var-by qt_plugin_path "${pkgs.qt5.qtbase}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins/platforms" - chmod 755 $out/bin/dwarftherapist + substituteInPlace $out/bin/dwarftherapist \ + --subst-var-by install $out + wrapQtApp $out/bin/dwarftherapist # Fix up memory layouts rm -rf $out/share/dwarftherapist/memory_layouts/linux diff --git a/pkgs/games/dwarf-fortress/game.json b/pkgs/games/dwarf-fortress/game.json index f5f1f389904..522cccdcda4 100644 --- a/pkgs/games/dwarf-fortress/game.json +++ b/pkgs/games/dwarf-fortress/game.json @@ -121,5 +121,19 @@ "legacy_s": "19ai7lvxx0y3iha9qrbl5krric547rzs6vm4ibk8x61vv97jrbd8", "legacy32": "0lli6s1g7yj3p3h26ajgq3h619n88qn6s7amyz6z8w7hyzfi7wij", "legacy32_s": "1wzxbzgln9pmsk2nchrl94d2yd09xdgynmjl4qwcaqzkrnf3sfqc" + }, + "0.47.05": { + "linux": "18zwmz2nsgwjxbr2yd9jcrgw6l5b481hh1848cgn5nfpnzdscx5c", + "linux32": "1jbav7ghsjsxd6cdp6f2x5qn83zc8707dqan5sp73fp6mbj2jasl", + "osx": "092z1vhc5sbdc5irggdz5ai7rxifmg4yhy33aicpsjcnvcmajydw", + "osx32": "0lpbwfiagp0zp280aw3fmj8938w5fc5r9gibzk2h86jy63ps29ww", + "win": "0bbk7j3d4h2wn9hmbsbbbbr0ajf3ddlprxfaajfbnbiyv72cpn9s", + "win_s": "0nl7c9dpfx7jjpy7y52z8h3kiy4cpax1m58apbcfyy95an4jz8s4", + "win32": "08ka1lklly82h4mr770y9p0a21x9dx6jqvjgxdsxj5979f26il1v", + "win32_s": "06w844zxzx3lfykibgkk4gbg4xymnqraj1ikv4mzlv31l727a1x4", + "legacy": "042a0gbad3cp5dwhnrzg3vr9w48b8ybqgxgw5i9rk4c1i0gjjpw2", + "legacy_s": "1rb7h8lzlsjs08rvhhl3nwbrpj54zijijp4y0qdp4vyzsig6nisk", + "legacy32": "0ayw09x9smihh8qp5pdvr6vvhwkvcqz36h3lh4g1b5kzxj7g9cyf", + "legacy32_s": "10gfxlysfs9gyi1mv52idp5xk45g9h517g2jq4a8cqp2j7594v9c" } } diff --git a/pkgs/games/dwarf-fortress/game.nix b/pkgs/games/dwarf-fortress/game.nix index 9200d01aa98..e4b7349a690 100644 --- a/pkgs/games/dwarf-fortress/game.nix +++ b/pkgs/games/dwarf-fortress/game.nix @@ -1,10 +1,16 @@ -{ stdenv, lib, fetchurl -, SDL, dwarf-fortress-unfuck - -# Our own "unfuck" libs for macOS -, ncurses, fmodex, gcc - -, dfVersion, df-hashes +{ stdenv +, lib +, fetchurl +, SDL +, dwarf-fortress-unfuck + + # Our own "unfuck" libs for macOS +, ncurses +, fmodex +, gcc + +, dfVersion +, df-hashes }: with lib; @@ -30,20 +36,24 @@ let baseVersion = elemAt dfVersionTriple 1; patchVersion = elemAt dfVersionTriple 2; - game = if hasAttr dfVersion df-hashes - then getAttr dfVersion df-hashes - else throw "Unknown Dwarf Fortress version: ${dfVersion}"; - dfPlatform = if hasAttr stdenv.hostPlatform.system platforms - then getAttr stdenv.hostPlatform.system platforms - else throw "Unsupported system: ${stdenv.hostPlatform.system}"; - sha256 = if hasAttr dfPlatform game - then getAttr dfPlatform game - else throw "Unsupported dfPlatform: ${dfPlatform}"; + game = + if hasAttr dfVersion df-hashes + then getAttr dfVersion df-hashes + else throw "Unknown Dwarf Fortress version: ${dfVersion}"; + dfPlatform = + if hasAttr stdenv.hostPlatform.system platforms + then getAttr stdenv.hostPlatform.system platforms + else throw "Unsupported system: ${stdenv.hostPlatform.system}"; + sha256 = + if hasAttr dfPlatform game + then getAttr dfPlatform game + else throw "Unsupported dfPlatform: ${dfPlatform}"; in stdenv.mkDerivation { - name = "dwarf-fortress-${dfVersion}"; + pname = "dwarf-fortress"; + version = dfVersion; src = fetchurl { url = "${homepage}df_${baseVersion}_${patchVersion}_${dfPlatform}.tar.bz2"; diff --git a/pkgs/games/dwarf-fortress/lazy-pack.nix b/pkgs/games/dwarf-fortress/lazy-pack.nix index 03aa5d54304..b34dbd3c74b 100644 --- a/pkgs/games/dwarf-fortress/lazy-pack.nix +++ b/pkgs/games/dwarf-fortress/lazy-pack.nix @@ -1,5 +1,10 @@ -{ stdenvNoCC, lib, buildEnv -, df-games, themes, latestVersion, versionToName +{ stdenvNoCC +, lib +, buildEnv +, df-games +, themes +, latestVersion +, versionToName , dfVersion ? latestVersion # This package should, at any given time, provide an opinionated "optimal" # DF experience. It's the equivalent of the Lazy Newbie Pack, that is, and @@ -9,9 +14,10 @@ , enableSoundSense ? true , enableStoneSense ? true , enableDwarfTherapist ? true -, enableLegendsBrowser ? true, legends-browser +, enableLegendsBrowser ? true +, legends-browser , theme ? themes.phoebus -# General config options: + # General config options: , enableIntro ? true , enableTruetype ? true , enableFPS ? false @@ -23,9 +29,10 @@ with lib; let dfGame = versionToName dfVersion; - dwarf-fortress = if hasAttr dfGame df-games - then getAttr dfGame df-games - else throw "Unknown Dwarf Fortress version: ${dfVersion}"; + dwarf-fortress = + if hasAttr dfGame df-games + then getAttr dfGame df-games + else throw "Unknown Dwarf Fortress version: ${dfVersion}"; dwarf-therapist = dwarf-fortress.dwarf-therapist; in buildEnv { @@ -33,12 +40,13 @@ buildEnv { paths = [ (dwarf-fortress.override { inherit enableDFHack enableTWBT enableSoundSense enableStoneSense theme - enableIntro enableTruetype enableFPS enableTextMode enableSound; - })] - ++ lib.optional enableDwarfTherapist dwarf-therapist - ++ lib.optional enableLegendsBrowser legends-browser; + enableIntro enableTruetype enableFPS enableTextMode enableSound; + }) + ] + ++ lib.optional enableDwarfTherapist dwarf-therapist + ++ lib.optional enableLegendsBrowser legends-browser; - meta = with stdenvNoCC.lib; { + meta = with lib; { description = "An opinionated wrapper for Dwarf Fortress"; maintainers = with maintainers; [ Baughn numinit ]; license = licenses.mit; diff --git a/pkgs/games/dwarf-fortress/legends-browser/default.nix b/pkgs/games/dwarf-fortress/legends-browser/default.nix index b1106002515..2a3da233b45 100644 --- a/pkgs/games/dwarf-fortress/legends-browser/default.nix +++ b/pkgs/games/dwarf-fortress/legends-browser/default.nix @@ -1,4 +1,4 @@ -{ stdenvNoCC, buildEnv, writeShellScriptBin, fetchurl, jre }: +{ lib, buildEnv, writeShellScriptBin, fetchurl, jre }: let name = "legends-browser-${version}"; @@ -8,7 +8,7 @@ let url = "https://github.com/robertjanetzko/LegendsBrowser/releases/download/${version}/legendsbrowser-${version}.jar"; sha256 = "05b4ksbl4481rh3ykfirbp6wvxhppcd5mvclhn9995gsrcaj8gx9"; }; - + script = writeShellScriptBin "legends-browser" '' set -eu BASE="$HOME/.local/share/df_linux/legends-browser/" @@ -26,7 +26,7 @@ buildEnv { inherit name; paths = [ script ]; - meta = with stdenvNoCC.lib; { + meta = with lib; { description = "A multi-platform, open source, java-based legends viewer for dwarf fortress"; maintainers = with maintainers; [ Baughn ]; license = licenses.mit; diff --git a/pkgs/games/dwarf-fortress/soundsense.nix b/pkgs/games/dwarf-fortress/soundsense.nix index a59c8730690..5202c13b5b8 100644 --- a/pkgs/games/dwarf-fortress/soundsense.nix +++ b/pkgs/games/dwarf-fortress/soundsense.nix @@ -1,4 +1,6 @@ -{ stdenv, fetchzip, dos2unix +{ stdenv +, fetchzip +, dos2unix , soundPack ? stdenv.mkDerivation { name = "soundsense-soundpack"; src = fetchzip { @@ -8,7 +10,8 @@ installPhase = '' cp -r . $out ''; -}}: + } +}: stdenv.mkDerivation rec { version = "2016-1_196"; diff --git a/pkgs/games/dwarf-fortress/themes/default.nix b/pkgs/games/dwarf-fortress/themes/default.nix index 6241df7590d..c6987a1d16b 100644 --- a/pkgs/games/dwarf-fortress/themes/default.nix +++ b/pkgs/games/dwarf-fortress/themes/default.nix @@ -1,19 +1,21 @@ -{lib, fetchFromGitHub, ...}: +{ lib, fetchFromGitHub, ... }: with builtins; -listToAttrs (map (v: { - inherit (v) name; - value = fetchFromGitHub { - name = "${v.name}-${v.version}"; - owner = "DFgraphics"; - repo = v.name; - rev = v.version; - sha256 = v.sha256; - meta = with lib; { - platforms = platforms.all; - maintainers = [ maintainers.matthewbauer maintainers.shazow ]; - license = licenses.free; +listToAttrs (map + (v: { + inherit (v) name; + value = fetchFromGitHub { + name = "${v.name}-${v.version}"; + owner = "DFgraphics"; + repo = v.name; + rev = v.version; + sha256 = v.sha256; + meta = with lib; { + platforms = platforms.all; + maintainers = [ maintainers.matthewbauer maintainers.shazow ]; + license = licenses.free; + }; }; - }; -}) (fromJSON (readFile ./themes.json))) + }) + (fromJSON (readFile ./themes.json))) diff --git a/pkgs/games/dwarf-fortress/themes/themes.json b/pkgs/games/dwarf-fortress/themes/themes.json index 48f47c4fbb9..1b2449addf4 100644 --- a/pkgs/games/dwarf-fortress/themes/themes.json +++ b/pkgs/games/dwarf-fortress/themes/themes.json @@ -1,8 +1,8 @@ [ { "name": "afro-graphics", - "version": "47.02", - "sha256": "0np4jc05905q3bjplbrfi09q4rq3pjbf2vmbrmazfagj2mp8m7z5" + "version": "47.05", + "sha256": "0gqrxb4bbx1h93xjz4ygd7yp8g5barj2zc6y7xvr94ww8b9a2r28" }, { "name": "autoreiv", @@ -21,48 +21,53 @@ }, { "name": "gemset", - "version": "47.02", - "sha256": "0gz6cfx9kyldh5dxicyw0yl9lq4qw51vvlpzl767ml0bx3w38bwy" + "version": "47.05", + "sha256": "1ivsbj71w3zwxnaz0405xhqhn4yzdfziijc0s0vmbmcphhhqnjaj" }, { "name": "ironhand", - "version": "47.02", - "sha256": "0j612xxz8g91zslw3a6yls3bzzmz0xdi2n0zx9zkmpzcl67f39ry" + "version": "47.05", + "sha256": "003yrwishkzf6nvr6xlldbnd3x7rf5ds7l91mc0npdq1lcl0br9w" }, { "name": "jolly-bastion", - "version": "47.02", - "sha256": "1df2hvm72lklmhhphcwsqm1m3dnaqxd8qvpygg5x71cfgkjd41ic" + "version": "47.04", + "sha256": "0799ad90g62nvpdcl6zq3vr2nvfc62lprm4br9n2hbs8wgrra6rq" }, { "name": "mayday", - "version": "47.01", - "sha256": "02fby7y4zzq8qgq2wsdvzp1k6zgfhdkm768zp0zzj9byi6gmnaq6" + "version": "47.05", + "sha256": "17sdvr9a98xx5r2nrr3m4jlddvlb4h6qlch8r23g9g4mj0hsifnj" + }, + { + "name": "meph", + "version": "47.05_v5.5.1-V", + "sha256": "1kiqxiqw686dii5x7zav2nsw15csg0grv4h8hrb764rl4fw6x9nl" }, { "name": "obsidian", - "version": "47.02", - "sha256": "03b26z557099k0l44lizagh17pz1y6apy496ivzv426xy0mzz684" + "version": "47.05", + "sha256": "1dkwdwm52fsj4gqqqr5vppbsk8a4kd3i7d3qawawgl0qn6q139xs" }, { "name": "phoebus", - "version": "47.02a", - "sha256": "16zllnkrxi2365rd5m392xv72a9wvai0l3pz8xwkb8nlws8f58lb" + "version": "47.05", + "sha256": "18pn3dqyk9hp82gva92c6y3vk52s366rrx74rdnvahswdr5dmq4d" }, { "name": "rally-ho", - "version": "47.02", - "sha256": "0xw2psmfjrgab0267scc7frgl9h1ypc0mbymn8z3x06m5wc3hbdh" + "version": "47.05", + "sha256": "1h3jqq0yq2rbzbl70sq85lgdpwswczpay16kqfwq1n8zdisl4gqn" }, { "name": "spacefox", - "version": "47.02", - "sha256": "180fp2s489m2arc2z11j1qjnpcadjjkyami13yr3zd0v7msg64h8" + "version": "47.05a", + "sha256": "1y1rbsxr1m0mb2k02q6gh24c4nyqc9lw98dvfckp2bzc5f9cx3ks" }, { "name": "taffer", - "version": "47.01b", - "sha256": "0b5hnli3gg32r7yvb3x1fqrmpxlk33j1hila2wiihybkkfnvxy5f" + "version": "47.04", + "sha256": "1ly2sc0pb2kybb8grj19zx372whblmd0bj8p64akpi2rrywi13sy" }, { "name": "tergel", @@ -70,8 +75,13 @@ "sha256": "142sd1i11vvirn68rp4gqzl67ww597df1lc57ycnpnz0n3q39kxy" }, { + "name": "vettlingr", + "version": "47.05", + "sha256": "0s1vy3ssp1hk8f6wlkz09xy5v747dpbsgw5vi6i1mq3lnlcy68vq" + }, + { "name": "wanderlust", - "version": "47.02", - "sha256": "0c36nxry189qdyinjk03wwm3j7q9q7b2sabkv7glx8yz2i61j5q9" + "version": "47.04", + "sha256": "1z56m8zplq5d18sbkwg5lwcy8iwfa5hbxixsm3hdxm04qyld1z89" } ] diff --git a/pkgs/games/dwarf-fortress/twbt/default.nix b/pkgs/games/dwarf-fortress/twbt/default.nix index a0990e04f93..7882cf06a07 100644 --- a/pkgs/games/dwarf-fortress/twbt/default.nix +++ b/pkgs/games/dwarf-fortress/twbt/default.nix @@ -1,4 +1,7 @@ -{ stdenvNoCC, lib, fetchurl, unzip +{ stdenvNoCC +, lib +, fetchurl +, unzip , dfVersion }: @@ -47,11 +50,18 @@ let sha256 = "092dgp8fh1j4nqr9wbzn89ib1nhscclr8m91lfxsvg0mgn7j8xlv"; prerelease = true; }; + "0.47.05" = { + twbtRelease = "6.xx"; + dfhackRelease = "0.47.05-beta1"; + sha256 = "sha256-Y6G0qBMHvotp/oyiqANlzXZVklL270dhskd135PnE9Q="; + prerelease = true; + }; }; - release = if hasAttr dfVersion twbt-releases - then getAttr dfVersion twbt-releases - else throw "[TWBT] Unsupported Dwarf Fortress version: ${dfVersion}"; + release = + if hasAttr dfVersion twbt-releases + then getAttr dfVersion twbt-releases + else throw "[TWBT] Unsupported Dwarf Fortress version: ${dfVersion}"; in stdenvNoCC.mkDerivation rec { @@ -71,7 +81,7 @@ stdenvNoCC.mkDerivation rec { outputs = [ "lib" "art" "out" ]; - buildInputs = [ unzip ]; + nativeBuildInputs = [ unzip ]; installPhase = '' mkdir -p $lib/hack/{plugins,lua} $art/data/art @@ -80,7 +90,7 @@ stdenvNoCC.mkDerivation rec { cp -a *.png $art/data/art/ ''; - meta = with stdenvNoCC.lib; { + meta = with lib; { description = "A plugin for Dwarf Fortress / DFHack that improves various aspects the game interface."; maintainers = with maintainers; [ Baughn numinit ]; license = licenses.mit; diff --git a/pkgs/games/dwarf-fortress/unfuck.nix b/pkgs/games/dwarf-fortress/unfuck.nix index 533649131f5..5b25cf4ff40 100644 --- a/pkgs/games/dwarf-fortress/unfuck.nix +++ b/pkgs/games/dwarf-fortress/unfuck.nix @@ -1,7 +1,22 @@ -{ stdenv, lib, fetchFromGitHub, cmake -, libGL, libSM, SDL, SDL_image, SDL_ttf, glew, openalSoft -, ncurses, glib, gtk2, libsndfile, zlib -, dfVersion, pkg-config +{ stdenv +, lib +, fetchFromGitHub +, cmake +, libGL +, libSM +, SDL +, SDL_image +, SDL_ttf +, glew +, openalSoft +, ncurses +, glib +, gtk2 +, gtk3 +, libsndfile +, zlib +, dfVersion +, pkg-config }: with lib; @@ -44,11 +59,16 @@ let unfuckRelease = "0.47.04"; sha256 = "1wa990xbsyiiz7abq153xmafvvk1dmgz33rp907d005kzl1z86i9"; }; + "0.47.05" = { + unfuckRelease = "0.47.04"; + sha256 = "1wa990xbsyiiz7abq153xmafvvk1dmgz33rp907d005kzl1z86i9"; + }; }; - release = if hasAttr dfVersion unfuck-releases - then getAttr dfVersion unfuck-releases - else throw "[unfuck] Unknown Dwarf Fortress version: ${dfVersion}"; + release = + if hasAttr dfVersion unfuck-releases + then getAttr dfVersion unfuck-releases + else throw "[unfuck] Unknown Dwarf Fortress version: ${dfVersion}"; in stdenv.mkDerivation { @@ -68,9 +88,23 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ - libSM SDL SDL_image SDL_ttf glew openalSoft - ncurses gtk2 libsndfile zlib libGL - ]; + libSM + SDL + SDL_image + SDL_ttf + glew + openalSoft + ncurses + libsndfile + zlib + libGL + ] + # switched to gtk3 in 0.47.05 + ++ (if lib.versionOlder release.unfuckRelease "0.47.05" then [ + gtk2 + ] else [ + gtk3 + ]); # Don't strip unused symbols; dfhack hooks into some of them. dontStrip = true; @@ -79,14 +113,12 @@ stdenv.mkDerivation { install -D -m755 ../build/libgraphics.so $out/lib/libgraphics.so ''; - enableParallelBuilding = true; - # Breaks dfhack because of inlining. hardeningDisable = [ "fortify" ]; passthru = { inherit dfVersion; }; - meta = with stdenv.lib; { + meta = with lib; { description = "Unfucked multimedia layer for Dwarf Fortress"; homepage = "https://github.com/svenstaro/dwarf_fortress_unfuck"; license = licenses.free; diff --git a/pkgs/games/dwarf-fortress/wrapper/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix index 79b63e3ce9e..ce989b98ffb 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -1,13 +1,22 @@ -{ stdenv, lib, buildEnv, substituteAll, runCommand +{ stdenv +, lib +, buildEnv +, substituteAll +, runCommand +, coreutils , dwarf-fortress , dwarf-therapist -, enableDFHack ? false, dfhack -, enableSoundSense ? false, soundSense, jdk +, enableDFHack ? false +, dfhack +, enableSoundSense ? false +, soundSense +, jdk , enableStoneSense ? false -, enableTWBT ? false, twbt -, themes ? {} +, enableTWBT ? false +, twbt +, themes ? { } , theme ? null -# General config options: + # General config options: , enableIntro ? true , enableTruetype ? true , enableFPS ? false @@ -31,11 +40,11 @@ let # These are in inverse order for first packages to override the next ones. themePkg = lib.optional (theme != null) ptheme; pkgs = lib.optional enableDFHack dfhack_ - ++ lib.optional enableSoundSense soundSense - ++ lib.optional enableTWBT twbt.art - ++ [ dwarf-fortress ]; + ++ lib.optional enableSoundSense soundSense + ++ lib.optional enableTWBT twbt.art + ++ [ dwarf-fortress ]; - fixup = lib.singleton (runCommand "fixup" {} ('' + fixup = lib.singleton (runCommand "fixup" { } ('' mkdir -p $out/data/init '' + (if (theme != null) then '' cp ${lib.head themePkg}/data/init/init.txt $out/data/init/init.txt @@ -60,8 +69,8 @@ let '' + lib.optionalString enableTWBT '' substituteInPlace $out/data/init/init.txt \ --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TWBT]' - '' + - lib.optionalString enableTextMode '' + '' + + lib.optionalString enableTextMode '' substituteInPlace $out/data/init/init.txt \ --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TEXT]' '' + '' @@ -89,8 +98,15 @@ stdenv.mkDerivation { name = "dwarf-fortress-init"; src = ./dwarf-fortress-init.in; inherit env; - exe = if stdenv.isLinux then "libs/Dwarf_Fortress" - else "dwarfort.exe"; + exe = + if stdenv.isLinux then "libs/Dwarf_Fortress" + else "dwarfort.exe"; + stdenv_shell = "${stdenv.shell}"; + cp = "${coreutils}/bin/cp"; + rm = "${coreutils}/bin/rm"; + ln = "${coreutils}/bin/ln"; + cat = "${coreutils}/bin/cat"; + mkdir = "${coreutils}/bin/mkdir"; }; runDF = ./dwarf-fortress.in; diff --git a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in index b041067d89e..27639e57f21 100644 --- a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in +++ b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in @@ -1,3 +1,4 @@ +#!@stdenv_shell@ -e shopt -s extglob [ -z "$DF_DIR" ] && export DF_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/df_linux" @@ -7,25 +8,25 @@ exe="$env_dir/@exe@" update_path() { local path="$1" - mkdir -p "$DF_DIR/$(dirname "$path")" + @mkdir@ -p "$DF_DIR/$(dirname "$path")" # If user has replaced these data directories, let them stay. if [ ! -e "$DF_DIR/$path" ] || [ -L "$DF_DIR/$path" ]; then - rm -f "$DF_DIR/$path" - ln -s "$env_dir/$path" "$DF_DIR/$path" + @rm@ -f "$DF_DIR/$path" + @ln@ -s "$env_dir/$path" "$DF_DIR/$path" fi } forcecopy_path() { local path="$1" - mkdir -p "$DF_DIR/$(dirname "$path")" - rm -rf "$DF_DIR/$path" - cp -rL --no-preserve=all "$env_dir/$path" "$DF_DIR/$path" + @mkdir@ -p "$DF_DIR/$(dirname "$path")" + @rm@ -rf "$DF_DIR/$path" + @cp@ -rL --no-preserve=all "$env_dir/$path" "$DF_DIR/$path" } -mkdir -p "$DF_DIR" +@mkdir@ -p "$DF_DIR" -cat <<EOF >&2 +@cat@ <<EOF >&2 Using $DF_DIR as Dwarf Fortress overlay directory. If you do any changes in it, don't forget to clean it when updating the game version! We try to detect changes based on data directories being symbolic links -- keep this in mind. diff --git a/pkgs/games/dxx-rebirth/assets.nix b/pkgs/games/dxx-rebirth/assets.nix index 47a8222cd6a..b214d49659b 100644 --- a/pkgs/games/dxx-rebirth/assets.nix +++ b/pkgs/games/dxx-rebirth/assets.nix @@ -1,4 +1,4 @@ -{ stdenv, requireFile, gogUnpackHook }: +{ lib, stdenv, requireFile, gogUnpackHook }: let generic = ver: source: let @@ -40,7 +40,7 @@ let runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Descent ${toString ver} assets from GOG"; homepage = "https://www.dxx-rebirth.com/"; license = licenses.unfree; diff --git a/pkgs/games/dxx-rebirth/default.nix b/pkgs/games/dxx-rebirth/default.nix index aa2563d4e4b..c2e3fac7e15 100644 --- a/pkgs/games/dxx-rebirth/default.nix +++ b/pkgs/games/dxx-rebirth/default.nix @@ -1,9 +1,9 @@ -{ stdenv +{ lib, stdenv , fetchFromGitHub , fetchurl , fetchpatch , scons -, pkgconfig +, pkg-config , SDL , SDL_mixer , libGLU @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { sha256 = "1lsrlp47aby2m9hh7i3nv5rb0srlkmnq1w2ca6vyvlga9m9h7jrk"; }; - nativeBuildInputs = [ pkgconfig scons ]; + nativeBuildInputs = [ pkg-config scons ]; buildInputs = [ libGLU libGL libpng physfs SDL SDL_mixer ]; @@ -46,7 +46,7 @@ stdenv.mkDerivation rec { install -Dm644 -t $out/share/doc/dxx-rebirth *.txt ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Source Port of the Descent 1 and 2 engines"; homepage = "https://www.dxx-rebirth.com/"; license = licenses.gpl3; diff --git a/pkgs/games/dxx-rebirth/full.nix b/pkgs/games/dxx-rebirth/full.nix index 782a2d21112..f3349c114ee 100644 --- a/pkgs/games/dxx-rebirth/full.nix +++ b/pkgs/games/dxx-rebirth/full.nix @@ -1,4 +1,4 @@ -{ stdenv, makeWrapper +{ lib, stdenv, makeWrapper , dxx-rebirth, descent1-assets, descent2-assets }: let @@ -14,7 +14,7 @@ let --add-flags "-hogdir ${assets}/share/games/descent${toString ver}" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Descent ${toString ver} using the DXX-Rebirth project engine and game assets from GOG"; homepage = "https://www.dxx-rebirth.com/"; license = with licenses; [ free unfree ]; diff --git a/pkgs/games/easyrpg-player/default.nix b/pkgs/games/easyrpg-player/default.nix index 79628d0d2ae..81968d25e3d 100644 --- a/pkgs/games/easyrpg-player/default.nix +++ b/pkgs/games/easyrpg-player/default.nix @@ -1,20 +1,20 @@ -{ stdenv, fetchFromGitHub, cmake, doxygen ? null, pkgconfig, freetype ? null, glib, harfbuzz ? null +{ lib, stdenv, fetchFromGitHub, cmake, doxygen ? null, pkg-config, freetype ? null, glib, harfbuzz ? null , liblcf, libpng, libsndfile ? null, libvorbis ? null, libxmp ? null , libXcursor, libXext, libXi, libXinerama, libXrandr, libXScrnSaver, libXxf86vm , mpg123 ? null, opusfile ? null, pcre, pixman, SDL2_mixer, speexdsp ? null, wildmidi ? null, zlib }: stdenv.mkDerivation rec { pname = "easyrpg-player"; - version = "0.6.2.1"; + version = "0.6.2.3"; src = fetchFromGitHub { owner = "EasyRPG"; repo = "Player"; rev = version; - sha256 = "19wpjvlkjmjhdv1dbph6i2da1xx479zhr532x0ili1aphw1j9hi6"; + sha256 = "103ywad12dcfjpf97kyx22smilqrw1f20xcfvjjr4mm3walc2mdp"; }; - nativeBuildInputs = [ cmake doxygen pkgconfig ]; + nativeBuildInputs = [ cmake doxygen pkg-config ]; buildInputs = [ freetype @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { zlib ]; - meta = with stdenv.lib; { + meta = with lib; { description = "RPG Maker 2000/2003 and EasyRPG games interpreter"; homepage = "https://easyrpg.org/"; license = licenses.gpl3; diff --git a/pkgs/games/eboard/default.nix b/pkgs/games/eboard/default.nix index b11cc90d11f..293811e9b04 100644 --- a/pkgs/games/eboard/default.nix +++ b/pkgs/games/eboard/default.nix @@ -1,17 +1,18 @@ -{ stdenv, fetchurl, perl, pkgconfig, gtk2 }: +{ lib, stdenv, fetchurl, perl, pkg-config, gtk2 }: -stdenv.mkDerivation { - name = "eboard-1.1.1"; +stdenv.mkDerivation rec { + pname = "eboard"; + version = "1.1.1"; src = fetchurl { - url = "mirror://sourceforge/eboard/eboard-1.1.1.tar.bz2"; + url = "mirror://sourceforge/eboard/eboard-${version}.tar.bz2"; sha256 = "0vm25j1s2zg1lipwjv9qrcm877ikfmk1yh34i8f5l3bwd63115xd"; }; patches = [ ./eboard.patch ]; buildInputs = [ gtk2 ]; - nativeBuildInputs = [ perl pkgconfig ]; + nativeBuildInputs = [ perl pkg-config ]; hardeningDisable = [ "format" ]; @@ -25,6 +26,6 @@ stdenv.mkDerivation { meta = { homepage = "http://www.bergo.eng.br/eboard/"; description = "Chess interface for Unix-like systems"; - platforms = stdenv.lib.platforms.linux; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/eduke32/default.nix b/pkgs/games/eduke32/default.nix index 53baac79eed..8c7a79ff982 100644 --- a/pkgs/games/eduke32/default.nix +++ b/pkgs/games/eduke32/default.nix @@ -1,11 +1,8 @@ -{ stdenv, fetchurl, makeWrapper, pkgconfig, nasm, makeDesktopItem -, flac, gtk2, libvorbis, libvpx, libGLU, libGL +{ lib, stdenv, fetchurl, makeWrapper, pkg-config, nasm, makeDesktopItem +, alsa-lib, flac, gtk2, libvorbis, libvpx, libGLU, libGL , SDL2, SDL2_mixer }: let - version = "20190330"; - rev = "7470"; - desktopItem = makeDesktopItem { name = "eduke32"; exec = "@out@/bin/${wrapper}"; @@ -17,19 +14,21 @@ let wrapper = "eduke32-wrapper"; -in stdenv.mkDerivation { +in stdenv.mkDerivation rec { pname = "eduke32"; - inherit version; + version = "20210722"; + rev = "9484"; + revExtra = "f3fea8c15"; src = fetchurl { - url = "http://dukeworld.duke4.net/eduke32/synthesis/latest/eduke32_src_${version}-${rev}.tar.xz"; - sha256 = "09a7l23i6sygicc82w1in9hjw0jvivlf7q0vw8kcx9j98lm23mkn"; + url = "http://dukeworld.duke4.net/eduke32/synthesis/${version}-${rev}-${revExtra}/eduke32_src_${version}-${rev}-${revExtra}.tar.xz"; + sha256 = "0fdl2i465cl5x7129772ksx97lvim98m9009q5cfmf6scagj9pvz"; }; - buildInputs = [ flac gtk2 libvorbis libvpx libGL libGLU SDL2 SDL2_mixer ]; + buildInputs = [ alsa-lib flac gtk2 libvorbis libvpx libGL libGLU SDL2 SDL2_mixer ]; - nativeBuildInputs = [ makeWrapper pkgconfig ] - ++ stdenv.lib.optional (stdenv.hostPlatform.system == "i686-linux") nasm; + nativeBuildInputs = [ makeWrapper pkg-config ] + ++ lib.optional (stdenv.hostPlatform.system == "i686-linux") nasm; postPatch = '' substituteInPlace source/build/src/glbuild.cpp \ @@ -65,7 +64,7 @@ in stdenv.mkDerivation { runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Enhanched port of Duke Nukem 3D for various platforms"; homepage = "http://eduke32.com"; license = licenses.gpl2Plus; diff --git a/pkgs/games/egoboo/default.nix b/pkgs/games/egoboo/default.nix index 138ad8a757f..56ebcb1444e 100644 --- a/pkgs/games/egoboo/default.nix +++ b/pkgs/games/egoboo/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, libGLU, libGL, SDL, SDL_mixer, SDL_image, SDL_ttf }: +{ lib, stdenv, fetchurl, libGLU, libGL, SDL, SDL_mixer, SDL_image, SDL_ttf }: stdenv.mkDerivation rec { # pf5234 (a developer?) at freenode #egoboo told me that I better use 2.7.3 until @@ -50,10 +50,10 @@ stdenv.mkDerivation rec { description = "3D dungeon crawling adventure"; homepage = "http://www.freedink.org/"; - license = stdenv.lib.licenses.gpl2Plus; + license = lib.licenses.gpl2Plus; # I take it out of hydra as it does not work as well as I'd like - # maintainers = [ stdenv.lib.maintainers.bjg ]; - # platforms = stdenv.lib.platforms.all; + # maintainers = [ lib.maintainers.bjg ]; + # platforms = lib.platforms.all; }; } diff --git a/pkgs/games/eidolon/default.nix b/pkgs/games/eidolon/default.nix index e982c95c4d6..a224ba112e0 100644 --- a/pkgs/games/eidolon/default.nix +++ b/pkgs/games/eidolon/default.nix @@ -1,22 +1,23 @@ -{ stdenv, fetchgit, rustPlatform, pkgconfig, openssl }: +{ lib, fetchFromSourcehut, rustPlatform, pkg-config, openssl }: rustPlatform.buildRustPackage rec { pname = "eidolon"; version = "1.4.6"; - src = fetchgit { - url = "https://git.sr.ht/~nicohman/eidolon"; - rev = "${version}"; + src = fetchFromSourcehut { + owner = "~nicohman"; + repo = pname; + rev = version; sha256 = "1yn3k569pxzw43mmsk97088xpkdc714rks3ncchbb6ccx25kgxrr"; }; cargoPatches = [ ./cargo-lock.patch ]; - cargoSha256 = "1i8qfphynwi42pkhhgllxq42dnw9f0dd6f829z94a3g91czyqvsw"; + cargoSha256 = "01mnfn6j4sj9iqw5anpx8lqm9jmk7wdrx3h2hcvqcmkyrk1nggx0"; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ]; - meta = with stdenv.lib; { + meta = with lib; { 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; diff --git a/pkgs/games/empty-epsilon/0001-bundle-system-glm-in-seriousproton.patch b/pkgs/games/empty-epsilon/0001-bundle-system-glm-in-seriousproton.patch new file mode 100644 index 00000000000..d59d548a4a4 --- /dev/null +++ b/pkgs/games/empty-epsilon/0001-bundle-system-glm-in-seriousproton.patch @@ -0,0 +1,34 @@ +From 9718cdb4bdaf7203d07789b2dc5eec4060538889 Mon Sep 17 00:00:00 2001 +From: Maximilian Bosch <maximilian@mbosch.me> +Date: Fri, 9 Jul 2021 11:37:22 +0200 +Subject: [PATCH] bundle system-glm in seriousproton + +--- + CMakeLists.txt | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cbd68ca..730df82 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -81,6 +81,9 @@ if(NOT ${SFML_FOUND}) + ) + endif() + ++ ++find_package(glm) ++ + add_subdirectory(src/Box2D) + add_subdirectory(src/lua) + add_subdirectory(src/GL) +@@ -205,7 +208,7 @@ target_compile_options(seriousproton_deps + + target_link_libraries(seriousproton_deps + INTERFACE +- box2d lua glew ${SFML_LIBRARIES} ++ box2d lua glew ${SFML_LIBRARIES} glm + "$<$<BOOL:${WIN32}>:wsock32>" + # LTO flag must be on the linker's list as well. + "$<$<AND:$<BOOL:${CMAKE_COMPILER_IS_GNUCC}>,$<OR:$<CONFIG:RelWithDebInfo>,$<CONFIG:Release>>>:-flto>" +-- +2.31.1 diff --git a/pkgs/games/empty-epsilon/default.nix b/pkgs/games/empty-epsilon/default.nix index 098ed35406f..bee806fcdd5 100644 --- a/pkgs/games/empty-epsilon/default.nix +++ b/pkgs/games/empty-epsilon/default.nix @@ -1,26 +1,45 @@ -{ lib, stdenv, fetchFromGitHub, cmake, sfml, libX11, glew, python3 }: +{ lib, stdenv, fetchFromGitHub, cmake, sfml, libX11, glew, python3, fetchpatch, applyPatches, glm}: let - major = "2020"; - minor = "08"; - patch = "07"; + major = "2021"; + minor = "06"; + patch.seriousproton = "23"; + patch.emptyepsilon = "23"; - version = "${major}.${minor}.${patch}"; + version.seriousproton = "${major}.${minor}.${patch.seriousproton}"; + version.emptyepsilon = "${major}.${minor}.${patch.emptyepsilon}"; serious-proton = stdenv.mkDerivation { pname = "serious-proton"; - inherit version; + version = version.seriousproton; - src = fetchFromGitHub { - owner = "daid"; - repo = "SeriousProton"; - rev = "EE-${version}"; - sha256 = "1mfizhmwh6xgb5n34l3wrbxm21f7gsvsyacsmnxw9rkz0ya7ch30"; + src = applyPatches { + src = fetchFromGitHub { + owner = "daid"; + repo = "SeriousProton"; + rev = "EE-${version.seriousproton}"; + sha256 = "sha256-02cHHWKoe99257qLgxtMjeXnhi0UYajh4v87B57felM="; + }; + + patches = [ + # Various CMake fixes for `json11`. Can be removed on the next release. + (fetchpatch { + url = "https://github.com/daid/SeriousProton/commit/adbba45fd9ae5e020e43e5d7f9326f1355391209.patch"; + sha256 = "sha256-gMTpIGPGCREmZ/ZxvEc7RVsVUxWXbu2BPUCE3A62sCI="; + }) + + # Simplified variant of + # * https://github.com/daid/SeriousProton/commit/0d1ac45b738195db5e2785531db713328f547e60 + # * https://github.com/daid/SeriousProton/commit/32509f2db91a58b9528aeb1bb505e9426b52b825 + # + # To fix configure errors when building EmptyEpsilon, can be removed on the next release. + ./0001-bundle-system-glm-in-seriousproton.patch + ]; }; nativeBuildInputs = [ cmake ]; - buildInputs = [ sfml libX11 ]; + buildInputs = [ sfml libX11 glm ]; meta = with lib; { description = "C++ game engine coded on top of SFML used for EmptyEpsilon"; @@ -36,24 +55,36 @@ in stdenv.mkDerivation { pname = "empty-epsilon"; - inherit version; + version = version.emptyepsilon; src = fetchFromGitHub { owner = "daid"; repo = "EmptyEpsilon"; - rev = "EE-${version}"; - sha256 = "0p41wx9yk09xjmfkjpdgi3b2999ps2am3xqwd866q11f6ci7viv5"; + rev = "EE-${version.emptyepsilon}"; + sha256 = "sha256-dc/Ic1/DULTQO6y9xSop2HxFvUh4kN57oSF/HBmbmF4="; }; + patches = [ + # Various CMake fixes that can be removed when upgrading to the next release. + (fetchpatch { + url = "https://github.com/daid/EmptyEpsilon/commit/ee0cd42bfe5fd20b8339e8e02eb7f69766168d57.patch"; + sha256 = "sha256-8dXtl/izfzqbwHtjuugjH34vYP+d4AobqZhxL2GXTzw="; + }) + (fetchpatch { + url = "https://github.com/daid/EmptyEpsilon/commit/69d93e6acdae3259755924f9d35e7e5ae949d377.patch"; + sha256 = "sha256-30AGo4mi73GrW9GNS3vF3mTOS7J5/41LvjOzNjeFhOg="; + }) + ]; + nativeBuildInputs = [ cmake ]; - buildInputs = [ serious-proton sfml glew libX11 python3 ]; + buildInputs = [ serious-proton sfml glew libX11 python3 glm ]; cmakeFlags = [ "-DSERIOUS_PROTON_DIR=${serious-proton.src}" - "-DCPACK_PACKAGE_VERSION=${version}" + "-DCPACK_PACKAGE_VERSION=${version.emptyepsilon}" "-DCPACK_PACKAGE_VERSION_MAJOR=${major}" "-DCPACK_PACKAGE_VERSION_MINOR=${minor}" - "-DCPACK_PACKAGE_VERSION_PATCH=${patch}" + "-DCPACK_PACKAGE_VERSION_PATCH=${patch.emptyepsilon}" ]; meta = with lib; { diff --git a/pkgs/games/endgame-singularity/default.nix b/pkgs/games/endgame-singularity/default.nix index 4e855dbd053..d6b15301872 100644 --- a/pkgs/games/endgame-singularity/default.nix +++ b/pkgs/games/endgame-singularity/default.nix @@ -1,4 +1,4 @@ -{ stdenv +{ lib , fetchurl , fetchFromGitHub , unzip @@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec { rev = "v${version}"; sha256 = "0ndrnxwii8lag6vrjpwpf5n36hhv223bb46d431l9gsigbizv0hl"; }) - ] ++ stdenv.lib.optional enableDefaultMusicPack ( + ] ++ lib.optional enableDefaultMusicPack ( fetchurl { url = "http://www.emhsoft.com/singularity/endgame-singularity-music-007.zip"; sha256 = "0vf2qaf66jh56728pq1zbnw50yckjz6pf6c6qw6dl7vk60kkqnpb"; @@ -29,7 +29,7 @@ python3.pkgs.buildPythonApplication rec { propagatedBuildInputs = with python3.pkgs; [ pygame numpy polib ]; # Add the music - postInstall = stdenv.lib.optionalString enableDefaultMusicPack '' + postInstall = 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 @@ -42,7 +42,7 @@ python3.pkgs.buildPythonApplication rec { A simulation of a true AI. Go from computer to computer, pursued by the entire world. Keep hidden, and you might have a chance ''; - license = stdenv.lib.licenses.gpl2; - maintainers = with stdenv.lib.maintainers; [ fgaz ]; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [ fgaz ]; }; } diff --git a/pkgs/games/endless-sky/default.nix b/pkgs/games/endless-sky/default.nix index 76ab6542a7f..0c9871037f8 100644 --- a/pkgs/games/endless-sky/default.nix +++ b/pkgs/games/endless-sky/default.nix @@ -1,14 +1,10 @@ -{ stdenv, fetchFromGitHub +{ lib, stdenv, fetchFromGitHub, fetchpatch , SDL2, libpng, libjpeg, glew, openal, scons, libmad }: -let - version = "0.9.12"; - -in -stdenv.mkDerivation { +stdenv.mkDerivation rec { pname = "endless-sky"; - inherit version; + version = "0.9.12"; src = fetchFromGitHub { owner = "endless-sky"; @@ -17,6 +13,15 @@ stdenv.mkDerivation { sha256 = "1hly68ljm7yv01jfxyr7g6jivhj0igg6xx7vi92zqymick0hlh7a"; }; + patches = [ + (fetchpatch { + name = "endless-sky-gcc10.patch"; + url = "https://github.com/endless-sky/endless-sky/commit/bc3cab5992694547f9c6c067b5579ef06224781b.patch"; + sha256 = "0v3913jyzhh1d81dxv738kcd3xhh7mrl06qnmj7a3ya2xd9pq4dk"; + }) + ./fixes.patch + ]; + enableParallelBuilding = true; buildInputs = [ @@ -25,11 +30,7 @@ stdenv.mkDerivation { prefixKey = "PREFIX="; - patches = [ - ./fixes.patch - ]; - - meta = with stdenv.lib; { + meta = with lib; { description = "A sandbox-style space exploration game similar to Elite, Escape Velocity, or Star Control"; homepage = "https://endless-sky.github.io/"; license = with licenses; [ diff --git a/pkgs/games/enigma/default.nix b/pkgs/games/enigma/default.nix new file mode 100644 index 00000000000..131bd00e185 --- /dev/null +++ b/pkgs/games/enigma/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, makeWrapper, pkg-config, gettext, imagemagick, curl, libpng, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, xercesc, xdg-utils, hicolor-icon-theme }: +stdenv.mkDerivation rec { + pname = "enigma"; + version = "1.30-alpha"; + + src = fetchurl { + url = "https://github.com/Enigma-Game/Enigma/releases/download/${version}/${pname}-${version}.tar.gz"; + sha256 = "1zyk3j43gzfr1lhc6g13j7qai5f33fv5xm5735nnznaqvaz17949"; + }; + + nativeBuildInputs = [ pkg-config gettext makeWrapper imagemagick ]; + buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_ttf libpng xercesc curl xdg-utils ]; + + # For some reason (might be related to the alpha status), some includes + # which are required by lib-src/enigma-core are not picked up by the + # configure script. Hence we add them manually. + CPPFLAGS = "-I${SDL2.dev}/include/SDL2 -I${SDL2_ttf}/include/SDL2 -I${SDL2_image}/include/SDL2 -I${SDL2_mixer}/include/SDL2"; + + postInstall = '' + rm -r $out/include + wrapProgram $out/bin/enigma --prefix PATH : "${lib.makeBinPath [ xdg-utils ]}" + ''; + + meta = with lib; { + description = "Puzzle game inspired by Oxyd on the Atari ST and Rock'n'Roll on the Amiga"; + license = with licenses; [ gpl2 free ]; # source + bundles libs + art + platforms = platforms.unix; + broken = stdenv.targetPlatform.isDarwin; + maintainers = with maintainers; [ iblech ]; + homepage = "https://www.nongnu.org/enigma/"; + }; +} diff --git a/pkgs/games/enyo-doom/default.nix b/pkgs/games/enyo-doom/default.nix index ba07b50a1e7..eeb4086f924 100644 --- a/pkgs/games/enyo-doom/default.nix +++ b/pkgs/games/enyo-doom/default.nix @@ -1,27 +1,25 @@ -{ mkDerivation, stdenv, fetchFromGitLab, cmake, qtbase }: +{ mkDerivation, lib, fetchFromGitLab, cmake, qtbase }: mkDerivation rec { pname = "enyo-doom"; - version = "1.06.9"; + version = "2.0.2"; src = fetchFromGitLab { owner = "sdcofer70"; repo = "enyo-doom"; rev = version; - sha256 = "0vx5zy47cqrqdgyx31wg56ivva0qqiyww8bp1x32ax99danymjyf"; + sha256 = "1s1vpwrrpb9c7r2b0k1j7dlsfasfzmi6prcwql4mxwixrl7f8ms1"; }; nativeBuildInputs = [ cmake ]; buildInputs = [ qtbase ]; - enableParallelBuilding = true; - meta = { homepage = "https://gitlab.com/sdcofer70/enyo-doom"; description = "Frontend for Doom engines"; - license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.unix; - maintainers = [ stdenv.lib.maintainers.tadfisher ]; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.tadfisher ]; }; } diff --git a/pkgs/games/eternity-engine/default.nix b/pkgs/games/eternity-engine/default.nix index c170c0b9c18..42111556105 100644 --- a/pkgs/games/eternity-engine/default.nix +++ b/pkgs/games/eternity-engine/default.nix @@ -1,4 +1,4 @@ -{ stdenv, cmake, libGL, SDL, SDL_mixer, SDL_net, fetchFromGitHub, makeWrapper }: +{ lib, stdenv, cmake, libGL, SDL, SDL_mixer, SDL_net, fetchFromGitHub, makeWrapper }: stdenv.mkDerivation rec { pname = "eternity-engine"; @@ -13,8 +13,6 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake makeWrapper ]; buildInputs = [ libGL SDL SDL_mixer SDL_net ]; - enableParallelBuilding = true; - installPhase = '' install -Dm755 source/eternity $out/lib/eternity/eternity cp -r $src/base $out/lib/eternity/base @@ -25,8 +23,8 @@ stdenv.mkDerivation rec { meta = { homepage = "http://doomworld.com/eternity"; description = "New school Doom port by James Haley"; - license = stdenv.lib.licenses.gpl3; - platforms = stdenv.lib.platforms.linux; - maintainers = with stdenv.lib.maintainers; [ MP2E ]; + license = lib.licenses.gpl3; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ MP2E ]; }; } diff --git a/pkgs/games/extremetuxracer/default.nix b/pkgs/games/extremetuxracer/default.nix index 1c0a47e4b61..d114ed84800 100644 --- a/pkgs/games/extremetuxracer/default.nix +++ b/pkgs/games/extremetuxracer/default.nix @@ -1,23 +1,23 @@ -{ stdenv, fetchurl, libGLU, libGL, libX11, xorgproto, tcl, freeglut, freetype +{ lib, stdenv, fetchurl, libGLU, libGL, libX11, xorgproto, tcl, freeglut, freetype , sfml, libXi , libXmu, libXext, libXt, libSM, libICE -, libpng, pkgconfig, gettext, intltool +, libpng, pkg-config, gettext, intltool }: stdenv.mkDerivation rec { - version = "0.8.0"; + version = "0.8.1"; pname = "extremetuxracer"; src = fetchurl { url = "mirror://sourceforge/extremetuxracer/etr-${version}.tar.xz"; - sha256 = "05ysaxvsgps9fxc421kdifsxmc1sn6n79cjaa0k0i3fs9qqrja2b"; + sha256 = "sha256-ktqWPtMqub/xJjRu37lUnocdfDzsdT9KxQmODVPDg0E="; }; buildInputs = [ libGLU libGL libX11 xorgproto tcl freeglut freetype sfml libXi libXmu libXext libXt libSM libICE - libpng pkgconfig gettext intltool + libpng pkg-config gettext intltool ]; configureFlags = [ "--with-tcl=${tcl}/lib" ]; @@ -31,9 +31,9 @@ stdenv.mkDerivation rec { longDescription = '' ExtremeTuxRacer - Tux lies on his belly and accelerates down ice slopes. ''; - license = stdenv.lib.licenses.gpl2Plus; + license = lib.licenses.gpl2Plus; homepage = "https://sourceforge.net/projects/extremetuxracer/"; - maintainers = with stdenv.lib.maintainers; [ ]; - platforms = with stdenv.lib.platforms; linux; + maintainers = with lib.maintainers; [ ]; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/games/exult/arch.patch b/pkgs/games/exult/arch.patch deleted file mode 100644 index 70de34184a2..00000000000 --- a/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/pkgs/games/exult/default.nix b/pkgs/games/exult/default.nix index e735c9c5817..fe401a627b5 100644 --- a/pkgs/games/exult/default.nix +++ b/pkgs/games/exult/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, SDL, libogg, libvorbis, zlib, unzip }: +{ lib, stdenv, fetchurl, pkg-config, SDL2, libogg, libvorbis, zlib, unzip }: let @@ -12,27 +12,21 @@ let in stdenv.mkDerivation rec { - name = "exult-1.4.9rc1"; + pname = "exult"; + version = "1.6"; src = fetchurl { - url = "mirror://sourceforge/exult/${name}.tar.gz"; - sha256 = "0a03a2l3ji6h48n106d4w55l8v6lni1axniafnvvv5c5n3nz5bgd"; + url = "mirror://sourceforge/exult/exult-${version}.tar.gz"; + sha256 = "1dm27qkxj30567zb70q4acddsizn0xyi3z87hg7lysxdkyv49s3s"; }; configureFlags = [ "--disable-tools" ]; - patches = - [ # Arch Linux patch set. - ./arch.patch - ]; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ SDL libogg libvorbis zlib unzip ]; + nativeBuildInputs = [ pkg-config unzip ]; + buildInputs = [ SDL2 libogg libvorbis zlib ]; enableParallelBuilding = true; - makeFlags = [ "DESTDIR=$(out)" ]; - NIX_LDFLAGS = "-lX11"; postInstall = @@ -45,9 +39,9 @@ stdenv.mkDerivation rec { meta = { homepage = "http://exult.sourceforge.net/"; description = "A reimplementation of the Ultima VII game engine"; - maintainers = [ stdenv.lib.maintainers.eelco ]; - platforms = stdenv.lib.platforms.unix; - hydraPlatforms = stdenv.lib.platforms.linux; # darwin times out - license = stdenv.lib.licenses.gpl2Plus; + maintainers = [ lib.maintainers.eelco ]; + platforms = lib.platforms.unix; + hydraPlatforms = lib.platforms.linux; # darwin times out + license = lib.licenses.gpl2Plus; }; } diff --git a/pkgs/games/ezquake/default.nix b/pkgs/games/ezquake/default.nix index 83dadb7192c..90ddb6d6452 100644 --- a/pkgs/games/ezquake/default.nix +++ b/pkgs/games/ezquake/default.nix @@ -1,24 +1,24 @@ -{ stdenv, fetchFromGitHub, curl, expat +{ lib, stdenv, fetchFromGitHub, curl, expat , jansson, libpng, libjpeg, libGLU, libGL, libXxf86vm, pcre -, pkgconfig, SDL2, vim, speex }: +, pkg-config, SDL2, vim, speex }: stdenv.mkDerivation rec { pname = "ezquake"; - version = "3.2"; + version = "3.2.3"; src = fetchFromGitHub { owner = "ezQuake"; repo = pname + "-source"; rev = version; - sha256 = "11kyrqpc8w393kvfz2p2h2m7k8rm4w644m86w733b8w157f2fsk0"; + sha256 = "sha256-EBhKmoX11JavTG6tPfg15FY2lqOFfzSDg3058OWfcYQ="; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ expat curl jansson libpng libjpeg libGLU libGL libXxf86vm pcre SDL2 vim speex ]; - installPhase = with stdenv.lib; let + installPhase = with lib; let sys = last (splitString "-" stdenv.hostPlatform.system); arch = head (splitString "-" stdenv.hostPlatform.system); in '' @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://ezquake.github.io/"; description = "A modern QuakeWorld client focused on competitive online play"; license = licenses.gpl2; diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix index 0226acf1604..9798d659322 100644 --- a/pkgs/games/factorio/default.nix +++ b/pkgs/games/factorio/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl, makeWrapper, makeDesktopItem -, alsaLib, libpulseaudio, libX11, libXcursor, libXinerama, libXrandr, libXi, libGL +{ lib, stdenv, fetchurl, makeWrapper, makeDesktopItem +, alsa-lib, libpulseaudio, libX11, libXcursor, libXinerama, libXrandr, libXi, libGL , libSM, libICE, libXext, factorio-utils , releaseType , mods ? [] @@ -13,6 +13,8 @@ assert releaseType == "alpha" let + inherit (lib) importJSON; + helpMsg = '' ===FETCH FAILED=== @@ -40,7 +42,7 @@ let releaseType=alpha version=0.17.74 - nix-prefetch-url file://$HOME/Downloads/factorio_\''${releaseType}_x64_\''${version}.tar.xz --name factorio_\''${releaseType}_x64-\''${version}.tar.xz + nix-prefetch-url file://\''$HOME/Downloads/factorio_\''${releaseType}_x64_\''${version}.tar.xz --name factorio_\''${releaseType}_x64-\''${version}.tar.xz Note the ultimate "_" is replaced with "-" in the --name arg! ''; @@ -59,67 +61,54 @@ let # NB `experimental` directs us to take the latest build, regardless of its branch; # hence the (stable, experimental) pairs may sometimes refer to the same distributable. - binDists = { - x86_64-linux = let bdist = bdistForArch { inUrl = "linux64"; inTar = "x64"; }; in { - alpha = { - stable = bdist { sha256 = "0zixscff0svpb0yg8nzczp2z4filqqxi1k0z0nrpzn2hhzhf1464"; version = "1.0.0"; withAuth = true; }; - experimental = bdist { sha256 = "0zixscff0svpb0yg8nzczp2z4filqqxi1k0z0nrpzn2hhzhf1464"; version = "1.0.0"; withAuth = true; }; - }; - headless = { - stable = bdist { sha256 = "0r0lplns8nxna2viv8qyx9mp4cckdvx6k20w2g2fwnj3jjmf3nc1"; version = "1.0.0"; }; - experimental = bdist { sha256 = "0r0lplns8nxna2viv8qyx9mp4cckdvx6k20w2g2fwnj3jjmf3nc1"; version = "1.0.0"; }; - }; - demo = { - stable = bdist { sha256 = "0h9cqbp143w47zcl4qg4skns4cngq0k40s5jwbk0wi5asjz8whqn"; version = "1.0.0"; }; - }; - }; - i686-linux = let bdist = bdistForArch { inUrl = "linux32"; inTar = "i386"; }; in { - alpha = { - stable = bdist { sha256 = "0nnfkxxqnywx1z05xnndgh71gp4izmwdk026nnjih74m2k5j086l"; version = "0.14.23"; withAuth = true; nameMut = asGz; }; - }; - }; - }; + versions = importJSON ./versions.json; + binDists = makeBinDists versions; actual = binDists.${stdenv.hostPlatform.system}.${releaseType}.${branch} or (throw "Factorio ${releaseType}-${branch} binaries for ${stdenv.hostPlatform.system} are not available for download."); - bdistForArch = arch: { version - , sha256 - , withAuth ? false - , nameMut ? x: x - }: - let - url = "https://factorio.com/get-download/${version}/${releaseType}/${arch.inUrl}"; - name = nameMut "factorio_${releaseType}_${arch.inTar}-${version}.tar.xz"; - in { - inherit version arch; - src = - if withAuth then - (stdenv.lib.overrideDerivation - (fetchurl { - inherit name url sha256; - curlOpts = [ - "--get" - "--data-urlencode" "username@username" - "--data-urlencode" "token@token" - ]; - }) - (_: { # This preHook hides the credentials from /proc - preHook = '' + makeBinDists = versions: + let f = path: name: value: + if builtins.isAttrs value then + if value ? "name" then + makeBinDist value + else + builtins.mapAttrs (f (path ++ [ name ])) value + else + throw "expected attrset at ${toString path} - got ${toString value}"; + in + builtins.mapAttrs (f []) versions; + makeBinDist = { name, version, tarDirectory, url, sha256, needsAuth }: { + inherit version tarDirectory; + src = + if !needsAuth then + fetchurl { inherit name url sha256; } + else + (lib.overrideDerivation + (fetchurl { + inherit name url sha256; + curlOpts = [ + "--get" + "--data-urlencode" "username@username" + "--data-urlencode" "token@token" + ]; + }) + (_: { # This preHook hides the credentials from /proc + preHook = + if username != "" && token != "" then '' echo -n "${username}" >username echo -n "${token}" >token + '' else '' + # Deliberately failing since username/token was not provided, so we can't fetch. + # We can't use builtins.throw since we want the result to be used if the tar is in the store already. + exit 1 ''; - failureHook = '' - cat <<EOF - ${helpMsg} - EOF - ''; - }) - ) - else - fetchurl { inherit name url sha256; }; - }; - - asGz = builtins.replaceStrings [".xz"] [".gz"]; + failureHook = '' + cat <<EOF + ${helpMsg} + EOF + ''; + })); + }; configBaseCfg = '' use-system-read-write-data-directories=false @@ -154,12 +143,16 @@ let installPhase = '' mkdir -p $out/{bin,share/factorio} cp -a data $out/share/factorio - cp -a bin/${arch.inTar}/factorio $out/bin/factorio + cp -a bin/${tarDirectory}/factorio $out/bin/factorio patchelf \ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ $out/bin/factorio ''; + passthru.updateScript = if (username != "" && token != "") then [ + ./update.py "--username=${username}" "--token=${token}" + ] else null; + meta = { description = "A game in which you build and maintain factories"; longDescription = '' @@ -171,13 +164,13 @@ let ingenious structures, apply management skills to keep it working and finally protect it from the creatures who don't really like you. - Factorio has been in development since spring of 2012 and it is - currently in late alpha. + Factorio has been in development since spring of 2012, and reached + version 1.0 in mid 2020. ''; homepage = "https://www.factorio.com/"; - license = stdenv.lib.licenses.unfree; - maintainers = with stdenv.lib.maintainers; [ Baughn elitak erictapen priegger ]; - platforms = [ "i686-linux" "x86_64-linux" ]; + license = lib.licenses.unfree; + maintainers = with lib.maintainers; [ Baughn elitak erictapen priegger lukegb ]; + platforms = [ "x86_64-linux" ]; }; }; @@ -185,10 +178,11 @@ let headless = base; demo = base // { - buildInputs = [ makeWrapper libpulseaudio ]; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ libpulseaudio ]; - libPath = stdenv.lib.makeLibraryPath [ - alsaLib + libPath = lib.makeLibraryPath [ + alsa-lib libpulseaudio libX11 libXcursor diff --git a/pkgs/games/factorio/mods.nix b/pkgs/games/factorio/mods.nix index 5c9b4f0628a..7327b9e2287 100644 --- a/pkgs/games/factorio/mods.nix +++ b/pkgs/games/factorio/mods.nix @@ -2,12 +2,12 @@ # mods. It will eventually be replaced by a nixos-channel that will provide # derivations for most or all of the mods tracked through the official mod # manager site. -{ stdenv, fetchurl +{ lib, fetchurl , factorio-utils , allRecommendedMods ? true , allOptionalMods ? false }: -with stdenv.lib; +with lib; let modDrv = factorio-utils.modDrv { inherit allRecommendedMods allOptionalMods; }; in diff --git a/pkgs/games/factorio/update.py b/pkgs/games/factorio/update.py new file mode 100755 index 00000000000..3806ba3614f --- /dev/null +++ b/pkgs/games/factorio/update.py @@ -0,0 +1,180 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i python -p "python3.withPackages (ps: with ps; [ ps.absl-py ps.requests ])" nix + +from collections import defaultdict +import copy +from dataclasses import dataclass +import json +import os.path +import subprocess +from typing import Callable, Dict + +from absl import app +from absl import flags +from absl import logging +import requests + + +FACTORIO_API = "https://factorio.com/api/latest-releases" + + +FLAGS = flags.FLAGS + +flags.DEFINE_string('username', '', 'Factorio username for retrieving binaries.') +flags.DEFINE_string('token', '', 'Factorio token for retrieving binaries.') +flags.DEFINE_string('out', '', 'Output path for versions.json.') + + +@dataclass +class System: + nix_name: str + url_name: str + tar_name: str + + +@dataclass +class ReleaseType: + name: str + needs_auth: bool = False + + +@dataclass +class ReleaseChannel: + name: str + + +FactorioVersionsJSON = Dict[str, Dict[str, str]] +OurVersionJSON = Dict[str, Dict[str, Dict[str, Dict[str, str]]]] + + +SYSTEMS = [ + System(nix_name="x86_64-linux", url_name="linux64", tar_name="x64"), +] + +RELEASE_TYPES = [ + ReleaseType("alpha", needs_auth=True), + ReleaseType("demo"), + ReleaseType("headless"), +] + +RELEASE_CHANNELS = [ + ReleaseChannel("experimental"), + ReleaseChannel("stable"), +] + + +def find_versions_json() -> str: + if FLAGS.out: + return out + try_paths = ["pkgs/games/factorio/versions.json", "versions.json"] + for path in try_paths: + if os.path.exists(path): + return path + raise Exception("Couldn't figure out where to write versions.json; try specifying --out") + + +def fetch_versions() -> FactorioVersionsJSON: + return json.loads(requests.get("https://factorio.com/api/latest-releases").text) + + +def generate_our_versions(factorio_versions: FactorioVersionsJSON) -> OurVersionJSON: + rec_dd = lambda: defaultdict(rec_dd) + output = rec_dd() + + # Deal with times where there's no experimental version + for rc in RELEASE_CHANNELS: + if not factorio_versions[rc.name]: + factorio_versions[rc.name] = factorio_versions['stable'] + + for system in SYSTEMS: + for release_type in RELEASE_TYPES: + for release_channel in RELEASE_CHANNELS: + version = factorio_versions[release_channel.name][release_type.name] + this_release = { + "name": f"factorio_{release_type.name}_{system.tar_name}-{version}.tar.xz", + "url": f"https://factorio.com/get-download/{version}/{release_type.name}/{system.url_name}", + "version": version, + "needsAuth": release_type.needs_auth, + "tarDirectory": system.tar_name, + } + output[system.nix_name][release_type.name][release_channel.name] = this_release + return output + + +def iter_version(versions: OurVersionJSON, it: Callable[[str, str, str, Dict[str, str]], Dict[str, str]]) -> OurVersionJSON: + versions = copy.deepcopy(versions) + for system_name, system in versions.items(): + for release_type_name, release_type in system.items(): + for release_channel_name, release in release_type.items(): + release_type[release_channel_name] = it(system_name, release_type_name, release_channel_name, dict(release)) + return versions + + +def merge_versions(old: OurVersionJSON, new: OurVersionJSON) -> OurVersionJSON: + """Copies already-known hashes from version.json to avoid having to re-fetch.""" + def _merge_version(system_name: str, release_type_name: str, release_channel_name: str, release: Dict[str, str]) -> Dict[str, str]: + old_system = old.get(system_name, {}) + old_release_type = old_system.get(release_type_name, {}) + old_release = old_release_type.get(release_channel_name, {}) + if not "sha256" in old_release: + logging.info("%s/%s/%s: not copying sha256 since it's missing", system_name, release_type_name, release_channel_name) + return release + if not all(old_release.get(k, None) == release[k] for k in ['name', 'version', 'url']): + logging.info("%s/%s/%s: not copying sha256 due to mismatch", system_name, release_type_name, release_channel_name) + return release + release["sha256"] = old_release["sha256"] + return release + return iter_version(new, _merge_version) + + +def nix_prefetch_url(name: str, url: str, algo: str = 'sha256') -> str: + cmd = ['nix-prefetch-url', '--type', algo, '--name', name, url] + logging.info('running %s', cmd) + out = subprocess.check_output(cmd) + return out.decode('utf-8').strip() + + +def fill_in_hash(versions: OurVersionJSON) -> OurVersionJSON: + """Fill in sha256 hashes for anything missing them.""" + urls_to_hash = {} + def _fill_in_hash(system_name: str, release_type_name: str, release_channel_name: str, release: Dict[str, str]) -> Dict[str, str]: + if "sha256" in release: + logging.info("%s/%s/%s: skipping fetch, sha256 already present", system_name, release_type_name, release_channel_name) + return release + url = release["url"] + if url in urls_to_hash: + logging.info("%s/%s/%s: found url %s in cache", system_name, release_type_name, release_channel_name, url) + release["sha256"] = urls_to_hash[url] + return release + logging.info("%s/%s/%s: fetching %s", system_name, release_type_name, release_channel_name, url) + if release["needsAuth"]: + if not FLAGS.username or not FLAGS.token: + raise Exception("fetching %s/%s/%s from %s requires --username and --token" % (system_name, release_type_name, release_channel_name, url)) + url += f"?username={FLAGS.username}&token={FLAGS.token}" + release["sha256"] = nix_prefetch_url(release["name"], url) + urls_to_hash[url] = release["sha256"] + return release + return iter_version(versions, _fill_in_hash) + + +def main(argv): + factorio_versions = fetch_versions() + new_our_versions = generate_our_versions(factorio_versions) + old_our_versions = None + our_versions_path = find_versions_json() + if our_versions_path: + logging.info('Loading old versions.json from %s', our_versions_path) + with open(our_versions_path, 'r') as f: + old_our_versions = json.load(f) + if old_our_versions: + logging.info('Merging in old hashes') + new_our_versions = merge_versions(old_our_versions, new_our_versions) + logging.info('Fetching necessary tars to get hashes') + new_our_versions = fill_in_hash(new_our_versions) + with open(our_versions_path, 'w') as f: + logging.info('Writing versions.json to %s', our_versions_path) + json.dump(new_our_versions, f, sort_keys=True, indent=2) + f.write("\n") + +if __name__ == '__main__': + app.run(main) diff --git a/pkgs/games/factorio/utils.nix b/pkgs/games/factorio/utils.nix index 2764592a324..be5b7fd5ecc 100644 --- a/pkgs/games/factorio/utils.nix +++ b/pkgs/games/factorio/utils.nix @@ -1,7 +1,7 @@ # This file provides a top-level function that will be used by both nixpkgs and nixos # to generate mod directories for use at runtime by factorio. -{ stdenv }: -with stdenv.lib; +{ lib, stdenv }: +with lib; { mkModDirDrv = mods: # a list of mod derivations let diff --git a/pkgs/games/factorio/versions.json b/pkgs/games/factorio/versions.json new file mode 100644 index 00000000000..500181ff70e --- /dev/null +++ b/pkgs/games/factorio/versions.json @@ -0,0 +1,58 @@ +{ + "x86_64-linux": { + "alpha": { + "experimental": { + "name": "factorio_alpha_x64-1.1.36.tar.xz", + "needsAuth": true, + "sha256": "1x9a2lv6zbqawqlxg8bcbx04hjy0pq40macfa4sqi8w6h14wgww8", + "tarDirectory": "x64", + "url": "https://factorio.com/get-download/1.1.36/alpha/linux64", + "version": "1.1.36" + }, + "stable": { + "name": "factorio_alpha_x64-1.1.36.tar.xz", + "needsAuth": true, + "sha256": "1x9a2lv6zbqawqlxg8bcbx04hjy0pq40macfa4sqi8w6h14wgww8", + "tarDirectory": "x64", + "url": "https://factorio.com/get-download/1.1.36/alpha/linux64", + "version": "1.1.36" + } + }, + "demo": { + "experimental": { + "name": "factorio_demo_x64-1.1.35.tar.xz", + "needsAuth": false, + "sha256": "0yqb4gf2avpxr4vwafws9pv74xyd9g84zggfikfc801ldc7sp29f", + "tarDirectory": "x64", + "url": "https://factorio.com/get-download/1.1.35/demo/linux64", + "version": "1.1.35" + }, + "stable": { + "name": "factorio_demo_x64-1.1.36.tar.xz", + "needsAuth": false, + "sha256": "15fl4pza7n107rrmmdm26kkc12fnrmpn6rjb4ampgzqzn1fq854s", + "tarDirectory": "x64", + "url": "https://factorio.com/get-download/1.1.36/demo/linux64", + "version": "1.1.36" + } + }, + "headless": { + "experimental": { + "name": "factorio_headless_x64-1.1.36.tar.xz", + "needsAuth": false, + "sha256": "1s8g030xp5nrlmnn21frrd8n4nd7jjmb5hbpj1vhxjrk6vpijh24", + "tarDirectory": "x64", + "url": "https://factorio.com/get-download/1.1.36/headless/linux64", + "version": "1.1.36" + }, + "stable": { + "name": "factorio_headless_x64-1.1.36.tar.xz", + "needsAuth": false, + "sha256": "1s8g030xp5nrlmnn21frrd8n4nd7jjmb5hbpj1vhxjrk6vpijh24", + "tarDirectory": "x64", + "url": "https://factorio.com/get-download/1.1.36/headless/linux64", + "version": "1.1.36" + } + } + } +} diff --git a/pkgs/games/fairymax/default.nix b/pkgs/games/fairymax/default.nix index b5e3afa9e3b..49a91e7a64d 100644 --- a/pkgs/games/fairymax/default.nix +++ b/pkgs/games/fairymax/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl}: +{lib, stdenv, fetchurl}: stdenv.mkDerivation rec { pname = "fairymax"; version = "4.8"; @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { cp ${ini} fmax.ini ''; buildPhase = '' - gcc *.c -o fairymax -DINI_FILE='"'"$out/share/fairymax/fmax.ini"'"' + $CC *.c -Wno-return-type -o fairymax -DINI_FILE='"'"$out/share/fairymax/fmax.ini"'"' ''; installPhase = '' mkdir -p "$out"/{bin,share/fairymax} @@ -23,8 +23,7 @@ stdenv.mkDerivation rec { cp fmax.ini "$out/share/fairymax" ''; meta = { - inherit version; - description = ''A small chess engine supporting fairy pieces''; + description = "A small chess engine supporting fairy pieces"; longDescription = '' A version of micro-Max that reads the piece description from a file fmax.ini, so that arbitrary fairy pieces can be @@ -32,9 +31,9 @@ stdenv.mkDerivation rec { and board sizes up to 12x8. A Linux port exists in the format of a debian package. ''; - license = stdenv.lib.licenses.free ; - maintainers = [stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.free ; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.all; homepage = "http://home.hccnet.nl/h.g.muller/dwnldpage.html"; }; } diff --git a/pkgs/games/fheroes2/default.nix b/pkgs/games/fheroes2/default.nix new file mode 100644 index 00000000000..ea154db121e --- /dev/null +++ b/pkgs/games/fheroes2/default.nix @@ -0,0 +1,45 @@ +{ stdenv, lib, fetchFromGitHub +, gettext, libpng, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, zlib +}: + +stdenv.mkDerivation rec { + pname = "fheroes2"; + version = "0.9.5"; + + src = fetchFromGitHub { + owner = "ihhub"; + repo = "fheroes2"; + rev = version; + sha256 = "sha256-fqV2u6vChzU8387aQGf3OKeiWX188GouYZr4ZUmXWxs="; + }; + + buildInputs = [ gettext libpng SDL2 SDL2_image SDL2_mixer SDL2_ttf zlib ]; + + makeFlags = [ + "FHEROES2_STRICT_COMPILATION=1" + "RELEASE=1" + ]; + + enableParallelBuilding = true; + + installPhase = '' + runHook preInstall + + install -Dm755 $PWD/src/dist/fheroes2 $out/bin/fheroes2 + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/ihhub/fheroes2"; + description = "Free implementation of Heroes of Might and Magic II game engine"; + longDescription = '' + In order to play this game, an original game data is required. + Please refer to README of the project for instructions. + On linux, the data can be placed in ~/.local/share/fheroes2 folder. + ''; + license = licenses.gpl2Plus; + maintainers = [ maintainers.karolchmist ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/fish-fillets-ng/default.nix b/pkgs/games/fish-fillets-ng/default.nix index 638bf59fc78..5ddad7fda4c 100644 --- a/pkgs/games/fish-fillets-ng/default.nix +++ b/pkgs/games/fish-fillets-ng/default.nix @@ -1,7 +1,9 @@ -{stdenv, fetchurl, SDL, lua5_1, pkgconfig, SDL_mixer, SDL_image, SDL_ttf}: +{ lib, stdenv, fetchurl, makeDesktopItem, copyDesktopItems, SDL, lua5_1, pkg-config, SDL_mixer, SDL_image, SDL_ttf }: + stdenv.mkDerivation rec { pname = "fish-fillets-ng"; version = "1.0.1"; + src = fetchurl { url = "mirror://sourceforge/fillets/fillets-ng-${version}.tar.gz"; sha256 = "1nljp75aqqb35qq3x7abhs2kp69vjcj0h1vxcpdyn2yn2nalv6ij"; @@ -10,18 +12,30 @@ stdenv.mkDerivation rec { url = "mirror://sourceforge/fillets/fillets-ng-data-${version}.tar.gz"; sha256 = "169p0yqh2gxvhdilvjc2ld8aap7lv2nhkhkg4i1hlmgc6pxpkjgh"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [SDL lua5_1 SDL_mixer SDL_image SDL_ttf]; - postInstall='' - mkdir -p "$out/share/games/fillets-ng/" - tar -xf ${data} -C "$out/share/games/fillets-ng/" --strip-components=1 + + nativeBuildInputs = [ pkg-config copyDesktopItems ]; + buildInputs = [ SDL lua5_1 SDL_mixer SDL_image SDL_ttf ]; + + desktopItems = [ (makeDesktopItem { + name = "fish-fillets-ng"; + exec = "fillets"; + icon = "fish-fillets-ng"; + desktopName = "Fish Fillets"; + comment = "Puzzle game about witty fish saving the world sokoban-style"; + categories = "Game;LogicGame;"; + }) ]; + + postInstall = '' + mkdir -p $out/share/games/fillets-ng + tar -xf ${data} -C $out/share/games/fillets-ng --strip-components=1 + install -Dm644 ${./icon.xpm} $out/share/pixmaps/fish-fillets-ng.xpm ''; - meta = { - inherit version; - description = ''A puzzle game''; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = [stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.linux; + + meta = with lib; { + description = "A puzzle game"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ raskin ]; + platforms = platforms.linux; homepage = "http://fillets.sourceforge.net/"; }; } diff --git a/pkgs/games/fish-fillets-ng/icon.xpm b/pkgs/games/fish-fillets-ng/icon.xpm new file mode 100644 index 00000000000..9947c54e7e5 --- /dev/null +++ b/pkgs/games/fish-fillets-ng/icon.xpm @@ -0,0 +1,39 @@ +/* XPM */ +static char * fillets_ng_xpm[] = { +"32 32 4 1", +" c None", +". c #000000", +"+ c #808000", +"@ c #FFFF00", +" .......... ", +" ...+@@@@@@+... ", +" ...@@@@@@@@@@@@... ", +" ..+@@@+......+@@@+.. ", +" ..@@@+..........+@@@.. ", +" ..@@@..............@@@.. ", +" ..@@@................@@@.. ", +" ..@@@..................@@@.. ", +" .+@@....................@@+. ", +" ..@@......................@@.. ", +" .@@+......................+@@. ", +"..@@.....@@@@@.........@@...@@..", +".+@+...@@@@@@@@@.....@@@@...+@+.", +".@@...@@@.....@@@...@@+@@....@@.", +".@@...@@.+@....+@@+@@+.@@....@@.", +".@@..@@..@@.....+@@@+..@@....@@.", +".@@..@@.........+@@@+..@@....@@.", +".@@...@@.......+@@+@@+.@@....@@.", +".@@...@@@.....@@@...@@+@@....@@.", +".+@+...@@@@@@@@@.....@@@@...+@+.", +"..@@.....@@@@@.........@@...@@..", +" .@@+......................+@@. ", +" ..@@......................@@.. ", +" .+@@....................@@+. ", +" ..@@@..................@@@.. ", +" ..@@@................@@@.. ", +" ..@@@..............@@@.. ", +" ..@@@+..........+@@@.. ", +" ..+@@@+......+@@@+.. ", +" ...@@@@@@@@@@@@... ", +" ...+@@@@@@+... ", +" .......... "}; diff --git a/pkgs/games/flare/default.nix b/pkgs/games/flare/default.nix index 2058abebb55..8cd70aed614 100644 --- a/pkgs/games/flare/default.nix +++ b/pkgs/games/flare/default.nix @@ -1,14 +1,14 @@ { lib, buildEnv, callPackage, makeWrapper, Cocoa }: buildEnv { - name = "flare-1.11"; + name = "flare-1.12rc2"; paths = [ (callPackage ./engine.nix { inherit Cocoa; }) (callPackage ./game.nix {}) ]; - buildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper ]; postBuild = '' mkdir -p $out/bin makeWrapper $out/games/flare $out/bin/flare --run "cd $out/share/games/flare" diff --git a/pkgs/games/flare/desktop.patch b/pkgs/games/flare/desktop.patch new file mode 100644 index 00000000000..1ef3c21d010 --- /dev/null +++ b/pkgs/games/flare/desktop.patch @@ -0,0 +1,15 @@ +diff --git a/distribution/flare.desktop.in b/distribution/flare.desktop.in +index c740e2a6..eef91a89 100644 +--- a/distribution/flare.desktop.in ++++ b/distribution/flare.desktop.in +@@ -14,8 +14,8 @@ Comment[fr]=Un jeu de rôle d'action monojoueur en 2D isométrique + Comment[gl]=Xogo individual de acción e rol cunha vista isométrica en dúas dimensións. + Comment[ru]=Изометрический ролевой боевик для одного игрока + Comment[uk]=Ізометричний рольовий екшн (Action/RPG) для одного гравця +-TryExec=@FLARE_EXECUTABLE_PATH@ +-Exec=@FLARE_EXECUTABLE_PATH@ ++TryExec=flare ++Exec=flare + Categories=Game;RolePlaying; + Icon=flare + Terminal=false diff --git a/pkgs/games/flare/engine.nix b/pkgs/games/flare/engine.nix index 74f983c6441..1f1f35a3762 100644 --- a/pkgs/games/flare/engine.nix +++ b/pkgs/games/flare/engine.nix @@ -1,21 +1,23 @@ -{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, Cocoa }: +{ lib, stdenv, fetchFromGitHub, cmake, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, Cocoa }: stdenv.mkDerivation rec { pname = "flare-engine"; - version = "1.11"; + version = "1.12rc2"; src = fetchFromGitHub { owner = "flareteam"; repo = pname; rev = "v${version}"; - sha256 = "1j6raymz128miq517h9drks4gj79dajw3lsr0msqxz0z3zm6cc4n"; + sha256 = "10il9dpbcka1w5glmhv48bqwww44csmhq426lvsc7z84444gvvgq"; }; + patches = [ ./desktop.patch ]; + nativeBuildInputs = [ cmake ]; buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_ttf ] - ++ stdenv.lib.optional stdenv.isDarwin Cocoa; + ++ lib.optional stdenv.isDarwin Cocoa; - meta = with stdenv.lib; { + meta = with lib; { description = "Free/Libre Action Roleplaying Engine"; homepage = "https://github.com/flareteam/flare-engine"; maintainers = [ maintainers.aanderse ]; diff --git a/pkgs/games/flare/game.nix b/pkgs/games/flare/game.nix index 6a231a5ff7d..10e27b4d39c 100644 --- a/pkgs/games/flare/game.nix +++ b/pkgs/games/flare/game.nix @@ -1,19 +1,19 @@ -{ stdenv, fetchFromGitHub, cmake }: +{ lib, stdenv, fetchFromGitHub, cmake }: stdenv.mkDerivation rec { pname = "flare-game"; - version = "1.11"; + version = "1.12rc2"; src = fetchFromGitHub { owner = "flareteam"; repo = pname; rev = "v${version}"; - sha256 = "18m2qfbbaqklm20gnr7wzrwbmylp1jh781a4p1dq0hymqcg92x5l"; + sha256 = "0k9fnbaqfgmih8bd0sh3kbk6f6v74i95wrbkij48gp48pq8yqbf9"; }; nativeBuildInputs = [ cmake ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Fantasy action RPG using the FLARE engine"; homepage = "https://github.com/flareteam/flare-game"; maintainers = [ maintainers.aanderse ]; diff --git a/pkgs/games/flightgear/default.nix b/pkgs/games/flightgear/default.nix index e32f2e96d4f..0996d4bd512 100644 --- a/pkgs/games/flightgear/default.nix +++ b/pkgs/games/flightgear/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, wrapQtAppsHook +{ lib, stdenv, fetchurl, wrapQtAppsHook , freeglut, freealut, libGLU, libGL, libICE, libjpeg, openal, openscenegraph, plib , libSM, libunwind, libX11, xorgproto, libXext, libXi , libXmu, libXt, simgear, zlib, boost, cmake, libpng, udev, fltk13, apr @@ -6,15 +6,15 @@ }: let - version = "2020.1.2"; + version = "2020.3.8"; shortVersion = builtins.substring 0 6 version; data = stdenv.mkDerivation rec { pname = "flightgear-data"; inherit version; src = fetchurl { - url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.tar.bz2"; - sha256 = "0ldsjb54k8nb99h6n4f4x20nawd2pa0a8skkwkrgckdpmdv0zwyk"; + url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.txz"; + sha256 = "sha256-/KFumHRkmRvsU/L1i11jG/KbqobnOEP7l4lyPMKHycA="; }; phases = [ "installPhase" ]; @@ -32,13 +32,13 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2"; - sha256 = "1770kgwa7z70sx6da9x1q9cszpd3ywz6nn8jrb6xv8ldjqcpqpvb"; + sha256 = "XXDqhZ9nR+FwQ3LauZe8iGxOjlyDXDrEtj61BQGVDYc="; }; # Of all the files in the source and data archives, there doesn't seem to be # a decent icon :-) iconsrc = fetchurl { - url = "http://wiki.flightgear.org/images/6/62/FlightGear_logo.png"; + url = "https://wiki.flightgear.org/w/images/6/62/FlightGear_logo.png"; sha256 = "1ikz413jia55vfnmx8iwrlxvx8p16ggm81mbrj66wam3q7s2dm5p"; }; @@ -69,9 +69,7 @@ stdenv.mkDerivation rec { "--set FG_ROOT ${data}/share/FlightGear" ]; - enableParallelBuilding = true; - - meta = with stdenv.lib; { + meta = with lib; { description = "Flight simulator"; maintainers = with maintainers; [ raskin ]; platforms = platforms.linux; diff --git a/pkgs/games/fltrator/default.nix b/pkgs/games/fltrator/default.nix index 7cf16e0783e..9df7d9cccfd 100644 --- a/pkgs/games/fltrator/default.nix +++ b/pkgs/games/fltrator/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, unzip, fltk, which, libjpeg }: +{ lib, stdenv, fetchurl, unzip, fltk, which, libjpeg }: stdenv.mkDerivation rec { pname = "fltrator"; @@ -32,8 +32,8 @@ stdenv.mkDerivation rec { cp rsc/fltrator-128.png $out/share/icons/hicolor/128x128/apps/fltrator2.png ''; - meta = with stdenv.lib; { - description = "A simple retro style arcade side-scroller game."; + meta = with lib; { + description = "A simple retro style arcade side-scroller game"; longDescription = '' FLTrator is a simple retro style arcade side-scroller game in which you steer a spaceship through a landscape with hostile rockets and other obstacles. It has ten different levels and a level editor to create new levels or modify the existing.''; # from https://libregamewiki.org/FLTrator homepage = "http://fltrator.sourceforge.net/"; diff --git a/pkgs/games/freecell-solver/default.nix b/pkgs/games/freecell-solver/default.nix index 1845ba825eb..065e82a0e47 100644 --- a/pkgs/games/freecell-solver/default.nix +++ b/pkgs/games/freecell-solver/default.nix @@ -1,8 +1,8 @@ -{ stdenv, fetchurl, pkgconfig, cmake +{ lib, stdenv, fetchurl, pkg-config, cmake , perl, gmp, libtap, gperf , perlPackages, python3 }: -with stdenv.lib; +with lib; stdenv.mkDerivation rec { pname = "freecell-solver"; @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ - cmake perl pkgconfig + cmake perl pkg-config ] ++ (with perlPackages; TaskFreecellSolverTesting.buildInputs ++ [ GamesSolitaireVerify StringShellQuote TaskFreecellSolverTesting TemplateToolkit ]); diff --git a/pkgs/games/freeciv/default.nix b/pkgs/games/freeciv/default.nix index 3f64d92f07f..1560a45b061 100644 --- a/pkgs/games/freeciv/default.nix +++ b/pkgs/games/freeciv/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, lua5_3, pkgconfig, python3 -, zlib, bzip2, curl, lzma, gettext, libiconv +{ lib, stdenv, fetchFromGitHub, autoreconfHook, lua5_3, pkg-config, python3 +, zlib, bzip2, curl, xz, gettext, libiconv , sdlClient ? true, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_gfx, freetype, fluidsynth , gtkClient ? false, gtk3 , qtClient ? false, qt5 @@ -8,17 +8,17 @@ }: let - inherit (stdenv.lib) optional optionals; + inherit (lib) optional optionals; in stdenv.mkDerivation rec { pname = "freeciv"; - version = "2.6.2"; + version = "2.6.5"; src = fetchFromGitHub { owner = "freeciv"; repo = "freeciv"; rev = "R${builtins.replaceStrings [ "." ] [ "_" ] version}"; - sha256 = "023slffi06j52amrnmd8n12rmf778cngxx6xg4hbsgckj2nyfmg9"; + sha256 = "sha256-7KVtBGihABpcbUm5ac2fuBVaDvbucEJSREPulGUdnUE="; }; postPatch = '' @@ -28,15 +28,18 @@ in stdenv.mkDerivation rec { done ''; - nativeBuildInputs = [ autoreconfHook pkgconfig ]; + nativeBuildInputs = [ autoreconfHook pkg-config ] + ++ optional qtClient [ qt5.wrapQtAppsHook ]; - buildInputs = [ lua5_3 zlib bzip2 curl lzma gettext libiconv ] + buildInputs = [ lua5_3 zlib bzip2 curl xz gettext libiconv ] ++ optionals sdlClient [ SDL SDL_mixer SDL_image SDL_ttf SDL_gfx freetype fluidsynth ] ++ optionals gtkClient [ gtk3 ] ++ optionals qtClient [ qt5.qtbase ] ++ optional server readline ++ optional enableSqlite sqlite; + dontWrapQtApps = true; + configureFlags = [ "--enable-shared" ] ++ optional sdlClient "--enable-client=sdl" ++ optionals qtClient [ @@ -49,7 +52,7 @@ in stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { description = "Multiplayer (or single player), turn-based strategy game"; longDescription = '' diff --git a/pkgs/games/freedink/default.nix b/pkgs/games/freedink/default.nix index 735a49bee62..c80dc2b0703 100644 --- a/pkgs/games/freedink/default.nix +++ b/pkgs/games/freedink/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_gfx -, pkgconfig, intltool, fontconfig, libzip, zip, zlib }: +{ lib, stdenv, fetchurl, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_gfx +, pkg-config, intltool, fontconfig, libzip, zip, zlib }: let version = "1.08.20121209"; @@ -27,7 +27,7 @@ in stdenv.mkDerivation rec { buildInputs = [ SDL SDL_mixer SDL_image SDL_ttf SDL_gfx - pkgconfig intltool fontconfig libzip zip zlib + pkg-config intltool fontconfig libzip zip zlib ]; preConfigure = '' @@ -52,10 +52,10 @@ in stdenv.mkDerivation rec { ''; homepage = "http://www.freedink.org/"; - license = stdenv.lib.licenses.gpl3Plus; + license = lib.licenses.gpl3Plus; - maintainers = [ stdenv.lib.maintainers.bjg ]; - platforms = stdenv.lib.platforms.all; - hydraPlatforms = stdenv.lib.platforms.linux; # sdl-config times out on darwin + maintainers = [ lib.maintainers.bjg ]; + platforms = lib.platforms.all; + hydraPlatforms = lib.platforms.linux; # sdl-config times out on darwin }; } diff --git a/pkgs/games/freedroid/default.nix b/pkgs/games/freedroid/default.nix new file mode 100644 index 00000000000..266407d17db --- /dev/null +++ b/pkgs/games/freedroid/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv +, fetchFromGitHub +, makeDesktopItem, copyDesktopItems +, imagemagick +, autoreconfHook +, SDL, SDL_mixer, SDL_image, SDL_gfx +, libvorbis +, libjpeg, libpng +, zlib +}: + +stdenv.mkDerivation rec { + pname = "freedroid"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "ReinhardPrix"; + repo = "FreedroidClassic"; + rev = "release-${version}"; + sha256 = "027wns25nyyc8afyhyp5a8wn13x9nlzmnqzqyyma1055xjy5imis"; + }; + + nativeBuildInputs = [ copyDesktopItems imagemagick autoreconfHook ]; + buildInputs = [ SDL SDL_image SDL_gfx SDL_mixer libjpeg libpng libvorbis zlib ]; + + postPatch = '' + touch NEWS + ''; + + postInstall = '' + mkdir -p $out/share/icons/hicolor/32x32/apps + convert graphics/paraicon.bmp $out/share/icons/hicolor/32x32/apps/freedroid.png + ''; + + desktopItems = [ (makeDesktopItem { + name = pname; + exec = pname; + icon = pname; + desktopName = "Freedroid Classic"; + comment = "A clone of the classic game 'Paradroid' on Commodore 64"; + categories = "Game;ArcadeGame;"; + }) ]; + + meta = with lib; { + description = "A clone of the classic game 'Paradroid' on Commodore 64"; + homepage = "https://github.com/ReinhardPrix/FreedroidClassic"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ iblech ]; + platforms = platforms.unix; + # Builds but fails to render to the screen at runtime. + broken = stdenv.isDarwin; + }; +} diff --git a/pkgs/games/freedroidrpg/default.nix b/pkgs/games/freedroidrpg/default.nix index 443d60b9d67..53b008d11dd 100644 --- a/pkgs/games/freedroidrpg/default.nix +++ b/pkgs/games/freedroidrpg/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, pkgconfig, gettext, python3, SDL, SDL_image, SDL_gfx, SDL_mixer, libogg, libvorbis, lua5_3, libjpeg, libpng, zlib, libiconv }: +{ fetchurl, lib, stdenv, pkg-config, gettext, python3, SDL, SDL_image, SDL_gfx, SDL_mixer, libogg, libvorbis, lua5_3, libjpeg, libpng, zlib, libiconv }: let version = "0.16.1"; @@ -7,17 +7,17 @@ in stdenv.mkDerivation { inherit version; src = fetchurl { - url = "ftp://ftp.osuosl.org/pub/freedroid/freedroidRPG-${stdenv.lib.versions.majorMinor version}/freedroidRPG-${version}.tar.gz"; + url = "ftp://ftp.osuosl.org/pub/freedroid/freedroidRPG-${lib.versions.majorMinor version}/freedroidRPG-${version}.tar.gz"; sha256 = "0n4kn38ncmcy3lrxmq8fjry6c1z50z4q1zcqfig0j4jb0dsz2va2"; }; - nativeBuildInputs = [ pkgconfig gettext python3 ]; + nativeBuildInputs = [ pkg-config gettext python3 ]; buildInputs = [ SDL SDL_image SDL_gfx SDL_mixer libogg libvorbis lua5_3 libjpeg libpng zlib - ] ++ stdenv.lib.optional stdenv.isDarwin libiconv; + ] ++ lib.optional stdenv.isDarwin libiconv; - meta = with stdenv.lib; { + meta = with lib; { description = "Isometric 3D RPG similar to game Diablo"; longDescription = '' diff --git a/pkgs/games/freenukum/default.nix b/pkgs/games/freenukum/default.nix new file mode 100644 index 00000000000..ff1e8872233 --- /dev/null +++ b/pkgs/games/freenukum/default.nix @@ -0,0 +1,72 @@ +{ lib, stdenv +, rustPlatform +, fetchFromGitLab +, makeDesktopItem +, installShellFiles +, dejavu_fonts +, SDL2 +, SDL2_ttf +}: +let + pname = "freenukum"; + description = "Clone of the original Duke Nukum 1 Jump'n Run game"; + + desktopItem = makeDesktopItem { + desktopName = pname; + name = pname; + exec = pname; + icon = pname; + terminal = "false"; + comment = description; + type = "Application"; + categories = "Game;ArcadeGame;ActionGame"; + genericName = pname; + fileValidation = false; + }; + +in +rustPlatform.buildRustPackage rec { + inherit pname; + version = "0.3.5"; + + src = fetchFromGitLab { + owner = "silwol"; + repo = pname; + rev = "v${version}"; + sha256 = "0yqfzh0c8fqk92q9kmidy15dc5li0ak1gbn3v7p3xw5fkrzf99gy"; + }; + + cargoSha256 = "1nss5zbdvxkr1mfb6vi6yjxcih99w836kvfr4r3n5dvzlkvga2vf"; + + nativeBuildInputs = [ + installShellFiles + ]; + + buildInputs = [ + SDL2 + SDL2_ttf + ]; + + postPatch = '' + substituteInPlace src/graphics.rs \ + --replace /usr $out + ''; + + postInstall = '' + mkdir -p $out/share/fonts/truetype/dejavu + ln -sf \ + ${dejavu_fonts}/share/fonts/truetype/DejaVuSans.ttf \ + $out/share/fonts/truetype/dejavu/DejaVuSans.ttf + mkdir -p $out/share/doc/freenukum + install -Dm644 README.md CHANGELOG.md COPYING $out/share/doc/freenukum/ + installManPage doc/freenukum.6 + install -Dm644 "${desktopItem}/share/applications/"* -t $out/share/applications/ + ''; + + meta = with lib; { + description = "Clone of the original Duke Nukum 1 Jump'n Run game"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ _0x4A6F ]; + broken = stdenv.isDarwin; + }; +} diff --git a/pkgs/games/freeorion/default.nix b/pkgs/games/freeorion/default.nix index 27be32071c1..dea5190d976 100644 --- a/pkgs/games/freeorion/default.nix +++ b/pkgs/games/freeorion/default.nix @@ -1,48 +1,85 @@ -{ stdenv, fetchFromGitHub, cmake, doxygen, graphviz, makeWrapper -, boost168, SDL2, python2, freetype, openal, libogg, libvorbis, zlib, libpng, libtiff -, libjpeg, libGLU, libGL, glew, libxslt +{ lib +, stdenv +, fetchFromGitHub +, cmake +, doxygen +, graphviz +, makeWrapper +, cppcheck +, boost16x +, SDL2 +, python3 +, freetype +, openal +, libogg +, libvorbis +, zlib +, libpng +, libtiff +, libjpeg +, libGLU +, libGL +, glew +, libxslt }: stdenv.mkDerivation rec { - version = "0.4.9"; + version = "0.4.10.1"; pname = "freeorion"; src = fetchFromGitHub { - owner = "freeorion"; - repo = "freeorion"; + owner = "freeorion"; + repo = "freeorion"; rev = "v${version}"; - sha256 = "18xigx4qla225ybf7mc1w8zfm81nhcm1i5181n5l2fbndvslb1wf"; + sha256 = "sha256-Itt2JIStx+JsnMMBvbeJXSEJpaS/pd1UMvPGNd50k7I="; }; buildInputs = [ - (boost168.override { enablePython = true; }) - SDL2 python2 freetype openal libogg libvorbis zlib libpng libtiff libjpeg libGLU libGL glew ]; - - nativeBuildInputs = [ cmake doxygen graphviz makeWrapper ]; - - enableParallelBuilding = true; + (boost16x.override { enablePython = true; python = python3; }) + (python3.withPackages (p: with p; [ pycodestyle ])) + SDL2 + freetype + glew + libGL + libGLU + libjpeg + libogg + libpng + libtiff + libvorbis + openal + zlib + ]; - patches = [ + nativeBuildInputs = [ + cmake + cppcheck + doxygen + graphviz + makeWrapper ]; + # as of 0.4.10.1 FreeOrion doesn't work with "-DOpenGL_GL_PREFERENCE=GLVND" + cmakeFlags = [ "-DOpenGL_GL_PREFERENCE=LEGACY" ]; + postInstall = '' - mkdir -p $out/fixpaths + mkdir -p $out/libexec # We need final slashes for XSLT replace to work properly - substitute ${./fix-paths.xslt} $out/fixpaths/fix-paths.xslt \ + substitute ${./fix-paths.xslt} $out/share/freeorion/fix-paths.xslt \ --subst-var-by nixStore "$NIX_STORE/" \ --subst-var-by out "$out/" - substitute ${./fix-paths.sh} $out/fixpaths/fix-paths \ + substitute ${./fix-paths.sh} $out/libexec/fix-paths \ --subst-var-by libxsltBin ${libxslt.bin} \ --subst-var-by shell ${stdenv.shell} \ --subst-var out - chmod +x $out/fixpaths/fix-paths + chmod +x $out/libexec/fix-paths wrapProgram $out/bin/freeorion \ - --run $out/fixpaths/fix-paths \ + --run $out/libexec/fix-paths \ --prefix LD_LIBRARY_PATH : $out/lib/freeorion ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A free, open source, turn-based space empire and galactic conquest (4X) computer game"; homepage = "http://www.freeorion.org"; license = with licenses; [ gpl2 cc-by-sa-30 ]; diff --git a/pkgs/games/freeorion/fix-paths.sh b/pkgs/games/freeorion/fix-paths.sh index 3f82533dd60..def017ddc5b 100644 --- a/pkgs/games/freeorion/fix-paths.sh +++ b/pkgs/games/freeorion/fix-paths.sh @@ -1,6 +1,6 @@ #!@shell@ if [ -e ~/.config/freeorion/config.xml ]; then - @libxsltBin@/bin/xsltproc -o ~/.config/freeorion/config.xml @out@/fixpaths/fix-paths.xslt ~/.config/freeorion/config.xml + @libxsltBin@/bin/xsltproc -o ~/.config/freeorion/config.xml @out@/share/freeorion/fix-paths.xslt ~/.config/freeorion/config.xml fi exit 0 diff --git a/pkgs/games/freesweep/default.nix b/pkgs/games/freesweep/default.nix index fdaaadbe42f..7c17877e934 100644 --- a/pkgs/games/freesweep/default.nix +++ b/pkgs/games/freesweep/default.nix @@ -1,4 +1,4 @@ -{ fetchFromGitHub, ncurses, stdenv, +{ fetchFromGitHub, ncurses, lib, stdenv, updateAutotoolsGnuConfigScriptsHook }: stdenv.mkDerivation rec { @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A console minesweeper-style game written in C for Unix-like systems"; homepage = "https://github.com/rwestlund/freesweep"; license = licenses.gpl2; diff --git a/pkgs/games/frogatto/data.nix b/pkgs/games/frogatto/data.nix index ab5bbe2dd9f..d31826ad295 100644 --- a/pkgs/games/frogatto/data.nix +++ b/pkgs/games/frogatto/data.nix @@ -1,15 +1,15 @@ -{ stdenv, fetchFromGitHub }: - +{ lib, stdenv, fetchFromGitHub }: + stdenv.mkDerivation { pname = "frogatto-data"; - version = "unstable-2018-12-18"; - + version = "unstable-2021-05-24"; + src = fetchFromGitHub { owner = "frogatto"; repo = "frogatto"; - # master branch as of 2018-12-18 - rev = "8f261b5d3fca3c88e6a534316a28378cf687d3e5"; - sha256 = "0nyfwfyy5gxp61ydna299nq9p5wra9mk0bf1drdngg6bwws1hrqx"; + # master branch as of 2020-12-17 + rev = "8b0f2bc8f9f172f6225b8e0d806552cb94f35e2a"; + sha256 = "09nrna9l1zj2ma2bazdhdvphwy570kfz4br4xgpwq21rsjrvrqiy"; }; installPhase = '' @@ -17,7 +17,7 @@ stdenv.mkDerivation { cp -ar . $out/share/frogatto/modules/frogatto ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/frogatto/frogatto"; description = "Data files to the frogatto game"; license = with licenses; [ cc-by-30 unfree ]; diff --git a/pkgs/games/frogatto/default.nix b/pkgs/games/frogatto/default.nix index efcff024a54..0b53e3d0bea 100644 --- a/pkgs/games/frogatto/default.nix +++ b/pkgs/games/frogatto/default.nix @@ -1,4 +1,4 @@ -{ buildEnv, stdenv, callPackage, makeWrapper, makeDesktopItem }: +{ buildEnv, lib, callPackage, makeWrapper, makeDesktopItem }: let description = "Action-adventure game, starring a certain quixotic frog"; @@ -14,7 +14,7 @@ let genericName = "frogatto"; categories = "Game;ArcadeGame;"; }; - version = "unstable-2018-12-18"; + version = "unstable-2020-12-04"; in buildEnv { name = "frogatto-${version}"; @@ -33,7 +33,7 @@ in buildEnv { --run "cd $out/share/frogatto" ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://frogatto.com"; description = description; license = with licenses; [ cc-by-30 unfree ]; diff --git a/pkgs/games/frogatto/engine.nix b/pkgs/games/frogatto/engine.nix index d51cfcb8f20..22aab537c21 100644 --- a/pkgs/games/frogatto/engine.nix +++ b/pkgs/games/frogatto/engine.nix @@ -1,22 +1,26 @@ -{ stdenv, fetchFromGitHub, which +{ lib, stdenv, fetchFromGitHub, which , boost, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf -, glew, zlib, icu, pkgconfig, cairo, libvpx }: +, glew, zlib, icu, pkg-config, cairo, libvpx }: stdenv.mkDerivation { pname = "anura-engine"; - version = "unstable-2018-11-28"; + version = "unstable-2021-05-24"; src = fetchFromGitHub { owner = "anura-engine"; repo = "anura"; - # trunk branch as of 2018-11-28 - rev = "8070111467802dc772c0a6c7806ecd16b0bcdaa9"; - sha256 = "0xbqwfmws69n7iiz17n93h4jiw39cwyf7hxw0qi2c8cccr37b1nr"; + rev = "ed50bbfa68a4aa09438d95d39103ec39156d438f"; + sha256 = "0bk0qklk9wwx3jr2kbrmansccn1nj962v5n2vlb5hxsrcv96s3dg"; fetchSubmodules = true; }; + postPatch = '' + substituteInPlace src/sys.cpp \ + --replace mallinfo2 mallinfo + ''; + nativeBuildInputs = [ - which pkgconfig + which pkg-config ]; buildInputs = [ @@ -40,7 +44,7 @@ stdenv.mkDerivation { cp -a anura $out/bin/frogatto ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/anura-engine/anura"; description = "Game engine used by Frogatto"; license = licenses.zlib; diff --git a/pkgs/games/frotz/default.nix b/pkgs/games/frotz/default.nix index 800da177a3d..9b5256fc1c7 100644 --- a/pkgs/games/frotz/default.nix +++ b/pkgs/games/frotz/default.nix @@ -5,10 +5,12 @@ , libsndfile , libvorbis , ncurses -, stdenv }: +, which +, pkg-config +, lib, stdenv }: stdenv.mkDerivation rec { - version = "2.52"; + version = "2.53"; pname = "frotz"; src = fetchFromGitLab { @@ -16,9 +18,10 @@ stdenv.mkDerivation rec { owner = "DavidGriffith"; repo = "frotz"; rev = version; - sha256 = "11ca1dz31b7s5vxjqncwjwmbbcr2m5v2rxjn49g4gnvwd6mqw48y"; + sha256 = "sha256-xVC/iE71W/Wdy5aPGH9DtcVAHWCcg3HkEA3iDV6OYUo="; }; + nativeBuildInputs = [ which pkg-config ]; buildInputs = [ libao libmodplug libsamplerate libsndfile libvorbis ncurses ]; preBuild = '' makeFlagsArray+=( @@ -29,10 +32,10 @@ stdenv.mkDerivation rec { ''; installFlags = [ "PREFIX=$(out)" ]; - meta = with stdenv.lib; { + meta = with lib; { 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."; + description = "A z-machine interpreter for Infocom games and other interactive fiction"; platforms = platforms.unix; maintainers = with maintainers; [ nicknovitski ddelabru ]; license = licenses.gpl2; diff --git a/pkgs/games/frozen-bubble/default.nix b/pkgs/games/frozen-bubble/default.nix index 3b562ee44f2..f9dd3fd6159 100644 --- a/pkgs/games/frozen-bubble/default.nix +++ b/pkgs/games/frozen-bubble/default.nix @@ -1,5 +1,6 @@ -{ stdenv, fetchurl, perlPackages, pkgconfig, SDL, SDL_mixer, SDL_Pango, glib }: - +{ lib, fetchurl, perlPackages, pkg-config, SDL, SDL_mixer, SDL_Pango, glib +, copyDesktopItems, makeDesktopItem +}: perlPackages.buildPerlModule { pname = "frozen-bubble"; version = "2.212"; @@ -10,16 +11,27 @@ perlPackages.buildPerlModule { }; patches = [ ./fix-compilation.patch ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ copyDesktopItems pkg-config ]; buildInputs = [ glib SDL SDL_mixer SDL_Pango perlPackages.SDL perlPackages.FileSlurp ]; propagatedBuildInputs = with perlPackages; [ AlienSDL CompressBzip2 FileShareDir FileWhich IPCSystemSimple LocaleMaketextLexicon ]; perlPreHook = "export LD=$CC"; + desktopItems = [ + (makeDesktopItem { + name = "frozen-bubble"; + exec = "frozen-bubble"; + desktopName = "Frozen Bubble"; + genericName = "Frozen Bubble"; + comment = "Arcade/reflex colour matching game"; + categories = "Game;"; + }) + ]; + meta = { description = "Puzzle with Bubbles"; - license = stdenv.lib.licenses.gpl2; - maintainers = with stdenv.lib.maintainers; [ puckipedia ]; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [ puckipedia ]; }; } diff --git a/pkgs/games/fsg/default.nix b/pkgs/games/fsg/default.nix index b8a0d5ff3c7..3869ad98849 100644 --- a/pkgs/games/fsg/default.nix +++ b/pkgs/games/fsg/default.nix @@ -1,18 +1,19 @@ -{ stdenv, fetchurl, gtk2, glib, pkgconfig, libGLU, libGL, wxGTK, libX11, xorgproto +{ lib, stdenv, fetchurl, gtk2, glib, pkg-config, libGLU, libGL, wxGTK, libX11, xorgproto , runtimeShell }: -stdenv.mkDerivation { - name = "fsg-4.4"; +stdenv.mkDerivation rec { + pname = "fsg"; + version = "4.4"; src = fetchurl { - name = "fsg-src-4.4.tar.gz"; - url = "https://github.com/ctrlcctrlv/wxsand/blob/master/fsg-src-4.4-ORIGINAL.tar.gz?raw=true"; + name = "fsg-src-${version}.tar.gz"; + url = "https://github.com/ctrlcctrlv/wxsand/blob/master/fsg-src-${version}-ORIGINAL.tar.gz?raw=true"; sha256 = "1756y01rkvd3f1pkj88jqh83fqcfl2fy0c48mcq53pjzln9ycv8c"; }; hardeningDisable = [ "format" ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ gtk2 glib libGLU libGL wxGTK libX11 xorgproto ]; preBuild = '' @@ -31,7 +32,7 @@ stdenv.mkDerivation { meta = { description = "Cellular automata engine tuned towards the likes of Falling Sand"; - maintainers = [stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.linux; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/galaxis/default.nix b/pkgs/games/galaxis/default.nix index 19df8db78a0..a3847e73c8d 100644 --- a/pkgs/games/galaxis/default.nix +++ b/pkgs/games/galaxis/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, ncurses, xmlto }: +{ lib, stdenv, fetchurl, ncurses, xmlto }: -with stdenv.lib; +with lib; stdenv.mkDerivation rec { pname = "galaxis"; diff --git a/pkgs/games/gambatte/default.nix b/pkgs/games/gambatte/default.nix index ac099e21d56..07aad4a5b60 100644 --- a/pkgs/games/gambatte/default.nix +++ b/pkgs/games/gambatte/default.nix @@ -1,17 +1,17 @@ -{ stdenv, fetchFromGitHub, scons, qt4 }: +{ lib, stdenv, fetchFromGitHub, scons, qt4, alsa-lib }: stdenv.mkDerivation { pname = "gambatte"; - version = "2016-05-03"; + version = "2020-03-14"; src = fetchFromGitHub { owner = "sinamas"; repo = "gambatte"; - rev = "f8a810b103c4549f66035dd2be4279c8f0d95e77"; - sha256 = "1arv4zkh3fhrghsykl4blazc9diw09m44pyff1059z5b98smxy3v"; + rev = "56e3371151b5ee86dcdcf4868324ebc6de220bc9"; + sha256 = "0cc6zcvxpvi5hgcssb1zy0fkj9nk7n0d2xm88a4v05kpm5zw7sh2"; }; - buildInputs = [ scons qt4 ]; + buildInputs = [ scons qt4 alsa-lib ]; patches = [ ./fix-scons-paths.patch ]; @@ -24,7 +24,7 @@ stdenv.mkDerivation { cp gambatte_qt/bin/gambatte_qt $out/bin/ ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Portable, open-source Game Boy Color emulator"; homepage = "https://github.com/sinamas/gambatte"; license = licenses.gpl2; diff --git a/pkgs/games/garden-of-coloured-lights/default.nix b/pkgs/games/garden-of-coloured-lights/default.nix index fde573cecd8..d38d8936c1a 100644 --- a/pkgs/games/garden-of-coloured-lights/default.nix +++ b/pkgs/games/garden-of-coloured-lights/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, autoconf, automake, allegro }: +{ lib, stdenv, fetchurl, autoconf, automake, allegro }: stdenv.mkDerivation rec { pname = "garden-of-coloured-lights"; @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { sha256 = "1qsj4d7r22m5f9f5f6cyvam1y5q5pbqvy5058r7w0k4s48n77y6s"; }; - meta = with stdenv.lib; { + meta = with lib; { description = "Old-school vertical shoot-em-up / bullet hell"; homepage = "http://garden.sourceforge.net/drupal/"; maintainers = with maintainers; [ Profpatsch ]; diff --git a/pkgs/games/gargoyle/default.nix b/pkgs/games/gargoyle/default.nix index c4c512be2b8..bd592dbc55d 100644 --- a/pkgs/games/gargoyle/default.nix +++ b/pkgs/games/gargoyle/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, substituteAll, jam, cctools, pkgconfig +{ lib, stdenv, fetchFromGitHub, substituteAll, jam, cctools, pkg-config , SDL, SDL_mixer, SDL_sound, gtk2, libvorbis, smpeg }: let @@ -30,10 +30,10 @@ stdenv.mkDerivation rec { sha256 = "0w54avmbp4i4zps2rb4acmpa641s6wvwbrln4vbdhcz97fx48nzz"; }; - nativeBuildInputs = [ jam pkgconfig ] ++ stdenv.lib.optional stdenv.isDarwin cctools; + nativeBuildInputs = [ jam pkg-config ] ++ lib.optional stdenv.isDarwin cctools; buildInputs = [ SDL SDL_mixer SDL_sound gtk2 ] - ++ stdenv.lib.optionals stdenv.isDarwin [ smpeg libvorbis ]; + ++ lib.optionals stdenv.isDarwin [ smpeg libvorbis ]; buildPhase = jamenv + "jam -j$NIX_BUILD_CORES"; @@ -58,7 +58,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://ccxvii.net/gargoyle/"; license = licenses.gpl2Plus; description = "Interactive fiction interpreter GUI"; diff --git a/pkgs/games/gav/default.nix b/pkgs/games/gav/default.nix index e42afefb830..e94b73d763c 100644 --- a/pkgs/games/gav/default.nix +++ b/pkgs/games/gav/default.nix @@ -1,10 +1,11 @@ -{stdenv, fetchurl, SDL, SDL_image, SDL_mixer, SDL_net} : +{lib, stdenv, fetchurl, SDL, SDL_image, SDL_mixer, SDL_net} : -stdenv.mkDerivation { - name = "gav-0.9.0"; +stdenv.mkDerivation rec { + pname = "gav"; + version = "0.9.0"; src = fetchurl { - url = "mirror://sourceforge/gav/gav-0.9.0.tar.gz"; + url = "mirror://sourceforge/gav/gav-${version}.tar.gz"; sha256 = "8f0deb8b2cd775b339229054f4f282583a4cfbcba9d27a6213cf910bab944f3e"; }; @@ -20,7 +21,7 @@ stdenv.mkDerivation { meta = { description = "Remake of AV Arcade Volleyball"; homepage = "http://gav.sourceforge.net/"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/gcompris/default.nix b/pkgs/games/gcompris/default.nix index 67d52ac7bcb..a930b1682d4 100644 --- a/pkgs/games/gcompris/default.nix +++ b/pkgs/games/gcompris/default.nix @@ -18,11 +18,11 @@ mkDerivation rec { pname = "gcompris"; - version = "0.98"; + version = "1.1"; src = fetchurl { url = "http://gcompris.net/download/qt/src/gcompris-qt-${version}.tar.xz"; - sha256 = "1jmjykn0lpk0v6hs2flmch8v4da5bgxl891nav7szxw9l7aqnf4y"; + sha256 = "sha256-8Kj5R/7WwOuew7e9qgx2HWS8mnHX+cv8mhHmgXbm8q4="; }; cmakeFlags = [ diff --git a/pkgs/games/gcs/default.nix b/pkgs/games/gcs/default.nix index 9c0b479304a..9d8d74921e5 100644 --- a/pkgs/games/gcs/default.nix +++ b/pkgs/games/gcs/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, runCommand +{ lib, stdenv, fetchFromGitHub, runCommand , jdk8, ant , jre8, makeWrapper }: @@ -42,7 +42,8 @@ in stdenv.mkDerivation rec { cp -r ${library} gcs_library ''; - buildInputs = [ jdk8 jre8 ant makeWrapper ]; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jdk8 jre8 ant ]; buildPhase = '' cd apple_stubs ant @@ -66,7 +67,7 @@ in stdenv.mkDerivation rec { --add-flags "-cp $out/share/java/gcs-${version}.jar com.trollworks.gcs.app.GCS" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A stand-alone, interactive, character sheet editor for the GURPS 4th Edition roleplaying game system"; homepage = "https://gurpscharactersheet.com/"; license = licenses.mpl20; diff --git a/pkgs/games/gemrb/default.nix b/pkgs/games/gemrb/default.nix index 4f7d1cb3750..947957bc3af 100644 --- a/pkgs/games/gemrb/default.nix +++ b/pkgs/games/gemrb/default.nix @@ -1,30 +1,80 @@ -{ stdenv, fetchFromGitHub, cmake -, freetype, SDL2, SDL2_mixer, openal, zlib, libpng, python, libvorbis -, libiconv }: +{ lib +, stdenv +, fetchFromGitHub +, cmake +, SDL2 +, SDL2_mixer +, freetype +, libGL +, libiconv +, libpng +, libvlc +, libvorbis +, openal +, python2 # 0.9.0 crashes after character generation with py3, so stick to py2 for now +, zlib +}: +let + # the GLES backend on rpi is untested as I don't have the hardware + backend = + if (stdenv.isx86_32 || stdenv.isx86_64) then "OpenGL" else "GLES"; + + withVLC = stdenv.isDarwin; + + inherit (lib) optional optionalString; + +in stdenv.mkDerivation rec { pname = "gemrb"; - version = "0.8.6"; + version = "0.9.0"; src = fetchFromGitHub { - owner = "gemrb"; - repo = "gemrb"; - rev = "v${version}"; - sha256 = "0vsr3fsqmv9b7s5l0cwhpq2pf7ah2wvgmcn9y8asj6w8hprp17d4"; + owner = "gemrb"; + repo = "gemrb"; + rev = "v${version}"; + sha256 = "sha256-h/dNPY0QZ2m7aYgRla3r1E8APJqO99ePa2ABhhh3Aoc="; }; - # 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 ]; + buildInputs = [ + SDL2 + SDL2_mixer + freetype + libGL + libiconv + libpng + libvorbis + openal + python2 + zlib + ] + ++ optional withVLC libvlc; nativeBuildInputs = [ cmake ]; - enableParallelBuilding = true; + # libvlc isn't being detected properly as of 0.9.0, so set it + LIBVLC_INCLUDE_PATH = optionalString withVLC "${lib.getDev libvlc}/include"; + LIBVLC_LIBRARY_PATH = optionalString withVLC "${lib.getLib libvlc}/lib"; cmakeFlags = [ + "-DDATA_DIR=${placeholder "out"}/share/gemrb" + "-DEXAMPLE_CONF_DIR=${placeholder "out"}/share/doc/gemrb/examples" + "-DSYSCONF_DIR=/etc" + # use the Mesa drivers for video on ARM (harmless on x86) + "-DDISABLE_VIDEOCORE=ON" "-DLAYOUT=opt" + "-DOPENGL_BACKEND=${backend}" + "-DOpenGL_GL_PREFERENCE=GLVND" ]; - meta = with stdenv.lib; { + postInstall = '' + for s in 36 48 72 96 144; do + install -Dm444 ../artwork/gemrb-logo-glow-''${s}px.png $out/share/icons/hicolor/''${s}x''${s}/gemrb.png + done + install -Dm444 ../artwork/gemrb-logo.png $out/share/icons/gemrb.png + ''; + + meta = with lib; { description = "A reimplementation of the Infinity Engine, used by games such as Baldur's Gate"; longDescription = '' GemRB (Game engine made with pre-Rendered Background) is a portable @@ -32,9 +82,8 @@ stdenv.mkDerivation rec { support pseudo-3D role playing games based on the Dungeons & Dragons ruleset (Baldur's Gate and Icewind Dale series, Planescape: Torment). ''; - homepage = "http://gemrb.org/"; - license = licenses.gpl2; + homepage = "https://gemrb.org/"; + license = licenses.gpl2Only; maintainers = with maintainers; [ peterhoeg ]; - platforms = platforms.all; }; } diff --git a/pkgs/games/gimx/default.nix b/pkgs/games/gimx/default.nix new file mode 100644 index 00000000000..0ae5a791709 --- /dev/null +++ b/pkgs/games/gimx/default.nix @@ -0,0 +1,76 @@ +{ stdenv, lib, fetchFromGitHub, makeWrapper, curl, libusb1, xorg, libxml2 +, ncurses5, bluez, libmhash, gimxAuth ? "" }: + +let + gimx-config = fetchFromGitHub { + owner = "matlo"; + repo = "GIMX-configurations"; + rev = "c20300f24d32651d369e2b27614b62f4b856e4a0"; + sha256 = "02wcjk8da188x7y0jf3p0arjdh9zbb0lla3fxdb28b1xyybfvx5p"; + }; + +in stdenv.mkDerivation rec { + pname = "gimx"; + version = "8.0"; + + src = fetchFromGitHub { + owner = "matlo"; + repo = "GIMX"; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = "0265gg6q7ymg76fb4pjrfdwjd280b3zzry96qy92w0h411slph85"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ + curl libusb1 bluez libxml2 ncurses5 libmhash + xorg.libX11 xorg.libXi xorg.libXext + ]; + + patches = [ ./env.patch ]; + prePatch = (if gimxAuth == "afterglow" then (import ./variant.nix).afterglow + else ""); + + makeFlags = "build-core"; + installPhase = '' + runHook preInstall + + mkdir -p $out + substituteInPlace ./core/Makefile --replace "chmod ug+s" "echo" + + export DESTDIR="$out" + make install-shared install-core + mv $out/usr/lib $out/lib + mv $out/usr/bin $out/bin + rmdir $out/usr + + runHook postInstall + ''; + + postInstall = '' + mkdir -p $out/share + cp -r ./loader/firmware $out/share/firmware + cp -r ${gimx-config}/Linux $out/share/config + + makeWrapper $out/bin/gimx $out/bin/gimx-with-confs \ + --set GIMXCONF $out/share/config + + makeWrapper $out/bin/gimx $out/bin/gimx-test-ds4 \ + --set GIMXCONF $out/share/config \ + --add-flags "--nograb" --add-flags "--curses" \ + --add-flags "-p /dev/ttyUSB0" --add-flags "-c Dualshock4.xml" + + makeWrapper $out/bin/gimx $out/bin/gimx-test-xone \ + --set GIMXCONF $out/share/config \ + --add-flags "--nograb" --add-flags "--curses" \ + --add-flags "-p /dev/ttyUSB0" --add-flags "-c XOnePadUsb.xml" + ''; + + meta = with lib; { + homepage = "https://github.com/matlo/GIMX"; + description = "Game Input Multiplexer"; + license = licenses.gpl3Only; + platforms = platforms.linux; + maintainers = with maintainers; [ bb2020 ]; + }; +} diff --git a/pkgs/games/gimx/env.patch b/pkgs/games/gimx/env.patch new file mode 100644 index 00000000000..e1f8ed8bb6f --- /dev/null +++ b/pkgs/games/gimx/env.patch @@ -0,0 +1,30 @@ +--- a/core/config_reader.c ++++ b/core/config_reader.c +@@ -1353,8 +1353,10 @@ static int read_file(char* file_path) + int read_config_file(const char* file) + { + char file_path[PATH_MAX]; +- +- snprintf(file_path, sizeof(file_path), "%s%s%s%s", gimx_params.homedir, GIMX_DIR, CONFIG_DIR, file); ++ char* e = getenv("GIMXCONF"); if (e) { snprintf(file_path, sizeof(file_path), "%s/%s", e, file); } ++ else { ++ snprintf(file_path, sizeof(file_path), "%s%s%s%s", gimx_params.homedir, GIMX_DIR, CONFIG_DIR, file); ++ } + + if(read_file(file_path) == -1) + { +--- a/core/gimx.c ++++ b/core/gimx.c +@@ -190,8 +190,10 @@ void show_config() + } + + char file_path[PATH_MAX]; +- +- snprintf(file_path, sizeof(file_path), "%s%s%s%s", gimx_params.homedir, GIMX_DIR, CONFIG_DIR, gimx_params.config_file); ++ char* e = getenv("GIMXCONF"); if (e) { snprintf(file_path, sizeof(file_path), "%s/%s", e, gimx_params.config_file); } ++ else { ++ snprintf(file_path, sizeof(file_path), "%s%s%s%s", gimx_params.homedir, GIMX_DIR, CONFIG_DIR, gimx_params.config_file); ++ } + + FILE * fp = gfile_fopen(file_path, "r"); + if (fp == NULL) diff --git a/pkgs/games/gimx/variant.nix b/pkgs/games/gimx/variant.nix new file mode 100644 index 00000000000..8396f72b4e7 --- /dev/null +++ b/pkgs/games/gimx/variant.nix @@ -0,0 +1,14 @@ +{ + afterglow = '' + substituteInPlace ./shared/gimxcontroller/include/x360.h \ + --replace "0x045e" "0x0e6f" --replace "0x028e" "0x0213" + + HEX="./loader/firmware/EMU360.hex" + sed -i '34s|1B2100|1B2110|' "$HEX" + sed -i '38s|092100|092110|' "$HEX" + sed -i '40s|5E048E021001|6F0E13020001|' "$HEX" + sed -i '34s|1C\r|0C\r|' "$HEX" + sed -i '38s|FE\r|EE\r|' "$HEX" + sed -i '40s|6D\r|DD\r|' "$HEX" + ''; +} diff --git a/pkgs/games/gl-117/default.nix b/pkgs/games/gl-117/default.nix index f76f761189c..0acabb4a55f 100644 --- a/pkgs/games/gl-117/default.nix +++ b/pkgs/games/gl-117/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl +{ lib, stdenv, fetchurl , libGLU, libGL, SDL, freeglut, SDL_mixer, autoconf, automake, libtool }: @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { buildInputs = [ libGLU libGL SDL freeglut SDL_mixer autoconf automake libtool ]; - meta = with stdenv.lib; { + meta = with lib; { description = "An air combat simulator"; homepage = "https://sourceforge.net/projects/gl-117"; maintainers = with maintainers; [ raskin ]; diff --git a/pkgs/games/globulation/default.nix b/pkgs/games/globulation/default.nix index e0e4b876f3e..9150541afd0 100644 --- a/pkgs/games/globulation/default.nix +++ b/pkgs/games/globulation/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, libGLU, libGL, SDL, sconsPackages, SDL_ttf, SDL_image, zlib, SDL_net +{ lib, stdenv, fetchurl, libGLU, libGL, SDL, sconsPackages, SDL_ttf, SDL_image, zlib, SDL_net , speex, libvorbis, libogg, boost, fribidi, bsdiff , fetchpatch }: @@ -21,9 +21,9 @@ stdenv.mkDerivation rec { patches = [ ./header-order.patch ./public-buildproject.patch (fetchpatch { - url = "https://bitbucket.org/giszmo/glob2/commits/c9dc715624318e4fea4abb24e04f0ebdd9cd8d2a/raw"; - sha256 = "0017xg5agj3dy0hx71ijdcrxb72bjqv7x6aq7c9zxzyyw0mkxj0k"; - }) + url = "https://bitbucket.org/giszmo/glob2/commits/c9dc715624318e4fea4abb24e04f0ebdd9cd8d2a/raw"; + sha256 = "0017xg5agj3dy0hx71ijdcrxb72bjqv7x6aq7c9zxzyyw0mkxj0k"; + }) ]; postPatch = '' @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = "-lboost_system"; - meta = with stdenv.lib; { + meta = with lib; { description = "RTS without micromanagement"; maintainers = with maintainers; [ raskin ]; platforms = platforms.linux; diff --git a/pkgs/games/gltron/default.nix b/pkgs/games/gltron/default.nix index f6d74b6e9b7..540170c49b2 100644 --- a/pkgs/games/gltron/default.nix +++ b/pkgs/games/gltron/default.nix @@ -1,9 +1,10 @@ -{stdenv, fetchurl, SDL, libGLU, libGL, zlib, libpng, libvorbis, libmikmod, SDL_sound } : +{lib, stdenv, fetchurl, SDL, libGLU, libGL, zlib, libpng, libvorbis, libmikmod, SDL_sound } : stdenv.mkDerivation rec { - name = "gltron-0.70"; + pname = "gltron"; + version = "0.70"; src = fetchurl { - url = "mirror://sourceforge/gltron/${name}-source.tar.gz"; + url = "mirror://sourceforge/gltron/gltron-${version}-source.tar.gz"; sha256 = "e0c8ebb41a18a1f8d7302a9c2cb466f5b1dd63e9a9966c769075e6b6bdad8bb0"; }; @@ -22,8 +23,8 @@ stdenv.mkDerivation rec { meta = { homepage = "http://www.gltron.org/"; description = "Game based on the movie Tron"; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [viric]; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/games/gmad/default.nix b/pkgs/games/gmad/default.nix index aad53a7915a..8f43c75f06a 100644 --- a/pkgs/games/gmad/default.nix +++ b/pkgs/games/gmad/default.nix @@ -1,14 +1,15 @@ -{ stdenv, fetchFromGitHub, premake4, bootil }: +{ lib, stdenv, fetchFromGitHub, premake4, bootil }: stdenv.mkDerivation rec { - name = "gmad-unstable-2015-04-16"; + pname = "gmad"; + version = "unstable-2015-04-16"; meta = { description = "Garry's Mod Addon Creator and Extractor"; homepage = "https://github.com/garrynewman/gmad"; - license = stdenv.lib.licenses.unfree; - maintainers = [ stdenv.lib.maintainers.abigailbuccaneer ]; - platforms = stdenv.lib.platforms.all; + license = lib.licenses.unfree; + maintainers = [ lib.maintainers.abigailbuccaneer ]; + platforms = lib.platforms.all; }; src = fetchFromGitHub { diff --git a/pkgs/games/gnome-hexgl/default.nix b/pkgs/games/gnome-hexgl/default.nix index cfa9a0b81d0..8e2fa41f420 100644 --- a/pkgs/games/gnome-hexgl/default.nix +++ b/pkgs/games/gnome-hexgl/default.nix @@ -1,4 +1,4 @@ -{ stdenv +{ lib, stdenv , fetchFromGitHub , ninja , meson @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { gtk3 ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Gthree port of HexGL"; homepage = "https://github.com/alexlarsson/gnome-hexgl"; license = licenses.mit; diff --git a/pkgs/games/gnonograms/default.nix b/pkgs/games/gnonograms/default.nix new file mode 100644 index 00000000000..7a696001a15 --- /dev/null +++ b/pkgs/games/gnonograms/default.nix @@ -0,0 +1,64 @@ +{ lib +, stdenv +, fetchFromGitHub +, vala +, meson +, ninja +, pkg-config +, desktop-file-utils +, appstream +, python3 +, shared-mime-info +, wrapGAppsHook +, gtk3 +, pantheon +, libgee +}: + +stdenv.mkDerivation rec { + pname = "gnonograms"; + version = "1.4.5"; + + src = fetchFromGitHub { + owner = "jeremypw"; + repo = "gnonograms"; + rev = "v${version}"; + sha256 = "1ly3inp6dvjrixdysz5hdfwlhbs49ks0lf8062z2iq6gaf8ivkb2"; + }; + + postPatch = '' + patchShebangs meson/post_install.py + ''; + + nativeBuildInputs = [ + vala + meson + ninja + pkg-config + desktop-file-utils + appstream + python3 + shared-mime-info + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + pantheon.granite + libgee + ]; + + meta = with lib; { + description = "Nonograms puzzle game"; + longDescription = '' + An implementation of the Japanese logic puzzle "Nonograms" written in + Vala, allowing the user to: + * Draw puzzles + * Generate random puzzles of chosen difficulty + ''; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ fgaz ]; + homepage = "https://github.com/jeremypw/gnonograms"; + platforms = platforms.all; + }; +} diff --git a/pkgs/games/gnubg/default.nix b/pkgs/games/gnubg/default.nix index edfde5ea3e9..7402049a9d8 100644 --- a/pkgs/games/gnubg/default.nix +++ b/pkgs/games/gnubg/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, glib, python, gtk2, readline }: +{ lib, stdenv, fetchurl, pkg-config, glib, python3, gtk2, readline }: let version = "1.06.002"; in stdenv.mkDerivation { @@ -9,12 +9,14 @@ stdenv.mkDerivation { sha256 = "11xwhcli1h12k6rnhhyq4jphzrhfik7i8ah3k32pqw803460n6yf"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ python glib gtk2 readline ]; + nativeBuildInputs = [ pkg-config python3 glib ]; + buildInputs = [ gtk2 readline ]; + + strictDeps = true; configureFlags = [ "--with-gtk" "--with--board3d" ]; - meta = with stdenv.lib; + meta = with lib; { description = "World class backgammon application"; homepage = "http://www.gnubg.org/"; license = licenses.gpl3; diff --git a/pkgs/games/gnuchess/default.nix b/pkgs/games/gnuchess/default.nix index a7b27933496..9f7d1684a5c 100644 --- a/pkgs/games/gnuchess/default.nix +++ b/pkgs/games/gnuchess/default.nix @@ -1,12 +1,12 @@ -{stdenv, fetchurl, flex, makeWrapper}: +{lib, stdenv, fetchurl, flex, makeWrapper}: let s = # Generated upstream information rec { baseName="gnuchess"; - version="6.2.7"; + version="6.2.8"; name="${baseName}-${version}"; url="mirror://gnu/chess/${name}.tar.gz"; - sha256="0ilq4bfl0lwyzf11q7n2skydjhalfn3bgxhrp5hjxs5bc5d6fdp5"; + sha256="0irqb0wl30c2i1rs8f6mm1c89l7l9nxxv7533lr408h1m36lc16m"; }; buildInputs = [ flex @@ -28,8 +28,8 @@ stdenv.mkDerivation { meta = { inherit (s) version; description = "GNU Chess engine"; - maintainers = [stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.unix; - license = stdenv.lib.licenses.gpl3Plus; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.unix; + license = lib.licenses.gpl3Plus; }; } diff --git a/pkgs/games/gnugo/default.nix b/pkgs/games/gnugo/default.nix index 069d14756e3..e33c27bf9eb 100644 --- a/pkgs/games/gnugo/default.nix +++ b/pkgs/games/gnugo/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl }: +{ lib, stdenv, fetchurl }: stdenv.mkDerivation rec { pname = "gnugo"; @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = { description = "GNU Go - A computer go player"; homepage = "https://www.gnu.org/software/gnugo/"; - license = stdenv.lib.licenses.gpl3; - platforms = stdenv.lib.platforms.unix; + license = lib.licenses.gpl3; + platforms = lib.platforms.unix; }; } diff --git a/pkgs/games/gnujump/default.nix b/pkgs/games/gnujump/default.nix index 8af7b84db26..6f91b103458 100644 --- a/pkgs/games/gnujump/default.nix +++ b/pkgs/games/gnujump/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, SDL, SDL_image, SDL_mixer }: +{ lib, stdenv, makeDesktopItem, copyDesktopItems, fetchurl, SDL, SDL_image, SDL_mixer }: stdenv.mkDerivation rec { pname = "gnujump"; @@ -7,11 +7,26 @@ stdenv.mkDerivation rec { url = "mirror://gnu/gnujump/${pname}-${version}.tar.gz"; sha256 = "05syy9mzbyqcfnm0hrswlmhwlwx54f0l6zhcaq8c1c0f8dgzxhqk"; }; + + nativeBuildInputs = [ copyDesktopItems ]; buildInputs = [ SDL SDL_image SDL_mixer ]; NIX_LDFLAGS = "-lm"; - meta = with stdenv.lib; { + desktopItems = [ (makeDesktopItem { + name = "gnujump"; + exec = "gnujump"; + icon = "gnujump"; + desktopName = "GNUjump"; + comment = "Jump up the tower to survive"; + categories = "Game;ArcadeGame;"; + }) ]; + + postInstall = '' + install -Dm644 ${./gnujump.xpm} $out/share/pixmaps/gnujump.xpm + ''; + + meta = with lib; { homepage = "https://jump.gnu.sinusoid.es/index.php?title=Main_Page"; description = "A clone of the simple yet addictive game Xjump"; longDescription = '' diff --git a/pkgs/games/gnujump/gnujump.xpm b/pkgs/games/gnujump/gnujump.xpm new file mode 100644 index 00000000000..d8b6bcb4c8c --- /dev/null +++ b/pkgs/games/gnujump/gnujump.xpm @@ -0,0 +1,64 @@ +/* XPM */ +static char *gnujump[] = { +/* columns rows colors chars-per-pixel */ +"32 32 26 1 ", +" c black", +". c #D10000", +"X c #E80000", +"o c #E90000", +"O c #F90000", +"+ c red", +"@ c #00C500", +"# c #00DC00", +"$ c #00DD00", +"% c #00EF00", +"& c #00FA00", +"* c #00FB00", +"= c green", +"- c #FFC882", +"; c #FFC982", +": c #FFD298", +"> c #FFD299", +", c #FFD399", +"< c #FFDAAB", +"1 c #FFDBAB", +"2 c #FFDBAC", +"3 c #FFE1BA", +"4 c #FFE5C3", +"5 c #FFE5C4", +"6 c #FFE7C7", +"7 c None", +/* pixels */ +"77777777777777777777777777777777", +"77777777777777777777777777777777", +"7777777777777 77777777777777", +"77777777777 777777777777", +"7777777777 77777777777", +"777777777 7777777777", +"777777777 ;;;-- 7777777777", +"77777777 ::>>,>1: 777777777", +"77777777 :<1<1:>2: 777777777", +"77777777 :1331: :: 7777 7777", +"77777777 :<3431: :, 777 o 777", +"777 777 ->236531>:2: 77 oo 777", +"77 .o 77 -,145443<1, 77 oOo 777", +"77 .ooo 7 -:13333312: 7 oOo 7777", +"777 oOOo :,11<<<:: oOOo 7777", +"7777 XOOooo :::>: XooO+Oo 7777", +"77777 oOOOOoo ooOOO+Oo 77777", +"777777 oOO+OOoooooOO++OOo 777777", +"7777777 XoOOOOOOOOOOOOoo 7777777", +"77777777 oooooooooooo 77777777", +"7777777777 7777777777", +"777777777 @@@@@@@@@@@@ 7777777", +"77777777 #######$$##$#### 777777", +"7777777 #%%%%%%%%%%%%%%%%# 77777", +"7777777 #%*&*&*%%%%%%*&*%# 77777", +"777777 #%*=**%%#####$%%&*%# 7777", +"777777 #%&*%%## ##%&%# 7777", +"77777 #%*%%## 777777 #%%# 7777", +"77777 #%%#$ 777777777 #%%# 777", +"7777 @%## 777777777777 #%# 777", +"7777 ## 7777777777777777 $# 777", +"77777 7777777777777777777 7777" +}; diff --git a/pkgs/games/gnushogi/default.nix b/pkgs/games/gnushogi/default.nix index 01c08fbf3dc..ef1950aaf40 100644 --- a/pkgs/games/gnushogi/default.nix +++ b/pkgs/games/gnushogi/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, zlib }: +{ lib, stdenv, fetchurl, zlib }: stdenv.mkDerivation rec { pname = "gnushogi"; @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { sha256 = "0a9bsl2nbnb138lq0h14jfc5xvz7hpb2bcsj4mjn6g1hcsl4ik0y"; }; - meta = with stdenv.lib; { + meta = with lib; { description = "GNU implementation of Shogi, also known as Japanese Chess"; homepage = "https://www.gnu.org/software/gnushogi/"; license = licenses.gpl3; diff --git a/pkgs/games/gogui/default.nix b/pkgs/games/gogui/default.nix index b13a145ff5e..c7b37b31c35 100644 --- a/pkgs/games/gogui/default.nix +++ b/pkgs/games/gogui/default.nix @@ -1,11 +1,11 @@ -{ fetchurl, stdenv, openjdk, unzip, makeWrapper }: +{ fetchurl, lib, stdenv, openjdk, unzip, makeWrapper }: let version = "1.4.9"; in stdenv.mkDerivation { pname = "gogui"; inherit version; - buildInputs = [ unzip makeWrapper ]; + nativeBuildInputs = [ makeWrapper unzip ]; src = fetchurl { url = "mirror://sourceforge/project/gogui/gogui/${version}/gogui-${version}.zip"; sha256 = "0qk6p1bhi1816n638bg11ljyj6zxvm75jdf02aabzdmmd9slns1j"; @@ -20,10 +20,10 @@ in stdenv.mkDerivation { done ''; meta = { - maintainers = [ stdenv.lib.maintainers.cleverca22 ]; + maintainers = [ lib.maintainers.cleverca22 ]; description = "A graphical user interface to programs that play the board game Go and support the Go Text Protocol such as GNU Go"; homepage = "http://gogui.sourceforge.net/"; - platforms = stdenv.lib.platforms.unix; - license = stdenv.lib.licenses.gpl3; + platforms = lib.platforms.unix; + license = lib.licenses.gpl3; }; } diff --git a/pkgs/games/grapejuice/default.nix b/pkgs/games/grapejuice/default.nix new file mode 100644 index 00000000000..586d93151e2 --- /dev/null +++ b/pkgs/games/grapejuice/default.nix @@ -0,0 +1,95 @@ +{ lib +, fetchFromGitLab +, gobject-introspection +, python3Packages +, gtk3 +, wrapGAppsHook +, glib +, cairo +, desktop-file-utils +, xdg-utils +, xdg-user-dirs +, wine +, winetricks +}: + +python3Packages.buildPythonApplication rec { + pname = "grapejuice"; + version = "3.40.14"; + + src = fetchFromGitLab { + owner = "BrinkerVII"; + repo = "grapejuice"; + rev = "v${version}"; + sha256 = "1bmkkmi1gx5kc39cjnz5bzwqaicxs0zb6bcv4iny9qccbqf3icrd"; + }; + + nativeBuildInputs = [ + gobject-introspection + desktop-file-utils + glib + gtk3 + wrapGAppsHook + ]; + + buildInputs = [ + cairo + ]; + + propagatedBuildInputs = with python3Packages; [ + requests + pygobject3 + dbus-python + packaging + psutil + setuptools + ]; + + dontWrapGApps = true; + + makeWrapperArgs = [ + "\${gappsWrapperArgs[@]}" + "--prefix PATH : ${lib.makeBinPath [ xdg-user-dirs xdg-utils wine (winetricks.override { wine = wine; }) ]}" + ]; + + postPatch = '' + substituteInPlace requirements.txt \ + --replace "PyGObject-stubs" "" + + substituteInPlace src/grapejuice_common/assets/desktop/grapejuice.desktop \ + --replace \$GRAPEJUICE_EXECUTABLE "$out/bin/grapejuice" \ + --replace \$GRAPEJUICE_ICON grapejuice + + substituteInPlace src/grapejuice_common/assets/desktop/roblox-player.desktop \ + --replace \$GRAPEJUICE_EXECUTABLE "$out/bin/grapejuice" \ + --replace \$PLAYER_ICON "grapejuice-roblox-player" + + substituteInPlace src/grapejuice_common/assets/desktop/roblox-app.desktop \ + --replace \$GRAPEJUICE_EXECUTABLE "$out/bin/grapejuice" \ + --replace \$PLAYER_ICON "grapejuice-roblox-player" + + substituteInPlace src/grapejuice_common/assets/desktop/roblox-studio.desktop \ + --replace \$GRAPEJUICE_EXECUTABLE "$out/bin/grapejuice" \ + --replace \$STUDIO_ICON "grapejuice-roblox-studio" + ''; + + postInstall = '' + mkdir -p "$out/share/icons" "$out/share/applications" "$out/share/mime/packages" + cp -r src/grapejuice_common/assets/desktop/* $out/share/applications/ + cp -r src/grapejuice_common/assets/icons $out/share/ + cp src/grapejuice_common/assets/mime_xml/*.xml $out/share/mime/packages/ + ''; + + # No tests + doCheck = false; + + pythonImportsCheck = [ "grapejuice" ]; + + meta = with lib; { + homepage = "https://gitlab.com/brinkervii/grapejuice"; + description = "Simple Wine+Roblox management tool"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ artturin ]; + }; +} diff --git a/pkgs/games/gscrabble/default.nix b/pkgs/games/gscrabble/default.nix index 307c09dfa1b..f0e4121d8f2 100644 --- a/pkgs/games/gscrabble/default.nix +++ b/pkgs/games/gscrabble/default.nix @@ -1,6 +1,6 @@ -{ stdenv, buildPythonApplication, fetchFromGitHub +{ lib, buildPythonApplication, fetchFromGitHub , gtk3, wrapGAppsHook, gst_all_1, gobject-introspection -, python3Packages, gnome3 }: +, python3Packages, gnome }: buildPythonApplication { pname = "gscrabble"; @@ -19,7 +19,7 @@ buildPythonApplication { buildInputs = with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad - gnome3.adwaita-icon-theme gtk3 gobject-introspection + gnome.adwaita-icon-theme gtk3 gobject-introspection ]; propagatedBuildInputs = with python3Packages; [ gst-python pygobject3 ]; @@ -30,11 +30,11 @@ buildPythonApplication { ) ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Golden Scrabble crossword puzzle game"; homepage = "https://github.com/RaaH/gscrabble/"; license = licenses.gpl2Plus; platforms = platforms.linux; - maintainers = [ maintainers.genesis ]; + maintainers = [ ]; }; } diff --git a/pkgs/games/gshogi/default.nix b/pkgs/games/gshogi/default.nix index 9004bd3d042..c3479f6758a 100644 --- a/pkgs/games/gshogi/default.nix +++ b/pkgs/games/gshogi/default.nix @@ -1,4 +1,4 @@ -{ stdenv, buildPythonApplication, fetchFromGitHub +{ lib, buildPythonApplication, fetchFromGitHub , gtk3, gobject-introspection , wrapGAppsHook, python3Packages }: @@ -27,7 +27,7 @@ buildPythonApplication rec { pycairo ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A graphical implementation of the Shogi board game, also known as Japanese Chess"; homepage = "http://johncheetham.com/projects/gshogi/"; license = licenses.gpl3; diff --git a/pkgs/games/gtetrinet/default.nix b/pkgs/games/gtetrinet/default.nix index 824e7afd734..d34b3775bd1 100644 --- a/pkgs/games/gtetrinet/default.nix +++ b/pkgs/games/gtetrinet/default.nix @@ -1,7 +1,8 @@ -{ fetchFromGitHub, stdenv, autoreconfHook, intltool, pkgconfig, libgnome, libgnomeui, GConf }: +{ fetchFromGitHub, lib, stdenv, autoreconfHook, intltool, pkg-config, libgnome, libgnomeui, GConf }: stdenv.mkDerivation { - name = "gtetrinet-0.7.11"; + pname = "gtetrinet"; + version = "0.7.11"; src = fetchFromGitHub { owner = "GNOME"; @@ -10,7 +11,7 @@ stdenv.mkDerivation { sha256 = "1y05x8lfyxvkjg6c87cfd0xxmb22c88scx8fq3gah7hjy5i42v93"; }; - nativeBuildInputs = [ autoreconfHook intltool pkgconfig ]; + nativeBuildInputs = [ autoreconfHook intltool pkg-config ]; buildInputs = [ libgnome libgnomeui ]; @@ -31,14 +32,14 @@ stdenv.mkDerivation { enableParallelBuilding = true; meta = { - description = "Client for Tetrinet, a multiplayer online Tetris game."; + description = "Client for Tetrinet, a multiplayer online Tetris game"; longDescription = '' GTetrinet is a client program for Tetrinet, a multiplayer tetris game that is played over the internet. ''; homepage = "http://gtetrinet.sourceforge.net/"; - license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.unix; - maintainers = [ stdenv.lib.maintainers.chris-martin ]; + license = lib.licenses.gpl2; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.chris-martin ]; }; } diff --git a/pkgs/games/gtypist/default.nix b/pkgs/games/gtypist/default.nix index ae12c325306..43b95bacefc 100644 --- a/pkgs/games/gtypist/default.nix +++ b/pkgs/games/gtypist/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, makeWrapper, libiconv, ncurses, perl, fortune}: +{lib, stdenv, fetchurl, makeWrapper, libiconv, ncurses, perl, fortune}: stdenv.mkDerivation rec { pname = "gtypist"; @@ -9,15 +9,16 @@ stdenv.mkDerivation rec { sha256 = "0xzrkkmj0b1dw3yr0m9hml2y634cc4h61im6zwcq57s7285z8fn1"; }; - buildInputs = [ makeWrapper ncurses perl fortune ] - ++ stdenv.lib.optional stdenv.isDarwin libiconv; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ ncurses perl fortune ] + ++ lib.optional stdenv.isDarwin libiconv; preFixup = '' wrapProgram "$out/bin/typefortune" \ --prefix PATH : "${fortune}/bin" \ ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://www.gnu.org/software/gtypist"; description = "Universal typing tutor"; license = licenses.gpl3Plus; diff --git a/pkgs/games/gweled/default.nix b/pkgs/games/gweled/default.nix index d5d4f5c4015..fc187afbe80 100644 --- a/pkgs/games/gweled/default.nix +++ b/pkgs/games/gweled/default.nix @@ -1,30 +1,34 @@ -{ stdenv, fetchbzr, intltool -, gtk2, wrapGAppsHook, autoreconfHook, pkgconfig +{ lib, stdenv, fetchbzr, gettext +, gtk2, wrapGAppsHook, autoreconfHook, pkg-config , libmikmod, librsvg, libcanberra-gtk2, hicolor-icon-theme }: stdenv.mkDerivation rec { pname = "gweled"; - version = "unstable-2018-02-15"; + version = "unstable-2021-02-11"; src = fetchbzr { url = "lp:gweled"; - rev = "94"; - sha256 = "01c38y4df5a06wqbsmsn8ysxx7hav9yvw6zdwbc9m5m55z7vmdb8"; + rev = "108"; + sha256 = "sha256-rM4dgbYfSrVqZwi+xzKuEtmtjK3HVvqeutmni1vleLo="; }; doCheck = false; - nativeBuildInputs = [ wrapGAppsHook intltool autoreconfHook pkgconfig ]; + postPatch = '' + substituteInPlace configure.ac --replace "AM_GNU_GETTEXT_VERSION([0.19.8])" "AM_GNU_GETTEXT_VERSION([${gettext.version}])" + ''; + + nativeBuildInputs = [ wrapGAppsHook gettext autoreconfHook pkg-config ]; buildInputs = [ gtk2 libmikmod librsvg hicolor-icon-theme libcanberra-gtk2 ]; configureFlags = [ "--disable-setgid" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Bejeweled clone game"; homepage = "https://gweled.org"; license = licenses.gpl2; platforms = platforms.linux; - maintainers = [ maintainers.genesis ]; + maintainers = [ ]; }; } diff --git a/pkgs/games/gzdoom/default.nix b/pkgs/games/gzdoom/default.nix index fdbdda2d313..8ab54468c00 100644 --- a/pkgs/games/gzdoom/default.nix +++ b/pkgs/games/gzdoom/default.nix @@ -1,21 +1,21 @@ -{ stdenv, fetchFromGitHub, cmake, makeWrapper, openal, fluidsynth_1 +{ lib, stdenv, fetchFromGitHub, cmake, makeWrapper, openal, fluidsynth_1 , soundfont-fluid, libGL, SDL2, bzip2, zlib, libjpeg, libsndfile, mpg123 -, game-music-emu, pkgconfig }: +, game-music-emu, pkg-config }: let zmusic-src = fetchFromGitHub { owner = "coelckers"; repo = "zmusic"; - rev = "2d0ea861174f9e2031400ab29f5bcc8425521cc6"; - sha256 = "1ac7lhbzwfr0fsyv7n70hvb8imzngxn1qyanmv9j26j0h90hhl8a"; + rev = "bff02053bea30bd789e45f60b90db3ffc69c8cc8"; + sha256 = "0vpr79gpdbhslg5qxyd1qxlv5akgli26skm1vb94yd8v69ymdcy2"; }; zmusic = stdenv.mkDerivation { pname = "zmusic"; - version = "1.1.0"; + version = "1.1.3"; src = zmusic-src; - nativeBuildInputs = [ cmake pkgconfig ]; + nativeBuildInputs = [ cmake pkg-config ]; preConfigure = '' sed -i \ @@ -28,17 +28,17 @@ let gzdoom = stdenv.mkDerivation rec { pname = "gzdoom"; - version = "4.4.2"; + version = "4.5.0"; src = fetchFromGitHub { owner = "coelckers"; repo = "gzdoom"; rev = "g${version}"; - sha256 = "1xkkmbsdv64wyb9r2fv5mwyqw0bjryk528jghdrh47pndmjs9a38"; + sha256 = "0kmqnyhdi5psi7zwrx9j3pz0cplypsvhg4cr8w2jbawh6jb71sk9"; fetchSubmodules = true; }; - nativeBuildInputs = [ cmake makeWrapper pkgconfig ]; + nativeBuildInputs = [ cmake makeWrapper pkg-config ]; buildInputs = [ SDL2 libGL @@ -53,8 +53,6 @@ let zmusic ]; - enableParallelBuilding = true; - NIX_CFLAGS_LINK = "-lopenal -lfluidsynth"; installPhase = '' @@ -72,7 +70,7 @@ let makeWrapper $out/lib/gzdoom/gzdoom $out/bin/gzdoom ''; - meta = with stdenv.lib; { + meta = with 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"; diff --git a/pkgs/games/harmonist/default.nix b/pkgs/games/harmonist/default.nix index fb9e1cf6617..ae7d6644ce7 100644 --- a/pkgs/games/harmonist/default.nix +++ b/pkgs/games/harmonist/default.nix @@ -1,22 +1,22 @@ -{stdenv, fetchurl, buildGoPackage}: +{lib, fetchurl, buildGoPackage}: buildGoPackage rec { pname = "harmonist"; - version = "0.3.0"; + version = "0.4.1"; goPackagePath = "git.tuxfamily.org/harmonist/harmonist.git"; src = fetchurl { url = "https://download.tuxfamily.org/harmonist/releases/${pname}-${version}.tar.gz"; - sha256 = "16bh4zzq7szwcw19n34bslkf81fz3i0p4zqkd8gdi5ixkbm998lm"; + sha256 = "19abqmzz9nnlnizkskvlkcpahk8lzrl57mgg6dfxn25l55vfznws"; }; goDeps = ./deps.nix; postInstall = "mv $out/bin/harmonist.git $out/bin/harmonist"; - meta = with stdenv.lib; { + meta = with lib; { description = "A stealth coffee-break roguelike game"; longDescription = '' Harmonist is a stealth coffee-break roguelike game. The game has a heavy @@ -29,6 +29,6 @@ buildGoPackage rec { homepage = "https://harmonist.tuxfamily.org/"; license = licenses.isc; platforms = platforms.unix; - maintainers = with maintainers; [freepotion]; + maintainers = with maintainers; []; }; } diff --git a/pkgs/games/harmonist/deps.nix b/pkgs/games/harmonist/deps.nix index 68290823625..8823ada42d4 100644 --- a/pkgs/games/harmonist/deps.nix +++ b/pkgs/games/harmonist/deps.nix @@ -1,20 +1,92 @@ [ { - goPackagePath = "github.com/nsf/termbox-go"; + goPackagePath = "github.com/mattn/go-runewidth"; fetch = { type = "git"; - url = "https://github.com/nsf/termbox-go"; - rev = "93860e16131719fa9722e7c448dbf8c0e3210a0d"; - sha256 = "03hz060cy8qrl4kgr80pbq6xvr38z4c6ghr3y81i8g854rvp6426"; + url = "https://github.com/mattn/go-runewidth"; + rev = "59616a248b91ae20bf3eb93636a24c87d9ce6cea"; + sha256 = "0jh9552ppqvkdfni7x623n0x5mbiaqqhjhmr0zkh28x56k4ysii4"; }; } { - goPackagePath = "github.com/mattn/go-runewidth"; + goPackagePath = "github.com/anaseto/gruid"; fetch = { type = "git"; - url = "https://github.com/mattn/go-runewidth"; - rev = "18c3d09a134a52720932bbaa92c798a0ab111004"; - sha256 = "1snr8mk63vz2h44knq26dm81p83887v7kb09iywqmx0nqzngih66"; + url = "https://github.com/anaseto/gruid"; + rev = "976b3db42d20169cf44eca1406b3cff104a80979"; + sha256 = "0rvsavkvg2hziwdh8sjk3n5v92m5mfjb8v9m7ch22maxfwq5kv6y"; + }; + } + { + goPackagePath = "github.com/anaseto/gruid-tcell"; + fetch = { + type = "git"; + url = "https://github.com/anaseto/gruid-tcell"; + rev = "4878126bb96fa0e529ec22c700d03b030e5c3bf7"; + sha256 = "0spm9gqsdan1mvbpypywid00vvl92rii8akhmjdm8l1r9qk7a3i4"; + }; + } + { + goPackagePath = "github.com/gdamore/tcell"; + fetch = { + type = "git"; + url = "https://github.com/gdamore/tcell"; + rev = "f4d402906fa3d330545365abbf970c048e677b35"; + sha256 = "1wcbm5vxrh5s8g4mas32y3n0pjvfmngmc2yrxg1yn4333mh9mgf3"; + }; + } + { + goPackagePath = "github.com/lucasb-eyer/go-colorful"; + fetch = { + type = "git"; + url = "https://github.com/lucasb-eyer/go-colorful"; + rev = "4d8f45c41ac988423342507a1fb6050239b5a742"; + sha256 = "1p2rl5353fi4p3l0bz3dg0lifhxqj8hjyh1b6z1cn286qxwnnnm8"; + }; + } + { + goPackagePath = "github.com/gdamore/encoding"; + fetch = { + type = "git"; + url = "https://github.com/gdamore/encoding"; + rev = "6289cdc94c00ac4aa177771c5fce7af2f96b626d"; + sha256 = "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"; + }; + } + { + goPackagePath = "github.com/rivo/uniseg"; + fetch = { + type = "git"; + url = "https://github.com/rivo/uniseg"; + rev = "75711fccf6a3e85bc74c241e2dddd06a9bc9e53d"; + sha256 = "0j7h22vfmjj562vr8gpsyrkrwp1pq9ayh5fylv24skxb467g9f0q"; + }; + } + { + goPackagePath = "golang.org/x/term/"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/term"; + rev = "6a3ed077a48de71621ad530f9078fffa0bc0ce32"; + sha256 = "0xni8n3q2r9f6fk223b2c1702fvqmgz7vk6738asri3fwby583q5"; + }; + } + { + goPackagePath = "golang.org/x/text/"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "e3aa4adf54f644ca0cb35f1f1fb19b239c40ef04"; + sha256 = "03q5kjmp4sfp5yzwb76lyf8cs9qca26vlwry5qgqf8w03rq700hf"; + }; + } + { + goPackagePath = "golang.org/x/sys/"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "88b6017d06564827ae436c619d52116f470a3611"; + sha256 = "14n7b6833lhxjzsgvi14c6c8nfiqqb4r71wvv4z5ksyssi95i3r7"; }; } ] diff --git a/pkgs/games/hawkthorne/default.nix b/pkgs/games/hawkthorne/default.nix index 81984530992..3da78349dbb 100644 --- a/pkgs/games/hawkthorne/default.nix +++ b/pkgs/games/hawkthorne/default.nix @@ -1,4 +1,4 @@ -{ fetchgit, stdenv, love, curl, zip }: +{ fetchgit, lib, stdenv, love, curl, zip }: stdenv.mkDerivation { version = "0.12.1"; @@ -32,8 +32,8 @@ stdenv.mkDerivation { Hawthorne's inheritance. ''; homepage = "https://www.reddit.com/r/hawkthorne"; - license = stdenv.lib.licenses.mit; - maintainers = with stdenv.lib.maintainers; [ campadrenalin ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ campadrenalin ]; broken = true; }; } diff --git a/pkgs/games/hedgewars/default.nix b/pkgs/games/hedgewars/default.nix index 00df6f33821..9062af5be38 100644 --- a/pkgs/games/hedgewars/default.nix +++ b/pkgs/games/hedgewars/default.nix @@ -1,7 +1,8 @@ -{ mkDerivation, SDL2_image, SDL2_ttf, SDL2_net, fpc, ghcWithPackages, ffmpeg_3, freeglut -, lib, fetchurl, cmake, pkgconfig, lua5_1, SDL2, SDL2_mixer +{ mkDerivation, SDL2_image, SDL2_ttf, SDL2_net, fpc, ghcWithPackages, ffmpeg, freeglut +, lib, fetchurl, cmake, pkg-config, lua5_1, SDL2, SDL2_mixer , zlib, libpng, libGL, libGLU, physfs , qtbase, qttools +, llvm , withServer ? true }: @@ -22,18 +23,23 @@ mkDerivation rec { sha256 = "0nqm9w02m0xkndlsj6ys3wr0ik8zc14zgilq7k6fwjrf3zk385i1"; }; - nativeBuildInputs = [ cmake pkgconfig qttools ]; + nativeBuildInputs = [ cmake pkg-config qttools ]; buildInputs = [ SDL2_ttf SDL2_net SDL2 SDL2_mixer SDL2_image fpc lua5_1 - ffmpeg_3 freeglut physfs + llvm # hard-requirement on aarch64, for some reason not strictly necessary on x86-64 + ffmpeg 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 \ @@ -96,7 +102,6 @@ mkDerivation rec { hedgehog or hedgehogs after a player's or CPU turn is shown only when all movement on the battlefield has ceased).''; maintainers = with maintainers; [ kragniz fpletz ]; - inherit (ghc.meta) platforms; - hydraPlatforms = []; + inherit (fpc.meta) platforms; }; } diff --git a/pkgs/games/hhexen/default.nix b/pkgs/games/hhexen/default.nix new file mode 100644 index 00000000000..0306c54ef4e --- /dev/null +++ b/pkgs/games/hhexen/default.nix @@ -0,0 +1,22 @@ +{ lib, fetchurl, SDL, stdenv }: + +stdenv.mkDerivation rec { + name = "hhexen"; + version = "1.6.3"; + src = fetchurl { + url = "mirror://sourceforge/hhexen/hhexen-${version}-src.tgz"; + sha256 = "1jwccqawbdn0rjn5p59j21rjy460jdhps7zwn2z0gq9biggw325b"; + }; + + buildInputs = [ SDL ]; + installPhase = '' + install -Dm755 hhexen-gl -t $out/bin + ''; + + meta = with lib; { + description = "Linux port of Raven Game's Hexen"; + homepage = "http://hhexen.sourceforge.net/hhexen.html"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ djanatyn ]; + }; +} diff --git a/pkgs/games/holdingnuts/default.nix b/pkgs/games/holdingnuts/default.nix index d0cee8d76cf..2bda1820928 100644 --- a/pkgs/games/holdingnuts/default.nix +++ b/pkgs/games/holdingnuts/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cmake, SDL, qt4 }: +{ lib, stdenv, fetchurl, cmake, SDL, qt4 }: let mirror = "http://download.holdingnuts.net"; in stdenv.mkDerivation rec { @@ -25,9 +25,10 @@ in stdenv.mkDerivation rec { substituteInPlace src/system/SysAccess.c --replace /usr/share $out/share ''; - buildInputs = [ cmake SDL qt4 ]; + nativeBuildInputs = [ cmake ]; + buildInputs = [ SDL qt4 ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://www.holdingnuts.net/"; description = "Open Source Poker client and server"; license = licenses.gpl3; diff --git a/pkgs/games/hyperrogue/default.nix b/pkgs/games/hyperrogue/default.nix index 32882f16894..08427bd2920 100644 --- a/pkgs/games/hyperrogue/default.nix +++ b/pkgs/games/hyperrogue/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, SDL, SDL_ttf, SDL_gfx, SDL_mixer, autoreconfHook, +{ lib, stdenv, fetchFromGitHub, SDL, SDL_ttf, SDL_gfx, SDL_mixer, autoreconfHook, libpng, glew, makeDesktopItem }: stdenv.mkDerivation rec { @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://www.roguetemple.com/z/hyper/"; description = "A roguelike game set in hyperbolic geometry"; maintainers = with maintainers; [ rardiol ]; diff --git a/pkgs/games/icbm3d/default.nix b/pkgs/games/icbm3d/default.nix index 71ecfacb37e..a166b4f83f2 100644 --- a/pkgs/games/icbm3d/default.nix +++ b/pkgs/games/icbm3d/default.nix @@ -1,9 +1,10 @@ -{stdenv, fetchurl, libX11}: +{lib, stdenv, fetchurl, libX11}: -stdenv.mkDerivation { - name = "icbm3d-0.4"; +stdenv.mkDerivation rec { + pname = "icbm3d"; + version = "0.4"; src = fetchurl { - url = "ftp://ftp.tuxpaint.org/unix/x/icbm3d/icbm3d.0.4.tar.gz"; + url = "ftp://ftp.tuxpaint.org/unix/x/icbm3d/icbm3d.${version}.tar.gz"; sha256 = "1z9q01mj0v9qbwby5cajjc9wpvdw2ma5v1r639vraxpl9qairm4s"; }; @@ -17,7 +18,7 @@ stdenv.mkDerivation { meta = { homepage = "http://www.newbreedsoftware.com/icbm3d/"; description = "3D vector-based clone of the atari game Missile Command"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/instead-launcher/default.nix b/pkgs/games/instead-launcher/default.nix index 84e3474225a..1f03a72390e 100644 --- a/pkgs/games/instead-launcher/default.nix +++ b/pkgs/games/instead-launcher/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, instead, qmake4Hook, zlib }: +{ lib, stdenv, fetchFromGitHub, instead, qmake4Hook, zlib }: stdenv.mkDerivation rec { pname = "instead-launcher"; @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { buildInputs = [ zlib ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://instead.syscall.ru/wiki/en/instead-launcher"; description = "Install and play games from INSTEAD repository"; license = licenses.gpl2; diff --git a/pkgs/games/instead/default.nix b/pkgs/games/instead/default.nix index f131b920990..5c35219c19b 100644 --- a/pkgs/games/instead/default.nix +++ b/pkgs/games/instead/default.nix @@ -1,9 +1,9 @@ -{ stdenv, fetchurl, SDL2, SDL2_ttf, SDL2_image, SDL2_mixer, pkgconfig, lua, zlib, unzip }: +{ lib, stdenv, fetchurl, SDL2, SDL2_ttf, SDL2_image, SDL2_mixer, pkg-config, lua, zlib, unzip }: let - version = "3.3.1"; + version = "3.3.2"; - # I took several games at random from http://instead.syscall.ru/games/ + # I took several games at random from https://instead.syscall.ru/games/ games = [ (fetchurl { url = "http://instead-games.googlecode.com/files/instead-apple-day-1.2.zip"; @@ -33,14 +33,19 @@ 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"; - nativeBuildInputs = [ pkgconfig unzip ]; + nativeBuildInputs = [ pkg-config 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 ''; @@ -57,11 +62,11 @@ stdenv.mkDerivation { enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { description = "Simple text adventure interpreter for Unix and Windows"; - homepage = "http://instead.syscall.ru/"; - license = stdenv.lib.licenses.gpl2; - platforms = with stdenv.lib.platforms; linux; + homepage = "https://instead.syscall.ru/"; + license = lib.licenses.gpl2; + platforms = with lib.platforms; linux; maintainers = with maintainers; [ pSub ]; }; } diff --git a/pkgs/games/iortcw/default.nix b/pkgs/games/iortcw/default.nix new file mode 100644 index 00000000000..8af3dfe31f6 --- /dev/null +++ b/pkgs/games/iortcw/default.nix @@ -0,0 +1,27 @@ +{ buildEnv, callPackage, makeWrapper }: + +let + sp = callPackage ./sp.nix {}; + mp = sp.overrideAttrs (oldAttrs: rec { + sourceRoot = "source/MP"; + }); +in buildEnv { + name = "iortcw"; + + paths = [ sp mp ]; + + pathsToLink = [ "/opt" ]; + + nativeBuildInputs = [ makeWrapper ]; + + # so we can launch sp from mp game and vice versa + postBuild = '' + for i in `find -L $out/opt/iortcw -maxdepth 1 -type f -executable`; do + makeWrapper $i $out/bin/`basename $i` --run "cd $out/opt/iortcw" + done + ''; + + meta = sp.meta // { + description = "Game engine for Return to Castle Wolfenstein"; + }; +} diff --git a/pkgs/games/iortcw/sp.nix b/pkgs/games/iortcw/sp.nix new file mode 100644 index 00000000000..fa6f73a177b --- /dev/null +++ b/pkgs/games/iortcw/sp.nix @@ -0,0 +1,52 @@ +{ lib, stdenv, fetchFromGitHub, opusfile, libogg, SDL2, openal, freetype +, libjpeg, curl, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "iortcw-sp"; + version = "1.51c"; + + src = fetchFromGitHub { + owner = "iortcw"; + repo = "iortcw"; + rev = version; + sha256 = "0g5wgqb1gm34pd05dj2i8nj3qhsz0831p3m7bsgxpjcg9c00jpyw"; + }; + + enableParallelBuilding = true; + + sourceRoot = "source/SP"; + + makeFlags = [ + "USE_INTERNAL_LIBS=0" + "COPYDIR=${placeholder "out"}/opt/iortcw" + "USE_OPENAL_DLOPEN=0" + "USE_CURL_DLOPEN=0" + ]; + + installTargets = [ "copyfiles" ]; + + buildInputs = [ + opusfile libogg SDL2 freetype libjpeg openal curl + ]; + nativeBuildInputs = [ makeWrapper ]; + + NIX_CFLAGS_COMPILE = [ + "-I${SDL2.dev}/include/SDL2" + "-I${opusfile}/include/opus" + ]; + NIX_CFLAGS_LINK = [ "-lSDL2" ]; + + postInstall = '' + for i in `find $out/opt/iortcw -maxdepth 1 -type f -executable`; do + makeWrapper $i $out/bin/`basename $i` --run "cd $out/opt/iortcw" + done + ''; + + meta = with lib; { + description = "Single player version of game engine for Return to Castle Wolfenstein"; + homepage = src.meta.homepage; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/pkgs/games/ivan/default.nix b/pkgs/games/ivan/default.nix index c5a93939a0f..f16aa752632 100644 --- a/pkgs/games/ivan/default.nix +++ b/pkgs/games/ivan/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, SDL2, SDL2_mixer, alsaLib, libpng +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, SDL2, SDL2_mixer, alsa-lib, libpng , pcre, makeDesktopItem }: stdenv.mkDerivation rec { @@ -13,9 +13,9 @@ stdenv.mkDerivation rec { sha256 = "04jzs8wad2b3g9hvnijr4r89iiw6b1i44zdzkg0dy447lrw6l6xc"; }; - nativeBuildInputs = [ cmake pkgconfig ]; + nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ SDL2 SDL2_mixer alsaLib libpng pcre ]; + buildInputs = [ SDL2 SDL2_mixer alsa-lib libpng pcre ]; hardeningDisable = ["all"]; @@ -52,7 +52,7 @@ stdenv.mkDerivation rec { cp ${ivanDesktop}/share/applications/* $out/share/applications ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Graphical roguelike game"; longDescription = '' Iter Vehemens ad Necem (IVAN) is a graphical roguelike game, which currently diff --git a/pkgs/games/ja2-stracciatella/Cargo.lock b/pkgs/games/ja2-stracciatella/Cargo.lock deleted file mode 100644 index d017e93e4db..00000000000 --- a/pkgs/games/ja2-stracciatella/Cargo.lock +++ /dev/null @@ -1,291 +0,0 @@ -[[package]] -name = "aho-corasick" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "bitflags" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "dtoa" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "getopts" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "itoa" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "libc" -version = "0.2.42" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "memchr" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "proc-macro2" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "quote" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rand" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "regex" -version = "0.1.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "aho-corasick 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "thread_local 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "regex-syntax" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "remove_dir_all" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "serde" -version = "1.0.70" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "serde_derive" -version = "1.0.70" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "serde_json" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "shell32-sys" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "stracciatella" -version = "0.1.0" -dependencies = [ - "getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 0.1.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", - "shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "syn" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "tempdir" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "thread-id" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "thread_local" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "unicode-width" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "unicode-xid" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "user32-sys" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "utf8-ranges" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "winapi" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[metadata] -"checksum aho-corasick 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686ddb66" -"checksum bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c54bb8f454c567f21197eefcdbf5679d0bd99f2ddbe52e84c77061952e6789" -"checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" -"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" -"checksum getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "0a7292d30132fb5424b354f5dc02512a86e4c516fe544bb7a25e7f266951b797" -"checksum itoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5adb58558dcd1d786b5f0bd15f3226ee23486e24b7b58304b60f64dc68e62606" -"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -"checksum libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)" = "b685088df2b950fccadf07a7187c8ef846a959c142338a48f9dc0b94517eb5f1" -"checksum memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20" -"checksum proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "effdb53b25cdad54f8f48843d67398f7ef2e14f12c1b4cb4effc549a6462a4d6" -"checksum quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e44651a0dc4cdd99f71c83b561e221f714912d11af1a4dff0631f923d53af035" -"checksum rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5" -"checksum regex 0.1.80 (registry+https://github.com/rust-lang/crates.io-index)" = "4fd4ace6a8cf7860714a2c2280d6c1f7e6a413486c13298bbc86fd3da019402f" -"checksum regex-syntax 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f9ec002c35e86791825ed294b50008eea9ddfc8def4420124fbc6b08db834957" -"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" -"checksum serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)" = "0c3adf19c07af6d186d91dae8927b83b0553d07ca56cbf7f2f32560455c91920" -"checksum serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)" = "3525a779832b08693031b8ecfb0de81cd71cfd3812088fafe9a7496789572124" -"checksum serde_json 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)" = "84b8035cabe9b35878adec8ac5fe03d5f6bc97ff6edd7ccb96b44c1276ba390e" -"checksum shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9ee04b46101f57121c9da2b151988283b6beb79b34f5bb29a58ee48cb695122c" -"checksum syn 0.14.4 (registry+https://github.com/rust-lang/crates.io-index)" = "2beff8ebc3658f07512a413866875adddd20f4fd47b2a4e6c9da65cd281baaea" -"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -"checksum thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03" -"checksum thread_local 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "8576dbbfcaef9641452d5cf0df9b0e7eeab7694956dd33bb61515fb8f18cfdd5" -"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" -"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -"checksum user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ef4711d107b21b410a3a974b1204d9accc8b10dad75d8324b5d755de1617d47" -"checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f" -"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" -"checksum winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "773ef9dcc5f24b7d850d0ff101e542ff24c3b090a9768e03ff889fdef41f00fd" -"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" -"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/pkgs/games/ja2-stracciatella/default.nix b/pkgs/games/ja2-stracciatella/default.nix index 89d75dd837f..3ad5ba20c53 100644 --- a/pkgs/games/ja2-stracciatella/default.nix +++ b/pkgs/games/ja2-stracciatella/default.nix @@ -1,47 +1,58 @@ -{ stdenv, fetchFromGitHub, cmake, SDL2, boost, fltk, rustPlatform }: +{ stdenv, lib, fetchurl, fetchFromGitHub, cmake, python, rustPlatform, SDL2, fltk, rapidjson, gtest, Carbon, Cocoa }: let - version = "0.16.1"; + version = "0.17.0"; src = fetchFromGitHub { owner = "ja2-stracciatella"; repo = "ja2-stracciatella"; rev = "v${version}"; - sha256 = "1pyn23syg70kiyfbs3pdlq0ixd2bxhncbamnic43rym3dmd52m29"; - }; - lockfile = ./Cargo.lock; - libstracciatellaSrc = stdenv.mkDerivation { - name = "libstracciatella-${version}-src"; - src = "${src}/rust"; - installPhase = '' - mkdir -p $out - cp -R ./* $out/ - cp ${lockfile} $out/Cargo.lock - ''; + sha256 = "0m6rvgkba29jy3yq5hs1sn26mwrjl6mamqnv4plrid5fqaivhn6j"; }; libstracciatella = rustPlatform.buildRustPackage { pname = "libstracciatella"; inherit version; - src = libstracciatellaSrc; - cargoSha256 = "15djs4xaz4y1hpfyfqxdgdasxr0b5idy9i5a7c8cmh0jkxjv8bqc"; - doCheck = false; + src = "${src}/rust"; + cargoHash = "sha256-asUt+wUpwwDvSyuNZds6yMC4Ef4D8woMYWamzcJJiy4="; + + preBuild = '' + mkdir -p $out/include/stracciatella + export HEADER_LOCATION=$out/include/stracciatella/stracciatella.h + ''; + }; + stringTheoryUrl = "https://github.com/zrax/string_theory/archive/3.1.tar.gz"; + stringTheory = fetchurl { + url = stringTheoryUrl; + sha256 = "1flq26kkvx2m1yd38ldcq2k046yqw07jahms8a6614m924bmbv41"; }; in stdenv.mkDerivation { pname = "ja2-stracciatella"; - inherit src; - inherit version; + inherit src version; - buildInputs = [ cmake SDL2 fltk boost ]; + nativeBuildInputs = [ cmake python ]; + buildInputs = [ SDL2 fltk rapidjson gtest ] ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ]; patches = [ ./remove-rust-buildstep.patch ]; preConfigure = '' - sed -i -e 's|rust-stracciatella|${libstracciatella}/lib/libstracciatella.so|g' CMakeLists.txt - cmakeFlagsArray+=("-DEXTRA_DATA_DIR=$out/share/ja2") + # Use rust library built with nix + substituteInPlace CMakeLists.txt \ + --replace lib/libstracciatella_c_api.a ${libstracciatella}/lib/libstracciatella_c_api.a \ + --replace include/stracciatella ${libstracciatella}/include/stracciatella \ + --replace bin/ja2-resource-pack ${libstracciatella}/bin/ja2-resource-pack + + # Patch dependencies that are usually loaded by url + substituteInPlace dependencies/lib-string_theory/builder/CMakeLists.txt.in \ + --replace ${stringTheoryUrl} file://${stringTheory} + + cmakeFlagsArray+=("-DLOCAL_RAPIDJSON_LIB=OFF" "-DLOCAL_GTEST_LIB=OFF" "-DEXTRA_DATA_DIR=$out/share/ja2") ''; - enableParallelBuilding = true; + doInstallCheck = true; + installCheckPhase = '' + HOME=/tmp $out/bin/ja2 -unittests + ''; meta = { description = "Jagged Alliance 2, with community fixes"; diff --git a/pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch b/pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch index b86589fc671..64e3c11b250 100644 --- a/pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch +++ b/pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch @@ -1,21 +1,73 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index f354370e0..c9fa23c6d 100644 +index e4e5547af..a3017d197 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -159,7 +159,6 @@ add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/externalized") +@@ -175,13 +175,12 @@ if(BUILD_LAUNCHER) + endif() + message(STATUS "Fltk Libraries: ${FLTK_LIBRARIES}") + +-set(JA2_INCLUDES "") ++set(JA2_INCLUDES "include/stracciatella") + set(JA2_SOURCES "") + add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/externalized") add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/game") add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/sgp") - add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/slog") --add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/rust") add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-smacker") - +-add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-stracciatella") + add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-string_theory") + if(BUILD_LAUNCHER) -@@ -235,8 +234,6 @@ copy_assets_dir_to_ja2_binary_after_build("externalized") - copy_assets_dir_to_ja2_binary_after_build("unittests") - copy_assets_dir_to_ja2_binary_after_build("mods") - --get_property(STRACCIATELLA_SHARED_LIB TARGET rust-stracciatella PROPERTY IMPORTED_LOCATION) +@@ -239,14 +238,12 @@ string(LENGTH "${CMAKE_SOURCE_DIR}/src/" SOURCE_PATH_SIZE) + add_definitions("-DSOURCE_PATH_SIZE=${SOURCE_PATH_SIZE}") + + add_executable(${JA2_BINARY} ${JA2_SOURCES}) +-target_link_libraries(${JA2_BINARY} ${SDL2_LIBRARY} ${GTEST_LIBRARIES} smacker ${STRACCIATELLA_LIBRARIES} string_theory-internal) +-add_dependencies(${JA2_BINARY} stracciatella) ++target_link_libraries(${JA2_BINARY} ${SDL2_LIBRARY} ${GTEST_LIBRARIES} smacker lib/libstracciatella_c_api.a dl pthread string_theory-internal) + set_property(SOURCE ${CMAKE_SOURCE_DIR}/src/game/GameVersion.cc APPEND PROPERTY COMPILE_DEFINITIONS "GAME_VERSION=v${ja2-stracciatella_VERSION}") + + if(BUILD_LAUNCHER) + add_executable(${LAUNCHER_BINARY} ${LAUNCHER_SOURCES}) +- target_link_libraries(${LAUNCHER_BINARY} ${FLTK_LIBRARIES} ${STRACCIATELLA_LIBRARIES} string_theory-internal) +- add_dependencies(${LAUNCHER_BINARY} stracciatella) ++ target_link_libraries(${LAUNCHER_BINARY} ${FLTK_LIBRARIES} lib/libstracciatella_c_api.a dl pthread string_theory-internal) + endif() + + macro(copy_assets_dir_to_ja2_binary_after_build DIR) +@@ -375,12 +372,12 @@ set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}_${CPACK_PACKAGE_VERSION}_${PACKAGE_ + + include(CPack) + +-if (UNIX AND NOT MINGW AND NOT APPLE) ++if (UNIX) + install(TARGETS ${JA2_BINARY} RUNTIME DESTINATION bin) + if(BUILD_LAUNCHER) + install(TARGETS ${LAUNCHER_BINARY} RUNTIME DESTINATION bin) + endif() +- install(PROGRAMS "${CMAKE_BINARY_DIR}/lib-stracciatella/bin/ja2-resource-pack${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION bin) ++ install(PROGRAMS "bin/ja2-resource-pack" DESTINATION bin) + install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/assets/externalized assets/mods assets/unittests DESTINATION share/ja2) + if(WITH_EDITOR_SLF) + install(FILES "${EDITORSLF_FILE}" DESTINATION share/ja2) +@@ -400,7 +397,7 @@ else() + if(BUILD_LAUNCHER) + install(TARGETS ${LAUNCHER_BINARY} RUNTIME DESTINATION .) + endif() +- install(PROGRAMS "${CMAKE_BINARY_DIR}/lib-stracciatella/bin/ja2-resource-pack${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION .) ++ install(PROGRAMS "bin/ja2-resource-pack" DESTINATION .) + install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/assets/externalized assets/mods assets/unittests DESTINATION .) + if(WITH_EDITOR_SLF) + install(FILES "${EDITORSLF_FILE}" DESTINATION .) +@@ -428,12 +425,6 @@ if (MINGW) + install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/install-dlls-mingw.cmake") + endif() + +-if(APPLE) +- file(GLOB APPLE_DIST_FILES "${CMAKE_CURRENT_SOURCE_DIR}/assets/distr-files-mac/*.txt") +- install(FILES ${APPLE_DIST_FILES} DESTINATION .) +- install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-SDL2-2.0.8-macos/SDL2.framework DESTINATION .) +-endif() - - if (MSVC OR APPLE) - add_custom_command(TARGET ${JA2_BINARY} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy + ## Uninstall + + add_custom_templated_target("uninstall") diff --git a/pkgs/games/julius/default.nix b/pkgs/games/julius/default.nix index d1dad86e1c5..84e80d7d632 100644 --- a/pkgs/games/julius/default.nix +++ b/pkgs/games/julius/default.nix @@ -1,24 +1,25 @@ -{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, libpng }: +{ lib, stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, libpng }: stdenv.mkDerivation rec { pname = "julius"; - version = "1.4.1"; + version = "1.6.0"; src = fetchFromGitHub { owner = "bvschaik"; repo = "julius"; rev = "v${version}"; - sha256 = "12hhnhdwgz7hd3hlndbnk15pxggm1375qs0764ija4nl1gbpb110"; + sha256 = "0nfdn8n6ywhm69ckz9a1chl5xxiqyaj3l337wadsbppnpscjihrc"; }; nativeBuildInputs = [ cmake ]; buildInputs = [ SDL2 SDL2_mixer libpng ]; - meta = with stdenv.lib; { + meta = with lib; { description = "An open source re-implementation of Caesar III"; homepage = "https://github.com/bvschaik/julius"; license = licenses.agpl3; platforms = platforms.all; + broken = stdenv.isDarwin; maintainers = with maintainers; [ Thra11 ]; }; } diff --git a/pkgs/games/jumpnbump/default.nix b/pkgs/games/jumpnbump/default.nix new file mode 100644 index 00000000000..b502b4f1396 --- /dev/null +++ b/pkgs/games/jumpnbump/default.nix @@ -0,0 +1,55 @@ +{ lib, stdenv +, fetchFromGitLab +, fetchzip +, SDL2, SDL2_mixer, SDL2_net +, gtk3, gobject-introspection +, python3Packages +, wrapGAppsHook +}: + +let data = fetchzip { + url = "https://mirandir.pagesperso-orange.fr/files/additional-levels.tar.xz"; + sha256 = "167hisscsbldrwrs54gq6446shl8h26qdqigmfg0lq3daynqycg2"; +}; in + +stdenv.mkDerivation rec { + pname = "jumpnbump"; + version = "1.70-dev"; + + # By targeting the development version, we can omit the patches Arch uses + src = fetchFromGitLab { + domain = "gitlab.com"; + owner = "LibreGames"; + repo = pname; + rev = "5744738211ca691444f779aafee3537fb3562516"; + sha256 = "0f1k26jicmb95bx19wgcdpwsbbl343i7mqqqc2z9lkb8drlsyqcy"; + }; + + makeFlags = [ "PREFIX=$(out)" ]; + + nativeBuildInputs = [ python3Packages.wrapPython wrapGAppsHook ]; + buildInputs = [ SDL2 SDL2_mixer SDL2_net gtk3 gobject-introspection ]; + + postInstall = '' + make -C menu PREFIX=$out all install + cp -r ${data}/* $out/share/jumpnbump/ + rm $out/share/applications/jumpnbump-menu.desktop + sed -ie 's+Exec=jumpnbump+Exec=jumpnbump-menu+' $out/share/applications/jumpnbump.desktop + ''; + + pythonPath = with python3Packages; [ pygobject3 pillow ]; + preFixup = '' + buildPythonPath "$out $pythonPath" + ''; + postFixup = '' + wrapPythonPrograms + ''; + + meta = with lib; { + description = "cute, true multiplayer platform game with bunnies"; + homepage = "https://libregames.gitlab.io/jumpnbump/"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ iblech ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/games/katago/default.nix b/pkgs/games/katago/default.nix index 492ccbb63ab..fb08ef44710 100644 --- a/pkgs/games/katago/default.nix +++ b/pkgs/games/katago/default.nix @@ -1,49 +1,50 @@ { stdenv , gcc8Stdenv -, lib -, libzip , boost , cmake -, makeWrapper +, cudatoolkit +, cudnn +, eigen , fetchFromGitHub -, fetchpatch -, cudnn ? null -, cudatoolkit ? null -, libGL_driver ? null -, opencl-headers ? null -, ocl-icd ? null -, gperftools ? null -, cudaSupport ? false -, useTcmalloc ? true}: - -assert cudaSupport -> ( - libGL_driver != null && - cudatoolkit != null && - cudnn != null); - -assert !cudaSupport -> ( - opencl-headers != null && - ocl-icd != null); +, gperftools +, lib +, libzip +, makeWrapper +, mesa +, ocl-icd +, opencl-headers +, openssl +, writeShellScriptBin +, enableAVX2 ? stdenv.hostPlatform.avx2Support +, enableBigBoards ? false +, enableCuda ? false +, enableContrib ? false +, enableGPU ? true +, enableTcmalloc ? true +}: -assert useTcmalloc -> ( - gperftools != null); +assert !enableGPU -> ( + !enableCuda); let - env = if cudaSupport + env = if enableCuda then gcc8Stdenv else stdenv; in env.mkDerivation rec { pname = "katago"; - version = "1.5.0"; + version = "1.9.1"; + githash = "c3220a5a404af835792c476f3f24904e4b799444"; src = fetchFromGitHub { owner = "lightvector"; repo = "katago"; - rev = "${version}"; - sha256 = "0ajdjdmlzwh7zwk5v0k9zzjawgkf7w30pzqp5bhcsdqz4svvyll2"; + rev = "v${version}"; + sha256 = "sha256-sAtPOqGe6fZ9mAtLdp80fTALXVkP9WdWQU2iTFGXe24="; }; + fakegit = writeShellScriptBin "git" "echo ${githash}"; + nativeBuildInputs = [ cmake makeWrapper @@ -52,43 +53,58 @@ in env.mkDerivation rec { buildInputs = [ libzip boost - ] ++ lib.optionals cudaSupport [ + ] ++ lib.optionals (!enableGPU) [ + eigen + ] ++ lib.optionals (enableGPU && enableCuda) [ cudnn - libGL_driver - ] ++ lib.optionals (!cudaSupport) [ + mesa.drivers + ] ++ lib.optionals (enableGPU && !enableCuda) [ opencl-headers ocl-icd - ] ++ lib.optionals useTcmalloc [ + ] ++ lib.optionals enableContrib [ + openssl + ] ++ 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 enableContrib [ + "-DBUILD_DISTRIBUTED=1" + "-DNO_GIT_REVISION=OFF" + "-DGIT_EXECUTABLE=${fakegit}/bin/git" + ] ++ 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 = '' + runHook preInstall 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" + '' + '' + runHook postInstall ''; - enableParallelBuilding = true; - - meta = with stdenv.lib; { + meta = with lib; { description = "Go engine modeled after AlphaGo Zero"; homepage = "https://github.com/lightvector/katago"; license = licenses.mit; diff --git a/pkgs/games/keen4/builder.sh b/pkgs/games/keen4/builder.sh index 50d261db865..b5864b8392f 100644 --- a/pkgs/games/keen4/builder.sh +++ b/pkgs/games/keen4/builder.sh @@ -28,4 +28,4 @@ for i in *; do fi done EOF -chmod +x $out/bin/keen4 \ No newline at end of file +chmod +x $out/bin/keen4 diff --git a/pkgs/games/keen4/default.nix b/pkgs/games/keen4/default.nix index c91cc486118..59bb30d627f 100644 --- a/pkgs/games/keen4/default.nix +++ b/pkgs/games/keen4/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation { sha256 = "12rnc9ksl7v6l8wsxvr26ylkafzq80dbsa7yafzw9pqc8pafkhx1"; }; - buildInputs = [unzip]; + nativeBuildInputs = [ unzip ]; inherit dosbox; diff --git a/pkgs/games/keeperrl/default.nix b/pkgs/games/keeperrl/default.nix index 68426a4aedf..bd49b821f9e 100644 --- a/pkgs/games/keeperrl/default.nix +++ b/pkgs/games/keeperrl/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, requireFile +{ lib, stdenv, fetchFromGitHub, requireFile , openal, curl, libogg, libvorbis , SDL2, SDL2_image, zlib , unfree_assets ? false }: @@ -33,9 +33,9 @@ stdenv.mkDerivation rec { sourceRoot = "source"; - srcs = [ free-src ] ++ stdenv.lib.optional unfree_assets assets; + srcs = [ free-src ] ++ lib.optional unfree_assets assets; - postUnpack = stdenv.lib.optionalString unfree_assets '' + postUnpack = lib.optionalString unfree_assets '' mv data $sourceRoot ''; @@ -61,10 +61,10 @@ stdenv.mkDerivation rec { cp -r data_free $out/share cp -r data_contrib $out/share - ${stdenv.lib.optionalString unfree_assets "cp -r data $out/share"} + ${lib.optionalString unfree_assets "cp -r data $out/share"} ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A dungeon management rogue-like"; homepage = "https://keeperrl.com/"; license = licenses.gpl2; diff --git a/pkgs/games/klavaro/default.nix b/pkgs/games/klavaro/default.nix index 557f75580ca..2a8f68ddd2c 100644 --- a/pkgs/games/klavaro/default.nix +++ b/pkgs/games/klavaro/default.nix @@ -1,23 +1,23 @@ -{ stdenv +{ lib, stdenv , fetchurl , makeWrapper , curl , file , gtk3 , intltool -, pkgconfig +, pkg-config }: stdenv.mkDerivation rec { pname = "klavaro"; - version = "3.10"; + version = "3.11"; src = fetchurl { url = "mirror://sourceforge/klavaro/${pname}-${version}.tar.bz2"; - sha256 = "0jnzdrndiq6m0bwgid977z5ghp4q61clwdlzfpx4fd2ml5x3iq95"; + sha256 = "1rkxaqb62w4mv86fcnmr32lq6y0h4hh92wmsy5ddb9a8jnzx6r7w"; }; - nativeBuildInputs = [ intltool makeWrapper pkgconfig ]; + nativeBuildInputs = [ intltool makeWrapper pkg-config ]; buildInputs = [ curl gtk3 ]; postInstall = '' @@ -34,9 +34,10 @@ stdenv.mkDerivation rec { # Hack to avoid TMPDIR in RPATHs. preFixup = ''rm -rf "$(pwd)" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Free touch typing tutor program"; homepage = "http://klavaro.sourceforge.net/"; + 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/pkgs/games/kobodeluxe/default.nix b/pkgs/games/kobodeluxe/default.nix index 5620cee185d..9dea9082420 100644 --- a/pkgs/games/kobodeluxe/default.nix +++ b/pkgs/games/kobodeluxe/default.nix @@ -1,9 +1,10 @@ -{stdenv, fetchurl, SDL, SDL_image, libGLU, libGL} : +{lib, stdenv, fetchurl, SDL, SDL_image, libGLU, libGL} : -stdenv.mkDerivation { - name = "kobodeluxe-0.5.1"; +stdenv.mkDerivation rec { + pname = "kobodeluxe"; + version = "0.5.1"; src = fetchurl { - url = "http://olofson.net/kobodl/download/KoboDeluxe-0.5.1.tar.bz2"; + url = "http://olofson.net/kobodl/download/KoboDeluxe-${version}.tar.bz2"; sha256 = "0f7b910a399d985437564af8c5d81d6dcf22b96b26b01488d72baa6a6fdb5c2c"; }; @@ -18,7 +19,7 @@ stdenv.mkDerivation { meta = { homepage = "http://olofson.net/kobodl/"; description = "Enhanced version of Akira Higuchi's game XKobo for Un*x systems with X11"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/koboredux/default.nix b/pkgs/games/koboredux/default.nix new file mode 100644 index 00000000000..622dd2de50e --- /dev/null +++ b/pkgs/games/koboredux/default.nix @@ -0,0 +1,87 @@ +{ lib, stdenv +, fetchFromGitHub +, fetchpatch +, requireFile +, cmake +, pkg-config +, SDL2 +, SDL2_image +, audiality2 +, useProprietaryAssets ? true +}: + +with lib; +stdenv.mkDerivation rec { + pname = "koboredux"; + version = "0.7.5.1"; + + src = + [(fetchFromGitHub { + owner = "olofson"; + repo = "koboredux"; + rev = "v${version}"; + sha256 = "09h9r65z8bar2z89s09j6px0gdq355kjf38rmd85xb2aqwnm6xig"; + })] + ++ + (optional useProprietaryAssets (requireFile { + name = "koboredux-${version}-Linux.tar.bz2"; + sha256 = "11bmicx9i11m4c3dp19jsql0zy4rjf5a28x4hd2wl8h3bf8cdgav"; + message = '' + Please purchase the game on https://olofson.itch.io/kobo-redux + and download the Linux build. + + Once you have downloaded the file, please use the following command + and re-run the installation: + + nix-prefetch-url file://\$PWD/koboredux-${version}-Linux.tar.bz2 + + Alternatively, install the "koboredux-free" package, which replaces the + proprietary assets with a placeholder theme. + ''; + })); + + sourceRoot = "source"; # needed when we have the assets source + + # Fix clang build + patches = [(fetchpatch { + url = "https://github.com/olofson/koboredux/commit/cf92b8a61d002ccaa9fbcda7a96dab08a681dee4.patch"; + sha256 = "0dwhvis7ghf3mgzjd2rwn8hk3ndlgfwwcqaq581yc5rwd73v6vw4"; + })]; + + postPatch = optionalString useProprietaryAssets '' + cp -r ../koboredux-${version}-Linux/sfx/redux data/sfx/ + cp -r ../koboredux-${version}-Linux/gfx/redux data/gfx/ + cp -r ../koboredux-${version}-Linux/gfx/redux_fullscreen data/gfx/ + ''; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + SDL2 + SDL2_image + audiality2 + ]; + + meta = { + description = "A frantic 80's style 2D shooter, similar to XKobo and Kobo Deluxe" + + optionalString (!useProprietaryAssets) " (built without proprietary assets)"; + longDescription = '' + Kobo Redux is a frantic 80's style 2D shooter, inspired by the look and + feel of 90's arcade cabinets. The gameplay is fast and unforgiving, + although with less of the frustrating quirkiness of the actual games + of the 80's. A true challenge in the spirit of the arcade era! + '' + optionalString (!useProprietaryAssets) '' + + This version replaces the official proprietary assets with placeholders. + For the full experience, consider installing "koboredux" instead. + ''; + homepage = "https://olofson.itch.io/kobo-redux"; + license = with licenses; if useProprietaryAssets then unfree else gpl2; + platforms = platforms.all; + maintainers = with maintainers; [ fgaz ]; + }; +} + diff --git a/pkgs/games/lbreakout2/default.nix b/pkgs/games/lbreakout2/default.nix index ddd7e454efb..818cd31fa59 100644 --- a/pkgs/games/lbreakout2/default.nix +++ b/pkgs/games/lbreakout2/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, SDL, SDL_mixer, zlib, libpng, libintl }: +{ lib, stdenv, fetchurl, SDL, SDL_mixer, zlib, libpng, libintl }: stdenv.mkDerivation rec { pname = "lbreakout2"; @@ -10,12 +10,12 @@ stdenv.mkDerivation rec { sha256 = "0vwdlyvh7c4y80q5vp7fyfpzbqk9lq3w8pvavi139njkalbxc14i"; }; - meta = with stdenv.lib; { + meta = with lib; { description = "Breakout clone from the LGames series"; homepage = "http://lgames.sourceforge.net/LBreakout2/"; license = licenses.gpl2; maintainers = [ maintainers.ciil ]; platforms = platforms.unix; - hydraPlatforms = stdenv.lib.platforms.linux; # sdl-config times out on darwin + hydraPlatforms = lib.platforms.linux; # sdl-config times out on darwin }; } diff --git a/pkgs/games/leela-zero/default.nix b/pkgs/games/leela-zero/default.nix index 7ade06393bb..13b423832e6 100644 --- a/pkgs/games/leela-zero/default.nix +++ b/pkgs/games/leela-zero/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, boost +{ lib, stdenv, fetchFromGitHub, cmake, boost , opencl-headers, ocl-icd, qtbase , zlib }: stdenv.mkDerivation rec { @@ -17,9 +17,9 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - enableParallelBuilding = true; + dontWrapQtApps = true; - meta = with stdenv.lib; { + meta = with lib; { description = "Go engine modeled after AlphaGo Zero"; homepage = "https://github.com/gcp/leela-zero"; license = licenses.gpl3; diff --git a/pkgs/games/left4gore/default.nix b/pkgs/games/left4gore/default.nix new file mode 100644 index 00000000000..597f7da2b3d --- /dev/null +++ b/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/pkgs/games/legendary-gl/default.nix b/pkgs/games/legendary-gl/default.nix index 114aa6ab12a..eb2f3f38cea 100644 --- a/pkgs/games/legendary-gl/default.nix +++ b/pkgs/games/legendary-gl/default.nix @@ -7,24 +7,28 @@ buildPythonApplication rec { pname = "legendary-gl"; # Name in pypi - version = "0.0.14"; + version = "0.20.6"; src = fetchFromGitHub { owner = "derrod"; repo = "legendary"; rev = version; - sha256 = "05r88qi8mmbj07wxcpb3fhbl40qscbq1aqb0mnj9bpmi9gf5zll5"; + sha256 = "1v6jbnasz2ilcafs6qyl6na4a8cxy2lgwr0hqsja6d846rfqa8ad"; }; propagatedBuildInputs = [ requests ]; disabled = pythonOlder "3.8"; + # no tests + doCheck = false; + + pythonImportsCheck = [ "legendary" ]; + 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 ]; + maintainers = with maintainers; [ equirosa ]; }; } - diff --git a/pkgs/games/lgogdownloader/default.nix b/pkgs/games/lgogdownloader/default.nix index 69200bd184f..4cb9d3a6c04 100644 --- a/pkgs/games/lgogdownloader/default.nix +++ b/pkgs/games/lgogdownloader/default.nix @@ -1,33 +1,36 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, curl, boost, liboauth, jsoncpp -, htmlcxx, rhash, tinyxml-2, help2man, fetchpatch }: +{ lib, stdenv +, fetchFromGitHub +, cmake +, pkg-config +, curl +, boost +, liboauth +, jsoncpp +, htmlcxx +, rhash +, tinyxml-2 +, help2man +}: stdenv.mkDerivation rec { pname = "lgogdownloader"; - version = "3.5"; + version = "3.7"; src = fetchFromGitHub { owner = "Sude-"; repo = "lgogdownloader"; rev = "v${version}"; - sha256 = "0a3rrkgqwdqxx3ghzw182jx88gzzw6ldp3jasmgnr4l7gpxkmwws"; + sha256 = "sha256-3xFlFokqdD1Nstu7TSUCaHUxvSodIb12QNVjmNgn9gs="; }; - nativeBuildInputs = [ cmake pkgconfig help2man ]; + nativeBuildInputs = [ cmake pkg-config help2man ]; - buildInputs = [ curl boost liboauth jsoncpp htmlcxx rhash tinyxml-2 ]; + buildInputs = [ boost curl htmlcxx jsoncpp liboauth rhash tinyxml-2 ]; - patches = [ - # Fix find_path for newer jsoncpp. Remove with the next release - (fetchpatch { - url = "https://github.com/Sude-/lgogdownloader/commit/ff353126ecda61824cf866d3807c9ebada96282e.patch"; - sha256 = "1xr1lwxlrncrj662s9l1is1x1mhs1jbwlj8qafixz5hw2kx22w19"; - }) - ]; - - meta = { - homepage = "https://github.com/Sude-/lgogdownloader"; + meta = with lib; { description = "Unofficial downloader to GOG.com for Linux users. It uses the same API as the official GOGDownloader"; - license = stdenv.lib.licenses.wtfpl; - platforms = stdenv.lib.platforms.linux; + homepage = "https://github.com/Sude-/lgogdownloader"; + license = licenses.wtfpl; + platforms = platforms.linux; }; } diff --git a/pkgs/games/liberal-crime-squad/default.nix b/pkgs/games/liberal-crime-squad/default.nix index 25d8bf3eae5..d8048b01d21 100644 --- a/pkgs/games/liberal-crime-squad/default.nix +++ b/pkgs/games/liberal-crime-squad/default.nix @@ -1,4 +1,4 @@ -{ fetchFromGitHub, stdenv, autoreconfHook, libiconv, ncurses, SDL2, SDL2_mixer }: +{ fetchFromGitHub, lib, stdenv, autoreconfHook, libiconv, ncurses, SDL2, SDL2_mixer }: stdenv.mkDerivation { version = "2016-07-06"; @@ -16,7 +16,7 @@ stdenv.mkDerivation { enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { description = "A humorous politically themed ncurses game"; longDescription = '' Welcome to Liberal Crime Squad! The Conservatives have taken the Executive, Legislative, and Judicial branches of government. Over time, the Liberal laws of this nation will erode and turn the country into a BACKWOODS YET CORPORATE NIGHTMARE. To prevent this from happening, the Liberal Crime Squad was established. The mood of the country is shifting, and we need to turn things around. Go out on the streets and indoctrinate Conservative automatons. That is, let them see their True Liberal Nature. Then arm them and send them forth to Stop Evil. diff --git a/pkgs/games/lincity/default.nix b/pkgs/games/lincity/default.nix index 574b8ead095..397ca0cfe8e 100644 --- a/pkgs/games/lincity/default.nix +++ b/pkgs/games/lincity/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchpatch, libX11, libXext, xorgproto, libICE, libSM, libpng12, zlib }: +{ lib, stdenv, fetchurl, fetchpatch, libX11, libXext, xorgproto, libICE, libSM, libpng12, zlib }: stdenv.mkDerivation rec { pname = "lincity"; @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { }) ]; - meta = with stdenv.lib; { + meta = with lib; { description = "City simulation game"; license = licenses.gpl2Plus; homepage = "https://sourceforge.net/projects/lincity"; diff --git a/pkgs/games/lincity/ng.nix b/pkgs/games/lincity/ng.nix index 67f15be1ed3..1fe2223886a 100644 --- a/pkgs/games/lincity/ng.nix +++ b/pkgs/games/lincity/ng.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, jam, pkgconfig +{ lib, stdenv, fetchFromGitHub, autoreconfHook, jam, pkg-config , zlib, libxml2, libxslt, xorgproto, libX11, libGLU, libGL, SDL , SDL_mixer, SDL_image, SDL_ttf, SDL_gfx, physfs }: @@ -17,7 +17,7 @@ stdenv.mkDerivation { hardeningDisable = [ "format" ]; nativeBuildInputs = [ - autoreconfHook jam pkgconfig + autoreconfHook jam pkg-config ]; buildInputs = [ @@ -46,7 +46,7 @@ stdenv.mkDerivation { runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { description = "City building game"; license = licenses.gpl2; maintainers = with maintainers; [ raskin ]; diff --git a/pkgs/games/liquidwar/5.nix b/pkgs/games/liquidwar/5.nix index 5c42b8ecaab..e95371ec5ea 100644 --- a/pkgs/games/liquidwar/5.nix +++ b/pkgs/games/liquidwar/5.nix @@ -1,25 +1,24 @@ -{ stdenv, fetchurl, allegro }: +{ lib, stdenv, fetchurl, allegro }: stdenv.mkDerivation rec { - version = "5.6.4"; + version = "5.6.5"; pname = "liquidwar5"; src = fetchurl { - url = "https://download.savannah.gnu.org/releases/liquidwar/liquidwar-${version}.tar.gz"; - sha256 = "18wkbfzp07yckg05b5gjy67rw06z9lxp0hzg0zwj7rz8i12jxi9j"; + url = "http://www.ufoot.org/download/liquidwar/v5/${version}/liquidwar-${version}.tar.gz"; + sha256 = "2tCqhN1BbK0FVCHtm0DfOe+ueNPfdZwFg8ZMVPfy/18="; }; buildInputs = [ allegro ]; - configureFlags = stdenv.lib.optional stdenv.isx86_64 "--disable-asm"; + configureFlags = lib.optional stdenv.isx86_64 "--disable-asm"; hardeningDisable = [ "format" ]; NIX_CFLAGS_COMPILE = [ "-lm" ]; - meta = with stdenv.lib; { - description = ''The classic version of a quick tactics game LiquidWar''; + meta = with lib; { + description = "The classic version of a quick tactics game LiquidWar"; maintainers = [ maintainers.raskin ]; license = licenses.gpl2Plus; platforms = platforms.linux; - broken = true; }; } diff --git a/pkgs/games/liquidwar/default.nix b/pkgs/games/liquidwar/default.nix index 341d077879c..827c7d696c7 100644 --- a/pkgs/games/liquidwar/default.nix +++ b/pkgs/games/liquidwar/default.nix @@ -1,9 +1,10 @@ -{ stdenv, fetchurl, xorgproto, libX11, libXrender +{ lib, stdenv, fetchurl, xorgproto, libX11, libXrender , gmp, libjpeg, libpng , expat, gettext, perl, guile , SDL, SDL_image, SDL_mixer, SDL_ttf , curl, sqlite, libtool, readline -, libogg, libvorbis, libcaca, csound, cunit } : +, libogg, libvorbis, libcaca, csound, cunit +, pkg-config }: stdenv.mkDerivation rec { pname = "liquidwar6"; @@ -25,6 +26,8 @@ stdenv.mkDerivation rec { libtool readline ]; + nativeBuildInputs = [ pkg-config ]; + hardeningDisable = [ "format" ]; NIX_CFLAGS_COMPILE = @@ -36,7 +39,7 @@ stdenv.mkDerivation rec { # To avoid problems finding SDL_types.h. configureFlags = [ "CFLAGS=-I${SDL.dev}/include/SDL" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Quick tactics game"; homepage = "https://www.gnu.org/software/liquidwar6/"; maintainers = [ maintainers.raskin ]; diff --git a/pkgs/games/ltris/default.nix b/pkgs/games/ltris/default.nix index 0ea4143bc3d..d128f6c6c01 100644 --- a/pkgs/games/ltris/default.nix +++ b/pkgs/games/ltris/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, SDL, SDL_mixer }: +{ lib, stdenv, fetchurl, SDL, SDL_mixer }: stdenv.mkDerivation rec { pname = "ltris"; @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { patchPhase = "patch -p0 < ${./gcc5_compliance.diff}"; - meta = with stdenv.lib; { + meta = with lib; { description = "Tetris clone from the LGames series"; homepage = "http://lgames.sourceforge.net/LBreakout2/"; license = licenses.gpl2; diff --git a/pkgs/games/lugaru/default.nix b/pkgs/games/lugaru/default.nix index 6620074418d..9d10691fe49 100644 --- a/pkgs/games/lugaru/default.nix +++ b/pkgs/games/lugaru/default.nix @@ -1,7 +1,7 @@ -{ stdenv, fetchFromGitLab, cmake, openal, pkgconfig, libogg, +{ lib, stdenv, fetchFromGitLab, cmake, openal, pkg-config, libogg, libvorbis, SDL2, makeWrapper, libpng, libjpeg_turbo, libGLU }: -with stdenv.lib; +with lib; stdenv.mkDerivation rec { @@ -15,17 +15,17 @@ stdenv.mkDerivation rec { sha256 = "089rblf8xw3c6dq96vnfla6zl8gxcpcbc1bj5jysfpq63hhdpypz"; }; - nativeBuildInputs = [ makeWrapper cmake pkgconfig ]; + nativeBuildInputs = [ makeWrapper cmake pkg-config ]; buildInputs = [ libGLU openal SDL2 libogg libvorbis libpng libjpeg_turbo ]; cmakeFlags = [ "-DSYSTEM_INSTALL=ON" ]; meta = { - description = "Lugaru HD: Third person ninja rabbit fighting game"; + description = "Third person ninja rabbit fighting game"; homepage = "https://osslugaru.gitlab.io"; - maintainers = [ maintainers.genesis ]; + maintainers = [ ]; platforms = platforms.linux; - license = stdenv.lib.licenses.gpl2Plus; + license = lib.licenses.gpl2Plus; }; } diff --git a/pkgs/games/lunar-client/default.nix b/pkgs/games/lunar-client/default.nix new file mode 100644 index 00000000000..df361c69b04 --- /dev/null +++ b/pkgs/games/lunar-client/default.nix @@ -0,0 +1,44 @@ +{ appimageTools, lib, fetchurl, makeDesktopItem }: + +let + name = "lunar-client"; + version = "2.7.3"; + + desktopItem = makeDesktopItem { + name = "Lunar Client"; + exec = "lunar-client"; + icon = "lunarclient"; + comment = "Minecraft 1.7, 1.8, 1.12, 1.15, and 1.16 Client"; + desktopName = "Lunar Client"; + genericName = "Minecraft Client"; + categories = "Game;"; + }; + + appimageContents = appimageTools.extract { + inherit name src; + }; + + src = fetchurl { + url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage"; + name = "lunar-client.AppImage"; + sha256 = "0ihi937rrj677y9b377b4hhp9wsarbqwrdrd6k3lhzx3jyh2fynf"; + }; +in appimageTools.wrapType1 rec { + inherit name src; + + extraInstallCommands = '' + mkdir -p $out/share/applications + cp ${desktopItem}/share/applications/* $out/share/applications + cp -r ${appimageContents}/usr/share/icons/ $out/share/ + ''; + + extraPkgs = pkgs: [ pkgs.libpulseaudio ]; + + meta = with lib; { + description = "Minecraft 1.7, 1.8, 1.12, 1.15, and 1.16 Client"; + homepage = "https://www.lunarclient.com/"; + license = with licenses; [ unfree ]; + maintainers = with maintainers; [ zyansheep Technical27 ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/games/macopix/default.nix b/pkgs/games/macopix/default.nix index f88b763aaf8..8f226f3cef0 100644 --- a/pkgs/games/macopix/default.nix +++ b/pkgs/games/macopix/default.nix @@ -1,14 +1,15 @@ -{ stdenv, fetchurl, pkgconfig, gtk, openssl }: +{ lib, stdenv, fetchurl, pkg-config, gtk, openssl }: stdenv.mkDerivation rec { - name = "macopix-1.7.4"; + pname = "macopix"; + version = "1.7.4"; src = fetchurl { - url = "http://rosegray.sakura.ne.jp/macopix/${name}.tar.bz2"; + url = "http://rosegray.sakura.ne.jp/macopix/macopix-${version}.tar.bz2"; sha256 = "0sgnr0wrw3hglcnsyvipll7icfv69ssmyw584zfhk1rgramlkzyb"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ gtk openssl ]; preConfigure = '' @@ -23,7 +24,7 @@ stdenv.mkDerivation rec { meta = { description = "Mascot Constructive Pilot for X"; homepage = "http://rosegray.sakura.ne.jp/macopix/index-e.html"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/maelstrom/default.nix b/pkgs/games/maelstrom/default.nix new file mode 100644 index 00000000000..5f78e34edac --- /dev/null +++ b/pkgs/games/maelstrom/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchurl, makeDesktopItem, SDL2, SDL2_net }: + +stdenv.mkDerivation rec { + pname = "maelstrom"; + version = "3.0.7"; + + src = fetchurl { + url = "http://www.libsdl.org/projects/Maelstrom/src/Maelstrom-${version}.tar.gz"; + sha256 = "0dm0m5wd7amrsa8wnrblkv34sq4v4lglc2wfx8klfkdhyhi06s4k"; + }; + + # this fixes a typedef compilation error with gcc-3.x + patches = [ ./fix-compilation.patch ]; + + buildInputs = [ SDL2 SDL2_net ]; + + postInstall = '' + mkdir -p $out/bin + ln -s $out/games/Maelstrom/Maelstrom $out/bin/maelstrom + ''; + + desktopItems = [ + (makeDesktopItem { + name = "maelstrom"; + exec = "maelstrom"; + desktopName = "Maelstrom"; + genericName = "Maelstrom"; + comment = "An arcade-style game resembling Asteroids"; + categories = "Game;"; + }) + ]; + + meta = with lib; { + description = "An arcade-style game resembling Asteroids"; + license = licenses.gpl2Plus; + platforms = platforms.all; + maintainers = with maintainers; [ tmountain ]; + }; +} diff --git a/pkgs/games/maelstrom/fix-compilation.patch b/pkgs/games/maelstrom/fix-compilation.patch new file mode 100644 index 00000000000..3fa8980c5ee --- /dev/null +++ b/pkgs/games/maelstrom/fix-compilation.patch @@ -0,0 +1,42 @@ +diff -Naur Maelstrom-3.0.7/buttonlist.h Maelstrom-3.0.7-patched/buttonlist.h +--- Maelstrom-3.0.7/buttonlist.h 2000-01-25 11:41:32.000000000 -0500 ++++ Maelstrom-3.0.7-patched/buttonlist.h 2021-02-22 08:34:01.000000000 -0500 +@@ -16,7 +16,7 @@ + + void Add_Button(Uint16 x, Uint16 y, Uint16 width, Uint16 height, + void (*callback)(void)) { +- struct button *belem; ++ button *belem; + + for ( belem=&button_list; belem->next; belem=belem->next ); + belem->next = new button; +@@ -30,7 +30,7 @@ + } + + void Activate_Button(Uint16 x, Uint16 y) { +- struct button *belem; ++ button *belem; + + for ( belem=button_list.next; belem; belem=belem->next ) { + if ( (x >= belem->x1) && (x <= belem->x2) && +@@ -42,7 +42,7 @@ + } + + void Delete_Buttons(void) { +- struct button *belem, *btemp; ++ button *belem, *btemp; + + for ( belem=button_list.next; belem; ) { + btemp = belem; +diff -Naur Maelstrom-3.0.7/main.cpp Maelstrom-3.0.7-patched/main.cpp +--- Maelstrom-3.0.7/main.cpp 2021-02-04 11:50:27.000000000 -0500 ++++ Maelstrom-3.0.7-patched/main.cpp 2021-02-22 08:34:34.000000000 -0500 +@@ -153,7 +153,7 @@ + error("or\n"); + error("Usage: %s <options>\n\n", progname); + error("Where <options> can be any of:\n\n" +-" -fullscreen # Run Maelstrom in full-screen mode\n" ++" -windowed # Run Maelstrom in windowed mode\n" + " -gamma [0-8] # Set the gamma correction\n" + " -volume [0-8] # Set the sound volume\n" + " -netscores # Use the world-wide network score server\n" diff --git a/pkgs/games/manaplus/default.nix b/pkgs/games/manaplus/default.nix new file mode 100644 index 00000000000..ff7bfae971a --- /dev/null +++ b/pkgs/games/manaplus/default.nix @@ -0,0 +1,32 @@ +{ stdenv, lib, fetchurl, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer +, SDL2_net , SDL2_gfx, zlib, physfs, curl, libxml2, libpng, pkg-config +, libGL, autoreconfHook }: +stdenv.mkDerivation rec { + pname = "manaplus"; + version = "1.9.3.23"; + + src = fetchurl { + url = "https://download.evolonline.org/manaplus/download/${version}/manaplus-${version}.tar.xz"; + sha256 = "1ky182p4svwdqm6cf7jbns85hidkhkhq4s17cs2p381f0klapfjz"; + }; + + nativeBuildInputs = [ + autoreconfHook pkg-config + ]; + + buildInputs = [ + SDL2 SDL2_image SDL2_ttf SDL2_mixer SDL2_net SDL2_gfx zlib + physfs curl libxml2 libpng libGL + ]; + + configureFlags = [ "--with-sdl2" "--without-dyecmd" ]; + + enableParallelBuilding = true; + + meta = { + maintainers = [ lib.maintainers.lheckemann ]; + description = "A free OpenSource 2D MMORPG client"; + homepage = "https://manaplus.org/"; + license = lib.licenses.gpl2; + }; +} diff --git a/pkgs/games/mar1d/default.nix b/pkgs/games/mar1d/default.nix index 9fe99bff2f9..1715a68f5d8 100644 --- a/pkgs/games/mar1d/default.nix +++ b/pkgs/games/mar1d/default.nix @@ -1,60 +1,36 @@ { stdenv -, fetchFromGitHub -, cmake +, lib +, SDL2 +, SDL2_mixer , libGLU -, xlibsWrapper -, xorg -, xinput_calibrator -, doxygen -, libpthreadstubs -, alsaLib -, alsaOss -, libao -, width ? 30 -, mute ? false -, effects ? false -, sensitivity ? 5 -, reverseY ? false +, libconfig +, meson +, ninja +, pkg-config +, fetchFromGitHub }: stdenv.mkDerivation rec { pname = "MAR1D"; - version = "0.2.0"; - options = "-w${toString width}" - + " -s${toString sensitivity}" - + (if mute then " -m" else "") - + (if effects then " -f" else "") - + (if reverseY then " -r" else ""); + version = "0.3.0"; src = fetchFromGitHub { - sha256 = "152w5dnlxzv60cl24r5cmrj2q5ar0jiimrmxnp87kf4d2dpbnaq7"; + sha256 = "sha256-/QZH2H0PFCLeweXUE11vimLnJTt86PjnTnHC9vWkKsk="; rev = "v${version}"; - repo = "fp_mario"; - owner = "olynch"; + repo = "MAR1D"; + owner = "Radvendii"; }; - buildInputs = - [ - alsaLib - alsaOss - cmake - doxygen - libao - libpthreadstubs - libGLU - xlibsWrapper - xinput_calibrator - xorg.libXrandr - xorg.libXi - xorg.xinput - xorg.libXxf86vm - ]; + nativeBuildInputs = [ meson ninja pkg-config ]; - preConfigure = '' - cd src - ''; + buildInputs = [ + SDL2 + SDL2_mixer + libconfig + libGLU + ]; - meta = with stdenv.lib; { + meta = with lib; { description = "First person Super Mario Bros"; longDescription = '' The original Super Mario Bros as you've never seen it. Step into Mario's @@ -62,9 +38,9 @@ stdenv.mkDerivation rec { original, however, the game still takes place in a two dimensional world. You must view the world as mario does, as a one dimensional line. ''; - homepage = "https://github.com/olynch/fp_mario"; + homepage = "https://mar1d.com"; license = licenses.agpl3; maintainers = with maintainers; [ taeer ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } diff --git a/pkgs/games/mari0/default.nix b/pkgs/games/mari0/default.nix index b8c4ea281df..cb3349960f0 100644 --- a/pkgs/games/mari0/default.nix +++ b/pkgs/games/mari0/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, zip, love_11, lua, makeWrapper, makeDesktopItem }: +{ lib, stdenv, fetchFromGitHub, zip, love_11, lua, makeWrapper, makeDesktopItem }: let pname = "mari0"; @@ -21,7 +21,7 @@ stdenv.mkDerivation { src = fetchFromGitHub { owner = "Stabyourself"; repo = pname; - rev = "${version}"; + rev = version; sha256 = "1zqaq4w599scsjvy1rsb21fd2r8j3srx9vym4ir9bh666dp36gxa"; }; @@ -40,7 +40,7 @@ stdenv.mkDerivation { chmod +x $out/bin/${pname} ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Crossover between Super Mario Bros. and Portal"; platforms = platforms.linux; license = licenses.mit; diff --git a/pkgs/games/mars/default.nix b/pkgs/games/mars/default.nix index 53ffb4e4b2d..0fa744677d8 100644 --- a/pkgs/games/mars/default.nix +++ b/pkgs/games/mars/default.nix @@ -1,14 +1,16 @@ -{ stdenv, fetchgit, cmake, libGLU, libGL, sfml, fribidi, taglib }: +{ lib, stdenv, fetchFromGitHub, cmake, libGLU, libGL, sfml, fribidi, taglib }: stdenv.mkDerivation rec { - name = "mars-${version}-${rev}"; + pname = "mars"; version = "0.7.5"; - rev = "c855d04409"; - src = fetchgit { - url = "https://github.com/thelaui/M.A.R.S..git"; - inherit rev; + + src = fetchFromGitHub { + owner = "thelaui"; + repo = "M.A.R.S."; + rev = "c855d044094a1d92317e38935d81ba938946132e"; sha256 = "1r4c5gap1z2zsv4yjd34qriqkxaq4lb4rykapyzkkdf4g36lc3nh"; }; - buildInputs = [ cmake libGLU libGL sfml fribidi taglib ]; + nativeBuildInputs = [ cmake ]; + buildInputs = [ libGLU libGL sfml fribidi taglib ]; patches = [ ./unbind_fix.patch ./fix-gluortho2d.patch @@ -27,7 +29,7 @@ stdenv.mkDerivation rec { EOF chmod +x "$out/bin/mars" ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://mars-game.sourceforge.net/"; description = "A game about fighting with ships in a 2D space setting"; license = licenses.gpl3Plus; diff --git a/pkgs/games/megaglest/default.nix b/pkgs/games/megaglest/default.nix index d5129818cb2..5f79b86956c 100644 --- a/pkgs/games/megaglest/default.nix +++ b/pkgs/games/megaglest/default.nix @@ -1,6 +1,6 @@ -{ stdenv, cmake, pkgconfig, git, curl, SDL2, xercesc, openal, lua, vlc +{ lib, stdenv, cmake, pkg-config, git, curl, SDL2, xercesc, openal, lua, libvlc , libjpeg, wxGTK, cppunit, ftgl, glew, libogg, libvorbis, buildEnv, libpng -, fontconfig, freetype, xorg, makeWrapper, bash, which, gnome3, libGLU, glib +, fontconfig, freetype, xorg, makeWrapper, bash, which, gnome, libGLU, glib , fetchFromGitHub }: let @@ -13,7 +13,7 @@ let }; path-env = buildEnv { name = "megaglest-path-env"; - paths = [ bash which gnome3.zenity ]; + paths = [ bash which gnome.zenity ]; }; in stdenv.mkDerivation { @@ -28,17 +28,17 @@ stdenv.mkDerivation { sha256 = "0fb58a706nic14ss89zrigphvdiwy5s9dwvhscvvgrfvjpahpcws"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ cmake git curl SDL2 xercesc openal lua libpng libjpeg vlc wxGTK + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ git curl SDL2 xercesc openal lua libpng libjpeg libvlc wxGTK glib cppunit fontconfig freetype ftgl glew libogg libvorbis makeWrapper libGLU ]; - configurePhase = '' - cmake -DCMAKE_INSTALL_PREFIX=$out \ - -DBUILD_MEGAGLEST=On \ - -DBUILD_MEGAGLEST_MAP_EDITOR=On \ - -DBUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS=On \ - -DBUILD_MEGAGLEST_MODEL_VIEWER=On - ''; + cmakeFlags = [ + "-DCMAKE_INSTALL_PREFIX=$out" + "-DBUILD_MEGAGLEST=On" + "-DBUILD_MEGAGLEST_MAP_EDITOR=On" + "-DBUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS=On" + "-DBUILD_MEGAGLEST_MODEL_VIEWER=On" + ]; postInstall = '' for i in $out/bin/*; do @@ -48,11 +48,11 @@ stdenv.mkDerivation { done ''; - meta = { - description = "MegaGlest is an entertaining free (freeware and free software) and open source cross-platform 3D real-time strategy (RTS) game"; - license = stdenv.lib.licenses.gpl3; + meta = with lib; { + description = "An entertaining free (freeware and free software) and open source cross-platform 3D real-time strategy (RTS) game"; + license = licenses.gpl3; homepage = "http://megaglest.org/"; - maintainers = [ stdenv.lib.maintainers.matejc ]; - platforms = stdenv.lib.platforms.linux; + maintainers = [ maintainers.matejc ]; + platforms = platforms.linux; }; } diff --git a/pkgs/games/meritous/default.nix b/pkgs/games/meritous/default.nix index 2958c6a9210..e7dd1bee70c 100644 --- a/pkgs/games/meritous/default.nix +++ b/pkgs/games/meritous/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitLab, SDL, SDL_image, SDL_mixer, zlib }: +{ lib, stdenv, fetchFromGitLab, SDL, SDL_image, SDL_mixer, zlib }: stdenv.mkDerivation { pname = "meritous"; @@ -29,7 +29,7 @@ stdenv.mkDerivation { hardeningDisable = [ "stackprotector" "fortify" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Action-adventure dungeon crawl game"; homepage = "http://www.asceai.net/meritous/"; license = licenses.gpl3; diff --git a/pkgs/games/methane/default.nix b/pkgs/games/methane/default.nix new file mode 100644 index 00000000000..071e1a64b54 --- /dev/null +++ b/pkgs/games/methane/default.nix @@ -0,0 +1,70 @@ +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, SDL2 +, SDL2_image +, SDL2_mixer +, fontconfig +, freealut +, freeglut +, gettext +, libGL +, libGLU +, openal +, quesoglc +, clanlib +, libXrender +, libmikmod +, alsa-lib +}: + +stdenv.mkDerivation rec { + pname = "methane"; + version = "2.0.1"; + + src = fetchFromGitHub { + repo = "methane"; + owner = "rombust"; + rev = "v${version}"; + sha256 = "sha256-STS2+wfZ8E1jpr0PYQOBQsztxhJU0Dt3IhWBE3sjdWE="; + }; + + nativeBuildInputs = [ + gettext + pkg-config + ]; + buildInputs = [ + SDL2 + SDL2_image + SDL2_mixer + fontconfig + freealut + freeglut + libGL + libGLU + openal + quesoglc + clanlib + libXrender + libmikmod + alsa-lib + ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin/ $out/share/methane/ $out/share/docs/ + cp methane $out/bin + cp -r resources/* $out/share/methane/. + cp -r docs/* $out/share/docs/. + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/rombust/methane"; + description = "A clone of Taito's Bubble Bobble arcade game released for Amiga in 1993 by Apache Software"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ nixinator ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/games/mindustry/0001-fix-include-path-for-SDL2-on-linux.patch b/pkgs/games/mindustry/0001-fix-include-path-for-SDL2-on-linux.patch new file mode 100644 index 00000000000..d4fe7be1918 --- /dev/null +++ b/pkgs/games/mindustry/0001-fix-include-path-for-SDL2-on-linux.patch @@ -0,0 +1,33 @@ +From 9dbfa680db6bfd1033772dda753120fe4452e0d9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <milan@petabyte.dev> +Date: Fri, 8 Jan 2021 04:49:14 +0100 +Subject: [PATCH] fix include path for SDL2 on linux + +--- + .../src/main/java/arc/backend/sdl/jni/SDL.java | 8 -------- + 1 file changed, 8 deletions(-) + +diff --git a/backends/backend-sdl/src/main/java/arc/backend/sdl/jni/SDL.java b/backends/backend-sdl/src/main/java/arc/backend/sdl/jni/SDL.java +index 62d9286a..2853119d 100644 +--- a/Arc/backends/backend-sdl/src/main/java/arc/backend/sdl/jni/SDL.java ++++ b/Arc/backends/backend-sdl/src/main/java/arc/backend/sdl/jni/SDL.java +@@ -8,16 +8,8 @@ import java.nio.*; + public class SDL{ + /*JNI + +- #ifdef __APPLE__ +- + #include "SDL2/SDL.h" + +- #else +- +- #include "SDL.h" +- +- #endif +- + */ + + static{ +-- +2.29.2 + diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix index c0c8663868d..73207923839 100644 --- a/pkgs/games/mindustry/default.nix +++ b/pkgs/games/mindustry/default.nix @@ -1,11 +1,19 @@ -{ stdenv +{ lib, stdenv , makeWrapper , makeDesktopItem +, copyDesktopItems , fetchFromGitHub -, gradle_5 +, gradleGen +, jdk , perl -, jre -, libpulseaudio + +# for arc +, SDL2 +, pkg-config +, stb +, ant +, alsa-lib +, glew # Make the build version easily overridable. # Server and client build versions must match, and an empty build version means @@ -21,16 +29,42 @@ let # Note: when raising the version, ensure that all SNAPSHOT versions in # build.gradle are replaced by a fixed version # (the current one at the time of release) (see postPatch). - version = "104.6"; + version = "126.1"; buildVersion = makeBuildVersion version; - src = fetchFromGitHub { + Mindustry = fetchFromGitHub { owner = "Anuken"; repo = "Mindustry"; rev = "v${version}"; - sha256 = "1crdfiymaz57gnma6bmdcsnbl635nhjdndrjv467c4xfq9vvap2i"; + sha256 = "cyg4TofSSFLv8pM3zzvc0FxXMiTm+OIchBJF9PDQrkg="; + }; + Arc = fetchFromGitHub { + owner = "Anuken"; + repo = "Arc"; + rev = "v${version}"; + sha256 = "uBIm82mt1etBB/HrNY6XGa7mmBfwd1E3RtqN8Rk5qeY="; + }; + soloud = fetchFromGitHub { + owner = "Anuken"; + repo = "soloud"; + # this is never pinned in upstream, see https://github.com/Anuken/Arc/issues/39 + rev = "b33dfc5178fcb2613ee68136f4a4869cadc0b06a"; + sha256 = "1vf68i3pnsixch37285ib7afkwmlrc05v783395jsdjzj9i67lj3"; }; + patches = [ + ./0001-fix-include-path-for-SDL2-on-linux.patch + ]; + + unpackPhase = '' + cp -r ${Mindustry} Mindustry + cp -r ${Arc} Arc + chmod -R u+w -- Mindustry Arc + cp ${stb.src}/stb_image.h Arc/arc-core/csrc/ + cp -r ${soloud} Arc/arc-core/csrc/soloud + chmod -R u+w -- Arc + ''; + desktopItem = makeDesktopItem { type = "Application"; name = "Mindustry"; @@ -39,7 +73,9 @@ let icon = "mindustry"; }; - postPatch = '' + cleanupMindustrySrc = '' + pushd Mindustry + # Remove unbuildable iOS stuff sed -i '/^project(":ios"){/,/^}/d' build.gradle sed -i '/robo(vm|VM)/d' build.gradle @@ -47,20 +83,28 @@ let # Pin 'SNAPSHOT' versions sed -i 's/com.github.anuken:packr:-SNAPSHOT/com.github.anuken:packr:034efe51781d2d8faa90370492133241bfb0283c/' build.gradle + + popd ''; + # The default one still uses jdk8 (#89731) + gradle_6 = (gradleGen.override (old: { java = jdk; })).gradle_6_8; + # fake build to pre-download deps into fixed-output derivation deps = stdenv.mkDerivation { pname = "${pname}-deps"; - inherit version src postPatch; - nativeBuildInputs = [ gradle_5 perl ]; - # Here we build both the server and the client so we only have to specify - # one hash for 'deps'. Deps can be garbage collected after the build, - # so this is not really an issue. + inherit version unpackPhase patches; + postPatch = cleanupMindustrySrc; + + nativeBuildInputs = [ gradle_6 perl ]; + # Here we download dependencies for both the server and the client so + # we only have to specify one hash for 'deps'. Deps can be garbage + # collected after the build, so this is not really an issue. buildPhase = '' + pushd Mindustry export GRADLE_USER_HOME=$(mktemp -d) - gradle --no-daemon desktop:dist -Pbuildversion=${buildVersion} - gradle --no-daemon server:dist -Pbuildversion=${buildVersion} + gradle --no-daemon resolveDependencies + popd ''; # 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 = '' @@ -70,60 +114,85 @@ let ''; outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = "08yrczz1qn78qy3x67gs7d0xvihbfbb8ggiczq2nj812745zcizw"; + outputHash = "Mw8LZ1iW6vn4RkBBs8SWHp6mo2Bhj7tMZjLbyuJUqSI="; }; - # Separate commands for building and installing the server and the client - buildClient = '' +in +assert lib.assertMsg (enableClient || enableServer) + "mindustry: at least one of 'enableClient' and 'enableServer' must be true"; +stdenv.mkDerivation rec { + inherit pname version unpackPhase patches; + + postPatch = '' + # ensure the prebuilt shared objects don't accidentally get shipped + rm Arc/natives/natives-desktop/libs/libarc*.so + rm Arc/backends/backend-sdl/libs/linux64/libsdl-arc*.so + '' + cleanupMindustrySrc; + + buildInputs = lib.optionals enableClient [ + SDL2 + glew + alsa-lib + ]; + nativeBuildInputs = [ + pkg-config + gradle_6 + makeWrapper + jdk + ] ++ lib.optionals enableClient [ + ant + copyDesktopItems + ]; + + desktopItems = lib.optional enableClient desktopItem; + + buildPhase = with lib; '' + export GRADLE_USER_HOME=$(mktemp -d) + + # point to offline repo + sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" Mindustry/build.gradle + sed -ie "s#mavenCentral()#mavenCentral(); maven { url '${deps}' }#g" Arc/build.gradle + + pushd Mindustry + '' + optionalString enableClient '' + gradle --offline --no-daemon jnigenBuild -Pbuildversion=${buildVersion} + gradle --offline --no-daemon sdlnatives -Pdynamic -Pbuildversion=${buildVersion} + patchelf ../Arc/backends/backend-sdl/libs/linux64/libsdl-arc*.so \ + --add-needed ${glew.out}/lib/libGLEW.so \ + --add-needed ${SDL2}/lib/libSDL2.so gradle --offline --no-daemon desktop:dist -Pbuildversion=${buildVersion} - ''; - buildServer = '' + '' + optionalString enableServer '' gradle --offline --no-daemon server:dist -Pbuildversion=${buildVersion} ''; - installClient = '' + + installPhase = with lib; '' + runHook preInstall + '' + optionalString enableClient '' install -Dm644 desktop/build/libs/Mindustry.jar $out/share/mindustry.jar mkdir -p $out/bin - makeWrapper ${jre}/bin/java $out/bin/mindustry \ - --prefix LD_LIBRARY_PATH : ${libpulseaudio}/lib \ + makeWrapper ${jdk}/bin/java $out/bin/mindustry \ --add-flags "-jar $out/share/mindustry.jar" install -Dm644 core/assets/icons/icon_64.png $out/share/icons/hicolor/64x64/apps/mindustry.png - install -Dm644 ${desktopItem}/share/applications/Mindustry.desktop $out/share/applications/Mindustry.desktop - ''; - installServer = '' + '' + optionalString enableServer '' install -Dm644 server/build/libs/server-release.jar $out/share/mindustry-server.jar mkdir -p $out/bin - makeWrapper ${jre}/bin/java $out/bin/mindustry-server \ + makeWrapper ${jdk}/bin/java $out/bin/mindustry-server \ --add-flags "-jar $out/share/mindustry-server.jar" + '' + '' + runHook postInstall ''; -in -assert stdenv.lib.assertMsg (enableClient || enableServer) - "mindustry: at least one of 'enableClient' and 'enableServer' must be true"; -stdenv.mkDerivation rec { - inherit pname version src postPatch; - - nativeBuildInputs = [ gradle_5 makeWrapper ]; - - buildPhase = with stdenv.lib; '' - export GRADLE_USER_HOME=$(mktemp -d) - # point to offline repo - sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" build.gradle - ${optionalString enableClient buildClient} - ${optionalString enableServer buildServer} - ''; - - installPhase = with stdenv.lib; '' - ${optionalString enableClient installClient} - ${optionalString enableServer installServer} - ''; - - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://mindustrygame.github.io/"; downloadPage = "https://github.com/Anuken/Mindustry/releases"; description = "A sandbox tower defense game"; - license = licenses.gpl3; - maintainers = with maintainers; [ fgaz ]; - platforms = platforms.all; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ fgaz petabyteboy ]; + platforms = platforms.x86_64; + # Hash mismatch on darwin: + # https://github.com/NixOS/nixpkgs/pull/105590#issuecomment-737120293 + broken = stdenv.isDarwin + # does not work with any maintained java version (https://github.com/Anuken/Mindustry/issues/5114) + || true; }; } - diff --git a/pkgs/games/minecraft-server/default.nix b/pkgs/games/minecraft-server/default.nix index 3c2ab9b3fcd..e67506c10a8 100644 --- a/pkgs/games/minecraft-server/default.nix +++ b/pkgs/games/minecraft-server/default.nix @@ -1,12 +1,12 @@ -{ stdenv, fetchurl, jre_headless }: +{ lib, stdenv, fetchurl, nixosTests, jre_headless }: stdenv.mkDerivation { pname = "minecraft-server"; - version = "1.16.2"; + version = "1.17"; src = fetchurl { - url = "https://launcher.mojang.com/v1/objects/c5f6fb23c3876461d46ec380421e42b289789530/server.jar"; + url = "https://launcher.mojang.com/v1/objects/0a269b5f2c5b93b1712d0f5dc43b6182b9ab254e/server.jar"; # sha1 because that comes from mojang via api - sha1 = "c5f6fb23c3876461d46ec380421e42b289789530"; + sha1 = "0a269b5f2c5b93b1712d0f5dc43b6182b9ab254e"; }; preferLocalBuild = true; @@ -23,11 +23,14 @@ stdenv.mkDerivation { chmod +x $out/bin/minecraft-server ''; - phases = "installPhase"; + dontUnpack = true; - passthru.updateScript = ./update.sh; + passthru = { + tests = { inherit (nixosTests) minecraft-server; }; + updateScript = ./update.sh; + }; - meta = with stdenv.lib; { + meta = with lib; { description = "Minecraft Server"; homepage = "https://minecraft.net"; license = licenses.unfreeRedistributable; diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix index 9d23515c039..254c01fdf1b 100644 --- a/pkgs/games/minecraft/default.nix +++ b/pkgs/games/minecraft/default.nix @@ -1,5 +1,7 @@ -{ stdenv +{ lib, stdenv , fetchurl +, nixosTests +, copyDesktopItems , makeDesktopItem , makeWrapper , wrapGAppsHook @@ -10,10 +12,10 @@ , nss , nspr , fontconfig -, gnome2 +, pango , cairo , expat -, alsaLib +, alsa-lib , cups , dbus , atk @@ -39,17 +41,17 @@ let categories = "Game;"; }; - envLibPath = stdenv.lib.makeLibraryPath [ + envLibPath = lib.makeLibraryPath [ curl libpulseaudio systemd - alsaLib # needed for narrator + alsa-lib # needed for narrator flite # needed for narrator libXxf86vm # needed only for versions <1.13 ]; - libPath = stdenv.lib.makeLibraryPath ([ - alsaLib + libPath = lib.makeLibraryPath ([ + alsa-lib atk cairo cups @@ -59,8 +61,7 @@ let freetype gdk-pixbuf glib - gnome2.GConf - gnome2.pango + pango gtk3-x11 gtk2-x11 nspr @@ -87,11 +88,11 @@ in stdenv.mkDerivation rec { pname = "minecraft-launcher"; - version = "2.1.16102"; + version = "2.2.1441"; src = fetchurl { url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz"; - sha256 = "17zgxmijk9mq651h7ymkr7h2099cw23kc0r7jyfkdccp60dfd60i"; + sha256 = "03q579hvxnsh7d00j6lmfh53rixdpf33xb5zlz7659pvb9j5w0cm"; }; icon = fetchurl { @@ -99,7 +100,7 @@ stdenv.mkDerivation rec { sha256 = "0w8z21ml79kblv20wh5lz037g130pxkgs8ll9s3bi94zn2pbrhim"; }; - nativeBuildInputs = [ makeWrapper wrapGAppsHook ]; + nativeBuildInputs = [ makeWrapper wrapGAppsHook copyDesktopItems ]; buildInputs = [ gobject-introspection ]; sourceRoot = "."; @@ -109,11 +110,14 @@ stdenv.mkDerivation rec { dontBuild = true; installPhase = '' + runHook preInstall + mkdir -p $out/opt mv minecraft-launcher $out/opt - ${desktopItem.buildCommand} install -D $icon $out/share/icons/hicolor/symbolic/apps/minecraft-launcher.svg + + runHook postInstall ''; preFixup = '' @@ -133,13 +137,15 @@ stdenv.mkDerivation rec { # Do not create `GPUCache` in current directory 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 ]} \ + --prefix PATH : ${lib.makeBinPath [ jre ]} \ + --set JAVA_HOME ${lib.getBin jre} \ --run "cd /tmp" \ "''${gappsWrapperArgs[@]}" ''; - meta = with stdenv.lib; { + desktopItems = [ desktopItem ]; + + meta = with lib; { description = "Official launcher for Minecraft, a sandbox-building game"; homepage = "https://minecraft.net"; maintainers = with maintainers; [ cpages ryantm infinisil ]; @@ -147,5 +153,8 @@ stdenv.mkDerivation rec { platforms = [ "x86_64-linux" ]; }; - passthru.updateScript = ./update.sh; + passthru = { + tests = { inherit (nixosTests) minecraft; }; + updateScript = ./update.sh; + }; } diff --git a/pkgs/games/minecraft/update.sh b/pkgs/games/minecraft/update.sh index 02b362e839b..485fb5a560f 100755 --- a/pkgs/games/minecraft/update.sh +++ b/pkgs/games/minecraft/update.sh @@ -1,7 +1,7 @@ #!/usr/bin/env nix-shell -#!nix-shell -i bash -p curl jq gnugrep common-updater-scripts +#!nix-shell -i bash -p curl jq common-updater-scripts set -eu -o pipefail -version=$(curl -s 'https://aur.archlinux.org/rpc/?v=5&type=info&arg[]=minecraft-launcher' | jq '.results[0].Version' | grep -Po '[.\d]*(?=-)') -update-source-version minecraft "$version" +version=$(curl -s 'https://launchermeta.mojang.com/v1/products/launcher/6f083b80d5e6fabbc4236f81d0d8f8a350c665a9/linux.json' | jq -r '."launcher-core"[0].version.name') +update-source-version minecraft "${version}" diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix index f49ec1f4a82..7ffa361da55 100644 --- a/pkgs/games/minetest/default.nix +++ b/pkgs/games/minetest/default.nix @@ -1,10 +1,10 @@ -{ stdenv, fetchFromGitHub, cmake, irrlicht, libpng, bzip2, curl, libogg, jsoncpp +{ lib, stdenv, fetchFromGitHub, cmake, irrlicht, libpng, bzip2, curl, libogg, jsoncpp , libjpeg, libXxf86vm, libGLU, libGL, openal, libvorbis, sqlite, luajit , freetype, gettext, doxygen, ncurses, graphviz, xorg, gmp, libspatialindex , leveldb, postgresql, hiredis, libiconv, OpenGL, OpenAL ? openal, Carbon, Cocoa }: -with stdenv.lib; +with lib; let boolToCMake = b: if b then "ON" else "OFF"; @@ -60,7 +60,7 @@ let cp -rv ${sources.data}/* $out/share/minetest/games/minetest_game/ ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://minetest.net/"; description = "Infinite-world block sandbox game"; license = licenses.lgpl21Plus; @@ -76,9 +76,9 @@ let }; v5 = { - version = "5.3.0"; - sha256 = "03ga3j3cg38w4lg4d4qxasmnjdl8n3lbizidrinanvyfdyvznyh6"; - dataSha256 = "1liciwlh013z5h08ib0psjbwn5wkvlr937ir7kslfk4vly984cjx"; + version = "5.4.1"; + sha256 = "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8"; + dataSha256 = "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4"; }; in { diff --git a/pkgs/games/moon-buggy/default.nix b/pkgs/games/moon-buggy/default.nix index 9de24c1ae9d..b623d7bd539 100644 --- a/pkgs/games/moon-buggy/default.nix +++ b/pkgs/games/moon-buggy/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, ncurses}: +{lib, stdenv, fetchurl, ncurses}: stdenv.mkDerivation rec { baseName = "moon-buggy"; @@ -15,10 +15,10 @@ stdenv.mkDerivation rec { }; meta = { - description = ''A simple character graphics game where you drive some kind of car across the moon's surface''; - license = stdenv.lib.licenses.gpl2; - maintainers = [stdenv.lib.maintainers.rybern]; - platforms = stdenv.lib.platforms.linux; + description = "A simple character graphics game where you drive some kind of car across the moon's surface"; + license = lib.licenses.gpl2; + maintainers = [lib.maintainers.rybern]; + platforms = lib.platforms.linux; homepage = "https://www.seehuhn.de/pages/moon-buggy"; }; } diff --git a/pkgs/games/mrrescue/default.nix b/pkgs/games/mrrescue/default.nix index 367a7a5c5e6..ae7519c948b 100644 --- a/pkgs/games/mrrescue/default.nix +++ b/pkgs/games/mrrescue/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }: +{ lib, stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }: let pname = "mrrescue"; @@ -13,13 +13,13 @@ let name = "mrrescue"; exec = pname; icon = icon; - comment = "Arcade-style fire fighting game"; + comment = "Arcade-style fire fighting game"; desktopName = "Mr. Rescue"; genericName = "mrrescue"; categories = "Game;"; }; -in +in stdenv.mkDerivation { name = "${pname}-${version}"; @@ -29,8 +29,7 @@ stdenv.mkDerivation { sha256 = "0kzahxrgpb4vsk9yavy7f8nc34d62d1jqjrpsxslmy9ywax4yfpi"; }; - nativeBuildInputs = [ lua love ]; - buildInputs = [ makeWrapper ]; + nativeBuildInputs = [ lua love makeWrapper ]; phases = "installPhase"; @@ -48,7 +47,7 @@ stdenv.mkDerivation { ln -s ${desktopItem}/share/applications/* $out/share/applications/ ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Arcade-style fire fighting game"; maintainers = with maintainers; [ ]; platforms = platforms.linux; diff --git a/pkgs/games/mudlet/default.nix b/pkgs/games/mudlet/default.nix index b73af4515d3..139baece4a6 100644 --- a/pkgs/games/mudlet/default.nix +++ b/pkgs/games/mudlet/default.nix @@ -1,31 +1,29 @@ -{ fetchFromGitHub, fetchpatch, stdenv, wrapQtAppsHook, git, pcre, pugixml, qtbase, libsForQt5, qtmultimedia, qttools, yajl, libzip, hunspell -, boost, libGLU, lua, cmake, which, }: +{ fetchFromGitHub, lib, stdenv, wrapQtAppsHook, git, pcre, pugixml, qtbase, libsForQt5, libsecret, qtmultimedia, qttools, yajl, libzip, hunspell +, boost, libGLU, lua, cmake, which, pkg-config, }: let luaEnv = lua.withPackages(ps: with ps; [ luazip luafilesystem lrexlib-pcre luasql-sqlite3 lua-yajl luautf8 ]); in stdenv.mkDerivation rec { pname = "mudlet"; - version = "4.9.1"; + version = "4.12.0"; src = fetchFromGitHub { owner = "Mudlet"; repo = "Mudlet"; rev = "Mudlet-${version}"; fetchSubmodules = true; - sha256 = "0i022qcmlq4xwl2yh4xd5qdc0ag52605qmqqz6bim0h8f3dp8cx1"; + sha256 = "023plm5mwm15xikmdh1mq3gx1n7y4a0r0kw9fvk3rvm9brm78hzp"; }; - nativeBuildInputs = [ cmake wrapQtAppsHook git qttools which ]; + nativeBuildInputs = [ pkg-config cmake wrapQtAppsHook git qttools which ]; buildInputs = [ - pcre pugixml qtbase libsForQt5.qtkeychain qtmultimedia luaEnv libzip libGLU yajl boost hunspell + pcre pugixml qtbase libsForQt5.qtkeychain qtmultimedia luaEnv libsecret libzip libGLU yajl boost hunspell ]; WITH_FONTS = "NO"; WITH_UPDATER = "NO"; - enableParallelBuilding = true; - installPhase = '' mkdir -pv $out/lib cp 3rdparty/edbee-lib/edbee-lib/qslog/lib/libQsLog.so $out/lib @@ -47,7 +45,7 @@ stdenv.mkDerivation rec { --run "cd $out"; ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Crossplatform mud client"; homepage = "http://mudlet.org/"; maintainers = [ maintainers.wyvie maintainers.pstn ]; diff --git a/pkgs/games/multimc/0001-pick-latest-java-first.patch b/pkgs/games/multimc/0001-pick-latest-java-first.patch new file mode 100644 index 00000000000..31ab0497f8d --- /dev/null +++ b/pkgs/games/multimc/0001-pick-latest-java-first.patch @@ -0,0 +1,48 @@ +From 44e1b2a19a869b907b40e56c85c8a47aa6c22097 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mustafa=20=C3=87al=C4=B1=C5=9Fkan?= <musfay@protonmail.com> +Date: Tue, 22 Jun 2021 21:50:11 +0300 +Subject: [PATCH] pick latest java first + +--- + api/logic/java/JavaInstallList.cpp | 4 ++-- + api/logic/java/JavaUtils.cpp | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/api/logic/java/JavaInstallList.cpp b/api/logic/java/JavaInstallList.cpp +index 0bded03c..40898e20 100644 +--- a/api/logic/java/JavaInstallList.cpp ++++ b/api/logic/java/JavaInstallList.cpp +@@ -120,8 +120,8 @@ void JavaInstallList::updateListData(QList<BaseVersionPtr> versions) + + bool sortJavas(BaseVersionPtr left, BaseVersionPtr right) + { +- auto rleft = std::dynamic_pointer_cast<JavaInstall>(left); +- auto rright = std::dynamic_pointer_cast<JavaInstall>(right); ++ auto rleft = std::dynamic_pointer_cast<JavaInstall>(right); ++ auto rright = std::dynamic_pointer_cast<JavaInstall>(left); + return (*rleft) > (*rright); + } + +diff --git a/api/logic/java/JavaUtils.cpp b/api/logic/java/JavaUtils.cpp +index 5f004a10..6d633631 100644 +--- a/api/logic/java/JavaUtils.cpp ++++ b/api/logic/java/JavaUtils.cpp +@@ -350,7 +350,6 @@ QList<QString> JavaUtils::FindJavaPaths() + qDebug() << "Linux Java detection incomplete - defaulting to \"java\""; + + QList<QString> javas; +- javas.append(this->GetDefaultJava()->path); + auto scanJavaDir = [&](const QString & dirPath) + { + QDir dir(dirPath); +@@ -379,6 +378,7 @@ QList<QString> JavaUtils::FindJavaPaths() + // general locations used by distro packaging + scanJavaDir("/usr/lib/jvm"); + scanJavaDir("/usr/lib32/jvm"); ++ javas.append(this->GetDefaultJava()->path); + // javas stored in MultiMC's folder + scanJavaDir("java"); + return javas; +-- +2.31.1 + diff --git a/pkgs/games/multimc/default.nix b/pkgs/games/multimc/default.nix index bcdd950de4a..aa32efaa940 100644 --- a/pkgs/games/multimc/default.nix +++ b/pkgs/games/multimc/default.nix @@ -1,21 +1,28 @@ -{ stdenv, mkDerivation, fetchFromGitHub, cmake, jdk, zlib, file, makeWrapper, xorg, libpulseaudio, qtbase }: +{ lib, mkDerivation, fetchFromGitHub, cmake, jdk8, jdk, zlib, file, makeWrapper, xorg, libpulseaudio, qtbase, libGL }: let - libpath = with xorg; stdenv.lib.makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm libpulseaudio ]; + libpath = with xorg; lib.makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm libpulseaudio libGL ]; in mkDerivation rec { pname = "multimc"; - version = "0.6.11"; + version = "unstable-2021-06-21"; src = fetchFromGitHub { owner = "MultiMC"; repo = "MultiMC5"; - rev = version; - sha256 = "1jkbmb4sgfk8d93f5l1vd9pkpvhq9sxacc61w0rvf5xmz0wnszmz"; + rev = "8179a89103833805d5374399d80a4305be1b8355"; + sha256 = "lPz6ZM7TjaixfwWMPaXijKZJQKFPrCegBhvbJ8Xg4P8="; fetchSubmodules = true; }; nativeBuildInputs = [ cmake file makeWrapper ]; - buildInputs = [ qtbase jdk zlib ]; + buildInputs = [ qtbase jdk8 zlib ]; - enableParallelBuilding = true; + patches = [ ./0001-pick-latest-java-first.patch ]; + + postPatch = '' + # hardcode jdk paths + substituteInPlace api/logic/java/JavaUtils.cpp \ + --replace 'scanJavaDir("/usr/lib/jvm")' 'javas.append("${jdk}/lib/openjdk/bin/java")' \ + --replace 'scanJavaDir("/usr/lib32/jvm")' 'javas.append("${jdk8}/lib/openjdk/bin/java")' + ''; cmakeFlags = [ "-DMultiMC_LAYOUT=lin-system" ]; @@ -24,10 +31,12 @@ in mkDerivation rec { install -Dm755 ../application/package/linux/multimc.desktop $out/share/applications/multimc.desktop # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 - wrapProgram $out/bin/multimc --add-flags "-d \$HOME/.multimc/" --set GAME_LIBRARY_PATH /run/opengl-driver/lib:${libpath} --prefix PATH : ${jdk}/bin/:${xorg.xrandr}/bin/ + wrapProgram $out/bin/multimc \ + --set GAME_LIBRARY_PATH /run/opengl-driver/lib:${libpath} \ + --prefix PATH : ${lib.makeBinPath [ xorg.xrandr ]} ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://multimc.org/"; description = "A free, open source launcher for Minecraft"; longDescription = '' @@ -35,6 +44,6 @@ in mkDerivation rec { ''; platforms = platforms.linux; license = licenses.lgpl21Plus; - maintainers = [ maintainers.cleverca22 ]; + maintainers = with maintainers; [ cleverca22 starcraft66 ]; }; } diff --git a/pkgs/games/n2048/default.nix b/pkgs/games/n2048/default.nix index f5ff0b4690e..b3d06a51fd3 100644 --- a/pkgs/games/n2048/default.nix +++ b/pkgs/games/n2048/default.nix @@ -1,6 +1,6 @@ -{stdenv, fetchurl, ncurses}: +{lib, stdenv, fetchurl, ncurses}: let - s = + s = rec { baseName = "n2048"; version = "0.1"; @@ -19,17 +19,17 @@ stdenv.mkDerivation { inherit (s) url sha256; }; makeFlags = [ - ''DESTDIR=$(out)'' + "DESTDIR=$(out)" ]; preInstall = '' mkdir -p "$out"/{share/man,bin} ''; meta = { inherit (s) version; - description = ''Console implementation of 2048 game''; - license = stdenv.lib.licenses.bsd2; - maintainers = [stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.linux; + description = "Console implementation of 2048 game"; + license = lib.licenses.bsd2; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.linux; homepage = "http://www.dettus.net/n2048/"; }; } diff --git a/pkgs/games/naev/default.nix b/pkgs/games/naev/default.nix index c328199b377..f359b8c9d98 100644 --- a/pkgs/games/naev/default.nix +++ b/pkgs/games/naev/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, SDL, openal, SDL_mixer, libxml2, pkgconfig, libvorbis +{ lib, fetchurl, stdenv, SDL, openal, SDL_mixer, libxml2, pkg-config, libvorbis , libpng, libGLU, libGL, makeWrapper, zlib, freetype }: let @@ -21,7 +21,7 @@ stdenv.mkDerivation { buildInputs = [ SDL SDL_mixer openal libxml2 libvorbis libpng libGLU libGL zlib freetype ]; - nativeBuildInputs = [ pkgconfig makeWrapper ]; + nativeBuildInputs = [ pkg-config makeWrapper ]; NIX_CFLAGS_COMPILE="-include ${zlib.dev}/include/zlib.h"; @@ -34,9 +34,9 @@ stdenv.mkDerivation { meta = { description = "2D action/rpg space game"; homepage = "http://www.naev.org"; - license = stdenv.lib.licenses.gpl3Plus; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [viric]; + platforms = lib.platforms.linux; hydraPlatforms = []; }; } diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix index 1b082537148..f9939f063c8 100644 --- a/pkgs/games/nethack/default.nix +++ b/pkgs/games/nethack/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchurl, coreutils, ncurses, gzip, flex, bison , less , buildPackages -, x11Mode ? false, qtMode ? false, libXaw, libXext, libXpm, bdftopcf, mkfontdir, pkgconfig, qt5 +, x11Mode ? false, qtMode ? false, libXaw, libXext, libXpm, bdftopcf, mkfontdir, pkg-config, qt5 }: let @@ -36,7 +36,7 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ flex bison ] ++ lib.optionals x11Mode [ mkfontdir bdftopcf ] ++ lib.optionals qtMode [ - pkgconfig mkfontdir qt5.qtbase.dev + pkg-config mkfontdir qt5.qtbase.dev qt5.qtmultimedia.dev qt5.wrapQtAppsHook bdftopcf ]; @@ -60,7 +60,7 @@ in stdenv.mkDerivation rec { -e 's,^WINTTYLIB=.*,WINTTYLIB=-lncurses,' \ -i sys/unix/hints/linux sed \ - -e 's,^CC=.*$,CC=cc,' \ + -e 's,^CC=.*$,CC=${stdenv.cc.targetPrefix}cc,' \ -e 's,^HACKDIR=.*$,HACKDIR=\$(PREFIX)/games/lib/\$(GAME)dir,' \ -e 's,^SHELLDIR=.*$,SHELLDIR=\$(PREFIX)/games,' \ -e 's,^CFLAGS=-g,CFLAGS=,' \ @@ -97,7 +97,7 @@ in stdenv.mkDerivation rec { enableParallelBuilding = true; - preFixup = stdenv.lib.optionalString qtMode '' + preFixup = lib.optionalString qtMode '' wrapQtApp "$out/games/nethack" ''; @@ -141,7 +141,7 @@ in stdenv.mkDerivation rec { ${lib.optionalString (!(x11Mode || qtMode)) "install -Dm 555 util/dlb -t $out/libexec/nethack/"} ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Rogue-like game"; homepage = "http://nethack.org/"; license = "nethack"; diff --git a/pkgs/games/netris/default.nix b/pkgs/games/netris/default.nix index 994db4e67f8..ff898128ca0 100644 --- a/pkgs/games/netris/default.nix +++ b/pkgs/games/netris/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, ncurses }: +{ lib, stdenv, fetchFromGitHub, ncurses }: stdenv.mkDerivation { pname = "netris"; @@ -23,7 +23,7 @@ stdenv.mkDerivation { cp ./netris $out/bin ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A free networked version of T*tris"; license = licenses.gpl2; maintainers = with maintainers; [ patryk27 ]; diff --git a/pkgs/games/neverball/default.nix b/pkgs/games/neverball/default.nix index 99ce818d04d..ba1d403207a 100644 --- a/pkgs/games/neverball/default.nix +++ b/pkgs/games/neverball/default.nix @@ -1,10 +1,11 @@ -{ stdenv, fetchurl, SDL2, libGL, libpng, libjpeg, SDL2_ttf, libvorbis, gettext +{ lib, stdenv, fetchurl, SDL2, libGL, libpng, libjpeg, SDL2_ttf, libvorbis, gettext , physfs }: stdenv.mkDerivation rec { - name = "neverball-1.6.0"; + pname = "neverball"; + version = "1.6.0"; src = fetchurl { - url = "https://neverball.org/${name}.tar.gz"; + url = "https://neverball.org/neverball-${version}.tar.gz"; sha256 = "184gm36c6p6vaa6gwrfzmfh86klhnb03pl40ahsjsvprlk667zkk"; }; @@ -35,7 +36,7 @@ stdenv.mkDerivation rec { homepage = "https://neverball.org/"; description = "Tilt the floor to roll a ball"; license = "GPL"; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + maintainers = with lib.maintainers; [viric]; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/games/newtonwars/default.nix b/pkgs/games/newtonwars/default.nix index 093f071c723..0be3d9bf7a0 100644 --- a/pkgs/games/newtonwars/default.nix +++ b/pkgs/games/newtonwars/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, makeWrapper, freeglut, libGLU, libGL }: +{ lib, stdenv, fetchFromGitHub, makeWrapper, freeglut, libGLU, libGL }: stdenv.mkDerivation { pname = "newtonwars"; @@ -11,7 +11,8 @@ stdenv.mkDerivation { sha256 = "0g63fwfcdxxlnqlagj1fb8ngm385gmv8f7p8b4r1z5cny2znxdvs"; }; - buildInputs = [ makeWrapper freeglut libGL libGLU ]; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ freeglut libGL libGLU ]; patchPhase = '' sed -i "s;font24.raw;$out/share/font24.raw;g" display.c @@ -30,7 +31,7 @@ stdenv.mkDerivation { --prefix LD_LIBRARY_PATH ":" ${libGL}/lib ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A space battle game with gravity as the main theme"; maintainers = with maintainers; [ pSub ]; platforms = platforms.linux; diff --git a/pkgs/games/nexuiz/default.nix b/pkgs/games/nexuiz/default.nix index e055e27d2cd..4082e853aa3 100644 --- a/pkgs/games/nexuiz/default.nix +++ b/pkgs/games/nexuiz/default.nix @@ -1,9 +1,9 @@ -{ stdenv, fetchurl +{ lib, stdenv, fetchurl , # required for both unzip, zlib, curl, libjpeg, libpng, libvorbis, libtheora , libogg, libmodplug , # glx - libX11, libGLU, libGL, libXpm, libXext, libXxf86vm, libXxf86dga, alsaLib + libX11, libGLU, libGL, libXpm, libXext, libXxf86vm, libXxf86dga, alsa-lib , # sdl SDL }: @@ -11,7 +11,7 @@ let version = "2.5.2"; - version_short = stdenv.lib.replaceChars [ "." ] [ "" ] version; + version_short = lib.replaceChars [ "." ] [ "" ] version; in stdenv.mkDerivation { pname = "nexuiz"; inherit version; @@ -21,11 +21,10 @@ in stdenv.mkDerivation { sha256 = "0010jrxc68qqinkvdh1qn2b8z3sa5v1kcd8d1m4llp3pr6y7xqm5"; }; + nativeBuildInputs = [ unzip ]; buildInputs = [ - # required for both - unzip # glx - libX11 libGLU libGL libXpm libXext libXxf86vm libXxf86dga alsaLib + libX11 libGLU libGL libXpm libXext libXxf86vm libXxf86dga alsa-lib # sdl SDL ]; @@ -71,7 +70,7 @@ in stdenv.mkDerivation { meta = { description = "A free fast-paced first-person shooter"; homepage = "http://www.alientrap.org/games/nexuiz"; - license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/ninvaders/default.nix b/pkgs/games/ninvaders/default.nix index 26462c1eef5..df4a3ad111b 100644 --- a/pkgs/games/ninvaders/default.nix +++ b/pkgs/games/ninvaders/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, ncurses }: +{ lib, stdenv, fetchFromGitHub, cmake, ncurses }: stdenv.mkDerivation rec { pname = "ninvaders"; @@ -11,9 +11,10 @@ stdenv.mkDerivation rec { sha256 = "1wmwws1zsap4bfc2439p25vnja0hnsf57k293rdxw626gly06whi"; }; - buildInputs = [ cmake ncurses ]; + nativeBuildInputs = [ cmake ]; + buildInputs = [ ncurses ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Space Invaders clone based on ncurses"; homepage = "http://ninvaders.sourceforge.net/"; license = licenses.gpl2; diff --git a/pkgs/games/njam/default.nix b/pkgs/games/njam/default.nix index 5022a92a7cd..6fbffc37d03 100644 --- a/pkgs/games/njam/default.nix +++ b/pkgs/games/njam/default.nix @@ -1,10 +1,11 @@ -{stdenv, fetchurl, SDL, SDL_image, SDL_mixer, SDL_net }: +{lib, stdenv, fetchurl, SDL, SDL_image, SDL_mixer, SDL_net }: -stdenv.mkDerivation { - name = "njam-1.25"; +stdenv.mkDerivation rec { + pname = "njam"; + version = "1.25"; src = fetchurl { - url = "mirror://sourceforge/njam/njam-1.25-src.tar.gz"; + url = "mirror://sourceforge/njam/njam-${version}-src.tar.gz"; sha256 = "0ysvqw017xkvddj957pdfmbmji7qi20nyr7f0zxvcvm6c7d3cc7s"; }; @@ -21,7 +22,7 @@ stdenv.mkDerivation { meta = { homepage = "http://trackballs.sourceforge.net/"; description = "Cross-platform pacman-like game"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/nottetris2/default.nix b/pkgs/games/nottetris2/default.nix index dde35e4fe32..42e5a33cad7 100644 --- a/pkgs/games/nottetris2/default.nix +++ b/pkgs/games/nottetris2/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, zip, love_0_7, makeWrapper, makeDesktopItem }: +{ lib, stdenv, fetchFromGitHub, zip, love_0_7, makeWrapper, makeDesktopItem }: let pname = "nottetris2"; @@ -25,8 +25,8 @@ stdenv.mkDerivation { sha256 = "17iabh6rr8jim70n96rbhif4xq02g2kppscm8l339yqx6mhb64hs"; }; - nativeBuildInputs = [ zip ]; - buildInputs = [ love_0_7 makeWrapper ]; + nativeBuildInputs = [ zip makeWrapper ]; + buildInputs = [ love_0_7 ]; phases = [ "unpackPhase" "installPhase" ]; @@ -40,7 +40,7 @@ stdenv.mkDerivation { chmod +x $out/bin/${pname} ''; - meta = with stdenv.lib; { + meta = with lib; { description = "It's like Tetris, but it's not"; platforms = platforms.linux; license = licenses.wtfpl; diff --git a/pkgs/games/nudoku/default.nix b/pkgs/games/nudoku/default.nix index b9e521bce36..aaa6d324809 100644 --- a/pkgs/games/nudoku/default.nix +++ b/pkgs/games/nudoku/default.nix @@ -1,14 +1,14 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gettext, ncurses }: +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gettext, ncurses }: stdenv.mkDerivation rec { pname = "nudoku"; - version = "2.0.0"; + version = "2.1.0"; src = fetchFromGitHub { owner = "jubalh"; repo = pname; rev = version; - sha256 = "0rj8ajni7gssj0qbf1jn51699sadxwsr6ca2718w74psv7acda8h"; + sha256 = "12v00z3p0ymi8f3w4b4bgl4c76irawn3kmd147r0ap6s9ssx2q6m"; }; # Allow gettext 0.20 @@ -16,15 +16,16 @@ stdenv.mkDerivation rec { substituteInPlace configure.ac --replace 0.19 0.20 ''; - nativeBuildInputs = [ autoreconfHook pkgconfig gettext ]; + nativeBuildInputs = [ autoreconfHook pkg-config gettext ]; buildInputs = [ ncurses ]; - configureFlags = stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-nls"; + configureFlags = lib.optional stdenv.hostPlatform.isMusl "--disable-nls"; - meta = with stdenv.lib; { + meta = with lib; { description = "An ncurses based sudoku game"; homepage = "http://jubalh.github.io/nudoku/"; license = licenses.gpl3; + platforms = platforms.all; maintainers = with maintainers; [ dtzWill ]; }; } diff --git a/pkgs/games/nxengine-evo/default.nix b/pkgs/games/nxengine-evo/default.nix index 909737a6804..e3df235b757 100644 --- a/pkgs/games/nxengine-evo/default.nix +++ b/pkgs/games/nxengine-evo/default.nix @@ -1,4 +1,4 @@ -{ stdenv +{ lib, stdenv , fetchpatch , fetchurl , cmake @@ -54,12 +54,12 @@ stdenv.mkDerivation rec { meta = { description = "A complete open-source clone/rewrite of the masterpiece jump-and-run platformer Doukutsu Monogatari (also known as Cave Story)"; - license = with stdenv.lib.licenses; [ + license = with lib.licenses; [ gpl3 # Game engine unfreeRedistributable # Game assets, freeware ]; - maintainers = [ stdenv.lib.maintainers.scubed2 ]; + maintainers = [ lib.maintainers.scubed2 ]; homepage = "https://github.com/nxengine/nxengine-evo"; - platforms = stdenv.lib.platforms.linux; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/odamex/default.nix b/pkgs/games/odamex/default.nix index af9bccadeb3..8b58ec67eda 100644 --- a/pkgs/games/odamex/default.nix +++ b/pkgs/games/odamex/default.nix @@ -1,4 +1,4 @@ -{ stdenv, cmake, fetchurl, pkgconfig, SDL, SDL_mixer, SDL_net, wxGTK30 }: +{ lib, stdenv, cmake, fetchurl, pkg-config, SDL, SDL_mixer, SDL_net, wxGTK30 }: stdenv.mkDerivation rec { pname = "odamex"; @@ -9,16 +9,14 @@ stdenv.mkDerivation rec { sha256 = "0d4v1l7kghkz1xz92jxlx50x3iy94z7ix1i3209m5j5545qzxrqq"; }; - nativeBuildInputs = [ cmake pkgconfig ]; + nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ SDL SDL_mixer SDL_net wxGTK30 ]; - enableParallelBuilding = true; - meta = { homepage = "http://odamex.net/"; description = "A client/server port for playing old-school Doom online"; - license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.linux; - maintainers = with stdenv.lib.maintainers; [ MP2E ]; + license = lib.licenses.gpl2; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ MP2E ]; }; } diff --git a/pkgs/games/oh-my-git/default.nix b/pkgs/games/oh-my-git/default.nix new file mode 100644 index 00000000000..542effa6596 --- /dev/null +++ b/pkgs/games/oh-my-git/default.nix @@ -0,0 +1,115 @@ +{ lib +, copyDesktopItems +, fetchFromGitHub +, makeDesktopItem +, stdenv +, alsa-lib +, gcc-unwrapped +, git +, godot-export-templates +, godot-headless +, libGLU +, libX11 +, libXcursor +, libXext +, libXfixes +, libXi +, libXinerama +, libXrandr +, libXrender +, libglvnd +, libpulseaudio +, zlib +}: + +stdenv.mkDerivation rec { + pname = "oh-my-git"; + version = "0.6.4"; + + src = fetchFromGitHub { + owner = "git-learning-game"; + repo = "oh-my-git"; + rev = version; + sha256 = "sha256-GQLHyBUXF+yqEZ/LYutAn6TBCXFX8ViOaERQEm2J6CY="; + }; + + nativeBuildInputs = [ + copyDesktopItems + godot-headless + ]; + + buildInputs = [ + alsa-lib + gcc-unwrapped.lib + git + libGLU + libX11 + libXcursor + libXext + libXfixes + libXi + libXinerama + libXrandr + libXrender + libglvnd + libpulseaudio + zlib + ]; + + desktopItems = [ + (makeDesktopItem { + name = "oh-my-git"; + exec = "oh-my-git"; + icon = "oh-my-git"; + desktopName = "oh-my-git"; + comment = "An interactive Git learning game!"; + genericName = "An interactive Git learning game!"; + categories = "Game;"; + }) + ]; + + buildPhase = '' + runHook preBuild + + # Cannot create file '/homeless-shelter/.config/godot/projects/...' + export HOME=$TMPDIR + + # Link the export-templates to the expected location. The --export commands + # expects the template-file at .../templates/3.2.3.stable/linux_x11_64_release + # with 3.2.3 being the version of godot. + mkdir -p $HOME/.local/share/godot + ln -s ${godot-export-templates}/share/godot/templates $HOME/.local/share/godot + + mkdir -p $out/share/oh-my-git + godot-headless --export "Linux" $out/share/oh-my-git/oh-my-git + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + ln -s $out/share/oh-my-git/oh-my-git $out/bin + + # Patch binaries. + interpreter=$(cat $NIX_CC/nix-support/dynamic-linker) + patchelf \ + --set-interpreter $interpreter \ + --set-rpath ${lib.makeLibraryPath buildInputs} \ + $out/share/oh-my-git/oh-my-git + + mkdir -p $out/share/pixmaps + cp images/oh-my-git.png $out/share/pixmaps/oh-my-git.png + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://ohmygit.org/"; + description = "An interactive Git learning game"; + license = with licenses; [ blueOak100 ]; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ jojosch ]; + }; +} diff --git a/pkgs/games/oilrush/default.nix b/pkgs/games/oilrush/default.nix index 6a05a566524..b78baee725d 100644 --- a/pkgs/games/oilrush/default.nix +++ b/pkgs/games/oilrush/default.nix @@ -1,7 +1,7 @@ -{ stdenv, config, fetchurl, libX11, libXext, libXinerama, libXrandr +{ lib, stdenv, config, fetchurl, libX11, libXext, libXinerama, libXrandr , libXrender, fontconfig, freetype, openal, runtimeShell }: -let inherit (stdenv.lib) makeLibraryPath; in +let inherit (lib) makeLibraryPath; in stdenv.mkDerivation { name = "oilrush"; @@ -69,9 +69,9 @@ stdenv.mkDerivation { of Tower Defense. ''; homepage = "http://oilrush-game.com/"; - license = stdenv.lib.licenses.unfree; - #maintainers = with stdenv.lib.maintainers; [ astsmtl ]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.unfree; + #maintainers = with lib.maintainers; [ astsmtl ]; + platforms = lib.platforms.linux; hydraPlatforms = []; }; diff --git a/pkgs/games/onscripter-en/default.nix b/pkgs/games/onscripter-en/default.nix index ebcf755780d..bcd33eb9892 100644 --- a/pkgs/games/onscripter-en/default.nix +++ b/pkgs/games/onscripter-en/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl +{ lib, stdenv, fetchurl , libpng, libjpeg, libogg, libvorbis, freetype, smpeg , SDL, SDL_image, SDL_mixer, SDL_ttf }: @@ -25,7 +25,7 @@ stdenv.mkDerivation { sed -i 's/.dll//g' Makefile ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Japanese visual novel scripting engine"; homepage = "http://unclemion.com/onscripter/"; license = licenses.gpl2; diff --git a/pkgs/games/openarena/default.nix b/pkgs/games/openarena/default.nix index 577eafb6a8c..7b1f793895e 100644 --- a/pkgs/games/openarena/default.nix +++ b/pkgs/games/openarena/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, makeWrapper, patchelf, pkgs, stdenv, SDL, libglvnd, libogg, libvorbis, curl, openal }: +{ lib, fetchurl, makeWrapper, patchelf, pkgs, stdenv, SDL, libglvnd, libogg, libvorbis, curl, openal }: stdenv.mkDerivation { pname = "openarena"; @@ -15,7 +15,7 @@ stdenv.mkDerivation { installPhase = let gameDir = "$out/openarena-$version"; interpreter = "$(< \"$NIX_CC/nix-support/dynamic-linker\")"; - libPath = stdenv.lib.makeLibraryPath [ SDL libglvnd libogg libvorbis curl openal ]; + libPath = lib.makeLibraryPath [ SDL libglvnd libogg libvorbis curl openal ]; arch = { "x86_64-linux" = "x86_64"; "i386-linux" = "i386"; @@ -36,8 +36,8 @@ stdenv.mkDerivation { meta = { description = "Crossplatform openarena client"; homepage = "http://openarena.ws/"; - maintainers = [ stdenv.lib.maintainers.wyvie ]; + maintainers = [ lib.maintainers.wyvie ]; platforms = [ "i386-linux" "x86_64-linux" ]; - license = stdenv.lib.licenses.gpl2; + license = lib.licenses.gpl2; }; } diff --git a/pkgs/games/openclonk/default.nix b/pkgs/games/openclonk/default.nix index 18147c896bf..9dc267032ae 100644 --- a/pkgs/games/openclonk/default.nix +++ b/pkgs/games/openclonk/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cmake, pkgconfig +{ lib, stdenv, fetchurl, cmake, pkg-config , SDL2, libvorbis, libogg, libjpeg, libpng, freetype, glew, tinyxml, openal , freealut, readline, gcc-unwrapped , enableSoundtrack ? false # Enable the "Open Clonk Soundtrack - Explorers Journey" by David Oerther @@ -20,13 +20,11 @@ in stdenv.mkDerivation rec { postInstall = '' mv -v $out/games/openclonk $out/bin/ - '' + stdenv.lib.optionalString enableSoundtrack '' + '' + lib.optionalString enableSoundtrack '' ln -sv ${soundtrack_src} $out/share/games/openclonk/Music.ocg ''; - enableParallelBuilding = true; - - nativeBuildInputs = [ cmake pkgconfig ]; + nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ SDL2 libvorbis libogg libjpeg libpng freetype glew tinyxml openal freealut @@ -37,7 +35,7 @@ in stdenv.mkDerivation rec { cmakeBuildType = "RelWithDebInfo"; - meta = with stdenv.lib; { + meta = with lib; { description = "Free multiplayer action game in which you control clonks, small but witty and nimble humanoid beings"; homepage = "https://www.openclonk.org"; license = if enableSoundtrack then licenses.unfreeRedistributable else licenses.isc; diff --git a/pkgs/games/opendune/default.nix b/pkgs/games/opendune/default.nix index 591bea12297..32e1ef4fca9 100644 --- a/pkgs/games/opendune/default.nix +++ b/pkgs/games/opendune/default.nix @@ -1,5 +1,5 @@ -{ stdenv, lib, fetchFromGitHub, pkgconfig -, alsaLib, libpulseaudio, SDL2, SDL2_image, SDL2_mixer }: +{ stdenv, lib, fetchFromGitHub, pkg-config +, alsa-lib, libpulseaudio, SDL2, SDL2_image, SDL2_mixer }: # - set the opendune configuration at ~/.config/opendune/opendune.ini: # [opendune] @@ -18,13 +18,13 @@ stdenv.mkDerivation rec { }; configureFlags = [ - "--with-alsa=${lib.getLib alsaLib}/lib/libasound.so" + "--with-alsa=${lib.getLib alsa-lib}/lib/libasound.so" "--with-pulse=${lib.getLib libpulseaudio}/lib/libpulse.so" ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; - buildInputs = [ alsaLib libpulseaudio SDL2 SDL2_image SDL2_mixer ]; + buildInputs = [ alsa-lib libpulseaudio SDL2 SDL2_image SDL2_mixer ]; enableParallelBuilding = true; @@ -37,10 +37,10 @@ stdenv.mkDerivation rec { runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Dune, Reinvented"; homepage = "https://github.com/OpenDUNE/OpenDUNE"; license = licenses.gpl2; - maintainers = with maintainers; [ nand0p ]; + maintainers = with maintainers; [ ]; }; } diff --git a/pkgs/games/opendungeons/default.nix b/pkgs/games/opendungeons/default.nix index 467c782211f..d18682b8807 100644 --- a/pkgs/games/opendungeons/default.nix +++ b/pkgs/games/opendungeons/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, ogre, cegui, boost, sfml, openal, cmake, ois, pkgconfig }: +{ lib, stdenv, fetchFromGitHub, ogre, cegui, boost, sfml, openal, cmake, ois, pkg-config }: stdenv.mkDerivation rec { pname = "opendungeons"; @@ -13,14 +13,14 @@ stdenv.mkDerivation rec { patches = [ ./cmakepaths.patch ]; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ cmake ogre cegui boost sfml openal ois ]; + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ ogre cegui boost sfml openal ois ]; NIX_LDFLAGS = "-lpthread"; - meta = with stdenv.lib; { - description = "An open source, real time strategy game sharing game elements with the Dungeon Keeper series and Evil Genius."; + meta = with lib; { + description = "An open source, real time strategy game sharing game elements with the Dungeon Keeper series and Evil Genius"; homepage = "https://opendungeons.github.io"; - license = [ licenses.gpl3Plus licenses.zlib licenses.mit licenses.cc-by-sa-30 licenses.cc0 licenses.ofl licenses.cc-by-30 ]; + license = with licenses; [ gpl3Plus zlib mit cc-by-sa-30 cc0 ofl cc-by-30 ]; platforms = platforms.linux; }; } diff --git a/pkgs/games/openjk/default.nix b/pkgs/games/openjk/default.nix index 0fe327b308e..c16b38fc8f1 100644 --- a/pkgs/games/openjk/default.nix +++ b/pkgs/games/openjk/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, cmake, libjpeg, zlib, libpng, libGL, SDL2 }: +{ lib, stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, cmake, libjpeg, zlib, libpng, libGL, SDL2 }: let jamp = makeDesktopItem rec { @@ -31,7 +31,6 @@ in stdenv.mkDerivation { }; dontAddPrefix = true; - enableParallelBuilding = true; nativeBuildInputs = [ makeWrapper cmake ]; buildInputs = [ libjpeg zlib libpng libGL SDL2 ]; @@ -54,11 +53,11 @@ in stdenv.mkDerivation { ln -s ${jasp}/share/applications/* $out/share/applications ''; - meta = with stdenv.lib; { + meta = with lib; { description = "An open-source engine for Star Wars Jedi Academy game"; homepage = "https://github.com/JACoders/OpenJK"; license = licenses.gpl2; platforms = platforms.linux; - maintainers = with maintainers; [ gnidorah ]; + maintainers = with maintainers; [ ]; }; } diff --git a/pkgs/games/openlierox/default.nix b/pkgs/games/openlierox/default.nix index 66c9420591d..12d00f28ffc 100644 --- a/pkgs/games/openlierox/default.nix +++ b/pkgs/games/openlierox/default.nix @@ -1,8 +1,9 @@ -{ stdenv, fetchurl, libX11, xorgproto, gd, SDL, SDL_image, SDL_mixer, zlib -, libxml2, pkgconfig, curl, cmake, libzip }: +{ lib, stdenv, fetchurl, libX11, xorgproto, gd, SDL, SDL_image, SDL_mixer, zlib +, libxml2, pkg-config, curl, cmake, libzip }: -stdenv.mkDerivation { - name = "openlierox-0.58rc3"; +stdenv.mkDerivation rec { + pname = "openlierox"; + version = "0.58rc3"; src = fetchurl { url = "mirror://sourceforge/openlierox/OpenLieroX_0.58_rc3.src.tar.bz2"; @@ -28,13 +29,14 @@ stdenv.mkDerivation { cp -R ../share/gamedir/* $out/share/OpenLieroX ''; + nativeBuildInputs = [ cmake pkg-config curl ]; buildInputs = [ libX11 xorgproto gd SDL SDL_image SDL_mixer zlib libxml2 - pkgconfig curl cmake libzip ]; + libzip ]; meta = { homepage = "http://openlierox.net"; description = "Real-time game with Worms-like shooting"; - license = stdenv.lib.licenses.lgpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.lgpl2Plus; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/openmw/default.nix b/pkgs/games/openmw/default.nix index 22f3ea8d6ad..8e6ed3cdb82 100644 --- a/pkgs/games/openmw/default.nix +++ b/pkgs/games/openmw/default.nix @@ -1,16 +1,32 @@ -{ stdenv, mkDerivationWith, fetchFromGitHub, qtbase, openscenegraph, mygui, bullet, ffmpeg_3 -, boost, cmake, SDL2, unshield, openal, libXt, pkgconfig }: +{ lib +, mkDerivation +, fetchFromGitHub +, cmake +, pkg-config +, openscenegraph +, mygui +, bullet +, ffmpeg +, boost +, SDL2 +, unshield +, openal +, libXt +}: let openscenegraph_ = openscenegraph.overrideDerivation (self: { src = fetchFromGitHub { owner = "OpenMW"; repo = "osg"; + # commit does not exist on any branch on the target repository rev = "1556cd7966ebc1c80b6626988d2b25fb43a744cf"; sha256 = "0d74hijzmj82nx3jkv5qmr3pkgvplra0b8fbjx1y3vmzxamb0axd"; }; }); -in mkDerivationWith stdenv.mkDerivation rec { + +in +mkDerivation rec { version = "0.46.0"; pname = "openmw"; @@ -21,20 +37,33 @@ in mkDerivationWith stdenv.mkDerivation rec { sha256 = "0rm32zsmxvr6b0jjihfj543skhicbw5kg6shjx312clhlm035w2x"; }; - enableParallelBuilding = true; + nativeBuildInputs = [ cmake pkg-config ]; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ cmake boost ffmpeg_3 bullet mygui openscenegraph_ SDL2 unshield openal libXt qtbase ]; + buildInputs = [ + SDL2 + boost + bullet + ffmpeg + libXt + mygui + openal + openscenegraph_ + unshield + ]; cmakeFlags = [ "-DDESIRED_QT_VERSION:INT=5" + # as of 0.46, openmw is broken with GLVND + "-DOpenGL_GL_PREFERENCE=LEGACY" ]; - meta = with stdenv.lib; { + dontWrapQtApps = true; + + meta = with lib; { description = "An unofficial open source engine reimplementation of the game Morrowind"; homepage = "http://openmw.org"; - license = licenses.gpl3; - platforms = platforms.linux; + license = licenses.gpl3Plus; maintainers = with maintainers; [ abbradar ]; + platforms = platforms.linux; }; } diff --git a/pkgs/games/openmw/tes3mp.nix b/pkgs/games/openmw/tes3mp.nix index df332c0e5bf..72b698ceb73 100644 --- a/pkgs/games/openmw/tes3mp.nix +++ b/pkgs/games/openmw/tes3mp.nix @@ -1,94 +1,134 @@ -{ stdenv, cmake, openmw, fetchFromGitHub, luajit, makeWrapper, mygui }: +{ lib +, stdenv +, cmake +, openmw +, fetchFromGitHub +, formats +, luajit +, makeWrapper +, symlinkJoin +, mygui +, crudini +}: # revisions are taken from https://github.com/GrimKriegor/TES3MP-deploy let - # TES3MP_STABLE_VERSION_FILE - compatHash = "292536439eeda58becdb7e441fe2e61ebb74529e"; - rakNet = fetchFromGitHub { - owner = "TES3MP"; - repo = "CrabNet"; - # usually fixed: - # https://github.com/GrimKriegor/TES3MP-deploy/blob/d2a4a5d3acb64b16d9b8ca85906780aeea8d311b/tes3mp-deploy.sh#L589 - rev = "4eeeaad2f6c11aeb82070df35169694b4fb7b04b"; - sha256 = "0p0li9l1i5lcliswm5w9jql0zff9i6fwhiq0bl130m4i7vpr4cr3"; - }; - rakNetLibrary = stdenv.mkDerivation { - name = "RakNetLibrary"; - src = rakNet; + # raknet could also be split into dev and lib outputs + raknet = stdenv.mkDerivation { + pname = "raknet"; + version = "unstable-2018-07-14"; + + src = fetchFromGitHub { + owner = "TES3MP"; + repo = "CrabNet"; + # usually fixed: + # https://github.com/GrimKriegor/TES3MP-deploy/blob/d2a4a5d3acb64b16d9b8ca85906780aeea8d311b/tes3mp-deploy.sh#L589 + rev = "4eeeaad2f6c11aeb82070df35169694b4fb7b04b"; + sha256 = "0p0li9l1i5lcliswm5w9jql0zff9i6fwhiq0bl130m4i7vpr4cr3"; + }; + nativeBuildInputs = [ cmake ]; + installPhase = '' - install -Dm755 lib/libRakNetLibStatic.a $out/lib/libRakNetLibStatic.a + install -Dm555 lib/libRakNetLibStatic.a $out/lib/libRakNetLibStatic.a ''; }; - coreScripts = fetchFromGitHub { - owner = "TES3MP"; - repo = "CoreScripts"; - # usually latest in stable branch (e.g. 0.7.0) - rev = "24aae91d9ddad38cdb3b0e0a13af59f142803e94"; - sha256 = "1rfmxxr9ircfagdpbdrzl26msdhx1i3g974cblbv69078cradfh3"; + + coreScripts = stdenv.mkDerivation { + pname = "corescripts"; + version = "unstable-2020-07-27"; + + src = fetchFromGitHub { + owner = "TES3MP"; + repo = "CoreScripts"; + # usually latest in stable branch (e.g. 0.7.1) + rev = "3c2d31595344db586d8585db0ef1fc0da89898a0"; + sha256 = "sha256-m/pt2Et58HOMc1xqllGf4hjPLXNcc14+X0h84ouZDeg="; + }; + + buildCommand = '' + dir=$out/share/openmw-tes3mp + mkdir -p $dir + cp -r $src $dir/CoreScripts + ''; }; - # https://github.com/TES3MP/openmw-tes3mp/issues/555 - mygui_ = mygui.overrideAttrs (oldAttrs: rec { - version = "3.2.2"; + + # build an unwrapped version so we don't have to rebuild it all over again in + # case the scripts or wrapper scripts change. + unwrapped = openmw.overrideAttrs (oldAttrs: rec { + pname = "openmw-tes3mp-unwrapped"; + version = "unstable-2020-08-07"; src = fetchFromGitHub { - owner = "MyGUI"; - repo = "mygui"; - rev = "MyGUI${version}"; - sha256 = "1wk7jmwm55rhlqqcyvqsxdmwvl70bysl9azh4kd9n57qlmgk3zmw"; + owner = "TES3MP"; + repo = "openmw-tes3mp"; + # usually latest in stable branch (e.g. 0.7.1) + rev = "ce5df6d18546e37aac9746d99c00d27a7f34b00d"; + sha256 = "sha256-xLslShNA6rVFl9kt6BNGDpSYMpO25jBTCteLJoSTXdg="; + }; + + nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ makeWrapper ]; + + buildInputs = oldAttrs.buildInputs ++ [ luajit ]; + + cmakeFlags = oldAttrs.cmakeFlags ++ [ + "-DBUILD_OPENCS=OFF" + "-DRakNet_INCLUDES=${raknet.src}/include" + "-DRakNet_LIBRARY_RELEASE=${raknet}/lib/libRakNetLibStatic.a" + "-DRakNet_LIBRARY_DEBUG=${raknet}/lib/libRakNetLibStatic.a" + ]; + + # https://github.com/TES3MP/openmw-tes3mp/issues/552 + patches = [ ./tes3mp.patch ]; + + NIX_CFLAGS_COMPILE = "-fpermissive"; + + preConfigure = '' + substituteInPlace files/version.in \ + --subst-var-by OPENMW_VERSION_COMMITHASH ${src.rev} + ''; + + # move everything that we wrap out of the way + postInstall = '' + mkdir -p $out/libexec + mv $out/bin/tes3mp-* $out/libexec + ''; + + meta = with lib; { + description = "Multiplayer for TES3:Morrowind based on OpenMW"; + homepage = "https://tes3mp.com/"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ peterhoeg ]; + platforms = [ "x86_64-linux" "i686-linux" ]; }; }); -in openmw.overrideAttrs (oldAttrs: rec { - version = "2019-11-19"; - name = "openmw-tes3mp-${version}"; - - src = fetchFromGitHub { - owner = "TES3MP"; - repo = "openmw-tes3mp"; - # usually latest in stable branch (e.g. 0.7.0) - rev = "ad9ee80641a3e22d0780daca051df7f4e90f3615"; - sha256 = "03a1vldiv5lk7yq6lhicx3qz8hjfxhind2dj0w9lg5839ljyk6jv"; + + cfgFile = (formats.ini { }).generate "tes3mp-server.cfg" { + Plugins.home = "${coreScripts}/share/openmw-tes3mp/CoreScripts"; }; - nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ makeWrapper ]; - buildInputs = [ luajit mygui_ ] ++ oldAttrs.buildInputs; - - cmakeFlags = oldAttrs.cmakeFlags ++ [ - "-DBUILD_OPENCS=OFF" - "-DRakNet_INCLUDES=${rakNet}/include" - "-DRakNet_LIBRARY_RELEASE=${rakNetLibrary}/lib/libRakNetLibStatic.a" - "-DRakNet_LIBRARY_DEBUG=${rakNetLibrary}/lib/libRakNetLibStatic.a" - ]; - - # https://github.com/TES3MP/openmw-tes3mp/issues/552 - patches = [ - ./tes3mp.patch - ]; - NIX_CFLAGS_COMPILE = "-fpermissive"; - - preConfigure = '' - substituteInPlace files/version.in \ - --subst-var-by OPENMW_VERSION_COMMITHASH ${compatHash} - ''; +in +symlinkJoin rec { + name = "openmw-tes3mp-${unwrapped.version}"; + inherit (unwrapped) version meta; + + nativeBuildInputs = [ makeWrapper ]; + + paths = [ unwrapped ]; + + # crudini --merge will create the file if it doesn't exist + postBuild = '' + mkdir -p $out/bin - postInstall = '' - # components/process/processinvoker.cpp: path.prepend(QLatin1String("./")) - wrapProgram $out/bin/tes3mp-browser \ + dir=\''${XDG_CONFIG_HOME:-\$HOME/.config}/openmw + + makeWrapper ${unwrapped}/libexec/tes3mp-browser $out/bin/tes3mp-browser \ --run "cd $out/bin" - wrapProgram $out/bin/tes3mp-server \ - --run "mkdir -p ~/.config/openmw" \ - --run "cd ~/.config/openmw" \ - --run "[ -d CoreScripts ] || cp --no-preserve=mode -r ${coreScripts} CoreScripts" \ - --run "[ -f tes3mp-server.cfg ] || echo \"[Plugins] home = \$HOME/.config/openmw/CoreScripts\" > tes3mp-server.cfg" \ + + makeWrapper ${unwrapped}/libexec/tes3mp-server $out/bin/tes3mp-server \ + --run "mkdir -p $dir" \ + --run "${crudini}/bin/crudini --merge $dir/${cfgFile.name} < ${cfgFile}" \ --run "cd $out/bin" ''; - - meta = with stdenv.lib; { - description = "Multiplayer for TES3:Morrowind based on OpenMW"; - homepage = "https://tes3mp.com/"; - license = licenses.gpl3; - platforms = [ "x86_64-linux" "i686-linux" ]; - maintainers = with maintainers; [ gnidorah ]; - }; -}) +} diff --git a/pkgs/games/openra/common.nix b/pkgs/games/openra/common.nix index 51f94177177..41c903e1011 100644 --- a/pkgs/games/openra/common.nix +++ b/pkgs/games/openra/common.nix @@ -1,13 +1,13 @@ /* The reusable code, and package attributes, between OpenRA engine packages (engine.nix) and out-of-tree mod packages (mod.nix). */ -{ stdenv, makeSetupHook, curl, unzip, dos2unix, pkgconfig, makeWrapper +{ lib, makeSetupHook, curl, unzip, dos2unix, pkg-config, makeWrapper , lua, mono, dotnetPackages, python , libGL, freetype, openal, SDL2 , zenity }: -with stdenv.lib; +with lib; let path = makeBinPath ([ mono python ] ++ optional (zenity != null) zenity); @@ -62,7 +62,7 @@ in { curl unzip dos2unix - pkgconfig + pkg-config makeWrapper mkdirp mono diff --git a/pkgs/games/openra/default.nix b/pkgs/games/openra/default.nix index 2e8533f7816..22d3c6c879e 100644 --- a/pkgs/games/openra/default.nix +++ b/pkgs/games/openra/default.nix @@ -25,7 +25,7 @@ let lua = pkgs.lua5_1; # It is not necessary to run the game, but it is nicer to be given an error dialog in the case of failure, # rather than having to look to the logs why it is not starting. - inherit (pkgs.gnome3) zenity; + inherit (pkgs.gnome) zenity; }); /* Building a set of engines or mods requires some dependencies as well, diff --git a/pkgs/games/openra/engine.nix b/pkgs/games/openra/engine.nix index 7d2d007d075..adc1bf76e00 100644 --- a/pkgs/games/openra/engine.nix +++ b/pkgs/games/openra/engine.nix @@ -7,17 +7,16 @@ This package could be seen as providing a set of in-tree mods, while the `mod.nix` pacakges provide a single out-of-tree mod. */ -{ stdenv +{ lib, stdenv , packageAttrs , patchEngine , wrapLaunchGame , engine }: -with stdenv.lib; +with lib; stdenv.mkDerivation (recursiveUpdate packageAttrs rec { - name = "${pname}-${version}"; pname = "openra"; version = "${engine.name}-${engine.version}"; diff --git a/pkgs/games/openra/mod.nix b/pkgs/games/openra/mod.nix index 8df5922a441..4d0a18e6334 100644 --- a/pkgs/games/openra/mod.nix +++ b/pkgs/games/openra/mod.nix @@ -6,7 +6,7 @@ The engine is relatively small and quick to build, so this is not much of a problem. Building a mod will result in a wrapper script that starts the mod inside the specified engine. */ -{ stdenv +{ lib, stdenv , packageAttrs , patchEngine , wrapLaunchGame @@ -14,7 +14,7 @@ , engine }: -with stdenv.lib; +with lib; let engineSourceName = engine.src.name or "engine"; diff --git a/pkgs/games/openra/mods.nix b/pkgs/games/openra/mods.nix index 4a79125dc18..cf8cd433c29 100644 --- a/pkgs/games/openra/mods.nix +++ b/pkgs/games/openra/mods.nix @@ -123,6 +123,7 @@ in { src = fetchFromGitHub { owner = "IceReaper"; repo = "OpenRA" ; + # commit does not exist on any branch on the target repository rev = "4e8eab4ca00d1910203c8a103dfd2c002714daa8"; sha256 = "1yyqparf93x8yzy1f46gsymgkj5jls25v2yc7ighr3f7mi3igdvq"; name = "engine"; diff --git a/pkgs/games/openra/packages.nix b/pkgs/games/openra/packages.nix index c09b697771a..2f4c83c7d5a 100644 --- a/pkgs/games/openra/packages.nix +++ b/pkgs/games/openra/packages.nix @@ -15,7 +15,7 @@ let lua = pkgs.lua5_1; # It is not necessary to run the game, but it is nicer to be given an error dialog in the case of failure, # rather than having to look to the logs why it is not starting. - inherit (pkgs.gnome3) zenity; + inherit (pkgs.gnome) zenity; }); /* Building a set of engines or mods requires some dependencies as well, diff --git a/pkgs/games/openrct2/default.nix b/pkgs/games/openrct2/default.nix index 45133be461c..9e79a9005dc 100644 --- a/pkgs/games/openrct2/default.nix +++ b/pkgs/games/openrct2/default.nix @@ -1,23 +1,24 @@ -{ stdenv, fetchFromGitHub +{ lib, stdenv, fetchFromGitHub , SDL2, cmake, curl, duktape, fontconfig, freetype, icu, jansson, libGLU -, libiconv, libpng, libpthreadstubs, libzip, openssl, pkgconfig, speexdsp, zlib +, libiconv, libpng, libpthreadstubs, libzip, nlohmann_json, openssl, pkg-config +, speexdsp, zlib }: let - version = "0.3.0"; + version = "0.3.4"; openrct2-src = fetchFromGitHub { owner = "OpenRCT2"; repo = "OpenRCT2"; rev = "v${version}"; - sha256 = "0xs8pnn3lq30iy76pv42hywsrabapcrrkl597dhjafwh1xaxxj91"; + sha256 = "051dm7bw3l8qnppk5b7xvavl29xfadqn8aa18q49qdy5mjy6qgk4"; }; objects-src = fetchFromGitHub { owner = "OpenRCT2"; repo = "objects"; - rev = "v1.0.16"; - sha256 = "1xz50ghiqj9rm0m6d65j09ich6dlhyj36zah6zvmmzr4kg6svnk5"; + rev = "v1.0.21"; + sha256 = "0r2vp2y67jc1mpfl4j83sx5khvvaddx7xs26ppkigmr2d1xpxgr7"; }; title-sequences-src = fetchFromGitHub { @@ -28,14 +29,14 @@ let }; in stdenv.mkDerivation { - inherit version; pname = "openrct2"; + inherit version; src = openrct2-src; nativeBuildInputs = [ cmake - pkgconfig + pkg-config ]; buildInputs = [ @@ -51,29 +52,28 @@ stdenv.mkDerivation { libpng libpthreadstubs libzip + nlohmann_json openssl speexdsp zlib ]; - postUnpack = '' - cp -r ${objects-src} $sourceRoot/data/object - cp -r ${title-sequences-src} $sourceRoot/data/sequence - ''; - cmakeFlags = [ "-DDOWNLOAD_OBJECTS=OFF" "-DDOWNLOAD_TITLE_SEQUENCES=OFF" ]; - enableParallelBuilding = true; + postUnpack = '' + cp -r ${objects-src} $sourceRoot/data/object + cp -r ${title-sequences-src} $sourceRoot/data/sequence + ''; preFixup = "ln -s $out/share/openrct2 $out/bin/data"; - meta = with stdenv.lib; { - description = "An open source re-implementation of RollerCoaster Tycoon 2 (original game required)"; + meta = with lib; { + description = "Open source re-implementation of RollerCoaster Tycoon 2 (original game required)"; homepage = "https://openrct2.io/"; - license = licenses.gpl3; + license = licenses.gpl3Only; platforms = platforms.linux; maintainers = with maintainers; [ oxzi ]; }; diff --git a/pkgs/games/openrw/default.nix b/pkgs/games/openrw/default.nix index b53850a8743..4064023fafd 100644 --- a/pkgs/games/openrw/default.nix +++ b/pkgs/games/openrw/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, cmake, sfml, libGLU, libGL, bullet, glm, libmad, xlibsWrapper, openal +{ lib, stdenv, fetchgit, cmake, sfml, libGLU, libGL, bullet, glm, libmad, xlibsWrapper, openal , SDL2, boost, ffmpeg_3, Cocoa, OpenAL }: stdenv.mkDerivation { @@ -16,9 +16,9 @@ stdenv.mkDerivation { buildInputs = [ sfml libGLU libGL bullet glm libmad xlibsWrapper openal SDL2 boost ffmpeg_3 - ] ++ stdenv.lib.optionals stdenv.isDarwin [ OpenAL Cocoa ]; + ] ++ lib.optionals stdenv.isDarwin [ OpenAL Cocoa ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Unofficial open source recreation of the classic Grand Theft Auto III game executable"; homepage = "https://github.com/rwengine/openrw"; license = licenses.gpl3; diff --git a/pkgs/games/openspades/default.nix b/pkgs/games/openspades/default.nix index b00524461a4..58ac3f8df79 100644 --- a/pkgs/games/openspades/default.nix +++ b/pkgs/games/openspades/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchFromGitHub, fetchpatch, cmake, unzip, zip, file +{ lib, stdenv, fetchurl, fetchFromGitHub, fetchpatch, cmake, unzip, zip, file , curl, glew , libGL, SDL2, SDL2_image, zlib, freetype, imagemagick , openal , opusfile, libogg , Cocoa @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { buildInputs = [ freetype SDL2 SDL2_image libGL zlib curl glew opusfile openal libogg - ] ++ stdenv.lib.optionals stdenv.hostPlatform.isDarwin [ + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ Cocoa ]; @@ -55,11 +55,9 @@ stdenv.mkDerivation rec { cp $notoFont $out/share/games/openspades/Resources/ ''; - enableParallelBuilding = true; - NIX_CFLAGS_LINK = "-lopenal"; - meta = with stdenv.lib; { + meta = with lib; { description = "A compatible client of Ace of Spades 0.75"; homepage = "https://github.com/yvt/openspades/"; license = licenses.gpl3; diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix index bab4e510e7d..5c77e8a2c18 100644 --- a/pkgs/games/openttd/default.nix +++ b/pkgs/games/openttd/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchzip, pkgconfig, which, SDL2, libpng, zlib, xz, freetype, fontconfig, libxdg_basedir +{ lib, stdenv, fetchurl, fetchzip, cmake, SDL2, libpng, zlib, xz, freetype, fontconfig , withOpenGFX ? true, withOpenSFX ? true, withOpenMSX ? true , withFluidSynth ? true, audioDriver ? "alsa", fluidsynth, soundfont-fluid, procps , writeScriptBin, makeWrapper, runtimeShell @@ -6,18 +6,18 @@ let opengfx = fetchzip { - url = "https://cdn.openttd.org/opengfx-releases/0.6.0/opengfx-0.6.0-all.zip"; - sha256 = "1zg871j6kv7r0aqwca68d9kdf3smclgzan8hj76vj4fyfkykh173"; + url = "https://cdn.openttd.org/opengfx-releases/0.6.1/opengfx-0.6.1-all.zip"; + sha256 = "sha256-DeeIlLcmPeMZ0ju9DwXUInnQp2rWu60besDVto4+lDQ="; }; opensfx = fetchzip { - url = "https://cdn.openttd.org/opensfx-releases/0.2.3/opensfx-0.2.3-all.zip"; - sha256 = "1bb167kszdd6dqbcdjrxxwab6b7y7jilhzi3qijdhprpm5gf1lp3"; + url = "https://cdn.openttd.org/opensfx-releases/1.0.1/opensfx-1.0.1-all.zip"; + sha256 = "sha256-U1PIKbMZHRJ0Z9Cp2RqqCMhD1xRyudoNHAYIZyotxVk="; }; openmsx = fetchzip { - url = "https://cdn.openttd.org/openmsx-releases/0.3.1/openmsx-0.3.1-all.zip"; - sha256 = "0qnmfzz0v8vxrrvxnm7szphrlrlvhkwn3y92b4iy0b4b6yam0yd4"; + url = "https://cdn.openttd.org/openmsx-releases/0.4.0/openmsx-0.4.0-all.zip"; + sha256 = "sha256-Ok6W+iqi4SP7cD4HUQERrAysvVibnN7Q4/tkugffDgQ="; }; playmidi = writeScriptBin "playmidi" '' @@ -29,16 +29,16 @@ let in stdenv.mkDerivation rec { pname = "openttd"; - version = "1.10.3"; + version = "1.11.2"; src = fetchurl { url = "https://cdn.openttd.org/openttd-releases/${version}/${pname}-${version}-source.tar.xz"; - sha256 = "0fxmfz1mm95a2x0rnzfff9wb8q57w0cvsdd0z7agdcbyakph25n1"; + sha256 = "sha256-D7qTWiqBX0/ozW3C4q4z9ydpU4cxIo+EimOzpulILm0="; }; - nativeBuildInputs = [ pkgconfig which makeWrapper ]; - buildInputs = [ SDL2 libpng xz zlib freetype fontconfig libxdg_basedir ] - ++ stdenv.lib.optionals withFluidSynth [ fluidsynth soundfont-fluid ]; + nativeBuildInputs = [ cmake makeWrapper ]; + buildInputs = [ SDL2 libpng xz zlib freetype fontconfig ] + ++ lib.optionals withFluidSynth [ fluidsynth soundfont-fluid ]; prefixKey = "--prefix-dir="; @@ -46,35 +46,31 @@ stdenv.mkDerivation rec { "--without-liblzo2" ]; - makeFlags = [ "INSTALL_PERSONAL_DIR=" ]; - postInstall = '' - mv $out/games/ $out/bin - - ${stdenv.lib.optionalString withOpenGFX '' - cp ${opengfx}/* $out/share/games/openttd/baseset + ${lib.optionalString withOpenGFX '' + cp ${opengfx}/*.tar $out/share/games/openttd/baseset ''} mkdir -p $out/share/games/openttd/data - ${stdenv.lib.optionalString withOpenSFX '' - cp ${opensfx}/*.{obs,cat} $out/share/games/openttd/data + ${lib.optionalString withOpenSFX '' + cp ${opensfx}/*.tar $out/share/games/openttd/data ''} mkdir $out/share/games/openttd/baseset/openmsx - ${stdenv.lib.optionalString withOpenMSX '' - cp ${openmsx}/*.{obm,mid} $out/share/games/openttd/baseset/openmsx + ${lib.optionalString withOpenMSX '' + cp ${openmsx}/*.tar $out/share/games/openttd/baseset/openmsx ''} - ${stdenv.lib.optionalString withFluidSynth '' + ${lib.optionalString withFluidSynth '' wrapProgram $out/bin/openttd \ --add-flags -m \ --add-flags extmidi:cmd=${playmidi}/bin/playmidi ''} ''; - meta = with stdenv.lib; { + meta = with lib; { description = ''Open source clone of the Microprose game "Transport Tycoon Deluxe"''; longDescription = '' OpenTTD is a transportation economics simulator. In single player mode, diff --git a/pkgs/games/openttd/grfcodec.nix b/pkgs/games/openttd/grfcodec.nix new file mode 100644 index 00000000000..544cf4f06c4 --- /dev/null +++ b/pkgs/games/openttd/grfcodec.nix @@ -0,0 +1,28 @@ +{ stdenv, lib, fetchFromGitHub, boost, cmake, git }: + +stdenv.mkDerivation rec { + pname = "openttd-grfcodec"; + version = "unstable-2021-03-10"; + + src = fetchFromGitHub { + owner = "OpenTTD"; + repo = "grfcodec"; + rev = "045774dee7cab1a618a3e0d9b39bff78a12b6efa"; + sha256 = "0b4xnnkqc01d3r834lhkq744ymar6c8iyxk51wc4c7hvz0vp9vmy"; + }; + + buildInputs = [boost]; + nativeBuildInputs = [cmake git]; + + installPhase = '' + mkdir -p $out/bin + cp -a grfcodec grfid grfstrip nforenum $out/bin/ + ''; + + meta = with lib; { + description = "Low-level (dis)assembler and linter for OpenTTD GRF files"; + homepage = "http://openttd.org/"; + license = licenses.gpl2; + maintainers = with maintainers; [ ToxicFrog ]; + }; +} diff --git a/pkgs/games/openttd/jgrpp.nix b/pkgs/games/openttd/jgrpp.nix index 83a8f927694..3dcb621db4b 100644 --- a/pkgs/games/openttd/jgrpp.nix +++ b/pkgs/games/openttd/jgrpp.nix @@ -2,12 +2,12 @@ openttd.overrideAttrs (oldAttrs: rec { pname = "openttd-jgrpp"; - version = "0.34.4"; + version = "0.41.0"; src = fetchFromGitHub rec { owner = "JGRennison"; repo = "OpenTTD-patches"; rev = "jgrpp-${version}"; - sha256 = "125mgia5hgcsn8314xyiip3z8y23rc3kdv7jczbncqlzsc75624v"; + sha256 = "sha256-DrtxqXyeqA+X4iLTvTSPFDKDoLCyVd458+nJWc+9MF4="; }; }) diff --git a/pkgs/games/openttd/nml.nix b/pkgs/games/openttd/nml.nix new file mode 100644 index 00000000000..094330faffb --- /dev/null +++ b/pkgs/games/openttd/nml.nix @@ -0,0 +1,22 @@ +{ stdenv, lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "openttd-nml"; + version = "0.5.3"; + + src = fetchFromGitHub { + owner = "OpenTTD"; + repo = "nml"; + rev = version; + sha256 = "0kfnkshff3wrxsj1wpfbbw2mmgww2q80v63p5d2pp1f38x8j33w9"; + }; + + propagatedBuildInputs = with python3Packages; [ply pillow]; + + meta = with lib; { + description = "Compiler for OpenTTD NML files"; + homepage = "http://openttdcoop.org/"; + license = licenses.gpl2; + maintainers = with maintainers; [ ToxicFrog ]; + }; +} diff --git a/pkgs/games/opentyrian/default.nix b/pkgs/games/opentyrian/default.nix index 9872a3ee05f..43c8e08c79f 100644 --- a/pkgs/games/opentyrian/default.nix +++ b/pkgs/games/opentyrian/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, fetchzip, SDL, SDL_net}: +{ lib, stdenv, fetchurl, fetchzip, SDL, SDL_net }: stdenv.mkDerivation rec { pname = "opentyrian"; @@ -31,6 +31,6 @@ stdenv.mkDerivation rec { description = ''Open source port of the game "Tyrian"''; homepage = "https://bitbucket.org/opentyrian/opentyrian"; # This does not account of Tyrian data. - # license = stdenv.lib.licenses.gpl2; + # license = lib.licenses.gpl2; }; } diff --git a/pkgs/games/openxcom/default.nix b/pkgs/games/openxcom/default.nix index 3ec18640054..8c115e9b312 100644 --- a/pkgs/games/openxcom/default.nix +++ b/pkgs/games/openxcom/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchFromGitHub, cmake, libGLU, libGL, zlib, openssl, libyamlcpp, boost +{lib, stdenv, fetchFromGitHub, cmake, libGLU, libGL, zlib, openssl, libyamlcpp, boost , SDL, SDL_image, SDL_mixer, SDL_gfx }: let version = "1.0.0.2019.10.18"; in @@ -19,9 +19,9 @@ stdenv.mkDerivation { description = "Open source clone of UFO: Enemy Unknown"; homepage = "https://openxcom.org"; repositories.git = "https://github.com/SupSuper/OpenXcom.git"; - maintainers = [ stdenv.lib.maintainers.cpages ]; - platforms = stdenv.lib.platforms.linux; - license = stdenv.lib.licenses.gpl3; + maintainers = [ lib.maintainers.cpages ]; + platforms = lib.platforms.linux; + license = lib.licenses.gpl3; }; } diff --git a/pkgs/games/openxray/default.nix b/pkgs/games/openxray/default.nix index fe2e978c4cc..58c82aec365 100644 --- a/pkgs/games/openxray/default.nix +++ b/pkgs/games/openxray/default.nix @@ -1,16 +1,16 @@ -{ stdenv, fetchFromGitHub, cmake, glew, freeimage, liblockfile +{ lib, stdenv, fetchFromGitHub, cmake, glew, freeimage, liblockfile , openal, libtheora, SDL2, lzo, libjpeg, libogg, tbb -, pcre, makeWrapper }: +, pcre, makeWrapper, fetchpatch }: let - version = "730-july-preview"; + version = "822-december-preview"; src = fetchFromGitHub { owner = "OpenXRay"; repo = "xray-16"; rev = version; - sha256 = "1nish3sbpk0hsag7r4nyx8j6pl9mlgx58v8dhzg2vwj2q32isyb2"; fetchSubmodules = true; + sha256 = "06f3zjnib7hipyl3hnc6mwcj9f50kbwn522wzdjydz8qgdg60h3m"; }; # https://github.com/OpenXRay/xray-16/issues/518 @@ -20,14 +20,14 @@ let inherit src; - postUnpack = "sourceRoot+=/Externals/cryptopp"; + sourceRoot = "source/Externals/cryptopp"; makeFlags = [ "PREFIX=${placeholder "out"}" ]; enableParallelBuilding = true; doCheck = true; - meta = with stdenv.lib; { + meta = with lib; { description = "Crypto++, a free C++ class library of cryptographic schemes"; homepage = "https://cryptopp.com/"; license = with licenses; [ boost publicDomain ]; @@ -35,18 +35,30 @@ let }; }; in stdenv.mkDerivation rec { - pname = "OpenXRay"; + pname = "openxray"; inherit version src; - hardeningDisable = [ "format" ]; + # TODO https://github.com/OpenXRay/GameSpy/pull/6, check if merged in version > 822 + # Fixes format hardening + patches = [ + (fetchpatch { + url = "https://github.com/OpenXRay/GameSpy/pull/6/commits/155af876281f5d94f0142886693314d97deb2d4c.patch"; + sha256 = "1l0vcgvzzx8n56shpblpfdhvpr6c12fcqf35r0mflaiql8q7wn88"; + stripLen = 1; + extraPrefix = "Externals/GameSpy/"; + }) + ]; + cmakeFlags = [ "-DCMAKE_INCLUDE_PATH=${cryptopp}/include/cryptopp" ]; buildInputs = [ glew freeimage liblockfile openal cryptopp libtheora SDL2 lzo libjpeg libogg tbb pcre ]; + nativeBuildInputs = [ cmake makeWrapper ]; + # https://github.com/OpenXRay/xray-16/issues/786 preConfigure = '' substituteInPlace src/xrCore/xrCore.cpp \ --replace /usr/share $out/share @@ -58,13 +70,13 @@ in stdenv.mkDerivation rec { --prefix LD_LIBRARY_PATH : $out/lib ''; - meta = with stdenv.lib; { - description = "X-Ray Engine 1.6 expansion. Original version was used in S.T.A.L.K.E.R.: Call of Pripyat"; + meta = with lib; { + description = "Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World"; homepage = src.meta.homepage; license = licenses.unfree // { url = "https://github.com/OpenXRay/xray-16/blob/xd_dev/License.txt"; }; - maintainers = [ maintainers.gnidorah ]; + maintainers = with maintainers; [ OPNA2608 ]; platforms = [ "x86_64-linux" "i686-linux" ]; }; } diff --git a/pkgs/games/orthorobot/default.nix b/pkgs/games/orthorobot/default.nix index a2a66f6838b..c168af81ad6 100644 --- a/pkgs/games/orthorobot/default.nix +++ b/pkgs/games/orthorobot/default.nix @@ -1,9 +1,15 @@ -{ stdenv, fetchurl, fetchFromGitHub, zip, love, lua, makeWrapper, makeDesktopItem }: - -let +{ lib, stdenv, fetchurl, fetchFromGitHub, zip, love, lua, makeWrapper, makeDesktopItem }: +stdenv.mkDerivation rec { pname = "orthorobot"; version = "1.1.1"; + src = fetchFromGitHub { + owner = "Stabyourself"; + repo = pname; + rev = "v${version}"; + sha256 = "1ca6hvd890kxmamsmsfiqzw15ngsvb4lkihjb6kabgmss61a6s5p"; + }; + icon = fetchurl { url = "http://stabyourself.net/images/screenshots/orthorobot-5.png"; sha256 = "13fa4divdqz4vpdij1lcs5kf6w2c4jm3cc9q6bz5h7lkng31jzi6"; @@ -19,25 +25,12 @@ let categories = "Game;"; }; -in - -stdenv.mkDerivation { - name = "${pname}-${version}"; - - src = fetchFromGitHub { - owner = "Stabyourself"; - repo = pname; - rev = "v${version}"; - sha256 = "1ca6hvd890kxmamsmsfiqzw15ngsvb4lkihjb6kabgmss61a6s5p"; - }; - nativeBuildInputs = [ makeWrapper ]; buildInputs = [ lua love zip ]; - phases = [ "unpackPhase" "installPhase" ]; + dontBuild = true; - installPhase = - '' + installPhase = '' mkdir -p $out/bin $out/share/games/lovegames $out/share/applications zip -9 -r ${pname}.love ./* mv ${pname}.love $out/share/games/lovegames/${pname}.love @@ -46,12 +39,11 @@ stdenv.mkDerivation { chmod +x $out/bin/${pname} ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Recharge the robot"; maintainers = with maintainers; [ leenaars ]; platforms = platforms.linux; license = licenses.free; downloadPage = "http://stabyourself.net/orthorobot/"; }; - } diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix index 074c24389a1..55f9bfb75c3 100644 --- a/pkgs/games/osu-lazer/default.nix +++ b/pkgs/games/osu-lazer/default.nix @@ -1,31 +1,38 @@ { lib, stdenv, fetchFromGitHub, fetchurl, makeWrapper, makeDesktopItem, linkFarmFromDrvs -, dotnet-sdk, dotnet-netcore, dotnetPackages -, ffmpeg_4, alsaLib, SDL2, lttng-ust, numactl, alsaPlugins +, dotnetCorePackages, dotnetPackages, cacert +, ffmpeg_4, alsa-lib, SDL2, lttng-ust, numactl, alsa-plugins }: let runtimeDeps = [ - ffmpeg_4 alsaLib SDL2 lttng-ust numactl + ffmpeg_4 alsa-lib SDL2 lttng-ust numactl ]; + dotnet-sdk = dotnetCorePackages.sdk_5_0; + dotnet-net = dotnetCorePackages.net_5_0; + # https://docs.microsoft.com/en-us/dotnet/core/rid-catalog#using-rids runtimeId = "linux-x64"; in stdenv.mkDerivation rec { pname = "osu-lazer"; - version = "2020.820.0"; + version = "2021.720.0"; src = fetchFromGitHub { owner = "ppy"; repo = "osu"; rev = version; - sha256 = "0vszw0f5x0syshn8bnsbskxvknwpgbnm31kxwh1mfdr7pnxvw922"; + sha256 = "I7UkbyH2i218d5RCq4al9Gr1C0MX339jFOeyKrKQ3b0="; }; patches = [ ./bypass-tamper-detection.patch ]; patchFlags = [ "--binary" "-p1" ]; - nativeBuildInputs = [ dotnet-sdk dotnetPackages.Nuget makeWrapper ]; + nativeBuildInputs = [ + dotnet-sdk dotnetPackages.Nuget makeWrapper + # FIXME: Without `cacert`, we will suffer from https://github.com/NuGet/Announcements/issues/49 + cacert + ]; nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix { fetchNuGet = { name, version, sha256 }: fetchurl { @@ -40,7 +47,7 @@ in stdenv.mkDerivation rec { export HOME=$(mktemp -d) export DOTNET_CLI_TELEMETRY_OPTOUT=1 - export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 + export DOTNET_NOLOGO=1 nuget sources Add -Name nixos -Source "$PWD/nixos" nuget init "$nugetDeps" "$PWD/nixos" @@ -49,7 +56,7 @@ in stdenv.mkDerivation rec { mkdir -p $HOME/.nuget/NuGet cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet - dotnet restore --source nixos osu.Desktop + dotnet restore --source "$PWD/nixos" osu.Desktop --runtime ${runtimeId} runHook postConfigure ''; @@ -59,6 +66,7 @@ in stdenv.mkDerivation rec { dotnet build osu.Desktop \ --no-restore \ --configuration Release \ + --runtime ${runtimeId} \ -p:Version=${version} runHook postBuild ''; @@ -69,13 +77,12 @@ in stdenv.mkDerivation rec { dotnet publish osu.Desktop \ --no-build \ --configuration Release \ + --runtime ${runtimeId} \ --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}" \ + --set DOTNET_ROOT "${dotnet-net}" \ --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 @@ -93,6 +100,13 @@ in stdenv.mkDerivation rec { runHook postInstall ''; + fixupPhase = '' + runHook preFixup + cp -f ${./osu.runtimeconfig.json} "$out/lib/osu/osu!.runtimeconfig.json" + ln -sft $out/lib/osu ${SDL2}/lib/libSDL2${stdenv.hostPlatform.extensions.sharedLibrary} + runHook postFixup + ''; + # Strip breaks the executable. dontStrip = true; diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix index 53f933d143b..d2c19b08d03 100644 --- a/pkgs/games/osu-lazer/deps.nix +++ b/pkgs/games/osu-lazer/deps.nix @@ -1,8 +1,8 @@ { fetchNuGet }: [ (fetchNuGet { - name = "Dapper"; - version = "2.0.35"; - sha256 = "0465i2p5kjj0hmadyw0xrpn43zpc4bnbid9mg561739fyjyjwmfm"; + name = "AutoMapper"; + version = "10.1.1"; + sha256 = "1l1p9g7f7finr8laklbm7h2c45k0swl47iq0ik68js5s6pzvd6f8"; }) (fetchNuGet { name = "DeltaCompressionDotNet"; @@ -11,13 +11,13 @@ }) (fetchNuGet { name = "DiffPlex"; - version = "1.6.3"; - sha256 = "0yi72afddddz0s8phx855rnjrga7n51bcma10dc91l0ffcwf5xwz"; + version = "1.7.0"; + sha256 = "09a8hkbx99iwikfl8war629945yv7i8llj9480dbc4kyp6qqlr00"; }) (fetchNuGet { name = "DiscordRichPresence"; - version = "1.0.150"; - sha256 = "0qmbi4sccia3w80q8xfvj3bw62nvz047wq198n2b2aflkf47bq79"; + version = "1.0.175"; + sha256 = "180sax976327d70qbinv07f65g3w2zbw80n49hckg8wd4rw209vd"; }) (fetchNuGet { name = "FFmpeg.AutoGen"; @@ -25,244 +25,274 @@ sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv"; }) (fetchNuGet { + name = "Fody"; + version = "6.5.2"; + sha256 = "0vq97mkfk5ijinwnhpkm212y69ik6cd5x0n61ssyxmz50q1vp84f"; + }) + (fetchNuGet { + name = "HidSharpCore"; + version = "1.2.1.1"; + sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; + }) + (fetchNuGet { + name = "HtmlAgilityPack"; + version = "1.11.34"; + sha256 = "078dad719hkv806qgj1f0hkn7di5zvvm594awfn5bsgb9afq94a7"; + }) + (fetchNuGet { name = "Humanizer"; - version = "2.8.26"; - sha256 = "11kddzyzqpq9gkz0hmrblq494nh86va6wxx6z89xi6w1f4vj15ak"; + version = "2.11.10"; + sha256 = "057pqzvdxsbpnnc5f1xkqg7j3ywp68ggia3w74fgqp0158dm6rdk"; }) (fetchNuGet { name = "Humanizer.Core"; - version = "2.2.0"; - sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5"; + version = "2.11.10"; + sha256 = "0z7kmd5rh1sb6izq0vssk6c2p63n00xglk45s7ga9z18z9aaskxv"; }) (fetchNuGet { name = "Humanizer.Core"; - version = "2.8.26"; - sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm"; + version = "2.2.0"; + sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5"; }) (fetchNuGet { name = "Humanizer.Core.af"; - version = "2.8.26"; - sha256 = "0znrq4frlkq1qi20301hlzxa6mdc275fa1i1a1i8ldgk9cjq94k9"; + version = "2.11.10"; + sha256 = "18fiixfvjwn8m1i8z2cz4aqykzylvfdqmmpwc2zcd8sr1a2xm86z"; }) (fetchNuGet { name = "Humanizer.Core.ar"; - version = "2.8.26"; - sha256 = "1hi7mln48p1nmxlgdq725s4cvla9nlkvbmrsql1rfjjlsy8hn6n7"; + version = "2.11.10"; + sha256 = "009fpm4jd325izm82ipipsvlwd31824gvskda68bdwi4yqmycz4p"; }) (fetchNuGet { name = "Humanizer.Core.az"; - version = "2.8.26"; - sha256 = "0av7ycrqwvmikqia3z3qkp9967zilrhayny17zkm0d0mnjq62vs6"; + version = "2.11.10"; + sha256 = "144b9diwprabxwgi5a98k5iy95ajq4p7356phdqi2lhzwbz7b6a9"; }) (fetchNuGet { name = "Humanizer.Core.bg"; - version = "2.8.26"; - sha256 = "13j6zk2cmk7a119azxlpjhfwykrzk0vkf5a799fb2fzkvhnj4hkg"; + version = "2.11.10"; + sha256 = "1b9y40gvq2kwnj5wa40f8cbywv79jkajcwknagrgr27sykpfadl2"; }) (fetchNuGet { name = "Humanizer.Core.bn-BD"; - version = "2.8.26"; - sha256 = "0h619sksggfi7dnaycz6bj9aiqdgn0d8dpgjgdl73crw52lr70p9"; + version = "2.11.10"; + sha256 = "18pn4jcp36ygcx283l3fi9bs5d7q1a384b72a10g5kl0qckn88ay"; }) (fetchNuGet { name = "Humanizer.Core.cs"; - version = "2.8.26"; - sha256 = "11bh3k15388bi5wizaihnwqk7wb4n7q636fqjllwdhjggqrsc3f6"; + version = "2.11.10"; + sha256 = "03crw1lnzp32v2kcdmllkrsqh07r4ggw9gyc96qw7cv0nk5ch1h8"; }) (fetchNuGet { name = "Humanizer.Core.da"; - version = "2.8.26"; - sha256 = "09b3x3bw3cgby9qvaccnqz2y6d8gl3497dh7q0dk1iznsxbk4x4m"; + version = "2.11.10"; + sha256 = "0glby12zra3y3yiq4cwq1m6wjcjl8f21v8ghi6s20r48glm8vzy9"; }) (fetchNuGet { name = "Humanizer.Core.de"; - version = "2.8.26"; - sha256 = "1pyp2a9my20wlwjjzv563kshl9fpjb2kd4cw41l4wvsz1bsq3l22"; + version = "2.11.10"; + sha256 = "0a35xrm1f9p74x0fkr52bw9sd54vdy9d5rnvf565yh8ww43xfk7b"; }) (fetchNuGet { name = "Humanizer.Core.el"; - version = "2.8.26"; - sha256 = "0v3sdcxca4dam1y5yjh9n6v711ys0zdv38hr4kij35s6277ls6lb"; + version = "2.11.10"; + sha256 = "0bhwwdx5vc48zikdsbrkghdhwahxxc2lkff0yaa5nxhbhasl84h8"; }) (fetchNuGet { name = "Humanizer.Core.es"; - version = "2.8.26"; - sha256 = "0wh9qvqf80cngwsz2jnrsjpmaax4xa2xp8bbk5xs480kp071z37q"; + version = "2.11.10"; + sha256 = "07bw07qy8nyzlgxl7l2lxv9f78qmkfppgzx7iyq5ikrcnpvc7i9q"; }) (fetchNuGet { name = "Humanizer.Core.fa"; - version = "2.8.26"; - sha256 = "00v56ddjfv6sr6w5246gn5z0padwswvnngp8mdl7gjfg5ycmbkl1"; + version = "2.11.10"; + sha256 = "00d4hc1pfmhfkc5wmx9p7i00lgi4r0k6wfcns9kl1syjxv3bs5f2"; }) (fetchNuGet { name = "Humanizer.Core.fi-FI"; - version = "2.8.26"; - sha256 = "1pgs0j5ri50a6vhljplhrlc8jj1hrd9ggxkj60d9v5kk9xibzzyd"; + version = "2.11.10"; + sha256 = "0z4is7pl5jpi4pfdvd2zvx5mp00bj26d9l9ksqyc0liax8nfzyik"; }) (fetchNuGet { name = "Humanizer.Core.fr"; - version = "2.8.26"; - sha256 = "0kkhgy3yn8vfqlx3dhb9m3cazkgfxarknam4macng9y17l7wj83m"; + version = "2.11.10"; + sha256 = "0sybpg6kbbhrnk7gxcdk7ppan89lsfqsdssrg4i1dm8w48wgicap"; }) (fetchNuGet { name = "Humanizer.Core.fr-BE"; - version = "2.8.26"; - sha256 = "13spcx07hph366qk073pz63s56nadaac7l4mr4a66gbpqd3814kb"; + version = "2.11.10"; + sha256 = "1s25c86nl9wpsn6fydzwv4rfmdx5sm0vgyd7xhw5344k20gazvhv"; }) (fetchNuGet { name = "Humanizer.Core.he"; - version = "2.8.26"; - sha256 = "1ccn82aj3rhrhsa3kvkrmjw0p687icxlfja8ngbh7sby4cszx9bk"; + version = "2.11.10"; + sha256 = "1nx61qkjd6p9r36dmnm4942khyv35fpdqmb2w69gz6463g4d7z29"; }) (fetchNuGet { name = "Humanizer.Core.hr"; - version = "2.8.26"; - sha256 = "12ii79bhai3kv7zr3k9k9dh569r6p3m4l4gj25cln2isr4wdi5r9"; + version = "2.11.10"; + sha256 = "02jhcyj72prkqsjxyilv04drm0bknqjh2r893jlbsfi9vjg2zay3"; }) (fetchNuGet { name = "Humanizer.Core.hu"; - version = "2.8.26"; - sha256 = "0cibbdxiqhwrjmxlr805mg3l9v0fl2ydx4m50608rkysjq6vxx7y"; + version = "2.11.10"; + sha256 = "0yb6ly4s1wdyaf96h2dvifqyb575aid6irwl3qx8gcvrs0xpcxdp"; }) (fetchNuGet { name = "Humanizer.Core.hy"; - version = "2.8.26"; - sha256 = "15aikm04f74abm4ak8rvnnkrlcz155gibn1y81pbgsyn7yrh84v3"; + version = "2.11.10"; + sha256 = "0b7vaqldn7ca3xi4gkvkhjk900kw2zwb0m0d20bg45a83zdlx79c"; }) (fetchNuGet { name = "Humanizer.Core.id"; - version = "2.8.26"; - sha256 = "1i9gpzdfhmbvrqg858kqz5461sp3sh60g16dmcmyi1ik0qlspijn"; + version = "2.11.10"; + sha256 = "1yqxirknwga4j18k7ixwgqxlv20479afanhariy3c5mkwvglsr9b"; }) (fetchNuGet { name = "Humanizer.Core.it"; - version = "2.8.26"; - sha256 = "01j7qskmqcxsakbx3bkxcjyzrh6nxi2v6kfzsfb0vf980qqq331l"; + version = "2.11.10"; + sha256 = "1skwgj5a6kkx3pm9w4f29psch69h1knmwbkdydlmx13h452p1w4l"; }) (fetchNuGet { name = "Humanizer.Core.ja"; - version = "2.8.26"; - sha256 = "07d19ns4a4pa2k4vdc1af7wj10gaflq1ny4mx6y574afkdi8v6d5"; + version = "2.11.10"; + sha256 = "1wpc3yz9v611dqbw8j5yimk8dpz0rvpnls4rmlnp1m47gavpj8x4"; + }) + (fetchNuGet { + name = "Humanizer.Core.ko-KR"; + version = "2.11.10"; + sha256 = "1df0kd7vwdc3inxfkb3wsl1aw3d6vbab99dzh08p4m04g7i2c1a9"; + }) + (fetchNuGet { + name = "Humanizer.Core.ku"; + version = "2.11.10"; + sha256 = "17b66xfgwjr0sffx0hw4c6l90h43z7ffylrs26hgav0n110q2nwg"; }) (fetchNuGet { name = "Humanizer.Core.lv"; - version = "2.8.26"; - sha256 = "1pm64sj65nmngyfa3hjcw67icfmlzr232hmgpnw7306sb7dxmnfv"; + version = "2.11.10"; + sha256 = "0czxx4b9g0w7agykdl82wds09zasa9y58dmgjm925amlfz4wkyzs"; }) (fetchNuGet { name = "Humanizer.Core.ms-MY"; - version = "2.8.26"; - sha256 = "1yx4cc023kc4k14abk2ycmjy6y2xaknaz4zria7xsadf0fabd1jc"; + version = "2.11.10"; + sha256 = "0kix95nbw94fx0dziyz80y59i7ii7d21b63f7f94niarljjq36i3"; }) (fetchNuGet { name = "Humanizer.Core.mt"; - version = "2.8.26"; - sha256 = "0iai35pzka9g6c3sgswki06fk6gdnq8kc88wyb4pcciivazz31px"; + version = "2.11.10"; + sha256 = "1rwy6m22pq65gxn86xlr9lv818fp5kb0wz98zxxfljc2iviw1f4p"; }) (fetchNuGet { name = "Humanizer.Core.nb"; - version = "2.8.26"; - sha256 = "0xprhiyjyq6mpha2lrav59n1f48508ddvm9nmdk5sm5k26ff3l90"; + version = "2.11.10"; + sha256 = "0ra2cl0avvv4sylha7z76jxnb4pdiqfbpr5m477snr04dsjxd9q9"; }) (fetchNuGet { name = "Humanizer.Core.nb-NO"; - version = "2.8.26"; - sha256 = "160c98wfh7d2xlvlra4x5rdj4klgcjwcy3gkb4ipg655byn2m1j2"; + version = "2.11.10"; + sha256 = "1qszib03pvmjkrg8za7jjd2vzrs9p4fn2rmy82abnzldkhvifipq"; }) (fetchNuGet { name = "Humanizer.Core.nl"; - version = "2.8.26"; - sha256 = "067pqm4i1mk83fqqr0bvzrchrvxwdnff18z3djgagclh1i4xqlvk"; + version = "2.11.10"; + sha256 = "1i9bvy0i2yyasl9mgxiiwrkmfpm2c53d3wwdp9270r6120sxyy63"; }) (fetchNuGet { name = "Humanizer.Core.pl"; - version = "2.8.26"; - sha256 = "1r1bbqb990war1hiag5f88yxw0k9jiid1ihb4s5bc1lzs3vfsb6x"; + version = "2.11.10"; + sha256 = "0kggh4wgcic7wzgxy548n6w61schss2ccf9kz8alqshfi42xifby"; }) (fetchNuGet { name = "Humanizer.Core.pt"; - version = "2.8.26"; - sha256 = "1bik0vjjdzw51yl11ng9gsi3ihz50ibwh1gdhh2vd13jxjzb512p"; + version = "2.11.10"; + sha256 = "09j90s8x1lpvhfiy3syfnj8slkgcacf3xjy3pnkgxa6g4mi4f4bd"; }) (fetchNuGet { name = "Humanizer.Core.ro"; - version = "2.8.26"; - sha256 = "12f2hry6x1p1mgx6g4kpig2jpybx52ibghvhdhjbbfhy32gv8dr0"; + version = "2.11.10"; + sha256 = "1jgidmqfly91v1k22gn687mfql5bz7gjzp1aapi93vq5x635qssy"; }) (fetchNuGet { name = "Humanizer.Core.ru"; - version = "2.8.26"; - sha256 = "1hri12kwymzvdqcr66l8yiqiw3pmf9fk492z10yqljm576kyshgg"; + version = "2.11.10"; + sha256 = "13mmlh0ibxfyc85xrz3vx4mcg56mkzqql184iwdryq94p0g5ahil"; }) (fetchNuGet { name = "Humanizer.Core.sk"; - version = "2.8.26"; - sha256 = "07jfgk67axw97b85dn4bwpjwf3swd74j9hdd870qps12xfp98i9j"; + version = "2.11.10"; + sha256 = "04ja06y5jaz1jwkwn117wx9cib04gpbi0vysn58a8sd5jrxmxai5"; }) (fetchNuGet { name = "Humanizer.Core.sl"; - version = "2.8.26"; - sha256 = "060xbzwb7p9ypbqfklih2zal2rh6h55gq4hv3i6alvlbd3vsx29n"; + version = "2.11.10"; + sha256 = "05hxk9v3a7fn7s4g9jp5zxk2z6a33b9fkavyb1hjqnl2i37q2wja"; }) (fetchNuGet { name = "Humanizer.Core.sr"; - version = "2.8.26"; - sha256 = "0i2c24qmqnhp85b088qlbagxd48hcl0v1ly4m7hfbvx5s7fg8riv"; + version = "2.11.10"; + sha256 = "0x6l2msimrx72iywa1g0rqklgy209sdwg0r77i2lz0s1rvk5klm5"; }) (fetchNuGet { name = "Humanizer.Core.sr-Latn"; - version = "2.8.26"; - sha256 = "1911a69sqssh9f007vmxbgyj4ym2ym4423xvw6cmbfhjcrhkfpbi"; + version = "2.11.10"; + sha256 = "01hdyn7mmbyy7f3aglawgnsj3nblcdpqjgzdcvniy73l536mira0"; }) (fetchNuGet { name = "Humanizer.Core.sv"; - version = "2.8.26"; - sha256 = "056h8n9i18yl78f9ppzn2kkrz2cs46aqv0j5y8xq360zarggh0nm"; + version = "2.11.10"; + sha256 = "0cbgchivw3d5ndib1zmgzmnymhyvfh9g9f0hijc860g5vaa9fkvh"; + }) + (fetchNuGet { + name = "Humanizer.Core.th-TH"; + version = "2.11.10"; + sha256 = "1v7f9x3b04iwhz9lb3ir8az8128nvcw1gi4park5zh3fg0f3mni0"; }) (fetchNuGet { name = "Humanizer.Core.tr"; - version = "2.8.26"; - sha256 = "0dk8ga3fpxifxxkz0n68654h65cvrx00hy7q00m5vgvmcp70gxxn"; + version = "2.11.10"; + sha256 = "02c4ky0dskxkdrkc7vy8yzmvwjr1wqll1kzx0k21afhlx8xynjd4"; }) (fetchNuGet { name = "Humanizer.Core.uk"; - version = "2.8.26"; - sha256 = "0bnj5xqlcqp4n8i04ra78dax4854zbf2jsygvb4lpiayyyaj2bxw"; + version = "2.11.10"; + sha256 = "0900ilhwj8yvhyzpg1pjr7f5vrl62wp8dsnhk4c2igs20qvnv079"; }) (fetchNuGet { name = "Humanizer.Core.uz-Cyrl-UZ"; - version = "2.8.26"; - sha256 = "1bbf6mxas6brjw7rjljq5saz6v3ic6zbvm1b3c1jbk0hc0qkd7c8"; + version = "2.11.10"; + sha256 = "09b7p2m8y49j49ckrmx2difgyj6y7fm2mwca093j8psxclsykcyr"; }) (fetchNuGet { name = "Humanizer.Core.uz-Latn-UZ"; - version = "2.8.26"; - sha256 = "1bfgfihpynax30g9kq8kra7c4jxps2ccxsxrs9gls47xbs35cw2f"; + version = "2.11.10"; + sha256 = "029kvkawqhlln52vpjpvr52dhr18ylk01cgsj2z8lxnqaka0q9hk"; }) (fetchNuGet { name = "Humanizer.Core.vi"; - version = "2.8.26"; - sha256 = "1vm765nvkp6wyfwlcgppimjrk04lkg8lscch3n1i1i5hlqxrs9ch"; + version = "2.11.10"; + sha256 = "0q4d47plsj956ivn82qwyidfxppjr9dp13m8c66aamrvhy4q8ny5"; }) (fetchNuGet { name = "Humanizer.Core.zh-CN"; - version = "2.8.26"; - sha256 = "1qyl12rdh4iv1k1qcivcmxxnh8y93ainf22pmch8vvw9yjhs1y7s"; + version = "2.11.10"; + sha256 = "01dy5kf6ai8id77px92ji4kcxjc8haj39ivv55xy1afcg3qiy7mh"; }) (fetchNuGet { name = "Humanizer.Core.zh-Hans"; - version = "2.8.26"; - sha256 = "1gqv3dyk236wlp5wb7kd4qnyrmp3cy36ycykl7zr91s25cdls5vy"; + version = "2.11.10"; + sha256 = "16gcxgw2g6gck3nc2hxzlkbsg7wkfaqsjl87kasibxxh47zdqqv2"; }) (fetchNuGet { name = "Humanizer.Core.zh-Hant"; - version = "2.8.26"; - sha256 = "1rhzbiqbx04l3kvzjklix90fxyc6vvmmw0p564ajdiximivs0pbh"; + version = "2.11.10"; + sha256 = "1rjg2xvkwjjw3c7z9mdjjvbnl9lcvvhh4fr7l61rla2ynzdk46cj"; }) (fetchNuGet { name = "JetBrains.Annotations"; - version = "2020.1.0"; - sha256 = "13fqcr6bs4x9rn0mpx110xl5apwh8ds1h0lx208znrm178ywqm8y"; + version = "2021.1.0"; + sha256 = "07pnhxxlgx8spmwmakz37nmbvgyb6yjrbrhad5rrn6y767z5r1gb"; }) (fetchNuGet { name = "ManagedBass"; @@ -281,8 +311,78 @@ }) (fetchNuGet { name = "Markdig"; - version = "0.21.1"; - sha256 = "119v22rvg51ifg54r1ndf2bw7hv1lf5wn3cd04ccg8d7r8c0yhbk"; + version = "0.25.0"; + sha256 = "1f7iqkaphfyf6szjrp0633rj44wynqgiqyivbja5djyxjy4csfyy"; + }) + (fetchNuGet { + name = "MessagePack"; + version = "2.2.85"; + sha256 = "1y0h8bd0drnlsqf1bvrdiv9j1892zqf1rmyclfjzs49klpf0xphk"; + }) + (fetchNuGet { + name = "MessagePack.Annotations"; + version = "2.2.85"; + sha256 = "00wajml6iy3wid8mixh3jmm6dapfjbccwq95m8qciika4pyd4lq9"; + }) + (fetchNuGet { + name = "Microsoft.AspNetCore.App.Runtime.linux-x64"; + version = "5.0.5"; + sha256 = "026m19pddhkx5idwpi6mp1yl9yfcfgm2qjp1jh54mdja1d7ng0vk"; + }) + (fetchNuGet { + name = "Microsoft.AspNetCore.Connections.Abstractions"; + version = "5.0.7"; + sha256 = "119wk2aqnas2sfyawv0wkg20ygk1cr15lycvvnw2x42kwgcimmks"; + }) + (fetchNuGet { + name = "Microsoft.AspNetCore.Http.Connections.Client"; + version = "5.0.7"; + sha256 = "0jdpqmjv9w29ih13nprzvf2m6cjrg69x0kwyi3d7b371rvz7m66l"; + }) + (fetchNuGet { + name = "Microsoft.AspNetCore.Http.Connections.Common"; + version = "5.0.7"; + sha256 = "1h6bw9hs92xp505c9x0jn1mx1i86r3s6xs7yyycx905grwisga39"; + }) + (fetchNuGet { + name = "Microsoft.AspNetCore.Http.Features"; + version = "5.0.7"; + sha256 = "1v89zxk15c7gswq10cbsf2yr974inpbk5npw2v6qj8vcs66qqwq3"; + }) + (fetchNuGet { + name = "Microsoft.AspNetCore.SignalR.Client"; + version = "5.0.7"; + sha256 = "13mqsa5nks9fcxv6kxm9j75mxafs3h5pikv35a56h7d9z8wdazsr"; + }) + (fetchNuGet { + name = "Microsoft.AspNetCore.SignalR.Client.Core"; + version = "5.0.7"; + sha256 = "033q9ijbbkh3crby96c62azyi61m0c7byiz89xbrdvagpj6ydqn5"; + }) + (fetchNuGet { + name = "Microsoft.AspNetCore.SignalR.Common"; + version = "5.0.7"; + sha256 = "0s04flgfrljv3r8kxplc569mp3gsqd4nwda0h3yly3rqzwmbrnwp"; + }) + (fetchNuGet { + name = "Microsoft.AspNetCore.SignalR.Protocols.Json"; + version = "5.0.7"; + sha256 = "0nb3v6hhhlndagczac255v2iyjs40jfi9gnb0933zh01wqrgkrv7"; + }) + (fetchNuGet { + name = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack"; + version = "5.0.7"; + sha256 = "06clfalw2xn7rfw53y8kiwcf2j3902iz0pl9fn2q4czhfwfp23ld"; + }) + (fetchNuGet { + name = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson"; + version = "5.0.7"; + sha256 = "1m2likbhq8mxv33yw5zl2ybgc11ksjzqi7nhjrnx1bc12amb3nw4"; + }) + (fetchNuGet { + name = "Microsoft.Bcl.AsyncInterfaces"; + version = "1.0.0"; + sha256 = "00dx5armvkqjxvkldz3invdlck9nj7w21dlsr2aqp1rqbyrbsbbh"; }) (fetchNuGet { name = "Microsoft.Bcl.AsyncInterfaces"; @@ -290,64 +390,59 @@ sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1"; }) (fetchNuGet { + name = "Microsoft.Bcl.AsyncInterfaces"; + version = "5.0.0"; + sha256 = "0cp5jbax2mf6xr3dqiljzlwi05fv6n9a35z337s92jcljiq674kf"; + }) + (fetchNuGet { name = "Microsoft.Build.Framework"; - version = "15.3.409"; - sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2"; + version = "16.5.0"; + sha256 = "1xgr02r7s9i6s70n237hss4yi9zicssia3zd2ny6s8vyxb7jpdyb"; }) (fetchNuGet { name = "Microsoft.Build.Locator"; - version = "1.2.6"; - sha256 = "1rnfd7wq2bkynqj767xmq9ha38mz010fmqvvvrgb4v86gd537737"; + version = "1.4.1"; + sha256 = "0j119rri7a401rca67cxdyrn3rprzdl1b2wrblqc23xsff1xvlrx"; }) (fetchNuGet { name = "Microsoft.CodeAnalysis.Analyzers"; - version = "3.0.0"; - sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; + version = "3.3.2"; + sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4"; }) (fetchNuGet { name = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; - version = "3.3.0"; - sha256 = "04z03ir9sal5h9ha97isbh660jijslb8zfiaa48w2r2l6pabz5kd"; + version = "3.3.2"; + sha256 = "1r8mfbpfy8jdinhfviwhv2vjsz950wn2vwz17lfw5kya1n13nj56"; }) (fetchNuGet { name = "Microsoft.CodeAnalysis.Common"; - version = "3.7.0"; - sha256 = "0882492nx6x68b0pkh3q5xaawz0b2l5x35r40722ignyjnvjydph"; + version = "3.10.0"; + sha256 = "12a7wq45liw89ylnf2b7v374s3m0lbknkx7kazk3bf6nd1b8ny81"; }) (fetchNuGet { name = "Microsoft.CodeAnalysis.CSharp"; - version = "3.7.0"; - sha256 = "0adw6rcag8wxydzyiyhls2mxaqkay5qlz25z1fxrlv5qnchqn0n5"; + version = "3.10.0"; + sha256 = "0plpvimh9drip1fvic3zfg1gmiw3q8xb85nqjqy1hq140p4him6k"; }) (fetchNuGet { name = "Microsoft.CodeAnalysis.CSharp.Workspaces"; - version = "3.7.0"; - sha256 = "15rlz65wbky0yq7b9s8xwk68dgrhgsk4rj88q9pyjxbm5938vrav"; + version = "3.10.0"; + sha256 = "0g12hg6r8h2s99p8a0rx8h71rlmj9aff2hr26fkw7i734n39p070"; }) (fetchNuGet { - name = "Microsoft.CodeAnalysis.FxCopAnalyzers"; - version = "3.0.0"; - sha256 = "0a17vb6jnj6kch70d7vki84728hlc3zpffsbv533yji6kf6x6d24"; - }) - (fetchNuGet { - name = "Microsoft.CodeAnalysis.VersionCheckAnalyzer"; - version = "3.0.0"; - sha256 = "11g3hj3p885zj7bn99qzh68m1xifbwzrgmx1pkvpi10rmgkpyh8j"; + name = "Microsoft.CodeAnalysis.NetAnalyzers"; + version = "5.0.3"; + sha256 = "1l0zg9wl8yapjq9g2d979zhsmdkr8kfybmxnl7kvgkgldf114fbg"; }) (fetchNuGet { name = "Microsoft.CodeAnalysis.Workspaces.Common"; - version = "3.7.0"; - sha256 = "00nm453w4n6kjsicmz5izvkf1ki9rp3xnc9n3y7a9b1g5sxg36fs"; + version = "3.10.0"; + sha256 = "1hr3ndhb7sw0l63blgp2y0a6d1pgkxah0ls1v7kdxmkdazv35svc"; }) (fetchNuGet { name = "Microsoft.CodeAnalysis.Workspaces.MSBuild"; - version = "3.7.0"; - sha256 = "1sh8s7b16j06p3gmzsgwd8690vagah4908bpa3gyz2fxgfnj46ax"; - }) - (fetchNuGet { - name = "Microsoft.CodeQuality.Analyzers"; - version = "3.0.0"; - sha256 = "1x3yf21m41w2iv9nlwp03q6byqgivd48h2dlm5vgv5bd53xjfz77"; + version = "3.10.0"; + sha256 = "13h0wza8anac6snkry9fvzd188vnykifzy43ms8x07d40zmqnicd"; }) (fetchNuGet { name = "Microsoft.CSharp"; @@ -360,19 +455,24 @@ sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; }) (fetchNuGet { + name = "Microsoft.CSharp"; + version = "4.7.0"; + sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; + }) + (fetchNuGet { name = "Microsoft.Data.Sqlite.Core"; version = "2.2.6"; sha256 = "0fx8698k71vzr8pdc6q8bsbzg6r8a42s4hkzmiyv13ibmyb5q68k"; }) (fetchNuGet { name = "Microsoft.Diagnostics.NETCore.Client"; - version = "0.2.61701"; - sha256 = "1ic1607jj4ln8dbibf1fz5v9svk9x2kqlgvhndc6ijaqnbc4wcr1"; + version = "0.2.221401"; + sha256 = "1k55l60bg8lj5ayl3kixbzvx2684xd7a9nzha5fiqjgp85cimb3r"; }) (fetchNuGet { name = "Microsoft.Diagnostics.Runtime"; - version = "2.0.137201"; - sha256 = "0cfsd8nn6y30bqzx1pf9xi29jnxap1fgk720zdpz93kqzqv8r0vc"; + version = "2.0.226801"; + sha256 = "1w8ahqkv8nbq2ch17aa9axhqqnybmc9bsxpdhpiy52ix70mr72w1"; }) (fetchNuGet { name = "Microsoft.DotNet.PlatformAbstractions"; @@ -435,6 +535,11 @@ sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674"; }) (fetchNuGet { + name = "Microsoft.Extensions.Configuration.Abstractions"; + version = "5.0.0"; + sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k"; + }) + (fetchNuGet { name = "Microsoft.Extensions.Configuration.Binder"; version = "2.2.0"; sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j"; @@ -445,11 +550,21 @@ sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck"; }) (fetchNuGet { + name = "Microsoft.Extensions.DependencyInjection"; + version = "5.0.1"; + sha256 = "06xig49mwyp3b2dvdx98j079ncg6p4c9x8yj4pzs6ppmi3jgaaqk"; + }) + (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.2.0"; sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5"; }) (fetchNuGet { + name = "Microsoft.Extensions.DependencyInjection.Abstractions"; + version = "5.0.0"; + sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; + }) + (fetchNuGet { name = "Microsoft.Extensions.DependencyModel"; version = "2.1.0"; sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd"; @@ -460,14 +575,24 @@ sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm"; }) (fetchNuGet { + name = "Microsoft.Extensions.Logging"; + version = "5.0.0"; + sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; + }) + (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "2.2.0"; sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl"; }) (fetchNuGet { + name = "Microsoft.Extensions.Logging.Abstractions"; + version = "5.0.0"; + sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; + }) + (fetchNuGet { name = "Microsoft.Extensions.ObjectPool"; - version = "3.0.3"; - sha256 = "0zxsdwh9mhy3wsbjyfr4k0r10s1h06dzw8hcck9aknv155q26zqk"; + version = "5.0.7"; + sha256 = "047wv490fjizknyhbmxwbbh9fns13pq2inpc9idxq42n2zj3zbij"; }) (fetchNuGet { name = "Microsoft.Extensions.Options"; @@ -475,19 +600,29 @@ sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0"; }) (fetchNuGet { + name = "Microsoft.Extensions.Options"; + version = "5.0.0"; + sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; + }) + (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "2.2.0"; sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c"; }) (fetchNuGet { - name = "Microsoft.Net.Compilers.Toolset"; - version = "3.1.0"; - sha256 = "1csf8hgwvyxjlxdygacrk3pp0xkzydc1kvsv68cxy8h7gd62k0w0"; + name = "Microsoft.Extensions.Primitives"; + version = "5.0.0"; + sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; + }) + (fetchNuGet { + name = "Microsoft.Extensions.Primitives"; + version = "5.0.1"; + sha256 = "01ar5ba2sal9wnpa1xnnikhgb37vzhg2cspz45wf760jflpai2vv"; }) (fetchNuGet { - name = "Microsoft.NetCore.Analyzers"; - version = "3.0.0"; - sha256 = "0b8biyw7nymqfbg08g2vmpf1xm6g1mm6hz4gjxc5f3g72kd2nswj"; + name = "Microsoft.NETCore.App.Runtime.linux-x64"; + version = "5.0.5"; + sha256 = "1h5yry6k9bpqqis2fb1901csb8kipm7anm174fjj41r317vzfjfa"; }) (fetchNuGet { name = "Microsoft.NETCore.Platforms"; @@ -501,33 +636,28 @@ }) (fetchNuGet { name = "Microsoft.NETCore.Platforms"; - version = "2.1.2"; - sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; + version = "2.0.0"; + sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; }) (fetchNuGet { name = "Microsoft.NETCore.Platforms"; - version = "3.1.0"; - sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j"; + version = "2.1.2"; + sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; }) (fetchNuGet { name = "Microsoft.NETCore.Platforms"; - version = "3.1.1"; - sha256 = "05hmaygd5131rnqi6ipv7agsbpi7ka18779vw45iw6b385l7n987"; + version = "5.0.0"; + sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; }) (fetchNuGet { name = "Microsoft.NETCore.Targets"; - version = "1.0.1"; - sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; + version = "3.1.0"; + sha256 = "04cc2wl90p7g9zscnxgyj55vzl7srrrjwadl2dxgicfb2x2499ca"; }) (fetchNuGet { name = "Microsoft.NETCore.Targets"; - version = "1.1.0"; - sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; - }) - (fetchNuGet { - name = "Microsoft.NetFramework.Analyzers"; - version = "3.0.0"; - sha256 = "09dqizym3bca4281714yxrhhgryxpjhjfjnyfswlhyh42qi3ix2k"; + version = "5.0.0"; + sha256 = "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6"; }) (fetchNuGet { name = "Microsoft.Win32.Primitives"; @@ -541,8 +671,13 @@ }) (fetchNuGet { name = "Microsoft.Win32.Registry"; - version = "4.7.0"; - sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs"; + version = "5.0.0"; + sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; + }) + (fetchNuGet { + name = "MongoDB.Bson"; + version = "2.11.3"; + sha256 = "0fn900i51rwgk3ywpcp4dsf7c9v5glch7hia9l9w8aj8s10qjf1r"; }) (fetchNuGet { name = "Mono.Cecil"; @@ -550,6 +685,11 @@ sha256 = "1fr7969h5q611l5227xw6nvv5rzap76vbpk0wg9hxbcxk3hn7szf"; }) (fetchNuGet { + name = "Mono.Posix.NETStandard"; + version = "1.0.0"; + sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw"; + }) + (fetchNuGet { name = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; @@ -571,8 +711,8 @@ }) (fetchNuGet { name = "Newtonsoft.Json"; - version = "12.0.3"; - sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x"; + version = "13.0.1"; + sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; }) (fetchNuGet { name = "Newtonsoft.Json"; @@ -580,39 +720,109 @@ sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; }) (fetchNuGet { + name = "NuGet.Common"; + version = "5.10.0"; + sha256 = "0qy6blgppgvxpfcricmvva3qzddk18dza5vy851jrbqshvf9g7kx"; + }) + (fetchNuGet { + name = "NuGet.Configuration"; + version = "5.10.0"; + sha256 = "0xb1n94lrwa6k83i9xcsq68202086p2gj74gzlbhlvb8c2pw6lbb"; + }) + (fetchNuGet { + name = "NuGet.DependencyResolver.Core"; + version = "5.10.0"; + sha256 = "0dhhclm281ihpfsjzxw34l6zlw49nwzyjiynkmsbcj9icfkp3y4r"; + }) + (fetchNuGet { + name = "NuGet.Frameworks"; + version = "5.10.0"; + sha256 = "0gb6n8rg2jpjp52icgpb3wjdfs3qllh5vbcz8hbcix3l7dncy3v2"; + }) + (fetchNuGet { + name = "NuGet.LibraryModel"; + version = "5.10.0"; + sha256 = "0b6mmq2mqfr06ypc772dmcd8bz55gkyfrgn0j3nrgkcdww4fzf9q"; + }) + (fetchNuGet { + name = "NuGet.Packaging"; + version = "5.10.0"; + sha256 = "11g0v061axhp0nisclq5cm2mc92d69z92giz9l40ih478c5nishw"; + }) + (fetchNuGet { + name = "NuGet.ProjectModel"; + version = "5.10.0"; + sha256 = "1cqg319n986wciskrqsfawfhqp1d7a7i2qjd0qplpckyw8msng2i"; + }) + (fetchNuGet { + name = "NuGet.Protocol"; + version = "5.10.0"; + sha256 = "0cs9qp169zx6g2w5bzrlhxv0q1i8mb8dxlb2nkiq7pkvah86rxkc"; + }) + (fetchNuGet { + name = "NuGet.Versioning"; + version = "5.10.0"; + sha256 = "10vvw6vjpx0c26rlxh7dnpyp4prahn25717ccd8bzkjmyzhm90cs"; + }) + (fetchNuGet { name = "NUnit"; - version = "3.12.0"; - sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2"; + version = "3.13.2"; + sha256 = "00bkjgarkwbj497da9d7lajala1ns67h1kx53w4bapwkf32jlcvn"; + }) + (fetchNuGet { + name = "OpenTabletDriver"; + version = "0.5.3.1"; + sha256 = "16xw8w943x9gvnnpbryahff5azzy8n26j2igyqgv88m352jd9rb8"; + }) + (fetchNuGet { + name = "OpenTabletDriver.Plugin"; + version = "0.5.3.1"; + sha256 = "17dxsvcz9g8kzydk5xlfz9kfxl62x9wi20609rh76wjd881bg1br"; + }) + (fetchNuGet { + name = "ppy.LocalisationAnalyser"; + version = "2021.716.0"; + sha256 = "0w45af0mlh4bkjxxhk5p4kb6z0na8fmm6xz10dfzs3b4i61h5x3z"; }) (fetchNuGet { name = "ppy.osu.Framework"; - version = "2020.819.0"; - sha256 = "1ghbbwpjjl0dp6gs1638v880hr7wwrn2jklqwbbckpx8g57bnq2m"; + version = "2021.714.0"; + sha256 = "175i0hcbl01xy633zvij8185nj4g7ja1rsv2lmfz8qdykqj6g9kl"; }) (fetchNuGet { name = "ppy.osu.Framework.NativeLibs"; - version = "2020.213.0"; - sha256 = "1yzrx7bji2163dzvyqri42byc7lgxlm59xbwgi312dw5714snmxy"; + version = "2021.115.0"; + sha256 = "00cxrnc78wb8l7d4x7m39g73y85kbgnsnx3qdvv0a9p77lf7lx7z"; }) (fetchNuGet { name = "ppy.osu.Game.Resources"; - version = "2020.812.0"; - sha256 = "0fsg47bsffvk16clwwwav4yly1ykn09pyap46dvdmsxhjrzkvzb7"; + version = "2021.706.0"; + sha256 = "1yacqy8h93vph3faf4y0iwhlnlmbny3zj57cm2bh04z2gk0l17am"; }) (fetchNuGet { name = "ppy.osuTK.NS20"; - version = "1.0.161"; - sha256 = "0li5vcpki1ih605c8h1hjf15m9wawkdaizcxib6v3mfjf860ma3s"; + version = "1.0.173"; + sha256 = "11rrxakrgq5lriv09qlz26189nyc9lh0fjidn5h70labyp2gpa4y"; }) (fetchNuGet { name = "ppy.SDL2-CS"; - version = "1.0.15"; - sha256 = "0qld7sp7y7hwwxsdxc8m17nyb2zwfxym63j50icvf0rlawmrl7ca"; + version = "1.0.238-alpha"; + sha256 = "1n7pa7gy1hcgsfm3jix334qr6v229n1yymq58njj802l3k5g7980"; }) (fetchNuGet { name = "ppy.squirrel.windows"; - version = "1.9.0.4"; - sha256 = "1m8shcmgs0fs225qd0navr1qr6csqjin9sg2x0d7xpfk04nd2hi7"; + version = "1.9.0.5"; + sha256 = "0nmhrg3q6izapfpwdslq80fqkvjj12ad9r94pd0nr2xx1zw0x1zl"; + }) + (fetchNuGet { + name = "Realm"; + version = "10.3.0"; + sha256 = "12zmp43cf2kilzq1yi9x2hy1jdh51c0kbnddw5s960k1kvyx2s2v"; + }) + (fetchNuGet { + name = "Realm.Fody"; + version = "10.3.0"; + sha256 = "0mhjkahi2ldxcizv08i70mrpwgrvljxdjlr81x3dmwgpxxfji18d"; }) (fetchNuGet { name = "Remotion.Linq"; @@ -721,18 +931,8 @@ }) (fetchNuGet { name = "Sentry"; - version = "2.1.5"; - sha256 = "094rhsn5rfk7f2ygk6jgv3cq01gv3a8lnqa85l593ys3957j0qhs"; - }) - (fetchNuGet { - name = "Sentry.PlatformAbstractions"; - version = "1.1.1"; - sha256 = "10mxyxmyjpr0y1ik2j55pp7ifn101sw319cbpf28i2xbfp0cvcaj"; - }) - (fetchNuGet { - name = "Sentry.Protocol"; - version = "2.1.5"; - sha256 = "1yjgn6na14rr6crmm886x597h9gdjyasgxx3n9m3zn7ig8726mpg"; + version = "3.6.0"; + sha256 = "1yjz3m8chg796izrdd9vlxvka60rmv6cmsxpnrv9llmsss2mqssz"; }) (fetchNuGet { name = "SharpCompress"; @@ -741,8 +941,8 @@ }) (fetchNuGet { name = "SharpCompress"; - version = "0.26.0"; - sha256 = "03cygf8p44j1bfn6z9cn2xrw6zhvhq17xac1sph5rgq7vq2m5iq5"; + version = "0.28.3"; + sha256 = "1svymm2vyg3815p3sbwjdk563mz0a4ag1sr30pm0ki01brqpaaas"; }) (fetchNuGet { name = "SharpFNT"; @@ -750,14 +950,9 @@ sha256 = "1bgacgh9hbck0qvji6frbb50sdiqfdng2fvvfgfw8b9qaql91mx0"; }) (fetchNuGet { - name = "SixLabors.Core"; - version = "1.0.0-beta0008"; - sha256 = "1yqcv5d2igsrmi9hf8xzikn0fms47skqpr552yzbj4z4wnraahaw"; - }) - (fetchNuGet { name = "SixLabors.ImageSharp"; - version = "1.0.0-beta0007"; - sha256 = "1k3hrp26imyqjarkrcsrhvamlmynzv6cakzq68yx69c0h8lmscaf"; + version = "1.0.3"; + sha256 = "1y43zvhjgi9rhylc8451784hhdi5b551hf7fsa6187b83wgxc47g"; }) (fetchNuGet { name = "Splat"; @@ -796,8 +991,8 @@ }) (fetchNuGet { name = "StbiSharp"; - version = "1.0.12"; - sha256 = "044lyc6522s8q4kgvly0rsxghkiv4dwzycl2ibxf7q5dvws02qvp"; + version = "1.0.13"; + sha256 = "0yaspwlh4x93d7xnqj5w5pxlwzlv9lixvksyvdh176krfa4mjw3q"; }) (fetchNuGet { name = "System.AppContext"; @@ -826,15 +1021,15 @@ }) (fetchNuGet { name = "System.Buffers"; - version = "4.5.0"; - sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c"; - }) - (fetchNuGet { - name = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; }) (fetchNuGet { + name = "System.CodeDom"; + version = "4.5.0"; + sha256 = "1js3h3ig0zwyynl1q88siynp8ra0gz0pfq1wmvls6ji83jrxsami"; + }) + (fetchNuGet { name = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; @@ -861,8 +1056,8 @@ }) (fetchNuGet { name = "System.Collections.Immutable"; - version = "1.7.1"; - sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; + version = "5.0.0"; + sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; }) (fetchNuGet { name = "System.ComponentModel.Annotations"; @@ -871,8 +1066,8 @@ }) (fetchNuGet { name = "System.ComponentModel.Annotations"; - version = "4.7.0"; - sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z"; + version = "5.0.0"; + sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; }) (fetchNuGet { name = "System.Composition"; @@ -940,6 +1135,11 @@ sha256 = "1y8m0p3127nak5yspapfnz25qc9x53gqpvwr3hdpsvrcd2r1pgyj"; }) (fetchNuGet { + name = "System.Diagnostics.DiagnosticSource"; + version = "5.0.0"; + sha256 = "0phd2qizshjvglhzws1jd0cq4m54gscz4ychzr3x6wbgl4vvfrga"; + }) + (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; @@ -965,6 +1165,16 @@ sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; }) (fetchNuGet { + name = "System.Dynamic.Runtime"; + version = "4.3.0"; + sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; + }) + (fetchNuGet { + name = "System.Formats.Asn1"; + version = "5.0.0"; + sha256 = "1axc8z0839yvqi2cb63l73l6d9j6wd20lsbdymwddz9hvrsgfwpn"; + }) + (fetchNuGet { name = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; @@ -1051,8 +1261,13 @@ }) (fetchNuGet { name = "System.IO.Packaging"; - version = "4.7.0"; - sha256 = "1vivvf158ilcpp6bq70zyafimi0lng546b34csmjb09k19wgxpiv"; + version = "5.0.0"; + sha256 = "08l85pi8jy65las973szqdnir2awxp0r16h21c0bgrz19gxhs11n"; + }) + (fetchNuGet { + name = "System.IO.Pipelines"; + version = "5.0.1"; + sha256 = "1zvfcd2l1d5qxifsqd0cjyv57nr61a9ac2ca5jinyqmj32wgjd6v"; }) (fetchNuGet { name = "System.Linq"; @@ -1080,6 +1295,11 @@ sha256 = "11jn9k34g245yyf260gr3ldzvaqa9477w2c5nhb1p8vjx4xm3qaw"; }) (fetchNuGet { + name = "System.Management"; + version = "4.5.0"; + sha256 = "19z5x23n21xi94bgl531l9hrm64nyw9d5fpd7klfvr5xfsbh9jwr"; + }) + (fetchNuGet { name = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; @@ -1165,6 +1385,16 @@ sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; }) (fetchNuGet { + name = "System.Reflection.Emit"; + version = "4.6.0"; + sha256 = "18h375q5bn9h7swxnk4krrxym1dxmi9bm26p89xps9ygrj4q6zqw"; + }) + (fetchNuGet { + name = "System.Reflection.Emit"; + version = "4.7.0"; + sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; + }) + (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; @@ -1186,8 +1416,8 @@ }) (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; - version = "4.7.0"; - sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap"; + version = "4.6.0"; + sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp"; }) (fetchNuGet { name = "System.Reflection.Extensions"; @@ -1201,13 +1431,8 @@ }) (fetchNuGet { name = "System.Reflection.Metadata"; - version = "1.6.0"; - sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; - }) - (fetchNuGet { - name = "System.Reflection.Metadata"; - version = "1.8.1"; - sha256 = "17xxl3m99wa4hcpqy42vl8qb1jk2jfq32rj3sfjc1a46hi2si5jj"; + version = "5.0.0"; + sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; }) (fetchNuGet { name = "System.Reflection.Primitives"; @@ -1261,13 +1486,13 @@ }) (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; - version = "4.7.0"; - sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54"; + version = "4.5.3"; + sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; }) (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; - version = "4.7.1"; - sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; + version = "5.0.0"; + sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; }) (fetchNuGet { name = "System.Runtime.Extensions"; @@ -1326,8 +1551,8 @@ }) (fetchNuGet { name = "System.Security.AccessControl"; - version = "4.7.0"; - sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz"; + version = "5.0.0"; + sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; }) (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; @@ -1350,6 +1575,11 @@ sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; }) (fetchNuGet { + name = "System.Security.Cryptography.Cng"; + version = "5.0.0"; + sha256 = "06hkx2za8jifpslkh491dfwzm5dxrsyxzj5lsc0achb6yzg4zqlw"; + }) + (fetchNuGet { name = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; @@ -1380,6 +1610,11 @@ sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; }) (fetchNuGet { + name = "System.Security.Cryptography.Pkcs"; + version = "5.0.0"; + sha256 = "0hb2mndac3xrw3786bsjxjfh19bwnr991qib54k6wsqjhjyyvbwj"; + }) + (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.0.0"; sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; @@ -1390,6 +1625,11 @@ sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; }) (fetchNuGet { + name = "System.Security.Cryptography.ProtectedData"; + version = "4.4.0"; + sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6"; + }) + (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.1.0"; sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; @@ -1401,8 +1641,8 @@ }) (fetchNuGet { name = "System.Security.Principal.Windows"; - version = "4.7.0"; - sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d"; + version = "5.0.0"; + sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; }) (fetchNuGet { name = "System.Text.Encoding"; @@ -1421,8 +1661,8 @@ }) (fetchNuGet { name = "System.Text.Encoding.CodePages"; - version = "4.7.1"; - sha256 = "1y1hdap9qbl7vp74j8s9zcbh3v1rnrrvcc55wj1hl6has2v3qh1r"; + version = "5.0.0"; + sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; }) (fetchNuGet { name = "System.Text.Encoding.Extensions"; @@ -1435,6 +1675,21 @@ sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; }) (fetchNuGet { + name = "System.Text.Encodings.Web"; + version = "5.0.1"; + sha256 = "00yg63qnp94q2qryxxggzigi276bibb8b3b96gcvsyrxy7b703n9"; + }) + (fetchNuGet { + name = "System.Text.Json"; + version = "4.7.0"; + sha256 = "0fp3xrysccm5dkaac4yb51d793vywxks978kkl5x4db9gw29rfdr"; + }) + (fetchNuGet { + name = "System.Text.Json"; + version = "5.0.2"; + sha256 = "0vd0wd29cdhgcjngl9sw391sn2s8xm974y15zvym0whsdgjwiqfx"; + }) + (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; @@ -1455,6 +1710,11 @@ sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; }) (fetchNuGet { + name = "System.Threading.Channels"; + version = "5.0.0"; + sha256 = "11z28x3cawry60l5phkqrvavm0mshz84n4c79hrz0p65lq8jpxgs"; + }) + (fetchNuGet { name = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; @@ -1476,10 +1736,20 @@ }) (fetchNuGet { name = "System.Threading.Tasks.Extensions"; + version = "4.5.2"; + sha256 = "1sh63dz0dymqcwmprp0nadm77b83vmm7lyllpv578c397bslb8hj"; + }) + (fetchNuGet { + name = "System.Threading.Tasks.Extensions"; version = "4.5.3"; sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i"; }) (fetchNuGet { + name = "System.Threading.Tasks.Extensions"; + version = "4.5.4"; + sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; + }) + (fetchNuGet { name = "System.Threading.Thread"; version = "4.0.0"; sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc"; diff --git a/pkgs/games/osu-lazer/osu.runtimeconfig.json b/pkgs/games/osu-lazer/osu.runtimeconfig.json new file mode 100644 index 00000000000..a1a197b1b67 --- /dev/null +++ b/pkgs/games/osu-lazer/osu.runtimeconfig.json @@ -0,0 +1,9 @@ +{ + "runtimeOptions": { + "tfm": "net5.0", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "5.0.0" + } + } +} diff --git a/pkgs/games/osu-lazer/update.sh b/pkgs/games/osu-lazer/update.sh index be8fa3fe716..b5c8208fe41 100755 --- a/pkgs/games/osu-lazer/update.sh +++ b/pkgs/games/osu-lazer/update.sh @@ -1,11 +1,11 @@ #!/usr/bin/env nix-shell -#!nix-shell -i bash -p curl jq common-updater-scripts dotnet-sdk_3 +#!nix-shell -i bash -p curl jq common-updater-scripts dotnet-sdk_5 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')" +new_version="$(curl -s "https://api.github.com/repos/ppy/osu/releases?per_page=1" | 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" @@ -22,21 +22,8 @@ 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 +dotnet restore osu.Desktop --packages ./nuget_tmp.packages --runtime linux-x64 echo "{ fetchNuGet }: [" >"$deps_file" while read pkg_spec; do diff --git a/pkgs/games/pacvim/default.nix b/pkgs/games/pacvim/default.nix index d7805ad66fb..dc2c216b1bf 100644 --- a/pkgs/games/pacvim/default.nix +++ b/pkgs/games/pacvim/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, ncurses }: +{ lib, stdenv, fetchFromGitHub, ncurses }: stdenv.mkDerivation { pname = "pacvim"; @@ -13,9 +13,9 @@ stdenv.mkDerivation { buildInputs = [ ncurses ]; makeFlags = [ "PREFIX=$(out)" ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/jmoon018/PacVim"; - description = "PacVim is a game that teaches you vim commands."; + description = "A game that teaches you vim commands"; maintainers = with maintainers; [ infinisil ]; license = licenses.lgpl3; platforms = platforms.unix; diff --git a/pkgs/games/papermc/default.nix b/pkgs/games/papermc/default.nix index c0446c4fa5b..6740b51cfd9 100644 --- a/pkgs/games/papermc/default.nix +++ b/pkgs/games/papermc/default.nix @@ -1,10 +1,10 @@ -{ stdenv, fetchurl, jre }: +{ lib, stdenv, fetchurl, bash, jre }: let - mcVersion = "1.16.2"; - buildNum = "141"; + mcVersion = "1.17.1"; + buildNum = "97"; jar = fetchurl { url = "https://papermc.io/api/v1/paper/${mcVersion}/${buildNum}/download"; - sha256 = "1qhhnaysw9r73fpvj9qcmjah722a6a4s6g4cblna56n1hpz4lw1s"; + sha256 = "sha256:0d7q6v5w872phcgkha7j5sxniqq9wqbh1jxdvyvy6d2jl74g1gzw"; }; in stdenv.mkDerivation { pname = "papermc"; @@ -13,23 +13,24 @@ 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; - platforms = stdenv.lib.platforms.unix; - maintainers = with stdenv.lib.maintainers; [ aaronjanse ]; + license = lib.licenses.gpl3Only; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ aaronjanse neonfuz ]; }; } diff --git a/pkgs/games/pentobi/default.nix b/pkgs/games/pentobi/default.nix index 2b5a86ad52c..deb59eb2377 100644 --- a/pkgs/games/pentobi/default.nix +++ b/pkgs/games/pentobi/default.nix @@ -1,20 +1,20 @@ -{ stdenv, appstream, fetchurl, cmake, gettext, libxslt, librsvg, itstool - , qtbase, qtquickcontrols2, qtsvg, qttools, qtwebview, docbook_xsl - , wrapQtAppsHook +{ lib, mkDerivation, appstream, fetchFromGitHub, cmake, gettext, libxslt, librsvg, itstool +, qtbase, qtquickcontrols2, qtsvg, qttools, qtwebview, docbook_xsl }: -with stdenv.lib; -stdenv.mkDerivation rec { - version = "18.1"; +mkDerivation rec { + version = "18.5"; pname = "pentobi"; - src = fetchurl { - url = "mirror://sourceforge/pentobi/${pname}-${version}.tar.xz"; - sha256 = "1vfw61lk9z7dngncmx3fggy5ld7ksdk48dpwnsq2vl5fh3f71qbq"; + src = fetchFromGitHub { + owner = "enz"; + repo = "pentobi"; + rev = "v${version}"; + sha256 = "sha256-iVgG2Ee1nJWpuquX2ntFHAJrPA0u9YnutmOC+cMrgZg="; }; - nativeBuildInputs = [ cmake docbook_xsl wrapQtAppsHook ]; - buildInputs = [ appstream qtbase qtsvg qtquickcontrols2 qttools qtwebview itstool librsvg ]; + nativeBuildInputs = [ cmake docbook_xsl qttools ]; + buildInputs = [ appstream qtbase qtsvg qtquickcontrols2 qtwebview itstool librsvg ]; patchPhase = '' substituteInPlace pentobi_thumbnailer/CMakeLists.txt --replace "/manpages" "/share/xml/docbook-xsl/manpages/" @@ -28,11 +28,11 @@ stdenv.mkDerivation rec { "-DMETAINFO_ITS=${appstream}/share/gettext/its/metainfo.its" ]; - meta = { + meta = with lib; { description = "A computer opponent for the board game Blokus"; homepage = "https://pentobi.sourceforge.io"; license = licenses.gpl3; - maintainers = [ maintainers.genesis ]; + maintainers = [ ]; platforms = platforms.linux; }; } diff --git a/pkgs/games/performous/default.nix b/pkgs/games/performous/default.nix index 96b07e9787e..dce771faec1 100644 --- a/pkgs/games/performous/default.nix +++ b/pkgs/games/performous/default.nix @@ -1,13 +1,13 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, gettext +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gettext , glibmm, libxmlxx, pango, librsvg -, SDL2, glew, boost, libav, portaudio, epoxy +, SDL2, glew, boost, ffmpeg, portaudio, epoxy }: stdenv.mkDerivation rec { pname = "performous"; version = "1.1"; - meta = with stdenv.lib; { + meta = with lib; { description = "Karaoke, band and dancing game"; homepage = "http://performous.org/"; license = licenses.gpl2Plus; @@ -23,10 +23,10 @@ stdenv.mkDerivation rec { patches = [ ./performous-cmake.patch ]; - nativeBuildInputs = [ cmake pkgconfig gettext ]; + nativeBuildInputs = [ cmake pkg-config gettext ]; buildInputs = [ glibmm libxmlxx pango librsvg - SDL2 glew boost libav portaudio epoxy + SDL2 glew boost ffmpeg portaudio epoxy ]; } diff --git a/pkgs/games/pinball/default.nix b/pkgs/games/pinball/default.nix new file mode 100644 index 00000000000..b7abf1dac8c --- /dev/null +++ b/pkgs/games/pinball/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchurl, autoreconfHook, pkg-config +, libglvnd, SDL, SDL_image, SDL_mixer, xorg +}: + +stdenv.mkDerivation rec { + pname = "pinball"; + version = "0.3.20201218"; + + src = fetchurl { + url = "mirror://sourceforge/pinball/pinball-${version}.tar.gz"; + sha256 = "0vacypp3ksq1hs6hxpypx7nrfkprbl4ksfywcncckwrh4qcir631"; + }; + + postPatch = '' + sed -i 's/^AUTOMAKE_OPTIONS = gnu$/AUTOMAKE_OPTIONS = foreign/' Makefile.am + ''; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ libglvnd SDL SDL_image SDL_mixer xorg.libSM ]; + strictDeps = true; + + configureFlags = [ + "--with-sdl-prefix=${lib.getDev SDL}" + ]; + + NIX_CFLAGS_COMPILE = [ + "-I${lib.getDev SDL_image}/include/SDL" + "-I${lib.getDev SDL_mixer}/include/SDL" + ]; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://purl.org/rzr/pinball"; + description = "Emilia Pinball simulator"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ qyliss ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/pingus/default.nix b/pkgs/games/pingus/default.nix index 81e22b90e97..fd0ebddfc32 100644 --- a/pkgs/games/pingus/default.nix +++ b/pkgs/games/pingus/default.nix @@ -1,10 +1,10 @@ -{stdenv, fetchgit, cmake, SDL2, SDL2_image, boost, libpng, SDL2_mixer -, pkgconfig, libGLU, libGL, git, jsoncpp }: +{lib, stdenv, fetchgit, cmake, SDL2, SDL2_image, boost, libpng, SDL2_mixer +, pkg-config, libGLU, libGL, git, jsoncpp }: stdenv.mkDerivation rec { pname = "pingus"; version = "unstable-0.7.6.0.20191104"; - nativeBuildInputs = [ cmake pkgconfig git ]; + nativeBuildInputs = [ cmake pkg-config git ]; buildInputs = [ SDL2 SDL2_image boost libpng SDL2_mixer libGLU libGL jsoncpp ]; src = fetchgit { url = "https://gitlab.com/pingus/pingus/"; @@ -14,9 +14,9 @@ stdenv.mkDerivation rec { }; meta = { - description = ''A puzzle game with mechanics similar to Lemmings''; - platforms = stdenv.lib.platforms.linux; - maintainers = [stdenv.lib.maintainers.raskin]; - license = stdenv.lib.licenses.gpl3; + description = "A puzzle game with mechanics similar to Lemmings"; + platforms = lib.platforms.linux; + maintainers = [lib.maintainers.raskin]; + license = lib.licenses.gpl3; }; } diff --git a/pkgs/games/pioneer/default.nix b/pkgs/games/pioneer/default.nix index 3f3a2dd363d..51eda72bdef 100644 --- a/pkgs/games/pioneer/default.nix +++ b/pkgs/games/pioneer/default.nix @@ -1,20 +1,20 @@ -{ fetchFromGitHub, stdenv, cmake, pkgconfig, curl, libsigcxx, SDL2 +{ fetchFromGitHub, lib, stdenv, cmake, pkg-config, curl, libsigcxx, SDL2 , SDL2_image, freetype, libvorbis, libpng, assimp, libGLU, libGL , glew }: stdenv.mkDerivation rec { pname = "pioneer"; - version = "20200203"; + version = "20210203"; src = fetchFromGitHub{ owner = "pioneerspacesim"; repo = "pioneer"; rev = version; - sha256 = "1011xsi94jhw98mhm8kryq8ajig0qfbrdx5xdasi92bd4nk7lcp8"; + sha256 = "sha256-51HXbX15uB1Xf9Re7Qi41BnJ9OW+GeXQhylJ+HwP0f8="; }; - nativeBuildInputs = [ cmake pkgconfig ]; + nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ curl libsigcxx SDL2 SDL2_image freetype libvorbis libpng @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { export PIONEER_DATA_DIR="$out/share/pioneer/data"; ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A space adventure game set in the Milky Way galaxy at the turn of the 31st century"; homepage = "https://pioneerspacesim.net"; license = with licenses; [ diff --git a/pkgs/games/pioneers/default.nix b/pkgs/games/pioneers/default.nix index a3a80d896c1..9e292da8c98 100644 --- a/pkgs/games/pioneers/default.nix +++ b/pkgs/games/pioneers/default.nix @@ -1,20 +1,30 @@ -{stdenv, fetchurl, gtk3, pkgconfig, intltool } : +{ lib, stdenv +, fetchurl +, pkg-config +, intltool +, itstool +, gtk3 +, libxml2 +}: stdenv.mkDerivation rec { - name = "pioneers-15.4"; + pname = "pioneers"; + version = "15.6"; + src = fetchurl { - url = "mirror://sourceforge/pio/${name}.tar.gz"; - sha256 = "1p1d18hrfmqcnghip3shkzcs5qkz6j99jvkdkqfi7pqdvjc323cs"; + url = "mirror://sourceforge/pio/${pname}-${version}.tar.gz"; + sha256 = "07b3xdd81n8ybsb4fzc5lx0813y9crzp1hj69khncf4faj48sdcs"; }; - nativeBuildInputs = [ pkgconfig intltool ]; - buildInputs = [ gtk3 ]; + nativeBuildInputs = [ pkg-config intltool itstool ]; + + buildInputs = [ gtk3 libxml2 ]; - meta = { - homepage = "http://pio.sourceforge.net/"; - license = stdenv.lib.licenses.gpl2Plus; + meta = with lib; { description = "Addicting game based on The Settlers of Catan"; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + homepage = "http://pio.sourceforge.net/"; # https does not work + license = licenses.gpl2Plus; + maintainers = with maintainers; [ viric ]; + platforms = platforms.linux; }; } diff --git a/pkgs/games/planetaryannihilation/default.nix b/pkgs/games/planetaryannihilation/default.nix index a42eb672e62..c29af6d810f 100644 --- a/pkgs/games/planetaryannihilation/default.nix +++ b/pkgs/games/planetaryannihilation/default.nix @@ -1,4 +1,4 @@ -{ stdenv, config, fetchurl, patchelf, makeWrapper, gtk2, glib, udev, alsaLib, atk +{ lib, stdenv, config, fetchurl, patchelf, makeWrapper, gtk2, glib, udev, alsa-lib, atk , nspr, fontconfig, cairo, pango, nss, freetype, gnome2, gdk-pixbuf, curl, systemd, xorg }: # TODO: use dynamic attributes once Nix 1.7 is out @@ -34,19 +34,19 @@ stdenv.mkDerivation { ln -s ${systemd}/lib/libudev.so.1 $out/lib/libudev.so.0 patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/PA" - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib xorg.libXdamage xorg.libXfixes gtk2 glib stdenv.glibc.out "$out" xorg.libXext pango udev xorg.libX11 xorg.libXcomposite alsaLib atk nspr fontconfig cairo pango nss freetype gnome2.GConf gdk-pixbuf xorg.libXrender ]}:{stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" "$out/host/CoherentUI_Host" + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib xorg.libXdamage xorg.libXfixes gtk2 glib stdenv.glibc.out "$out" xorg.libXext pango udev xorg.libX11 xorg.libXcomposite alsa-lib atk nspr fontconfig cairo pango nss freetype gnome2.GConf gdk-pixbuf xorg.libXrender ]}:{stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" "$out/host/CoherentUI_Host" - wrapProgram $out/PA --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib stdenv.glibc.out xorg.libX11 xorg.libXcursor gtk2 glib curl "$out" ]}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" + wrapProgram $out/PA --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc.lib stdenv.glibc.out xorg.libX11 xorg.libXcursor gtk2 glib curl "$out" ]}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" for f in $out/lib/*; do - patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib curl xorg.libX11 stdenv.glibc.out xorg.libXcursor "$out" ]}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" $f + patchelf --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib curl xorg.libX11 stdenv.glibc.out xorg.libXcursor "$out" ]}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" $f done ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://www.uberent.com/pa/"; description = "Next-generation RTS that takes the genre to a planetary scale"; - license = stdenv.lib.licenses.unfree; + license = lib.licenses.unfree; platforms = platforms.linux; maintainers = [ maintainers.domenkozar ]; }; diff --git a/pkgs/games/pokerth/default.nix b/pkgs/games/pokerth/default.nix index 00b1f68e137..349dd5d85cb 100644 --- a/pkgs/games/pokerth/default.nix +++ b/pkgs/games/pokerth/default.nix @@ -1,10 +1,8 @@ -{ mkDerivation, stdenv, fetchFromGitHub, runCommand, fetchpatch, patchutils, qmake, qtbase +{ lib, mkDerivation, fetchFromGitHub, runCommand, fetchpatch, patchutils, qmake, qtbase , SDL, SDL_mixer, boost, curl, gsasl, libgcrypt, libircclient, protobuf, sqlite , wrapQtAppsHook , tinyxml2, target ? "client" }: -with stdenv.lib; - let hiDPI = fetchpatch { url = "https://github.com/pokerth/pokerth/commit/ad8c9cabfb85d8293720d0f14840278d38b5feeb.patch"; @@ -17,7 +15,7 @@ let in mkDerivation rec { - name = "pokerth-${target}-${version}"; + pname = "pokerth-${target}"; version = "1.1.2"; src = fetchFromGitHub { @@ -65,7 +63,7 @@ mkDerivation rec { enableParallelBuilding = true; - meta = { + meta = with lib; { homepage = "https://www.pokerth.net"; description = "Poker game ${target}"; license = licenses.gpl3; diff --git a/pkgs/games/pong3d/default.nix b/pkgs/games/pong3d/default.nix index c7817041f7a..9e965c95482 100644 --- a/pkgs/games/pong3d/default.nix +++ b/pkgs/games/pong3d/default.nix @@ -1,9 +1,10 @@ -{stdenv, fetchurl, libX11}: +{lib, stdenv, fetchurl, libX11}: -stdenv.mkDerivation { - name = "3dpong-0.5"; +stdenv.mkDerivation rec { + pname = "3dpong"; + version = "0.5"; src = fetchurl { - url = "ftp://ftp.tuxpaint.org/unix/x/3dpong/src/3dpong-0.5.tar.gz"; + url = "ftp://ftp.tuxpaint.org/unix/x/3dpong/src/3dpong-${version}.tar.gz"; sha256 = "1ibb79sbzlbn4ra3n0qk22gqr6fg7q0jy6cm0wg2qj4z64c7hmdi"; }; @@ -17,7 +18,7 @@ stdenv.mkDerivation { meta = { homepage = "http://www.newbreedsoftware.com/3dpong/"; description = "One or two player 3d sports game based on Pong from Atari"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/portmod/default.nix b/pkgs/games/portmod/default.nix new file mode 100644 index 00000000000..9db57d3e0a9 --- /dev/null +++ b/pkgs/games/portmod/default.nix @@ -0,0 +1,98 @@ +{ lib, callPackage, python3Packages, fetchFromGitLab, cacert, + rustPlatform, bubblewrap, git, perlPackages, imagemagick, fetchurl, fetchzip, + jre, makeWrapper, tr-patcher, tes3cmd }: + +let + version = "2.0_beta9"; + + src = fetchFromGitLab { + owner = "portmod"; + repo = "Portmod"; + rev = "v${version}"; + sha256 = "0a598rb0z6gsdyr4n0lc0yc583njjii07p6vxw75xsh7292vxksc"; + }; + + portmod-rust = rustPlatform.buildRustPackage rec { + inherit src version; + pname = "portmod-rust"; + + cargoHash = "sha256-7Ce+EIbZuOur7iGOUXNWiXReuZO54LQJu+sJPw1CJGg="; + + nativeBuildInputs = [ python3Packages.python ]; + + doCheck = false; + }; + + bin-programs = [ + bubblewrap + git + python3Packages.virtualenv + tr-patcher + tes3cmd + imagemagick + ]; + +in +python3Packages.buildPythonApplication rec { + inherit src version; + + pname = "portmod"; + + SETUPTOOLS_SCM_PRETEND_VERSION = version; + + # build the rust library independantly + prePatch = '' + substituteInPlace setup.py \ + --replace "from setuptools_rust import Binding, RustExtension" "" \ + --replace "RustExtension(\"portmod.portmod\", binding=Binding.PyO3, strip=True)" "" + ''; + + propagatedBuildInputs = with python3Packages; [ + setuptools-scm + setuptools + requests + chardet + colorama + restrictedpython + appdirs + GitPython + progressbar2 + python-sat + redbaron + patool + packaging + ]; + + checkInputs = with python3Packages; [ + pytestCheckHook + ] ++ bin-programs; + + preCheck = '' + cp ${portmod-rust}/lib/libportmod.so portmod/portmod.so + export HOME=$(mktemp -d) + ''; + + # some test require network access + disabledTests = [ + "test_masters_esp" + "test_logging" + "test_execute_network_permissions" + "test_execute_permissions_bleed" + "test_git" + ]; + + # for some reason, installPhase doesn't copy the compiled binary + postInstall = '' + cp ${portmod-rust}/lib/libportmod.so $out/${python3Packages.python.sitePackages}/portmod/portmod.so + + makeWrapperArgs+=("--prefix" "GIT_SSL_CAINFO" ":" "${cacert}/etc/ssl/certs/ca-bundle.crt" \ + "--prefix" "PATH" ":" "${lib.makeBinPath bin-programs }") + ''; + + meta = { + description = "mod manager for openMW based on portage"; + homepage = "https://gitlab.com/portmod/portmod"; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ marius851000 ]; + }; +} diff --git a/pkgs/games/powermanga/default.nix b/pkgs/games/powermanga/default.nix new file mode 100644 index 00000000000..ce3f5b9bf55 --- /dev/null +++ b/pkgs/games/powermanga/default.nix @@ -0,0 +1,58 @@ +{ lib +, stdenv +, fetchurl +, autoconf +, automake +, SDL +, SDL_mixer +, libpng +}: + +stdenv.mkDerivation rec { + pname = "powermanga"; + version = "0.93.1"; + + src = fetchurl { + url = "https://linux.tlk.fr/games/Powermanga/download/powermanga-${version}.tgz"; + sha256 = "sha256-2nU/zoOQWm2z/Y6mXHDFfWYjYshsQp1saVRBcUT5Q+g="; + }; + + nativeBuildInputs = [ + autoconf + automake + ]; + + buildInputs = [ + SDL + SDL_mixer + libpng + ]; + + preConfigure = '' + ./bootstrap + ''; + + installFlags = [ + # Default is $(out)/games + "gamesdir=$(out)/bin" + # We set the scoredir to $TMPDIR. + # Otherwise it will try to write in /var/games at install time + "scoredir=$(TMPDIR)" + ]; + + meta = with lib; { + homepage = "https://linux.tlk.fr/games/Powermanga/"; + downloadPage = "https://linux.tlk.fr/games/Powermanga/download/"; + description = "An arcade 2D shoot-em-up game"; + longDescription = '' + Powermanga is an arcade 2D shoot-em-up game with 41 levels and more than + 200 sprites. It runs in 320x200 or 640x400 pixels, with Window mode or + full screen and support for 8, 15, 16, 24, and 32 bpp. As you go through + the levels, you will destroy enemy spaceships and bosses, collect gems to + power up your ship and get special powers, helpers and weapons. + ''; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/games/prboom/default.nix b/pkgs/games/prboom/default.nix index 278aa8a93ea..8adc9645b7a 100644 --- a/pkgs/games/prboom/default.nix +++ b/pkgs/games/prboom/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, SDL, SDL_mixer, SDL_net +{ lib, stdenv, fetchurl, SDL, SDL_mixer, SDL_net , libGLU ? null , libGL ? null , useOpenGL ? stdenv.hostPlatform == stdenv.buildPlatform @@ -7,28 +7,29 @@ assert useOpenGL -> libGL != null && libGLU != null; stdenv.mkDerivation rec { - name = "prboom-2.5.0"; + pname = "prboom"; + version = "2.5.0"; src = fetchurl { - url = "mirror://sourceforge/prboom/prboom-2.5.0.tar.gz"; + url = "mirror://sourceforge/prboom/prboom-${version}.tar.gz"; sha256 = "1bjb04q8dk232956k30qlpq6q0hxb904yh1nflr87jcc1x3iqv12"; }; buildInputs = [ SDL SDL_mixer SDL_net ] - ++ stdenv.lib.optionals useOpenGL [ libGL libGLU ]; + ++ lib.optionals useOpenGL [ libGL libGLU ]; doCheck = stdenv.hostPlatform == stdenv.buildPlatform; configureFlags = [ - (stdenv.lib.enableFeature useOpenGL "gl") - (stdenv.lib.enableFeature doCheck "sdltest") - ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + (lib.enableFeature useOpenGL "gl") + (lib.enableFeature doCheck "sdltest") + ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "--disable-cpu-opt" "--without-x" "ac_cv_type_uid_t=yes" "ac_cv_type_gid_t=yes" ]; - postInstall = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' + postInstall = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' mv $out/games/ $out/bin ''; } diff --git a/pkgs/games/privateer/0001-fix-VSFile-constructor.patch b/pkgs/games/privateer/0001-fix-VSFile-constructor.patch deleted file mode 100644 index 05b02fe5d73..00000000000 --- a/pkgs/games/privateer/0001-fix-VSFile-constructor.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e779a2b8d53e7e4721ce5ddb8e8b1caa753b66dd Mon Sep 17 00:00:00 2001 -From: Florian Friesdorf <flo@chaoflow.net> -Date: Wed, 4 Jan 2012 23:32:19 +0100 -Subject: [PATCH] fix VSFile constructor - ---- - src/vsfilesystem.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/vsfilesystem.h b/src/vsfilesystem.h -index 4bb7a66..71bf9b9 100644 ---- a/src/vsfilesystem.h -+++ b/src/vsfilesystem.h -@@ -291,7 +291,7 @@ namespace VSFileSystem - VSFile(); - VSFile( const char * buffer, long size, VSFileType type=ZoneBuffer, VSFileMode=ReadOnly); - VSFile( const char * filename, VSFileType type=UnknownFile, VSFileMode=ReadOnly); -- VSFile( const string &filename, VSFileType type=UnknownFile) { VSFile::VSFile( filename.c_str(), type); } -+ VSFile( const string &filename, VSFileType type=UnknownFile) { VSFile( filename.c_str(), type); } - ~VSFile(); - - FILE * GetFP() { return this->fp; } // This is still needed for special cases (when loading PNG files) --- -1.7.8 - diff --git a/pkgs/games/privateer/default.nix b/pkgs/games/privateer/default.nix deleted file mode 100644 index 16d0036b658..00000000000 --- a/pkgs/games/privateer/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ stdenv, fetchsvn, boost, cmake, ffmpeg_3, freeglut, glib, - gtk2, libjpeg, libpng, libpthreadstubs, libvorbis, libXau, libXdmcp, - libXmu, libGLU, libGL, openal, pixman, pkgconfig, python27, SDL }: - -stdenv.mkDerivation { - name = "privateer-1.03"; - - src = fetchsvn { - #url = "mirror://sourceforge/project/privateer/Wing%20Commander%20Privateer/Privateer%20Gemini%20Gold%201.03/PrivateerGold1.03.bz2.bin"; - url = "https://privateer.svn.sourceforge.net/svnroot/privateer/privgold/trunk/engine"; - rev = "294"; - sha256 = "e1759087d4565d3fc95e5c87d0f6ddf36b2cd5befec5695ec56ed5f3cd144c63"; - }; - - buildInputs = - [ boost cmake ffmpeg_3 freeglut glib gtk2 libjpeg libpng - libpthreadstubs libvorbis libXau libXdmcp libXmu libGLU libGL openal - pixman pkgconfig python27 SDL ]; - - patches = [ ./0001-fix-VSFile-constructor.patch ]; - - preConfigure = '' - NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags gtk+-2.0)" - ''; - - installPhase = '' - mkdir -p $out/bin - cp vegastrike $out/bin - cp vegaserver $out/bin - ''; - - meta = with stdenv.lib; { - homepage = "http://privateer.sourceforge.net/"; - description = "Adventure space flight simulation computer game"; - license = licenses.gpl2Plus; # and a special license for art data - # https://sourceforge.net/p/privateer/code/HEAD/tree/privgold/trunk/data/art-license.txt - - maintainers = with maintainers; [ ]; - platforms = with platforms; linux ++ darwin; - hydraPlatforms = []; - broken = true; # it won't build - }; -} diff --git a/pkgs/games/pro-office-calculator/default.nix b/pkgs/games/pro-office-calculator/default.nix index 7a0e3bec78d..381a6e8742b 100644 --- a/pkgs/games/pro-office-calculator/default.nix +++ b/pkgs/games/pro-office-calculator/default.nix @@ -1,4 +1,4 @@ -{ mkDerivation, stdenv, fetchFromGitHub, tinyxml-2, cmake, qtbase, qtmultimedia }: +{ mkDerivation, lib, fetchFromGitHub, tinyxml-2, cmake, qtbase, qtmultimedia }: mkDerivation rec { version = "1.0.13"; pname = "pro-office-calculator"; @@ -14,8 +14,8 @@ mkDerivation rec { nativeBuildInputs = [ cmake ]; - meta = with stdenv.lib; { - description = "Just an ordinary calculator. Nothing to see here..."; + meta = with lib; { + description = "A completely normal office calculator"; homepage = "https://proofficecalculator.com/"; maintainers = [ maintainers.pmiddend ]; platforms = platforms.linux; diff --git a/pkgs/games/pysolfc/default.nix b/pkgs/games/pysolfc/default.nix index 5689edf4f4c..925532bbbf5 100644 --- a/pkgs/games/pysolfc/default.nix +++ b/pkgs/games/pysolfc/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchzip, buildPythonApplication, python3Packages +{ lib, fetchzip, buildPythonApplication, python3Packages , desktop-file-utils, freecell-solver }: buildPythonApplication rec { @@ -39,10 +39,10 @@ buildPythonApplication rec { # No tests in archive doCheck = false; - meta = with stdenv.lib; { + meta = with lib; { description = "A collection of more than 1000 solitaire card games"; homepage = "https://pysolfc.sourceforge.io"; license = licenses.gpl3; - maintainers = with maintainers; [ kierdavis genesis ]; + maintainers = with maintainers; [ kierdavis ]; }; } diff --git a/pkgs/games/qqwing/default.nix b/pkgs/games/qqwing/default.nix index 43fa45ca432..3fadd73ce18 100644 --- a/pkgs/games/qqwing/default.nix +++ b/pkgs/games/qqwing/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, perl, autoconf, automake, libtool }: +{ lib, stdenv, fetchFromGitHub, perl, autoconf, automake, libtool }: stdenv.mkDerivation rec { pname = "qqwing"; @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { makeFlags = [ "prefix=$(out)" "tgz" ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://qqwing.com"; description = "Sudoku generating and solving software"; license = licenses.gpl2; diff --git a/pkgs/games/qtads/default.nix b/pkgs/games/qtads/default.nix index 140cba2e9ae..f966798ce4e 100644 --- a/pkgs/games/qtads/default.nix +++ b/pkgs/games/qtads/default.nix @@ -1,4 +1,4 @@ -{ lib, mkDerivation, fetchFromGitHub, fetchpatch, pkgconfig, qmake +{ lib, mkDerivation, fetchFromGitHub, fetchpatch, pkg-config, qmake , SDL2, fluidsynth, libsndfile, libvorbis, mpg123, qtbase }: @@ -13,7 +13,7 @@ mkDerivation rec { sha256 = "02kk2hs20h9ffhylwms9f8zikmmlrz1nvbrm97gis9iljkyx035c"; }; - nativeBuildInputs = [ pkgconfig qmake ]; + nativeBuildInputs = [ pkg-config qmake ]; buildInputs = [ SDL2 fluidsynth libsndfile libvorbis mpg123 qtbase ]; diff --git a/pkgs/games/quake2/yquake2/default.nix b/pkgs/games/quake2/yquake2/default.nix index 3af692d5bf9..57405d9abd3 100644 --- a/pkgs/games/quake2/yquake2/default.nix +++ b/pkgs/games/quake2/yquake2/default.nix @@ -24,8 +24,6 @@ let sha256 = "1dszbvxlh1npq4nv9s4wv4lcyfgb01k92ncxrrczsxy1dddg86pp"; }; - enableParallelBuilding = true; - nativeBuildInputs = [ cmake ]; buildInputs = [ SDL2 libGL curl ] @@ -57,7 +55,7 @@ let cp $src/stuff/yq2.cfg $out/share/games/quake2 ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Yamagi Quake II client"; homepage = "https://www.yamagi.org/quake2/"; license = licenses.gpl2; diff --git a/pkgs/games/quake2/yquake2/games.nix b/pkgs/games/quake2/yquake2/games.nix index 98354a46d4a..0c9b24963ba 100644 --- a/pkgs/games/quake2/yquake2/games.nix +++ b/pkgs/games/quake2/yquake2/games.nix @@ -28,7 +28,7 @@ let inherit (data) id version description sha256; inherit title; - name = "yquake2-${title}-${version}"; + pname = "yquake2-${title}"; src = fetchFromGitHub { inherit sha256; @@ -37,8 +37,6 @@ let rev = "${lib.toUpper id}_${builtins.replaceStrings ["."] ["_"] version}"; }; - enableParallelBuilding = true; - nativeBuildInputs = [ cmake ]; installPhase = '' @@ -46,7 +44,7 @@ let cp Release/* $out/lib/yquake2/${id} ''; - meta = with stdenv.lib; { + meta = with lib; { inherit (data) description; homepage = "https://www.yamagi.org/quake2/"; license = licenses.unfree; diff --git a/pkgs/games/quake2/yquake2/wrapper.nix b/pkgs/games/quake2/yquake2/wrapper.nix index 9ab086f96a2..4850dff99dc 100644 --- a/pkgs/games/quake2/yquake2/wrapper.nix +++ b/pkgs/games/quake2/yquake2/wrapper.nix @@ -12,7 +12,7 @@ let }; in stdenv.mkDerivation { - name = "${name}-${stdenv.lib.getVersion yquake2}"; + name = "${name}-${lib.getVersion yquake2}"; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/games/quake3/content/demo.nix b/pkgs/games/quake3/content/demo.nix index 0d8a64f14cd..36d0396ec79 100644 --- a/pkgs/games/quake3/content/demo.nix +++ b/pkgs/games/quake3/content/demo.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl }: +{ lib, stdenv, fetchurl }: let version = "1.11-6"; @@ -20,7 +20,7 @@ in stdenv.mkDerivation { preferLocalBuild = true; - meta = with stdenv.lib; { + meta = with lib; { description = "Quake 3 Arena demo content"; license = licenses.unfreeRedistributable; platforms = platforms.all; diff --git a/pkgs/games/quake3/content/hires.nix b/pkgs/games/quake3/content/hires.nix new file mode 100644 index 00000000000..7314028d540 --- /dev/null +++ b/pkgs/games/quake3/content/hires.nix @@ -0,0 +1,26 @@ +{ stdenv, lib, fetchzip }: + +stdenv.mkDerivation { + pname = "quake3hires"; + version = "2020-01-20"; # Unknown version, used the date of web.archive.org capture. + + src = fetchzip { + url = "https://web.archive.org/web/20200120024216/http://ioquake3.org/files/xcsv_hires.zip"; + sha256 = "09vhrray8mh1ic2qgcwv0zlmsnz789y32dkkvrz1vdki4yqkf717"; + stripRoot = false; + }; + + buildCommand = '' + mkdir -p $out/baseq3 + install -Dm444 $src/xcsv_bq3hi-res.pk3 $out/baseq3/xcsv_bq3hi-res.pk3 + ''; + + preferLocalBuild = true; + + meta = with lib; { + description = "Quake 3 high-resolution textures"; + license = licenses.cc0; + platforms = platforms.all; + maintainers = with maintainers; [ rvolosatovs ]; + }; +} diff --git a/pkgs/games/quake3/content/pointrelease.nix b/pkgs/games/quake3/content/pointrelease.nix index e34064d93b0..d9c9a55ddce 100644 --- a/pkgs/games/quake3/content/pointrelease.nix +++ b/pkgs/games/quake3/content/pointrelease.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl }: +{ lib, stdenv, fetchurl }: let version = "1.32b-3"; @@ -20,7 +20,7 @@ in stdenv.mkDerivation { preferLocalBuild = true; - meta = with stdenv.lib; { + meta = with lib; { description = "Quake 3 Arena point release"; license = licenses.unfreeRedistributable; platforms = platforms.all; diff --git a/pkgs/games/quake3/ioquake/default.nix b/pkgs/games/quake3/ioquake/default.nix index 285fb7e6884..e006507a633 100644 --- a/pkgs/games/quake3/ioquake/default.nix +++ b/pkgs/games/quake3/ioquake/default.nix @@ -1,19 +1,19 @@ -{ stdenv, fetchFromGitHub, which, pkgconfig, SDL2, libGL, openalSoft +{ lib, stdenv, fetchFromGitHub, which, pkg-config, SDL2, libGL, openalSoft , curl, speex, opusfile, libogg, libvorbis, libopus, libjpeg, mumble, freetype }: stdenv.mkDerivation { pname = "ioquake3-git"; - version = "2019-05-29"; + version = "2020-12-26"; src = fetchFromGitHub { owner = "ioquake"; repo = "ioq3"; - rev = "350b8f9c7c88c002dccea4f0350f1919b86d3b4e"; - sha256 = "17qkqi22f2fyh6bnfcf1zz2lycgv08d6aw52sf0hqw7r3qq86d08"; + rev = "05180e32dcfb9a4552e1b9652b56127248a9950c"; + sha256 = "0hcxxa1ambpdwhg7nb5hvb32g49rl5p9dcflpzcv5cax9drn166i"; }; - nativeBuildInputs = [ which pkgconfig ]; + nativeBuildInputs = [ which pkg-config ]; buildInputs = [ SDL2 libGL openalSoft curl speex opusfile libogg libvorbis libopus libjpeg freetype mumble @@ -31,10 +31,10 @@ stdenv.mkDerivation { mkdir -p $out/baseq3 ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://ioquake3.org/"; description = "First person shooter engine based on the Quake 3: Arena and Quake 3: Team Arena"; - license = licenses.gpl2; + license = licenses.gpl2Only; platforms = platforms.linux; maintainers = with maintainers; [ rvolosatovs eelco abbradar ]; }; diff --git a/pkgs/games/quake3/quake3e/default.nix b/pkgs/games/quake3/quake3e/default.nix index 0e3e74ae7a7..25c6b4ddec0 100644 --- a/pkgs/games/quake3/quake3e/default.nix +++ b/pkgs/games/quake3/quake3e/default.nix @@ -1,4 +1,4 @@ -{ stdenv, curl, libGL, libX11, libXxf86dga, alsaLib, libXrandr, libXxf86vm, libXext, fetchFromGitHub }: +{ lib, stdenv, curl, libGL, libX11, libXxf86dga, alsa-lib, libXrandr, libXxf86vm, libXext, fetchFromGitHub }: stdenv.mkDerivation rec { pname = "Quake3e"; @@ -11,12 +11,12 @@ stdenv.mkDerivation rec { sha256 = "1jvk8qd0mi0x8lslknhkfd8h6ridwca34c6qahsbmmpcgsvdv16s"; }; - buildInputs = [ curl libGL libX11 libXxf86dga alsaLib libXrandr libXxf86vm libXext ]; + buildInputs = [ curl libGL libX11 libXxf86dga alsa-lib libXrandr libXxf86vm libXext ]; enableParallelBuilding = true; postPatch = '' sed -i -e 's#OpenGLLib = dlopen( dllname#OpenGLLib = dlopen( "${libGL}/lib/libGL.so"#' code/unix/linux_qgl.c - sed -i -e 's#Sys_LoadLibrary( "libasound.so.2" )#Sys_LoadLibrary( "${alsaLib}/lib/libasound.so.2" )#' code/unix/linux_snd.c + sed -i -e 's#Sys_LoadLibrary( "libasound.so.2" )#Sys_LoadLibrary( "${alsa-lib}/lib/libasound.so.2" )#' code/unix/linux_snd.c sed -i -e 's#Sys_LoadLibrary( "libXrandr.so.2" )#Sys_LoadLibrary( "${libXrandr}/lib/libXrandr.so.2" )#' code/unix/x11_randr.c sed -i -e 's#Sys_LoadLibrary( "libXxf86vm.so.1" )#Sys_LoadLibrary( "${libXxf86vm}/lib/libXxf86vm.so.1" )#' code/unix/x11_randr.c sed -i -e 's#Sys_LoadLibrary( "libXxf86dga.so.1" )#Sys_LoadLibrary( "${libXxf86dga}/lib/libXxf86dga.so.1" )#' code/unix/x11_dga.c @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { cp build/*/*x64 $out/bin ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/ec-/Quake3e"; description = "Improved Quake III Arena engine"; license = licenses.gpl2; diff --git a/pkgs/games/quake3/wrapper/default.nix b/pkgs/games/quake3/wrapper/default.nix index 4ab53d67732..3cb64641153 100644 --- a/pkgs/games/quake3/wrapper/default.nix +++ b/pkgs/games/quake3/wrapper/default.nix @@ -1,6 +1,6 @@ { stdenv, buildEnv, lib, libGL, ioquake3, makeWrapper }: -{ paks, name ? (stdenv.lib.head paks).name, description ? "" }: +{ paks, name ? (lib.head paks).name, description ? "" }: let libPath = lib.makeLibraryPath [ libGL stdenv.cc.cc ]; diff --git a/pkgs/games/quakespasm/default.nix b/pkgs/games/quakespasm/default.nix index 1e8de1a18f0..41589caed6d 100644 --- a/pkgs/games/quakespasm/default.nix +++ b/pkgs/games/quakespasm/default.nix @@ -1,12 +1,13 @@ -{ stdenv, SDL, fetchurl, gzip, libvorbis, libmad }: +{ lib, stdenv, SDL, fetchurl, gzip, libvorbis, libmad }: + stdenv.mkDerivation rec { pname = "quakespasm"; majorVersion = "0.93"; - version = "${majorVersion}.1"; + version = "${majorVersion}.2"; src = fetchurl { url = "mirror://sourceforge/quakespasm/quakespasm-${version}.tgz"; - sha256 = "1bimv18f6rzhyjz78yvw2vqr5n0kdqbcqmq7cb3m951xgsxfcgpd"; + sha256 = "0qm0j5drybvvq8xadfyppkpk3rxqsxbywzm6iwsjwdf0iia3gss5"; }; sourceRoot = "${pname}-${version}/Quake"; @@ -24,7 +25,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = { + meta = with lib; { description = "An engine for iD software's Quake"; homepage = "http://quakespasm.sourceforge.net/"; longDescription = '' @@ -36,7 +37,7 @@ stdenv.mkDerivation rec { and smoother mouse input - though no CD support. ''; - platforms = stdenv.lib.platforms.linux; - maintainers = [ stdenv.lib.maintainers.m3tti ]; + platforms = platforms.linux; + maintainers = with maintainers; [ m3tti ]; }; } diff --git a/pkgs/games/quakespasm/vulkan.nix b/pkgs/games/quakespasm/vulkan.nix index deca3bec9cc..0d0b03f514b 100644 --- a/pkgs/games/quakespasm/vulkan.nix +++ b/pkgs/games/quakespasm/vulkan.nix @@ -1,24 +1,29 @@ -{ stdenv, SDL2, fetchFromGitHub, makeWrapper, gzip, libvorbis, libmad, vulkan-headers, vulkan-loader }: +{ lib, stdenv, fetchFromGitHub, makeWrapper, SDL2, gzip, libvorbis, libmad, vulkan-headers, vulkan-loader }: stdenv.mkDerivation rec { pname = "vkquake"; - version = "1.04.1"; + version = "1.05.2"; src = fetchFromGitHub { owner = "Novum"; repo = "vkQuake"; rev = version; - sha256 = "1ry861pk3z02hy7i0yi3xwmd1zma802qzcnlm09w6pslayd9rwbf"; + sha256 = "sha256-h4TpeOwCK3Ynd+XZKo7wHncWS1OI6+b9SReD5xMK9zk="; }; sourceRoot = "source/Quake"; nativeBuildInputs = [ - makeWrapper vulkan-headers + makeWrapper + vulkan-headers ]; buildInputs = [ - gzip SDL2 libvorbis libmad vulkan-loader + gzip + SDL2 + libvorbis + libmad + vulkan-loader ]; buildFlags = [ "DO_USERDIRS=1" ]; @@ -30,12 +35,13 @@ stdenv.mkDerivation rec { makeFlags = [ "prefix=$(out) bindir=$(out)/bin" ]; postFixup = '' - wrapProgram $out/bin/vkquake --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib + wrapProgram $out/bin/vkquake \ + --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib ''; enableParallelBuilding = true; - meta = { + meta = with lib; { description = "Vulkan Quake port based on QuakeSpasm"; homepage = src.meta.homepage; longDescription = '' @@ -47,7 +53,7 @@ stdenv.mkDerivation rec { specialization constants, CPU/GPU parallelism and memory pooling. ''; - platforms = stdenv.lib.platforms.linux; - maintainers = [ stdenv.lib.maintainers.gnidorah ]; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; }; } diff --git a/pkgs/games/quantumminigolf/default.nix b/pkgs/games/quantumminigolf/default.nix index 1a8cbbea5f9..61e2e1c4eb3 100644 --- a/pkgs/games/quantumminigolf/default.nix +++ b/pkgs/games/quantumminigolf/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, fftwSinglePrec, freetype, SDL, SDL_ttf}: +{lib, stdenv, fetchurl, fftwSinglePrec, freetype, SDL, SDL_ttf}: let s = # Generated upstream information rec { @@ -32,9 +32,9 @@ stdenv.mkDerivation { ''; meta = { inherit (s) version; - description = ''Quantum mechanics-based minigolf-like game''; - license = stdenv.lib.licenses.gpl2 ; - maintainers = [stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.linux; + description = "Quantum mechanics-based minigolf-like game"; + license = lib.licenses.gpl2 ; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/r2mod_cli/default.nix b/pkgs/games/r2mod_cli/default.nix new file mode 100644 index 00000000000..169385576ac --- /dev/null +++ b/pkgs/games/r2mod_cli/default.nix @@ -0,0 +1,37 @@ +{ fetchFromGitHub +, bashInteractive +, jq +, makeWrapper +, p7zip +, lib, stdenv +}: + +stdenv.mkDerivation rec { + pname = "r2mod_cli"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "Foldex"; + repo = "r2mod_cli"; + rev = "v${version}"; + sha256 = "sha256-VNqdVDBR6+eNOeUthPXLfz+0VoaNfSj4f04HLvjg6/0="; + }; + + buildInputs = [ bashInteractive ]; + + nativeBuildInputs = [ makeWrapper ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + postInstall = '' + wrapProgram $out/bin/r2mod --prefix PATH : "${lib.makeBinPath [ jq p7zip ]}"; + ''; + + meta = with lib; { + description = "A Risk of Rain 2 Mod Manager in Bash"; + homepage = "https://github.com/foldex/r2mod_cli"; + license = licenses.gpl3Only; + maintainers = [ maintainers.reedrw ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/games/racer/default.nix b/pkgs/games/racer/default.nix index a5d9a911afa..bdb56c85dbf 100644 --- a/pkgs/games/racer/default.nix +++ b/pkgs/games/racer/default.nix @@ -1,19 +1,20 @@ -{ fetchurl, stdenv, allegro, libjpeg, makeWrapper }: +{ fetchurl, lib, stdenv, allegro, libjpeg, makeWrapper }: -stdenv.mkDerivation { - name = "racer-1.1"; +stdenv.mkDerivation rec { + pname = "racer"; + version = "1.1"; src = if stdenv.hostPlatform.system == "i686-linux" then fetchurl { - url = "http://hippo.nipax.cz/src/racer-1.1.tar.gz"; + url = "http://hippo.nipax.cz/src/racer-${version}.tar.gz"; sha256 = "0fll1qkqfcjq87k0jzsilcw701z92lfxn2y5ga1n038772lymxl9"; } else if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { - url = "https://hippo.nipax.cz/src/racer-1.1.64.tar.gz"; + url = "https://hippo.nipax.cz/src/racer-${version}.64.tar.gz"; sha256 = "0rjy3gmlhwfkb9zs58j0mc0dar0livwpbc19r6zw5r2k6r7xdan0"; } else throw "System not supported"; - - buildInputs = [ allegro libjpeg makeWrapper ]; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ allegro libjpeg ]; prePatch = '' sed -i s,/usr/local,$out, Makefile src/HGFX.cpp src/STDH.cpp @@ -25,7 +26,7 @@ stdenv.mkDerivation { meta = { description = "Car racing game"; homepage = "http://hippo.nipax.cz/download.en.php"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/redeclipse/default.nix b/pkgs/games/redeclipse/default.nix index fc6f50ef97e..07c2b9e33ad 100644 --- a/pkgs/games/redeclipse/default.nix +++ b/pkgs/games/redeclipse/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchFromGitHub, fetchurl, fetchpatch -, curl, ed, pkgconfig, freetype, zlib, libX11 +{ lib, stdenv, fetchFromGitHub, fetchurl, fetchpatch +, curl, ed, pkg-config, freetype, zlib, libX11 , SDL2, SDL2_image, SDL2_mixer }: @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { ]; nativeBuildInputs = [ - curl ed pkgconfig + curl ed pkg-config ]; makeFlags = [ "-C" "src/" "prefix=$(out)" ]; @@ -31,8 +31,8 @@ stdenv.mkDerivation rec { cp -R -t $out/share/redeclipse/data/ data/* ''; - meta = with stdenv.lib; { - description = "A first person arena shooter, featuring parkour, impulse boosts, and more."; + meta = with lib; { + description = "A first person arena shooter, featuring parkour, impulse boosts, and more"; longDescription = '' Red Eclipse is a fun-filled new take on the first person arena shooter, featuring parkour, impulse boosts, and more. The development is geared diff --git a/pkgs/games/residualvm/default.nix b/pkgs/games/residualvm/default.nix index da003c3190f..9a836c59508 100644 --- a/pkgs/games/residualvm/default.nix +++ b/pkgs/games/residualvm/default.nix @@ -1,12 +1,10 @@ -{ stdenv, fetchurl, SDL, zlib, libmpeg2, libmad, libogg, libvorbis, flac, alsaLib -, libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms +{ lib, stdenv, fetchurl, SDL, zlib, libmpeg2, libmad, libogg, libvorbis, flac, alsa-lib +, libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms , openglSupport ? libGLSupported, libGLU, libGL ? null }: assert openglSupport -> libGL != null && libGLU != null; -with stdenv.lib; - stdenv.mkDerivation rec { version = "0.1.1"; pname = "residualvm"; @@ -16,16 +14,16 @@ stdenv.mkDerivation rec { sha256 = "99c419b13885a49bdfc10a50a3a6000fd1ba9504f6aae04c74b840ec6f57a963"; }; - buildInputs = [ stdenv SDL zlib libmpeg2 libmad libogg libvorbis flac alsaLib ] - ++ optionals openglSupport [ libGL libGLU ]; + buildInputs = [ stdenv SDL zlib libmpeg2 libmad libogg libvorbis flac alsa-lib ] + ++ lib.optionals openglSupport [ libGL libGLU ]; configureFlags = [ "--enable-all-engines" ]; - meta = { + meta = with lib; { description = "Interpreter for LucasArts' Lua-based 3D adventure games"; homepage = "http://residualvm.org/"; repositories.git = "https://github.com/residualvm/residualvm.git"; license = licenses.gpl2; - platforms = stdenv.lib.platforms.linux; + platforms = platforms.linux; }; } diff --git a/pkgs/games/rftg/default.nix b/pkgs/games/rftg/default.nix index 966f903888b..1dfeaf3c3a8 100644 --- a/pkgs/games/rftg/default.nix +++ b/pkgs/games/rftg/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, gtk2, pkgconfig }: +{ lib, stdenv, fetchurl, gtk2, pkg-config }: stdenv.mkDerivation rec { @@ -10,14 +10,14 @@ stdenv.mkDerivation rec { sha256 = "0j2y6ggpwdlvyqhirp010aix2g6aacj3kvggvpwzxhig30x9vgq8"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ gtk2.dev ]; meta = { homepage = "http://keldon.net/rftg/"; description = "Implementation of the card game Race for the Galaxy, including an AI"; - license = stdenv.lib.licenses.gpl2; - maintainers = [ stdenv.lib.maintainers.falsifian ]; + license = lib.licenses.gpl2; + maintainers = [ lib.maintainers.falsifian ]; }; } diff --git a/pkgs/games/rigsofrods/default.nix b/pkgs/games/rigsofrods/default.nix index 9aa51bf344e..72c8a49939d 100644 --- a/pkgs/games/rigsofrods/default.nix +++ b/pkgs/games/rigsofrods/default.nix @@ -1,5 +1,5 @@ -{ fetchFromGitHub, stdenv, wxGTK30, freeimage, cmake, zziplib, libGLU, libGL, boost, - pkgconfig, libuuid, openal, ogre, ois, curl, gtk2, mygui, unzip, +{ fetchFromGitHub, lib, stdenv, wxGTK30, freeimage, cmake, zziplib, libGLU, libGL, boost, + pkg-config, libuuid, openal, ogre, ois, curl, gtk2, mygui, unzip, angelscript, ogrepaged, mysocketw, libxcb }: @@ -14,8 +14,6 @@ stdenv.mkDerivation rec { sha256 = "0cb1il7qm45kfhh6h6jwfpxvjlh2dmg8z1yz9kj4d6098myf2lg4"; }; - enableParallelBuilding = true; - installPhase = '' sed -e "s@/usr/local/lib/OGRE@${ogre}/lib/OGRE@" -i ../tools/linux/binaries/plugins.cfg mkdir -p $out/share/rigsofrods @@ -25,17 +23,17 @@ stdenv.mkDerivation rec { ln -s $out/share/rigsofrods/{RoR,RoRConfig} $out/bin ''; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ wxGTK30 freeimage cmake zziplib libGLU libGL boost - libuuid openal ogre ois curl gtk2 mygui unzip angelscript + nativeBuildInputs = [ cmake pkg-config unzip ]; + buildInputs = [ wxGTK30 freeimage zziplib libGLU libGL boost + libuuid openal ogre ois curl gtk2 mygui angelscript ogrepaged mysocketw libxcb ]; - meta = { + meta = with lib; { description = "3D simulator game where you can drive, fly and sail various vehicles"; homepage = "http://rigsofrods.sourceforge.net/"; - license = stdenv.lib.licenses.gpl3; - maintainers = with stdenv.lib.maintainers; [raskin]; - platforms = stdenv.lib.platforms.linux; + license = licenses.gpl3; + maintainers = with maintainers; [ raskin ]; + platforms = platforms.linux; hydraPlatforms = []; }; } diff --git a/pkgs/games/riko4/default.nix b/pkgs/games/riko4/default.nix index 5ea9b8f5416..7014bf9ca21 100644 --- a/pkgs/games/riko4/default.nix +++ b/pkgs/games/riko4/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, SDL2, libGLU, luajit, curl, curlpp }: +{ lib, stdenv, fetchFromGitHub, cmake, SDL2, libGLU, luajit, curl, curlpp }: let # Newer versions of sdl-gpu don't work with Riko4 (corrupted graphics), @@ -15,9 +15,8 @@ let }; buildInputs = [ SDL2 libGLU ]; nativeBuildInputs = [ cmake ]; - enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/grimfang4/sdl-gpu"; description = "A library for high-performance, modern 2D graphics with SDL written in C"; license = licenses.mit; @@ -57,9 +56,7 @@ stdenv.mkDerivation rec { chmod +x $out/bin/riko4 ''; - enableParallelBuilding = true; - - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/incinirate/Riko4"; description = "Fantasy console for pixel art game development"; license = licenses.mit; diff --git a/pkgs/games/rili/default.nix b/pkgs/games/rili/default.nix index 0b7fa118f80..a0082d28d50 100644 --- a/pkgs/games/rili/default.nix +++ b/pkgs/games/rili/default.nix @@ -1,10 +1,11 @@ -{ stdenv, fetchurl, SDL_mixer, SDL, autoreconfHook }: +{ lib, stdenv, fetchurl, SDL_mixer, SDL, autoreconfHook }: -stdenv.mkDerivation { - name = "ri_li-2.0.1"; +stdenv.mkDerivation rec { + pname = "ri_li"; + version = "2.0.1"; src = fetchurl { - url = "mirror://sourceforge/ri-li/Ri-li-2.0.1.tar.bz2"; + url = "mirror://sourceforge/ri-li/Ri-li-${version}.tar.bz2"; sha256 = "f71ccc20c37c601358d963e087ac0d524de8c68e96df09c3aac1ae65edd38dbd"; }; @@ -17,14 +18,14 @@ stdenv.mkDerivation { meta = { homepage = "http://ri-li.sourceforge.net"; - license = stdenv.lib.licenses.gpl2Plus; + license = lib.licenses.gpl2Plus; description = "A children's train game"; longDescription = '' Ri-li is an arcade game licensed under the GPL (General Public License). You drive a toy wood engine in many levels and you must collect all the coaches to win. ''; - maintainers = with stdenv.lib.maintainers; [ jcumming ]; - platforms = with stdenv.lib.platforms; linux; + maintainers = with lib.maintainers; [ jcumming ]; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/games/rimshot/default.nix b/pkgs/games/rimshot/default.nix index 2e5087319f0..1f4efa5097b 100644 --- a/pkgs/games/rimshot/default.nix +++ b/pkgs/games/rimshot/default.nix @@ -1,9 +1,14 @@ -{ stdenv, fetchurl, unzip, love, lua, makeWrapper, makeDesktopItem }: +{ lib, stdenv, fetchurl, unzip, love, lua, makeWrapper, makeDesktopItem }: -let +stdenv.mkDerivation rec { pname = "rimshot"; version = "1.0"; + src = fetchurl { + url = "https://stabyourself.net/dl.php?file=${pname}/${pname}-source.zip"; + sha256 = "08pdkyvki92549605m9bqnr24ipkbwkp5nkr5aagdqnr8ai4rgmi"; + }; + icon = fetchurl { url = "http://stabyourself.net/images/screenshots/rimshot-2.png"; sha256 = "08fyiqym3gcpq2vgb5dvafkban42fsbzfcr3iiyw03hz99q53psd"; @@ -19,16 +24,6 @@ let categories = "Audio;AudioVideo;Music"; }; -in - -stdenv.mkDerivation { - name = "${pname}-${version}"; - - src = fetchurl { - url = "http://stabyourself.net/dl.php?file=${pname}/${pname}-source.zip"; - sha256 = "08pdkyvki92549605m9bqnr24ipkbwkp5nkr5aagdqnr8ai4rgmi"; - }; - nativeBuildInputs = [ makeWrapper unzip ]; buildInputs = [ lua love ]; @@ -36,7 +31,7 @@ stdenv.mkDerivation { unpackPhase = '' unzip -j $src - ''; + ''; installPhase = '' @@ -51,7 +46,7 @@ stdenv.mkDerivation { ln -s ${desktopItem}/share/applications/* $out/share/applications/ ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Create your own music"; maintainers = with maintainers; [ leenaars ]; platforms = platforms.linux; diff --git a/pkgs/games/robotfindskitten/default.nix b/pkgs/games/robotfindskitten/default.nix index 73beba2e34f..382c2ef71ae 100644 --- a/pkgs/games/robotfindskitten/default.nix +++ b/pkgs/games/robotfindskitten/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, pkgconfig, ncurses }: +{ lib, stdenv, fetchurl, pkg-config, ncurses }: -with stdenv.lib; +with lib; stdenv.mkDerivation rec { pname = "robotfindskitten"; @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { sha256 = "1bwrkxm83r9ajpkd6x03nqvmdfpf5vz6yfy0c97pq3v3ykj74082"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ ncurses ]; makeFlags = [ "execgamesdir=$(out)/bin" ]; diff --git a/pkgs/games/rocksndiamonds/default.nix b/pkgs/games/rocksndiamonds/default.nix index ebced6467d2..fd570e4d7c6 100644 --- a/pkgs/games/rocksndiamonds/default.nix +++ b/pkgs/games/rocksndiamonds/default.nix @@ -1,12 +1,11 @@ -{ stdenv, fetchurl, makeDesktopItem, SDL2, SDL2_image, SDL2_mixer, SDL2_net }: +{ lib, stdenv, fetchurl, makeDesktopItem, SDL2, SDL2_image, SDL2_mixer, SDL2_net }: stdenv.mkDerivation rec { - name = "${project}-${version}"; - project = "rocksndiamonds"; + pname = "rocksndiamonds"; version = "4.1.1.0"; src = fetchurl { - url = "https://www.artsoft.org/RELEASES/unix/${project}/${name}.tar.gz"; + url = "https://www.artsoft.org/RELEASES/unix/${pname}/rocksndiamonds-${version}.tar.gz"; sha256 = "1k0m6l5g886d9mwwh6q0gw75qsb85mpf8i0rglh047app56nsk72"; }; @@ -39,7 +38,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { description = "Scrolling tile-based arcade style puzzle game"; homepage = "https://www.artsoft.org/rocksndiamonds/"; license = licenses.gpl2; diff --git a/pkgs/games/rogue/default.nix b/pkgs/games/rogue/default.nix index 592f897f20f..127d65ff362 100644 --- a/pkgs/games/rogue/default.nix +++ b/pkgs/games/rogue/default.nix @@ -1,13 +1,14 @@ -{stdenv, fetchurl, ncurses}: +{lib, stdenv, fetchurl, ncurses}: -stdenv.mkDerivation { - name = "rogue-5.4.4"; +stdenv.mkDerivation rec { + pname = "rogue"; + version = "5.4.4"; src = fetchurl { urls = [ - "https://src.fedoraproject.org/repo/pkgs/rogue/rogue5.4.4-src.tar.gz/033288f46444b06814c81ea69d96e075/rogue5.4.4-src.tar.gz" - "http://ftp.vim.org/ftp/pub/ftp/os/Linux/distr/slitaz/sources/packages-cooking/r/rogue5.4.4-src.tar.gz" - "http://rogue.rogueforge.net/files/rogue5.4/rogue5.4.4-src.tar.gz" + "https://src.fedoraproject.org/repo/pkgs/rogue/rogue${version}-src.tar.gz/033288f46444b06814c81ea69d96e075/rogue${version}-src.tar.gz" + "http://ftp.vim.org/ftp/pub/ftp/os/Linux/distr/slitaz/sources/packages-cooking/r/rogue${version}-src.tar.gz" + "http://rogue.rogueforge.net/files/rogue${lib.versions.majorMinor version}/rogue${version}-src.tar.gz" ]; sha256 = "18g81274d0f7sr04p7h7irz0d53j6kd9j1y3zbka1gcqq0gscdvx"; }; @@ -17,7 +18,7 @@ stdenv.mkDerivation { # Fix build for recent ncurses versions NIX_CFLAGS_COMPILE = "-DNCURSES_INTERNALS=1"; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://rogue.rogueforge.net/rogue-5-4/"; description = "The final version of the original Rogue game developed for the UNIX operating system"; platforms = platforms.all; diff --git a/pkgs/games/rpg-cli/default.nix b/pkgs/games/rpg-cli/default.nix new file mode 100644 index 00000000000..44e35c3787d --- /dev/null +++ b/pkgs/games/rpg-cli/default.nix @@ -0,0 +1,25 @@ +{ rustPlatform, fetchFromGitHub, lib }: + +rustPlatform.buildRustPackage rec { + pname = "rpg-cli"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "facundoolano"; + repo = pname; + rev = version; + sha256 = "sha256-LRTHnYxjPraVISAERT6XJGKIA3YJIilgEwU6olq2CRc="; + }; + + cargoSha256 = "sha256-ZlQy/JiYKDKPCEWrAFvKV6WsAkk2zsPpfJADB+kPyuo="; + + # tests assume the authors macbook, and thus fail + doCheck = false; + + meta = with lib; { + description = "Your filesystem as a dungeon"; + homepage = "https://github.com/facundoolano/rpg-cli"; + license = licenses.mit; + maintainers = with maintainers; [ legendofmiracles ]; + }; +} diff --git a/pkgs/games/rrootage/default.nix b/pkgs/games/rrootage/default.nix index 459ff238b4a..6cd5919c4e8 100644 --- a/pkgs/games/rrootage/default.nix +++ b/pkgs/games/rrootage/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchpatch, fetchurl, SDL, SDL_mixer, bulletml }: +{ lib, stdenv, fetchpatch, fetchurl, SDL, SDL_mixer, bulletml }: let version = "0.23a"; @@ -72,7 +72,7 @@ in stdenv.mkDerivation { install -m 644 readme_linux "$out"/share/doc/rrootage/README ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Abstract shooter created by Kenta Cho"; homepage = "http://rrootage.sourceforge.net/"; license = licenses.bsd2; diff --git a/pkgs/games/runelite/default.nix b/pkgs/games/runelite/default.nix index df8a5c3e8dc..9a2ce6314cd 100644 --- a/pkgs/games/runelite/default.nix +++ b/pkgs/games/runelite/default.nix @@ -1,12 +1,12 @@ -{ stdenv, fetchurl, makeWrapper, jre, makeDesktopItem, lib }: +{ pkgs, lib, stdenv, makeDesktopItem, fetchurl, unzip, makeWrapper, xorg, jre, }: stdenv.mkDerivation rec { pname = "runelite"; - version = "2.0.0"; + version = "2.1.5"; - src = fetchurl { + jar = fetchurl { url = "https://github.com/runelite/launcher/releases/download/${version}/RuneLite.jar"; - sha256 = "0q0x8g43ggkvp5fgnymgygx59xfhnyyrhpi6ha333gqg97rr0rvw"; + sha256 = "4BX188QIjIFTxng2ktqlKn7AqQ9tdBcKWmgOj/5yd10="; }; icon = fetchurl { @@ -14,6 +14,17 @@ stdenv.mkDerivation rec { sha256 = "04fcjm7p546gr82g0jbh497j7rnh70lrvas0k171bff4v3knrjw1"; }; + # The `.so` files provided by these two jars aren't detected by RuneLite for some reason, so we have to provide them manually + jogl = fetchurl { + url = "https://repo.runelite.net/net/runelite/jogl/jogl-all/2.4.0-rc-20200429/jogl-all-2.4.0-rc-20200429-natives-linux-amd64.jar"; + sha256 = "S60qxyWY9RfyhLFygn/OxZFWnc8qVRtTFdWMbdu+2U0="; + }; + gluegen = fetchurl { + url = "https://repo.runelite.net/net/runelite/gluegen/gluegen-rt/2.4.0-rc-20200429/gluegen-rt-2.4.0-rc-20200429-natives-linux-amd64.jar"; + sha256 = "eF8S5sQkJFDtW8rcVBKIyeyKm5Ze5rXK5r/yosZcHjU="; + }; + dontUnpack = true; + desktop = makeDesktopItem { name = "RuneLite"; type = "Application"; @@ -24,23 +35,25 @@ stdenv.mkDerivation rec { desktopName = "RuneLite"; genericName = "Oldschool Runescape"; categories = "Game"; - startupNotify = null; }; - buildInputs = [ makeWrapper ]; - - # colon is bash form of no-op (do nothing) - dontUnpack = true; - + nativeBuildInputs = [ makeWrapper unzip ]; installPhase = '' mkdir -p $out/share/runelite mkdir -p $out/share/applications + mkdir -p $out/natives + + unzip ${jogl} 'natives/*' -d $out + unzip ${gluegen} 'natives/*' -d $out - ln -s ${src} $out/share/runelite/RuneLite.jar - ln -s ${desktop}/share/applications/* $out/share/applications + ln -s ${jar} $out/share/runelite/RuneLite.jar + ln -s ${desktop}/share/applications/RuneLite.desktop $out/share/applications/RuneLite.desktop + # RuneLite looks for `.so` files in $PWD/natives, so ensure that we set the PWD to the right place makeWrapper ${jre}/bin/java $out/bin/runelite \ - --add-flags "-jar $out/share/runelite/RuneLite.jar" + --run "cd $out" \ + --prefix LD_LIBRARY_PATH : "${xorg.libXxf86vm}/lib" \ + --add-flags "-jar $out/share/runelite/RuneLite.jar" ''; meta = with lib; { @@ -48,6 +61,6 @@ stdenv.mkDerivation rec { homepage = "https://runelite.net/"; license = licenses.bsd2; maintainers = with maintainers; [ kmeakin ]; - platforms = platforms.all; + platforms = [ "x86_64-linux" ]; }; } diff --git a/pkgs/games/sauerbraten/default.nix b/pkgs/games/sauerbraten/default.nix index c4119ee4363..1e43674d2a4 100644 --- a/pkgs/games/sauerbraten/default.nix +++ b/pkgs/games/sauerbraten/default.nix @@ -1,50 +1,44 @@ -{ stdenv, fetchsvn, SDL2, SDL2_image, SDL2_mixer -, zlib, runtimeShell +{ lib, stdenv, fetchzip, SDL2, SDL2_image, SDL2_mixer +, zlib, makeWrapper }: stdenv.mkDerivation rec { - name = "sauerbraten-r${version}"; - version = "5492"; + pname = "sauerbraten"; + version = "2020-12-27"; - src = fetchsvn { - url = "https://svn.code.sf.net/p/sauerbraten/code"; - sha256 = "0pin7ggy84fadjvran18db5v0l81qfv42faknpfaxx47xqz00l5s"; - rev = version; + src = fetchzip { + url = "mirror://sourceforge/sauerbraten/sauerbraten_${builtins.replaceStrings [ "-" ] [ "_" ] version}_linux.tar.bz2"; + sha256 = "0llknzj23vx6f3y452by9c7wlhzclyq4bqi22qd52m3l916z2mn5"; }; + nativeBuildInputs = [ + makeWrapper + ]; + buildInputs = [ SDL2 SDL2_mixer SDL2_image zlib ]; - preBuild = '' - export NIX_LDFLAGS="$NIX_LDFLAGS -lX11" - pushd src - ''; + sourceRoot = "source/src"; installPhase = '' - popd mkdir -p $out/bin $out/share/sauerbraten $out/share/doc/sauerbraten - cp -rv "docs/"* $out/share/doc/sauerbraten/ - cp -v src/sauer_client src/sauer_server $out/share/sauerbraten/ - cp -rv packages $out/share/sauerbraten/ - cp -rv data $out/share/sauerbraten/ - cat > $out/bin/sauerbraten_server <<EOF - #!${runtimeShell} - cd $out/share/sauerbraten - ./sauer_server "\$@" - EOF - cat > $out/bin/sauerbraten_client <<EOF - #!${runtimeShell} - cd $out/share/sauerbraten - ./sauer_client "\$@" - EOF - chmod a+x $out/bin/sauerbraten_* + cp -rv "../docs/"* $out/share/doc/sauerbraten/ + cp -v sauer_client sauer_server $out/share/sauerbraten/ + cp -rv ../packages ../data $out/share/sauerbraten/ + + makeWrapper $out/share/sauerbraten/sauer_server $out/bin/sauerbraten_server \ + --run "cd $out/share/sauerbraten" + makeWrapper $out/share/sauerbraten/sauer_client $out/bin/sauerbraten_client \ + --run "cd $out/share/sauerbraten" \ + --add-flags "-q\''${HOME}" ''; - meta = with stdenv.lib; { - description = ""; - maintainers = [ maintainers.raskin ]; + meta = with lib; { + description = "A free multiplayer & singleplayer first person shooter, the successor of the Cube FPS"; + maintainers = with maintainers; [ raskin ajs124 ]; + mainProgram = "sauerbraten_client"; hydraPlatforms = # raskin: tested amd64-linux; # not setting platforms because it is 0.5+ GiB of game data diff --git a/pkgs/games/scid-vs-pc/default.nix b/pkgs/games/scid-vs-pc/default.nix index 1ff0a0dc728..9d3cdeb02e9 100644 --- a/pkgs/games/scid-vs-pc/default.nix +++ b/pkgs/games/scid-vs-pc/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, tcl, tk, libX11, zlib, makeWrapper, makeDesktopItem }: +{ lib, fetchurl, tcl, tk, libX11, zlib, makeWrapper, makeDesktopItem }: -stdenv.mkDerivation rec { +tcl.mkTclDerivation rec { pname = "scid-vs-pc"; version = "4.21"; @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ tcl tk libX11 zlib ]; + buildInputs = [ tk libX11 zlib ]; prePatch = '' sed -i -e '/^ *set headerPath *{/a ${tcl}/include ${tk}/include' \ @@ -42,6 +42,7 @@ stdenv.mkDerivation rec { dontPatchShebangs = true; + # TODO: can this use tclWrapperArgs? postFixup = '' sed -i -e '1c#!'"$out"'/bin/tcscid' "$out/bin/scidpgn" sed -i -e '1c#!${tk}/bin/wish' "$out/bin/sc_remote" @@ -49,7 +50,6 @@ stdenv.mkDerivation rec { for cmd in $out/bin/* ; do wrapProgram "$cmd" \ - --set TCLLIBPATH "${tcl}/${tcl.libdir}" \ --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}" done ''; @@ -71,12 +71,11 @@ stdenv.mkDerivation rec { categories = "Game;BoardGame;"; }; - meta = with stdenv.lib; { + meta = with lib; { description = "Chess database with play and training functionality"; homepage = "http://scidvspc.sourceforge.net/"; - license = stdenv.lib.licenses.gpl2; + license = lib.licenses.gpl2; maintainers = [ maintainers.paraseba ]; - platforms = stdenv.lib.platforms.linux; + platforms = lib.platforms.linux; }; } - diff --git a/pkgs/games/scid/default.nix b/pkgs/games/scid/default.nix index b3d22d4c0f9..a1955e9cced 100644 --- a/pkgs/games/scid/default.nix +++ b/pkgs/games/scid/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, tcl, tk, libX11, zlib, makeWrapper }: +{ lib, fetchurl, tcl, tk, libX11, zlib, makeWrapper }: -stdenv.mkDerivation { +tcl.mkTclDerivation { pname = "scid"; version = "4.3"; @@ -9,7 +9,8 @@ stdenv.mkDerivation { sha256 = "0zb5qp04x8w4gn2kvfdfq2p44kmzfcqn7v167dixz6nlyxg41hrw"; }; - buildInputs = [ tcl tk libX11 zlib makeWrapper ]; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ tk libX11 zlib ]; prePatch = '' sed -i -e '/^ *set headerPath *{/a ${tcl}/include ${tk}/include' \ @@ -30,6 +31,7 @@ stdenv.mkDerivation { dontPatchShebangs = true; + # TODO: can this use tclWrapperArgs? postFixup = '' for cmd in sc_addmove sc_eco sc_epgn scidpgn \ sc_import sc_spell sc_tree spliteco @@ -44,14 +46,14 @@ stdenv.mkDerivation { for cmd in $out/bin/* do wrapProgram "$cmd" \ - --set TCLLIBPATH "${tcl}/${tcl.libdir}" \ --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}" done ''; meta = { description = "Chess database with play and training functionality"; + maintainers = with lib.maintainers; [ agbrooks ]; homepage = "http://scid.sourceforge.net/"; - license = stdenv.lib.licenses.gpl2; + license = lib.licenses.gpl2; }; } diff --git a/pkgs/games/scorched3d/default.nix b/pkgs/games/scorched3d/default.nix index b7f448e119a..227ab720490 100644 --- a/pkgs/games/scorched3d/default.nix +++ b/pkgs/games/scorched3d/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, libGLU, libGL, glew, pkgconfig, openalSoft, freealut, wxGTK, libogg +{ lib, stdenv, fetchurl, libGLU, libGL, glew, pkg-config, openalSoft, freealut, wxGTK, libogg , freetype, libvorbis, fftwSinglePrec, SDL, SDL_net, expat, libjpeg, libpng }: stdenv.mkDerivation rec { @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { SDL SDL_net expat libjpeg libpng fftwSinglePrec ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; patches = [ ./file-existence.patch @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = "-lopenal"; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://scorched3d.co.uk/"; description = "3D Clone of the classic Scorched Earth"; license = licenses.gpl2Plus; diff --git a/pkgs/games/scrolls/default.nix b/pkgs/games/scrolls/default.nix index a435a240ede..cdeab7b10d3 100644 --- a/pkgs/games/scrolls/default.nix +++ b/pkgs/games/scrolls/default.nix @@ -1,8 +1,9 @@ -{ stdenv, fetchurl, gcc +{ lib, stdenv, fetchurl, gcc , libGLU, libX11, libXext, libXcursor, libpulseaudio }: stdenv.mkDerivation { - name = "scrolls-2015-10-13"; + pname = "scrolls"; + version = "2015-10-13"; meta = { description = "A strategy collectible card game"; @@ -11,7 +12,7 @@ stdenv.mkDerivation { platforms = [ "x86_64-linux" ]; - license = stdenv.lib.licenses.unfree; + license = lib.licenses.unfree; }; src = fetchurl { @@ -19,7 +20,7 @@ stdenv.mkDerivation { sha256 = "ead1fd14988aa07041fedfa7f845c756cd5077a5a402d85bfb749cb669ececec"; }; - libPath = stdenv.lib.makeLibraryPath [ + libPath = lib.makeLibraryPath [ gcc libGLU libX11 diff --git a/pkgs/games/scummvm/default.nix b/pkgs/games/scummvm/default.nix index e6efbc6203c..b22d292f207 100644 --- a/pkgs/games/scummvm/default.nix +++ b/pkgs/games/scummvm/default.nix @@ -1,20 +1,25 @@ -{ stdenv, fetchurl, nasm -, alsaLib, curl, flac, fluidsynth, freetype, libjpeg, libmad, libmpeg2, libogg, libvorbis, libGLU, libGL, SDL2, zlib +{ lib, stdenv, fetchurl, nasm +, alsa-lib, curl, flac, fluidsynth, freetype, libjpeg, libmad, libmpeg2, libogg, libvorbis, libGLU, libGL, SDL2, zlib +, Cocoa, AudioToolbox, Carbon, CoreMIDI, AudioUnit, cctools }: stdenv.mkDerivation rec { pname = "scummvm"; - version = "2.1.2"; + version = "2.2.0"; src = fetchurl { url = "http://scummvm.org/frs/scummvm/${version}/${pname}-${version}.tar.xz"; - sha256 = "1c4fz1nfg0nqnqx9iipayhzcsiqdmfxm2i95nw9dbhshhsdnrhf4"; + sha256 = "FGllflk72Ky8+sC4ObCG9kDr8SBjPpPxFsq2UrWyc4c="; }; nativeBuildInputs = [ nasm ]; - buildInputs = [ - alsaLib curl freetype flac fluidsynth libjpeg libmad libmpeg2 libogg libvorbis libGLU libGL SDL2 zlib + buildInputs = lib.optionals stdenv.isLinux [ + alsa-lib + ] ++ lib.optionals stdenv.isDarwin [ + Cocoa AudioToolbox Carbon CoreMIDI AudioUnit + ] ++ [ + curl freetype flac fluidsynth libjpeg libmad libmpeg2 libogg libvorbis libGLU libGL SDL2 zlib ]; dontDisableStatic = true; @@ -30,13 +35,15 @@ stdenv.mkDerivation rec { # They use 'install -s', that calls the native strip instead of the cross postConfigure = '' sed -i "s/-c -s/-c -s --strip-program=''${STRIP@Q}/" ports.mk + '' + lib.optionalString stdenv.isDarwin '' + substituteInPlace config.mk --replace x86_64-apple-darwin-ranlib ${cctools}/bin/ranlib ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Program to run certain classic graphical point-and-click adventure games (such as Monkey Island)"; homepage = "https://www.scummvm.org/"; license = licenses.gpl2; maintainers = [ maintainers.peterhoeg ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } diff --git a/pkgs/games/scummvm/games.nix b/pkgs/games/scummvm/games.nix index 0165a797c3a..2ffd176ccf6 100644 --- a/pkgs/games/scummvm/games.nix +++ b/pkgs/games/scummvm/games.nix @@ -51,7 +51,7 @@ let runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://www.scummvm.org"; license = licenses.free; # refer to the readme for exact wording maintainers = with maintainers; [ peterhoeg ]; diff --git a/pkgs/games/sdlpop/default.nix b/pkgs/games/sdlpop/default.nix new file mode 100644 index 00000000000..cef321fdce4 --- /dev/null +++ b/pkgs/games/sdlpop/default.nix @@ -0,0 +1,68 @@ +{ lib, stdenv +, makeWrapper +, makeDesktopItem, copyDesktopItems +, fetchFromGitHub +, pkg-config +, SDL2, SDL2_image +}: + +stdenv.mkDerivation rec { + pname = "sdlpop"; + version = "1.21"; + + src = fetchFromGitHub { + owner = "NagyD"; + repo = "SDLPoP"; + rev = "v${version}"; + sha256 = "1q4mnyg8v4420f1bp24v8lgi335vijdv61yi3fan14jgfzl38l7w"; + }; + + nativeBuildInputs = [ pkg-config makeWrapper copyDesktopItems ]; + buildInputs = [ SDL2 SDL2_image ]; + + makeFlags = [ "-C" "src" ]; + + preBuild = '' + substituteInPlace src/Makefile --replace "CC = gcc" "CC = ${stdenv.cc.targetPrefix}gcc" + ''; + + # The prince binary expects two things of the working directory it is called from: + # (1) There is a subdirectory "data" containing the level data. + # (2) The working directory is writable, so save and quicksave files can be created. + # Our solution is to ensure that ~/.local/share/sdlpop is the working + # directory, symlinking the data files into it. This is the task of the + # prince.sh wrapper. + + installPhase = '' + runHook preInstall + + install -Dm755 prince $out/bin/.prince-bin + substituteAll ${./prince.sh} $out/bin/prince + chmod +x $out/bin/prince + + mkdir -p $out/share/sdlpop + cp -r data doc mods SDLPoP.ini $out/share/sdlpop + + install -Dm755 data/icon.png $out/share/icons/hicolor/32x32/apps/sdlpop.png + + runHook postInstall + ''; + + desktopItems = [ (makeDesktopItem { + name = "sdlpop"; + icon = "sdlpop"; + exec = "prince"; + desktopName = "SDLPoP"; + comment = "An open-source port of Prince of Persia"; + categories = "Game;AdventureGame;"; + }) ]; + + meta = with lib; { + description = "Open-source port of Prince of Persia"; + homepage = "https://github.com/NagyD/SDLPoP"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ iblech ]; + platforms = platforms.unix; + broken = stdenv.isDarwin; + }; +} diff --git a/pkgs/games/sdlpop/prince.sh b/pkgs/games/sdlpop/prince.sh new file mode 100644 index 00000000000..698c347272a --- /dev/null +++ b/pkgs/games/sdlpop/prince.sh @@ -0,0 +1,16 @@ +#! @shell@ + +set -euo pipefail + +mkdir -p ~/.local/share/sdlpop +cd ~/.local/share/sdlpop + +for i in SDLPoP.ini mods; do + [ -e $i ] || cp -r @out@/share/sdlpop/$i . +done + +# Create the data symlink or update it (in case it is a symlink, else the user +# has probably tinkered with it and does not want it to be recreated). +[ ! -e data -o -L data ] && ln -sf @out@/share/sdlpop/data . + +exec -a "prince" @out@/bin/.prince-bin "$@" diff --git a/pkgs/games/sfrotz/default.nix b/pkgs/games/sfrotz/default.nix index 6e4839703a1..e6b95937199 100644 --- a/pkgs/games/sfrotz/default.nix +++ b/pkgs/games/sfrotz/default.nix @@ -10,7 +10,7 @@ , pkg-config , SDL2 , SDL2_mixer -, stdenv +, lib, stdenv , zlib }: stdenv.mkDerivation rec { @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { buildPhase = "make sdl"; installTargets = [ "install_sfrotz" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Interpreter for Infocom and other Z-Machine games (SDL interface)"; longDescription = '' diff --git a/pkgs/games/sgt-puzzles/default.nix b/pkgs/games/sgt-puzzles/default.nix index c17439b5e3e..1c0b7aeda49 100644 --- a/pkgs/games/sgt-puzzles/default.nix +++ b/pkgs/games/sgt-puzzles/default.nix @@ -1,15 +1,15 @@ -{ stdenv, fetchurl, desktop-file-utils +{ lib, stdenv, fetchurl, desktop-file-utils , gtk3, libX11 -, makeWrapper, pkgconfig, perl, autoreconfHook, wrapGAppsHook +, makeWrapper, pkg-config, perl, autoreconfHook, wrapGAppsHook }: stdenv.mkDerivation rec { - name = "sgt-puzzles-r${version}"; - version = "20191114.1c0c49d"; + pname = "sgt-puzzles"; + version = "20200610.9aa7b7c"; src = fetchurl { url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz"; - sha256 = "01fi2f3w71bfbgcfr6gxdp5a9cxh4dshbflv83q2j5rxxs2ll870"; + sha256 = "0rrd1c77ar91zqy4rr4xp1z7x3ywnshlac99cga4hnrgwb7vwl3f"; }; sgt-puzzles-menu = fetchurl { @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ autoreconfHook desktop-file-utils makeWrapper - pkgconfig perl wrapGAppsHook ]; + pkg-config perl wrapGAppsHook ]; buildInputs = [ gtk3 libX11 ]; @@ -63,10 +63,10 @@ stdenv.mkDerivation rec { export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error" cp Makefile.gtk Makefile ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Simon Tatham's portable puzzle collection"; license = licenses.mit; - maintainers = [ maintainers.raskin maintainers.genesis ]; + maintainers = [ maintainers.raskin ]; platforms = platforms.linux; homepage = "https://www.chiark.greenend.org.uk/~sgtatham/puzzles/"; }; diff --git a/pkgs/games/shattered-pixel-dungeon/default.nix b/pkgs/games/shattered-pixel-dungeon/default.nix index 6626e4df8a2..ec18a26829f 100644 --- a/pkgs/games/shattered-pixel-dungeon/default.nix +++ b/pkgs/games/shattered-pixel-dungeon/default.nix @@ -1,8 +1,8 @@ -{ stdenv +{ lib, stdenv , makeWrapper , fetchFromGitHub , nixosTests -, gradle_5 +, gradle_6 , perl , jre , libpulseaudio @@ -10,13 +10,15 @@ let pname = "shattered-pixel-dungeon"; - version = "0.8.2b"; + version = "0.9.3"; src = fetchFromGitHub { owner = "00-Evan"; repo = "shattered-pixel-dungeon"; - rev = "v${version}"; - sha256 = "02ksxm7iknxfc7l8dl2pr1kyhfmi7vkchz0lh46w3p5mqf82psfb"; + # NOTE: always use the commit sha, not the tag. Tags _will_ disappear! + # https://github.com/00-Evan/shattered-pixel-dungeon/issues/596 + rev = "785c869f2b61013a15fddbf5f0c65d67fe900e80"; + sha256 = "sha256-d7Fc1IPOW/0RwLYe9vwaD3gFw6div2/J0DOFdWYDXWY="; }; postPatch = '' @@ -31,9 +33,11 @@ let deps = stdenv.mkDerivation { pname = "${pname}-deps"; inherit version src postPatch; - nativeBuildInputs = [ gradle_5 perl ]; + nativeBuildInputs = [ gradle_6 perl ]; buildPhase = '' export GRADLE_USER_HOME=$(mktemp -d) + # https://github.com/gradle/gradle/issues/4426 + ${lib.optionalString stdenv.isDarwin "export TERM=dumb"} 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) @@ -50,10 +54,12 @@ let in stdenv.mkDerivation rec { inherit pname version src postPatch; - nativeBuildInputs = [ gradle_5 perl makeWrapper ]; + nativeBuildInputs = [ gradle_6 perl makeWrapper ]; buildPhase = '' export GRADLE_USER_HOME=$(mktemp -d) + # https://github.com/gradle/gradle/issues/4426 + ${lib.optionalString stdenv.isDarwin "export TERM=dumb"} # point to offline repo sed -ie "s#repositories {#repositories { maven { url '${deps}' };#g" build.gradle gradle --offline --no-daemon desktop:release @@ -71,13 +77,14 @@ in stdenv.mkDerivation rec { shattered-pixel-dungeon-starts = nixosTests.shattered-pixel-dungeon; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://shatteredpixel.com/"; downloadPage = "https://github.com/00-Evan/shattered-pixel-dungeon/releases"; description = "Traditional roguelike game with pixel-art graphics and simple interface"; - license = licenses.gpl3; + license = licenses.gpl3Plus; maintainers = with maintainers; [ fgaz ]; platforms = platforms.all; + # https://github.com/NixOS/nixpkgs/pull/99885#issuecomment-740065005 + broken = stdenv.isDarwin; }; } - diff --git a/pkgs/games/shticker-book-unwritten/cargo-lock.patch b/pkgs/games/shticker-book-unwritten/cargo-lock.patch new file mode 100644 index 00000000000..90e802011e4 --- /dev/null +++ b/pkgs/games/shticker-book-unwritten/cargo-lock.patch @@ -0,0 +1,1248 @@ +diff --git a/Cargo.lock b/Cargo.lock +new file mode 100644 +index 0000000..16f72a8 +--- /dev/null ++++ b/Cargo.lock +@@ -0,0 +1,1242 @@ ++# This file is automatically @generated by Cargo. ++# It is not intended for manual editing. ++[[package]] ++name = "autocfg" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" ++ ++[[package]] ++name = "base64" ++version = "0.13.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" ++ ++[[package]] ++name = "bitflags" ++version = "1.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" ++ ++[[package]] ++name = "block-buffer" ++version = "0.9.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" ++dependencies = [ ++ "generic-array", ++] ++ ++[[package]] ++name = "bumpalo" ++version = "3.6.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe" ++ ++[[package]] ++name = "bytes" ++version = "0.5.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" ++ ++[[package]] ++name = "bytes" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" ++ ++[[package]] ++name = "bzip2" ++version = "0.4.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "abf8012c8a15d5df745fcf258d93e6149dcf102882c8d8702d9cff778eab43a8" ++dependencies = [ ++ "bzip2-sys", ++ "libc", ++] ++ ++[[package]] ++name = "bzip2-sys" ++version = "0.1.10+1.0.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "17fa3d1ac1ca21c5c4e36a97f3c3eb25084576f6fc47bf0139c1123434216c6c" ++dependencies = [ ++ "cc", ++ "libc", ++ "pkg-config", ++] ++ ++[[package]] ++name = "cc" ++version = "1.0.67" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" ++ ++[[package]] ++name = "cfg-if" ++version = "0.1.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" ++ ++[[package]] ++name = "cfg-if" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" ++ ++[[package]] ++name = "clap" ++version = "2.33.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" ++dependencies = [ ++ "bitflags", ++ "strsim", ++ "textwrap", ++ "unicode-width", ++ "vec_map", ++] ++ ++[[package]] ++name = "core-foundation" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" ++dependencies = [ ++ "core-foundation-sys", ++ "libc", ++] ++ ++[[package]] ++name = "core-foundation-sys" ++version = "0.8.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" ++ ++[[package]] ++name = "cpuid-bool" ++version = "0.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" ++ ++[[package]] ++name = "digest" ++version = "0.9.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" ++dependencies = [ ++ "generic-array", ++] ++ ++[[package]] ++name = "encoding_rs" ++version = "0.8.28" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065" ++dependencies = [ ++ "cfg-if 1.0.0", ++] ++ ++[[package]] ++name = "fnv" ++version = "1.0.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" ++ ++[[package]] ++name = "foreign-types" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" ++dependencies = [ ++ "foreign-types-shared", ++] ++ ++[[package]] ++name = "foreign-types-shared" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" ++ ++[[package]] ++name = "form_urlencoded" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" ++dependencies = [ ++ "matches", ++ "percent-encoding", ++] ++ ++[[package]] ++name = "fuchsia-zircon" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" ++dependencies = [ ++ "bitflags", ++ "fuchsia-zircon-sys", ++] ++ ++[[package]] ++name = "fuchsia-zircon-sys" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" ++ ++[[package]] ++name = "futures-channel" ++version = "0.3.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939" ++dependencies = [ ++ "futures-core", ++] ++ ++[[package]] ++name = "futures-core" ++version = "0.3.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94" ++ ++[[package]] ++name = "futures-io" ++version = "0.3.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d71c2c65c57704c32f5241c1223167c2c3294fd34ac020c807ddbe6db287ba59" ++ ++[[package]] ++name = "futures-sink" ++version = "0.3.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3" ++ ++[[package]] ++name = "futures-task" ++version = "0.3.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80" ++ ++[[package]] ++name = "futures-util" ++version = "0.3.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1" ++dependencies = [ ++ "futures-core", ++ "futures-io", ++ "futures-task", ++ "memchr", ++ "pin-project-lite 0.2.6", ++ "pin-utils", ++ "slab", ++] ++ ++[[package]] ++name = "generic-array" ++version = "0.14.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" ++dependencies = [ ++ "typenum", ++ "version_check", ++] ++ ++[[package]] ++name = "getrandom" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "libc", ++ "wasi", ++] ++ ++[[package]] ++name = "h2" ++version = "0.2.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" ++dependencies = [ ++ "bytes 0.5.6", ++ "fnv", ++ "futures-core", ++ "futures-sink", ++ "futures-util", ++ "http", ++ "indexmap", ++ "slab", ++ "tokio", ++ "tokio-util", ++ "tracing", ++ "tracing-futures", ++] ++ ++[[package]] ++name = "hashbrown" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" ++ ++[[package]] ++name = "hermit-abi" ++version = "0.1.18" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" ++dependencies = [ ++ "libc", ++] ++ ++[[package]] ++name = "http" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747" ++dependencies = [ ++ "bytes 1.0.1", ++ "fnv", ++ "itoa", ++] ++ ++[[package]] ++name = "http-body" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" ++dependencies = [ ++ "bytes 0.5.6", ++ "http", ++] ++ ++[[package]] ++name = "httparse" ++version = "1.3.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691" ++ ++[[package]] ++name = "httpdate" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" ++ ++[[package]] ++name = "hyper" ++version = "0.13.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb" ++dependencies = [ ++ "bytes 0.5.6", ++ "futures-channel", ++ "futures-core", ++ "futures-util", ++ "h2", ++ "http", ++ "http-body", ++ "httparse", ++ "httpdate", ++ "itoa", ++ "pin-project", ++ "socket2", ++ "tokio", ++ "tower-service", ++ "tracing", ++ "want", ++] ++ ++[[package]] ++name = "hyper-tls" ++version = "0.4.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed" ++dependencies = [ ++ "bytes 0.5.6", ++ "hyper", ++ "native-tls", ++ "tokio", ++ "tokio-tls", ++] ++ ++[[package]] ++name = "idna" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21" ++dependencies = [ ++ "matches", ++ "unicode-bidi", ++ "unicode-normalization", ++] ++ ++[[package]] ++name = "indexmap" ++version = "1.6.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" ++dependencies = [ ++ "autocfg", ++ "hashbrown", ++] ++ ++[[package]] ++name = "iovec" ++version = "0.1.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" ++dependencies = [ ++ "libc", ++] ++ ++[[package]] ++name = "ipnet" ++version = "2.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135" ++ ++[[package]] ++name = "itoa" ++version = "0.4.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" ++ ++[[package]] ++name = "js-sys" ++version = "0.3.48" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dc9f84f9b115ce7843d60706df1422a916680bfdfcbdb0447c5614ff9d7e4d78" ++dependencies = [ ++ "wasm-bindgen", ++] ++ ++[[package]] ++name = "kernel32-sys" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" ++dependencies = [ ++ "winapi 0.2.8", ++ "winapi-build", ++] ++ ++[[package]] ++name = "lazy_static" ++version = "1.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" ++ ++[[package]] ++name = "libc" ++version = "0.2.88" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "03b07a082330a35e43f63177cc01689da34fbffa0105e1246cf0311472cac73a" ++ ++[[package]] ++name = "log" ++version = "0.4.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" ++dependencies = [ ++ "cfg-if 1.0.0", ++] ++ ++[[package]] ++name = "matches" ++version = "0.1.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" ++ ++[[package]] ++name = "memchr" ++version = "2.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" ++ ++[[package]] ++name = "mime" ++version = "0.3.16" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" ++ ++[[package]] ++name = "mime_guess" ++version = "2.0.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212" ++dependencies = [ ++ "mime", ++ "unicase", ++] ++ ++[[package]] ++name = "mio" ++version = "0.6.23" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" ++dependencies = [ ++ "cfg-if 0.1.10", ++ "fuchsia-zircon", ++ "fuchsia-zircon-sys", ++ "iovec", ++ "kernel32-sys", ++ "libc", ++ "log", ++ "miow", ++ "net2", ++ "slab", ++ "winapi 0.2.8", ++] ++ ++[[package]] ++name = "miow" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" ++dependencies = [ ++ "kernel32-sys", ++ "net2", ++ "winapi 0.2.8", ++ "ws2_32-sys", ++] ++ ++[[package]] ++name = "native-tls" ++version = "0.2.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4" ++dependencies = [ ++ "lazy_static", ++ "libc", ++ "log", ++ "openssl", ++ "openssl-probe", ++ "openssl-sys", ++ "schannel", ++ "security-framework", ++ "security-framework-sys", ++ "tempfile", ++] ++ ++[[package]] ++name = "net2" ++version = "0.2.37" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" ++dependencies = [ ++ "cfg-if 0.1.10", ++ "libc", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "num_cpus" ++version = "1.13.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" ++dependencies = [ ++ "hermit-abi", ++ "libc", ++] ++ ++[[package]] ++name = "opaque-debug" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" ++ ++[[package]] ++name = "openssl" ++version = "0.10.32" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "038d43985d1ddca7a9900630d8cd031b56e4794eecc2e9ea39dd17aa04399a70" ++dependencies = [ ++ "bitflags", ++ "cfg-if 1.0.0", ++ "foreign-types", ++ "lazy_static", ++ "libc", ++ "openssl-sys", ++] ++ ++[[package]] ++name = "openssl-probe" ++version = "0.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" ++ ++[[package]] ++name = "openssl-sys" ++version = "0.9.60" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6" ++dependencies = [ ++ "autocfg", ++ "cc", ++ "libc", ++ "pkg-config", ++ "vcpkg", ++] ++ ++[[package]] ++name = "percent-encoding" ++version = "2.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" ++ ++[[package]] ++name = "pin-project" ++version = "1.0.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "96fa8ebb90271c4477f144354485b8068bd8f6b78b428b01ba892ca26caf0b63" ++dependencies = [ ++ "pin-project-internal", ++] ++ ++[[package]] ++name = "pin-project-internal" ++version = "1.0.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "758669ae3558c6f74bd2a18b41f7ac0b5a195aea6639d6a9b5e5d1ad5ba24c0b" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn", ++] ++ ++[[package]] ++name = "pin-project-lite" ++version = "0.1.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" ++ ++[[package]] ++name = "pin-project-lite" ++version = "0.2.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" ++ ++[[package]] ++name = "pin-utils" ++version = "0.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" ++ ++[[package]] ++name = "pkg-config" ++version = "0.3.19" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" ++ ++[[package]] ++name = "ppv-lite86" ++version = "0.2.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" ++ ++[[package]] ++name = "proc-macro2" ++version = "1.0.24" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" ++dependencies = [ ++ "unicode-xid", ++] ++ ++[[package]] ++name = "quote" ++version = "1.0.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" ++dependencies = [ ++ "proc-macro2", ++] ++ ++[[package]] ++name = "rand" ++version = "0.8.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" ++dependencies = [ ++ "libc", ++ "rand_chacha", ++ "rand_core", ++ "rand_hc", ++] ++ ++[[package]] ++name = "rand_chacha" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" ++dependencies = [ ++ "ppv-lite86", ++ "rand_core", ++] ++ ++[[package]] ++name = "rand_core" ++version = "0.6.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" ++dependencies = [ ++ "getrandom", ++] ++ ++[[package]] ++name = "rand_hc" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" ++dependencies = [ ++ "rand_core", ++] ++ ++[[package]] ++name = "redox_syscall" ++version = "0.2.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9" ++dependencies = [ ++ "bitflags", ++] ++ ++[[package]] ++name = "remove_dir_all" ++version = "0.5.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" ++dependencies = [ ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "reqwest" ++version = "0.10.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c" ++dependencies = [ ++ "base64", ++ "bytes 0.5.6", ++ "encoding_rs", ++ "futures-core", ++ "futures-util", ++ "http", ++ "http-body", ++ "hyper", ++ "hyper-tls", ++ "ipnet", ++ "js-sys", ++ "lazy_static", ++ "log", ++ "mime", ++ "mime_guess", ++ "native-tls", ++ "percent-encoding", ++ "pin-project-lite 0.2.6", ++ "serde", ++ "serde_urlencoded", ++ "tokio", ++ "tokio-tls", ++ "url", ++ "wasm-bindgen", ++ "wasm-bindgen-futures", ++ "web-sys", ++ "winreg", ++] ++ ++[[package]] ++name = "rpassword" ++version = "4.0.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "99371657d3c8e4d816fb6221db98fa408242b0b53bac08f8676a41f8554fe99f" ++dependencies = [ ++ "libc", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "ryu" ++version = "1.0.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" ++ ++[[package]] ++name = "schannel" ++version = "0.1.19" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" ++dependencies = [ ++ "lazy_static", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "security-framework" ++version = "2.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2dfd318104249865096c8da1dfabf09ddbb6d0330ea176812a62ec75e40c4166" ++dependencies = [ ++ "bitflags", ++ "core-foundation", ++ "core-foundation-sys", ++ "libc", ++ "security-framework-sys", ++] ++ ++[[package]] ++name = "security-framework-sys" ++version = "2.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dee48cdde5ed250b0d3252818f646e174ab414036edb884dde62d80a3ac6082d" ++dependencies = [ ++ "core-foundation-sys", ++ "libc", ++] ++ ++[[package]] ++name = "serde" ++version = "1.0.123" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae" ++dependencies = [ ++ "serde_derive", ++] ++ ++[[package]] ++name = "serde_derive" ++version = "1.0.123" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn", ++] ++ ++[[package]] ++name = "serde_json" ++version = "1.0.64" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" ++dependencies = [ ++ "itoa", ++ "ryu", ++ "serde", ++] ++ ++[[package]] ++name = "serde_urlencoded" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" ++dependencies = [ ++ "form_urlencoded", ++ "itoa", ++ "ryu", ++ "serde", ++] ++ ++[[package]] ++name = "sha-1" ++version = "0.9.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dfebf75d25bd900fd1e7d11501efab59bc846dbc76196839663e6637bba9f25f" ++dependencies = [ ++ "block-buffer", ++ "cfg-if 1.0.0", ++ "cpuid-bool", ++ "digest", ++ "opaque-debug", ++] ++ ++[[package]] ++name = "shticker_book_unwritten" ++version = "1.0.3" ++dependencies = [ ++ "bzip2", ++ "clap", ++ "reqwest", ++ "rpassword", ++ "serde", ++ "serde_json", ++ "sha-1", ++] ++ ++[[package]] ++name = "slab" ++version = "0.4.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" ++ ++[[package]] ++name = "socket2" ++version = "0.3.19" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "libc", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "strsim" ++version = "0.8.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" ++ ++[[package]] ++name = "syn" ++version = "1.0.61" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ed22b90a0e734a23a7610f4283ac9e5acfb96cbb30dfefa540d66f866f1c09c5" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "unicode-xid", ++] ++ ++[[package]] ++name = "tempfile" ++version = "3.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "libc", ++ "rand", ++ "redox_syscall", ++ "remove_dir_all", ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "textwrap" ++version = "0.11.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" ++dependencies = [ ++ "unicode-width", ++] ++ ++[[package]] ++name = "tinyvec" ++version = "1.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023" ++dependencies = [ ++ "tinyvec_macros", ++] ++ ++[[package]] ++name = "tinyvec_macros" ++version = "0.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" ++ ++[[package]] ++name = "tokio" ++version = "0.2.25" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092" ++dependencies = [ ++ "bytes 0.5.6", ++ "fnv", ++ "futures-core", ++ "iovec", ++ "lazy_static", ++ "memchr", ++ "mio", ++ "num_cpus", ++ "pin-project-lite 0.1.12", ++ "slab", ++] ++ ++[[package]] ++name = "tokio-tls" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343" ++dependencies = [ ++ "native-tls", ++ "tokio", ++] ++ ++[[package]] ++name = "tokio-util" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" ++dependencies = [ ++ "bytes 0.5.6", ++ "futures-core", ++ "futures-sink", ++ "log", ++ "pin-project-lite 0.1.12", ++ "tokio", ++] ++ ++[[package]] ++name = "tower-service" ++version = "0.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" ++ ++[[package]] ++name = "tracing" ++version = "0.1.25" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "log", ++ "pin-project-lite 0.2.6", ++ "tracing-core", ++] ++ ++[[package]] ++name = "tracing-core" ++version = "0.1.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" ++dependencies = [ ++ "lazy_static", ++] ++ ++[[package]] ++name = "tracing-futures" ++version = "0.2.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" ++dependencies = [ ++ "pin-project", ++ "tracing", ++] ++ ++[[package]] ++name = "try-lock" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" ++ ++[[package]] ++name = "typenum" ++version = "1.12.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" ++ ++[[package]] ++name = "unicase" ++version = "2.6.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" ++dependencies = [ ++ "version_check", ++] ++ ++[[package]] ++name = "unicode-bidi" ++version = "0.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" ++dependencies = [ ++ "matches", ++] ++ ++[[package]] ++name = "unicode-normalization" ++version = "0.1.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef" ++dependencies = [ ++ "tinyvec", ++] ++ ++[[package]] ++name = "unicode-width" ++version = "0.1.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" ++ ++[[package]] ++name = "unicode-xid" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" ++ ++[[package]] ++name = "url" ++version = "2.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b" ++dependencies = [ ++ "form_urlencoded", ++ "idna", ++ "matches", ++ "percent-encoding", ++] ++ ++[[package]] ++name = "vcpkg" ++version = "0.2.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" ++ ++[[package]] ++name = "vec_map" ++version = "0.8.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" ++ ++[[package]] ++name = "version_check" ++version = "0.9.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" ++ ++[[package]] ++name = "want" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" ++dependencies = [ ++ "log", ++ "try-lock", ++] ++ ++[[package]] ++name = "wasi" ++version = "0.10.2+wasi-snapshot-preview1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" ++ ++[[package]] ++name = "wasm-bindgen" ++version = "0.2.71" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7ee1280240b7c461d6a0071313e08f34a60b0365f14260362e5a2b17d1d31aa7" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "serde", ++ "serde_json", ++ "wasm-bindgen-macro", ++] ++ ++[[package]] ++name = "wasm-bindgen-backend" ++version = "0.2.71" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5b7d8b6942b8bb3a9b0e73fc79b98095a27de6fa247615e59d096754a3bc2aa8" ++dependencies = [ ++ "bumpalo", ++ "lazy_static", ++ "log", ++ "proc-macro2", ++ "quote", ++ "syn", ++ "wasm-bindgen-shared", ++] ++ ++[[package]] ++name = "wasm-bindgen-futures" ++version = "0.4.21" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8e67a5806118af01f0d9045915676b22aaebecf4178ae7021bc171dab0b897ab" ++dependencies = [ ++ "cfg-if 1.0.0", ++ "js-sys", ++ "wasm-bindgen", ++ "web-sys", ++] ++ ++[[package]] ++name = "wasm-bindgen-macro" ++version = "0.2.71" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e5ac38da8ef716661f0f36c0d8320b89028efe10c7c0afde65baffb496ce0d3b" ++dependencies = [ ++ "quote", ++ "wasm-bindgen-macro-support", ++] ++ ++[[package]] ++name = "wasm-bindgen-macro-support" ++version = "0.2.71" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cc053ec74d454df287b9374ee8abb36ffd5acb95ba87da3ba5b7d3fe20eb401e" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn", ++ "wasm-bindgen-backend", ++ "wasm-bindgen-shared", ++] ++ ++[[package]] ++name = "wasm-bindgen-shared" ++version = "0.2.71" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7d6f8ec44822dd71f5f221a5847fb34acd9060535c1211b70a05844c0f6383b1" ++ ++[[package]] ++name = "web-sys" ++version = "0.3.48" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ec600b26223b2948cedfde2a0aa6756dcf1fef616f43d7b3097aaf53a6c4d92b" ++dependencies = [ ++ "js-sys", ++ "wasm-bindgen", ++] ++ ++[[package]] ++name = "winapi" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" ++ ++[[package]] ++name = "winapi" ++version = "0.3.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" ++dependencies = [ ++ "winapi-i686-pc-windows-gnu", ++ "winapi-x86_64-pc-windows-gnu", ++] ++ ++[[package]] ++name = "winapi-build" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" ++ ++[[package]] ++name = "winapi-i686-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" ++ ++[[package]] ++name = "winapi-x86_64-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" ++ ++[[package]] ++name = "winreg" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" ++dependencies = [ ++ "winapi 0.3.9", ++] ++ ++[[package]] ++name = "ws2_32-sys" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" ++dependencies = [ ++ "winapi 0.2.8", ++ "winapi-build", ++] diff --git a/pkgs/games/shticker-book-unwritten/default.nix b/pkgs/games/shticker-book-unwritten/default.nix new file mode 100644 index 00000000000..7dbd5c257e8 --- /dev/null +++ b/pkgs/games/shticker-book-unwritten/default.nix @@ -0,0 +1,25 @@ +{ buildFHSUserEnv, callPackage, lib, stdenvNoCC }: +let + + shticker-book-unwritten-unwrapped = callPackage ./unwrapped.nix { }; + +in buildFHSUserEnv { + name = "shticker_book_unwritten"; + targetPkgs = pkgs: with pkgs; [ + alsa-lib + xorg.libX11 + xorg.libXcursor + xorg.libXext + libglvnd + shticker-book-unwritten-unwrapped + ]; + runScript = "shticker_book_unwritten"; + + meta = with lib; { + description = "Minimal CLI launcher for the Toontown Rewritten MMORPG"; + homepage = "https://github.com/JonathanHelianthicusDoe/shticker_book_unwritten"; + license = licenses.gpl3Plus; + maintainers = [ maintainers.reedrw ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/shticker-book-unwritten/unwrapped.nix b/pkgs/games/shticker-book-unwritten/unwrapped.nix new file mode 100644 index 00000000000..638a9ae792e --- /dev/null +++ b/pkgs/games/shticker-book-unwritten/unwrapped.nix @@ -0,0 +1,20 @@ +{ fetchFromGitHub, lib, openssl, pkg-config, rustPlatform }: + +rustPlatform.buildRustPackage rec { + pname = "shticker-book-unwritten"; + version = "1.0.3"; + + src = fetchFromGitHub { + owner = "JonathanHelianthicusDoe"; + repo = "shticker_book_unwritten"; + rev = "v${version}"; + sha256 = "08lyxica0b0vvivybsvzigy2j7saar78mbz723y3g5hqrilfb5np"; + }; + + cargoPatches = [ ./cargo-lock.patch ]; + cargoSha256 = "1d4mnfzkdbqnjmqk7fl4bsy27lr7wnq997nz0hflaybnx2d3nisn"; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ openssl ]; +} diff --git a/pkgs/games/shticker-book-unwritten/update-cargo-lock.sh b/pkgs/games/shticker-book-unwritten/update-cargo-lock.sh new file mode 100755 index 00000000000..ab84bd0abe4 --- /dev/null +++ b/pkgs/games/shticker-book-unwritten/update-cargo-lock.sh @@ -0,0 +1,18 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i bash -p cargo coreutils git gnugrep jq + +set -eu -o verbose + +here=$PWD +version=$(cat unwrapped.nix | grep '^ version = "' | cut -d '"' -f 2) +checkout=$(mktemp -d) +git clone -b "v$version" --depth=1 https://github.com/JonathanHelianthicusDoe/shticker_book_unwritten "$checkout" +cd "$checkout" + +rm -f rust-toolchain +cargo generate-lockfile +git add -f Cargo.lock +git diff HEAD -- Cargo.lock > "$here"/cargo-lock.patch + +cd "$here" +rm -rf "$checkout" diff --git a/pkgs/games/sienna/default.nix b/pkgs/games/sienna/default.nix index bedd446e34c..24f5fc08876 100644 --- a/pkgs/games/sienna/default.nix +++ b/pkgs/games/sienna/default.nix @@ -1,8 +1,12 @@ -{ stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }: +{ lib, stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }: -let +stdenv.mkDerivation rec { pname = "sienna"; version = "1.0c"; + src = fetchurl { + url = "https://github.com/SimonLarsen/${pname}/releases/download/v${version}/${pname}-${version}.love"; + sha256 = "1x15276fhqspgrrv8fzkp032i2qa8piywc0yy061x59mxhdndzj6"; + }; icon = fetchurl { url = "http://tangramgames.dk/img/thumb/sienna.png"; @@ -13,22 +17,12 @@ let name = "sienna"; exec = pname; icon = icon; - comment = "Fast-paced one button platformer"; + comment = "Fast-paced one button platformer"; desktopName = "Sienna"; genericName = "sienna"; categories = "Game;"; }; -in - -stdenv.mkDerivation { - name = "${pname}-${version}"; - - src = fetchurl { - url = "https://github.com/SimonLarsen/${pname}/releases/download/v${version}/${pname}-${version}.love"; - sha256 = "1x15276fhqspgrrv8fzkp032i2qa8piywc0yy061x59mxhdndzj6"; - }; - nativeBuildInputs = [ makeWrapper ]; buildInputs = [ lua love ]; @@ -48,7 +42,7 @@ stdenv.mkDerivation { ln -s ${desktopItem}/share/applications/* $out/share/applications/ ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Fast-paced one button platformer"; maintainers = with maintainers; [ leenaars ]; platforms = platforms.linux; diff --git a/pkgs/games/sil/default.nix b/pkgs/games/sil/default.nix index 208a14dc1c5..5f589ede2bc 100644 --- a/pkgs/games/sil/default.nix +++ b/pkgs/games/sil/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchzip, ncurses, libX11, libXaw, libXt, libXext, libXmu, makeWrapper, writeScript, ... }: -let +{ lib, stdenv, fetchzip, ncurses, libX11, libXaw, libXt, libXext, libXmu, makeWrapper, writeScript, ... }: +let setup = writeScript "setup" '' mkdir -p "$ANGBAND_PATH" # Copy all the data files into place @@ -18,7 +18,8 @@ stdenv.mkDerivation rec { stripRoot=false; }; - buildInputs = [ makeWrapper ncurses libX11 libXaw libXt libXext libXmu ]; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ ncurses libX11 libXaw libXt libXext libXmu ]; sourceRoot = "source/Sil/src"; @@ -26,7 +27,7 @@ stdenv.mkDerivation rec { prePatch = '' # Allow usage of ANGBAND_PATH - substituteInPlace config.h --replace "#define FIXED_PATHS" "" + substituteInPlace config.h --replace "#define FIXED_PATHS" "" ''; preConfigure = '' @@ -38,7 +39,7 @@ stdenv.mkDerivation rec { mkdir -p $out/bin cp sil $out/bin/sil # Wrap the program to set a user-local ANGBAND_PATH, and run the setup script to copy files into place - # We could just use the options for a user-local save and scores dir, but it tried to write to the + # We could just use the options for a user-local save and scores dir, but it tried to write to the # lib directory anyway, so we might as well give everyone a copy wrapProgram $out/bin/sil \ --run "set -u" \ @@ -49,15 +50,15 @@ stdenv.mkDerivation rec { meta = { description = "A rouge-like game set in the first age of Middle-earth"; longDescription = '' - A game of adventure set in the first age of Middle-earth, when the world still + A game of adventure set in the first age of Middle-earth, when the world still rang with elven song and gleamed with dwarven mail. - Walk the dark halls of Angband. Slay creatures black and fell. Wrest a shining + Walk the dark halls of Angband. Slay creatures black and fell. Wrest a shining Silmaril from Morgoth’s iron crown. ''; homepage = "http://www.amirrorclear.net/flowers/game/sil/index.html"; - license = stdenv.lib.licenses.gpl2; - maintainers = [ stdenv.lib.maintainers.michaelpj ]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2; + maintainers = [ lib.maintainers.michaelpj ]; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/simutrans/default.nix b/pkgs/games/simutrans/default.nix index b75b67e0528..60b2bc5faf7 100644 --- a/pkgs/games/simutrans/default.nix +++ b/pkgs/games/simutrans/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, unzip, zlib, libpng, bzip2, SDL, SDL_mixer +{ lib, stdenv, fetchurl, pkg-config, unzip, zlib, libpng, bzip2, SDL, SDL_mixer , buildEnv, config, runtimeShell }: @@ -6,33 +6,33 @@ let # Choose your "paksets" of objects, images, text, music, etc. paksets = config.simutrans.paksets or "pak64 pak64.japan pak128 pak128.britain pak128.german"; - result = with stdenv.lib; withPaks ( + result = with lib; withPaks ( if paksets == "*" then attrValues pakSpec # taking all else map (name: pakSpec.${name}) (splitString " " paksets) ); - ver1 = "120"; - ver2 = "4"; - ver3 = "1"; - version = "${ver1}.${ver2}.${ver3}"; - ver_dash = "${ver1}-${ver2}-${ver3}"; + ver1 = "121"; + ver2 = "0"; + ver3 = ""; + version = "${ver1}.${ver2}${lib.optionalString (ver3 != "") ".${ver3}"}"; + ver_dash = "${ver1}-${ver2}${lib.optionalString (ver3 != "") "-${ver3}"}"; binary_src = fetchurl { url = "mirror://sourceforge/simutrans/simutrans/${ver_dash}/simutrans-src-${ver_dash}.zip"; - sha256 = "0yw7vjvmczp022mgk35swwhpbiszpz91mwsgicxglwivgc30vvic"; + sha256 = "1f463r6kr5ig0zd3mncc74k93xbjywsq3d06j5r17831jyc9bzb9"; }; - # As of 2015/03, many packsets still didn't have a release for version 120. - pakSpec = stdenv.lib.mapAttrs + # As of 2021/07, many of these paksets have not been updated for years, so are on old versions. + pakSpec = lib.mapAttrs (pakName: attrs: mkPak (attrs // {inherit pakName;})) { pak64 = { - srcPath = "121-0/simupak64-121-0"; + srcPath = "${ver_dash}/simupak64-${ver_dash}"; sha256 = "1k335kh8dhm1hdn5iwn3sdgnrlpk0rqxmmgqgqcwsi09cmw45m5c"; }; "pak64.japan" = { - # No release for 120.2 yet! + # No release for 121.0 yet! srcPath = "120-0/simupak64.japan-120-0-1"; sha256 = "14swy3h4ij74bgaw7scyvmivfb5fmp21nixmhlpk3mav3wr3167i"; }; @@ -52,7 +52,7 @@ let "pak128.german" = { url = "mirror://sourceforge/simutrans/PAK128.german/" + "pak128.german_1.2_for_ST_121.0/PAK128.german_1.2_for_ST_121-0.zip"; - sha256 = "1jxjckz4b02yv1mv1zc3pmajpq740dfnlvhr0x762lbrybymvagi"; + sha256 = "1cv1rzl1a3i5dvk476zq094wawk9hhdh2f0y4xrdny5gn17mb2xi"; }; /* This release contains accented filenames that prevent unzipping. @@ -115,8 +115,8 @@ let sourceRoot = "."; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ zlib libpng bzip2 SDL SDL_mixer unzip ]; + nativeBuildInputs = [ pkg-config unzip ]; + buildInputs = [ zlib libpng bzip2 SDL SDL_mixer ]; configurePhase = let # Configuration as per the readme.txt and config.template @@ -152,7 +152,7 @@ let mv build/default/sim $out/bin/simutrans ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A simulation game in which the player strives to run a successful transport system"; longDescription = '' Simutrans is a cross-platform simulation game in which the diff --git a/pkgs/games/sm64ex/default.nix b/pkgs/games/sm64ex/default.nix index e5aeb84fbf1..9bf6b513843 100644 --- a/pkgs/games/sm64ex/default.nix +++ b/pkgs/games/sm64ex/default.nix @@ -1,4 +1,4 @@ -{ stdenv +{ lib, stdenv , fetchFromGitHub , python3 , pkg-config @@ -26,20 +26,20 @@ stdenv.mkDerivation rec { pname = "sm64ex"; - version = "unstable-2020-06-19"; + version = "unstable-2020-10-09"; src = fetchFromGitHub { owner = "sm64pc"; repo = "sm64ex"; - rev = "f5005418348cf1a53bfa75ff415a513ef0b9b273"; - sha256 = "0adyshkqk5c4lxhdxc3j6ax4svfka26486qpa5q2gl2nixwg9zxn"; + rev = "57c203465b2b3eee03dcb796ed1fad07d8283a2c"; + sha256 = "0k6a3r9f4spa7y2v1lyqs9lwa05lw8xgywllb7w828nal8y33cs6"; }; nativeBuildInputs = [ python3 pkg-config ]; buildInputs = [ audiofile SDL2 hexdump ]; makeFlags = [ "VERSION=${region}" ] ++ compileFlags - ++ stdenv.lib.optionals stdenv.isDarwin [ "OSX_BUILD=1" ]; + ++ lib.optionals stdenv.isDarwin [ "OSX_BUILD=1" ]; inherit baseRom; @@ -53,7 +53,7 @@ stdenv.mkDerivation rec { cp build/${region}_pc/sm64.${region}.f3dex2e $out/bin/sm64ex ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/sm64pc/sm64ex"; description = "Super Mario 64 port based off of decompilation"; longDescription = '' diff --git a/pkgs/games/snake4/default.nix b/pkgs/games/snake4/default.nix index 4c4161d5049..aee8b9e0810 100644 --- a/pkgs/games/snake4/default.nix +++ b/pkgs/games/snake4/default.nix @@ -1,10 +1,11 @@ -{ stdenv, fetchurl, shhmsg, shhopt, xorg }: +{ lib, stdenv, fetchurl, shhmsg, shhopt, xorg }: stdenv.mkDerivation rec { - name = "snake4-1.0.14"; + pname = "snake4"; + version = "1.0.14"; src = fetchurl { - url = "https://shh.thathost.com/pub-unix/files/${name}.tar.gz"; + url = "https://shh.thathost.com/pub-unix/files/snake4-${version}.tar.gz"; sha256 = "14cng9l857np42zixp440mbc8y5675frb6lhsds53j1cws9cncw9"; }; @@ -15,12 +16,12 @@ stdenv.mkDerivation rec { --replace "-o \$(OWNER) -g \$(GROUP)" "" \ --replace "4755" "755" ''; - + installFlags = [ "INSTLIBDIR=$(out)/lib" "INSTBINDIR=$(out)/bin" "INSTMANDIR=$(out)/man" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A game starring a fruit-eating snake"; homepage = "https://shh.thathost.com/pub-unix/html/snake4.html"; license = licenses.artistic1; diff --git a/pkgs/games/snipes/default.nix b/pkgs/games/snipes/default.nix index 37993e32a5d..01b24ee434c 100644 --- a/pkgs/games/snipes/default.nix +++ b/pkgs/games/snipes/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, fetchurl, SDL2, SDL2_ttf }: +{ lib, stdenv, fetchFromGitHub, fetchurl, SDL2, SDL2_ttf }: let font = fetchurl { @@ -13,13 +13,15 @@ in stdenv.mkDerivation { src = fetchFromGitHub { owner = "Davidebyzero"; repo = "Snipes"; - rev = "343e14104b7848eb1f882401888e685b7918ef9f"; - sha256 = "1rl70d5miak34warbwfv27z11vln4lvf7maqqc78z0gdc5zivdv2"; + rev = "594af45108e07aa4159c3babc9b5e53609c3fd6e"; + sha256 = "0gmh38swm74jmljy0bq27ipqzb4h8y9rzwc1j6harbd9qqz5knac"; }; postPatch = '' substitute config-sample.h config.h \ --replace SnipesConsole.ttf $out/share/snipes/SnipesConsole.ttf + substituteInPlace GNUmakefile \ + --replace 'CFLAGS=-Werror -Wall' 'CFLAGS=-Wall' ''; enableParallelBuilding = true; @@ -36,7 +38,7 @@ in stdenv.mkDerivation { runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Modern port of the classic 1982 text-mode game Snipes"; homepage = "https://www.vogons.org/viewtopic.php?f=7&t=49073"; license = licenses.free; # This reverse-engineered source code is released with the original authors' permission. diff --git a/pkgs/games/soi/default.nix b/pkgs/games/soi/default.nix index 0e4722cebb1..c9d35a08dc2 100644 --- a/pkgs/games/soi/default.nix +++ b/pkgs/games/soi/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cmake +{ lib, stdenv, fetchurl, cmake , boost, eigen2, lua, luabind, libGLU, libGL, SDL }: stdenv.mkDerivation rec { @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { "-DEIGEN_INCLUDE_DIR=${eigen2}/include/eigen2" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A physics-based puzzle game"; maintainers = with maintainers; [ raskin ]; platforms = platforms.linux; diff --git a/pkgs/games/solarus/default.nix b/pkgs/games/solarus/default.nix index c0daa99c15a..c42464feaed 100644 --- a/pkgs/games/solarus/default.nix +++ b/pkgs/games/solarus/default.nix @@ -1,25 +1,31 @@ -{ lib, mkDerivation, fetchFromGitLab, cmake, luajit, - SDL2, SDL2_image, SDL2_ttf, physfs, - openal, libmodplug, libvorbis, - qtbase, qttools }: +{ lib, mkDerivation, fetchFromGitLab, cmake, luajit +, SDL2, SDL2_image, SDL2_ttf, physfs, glm +, openal, libmodplug, libvorbis +, qtbase, qttools }: mkDerivation rec { pname = "solarus"; - version = "1.6.2"; + version = "1.6.4"; src = fetchFromGitLab { owner = "solarus-games"; repo = pname; rev = "v${version}"; - sha256 = "0d0xfjbmamz84aajxfc0fwrj8862xxbxz6n4xnc05r1m4g7gba77"; + sha256 = "sbdlf+R9OskDQ5U5rqUX2gF8l/fj0sDJv6BL7H1I1Ng="; }; - buildInputs = [ cmake luajit SDL2 + outputs = [ "out" "lib" "dev" ]; + + nativeBuildInputs = [ cmake qttools ]; + buildInputs = [ luajit SDL2 SDL2_image SDL2_ttf physfs openal libmodplug libvorbis - qtbase qttools ]; + qtbase glm ]; - enableParallelBuilding = true; + preFixup = '' + mkdir $lib/ + mv $out/lib $lib + ''; meta = with lib; { description = "A Zelda-like ARPG game engine"; diff --git a/pkgs/games/soldat-unstable/default.nix b/pkgs/games/soldat-unstable/default.nix new file mode 100644 index 00000000000..496d51e31c4 --- /dev/null +++ b/pkgs/games/soldat-unstable/default.nix @@ -0,0 +1,115 @@ +{ lib, stdenv, fetchFromGitHub, fpc, zip, makeWrapper +, SDL2, freetype, physfs, openal, gamenetworkingsockets +, xorg, autoPatchelfHook +}: + +let + base = stdenv.mkDerivation rec { + pname = "soldat-base"; + version = "unstable-2020-11-26"; + + src = fetchFromGitHub { + name = "base"; + owner = "Soldat"; + repo = "base"; + rev = "e5f9c35ec12562595b248a7a921dd3458b36b605"; + sha256 = "0qg0p2adb5v6di44iqczswldhypdqvn1nl96vxkfkxdg9i8x90w3"; + }; + + nativeBuildInputs = [ zip ]; + + buildPhase = '' + sh create_smod.sh + ''; + + installPhase = '' + install -Dm644 soldat.smod -t $out/share/soldat + install -Dm644 client/play-regular.ttf -t $out/share/soldat + ''; + + meta = with lib; { + description = "Soldat's base game content"; + license = licenses.cc-by-40; + platforms = platforms.all; + inherit (src.meta) homepage; + }; + }; + +in + +stdenv.mkDerivation rec { + pname = "soldat"; + version = "unstable-2021-04-27"; + + src = fetchFromGitHub { + name = "soldat"; + owner = "Soldat"; + repo = "soldat"; + rev = "4d17667c316ff08934e97448b7f290a8dc434e81"; + sha256 = "1pf557psmhfaagblfwdn36cw80j7bgs0lgjq8hmjbv58dysw3jdb"; + }; + + nativeBuildInputs = [ fpc makeWrapper autoPatchelfHook ]; + + buildInputs = [ SDL2 freetype physfs openal gamenetworkingsockets ]; + runtimeDependencies = [ xorg.libX11 ]; + + buildPhase = '' + runHook preBuild + + mkdir -p client/build server/build + + # build .so from stb headers + pushd client/libs/stb + make + popd + + # build client + pushd client + make mode=release + popd + + # build server + pushd server + make mode=release + popd + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + install -Dm644 client/libs/stb/libstb.so -t $out/lib + install -Dm755 client/build/soldat_* $out/bin/soldat + install -Dm755 server/build/soldatserver_* $out/bin/soldatserver + + # make sure soldat{,server} find their game archive, + # let them write their state and configuration files + # to $XDG_CONFIG_HOME/soldat/soldat{,server} unless + # the user specifies otherwise. + for p in $out/bin/soldatserver $out/bin/soldat; do + configDir="\''${XDG_CONFIG_HOME:-\$HOME/.config}/soldat/$(basename "$p")" + + wrapProgram "$p" \ + --run "mkdir -p \"$configDir\"" \ + --add-flags "-fs_portable 0" \ + --add-flags "-fs_userpath \"$configDir\"" \ + --add-flags "-fs_basepath \"${base}/share/soldat\"" + done + + runHook postInstall + ''; + + meta = with lib; { + description = "Soldat is a unique 2D (side-view) multiplayer action game"; + license = [ licenses.mit base.meta.license ]; + inherit (src.meta) homepage; + maintainers = [ maintainers.sternenseemann ]; + platforms = platforms.x86_64 ++ platforms.i686; + # portability currently mainly limited by fpc + # in nixpkgs which doesn't work on darwin, + # aarch64 and arm support should be possible: + # https://github.com/Soldat/soldat/issues/45 + }; +} diff --git a/pkgs/games/space-orbit/default.nix b/pkgs/games/space-orbit/default.nix index e9fe6257fb6..6794a340310 100644 --- a/pkgs/games/space-orbit/default.nix +++ b/pkgs/games/space-orbit/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl +{ lib, stdenv, fetchurl , libGLU, libGL, libXi, libXt, libXext, libX11, libXmu, freeglut }: @@ -37,7 +37,7 @@ EOF chmod a+x $out/bin/space-orbit ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A space combat simulator"; license = licenses.gpl2; platforms = platforms.all; diff --git a/pkgs/games/speed-dreams/default.nix b/pkgs/games/speed-dreams/default.nix index 473409ffae9..c0bb7b67e04 100644 --- a/pkgs/games/speed-dreams/default.nix +++ b/pkgs/games/speed-dreams/default.nix @@ -1,6 +1,6 @@ -{ fetchurl, stdenv, libGLU, libGL, freeglut, libX11, plib, openal, freealut, libXrandr, xorgproto, +{ fetchurl, lib, stdenv, libGLU, libGL, freeglut, libX11, plib, openal, freealut, libXrandr, xorgproto, libXext, libSM, libICE, libXi, libXt, libXrender, libXxf86vm, openscenegraph, expat, -libpng, zlib, bash, SDL2, enet, libjpeg, cmake, pkgconfig, libvorbis, runtimeShell, curl }: +libpng, zlib, bash, SDL2, enet, libjpeg, cmake, pkg-config, libvorbis, runtimeShell, curl }: let version = "2.2.2-r6553"; @@ -56,7 +56,7 @@ stdenv.mkDerivation rec { done ''; - nativeBuildInputs = [ pkgconfig cmake ]; + nativeBuildInputs = [ pkg-config cmake ]; buildInputs = [ libpng libGLU libGL freeglut libX11 plib openal freealut libXrandr xorgproto libXext libSM libICE libXi libXt libXrender libXxf86vm zlib bash expat @@ -65,9 +65,9 @@ stdenv.mkDerivation rec { meta = { description = "Car racing game - TORCS fork with more experimental approach"; homepage = "http://speed-dreams.sourceforge.net/"; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = with stdenv.lib.maintainers; [raskin]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [raskin]; + platforms = lib.platforms.linux; hydraPlatforms = []; }; } diff --git a/pkgs/games/spring/default.nix b/pkgs/games/spring/default.nix index b130a7b5f77..21aca573062 100644 --- a/pkgs/games/spring/default.nix +++ b/pkgs/games/spring/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchFromGitHub, cmake, lzma, boost, libdevil, zlib, p7zip +{ lib, stdenv, fetchFromGitHub, cmake, xz, boost, libdevil, zlib, p7zip , openal, libvorbis, glew, freetype, xorg, SDL2, libGLU, libGL -, asciidoc, libxslt, docbook_xsl, docbook_xsl_ns, curl, makeWrapper +, asciidoc, docbook_xsl, docbook_xsl_ns, curl, makeWrapper , jdk ? null, python ? null, systemd, libunwind, which, minizip , withAI ? true # support for AI Interfaces and Skirmish AIs }: @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { # taken from https://github.com/spring/spring/commits/maintenance src = fetchFromGitHub { owner = "spring"; - repo = "spring"; + repo = pname; inherit rev; sha256 = "1nx68d894yfmqc6df72hmk75ph26fqdvlmmq58cca0vbwpz9hf5v"; fetchSubmodules = true; @@ -40,26 +40,27 @@ stdenv.mkDerivation rec { "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON" "-DPREFER_STATIC_LIBS:BOOL=OFF"]; - buildInputs = [ cmake lzma boost libdevil zlib p7zip openal libvorbis freetype SDL2 - xorg.libX11 xorg.libXcursor libGLU libGL glew asciidoc libxslt docbook_xsl curl makeWrapper - docbook_xsl_ns systemd libunwind which minizip ] - ++ stdenv.lib.optional withAI jdk - ++ stdenv.lib.optional withAI python; - - enableParallelBuilding = true; + nativeBuildInputs = [ cmake makeWrapper docbook_xsl docbook_xsl_ns asciidoc ]; + buildInputs = [ xz boost libdevil zlib p7zip openal libvorbis freetype SDL2 + xorg.libX11 xorg.libXcursor libGLU libGL glew curl + systemd libunwind which minizip ] + ++ lib.optional withAI jdk + ++ lib.optional withAI python; NIX_CFLAGS_COMPILE = "-fpermissive"; # GL header minor incompatibility postInstall = '' wrapProgram "$out/bin/spring" \ - --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc systemd ]}" + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc systemd ]}" ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://springrts.com/"; description = "A powerful real-time strategy (RTS) game engine"; license = licenses.gpl2; - maintainers = [ maintainers.phreedom maintainers.qknight maintainers.domenkozar maintainers.sorki ]; + maintainers = with maintainers; [ phreedom qknight domenkozar sorki ]; platforms = platforms.linux; + # error: 'snprintf' was not declared in this scope + broken = true; }; } diff --git a/pkgs/games/spring/springlobby.nix b/pkgs/games/spring/springlobby.nix index 9912675ee67..009457a9dad 100644 --- a/pkgs/games/spring/springlobby.nix +++ b/pkgs/games/spring/springlobby.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cmake, wxGTK30, openal, pkgconfig, curl, libtorrentRasterbar +{ lib, stdenv, fetchurl, fetchpatch, cmake, wxGTK30, openal, pkg-config, curl, libtorrent-rasterbar , libpng, libX11, gettext, boost, libnotify, gtk2, doxygen, spring , makeWrapper, glib, minizip, alure, pcre, jsoncpp }: @@ -11,15 +11,20 @@ stdenv.mkDerivation rec { sha256 = "1r1g2hw9ipsmsmzbhsi7bxqra1za6x7j1kw12qzl5psqyq8rqbgs"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ cmake pkg-config gettext doxygen makeWrapper ]; buildInputs = [ - cmake wxGTK30 openal curl gettext libtorrentRasterbar pcre jsoncpp - boost libpng libX11 libnotify gtk2 doxygen makeWrapper glib minizip alure + wxGTK30 openal curl libtorrent-rasterbar pcre jsoncpp + boost libpng libX11 libnotify gtk2 glib minizip alure ]; - patches = [ ./revert_58b423e.patch ./fix-certs.patch ]; # Allows springLobby to continue using system installed spring until #707 is fixed - - enableParallelBuilding = true; + patches = [ + ./revert_58b423e.patch # Allows springLobby to continue using system installed spring until #707 is fixed + ./fix-certs.patch + (fetchpatch { + url = "https://github.com/springlobby/springlobby/commit/252c4cb156c1442ed9b4faec3f26265bc7c295ff.patch"; + sha256 = "sha256-Nq1F5fRPnCkZwl9KgrfuUmpIMK3hUOyZQYIKElWpmzU="; + }) + ]; postInstall = '' wrapProgram $out/bin/springlobby \ @@ -27,7 +32,7 @@ stdenv.mkDerivation rec { --set SPRING_BUNDLE_DIR "${spring}/lib" ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://springlobby.info/"; repositories.git = "git://github.com/springlobby/springlobby.git"; description = "Cross-platform lobby client for the Spring RTS project"; diff --git a/pkgs/games/stardust/default.nix b/pkgs/games/stardust/default.nix index 1e2089b9c50..2555950506a 100644 --- a/pkgs/games/stardust/default.nix +++ b/pkgs/games/stardust/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, zlib, libtiff, libxml2, SDL, xorgproto, libX11 +{ lib, stdenv, fetchurl, zlib, libtiff, libxml2, SDL, xorgproto, libX11 , libXi, libXmu, libXext, libGLU, libGL }: stdenv.mkDerivation rec { @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { --replace '#define PACKAGE ""' '#define PACKAGE "stardust"' ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Space flight simulator"; maintainers = [ maintainers.raskin ]; platforms = platforms.linux; diff --git a/pkgs/games/steam-tui/default.nix b/pkgs/games/steam-tui/default.nix new file mode 100644 index 00000000000..968f529421d --- /dev/null +++ b/pkgs/games/steam-tui/default.nix @@ -0,0 +1,45 @@ +{ lib +, rustPlatform +, steamcmd +, fetchFromGitHub +, steam-run-native +, runtimeShell +, withWine ? false +, wine +}: + +rustPlatform.buildRustPackage rec { + pname = "steam-tui"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "dmadisetti"; + repo = pname; + rev = version; + sha256 = "sha256-UTXYlPecv0MVonr9zZwfwopfC/Fdch/ZSCxqgUsem40="; + }; + + cargoSha256 = "sha256-VYBzwDLSV4N4qt2dNgIS399T2HIbPTdQ2rDIeheLlfo="; + + buildInputs = [ steamcmd steam-run-native ] + ++ lib.optional withWine wine; + + preFixup = '' + mv $out/bin/steam-tui $out/bin/.steam-tui-unwrapped + cat > $out/bin/steam-tui <<EOF + #!${runtimeShell} + export PATH=${steamcmd}/bin:\$PATH + exec ${steam-run-native}/bin/steam-run $out/bin/.steam-tui-unwrapped '\$@' + EOF + chmod +x $out/bin/steam-tui + ''; + + meta = with lib; { + description = "Rust TUI client for steamcmd"; + homepage = "https://github.com/dmadisetti/steam-tui"; + license = licenses.mit; + maintainers = with maintainers; [ legendofmiracles ]; + # steam only supports that platform + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix index 2c7cde78c43..b2c303caa54 100644 --- a/pkgs/games/steam/fhsenv.nix +++ b/pkgs/games/steam/fhsenv.nix @@ -6,6 +6,7 @@ , nativeOnly ? false , runtimeOnly ? false , runtimeShell +, stdenv # DEPRECATED , withJava ? config.steam.java or false @@ -28,35 +29,49 @@ let # Needed by gdialog, including in the steam-runtime perl # Open URLs - xdg_utils + xdg-utils iana-etc # Steam Play / Proton python3 # Steam VR procps usbutils - ] ++ lib.optional withJava jdk + + # electron based launchers need newer versions of these libraries than what runtime provides + mesa + sqlite + ] ++ lib.optional withJava jdk8 # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731 ++ lib.optional withPrimus primus ++ extraPkgs pkgs; - ldPath = map (x: "/steamrt/${steam-runtime-wrapped.arch}/" + x) steam-runtime-wrapped.libs - ++ lib.optionals (steam-runtime-wrapped-i686 != null) (map (x: "/steamrt/${steam-runtime-wrapped-i686.arch}/" + x) steam-runtime-wrapped-i686.libs); + ldPath = lib.optionals stdenv.is64bit [ "/lib64" ] + ++ [ "/lib32" ] + ++ 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 LD_LIBRARY_PATH=${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" ''; + # bootstrap.tar.xz has 444 permissions, which means that simple deletes fail + # and steam will not be able to start + fixBootstrap = '' + if [ -r $HOME/.local/share/Steam/bootstrap.tar.xz ]; then + chmod +w $HOME/.local/share/Steam/bootstrap.tar.xz + fi + ''; + setupSh = writeScript "setup.sh" '' #!${runtimeShell} ''; runSh = writeScript "run.sh" '' #!${runtimeShell} - runtime_paths="/lib32:/lib64:${lib.concatStringsSep ":" ldPath}" + runtime_paths="${lib.concatStringsSep ":" ldPath}" if [ "$1" == "--print-steam-runtime-library-paths" ]; then - echo "$runtime_paths" + echo "$runtime_paths''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" exit 0 fi export LD_LIBRARY_PATH="$runtime_paths''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" @@ -70,7 +85,7 @@ in buildFHSUserEnv rec { targetPkgs = pkgs: with pkgs; [ steamPackages.steam # License agreement - gnome3.zenity + gnome.zenity ] ++ commonTargetPkgs pkgs; multiPkgs = pkgs: with pkgs; [ @@ -83,13 +98,17 @@ in buildFHSUserEnv rec { xorg.libXfixes libGL libva + pipewire.lib # Not formally in runtime but needed by some games at-spi2-atk at-spi2-core # CrossCode gst_all_1.gstreamer gst_all_1.gst-plugins-ugly + gst_all_1.gst-plugins-base + json-glib # paradox launcher (Stellaris) libdrm + libxkbcommon # paradox launcher mono xorg.xkeyboardconfig xorg.libpciaccess @@ -117,7 +136,29 @@ in buildFHSUserEnv rec { libGLU libuuid libbsd - alsaLib + alsa-lib + + # Loop Hero + libidn2 + libpsl + nghttp2.lib + openssl_1_1 + rtmpdump + + # needed by getcap for vr startup + libcap + + # dependencies for mesa drivers, needed inside pressure-vessel + mesa.drivers + mesa.llvmPackages.llvm.lib + vulkan-loader + expat + wayland + xorg.libxcb + xorg.libXdamage + xorg.libxshmfence + xorg.libXxf86vm + libelf ] ++ (if (!nativeOnly) then [ (steamPackages.steam-runtime-wrapped.override { inherit runtimeOnly; @@ -155,7 +196,7 @@ in buildFHSUserEnv rec { SDL2 libusb1 dbus-glib - libav + ffmpeg atk # Only libraries are needed from those two libudev0-shim @@ -170,12 +211,9 @@ in buildFHSUserEnv rec { SDL SDL2_image glew110 - openssl libidn tbb wayland - mesa - libxkbcommon # Other things from runtime flac @@ -193,8 +231,6 @@ in buildFHSUserEnv rec { SDL_mixer SDL2_ttf SDL2_mixer - gstreamer - gst-plugins-base libappindicator-gtk2 libcaca libcanberra @@ -205,7 +241,14 @@ in buildFHSUserEnv rec { libvdpau ] ++ steamPackages.steam-runtime-wrapped.overridePkgs) ++ extraLibraries pkgs; - extraBuildCommands = if (!nativeOnly) then '' + extraBuildCommands = '' + if [ -f $out/usr/share/vulkan/icd.d/nvidia_icd.json ]; then + cp $out/usr/share/vulkan/icd.d/nvidia_icd{,32}.json + nvidia32Lib=$(realpath $out/lib32/libGLX_nvidia.so.0 | cut -d'/' -f-4) + escapedNvidia32Lib="''${nvidia32Lib//\//\\\/}" + sed -i "s/\/nix\/store\/.*\/lib\/libGLX_nvidia\.so\.0/$escapedNvidia32Lib\/lib\/libGLX_nvidia\.so\.0/g" $out/usr/share/vulkan/icd.d/nvidia_icd32.json + fi + '' + (if (!nativeOnly) then '' mkdir -p steamrt ln -s ../lib/steam-runtime steamrt/${steam-runtime-wrapped.arch} ${lib.optionalString (steam-runtime-wrapped-i686 != null) '' @@ -218,13 +261,13 @@ in buildFHSUserEnv rec { ${lib.optionalString (steam-runtime-wrapped-i686 != null) '' ln -s /usr/lib32/libbz2.so usr/lib32/libbz2.so.1.0 ''} - ''; + ''); extraInstallCommands = '' mkdir -p $out/share/applications ln -s ${steam}/share/icons $out/share ln -s ${steam}/share/pixmaps $out/share - sed "s,/usr/bin/steam,$out/bin/steam,g" ${steam}/share/applications/steam.desktop > $out/share/applications/steam.desktop + ln -s ${steam}/share/applications/steam.desktop $out/share/applications/steam.desktop ''; profile = '' @@ -238,6 +281,8 @@ in buildFHSUserEnv rec { fi export STEAM_RUNTIME=${if nativeOnly then "0" else "/steamrt"} + + export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json:/usr/share/vulkan/icd.d/intel_icd.i686.json:/usr/share/vulkan/icd.d/lvp_icd.x86_64.json:/usr/share/vulkan/icd.d/lvp_icd.i686.json:/usr/share/vulkan/icd.d/nvidia_icd.json:/usr/share/vulkan/icd.d/nvidia_icd32.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json:/usr/share/vulkan/icd.d/radeon_icd.i686.json '' + extraProfile; runScript = writeScript "steam-wrapper.sh" '' @@ -259,6 +304,7 @@ in buildFHSUserEnv rec { fi fi ${lib.optionalString (!nativeOnly) exportLDPath} + ${fixBootstrap} exec steam "$@" ''; @@ -266,12 +312,23 @@ in buildFHSUserEnv rec { broken = nativeOnly; }; + # allows for some gui applications to share IPC + # this fixes certain issues where they don't render correctly + unshareIpc = false; + + # Some applications such as Natron need access to MIT-SHM or other + # shared memory mechanisms. Unsharing the pid namespace + # breaks the ability for application to reference shared memory. + unsharePid = false; + passthru.run = buildFHSUserEnv { name = "steam-run"; targetPkgs = commonTargetPkgs; inherit multiPkgs extraBuildCommands; + inherit unshareIpc unsharePid; + runScript = writeScript "steam-run" '' #!${runtimeShell} run="$1" @@ -281,6 +338,7 @@ in buildFHSUserEnv rec { fi shift ${lib.optionalString (!nativeOnly) exportLDPath} + ${fixBootstrap} exec -- "$run" "$@" ''; }; diff --git a/pkgs/games/steam/fonts.nix b/pkgs/games/steam/fonts.nix index 44dde01a8a8..65efd42a22a 100644 --- a/pkgs/games/steam/fonts.nix +++ b/pkgs/games/steam/fonts.nix @@ -1,14 +1,15 @@ { stdenv, fetchurl, unzip }: stdenv.mkDerivation { - name = "steam-fonts-1"; + pname = "steam-fonts"; + version = "1"; src = fetchurl { url = "https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip"; sha256 = "1cgygmwich5f1jhhbmbkkpnzasjl8gy36xln76n6r2gjh6awqfx0"; }; - buildInputs = [ unzip ]; + nativeBuildInputs = [ unzip ]; sourceRoot = "."; diff --git a/pkgs/games/steam/runtime-wrapped.nix b/pkgs/games/steam/runtime-wrapped.nix index 8e4f5b866bb..765ecbed28f 100644 --- a/pkgs/games/steam/runtime-wrapped.nix +++ b/pkgs/games/steam/runtime-wrapped.nix @@ -6,7 +6,7 @@ let overridePkgs = lib.optionals (!runtimeOnly) (with pkgs; [ libgpgerror libpulseaudio - alsaLib + alsa-lib openalSoft libva1 libvdpau diff --git a/pkgs/games/steam/runtime.nix b/pkgs/games/steam/runtime.nix index 4f373b9be30..a986e1baa2c 100644 --- a/pkgs/games/steam/runtime.nix +++ b/pkgs/games/steam/runtime.nix @@ -1,14 +1,18 @@ -{ stdenv, fetchurl }: +{ lib, stdenv, fetchurl + +# for update script +, writeShellScript, curl, nix-update +}: stdenv.mkDerivation rec { - name = "steam-runtime"; + pname = "steam-runtime"; # from https://repo.steampowered.com/steamrt-images-scout/snapshots/ - version = "0.20200720.0"; + version = "0.20210630.0"; src = fetchurl { url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${version}/steam-runtime.tar.xz"; - sha256 = "03qdlr1xk84jb4c60ilis00vjhj70bxc0bbgk5g5b1883l2frljd"; + sha256 = "sha256-vwSgk3hEaI/RO9uvehAx3+ZBynpqjwGDzuyeyGCnu18="; name = "scout-runtime-${version}.tar.gz"; }; @@ -17,7 +21,14 @@ stdenv.mkDerivation rec { tar -C $out --strip=1 -x -f $src ''; - meta = with stdenv.lib; { + passthru = { + updateScript = writeShellScript "update.sh" '' + version=$(${curl}/bin/curl https://repo.steampowered.com/steamrt-images-scout/snapshots/latest-steam-client-general-availability/VERSION.txt) + ${nix-update}/bin/nix-update --version "$version" steamPackages.steam-runtime + ''; + }; + + meta = with lib; { description = "The official runtime used by Steam"; homepage = "https://github.com/ValveSoftware/steam-runtime"; license = licenses.unfreeRedistributable; # Includes NVIDIA CG toolkit diff --git a/pkgs/games/steam/steam.nix b/pkgs/games/steam/steam.nix index 830c97b2fb7..f9883633576 100644 --- a/pkgs/games/steam/steam.nix +++ b/pkgs/games/steam/steam.nix @@ -1,23 +1,23 @@ -{stdenv, fetchurl, runtimeShell, traceDeps ? false}: +{ lib, stdenv, fetchurl, runtimeShell, traceDeps ? false, bash }: let traceLog = "/tmp/steam-trace-dependencies.log"; - version = "1.0.0.61"; + version = "1.0.0.70"; in stdenv.mkDerivation { pname = "steam-original"; inherit version; src = fetchurl { - url = "http://repo.steampowered.com/steam/pool/steam/s/steam/steam_${version}.tar.gz"; - sha256 = "0c5xy57gwr14vp3wy3jpqi5dl6y7n01p2dy4jlgl9bf9x7616r6n"; + url = "https://repo.steampowered.com/steam/archive/stable/steam_${version}.tar.gz"; + sha256 = "sha256-n/iKV3jHsA77GPMk1M0MKC1fQ42tEgG8Ppgi4/9qLf8="; }; makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ]; postInstall = '' rm $out/bin/steamdeps - ${stdenv.lib.optionalString traceDeps '' + ${lib.optionalString traceDeps '' cat > $out/bin/steamdeps <<EOF #!${runtimeShell} echo \$1 >> ${traceLog} @@ -26,14 +26,22 @@ in stdenv.mkDerivation { EOF chmod +x $out/bin/steamdeps ''} - install -d $out/lib/udev/rules.d - install -m644 lib/udev/rules.d/*.rules $out/lib/udev/rules.d + + # install udev rules + mkdir -p $out/etc/udev/rules.d/ + cp ./subprojects/steam-devices/*.rules $out/etc/udev/rules.d/ + substituteInPlace $out/etc/udev/rules.d/60-steam-input.rules \ + --replace "/bin/sh" "${bash}/bin/bash" + + # this just installs a link, "steam.desktop -> /lib/steam/steam.desktop" + rm $out/share/applications/steam.desktop + sed -e 's,/usr/bin/steam,steam,g' steam.desktop > $out/share/applications/steam.desktop ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A digital distribution platform"; homepage = "http://store.steampowered.com/"; license = licenses.unfreeRedistributable; - maintainers = with maintainers; [ jagajaga ]; + maintainers = with maintainers; [ jagajaga jonringer ]; }; } diff --git a/pkgs/games/steam/steamcmd.nix b/pkgs/games/steam/steamcmd.nix index 223dff332a7..1c834f1c2ea 100644 --- a/pkgs/games/steam/steamcmd.nix +++ b/pkgs/games/steam/steamcmd.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, steam-run, bash, coreutils +{ lib, stdenv, fetchurl, steam-run, bash, coreutils , steamRoot ? "~/.local/share/Steam" }: @@ -36,7 +36,7 @@ stdenv.mkDerivation { chmod 0755 $out/bin/steamcmd ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Steam command-line tools"; homepage = "https://developer.valvesoftware.com/wiki/SteamCMD"; platforms = platforms.linux; diff --git a/pkgs/games/stepmania/default.nix b/pkgs/games/stepmania/default.nix index f6cfb873709..70e1acb1f34 100644 --- a/pkgs/games/stepmania/default.nix +++ b/pkgs/games/stepmania/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, fetchFromGitHub, cmake, nasm -, gtk2, glib, ffmpeg, alsaLib, libmad, libogg, libvorbis +, gtk2, glib, ffmpeg, alsa-lib, libmad, libogg, libvorbis , glew, libpulseaudio, udev }: @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake nasm ]; buildInputs = [ - gtk2 glib ffmpeg alsaLib libmad libogg libvorbis + gtk2 glib ffmpeg alsa-lib libmad libogg libvorbis glew libpulseaudio udev ]; @@ -32,8 +32,6 @@ stdenv.mkDerivation rec { ln -s $out/stepmania-5.1/stepmania $out/bin/stepmania ''; - enableParallelBuilding = true; - meta = with lib; { homepage = "https://www.stepmania.com/"; description = "Free dance and rhythm game for Windows, Mac, and Linux"; diff --git a/pkgs/games/stockfish/default.nix b/pkgs/games/stockfish/default.nix index 5e8429f0336..5aa2408afd1 100644 --- a/pkgs/games/stockfish/default.nix +++ b/pkgs/games/stockfish/default.nix @@ -1,37 +1,61 @@ -{ stdenv, fetchurl }: - -let arch = if stdenv.isx86_64 then "x86-64" else +{ lib, stdenv, fetchurl, fetchFromGitHub }: + +let + # The x86-64-modern may need to be refined further in the future + # but stdenv.hostPlatform CPU flags do not currently work on Darwin + # https://discourse.nixos.org/t/darwin-system-and-stdenv-hostplatform-features/9745 + archDarwin = if stdenv.isx86_64 then "x86-64-modern" else "x86-64"; + arch = if stdenv.isDarwin then archDarwin else + if stdenv.isx86_64 then "x86-64" else if stdenv.isi686 then "x86-32" else + if stdenv.isAarch64 then "armv8" else "unknown"; - version = "11"; + nnueFile = "nn-3475407dc199.nnue"; + nnue = fetchurl { + name = nnueFile; + url = "https://tests.stockfishchess.org/api/nn/${nnueFile}"; + sha256 = "sha256-NHVAfcGZc+pERnZ4Y0zOAj1iDkGXcMERzIk3/maJ7Ic="; + }; in -stdenv.mkDerivation { - +stdenv.mkDerivation rec { pname = "stockfish"; - inherit version; + version = "14"; - src = fetchurl { - url = "https://github.com/official-stockfish/Stockfish/archive/sf_${version}.tar.gz"; - sha256 = "16di83s79gf9kzdhcal5y0q9d59544gd5xqf1k8bwrqvc36628l0"; + src = fetchFromGitHub { + owner = "official-stockfish"; + repo = "Stockfish"; + rev = "sf_${version}"; + sha256 = "sha256-fX0Tr1yqjmNRSxmisFRKUY1E5//qF3zAfJ8innAeyxA="; }; - postUnpack = "sourceRoot+=/src"; - makeFlags = [ "PREFIX=$(out)" "ARCH=${arch}" ]; + # This addresses a linker issue with Darwin + # https://github.com/NixOS/nixpkgs/issues/19098 + preBuild = lib.optionalString stdenv.isDarwin '' + sed -i.orig '/^\#\#\# 3.*Link Time Optimization/,/^\#\#\# 3/d' Makefile + ''; + + postUnpack = '' + sourceRoot+=/src + echo ${nnue} + cp "${nnue}" "$sourceRoot/${nnueFile}" + ''; + + makeFlags = [ "PREFIX=$(out)" "ARCH=${arch}" "CXX=${stdenv.cc.targetPrefix}c++" ]; buildFlags = [ "build" ]; enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://stockfishchess.org/"; description = "Strong open source chess engine"; longDescription = '' Stockfish is one of the strongest chess engines in the world. It is also much stronger than the best human chess grandmasters. ''; - maintainers = with maintainers; [ luispedro peti ]; - platforms = ["x86_64-linux" "i686-linux"]; + maintainers = with maintainers; [ luispedro peti siraben ]; + platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux"]; license = licenses.gpl2; }; diff --git a/pkgs/games/stuntrally/default.nix b/pkgs/games/stuntrally/default.nix index 98a3ca88317..bf9e034d7b4 100644 --- a/pkgs/games/stuntrally/default.nix +++ b/pkgs/games/stuntrally/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, cmake, boost, ogre, mygui, ois, SDL2, libvorbis, pkgconfig +{ lib, fetchurl, stdenv, cmake, boost, ogre, mygui, ois, SDL2, libvorbis, pkg-config , makeWrapper, enet, libXcursor, bullet, openal }: stdenv.mkDerivation rec { @@ -26,14 +26,12 @@ stdenv.mkDerivation rec { popd ''; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ cmake boost ogre mygui ois SDL2 libvorbis + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ boost ogre mygui ois SDL2 libvorbis makeWrapper enet libXcursor bullet openal ]; - enableParallelBuilding = true; - - meta = with stdenv.lib; { + meta = with lib; { description = "Stunt Rally game with Track Editor, based on VDrift and OGRE"; homepage = "http://stuntrally.tuxfamily.org/"; license = licenses.gpl3Plus; diff --git a/pkgs/games/super-tux-kart/default.nix b/pkgs/games/super-tux-kart/default.nix index b3a7966071a..3589e10e7a5 100644 --- a/pkgs/games/super-tux-kart/default.nix +++ b/pkgs/games/super-tux-kart/default.nix @@ -1,15 +1,35 @@ -{ 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 +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, fetchsvn +, cmake +, pkg-config +, makeWrapper +, SDL2 +, glew +, openal +, OpenAL +, libvorbis +, libogg +, curl +, freetype +, libjpeg +, libpng +, harfbuzz +, mcpp +, wiiuse +, angelscript +, Cocoa +, IOKit }: let dir = "stk-code"; assets = fetchsvn { - url = "https://svn.code.sf.net/p/supertuxkart/code/stk-assets"; - rev = "18212"; - sha256 = "1dyj8r5rfifhnhayga8w8irkpa99vw57xjmy74cp8xz8g7zvdzqf"; - name = "stk-assets"; + url = "https://svn.code.sf.net/p/supertuxkart/code/stk-assets"; + rev = "18218"; + sha256 = "11iv3cqzvbjg33zz5i5gkl2syn6mlw9wqv0jc7h36vjnjqjv17xw"; + name = "stk-assets"; }; # List of bundled libraries in stk-code/lib to keep @@ -33,50 +53,88 @@ let "libraqm" # Not packaged to this date "libsquish" - ]; -in stdenv.mkDerivation rec { + # Not packaged to this date + "sheenbidi" + ] + # Our system angelscript causes linking error on ARM + # ld: libangelscript.so: undefined reference to + # `CallSystemFunctionNative(asCContext*, asCScriptFunction*, void*, unsigned int*, void*, unsigned long&, void*)' + # Bundled angelscript compiles fine + ++ lib.optional stdenv.hostPlatform.isAarch64 "angelscript"; +in +stdenv.mkDerivation rec { pname = "supertuxkart"; - version = "1.1"; + version = "1.2"; src = fetchFromGitHub { - owner = "supertuxkart"; - repo = "stk-code"; - rev = version; - sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp"; - name = dir; + owner = "supertuxkart"; + repo = "stk-code"; + rev = version; + sha256 = "1f98whk0v45jgwcsbdsb1qfambvrnbbgwq0w28kjz4278hinwzq6"; + name = dir; }; - # Deletes all bundled libs in stk-code/lib except those - # That couldn't be replaced with system packages + patches = [ + (fetchpatch { + # Fix build with SDL 2.0.14 + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/games-action/supertuxkart/files/supertuxkart-1.2-new-sdl.patch?id=288360dc7ce2f968a2f12099edeace3f3ed1a705"; + sha256 = "1jgab9393qan8qbqf5bf8cgw4mynlr5a6pggqhybzsmaczgnns3n"; + }) + ]; + postPatch = '' + # Deletes all bundled libs in stk-code/lib except those + # That couldn't be replaced with system packages find lib -maxdepth 1 -type d | egrep -v "^lib$|${(lib.concatStringsSep "|" bundledLibraries)}" | xargs -n1 -L1 -r -I{} rm -rf {} + + # Allow building with system-installed wiiuse on Darwin + substituteInPlace CMakeLists.txt \ + --replace 'NOT (APPLE OR HAIKU)) AND USE_SYSTEM_WIIUSE' 'NOT (HAIKU)) AND USE_SYSTEM_WIIUSE' ''; - nativeBuildInputs = [ cmake gettext libtool pkgconfig makeWrapper ]; + nativeBuildInputs = [ cmake pkg-config makeWrapper ]; buildInputs = [ - libX11 libXrandr - openal freealut libGLU libGL libvorbis libogg zlib freetype glew - curl fribidi bluez libjpeg libpng harfbuzz - mcpp wiiuse angelscript - ]; + SDL2 + glew + libvorbis + libogg + freetype + curl + libjpeg + libpng + harfbuzz + mcpp + wiiuse + ] + ++ lib.optional (!stdenv.hostPlatform.isAarch64) angelscript + ++ lib.optional stdenv.hostPlatform.isLinux openal + ++ lib.optionals stdenv.hostPlatform.isDarwin [ OpenAL IOKit Cocoa ]; cmakeFlags = [ - "-DBUILD_RECORDER=OFF" # libopenglrecorder is not in nixpkgs - "-DUSE_SYSTEM_ANGELSCRIPT=OFF" # doesn't work with 2.31.2 or 2.32.0 + "-DBUILD_RECORDER=OFF" # libopenglrecorder is not in nixpkgs + # doesn't work with our 2.35.0 on aarch64-linux + "-DUSE_SYSTEM_ANGELSCRIPT=${if !stdenv.hostPlatform.isAarch64 then "ON" else "OFF"}" "-DCHECK_ASSETS=OFF" "-DUSE_SYSTEM_WIIUSE=ON" - "-DUSE_SYSTEM_ANGELSCRIPT=ON" + "-DOpenGL_GL_PREFERENCE=GLVND" ]; + # Extract binary from built app bundle + postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir $out/bin + mv $out/{supertuxkart.app/Contents/MacOS,bin}/supertuxkart + rm -rf $out/supertuxkart.app + ''; + # Obtain the assets directly from the fetched store path, to avoid duplicating assets across multiple engine builds preFixup = '' - wrapProgram $out/bin/supertuxkart --set-default SUPERTUXKART_ASSETS_DIR "${assets}" + wrapProgram $out/bin/supertuxkart \ + --set-default SUPERTUXKART_ASSETS_DIR "${assets}" \ + --set-default SUPERTUXKART_DATADIR "$out/share/supertuxkart" \ ''; - enableParallelBuilding = true; - meta = with lib; { description = "A Free 3D kart racing game"; longDescription = '' @@ -87,6 +145,7 @@ in stdenv.mkDerivation rec { homepage = "https://supertuxkart.net/"; license = licenses.gpl2Plus; maintainers = with maintainers; [ pyrolagus peterhoeg ]; - platforms = with platforms; linux; + platforms = with platforms; unix; + changelog = "https://github.com/supertuxkart/stk-code/blob/${version}/CHANGELOG.md"; }; } diff --git a/pkgs/games/supertux/default.nix b/pkgs/games/supertux/default.nix index 68b49fd5517..31b36efc490 100644 --- a/pkgs/games/supertux/default.nix +++ b/pkgs/games/supertux/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cmake, pkgconfig, SDL2, SDL2_image , curl +{ lib, stdenv, fetchurl, cmake, pkg-config, SDL2, SDL2_image , curl , libogg, libvorbis, libGLU, libGL, openal, boost, glew , libpng, freetype }: @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { sha256 = "167m3z4m8n76dvbv42m1fnvabpbpsxvr28zk9641916jl9pfba96"; }; - nativeBuildInputs = [ pkgconfig cmake ]; + nativeBuildInputs = [ pkg-config cmake ]; buildInputs = [ SDL2 SDL2_image curl libogg libvorbis libGLU libGL openal boost glew libpng freetype @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { ln -s $out/games/supertux2 $out/bin ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Classic 2D jump'n run sidescroller game"; homepage = "http://supertux.github.io/"; license = licenses.gpl2; diff --git a/pkgs/games/system-syzygy/default.nix b/pkgs/games/system-syzygy/default.nix index 4343a27fb49..f01f93572ba 100644 --- a/pkgs/games/system-syzygy/default.nix +++ b/pkgs/games/system-syzygy/default.nix @@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ makeWrapper ]; buildInputs = [ SDL2 ]; - cargoSha256 = "001cwdq8zxji56yahwfsydi7s0j7c5zsip60lxk3qmn078wcipdp"; + cargoSha256 = "1jp9wnavq92w52ksj2q9fi3y58wq7ybfkx2kfbx2i2xv8d7y88ax"; postInstall = '' mkdir -p $out/share/syzygy/ diff --git a/pkgs/games/t4kcommon/default.nix b/pkgs/games/t4kcommon/default.nix index f2e226cb570..74757c236c5 100644 --- a/pkgs/games/t4kcommon/default.nix +++ b/pkgs/games/t4kcommon/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, fetchurl, cmake, pkgconfig, SDL, SDL_image, SDL_mixer, SDL_net, SDL_ttf, libpng, librsvg, libxml2 }: +{ lib, stdenv, fetchFromGitHub, fetchurl, cmake, pkg-config, SDL, SDL_image, SDL_mixer, SDL_net, SDL_ttf, libpng, librsvg, libxml2 }: stdenv.mkDerivation rec { version = "0.1.1"; @@ -19,11 +19,11 @@ stdenv.mkDerivation rec { }) ]; - nativeBuildInputs = [ cmake pkgconfig ]; + nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ SDL SDL_image SDL_mixer SDL_net SDL_ttf libpng librsvg libxml2 ]; - meta = with stdenv.lib; { - description = "A library of code shared between tuxmath and tuxtype."; + meta = with lib; { + description = "A library of code shared between tuxmath and tuxtype"; homepage = "https://github.com/tux4kids/t4kcommon"; license = licenses.gpl3Plus; maintainers = [ maintainers.aanderse ]; diff --git a/pkgs/games/taisei/default.nix b/pkgs/games/taisei/default.nix index 3c4d0df2b03..4bc04a336f8 100644 --- a/pkgs/games/taisei/default.nix +++ b/pkgs/games/taisei/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl +{ lib, stdenv, fetchurl # Build depends -, docutils, meson, ninja, pkgconfig, python3 +, docutils, meson, ninja, pkg-config, python3 # Runtime depends , glfw, SDL2, SDL2_mixer , freetype, libpng, libwebp, libzip, zlib @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ - docutils meson ninja pkgconfig python3 + docutils meson ninja pkg-config python3 ]; buildInputs = [ @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { patchShebangs . ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A free and open-source Touhou Project clone and fangame"; longDescription = '' Taisei is an open clone of the Tōhō Project series. Tōhō is a one-man diff --git a/pkgs/games/tcl2048/default.nix b/pkgs/games/tcl2048/default.nix index 765c50149ac..b2796225a6c 100644 --- a/pkgs/games/tcl2048/default.nix +++ b/pkgs/games/tcl2048/default.nix @@ -1,34 +1,27 @@ -{ stdenv, fetchurl, tcl, tcllib, runtimeShell }: +{ lib, stdenv, fetchurl, tcl, tcllib, runtimeShell }: -stdenv.mkDerivation { - name = "tcl2048-0.4.0"; +tcl.mkTclDerivation rec { + pname = "tcl2048"; + version = "0.4.0"; src = fetchurl { - url = "https://raw.githubusercontent.com/dbohdan/2048.tcl/v0.4.0/2048.tcl"; + url = "https://raw.githubusercontent.com/dbohdan/2048.tcl/v${version}/2048.tcl"; sha256 = "53f5503efd7f029b2614b0f9b1e3aac6c0342735a3c9b811d74a5135fee3e89e"; }; - phases = "installPhase"; + buildInputs = [ tcllib ]; + dontUnpack = true; installPhase = '' mkdir -pv $out/bin - cp $src $out/2048.tcl - cat > $out/bin/2048 << EOF - #!${runtimeShell} - - # wrapper for tcl2048 - export TCLLIBPATH="${tcllib}/lib/tcllib${tcllib.version}" - ${tcl}/bin/tclsh $out/2048.tcl - EOF - - chmod +x $out/bin/2048 + install -m 755 $src $out/bin/2048 ''; meta = { homepage = "https://github.com/dbohdan/2048.tcl"; description = "The game of 2048 implemented in Tcl"; - license = stdenv.lib.licenses.mit; - platforms = stdenv.lib.platforms.all; - maintainers = with stdenv.lib.maintainers; [ dbohdan ]; + license = lib.licenses.mit; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ dbohdan ]; }; } diff --git a/pkgs/games/tdm/default.nix b/pkgs/games/tdm/default.nix deleted file mode 100644 index d0133df59dd..00000000000 --- a/pkgs/games/tdm/default.nix +++ /dev/null @@ -1,102 +0,0 @@ -{ stdenv, fetchurl, binutils-unwrapped, sconsPackages, gnum4, p7zip, glibc_multi, mesa -, xorg, libGLU, libGL, openal -, lib, makeWrapper, makeDesktopItem }: - -let - pname = "tdm"; - version = "2.07"; - - desktop = makeDesktopItem { - desktopName = pname; - name = pname; - exec = "@out@/bin/${pname}"; - icon = pname; - terminal = "false"; - comment = "The Dark Mod - stealth FPS inspired by the Thief series"; - type = "Application"; - categories = "Game;"; - genericName = pname; - }; -in stdenv.mkDerivation { - name = "${pname}-${version}"; - src = fetchurl { - url = "https://www.thedarkmod.com/sources/thedarkmod.${version}.src.7z"; - sha256 = "17wdpip8zvm2njz0xrf7xcxl73hnsc6i83zj18kn8rnjkpy50dd6"; - }; - nativeBuildInputs = [ - p7zip sconsPackages.scons_3_1_2 gnum4 makeWrapper - ]; - buildInputs = [ - glibc_multi mesa.dev xorg.libX11.dev openal - xorg.libXext.dev xorg.libXxf86vm.dev - libGL libGLU - ]; - unpackPhase = '' - 7z x $src - ''; - - # I'm pretty sure there's a better way to build 2 targets than a random hook - preBuild = '' - pushd tdm_update - scons BUILD=release TARGET_ARCH=x64 - install -Dm755 tdm_update.linux $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 - ''; - - installPhase = '' - runHook preInstall - - install -Dm644 ${desktop}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop - substituteInPlace $out/share/applications/${pname}.desktop --subst-var out - install -Dm755 thedarkmod.x64 $out/share/libexec/tdm - - # The package doesn't install assets, these get installed by running tdm_update.linux - # Provide a script that runs tdm_update.linux on first launch - install -Dm755 <(cat <<'EOF' -#!/bin/sh -set -e -DIR="$HOME/.local/share/tdm" -mkdir -p "$DIR" -cd "$DIR" -exec "PKGDIR/share/libexec/tdm_update.linux" --noselfupdate -EOF - ) $out/bin/tdm_update - - install -Dm755 <(cat <<'EOF' -#!/bin/sh -set -e -DIR="$HOME/.local/share/tdm" -if [ ! -d "$DIR" ]; then - echo "Please run tdm_update to (re)download game data" -else - cd "$DIR" - exec "PKGDIR/share/libexec/tdm" -fi -EOF - ) $out/bin/tdm - sed -i "s!PKGDIR!$out!g" $out/bin/tdm_update - sed -i "s!PKGDIR!$out!g" $out/bin/tdm - - runHook postInstall - ''; - - postInstall = '' - wrapProgram $out/bin/tdm --suffix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libGL libGLU ]} - ''; - - enableParallelBuilding = true; - sconsFlags = [ "BUILD=release" "TARGET_ARCH=x64" ]; - NIX_CFLAGS_COMPILE = "-Wno-error=format-security"; - meta = with stdenv.lib; { - description = "The Dark Mod - stealth FPS inspired by the Thief series"; - homepage = "http://www.thedarkmod.com"; - license = licenses.gpl3; - maintainers = with maintainers; [ cizra ]; - platforms = with platforms; [ "x86_64-linux" ]; # tdm also supports x86, but I don't have a x86 install at hand to test. - }; -} diff --git a/pkgs/games/tecnoballz/default.nix b/pkgs/games/tecnoballz/default.nix new file mode 100644 index 00000000000..d13468b78e0 --- /dev/null +++ b/pkgs/games/tecnoballz/default.nix @@ -0,0 +1,68 @@ +{ lib +, stdenv +, fetchurl +, autoconf +, automake +, SDL +, SDL_mixer +, SDL_image +, libmikmod +, tinyxml +}: + +stdenv.mkDerivation rec { + pname = "tecnoballz"; + version = "0.93.1"; + + src = fetchurl { + url = "https://linux.tlk.fr/games/TecnoballZ/download/tecnoballz-${version}.tgz"; + sha256 = "sha256-WRW76e+/eXE/KwuyOjzTPFQnKwNznbIrUrz14fnvgug="; + }; + + nativeBuildInputs = [ + autoconf + automake + ]; + + buildInputs = [ + SDL + SDL_mixer + SDL_image + libmikmod + tinyxml + ]; + + # Newer compilers introduced warnings + postPatch = '' + substituteInPlace configure.ac \ + --replace "-Werror" "" + ''; + + preConfigure = '' + ./bootstrap + ''; + + installFlags = [ + # Default is $(out)/games + "gamesdir=$(out)/bin" + # We set the scoredir to $TMPDIR at install time. + # Otherwise it will try to write in /var/games at install time + "scoredir=$(TMPDIR)" + ]; + + meta = with lib; { + homepage = "https://linux.tlk.fr/games/TecnoballZ/"; + downloadPage = "https://linux.tlk.fr/games/TecnoballZ/download/"; + description = "A brick breaker game with a sophisticated system of weapons and bonuses"; + longDescription = '' + A exciting Brick Breaker with 50 levels of game and 11 special levels, + distributed on the 2 modes of game to give the player a sophisticated + system of attack weapons with an enormous power of fire that can be build + by gaining bonuses. Numerous decors, musics and sounds complete this great + game. This game was ported from the Commodore Amiga. + ''; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/games/teetertorture/default.nix b/pkgs/games/teetertorture/default.nix index a568fd79085..6e18dbae07b 100644 --- a/pkgs/games/teetertorture/default.nix +++ b/pkgs/games/teetertorture/default.nix @@ -1,9 +1,10 @@ -{stdenv, fetchurl, SDL, SDL_image, SDL_mixer}: +{ lib, stdenv, fetchurl, SDL, SDL_image, SDL_mixer }: -stdenv.mkDerivation { - name = "teeter-torture-20051018"; +stdenv.mkDerivation rec { + pname = "teeter-torture"; + version = "2005-10-18"; src = fetchurl { - url = "ftp://ftp.tuxpaint.org/unix/x/teetertorture/source/teetertorture-2005-10-18.tar.gz"; + url = "ftp://ftp.tuxpaint.org/unix/x/teetertorture/source/teetertorture-${version}.tar.gz"; sha256 = "175gdbkx3m82icyzvwpyzs4v2fd69c695k5n8ca0lnjv81wnw2hr"; }; @@ -26,7 +27,7 @@ stdenv.mkDerivation { meta = { homepage = "http://www.newbreedsoftware.com/teetertorture/"; description = "Simple shooting game with your cannon is sitting atop a teeter totter"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/teeworlds/default.nix b/pkgs/games/teeworlds/default.nix index 9ff50d533be..b0a49cc77d1 100644 --- a/pkgs/games/teeworlds/default.nix +++ b/pkgs/games/teeworlds/default.nix @@ -1,4 +1,4 @@ -{ fetchFromGitHub, stdenv, cmake, pkgconfig, python3, alsaLib +{ fetchFromGitHub, lib, stdenv, cmake, pkg-config, python3, alsa-lib , libX11, libGLU, SDL2, lua5_3, zlib, freetype, wavpack, icoutils , nixosTests }: @@ -22,10 +22,10 @@ stdenv.mkDerivation rec { '#define DATA_DIR "${placeholder "out"}/share/teeworlds/data"' ''; - nativeBuildInputs = [ cmake pkgconfig icoutils ]; + nativeBuildInputs = [ cmake pkg-config icoutils ]; buildInputs = [ - python3 alsaLib libX11 libGLU SDL2 lua5_3 zlib freetype wavpack + python3 alsa-lib libX11 libGLU SDL2 lua5_3 zlib freetype wavpack ]; postInstall = '' @@ -51,7 +51,7 @@ stdenv.mkDerivation rec { homepage = "https://teeworlds.com/"; license = "BSD-style, see `license.txt'"; - maintainers = with stdenv.lib.maintainers; [ astsmtl ]; - platforms = stdenv.lib.platforms.linux; + maintainers = with lib.maintainers; [ astsmtl ]; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/tennix/default.nix b/pkgs/games/tennix/default.nix index 56ac0a2faf4..f81ddb7edf9 100644 --- a/pkgs/games/tennix/default.nix +++ b/pkgs/games/tennix/default.nix @@ -1,9 +1,10 @@ -{stdenv, fetchurl, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_net, python } : +{lib, stdenv, fetchurl, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_net, python } : stdenv.mkDerivation rec { - name = "tennix-1.1"; + pname = "tennix"; + version = "1.1"; src = fetchurl { - url = "https://icculus.org/tennix/downloads/${name}.tar.gz"; + url = "https://icculus.org/tennix/downloads/tennix-${version}.tar.gz"; sha256 = "0np5kw1y7i0z0dsqx4r2nvmq86qj8hv3mmgavm3hxraqnds5z8cm"; }; @@ -16,7 +17,7 @@ stdenv.mkDerivation rec { installFlags="PREFIX=$out install" ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://icculus.org/tennix/"; description = "Classic Championship Tour 2011"; license = licenses.gpl2Plus; diff --git a/pkgs/games/terraria-server/default.nix b/pkgs/games/terraria-server/default.nix index e16a771d272..b5a8c7e486b 100644 --- a/pkgs/games/terraria-server/default.nix +++ b/pkgs/games/terraria-server/default.nix @@ -2,16 +2,16 @@ stdenv.mkDerivation rec { pname = "terraria-server"; - version = "1.4.0.5"; + version = "1.4.2.3"; urlVersion = lib.replaceChars [ "." ] [ "" ] version; src = fetchurl { - url = "https://terraria.org/system/dedicated_servers/archives/000/000/039/original/terraria-server-${urlVersion}.zip"; - sha256 = "1bvcafpjxp7ddrbhm3z0xamgi71ymbi41dlx990daz0b5kbdir8y"; + url = "https://terraria.org/system/dedicated_servers/archives/000/000/046/original/terraria-server-${urlVersion}.zip"; + sha256 = "0qm4pbm1d9gax47fk4zhw9rcxvajxs36w7dghirli89i994r7g8j"; }; - buildInputs = [ file unzip ]; - nativeBuildInputs = [ autoPatchelfHook ]; + buildInputs = [ file ]; + nativeBuildInputs = [ autoPatchelfHook unzip ]; installPhase = '' mkdir -p $out/bin diff --git a/pkgs/games/tes3cmd/default.nix b/pkgs/games/tes3cmd/default.nix new file mode 100644 index 00000000000..3778aadda9c --- /dev/null +++ b/pkgs/games/tes3cmd/default.nix @@ -0,0 +1,28 @@ +{ stdenv, lib, perlPackages, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "tes3cmd"; + version = "0.40-pre-release-2"; + + src = fetchFromGitHub { + owner = "john-moonsugar"; + repo = pname; + rev = "f72e9ed9dd18e8545dd0dc2a4056c250cf505790"; + sha256 = "01zqplp8yb0xnl54963n0zkz66rf3hn2x3i255jlhdhx1c43jba7"; + }; + + buildInputs = [ perlPackages.perl ]; + + installPhase = '' + mkdir -p $out/bin + cp tes3cmd $out/bin/tes3cmd + ''; + + meta = with lib; { + description = "A command line tool for examining and modifying plugins for the Elder Scrolls game Morrowind by Bethesda Softworks"; + homepage = "https://github.com/john-moonsugar/tes3cmd"; + license = licenses.mit; + maintainers = [ maintainers.marius851000 ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/the-butterfly-effect/default.nix b/pkgs/games/the-butterfly-effect/default.nix index 14d51ee87bd..f5330485edd 100644 --- a/pkgs/games/the-butterfly-effect/default.nix +++ b/pkgs/games/the-butterfly-effect/default.nix @@ -1,11 +1,12 @@ -{ stdenv, mkDerivation, fetchgit, qt5, box2d, which, cmake, gettext }: +{ lib, mkDerivation, fetchFromGitHub, qt5, box2d, which, cmake, gettext }: mkDerivation rec { pname = "tbe"; version = "0.9.3.1"; - src = fetchgit { - url = "https://github.com/kaa-ching/tbe"; + src = fetchFromGitHub { + owner = "kaa-ching"; + repo = pname; rev = "refs/tags/v${version}"; sha256 = "1ag2cp346f9bz9qy6za6q54id44d2ypvkyhvnjha14qzzapwaysj"; }; @@ -16,7 +17,6 @@ mkDerivation rec { qt5.qtbase qt5.qtsvg qt5.qttranslations box2d which cmake gettext ]; - enableParallelBuilding = true; installPhase = '' make DESTDIR=.. install @@ -25,7 +25,7 @@ mkDerivation rec { cp -r ../usr/share $out/ ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A physics-based game vaguely similar to Incredible Machine"; homepage = "http://the-butterfly-effect.org/"; maintainers = [ maintainers.raskin ]; diff --git a/pkgs/games/the-powder-toy/default.nix b/pkgs/games/the-powder-toy/default.nix index af392eca8d8..ba232097af6 100644 --- a/pkgs/games/the-powder-toy/default.nix +++ b/pkgs/games/the-powder-toy/default.nix @@ -1,36 +1,35 @@ - -{ stdenv, fetchFromGitHub, scons, pkgconfig, SDL2, lua, fftwFloat, - zlib, bzip2, curl, darwin }: +{ lib, stdenv, fetchFromGitHub, meson, luajit, ninja, pkg-config +, python3, SDL2, lua, fftwFloat, zlib, bzip2, curl, darwin }: stdenv.mkDerivation rec { pname = "the-powder-toy"; - version = "95.0"; + version = "96.1.349"; src = fetchFromGitHub { owner = "The-Powder-Toy"; repo = "The-Powder-Toy"; rev = "v${version}"; - sha256 = "18rp2g1mj0gklra06wm9dm57h73hmm301npndh0y8ap192i5s8sa"; + sha256 = "sha256-MSN81kPaH8cWZO+QEOlMUQQghs1kn8CpsKA5SUC/RX8="; }; - nativeBuildInputs = [ scons pkgconfig ]; - - propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin - [ darwin.apple_sdk.frameworks.Cocoa ]; + nativeBuildInputs = [ meson ninja pkg-config python3 ]; - buildInputs = [ SDL2 lua fftwFloat zlib bzip2 curl ]; + buildInputs = [ luajit SDL2 lua fftwFloat zlib bzip2 curl ]; installPhase = '' - install -Dm 755 build/powder* "$out/bin/powder" + install -Dm 755 powder $out/bin/powder ''; + propagatedBuildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ]; + enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { description = "A free 2D physics sandbox game"; homepage = "http://powdertoy.co.uk/"; platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ]; - license = licenses.gpl3; + license = licenses.gpl3Plus; maintainers = with maintainers; [ abbradar siraben ]; + mainProgram = "powder"; }; } diff --git a/pkgs/games/tibia/default.nix b/pkgs/games/tibia/default.nix index b8c2c3f3cf4..0fee9ce6c6c 100644 --- a/pkgs/games/tibia/default.nix +++ b/pkgs/games/tibia/default.nix @@ -1,11 +1,11 @@ -{ stdenv, fetchurl, glibc, libX11, runtimeShell, libGLU, libGL }: +{ lib, stdenv, fetchurl, glibc, libX11, runtimeShell, libGLU, libGL }: -with stdenv.lib; -stdenv.mkDerivation { - name = "tibia-10.90"; +stdenv.mkDerivation rec { + pname = "tibia"; + version = "10.90"; src = fetchurl { - url = "http://static.tibia.com/download/tibia1090.tgz"; + url = "http://static.tibia.com/download/tibia${lib.replaceStrings ["."] [""] version}.tgz"; sha256 = "11mkh2dynmbpay51yfaxm5dmcys3rnpk579s9ypfkhblsrchbkhx"; }; @@ -24,7 +24,7 @@ stdenv.mkDerivation { cp -r * $out/res patchelf --set-interpreter ${glibc.out}/lib/ld-linux.so.2 \ - --set-rpath ${stdenv.lib.makeLibraryPath [ stdenv.cc.cc libX11 libGLU libGL ]} \ + --set-rpath ${lib.makeLibraryPath [ stdenv.cc.cc libX11 libGLU libGL ]} \ "$out/res/Tibia" # We've patchelf'd the files. The main ‘Tibia’ binary is a bit @@ -50,8 +50,8 @@ stdenv.mkDerivation { meta = { description = "Top-down MMORPG set in a fantasy world"; homepage = "http://tibia.com"; - license = stdenv.lib.licenses.unfree; + license = lib.licenses.unfree; platforms = ["i686-linux"]; - maintainers = with stdenv.lib.maintainers; [ ]; + maintainers = with lib.maintainers; [ ]; }; } diff --git a/pkgs/games/tintin/default.nix b/pkgs/games/tintin/default.nix index cd58fcf24fd..73070db244f 100644 --- a/pkgs/games/tintin/default.nix +++ b/pkgs/games/tintin/default.nix @@ -6,11 +6,12 @@ assert tlsSupport -> gnutls != null; stdenv.mkDerivation rec { - name = "tintin-2.02.03"; + pname = "tintin"; + version = "2.02.05"; src = fetchurl { - url = "mirror://sourceforge/tintin/${name}.tar.gz"; - sha256 = "0ybgy8j8i36d7f892x539vl6fl5zvvfyy5ffc98550vjr6qqhk74"; + url = "mirror://sourceforge/tintin/tintin-${version}.tar.gz"; + sha256 = "sha256-Y6cAUhItJNade8ASOVdF8aBBLf/UVqjoqrhXBNRL1aE="; }; nativeBuildInputs = lib.optional tlsSupport gnutls.dev; @@ -20,7 +21,7 @@ stdenv.mkDerivation rec { cd src ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A free MUD client for macOS, Linux and Windows"; homepage = "http://tintin.sourceforge.net"; license = licenses.gpl2; diff --git a/pkgs/games/tinyfugue/default.nix b/pkgs/games/tinyfugue/default.nix index fb706d38e18..763241f2909 100644 --- a/pkgs/games/tinyfugue/default.nix +++ b/pkgs/games/tinyfugue/default.nix @@ -1,9 +1,9 @@ -{ stdenv, fetchurl, ncurses, zlib +{ lib, stdenv, fetchurl, ncurses, zlib , openssl ? null , sslSupport ? true }: -with stdenv.lib; +with lib; assert sslSupport -> openssl != null; diff --git a/pkgs/games/tome2/default.nix b/pkgs/games/tome2/default.nix index fa73697ab42..d40717c9a38 100644 --- a/pkgs/games/tome2/default.nix +++ b/pkgs/games/tome2/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, makeDesktopItem, ncurses, libX11, boost, cmake }: +{ lib, stdenv, fetchFromGitHub, makeDesktopItem, ncurses, libX11, boost, cmake }: let pname = "tome2"; @@ -14,6 +14,7 @@ let type = "Application"; categories = "Game;RolePlaying;"; genericName = pname; + fileValidation = false; }; in stdenv.mkDerivation { @@ -40,7 +41,7 @@ in stdenv.mkDerivation { cp ${desktopItem}/share/applications/*.desktop $out/share/applications ''; - meta = with stdenv.lib; { + meta = with lib; { inherit description; license = licenses.unfree; maintainers = with maintainers; [ cizra ]; diff --git a/pkgs/games/tome4/default.nix b/pkgs/games/tome4/default.nix index 59dced9ac67..ace9b384663 100644 --- a/pkgs/games/tome4/default.nix +++ b/pkgs/games/tome4/default.nix @@ -1,8 +1,14 @@ -{ stdenv, fetchurl, makeDesktopItem, makeWrapper, premake4, unzip +{ lib, stdenv, fetchurl, makeDesktopItem, makeWrapper, premake4, unzip , openal, libpng, libvorbis, libGLU, SDL2, SDL2_image, SDL2_ttf }: -let +stdenv.mkDerivation rec { pname = "tome4"; + version = "1.6.7"; + + src = fetchurl { + url = "https://te4.org/dl/t-engine/t-engine4-src-${version}.tar.bz2"; + sha256 = "0283hvms5hr29zr0grd6gq059k0hg8hcz3fsmwjmysiih8790i68"; + }; desktop = makeDesktopItem { desktopName = pname; @@ -16,15 +22,6 @@ let genericName = pname; }; -in stdenv.mkDerivation rec { - name = "${pname}-${version}"; - version = "1.6.7"; - - src = fetchurl { - url = "https://te4.org/dl/t-engine/t-engine4-src-${version}.tar.bz2"; - sha256 = "0283hvms5hr29zr0grd6gq059k0hg8hcz3fsmwjmysiih8790i68"; - }; - prePatch = '' # http://forums.te4.org/viewtopic.php?f=42&t=49478&view=next#p234354 sed -i 's|#include <GL/glext.h>||' src/tgl.h @@ -70,7 +67,7 @@ in stdenv.mkDerivation rec { runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Tales of Maj'eyal (rogue-like game)"; homepage = "https://te4.org/"; license = licenses.gpl3; diff --git a/pkgs/games/toppler/default.nix b/pkgs/games/toppler/default.nix index cf037a0f436..ffe807410bb 100644 --- a/pkgs/games/toppler/default.nix +++ b/pkgs/games/toppler/default.nix @@ -1,4 +1,4 @@ -{ stdenv +{ lib, stdenv , fetchurl , SDL , SDL_mixer @@ -20,7 +20,10 @@ stdenv.mkDerivation rec { zlib ]; - meta = with stdenv.lib; { + # The conftest hangs on Hydra runners, because they are not logged in. + configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest"; + + meta = with lib; { description = "Jump and run game, reimplementation of Tower Toppler/Nebulus"; homepage = "http://toppler.sourceforge.net/"; license = licenses.gpl2; diff --git a/pkgs/games/torcs/default.nix b/pkgs/games/torcs/default.nix index 136578924a0..e3ec82b549a 100644 --- a/pkgs/games/torcs/default.nix +++ b/pkgs/games/torcs/default.nix @@ -1,12 +1,13 @@ -{ fetchpatch, fetchurl, stdenv, libGLU, freeglut, libX11, plib, openal, freealut, libXrandr, xorgproto, +{ fetchpatch, fetchurl, lib, stdenv, libGLU, freeglut, libX11, plib, openal, freealut, libXrandr, xorgproto, libXext, libSM, libICE, libXi, libXt, libXrender, libXxf86vm, libvorbis, libpng, zlib, makeWrapper }: stdenv.mkDerivation rec { - name = "torcs-1.3.7"; + pname = "torcs"; + version = "1.3.7"; src = fetchurl { - url = "mirror://sourceforge/torcs/${name}.tar.bz2"; + url = "mirror://sourceforge/torcs/torcs-${version}.tar.bz2"; sha256 = "0kdq0sc7dsfzlr0ggbxggcbkivc6yp30nqwjwcaxg9295s3b06wa"; }; @@ -42,9 +43,9 @@ stdenv.mkDerivation rec { meta = { description = "Car racing game"; homepage = "http://torcs.sourceforge.net/"; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [viric]; + platforms = lib.platforms.linux; hydraPlatforms = []; }; } diff --git a/pkgs/games/torus-trooper/default.nix b/pkgs/games/torus-trooper/default.nix new file mode 100644 index 00000000000..645abc76c80 --- /dev/null +++ b/pkgs/games/torus-trooper/default.nix @@ -0,0 +1,104 @@ +{ lib +, stdenv +, fetchpatch +, fetchurl +, unzip +, gdc +, SDL +, SDL_mixer +, bulletml +}: + +let +debianPatch = patchname: hash: fetchpatch { + name = "${patchname}.patch"; + url = "https://sources.debian.org/data/main/t/torus-trooper/0.22.dfsg1-12/debian/patches/${patchname}.patch"; + sha256 = hash; +}; + +in stdenv.mkDerivation rec { + pname = "torus-trooper"; + version = "0.22"; + + src = fetchurl { + url = "http://abagames.sakura.ne.jp/windows/tt${lib.replaceStrings ["."] ["_"] version}.zip"; + sha256 = "1yhki1fdp3fi4y2iq12vca69f6k38dqjaw9z4lwcxky5kbgb7jvg"; + }; + + patches = [ + (debianPatch + "imports" + "0mifw0mj66zljpq6iqnh0rhkgs2sky8rz0p32k98vxfnsb39ibsf") + (debianPatch + "fixes" + "05f93zq2v14lymq748c9g646ckbh9mqpr5rrahb63s90x8hlcqil") + (debianPatch + "directories" + "0y5xvf26v9fk0rx6ncrxx4czckhjbi891hp3pixlmv568pg9cihd") + (debianPatch + "windowed" + "1d8ghj4shvpb0s8l16kscz4l7rz1fxmfdpddy1ikz3678pw1sc8p") + (debianPatch + "dotfile" + "17yirmnjhbd1clzhmdd2mfdhbxkyinaahd6v3yz5kzbcylvjz2r2") + (debianPatch + "window-resizing" + "1n64gbhabl6vis7s294wxlj2k8s3ypxljpdg71icwz1m9jjx59df") + (debianPatch + "save-score-444372" + "1skny6s3hjxkh8w4fq86vp51j7z40fvn80b8myl4i1zzlwag3x17") + (debianPatch + "level-select-444948" + "008248s55188plggg2kg01nimjgc7w0sqd3c22sl6lzd1fjsflv8") + (debianPatch + "avoid-segfault-when-sdl-fails" + "1yp758gi4i15gqk6wiqp815rqcmlyqx62ir1sw20hn6zb3j97bmc") + (debianPatch + "dlang_v2" + "1lxsbckhvl8a8j43pw2dyl5nlavvdbgxb5zlb2450a0vml55nswd") + (debianPatch + "lowest-level-position-602808" + "19r48wirc9zssjmv57drn2fd0f56dcgyqqaz3j49cvv6yd74qf20") + (debianPatch + "libbulletml0v5-segfault" + "0pad2daz60hswkhkdpssxaqc9p9ca0sw1nraqzr453x0zdwwq0hn") + (debianPatch + "std.math.fabs" + "18xnnqlj20bxv2h9fa8dn4rmxwi3k6y3g50kwvh8i8p3b4hgag3r") + (debianPatch + "gdc-8" + "10z702y75c48hjcnvv8m7f3ka52cj3r3jqafdbby85nb0p2lbssx") + ]; + + postPatch = '' + for f in src/abagames/tt/barrage.d src/abagames/util/sdl/sound.d src/abagames/util/sdl/texture.d; do + substituteInPlace $f \ + --replace "/usr/" "$out/" + done + ''; + + nativeBuildInputs = [ + unzip + gdc + ]; + + buildInputs = [ + SDL + SDL_mixer + bulletml + ]; + + installPhase = '' + install -Dm755 torus-trooper $out/bin/torus-trooper + mkdir -p $out/share/games/torus-trooper + cp -r barrage sounds images $out/share/games/torus-trooper/ + ''; + + meta = with lib; { + homepage = "http://www.asahi-net.or.jp/~cs8k-cyu/windows/tt_e.html"; + description = "Fast-paced abstract scrolling shooter game"; + license = licenses.bsd2; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/games/tr-patcher/default.nix b/pkgs/games/tr-patcher/default.nix new file mode 100644 index 00000000000..68e3eb60895 --- /dev/null +++ b/pkgs/games/tr-patcher/default.nix @@ -0,0 +1,36 @@ +{ stdenv, lib, fetchurl, fetchzip, jre, makeWrapper }: + +let +translation-file = fetchurl { + url = "https://gitlab.com/bmwinger/tr-patcher/-/raw/master/lib/Translation.txt?inline=false"; + sha256 = "136zd2s73b4n1w2n34wxi656bm448748nn3y7a64fd89ysg9n7n8"; +}; +in +stdenv.mkDerivation rec { + pname = "tr-patcher"; + version = "1.0.5"; + + # use the pre compiled source, as compilation is a bit complex + src = fetchzip { + url = "https://gitlab.com/bmwinger/tr-patcher/uploads/b57899980b2351c136393f02977c4fab/tr-patcher-shadow.zip"; + sha256 = "0va7nbmlgf3p2nc0z2b9n1285y4q5rpyjr4w93rdnx38wrhinxnw"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + install -Dm644 lib/tr-patcher-all.jar $out/lib/tr-patcher.jar + install -Dm644 ${translation-file} $out/lib/Translation.txt + mkdir -p $out/bin + makeWrapper ${jre}/bin/java $out/bin/tr-patcher \ + --add-flags "-jar $out/lib/tr-patcher.jar" + ''; + + meta = with lib; { + description = "Allow to update dependancies of the Tamriel-Data mod for morrowind"; + homepage = "https://gitlab.com/bmwinger/tr-patcher"; + license = licenses.gpl3; + maintainers = [ maintainers.marius851000 ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/trackballs/default.nix b/pkgs/games/trackballs/default.nix index ec607758bd6..8ebeab4b260 100644 --- a/pkgs/games/trackballs/default.nix +++ b/pkgs/games/trackballs/default.nix @@ -1,24 +1,24 @@ -{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_ttf, gettext, zlib, SDL2_mixer, SDL2_image, guile, libGLU, libGL }: - -with stdenv.lib; +{ lib, stdenv, fetchFromGitHub, cmake, SDL2, SDL2_ttf, gettext, zlib, SDL2_mixer, SDL2_image, guile, libGLU, libGL }: stdenv.mkDerivation rec { pname = "trackballs"; - version = "1.3.1"; + version = "1.3.2"; src = fetchFromGitHub { owner = "trackballs"; - repo = "trackballs"; + repo = pname; rev = "v${version}"; - sha256 = "1yjzz50r57aahy7wcbsmhrd40abzyriq40j49225ya7m9g28vmgl"; + sha256 = "G+KfQgqk+iI+Beb/ZRul2ArCBcvwYQ/ftEWzdrtwb18="; }; - buildInputs = [ cmake zlib SDL2 SDL2_ttf SDL2_mixer SDL2_image guile gettext libGLU libGL ]; + nativeBuildInputs = [ cmake ]; + buildInputs = [ zlib SDL2 SDL2_ttf SDL2_mixer SDL2_image guile gettext libGLU libGL ]; - meta = { + meta = with lib; { homepage = "https://trackballs.github.io/"; description = "3D Marble Madness clone"; - platforms = stdenv.lib.platforms.linux; - license = stdenv.lib.licenses.gpl2; + platforms = platforms.linux; + # Music is licensed under Ethymonics Free Music License. + license = licenses.gpl2Plus; }; } diff --git a/pkgs/games/tremulous/default.nix b/pkgs/games/tremulous/default.nix index cab77b23ee9..e07697f7c0e 100644 --- a/pkgs/games/tremulous/default.nix +++ b/pkgs/games/tremulous/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, unzip, libGLU, libGL, libX11, SDL, openal, runtimeShell }: +{ lib, stdenv, fetchurl, unzip, libGLU, libGL, libX11, SDL, openal, runtimeShell }: stdenv.mkDerivation rec { pname = "tremulous"; version = "1.1.0"; @@ -15,7 +15,8 @@ stdenv.mkDerivation rec { url = "http://releases.mercenariesguild.net/tremded/mg_tremded_source_1.01.tar.gz"; sha256 = "1njrqlhzjvy9myddzkagszwdcf3m4h08wip888w2rmbshs6kz6ql"; }; - buildInputs = [ unzip libGLU libGL libX11 SDL openal ]; + nativeBuildInputs = [ unzip ]; + buildInputs = [ libGLU libGL libX11 SDL openal ]; unpackPhase = '' unzip $src1 cd tremulous @@ -57,7 +58,7 @@ stdenv.mkDerivation rec { done ''; dontPatchELF = true; - meta = with stdenv.lib; { + meta = with lib; { description = "A game that blends a team based FPS with elements of an RTS"; longDescription = '' Tremulous is a free, open source game that blends a team based FPS with diff --git a/pkgs/games/trigger/default.nix b/pkgs/games/trigger/default.nix index c6f31922bb6..cb3227f24e3 100644 --- a/pkgs/games/trigger/default.nix +++ b/pkgs/games/trigger/default.nix @@ -1,20 +1,34 @@ -{ fetchurl, stdenv, runtimeShell -, SDL2, freealut, SDL2_image, openal, physfs, zlib, libGLU, libGL, glew }: +{ lib, fetchurl, stdenv, runtimeShell, SDL2, freealut, SDL2_image, openal, physfs +, zlib, libGLU, libGL, glew, tinyxml-2 }: stdenv.mkDerivation rec { - name = "trigger-rally-0.6.6"; + pname = "trigger-rally"; + version = "0.6.6.1"; src = fetchurl { - url = "mirror://sourceforge/trigger-rally/${name}.tar.gz"; - sha256 = "08qa2f2s8zyn42ff6jb1gsi64d916020ixkzvl16kbb88rabqra8"; + url = "mirror://sourceforge/trigger-rally/${pname}-${version}.tar.gz"; + sha256 = "016bc2hczqscfmngacim870hjcsmwl8r3aq8x03vpf22s49nw23z"; }; - buildInputs = [ SDL2 freealut SDL2_image openal physfs zlib libGLU libGL glew ]; + buildInputs = [ + SDL2 + freealut + SDL2_image + openal + physfs + zlib + libGLU + libGL + glew + tinyxml-2 + ]; preConfigure = '' sed s,/usr/local,$out, -i bin/*defs cd src + + sed s,lSDL2main,lSDL2, -i GNUmakefile export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${SDL2.dev}/include/SDL2" export makeFlags="$makeFlags prefix=$out" ''; @@ -31,10 +45,10 @@ stdenv.mkDerivation rec { ''; meta = { - description = "Rally"; + description = "A fast-paced single-player racing game"; homepage = "http://trigger-rally.sourceforge.net/"; - license = stdenv.lib.licenses.gpl2; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [viric]; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/games/tumiki-fighters/default.nix b/pkgs/games/tumiki-fighters/default.nix new file mode 100644 index 00000000000..b4becea6575 --- /dev/null +++ b/pkgs/games/tumiki-fighters/default.nix @@ -0,0 +1,97 @@ +{ lib +, stdenv +, fetchpatch +, fetchurl +, unzip +, gdc +, SDL +, SDL_mixer +, bulletml +}: + +let +debianPatch = patchname: hash: fetchpatch { + name = "${patchname}.patch"; + url = "https://sources.debian.org/data/main/t/tumiki-fighters/0.2.dfsg1-9/debian/patches/${patchname}.patch"; + sha256 = hash; +}; + +in stdenv.mkDerivation rec { + pname = "tumiki-fighters"; + version = "0.21"; + + src = fetchurl { + url = "http://abagames.sakura.ne.jp/windows/tf${lib.replaceStrings ["."] ["_"] version}.zip"; + sha256 = "0djykfc1r8ysapklm621h89ana1c4qzc1m5nr9bqw4iccnmvwk3p"; + }; + + patches = [ + (debianPatch + "imports" + "1l3kc67b43gdi139cpz5cka1nkn0pjp9mrgrrxlmr0liwx2aryhn") + (debianPatch + "fixes" + "1iy1a5vii6yz9zdlk2bcj6gkj4y25hn9y2fczz15jpqd9r2zm603") + (debianPatch + "directories" + "0kmv0s7jgr693fzrkjsmz4dnicc4w7njanxm2la3cf4vmgdyipmm") + (debianPatch + "windowed" + "1wp74l0bi8wq85pcxnmkwrlfmlf09im95n27pxgz082lhwf2ksy1") + (debianPatch + "dotfile" + "0d8x519bclh41j992qn6ijzfcrgacb79px6zjd1awypkwyc0j2p6") + (debianPatch + "makefile" + "11xf2b31kjyps53jfryv82dv0g6q0smc9xgp8imrbr93mzi51vf0") + (debianPatch + "window-resizing" + "1dm79d0yisa8zs5fr89y3wq2kzd3khcaxs0la8lhncvkqbd4smx8") + (debianPatch + "dlang_v2" + "1isnvbl3bjnpyphji8k3fl0yd1z4869h0lai143vpwgj6518lpg4") + (debianPatch + "gdc-8" + "1md0zwmv50jnak5g9d93bglv9v4z41blinjii6kv3vmgjnajapzj") + ]; + + postPatch = '' + for f in \ + src/abagames/tf/barragemanager.d \ + src/abagames/util/sdl/sound.d \ + src/abagames/util/sdl/texture.d \ + src/abagames/tf/enemyspec.d \ + src/abagames/tf/field.d \ + src/abagames/tf/stagemanager.d \ + src/abagames/tf/tumikiset.d + do + substituteInPlace $f \ + --replace "/usr/" "$out/" + done + ''; + + nativeBuildInputs = [ + unzip + gdc + ]; + + buildInputs = [ + SDL + SDL_mixer + bulletml + ]; + + installPhase = '' + install -Dm755 tumiki-fighters $out/bin/tumiki-fighters + mkdir -p $out/share/games/tumiki-fighters + cp -r barrage sounds enemy field stage tumiki $out/share/games/tumiki-fighters/ + ''; + + meta = with lib; { + homepage = "http://www.asahi-net.or.jp/~cs8k-cyu/windows/tf_e.html"; + description = "Sticky 2D shooter"; + license = licenses.bsd2; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/games/tuxpaint/default.nix b/pkgs/games/tuxpaint/default.nix index ea37ded6b6c..289b4e386be 100644 --- a/pkgs/games/tuxpaint/default.nix +++ b/pkgs/games/tuxpaint/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl, SDL, SDL_image, SDL_ttf, SDL_mixer, libpng, - cairo, librsvg, gettext, libpaper, fribidi, pkgconfig, gperf, imagemagick }: +{ lib, stdenv, fetchurl, SDL, SDL_image, SDL_ttf, SDL_mixer, libpng, + cairo, librsvg, gettext, libpaper, fribidi, pkg-config, gperf, imagemagick }: stdenv.mkDerivation rec { version = "0.9.24"; @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ SDL SDL_image SDL_ttf SDL_mixer libpng cairo - librsvg gettext libpaper fribidi pkgconfig gperf imagemagick ]; + librsvg gettext libpaper fribidi pkg-config gperf imagemagick ]; hardeningDisable = [ "format" ]; makeFlags = [ "GPERF=${gperf}/bin/gperf" "PREFIX=$$out" @@ -30,6 +30,12 @@ stdenv.mkDerivation rec { }; postInstall = '' + # Install desktop file + mkdir -p $out/share/applications + cp hildon/tuxpaint.xpm $out/share/pixmaps + sed -e "s+Exec=tuxpaint+Exec=$out/bin/tuxpaint+" < src/tuxpaint.desktop > $out/share/applications/tuxpaint.desktop + + # Install stamps tar xzf $stamps cd tuxpaint-stamps-2014.08.23 make install-all PREFIX=$out @@ -39,8 +45,8 @@ stdenv.mkDerivation rec { meta = { description = "Open Source Drawing Software for Children"; homepage = "http://www.tuxpaint.org/"; - license = stdenv.lib.licenses.gpl3; - maintainers = with stdenv.lib.maintainers; [ woffs ]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ woffs ]; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/tuxtype/default.nix b/pkgs/games/tuxtype/default.nix index 9d04440a167..0e32ebfbab9 100644 --- a/pkgs/games/tuxtype/default.nix +++ b/pkgs/games/tuxtype/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, librsvg, libxml2, SDL, SDL_image, SDL_mixer, SDL_net, SDL_ttf, t4kcommon }: +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, librsvg, libxml2, SDL, SDL_image, SDL_mixer, SDL_net, SDL_ttf, t4kcommon }: stdenv.mkDerivation rec { version = "1.8.3"; @@ -28,12 +28,12 @@ stdenv.mkDerivation rec { --replace 'PKG_CHECK_MODULES([SDL_ttf],' 'PKG_CHECK_MODULES([SDL_TTF],' ''; - nativeBuildInputs = [ autoreconfHook pkgconfig ]; + nativeBuildInputs = [ autoreconfHook pkg-config ]; buildInputs = [ librsvg libxml2 SDL SDL_image SDL_mixer SDL_net SDL_ttf t4kcommon ]; configureFlags = [ "--without-sdlpango" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "An Educational Typing Tutor Game Starring Tux, the Linux Penguin"; homepage = "https://github.com/tux4kids/tuxtype"; license = licenses.gpl3Plus; diff --git a/pkgs/games/typespeed/default.nix b/pkgs/games/typespeed/default.nix index 9da67cbd1ea..1581ab13894 100644 --- a/pkgs/games/typespeed/default.nix +++ b/pkgs/games/typespeed/default.nix @@ -1,10 +1,11 @@ -{ stdenv, fetchurl, ncurses }: +{ lib, stdenv, fetchurl, ncurses }: -stdenv.mkDerivation { - name = "typespeed-0.6.5"; +stdenv.mkDerivation rec { + pname = "typespeed"; + version = "0.6.5"; buildInputs = [ ncurses ]; src = fetchurl { - url = "http://typespeed.sourceforge.net/typespeed-0.6.5.tar.gz"; + url = "http://typespeed.sourceforge.net/typespeed-${version}.tar.gz"; sha256 = "5c860385ceed8a60f13217cc0192c4c2b4705c3e80f9866f7d72ff306eb72961"; }; @@ -13,7 +14,7 @@ stdenv.mkDerivation { configureFlags = [ "--datadir=\${out}/share/" ]; makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A curses based typing game"; homepage = "http://typespeed.sourceforge.net/"; license = licenses.gpl2; diff --git a/pkgs/games/uchess/default.nix b/pkgs/games/uchess/default.nix new file mode 100644 index 00000000000..cafd7cf5769 --- /dev/null +++ b/pkgs/games/uchess/default.nix @@ -0,0 +1,32 @@ +{ lib, buildGoModule, fetchFromGitHub, makeWrapper, stockfish }: + +buildGoModule rec { + pname = "uchess"; + version = "0.2.1"; + + subPackages = [ "cmd/uchess" ]; + + src = fetchFromGitHub { + owner = "tmountain"; + repo = "uchess"; + rev = "v${version}"; + sha256 = "1njl3f41gshdpj431zkvpv2b7zmh4m2m5q6xsijb0c0058dk46mz"; + }; + + vendorSha256 = "0dkq240ch1z3gihn8yc5d723nnvfxirk2nhw12r1c2hj1ga088g3"; + + # package does not contain any tests as of v0.2.1 + doCheck = false; + + nativeBuildInputs = [ makeWrapper ]; + postInstall = '' + wrapProgram $out/bin/uchess --suffix PATH : ${stockfish}/bin + ''; + + meta = with lib; { + description = "Play chess against UCI engines in your terminal."; + homepage = "https://tmountain.github.io/uchess/"; + maintainers = with maintainers; [ tmountain ]; + license = licenses.mit; + }; +} diff --git a/pkgs/games/ue4/default.nix b/pkgs/games/ue4/default.nix index 643779cf5fd..95f0d64f197 100644 --- a/pkgs/games/ue4/default.nix +++ b/pkgs/games/ue4/default.nix @@ -1,8 +1,7 @@ -{ stdenv, writeScript, fetchurl, requireFile, unzip, clang, mono, which, +{ lib, stdenv, writeScript, fetchurl, requireFile, unzip, clang, mono, which, xorg, xdg-user-dirs }: let - inherit (stdenv) lib; deps = import ./cdn-deps.nix { inherit fetchurl; }; linkDeps = writeScript "link-deps.sh" (lib.concatMapStringsSep "\n" (hash: let prefix = lib.concatStrings (lib.take 2 (lib.stringToCharacters hash)); @@ -11,7 +10,7 @@ let ln -s ${lib.getAttr hash deps} .git/ue4-gitdeps/${prefix}/${hash} '' ) (lib.attrNames deps)); - libPath = stdenv.lib.makeLibraryPath [ + libPath = lib.makeLibraryPath [ xorg.libX11 xorg.libXScrnSaver xorg.libXau xorg.libXcursor xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr xorg.libXrender xorg.libXxf86vm xorg.libxcb @@ -75,9 +74,9 @@ stdenv.mkDerivation rec { meta = { description = "A suite of integrated tools for game developers to design and build games, simulations, and visualizations"; homepage = "https://www.unrealengine.com/what-is-unreal-engine-4"; - license = stdenv.lib.licenses.unfree; - platforms = stdenv.lib.platforms.linux; - maintainers = [ stdenv.lib.maintainers.puffnfresh ]; + license = lib.licenses.unfree; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.puffnfresh ]; broken = true; }; } diff --git a/pkgs/games/ue4demos/default.nix b/pkgs/games/ue4demos/default.nix index 24c98f7d774..a2d114f5113 100644 --- a/pkgs/games/ue4demos/default.nix +++ b/pkgs/games/ue4demos/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, unzip, patchelf, xorg, openal }: +{ lib, stdenv, fetchurl, unzip, patchelf, xorg, openal }: let urls = file: @@ -14,9 +14,9 @@ let nativeBuildInputs = [ unzip patchelf ]; - rtdeps = stdenv.lib.makeLibraryPath + rtdeps = lib.makeLibraryPath [ xorg.libXxf86vm xorg.libXext openal ] - + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ]; + + ":" + lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ]; buildCommand = '' @@ -52,7 +52,7 @@ let description = "Unreal Engine 4 Linux demos"; homepage = "https://wiki.unrealengine.com/Linux_Demos"; platforms = [ "x86_64-linux" ]; - license = stdenv.lib.licenses.unfree; + license = lib.licenses.unfree; }; }; diff --git a/pkgs/games/ufoai/default.nix b/pkgs/games/ufoai/default.nix index 94a12774a43..89f8f5ec91b 100644 --- a/pkgs/games/ufoai/default.nix +++ b/pkgs/games/ufoai/default.nix @@ -1,22 +1,23 @@ -{ stdenv, fetchurl, libtheora, xvidcore, libGLU, libGL, SDL, SDL_ttf, SDL_mixer +{ lib, stdenv, fetchurl, libtheora, xvidcore, libGLU, libGL, SDL, SDL_ttf, SDL_mixer , curl, libjpeg, libpng, gettext, cunit, enableEditor?false }: stdenv.mkDerivation rec { - name = "ufoai-2.4"; + pname = "ufoai"; + version = "2.4"; src = fetchurl { - url = "mirror://sourceforge/ufoai/${name}-source.tar.bz2"; + url = "mirror://sourceforge/ufoai/ufoai-${version}-source.tar.bz2"; sha256 = "0kxrbcjrharcwz319s90m789i4my9285ihp5ax6kfhgif2vn2ji5"; }; srcData = fetchurl { - url = "mirror://sourceforge/ufoai/${name}-data.tar"; + url = "mirror://sourceforge/ufoai/ufoai-${version}-data.tar"; sha256 = "1drhh08cqqkwv1yz3z4ngkplr23pqqrdx6cp8c3isy320gy25cvb"; }; preConfigure = ''tar xvf "${srcData}"''; configureFlags = [ "--enable-release" "--enable-sse" ] - ++ stdenv.lib.optional enableEditor "--enable-uforadiant"; + ++ lib.optional enableEditor "--enable-uforadiant"; buildInputs = [ libtheora xvidcore libGLU libGL SDL SDL_ttf SDL_mixer @@ -28,9 +29,9 @@ stdenv.mkDerivation rec { meta = { homepage = "http://ufoai.org"; description = "A squad-based tactical strategy game in the tradition of X-Com"; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [viric]; + platforms = lib.platforms.linux; hydraPlatforms = []; }; } diff --git a/pkgs/games/uhexen2/default.nix b/pkgs/games/uhexen2/default.nix new file mode 100644 index 00000000000..78c38753f79 --- /dev/null +++ b/pkgs/games/uhexen2/default.nix @@ -0,0 +1,66 @@ +{ lib, fetchgit, SDL, stdenv, libogg, libvorbis, libmad, xdelta }: + +stdenv.mkDerivation rec { + pname = "uhexen2"; + version = "1.5.9"; + + src = fetchgit { + url = "https://git.code.sf.net/p/uhexen2/uhexen2"; + sha256 = "0crdihbnb92awkikn15mzdpkj1x9s34xixf1r7fxxf762m60niks"; + rev = "4ef664bc41e3998b0d2a55ff1166dadf34c936be"; + }; + + buildInputs = [ SDL libogg libvorbis libmad xdelta ]; + + preBuild = '' + makeFiles=( + "engine/hexen2 glh2" + "engine/hexen2 clean" + "engine/hexen2 h2" + "engine/hexen2/server" + "engine/hexenworld/client glhw" + "engine/hexenworld/client clean" + "engine/hexenworld/client hw" + "engine/hexenworld/server" + "h2patch" + ) + ''; + + buildPhase = '' + runHook preBuild + for makefile in "''${makeFiles[@]}"; do + local flagsArray=( + -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES + SHELL=$SHELL + $makeFlags "''${makeFlagsArray[@]}" + $buildFlags "''${buildFlagsArray[@]}" + ) + echoCmd 'build flags' ""''${flagsArray[@]}"" + make -C $makefile ""''${flagsArray[@]}"" + unset flagsArray + done + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -Dm755 engine/hexen2/{glhexen2,hexen2,server/h2ded} -t $out/bin + install -Dm755 engine/hexenworld/{client/glhwcl,client/hwcl,server/hwsv} -t $out/bin + install -Dm755 h2patch/h2patch -t $out/bin + runHook postInstall + ''; + + meta = with lib; { + description = "A cross-platform port of Hexen II game"; + longDescription = '' + Hammer of Thyrion (uHexen2) is a cross-platform port of Raven Software's Hexen II source. + It is based on an older linux port, Anvil of Thyrion. + HoT includes countless bug fixes, improved music, sound and video modes, opengl improvements, + support for many operating systems and architectures, and documentation among many others. + ''; + homepage = "http://uhexen2.sourceforge.net/"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ xdhampus ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/games/ultimatestunts/default.nix b/pkgs/games/ultimatestunts/default.nix index 6eb4725897f..2e3d5445918 100644 --- a/pkgs/games/ultimatestunts/default.nix +++ b/pkgs/games/ultimatestunts/default.nix @@ -1,14 +1,15 @@ -{stdenv, fetchurl, SDL, libGLU, libGL, SDL_image, freealut, openal, libvorbis, -pkgconfig}: +{lib, stdenv, fetchurl, SDL, libGLU, libGL, SDL_image, freealut, openal, libvorbis, +pkg-config}: -stdenv.mkDerivation { - name = "ultimate-stunts-0.7.6.1"; +stdenv.mkDerivation rec { + pname = "ultimate-stunts"; + version = "0.7.6.1"; src = fetchurl { - url = "mirror://sourceforge/ultimatestunts/ultimatestunts-srcdata-0761.tar.gz"; + url = "mirror://sourceforge/ultimatestunts/ultimatestunts-srcdata-${lib.replaceStrings ["."] [""] version}.tar.gz"; sha256 = "0rd565ml6l927gyq158klhni7myw8mgllhv0xl1fg9m8hlzssgrv"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ SDL libGLU libGL SDL_image freealut openal libvorbis ]; postPatch = '' @@ -18,8 +19,8 @@ stdenv.mkDerivation { meta = { homepage = "http://www.ultimatestunts.nl/"; description = "Remake of the popular racing DOS-game Stunts"; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [viric]; + platforms = with lib.platforms; linux; }; } diff --git a/pkgs/games/ultrastardx/default.nix b/pkgs/games/ultrastardx/default.nix index b2d601df349..1d6f199480d 100644 --- a/pkgs/games/ultrastardx/default.nix +++ b/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 }: +{ lib, stdenv +, autoreconfHook +, fetchFromGitHub +, fetchpatch +, pkg-config +, 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,23 +31,44 @@ let in stdenv.mkDerivation rec { pname = "ultrastardx"; - version = "unstable-2019-01-07"; + version = "2021-04-03"; src = fetchFromGitHub { owner = "UltraStar-Deluxe"; repo = "USDX"; - rev = "3df142590f29db1505cc58746af9f8cf7cb4a6a5"; - sha256 = "0853rg7vppkmw37wm9xm0m0wab3r09ws6w04xs2wgwj1mwl0d70j"; + rev = "d49e916705092f3d765d85d276b283b9e7e232a6"; + sha256 = "0sdcz2vc8i2z50nj7zbkdpxx2mvx0m0927lfsj7d7qr0p8vkm0wa"; }; - nativeBuildInputs = [ pkgconfig autoreconfHook ]; + nativeBuildInputs = [ pkg-config autoreconfHook ]; buildInputs = [ fpc libpng ] ++ sharedLibs; postPatch = '' substituteInPlace src/config.inc.in \ --subst-var-by libpcre_LIBNAME libpcre.so.1 + + # ultrastardx binds to libffmpeg (and sublibs), specifying a very restrictive + # upper bounds on the minor versions of .so files. + # We can assume ffmpeg won’t break any major ABI compatibility, since their + # patch version seems to always stay at 100, + # and their minor version changes quite frequently. + sed \ + -e 's/^ LIBAVCODEC_MAX_VERSION_MINOR.*$/ LIBAVCODEC_MAX_VERSION_MINOR = 1000;/' \ + -i src/lib/ffmpeg-4.0/avcodec.pas + sed \ + -e 's/^ LIBAVFORMAT_MAX_VERSION_MINOR.*$/ LIBAVFORMAT_MAX_VERSION_MINOR = 1000;/' \ + -i src/lib/ffmpeg-4.0/avformat.pas + sed \ + -e 's/^ LIBAVUTIL_MAX_VERSION_MINOR.*$/ LIBAVUTIL_MAX_VERSION_MINOR = 1000;/' \ + -i src/lib/ffmpeg-4.0/avutil.pas + sed \ + -e 's/^ LIBSWRESAMPLE_MAX_VERSION_MINOR.*$/ LIBSWRESAMPLE_MAX_VERSION_MINOR = 1000;/' \ + -i src/lib/ffmpeg-4.0/swresample.pas + sed \ + -e 's/^ LIBSWSCALE_MAX_VERSION_MINOR.*$/ LIBSWSCALE_MAX_VERSION_MINOR = 1000;/' \ + -i src/lib/ffmpeg-4.0/swscale.pas ''; - preBuild = with stdenv.lib; + preBuild = with lib; let items = concatMapStringsSep " " (x: "-rpath ${getLib x}/lib") sharedLibs; in '' export NIX_LDFLAGS="$NIX_LDFLAGS ${items}" @@ -37,7 +77,7 @@ in stdenv.mkDerivation rec { # dlopened libgcc requires the rpath not to be shrinked dontPatchELF = true; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://ultrastardx.sourceforge.net/"; description = "Free and open source karaoke game"; license = licenses.gpl2Plus; diff --git a/pkgs/games/unciv/default.nix b/pkgs/games/unciv/default.nix new file mode 100644 index 00000000000..307138c03aa --- /dev/null +++ b/pkgs/games/unciv/default.nix @@ -0,0 +1,59 @@ +{ stdenv +, lib +, fetchurl +, copyDesktopItems +, makeDesktopItem +, makeWrapper +, jre +, libpulseaudio +, libXxf86vm +}: +let + desktopItem = makeDesktopItem { + name = "unciv"; + exec = "unciv"; + comment = "An open-source Android/Desktop remake of Civ V"; + desktopName = "Unciv"; + categories = "Game;"; + }; + + envLibPath = lib.makeLibraryPath [ + libpulseaudio + libXxf86vm + ]; + +in +stdenv.mkDerivation rec { + pname = "unciv"; + version = "3.15.9"; + + src = fetchurl { + url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar"; + sha256 = "sha256-ONp7M6nMlVjxNnsIveDpqV7/WahydphP16DFDrcjY4E="; + }; + + dontUnpack = true; + + nativeBuildInputs = [ copyDesktopItems makeWrapper ]; + + installPhase = '' + runHook preInstall + + makeWrapper ${jre}/bin/java $out/bin/unciv \ + --prefix LD_LIBRARY_PATH : ${envLibPath} \ + --prefix PATH : ${lib.makeBinPath [ jre ]} \ + --add-flags "-jar ${src}" + + runHook postInstall + ''; + + desktopItems = [ desktopItem ]; + + meta = with lib; { + description = "An open-source Android/Desktop remake of Civ V"; + homepage = "https://github.com/yairm210/Unciv"; + maintainers = with maintainers; [ tex ]; + license = licenses.mpl20; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/games/unnethack/default.nix b/pkgs/games/unnethack/default.nix index 1ac87c1d41b..03928ff48f4 100644 --- a/pkgs/games/unnethack/default.nix +++ b/pkgs/games/unnethack/default.nix @@ -1,18 +1,20 @@ -{ stdenv, fetchgit, utillinux, ncurses, flex, bison }: +{ lib, stdenv, fetchFromGitHub, fetchpatch, util-linux, ncurses, flex, bison }: stdenv.mkDerivation rec { pname = "unnethack"; - version = "5.2.0"; + version = "5.3.2"; - src = fetchgit { - url = "https://github.com/UnNetHack/UnNetHack"; - rev = "refs/tags/${version}"; - sha256 = "088gd2c7v95f2pm9ky38i28sz73mnsksr2p2hhhflkchxncd21f1"; + src = fetchFromGitHub { + name = "UnNetHack"; + owner = "UnNetHack"; + repo = "UnNetHack"; + rev = version; + sha256 = "1rg0mqyplgn3dfh3wz09a600qxk7aidqw4d84kyiincljvhyb7ps"; }; buildInputs = [ ncurses ]; - nativeBuildInputs = [ utillinux flex bison ]; + nativeBuildInputs = [ util-linux flex bison ]; configureFlags = [ "--enable-curses-graphics" "--disable-tty-graphics" @@ -22,6 +24,14 @@ stdenv.mkDerivation rec { ]; makeFlags = [ "GAMEPERM=744" ]; + patches = [ + # fix regression with bison, merged in master + (fetchpatch { + name = "fix-bison.patch"; + url = "https://github.com/UnNetHack/UnNetHack/commit/04f0a3a850a94eb8837ddcef31303968240d1c31.patch"; + sha256 = "1zblbwqqz9nx16k6n31wi2hdvz775lvzmkjblmrx18nbm4ylj0n9"; + }) + ]; enableParallelBuilding = true; @@ -48,11 +58,11 @@ stdenv.mkDerivation rec { chmod +x $out/bin/unnethack ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Fork of NetHack"; homepage = "https://unnethack.wordpress.com/"; license = "nethack"; platforms = platforms.all; maintainers = with maintainers; [ abbradar ]; - }; + }; } diff --git a/pkgs/games/unvanquished/default.nix b/pkgs/games/unvanquished/default.nix new file mode 100644 index 00000000000..f3f8c1413db --- /dev/null +++ b/pkgs/games/unvanquished/default.nix @@ -0,0 +1,192 @@ +{ lib, stdenv, fetchzip, fetchFromGitHub, buildFHSUserEnv, makeDesktopItem +, copyDesktopItems, gcc, cmake, gmp , libGL, zlib, ncurses, geoip, lua5 +, nettle, curl, SDL2, freetype, glew , openal, libopus, opusfile, libogg +, libvorbis, libjpeg, libwebp, libpng +, cacert, aria2 # to download assets +}: + +let + version = "0.52.1"; + binary-deps-version = "5"; + + src = fetchFromGitHub { + owner = "Unvanquished"; + repo = "Unvanquished"; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = "1fiqn9f6nsh4cfjy7gfsv950hphwi9ca0ddgsjvn77g7yc0arp6c"; + }; + + unvanquished-binary-deps = stdenv.mkDerivation rec { + # DISCLAIMER: this is selected binary crap from the NaCl SDK + name = "unvanquished-binary-deps"; + version = binary-deps-version; + src = fetchzip { + url = "https://dl.unvanquished.net/deps/linux64-${version}.tar.bz2"; + sha256 = "08bpyavbh5lmyprvqqi59gnm8s1fjmlk9f1785wlv7f52d9f9z1p"; + }; + dontPatchELF = true; + preFixup = '' + # We are not using the autoPatchelfHook, because it would make + # nacl_bootstrap_helper unable to load nacl_loader: + # "nacl_loader: ELF file has unreasonable e_phnum=13" + interpreter="$(< "$NIX_CC/nix-support/dynamic-linker")" + for f in pnacl/bin/*; do + if [ -f "$f" && -x "$f" ]; then + echo "Patching $f" + patchelf --set-interpreter "$interpreter" "$f" + fi + done + ''; + preCheck = "pnacl/bin/clang -v"; # check it links correctly + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -R ./* $out/ + + runHook postInstall + ''; + }; + + libstdcpp-preload-for-unvanquished-nacl = stdenv.mkDerivation { + name = "libstdcpp-preload-for-unvanquished-nacl"; + buildCommand = '' + mkdir $out/etc -p + echo ${gcc.cc.lib}/lib/libstdc++.so.6 > $out/etc/ld-nix.so.preload + ''; + propagatedBuildInputs = [ gcc.cc.lib ]; + }; + + fhsEnv = buildFHSUserEnv { + name = "unvanquished-fhs-wrapper"; + targetPkgs = pkgs: [ libstdcpp-preload-for-unvanquished-nacl ]; + }; + + wrapBinary = binary: wrappername: '' + cat > $out/lib/${binary}-wrapper <<-EOT + #!/bin/sh + exec $out/lib/${binary} -pakpath ${unvanquished-assets} "\$@" + EOT + chmod +x $out/lib/${binary}-wrapper + + cat > $out/bin/${wrappername} <<-EOT + #!/bin/sh + exec ${fhsEnv}/bin/unvanquished-fhs-wrapper $out/lib/${binary}-wrapper "\$@" + EOT + chmod +x $out/bin/${wrappername} + ''; + + unvanquished-assets = stdenv.mkDerivation { + pname = "unvanquished-assets"; + inherit version src; + + outputHash = "sha256:084jdisb48xyk9agjifn0nlnsdnjgg32si8zd1khsywd0kffplzx"; + outputHashMode = "recursive"; + nativeBuildInputs = [ aria2 cacert ]; + buildCommand = "bash $src/download-paks --cache=$(pwd) --version=${version} $out"; + }; + +# this really is the daemon game engine, the game itself is in the assets +in stdenv.mkDerivation rec { + pname = "unvanquished"; + inherit version src binary-deps-version; + + preConfigure = '' + mkdir daemon/external_deps/linux64-${binary-deps-version}/ + cp -r ${unvanquished-binary-deps}/* daemon/external_deps/linux64-${binary-deps-version}/ + chmod +w -R daemon/external_deps/linux64-${binary-deps-version}/ + ''; + + nativeBuildInputs = [ cmake unvanquished-binary-deps copyDesktopItems ]; + buildInputs = [ + gmp + libGL + zlib + ncurses + geoip + lua5 + nettle + curl + SDL2 + freetype + glew + openal + libopus + opusfile + libogg + libvorbis + libjpeg + libwebp + libpng + ]; + + cmakeFlags = [ + "-DBUILD_CGAME=NO" + "-DBUILD_SGAME=NO" + "-DUSE_HARDENING=TRUE" + "-DUSE_LTO=TRUE" + "-DOpenGL_GL_PREFERENCE=LEGACY" # https://github.com/DaemonEngine/Daemon/issues/474 + ]; + + desktopItems = [ + (makeDesktopItem { + name = "net.unvanquished.Unvanquished.desktop"; + desktopName = "Unvanquished"; + comment = "FPS/RTS Game - Aliens vs. Humans"; + icon = "unvanquished"; + terminal = false; + exec = "unvanquished"; + categories = "Game;ActionGame;StrategyGame;"; + # May or may not work + prefersNonDefaultGPU = true; + fileValidation = false; # it doesn't like PrefersNonDefaultGPU + # yes, PrefersNonDefaultGPU is standard: + # https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html + }) + (makeDesktopItem { + name = "net.unvanquished.UnvanquishedProtocolHandler.desktop"; + desktopName = "Unvanquished (protocol handler)"; + noDisplay = true; + terminal = false; + exec = "unvanquished -connect %u"; + mimeType = "x-scheme-handler/unv"; + # May or may not work + prefersNonDefaultGPU = true; + fileValidation = false; # it doesn't like PrefersNonDefaultGPU + }) + ]; + + installPhase = '' + runHook preInstall + + for f in daemon daemon-tty daemonded nacl_loader nacl_helper_bootstrap; do + install -Dm0755 -t $out/lib/ $f + done + install -Dm0644 -t $out/lib/ irt_core-x86_64.nexe + + mkdir $out/bin/ + ${wrapBinary "daemon" "unvanquished"} + ${wrapBinary "daemon-tty" "unvanquished-tty"} + ${wrapBinary "daemonded" "unvanquished-server"} + + for d in ${src}/dist/icons/*; do + install -Dm0644 -t $out/share/icons/hicolor/$(basename $d)/apps/ $d/unvanquished.png + done + + runHook postInstall + ''; + meta = { + platforms = [ "x86_64-linux" ]; + homepage = "https://unvanquished.net/"; + downloadPage = "https://unvanquished.net/download/"; + description = "A fast paced, first person strategy game"; + maintainers = with lib.maintainers; [ afontain ]; + # don't replace the following lib.licenses.zlib with just "zlib", + # or you would end up with the package instead + license = with lib.licenses; [ + mit gpl3Plus lib.licenses.zlib bsd3 # engine + cc-by-sa-25 cc-by-sa-30 cc-by-30 cc-by-sa-40 cc0 # assets + ]; + }; +} diff --git a/pkgs/games/uqm/3dovideo.nix b/pkgs/games/uqm/3dovideo.nix index 8d1bf2b6887..4ebbc9c4992 100644 --- a/pkgs/games/uqm/3dovideo.nix +++ b/pkgs/games/uqm/3dovideo.nix @@ -1,10 +1,8 @@ -{ stdenv, requireFile, writeText, fetchurl, haskellPackages }: - -with stdenv.lib; +{ stdenv, lib, requireFile, writeText, fetchurl, haskellPackages }: let makeSpin = num: let - padded = (optionalString (lessThan num 10) "0") + toString num; + padded = (lib.optionalString (lib.lessThan num 10) "0") + toString num; in "slides.spins.${padded} = 3DOVID:" + "addons/3dovideo/spins/ship${padded}.duk:" + "addons/3dovideo/spins/spin.aif:" + @@ -13,7 +11,7 @@ let videoRMP = writeText "3dovideo.rmp" ('' slides.ending = 3DOVID:addons/3dovideo/ending/victory.duk slides.intro = 3DOVID:addons/3dovideo/intro/intro.duk - '' + concatMapStrings makeSpin (range 0 24)); + '' + lib.concatMapStrings makeSpin (lib.range 0 24)); helper = with haskellPackages; mkDerivation { pname = "uqm3donix"; @@ -30,7 +28,7 @@ let buildDepends = [ base binary bytestring filepath tar ]; description = "Extract video files from a Star Control II 3DO image"; - license = stdenv.lib.licenses.bsd3; + license = lib.licenses.bsd3; }; in stdenv.mkDerivation { diff --git a/pkgs/games/uqm/default.nix b/pkgs/games/uqm/default.nix index 523ae354b76..a06c1b3b665 100644 --- a/pkgs/games/uqm/default.nix +++ b/pkgs/games/uqm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, pkgconfig, libGLU, libGL +{ stdenv, lib, fetchurl, pkg-config, libGLU, libGL , SDL, SDL_image, libpng, libvorbis, libogg, libmikmod , use3DOVideos ? false, requireFile ? null, writeText ? null @@ -12,7 +12,7 @@ assert use3DOVideos -> requireFile != null && writeText != null let videos = import ./3dovideo.nix { - inherit stdenv requireFile writeText fetchurl haskellPackages; + inherit stdenv lib requireFile writeText fetchurl haskellPackages; }; remixPacks = lib.imap1 (num: sha256: fetchurl rec { @@ -50,7 +50,7 @@ in stdenv.mkDerivation rec { sha256 = "10nbvcrr0lc0mxivxfkcbxnibwk3vwmamabrlvwdsjxd9pk8aw65"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ SDL SDL_image libpng libvorbis libogg libmikmod libGLU libGL ]; postUnpack = '' @@ -65,9 +65,11 @@ in stdenv.mkDerivation rec { ln -s "${videos}" "uqm-${version}/content/addons/3dovideo" ''; - # Using _STRINGS_H as include guard conflicts with glibc. postPatch = '' + # Using _STRINGS_H as include guard conflicts with glibc. sed -i -e '/^#/s/_STRINGS_H/_UQM_STRINGS_H/g' src/uqm/comm/*/strings.h + # See https://github.com/NixOS/nixpkgs/pull/93560 + sed -i -e 's,/tmp/,$TMPDIR/,' build/unix/config_functions ''; # uqm has a 'unique' build system with a root script incidentally called @@ -100,7 +102,7 @@ in stdenv.mkDerivation rec { spin-offs, thereby making zillions more people happy! ''; homepage = "http://sc2.sourceforge.net/"; - license = stdenv.lib.licenses.gpl2; + license = lib.licenses.gpl2; maintainers = with lib.maintainers; [ jcumming aszlig ]; platforms = with lib.platforms; linux; }; diff --git a/pkgs/games/urbanterror/default.nix b/pkgs/games/urbanterror/default.nix index ccc20281302..dfbad29fa9e 100644 --- a/pkgs/games/urbanterror/default.nix +++ b/pkgs/games/urbanterror/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, unzip, SDL, libGLU, libGL, openal, curl, libXxf86vm }: +{ lib, stdenv, fetchurl, unzip, SDL, libGLU, libGL, openal, curl, libXxf86vm }: stdenv.mkDerivation rec { pname = "urbanterror"; @@ -15,7 +15,8 @@ stdenv.mkDerivation rec { }) ]; - buildInputs = [ unzip SDL libGL libGLU openal curl libXxf86vm ]; + nativeBuildInputs = [ unzip ]; + buildInputs = [ SDL libGL libGLU openal curl libXxf86vm ]; sourceRoot = "ioq3-for-UrbanTerror-4-release-${version}"; configurePhase = '' @@ -56,7 +57,7 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A multiplayer tactical FPS on top of Quake 3 engine"; longDescription = '' Urban Terror is a free multiplayer first person shooter developed by diff --git a/pkgs/games/ut2004/demo.nix b/pkgs/games/ut2004/demo.nix index cb7c0208f10..5203453cc60 100644 --- a/pkgs/games/ut2004/demo.nix +++ b/pkgs/games/ut2004/demo.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl }: +{ lib, stdenv, fetchurl }: let arch = @@ -11,7 +11,7 @@ in stdenv.mkDerivation rec { version = "3334"; src = fetchurl { - url = "http://vlaai.snt.utwente.nl/pub/games/UT2004/demo/UT2004-LNX-Demo${version}.run.gz"; + url = "http://ftp.snt.utwente.nl/pub/games/UT2004/demo/UT2004-LNX-Demo${version}.run.gz"; sha256 = "0d5f84qz8l1rg16yzx2k4ikr46n9iwj68na1bqi87wrww7ck6jh7"; }; @@ -30,7 +30,7 @@ in stdenv.mkDerivation rec { dontStrip = true; dontPatchELF = true; - meta = with stdenv.lib; { + meta = with lib; { description = "A first-person shooter video game developed by Epic Games and Digital Extreme -- demo version"; homepage = "http://www.unrealtournament2004.com"; license = licenses.unfree; diff --git a/pkgs/games/vapor/default.nix b/pkgs/games/vapor/default.nix index a8d345151d6..71028065263 100644 --- a/pkgs/games/vapor/default.nix +++ b/pkgs/games/vapor/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }: +{ lib, stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }: let pname = "vapor"; @@ -14,13 +14,13 @@ let name = "Vapor"; exec = pname; icon = icon; - comment = "LÖVE Distribution Client"; + comment = "LÖVE Distribution Client"; desktopName = "Vapor"; genericName = "vapor"; categories = "Game;"; }; -in +in stdenv.mkDerivation { name = "${pname}-${version}"; @@ -50,7 +50,7 @@ stdenv.mkDerivation { ln -s ${desktopItem}/share/applications/* $out/share/applications/ ''; - meta = with stdenv.lib; { + meta = with lib; { description = "LÖVE Distribution Client allowing access to many games"; platforms = platforms.linux; license = licenses.zlib; diff --git a/pkgs/games/vassal/default.nix b/pkgs/games/vassal/default.nix index 55848d91fab..e1fc19fa05b 100644 --- a/pkgs/games/vassal/default.nix +++ b/pkgs/games/vassal/default.nix @@ -1,19 +1,20 @@ -{ stdenv, fetchurl, jre, makeWrapper }: +{ lib, stdenv, fetchzip, jre, makeWrapper }: stdenv.mkDerivation rec { - name = "VASSAL-3.2.17"; + pname = "VASSAL"; + version = "3.5.3"; - src = fetchurl { - url = "mirror://sourceforge/vassalengine/${name}-linux.tar.bz2"; - sha256 = "0nxskr46janxnb31c03zv61kr46vy98l7cwxha3vll81l4ij1sjb"; + src = fetchzip { + url = "https://github.com/vassalengine/vassal/releases/download/${version}/${pname}-${version}-linux.tar.bz2"; + sha256 = "sha256-r48k4Un623uYsYcdF5UAH6w/uIdgWz8WQ75BiwrApkA="; }; - buildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper ]; installPhase = '' mkdir -p $out/bin $out/share/vassal $out/doc - cp CHANGES LICENSE README $out + cp CHANGES LICENSE README.md $out cp -R lib/* $out/share/vassal cp -R doc/* $out/doc @@ -25,11 +26,11 @@ stdenv.mkDerivation rec { # Don't move doc to share/, VASSAL expects it to be in the root forceShare = [ "man" "info" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A free, open-source boardgame engine"; homepage = "http://www.vassalengine.org/"; - license = licenses.lgpl21; + license = licenses.lgpl21Only; maintainers = with maintainers; [ tvestelind ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } diff --git a/pkgs/games/vdrift/default.nix b/pkgs/games/vdrift/default.nix index ea8b3941f8b..407603687ba 100644 --- a/pkgs/games/vdrift/default.nix +++ b/pkgs/games/vdrift/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, fetchsvn, pkgconfig, sconsPackages, libGLU, libGL, SDL2, SDL2_image +{ lib, stdenv, fetchFromGitHub, fetchsvn, pkg-config, sconsPackages, libGLU, libGL, SDL2, SDL2_image , libvorbis, bullet, curl, gettext, writeTextFile , data ? fetchsvn { @@ -20,7 +20,7 @@ let sha256 = "001wq3c4n9wzxqfpq40b1jcl16sxbqv2zbkpy9rq2wf9h417q6hg"; }; - nativeBuildInputs = [ pkgconfig sconsPackages.scons_3_1_2 ]; + nativeBuildInputs = [ pkg-config sconsPackages.scons_3_1_2 ]; buildInputs = [ libGLU libGL SDL2 SDL2_image libvorbis bullet curl gettext ]; patches = [ ./0001-Ignore-missing-data-for-installation.patch ]; @@ -35,9 +35,9 @@ let meta = { description = "Car racing game"; homepage = "http://vdrift.net/"; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [viric]; + platforms = lib.platforms.linux; }; }; wrappedName = "vdrift-${version}-with-data-${toString data.rev}"; diff --git a/pkgs/games/vectoroids/default.nix b/pkgs/games/vectoroids/default.nix index 01e787b8d91..765f2146580 100644 --- a/pkgs/games/vectoroids/default.nix +++ b/pkgs/games/vectoroids/default.nix @@ -1,9 +1,10 @@ -{stdenv, fetchurl, SDL, SDL_image, SDL_mixer}: +{lib, stdenv, fetchurl, SDL, SDL_image, SDL_mixer}: -stdenv.mkDerivation { - name = "vectoroids-1.1.0"; +stdenv.mkDerivation rec { + pname = "vectoroids"; + version = "1.1.0"; src = fetchurl { - url = "ftp://ftp.tuxpaint.org/unix/x/vectoroids/src/vectoroids-1.1.0.tar.gz"; + url = "ftp://ftp.tuxpaint.org/unix/x/vectoroids/src/vectoroids-${version}.tar.gz"; sha256 = "0bkvd4a1v496w0vlvqyi1a6p25ssgpkchxxxi8899sb72wlds54d"; }; @@ -17,7 +18,7 @@ stdenv.mkDerivation { meta = { homepage = "http://www.newbreedsoftware.com/vectoroids/"; description = "Clone of the classic arcade game Asteroids by Atari"; - license = stdenv.lib.licenses.gpl2Plus; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/vessel/default.nix b/pkgs/games/vessel/default.nix index 4e0337fa1b4..7c535cb323e 100644 --- a/pkgs/games/vessel/default.nix +++ b/pkgs/games/vessel/default.nix @@ -1,27 +1,28 @@ -{ stdenv, requireFile, SDL, libpulseaudio, alsaLib, runtimeShell }: +{ lib, stdenv, requireFile, SDL, libpulseaudio, alsa-lib, runtimeShell }: stdenv.mkDerivation rec { - name = "vessel-12082012"; + pname = "vessel"; + version = "12082012"; goBuyItNow = '' We cannot download the full version automatically, as you require a license. Once you bought a license, you need to add your downloaded version to the nix store. - You can do this by using "nix-prefetch-url file://\$PWD/${name}-bin" in the + You can do this by using "nix-prefetch-url file://\$PWD/vessel-${version}-bin" in the directory where you saved it. ''; src = if (stdenv.isi686) then requireFile { message = goBuyItNow; - name = "${name}-bin"; + name = "vessel-${version}-bin"; sha256 = "1vpwcrjiln2mx43h7ib3jnccyr3chk7a5x2bw9kb4lw8ycygvg96"; } else throw "unsupported platform ${stdenv.hostPlatform.system} only i686-linux supported for now."; phases = "installPhase"; ld_preload = ./isatty.c; - libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc ] - + ":" + stdenv.lib.makeLibraryPath [ SDL libpulseaudio alsaLib ] ; + libPath = lib.makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc ] + + ":" + lib.makeLibraryPath [ SDL libpulseaudio alsa-lib ] ; installPhase = '' mkdir -p $out/libexec/strangeloop/vessel/ @@ -67,7 +68,7 @@ stdenv.mkDerivation rec { chmod +x $out/bin/Vessel ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A fluid physics based puzzle game"; longDescription = '' Living liquid machines have overrun this world of unstoppable progress, diff --git a/pkgs/games/vitetris/default.nix b/pkgs/games/vitetris/default.nix index 2b9c77cd467..99996ca5c32 100644 --- a/pkgs/games/vitetris/default.nix +++ b/pkgs/games/vitetris/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "vitetris"; - version = "0.58.0"; + version = "0.59.1"; src = fetchFromGitHub { owner = "vicgeralds"; repo = "vitetris"; rev = "v${version}"; - sha256 = "1fvw9yqg1q25x6dlfi4bl3hrrcdgl6wwq29j89aycxwdfxrxs09w"; + sha256 = "sha256-Rbfa2hD67RGmInfWwYD4SthL8lm5bGSBi3oudV5hAao="; }; hardeningDisable = [ "format" ]; diff --git a/pkgs/games/vms-empire/default.nix b/pkgs/games/vms-empire/default.nix index eb9108c32c9..b3e89617ef3 100644 --- a/pkgs/games/vms-empire/default.nix +++ b/pkgs/games/vms-empire/default.nix @@ -1,28 +1,50 @@ -{ stdenv, fetchurl, ncurses, xmlto }: +{ lib +, stdenv +, fetchurl +, ncurses +, xmlto +, docbook_xml_dtd_44 +, docbook_xsl +, installShellFiles +}: -with stdenv.lib; stdenv.mkDerivation rec { - pname = "vms-empire"; - version = "1.15"; + version = "1.16"; src = fetchurl{ - url = "http://www.catb.org/~esr/vms-empire/${pname}-${version}.tar.gz"; - sha256 = "1vcpglkimcljb8s1dp6lzr5a0vbfxmh6xf37cmb8rf9wc3pghgn3"; + url = "http://www.catb.org/~esr/${pname}/${pname}-${version}.tar.gz"; + hash = "sha256-XETIbt/qVU+TpamPc2WQynqqUuZqkTUnItBprjg+gPk="; }; - buildInputs = - [ ncurses xmlto ]; + nativeBuildInputs = [ installShellFiles ]; + buildInputs = [ + ncurses + xmlto + docbook_xml_dtd_44 + docbook_xsl + ]; + + postBuild = '' + xmlto man vms-empire.xml + xmlto html-nochunks vms-empire.xml + ''; - patchPhase = '' - sed -i -e 's|^install: empire\.6 uninstall|install: empire.6|' -e 's|usr/||g' Makefile + installPhase = '' + runHook preInstall + install -D vms-empire -t ${placeholder "out"}/bin/ + install -D vms-empire.html -t ${placeholder "out"}/share/doc/${pname}/ + install -D vms-empire.desktop -t ${placeholder "out"}/share/applications/ + install -D vms-empire.png -t ${placeholder "out"}/share/icons/hicolor/48x48/apps/ + install -D vms-empire.xml -t ${placeholder "out"}/share/appdata/ + installManPage empire.6 + runHook postInstall ''; hardeningDisable = [ "format" ]; - makeFlags = [ "DESTDIR=$(out)" ]; - - meta = { + meta = with lib; { + homepage = "http://catb.org/~esr/vms-empire/"; description = "The ancestor of all expand/explore/exploit/exterminate games"; longDescription = '' Empire is a simulation of a full-scale war between two emperors, the @@ -32,11 +54,8 @@ stdenv.mkDerivation rec { expand/explore/exploit/exterminate games, including Civilization and Master of Orion. ''; - homepage = "http://catb.org/~esr/vms-empire/"; - license = licenses.gpl2; + license = licenses.gpl2Only; maintainers = [ maintainers.AndersonTorres ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } - - diff --git a/pkgs/games/voxelands/default.nix b/pkgs/games/voxelands/default.nix index 93f7e9bffa6..0d28a93e401 100644 --- a/pkgs/games/voxelands/default.nix +++ b/pkgs/games/voxelands/default.nix @@ -1,13 +1,30 @@ -{ stdenv, fetchurl, cmake, irrlicht, libpng, bzip2, sqlite -, libjpeg, libXxf86vm, libGLU, libGL, openal, libvorbis, xlibsWrapper, pkgconfig }: +{ lib, stdenv +, fetchFromGitLab +, bzip2 +, cmake +, expat +, irrlicht +, libGL +, libGLU +, libXxf86vm +, libjpeg +, libpng +, libvorbis +, openal +, pkg-config +, sqlite +, xlibsWrapper +}: stdenv.mkDerivation rec { pname = "voxelands"; - version = "1512.00"; + version = "1704.00"; - src = fetchurl { - url = "http://voxelands.com/downloads/${pname}-${version}-src.tar.bz2"; - sha256 = "0bims0y0nyviv2f2nxfj37s3258cjbfp9xd97najz0yylnk3qdfw"; + src = fetchFromGitLab { + owner = pname; + repo = pname; + rev = version; + sha256 = "0yj9z9nygpn0z63y739v72l3kg81wd71xgix5k045vfzhqsam5m0"; }; cmakeFlags = [ @@ -16,16 +33,32 @@ stdenv.mkDerivation rec { "-DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG" ]; + nativeBuildInputs = [ + cmake + pkg-config + ]; + buildInputs = [ - cmake irrlicht libpng bzip2 libjpeg sqlite - libXxf86vm libGLU libGL openal libvorbis xlibsWrapper pkgconfig + bzip2 + expat + irrlicht + libGL + libGLU + libXxf86vm + libjpeg + libpng + libvorbis + openal + sqlite + xlibsWrapper ]; - meta = with stdenv.lib; { - homepage = "http://voxelands.com/"; + meta = with lib; { + homepage = "https://voxelands.net/"; description = "Infinite-world block sandbox game based on Minetest"; license = licenses.gpl3Plus; platforms = platforms.linux; maintainers = with maintainers; [ ]; + broken = stdenv.isAarch64; # build fails with "libIrrlicht.so: undefined reference to `png_init_filter_functions_neon'" }; } diff --git a/pkgs/games/wargus/default.nix b/pkgs/games/wargus/default.nix new file mode 100644 index 00000000000..fda4f792c7b --- /dev/null +++ b/pkgs/games/wargus/default.nix @@ -0,0 +1,39 @@ +{ stdenv, lib, callPackage, fetchFromGitHub +, cmake, pkg-config, makeWrapper +, zlib, bzip2, libpng +, dialog, python3, cdparanoia +}: + +let + stratagus = callPackage ./stratagus.nix {}; +in +stdenv.mkDerivation rec { + pname = "wargus"; + inherit (stratagus) version; + + src = fetchFromGitHub { + owner = "wargus"; + repo = "wargus"; + rev = "v${version}"; + sha256 = "0dibm68jxaqzgzcyblfj2bmwyz9v5ax0njnnbvak7xjk1zlh11sx"; + }; + + nativeBuildInputs = [ cmake pkg-config makeWrapper ]; + buildInputs = [ zlib bzip2 libpng ]; + cmakeFlags = [ + "-DSTRATAGUS=${stratagus}/games/stratagus" + "-DSTRATAGUS_INCLUDE_DIR=${stratagus.src}/gameheaders" + ]; + postInstall = '' + makeWrapper $out/games/wargus $out/bin/wargus \ + --prefix PATH : ${lib.makeBinPath [ "$out" cdparanoia python3 ]} + ''; + + meta = with lib; { + description = "Importer and scripts for Warcraft II: Tides of Darkness, the expansion Beyond the Dark Portal, and Aleonas Tales"; + homepage = "https://wargus.github.io/"; + license = licenses.gpl2Only; + maintainers = [ maintainers.astro ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/wargus/stratagus.nix b/pkgs/games/wargus/stratagus.nix new file mode 100644 index 00000000000..f029e284f33 --- /dev/null +++ b/pkgs/games/wargus/stratagus.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub +, cmake, pkg-config, makeWrapper +, zlib, bzip2, libpng, lua5_1, toluapp +, SDL, SDL_mixer, SDL_image, libGL +}: + +stdenv.mkDerivation rec { + pname = "stratagus"; + version = "2.4.3"; + + src = fetchFromGitHub { + owner = "wargus"; + repo = "stratagus"; + rev = "v${version}"; + sha256 = "128m5n9axq007xi8a002ig7d4dyw8j060542x220ld66ibfprhcn"; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ + zlib bzip2 libpng + lua5_1 toluapp + SDL.dev SDL_image SDL_mixer libGL + ]; + cmakeFlags = [ + "-DCMAKE_CXX_FLAGS=-Wno-error=format-overflow" + ]; + + meta = with lib; { + description = "strategy game engine"; + homepage = "https://wargus.github.io/stratagus.html"; + license = licenses.gpl2Only; + maintainers = [ maintainers.astro ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/warmux/default.nix b/pkgs/games/warmux/default.nix index dc8b53d09ad..6b52194ffca 100644 --- a/pkgs/games/warmux/default.nix +++ b/pkgs/games/warmux/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchFromGitHub, autoconf, automake +{ lib, stdenv, fetchFromGitHub, autoconf, automake , zlib, curl, gnutls, fribidi, libpng, SDL, SDL_gfx, SDL_image, SDL_mixer -, SDL_net, SDL_ttf, libunwind, libX11, xorgproto, libxml2, pkgconfig +, SDL_net, SDL_ttf, libunwind, libX11, xorgproto, libxml2, pkg-config , gettext, intltool, libtool, perl }: @@ -19,7 +19,7 @@ stdenv.mkDerivation { configureFlagsArray = ("CFLAGS=-include ${zlib.dev}/include/zlib.h"); nativeBuildInputs = [ - autoconf automake gettext intltool libtool pkgconfig + autoconf automake gettext intltool libtool pkg-config ]; buildInputs = [ zlib curl gnutls fribidi libpng SDL SDL_gfx SDL_image SDL_mixer @@ -27,7 +27,7 @@ stdenv.mkDerivation { ]; enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { description = "Ballistics turn-based battle game between teams - unofficial copy"; maintainers = with maintainers; [ raskin ]; platforms = platforms.linux; diff --git a/pkgs/games/warsow/default.nix b/pkgs/games/warsow/default.nix index 4c2cd1b5a28..81c467dd9db 100644 --- a/pkgs/games/warsow/default.nix +++ b/pkgs/games/warsow/default.nix @@ -1,11 +1,11 @@ -{ stdenv, fetchurl, warsow-engine, makeWrapper }: +{ lib, stdenv, fetchurl, warsow-engine, makeWrapper }: stdenv.mkDerivation rec { pname = "warsow"; version = "2.1.2"; src = fetchurl { - url = "http://slice.sh/warsow/${pname}-${version}.tar.gz"; + url = "http://warsow.net/${pname}-${version}.tar.gz"; sha256 = "07y2airw5qg3s1bf1c63a6snjj22riz0mqhk62jmfm9nrarhavrc"; }; @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { done ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Multiplayer FPS game designed for competitive gaming"; longDescription = '' Set in a futuristic cartoon-like world where rocketlauncher-wielding diff --git a/pkgs/games/warsow/engine.nix b/pkgs/games/warsow/engine.nix index 19c368671e6..e796c589290 100644 --- a/pkgs/games/warsow/engine.nix +++ b/pkgs/games/warsow/engine.nix @@ -1,15 +1,9 @@ -{ stdenv, lib, fetchurl, cmake, libogg, libvorbis, libtheora, curl, freetype +{ stdenv, lib, substituteAll, fetchurl, cmake, libogg, libvorbis, libtheora, curl, freetype , libjpeg, libpng, SDL2, libGL, openal, zlib }: -let - # The game loads all those via dlopen(). - libs = lib.mapAttrs (name: x: lib.getLib x) { - inherit zlib curl libpng libjpeg libogg libvorbis libtheora freetype; - }; - -in stdenv.mkDerivation (libs // rec { - name = "warsow-engine-${version}"; +stdenv.mkDerivation rec { + pname = "warsow-engine"; version = "2.1.0"; src = fetchurl { @@ -17,6 +11,13 @@ in stdenv.mkDerivation (libs // rec { sha256 = "0fj5k7qpf6far8i1xhqxlpfjch10zj26xpilhp95aq2yiz08pj4r"; }; + patches = [ + (substituteAll { + src = ./libpath.patch; + inherit zlib curl libpng libjpeg libogg libvorbis libtheora freetype; + }) + ]; + nativeBuildInputs = [ cmake ]; buildInputs = [ @@ -24,30 +25,30 @@ in stdenv.mkDerivation (libs // rec { libpng ]; - patches = [ ./libpath.patch ]; - postPatch = '' - cd source/source - substituteAllInPlace gameshared/q_arch.h - ''; - cmakeFlags = [ "-DQFUSION_GAME=Warsow" ]; - enableParallelBuilding = true; + preConfigure = '' + cd source/source + ''; installPhase = '' + runHook preInstall + mkdir -p $out/lib cp -r libs $out/lib/warsow for i in warsow.* wsw_server.* wswtv_server.*; do install -Dm755 "$i" "$out/bin/''${i%.*}" done + + runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Multiplayer FPS game designed for competitive gaming (engine only)"; homepage = "http://www.warsow.net"; - license = licenses.gpl2; + license = licenses.gpl2Plus; maintainers = with maintainers; [ astsmtl abbradar ]; platforms = platforms.linux; broken = stdenv.isAarch64; }; -}) +} diff --git a/pkgs/games/warzone2100/default.nix b/pkgs/games/warzone2100/default.nix index 3d7be936f1b..6f31dcf9be9 100644 --- a/pkgs/games/warzone2100/default.nix +++ b/pkgs/games/warzone2100/default.nix @@ -1,6 +1,31 @@ -{ stdenv, mkDerivation, fetchurl, autoconf, automake -, perl, unzip, zip, which, pkgconfig, qtbase, qtscript -, SDL2, libtheora, openal, glew, physfs, fribidi, libXrandr +{ lib +, stdenv +, fetchurl +, cmake +, ninja +, p7zip +, pkg-config +, asciidoctor +, gettext + +, SDL2 +, libtheora +, libvorbis +, openal +, openalSoft +, physfs +, miniupnpc +, libsodium +, curl +, libpng +, freetype +, harfbuzz +, sqlite +, which +, vulkan-headers +, vulkan-loader +, shaderc + , withVideos ? false }: @@ -12,42 +37,69 @@ let }; in -mkDerivation rec { +stdenv.mkDerivation rec { inherit pname; - version = "3.3.0"; + version = "4.1.1"; src = fetchurl { - url = "mirror://sourceforge/${pname}/releases/${version}/${pname}-${version}_src.tar.xz"; - sha256 = "1s0n67rh32g0bgq72p4qzkcqjlw58gc70r4r6gl9k90pil9chj6c"; + url = "mirror://sourceforge/${pname}/releases/${version}/${pname}_src.tar.xz"; + sha256 = "sha256-CnMt3FytpTDAtibU3V24i6EvWRc9UkAuvC9ingphCM8="; }; buildInputs = [ - qtbase qtscript SDL2 libtheora openal - glew physfs fribidi libXrandr + SDL2 + libtheora + libvorbis + openal + openalSoft + physfs + miniupnpc + libsodium + curl + libpng + freetype + harfbuzz + sqlite + vulkan-headers + vulkan-loader ]; + nativeBuildInputs = [ - perl zip unzip pkgconfig autoconf automake + pkg-config + cmake + ninja + p7zip + asciidoctor + gettext + shaderc ]; - preConfigure = "./autogen.sh"; - postPatch = '' substituteInPlace lib/exceptionhandler/dumpinfo.cpp \ - --replace "which %s" "${which}/bin/which %s" + --replace '"which "' '"${which}/bin/which "' substituteInPlace lib/exceptionhandler/exceptionhandler.cpp \ --replace "which %s" "${which}/bin/which %s" ''; - configureFlags = [ "--with-distributor=NixOS" ]; - - hardeningDisable = [ "format" ]; - - enableParallelBuilding = true; + cmakeFlags = [ + "-DWZ_DISTRIBUTOR=NixOS" + # The cmake builder automatically sets CMAKE_INSTALL_BINDIR to an absolute + # path, but this results in an error: + # + # > An absolute CMAKE_INSTALL_BINDIR path cannot be used if the following + # > are not also absolute paths: WZ_DATADIR + # + # WZ_DATADIR is based on CMAKE_INSTALL_DATAROOTDIR, so we set that. + # + # Alternatively, we could have set CMAKE_INSTALL_BINDIR to "bin". + "-DCMAKE_INSTALL_DATAROOTDIR=${placeholder "out"}/share" + ]; - postInstall = stdenv.lib.optionalString withVideos - "cp ${sequences_src} $out/share/warzone2100/sequences.wz"; + postInstall = lib.optionalString withVideos '' + cp ${sequences_src} $out/share/warzone2100/sequences.wz + ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A free RTS game, originally developed by Pumpkin Studios"; longDescription = '' Warzone 2100 is an open source real-time strategy and real-time tactics @@ -62,7 +114,7 @@ mkDerivation rec { ''; homepage = "http://wz2100.net"; license = licenses.gpl2Plus; - maintainers = [ maintainers.astsmtl ]; + maintainers = with maintainers; [ astsmtl fgaz ]; platforms = platforms.linux; }; } diff --git a/pkgs/games/wesnoth/default.nix b/pkgs/games/wesnoth/default.nix index ce375392041..6eedc446f53 100644 --- a/pkgs/games/wesnoth/default.nix +++ b/pkgs/games/wesnoth/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf , pango, gettext, boost, libvorbis, fribidi, dbus, libpng, pcre, openssl, icu , Cocoa, Foundation , enableTools ? false @@ -6,26 +6,24 @@ stdenv.mkDerivation rec { pname = "wesnoth"; - version = "1.14.13"; + version = "1.14.16"; src = fetchFromGitHub { rev = version; owner = "wesnoth"; repo = "wesnoth"; - sha256 = "1ka07h4sgmbc24qbaz0pbryx0yk339l4jzg32hy01qdvl2n40w3h"; + sha256 = "sha256-QMz7atxol18r//UNb6+H6xAAEQdR4hAN8UW0KeGSH1g="; }; - nativeBuildInputs = [ cmake pkgconfig ]; + nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_net SDL2_ttf pango gettext boost libvorbis fribidi dbus libpng pcre openssl icu ] - ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa Foundation]; + ++ lib.optionals stdenv.isDarwin [ Cocoa Foundation]; cmakeFlags = [ "-DENABLE_TOOLS=${if enableTools then "ON" else "OFF"}" ]; - enableParallelBuilding = true; - - meta = with stdenv.lib; { + meta = with lib; { description = "The Battle for Wesnoth, a free, turn-based strategy game with a fantasy theme"; longDescription = '' The Battle for Wesnoth is a Free, turn-based tactical strategy diff --git a/pkgs/games/widelands/default.nix b/pkgs/games/widelands/default.nix index e499f4ad1fc..f094c7cd596 100644 --- a/pkgs/games/widelands/default.nix +++ b/pkgs/games/widelands/default.nix @@ -1,58 +1,90 @@ -{ stdenv, fetchurl, cmake, python, gettext -, boost, libpng, zlib, glew, lua, doxygen, icu -, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf +{ lib +, stdenv +, fetchFromGitHub +, SDL2 +, SDL2_image +, SDL2_mixer +, SDL2_net +, SDL2_ttf +, boost +, cmake +, curl +, doxygen +, gettext +, glew +, graphviz +, icu +, installShellFiles +, libpng +, lua +, python3 +, zlib }: stdenv.mkDerivation rec { pname = "widelands"; - version = "20"; + version = "1.0"; - meta = with stdenv.lib; { - description = "RTS with multiple-goods economy"; - homepage = "http://widelands.org/"; - longDescription = '' - Widelands is a real time strategy game based on "The Settlers" and "The - Settlers II". It has a single player campaign mode, as well as a networked - multiplayer mode. - ''; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ raskin jcumming ]; - hydraPlatforms = []; + src = fetchFromGitHub { + owner = "widelands"; + repo = "widelands"; + rev = "v${version}"; + sha256 = "sha256-gNumYoeKePaxiAzrqEPKibMxFwv9vyBrCSoua+MKhcM="; }; - patches = [ - ./bincmake.patch - ]; - - src = fetchurl { - url = "https://launchpad.net/widelands/build${version}/build${version}/+download/widelands-build${version}.tar.bz2"; - sha256 = "1cmwfwk7j6yi2pwmm4rm57s23sdzasqf53nx6567sdagqyc4sn9q"; - }; + patches = [ ./bincmake.patch ]; - preConfigure = '' - cmakeFlags=" - -DWL_INSTALL_BASEDIR=$out - -DWL_INSTALL_DATADIR=$out/share/widelands - -DWL_INSTALL_BINARY=$out/bin - " + postPatch = '' + substituteInPlace xdg/org.widelands.Widelands.desktop \ + --replace 'Exec=widelands' "Exec=$out/bin/widelands" ''; - nativeBuildInputs = [ cmake python gettext ]; + cmakeFlags = [ + "-Wno-dev" # dev warnings are only needed for upstream development + "-DWL_INSTALL_BASEDIR=${placeholder "out"}" + "-DWL_INSTALL_DATADIR=${placeholder "out"}/share/widelands" + "-DWL_INSTALL_BINARY=${placeholder "out"}/bin" + ]; + + nativeBuildInputs = [ cmake doxygen gettext graphviz installShellFiles ]; buildInputs = [ - boost libpng zlib glew lua doxygen icu - SDL2 SDL2_image SDL2_mixer SDL2_net SDL2_ttf + SDL2 + SDL2_image + SDL2_mixer + SDL2_net + SDL2_ttf + boost + curl + glew + icu + libpng + lua + python3 + zlib ]; - prePatch = '' - substituteInPlace ./debian/org.widelands.widelands.desktop --replace "/usr/share/games/widelands/data/" "$out/share/widelands/" - ''; - postInstall = '' - mkdir -p "$out/share/applications/" - cp -v "../debian/org.widelands.widelands.desktop" "$out/share/applications/" + install -Dm444 -t $out/share/applications ../xdg/org.widelands.Widelands.desktop + + for s in 16 32 48 64 128; do + install -Dm444 ../data/images/logos/wl-ico-''${s}.png $out/share/icons/hicolor/''${s}x''${s}/org.widelands.Widelands.png + done + + installManPage ../xdg/widelands.6 ''; - enableParallelBuilding = true; + meta = with lib; { + description = "RTS with multiple-goods economy"; + homepage = "https://widelands.org/"; + longDescription = '' + Widelands is a real time strategy game based on "The Settlers" and "The + Settlers II". It has a single player campaign mode, as well as a networked + multiplayer mode. + ''; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ raskin jcumming ]; + platforms = platforms.linux; + hydraPlatforms = [ ]; + }; } diff --git a/pkgs/games/worldofgoo/default.nix b/pkgs/games/worldofgoo/default.nix index 81540fa4d96..a9938cfcbc0 100644 --- a/pkgs/games/worldofgoo/default.nix +++ b/pkgs/games/worldofgoo/default.nix @@ -1,4 +1,4 @@ -{ stdenv, requireFile, unzip, makeDesktopItem, SDL2, SDL2_mixer, libogg, libvorbis }: +{ lib, stdenv, requireFile, unzip, makeDesktopItem, SDL2, SDL2_mixer, libogg, libvorbis }: let arch = if stdenv.system == "x86_64-linux" @@ -34,15 +34,15 @@ stdenv.mkDerivation rec { sha256 = "175e4b0499a765f1564942da4bd65029f8aae1de8231749c56bec672187d53ee"; }; - buildInputs = [ unzip ]; + nativeBuildInputs = [ unzip ]; sourceRoot = pname; phases = [ "unpackPhase installPhase" ]; - libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib stdenv.cc.libc SDL2 SDL2_mixer + libPath = lib.makeLibraryPath [ stdenv.cc.cc.lib stdenv.cc.libc SDL2 SDL2_mixer libogg libvorbis ]; unpackPhase = '' - # The game is distributed as a shell script, with a tar of mojosetup, and a + # The game is distributed as a shell script, with a tar of mojosetup, and a # zip archive attached to the end. Therefore a simple unzip does the job. # However, to avoid unzip errors, we need to strip those out first. tail -c +421887 ${src} > ${src}.zip @@ -61,7 +61,7 @@ stdenv.mkDerivation rec { patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath $libPath $out/bin/WorldOfGoo.bin.${arch} ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A physics based puzzle game"; longDescription = '' World of Goo is a physics based puzzle / construction game. The millions of Goo diff --git a/pkgs/games/wyvern/cargo-lock.patch b/pkgs/games/wyvern/cargo-lock.patch new file mode 100644 index 00000000000..89b2517e26d --- /dev/null +++ b/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/pkgs/games/wyvern/default.nix b/pkgs/games/wyvern/default.nix new file mode 100644 index 00000000000..f99faa282fd --- /dev/null +++ b/pkgs/games/wyvern/default.nix @@ -0,0 +1,36 @@ +{ lib +, fetchgit +, rustPlatform +, unzip +, rsync +, innoextract +, curl +, cmake +, pkg-config +, 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 pkg-config ]; + buildInputs = [ openssl ]; + + meta = with 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/pkgs/games/xbill/default.nix b/pkgs/games/xbill/default.nix index 8a6d4cf14cd..a20b52e7854 100644 --- a/pkgs/games/xbill/default.nix +++ b/pkgs/games/xbill/default.nix @@ -1,9 +1,10 @@ -{ stdenv, lib, fetchurl, libX11, libXpm, libXt, motif, ... }: +{ stdenv, lib, makeDesktopItem, copyDesktopItems, fetchurl, libX11, libXpm, libXt, motif, ... }: stdenv.mkDerivation rec { pname = "xbill"; version = "2.1"; + nativeBuildInputs = [ copyDesktopItems ]; buildInputs = [ libX11 libXpm libXt motif ]; NIX_CFLAGS_LINK = "-lXpm"; @@ -18,8 +19,21 @@ stdenv.mkDerivation rec { sha256 = "13b08lli2gvppmvyhy0xs8cbjbkvrn4b87302mx0pxrdrvqzzz8f"; }; + desktopItems = [ (makeDesktopItem { + name = "xbill"; + exec = "xbill"; + icon = "xbill"; + desktopName = "XBill"; + comment = "Get rid of those Wingdows viruses!"; + categories = "Game;ArcadeGame;"; + }) ]; + + postInstall = '' + install -Dm644 pixmaps/icon.xpm $out/share/pixmaps/xbill.xpm + ''; + meta = with stdenv; { - description = "Protect a computer network from getting infected."; + description = "Protect a computer network from getting infected"; homepage = "http://www.xbill.org/"; license = lib.licenses.gpl1; maintainers = with lib.maintainers; [ aw ]; diff --git a/pkgs/games/xboard/default.nix b/pkgs/games/xboard/default.nix index 9f3303578da..90c0f3707cd 100644 --- a/pkgs/games/xboard/default.nix +++ b/pkgs/games/xboard/default.nix @@ -1,5 +1,5 @@ -{stdenv, fetchurl, libX11, xorgproto, libXt, libXaw, libSM, libICE, libXmu -, libXext, gnuchess, texinfo, libXpm, pkgconfig, librsvg, cairo, pango +{lib, stdenv, fetchurl, libX11, xorgproto, libXt, libXaw, libSM, libICE, libXmu +, libXext, gnuchess, texinfo, libXpm, pkg-config, librsvg, cairo, pango , gtk2 }: let @@ -14,7 +14,7 @@ let }; buildInputs = [ libX11 xorgproto libXt libXaw libSM libICE libXmu - libXext gnuchess texinfo libXpm pkgconfig librsvg + libXext gnuchess texinfo libXpm pkg-config librsvg cairo pango gtk2 ]; in @@ -26,10 +26,10 @@ stdenv.mkDerivation { }; meta = { inherit (s) version; - description = ''GUI for chess engines''; + description = "GUI for chess engines"; homepage = "https://www.gnu.org/software/xboard/"; - maintainers = [stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.unix; - license = stdenv.lib.licenses.gpl3Plus; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.unix; + license = lib.licenses.gpl3Plus; }; } diff --git a/pkgs/games/xbomb/default.nix b/pkgs/games/xbomb/default.nix index 0754905ce50..093f822a7e3 100644 --- a/pkgs/games/xbomb/default.nix +++ b/pkgs/games/xbomb/default.nix @@ -1,19 +1,20 @@ -{ stdenv, fetchurl, libX11, libXaw }: +{ lib, stdenv, fetchurl, libX11, libXaw }: stdenv.mkDerivation rec { - name = "xbomb-2.2b"; + pname = "xbomb"; + version = "2.2b"; src = fetchurl { - url = "https://www.gedanken.org.uk/software/xbomb/download/${name}.tgz"; + url = "https://www.gedanken.org.uk/software/xbomb/download/xbomb-${version}.tgz"; sha256 = "0692gjw28qvh8wj9l58scjw6kxj7jdyb3yzgcgs9wcznq11q839m"; }; buildInputs = [ libX11 libXaw ]; makeFlags = [ - "INSTDIR=${placeholder ''out''}" + "INSTDIR=${placeholder "out"}" ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://www.gedanken.org.uk/software/xbomb/"; description = "Minesweeper for X11 with various grid sizes and shapes"; license = licenses.gpl2Plus; diff --git a/pkgs/games/xconq/default.nix b/pkgs/games/xconq/default.nix index 6e852639979..8f4366fbcb8 100644 --- a/pkgs/games/xconq/default.nix +++ b/pkgs/games/xconq/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cpio, xorgproto, libX11, libXmu, libXaw, libXt, tcl, tk +{ lib, stdenv, fetchurl, cpio, xorgproto, libX11, libXmu, libXaw, libXt, tcl, tk , libXext, fontconfig, makeWrapper }: stdenv.mkDerivation rec { @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { done ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A programmable turn-based strategy game"; maintainers = with maintainers; [ raskin ]; platforms = platforms.linux; diff --git a/pkgs/games/xcowsay/default.nix b/pkgs/games/xcowsay/default.nix new file mode 100644 index 00000000000..89ca50b3a33 --- /dev/null +++ b/pkgs/games/xcowsay/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchurl, makeWrapper, pkg-config +, dbus, dbus-glib, gtk3, gdk-pixbuf, librsvg +, fortune +}: + +stdenv.mkDerivation rec { + pname = "xcowsay"; + version = "1.5.1"; + + src = fetchurl { + url = "http://www.nickg.me.uk/files/xcowsay-${version}.tar.gz"; + sha256 = "sha256-wypsfAp634wbaAI+fxzmr3J5AmvQzChVi/wp/BPxiA0="; + }; + + 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 lib; { + homepage = "http://www.doof.me.uk/xcowsay"; + description = "Tool to display a cute cow and messages"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ das_j ]; + }; +} diff --git a/pkgs/games/xjump/default.nix b/pkgs/games/xjump/default.nix index afac2de9fce..3c13fc1a9b7 100644 --- a/pkgs/games/xjump/default.nix +++ b/pkgs/games/xjump/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, autoconf, automake, libX11, libXt, libXpm, libXaw, localStateDir?null }: +{ lib, stdenv, fetchFromGitHub, autoconf, automake, libX11, libXt, libXpm, libXaw, localStateDir?null }: stdenv.mkDerivation { pname = "xjump"; @@ -19,7 +19,7 @@ stdenv.mkDerivation { else []; - meta = with stdenv.lib; { + meta = with lib; { description = "The falling tower game"; license = licenses.gpl2; maintainers = with maintainers; [ pmeunier ]; diff --git a/pkgs/games/xmage/default.nix b/pkgs/games/xmage/default.nix index e8b8eb8a941..7552ce700f3 100644 --- a/pkgs/games/xmage/default.nix +++ b/pkgs/games/xmage/default.nix @@ -1,4 +1,4 @@ -{ stdenv +{ lib, stdenv , fetchurl , jdk8 , unzip @@ -30,7 +30,7 @@ EOS chmod +x $out/bin/xmage ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Magic Another Game Engine"; license = licenses.mit; maintainers = with maintainers; [ matthiasbeyer ]; diff --git a/pkgs/games/xmoto/default.nix b/pkgs/games/xmoto/default.nix index d49998a68d7..246e1afc744 100644 --- a/pkgs/games/xmoto/default.nix +++ b/pkgs/games/xmoto/default.nix @@ -1,34 +1,65 @@ -{ stdenv, fetchurl, chipmunk, sqlite, curl, zlib, bzip2, libjpeg -, libpng, freeglut, libGLU, libGL, SDL, SDL_mixer, SDL_image, SDL_net -, SDL_ttf, lua5, ode, libxdg_basedir, libxml2 }: +{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, gettext, makeWrapper, bzip2 +, curl, libjpeg, libxml2, xz, lua, ode, libGL, libpng, SDL, SDL_mixer, SDL_net +, SDL_ttf, sqlite, libxdg_basedir, zlib }: stdenv.mkDerivation rec { pname = "xmoto"; - version = "0.5.11"; + version = "0.6.1"; - src = fetchurl { - url = "https://download.tuxfamily.org/xmoto/xmoto/${version}/xmoto-${version}-src.tar.gz"; - sha256 = "1ci6r8zd0l7z28cy92ddf9dmqbdqwinz2y1cny34c61b57wsd155"; + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = version; + sha256 = "00f5ha79lfa2iiaz66wl0hl5dapa1l15qdr7m7knzi0ll7j6z66n"; }; - buildInputs = [ - chipmunk sqlite curl zlib bzip2 libjpeg libpng - freeglut libGLU libGL SDL SDL_mixer SDL_image SDL_net SDL_ttf - lua5 ode libxdg_basedir libxml2 + patches = [ + # Fix build with Nix + (fetchpatch { + url = "https://github.com/xmoto/xmoto/commit/536dcc7ec77a4c4c454b86220e85b1cb3cd1c7f7.patch"; + sha256 = "0h9lld668jrbmrqva89zqwp63jiagjj86prkxzx6372p3kk9y7g7"; + }) ]; - CXXFLAGS = [ - "-fpermissive" - # Build using the old C++ ABI to fix issue with missing text; the issue - # should be fixed in the next stable release (if that ever does happen) - "-D_GLIBCXX_USE_CXX11_ABI=0" + nativeBuildInputs = [ + cmake + gettext + makeWrapper ]; - meta = with stdenv.lib; { - description = "Obstacled race game"; + buildInputs = [ + bzip2 + curl + libjpeg + libxml2 + xz + lua + ode + libGL + libpng + SDL + SDL_mixer + SDL_net + SDL_ttf + sqlite + libxdg_basedir + zlib + ]; + + preFixup = '' + wrapProgram "$out/bin/xmoto" \ + --prefix XDG_DATA_DIRS : "$out/share/" + ''; + + meta = with lib; { + description = "A challenging 2D motocross platform game, where physics play an important role"; + longDescription = '' + X-Moto is a challenging 2D motocross platform game, where physics plays an all important role in the gameplay. + You need to control your bike to its limits, if you want to have a chance to finish the most difficult challenges. + ''; homepage = "http://xmoto.tuxfamily.org"; maintainers = with maintainers; [ raskin pSub ]; - platforms = platforms.linux; - license = licenses.gpl2; + platforms = platforms.all; + license = licenses.gpl2Plus; }; } diff --git a/pkgs/games/xonotic/default.nix b/pkgs/games/xonotic/default.nix index ab6ac022b6c..b15e111970e 100644 --- a/pkgs/games/xonotic/default.nix +++ b/pkgs/games/xonotic/default.nix @@ -1,9 +1,9 @@ { lib, stdenv, fetchurl, fetchzip, makeWrapper, runCommandNoCC, makeDesktopItem -, xonotic-data +, xonotic-data, copyDesktopItems , # required for both unzip, libjpeg, zlib, libvorbis, curl , # glx - libX11, libGLU, libGL, libXpm, libXext, libXxf86vm, alsaLib + libX11, libGLU, libGL, libXpm, libXext, libXxf86vm, alsa-lib , # sdl SDL2 @@ -38,14 +38,14 @@ let aims to become the best possible open-source FPS of its kind. ''; homepage = "https://www.xonotic.org/"; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = with stdenv.lib.maintainers; [ astsmtl zalakain petabyteboy ]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ astsmtl zalakain petabyteboy ]; + platforms = lib.platforms.linux; }; desktopItem = makeDesktopItem { name = "xonotic"; - exec = "$out/bin/xonotic"; + exec = "xonotic"; comment = meta.description; desktopName = "Xonotic"; categories = "Game;Shooter;"; @@ -58,12 +58,13 @@ let inherit version; src = fetchurl { - url = "https://dl.xonotic.org/${name}-source.zip"; + url = "https://dl.xonotic.org/xonotic-${version}-source.zip"; sha256 = "0axxw04fyz6jlfqd0kp7hdrqa0li31sx1pbipf2j5qp9wvqicsay"; }; - buildInputs = [ unzip libjpeg zlib libvorbis curl ] - ++ lib.optional withGLX [ libX11.dev libGLU.dev libGL.dev libXpm.dev libXext.dev libXxf86vm.dev alsaLib.dev ] + nativeBuildInputs = [ unzip ]; + buildInputs = [ libjpeg zlib libvorbis curl ] + ++ lib.optional withGLX [ libX11.dev libGLU.dev libGL.dev libXpm.dev libXext.dev libXxf86vm.dev alsa-lib.dev ] ++ lib.optional withSDL [ SDL2.dev ]; sourceRoot = "Xonotic/source/darkplaces"; @@ -118,8 +119,8 @@ let in rec { xonotic-data = fetchzip { - name = "xonotic-data-${version}"; - url = "https://dl.xonotic.org/${name}.zip"; + name = "xonotic-data"; + url = "https://dl.xonotic.org/xonotic-${version}.zip"; sha256 = "1ygkh0v68y4sd1w5vpk8dgb65h5jm599hwszdfgjp3ax4d3ml81x"; extraPostFetch = '' cd $out @@ -131,7 +132,8 @@ in rec { xonotic = runCommandNoCC "xonotic${variant}-${version}" { inherit xonotic-unwrapped; - buildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper copyDesktopItems ]; + desktopItems = [ desktopItem ]; passthru = { inherit version; meta = meta // { @@ -151,7 +153,7 @@ in rec { '' + lib.optionalString (withSDL || withGLX) '' mkdir -p $out/share ln -s ${xonotic-unwrapped}/share/icons $out/share/icons - ${desktopItem.buildCommand} + copyDesktopItems '' + '' for binary in $out/bin/xonotic-*; do wrapProgram $binary --add-flags "-basedir ${xonotic-data}" diff --git a/pkgs/games/xpilot/bloodspilot-client.nix b/pkgs/games/xpilot/bloodspilot-client.nix index 4de27b1f18d..8e603ef53f7 100644 --- a/pkgs/games/xpilot/bloodspilot-client.nix +++ b/pkgs/games/xpilot/bloodspilot-client.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, libX11, SDL, libGLU, libGL, expat, zlib, SDL_ttf, SDL_image }: +{ lib, stdenv, fetchurl, libX11, SDL, libGLU, libGL, expat, zlib, SDL_ttf, SDL_image }: stdenv.mkDerivation rec { version = "1.5.0"; @@ -16,10 +16,10 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = "-lX11"; meta = { - description = ''A multiplayer space combat game (client part)''; + description = "A multiplayer space combat game (client part)"; homepage = "http://bloodspilot.sf.net/"; - license = stdenv.lib.licenses.gpl2Plus ; - maintainers = [stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl2Plus ; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/games/xpilot/bloodspilot-server.nix b/pkgs/games/xpilot/bloodspilot-server.nix index 6b0a0603af5..a860c4e1d5f 100644 --- a/pkgs/games/xpilot/bloodspilot-server.nix +++ b/pkgs/games/xpilot/bloodspilot-server.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, expat }: +{ lib, stdenv, fetchurl, expat }: stdenv.mkDerivation rec { pname = "bloodspilot-xpilot-fxi-server"; @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { ./server-gcc5.patch ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A multiplayer X11 space combat game (server part)"; homepage = "http://bloodspilot.sf.net/"; license = licenses.gpl2Plus ; diff --git a/pkgs/games/xpilot/default.nix b/pkgs/games/xpilot/default.nix index 8803806547b..bd86538d99e 100644 --- a/pkgs/games/xpilot/default.nix +++ b/pkgs/games/xpilot/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, libX11, libSM, SDL, libGLU, libGL, expat, SDL_ttf +{ lib, stdenv, fetchurl, libX11, libSM, SDL, libGLU, libGL, expat, SDL_ttf , SDL_image, zlib, libXxf86misc }: stdenv.mkDerivation rec { pname = "xpilot-ng"; @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { buildInputs = [ libX11 libSM SDL SDL_ttf SDL_image libGLU libGL expat zlib libXxf86misc ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A multiplayer X11 space combat game"; homepage = "http://xpilot.sf.net/"; license = licenses.gpl2Plus; diff --git a/pkgs/games/xskat/default.nix b/pkgs/games/xskat/default.nix index 5fa91a0395c..74c2be586ce 100644 --- a/pkgs/games/xskat/default.nix +++ b/pkgs/games/xskat/default.nix @@ -1,38 +1,30 @@ -{stdenv, fetchurl, libX11, imake, gccmakedep}: +{lib, stdenv, fetchurl, libX11, imake, gccmakedep}: +stdenv.mkDerivation rec { + pname = "xskat"; + version = "4.0"; -let - s = # Generated upstream information - rec { - baseName="xskat"; - version="4.0"; - name="${baseName}-${version}"; + nativeBuildInputs = [ gccmakedep ]; + buildInputs = [ libX11 imake ]; - url="http://www.xskat.de/xskat-4.0.tar.gz"; - hash="8ba52797ccbd131dce69b96288f525b0d55dee5de4008733f7a5a51deb831c10"; - sha256="8ba52797ccbd131dce69b96288f525b0d55dee5de4008733f7a5a51deb831c10"; - }; - buildInputs = [ libX11 imake gccmakedep ]; -in - -stdenv.mkDerivation { - inherit (s) name version; - inherit buildInputs; src = fetchurl { - inherit (s) url sha256; + url = "http://www.xskat.de/xskat-${version }.tar.gz"; + sha256 = "8ba52797ccbd131dce69b96288f525b0d55dee5de4008733f7a5a51deb831c10"; }; + preInstall = '' sed -i Makefile \ -e "s|.* BINDIR .*| BINDIR = $out/bin|" \ -e "s|.* MANPATH .*| MANPATH = $out/man|" ''; + installTargets = [ "install" "install.man" ]; - meta = { - inherit (s) version; - description = ''Famous german card game''; - platforms = stdenv.lib.platforms.unix; - license = stdenv.lib.licenses.free; - longDescription = ''Play the german card game Skat against the AI or over IRC.''; + + meta = with lib; { + description = "Famous german card game"; + platforms = platforms.unix; + license = licenses.free; + longDescription = "Play the german card game Skat against the AI or over IRC."; homepage = "http://www.xskat.de/"; }; } diff --git a/pkgs/games/xsnow/default.nix b/pkgs/games/xsnow/default.nix index c64d8bf568f..ba0fcf784f4 100644 --- a/pkgs/games/xsnow/default.nix +++ b/pkgs/games/xsnow/default.nix @@ -1,26 +1,26 @@ -{ stdenv, fetchurl, libXt, libXpm, libXext, imake, gccmakedep }: +{ lib, stdenv, fetchurl, pkg-config, libxml2, gtk3-x11, libXt, libXpm }: stdenv.mkDerivation rec { - - version = "1.42"; pname = "xsnow"; + version = "3.3.0"; src = fetchurl { - url = "https://janswaal.home.xs4all.nl/Xsnow/${pname}-${version}.tar.gz"; - sha256 = "06jnbp88wc9i9dbmy7kggplw4hzlx2bhghxijmlhkjlizgqwimyh"; + url = "https://ratrabbit.nl/downloads/xsnow/xsnow-${version}.tar.gz"; + sha256 = "1xnpqbamhglv7xsxzlrlpvsz6bbzlrvdpn5x2n9baww9kcrkbwjg"; }; - nativeBuildInputs = [ imake gccmakedep ]; - buildInputs = [ - libXt libXpm libXext - ]; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gtk3-x11 libxml2 libXt libXpm ]; + + makeFlags = [ "gamesdir=$(out)/bin" ]; - makeFlags = [ "BINDIR=$(out)/bin" "MANPATH=$(out)/share/man" ]; + enableParallelBuilding = true; - meta = { + meta = with lib; { description = "An X-windows application that will let it snow on the root, in between and on windows"; - homepage = "http://janswaal.home.xs4all.nl/Xsnow/"; - license = stdenv.lib.licenses.unfree; - maintainers = [ stdenv.lib.maintainers.robberer ]; + homepage = "https://ratrabbit.nl/ratrabbit/xsnow/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ robberer ]; + platforms = platforms.unix; }; } diff --git a/pkgs/games/xsok/default.nix b/pkgs/games/xsok/default.nix index 30579e399b8..bb749b57d01 100644 --- a/pkgs/games/xsok/default.nix +++ b/pkgs/games/xsok/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, libX11, imake, libXt, libXaw, libXpm, libXext +{lib, stdenv, fetchurl, libX11, imake, libXt, libXaw, libXpm, libXext , withNethackLevels ? true }: stdenv.mkDerivation rec { @@ -31,17 +31,16 @@ stdenv.mkDerivation rec { makeFlags = ["BINDIR=$(out)/bin"]; - postInstall = stdenv.lib.optionalString withNethackLevels '' + postInstall = lib.optionalString withNethackLevels '' gzip < ${nethackLevels} > "$out/share/games/lib/xsok/Nethack.def.gz" echo Nethack > "$out/share/games/lib/xsok/gametypes" ''; meta = { - inherit version; description = "A generic Sokoban game for X11"; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = [stdenv.lib.maintainers.raskin]; - platforms = stdenv.lib.platforms.unix; + license = lib.licenses.gpl2Plus; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.unix; homepage = "https://tracker.debian.org/pkg/xsok"; }; } diff --git a/pkgs/games/xsokoban/default.nix b/pkgs/games/xsokoban/default.nix index 3f6062c4f68..68b47e6225a 100644 --- a/pkgs/games/xsokoban/default.nix +++ b/pkgs/games/xsokoban/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, libX11, xorgproto, libXpm, libXt }: +{ lib, stdenv, fetchurl, libX11, xorgproto, libXpm, libXt }: stdenv.mkDerivation rec { pname = "xsokoban"; @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { mkdir -p $out/bin $out/share $out/man/man1 $out/lib ''; - meta = with stdenv.lib; { + meta = with lib; { description = "X sokoban"; license = licenses.publicDomain; maintainers = [ maintainers.raskin ]; diff --git a/pkgs/games/xtris/default.nix b/pkgs/games/xtris/default.nix index c9421b23a82..e6da0c6f17c 100644 --- a/pkgs/games/xtris/default.nix +++ b/pkgs/games/xtris/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchzip, xorg }: +{ lib, stdenv, fetchzip, xorg }: stdenv.mkDerivation rec { pname = "xtris"; version = "1.15"; @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { ''; buildInputs = [ xorg.libX11 ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A multi-player version of the classical game of Tetris, for the X Window system"; homepage = "https://web.archive.org/web/20120315061213/http://www.iagora.com/~espel/xtris/xtris.html"; license = licenses.gpl2; diff --git a/pkgs/games/zandronum/default.nix b/pkgs/games/zandronum/default.nix index e7200ff22e9..58aa6daeece 100644 --- a/pkgs/games/zandronum/default.nix +++ b/pkgs/games/zandronum/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchhg, cmake, pkgconfig, makeWrapper, callPackage +{ stdenv, lib, fetchhg, cmake, pkg-config, makeWrapper, callPackage , soundfont-fluid, SDL, libGL, glew, bzip2, zlib, libjpeg, fluidsynth, openssl, gtk2, python3, libgme , serverOnly ? false }: @@ -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"; }; @@ -32,7 +32,7 @@ in stdenv.mkDerivation rec { buildInputs = [ openssl bzip2 zlib SDL libjpeg sqlite libgme ] ++ lib.optionals (!serverOnly) [ libGL glew fmod fluidsynth gtk2 ]; - nativeBuildInputs = [ cmake pkgconfig makeWrapper python3 ]; + nativeBuildInputs = [ cmake pkg-config makeWrapper python3 ]; preConfigure = '' ln -s ${sqlite}/* sqlite/ @@ -51,8 +51,6 @@ in stdenv.mkDerivation rec { then [ "-DSERVERONLY=ON" ] else [ "-DFMOD_LIBRARY=${fmod}/lib/libfmodex.so" ]); - enableParallelBuilding = true; - hardeningDisable = [ "format" ]; installPhase = '' @@ -74,7 +72,7 @@ in stdenv.mkDerivation rec { inherit fmod sqlite; }; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://zandronum.com/"; description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software"; maintainers = with maintainers; [ lassulus MP2E ]; diff --git a/pkgs/games/zandronum/fmod.nix b/pkgs/games/zandronum/fmod.nix index 5eebcd4a38e..59075d69c75 100644 --- a/pkgs/games/zandronum/fmod.nix +++ b/pkgs/games/zandronum/fmod.nix @@ -1,8 +1,8 @@ -{ stdenv, lib, fetchurl, alsaLib, libpulseaudio, undmg }: +{ stdenv, lib, fetchurl, alsa-lib, libpulseaudio, undmg }: let - bits = stdenv.lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") "64"; - libPath = lib.makeLibraryPath [ stdenv.cc.cc alsaLib libpulseaudio ]; + bits = lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") "64"; + libPath = lib.makeLibraryPath [ stdenv.cc.cc alsa-lib libpulseaudio ]; in stdenv.mkDerivation rec { @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { cp -r api/inc $out/include ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Programming library and toolkit for the creation and playback of interactive audio"; homepage = "http://www.fmod.org/"; license = licenses.unfreeRedistributable; diff --git a/pkgs/games/zandronum/sqlite.nix b/pkgs/games/zandronum/sqlite.nix index 7f4556c8751..e38dedbb7f7 100644 --- a/pkgs/games/zandronum/sqlite.nix +++ b/pkgs/games/zandronum/sqlite.nix @@ -1,15 +1,14 @@ { lib, stdenv, fetchurl }: stdenv.mkDerivation { - name = "sqlite-zandronum-3.0"; + pname = "sqlite-zandronum"; + version = "3.0"; src = fetchurl { url = "https://www.sqlite.org/2017/sqlite-autoconf-3180000.tar.gz"; sha256 = "0p5cx7nbjxk7glcm277ypi5w4gv144qazw79ql47svlpccj62mrp"; }; - phases = [ "unpackPhase" "buildPhase" ]; - buildPhase = '' mkdir -p $out cp sqlite3.c $out/ @@ -20,7 +19,7 @@ stdenv.mkDerivation { meta = { homepage = "http://www.sqlite.org/"; description = "A single C code file, named sqlite3.c, that contains all C code for the core SQLite library and the FTS3 and RTREE extensions"; - platforms = stdenv.lib.platforms.unix; + platforms = lib.platforms.unix; maintainers = [ lib.maintainers.lassulus ]; }; } diff --git a/pkgs/games/zangband/default.nix b/pkgs/games/zangband/default.nix index 0722e4bbbf9..e8daa9a2025 100644 --- a/pkgs/games/zangband/default.nix +++ b/pkgs/games/zangband/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, ncurses, flex, bison, autoconf, automake, m4, coreutils }: +{ lib, stdenv, fetchurl, ncurses, flex, bison, autoconf, automake, m4, coreutils }: stdenv.mkDerivation rec { pname = "zangband"; @@ -52,7 +52,7 @@ stdenv.mkDerivation rec { meta = { description = "Rogue-like game"; - license = stdenv.lib.licenses.unfree; + license = lib.licenses.unfree; broken = true; # broken in runtime, will not get pass character generation }; } diff --git a/pkgs/games/zaz/default.nix b/pkgs/games/zaz/default.nix index 9d42cfd6896..1925d641717 100644 --- a/pkgs/games/zaz/default.nix +++ b/pkgs/games/zaz/default.nix @@ -1,6 +1,6 @@ -{ stdenv +{ lib, stdenv , fetchurl -, pkgconfig +, pkg-config , SDL , SDL_image , mesa @@ -13,15 +13,15 @@ stdenv.mkDerivation rec { pname = "zaz"; - version = "1.0.0"; + version = "1.0.1"; src = fetchurl { - url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2"; - sha256 = "15q3kxzl71m50byw37dshfsx5wp240ywah19ccmqmqarcldcqcp3"; + url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz"; + sha256 = "1r3bmwny05zzmdalxm5ah2rray0nnsg1w00r30p47q6x2lpwj8ml"; }; nativeBuildInputs = [ - pkgconfig + pkg-config ]; buildInputs = [ SDL.dev @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { "ZAZ_LIBS+=-lvorbisfile" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A puzzle game about arranging balls in triplets, like Luxor, Zuma, or Puzzle Bobble"; homepage = "http://zaz.sourceforge.net/"; license = licenses.gpl3; diff --git a/pkgs/games/zdoom/bcc-git.nix b/pkgs/games/zdoom/bcc-git.nix index ae7a4ae6f42..aa3fdeca183 100644 --- a/pkgs/games/zdoom/bcc-git.nix +++ b/pkgs/games/zdoom/bcc-git.nix @@ -1,7 +1,8 @@ -{ stdenv, fetchFromGitHub }: +{ lib, stdenv, fetchFromGitHub }: stdenv.mkDerivation { - name = "doom-bcc-git-0.8.0.2018.01.04"; + pname = "doom-bcc"; + version = "unstable-2018-01-04"; src = fetchFromGitHub { owner = "wormt"; @@ -11,7 +12,7 @@ stdenv.mkDerivation { }; enableParallelBuilding = true; - makeFlags = ["CC=cc"]; + makeFlags = ["CC=${stdenv.cc.targetPrefix}cc"]; patches = [ ./bcc-warning-fix.patch ]; @@ -22,7 +23,7 @@ stdenv.mkDerivation { cp -av lib $out/lib/bcc ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Compiler for Doom/Hexen scripts (ACS, BCS)"; homepage = "https://github.com/wormt/bcc"; license = licenses.mit; diff --git a/pkgs/games/zdoom/default.nix b/pkgs/games/zdoom/default.nix index 646021eb2fc..3a31f8fdfb5 100644 --- a/pkgs/games/zdoom/default.nix +++ b/pkgs/games/zdoom/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, p7zip, cmake +{ lib, stdenv, fetchurl, p7zip, cmake , SDL2, openal, fluidsynth, soundfont-fluid, bzip2, zlib, libjpeg, game-music-emu , libsndfile, mpg123 }: @@ -25,8 +25,6 @@ stdenv.mkDerivation rec { sourceRoot = "."; - enableParallelBuilding = true; - NIX_CFLAGS_LINK = [ "-lopenal" "-lfluidsynth" ]; preConfigure = '' @@ -45,7 +43,7 @@ stdenv.mkDerivation rec { ln -s $out/lib/zdoom/zdoom $out/bin/zdoom ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://zdoom.org/"; description = "Enhanced port of the official DOOM source code"; # Doom source license, MAME license diff --git a/pkgs/games/zdoom/zdbsp.nix b/pkgs/games/zdoom/zdbsp.nix index e86ebd6dbc2..e688b908e12 100644 --- a/pkgs/games/zdoom/zdbsp.nix +++ b/pkgs/games/zdoom/zdbsp.nix @@ -1,27 +1,32 @@ -{ stdenv, fetchurl, cmake, unzip, zlib }: +{ lib, stdenv, fetchzip, cmake, zlib }: stdenv.mkDerivation rec { pname = "zdbsp"; version = "1.19"; - src = fetchurl { + src = fetchzip { url = "https://zdoom.org/files/utils/zdbsp/zdbsp-${version}-src.zip"; - sha256 = "0j82q7g7hgvnahk6gdyhmn9880mqii3b4agqc98f5xaj3kxmd2dr"; + sha256 = "1j6k0appgjjj3ffbll9hy9nnbqr17szd1s66q08zrbkfqf6g8f0d"; + stripRoot = false; }; - nativeBuildInputs = [cmake unzip]; - buildInputs = [zlib]; - sourceRoot = "."; - enableParallelBuilding = true; + nativeBuildInputs = [ + cmake + ]; + + buildInputs = [ + zlib + ]; + installPhase = '' install -Dm755 zdbsp $out/bin/zdbsp ''; - meta = with stdenv.lib; { + meta = with lib; { description = "ZDoom's internal node builder for DOOM maps"; homepage = "https://zdoom.org/wiki/ZDBSP"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ertes]; - platforms = platforms.linux; + maintainers = with maintainers; [ lassulus siraben ]; + platforms = platforms.unix; }; } diff --git a/pkgs/games/zod/0002-add-scaling-factor-to-source.patch b/pkgs/games/zod/0002-add-scaling-factor-to-source.patch new file mode 100644 index 00000000000..bdcaddaabbb --- /dev/null +++ b/pkgs/games/zod/0002-add-scaling-factor-to-source.patch @@ -0,0 +1,161 @@ +Date: Mon, 17 May 2021 18:28:54 +0200 +Subject: [PATCH 2/2] add scaling factor to source + +--- + zod_launcher_src/zod_launcherFrm.cpp | 84 ++++++++++++++-------------- + 1 file changed, 42 insertions(+), 42 deletions(-) + +diff --git a/zod_launcher_src/zod_launcherFrm.cpp b/zod_launcher_src/zod_launcherFrm.cpp +index 54bb9aa..de268f2 100644 +--- a/zod_launcher_src/zod_launcherFrm.cpp ++++ b/zod_launcher_src/zod_launcherFrm.cpp +@@ -83,15 +83,15 @@ void zod_launcherFrm::CreateGUIControls() + //Add the custom code before or after the blocks + ////GUI Items Creation Start + +- WxButton4 = new wxButton(this, ID_WXBUTTON4, wxT("Previous Settings"), wxPoint(280, 16), wxSize(249, 25), 0, wxDefaultValidator, wxT("WxButton4")); ++ WxButton4 = new wxButton(this, ID_WXBUTTON4, wxT("Previous Settings"), wxPoint(@scalingFactor@*280,@scalingFactor@*16), wxSize(@scalingFactor@*249,@scalingFactor@*25), 0, wxDefaultValidator, wxT("WxButton4")); + +- WxStaticText11 = new wxStaticText(this, ID_WXSTATICTEXT11, wxT("Login Password::"), wxPoint(280, 120), wxDefaultSize, 0, wxT("WxStaticText11")); ++ WxStaticText11 = new wxStaticText(this, ID_WXSTATICTEXT11, wxT("Login Password::"), wxPoint(@scalingFactor@*280,@scalingFactor@*120), wxDefaultSize, 0, wxT("WxStaticText11")); + +- WxStaticText10 = new wxStaticText(this, ID_WXSTATICTEXT10, wxT("Login Name::"), wxPoint(280, 96), wxDefaultSize, 0, wxT("WxStaticText10")); ++ WxStaticText10 = new wxStaticText(this, ID_WXSTATICTEXT10, wxT("Login Name::"), wxPoint(@scalingFactor@*280,@scalingFactor@*96), wxDefaultSize, 0, wxT("WxStaticText10")); + +- WxEdit9 = new wxTextCtrl(this, ID_WXEDIT9, wxT(""), wxPoint(384, 120), wxSize(145, 17), 0, wxDefaultValidator, wxT("WxEdit9")); ++ WxEdit9 = new wxTextCtrl(this, ID_WXEDIT9, wxT(""), wxPoint(@scalingFactor@*384,@scalingFactor@*120), wxSize(@scalingFactor@*145,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit9")); + +- WxEdit8 = new wxTextCtrl(this, ID_WXEDIT8, wxT(""), wxPoint(384, 96), wxSize(145, 17), 0, wxDefaultValidator, wxT("WxEdit8")); ++ WxEdit8 = new wxTextCtrl(this, ID_WXEDIT8, wxT(""), wxPoint(@scalingFactor@*384,@scalingFactor@*96), wxSize(@scalingFactor@*145,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit8")); + + WxMenuBar1 = new wxMenuBar(); + wxMenu *ID_MNU_FILE_1001_Mnu_Obj = new wxMenu(0); +@@ -103,45 +103,45 @@ void zod_launcherFrm::CreateGUIControls() + WxMenuBar1->Append(ID_MNU_ABOUT_1003_Mnu_Obj, wxT("About")); + SetMenuBar(WxMenuBar1); + +- WxCheckBox11 = new wxCheckBox(this, ID_WXCHECKBOX11, wxT("yellow"), wxPoint(152, 208), wxSize(49, 17), 0, wxDefaultValidator, wxT("WxCheckBox11")); ++ WxCheckBox11 = new wxCheckBox(this, ID_WXCHECKBOX11, wxT("yellow"), wxPoint(@scalingFactor@*152,@scalingFactor@*208), wxSize(@scalingFactor@*49,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox11")); + +- WxCheckBox10 = new wxCheckBox(this, ID_WXCHECKBOX10, wxT("green"), wxPoint(104, 208), wxSize(49, 17), 0, wxDefaultValidator, wxT("WxCheckBox10")); ++ WxCheckBox10 = new wxCheckBox(this, ID_WXCHECKBOX10, wxT("green"), wxPoint(@scalingFactor@*104,@scalingFactor@*208), wxSize(@scalingFactor@*49,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox10")); + +- WxCheckBox9 = new wxCheckBox(this, ID_WXCHECKBOX9, wxT("blue"), wxPoint(56, 208), wxSize(41, 17), 0, wxDefaultValidator, wxT("WxCheckBox9")); ++ WxCheckBox9 = new wxCheckBox(this, ID_WXCHECKBOX9, wxT("blue"), wxPoint(@scalingFactor@*56,@scalingFactor@*208), wxSize(@scalingFactor@*41,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox9")); + +- WxCheckBox8 = new wxCheckBox(this, ID_WXCHECKBOX8, wxT("red"), wxPoint(8, 208), wxSize(41, 17), 0, wxDefaultValidator, wxT("WxCheckBox8")); ++ WxCheckBox8 = new wxCheckBox(this, ID_WXCHECKBOX8, wxT("red"), wxPoint(@scalingFactor@*8,@scalingFactor@*208), wxSize(@scalingFactor@*41,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox8")); + +- WxStaticBox5 = new wxStaticBox(this, ID_WXSTATICBOX5, wxT("AI Players"), wxPoint(0, 192), wxSize(265, 49)); ++ WxStaticBox5 = new wxStaticBox(this, ID_WXSTATICBOX5, wxT("AI Players"), wxPoint(@scalingFactor@*0,@scalingFactor@*192), wxSize(@scalingFactor@*265,@scalingFactor@*49)); + +- WxCheckBox7 = new wxCheckBox(this, ID_WXCHECKBOX7, wxT("No Music"), wxPoint(376, 192), wxSize(65, 17), 0, wxDefaultValidator, wxT("WxCheckBox7")); ++ WxCheckBox7 = new wxCheckBox(this, ID_WXCHECKBOX7, wxT("No Music"), wxPoint(@scalingFactor@*376,@scalingFactor@*192), wxSize(@scalingFactor@*65,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox7")); + +- WxCheckBox6 = new wxCheckBox(this, ID_WXCHECKBOX6, wxT("No OpenGL"), wxPoint(280, 208), wxSize(81, 17), 0, wxDefaultValidator, wxT("WxCheckBox6")); ++ WxCheckBox6 = new wxCheckBox(this, ID_WXCHECKBOX6, wxT("No OpenGL"), wxPoint(@scalingFactor@*280,@scalingFactor@*208), wxSize(@scalingFactor@*81,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox6")); + +- WxEdit7 = new wxTextCtrl(this, ID_WXEDIT7, wxT(""), wxPoint(112, 160), wxSize(145, 17), 0, wxDefaultValidator, wxT("WxEdit7")); ++ WxEdit7 = new wxTextCtrl(this, ID_WXEDIT7, wxT(""), wxPoint(@scalingFactor@*112,@scalingFactor@*160), wxSize(@scalingFactor@*145,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit7")); + +- WxStaticText9 = new wxStaticText(this, ID_WXSTATICTEXT9, wxT("Settings Filename::"), wxPoint(8, 160), wxDefaultSize, 0, wxT("WxStaticText9")); ++ WxStaticText9 = new wxStaticText(this, ID_WXSTATICTEXT9, wxT("Settings Filename::"), wxPoint(@scalingFactor@*8,@scalingFactor@*160), wxDefaultSize, 0, wxT("WxStaticText9")); + +- WxButton3 = new wxButton(this, ID_WXBUTTON3, wxT("Launch Zod Engine"), wxPoint(208, 304), wxSize(121, 17), 0, wxDefaultValidator, wxT("WxButton3")); ++ WxButton3 = new wxButton(this, ID_WXBUTTON3, wxT("Launch Zod Engine"), wxPoint(@scalingFactor@*208,@scalingFactor@*304), wxSize(@scalingFactor@*121,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxButton3")); + +- WxStaticText8 = new wxStaticText(this, ID_WXSTATICTEXT8, wxT("--- Command Arguments ---"), wxPoint(8, 264), wxSize(520, 17), wxALIGN_CENTRE | wxST_NO_AUTORESIZE, wxT("WxStaticText8")); ++ WxStaticText8 = new wxStaticText(this, ID_WXSTATICTEXT8, wxT("--- Command Arguments ---"), wxPoint(@scalingFactor@*8,@scalingFactor@*264), wxSize(@scalingFactor@*520,@scalingFactor@*17), wxALIGN_CENTRE | wxST_NO_AUTORESIZE, wxT("WxStaticText8")); + +- WxEdit6 = new wxTextCtrl(this, ID_WXEDIT6, wxT(""), wxPoint(8, 280), wxSize(521, 17), 0, wxDefaultValidator, wxT("WxEdit6")); ++ WxEdit6 = new wxTextCtrl(this, ID_WXEDIT6, wxT(""), wxPoint(@scalingFactor@*8,@scalingFactor@*280), wxSize(@scalingFactor@*521,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit6")); + +- WxStaticBox4 = new wxStaticBox(this, ID_WXSTATICBOX4, wxT("Launch Game"), wxPoint(0, 248), wxSize(537, 81)); ++ WxStaticBox4 = new wxStaticBox(this, ID_WXSTATICBOX4, wxT("Launch Game"), wxPoint(@scalingFactor@*0,@scalingFactor@*248), wxSize(@scalingFactor@*537,@scalingFactor@*81)); + +- WxCheckBox5 = new wxCheckBox(this, ID_WXCHECKBOX5, wxT("Bland Cursor"), wxPoint(448, 208), wxSize(81, 17), 0, wxDefaultValidator, wxT("WxCheckBox5")); ++ WxCheckBox5 = new wxCheckBox(this, ID_WXCHECKBOX5, wxT("Bland Cursor"), wxPoint(@scalingFactor@*448,@scalingFactor@*208), wxSize(@scalingFactor@*81,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox5")); + +- WxCheckBox4 = new wxCheckBox(this, ID_WXCHECKBOX4, wxT("No Sound"), wxPoint(448, 192), wxSize(73, 17), 0, wxDefaultValidator, wxT("WxCheckBox4")); ++ WxCheckBox4 = new wxCheckBox(this, ID_WXCHECKBOX4, wxT("No Sound"), wxPoint(@scalingFactor@*448,@scalingFactor@*192), wxSize(@scalingFactor@*73,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox4")); + +- WxCheckBox3 = new wxCheckBox(this, ID_WXCHECKBOX3, wxT("Is Windowed"), wxPoint(280, 192), wxSize(89, 17), 0, wxDefaultValidator, wxT("WxCheckBox3")); ++ WxCheckBox3 = new wxCheckBox(this, ID_WXCHECKBOX3, wxT("Is Windowed"), wxPoint(@scalingFactor@*280,@scalingFactor@*192), wxSize(@scalingFactor@*89,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox3")); + +- WxStaticText7 = new wxStaticText(this, ID_WXSTATICTEXT7, wxT("x"), wxPoint(448, 168), wxSize(18, 17), wxALIGN_CENTRE | wxST_NO_AUTORESIZE, wxT("WxStaticText7")); ++ WxStaticText7 = new wxStaticText(this, ID_WXSTATICTEXT7, wxT("x"), wxPoint(@scalingFactor@*448,@scalingFactor@*168), wxSize(@scalingFactor@*18,@scalingFactor@*17), wxALIGN_CENTRE | wxST_NO_AUTORESIZE, wxT("WxStaticText7")); + +- WxEdit5 = new wxTextCtrl(this, ID_WXEDIT5, wxT("484"), wxPoint(472, 168), wxSize(57, 17), 0, wxDefaultValidator, wxT("WxEdit5")); ++ WxEdit5 = new wxTextCtrl(this, ID_WXEDIT5, wxT("484"), wxPoint(@scalingFactor@*472,@scalingFactor@*168), wxSize(@scalingFactor@*57,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit5")); + +- WxEdit4 = new wxTextCtrl(this, ID_WXEDIT4, wxT("800"), wxPoint(384, 168), wxSize(57, 17), 0, wxDefaultValidator, wxT("WxEdit4")); ++ WxEdit4 = new wxTextCtrl(this, ID_WXEDIT4, wxT("800"), wxPoint(@scalingFactor@*384,@scalingFactor@*168), wxSize(@scalingFactor@*57,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit4")); + +- WxStaticText6 = new wxStaticText(this, ID_WXSTATICTEXT6, wxT("Resolution::"), wxPoint(280, 168), wxDefaultSize, 0, wxT("WxStaticText6")); ++ WxStaticText6 = new wxStaticText(this, ID_WXSTATICTEXT6, wxT("Resolution::"), wxPoint(@scalingFactor@*280,@scalingFactor@*168), wxDefaultSize, 0, wxT("WxStaticText6")); + + wxArrayString arrayStringFor_WxChoice1; + arrayStringFor_WxChoice1.Add(wxT("null")); +@@ -149,42 +149,42 @@ void zod_launcherFrm::CreateGUIControls() + arrayStringFor_WxChoice1.Add(wxT("blue")); + arrayStringFor_WxChoice1.Add(wxT("green")); + arrayStringFor_WxChoice1.Add(wxT("yellow")); +- WxChoice1 = new wxChoice(this, ID_WXCHOICE1, wxPoint(384, 144), wxSize(145, 21), arrayStringFor_WxChoice1, 0, wxDefaultValidator, wxT("WxChoice1")); ++ WxChoice1 = new wxChoice(this, ID_WXCHOICE1, wxPoint(@scalingFactor@*384,@scalingFactor@*144), wxSize(@scalingFactor@*145,@scalingFactor@*21), arrayStringFor_WxChoice1, 0, wxDefaultValidator, wxT("WxChoice1")); + WxChoice1->SetSelection(1); + +- WxStaticText5 = new wxStaticText(this, ID_WXSTATICTEXT5, wxT("Player Team::"), wxPoint(280, 144), wxDefaultSize, 0, wxT("WxStaticText5")); ++ WxStaticText5 = new wxStaticText(this, ID_WXSTATICTEXT5, wxT("Player Team::"), wxPoint(@scalingFactor@*280,@scalingFactor@*144), wxDefaultSize, 0, wxT("WxStaticText5")); + +- WxEdit3 = new wxTextCtrl(this, ID_WXEDIT3, wxT(""), wxPoint(384, 72), wxSize(145, 17), 0, wxDefaultValidator, wxT("WxEdit3")); ++ WxEdit3 = new wxTextCtrl(this, ID_WXEDIT3, wxT(""), wxPoint(@scalingFactor@*384,@scalingFactor@*72), wxSize(@scalingFactor@*145,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit3")); + +- WxStaticText4 = new wxStaticText(this, ID_WXSTATICTEXT4, wxT("Player Name::"), wxPoint(280, 72), wxDefaultSize, 0, wxT("WxStaticText4")); ++ WxStaticText4 = new wxStaticText(this, ID_WXSTATICTEXT4, wxT("Player Name::"), wxPoint(@scalingFactor@*280,@scalingFactor@*72), wxDefaultSize, 0, wxT("WxStaticText4")); + +- WxStaticBox3 = new wxStaticBox(this, ID_WXSTATICBOX3, wxT("Engine Settings"), wxPoint(272, 56), wxSize(265, 185)); ++ WxStaticBox3 = new wxStaticBox(this, ID_WXSTATICBOX3, wxT("Engine Settings"), wxPoint(@scalingFactor@*272,@scalingFactor@*56), wxSize(@scalingFactor@*265,@scalingFactor@*185)); + +- WxEdit2 = new wxTextCtrl(this, ID_WXEDIT2, wxT(""), wxPoint(112, 136), wxSize(145, 17), 0, wxDefaultValidator, wxT("WxEdit2")); ++ WxEdit2 = new wxTextCtrl(this, ID_WXEDIT2, wxT(""), wxPoint(@scalingFactor@*112,@scalingFactor@*136), wxSize(@scalingFactor@*145,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit2")); + +- WxStaticText3 = new wxStaticText(this, ID_WXSTATICTEXT3, wxT("Map Filename::"), wxPoint(8, 136), wxDefaultSize, 0, wxT("WxStaticText3")); ++ WxStaticText3 = new wxStaticText(this, ID_WXSTATICTEXT3, wxT("Map Filename::"), wxPoint(@scalingFactor@*8,@scalingFactor@*136), wxDefaultSize, 0, wxT("WxStaticText3")); + +- WxCheckBox2 = new wxCheckBox(this, ID_WXCHECKBOX2, wxT("Filename is a Maplist"), wxPoint(96, 112), wxSize(121, 17), 0, wxDefaultValidator, wxT("WxCheckBox2")); ++ WxCheckBox2 = new wxCheckBox(this, ID_WXCHECKBOX2, wxT("Filename is a Maplist"), wxPoint(@scalingFactor@*96,@scalingFactor@*112), wxSize(@scalingFactor@*121,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox2")); + +- WxCheckBox1 = new wxCheckBox(this, ID_WXCHECKBOX1, wxT("Is Dedicated"), wxPoint(8, 112), wxSize(89, 17), 0, wxDefaultValidator, wxT("WxCheckBox1")); ++ WxCheckBox1 = new wxCheckBox(this, ID_WXCHECKBOX1, wxT("Is Dedicated"), wxPoint(@scalingFactor@*8,@scalingFactor@*112), wxSize(@scalingFactor@*89,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox1")); + +- WxStaticText2 = new wxStaticText(this, ID_WXSTATICTEXT2, wxT("----- OR -----"), wxPoint(8, 96), wxSize(249, 17), wxALIGN_CENTRE | wxST_NO_AUTORESIZE, wxT("WxStaticText2")); ++ WxStaticText2 = new wxStaticText(this, ID_WXSTATICTEXT2, wxT("----- OR -----"), wxPoint(@scalingFactor@*8,@scalingFactor@*96), wxSize(@scalingFactor@*249,@scalingFactor@*17), wxALIGN_CENTRE | wxST_NO_AUTORESIZE, wxT("WxStaticText2")); + +- WxStaticText1 = new wxStaticText(this, ID_WXSTATICTEXT1, wxT("Connect Address::"), wxPoint(8, 72), wxDefaultSize, 0, wxT("WxStaticText1")); ++ WxStaticText1 = new wxStaticText(this, ID_WXSTATICTEXT1, wxT("Connect Address::"), wxPoint(@scalingFactor@*8,@scalingFactor@*72), wxDefaultSize, 0, wxT("WxStaticText1")); + +- WxEdit1 = new wxTextCtrl(this, ID_WXEDIT1, wxT(""), wxPoint(112, 72), wxSize(145, 17), 0, wxDefaultValidator, wxT("WxEdit1")); ++ WxEdit1 = new wxTextCtrl(this, ID_WXEDIT1, wxT(""), wxPoint(@scalingFactor@*112,@scalingFactor@*72), wxSize(@scalingFactor@*145,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit1")); + +- WxButton2 = new wxButton(this, ID_WXBUTTON2, wxT("Nighsoft Server"), wxPoint(136, 16), wxSize(121, 25), 0, wxDefaultValidator, wxT("WxButton2")); ++ WxButton2 = new wxButton(this, ID_WXBUTTON2, wxT("Nighsoft Server"), wxPoint(@scalingFactor@*136,@scalingFactor@*16), wxSize(@scalingFactor@*121,@scalingFactor@*25), 0, wxDefaultValidator, wxT("WxButton2")); + +- WxButton1 = new wxButton(this, ID_WXBUTTON1, wxT("Local Game"), wxPoint(8, 16), wxSize(121, 25), 0, wxDefaultValidator, wxT("WxButton1")); ++ WxButton1 = new wxButton(this, ID_WXBUTTON1, wxT("Local Game"), wxPoint(@scalingFactor@*8,@scalingFactor@*16), wxSize(@scalingFactor@*121,@scalingFactor@*25), 0, wxDefaultValidator, wxT("WxButton1")); + +- WxStaticBox2 = new wxStaticBox(this, ID_WXSTATICBOX2, wxT("Connection Settings"), wxPoint(0, 56), wxSize(265, 129)); ++ WxStaticBox2 = new wxStaticBox(this, ID_WXSTATICBOX2, wxT("Connection Settings"), wxPoint(@scalingFactor@*0,@scalingFactor@*56), wxSize(@scalingFactor@*265,@scalingFactor@*129)); + +- WxStaticBox1 = new wxStaticBox(this, ID_WXSTATICBOX1, wxT("Preset Settings"), wxPoint(0, 0), wxSize(537, 49)); ++ WxStaticBox1 = new wxStaticBox(this, ID_WXSTATICBOX1, wxT("Preset Settings"), wxPoint(@scalingFactor@*0,@scalingFactor@*0), wxSize(@scalingFactor@*537,@scalingFactor@*49)); + + SetTitle(wxT("The Zod Launcher")); + SetIcon(wxNullIcon); +- SetSize(8,8,545,376); ++ SetSize(8,8,@scalingFactor@*545,@scalingFactor@*376); + Center(); + + ////GUI Items Creation End +-- +2.29.3 + diff --git a/pkgs/games/zod/default.nix b/pkgs/games/zod/default.nix index d50218af241..6bf24ed6cb9 100644 --- a/pkgs/games/zod/default.nix +++ b/pkgs/games/zod/default.nix @@ -1,45 +1,110 @@ -{ fetchurl, stdenv, unrar, unzip, SDL, SDL_image, SDL_ttf, SDL_mixer -, libmysqlclient, makeWrapper }: - -stdenv.mkDerivation { - name = "zod-engine-2011-03-18"; - - src = fetchurl { - url = "mirror://sourceforge/zod/zod_src-2011-03-18.zip"; - sha256 = "00ny7a1yfn9zgl7q1ys27qafwc92dzxv07wjxl8nxa4f98al2g4n"; +{ lib +, config +, fetchzip +, stdenv +, SDL +, SDL_image +, SDL_ttf +, SDL_mixer +, libmysqlclient +, wxGTK +, symlinkJoin +, runCommandLocal +, makeWrapper +, coreutils +, scalingFactor ? 2 # this is to resize the fixed-size zod_launcher window +, substituteAll +}: +let + name = "zod-engine"; + version = "2011-09-06"; + src = fetchzip { + url = "mirror://sourceforge/zod/linux_releases/zod_linux-${version}.tar.gz"; + sha256 = "017v96aflrv07g8j8zk9mq8f8rqxl5228rjff5blq8dxpsv1sx7h"; }; - - srcAssets = fetchurl { - url = "mirror://sourceforge/zod/zod_assets-2011-03-12.rar"; - sha256 = "0gmg4ppr4y6ck04mandlp2fmdcyssmck999m012jx5v1rm57g2hn"; - }; - + nativeBuildInputs = [ + makeWrapper + ]; + buildInputs = [ + SDL + SDL_image + SDL_ttf + SDL_mixer + libmysqlclient + wxGTK + coreutils + ]; hardeningDisable = [ "format" ]; - - unpackPhase = '' - mkdir src - pushd src - unzip $src - popd - sourceRoot=`pwd`/src - ''; - - buildInputs = [ unrar unzip SDL SDL_image SDL_ttf SDL_mixer libmysqlclient makeWrapper ]; - NIX_LDFLAGS = "-L${libmysqlclient}/lib/mysql"; - - installPhase = '' - mkdir -p $out/bin $out/share/zod - pushd $out/share/zod - unrar x $srcAssets - popd - cp zod $out/bin - wrapProgram $out/bin/zod --run "cd $out/share/zod" - ''; - - meta = { - description = "Multiplayer remake of ZED"; - homepage = "http://zod.sourceforge.net/"; - license = stdenv.lib.licenses.gpl3Plus; /* Says the web */ + zod_engine = stdenv.mkDerivation { + inherit version src nativeBuildInputs buildInputs hardeningDisable NIX_LDFLAGS; + pname = "${name}-engine"; + enableParallelBuilding = true; + preBuild = "cd zod_src"; + installPhase = '' + mkdir -p $out/bin + install -m755 zod $out/bin/ + wrapProgram $out/bin/zod --run "cd ${zod_assets}/usr/lib/commander-zod" + ''; }; -} + zod_map_editor = stdenv.mkDerivation { + inherit version src nativeBuildInputs buildInputs hardeningDisable NIX_LDFLAGS; + pname = "${name}-map_editor"; + enableParallelBuilding = true; + preBuild = "cd zod_src"; + makeFlags = [ "map_editor" ]; + installPhase = '' + mkdir -p $out/bin + install -m755 zod_map_editor $out/bin + wrapProgram $out/bin/zod_map_editor --run "cd ${zod_assets}/usr/lib/commander-zod" + ''; + }; + zod_launcher = stdenv.mkDerivation { + inherit version src nativeBuildInputs buildInputs zod_engine zod_map_editor; + pname = "${name}-launcher"; + # This is necessary because the zod_launcher has terrible fixed-width window + # the Idea is to apply the scalingFactor to all positions and sizes and I tested 1,2,3 and 4 + # 2,3,4 look acceptable on my 4k monitor and 1 is unreadable. + # also the ./ in the run command is removed to have easier time starting the game + patches = [ + (substituteAll { + inherit scalingFactor; + src=./0002-add-scaling-factor-to-source.patch; + }) + ]; + postPatch = '' + substituteInPlace zod_launcher_src/zod_launcherFrm.cpp \ + --replace 'message = wxT("./zod");' 'message = wxT("zod");' + ''; + preBuild = "cd zod_launcher_src"; + installPhase = '' + mkdir -p $out/bin + install -m755 zod_launcher $out/bin + ''; + }; + zod_assets = runCommandLocal "${name}-assets" {} '' + mkdir -p $out/usr/lib/commander-zod{,blank_maps} + cp -r ${src}/assets $out/usr/lib/commander-zod/assets + for i in ${src}/*.map ${src}/*.txt; do + install -m644 $i $out/usr/lib/commander-zod + done + for map in ${src}/blank_maps/*; do + install -m644 $map $out/usr/lib/commander-zod/blank_maps + done + ''; +in + symlinkJoin { + inherit name; + paths = [ + zod_engine + zod_launcher + zod_map_editor + zod_assets + ]; + meta = with lib; { + description = "Multiplayer remake of ZED"; + homepage = "http://zod.sourceforge.net/"; + maintainers = with maintainers; [ zeri ]; + license = licenses.gpl3Plus; /* Says the website */ + }; + } diff --git a/pkgs/games/zoom/default.nix b/pkgs/games/zoom/default.nix index 827fb351f1d..02cfc28ebee 100644 --- a/pkgs/games/zoom/default.nix +++ b/pkgs/games/zoom/default.nix @@ -1,12 +1,13 @@ -{ stdenv, fetchurl, perl, expat, xlibsWrapper, freetype }: +{ lib, stdenv, fetchurl, perl, expat, xlibsWrapper, freetype }: # !!! assert freetype == xorg.freetype stdenv.mkDerivation rec { - name = "zoom-1.1.5"; + pname = "zoom"; + version = "1.1.5"; src = fetchurl { - url = "https://www.logicalshift.co.uk/unix/zoom/${name}.tar.gz"; + url = "https://www.logicalshift.co.uk/unix/zoom/zoom-${version}.tar.gz"; sha256 = "1g6van7f7sg3zfcz80mncnnbccyg2hnm0hq4x558vpsm0lf7z5pj"; }; @@ -14,7 +15,7 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = "-I${freetype}/include/freetype2 -fgnu89-inline"; - meta = with stdenv.lib; { + meta = with lib; { description = "Player for Z-Code, TADS and HUGO stories or games"; longDescription = '' Zoom is a player for Z-Code, TADS and HUGO stories or games. These are |