diff options
Diffstat (limited to 'pkgs/games')
106 files changed, 2011 insertions, 938 deletions
diff --git a/pkgs/games/7kaa/default.nix b/pkgs/games/7kaa/default.nix new file mode 100644 index 0000000000000..2b74306cd2533 --- /dev/null +++ b/pkgs/games/7kaa/default.nix @@ -0,0 +1,79 @@ +{ lib +, stdenv +, gccStdenv +, autoreconfHook +, pkg-config +, fetchurl +, fetchFromGitHub +, openal +, libtool +, enet +, SDL2 +, curl +, gettext +, libiconv +}: + +let + + name = "7kaa"; + versionMajor = "2.15"; + versionMinor = "4p1"; + + music = stdenv.mkDerivation rec { + pname = "${name}-music"; + version = "${versionMajor}"; + + src = fetchurl { + url = "https://www.7kfans.com/downloads/${name}-music-${versionMajor}.tar.bz2"; + sha256 = "sha256-sNdntuJXGaFPXzSpN0SoAi17wkr2YnW+5U38eIaVwcM="; + }; + + installPhase = '' + mkdir -p $out + cp -r * $out/ + ''; + + meta.license = lib.licenses.unfree; + + }; + +in + +gccStdenv.mkDerivation rec { + pname = "${name}"; + version = "v${versionMajor}.${versionMinor}"; + + src = fetchFromGitHub { + owner = "the3dfxdude"; + repo = pname; + rev = "9db2a43e1baee25a44b7aa7e9cedde9a107ed34b"; + sha256 = "sha256-OAKaRuPP0/n8pO3wIUvGKs6n+U+EmZXUTywXYDAan1o="; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ openal enet SDL2 curl gettext libiconv ]; + + preAutoreconf = '' + autoupdate + ''; + + hardeningDisable = lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ "stackprotector" ]; + + postInstall = '' + mkdir $out/share/7kaa/MUSIC + cp -R ${music}/MUSIC $out/share/7kaa/ + cp ${music}/COPYING-Music.txt $out/share/7kaa/MUSIC + cp ${music}/COPYING-Music.txt $out/share/doc/7kaa + ''; + + # Multiplayer is auto-disabled for non-x86 system + + meta = with lib; { + homepage = "https://www.7kfans.com"; + description = "GPL release of the Seven Kingdoms with multiplayer (available only on x86 platforms)"; + license = licenses.gpl2Only; + platforms = platforms.x86_64 ++ platforms.aarch64; + maintainers = with maintainers; [ _1000101 ]; + }; +} diff --git a/pkgs/games/ace-of-penguins/default.nix b/pkgs/games/ace-of-penguins/default.nix new file mode 100644 index 0000000000000..fb15aedc1df85 --- /dev/null +++ b/pkgs/games/ace-of-penguins/default.nix @@ -0,0 +1,78 @@ +{ lib +, stdenv +, fetchurl +, copyDesktopItems +, libX11 +, libXpm +, libpng +, makeDesktopItem +, zlib +}: + +stdenv.mkDerivation rec { + pname = "ace-of-penguins"; + version = "1.4"; + + src = fetchurl { + url = "http://www.delorie.com/store/ace/ace-${version}.tar.gz"; + hash = "sha256-H+47BTOSGkKHPAYj8z2HOgZ7HuxY8scMAUSRRueaTM4="; + }; + + patches = [ + # Fixes a bunch of miscompilations in modern environments + ./fixup-miscompilations.patch + ]; + + nativeBuildInputs = [ + copyDesktopItems + ]; + + buildInputs = [ + libX11 + libXpm + libpng + zlib + ]; + + desktopItems = let + generateItem = gameName: { + name = "${pname}-${gameName}"; + exec = "${placeholder "out"}/bin/${gameName}"; + comment = "Ace of Penguins ${gameName} Card Game"; + desktopName = gameName; + genericName = gameName; + }; + in + map (x: makeDesktopItem (generateItem x)) [ + "canfield" + "freecell" + "golf" + "mastermind" + "merlin" + "minesweeper" + "pegged" + "penguins" + "solitaire" + "spider" + "taipedit" + "taipei" + "thornq" + ]; + + meta = with lib; { + homepage = "http://www.delorie.com/store/ace/"; + description = "Solitaire games in X11"; + longDescription = '' + The Ace of Penguins is a set of Unix/X solitaire games based on the ones + available for Windows(tm) but with a number of enhancements that my wife + says make my versions better :-) + + The latest version includes clones of freecell, golf, mastermind, merlin, + minesweeper, pegged, solitaire, taipei (with editor!), and thornq (by + Martin Thornquist). + ''; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/ace-of-penguins/fixup-miscompilations.patch b/pkgs/games/ace-of-penguins/fixup-miscompilations.patch new file mode 100644 index 0000000000000..599b4a137d793 --- /dev/null +++ b/pkgs/games/ace-of-penguins/fixup-miscompilations.patch @@ -0,0 +1,80 @@ +--- ace-1.4/lib/xwin.c ++++ ace-1.4/lib/xwin.c +@@ -89,10 +89,10 @@ + /* Motif window hints */ + typedef struct + { +- unsigned flags; +- unsigned functions; +- unsigned decorations; +- int inputMode; ++ unsigned long flags; ++ unsigned long functions; ++ unsigned long decorations; ++ long inputMode; + } PropMotifWmHints; + + typedef PropMotifWmHints PropMwmHints; +@@ -841,13 +841,13 @@ + png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, 0, 0, 0); + info_ptr = png_create_info_struct (png_ptr); + +- if (setjmp (png_ptr->jmpbuf)) { ++ if (setjmp (png_jmpbuf (png_ptr))) { + fprintf(stderr, "Invalid PNG image!\n"); + return; + } + + file_bytes = src->file_data; +- png_set_read_fn (png_ptr, (voidp)&file_bytes, (png_rw_ptr)png_reader); ++ png_set_read_fn (png_ptr, (void *)&file_bytes, (png_rw_ptr)png_reader); + + png_read_info (png_ptr, info_ptr); + +--- ace-1.4/lib/make-imglib.c ++++ ace-1.4/lib/make-imglib.c +@@ -86,7 +86,7 @@ + png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, 0, 0, 0); + info_ptr = png_create_info_struct (png_ptr); + +- if (setjmp (png_ptr->jmpbuf)) { ++ if (setjmp (png_jmpbuf (png_ptr))) { + fclose (f); + continue; + } + +--- ace-1.4/lib/Makefile.am ++++ ace-1.4/lib/Makefile.am +@@ -6,7 +6,7 @@ + CLEANFILES = images.c images.d + + INCLUDES = $(X_CFLAGS) @PDA@ +-AM_LDFLAGS = $(X_LIBS) ++AM_LDFLAGS = $(X_LIBS) -lpng -lz -lm + + BUILD_CC = @BUILD_CC@ + AR = @AR@ + +--- ace-1.4/lib/xwin.c 2020-10-07 02:07:59.000000000 +0300 ++++ ace-1.4/lib/xwin.c 2020-10-07 02:15:05.941784967 +0300 +@@ -55,7 +55,6 @@ + { "-visual", OPTION_INTEGER, &visual_id }, + { 0, 0, 0 } + }; +-OptionDesc *xwin_options = xwin_options_list; + + Display *display=0; + int screen=0; +--- ace-1.4/config.guess 2012-03-24 19:00:49.000000000 +0100 ++++ ace-1.4/config.guess 2021-07-05 11:02:16.685843793 +0200 +@@ -882,6 +882,9 @@ + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; ++ aarch64*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + diff --git a/pkgs/games/alephone/default.nix b/pkgs/games/alephone/default.nix index 347ccd8df63b1..6477e3fb37d50 100644 --- a/pkgs/games/alephone/default.nix +++ b/pkgs/games/alephone/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, boost, curl, ffmpeg, icoutils, libGLU, libmad, libogg +{ lib, stdenv, fetchurl, boost, curl, ffmpeg_4, 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 }: @@ -20,7 +20,7 @@ let buildInputs = [ boost curl - ffmpeg + ffmpeg_4 libGLU libmad libsndfile diff --git a/pkgs/games/amoeba/default.nix b/pkgs/games/amoeba/default.nix index 61f5a5bf824df..0e21a9a1b9ea3 100644 --- a/pkgs/games/amoeba/default.nix +++ b/pkgs/games/amoeba/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchurl, amoeba-data, alsa-lib, expat, freetype, gtk2, libvorbis, libGLU, xorg, pkg-config }: stdenv.mkDerivation rec { - name = "amoeba-${version}-${debver}"; + pname = "amoeba"; version = "1.1"; debver = "29.1"; diff --git a/pkgs/games/among-sus/default.nix b/pkgs/games/among-sus/default.nix index 454c7d181f951..be9ecc7adf57e 100644 --- a/pkgs/games/among-sus/default.nix +++ b/pkgs/games/among-sus/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation { pname = "among-sus-unstable"; - version = "2020-10-29"; + version = "2021-05-19"; src = fetchFromSourcehut { owner = "~martijnbraam"; repo = "among-sus"; - rev = "1f4c8d800d025d36ac66826937161be3252fbc57"; - sha256 = "19jq7ygh9l11dl1h6702bg57m04y35nqd6yqx1rgp1kxwhp45xyh"; + rev = "554e60bf52e3fa931661b9414189a92bb8f69d78"; + sha256 = "0j1158nczhvy5i1ykvzvhlv4ndhibgng0dq1lw2bmi8q6k1q1s0w"; }; patchPhase = '' diff --git a/pkgs/games/andyetitmoves/default.nix b/pkgs/games/andyetitmoves/default.nix index 9eb1c7594a101..ecd1dfc9b3cd6 100644 --- a/pkgs/games/andyetitmoves/default.nix +++ b/pkgs/games/andyetitmoves/default.nix @@ -2,38 +2,43 @@ stdenv.mkDerivation rec { pname = "andyetitmoves"; - version = "1.2.2"; + version = "1.2.2"; - src = if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux" + 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 = "${pname}-${version}_${postfix}.tar.gz"; - demoUrl = "http://www.andyetitmoves.net/demo/${pname}Demo-${version}_${postfix}.tar.gz"; + let + postfix = if stdenv.hostPlatform.system == "i686-linux" then "i386" else "x86_64"; + commercialName = "${pname}-${version}_${postfix}.tar.gz"; + demoUrl = "http://www.andyetitmoves.net/demo/${pname}Demo-${version}_${postfix}.tar.gz"; in if commercialVersion - then requireFile { - message = '' - We cannot download the commercial version automatically, as you require a license. - Once you bought a license, you need to add your downloaded version to the nix store. - You can do this by using "nix-prefetch-url file:///\$PWD/${commercialName}" in the - directory where yousaved it. - ''; - name = commercialName; - sha256 = if stdenv.hostPlatform.system == "i686-linux" - then "15wvzmmidvykwjrbnq70h5jrvnjx1hcrm0357qj85q4aqbzavh01" - else "1v8z16qa9ka8sf7qq45knsxj87s6sipvv3a7xq11pb5xk08fb2ql"; - } - else fetchurl { - url = demoUrl; - sha256 = if stdenv.hostPlatform.system == "i686-linux" - then "0f14vrrbq05hsbdajrb5y9za65fpng1lc8f0adb4aaz27x7sh525" - else "0mg41ya0b27blq3b5498kwl4rj46dj21rcd7qd0rw1kyvr7sx4v4"; - } + then + requireFile + { + message = '' + We cannot download the commercial version automatically, as you require a license. + Once you bought a license, you need to add your downloaded version to the nix store. + You can do this by using "nix-prefetch-url file:///\$PWD/${commercialName}" in the + directory where yousaved it. + ''; + name = commercialName; + sha256 = + if stdenv.hostPlatform.system == "i686-linux" + then "15wvzmmidvykwjrbnq70h5jrvnjx1hcrm0357qj85q4aqbzavh01" + else "1v8z16qa9ka8sf7qq45knsxj87s6sipvv3a7xq11pb5xk08fb2ql"; + } + else + fetchurl { + url = demoUrl; + sha256 = + if stdenv.hostPlatform.system == "i686-linux" + then "0f14vrrbq05hsbdajrb5y9za65fpng1lc8f0adb4aaz27x7sh525" + else "0mg41ya0b27blq3b5498kwl4rj46dj21rcd7qd0rw1kyvr7sx4v4"; + } else throw "And Yet It Moves nix package only supports linux and intel cpu's."; - phases = "unpackPhase installPhase"; - installPhase = '' mkdir -p $out/{opt/andyetitmoves,bin} cp -r * $out/opt/andyetitmoves/ @@ -54,19 +59,15 @@ stdenv.mkDerivation rec { chmod +x $out/bin/$binName ''; - buildInputs = [libvorbis libogg libtheora SDL libXft SDL_image zlib libX11 libpng openal]; + buildInputs = [ libvorbis libogg libtheora SDL libXft SDL_image zlib libX11 libpng openal ]; - meta = { + meta = with lib; { description = "Physics/Gravity Platform game"; - longDescription = '' And Yet It Moves is an award-winning physics-based platform game in which players rotate the game world at will to solve challenging puzzles. Tilting the world turns walls into floors, slides into platforms, and stacks of rocks into dangerous hazards. ''; - homepage = "http://www.andyetitmoves.net/"; - - license = lib.licenses.unfree; - - maintainers = with lib.maintainers; [bluescreen303]; + license = licenses.unfree; + maintainers = with maintainers; [ bluescreen303 ]; }; } diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix index d1def37400979..a25111bddfe91 100644 --- a/pkgs/games/anki/default.nix +++ b/pkgs/games/anki/default.nix @@ -116,6 +116,11 @@ buildPythonApplication rec { url = "https://sources.debian.org/data/main/a/anki/2.1.15+dfsg-3/debian/patches/fix-mpv-args.patch"; sha256 = "1dimnnawk64m5bbdbjrxw5k08q95l728n94cgkrrwxwavmmywaj2"; }) + (fetchpatch { + name = "anki-2.1.15-unescape.patch"; + url = "https://795309.bugs.gentoo.org/attachment.cgi?id=715200"; + sha256 = "14rz864kdaba4fd1marwkyz9n1jiqnbjy4al8bvwlhpvp0rm1qk6"; + }) ]; # Anki does not use setup.py diff --git a/pkgs/games/banner/default.nix b/pkgs/games/banner/default.nix index 613947c677a5f..befb29f6ffc91 100644 --- a/pkgs/games/banner/default.nix +++ b/pkgs/games/banner/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { }; meta = with lib; { - homepage = "https://software.cedar-solutions.com/utilities.html"; + homepage = "https://github.com/pronovic/banner"; description = "Print large banners to ASCII terminals"; license = licenses.gpl2Only; diff --git a/pkgs/games/blackshades/default.nix b/pkgs/games/blackshades/default.nix index bd29c7b616c42..76f22e98d9e96 100644 --- a/pkgs/games/blackshades/default.nix +++ b/pkgs/games/blackshades/default.nix @@ -1,29 +1,27 @@ { lib, stdenv, fetchFromSourcehut -, SDL, stb, libGLU, libGL, openal, libvorbis, freealut }: +, zig, glfw, libGLU, libGL, openal, libsndfile }: stdenv.mkDerivation rec { pname = "blackshades"; - version = "1.3.1"; + version = "2.4.7"; src = fetchFromSourcehut { owner = "~cnx"; repo = pname; rev = version; - sha256 = "0yzp74ynkcp6hh5m4zmvrgx5gwm186hq7p3m7qkww54qdyijb3rv"; + fetchSubmodules = true; + sha256 = "sha256-hvJwWUUmGeb7MQgKe79cPS2ckPZ9z0Yc5S9IiwuXPD8="; }; - buildInputs = [ SDL stb libGLU libGL openal libvorbis freealut ]; + nativeBuildInputs = [ zig ]; + buildInputs = [ glfw libGLU libGL openal libsndfile ]; - postPatch = '' - sed -i -e s,Data/,$out/share/$pname/,g \ - -e s,Data:,$out/share/$pname/,g \ - src/*.cpp + preBuild = '' + export HOME=$TMPDIR ''; installPhase = '' - mkdir -p $out/bin $out/share - cp build/blackshades $out/bin - cp -R Data $out/share/$pname + zig build -Drelease-fast -Dcpu=baseline --prefix $out install ''; meta = { diff --git a/pkgs/games/blightmud/default.nix b/pkgs/games/blightmud/default.nix new file mode 100644 index 0000000000000..2e177f169fabc --- /dev/null +++ b/pkgs/games/blightmud/default.nix @@ -0,0 +1,79 @@ +{ stdenv, lib, fetchFromGitHub, rustPlatform, pkg-config, alsa-lib, openssl +, withTTS ? false, llvmPackages, speechd }: + +rustPlatform.buildRustPackage rec { + pname = "blightmud"; + version = "3.5.0"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-DaICzwBew90YstV42wiY0IbvR1W4Hm8dzo3xY2qlMGQ="; + }; + + cargoSha256 = "sha256-BamMTPh+GN9GG4puxyTauPhjCC8heCu1wsgFaw98s9U="; + + buildFeatures = lib.optional withTTS "tts"; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ alsa-lib openssl ] ++ lib.optional withTTS [ speechd ]; + + # Building the speech-dispatcher-sys crate for TTS support requires setting + # LIBCLANG_PATH. + LIBCLANG_PATH = lib.optionalString withTTS "${llvmPackages.libclang.lib}/lib"; + + preBuild = lib.optionalString withTTS '' + # When building w/ TTS the speech-dispatcher-sys crate's build.rs uses + # rust-bindgen with libspeechd. This bypasses the normal nixpkgs CC wrapper + # so we have to adapt the BINDGEN_EXTRA_CLANG_ARGS env var to compensate. See + # this blog post[0] for more information. + # + # [0]: https://hoverbear.org/blog/rust-bindgen-in-nix/ + + export BINDGEN_EXTRA_CLANG_ARGS="$(< ${stdenv.cc}/nix-support/libc-cflags) \ + $(< ${stdenv.cc}/nix-support/cc-cflags) \ + -isystem ${llvmPackages.libclang.lib}/lib/clang/${ + lib.getVersion llvmPackages.clang + }/include \ + -idirafter ${stdenv.cc.cc}/lib/gcc/${stdenv.hostPlatform.config}/${ + lib.getVersion stdenv.cc.cc + }/include \ + -idirafter ${speechd}/include" + ''; + + checkFlags = let + # Most of Blightmud's unit tests pass without trouble in the isolated + # Nixpkgs build env. The following tests need to be skipped. + skipList = [ + "test_connect" + "test_gmcp_negotiation" + "test_ttype_negotiation" + "test_reconnect" + "test_mud" + "test_server" + "test_lua_script" + "timer_test" + "validate_assertion_fail" + ]; + skipFlag = test: "--skip " + test; + in builtins.concatStringsSep " " (builtins.map skipFlag skipList); + + meta = with lib; { + description = "A terminal MUD client written in Rust"; + longDescription = '' + Blightmud is a terminal client for connecting to Multi User Dungeon (MUD) + games. It is written in Rust and supports TLS, GMCP, MSDP, MCCP2, tab + completion, text searching and a split view for scrolling. Blightmud can + be customized with Lua scripting for aliases, triggers, timers, customized + status bars, and more. Blightmud supports several accessibility features + including an optional built-in text-to-speech engine and a screen reader + friendly mode. + ''; + homepage = "https://github.com/Blightmud/Blightmud"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ cpu ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/blobby/default.upstream b/pkgs/games/blobby/default.upstream deleted file mode 100644 index 8f2804e079469..0000000000000 --- a/pkgs/games/blobby/default.upstream +++ /dev/null @@ -1,8 +0,0 @@ -url https://sourceforge.net/projects/blobby/files/Blobby%20Volley%202%20%28Linux%29/ -SF_version_dir -version_link '[.]tar[.][^.]+/download$' -SF_redirect -do_overwrite(){ - do_overwrite_just_version - set_var_value url $CURRENT_URL -} diff --git a/pkgs/games/blockattack/default.nix b/pkgs/games/blockattack/default.nix new file mode 100644 index 0000000000000..7616d2e51a34e --- /dev/null +++ b/pkgs/games/blockattack/default.nix @@ -0,0 +1,59 @@ +{ lib +, stdenv +, fetchFromGitHub +, SDL2 +, SDL2_image +, SDL2_mixer +, SDL2_ttf +, boost +, cmake +, gettext +, physfs +, pkg-config +, zip +}: + +stdenv.mkDerivation rec { + pname = "blockattack"; + version = "2.7.0"; + + src = fetchFromGitHub { + name = "${pname}-${version}-src"; + owner = "blockattack"; + repo = "blockattack-game"; + rev = "v${version}"; + hash = "sha256-ySLm3AdoJRiMRdla45OJh8ZIFYNh+HzjG2VnFqoWuZA="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + gettext + zip + ]; + + buildInputs = [ + SDL2 + SDL2_image + SDL2_mixer + SDL2_ttf + SDL2_ttf + boost + physfs + ]; + + preConfigure = '' + patchShebangs packdata.sh source/misc/translation/*.sh + chmod +x ./packdata.sh + ./packdata.sh + ''; + + meta = with lib; { + homepage = "https://blockattack.net/"; + description = "An open source clone of Panel de Pon (aka Tetris Attack)"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + broken = stdenv.isDarwin; + }; +} diff --git a/pkgs/games/chessx/default.nix b/pkgs/games/chessx/default.nix index 1d2b366cf38e2..fd8189386e73d 100644 --- a/pkgs/games/chessx/default.nix +++ b/pkgs/games/chessx/default.nix @@ -12,11 +12,11 @@ mkDerivation rec { pname = "chessx"; - version = "1.5.6"; + version = "1.5.7"; src = fetchurl { url = "mirror://sourceforge/chessx/chessx-${version}.tgz"; - sha256 = "sha256-0JpLU0qQnF8aOYxkBlBJov3zBJe8gcy98NlAQSNk0gU="; + sha256 = "sha256-wadIO3iNvj8LgIzExHTmeXxXnWOI+ViLrdhAlzZ79Jw="; }; nativeBuildInputs = [ diff --git a/pkgs/games/cl-wordle/default.nix b/pkgs/games/cl-wordle/default.nix new file mode 100644 index 0000000000000..1ad3487c3feda --- /dev/null +++ b/pkgs/games/cl-wordle/default.nix @@ -0,0 +1,22 @@ +{ lib, rustPlatform, fetchCrate }: + +rustPlatform.buildRustPackage rec { + pname = "cl-wordle"; + version = "0.4.0"; + + src = fetchCrate { + inherit pname version; + sha256 = "sha256-z2XpXgOviBRcberwpxQ4ml1T04k5kMhG7wA0PAYWENg="; + }; + + cargoSha256 = "sha256-C7UMkhgez2CtddftARlwN1TjZ1N26NnZfpRiX1KkMEA="; + + meta = with lib; { + description = "Wordle TUI in Rust"; + homepage = "https://github.com/conradludgate/wordle"; + # repo has no license, but crates.io says it's MIT + license = licenses.mit; + maintainers = with maintainers; [ lom ]; + mainProgram = "wordle"; + }; +} diff --git a/pkgs/games/colobot/data.nix b/pkgs/games/colobot/data.nix index 7ae9dbb2b5ed9..761c68c15e816 100644 --- a/pkgs/games/colobot/data.nix +++ b/pkgs/games/colobot/data.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "colobot-data"; - version = "0.1.12-alpha"; + version = "0.2.0-alpha"; src = fetchFromGitHub { owner = "colobot"; repo = "colobot-data"; rev = "colobot-gold-${version}"; - sha256 = "1vm33s52ymwd03x24i9bqiglw5v3wgd7rlzyx9r5ww0nnqzwbwi6"; + sha256 = "sha256-yzIbAzrGsDe6hO0GHF9gjnj7IE8B7+5LDbvjZi4Wtms="; }; nativeBuildInputs = [ cmake vorbis-tools xmlstarlet doxygen python3 ]; diff --git a/pkgs/games/colobot/default.nix b/pkgs/games/colobot/default.nix index b26244ccc5fde..e1070843811c5 100644 --- a/pkgs/games/colobot/default.nix +++ b/pkgs/games/colobot/default.nix @@ -9,24 +9,15 @@ 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"; + version = "0.2.0-alpha"; src = fetchFromGitHub { owner = "colobot"; - repo = "colobot"; + repo = pname; rev = "colobot-gold-${version}"; - sha256 = "0viq5s4zqs33an7rdmc3anf74ml7mwwcwf60alhvp9hj5jr547s2"; + sha256 = "sha256-Nu7NyicNIk5yza9sXfd4KbGdB65guVuGREd6rwRU3lU="; }; - 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 ]; diff --git a/pkgs/games/crafty/default.nix b/pkgs/games/crafty/default.nix deleted file mode 100644 index b5b53aa3c4131..0000000000000 --- a/pkgs/games/crafty/default.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ lib, stdenv, fetchurl, unzip }: - -stdenv.mkDerivation rec { - pname = "crafty"; - version = "25.0.1"; - - src = fetchurl { - url = "http://www.craftychess.com/downloads/source/crafty-${version}.zip"; - sha256 = "0aqgj2q7kdlgbha01qs869cwyja13bc7q2lh4nfhlba2pklknsm8"; - }; - - bookBin = fetchurl { - url = "http://www.craftychess.com/downloads/book/book.bin"; - sha256 = "10rrgkr3hxm7pxdbc2jq8b5g74gfhzk4smahks3k8am1cmyq4p7r"; - }; - - startPgn = fetchurl { - url = "http://craftychess.com/downloads/book/start.pgn.gz"; - sha256 = "12g70mgfifwssfvndzq94pin34dizlixhsga75vgj7dakysi2p7f"; - }; - - nativeBuildInputs = [ unzip ]; - - unpackPhase = '' - mkdir "craftysrc" - unzip $src -d craftysrc - gunzip -c $startPgn > "craftysrc/start.pgn" - ''; - - buildPhase = '' - cd craftysrc - make unix-gcc - ''; - - installPhase = '' - BUILDDIR="$PWD" - mkdir -p $out/bin - cp -p ./crafty $out/bin - - mkdir -p $out/share/crafty - cd $out/share/crafty - - $out/bin/crafty "books create $BUILDDIR/start.pgn 60" - rm -f *.001 - - cp -p ${bookBin} $out/share/crafty/book.bin - - mv $out/bin/crafty $out/bin/.crafty-wrapped - - cat - > $out/bin/crafty <<EOF - #! ${stdenv.shell} - # - # The books are copied from share/crafty to ~/.crafty/books the first time - # this script is run. You can restore them at any time just copying them - # again. - if [[ ! -d "\$HOME/.crafty/books" ]]; then - mkdir "\$HOME/.crafty/books" -p - cp "$out/share/crafty/"book*.bin "\$HOME/.crafty/books" - chmod ug+w "\$HOME/.crafty/books/"* - fi - exec $out/bin/.crafty-wrapped bookpath=\$HOME/.crafty/books "\$@" - EOF - chmod +x $out/bin/crafty - ''; - - meta = { - homepage = "http://www.craftychess.com/"; - description = "Chess program developed by Dr. Robert M. Hyatt"; - license = lib.licenses.unfree; - platforms = lib.platforms.unix; - maintainers = [ lib.maintainers.jwiegley ]; - }; -} diff --git a/pkgs/games/crawl/default.nix b/pkgs/games/crawl/default.nix index 02e34e5f749df..064e1d623a5f4 100644 --- a/pkgs/games/crawl/default.nix +++ b/pkgs/games/crawl/default.nix @@ -7,14 +7,14 @@ }: stdenv.mkDerivation rec { - name = "crawl-${version}${lib.optionalString tileMode "-tiles"}"; - version = "0.27.1"; + pname = "crawl${lib.optionalString tileMode "-tiles"}"; + version = "0.28.0"; src = fetchFromGitHub { owner = "crawl"; repo = "crawl"; rev = version; - sha256 = "sha256-fyI7OIzhYXNTjIgJLqApyPMmiG3iof1b5XuGudNanos="; + sha256 = "sha256-pVEE3g+NDwpsrakyj4YIk53aE+LCiIaRhOqos4huh9A="; }; # Patch hard-coded paths and remove force library builds diff --git a/pkgs/games/crispy-doom/default.nix b/pkgs/games/crispy-doom/default.nix index c507332399ab8..7454242c72b5e 100644 --- a/pkgs/games/crispy-doom/default.nix +++ b/pkgs/games/crispy-doom/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "crispy-doom"; - version = "5.10.3"; + version = "5.11.1"; src = fetchFromGitHub { owner = "fabiangreffrath"; repo = pname; rev = "${pname}-${version}"; - sha256 = "sha256-F1cK8qusxOHM0DkLEYV5i2ixP3II8ZttwKxd8htd0+A="; + sha256 = "sha256-2Sjl9XO01ko0BwbFQSFv9mNoetyMa8Dxx17y0JmlLS0="; }; postPatch = '' diff --git a/pkgs/games/ddnet/default.nix b/pkgs/games/ddnet/default.nix index eca0d10d7f988..1663e17b14d29 100644 --- a/pkgs/games/ddnet/default.nix +++ b/pkgs/games/ddnet/default.nix @@ -20,13 +20,13 @@ stdenv.mkDerivation rec { pname = "ddnet"; - version = "15.8"; + version = "15.9.1"; src = fetchFromGitHub { owner = "ddnet"; repo = pname; rev = version; - sha256 = "sha256-segJVGH5ngSEhk0EpLHPORTNck4tIDCxJh9Ri6sa2dE="; + sha256 = "sha256-QGtXI4Dbua5LBXSvB17tnSTGEvCCoopvg1XKBuDIEoQ="; }; nativeBuildInputs = [ cmake ninja pkg-config ]; diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix index 93f51df1819d5..316d1308eb794 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix @@ -9,7 +9,8 @@ let in stdenv.mkDerivation { - name = "dwarf-therapist-${dwarf-therapist.version}"; + pname = "dwarf-therapist"; + version = dwarf-therapist.version; wrapper = substituteAll { src = ./dwarf-therapist.in; diff --git a/pkgs/games/dwarf-fortress/unfuck.nix b/pkgs/games/dwarf-fortress/unfuck.nix index 5b25cf4ff4090..27b54667f0b9a 100644 --- a/pkgs/games/dwarf-fortress/unfuck.nix +++ b/pkgs/games/dwarf-fortress/unfuck.nix @@ -72,7 +72,8 @@ let in stdenv.mkDerivation { - name = "dwarf_fortress_unfuck-${release.unfuckRelease}"; + pname = "dwarf_fortress_unfuck"; + version = release.unfuckRelease; src = fetchFromGitHub { owner = "svenstaro"; diff --git a/pkgs/games/dwarf-fortress/wrapper/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix index ce989b98ffbd7..3d1c3ead06042 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -92,7 +92,8 @@ let in stdenv.mkDerivation { - name = "dwarf-fortress-${dwarf-fortress.dfVersion}"; + pname = "dwarf-fortress"; + version = dwarf-fortress.dfVersion; dfInit = substituteAll { name = "dwarf-fortress-init"; diff --git a/pkgs/games/easyrpg-player/default.nix b/pkgs/games/easyrpg-player/default.nix index 83e40a4c3407e..4476c0a7a5324 100644 --- a/pkgs/games/easyrpg-player/default.nix +++ b/pkgs/games/easyrpg-player/default.nix @@ -1,22 +1,25 @@ -{ lib, stdenv, fetchFromGitHub, cmake, doxygen ? null, pkg-config, freetype ? null, glib, harfbuzz ? null +{ lib, stdenv, fetchFromGitHub, cmake, doxygen ? null, pkg-config +, freetype ? null, fmt, 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 }: +, mpg123 ? null, opusfile ? null, pcre, pixman, SDL2, speexdsp ? null, wildmidi ? null, zlib +}: stdenv.mkDerivation rec { pname = "easyrpg-player"; - version = "0.6.2.3"; + version = "0.7.0"; src = fetchFromGitHub { owner = "EasyRPG"; repo = "Player"; rev = version; - sha256 = "103ywad12dcfjpf97kyx22smilqrw1f20xcfvjjr4mm3walc2mdp"; + sha256 = "049bj3jg3ldi3n11nx8xvh6pll68g7dcxz51q6z1gyyfxxws1qpj"; }; nativeBuildInputs = [ cmake doxygen pkg-config ]; buildInputs = [ + fmt freetype glib harfbuzz @@ -34,9 +37,9 @@ stdenv.mkDerivation rec { libXxf86vm mpg123 opusfile - SDL2_mixer pcre pixman + SDL2 speexdsp wildmidi zlib diff --git a/pkgs/games/egoboo/default.nix b/pkgs/games/egoboo/default.nix index 158e81d912885..506868efe312f 100644 --- a/pkgs/games/egoboo/default.nix +++ b/pkgs/games/egoboo/default.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { meta = { description = "3D dungeon crawling adventure"; - homepage = "http://www.freedink.org/"; + homepage = "http://egoboo.sourceforge.net/"; license = lib.licenses.gpl2Plus; # I take it out of hydra as it does not work as well as I'd like diff --git a/pkgs/games/factorio/versions.json b/pkgs/games/factorio/versions.json index 37dc97d5597b5..663dffe249829 100644 --- a/pkgs/games/factorio/versions.json +++ b/pkgs/games/factorio/versions.json @@ -2,48 +2,56 @@ "x86_64-linux": { "alpha": { "experimental": { - "name": "factorio_alpha_x64-1.1.50.tar.xz", + "name": "factorio_alpha_x64-1.1.53.tar.xz", "needsAuth": true, - "sha256": "1sb3kvpj3kikr1bvm4si4f3dmj7873dhbz6zj57kin6d5mbmhq4p", + "sha256": "1l5sk9rhf4pq9l87w5sv4a1ikqx8rpby5hf4xn7sdsm9mshd3wyw", "tarDirectory": "x64", - "url": "https://factorio.com/get-download/1.1.50/alpha/linux64", - "version": "1.1.50" + "url": "https://factorio.com/get-download/1.1.53/alpha/linux64", + "version": "1.1.53" }, "stable": { - "name": "factorio_alpha_x64-1.1.50.tar.xz", + "name": "factorio_alpha_x64-1.1.53.tar.xz", "needsAuth": true, - "sha256": "1sb3kvpj3kikr1bvm4si4f3dmj7873dhbz6zj57kin6d5mbmhq4p", + "sha256": "1l5sk9rhf4pq9l87w5sv4a1ikqx8rpby5hf4xn7sdsm9mshd3wyw", "tarDirectory": "x64", - "url": "https://factorio.com/get-download/1.1.50/alpha/linux64", - "version": "1.1.50" + "url": "https://factorio.com/get-download/1.1.53/alpha/linux64", + "version": "1.1.53" } }, "demo": { + "experimental": { + "name": "factorio_demo_x64-1.1.53.tar.xz", + "needsAuth": false, + "sha256": "0m3mk296w4azma2v5z6pay1caqql2jfnlcyyd120laxl4rdg2k76", + "tarDirectory": "x64", + "url": "https://factorio.com/get-download/1.1.53/demo/linux64", + "version": "1.1.53" + }, "stable": { - "name": "factorio_demo_x64-1.1.50.tar.xz", + "name": "factorio_demo_x64-1.1.53.tar.xz", "needsAuth": false, - "sha256": "0i3r21i7s4yzjfqrwf82x87pfjg7d3bhkz3zqi0x398j9bykpw43", + "sha256": "0m3mk296w4azma2v5z6pay1caqql2jfnlcyyd120laxl4rdg2k76", "tarDirectory": "x64", - "url": "https://factorio.com/get-download/1.1.50/demo/linux64", - "version": "1.1.50" + "url": "https://factorio.com/get-download/1.1.53/demo/linux64", + "version": "1.1.53" } }, "headless": { "experimental": { - "name": "factorio_headless_x64-1.1.50.tar.xz", + "name": "factorio_headless_x64-1.1.53.tar.xz", "needsAuth": false, - "sha256": "0j75wbnszhlmyk655b2h8jd1lvmnplq44blixl959hh3lxvqn50m", + "sha256": "18ra52h32nhdqxz6vagp9nw3an5pgamariy0ny050xr2xpidw3v1", "tarDirectory": "x64", - "url": "https://factorio.com/get-download/1.1.50/headless/linux64", - "version": "1.1.50" + "url": "https://factorio.com/get-download/1.1.53/headless/linux64", + "version": "1.1.53" }, "stable": { - "name": "factorio_headless_x64-1.1.50.tar.xz", + "name": "factorio_headless_x64-1.1.53.tar.xz", "needsAuth": false, - "sha256": "0j75wbnszhlmyk655b2h8jd1lvmnplq44blixl959hh3lxvqn50m", + "sha256": "18ra52h32nhdqxz6vagp9nw3an5pgamariy0ny050xr2xpidw3v1", "tarDirectory": "x64", - "url": "https://factorio.com/get-download/1.1.50/headless/linux64", - "version": "1.1.50" + "url": "https://factorio.com/get-download/1.1.53/headless/linux64", + "version": "1.1.53" } } } diff --git a/pkgs/games/fheroes2/default.nix b/pkgs/games/fheroes2/default.nix index 287093354fc7a..567ab267cfeac 100644 --- a/pkgs/games/fheroes2/default.nix +++ b/pkgs/games/fheroes2/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "fheroes2"; - version = "0.9.11"; + version = "0.9.12"; src = fetchFromGitHub { owner = "ihhub"; repo = "fheroes2"; rev = version; - sha256 = "sha256-p2FG4oWLTGflOoxsp8A+FpoVHfKiEw3DEnK8n3UiBtU="; + sha256 = "sha256-6voM6aQ22zW6NHm9x2TDsM4Kea6TLYZTdSLyc/6fz8A="; }; buildInputs = [ gettext libpng SDL2 SDL2_image SDL2_mixer SDL2_ttf zlib ]; diff --git a/pkgs/games/flare/default.nix b/pkgs/games/flare/default.nix index 9b4b6848aea02..3567a5886055d 100644 --- a/pkgs/games/flare/default.nix +++ b/pkgs/games/flare/default.nix @@ -1,7 +1,7 @@ { lib, buildEnv, callPackage, makeWrapper, Cocoa }: buildEnv { - name = "flare-1.12"; + name = "flare-1.13.04"; paths = [ (callPackage ./engine.nix { inherit Cocoa; }) @@ -17,7 +17,7 @@ buildEnv { meta = with lib; { description = "Fantasy action RPG using the FLARE engine"; homepage = "https://flarerpg.org/"; - maintainers = [ maintainers.aanderse ]; + maintainers = with maintainers; [ aanderse McSinyx ]; license = [ licenses.gpl3 licenses.cc-by-sa-30 ]; platforms = platforms.unix; }; diff --git a/pkgs/games/flare/engine.nix b/pkgs/games/flare/engine.nix index fc7415ba3ec38..9e9215ada1f29 100644 --- a/pkgs/games/flare/engine.nix +++ b/pkgs/games/flare/engine.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "flare-engine"; - version = "1.12"; + version = "1.13.04"; src = fetchFromGitHub { owner = "flareteam"; repo = pname; rev = "v${version}"; - sha256 = "0swav6fzz970wj4iic3b7y06haa05720s2wivc8w7wcw9nzcac7j"; + sha256 = "sha256-GPHPYcW0kBDGpZti2kFggNB4RVK/3eQ53M9mJvJuKXM="; }; patches = [ ./desktop.patch ]; @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Free/Libre Action Roleplaying Engine"; homepage = "https://github.com/flareteam/flare-engine"; - maintainers = [ maintainers.aanderse ]; + maintainers = with maintainers; [ aanderse McSinyx ]; license = [ licenses.gpl3 ]; platforms = platforms.unix; }; diff --git a/pkgs/games/flare/game.nix b/pkgs/games/flare/game.nix index 9903f0b58204e..791af2645353a 100644 --- a/pkgs/games/flare/game.nix +++ b/pkgs/games/flare/game.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "flare-game"; - version = "1.12"; + version = "1.13.04"; src = fetchFromGitHub { owner = "flareteam"; repo = pname; rev = "v${version}"; - sha256 = "15k9r7w587pvkzrln0670hhq5fzif8k7xmrhb0nl3z3fi6dw3mmc"; + sha256 = "sha256-7dEIagioM6OZXG+eNaYls8skHXSqGFXZuNhT0zhTFdY="; }; nativeBuildInputs = [ cmake ]; @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Fantasy action RPG using the FLARE engine"; homepage = "https://github.com/flareteam/flare-game"; - maintainers = [ maintainers.aanderse ]; + maintainers = with maintainers; [ aanderse McSinyx ]; license = [ licenses.cc-by-sa-30 ]; platforms = platforms.unix; }; diff --git a/pkgs/games/freedink/default.nix b/pkgs/games/freedink/default.nix index c80dc2b07034c..75c50669421d8 100644 --- a/pkgs/games/freedink/default.nix +++ b/pkgs/games/freedink/default.nix @@ -51,7 +51,7 @@ in stdenv.mkDerivation rec { with close compatibility, under multiple platforms. ''; - homepage = "http://www.freedink.org/"; + homepage = "https://www.gnu.org/software/freedink/"; # Formerly http://www.freedink.org license = lib.licenses.gpl3Plus; maintainers = [ lib.maintainers.bjg ]; diff --git a/pkgs/games/gcompris/default.nix b/pkgs/games/gcompris/default.nix index 2b3ff2b5c2e58..c4c737d228cc7 100644 --- a/pkgs/games/gcompris/default.nix +++ b/pkgs/games/gcompris/default.nix @@ -18,15 +18,15 @@ mkDerivation rec { pname = "gcompris"; - version = "2.0"; + version = "2.1"; src = fetchurl { url = "http://gcompris.net/download/qt/src/gcompris-qt-${version}.tar.xz"; - sha256 = "sha256-mrVGYI9IPyXqlXZN2MEDGTjIPUmlLwfaAo+zW4HjqMc="; + sha256 = "sha256-ljOY/uybXzfwOFmhBXB4sC4Vn/C8BP1BeUUPpdHuQwo="; }; cmakeFlags = [ - "-DQML_BOX2D_LIBRARY=${qmlbox2d}/${qtbase.qtQmlPrefix}/Box2D.2.0" + "-DQML_BOX2D_LIBRARY=${qmlbox2d}/${qtbase.qtQmlPrefix}/Box2D.2.1" ]; nativeBuildInputs = [ cmake gettext ninja qttools ]; diff --git a/pkgs/games/gnubg/default.nix b/pkgs/games/gnubg/default.nix index 7402049a9d820..6f50869e6c694 100644 --- a/pkgs/games/gnubg/default.nix +++ b/pkgs/games/gnubg/default.nix @@ -1,8 +1,8 @@ { lib, stdenv, fetchurl, pkg-config, glib, python3, gtk2, readline }: -let version = "1.06.002"; in -stdenv.mkDerivation { - name = "gnubg-"+version; +stdenv.mkDerivation rec { + pname = "gnubg"; + version = "1.06.002"; src = fetchurl { url = "http://gnubg.org/media/sources/gnubg-release-${version}-sources.tar.gz"; diff --git a/pkgs/games/grapejuice/default.nix b/pkgs/games/grapejuice/default.nix index 931de10c18f4e..4ddb58c81482d 100644 --- a/pkgs/games/grapejuice/default.nix +++ b/pkgs/games/grapejuice/default.nix @@ -11,17 +11,19 @@ , xdg-user-dirs , wine , winetricks +, pciutils +, glxinfo }: python3Packages.buildPythonApplication rec { pname = "grapejuice"; - version = "3.64.16"; + version = "4.10.2"; src = fetchFromGitLab { owner = "BrinkerVII"; repo = "grapejuice"; - rev = "a5bc65e094bbfb86e6142ac1da59017ddccff69e"; - sha256 = "sha256-3+5LWn+UBgLAX683MPHRHQMpW+gC5hGIwTtRVJHRWeE="; + rev = "9a7cf806d35b4d53b3d3762339eba7d861b5043d"; + sha256 = "sha256-cKZv9qPCnl7i4kb6PG8RYx3HNLcwgI4d2zkw899MA6E="; }; nativeBuildInputs = [ @@ -43,13 +45,14 @@ python3Packages.buildPythonApplication rec { packaging psutil setuptools + unidecode ]; dontWrapGApps = true; makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" - "--prefix PATH : ${lib.makeBinPath [ xdg-user-dirs xdg-utils wine winetricks ]}" + "--prefix PATH : ${lib.makeBinPath [ xdg-user-dirs xdg-utils wine winetricks pciutils glxinfo ]}" ]; postPatch = '' @@ -84,7 +87,7 @@ python3Packages.buildPythonApplication rec { meta = with lib; { homepage = "https://gitlab.com/brinkervii/grapejuice"; - description = "Simple Wine+Roblox management tool"; + description = "A wine+Roblox management application"; license = licenses.gpl3Plus; platforms = platforms.linux; maintainers = with maintainers; [ artturin ]; diff --git a/pkgs/games/hawkthorne/default.nix b/pkgs/games/hawkthorne/default.nix deleted file mode 100644 index 3da78349dbb19..0000000000000 --- a/pkgs/games/hawkthorne/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ fetchgit, lib, stdenv, love, curl, zip }: - -stdenv.mkDerivation { - version = "0.12.1"; - pname = "hawkthorne"; - - src = fetchgit { - url = "https://github.com/hawkthorne/hawkthorne-journey.git"; - rev = "610b9b3907b2a1b21da2ae926e4c7c4c9e19959b"; - sha256 = "013smhdf9sh91153fpk2bwhhnpg6pn7kfrpw77jmf0v48i3q44h2"; - }; - - buildInputs = [ - love curl zip - ]; - - patches = [ - ./makefile.patch - ]; - - enableParallelBuilding = true; - - meta = { - description = "Journey to the Center of Hawkthorne - A fan-made retro-style game based on the show Community"; - longDescription = '' - Journey to the Center of Hawkthorne is an open source game written in Love2D. - It's based on the show Community, starring Jim Rash and Joel McHale as - the primary will-they-or-won't-they relationship. - - This game has been entirely developed by fans of the show, who were inspired - to bring to life the video game used to determine the winner of Pierce - Hawthorne's inheritance. - ''; - homepage = "https://www.reddit.com/r/hawkthorne"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ campadrenalin ]; - broken = true; - }; -} diff --git a/pkgs/games/hawkthorne/makefile.patch b/pkgs/games/hawkthorne/makefile.patch deleted file mode 100644 index 16a79683149d0..0000000000000 --- a/pkgs/games/hawkthorne/makefile.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/Makefile b/Makefile -index 55eb817..f3406aa 100644 ---- a/Makefile -+++ b/Makefile -@@ -18,10 +18,14 @@ endif - - tilemaps := $(patsubst %.tmx,%.lua,$(wildcard src/maps/*.tmx)) - --maps: $(tilemaps) -- - love: build/hawkthorne.love - -+shebang: build/hawkthorne.love -+ cat <(echo '#!/usr/bin/env love') build/hawkthorne.love > build/hawkthorne -+ chmod +x build/hawkthorne -+ -+maps: $(tilemaps) -+ - build/hawkthorne.love: $(tilemaps) src/* - mkdir -p build - cd src && zip --symlinks -q -r ../build/hawkthorne.love . -x ".*" \ -@@ -30,6 +34,12 @@ build/hawkthorne.love: $(tilemaps) src/* - run: $(tilemaps) $(LOVE) - $(LOVE) src - -+check: test -+ -+install: shebang -+ mkdir -p $(out)/bin -+ cp build/hawkthorne $(out)/bin -+ - src/maps/%.lua: src/maps/%.tmx bin/tmx2lua - bin/tmx2lua $< diff --git a/pkgs/games/heroic/default.nix b/pkgs/games/heroic/default.nix index e6413a87f2cab..bcbe2a6c65352 100644 --- a/pkgs/games/heroic/default.nix +++ b/pkgs/games/heroic/default.nix @@ -1,16 +1,17 @@ -{ lib, fetchurl, appimageTools, python }: +{ lib, fetchurl, appimageTools, gsettings-desktop-schemas, gtk3 }: let pname = "heroic"; - version = "1.10.3"; + version = "2.0.2"; name = "${pname}-${version}"; src = fetchurl { url = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/download/v${version}/Heroic-${version}.AppImage"; - sha256 = "sha256-0VQ5rSGGsEAsOLB4H/Hn2w7wCOrCSoVFzCBqNV5NyVE="; + sha256 = "sha256-4gq0ZCcPIx/CkFNZTM5Atkd/GP6v1t3MO2tibrKkcZQ="; }; appimageContents = appimageTools.extractType2 { inherit name src; }; -in appimageTools.wrapType2 { +in +appimageTools.wrapType2 { inherit name src; extraInstallCommands = '' @@ -28,6 +29,10 @@ in appimageTools.wrapType2 { --replace 'Exec=AppRun' 'Exec=heroic' ''; + profile = '' + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + meta = with lib; { description = "A Native GUI Epic Games Launcher for Linux, Windows and Mac"; homepage = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher"; diff --git a/pkgs/games/hhexen/default.nix b/pkgs/games/hhexen/default.nix index 0306c54ef4ee8..19a0b783efdd0 100644 --- a/pkgs/games/hhexen/default.nix +++ b/pkgs/games/hhexen/default.nix @@ -1,7 +1,7 @@ { lib, fetchurl, SDL, stdenv }: stdenv.mkDerivation rec { - name = "hhexen"; + pname = "hhexen"; version = "1.6.3"; src = fetchurl { url = "mirror://sourceforge/hhexen/hhexen-${version}-src.tgz"; diff --git a/pkgs/games/instead/default.nix b/pkgs/games/instead/default.nix index 5c35219c19bf4..cafdd2b84f0d7 100644 --- a/pkgs/games/instead/default.nix +++ b/pkgs/games/instead/default.nix @@ -1,8 +1,6 @@ { lib, stdenv, fetchurl, SDL2, SDL2_ttf, SDL2_image, SDL2_mixer, pkg-config, lua, zlib, unzip }: let - version = "3.3.2"; - # I took several games at random from https://instead.syscall.ru/games/ games = [ (fetchurl { @@ -28,8 +26,9 @@ let ]; in -stdenv.mkDerivation { - name = "instead-" + version; +stdenv.mkDerivation rec { + pname = "instead"; + version = "3.3.2"; src = fetchurl { url = "mirror://sourceforge/project/instead/instead/${version}/instead_${version}.tar.gz"; diff --git a/pkgs/games/itch-setup/default.nix b/pkgs/games/itch-setup/default.nix new file mode 100644 index 0000000000000..55d488bcaac06 --- /dev/null +++ b/pkgs/games/itch-setup/default.nix @@ -0,0 +1,24 @@ +{ lib, writeShellScriptBin, steam-run, fetchurl }: +let + + pname = "itch-setup"; + version = "1.26.0"; + + src = fetchurl { + url = "https://broth.itch.ovh/itch-setup/linux-amd64/${version}/unpacked/default"; + hash = "sha256-bcJKqhgZK42Irx12BIvbTDMb/DHEOEXljetlDokF7x8="; + executable = true; + }; + +in +(writeShellScriptBin pname ''exec ${steam-run}/bin/steam-run ${src} "$@"'') // { + + passthru = { inherit pname version src; }; + meta = with lib; { + description = "An installer for the itch.io desktop app"; + homepage = "https://github.com/itchio/itch-setup"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ pasqui23 ]; + }; +} diff --git a/pkgs/games/itch/default.nix b/pkgs/games/itch/default.nix new file mode 100644 index 0000000000000..a8cfe8f24d76b --- /dev/null +++ b/pkgs/games/itch/default.nix @@ -0,0 +1,64 @@ +{ lib +, stdenvNoCC +, fetchurl +, libnotify +, nss +, gtk3 +, fetchFromGitHub +, makeDesktopItem +, itch-setup +, runtimeShell +}: +stdenvNoCC.mkDerivation rec{ + pname = "itch"; + version = "25.5.1"; + + src = fetchFromGitHub { + owner = "itchio"; + repo = pname; + rev = "v${version}"; + hash = "sha256-Pi3l3uK4kr+N3p7fGQuqckYIzycRqJHDVX00reoSbp4="; + }; + + desktopItems = [ + (makeDesktopItem { + name = pname; + exec = pname; + icon = pname; + desktopName = pname; + mimeType = "x-scheme-handler/itchio;x-scheme-handler/itch"; + comment = "Install and play itch.io games easily"; + extraDesktopEntries = { + TryExec = "itch %U"; + Categories = "Game;"; + }; + }) + ]; + + itchBin = '' + #!${runtimeShell} + exec ${itch-setup}/bin/itch-setup --prefer-launch -- "$@" + ''; + + passAsFile = [ "itchBin" ]; + + # as taken from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=itch + installPhase = '' + install -Dm0777 $itchBinPath $out/bin/itch + for icon in release/images/itch-icons/icon*.png + do + iconsize="''${icon#release/images/itch-icons/icon}" + iconsize="''${iconsize%.png}" + icondir="$out/share/icons/hicolor/''${iconsize}x''${iconsize}/apps/" + install -Dm644 "$icon" "$icondir/itch.png" + done + ''; + + meta = with lib; { + description = "The best way to play itch.io games"; + homepage = "https://github.com/itchio/itch"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ pasqui23 ]; + }; +} diff --git a/pkgs/games/ivan/default.nix b/pkgs/games/ivan/default.nix index f16aa75263275..ce0eeea738afa 100644 --- a/pkgs/games/ivan/default.nix +++ b/pkgs/games/ivan/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "ivan"; - version = "058"; + version = "059"; src = fetchFromGitHub { owner = "Attnam"; repo = "ivan"; rev = "v${version}"; - sha256 = "04jzs8wad2b3g9hvnijr4r89iiw6b1i44zdzkg0dy447lrw6l6xc"; + sha256 = "sha256-5Ijy28LLx1TGnZE6ZNQXPYfvW2KprF+91fKx2MzLEms="; }; nativeBuildInputs = [ cmake pkg-config ]; @@ -64,6 +64,6 @@ stdenv.mkDerivation rec { homepage = "https://attnam.com/"; license = licenses.gpl2Plus; platforms = platforms.linux; - maintainers = with maintainers; [freepotion]; + maintainers = with maintainers; []; }; } diff --git a/pkgs/games/legendary-gl/default.nix b/pkgs/games/legendary-gl/default.nix index cbdfbc22891be..082b9220c0e87 100644 --- a/pkgs/games/legendary-gl/default.nix +++ b/pkgs/games/legendary-gl/default.nix @@ -7,13 +7,13 @@ buildPythonApplication rec { pname = "legendary-gl"; # Name in pypi - version = "0.20.18"; + version = "0.20.25"; src = fetchFromGitHub { owner = "derrod"; repo = "legendary"; rev = version; - sha256 = "0d31c8grvcw7y3sh2x90cxhj612k6f491w2r12j1q33d2v9sqm4j"; + sha256 = "07z5ffi7lnvs64pksy30fbfv2i11dkkycyh31vyc4y7fsn1vd0vf"; }; propagatedBuildInputs = [ requests ]; diff --git a/pkgs/games/liberation-circuit/default.nix b/pkgs/games/liberation-circuit/default.nix index 478fd606376a4..c1f03e036c9fe 100644 --- a/pkgs/games/liberation-circuit/default.nix +++ b/pkgs/games/liberation-circuit/default.nix @@ -64,7 +64,7 @@ stdenv.mkDerivation rec { Escape from a hostile computer system! Harvest data to create an armada of battle-processes to aid your escape! Take command directly and play the game as an RTS, or use the game's built-in editor and compiler to write your own unit AI in a simplified version of C. ''; homepage = "https://linleyh.itch.io/liberation-circuit"; - maintainers = with maintainers; [ angustrau ]; + maintainers = with maintainers; [ emilytrau ]; license = licenses.gpl3Only; platforms = platforms.linux; }; diff --git a/pkgs/games/linthesia/default.nix b/pkgs/games/linthesia/default.nix new file mode 100644 index 0000000000000..0914722a9acbd --- /dev/null +++ b/pkgs/games/linthesia/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, python3, libGL, libGLU +, alsa-lib, glibmm, sqlite, SDL2, SDL2_ttf_2_0_15, SDL2_image, gtk3, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "linthesia"; + version = "0.8.0"; + + src = fetchFromGitHub { + owner = "linthesia"; + repo = "linthesia"; + rev = version; + sha256 = "sha256-bdW0RlV14ttnK8NizfNfXmZ7zlJOqZCpVvt8vT2Pjys="; + }; + + postPatch = '' + patchShebangs meson_post_install.py + ''; + + nativeBuildInputs = [ meson ninja pkg-config python3 wrapGAppsHook ]; + buildInputs = [ + libGL + libGLU + alsa-lib + glibmm + sqlite + SDL2 + SDL2_ttf_2_0_15 + SDL2_image + gtk3.out # icon cache + ]; + + meta = with lib; { + description = "A game of playing music using a MIDI keyboard following a MIDI file"; + inherit (src.meta) homepage; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/lzwolf/default.nix b/pkgs/games/lzwolf/default.nix new file mode 100644 index 0000000000000..4faa7419b7ab9 --- /dev/null +++ b/pkgs/games/lzwolf/default.nix @@ -0,0 +1,44 @@ +{ stdenv, lib, fetchFromBitbucket, p7zip, cmake +, SDL2, bzip2, zlib, libjpeg +, libsndfile, mpg123 +, SDL2_net, SDL2_mixer }: + +stdenv.mkDerivation rec { + pname = "lzwolf"; + version = "unstable-2022-01-04"; + + src = fetchFromBitbucket { + owner = "linuxwolf6"; + repo = "lzwolf"; + rev = "6e470316382b87378966f441e233760ce0ff478c"; + sha256 = "sha256-IbZleY2FPyW3ORIGO2YFXQyAf1l9nDthpJjEKTTsilM="; + }; + nativeBuildInputs = [ p7zip cmake ]; + buildInputs = [ + SDL2 bzip2 zlib libjpeg SDL2_mixer SDL2_net libsndfile mpg123 + ]; + + cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=Release" + "-DGPL=ON" + ]; + + doCheck = true; + + installPhase = '' + install -Dm755 lzwolf "$out/lib/lzwolf/lzwolf" + for i in *.pk3; do + install -Dm644 "$i" "$out/lib/lzwolf/$i" + done + mkdir -p $out/bin + ln -s $out/lib/lzwolf/lzwolf $out/bin/lzwolf + ''; + + meta = with lib; { + homepage = "https://bitbucket.org/linuxwolf6/lzwolf"; + description = "Enhanced fork of ECWolf, a Wolfenstein 3D source port"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ tgunnoe ]; + }; +} diff --git a/pkgs/games/megaglest/default.nix b/pkgs/games/megaglest/default.nix index 5f79b86956cc2..30383e5f4067e 100644 --- a/pkgs/games/megaglest/default.nix +++ b/pkgs/games/megaglest/default.nix @@ -51,7 +51,7 @@ stdenv.mkDerivation { 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/"; + homepage = "https://megaglest.org/"; maintainers = [ maintainers.matejc ]; platforms = platforms.linux; }; diff --git a/pkgs/games/minecraft-server/update.sh b/pkgs/games/minecraft-server/update.sh deleted file mode 100755 index 433a12a9caf62..0000000000000 --- a/pkgs/games/minecraft-server/update.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i bash -p curl jq common-updater-scripts - -BASEDIR="$(dirname "$0")" - -# get current release version -versions=$(curl -s 'https://launchermeta.mojang.com/mc/game/version_manifest.json') -version=$(echo $versions | jq .latest.release) -url=$(echo $versions | jq -r ".versions[] | select(.id == $version) | .url") - -# get current server.jar -versions=$(curl -s $url | jq .downloads.server) -sha1=$(echo $versions | jq .sha1) -url=$(echo $versions | jq .url) - -echo $version: $url:$sha1 - -# change default.nix -sed -i "s/version = \"[0-9.]*\";/version = ${version};/g" "$BASEDIR/default.nix" -sed -i "s+url = \"[a-zA-Z0-9/:.]*/server.jar\";+url = $url;+g" "$BASEDIR/default.nix" -sed -i "s/sha1 = \"[a-zA-Z0-9]*\";/sha1 = ${sha1};/g" "$BASEDIR/default.nix" diff --git a/pkgs/games/minecraft-servers/default.nix b/pkgs/games/minecraft-servers/default.nix new file mode 100644 index 0000000000000..f3d4aad16698e --- /dev/null +++ b/pkgs/games/minecraft-servers/default.nix @@ -0,0 +1,24 @@ +{ callPackage, lib, javaPackages }: +let + versions = lib.importJSON ./versions.json; + + latestVersion = lib.last (builtins.sort lib.versionOlder (builtins.attrNames versions)); + escapeVersion = builtins.replaceStrings [ "." ] [ "-" ]; + + getJavaVersion = v: (builtins.getAttr "openjdk${toString v}" javaPackages.compiler).headless; + + packages = lib.mapAttrs' + (version: value: { + name = "vanilla-${escapeVersion version}"; + value = callPackage ./derivation.nix { + inherit (value) version url sha1; + jre_headless = getJavaVersion (if value.javaVersion == null then 8 else value.javaVersion); # versions <= 1.6 will default to 8 + }; + }) + versions; +in +lib.recurseIntoAttrs ( + packages // { + vanilla = builtins.getAttr "vanilla-${escapeVersion latestVersion}" packages; + } +) diff --git a/pkgs/games/minecraft-server/default.nix b/pkgs/games/minecraft-servers/derivation.nix index 02054f1ad8b52..eda7da943ca54 100644 --- a/pkgs/games/minecraft-server/default.nix +++ b/pkgs/games/minecraft-servers/derivation.nix @@ -1,13 +1,9 @@ -{ lib, stdenv, fetchurl, nixosTests, jre_headless }: +{ lib, stdenv, fetchurl, nixosTests, jre_headless, version, url, sha1 }: stdenv.mkDerivation { pname = "minecraft-server"; - version = "1.18.1"; + inherit version; - src = fetchurl { - url = "https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar"; - # sha1 because that comes from mojang via api - sha1 = "125e5adf40c659fd3bce3e66e67a16bb49ecc1b9"; - }; + src = fetchurl { inherit url sha1; }; preferLocalBuild = true; @@ -27,7 +23,7 @@ stdenv.mkDerivation { passthru = { tests = { inherit (nixosTests) minecraft-server; }; - updateScript = ./update.sh; + updateScript = ./update.py; }; meta = with lib; { @@ -35,6 +31,6 @@ stdenv.mkDerivation { homepage = "https://minecraft.net"; license = licenses.unfreeRedistributable; platforms = platforms.unix; - maintainers = with maintainers; [ thoughtpolice tomberek costrouc ]; + maintainers = with maintainers; [ thoughtpolice tomberek costrouc jyooru ]; }; } diff --git a/pkgs/games/minecraft-servers/update.py b/pkgs/games/minecraft-servers/update.py new file mode 100755 index 0000000000000..0e7f10a8c9323 --- /dev/null +++ b/pkgs/games/minecraft-servers/update.py @@ -0,0 +1,156 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i python3 -p python3Packages.requests python3Packages.dataclasses-json + +import json +from dataclasses import dataclass, field +from datetime import datetime +from pathlib import Path +from typing import Any, Dict, List, Optional + +import requests +from dataclasses_json import DataClassJsonMixin, LetterCase, config +from marshmallow import fields + + +@dataclass +class Download(DataClassJsonMixin): + sha1: str + size: int + url: str + + +@dataclass +class Version(DataClassJsonMixin): + id: str + type: str + url: str + time: datetime = field( + metadata=config( + encoder=datetime.isoformat, + decoder=datetime.fromisoformat, + mm_field=fields.DateTime(format="iso"), + ) + ) + release_time: datetime = field( + metadata=config( + encoder=datetime.isoformat, + decoder=datetime.fromisoformat, + mm_field=fields.DateTime(format="iso"), + letter_case=LetterCase.CAMEL, + ) + ) + + def get_manifest(self) -> Any: + """Return the version's manifest.""" + response = requests.get(self.url) + response.raise_for_status() + return response.json() + + def get_downloads(self) -> Dict[str, Download]: + """ + Return all downloadable files from the version's manifest, in Download + objects. + """ + return { + download_name: Download.from_dict(download_info) + for download_name, download_info in self.get_manifest()["downloads"].items() + } + + def get_java_version(self) -> Any: + """ + Return the java version specified in a version's manifest, if it is + present. Versions <= 1.6 do not specify this. + """ + return self.get_manifest().get("javaVersion", {}).get("majorVersion", None) + + def get_server(self) -> Optional[Download]: + """ + If the version has a server download available, return the Download + object for the server download. If the version does not have a server + download avilable, return None. + """ + downloads = self.get_downloads() + if "server" in downloads: + return downloads["server"] + return None + + +def get_versions() -> List[Version]: + """Return a list of Version objects for all available versions.""" + response = requests.get( + "https://launchermeta.mojang.com/mc/game/version_manifest.json" + ) + response.raise_for_status() + data = response.json() + return [Version.from_dict(version) for version in data["versions"]] + + +def get_major_release(version_id: str) -> str: + """ + Return the major release for a version. The major release for 1.17 and + 1.17.1 is 1.17. + """ + if not len(version_id.split(".")) >= 2: + raise ValueError(f"version not in expected format: '{version_id}'") + return ".".join(version_id.split(".")[:2]) + + +def group_major_releases(releases: List[Version]) -> Dict[str, List[Version]]: + """ + Return a dictionary containing each version grouped by each major release. + The key "1.17" contains a list with two Version objects, one for "1.17" + and another for "1.17.1". + """ + groups: Dict[str, List[Version]] = {} + for release in releases: + major_release = get_major_release(release.id) + if major_release not in groups: + groups[major_release] = [] + groups[major_release].append(release) + return groups + + +def get_latest_major_releases(releases: List[Version]) -> Dict[str, Version]: + """ + Return a dictionary containing the latest version for each major release. + The latest major release for 1.16 is 1.16.5, so the key "1.16" contains a + Version object for 1.16.5. + """ + return { + major_release: sorted(releases, key=lambda x: x.id, reverse=True)[0] + for major_release, releases in group_major_releases(releases).items() + } + + +def generate() -> Dict[str, Dict[str, str]]: + """ + Return a dictionary containing the latest url, sha1 and version for each major + release. + """ + versions = get_versions() + releases = list( + filter(lambda version: version.type == "release", versions) + ) # remove snapshots and betas + latest_major_releases = get_latest_major_releases(releases) + + servers = { + version: Download.schema().dump(download_info) # Download -> dict + for version, download_info in { + version: value.get_server() + for version, value in latest_major_releases.items() + }.items() + if download_info is not None # versions < 1.2 do not have a server + } + for server in servers.values(): + del server["size"] # don't need it + + for version, server in servers.items(): + server["version"] = latest_major_releases[version].id + server["javaVersion"] = latest_major_releases[version].get_java_version() + return servers + + +if __name__ == "__main__": + with open(Path(__file__).parent / "versions.json", "w") as file: + json.dump(generate(), file, indent=2) + file.write("\n") diff --git a/pkgs/games/minecraft-servers/versions.json b/pkgs/games/minecraft-servers/versions.json new file mode 100644 index 0000000000000..ba0b652a6bdc4 --- /dev/null +++ b/pkgs/games/minecraft-servers/versions.json @@ -0,0 +1,104 @@ +{ + "1.18": { + "url": "https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar", + "sha1": "125e5adf40c659fd3bce3e66e67a16bb49ecc1b9", + "version": "1.18.1", + "javaVersion": 17 + }, + "1.17": { + "url": "https://launcher.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar", + "sha1": "a16d67e5807f57fc4e550299cf20226194497dc2", + "version": "1.17.1", + "javaVersion": 16 + }, + "1.16": { + "url": "https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar", + "sha1": "1b557e7b033b583cd9f66746b7a9ab1ec1673ced", + "version": "1.16.5", + "javaVersion": 8 + }, + "1.15": { + "url": "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar", + "sha1": "bb2b6b1aefcd70dfd1892149ac3a215f6c636b07", + "version": "1.15.2", + "javaVersion": 8 + }, + "1.14": { + "url": "https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar", + "sha1": "3dc3d84a581f14691199cf6831b71ed1296a9fdf", + "version": "1.14.4", + "javaVersion": 8 + }, + "1.13": { + "url": "https://launcher.mojang.com/v1/objects/3737db93722a9e39eeada7c27e7aca28b144ffa7/server.jar", + "sha1": "3737db93722a9e39eeada7c27e7aca28b144ffa7", + "version": "1.13.2", + "javaVersion": 8 + }, + "1.12": { + "url": "https://launcher.mojang.com/v1/objects/886945bfb2b978778c3a0288fd7fab09d315b25f/server.jar", + "sha1": "886945bfb2b978778c3a0288fd7fab09d315b25f", + "version": "1.12.2", + "javaVersion": 8 + }, + "1.11": { + "url": "https://launcher.mojang.com/v1/objects/f00c294a1576e03fddcac777c3cf4c7d404c4ba4/server.jar", + "sha1": "f00c294a1576e03fddcac777c3cf4c7d404c4ba4", + "version": "1.11.2", + "javaVersion": 8 + }, + "1.10": { + "url": "https://launcher.mojang.com/v1/objects/3d501b23df53c548254f5e3f66492d178a48db63/server.jar", + "sha1": "3d501b23df53c548254f5e3f66492d178a48db63", + "version": "1.10.2", + "javaVersion": 8 + }, + "1.9": { + "url": "https://launcher.mojang.com/v1/objects/edbb7b1758af33d365bf835eb9d13de005b1e274/server.jar", + "sha1": "edbb7b1758af33d365bf835eb9d13de005b1e274", + "version": "1.9.4", + "javaVersion": 8 + }, + "1.8": { + "url": "https://launcher.mojang.com/v1/objects/b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd/server.jar", + "sha1": "b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd", + "version": "1.8.9", + "javaVersion": 8 + }, + "1.7": { + "url": "https://launcher.mojang.com/v1/objects/4cec86a928ec171fdc0c6b40de2de102f21601b5/server.jar", + "sha1": "4cec86a928ec171fdc0c6b40de2de102f21601b5", + "version": "1.7.9", + "javaVersion": 8 + }, + "1.6": { + "url": "https://launcher.mojang.com/v1/objects/050f93c1f3fe9e2052398f7bd6aca10c63d64a87/server.jar", + "sha1": "050f93c1f3fe9e2052398f7bd6aca10c63d64a87", + "version": "1.6.4", + "javaVersion": null + }, + "1.5": { + "url": "https://launcher.mojang.com/v1/objects/f9ae3f651319151ce99a0bfad6b34fa16eb6775f/server.jar", + "sha1": "f9ae3f651319151ce99a0bfad6b34fa16eb6775f", + "version": "1.5.2", + "javaVersion": null + }, + "1.4": { + "url": "https://launcher.mojang.com/v1/objects/2f0ec8efddd2f2c674c77be9ddb370b727dec676/server.jar", + "sha1": "2f0ec8efddd2f2c674c77be9ddb370b727dec676", + "version": "1.4.7", + "javaVersion": null + }, + "1.3": { + "url": "https://launcher.mojang.com/v1/objects/3de2ae6c488135596e073a9589842800c9f53bfe/server.jar", + "sha1": "3de2ae6c488135596e073a9589842800c9f53bfe", + "version": "1.3.2", + "javaVersion": null + }, + "1.2": { + "url": "https://launcher.mojang.com/v1/objects/d8321edc9470e56b8ad5c67bbd16beba25843336/server.jar", + "sha1": "d8321edc9470e56b8ad5c67bbd16beba25843336", + "version": "1.2.5", + "javaVersion": null + } +} diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix index 7ffa361da559c..9e94bb6a4a7dc 100644 --- a/pkgs/games/minetest/default.nix +++ b/pkgs/games/minetest/default.nix @@ -1,7 +1,8 @@ { 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 +, leveldb, postgresql, hiredis, libiconv, zlib, libXrandr, libX11, ninja, prometheus-cpp +, OpenGL, OpenAL ? openal, Carbon, Cocoa }: with lib; @@ -9,6 +10,21 @@ with lib; let boolToCMake = b: if b then "ON" else "OFF"; + irrlichtMt = stdenv.mkDerivation rec { + pname = "irrlichtMt"; + version = "1.9.0mt4"; + src = fetchFromGitHub { + owner = "minetest"; + repo = "irrlicht"; + rev = version; + sha256 = "sha256-YlXn9LrfGkjdb8+zQGDgrInolUYj9nVSF2AXWFpEEkw="; + }; + nativeBuildInputs = [ cmake ]; + buildInputs = [ zlib libjpeg libpng libGLU libGL libXrandr libX11 libXxf86vm ]; + outputs = [ "out" "dev" ]; + meta = irrlicht.meta; + }; + generic = { version, rev ? version, sha256, dataRev ? version, dataSha256, buildClient ? true, buildServer ? false }: let sources = { src = fetchFromGitHub { @@ -30,29 +46,41 @@ let src = sources.src; cmakeFlags = [ + "-G Ninja" "-DBUILD_CLIENT=${boolToCMake buildClient}" "-DBUILD_SERVER=${boolToCMake buildServer}" - "-DENABLE_FREETYPE=1" "-DENABLE_GETTEXT=1" + "-DENABLE_SPATIAL=1" "-DENABLE_SYSTEM_JSONCPP=1" - "-DIRRLICHT_INCLUDE_DIR=${irrlicht}/include/irrlicht" + "-DIRRLICHT_INCLUDE_DIR=${irrlichtMt.dev}/include/irrlicht" + + # Remove when https://github.com/NixOS/nixpkgs/issues/144170 is fixed + "-DCMAKE_INSTALL_BINDIR=bin" + "-DCMAKE_INSTALL_DATADIR=share" + "-DCMAKE_INSTALL_DOCDIR=share/doc" + "-DCMAKE_INSTALL_DOCDIR=share/doc" + "-DCMAKE_INSTALL_MANDIR=share/man" + "-DCMAKE_INSTALL_LOCALEDIR=share/locale" + ] ++ optionals buildClient [ "-DOpenGL_GL_PREFERENCE=GLVND" + ] ++ optionals buildServer [ + "-DENABLE_PROMETHEUS=1" ]; NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3 - nativeBuildInputs = [ cmake doxygen graphviz ]; + nativeBuildInputs = [ cmake doxygen graphviz ninja ]; buildInputs = [ - irrlicht luajit jsoncpp gettext freetype sqlite curl bzip2 ncurses + irrlichtMt luajit jsoncpp gettext freetype sqlite curl bzip2 ncurses gmp libspatialindex ] ++ optionals stdenv.isDarwin [ libiconv OpenGL OpenAL Carbon Cocoa ] ++ optionals buildClient [ libpng libjpeg libGLU libGL openal libogg libvorbis xorg.libX11 libXxf86vm ] ++ optionals buildServer [ - leveldb postgresql hiredis + leveldb postgresql hiredis prometheus-cpp ]; postInstall = '' @@ -66,25 +94,20 @@ let license = licenses.lgpl21Plus; platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ pyrolagus fpletz ]; + # never built on Hydra + # https://hydra.nixos.org/job/nixpkgs/trunk/minetestclient_4.x86_64-darwin + # https://hydra.nixos.org/job/nixpkgs/trunk/minetestserver_4.x86_64-darwin + broken = (lib.versionOlder version "5.0.0") && stdenv.isDarwin; }; }; - v4 = { - version = "0.4.17.1"; - sha256 = "19sfblgh9mchkgw32n7gdvm7a8a9jxsl9cdlgmxn9bk9m939a2sg"; - dataSha256 = "1g8iw2pya32ifljbdx6z6rpcinmzm81i9minhi2bi1d500ailn7s"; - }; - v5 = { - version = "5.4.1"; - sha256 = "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8"; - dataSha256 = "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4"; + version = "5.5.0"; + sha256 = "sha256-V+ggqvZibSQrJbrtNCEkmRYHhgSKTQsdBh3c8+t6WeA="; + dataSha256 = "sha256-6ZS3EET3nm09eL0czCGadwzon35/EBfAg2KjPX3ZP/0="; }; in { - minetestclient_4 = generic (v4 // { buildClient = true; buildServer = false; }); - minetestserver_4 = generic (v4 // { buildClient = false; buildServer = true; }); - minetestclient_5 = generic (v5 // { buildClient = true; buildServer = false; }); minetestserver_5 = generic (v5 // { buildClient = false; buildServer = true; }); } diff --git a/pkgs/games/minetest/disable_fixup.patch b/pkgs/games/minetest/disable_fixup.patch deleted file mode 100644 index 1c378d7f83fcb..0000000000000 --- a/pkgs/games/minetest/disable_fixup.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -802,7 +802,6 @@ - install(CODE " - set(BU_CHMOD_BUNDLE_ITEMS ON) - include(BundleUtilities) -- fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/${BUNDLE_PATH}\" \"\" \"\${CMAKE_INSTALL_PREFIX}/${BINDIR}\") - " COMPONENT Runtime) - endif() - diff --git a/pkgs/games/minetest/fix_wordsize_confusion.patch b/pkgs/games/minetest/fix_wordsize_confusion.patch deleted file mode 100644 index 9540a434dafe3..0000000000000 --- a/pkgs/games/minetest/fix_wordsize_confusion.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -17,6 +17,7 @@ - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -+#include <cstdint> - #include "irrlicht.h" // createDevice - #include "irrlichttypes_extrabloated.h" - #include "chat_interface.h" diff --git a/pkgs/games/moon-buggy/default.nix b/pkgs/games/moon-buggy/default.nix index b623d7bd53969..12eb6b24a806c 100644 --- a/pkgs/games/moon-buggy/default.nix +++ b/pkgs/games/moon-buggy/default.nix @@ -1,16 +1,15 @@ {lib, stdenv, fetchurl, ncurses}: stdenv.mkDerivation rec { - baseName = "moon-buggy"; + pname = "moon-buggy"; version = "1.0.51"; - name = "${baseName}-${version}"; buildInputs = [ ncurses ]; src = fetchurl { - url = "http://m.seehuhn.de/programs/${name}.tar.gz"; + url = "http://m.seehuhn.de/programs/moon-buggy-${version}.tar.gz"; sha256 = "0gyjwlpx0sd728dwwi7pwks4zfdy9rm1w1xbhwg6zip4r9nc2b9m"; }; diff --git a/pkgs/games/mudlet/default.nix b/pkgs/games/mudlet/default.nix index aacc15d19b975..46ae45b2202b3 100644 --- a/pkgs/games/mudlet/default.nix +++ b/pkgs/games/mudlet/default.nix @@ -1,5 +1,25 @@ -{ fetchFromGitHub, lib, stdenv, wrapQtAppsHook, git, pcre, pugixml, qtbase, libsForQt5, libsecret, qtmultimedia, qttools, yajl, libzip, hunspell -, boost, libGLU, lua, cmake, which, pkg-config, }: +{ lib +, stdenv +, fetchFromGitHub +, cmake +, git +, pkg-config +, qttools +, which +, wrapQtAppsHook +, boost +, hunspell +, libGLU +, libsForQt5 +, libsecret +, libzip +, lua +, pcre +, pugixml +, qtbase +, qtmultimedia +, yajl +}: let luaEnv = lua.withPackages(ps: with ps; [ @@ -8,25 +28,46 @@ let in stdenv.mkDerivation rec { pname = "mudlet"; - version = "4.12.0"; + version = "4.15.1"; src = fetchFromGitHub { owner = "Mudlet"; repo = "Mudlet"; rev = "Mudlet-${version}"; fetchSubmodules = true; - sha256 = "023plm5mwm15xikmdh1mq3gx1n7y4a0r0kw9fvk3rvm9brm78hzp"; + hash = "sha256-GnTQc0Jh4YaQnfy7fYsTCACczlzWCQ+auKYoU9ET83M="; }; - nativeBuildInputs = [ pkg-config cmake wrapQtAppsHook git qttools which ]; + nativeBuildInputs = [ + cmake + git + pkg-config + qttools + which + wrapQtAppsHook + ]; + buildInputs = [ - pcre pugixml qtbase libsForQt5.qtkeychain qtmultimedia luaEnv libsecret libzip libGLU yajl boost hunspell + boost + hunspell + libGLU + libsForQt5.qtkeychain + libsecret + libzip + luaEnv + pcre + pugixml + qtbase + qtmultimedia + yajl ]; WITH_FONTS = "NO"; WITH_UPDATER = "NO"; installPhase = '' + runHook preInstall + mkdir -pv $out/lib cp 3rdparty/edbee-lib/edbee-lib/qslog/lib/libQsLog.so $out/lib mkdir -pv $out/bin @@ -41,15 +82,19 @@ stdenv.mkDerivation rec { cp -r ../mudlet.png $out/share/pixmaps/ makeQtWrapper $out/mudlet $out/bin/mudlet \ + --set LUA_CPATH "${luaEnv}/lib/lua/${lua.luaversion}/?.so" \ + --prefix LUA_PATH : "$NIX_LUA_PATH" \ --prefix LD_LIBRARY_PATH : "${libsForQt5.qtkeychain}/lib/" \ --run "cd $out"; + + runHook postInstall ''; meta = with lib; { description = "Crossplatform mud client"; - homepage = "https://mudlet.org"; + homepage = "https://www.mudlet.org/"; maintainers = [ maintainers.wyvie maintainers.pstn ]; platforms = platforms.linux; - license = licenses.gpl2; + license = licenses.gpl2Plus; }; } diff --git a/pkgs/games/multimc/0001-pick-latest-java-first.patch b/pkgs/games/multimc/0001-pick-latest-java-first.patch deleted file mode 100644 index a65dcbfd037d6..0000000000000 --- a/pkgs/games/multimc/0001-pick-latest-java-first.patch +++ /dev/null @@ -1,48 +0,0 @@ -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 - ---- - launcher/java/JavaInstallList.cpp | 4 ++-- - launcher/java/JavaUtils.cpp | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/launcher/java/JavaInstallList.cpp b/launcher/java/JavaInstallList.cpp -index 0bded03c..40898e20 100644 ---- a/launcher/java/JavaInstallList.cpp -+++ b/launcher/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/launcher/java/JavaUtils.cpp b/launcher/java/JavaUtils.cpp -index 5f004a10..6d633631 100644 ---- a/launcher/java/JavaUtils.cpp -+++ b/launcher/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 deleted file mode 100644 index 732a66ef8b419..0000000000000 --- a/pkgs/games/multimc/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib, mkDerivation, fetchFromGitHub, cmake, jdk8, jdk, zlib, file, makeWrapper, xorg, libpulseaudio, qtbase, libGL, msaClientID ? "" }: - -let - libpath = with xorg; lib.makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm libpulseaudio libGL ]; -in mkDerivation rec { - pname = "multimc"; - version = "unstable-2021-09-08"; - src = fetchFromGitHub { - owner = "MultiMC"; - repo = "MultiMC5"; - rev = "e2355eb276bf355ca4acf526a0f3cc390aa88f8b"; - sha256 = "3G9QPoAbC+uVfUYR0Kq6hnxl9c2mvCzIEYGjwfarQJ8="; - fetchSubmodules = true; - }; - nativeBuildInputs = [ cmake file makeWrapper ]; - buildInputs = [ qtbase jdk8 zlib ]; - - patches = [ ./0001-pick-latest-java-first.patch ]; - - postPatch = '' - # hardcode jdk paths - substituteInPlace launcher/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")' - - # add client ID - substituteInPlace notsecrets/Secrets.cpp \ - --replace 'QString MSAClientID = "";' 'QString MSAClientID = "${msaClientID}";' - ''; - - cmakeFlags = [ "-DMultiMC_LAYOUT=lin-system" ]; - - postInstall = '' - install -Dm644 ../launcher/resources/multimc/scalable/multimc.svg $out/share/pixmaps/multimc.svg - install -Dm755 ../launcher/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 \ - --set GAME_LIBRARY_PATH /run/opengl-driver/lib:${libpath} \ - --prefix PATH : ${lib.makeBinPath [ xorg.xrandr ]} - ''; - - meta = with lib; { - homepage = "https://multimc.org/"; - description = "A free, open source launcher for Minecraft"; - longDescription = '' - Allows you to have multiple, separate instances of Minecraft (each with their own mods, texture packs, saves, etc) and helps you manage them and their associated options with a simple interface. - ''; - platforms = platforms.linux; - license = licenses.asl20; - # upstream don't want us to re-distribute this application: - # https://github.com/NixOS/nixpkgs/issues/131983 - hydraPlatforms = []; - maintainers = with maintainers; [ cleverca22 starcraft66 ]; - }; -} diff --git a/pkgs/games/n2048/default.nix b/pkgs/games/n2048/default.nix index b3d06a51fd3c8..ec3a4e2bbeecf 100644 --- a/pkgs/games/n2048/default.nix +++ b/pkgs/games/n2048/default.nix @@ -1,35 +1,26 @@ -{lib, stdenv, fetchurl, ncurses}: -let - s = - rec { - baseName = "n2048"; - version = "0.1"; - name = "${baseName}-${version}"; - url = "http://www.dettus.net/n2048/${baseName}_v${version}.tar.gz"; +{ lib, stdenv, fetchurl, ncurses }: + +stdenv.mkDerivation rec { + pname = "n2048"; + version = "0.1"; + src = fetchurl { + url = "http://www.dettus.net/n2048/n2048_v${version}.tar.gz"; sha256 = "184z2rr0rnj4p740qb4mzqr6kgd76ynb5gw9bj8hrfshcxdcg1kk"; }; buildInputs = [ ncurses ]; -in -stdenv.mkDerivation { - inherit (s) name version; - inherit buildInputs; - src = fetchurl { - inherit (s) url sha256; - }; makeFlags = [ "DESTDIR=$(out)" ]; preInstall = '' mkdir -p "$out"/{share/man,bin} ''; - meta = { - inherit (s) version; + meta = with lib; { description = "Console implementation of 2048 game"; - license = lib.licenses.bsd2; - maintainers = [lib.maintainers.raskin]; - platforms = lib.platforms.linux; + license = licenses.bsd2; + maintainers = with maintainers; [ raskin ]; + platforms = platforms.linux; homepage = "http://www.dettus.net/n2048/"; }; } diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix index f9939f063c809..2b29bddad93ca 100644 --- a/pkgs/games/nethack/default.nix +++ b/pkgs/games/nethack/default.nix @@ -20,9 +20,9 @@ let in stdenv.mkDerivation rec { version = "3.6.6"; - name = if x11Mode then "nethack-x11-${version}" - else if qtMode then "nethack-qt-${version}" - else "nethack-${version}"; + pname = if x11Mode then "nethack-x11" + else if qtMode then "nethack-qt" + else "nethack"; src = fetchurl { url = "https://nethack.org/download/${version}/nethack-${lib.replaceStrings ["."] [""] version}-src.tgz"; diff --git a/pkgs/games/nottetris2/default.nix b/pkgs/games/nottetris2/default.nix deleted file mode 100644 index 179673c05b633..0000000000000 --- a/pkgs/games/nottetris2/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, zip, love_0_7, makeWrapper, makeDesktopItem }: - -let - pname = "nottetris2"; - version = "2.0"; - - desktopItem = makeDesktopItem { - name = "nottetris2"; - exec = pname; - comment = "It's like tetris, but it's not"; - desktopName = "nottetris2"; - genericName = "nottetris2"; - categories = "Game"; - }; - -in - -stdenv.mkDerivation { - inherit pname version; - - src = fetchFromGitHub { - owner = "Stabyourself"; - repo = pname; - rev = "v${version}"; - sha256 = "17iabh6rr8jim70n96rbhif4xq02g2kppscm8l339yqx6mhb64hs"; - }; - - nativeBuildInputs = [ zip makeWrapper ]; - buildInputs = [ love_0_7 ]; - - installPhase = - '' - mkdir -p $out/bin $out/share/games/lovegames $out/share/applications - zip -9 -r ${pname}.love ./* - mv ${pname}.love $out/share/games/lovegames/${pname}.love - makeWrapper ${love_0_7}/bin/love $out/bin/${pname} --add-flags $out/share/games/lovegames/${pname}.love - ln -s ${desktopItem}/share/applications/* $out/share/applications/ - chmod +x $out/bin/${pname} - ''; - - meta = with lib; { - description = "It's like Tetris, but it's not"; - platforms = platforms.linux; - license = licenses.wtfpl; - maintainers = with maintainers; [ yorickvp ]; - downloadPage = "https://stabyourself.net/nottetris2/"; - }; - -} diff --git a/pkgs/games/npush/default.nix b/pkgs/games/npush/default.nix new file mode 100644 index 0000000000000..d4124557f6e6d --- /dev/null +++ b/pkgs/games/npush/default.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, fetchurl +, ncurses +}: + +stdenv.mkDerivation rec { + pname = "npush"; + version = "0.7"; + + src = fetchurl { + url = "mirror://sourceforge/project/npush/${pname}/${version}/${pname}-${version}.tgz"; + hash = "sha256-8hbSsyeehzd4T3fUhDyebyI/oTHOHr3a8ArYAquivNk="; + }; + + outputs = [ "out" "doc" ]; + + buildInputs = [ + ncurses + ]; + + dontConfigure = true; + + makeFlags = [ + "CC=${stdenv.cc.targetPrefix}c++" + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/npush/levels $doc/share/doc/npush + cp npush $out/bin/ + cp levels/* $out/share/npush/levels + cp CHANGES COPYING CREDITS index.html \ + readme.txt screenshot1.png screenshot2.png $doc/share/doc/npush/ + + runHook postInstall + ''; + + meta = with lib; { + homepage = "http://npush.sourceforge.net/"; + description = "A Sokoban-like game"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = with platforms; unix; + }; +} diff --git a/pkgs/games/npush/run.nix b/pkgs/games/npush/run.nix new file mode 100644 index 0000000000000..bc4a3b5fda3f2 --- /dev/null +++ b/pkgs/games/npush/run.nix @@ -0,0 +1,31 @@ +{ runtimeShell +, symlinkJoin +, writeShellScriptBin +, npush +}: + +let + runScript = writeShellScriptBin "run-npush" '' + set -euo pipefail + CWD=$(pwd) + + if [ -d "./levels" ]; then + echo "Directory ./levels found; skipping levelset copy" + else + echo "Directory ./levels not found; copying the official levelset to the current directory" + mkdir -p ./levels + cp ${npush}/share/npush/levels/* levels/ + chmod 644 levels/* + fi + echo "Now calling npush" + exec "${npush}/bin/npush" + ''; +in +symlinkJoin { + name = "run-npush-${npush.version}"; + + paths = [ + npush + runScript + ]; +} diff --git a/pkgs/games/nxengine-evo/default.nix b/pkgs/games/nxengine-evo/default.nix index e3df235b75732..4660423a35094 100644 --- a/pkgs/games/nxengine-evo/default.nix +++ b/pkgs/games/nxengine-evo/default.nix @@ -1,6 +1,7 @@ { lib, stdenv , fetchpatch , fetchurl +, fetchFromGitHub , cmake , libpng , SDL2 @@ -10,9 +11,11 @@ stdenv.mkDerivation rec { pname = "nxengine-evo"; version = "2.6.4"; - src = fetchurl { - url = "https://github.com/nxengine/nxengine-evo/archive/v${version}.tar.gz"; - sha256 = "1xir74l0vrzrpyl7sfqfxp083dakbix26hd0arwf2y57w1mbjas8"; + src = fetchFromGitHub { + owner = "nxengine"; + repo = "nxengine-evo"; + rev = "v${version}"; + sha256 = "sha256-krK2b1E5JUMxRoEWmb3HZMNSIHfUUGXSpyb4/Zdp+5A="; }; assets = fetchurl { url = "https://github.com/nxengine/nxengine-evo/releases/download/v${version}/NXEngine-v${version}-Linux.tar.xz"; diff --git a/pkgs/games/openra/common.nix b/pkgs/games/openra/common.nix index 41c903e101167..01bd44ee244ab 100644 --- a/pkgs/games/openra/common.nix +++ b/pkgs/games/openra/common.nix @@ -2,7 +2,7 @@ and out-of-tree mod packages (mod.nix). */ { lib, makeSetupHook, curl, unzip, dos2unix, pkg-config, makeWrapper -, lua, mono, dotnetPackages, python +, lua, mono, dotnetPackages, python2 , libGL, freetype, openal, SDL2 , zenity }: @@ -10,7 +10,7 @@ with lib; let - path = makeBinPath ([ mono python ] ++ optional (zenity != null) zenity); + path = makeBinPath ([ mono python2 ] ++ optional (zenity != null) zenity); rpath = makeLibraryPath [ lua freetype openal SDL2 ]; mkdirp = makeSetupHook { } ./mkdirp.sh; @@ -66,7 +66,7 @@ in { makeWrapper mkdirp mono - python + python2 ]; makeFlags = [ "prefix=$(out)" ]; diff --git a/pkgs/games/opensupaplex/default.nix b/pkgs/games/opensupaplex/default.nix new file mode 100644 index 0000000000000..44fc219bef917 --- /dev/null +++ b/pkgs/games/opensupaplex/default.nix @@ -0,0 +1,89 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchurl +, makeDesktopItem +, copyDesktopItems +, testVersion +, opensupaplex +, SDL2 +, SDL2_mixer +}: + +let + # Doesn't seem to be included in tagged releases, but does exist on master. + icon = fetchurl { + url = "https://raw.githubusercontent.com/sergiou87/open-supaplex/b102548699cf16910b59559f689ecfad88d2a7d2/open-supaplex.svg"; + sha256 = "sha256-nKeSBUGjSulbEP7xxc6smsfCRjyc/xsLykH0o3Rq5wo="; + }; +in +stdenv.mkDerivation rec { + pname = "opensupaplex"; + version = "7.1.2"; + + src = fetchFromGitHub { + owner = "sergiou87"; + repo = "open-supaplex"; + rev = "v${version}"; + sha256 = "sha256-hP8dJlLXE5J/oxPhRkrrBl1Y5e9MYbJKi8OApFM3+GU="; + }; + + nativeBuildInputs = [ + SDL2 # For "sdl2-config" + copyDesktopItems + ]; + buildInputs = [ SDL2_mixer ]; + + enableParallelBuilding = true; + + NIX_CFLAGS_COMPILE = [ + "-DFILE_DATA_PATH=${placeholder "out"}/lib/opensupaplex" + "-DFILE_FHS_XDG_DIRS" + ]; + + preBuild = '' + # Makefile is located in this directory + pushd linux + ''; + + postBuild = '' + popd + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,lib,share/icons/hicolor/scalable/apps} + + install -D ./linux/opensupaplex $out/bin/opensupaplex + cp -R ./resources $out/lib/opensupaplex + cp ${icon} $out/share/icons/hicolor/scalable/apps/open-supaplex.svg + + runHook postInstall + ''; + + passthru.tests.version = testVersion { + package = opensupaplex; + command = "opensupaplex --help"; + version = "v${version}"; + }; + + desktopItems = [(makeDesktopItem { + name = "opensupaplex"; + exec = meta.mainProgram; + icon = "open-supaplex"; + desktopName = "OpenSupaplex"; + comment = meta.description; + categories = "Application;Game;"; + })]; + + meta = with lib; { + description = "A decompilation of Supaplex in C and SDL"; + homepage = "https://github.com/sergiou87/open-supaplex"; + changelog = "https://github.com/sergiou87/open-supaplex/blob/master/changelog/v${version}.txt"; + license = licenses.gpl3Only; + maintainers = [ maintainers.ivar ]; + platforms = platforms.linux; # Many more are supported upstream, but only linux is tested. + mainProgram = "opensupaplex"; + }; +} diff --git a/pkgs/games/openttd/nml.nix b/pkgs/games/openttd/nml.nix index 094330faffbb9..bb44d9eee0b6d 100644 --- a/pkgs/games/openttd/nml.nix +++ b/pkgs/games/openttd/nml.nix @@ -2,13 +2,13 @@ python3Packages.buildPythonApplication rec { pname = "openttd-nml"; - version = "0.5.3"; + version = "0.6.1"; src = fetchFromGitHub { owner = "OpenTTD"; repo = "nml"; rev = version; - sha256 = "0kfnkshff3wrxsj1wpfbbw2mmgww2q80v63p5d2pp1f38x8j33w9"; + sha256 = "0z0n4lqvnqigfjjhmmz7mvis7iivd4a8d287ya2yscfg5hznnqh2"; }; propagatedBuildInputs = with python3Packages; [ply pillow]; diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix index ab826c4f0b31b..5ddbabe042ea3 100644 --- a/pkgs/games/osu-lazer/default.nix +++ b/pkgs/games/osu-lazer/default.nix @@ -1,111 +1,70 @@ -{ lib, stdenv, fetchFromGitHub, fetchurl, makeWrapper, makeDesktopItem, linkFarmFromDrvs -, dotnetCorePackages, dotnetPackages, cacert -, ffmpeg_4, alsa-lib, SDL2, lttng-ust, numactl, alsa-plugins +{ lib +, stdenvNoCC +, buildDotnetModule +, fetchFromGitHub +, makeDesktopItem +, copyDesktopItems +, ffmpeg +, alsa-lib +, SDL2 +, lttng-ust +, numactl }: -let - runtimeDeps = [ - ffmpeg_4 alsa-lib SDL2 lttng-ust numactl - ]; - - dotnet-sdk = dotnetCorePackages.sdk_5_0; - dotnet-runtime = dotnetCorePackages.runtime_5_0; - - # https://docs.microsoft.com/en-us/dotnet/core/rid-catalog#using-rids - runtimeId = "linux-x64"; - -in stdenv.mkDerivation rec { +buildDotnetModule rec { pname = "osu-lazer"; - version = "2021.1113.0"; + version = "2022.205.0"; src = fetchFromGitHub { owner = "ppy"; repo = "osu"; rev = version; - sha256 = "EDW3DGnDkdH6k4XKDc5xWFYeIMcoRN4S9nMBF+TeAl8="; + sha256 = "sha256-CzXgj3990qWOwIjhbU8vO29nDO/7HrGDtsc67VIenPI="; }; - 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 = { pname, version, sha256 }: fetchurl { - name = "${pname}-${version}.nupkg"; - url = "https://www.nuget.org/api/v2/package/${pname}/${version}"; - inherit sha256; - }; - }); - - configurePhase = '' - runHook preConfigure - - export HOME=$(mktemp -d) - export DOTNET_CLI_TELEMETRY_OPTOUT=1 - export DOTNET_NOLOGO=1 - - nuget sources Add -Name nixos -Source "$PWD/nixos" - nuget init "$nugetDeps" "$PWD/nixos" + projectFile = "osu.Desktop/osu.Desktop.csproj"; + nugetDeps = ./deps.nix; - # FIXME: https://github.com/NuGet/Home/issues/4413 - mkdir -p $HOME/.nuget/NuGet - cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet + nativeBuildInputs = [ copyDesktopItems ]; - dotnet restore --source "$PWD/nixos" osu.Desktop --runtime ${runtimeId} - - runHook postConfigure + preConfigure = '' + dotnetFlags+=( + --runtime linux-x64 + ) ''; - buildPhase = '' - runHook preBuild - dotnet build osu.Desktop \ - --no-restore \ - --configuration Release \ - --runtime ${runtimeId} \ - -p:Version=${version} - runHook postBuild - ''; + runtimeDeps = [ + ffmpeg + alsa-lib + SDL2 + lttng-ust + numactl + ]; - installPhase = '' - runHook preInstall + executables = [ "osu!" ]; - dotnet publish osu.Desktop \ - --no-build \ - --configuration Release \ - --runtime ${runtimeId} \ - --no-self-contained \ - --output $out/lib/osu + fixupPhase = '' + runHook preFixup - makeWrapper $out/lib/osu/osu\! $out/bin/osu\! \ - --set DOTNET_ROOT "${dotnet-runtime}" \ - --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" for i in 16 32 48 64 96 128 256 512 1024; do install -D ./assets/lazer.png $out/share/icons/hicolor/''${i}x$i/apps/osu\!.png done - cp -r ${makeDesktopItem { - desktopName = "osu!"; - name = "osu"; - exec = "osu!"; - icon = "osu!"; - comment = meta.description; - type = "Application"; - categories = "Game;"; - }}/share/applications $out/share - runHook postInstall - ''; + ln -sft $out/lib/${pname} ${SDL2}/lib/libSDL2${stdenvNoCC.hostPlatform.extensions.sharedLibrary} + cp -f ${./osu.runtimeconfig.json} "$out/lib/${pname}/osu!.runtimeconfig.json" - 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; + desktopItems = [(makeDesktopItem { + desktopName = "osu!"; + name = "osu"; + exec = "osu!"; + icon = "osu!"; + comment = meta.description; + type = "Application"; + categories = "Game;"; + })]; meta = with lib; { description = "Rhythm is just a *click* away"; diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix index 96b257204f4fe..6ff9f6dfaf802 100644 --- a/pkgs/games/osu-lazer/deps.nix +++ b/pkgs/games/osu-lazer/deps.nix @@ -1,68 +1,69 @@ { fetchNuGet }: [ - (fetchNuGet { pname = "AutoMapper"; version = "10.1.1"; sha256 = "1l1p9g7f7finr8laklbm7h2c45k0swl47iq0ik68js5s6pzvd6f8"; }) + (fetchNuGet { pname = "AutoMapper"; version = "11.0.0"; sha256 = "1ni9mmrqfbspwf7xz6by5415ci5zhg15z3f7596qqpmbn8bqg7wq"; }) (fetchNuGet { pname = "DeltaCompressionDotNet"; version = "2.0.0.0"; sha256 = "0zhj7m3zaf9wcg51385in9qg1xgkvp8yyzgq3r5k4sagm7y68aqy"; }) (fetchNuGet { pname = "DiffPlex"; version = "1.7.0"; sha256 = "09a8hkbx99iwikfl8war629945yv7i8llj9480dbc4kyp6qqlr00"; }) (fetchNuGet { pname = "DiscordRichPresence"; version = "1.0.175"; sha256 = "180sax976327d70qbinv07f65g3w2zbw80n49hckg8wd4rw209vd"; }) (fetchNuGet { pname = "FFmpeg.AutoGen"; version = "4.3.0.1"; sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv"; }) - (fetchNuGet { pname = "Fody"; version = "6.5.3"; sha256 = "14yj3xj4jh2ayl8jsyypxv9af0xbw30946kn14m0bfmlyl027wkp"; }) + (fetchNuGet { pname = "Fody"; version = "6.6.0"; sha256 = "0cx708ah61cxmvpaq040mhqwrv937rvlmskwihg1w118729k9yv0"; }) (fetchNuGet { pname = "HidSharpCore"; version = "1.2.1.1"; sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; }) - (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.37"; sha256 = "1q0kkw2rhvxi67hqv18ziv2dvmhi7f68745gcs1253mwv5da4vy6"; }) - (fetchNuGet { pname = "Humanizer"; version = "2.11.10"; sha256 = "057pqzvdxsbpnnc5f1xkqg7j3ywp68ggia3w74fgqp0158dm6rdk"; }) - (fetchNuGet { pname = "Humanizer.Core"; version = "2.11.10"; sha256 = "0z7kmd5rh1sb6izq0vssk6c2p63n00xglk45s7ga9z18z9aaskxv"; }) + (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.40"; sha256 = "0k1cpkfgz4v5qigvmmvlk8lv2a731kqkmx6acf3rzr8rlj3cfnc4"; }) + (fetchNuGet { pname = "Humanizer"; version = "2.13.14"; sha256 = "155g2700x6sbym2jd4dshm4rf3jjr8flx6w9xnw28zrrv7r2rdy8"; }) + (fetchNuGet { pname = "Humanizer.Core"; version = "2.13.14"; sha256 = "1ni4mcyhcs46ih9b8c8l3xq3iai56rdlcw0afwhji3hxwbxqbk7i"; }) (fetchNuGet { pname = "Humanizer.Core"; version = "2.2.0"; sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5"; }) - (fetchNuGet { pname = "Humanizer.Core.af"; version = "2.11.10"; sha256 = "18fiixfvjwn8m1i8z2cz4aqykzylvfdqmmpwc2zcd8sr1a2xm86z"; }) - (fetchNuGet { pname = "Humanizer.Core.ar"; version = "2.11.10"; sha256 = "009fpm4jd325izm82ipipsvlwd31824gvskda68bdwi4yqmycz4p"; }) - (fetchNuGet { pname = "Humanizer.Core.az"; version = "2.11.10"; sha256 = "144b9diwprabxwgi5a98k5iy95ajq4p7356phdqi2lhzwbz7b6a9"; }) - (fetchNuGet { pname = "Humanizer.Core.bg"; version = "2.11.10"; sha256 = "1b9y40gvq2kwnj5wa40f8cbywv79jkajcwknagrgr27sykpfadl2"; }) - (fetchNuGet { pname = "Humanizer.Core.bn-BD"; version = "2.11.10"; sha256 = "18pn4jcp36ygcx283l3fi9bs5d7q1a384b72a10g5kl0qckn88ay"; }) - (fetchNuGet { pname = "Humanizer.Core.cs"; version = "2.11.10"; sha256 = "03crw1lnzp32v2kcdmllkrsqh07r4ggw9gyc96qw7cv0nk5ch1h8"; }) - (fetchNuGet { pname = "Humanizer.Core.da"; version = "2.11.10"; sha256 = "0glby12zra3y3yiq4cwq1m6wjcjl8f21v8ghi6s20r48glm8vzy9"; }) - (fetchNuGet { pname = "Humanizer.Core.de"; version = "2.11.10"; sha256 = "0a35xrm1f9p74x0fkr52bw9sd54vdy9d5rnvf565yh8ww43xfk7b"; }) - (fetchNuGet { pname = "Humanizer.Core.el"; version = "2.11.10"; sha256 = "0bhwwdx5vc48zikdsbrkghdhwahxxc2lkff0yaa5nxhbhasl84h8"; }) - (fetchNuGet { pname = "Humanizer.Core.es"; version = "2.11.10"; sha256 = "07bw07qy8nyzlgxl7l2lxv9f78qmkfppgzx7iyq5ikrcnpvc7i9q"; }) - (fetchNuGet { pname = "Humanizer.Core.fa"; version = "2.11.10"; sha256 = "00d4hc1pfmhfkc5wmx9p7i00lgi4r0k6wfcns9kl1syjxv3bs5f2"; }) - (fetchNuGet { pname = "Humanizer.Core.fi-FI"; version = "2.11.10"; sha256 = "0z4is7pl5jpi4pfdvd2zvx5mp00bj26d9l9ksqyc0liax8nfzyik"; }) - (fetchNuGet { pname = "Humanizer.Core.fr"; version = "2.11.10"; sha256 = "0sybpg6kbbhrnk7gxcdk7ppan89lsfqsdssrg4i1dm8w48wgicap"; }) - (fetchNuGet { pname = "Humanizer.Core.fr-BE"; version = "2.11.10"; sha256 = "1s25c86nl9wpsn6fydzwv4rfmdx5sm0vgyd7xhw5344k20gazvhv"; }) - (fetchNuGet { pname = "Humanizer.Core.he"; version = "2.11.10"; sha256 = "1nx61qkjd6p9r36dmnm4942khyv35fpdqmb2w69gz6463g4d7z29"; }) - (fetchNuGet { pname = "Humanizer.Core.hr"; version = "2.11.10"; sha256 = "02jhcyj72prkqsjxyilv04drm0bknqjh2r893jlbsfi9vjg2zay3"; }) - (fetchNuGet { pname = "Humanizer.Core.hu"; version = "2.11.10"; sha256 = "0yb6ly4s1wdyaf96h2dvifqyb575aid6irwl3qx8gcvrs0xpcxdp"; }) - (fetchNuGet { pname = "Humanizer.Core.hy"; version = "2.11.10"; sha256 = "0b7vaqldn7ca3xi4gkvkhjk900kw2zwb0m0d20bg45a83zdlx79c"; }) - (fetchNuGet { pname = "Humanizer.Core.id"; version = "2.11.10"; sha256 = "1yqxirknwga4j18k7ixwgqxlv20479afanhariy3c5mkwvglsr9b"; }) - (fetchNuGet { pname = "Humanizer.Core.it"; version = "2.11.10"; sha256 = "1skwgj5a6kkx3pm9w4f29psch69h1knmwbkdydlmx13h452p1w4l"; }) - (fetchNuGet { pname = "Humanizer.Core.ja"; version = "2.11.10"; sha256 = "1wpc3yz9v611dqbw8j5yimk8dpz0rvpnls4rmlnp1m47gavpj8x4"; }) - (fetchNuGet { pname = "Humanizer.Core.ko-KR"; version = "2.11.10"; sha256 = "1df0kd7vwdc3inxfkb3wsl1aw3d6vbab99dzh08p4m04g7i2c1a9"; }) - (fetchNuGet { pname = "Humanizer.Core.ku"; version = "2.11.10"; sha256 = "17b66xfgwjr0sffx0hw4c6l90h43z7ffylrs26hgav0n110q2nwg"; }) - (fetchNuGet { pname = "Humanizer.Core.lv"; version = "2.11.10"; sha256 = "0czxx4b9g0w7agykdl82wds09zasa9y58dmgjm925amlfz4wkyzs"; }) - (fetchNuGet { pname = "Humanizer.Core.ms-MY"; version = "2.11.10"; sha256 = "0kix95nbw94fx0dziyz80y59i7ii7d21b63f7f94niarljjq36i3"; }) - (fetchNuGet { pname = "Humanizer.Core.mt"; version = "2.11.10"; sha256 = "1rwy6m22pq65gxn86xlr9lv818fp5kb0wz98zxxfljc2iviw1f4p"; }) - (fetchNuGet { pname = "Humanizer.Core.nb"; version = "2.11.10"; sha256 = "0ra2cl0avvv4sylha7z76jxnb4pdiqfbpr5m477snr04dsjxd9q9"; }) - (fetchNuGet { pname = "Humanizer.Core.nb-NO"; version = "2.11.10"; sha256 = "1qszib03pvmjkrg8za7jjd2vzrs9p4fn2rmy82abnzldkhvifipq"; }) - (fetchNuGet { pname = "Humanizer.Core.nl"; version = "2.11.10"; sha256 = "1i9bvy0i2yyasl9mgxiiwrkmfpm2c53d3wwdp9270r6120sxyy63"; }) - (fetchNuGet { pname = "Humanizer.Core.pl"; version = "2.11.10"; sha256 = "0kggh4wgcic7wzgxy548n6w61schss2ccf9kz8alqshfi42xifby"; }) - (fetchNuGet { pname = "Humanizer.Core.pt"; version = "2.11.10"; sha256 = "09j90s8x1lpvhfiy3syfnj8slkgcacf3xjy3pnkgxa6g4mi4f4bd"; }) - (fetchNuGet { pname = "Humanizer.Core.ro"; version = "2.11.10"; sha256 = "1jgidmqfly91v1k22gn687mfql5bz7gjzp1aapi93vq5x635qssy"; }) - (fetchNuGet { pname = "Humanizer.Core.ru"; version = "2.11.10"; sha256 = "13mmlh0ibxfyc85xrz3vx4mcg56mkzqql184iwdryq94p0g5ahil"; }) - (fetchNuGet { pname = "Humanizer.Core.sk"; version = "2.11.10"; sha256 = "04ja06y5jaz1jwkwn117wx9cib04gpbi0vysn58a8sd5jrxmxai5"; }) - (fetchNuGet { pname = "Humanizer.Core.sl"; version = "2.11.10"; sha256 = "05hxk9v3a7fn7s4g9jp5zxk2z6a33b9fkavyb1hjqnl2i37q2wja"; }) - (fetchNuGet { pname = "Humanizer.Core.sr"; version = "2.11.10"; sha256 = "0x6l2msimrx72iywa1g0rqklgy209sdwg0r77i2lz0s1rvk5klm5"; }) - (fetchNuGet { pname = "Humanizer.Core.sr-Latn"; version = "2.11.10"; sha256 = "01hdyn7mmbyy7f3aglawgnsj3nblcdpqjgzdcvniy73l536mira0"; }) - (fetchNuGet { pname = "Humanizer.Core.sv"; version = "2.11.10"; sha256 = "0cbgchivw3d5ndib1zmgzmnymhyvfh9g9f0hijc860g5vaa9fkvh"; }) - (fetchNuGet { pname = "Humanizer.Core.th-TH"; version = "2.11.10"; sha256 = "1v7f9x3b04iwhz9lb3ir8az8128nvcw1gi4park5zh3fg0f3mni0"; }) - (fetchNuGet { pname = "Humanizer.Core.tr"; version = "2.11.10"; sha256 = "02c4ky0dskxkdrkc7vy8yzmvwjr1wqll1kzx0k21afhlx8xynjd4"; }) - (fetchNuGet { pname = "Humanizer.Core.uk"; version = "2.11.10"; sha256 = "0900ilhwj8yvhyzpg1pjr7f5vrl62wp8dsnhk4c2igs20qvnv079"; }) - (fetchNuGet { pname = "Humanizer.Core.uz-Cyrl-UZ"; version = "2.11.10"; sha256 = "09b7p2m8y49j49ckrmx2difgyj6y7fm2mwca093j8psxclsykcyr"; }) - (fetchNuGet { pname = "Humanizer.Core.uz-Latn-UZ"; version = "2.11.10"; sha256 = "029kvkawqhlln52vpjpvr52dhr18ylk01cgsj2z8lxnqaka0q9hk"; }) - (fetchNuGet { pname = "Humanizer.Core.vi"; version = "2.11.10"; sha256 = "0q4d47plsj956ivn82qwyidfxppjr9dp13m8c66aamrvhy4q8ny5"; }) - (fetchNuGet { pname = "Humanizer.Core.zh-CN"; version = "2.11.10"; sha256 = "01dy5kf6ai8id77px92ji4kcxjc8haj39ivv55xy1afcg3qiy7mh"; }) - (fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.11.10"; sha256 = "16gcxgw2g6gck3nc2hxzlkbsg7wkfaqsjl87kasibxxh47zdqqv2"; }) - (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.11.10"; sha256 = "1rjg2xvkwjjw3c7z9mdjjvbnl9lcvvhh4fr7l61rla2ynzdk46cj"; }) + (fetchNuGet { pname = "Humanizer.Core.af"; version = "2.13.14"; sha256 = "0w7n9qfxlqayw2dwgajqjks5b2qxcy2853v5h0rbaq5r5yb84874"; }) + (fetchNuGet { pname = "Humanizer.Core.ar"; version = "2.13.14"; sha256 = "1nxdh3hg9hkvi7q0ffaflb738kkdl0kmpry9jxdkkvg4mhrmfs2i"; }) + (fetchNuGet { pname = "Humanizer.Core.az"; version = "2.13.14"; sha256 = "1rjhpbzy49rrf0mypkf7ksjlmx6iywdbra1caj1mr970gfm1j4zb"; }) + (fetchNuGet { pname = "Humanizer.Core.bg"; version = "2.13.14"; sha256 = "101zwkys4w7dwwa7dzsc10gdrk6bnfmm3hqc09a4jvxj2p8i6hds"; }) + (fetchNuGet { pname = "Humanizer.Core.bn-BD"; version = "2.13.14"; sha256 = "1d0flbhk4f0kc1dqzgqnimlp3gcj490qchrbl4yb4ilmsyaws0gm"; }) + (fetchNuGet { pname = "Humanizer.Core.cs"; version = "2.13.14"; sha256 = "11hfxdpncbrbj9d779b24hw43sfpbjynmkxlv636sg532j5vd58g"; }) + (fetchNuGet { pname = "Humanizer.Core.da"; version = "2.13.14"; sha256 = "0bfl1zx6x58i75l57k8xfky264hh2ziv068yx9w0zshil0d74iw5"; }) + (fetchNuGet { pname = "Humanizer.Core.de"; version = "2.13.14"; sha256 = "1bhhmp9rza2p4j5zs11sk2xvrbbvckr1v8d97aramqzqmv4x20pd"; }) + (fetchNuGet { pname = "Humanizer.Core.el"; version = "2.13.14"; sha256 = "1kym97876jspj72y9fhpc2y1jn3j12y5l95222r53mbrrpwz1m6p"; }) + (fetchNuGet { pname = "Humanizer.Core.es"; version = "2.13.14"; sha256 = "0v5fmy7cjdk3bs13pi09v3g7sbmdnvijn0w8gnif0krmg2rdm2z7"; }) + (fetchNuGet { pname = "Humanizer.Core.fa"; version = "2.13.14"; sha256 = "12m3d0cr9qa0f7sx58rqw835awi01j0frvbp1q796s6amlvhrcyc"; }) + (fetchNuGet { pname = "Humanizer.Core.fi-FI"; version = "2.13.14"; sha256 = "0j8gl6kajazjw64xpf4ws5v6hv5dz43gnm0vcnfm5l2kizd87wxh"; }) + (fetchNuGet { pname = "Humanizer.Core.fr"; version = "2.13.14"; sha256 = "053jcc9rdxxnwiccqmcxnvq40a4fm6h6lr0mlqdxjdfdj07s29i9"; }) + (fetchNuGet { pname = "Humanizer.Core.fr-BE"; version = "2.13.14"; sha256 = "00xff7shwclns2v8mknwnh2y6ycfa9zj7ssgrkdyqa9k8ppq26dh"; }) + (fetchNuGet { pname = "Humanizer.Core.he"; version = "2.13.14"; sha256 = "10qhxb6fin6w595f7h7nnfvvh5xi0vmca9ynsggq74rpjzgmvyzr"; }) + (fetchNuGet { pname = "Humanizer.Core.hr"; version = "2.13.14"; sha256 = "1xgd3had8gsfy4l5835vn9ngr5i5ys38mggzmm4s6j1id49920g4"; }) + (fetchNuGet { pname = "Humanizer.Core.hu"; version = "2.13.14"; sha256 = "0gfrkjp9c38c671d8rc468hphkixarjzss754rqsk4j5x1p13wml"; }) + (fetchNuGet { pname = "Humanizer.Core.hy"; version = "2.13.14"; sha256 = "01691rwvrh6spks5jc1vcg961p1awy34ynkaxqlhr5d49dw5qgdd"; }) + (fetchNuGet { pname = "Humanizer.Core.id"; version = "2.13.14"; sha256 = "177vbbn8q0xl2cdak4xyk38w4w8c1y2vlq9i2fm7va4x6awdyxjk"; }) + (fetchNuGet { pname = "Humanizer.Core.is"; version = "2.13.14"; sha256 = "08d8zknnxlvbshlvlnj1m954ddf7khw1n24pphsa9i0brww9wxfv"; }) + (fetchNuGet { pname = "Humanizer.Core.it"; version = "2.13.14"; sha256 = "0873ijf8cxm7skwp622ddnh8pdl30nlrwmil89icf67z3flis60d"; }) + (fetchNuGet { pname = "Humanizer.Core.ja"; version = "2.13.14"; sha256 = "1bshhkiv57010zij7pcmm1709n0y4pk3kp9xx7ar3gnra3jmm6za"; }) + (fetchNuGet { pname = "Humanizer.Core.ko-KR"; version = "2.13.14"; sha256 = "0rhq6471pjaypnh4k08y124i7sa6cj3i71v2frv66qpynl6hi0y0"; }) + (fetchNuGet { pname = "Humanizer.Core.ku"; version = "2.13.14"; sha256 = "1ircd4lw3ryl3zzdv85wpk8by44rzhn4ln85ycml2b6a21arq1rw"; }) + (fetchNuGet { pname = "Humanizer.Core.lv"; version = "2.13.14"; sha256 = "0y7m6zvns8wr0sy5ksjb51wrypgplfdwprz96xw1ajmdj4fjh9sr"; }) + (fetchNuGet { pname = "Humanizer.Core.ms-MY"; version = "2.13.14"; sha256 = "1cpnjjgybh9dp9snq3r6wm3l4zy1ssjyb64bayjnd8770lpvyfjs"; }) + (fetchNuGet { pname = "Humanizer.Core.mt"; version = "2.13.14"; sha256 = "0n5zjsq71nvxnhghsk321cqrwz7kf1jzfcq4vhsksyv7q9na74ak"; }) + (fetchNuGet { pname = "Humanizer.Core.nb"; version = "2.13.14"; sha256 = "07b1fj3ac2wcj7ql1gc7vaa4q4dmyd0prj7bxr52z04ar3nxjlsc"; }) + (fetchNuGet { pname = "Humanizer.Core.nb-NO"; version = "2.13.14"; sha256 = "0v1vljlzjlslj5y3c5xd2pbp1g29ghjd02s0z2bri5zk9zcgysvq"; }) + (fetchNuGet { pname = "Humanizer.Core.nl"; version = "2.13.14"; sha256 = "15imi9m1lvfrx0fvfmlx74p8y59na2rkgdrbfyy3dvgvd74b9k5v"; }) + (fetchNuGet { pname = "Humanizer.Core.pl"; version = "2.13.14"; sha256 = "06ix2xilgi7w7306hs4v41ai6jwank384cyz0885b53dic5kgq7r"; }) + (fetchNuGet { pname = "Humanizer.Core.pt"; version = "2.13.14"; sha256 = "1qd1w1xrxap7nwmfl9yjx6z71r03p53kw8y4dnjn7xdn85xc7z4b"; }) + (fetchNuGet { pname = "Humanizer.Core.ro"; version = "2.13.14"; sha256 = "1qifvw6y6g7014q0s8xaprsk79bqlgg0rmvbyn21qalc0ayab97v"; }) + (fetchNuGet { pname = "Humanizer.Core.ru"; version = "2.13.14"; sha256 = "0wg4p84m9r6slbz9gxrjnidc1j7xfmwncpp14x3f86a37791rz61"; }) + (fetchNuGet { pname = "Humanizer.Core.sk"; version = "2.13.14"; sha256 = "1qm0nsbw3z9n011fnnhyhzgpxyz41f01dxl13bs8mjzy0f1v3gvj"; }) + (fetchNuGet { pname = "Humanizer.Core.sl"; version = "2.13.14"; sha256 = "1fhkjyxjk9icj705qysk8yc11hpdml2cjcxm7mfdv5z2f93sa4hz"; }) + (fetchNuGet { pname = "Humanizer.Core.sr"; version = "2.13.14"; sha256 = "02f15q3i9npvvxwjyp14rxd8rlhd9qricrah3cmc8lw9fca26bb4"; }) + (fetchNuGet { pname = "Humanizer.Core.sr-Latn"; version = "2.13.14"; sha256 = "0mnycpjl51cd4nz9kwijr66zrgxqjbcsp5jqgr660l4bq16yxjad"; }) + (fetchNuGet { pname = "Humanizer.Core.sv"; version = "2.13.14"; sha256 = "13vdyrg1jp2al96w08vfkw5yjdqdnp7pksxz907i89w6cp9wbfvm"; }) + (fetchNuGet { pname = "Humanizer.Core.th-TH"; version = "2.13.14"; sha256 = "0ganp6zjjj07lcpy9h88q2441f1lfv3a7mgncrqw36bliv37pr8m"; }) + (fetchNuGet { pname = "Humanizer.Core.tr"; version = "2.13.14"; sha256 = "1sgfzh9dabdhhk5i97c0d13rz5yghcp2qpjidqsizpi2k8h8rl0r"; }) + (fetchNuGet { pname = "Humanizer.Core.uk"; version = "2.13.14"; sha256 = "1ns33byx9p6fv6gffdxly3fm3wvjl6ndscribwr37134pa6nvqc9"; }) + (fetchNuGet { pname = "Humanizer.Core.uz-Cyrl-UZ"; version = "2.13.14"; sha256 = "1qm27qz989nwnkpg26phi60qqahivssx906znwkldml2h2rz8k0g"; }) + (fetchNuGet { pname = "Humanizer.Core.uz-Latn-UZ"; version = "2.13.14"; sha256 = "1hd2d7js8cng50ir56l8lhc9qc1rwzjvqrv98ly9ggnv8n63iiws"; }) + (fetchNuGet { pname = "Humanizer.Core.vi"; version = "2.13.14"; sha256 = "0xh33ml7aspslj4gnbd7anjvp3463djhcc51bh2ji67rbw1an6rw"; }) + (fetchNuGet { pname = "Humanizer.Core.zh-CN"; version = "2.13.14"; sha256 = "062wgs0qnhvikvfz37jmqw6sx7xwzs24ncl89paq3640id32aivd"; }) + (fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.13.14"; sha256 = "0s01h733ihxjg64bznjvnij76lflqfcmwznjwmd8p2axmn8688s0"; }) + (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.13.14"; sha256 = "07xsdx8j1rhp712kwy8jx9ang6f9zljqrvaggf0ssj5zqbliz93p"; }) (fetchNuGet { pname = "JetBrains.Annotations"; version = "2021.3.0"; sha256 = "01ssylllbwpana2w3iybi533zlvcsbhzjc8kr0g4kg307kjbfn8v"; }) - (fetchNuGet { pname = "ManagedBass"; version = "3.0.0"; sha256 = "1yh1s36w465z8gcj4xs6q048g63z7m3nyfy1vvw1lgh7k6hqqgma"; }) - (fetchNuGet { pname = "ManagedBass.Fx"; version = "3.0.0"; sha256 = "0sck1wmjlcy8q941bamk1i0k4yrklyilsgg6c832xdh96sdc049s"; }) - (fetchNuGet { pname = "ManagedBass.Mix"; version = "3.0.0"; sha256 = "0brnm0ry96b81hgffbaj52s53bsn9c8cx4q24j0whsvmcqqxhs4v"; }) + (fetchNuGet { pname = "ManagedBass"; version = "3.1.0"; sha256 = "0p4kzpq86h00z7rwzmwxyk1yg627mm5376ssjv1wgqgls0dl7gkh"; }) + (fetchNuGet { pname = "ManagedBass.Fx"; version = "3.1.0"; sha256 = "130rrf6sb64dcq58mr1gigma3pzr7hg5mxn5fbryg375x3vphbs8"; }) + (fetchNuGet { pname = "ManagedBass.Mix"; version = "3.1.0"; sha256 = "1ppxczh1i67k5xicr0q4n0k7zdzghs99wwkcpjmh726hkdsshnib"; }) (fetchNuGet { pname = "managed-midi"; version = "1.9.14"; sha256 = "025jh146zy98699y4civ7nxlkx312lwkl4sr8pha626q7q1kg89h"; }) - (fetchNuGet { pname = "Markdig"; version = "0.26.0"; sha256 = "1pg0yica8h1c2kx10pqzc5iclmlfll5wbw1bxa8l251w1qnfglv2"; }) + (fetchNuGet { pname = "Markdig"; version = "0.23.0"; sha256 = "1bwn885w7balwncmr764vidyyp9bixqlq6r3lhsapj8ykrpxxa70"; }) (fetchNuGet { pname = "MessagePack"; version = "2.3.85"; sha256 = "0n7kv4i6knhv1dd35cv45sfpidsiy9albfdmbrdschykd1mzxmiy"; }) (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.3.85"; sha256 = "0axjgy9r533bw00lflnc6acjyza76mf2x1nn6fw7qacvak9rqxm3"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1asph5v7kgmscfgsyv9gg7cwvg52gnm6m0ldm2m4pfkpsxqyp2mi"; }) @@ -77,7 +78,6 @@ (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack"; version = "5.0.11"; sha256 = "0w60z54wxv1nndv7mz9rqswdh8k4rxmgihnxkirp4gr0idr7ln7j"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson"; version = "5.0.11"; sha256 = "1qrmrkdrzm4bn5zq6a1dk88rpb6pajcs6jh23h43yny68y80jcnr"; }) (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.0.0"; sha256 = "00dx5armvkqjxvkldz3invdlck9nj7w21dlsr2aqp1rqbyrbsbbh"; }) - (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.0"; sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1"; }) (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "5.0.0"; sha256 = "0cp5jbax2mf6xr3dqiljzlwi05fv6n9a35z337s92jcljiq674kf"; }) (fetchNuGet { pname = "Microsoft.Build.Framework"; version = "16.5.0"; sha256 = "1xgr02r7s9i6s70n237hss4yi9zicssia3zd2ny6s8vyxb7jpdyb"; }) (fetchNuGet { pname = "Microsoft.Build.Locator"; version = "1.4.1"; sha256 = "0j119rri7a401rca67cxdyrn3rprzdl1b2wrblqc23xsff1xvlrx"; }) @@ -93,8 +93,8 @@ (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; }) (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; }) (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "2.2.6"; sha256 = "0fx8698k71vzr8pdc6q8bsbzg6r8a42s4hkzmiyv13ibmyb5q68k"; }) - (fetchNuGet { pname = "Microsoft.Diagnostics.NETCore.Client"; version = "0.2.221401"; sha256 = "1k55l60bg8lj5ayl3kixbzvx2684xd7a9nzha5fiqjgp85cimb3r"; }) - (fetchNuGet { pname = "Microsoft.Diagnostics.Runtime"; version = "2.0.226801"; sha256 = "1w8ahqkv8nbq2ch17aa9axhqqnybmc9bsxpdhpiy52ix70mr72w1"; }) + (fetchNuGet { pname = "Microsoft.Diagnostics.NETCore.Client"; version = "0.2.61701"; sha256 = "1ic1607jj4ln8dbibf1fz5v9svk9x2kqlgvhndc6ijaqnbc4wcr1"; }) + (fetchNuGet { pname = "Microsoft.Diagnostics.Runtime"; version = "2.0.161401"; sha256 = "02qcm8nv1ch07g8b0i60ynrjn33b8y5ivyk4rxal3vd9zfi6pvwi"; }) (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "2.1.0"; sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy"; }) (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "2.2.6"; sha256 = "18j2cr50wsikwv7gy3vrjvmpdxckvv537qma8afdpr3yn2klayh5"; }) (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "2.2.6"; sha256 = "1dyxb5ibx24frlgbqy7zch0falq9p1189zvlbxgl94m0hvpml5j3"; }) @@ -111,8 +111,10 @@ (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "2.2.0"; sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j"; }) (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "2.2.0"; sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck"; }) (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "5.0.2"; sha256 = "0db6d1b076nfqfn5mhy63l3gkfn5kr29hwcrx81ldr7y062r1b9y"; }) + (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.0-rc.1.21451.13"; sha256 = "0r6945jq7c2f1wjifq514zvngicndjqfnsjya6hqw0yzah0jr56c"; }) (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.2.0"; sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5"; }) (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "5.0.0"; sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; }) + (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0-rc.1.21451.13"; sha256 = "11dg16x6g0gssb143qpghxz1s41himvhr7yhjwxs9hacx4ij2dm1"; }) (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "2.1.0"; sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd"; }) (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.2.0"; sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm"; }) (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; }) @@ -127,7 +129,6 @@ (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1fdbrjrmjd31y1amp0inlmki9w3fwzv8nz41pqmc943g3cpmyg9f"; }) (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; }) (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; }) - (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; }) (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; }) (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; }) (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "3.1.0"; sha256 = "04cc2wl90p7g9zscnxgyj55vzl7srrrjwadl2dxgicfb2x2499ca"; }) @@ -154,18 +155,19 @@ (fetchNuGet { pname = "NuGet.Protocol"; version = "5.11.0"; sha256 = "041pva6ykc5h6az7bb87mkg32c95cvxlixgspnd34zbdldr4ypdb"; }) (fetchNuGet { pname = "NuGet.Versioning"; version = "5.11.0"; sha256 = "041351n1rbyqpfxqyxbvjgfrcbbawymbq96givz5pvdbabvyf5vq"; }) (fetchNuGet { pname = "NUnit"; version = "3.13.2"; sha256 = "00bkjgarkwbj497da9d7lajala1ns67h1kx53w4bapwkf32jlcvn"; }) - (fetchNuGet { pname = "OpenTabletDriver"; version = "0.5.3.1"; sha256 = "16xw8w943x9gvnnpbryahff5azzy8n26j2igyqgv88m352jd9rb8"; }) - (fetchNuGet { pname = "OpenTabletDriver.Plugin"; version = "0.5.3.1"; sha256 = "17dxsvcz9g8kzydk5xlfz9kfxl62x9wi20609rh76wjd881bg1br"; }) - (fetchNuGet { pname = "ppy.LocalisationAnalyser"; version = "2021.725.0"; sha256 = "00nvk8kw94v0iq5k7y810sa235lqdjlggq7f00c64c3d1zam4203"; }) - (fetchNuGet { pname = "ppy.ManagedBass"; version = "3.1.3-alpha"; sha256 = "0qdrklalp42pbyb30vpr7c0kwjablsja0s6xplxxkpfd14y8mzk4"; }) - (fetchNuGet { pname = "ppy.osu.Framework"; version = "2021.1108.0"; sha256 = "0zcmxnb521j8v9q863l5bf74svgsn8lc00d03kmldyfhcjq6zqb9"; }) - (fetchNuGet { pname = "ppy.osu.Framework.NativeLibs"; version = "2021.805.0"; sha256 = "004c053s6p7339bfw68lvlyk9jkbw6djkf2d72dz8wam546k8dcl"; }) - (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2021.1112.0"; sha256 = "0q0z0f9f9g2a6523zyp5a7k3z0h2rallnz6pzyahkn2vz9s4ykxj"; }) - (fetchNuGet { pname = "ppy.osuTK.NS20"; version = "1.0.178"; sha256 = "1bv77rrf3g6zr4bzfrrqqzl0vjj4c8izc0sakckda8dlm6h3gxln"; }) - (fetchNuGet { pname = "ppy.SDL2-CS"; version = "1.0.468-alpha"; sha256 = "1qa2xg5p6ywmvzz868vck2jy4sn8vfqssa4an4afqsmc4amxfmc8"; }) + (fetchNuGet { pname = "OpenTabletDriver"; version = "0.6.0.2"; sha256 = "0blwfs1cacxq0vs6fy7zjnsny8qdsr5jlxix3icmphyqgz0g4g39"; }) + (fetchNuGet { pname = "OpenTabletDriver.Configurations"; version = "0.6.0.2"; sha256 = "18q6gjayqrwk6n1kf359z94z8zyb3yz4hr1dpgglk51sq6wi2z84"; }) + (fetchNuGet { pname = "OpenTabletDriver.Native"; version = "0.6.0.2"; sha256 = "12hf4v8j8asc9wlywpykajb8yrzx10w6h11qbykckmrfxvz8pc0a"; }) + (fetchNuGet { pname = "OpenTabletDriver.Plugin"; version = "0.6.0.2"; sha256 = "0z2n5jysw06zp2cxmfqddbg3g88jdm1irr2hv04q8valq0plaq5c"; }) + (fetchNuGet { pname = "ppy.LocalisationAnalyser"; version = "2021.1210.0"; sha256 = "0dn6fc31yllr5nizylvkfl2b603b5m9694nsn5mmkh8w43h0rkbq"; }) + (fetchNuGet { pname = "ppy.osu.Framework"; version = "2022.204.0"; sha256 = "1dwg45k1qhxj4mhxw49djmab800yi7z7qnvl8ipicli4lg9k5lvf"; }) + (fetchNuGet { pname = "ppy.osu.Framework.NativeLibs"; version = "2021.1221.0"; sha256 = "1ffxp4nsgbqw1f6nypirmc0a3h203qikbmxm2x8w3kgcfga5dx3k"; }) + (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2022.204.0"; sha256 = "1v4kfphjbkcxswx11c7xh93jwpsyvnskc0zia91d5bp5d11y3z32"; }) + (fetchNuGet { pname = "ppy.osuTK.NS20"; version = "1.0.187"; sha256 = "0ididsxn3005dvs0hvx7bz2xzjsfpa8kmnyfqq4c2ybjxlx15gkw"; }) + (fetchNuGet { pname = "ppy.SDL2-CS"; version = "1.0.501-alpha"; sha256 = "03ixv0nhszsyyf0bvyd25nkyn3c3cndzbxnva19lagvf0l9gnvjg"; }) (fetchNuGet { pname = "ppy.squirrel.windows"; version = "1.9.0.5"; sha256 = "0nmhrg3q6izapfpwdslq80fqkvjj12ad9r94pd0nr2xx1zw0x1zl"; }) - (fetchNuGet { pname = "Realm"; version = "10.6.0"; sha256 = "0vsd99zr22a2cvyx71gdqqvr2ld239v5s4dhhfdkjgvadz5dyc2a"; }) - (fetchNuGet { pname = "Realm.Fody"; version = "10.6.0"; sha256 = "031igfdwrkgn5nh19qxh6s6l8l1ni6lgk65dhqrzqc202xqidsdm"; }) + (fetchNuGet { pname = "Realm"; version = "10.8.0"; sha256 = "1ixpms8x9z5ia9yiqvhmgdlcrjvqrhbqnr8b9z6mlxwcms1z2f45"; }) + (fetchNuGet { pname = "Realm.Fody"; version = "10.8.0"; sha256 = "0hj3cqan96y01k5qgs0knkqzg3rlr2794az68xqffd2vqphvqvqq"; }) (fetchNuGet { pname = "Remotion.Linq"; version = "2.2.0"; sha256 = "1y46ni0xswmmiryp8sydjgryafwn458dr91f9xn653w73kdyk4xf"; }) (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; }) (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; }) @@ -187,9 +189,9 @@ (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; }) (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; }) (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; }) - (fetchNuGet { pname = "Sentry"; version = "3.10.0"; sha256 = "1dnvj1adr6kz5pfdhi2cvq8m303vdaj00zgg2sbx0pc8y3nhc6x7"; }) + (fetchNuGet { pname = "Sentry"; version = "3.13.0"; sha256 = "0wnivy7rhzghr94pdczv7kw72y1hv5kp6hw0fkmw1nfgnsh4qjfm"; }) (fetchNuGet { pname = "SharpCompress"; version = "0.17.1"; sha256 = "1ffiacghbcnr3fkgvdcad7b1nky54nhmmn2sm43sks9zm8grvva4"; }) - (fetchNuGet { pname = "SharpCompress"; version = "0.30.0"; sha256 = "0q9icpwzf76a85wlqqn2d5zsb0pfzvqxihsg71g76gk74xg9gdcd"; }) + (fetchNuGet { pname = "SharpCompress"; version = "0.30.1"; sha256 = "1hib2hxjrlikwsczym1qn2slaapgjw8qzd8gmid8bryaz8hv044h"; }) (fetchNuGet { pname = "SharpFNT"; version = "2.0.0"; sha256 = "1bgacgh9hbck0qvji6frbb50sdiqfdng2fvvfgfw8b9qaql91mx0"; }) (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "1.0.4"; sha256 = "0fmgn414my76gjgp89qlc210a0lqvnvkvk2fcwnpwxdhqpfvyilr"; }) (fetchNuGet { pname = "Splat"; version = "1.6.2"; sha256 = "154w9q0z8697rcpqs4x233crx5ap1z4pl4xc21hsd3csbhw13ykf"; }) @@ -206,12 +208,12 @@ (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; }) (fetchNuGet { pname = "System.Buffers"; version = "4.4.0"; sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19"; }) (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; }) - (fetchNuGet { pname = "System.CodeDom"; version = "4.5.0"; sha256 = "1js3h3ig0zwyynl1q88siynp8ra0gz0pfq1wmvls6ji83jrxsami"; }) (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; }) (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; }) (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; }) (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; }) (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; }) + (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; }) (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; }) (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; }) (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; }) @@ -260,7 +262,6 @@ (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; }) (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; }) (fetchNuGet { pname = "System.Linq.Queryable"; version = "4.0.1"; sha256 = "11jn9k34g245yyf260gr3ldzvaqa9477w2c5nhb1p8vjx4xm3qaw"; }) - (fetchNuGet { pname = "System.Management"; version = "4.5.0"; sha256 = "19z5x23n21xi94bgl531l9hrm64nyw9d5fpd7klfvr5xfsbh9jwr"; }) (fetchNuGet { pname = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; }) (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; }) (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; }) @@ -279,7 +280,6 @@ (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; }) (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; }) (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.6.0"; sha256 = "18h375q5bn9h7swxnk4krrxym1dxmi9bm26p89xps9ygrj4q6zqw"; }) - (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; }) (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; }) (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; }) (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; }) @@ -287,6 +287,7 @@ (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.6.0"; sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp"; }) (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; }) (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; }) + (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.8.1"; sha256 = "17xxl3m99wa4hcpqy42vl8qb1jk2jfq32rj3sfjc1a46hi2si5jj"; }) (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; }) (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; }) (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; }) @@ -299,7 +300,9 @@ (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.1"; sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf"; }) (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; }) (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; }) + (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; }) (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; }) + (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0-rc.1.21451.13"; sha256 = "0v5bc80p35jj5b5xdgsn5r1v4w68gqz0sahi214rprrrlr3sl206"; }) (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; }) (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; }) (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; }) @@ -348,7 +351,6 @@ (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; }) (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; }) (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; }) - (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.2"; sha256 = "1sh63dz0dymqcwmprp0nadm77b83vmm7lyllpv578c397bslb8hj"; }) (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.3"; sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i"; }) (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; }) (fetchNuGet { pname = "System.Threading.Thread"; version = "4.0.0"; sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc"; }) diff --git a/pkgs/games/osu-lazer/update.sh b/pkgs/games/osu-lazer/update.sh index 2fe30ebec1430..21f9eb80f4520 100755 --- a/pkgs/games/osu-lazer/update.sh +++ b/pkgs/games/osu-lazer/update.sh @@ -22,6 +22,9 @@ chmod -R +w "$src" pushd "$src" +export DOTNET_NOLOGO=1 +export DOTNET_CLI_TELEMETRY_OPTOUT=1 + mkdir ./nuget_tmp.packages dotnet restore osu.Desktop --packages ./nuget_tmp.packages --runtime linux-x64 diff --git a/pkgs/games/otto-matic/default.nix b/pkgs/games/otto-matic/default.nix new file mode 100644 index 0000000000000..e213deabe8593 --- /dev/null +++ b/pkgs/games/otto-matic/default.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchFromGitHub, SDL2, cmake, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "OttoMatic"; + version = "4.0.0"; + + src = fetchFromGitHub { + owner = "jorio"; + repo = pname; + rev = version; + sha256 = "sha256:1yd4clks7kr2hn69c4q1ykc92sw6axbspambm03viapr834bjz3q"; + fetchSubmodules = true; + }; + + buildInputs = [ + SDL2 + ]; + + nativeBuildInputs = [ + cmake + makeWrapper + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/OttoMatic + mv Data $out/share/OttoMatic + install -Dm755 {.,$out/bin}/OttoMatic + wrapProgram $out/bin/OttoMatic --run "cd $out/share/OttoMatic" + + runHook postInstall + ''; + + meta = with lib; { + description = "A port of Otto Matic, a 2001 Macintosh game by Pangea Software, for modern operating systems"; + homepage = "https://github.com/jorio/OttoMatic"; + license = with licenses; [ + cc-by-sa-40 + ]; + maintainers = with maintainers; [ lux ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/papermc/default.nix b/pkgs/games/papermc/default.nix index e1554bdcb4106..09dbfb6c3c83a 100644 --- a/pkgs/games/papermc/default.nix +++ b/pkgs/games/papermc/default.nix @@ -1,10 +1,10 @@ { lib, stdenv, fetchurl, bash, jre }: let - mcVersion = "1.17.1"; - buildNum = "399"; + mcVersion = "1.18.1"; + buildNum = "132"; jar = fetchurl { url = "https://papermc.io/api/v2/projects/paper/versions/${mcVersion}/builds/${buildNum}/downloads/paper-${mcVersion}-${buildNum}.jar"; - sha256 = "01374201dkzrx28phy87wji7kzjwx8bpjzv85bjl6672ziskbmpd"; + sha256 = "af26babef1e9134804bdf61e14eed7677d603516638f5a2ffe97e176ebd9839b"; }; in stdenv.mkDerivation { pname = "papermc"; diff --git a/pkgs/games/pentobi/default.nix b/pkgs/games/pentobi/default.nix index 5cfe06ff8dd0b..e0bd6909fb946 100644 --- a/pkgs/games/pentobi/default.nix +++ b/pkgs/games/pentobi/default.nix @@ -3,14 +3,14 @@ }: mkDerivation rec { - version = "19.0"; + version = "20.0"; pname = "pentobi"; src = fetchFromGitHub { owner = "enz"; repo = "pentobi"; rev = "v${version}"; - sha256 = "sha256-2UeGMAYtVsmKUR7Yw5rogGOd/BTY6twAHuVBU5APp20="; + sha256 = "sha256-DQM3IJ0pRkX4OsrjZGROg50LfKb621UnpvtqSjxchz8="; }; nativeBuildInputs = [ cmake docbook_xsl qttools ]; @@ -31,7 +31,7 @@ mkDerivation rec { meta = with lib; { description = "A computer opponent for the board game Blokus"; homepage = "https://pentobi.sourceforge.io"; - license = licenses.gpl3; + license = licenses.gpl3Plus; maintainers = [ ]; platforms = platforms.linux; }; diff --git a/pkgs/games/pioneer/default.nix b/pkgs/games/pioneer/default.nix index 82879d0a9d2d6..b70ef8c3dab69 100644 --- a/pkgs/games/pioneer/default.nix +++ b/pkgs/games/pioneer/default.nix @@ -1,37 +1,68 @@ -{ fetchFromGitHub, lib, stdenv, cmake, pkg-config, curl, libsigcxx, SDL2 -, SDL2_image, freetype, libvorbis, libpng, assimp, libGLU, libGL -, glew +{ lib +, stdenv +, fetchFromGitHub +, cmake +, pkg-config +, assimp +, curl +, freetype +#, glew +, libGL +, libGLU +, libpng +, libsigcxx +, libvorbis +, lua5_2 +, mesa +, SDL2 +, SDL2_image }: stdenv.mkDerivation rec { pname = "pioneer"; - version = "20210723"; + version = "20220203"; src = fetchFromGitHub{ owner = "pioneerspacesim"; repo = "pioneer"; rev = version; - sha256 = "sha256-w+ECVv96MoS69815+X0PqguDiGDhHoTnAnnYtLpMScI="; + hash = "sha256-HNVg8Lq6k6gQDmgOdpnBwJ57WSEnn5XwtqzmkDU1WGI="; }; + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace 'string(TIMESTAMP PROJECT_VERSION "%Y%m%d")' 'set(PROJECT_VERSION ${version})' + ''; + nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ - curl libsigcxx SDL2 SDL2_image freetype libvorbis libpng - assimp libGLU libGL glew + assimp + curl + freetype + libGL + libGLU + libpng + libsigcxx + libvorbis + lua5_2 + mesa + SDL2 + SDL2_image ]; - preConfigure = '' - export PIONEER_DATA_DIR="$out/share/pioneer/data"; - ''; + cmakeFlags = [ + "-DPIONEER_DATA_DIR:PATH=${placeholder "out"}/share/pioneer/data" + "-DUSE_SYSTEM_LIBLUA:BOOL=YES" + ]; - makeFlags = [ "build-data" ]; + makeFlags = [ "all" "build-data" ]; 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; [ - gpl3 cc-by-sa-30 + gpl3Only cc-by-sa-30 ]; platforms = [ "x86_64-linux" "i686-linux" ]; }; diff --git a/pkgs/games/planetaryannihilation/default.nix b/pkgs/games/planetaryannihilation/default.nix index c29af6d810f5f..2debd15f814eb 100644 --- a/pkgs/games/planetaryannihilation/default.nix +++ b/pkgs/games/planetaryannihilation/default.nix @@ -1,26 +1,15 @@ { lib, stdenv, config, fetchurl, patchelf, makeWrapper, gtk2, glib, udev, alsa-lib, atk -, nspr, fontconfig, cairo, pango, nss, freetype, gnome2, gdk-pixbuf, curl, systemd, xorg }: +, nspr, fontconfig, cairo, pango, nss, freetype, gnome2, gdk-pixbuf, curl, systemd, xorg, requireFile }: -# TODO: use dynamic attributes once Nix 1.7 is out -assert ((config.planetary_annihilation or null).url or null) != null; -assert ((config.planetary_annihilation or null).sha256 or null) != null; +stdenv.mkDerivation rec { + pname = "planetary-annihalation"; + version = "62857"; -/* to setup: - $ cat ~/.config/nixpkgs/config.nix - { - planetary_annihilation = { - url = "file:///home/user/PA_Linux_62857.tar.bz2"; + src = requireFile { + message = "This file has to be downloaded manually via nix-prefetch-url."; + name = "PA_Linux_${version}.tar.bz2"; sha256 = "0imi3k5144dsn3ka9khx3dj76klkw46ga7m6rddqjk4yslwabh3k"; }; -} -*/ - -stdenv.mkDerivation { - name = "planetary-annihalation"; - - src = fetchurl { - inherit (config.planetary_annihilation) url sha256; - }; nativeBuildInputs = [ patchelf makeWrapper ]; diff --git a/pkgs/games/polymc/default.nix b/pkgs/games/polymc/default.nix new file mode 100644 index 0000000000000..0d63a8ad5f91d --- /dev/null +++ b/pkgs/games/polymc/default.nix @@ -0,0 +1,74 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, cmake +, jdk8 +, jdk +, zlib +, file +, makeWrapper +, xorg +, libpulseaudio +, qtbase +, libGL +, msaClientID ? "" +}: + +mkDerivation rec { + pname = "polymc"; + version = "1.0.6"; + + src = fetchFromGitHub { + owner = "PolyMC"; + repo = "PolyMC"; + rev = version; + sha256 = "sha256-KgLWbZxtxTpuFdMOJNyADYw9rMWoLgczrbSrH4qv6NI="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ cmake file makeWrapper ]; + buildInputs = [ qtbase jdk8 zlib ]; + + postPatch = '' + # hardcode jdk paths + substituteInPlace launcher/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 = [ "-DLauncher_LAYOUT=lin-system" ] ++ + lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ]; + + dontWrapQtApps = true; + + postInstall = let + libpath = with xorg; lib.makeLibraryPath [ + libX11 + libXext + libXcursor + libXrandr + libXxf86vm + libpulseaudio + libGL + ]; + in '' + # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 + wrapProgram $out/bin/polymc \ + "''${qtWrapperArgs[@]}" \ + --set GAME_LIBRARY_PATH /run/opengl-driver/lib:${libpath} \ + --prefix PATH : ${lib.makeBinPath [ xorg.xrandr ]} + ''; + + meta = with lib; { + homepage = "https://polymc.org/"; + description = "A free, open source launcher for Minecraft"; + longDescription = '' + Allows you to have multiple, separate instances of Minecraft (each with + their own mods, texture packs, saves, etc) and helps you manage them and + their associated options with a simple interface. + ''; + platforms = platforms.linux; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ cleverca22 starcraft66 ]; + }; +} diff --git a/pkgs/games/purpur/default.nix b/pkgs/games/purpur/default.nix new file mode 100644 index 0000000000000..b12c54449a488 --- /dev/null +++ b/pkgs/games/purpur/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchurl, nixosTests, jre_headless, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "purpur"; + version = "1.18.1r1522"; + + src = fetchurl { + url = "https://api.purpurmc.org/v2/purpur/${builtins.replaceStrings [ "r" ] [ "/" ] version}/download"; + sha256 = "1060fsfcw6m30d47wla1vsnmc4czyla6m8wf91ws095hbvc22qsm"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + preferLocalBuild = true; + + installPhase = '' + mkdir -p $out/bin $out/lib/minecraft + cp -v $src $out/lib/minecraft/server.jar + + makeWrapper ${jre_headless}/bin/java $out/bin/minecraft-server \ + --add-flags "-jar $out/lib/minecraft/server.jar nogui" + ''; + + dontUnpack = true; + + passthru = { + tests = { inherit (nixosTests) minecraft-server; }; + }; + + meta = with lib; { + description = "A drop-in replacement for Minecraft Paper servers"; + longDescription = '' + Purpur is a drop-in replacement for Minecraft Paper servers designed for configurability, new fun and exciting + gameplay features, and performance built on top of Airplane. + ''; + homepage = "https://purpurmc.org/"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ jyooru ]; + }; +} diff --git a/pkgs/games/r2mod_cli/default.nix b/pkgs/games/r2mod_cli/default.nix index 169385576ac5e..607a53579c7eb 100644 --- a/pkgs/games/r2mod_cli/default.nix +++ b/pkgs/games/r2mod_cli/default.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { pname = "r2mod_cli"; - version = "1.2.0"; + version = "1.2.1"; src = fetchFromGitHub { owner = "Foldex"; repo = "r2mod_cli"; rev = "v${version}"; - sha256 = "sha256-VNqdVDBR6+eNOeUthPXLfz+0VoaNfSj4f04HLvjg6/0="; + sha256 = "sha256-FS9P/uTZU4d6zpM3TlEW6i6PLGHxqqO2fc8D7VsPCig="; }; buildInputs = [ bashInteractive ]; diff --git a/pkgs/games/rimshot/default.nix b/pkgs/games/rimshot/default.nix deleted file mode 100644 index 997da768c6d4a..0000000000000 --- a/pkgs/games/rimshot/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib, stdenv, fetchurl, unzip, love, lua, makeWrapper, makeDesktopItem }: - -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"; - }; - - desktopItem = makeDesktopItem { - name = "rimshot"; - exec = pname; - icon = icon; - comment = "Create your own music"; - desktopName = "Rimshot"; - genericName = "rimshot"; - categories = "Audio;AudioVideo;Music"; - }; - - nativeBuildInputs = [ makeWrapper unzip ]; - buildInputs = [ lua love ]; - - unpackPhase = '' - unzip -j $src - ''; - - installPhase = - '' - mkdir -p $out/bin - mkdir -p $out/share/games/lovegames - - cp -v ./*.love $out/share/games/lovegames/${pname}.love - makeWrapper ${love}/bin/love $out/bin/${pname} --add-flags $out/share/games/lovegames/${pname}.love - - chmod +x $out/bin/${pname} - mkdir -p $out/share/applications - ln -s ${desktopItem}/share/applications/* $out/share/applications/ - ''; - - meta = with lib; { - description = "Create your own music"; - maintainers = with maintainers; [ leenaars ]; - platforms = platforms.linux; - license = licenses.free; - downloadPage = "http://stabyourself.net/rimshot/"; - }; - -} diff --git a/pkgs/games/rogue/default.nix b/pkgs/games/rogue/default.nix index 127d65ff362f6..4865b85bbe385 100644 --- a/pkgs/games/rogue/default.nix +++ b/pkgs/games/rogue/default.nix @@ -15,9 +15,6 @@ stdenv.mkDerivation rec { buildInputs = [ ncurses ]; - # Fix build for recent ncurses versions - NIX_CFLAGS_COMPILE = "-DNCURSES_INTERNALS=1"; - 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"; diff --git a/pkgs/games/rpg-cli/default.nix b/pkgs/games/rpg-cli/default.nix index 8128a67ebeeec..cad3b539d9ad2 100644 --- a/pkgs/games/rpg-cli/default.nix +++ b/pkgs/games/rpg-cli/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "rpg-cli"; - version = "1.0.0"; + version = "1.0.1"; src = fetchFromGitHub { owner = "facundoolano"; repo = pname; rev = version; - sha256 = "sha256-Ih+1qO/VHkRp766WDe09xXL/pkby+sURopy7m5wRn4Y="; + sha256 = "sha256-rhG/EK68PWvQYoZdjhk0w7oNmh/QiTaAt4/WgEkgxEA="; }; - cargoSha256 = "sha256-Au7Nlpl4XOSG8rW0DaHFDqBr1kUY5Emyw6ff0htPc+I="; + cargoSha256 = "sha256-YXQohmDmkClziaLkL2N4cGURZ0tewyt7BuNY4hS+a4w="; # tests assume the authors macbook, and thus fail doCheck = false; diff --git a/pkgs/games/sgt-puzzles/default.upstream b/pkgs/games/sgt-puzzles/default.upstream deleted file mode 100644 index b6d048b68ae9c..0000000000000 --- a/pkgs/games/sgt-puzzles/default.upstream +++ /dev/null @@ -1,5 +0,0 @@ -minimize_overwrite -url http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles.tar.gz -redirect -NEED_TO_CHOOSE_URL= -version '.*[-_.]([0-9]{8}[.][^.]+)[.]tar[.].*' '\1' diff --git a/pkgs/games/shattered-pixel-dungeon/default.nix b/pkgs/games/shattered-pixel-dungeon/default.nix index 8dc205d51bc39..d8bf9d5f32351 100644 --- a/pkgs/games/shattered-pixel-dungeon/default.nix +++ b/pkgs/games/shattered-pixel-dungeon/default.nix @@ -10,15 +10,15 @@ let pname = "shattered-pixel-dungeon"; - version = "1.1.0"; + version = "1.1.2"; src = fetchFromGitHub { owner = "00-Evan"; repo = "shattered-pixel-dungeon"; # NOTE: always use the commit sha, not the tag. Tags _will_ disappear! # https://github.com/00-Evan/shattered-pixel-dungeon/issues/596 - rev = "7f29a03078647ea503d3c866476568511aa5af84"; - sha256 = "sha256-+d8X7WFGX8YGb2rGu8jVO82QdlF9ec+6+Ti5wGEIwRg="; + rev = "5d1a2dce6b554b40f6737ead45d411fd98f4c67d"; + sha256 = "sha256-Vu7K0NnqFY298BIQV9AwNEahV0eJl14tAeq+rw6KrtM="; }; postPatch = '' diff --git a/pkgs/games/snis/default.nix b/pkgs/games/snis/default.nix new file mode 100644 index 0000000000000..ed09ed46eff54 --- /dev/null +++ b/pkgs/games/snis/default.nix @@ -0,0 +1,73 @@ +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, coreutils +, portaudio +, libbsd +, libpng +, libvorbis +, SDL2 +, makeWrapper +, lua5_2 +, glew +, openssl +, picotts +, alsa-utils +, espeak-classic +, sox +, libopus +, openscad +}: + +stdenv.mkDerivation { + pname = "snis_launcher"; + version = "unstable-2021-10-17"; + + src = fetchFromGitHub { + owner = "smcameron"; + repo = "space-nerds-in-space"; + rev = "e70d3c63e33c940feb53c8d818ce2d8ea2aadf00"; + sha256 = "sha256-HVCb1iFn7GWNpedtFCgLyd0It8s4PEmUwDfb8ap1TDc="; + }; + + postPatch = '' + substituteInPlace Makefile \ + --replace "OPUSARCHIVE=libopus.a" "OPUSARCHIVE=" \ + --replace "-I./opus-1.3.1/include" "-I${libopus.dev}/include/opus" + substituteInPlace snis_launcher \ + --replace "PREFIX=." "PREFIX=$out" + substituteInPlace snis_text_to_speech.sh \ + --replace "pico2wave" "${sox}/bin/pico2wave" \ + --replace "espeak" "${espeak-classic}/bin/espeak" \ + --replace "play" "${sox}/bin/play" \ + --replace "aplay" "${alsa-utils}/bin/aplay" \ + --replace "/bin/rm" "${coreutils}/bin/rm" + ''; + + nativeBuildInputs = [ pkg-config openscad makeWrapper ]; + buildInputs = [ coreutils portaudio libbsd libpng libvorbis SDL2 lua5_2 glew openssl picotts sox alsa-utils libopus ]; + + postBuild = '' + make models -j$NIX_BUILD_CORES + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out + cp -R share $out/share + cp -R bin $out/bin + cp snis_launcher $out/bin/ + # without this, snis_client crashes on Wayland + wrapProgram $out/bin/snis_client --set SDL_VIDEODRIVER x11 + runHook postInstall + ''; + + meta = with lib; { + description = "Space Nerds In Space, a multi-player spaceship bridge simulator"; + homepage = "https://smcameron.github.io/space-nerds-in-space/"; + license = licenses.gpl2; + maintainers = with maintainers; [ alyaeanyx ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix index 8c379959ad8b0..35e8b9838f5a3 100644 --- a/pkgs/games/steam/fhsenv.nix +++ b/pkgs/games/steam/fhsenv.nix @@ -327,7 +327,7 @@ in buildFHSUserEnv rec { name = "steam-run"; targetPkgs = commonTargetPkgs; - inherit multiPkgs extraBuildCommands; + inherit multiPkgs extraBuildCommands profile; inherit unshareIpc unsharePid; diff --git a/pkgs/games/supertux/default.nix b/pkgs/games/supertux/default.nix index 31b36efc4900e..067ce78fae9cd 100644 --- a/pkgs/games/supertux/default.nix +++ b/pkgs/games/supertux/default.nix @@ -1,21 +1,21 @@ { lib, stdenv, fetchurl, cmake, pkg-config, SDL2, SDL2_image , curl , libogg, libvorbis, libGLU, libGL, openal, boost, glew -, libpng, freetype +, libpng, freetype, glm }: stdenv.mkDerivation rec { pname = "supertux"; - version = "0.6.2"; + version = "0.6.3"; src = fetchurl { url = "https://github.com/SuperTux/supertux/releases/download/v${version}/SuperTux-v${version}-Source.tar.gz"; - sha256 = "167m3z4m8n76dvbv42m1fnvabpbpsxvr28zk9641916jl9pfba96"; + sha256 = "1xkr3ka2sxp5s0spp84iv294i29s1vxqzazb6kmjc0n415h0x57p"; }; nativeBuildInputs = [ pkg-config cmake ]; buildInputs = [ SDL2 SDL2_image curl libogg libvorbis libGLU libGL openal boost glew - libpng freetype + libpng freetype glm ]; cmakeFlags = [ "-DENABLE_BOOST_STATIC_LIBS=OFF" ]; diff --git a/pkgs/games/tennix/default.nix b/pkgs/games/tennix/default.nix index f81ddb7edf953..809ed7a146d08 100644 --- a/pkgs/games/tennix/default.nix +++ b/pkgs/games/tennix/default.nix @@ -1,4 +1,4 @@ -{lib, stdenv, fetchurl, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_net, python } : +{lib, stdenv, fetchurl, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_net, python2 } : stdenv.mkDerivation rec { pname = "tennix"; @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { sha256 = "0np5kw1y7i0z0dsqx4r2nvmq86qj8hv3mmgavm3hxraqnds5z8cm"; }; - buildInputs = [ python SDL SDL_mixer SDL_image SDL_ttf SDL_net ]; + buildInputs = [ python2 SDL SDL_mixer SDL_image SDL_ttf SDL_net ]; patches = [ ./fix_FTBFS.patch ]; diff --git a/pkgs/games/tetrio-desktop/default.nix b/pkgs/games/tetrio-desktop/default.nix new file mode 100644 index 0000000000000..c700aba72fc9c --- /dev/null +++ b/pkgs/games/tetrio-desktop/default.nix @@ -0,0 +1,85 @@ +{ stdenv +, lib +, fetchurl +, autoPatchelfHook +, alsa-lib +, cups +, libX11 +, libXScrnSaver +, libXtst +, mesa +, nss +, systemd +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "tetrio-desktop"; + version = "8.0.0"; + + src = fetchurl { + url = "https://web.archive.org/web/20211130172544/https://tetr.io/about/desktop/builds/TETR.IO%20Setup.deb"; + name = "tetrio-desktop.deb"; + sha256 = "1nlblfhrph4cw8rpic9icrs78mzrxyskl7ggyy2i8bk9i07i21xf"; + }; + + nativeBuildInputs = [ + autoPatchelfHook + wrapGAppsHook + ]; + + buildInputs = [ + alsa-lib + cups + libX11 + libXScrnSaver + libXtst + mesa + nss + ]; + + dontWrapGApps = true; + + libPath = lib.makeLibraryPath [ + alsa-lib + cups + libX11 + libXScrnSaver + libXtst + mesa + nss + systemd + ]; + + unpackPhase = '' + mkdir -p $TMP/tetrio-desktop $out/bin + cp $src $TMP/tetrio-desktop.deb + ar vx $TMP/tetrio-desktop.deb + tar --no-overwrite-dir -xvf data.tar.xz -C $TMP/tetrio-desktop/ + ''; + + installPhase = '' + cp -R $TMP/tetrio-desktop/{usr/share,opt} $out/ + + wrapProgram $out/opt/TETR.IO/tetrio-desktop \ + --prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/TETR.IO + + ln -s $out/opt/TETR.IO/tetrio-desktop $out/bin/ + + substituteInPlace $out/share/applications/tetrio-desktop.desktop \ + --replace "Exec=\"/opt/TETR.IO/tetrio-desktop\"" "Exec=\"$out/opt/TETR.IO/tetrio-desktop\"" + ''; + + meta = with lib; { + homepage = "https://tetr.io"; + downloadPage = "https://tetr.io/about/desktop/"; + description = "TETR.IO desktop client"; + longDescription = '' + TETR.IO is a modern yet familiar online stacker. + Play against friends and foes all over the world, or claim a spot on the leaderboards - the stacker future is yours! + ''; + platforms = [ "x86_64-linux" ]; + license = licenses.unfree; + maintainers = with maintainers; [ wackbyte ]; + }; +} diff --git a/pkgs/games/the-legend-of-edgar/default.nix b/pkgs/games/the-legend-of-edgar/default.nix new file mode 100644 index 0000000000000..d099bbf2a4205 --- /dev/null +++ b/pkgs/games/the-legend-of-edgar/default.nix @@ -0,0 +1,75 @@ +{ lib +, stdenv +, fetchFromGitHub +, SDL2 +, SDL2_image +, SDL2_mixer +, SDL2_ttf +, gettext +, libpng +, pkg-config +, zlib +}: + +stdenv.mkDerivation rec { + pname = "the-legend-of-edgar"; + version = "1.35"; + + src = fetchFromGitHub { + name = "${pname}-${version}-src"; + owner = "riksweeney"; + repo = "edgar"; + rev = version; + hash = "sha256-ojy4nEW9KiSte/AoFUMPrKCxvIeQpMVIL4ileHiBydo="; + }; + + nativeBuildInputs = [ + pkg-config + gettext + ]; + + buildInputs = [ + SDL2 + SDL2_image + SDL2_mixer + SDL2_ttf + libpng + zlib + ]; + + dontConfigure = true; + + makefile = "makefile"; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + "BIN_DIR=${placeholder "out"}/bin/" + ]; + + # TODO: remove the setting below when the next version arrives + # https://github.com/riksweeney/edgar/pull/57 + preBuild = '' + export CFLAGS=$(sdl2-config --cflags) + ''; + + meta = with lib; { + homepage = "https://www.parallelrealities.co.uk/games/edgar"; + description = "A 2D platform game with a persistent world"; + longDescription = '' + When Edgar's father fails to return home after venturing out one dark and + stormy night, Edgar fears the worst: he has been captured by the evil + sorcerer who lives in a fortress beyond the forbidden swamp. + + Donning his armour, Edgar sets off to rescue him, but his quest will not + be easy... + + The Legend of Edgar is a platform game, not unlike those found on the + Amiga and SNES. Edgar must battle his way across the world, solving + puzzles and defeating powerful enemies to achieve his quest. + ''; + license = licenses.gpl1Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + broken = stdenv.isDarwin; + }; +} diff --git a/pkgs/games/toppler/default.nix b/pkgs/games/toppler/default.nix index ffe807410bb40..890e13498747e 100644 --- a/pkgs/games/toppler/default.nix +++ b/pkgs/games/toppler/default.nix @@ -1,34 +1,61 @@ -{ lib, stdenv -, fetchurl -, SDL -, SDL_mixer +{ lib +, stdenv +, fetchFromGitLab + +, pkg-config +, gettext +, povray +, imagemagick +, gimp + +, SDL2 +, SDL2_mixer +, SDL2_image +, libpng , zlib }: stdenv.mkDerivation rec { pname = "toppler"; - version = "1.1.6"; + version = "1.3"; - src = fetchurl { - url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz"; - sha256 = "0ifccissd8sh78kpwh7dafx4ah7hkhqz6nf4z2hdnalw702jkg3x"; + src = fetchFromGitLab { + owner = "roever"; + repo = "toppler"; + rev = "v${version}"; + sha256 = "sha256-ecEaELu52Nmov/BD9VzcUw6wyWeHJcsKQkEzTnaW330="; }; + nativeBuildInputs = [ + pkg-config + gettext + povray + imagemagick + gimp + ]; + buildInputs = [ - SDL - SDL_mixer + SDL2 + SDL2_mixer + SDL2_image + libpng zlib ]; - # The conftest hangs on Hydra runners, because they are not logged in. - configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest"; + # GIMP needs a writable home + preBuild = '' + export HOME=$(mktemp -d) + ''; + + makeFlags = [ "PREFIX=$(out)" ]; + + hardeningDisable = [ "format" ]; meta = with lib; { description = "Jump and run game, reimplementation of Tower Toppler/Nebulus"; - homepage = "http://toppler.sourceforge.net/"; - license = licenses.gpl2; + homepage = "https://gitlab.com/roever/toppler"; + license = licenses.gpl2Plus; maintainers = with maintainers; [ fgaz ]; platforms = platforms.all; }; } - diff --git a/pkgs/games/tworld2/default.nix b/pkgs/games/tworld2/default.nix new file mode 100644 index 0000000000000..1db1dcf5f0652 --- /dev/null +++ b/pkgs/games/tworld2/default.nix @@ -0,0 +1,45 @@ +{ stdenv +, lib +, fetchurl +, qt4 +, SDL +}: + +stdenv.mkDerivation rec { + pname = "tworld2"; + version = "2.2.0"; + + src = fetchurl { + url = "https://tw2.bitbusters.club/downloads/tworld-${version}-src.tar.gz"; + sha256 = "sha256:1y55v2shk2xxcds7bdwdjaq9lka31sgdp2469zqnvldchwbvcb2i"; + }; + + buildInputs = [ qt4 SDL ]; + enableParallelBuilding = true; + + postConfigure = '' + echo "#define COMPILE_TIME \"$(date -ud "@$SOURCE_DATE_EPOCH" '+%Y %b %e %T %Z')\"" >comptime.h + ''; + + makeFlags = [ + "bindir=${placeholder "out"}/bin" + "sharedir=${placeholder "out"}/share" + "mandir=${placeholder "out"}/share/man/en" + ]; + + postInstall = '' + mkdir -p $out/share/doc/${pname} + cp COPYING README docs/tworld2.html $out/share/doc/${pname} + + mkdir $out/share/icons + cp tworld.ico tworld2.ico $out/share/icons + ''; + + meta = with lib; { + description = "Tile World 2: Tile World is a reimplementation of the game Chip's Challenge"; + homepage = "https://tw2.bitbusters.club/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ drperceptron ]; + }; +} diff --git a/pkgs/games/uchess/default.nix b/pkgs/games/uchess/default.nix index cafd7cf57696b..58b45609cc4a0 100644 --- a/pkgs/games/uchess/default.nix +++ b/pkgs/games/uchess/default.nix @@ -13,7 +13,7 @@ buildGoModule rec { sha256 = "1njl3f41gshdpj431zkvpv2b7zmh4m2m5q6xsijb0c0058dk46mz"; }; - vendorSha256 = "0dkq240ch1z3gihn8yc5d723nnvfxirk2nhw12r1c2hj1ga088g3"; + vendorSha256 = "sha256-4yEE1AsSChayCBxaMXPsbls7xGmFeWRhfOMHyAAReDY="; # package does not contain any tests as of v0.2.1 doCheck = false; diff --git a/pkgs/games/ue4demos/default.nix b/pkgs/games/ue4demos/default.nix index a2d114f511392..51148e42e8e16 100644 --- a/pkgs/games/ue4demos/default.nix +++ b/pkgs/games/ue4demos/default.nix @@ -5,7 +5,7 @@ let [ # Untrusted mirrors - do not update hashes "https://ludios.org/mirror/ue4demos/${file}" - "http://web.archive.org/web/20140824192039/http://ue4linux.raxxy.com/${file}" + "https://web.archive.org/web/20140824192039/http://ue4linux.raxxy.com/${file}" ]; buildDemo = { name, src }: diff --git a/pkgs/games/unciv/default.nix b/pkgs/games/unciv/default.nix index 307138c03aaa0..dd9e1c827c46f 100644 --- a/pkgs/games/unciv/default.nix +++ b/pkgs/games/unciv/default.nix @@ -25,11 +25,11 @@ let in stdenv.mkDerivation rec { pname = "unciv"; - version = "3.15.9"; + version = "3.19.7"; src = fetchurl { url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar"; - sha256 = "sha256-ONp7M6nMlVjxNnsIveDpqV7/WahydphP16DFDrcjY4E="; + sha256 = "sha256-I6qU/qojUjwCQf7DLoeUwoYROo4N5SEtWCs1DazaZXw="; }; dontUnpack = true; diff --git a/pkgs/games/vapor/default.nix b/pkgs/games/vapor/default.nix deleted file mode 100644 index 2fa7ca1892701..0000000000000 --- a/pkgs/games/vapor/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ lib, stdenv, fetchurl, love, lua, makeWrapper, makeDesktopItem }: - -let - pname = "vapor"; - version = "0.2.3"; - commitid = "dbf509f"; - - icon = fetchurl { - url = "http://vapor.love2d.org/sites/default/files/vapT240x90.png"; - sha256 = "1xlra74lpm1y54z6zm6is0gldkswp3wdw09m6a306ch0xjf3f87f"; - }; - - desktopItem = makeDesktopItem { - name = "Vapor"; - exec = pname; - icon = icon; - comment = "LÖVE Distribution Client"; - desktopName = "Vapor"; - genericName = "vapor"; - categories = "Game;"; - }; - -in - -stdenv.mkDerivation { - name = "${pname}-${version}"; - - src = fetchurl { - url = - "https://github.com/josefnpat/${pname}/releases/download/${version}/${pname}_${commitid}.love"; - sha256 = "0w2qkrrkzfy4h4jld18apypmbi8a8r89y2l11axlv808i2rg68fk"; - }; - - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ lua love ]; - - dontUnpack = true; - - installPhase = - '' - mkdir -p $out/bin - mkdir -p $out/share - - cp -v $src $out/share/${pname}.love - - makeWrapper ${love}/bin/love $out/bin/${pname} --add-flags $out/share/${pname}.love - - chmod +x $out/bin/${pname} - mkdir -p $out/share/applications - ln -s ${desktopItem}/share/applications/* $out/share/applications/ - ''; - - meta = with lib; { - description = "LÖVE Distribution Client allowing access to many games"; - platforms = platforms.linux; - license = licenses.zlib; - maintainers = with maintainers; [ leenaars ]; - downloadPage = "http://vapor.love2d.org/"; - }; - -} diff --git a/pkgs/games/vassal/default.nix b/pkgs/games/vassal/default.nix index 1a08fbb4dd0b4..905d51438b687 100644 --- a/pkgs/games/vassal/default.nix +++ b/pkgs/games/vassal/default.nix @@ -2,16 +2,18 @@ stdenv.mkDerivation rec { pname = "VASSAL"; - version = "3.5.8"; + version = "3.6.5"; src = fetchzip { url = "https://github.com/vassalengine/vassal/releases/download/${version}/${pname}-${version}-linux.tar.bz2"; - sha256 = "sha256-IJ3p7+0fs/2dCbE1BOb2580upR9W/1R2/e3xmkAsJ+M="; + sha256 = "sha256-wnaT0+r599/RboeUfpCZTNd/M2kaCsckI9F+7r7leEE="; }; nativeBuildInputs = [ makeWrapper ]; installPhase = '' + runHook preInstall + mkdir -p $out/bin $out/share/vassal $out/doc cp CHANGES LICENSE README.md $out @@ -21,6 +23,8 @@ stdenv.mkDerivation rec { makeWrapper ${jre}/bin/java $out/bin/vassal \ --add-flags "-Duser.dir=$out -cp $out/share/vassal/Vengine.jar \ VASSAL.launch.ModuleManager" + + runHook postInstall ''; # Don't move doc to share/, VASSAL expects it to be in the root @@ -28,7 +32,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A free, open-source boardgame engine"; - homepage = "http://www.vassalengine.org/"; + homepage = "https://vassalengine.org/"; license = licenses.lgpl21Only; maintainers = with maintainers; [ tvestelind ]; platforms = platforms.unix; diff --git a/pkgs/games/vdrift/default.nix b/pkgs/games/vdrift/default.nix index 04f65cf793795..19397794649b9 100644 --- a/pkgs/games/vdrift/default.nix +++ b/pkgs/games/vdrift/default.nix @@ -12,7 +12,7 @@ , bullet , curl , gettext -, writeTextFile +, writeShellScriptBin , data ? fetchsvn { url = "svn://svn.code.sf.net/p/vdrift/code/vdrift-data"; @@ -54,21 +54,15 @@ let }; }; wrappedName = "vdrift-${version}-with-data-${toString data.rev}"; -in writeTextFile { +in +(writeShellScriptBin "vdrift" '' + export VDRIFT_DATA_DIRECTORY="${data}" + exec ${bin}/bin/vdrift "$@" +'').overrideAttrs (_: { name = wrappedName; - text = '' - export VDRIFT_DATA_DIRECTORY="${data}" - exec ${bin}/bin/vdrift "$@" - ''; - destination = "/bin/vdrift"; - executable = true; - checkPhase = '' - ${stdenv.shell} -n $out/bin/vdrift - ''; -} // { meta = bin.meta // { hydraPlatforms = [ ]; }; unwrapped = bin; inherit bin data; -} +}) diff --git a/pkgs/games/vintagestory/default.nix b/pkgs/games/vintagestory/default.nix index d19611a08ffeb..8c2e8573177ec 100644 --- a/pkgs/games/vintagestory/default.nix +++ b/pkgs/games/vintagestory/default.nix @@ -17,11 +17,11 @@ stdenv.mkDerivation rec { pname = "vintagestory"; - version = "1.15.10"; + version = "1.16.3"; src = fetchurl { url = "https://cdn.vintagestory.at/gamefiles/stable/vs_archive_${version}.tar.gz"; - sha256 = "sha256-aT6vndo/SSAqd4omyW4qWvGetkqEpgvapqaqDBrbTmo="; + sha256 = "sha256-PpvTHG/EBKBhtlgIrAz/B+U1aHbZURN2cWTlZ/DkZQs="; }; nativeBuildInputs = [ makeWrapper copyDesktopItems ]; diff --git a/pkgs/games/warzone2100/default.nix b/pkgs/games/warzone2100/default.nix index e5656e50de3c6..788fbdbf6c8ea 100644 --- a/pkgs/games/warzone2100/default.nix +++ b/pkgs/games/warzone2100/default.nix @@ -124,7 +124,7 @@ stdenv.mkDerivation rec { technologies, combined with the unit design system, allows for a wide variety of possible units and tactics. ''; - homepage = "http://wz2100.net"; + homepage = "https://wz2100.net"; license = licenses.gpl2Plus; maintainers = with maintainers; [ astsmtl fgaz ]; platforms = platforms.all; diff --git a/pkgs/games/widelands/default.nix b/pkgs/games/widelands/default.nix index f094c7cd59616..f53b3deaef493 100644 --- a/pkgs/games/widelands/default.nix +++ b/pkgs/games/widelands/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchFromGitHub +, fetchpatch , SDL2 , SDL2_image , SDL2_mixer @@ -32,7 +33,14 @@ stdenv.mkDerivation rec { sha256 = "sha256-gNumYoeKePaxiAzrqEPKibMxFwv9vyBrCSoua+MKhcM="; }; - patches = [ ./bincmake.patch ]; + patches = [ + ./bincmake.patch + # fix for building with Boost 1.77, https://github.com/widelands/widelands/pull/5025 + (fetchpatch { + url = "https://github.com/widelands/widelands/commit/33981fda8c319c9feafc958f5f0b1670c48666ef.patch"; + sha256 = "sha256-FjxxCTPpg/Zp01XpNfgRXMMLJBfxAptkLpsLmnFXm2Q="; + }) + ]; postPatch = '' substituteInPlace xdg/org.widelands.Widelands.desktop \ diff --git a/pkgs/games/worldofgoo/default.nix b/pkgs/games/worldofgoo/default.nix index a9938cfcbc042..fee4699aec92a 100644 --- a/pkgs/games/worldofgoo/default.nix +++ b/pkgs/games/worldofgoo/default.nix @@ -68,7 +68,7 @@ stdenv.mkDerivation rec { Balls who live in the beautiful World of Goo don't know that they are in a game, or that they are extremely delicious. ''; - homepage = "http://worldofgoo.com"; + homepage = "https://worldofgoo.com"; license = licenses.unfree; platforms = [ "i686-linux" "x86_64-linux" ]; maintainers = with maintainers; [ jcumming maxeaubrey ]; diff --git a/pkgs/games/xconq/default.nix b/pkgs/games/xconq/default.nix index 8f4366fbcb87d..10a959a676b49 100644 --- a/pkgs/games/xconq/default.nix +++ b/pkgs/games/xconq/default.nix @@ -2,12 +2,11 @@ , libXext, fontconfig, makeWrapper }: stdenv.mkDerivation rec { - name = "${baseName}-${version}"; - baseName = "xconq"; + pname = "xconq"; version = "7.5.0-0pre.0.20050612"; src = fetchurl { - url = "mirror://sourceforge/project/${baseName}/${baseName}/${name}/${name}.tar.gz"; + url = "mirror://sourceforge/project/xconq/xconq/xconq-${version}/xconq-${version}.tar.gz"; sha256 = "1za78yx57mgwcmmi33wx3533yz1x093dnqis8q2qmqivxav51lca"; }; diff --git a/pkgs/games/xcowsay/default.nix b/pkgs/games/xcowsay/default.nix index 89ca50b3a3321..52569e044f06e 100644 --- a/pkgs/games/xcowsay/default.nix +++ b/pkgs/games/xcowsay/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "xcowsay"; - version = "1.5.1"; + version = "1.6"; src = fetchurl { url = "http://www.nickg.me.uk/files/xcowsay-${version}.tar.gz"; - sha256 = "sha256-wypsfAp634wbaAI+fxzmr3J5AmvQzChVi/wp/BPxiA0="; + sha256 = "sha256-RqzoZP8o0tIfS3BY8CleGNAEGhIMEHipUfpDxOD1yMU="; }; buildInputs = [ diff --git a/pkgs/games/xmoto/default.nix b/pkgs/games/xmoto/default.nix index 246e1afc7444a..5909c3f20ee46 100644 --- a/pkgs/games/xmoto/default.nix +++ b/pkgs/games/xmoto/default.nix @@ -57,7 +57,7 @@ stdenv.mkDerivation rec { 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"; + homepage = "https://xmoto.tuxfamily.org"; maintainers = with maintainers; [ raskin pSub ]; platforms = platforms.all; license = licenses.gpl2Plus; |