about summary refs log tree commit diff
path: root/pkgs/games/shattered-pixel-dungeon/generic.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games/shattered-pixel-dungeon/generic.nix')
-rw-r--r--pkgs/games/shattered-pixel-dungeon/generic.nix45
1 files changed, 10 insertions, 35 deletions
diff --git a/pkgs/games/shattered-pixel-dungeon/generic.nix b/pkgs/games/shattered-pixel-dungeon/generic.nix
index fdd87ba2bd19b..3e81c54bba911 100644
--- a/pkgs/games/shattered-pixel-dungeon/generic.nix
+++ b/pkgs/games/shattered-pixel-dungeon/generic.nix
@@ -2,10 +2,10 @@
 { pname
 , version
 , src
-, depsHash
 , meta
 , desktopName
 , patches ? [ ./disable-beryx.patch ]
+, depsPath ? null
 
 , lib
 , stdenv
@@ -53,30 +53,18 @@ let
     keywords = [ "roguelike" "dungeon" "crawler" ];
   };
 
-  # fake build to pre-download deps into fixed-output derivation
-  deps = stdenv.mkDerivation {
-    pname = "${pname}-deps";
-    inherit version src patches postPatch;
-    nativeBuildInputs = [ gradle perl ] ++ attrs.nativeBuildInputs or [];
-    buildPhase = ''
-      export GRADLE_USER_HOME=$(mktemp -d)
-      # https://github.com/gradle/gradle/issues/4426
-      ${lib.optionalString stdenv.isDarwin "export TERM=dumb"}
-      gradle --no-daemon desktop:release
-    '';
-    # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
-    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
-    '';
-    outputHashMode = "recursive";
-    outputHash = depsHash;
-  };
+  depsPath' = if depsPath != null then depsPath else ./. + "/${pname}/deps.json";
 
 in stdenv.mkDerivation (cleanAttrs // {
   inherit pname version src patches postPatch;
 
+  mitmCache = gradle.fetchDeps {
+    inherit pname;
+    data = depsPath';
+  };
+
+  __darwinAllowLocalNetworking = true;
+
   nativeBuildInputs = [
     gradle
     perl
@@ -86,18 +74,7 @@ in stdenv.mkDerivation (cleanAttrs // {
 
   desktopItems = [ desktopItem ];
 
-  buildPhase = ''
-    runHook preBuild
-
-    export GRADLE_USER_HOME=$(mktemp -d)
-    # https://github.com/gradle/gradle/issues/4426
-    ${lib.optionalString stdenv.isDarwin "export TERM=dumb"}
-    # point to offline repo
-    sed -ie "s#repositories {#repositories { maven { url '${deps}' };#g" build.gradle
-    gradle --offline --no-daemon desktop:release
-
-    runHook postBuild
-  '';
+  gradleBuildTask = "desktop:release";
 
   installPhase = ''
     runHook preInstall
@@ -131,8 +108,6 @@ in stdenv.mkDerivation (cleanAttrs // {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
-    # https://github.com/NixOS/nixpkgs/pull/99885#issuecomment-740065005
-    broken = stdenv.isDarwin;
     mainProgram = pname;
   } // meta;
 })