diff options
Diffstat (limited to 'pkgs/games')
-rw-r--r-- | pkgs/games/dwarf-fortress/dfhack/default.nix | 2 | ||||
-rw-r--r-- | pkgs/games/dwarf-fortress/wrapper/dfhack.in | 2 | ||||
-rw-r--r-- | pkgs/games/mindustry/default.nix | 106 | ||||
-rw-r--r-- | pkgs/games/steam/chrootenv.nix | 4 | ||||
-rw-r--r-- | pkgs/games/ultrastardx/default.nix | 8 |
5 files changed, 113 insertions, 9 deletions
diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index 544fa26b21cc..5706337dffd7 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -109,7 +109,7 @@ let ''; preBuild = '' - export LD_LIBRARY_PATH="$PWD/depends/protobuf:$LD_LIBRARY_PATH" + export LD_LIBRARY_PATH="$PWD/depends/protobuf''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" ''; cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" "-DDOWNLOAD_RUBY=OFF" ] diff --git a/pkgs/games/dwarf-fortress/wrapper/dfhack.in b/pkgs/games/dwarf-fortress/wrapper/dfhack.in index 4cf884ebed2c..026b33ab87bf 100644 --- a/pkgs/games/dwarf-fortress/wrapper/dfhack.in +++ b/pkgs/games/dwarf-fortress/wrapper/dfhack.in @@ -7,5 +7,5 @@ for i in dfhack.init-example dfhack-config/default hack/* stonesense/*; do done cd "$DF_DIR" -LD_LIBRARY_PATH="$env_dir/hack/libs:$env_dir/hack:$LD_LIBRARY_PATH" \ +LD_LIBRARY_PATH="$env_dir/hack/libs:$env_dir/hack${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" \ LD_PRELOAD="$env_dir/hack/libdfhack.so:$LD_PRELOAD" exec $env_dir/libs/Dwarf_Fortress "$@" diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix new file mode 100644 index 000000000000..0b3824f2ec82 --- /dev/null +++ b/pkgs/games/mindustry/default.nix @@ -0,0 +1,106 @@ +{ stdenv +, makeWrapper +, makeDesktopItem +, fetchFromGitHub +, gradle_5 +, perl +, jre +, libpulseaudio + +# Make the build version easily overridable. +# Server and client build versions must match, and an empty build version means +# any build is allowed, so this parameter acts as a simple whitelist. +# Takes the package version and returns the build version. +, makeBuildVersion ? (v: v) +}: + +let + pname = "mindustry"; + # Note: when raising the version, ensure that all SNAPSHOT versions in + # build.gradle are replaced by a fixed version + # (the current one at the time of release) (see postPatch). + version = "102"; + buildVersion = makeBuildVersion version; + + src = fetchFromGitHub { + owner = "Anuken"; + repo = "Mindustry"; + rev = "v${version}"; + sha256 = "0g4zy2zlynv6f427pq1ngnl0zpr6nnih10wd2l8vl9bxwzjygwdr"; + }; + + desktopItem = makeDesktopItem { + type = "Application"; + name = "Mindustry"; + desktopName = "Mindustry"; + exec = "mindustry"; + icon = "mindustry"; + }; + + postPatch = '' + # Remove unbuildable iOS stuff + sed -i '/^project(":ios"){/,/^}/d' build.gradle + sed -i '/robo(vm|VM)/d' build.gradle + rm ios/build.gradle + + # Pin 'SNAPSHOT' versions + sed -i 's/com.github.anuken:packr:-SNAPSHOT/com.github.anuken:packr:034efe51781d2d8faa90370492133241bfb0283c/' build.gradle + ''; + + # fake build to pre-download deps into fixed-output derivation + deps = stdenv.mkDerivation { + pname = "${pname}-deps"; + inherit version src postPatch; + nativeBuildInputs = [ gradle_5 perl ]; + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d) + gradle --no-daemon desktop:dist -Pbuildversion=${buildVersion} + gradle --no-daemon server:dist -Pbuildversion=${buildVersion} + ''; + # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) + installPhase = '' + find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ + | sh + ''; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "1sscxrr32f2agwz34pm491xqkz7m4bwdc1p3g64kcnl3p6rg7r7k"; + }; + +in stdenv.mkDerivation rec { + inherit pname version src postPatch; + + nativeBuildInputs = [ gradle_5 makeWrapper ]; + + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d) + # point to offline repo + sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" build.gradle + gradle --offline --no-daemon desktop:dist -Pbuildversion=${buildVersion} + gradle --offline --no-daemon server:dist -Pbuildversion=${buildVersion} + ''; + + installPhase = '' + install -Dm644 desktop/build/libs/Mindustry.jar $out/share/mindustry.jar + install -Dm644 server/build/libs/server-release.jar $out/share/mindustry-server.jar + mkdir $out/bin + makeWrapper ${jre}/bin/java $out/bin/mindustry \ + --prefix LD_LIBRARY_PATH : ${libpulseaudio}/lib \ + --add-flags "-jar $out/share/mindustry.jar" + makeWrapper ${jre}/bin/java $out/bin/mindustry-server \ + --add-flags "-jar $out/share/mindustry-server.jar" + install -Dm644 core/assets/icons/icon_64.png $out/share/icons/hicolor/64x64/apps/mindustry.png + install -Dm644 ${desktopItem}/share/applications/Mindustry.desktop $out/share/applications/Mindustry.desktop + ''; + + meta = with stdenv.lib; { + homepage = "https://mindustrygame.github.io/"; + downloadPage = "https://github.com/Anuken/Mindustry/releases"; + description = "A sandbox tower defense game"; + license = licenses.gpl3; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} + diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/chrootenv.nix index 9229f4fbc93e..4245704575c4 100644 --- a/pkgs/games/steam/chrootenv.nix +++ b/pkgs/games/steam/chrootenv.nix @@ -53,7 +53,7 @@ let echo "$runtime_paths" exit 0 fi - export LD_LIBRARY_PATH="$runtime_paths:$LD_LIBRARY_PATH" + export LD_LIBRARY_PATH="$runtime_paths''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" exec "$@" ''; @@ -260,7 +260,7 @@ in buildFHSUserEnv rec { exit 1 fi shift - ${lib.optionalString (!nativeOnly) "export LD_LIBRARY_PATH=/lib32:/lib64:${lib.concatStringsSep ":" ldPath}:$LD_LIBRARY_PATH"} + ${lib.optionalString (!nativeOnly) "export LD_LIBRARY_PATH=/lib32:/lib64:${lib.concatStringsSep ":" ldPath}\${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"} exec -- "$run" "$@" ''; }; diff --git a/pkgs/games/ultrastardx/default.nix b/pkgs/games/ultrastardx/default.nix index 1c40d8f5800f..feaf6cabf32a 100644 --- a/pkgs/games/ultrastardx/default.nix +++ b/pkgs/games/ultrastardx/default.nix @@ -12,21 +12,19 @@ let in stdenv.mkDerivation rec { pname = "ultrastardx"; - version = "2017.8.0"; + version = "unstable-2019-01-07"; src = fetchFromGitHub { owner = "UltraStar-Deluxe"; repo = "USDX"; - rev = "v${version}"; - sha256 = "1zp0xfwzci3cjmwx3cprcxvm60cik5cvhvrz9n4d6yb8dv38nqzm"; + rev = "3df142590f29db1505cc58746af9f8cf7cb4a6a5"; + sha256 = "EpwGKK9B8seF7gRwo3kCeSzFQQW1p8rP4HXeu8/LoyA="; }; nativeBuildInputs = [ pkgconfig autoreconfHook ]; buildInputs = [ fpc libpng ] ++ sharedLibs; - # https://github.com/UltraStar-Deluxe/USDX/issues/462 postPatch = '' substituteInPlace src/config.inc.in \ - --subst-var-by lua_LIB_NAME liblua.so \ --subst-var-by libpcre_LIBNAME libpcre.so.1 ''; |