summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/games/openra/common.nix7
-rw-r--r--pkgs/games/openra/engines.nix14
-rw-r--r--pkgs/games/openra/mod-launch-game.sh6
-rwxr-xr-xpkgs/games/openra/mod-update.sh27
-rw-r--r--pkgs/games/openra/mods.nix48
5 files changed, 54 insertions, 48 deletions
diff --git a/pkgs/games/openra/common.nix b/pkgs/games/openra/common.nix
index 200b9da4a7e..b0d1f2a5455 100644
--- a/pkgs/games/openra/common.nix
+++ b/pkgs/games/openra/common.nix
@@ -3,7 +3,7 @@
 */
 { stdenv, makeSetupHook, curl, unzip, dos2unix, pkgconfig, makeWrapper
 , lua, mono, dotnetPackages, python
-, libGL, openal, SDL2
+, libGL, freetype, openal, SDL2
 , zenity
 }:
 
@@ -11,7 +11,7 @@ with stdenv.lib;
 
 let
   path = makeBinPath ([ mono python ] ++ optional (zenity != null) zenity);
-  rpath = makeLibraryPath [ lua openal SDL2 ];
+  rpath = makeLibraryPath [ lua freetype openal SDL2 ];
   mkdirp = makeSetupHook { } ./mkdirp.sh;
 
 in {
@@ -54,10 +54,7 @@ in {
       StyleCopMSBuild
       StyleCopPlusMSBuild
     ] ++ [
-      lua
       libGL
-      openal
-      SDL2
     ];
 
     # TODO: Test if this is correct.
diff --git a/pkgs/games/openra/engines.nix b/pkgs/games/openra/engines.nix
index 7454d32c113..a6eb363dcb7 100644
--- a/pkgs/games/openra/engines.nix
+++ b/pkgs/games/openra/engines.nix
@@ -22,20 +22,20 @@ let
 
 in {
   release = name: (buildUpstreamOpenRAEngine rec {
-    version = "20181215";
+    version = "20190314";
     rev = "${name}-${version}";
-    sha256 = "0p0izykjnz7pz02g2khp7msqa00jhjsrzk9y0g29dirmdv75qa4r";
+    sha256 = "15pvn5cx3g0nzbrgpsfz8dngad5wkzp5dz25ydzn8bmxafiijvcr";
   } name);
 
   playtest = name: (buildUpstreamOpenRAEngine rec {
-    version = "20190106";
+    version = "20190302";
     rev = "${name}-${version}";
-    sha256 = "0ps9x379plrrj1hnj4fpr26lc46mzgxknv5imxi0bmrh5y4781ql";
+    sha256 = "1vqvfk2p2lpk3m0d3rpvj34i8cmk3mfc7w4cn4llqd9zp4kk9pya";
   } name);
 
   bleed = buildUpstreamOpenRAEngine {
-    version = "9c9cad1";
-    rev = "9c9cad1a15c3a34dc2a61b305e4a9a735381a5f8";
-    sha256 = "0100p7wrnnlvkmy581m0gbyg3cvi4i1w3lzx2gq91ndz1sbm8nd2";
+    version = "8ee1102";
+    rev = "8ee11028d72cde7556b31d45f556b40be65b4b70";
+    sha256 = "19fjzwgmfdf832c6b1x885kaiyck03kpiba0qpsxvps04i7b3vj4";
   };
 }
diff --git a/pkgs/games/openra/mod-launch-game.sh b/pkgs/games/openra/mod-launch-game.sh
index c0b6feb69c8..88b53e71e1b 100644
--- a/pkgs/games/openra/mod-launch-game.sh
+++ b/pkgs/games/openra/mod-launch-game.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
 show_error() {
   if command -v zenity > /dev/null; then
     zenity --no-wrap --no-markup --error --title "OpenRA - @title@" --text "$1" 2>/dev/null
@@ -12,7 +12,7 @@ cd "@out@/lib/openra-@name@"
 
 # Check for missing assets
 assetsError='@assetsError@'
-if [ -n "$assetsError" -a ! -d "$HOME/.openra/Content/@name@" ]; then
+if [[ -n "$assetsError" && ! -d "$HOME/.openra/Content/@name@" ]]; then
   show_error "$assetsError"
 fi
 
@@ -20,6 +20,6 @@ fi
 mono --debug OpenRA.Game.exe Game.Mod=@name@ Engine.LaunchPath="@out@/bin/openra-@name@" Engine.ModSearchPaths="@out@/lib/openra-@name@/mods" "$@"
 
 # Show a crash dialog if something went wrong
-if [ $? -ne 0 -a $? -ne 1 ]; then
+if (( $? != 0 && $? != 1 )); then
   show_error $'OpenRA - @title@ has encountered a fatal error.\nPlease refer to the crash logs for more information.\n\nLog files are located in ~/.openra/Logs'
 fi
diff --git a/pkgs/games/openra/mod-update.sh b/pkgs/games/openra/mod-update.sh
index 52bcada8f9a..8489d5a97a7 100755
--- a/pkgs/games/openra/mod-update.sh
+++ b/pkgs/games/openra/mod-update.sh
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# shellcheck disable=SC2034
 
 # for mod in $(nix eval --raw '(
 #   with import <nixpkgs> { };
@@ -9,9 +10,7 @@
 #   ./mod-update.sh "$mod"
 # done
 
-# Uses:
-# https://github.com/msteen/nix-prefetch
-# https://github.com/msteen/nix-update-fetch
+# Uses: https://github.com/msteen/nix-upfetch
 
 mod=$1
 commit_count=$2
@@ -19,7 +18,7 @@ token=
 nixpkgs='<nixpkgs>'
 
 die() {
-  ret=$?
+  local ret=$?
   echo "$*" >&2
   exit $ret
 }
@@ -34,13 +33,16 @@ get_sha1() {
   curl -H "Authorization: token $token" -H 'Accept: application/vnd.github.VERSION.sha' "https://api.github.com/repos/$owner/$repo/commits/$ref"
 }
 
+[[ -n $mod ]] || die "The first argument of this script has to be a mod identifier."
+
 [[ -n $token ]] || die "Please edit this script to include a GitHub API access token, which is required for API v4:
 https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/"
 
 # Get current mod_owner and mod_repo.
-vars=$(nix-prefetch --file "$nixpkgs" "openraPackages.mods.$mod" --index 0 --quiet --output json --skip-hash > >(
+vars=$(nix-prefetch --file "$nixpkgs" "openraPackages.mods.$mod" --index 0 --quiet --output json --no-compute-hash > >(
   jq --raw-output 'with_entries(select(.value | contains("\n") | not)) | to_entries | .[] | .key + "=" + .value')) || exit
 
+mod_owner=; mod_repo=; mod_rev=
 while IFS='=' read -r key val; do
   declare "mod_${key}=${val}"
 done <<< "$vars"
@@ -65,11 +67,12 @@ else
 }'
 fi
 
-query='query {
-  repository(owner: \"'"$mod_owner"'\", name: \"'"$mod_repo"'\") {
+# shellcheck disable=SC2089
+query='{
+  repository(owner: "'$mod_owner'", name: "'$mod_repo'") {
     defaultBranchRef {
       target {
-        ... on Commit '"$query_on_commit"'
+        ... on Commit '$query_on_commit'
       }
     }
     licenseInfo {
@@ -80,7 +83,9 @@ query='query {
 
 # Newlines are not allowed in a query.
 # https://developer.github.com/v4/guides/forming-calls/#communicating-with-graphql
+# shellcheck disable=SC2086 disable=SC2090 disable=SC2116
 query=$(echo $query)
+query=${query//\"/\\\"}
 
 # https://developer.github.com/v4/guides/using-the-explorer/#configuring-graphiql
 json=$(curl -H "Authorization: bearer $token" -X POST -d '{ "query": "'"$query"'" }' https://api.github.com/graphql) || exit
@@ -99,12 +104,14 @@ vars=$(jq --raw-output '.data.repository | {
   rev: .oid,
 }) | to_entries | .[] | .key + "=" + (.value | tostring)' <<< "$json") || exit
 
+mod_license_key=; mod_version=; mod_rev=
 while IFS='=' read -r key val; do
   declare "mod_${key}=${val}"
 done <<< "$vars"
 
 mod_config=$(curl "https://raw.githubusercontent.com/$mod_owner/$mod_repo/$mod_rev/mod.config") || exit
 
+mod_id=; engine_version=; automatic_engine_management=; automatic_engine_source=
 while IFS='=' read -r key val; do
   declare "${key,,}=$(jq --raw-output . <<< "$val")"
 done < <(grep '^\(MOD_ID\|ENGINE_VERSION\|AUTOMATIC_ENGINE_MANAGEMENT\|AUTOMATIC_ENGINE_SOURCE\)=' <<< "$mod_config")
@@ -116,6 +123,7 @@ echo >&2
 
 [[ $mod_id == "$mod" ]] ||
   die "The mod '$mod' reports being mod '$mod_id' instead."
+# shellcheck disable=SC2005 disable=SC2046
 [[ $mod_license_key == gpl-3.0 ]] ||
 [[ $(echo $(head -2 <(curl "https://raw.githubusercontent.com/$mod_owner/$mod_repo/$mod_rev/COPYING"))) == 'GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007' ]] ||
   die "The mod '$mod' is licensed under '$mod_license_key' while expecting 'gpl-3.0'."
@@ -126,6 +134,7 @@ echo >&2
 
 engine_owner=${BASH_REMATCH[1]}
 engine_repo=${BASH_REMATCH[2]}
+# shellcheck disable=SC2016
 [[ ${BASH_REMATCH[3]} == '${ENGINE_VERSION}' ]] || engine_version=${BASH_REMATCH[3]}
 engine_rev=$(get_sha1 "$engine_owner" "$engine_repo" "$engine_version")
 
@@ -146,6 +155,6 @@ for type in mod engine; do
   done
   var="${type}_version"
   version=${!var}
-  nix-update-fetch --yes --version "$version" "$(nix-prefetch --quiet --file "$nixpkgs" "openraPackages.mods.$mod" --index $i --output json --with-position --diff -- "${fetcher_args[@]}")"
+  nix-upfetch --yes --version "$version" "$(nix-preupfetch --file "$nixpkgs" "openraPackages.mods.$mod" --index $i -- "${fetcher_args[@]}")"
   (( i++ ))
 done
diff --git a/pkgs/games/openra/mods.nix b/pkgs/games/openra/mods.nix
index ddc34dbda8f..1e81e02e59f 100644
--- a/pkgs/games/openra/mods.nix
+++ b/pkgs/games/openra/mods.nix
@@ -60,23 +60,23 @@ in {
   };
 
   dr = buildOpenRAMod rec {
-    version = "266.git.920b476";
+    version = "324.git.ffcd6ba";
     title = "Dark Reign";
     description = "A re-imagination of the original Command & Conquer: ${title} game";
     homepage = https://github.com/drogoganor/DarkReign;
     src = fetchFromGitHub {
       owner = "drogoganor";
       repo = "DarkReign";
-      rev = "920b476be1b7751db087f1f7acd504b8a048d1e2";
-      sha256 = "11ir4pnichrnv4z9532fp9g166jl8fvy5kk03a2fgxssp3g40zz2";
+      rev = "ffcd6ba72979e5f77508136ed7b0efc13e4b100e";
+      sha256 = "07g4qw909649s3i1yhw75613mpwfka05jana5mpp5smhnf0pkack";
     };
     engine = {
       version = "DarkReign";
       src = fetchFromGitHub {
         owner = "drogoganor";
         repo = "OpenRA" ;
-        rev = "e08b75c2add30439228ea3dd61d6be60d1800329";
-        sha256 = "125vf962p69ajrh5pxgfwsi0ksczqwvlw5kn2fvffiwvh8d5in23";
+        rev = "f91d3f2603bbf51afaa89357e4defcdc36138102";
+        sha256 = "05g900ri6q0zrkrk8rmjaz576vjggmi2y6jm0xz3cwli54prn11w";
         name = "engine";
         inherit extraPostFetch;
       };
@@ -161,15 +161,15 @@ in {
   };
 
   ra2 = buildOpenRAMod rec {
-    version = "881.git.b37f4f9";
+    version = "903.git.2f7c700";
     title = "Red Alert 2";
     description = "Re-imagination of the original Command & Conquer: ${title} game";
     homepage = https://github.com/OpenRA/ra2;
     src = fetchFromGitHub {
       owner = "OpenRA";
       repo = "ra2";
-      rev = "b37f4f9f07404127062d9061966e9cc89dd86445";
-      sha256 = "1jiww66ma3qdk9hzyvhbcaa5h4p2mxxk22kvrw92ckpxy0bqba3h";
+      rev = "2f7c700d6d63c0625e7158ef3098221fa6741569";
+      sha256 = "11vnzwczn47wjfrq6y7z9q234p27ihdrcl5p87i6h2xnrpwi8b6m";
     };
     engine = rec {
       version = "release-20180923";
@@ -189,23 +189,23 @@ in {
   };
 
   raclassic = buildOpenRAMod {
-    version = "181.git.8240890";
+    version = "183.git.c76c13e";
     title = "Red Alert Classic";
     description = "A modernization of the original Command & Conquer: Red Alert game";
     homepage = https://github.com/OpenRA/raclassic;
     src = fetchFromGitHub {
       owner = "OpenRA";
       repo = "raclassic";
-      rev = "8240890b32191ce34241c22158b8a79e8c380879";
-      sha256 = "0dznyb6qa4n3ab87g1c4bihfc2nx53k6z0kajc7ynjdnwzvx69ww";
+      rev = "c76c13e9f0912a66ddebae8d05573632b19736b2";
+      sha256 = "1cnr3ccvrkjlv8kkdcglcfh133yy0fkva9agwgvc7wlj9n5ydl4g";
     };
     engine = rec {
-      version = "playtest-20190106";
+      version = "release-20190314";
       src = fetchFromGitHub {
         owner = "OpenRA";
         repo = "OpenRA" ;
         rev = version;
-        sha256 = "0ps9x379plrrj1hnj4fpr26lc46mzgxknv5imxi0bmrh5y4781ql";
+        sha256 = "15pvn5cx3g0nzbrgpsfz8dngad5wkzp5dz25ydzn8bmxafiijvcr";
         name = "engine";
         inherit extraPostFetch;
       };
@@ -242,24 +242,24 @@ in {
   };
 
   sp = unsafeBuildOpenRAMod {
-    version = "176.git.fc89ae8";
+    version = "221.git.ac000cc";
     title = "Shattered Paradise";
     description = "Re-imagination of the original Command & Conquer: Tiberian Sun game";
     homepage = https://github.com/ABrandau/OpenRAModSDK;
     src = fetchFromGitHub {
       owner = "ABrandau";
       repo = "OpenRAModSDK";
-      rev = "fc89ae8a10e0f765ac735f923e01aa24dd20e8d2";
-      sha256 = "0xyxhipmjlld0kp23fwsdwnspr7fci0mdnjd60gcsh34c7m0341p";
+      rev = "ac000cc15377cdf6d3c2b72c737d692aa0ed8bcd";
+      sha256 = "16mzs5wcxj9nlpcyx2c87idsqpbm40lx0rznsccclnlb3hiwqas9";
     };
     engine = {
-      version = "SP-Bleed-Branch";
+      version = "SP-22-04-19";
       mods = [ "as" "ts" ];
       src = fetchFromGitHub {
         owner = "ABrandau";
         repo = "OpenRA" ;
-        rev = "d3545c0b751aea2105748eddaab5919313e35314";
-        sha256 = "1jsldl6vnf3r9dzppdm4z7kqbrzkidda5k74wc809i8c4jjnq9rq";
+        rev = "bb0930008a57c07f3002421023f6b446e3e3af69";
+        sha256 = "1jvgpbf56hd02ikhklv49br4d1jiv5hphc5kl79qnjlaacnj222x";
         name = "engine";
         inherit extraPostFetch;
       };
@@ -315,23 +315,23 @@ in {
   };
 
   yr = unsafeBuildOpenRAMod rec {
-    version = "118.git.c26bf14";
+    version = "199.git.5b8b952";
     homepage = https://github.com/cookgreen/yr;
     title = "Yuri's Revenge";
     description = "Re-imagination of the original Command & Conquer: ${title} game";
     src = fetchFromGitHub {
       owner = "cookgreen";
       repo = "yr";
-      rev = "c26bf14155d040edf33c6c5eb3677517d07b39f8";
-      sha256 = "15k6gv4rx3490n0cs9q7ah7q31z89v0pddsw6nqv0fhcahhvq1bc";
+      rev = "5b8b952dbe21f194a6d00485f20e215ce8362712";
+      sha256 = "0hxzrqnz5d7qj1jjr20imiyih62x1cnmndf75nnil4c4sj82f9a6";
     };
     engine = rec {
-      version = "release-20180923";
+      version = "release-20190314";
       src = fetchFromGitHub {
         owner = "OpenRA";
         repo = "OpenRA" ;
         rev = version;
-        sha256 = "1pgi3zaq9fwwdq6yh19bwxscslqgabjxkvl9bcn1a5agy4bfbqk5";
+        sha256 = "15pvn5cx3g0nzbrgpsfz8dngad5wkzp5dz25ydzn8bmxafiijvcr";
         name = "engine";
         inherit extraPostFetch;
       };