diff options
Diffstat (limited to 'pkgs/games')
41 files changed, 710 insertions, 479 deletions
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/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/crawl/default.nix b/pkgs/games/crawl/default.nix index 02e34e5f749df..e5eea7ece6286 100644 --- a/pkgs/games/crawl/default.nix +++ b/pkgs/games/crawl/default.nix @@ -7,7 +7,7 @@ }: stdenv.mkDerivation rec { - name = "crawl-${version}${lib.optionalString tileMode "-tiles"}"; + pname = "crawl${lib.optionalString tileMode "-tiles"}"; version = "0.27.1"; src = fetchFromGitHub { 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/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/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/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 a877eed6213f6..bcbe2a6c65352 100644 --- a/pkgs/games/heroic/default.nix +++ b/pkgs/games/heroic/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchurl, appimageTools, python, gsettings-desktop-schemas, gtk3 }: +{ lib, fetchurl, appimageTools, gsettings-desktop-schemas, gtk3 }: let pname = "heroic"; 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/legendary-gl/default.nix b/pkgs/games/legendary-gl/default.nix index cbdfbc22891be..fe3761f12d338 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.24"; src = fetchFromGitHub { owner = "derrod"; repo = "legendary"; rev = version; - sha256 = "0d31c8grvcw7y3sh2x90cxhj612k6f491w2r12j1q33d2v9sqm4j"; + sha256 = "sha256-4VN/2FoAXTaumPsplV9wgdUSQsFitC1hqWveAW/yt58="; }; propagatedBuildInputs = [ requests ]; 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/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..4fe84ee21a590 --- /dev/null +++ b/pkgs/games/minecraft-servers/update.py @@ -0,0 +1,155 @@ +#!/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 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("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/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/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/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/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/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/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/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/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/tlauncher/default.nix b/pkgs/games/tlauncher/default.nix deleted file mode 100644 index 48cfac1f582ce..0000000000000 --- a/pkgs/games/tlauncher/default.nix +++ /dev/null @@ -1,100 +0,0 @@ -{ lib -, stdenv -, openjdk8 -, buildFHSUserEnv -, fetchzip -, fetchurl -, copyDesktopItems -, makeDesktopItem -}: -let - version = "2.839"; - src = stdenv.mkDerivation { - pname = "tlauncher"; - inherit version; - src = fetchzip { - name = "tlauncher.zip"; - url = "https://dl2.tlauncher.org/f.php?f=files%2FTLauncher-${version}.zip"; - sha256 = "sha256-KphpNuTucpuJhXspKxqDyYQN6vbpY0XCB3GAd5YCGbc="; - stripRoot = false; - }; - installPhase = '' - cp $src/*.jar $out - ''; - }; - fhs = buildFHSUserEnv { - name = "tlauncher"; - runScript = '' - ${openjdk8}/bin/java -jar "${src}" "$@" - ''; - targetPkgs = pkgs: with pkgs; [ - alsa-lib - cpio - cups - file - fontconfig - freetype - giflib - glib - gnome2.GConf - gnome2.gnome_vfs - gtk2 - libjpeg - libGL - openjdk8-bootstrap - perl - which - xorg.libICE - xorg.libX11 - xorg.libXcursor - xorg.libXext - xorg.libXi - xorg.libXinerama - xorg.libXrandr - xorg.xrandr - xorg.libXrender - xorg.libXt - xorg.libXtst - xorg.libXtst - xorg.libXxf86vm - zip - zlib - ]; - }; - desktopItem = makeDesktopItem { - name = "tlauncher"; - exec = "tlauncher"; - icon = fetchurl { - url = "https://styles.redditmedia.com/t5_2o8oax/styles/communityIcon_gu5r5v8eaiq51.png"; - sha256 = "sha256-ma8zxaUxdAw5VYfOK8i8s1kjwMgs80Eomq43Cb0HZWw="; - }; - comment = "Minecraft launcher"; - desktopName = "TLauncher"; - categories = "Game;"; - }; -in stdenv.mkDerivation { - pname = "tlauncher-wrapper"; - inherit version; - - dontUnpack = true; - - installPhase = '' - runHook preInstall - - mkdir $out/{bin,share/applications} -p - install ${fhs}/bin/tlauncher $out/bin - - runHook postInstall - ''; - - nativeBuildInputs = [ copyDesktopItems ]; - desktopItems = [ desktopItem ]; - - meta = with lib; { - description = "Minecraft launcher that already deal with forge, optifine and mods"; - homepage = "https://tlauncher.org/"; - maintainers = with maintainers; [ lucasew ]; - license = licenses.unfree; - platforms = openjdk8.meta.platforms; - }; -} 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..fc32607adac77 100644 --- a/pkgs/games/vassal/default.nix +++ b/pkgs/games/vassal/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "VASSAL"; - version = "3.5.8"; + version = "3.6.1"; 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-elcSwm7KvDpGVBF7Gs6GFreQPyVwWBxYN0NO1N6JWDM="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/games/vintagestory/default.nix b/pkgs/games/vintagestory/default.nix index d19611a08ffeb..5a4e8fe852c60 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.0"; src = fetchurl { url = "https://cdn.vintagestory.at/gamefiles/stable/vs_archive_${version}.tar.gz"; - sha256 = "sha256-aT6vndo/SSAqd4omyW4qWvGetkqEpgvapqaqDBrbTmo="; + sha256 = "sha256-1lAcE+RwK16xPTGxGCz2Pdq6GhmXFwy60CSZyq3hgnM="; }; nativeBuildInputs = [ makeWrapper copyDesktopItems ]; 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"; }; |