summary refs log tree commit diff
path: root/pkgs/games/minecraft
diff options
context:
space:
mode:
authorSilvan Mosberger <infinisil@icloud.com>2018-07-19 00:05:53 +0200
committerSilvan Mosberger <infinisil@icloud.com>2018-07-19 00:05:53 +0200
commit47f78cd36ae1acd85557b27e7e4b6e8eb8012bc2 (patch)
tree11e030d77e47107269262422b547110536bfd888 /pkgs/games/minecraft
parent35c069ea02b6a19263cd66c2885f4d8190a7c910 (diff)
downloadnixpkgs-47f78cd36ae1acd85557b27e7e4b6e8eb8012bc2.tar
nixpkgs-47f78cd36ae1acd85557b27e7e4b6e8eb8012bc2.tar.gz
nixpkgs-47f78cd36ae1acd85557b27e7e4b6e8eb8012bc2.tar.bz2
nixpkgs-47f78cd36ae1acd85557b27e7e4b6e8eb8012bc2.tar.lz
nixpkgs-47f78cd36ae1acd85557b27e7e4b6e8eb8012bc2.tar.xz
nixpkgs-47f78cd36ae1acd85557b27e7e4b6e8eb8012bc2.tar.zst
nixpkgs-47f78cd36ae1acd85557b27e7e4b6e8eb8012bc2.zip
minecraft: clean and fix up
The launcher now downloads almost all required libraries itself into
~/.minecraft and there's nothing one can do about it. Sound only works
with libpulseaudio though
Diffstat (limited to 'pkgs/games/minecraft')
-rw-r--r--pkgs/games/minecraft/default.nix49
1 files changed, 18 insertions, 31 deletions
diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix
index e59181bb0fa..76edc512b0e 100644
--- a/pkgs/games/minecraft/default.nix
+++ b/pkgs/games/minecraft/default.nix
@@ -1,11 +1,6 @@
-{ stdenv, fetchurl, makeDesktopItem
-, jre, libX11, libXext, libXcursor, libXrandr, libXxf86vm
-, openjdk
-, libGLU_combined, openal
-, useAlsa ? false, alsaOss ? null }:
-with stdenv.lib;
-
-assert useAlsa -> alsaOss != null;
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper
+, jdk, jre, libpulseaudio
+}:
 
 let
   desktopItem = makeDesktopItem {
@@ -19,41 +14,33 @@ let
   };
 
 in stdenv.mkDerivation {
-  name = "minecraft-2015.07.24";
+  name = "minecraft-2015-07-24";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/Minecraft.Download/launcher/Minecraft.jar";
     sha256 = "04pj4l5q0a64jncm2kk45r7nxnxa2z9n110dcxbbahdi6wk0png8";
   };
 
-  phases = "installPhase";
-
-  installPhase = ''
-    set -x
-    mkdir -pv $out/bin
-    cp -v $src $out/minecraft.jar
+  nativeBuildInputs = [ makeWrapper ];
 
-    cat > $out/bin/minecraft << EOF
-    #!${stdenv.shell}
+  unpackPhase = "${jdk}/bin/jar xf $src favicon.png";
 
-    export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm libGLU_combined openal ]}
-    ${if useAlsa then "${alsaOss}/bin/aoss" else "" } \
-      ${jre}/bin/java -jar $out/minecraft.jar
-    EOF
-
-    chmod +x $out/bin/minecraft
+  installPhase = ''
+    mkdir -p $out/bin $out/share/minecraft
 
-    mkdir -p $out/share/applications
-    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+    makeWrapper ${jre}/bin/java $out/bin/minecraft \
+      --add-flags "-jar $out/share/minecraft/minecraft.jar" \
+      --suffix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ libpulseaudio ]}
 
-    ${openjdk}/bin/jar xf $out/minecraft.jar favicon.png
+    cp $src $out/share/minecraft/minecraft.jar
+    cp -r ${desktopItem}/share/applications $out/share
     install -D favicon.png $out/share/icons/hicolor/32x32/apps/minecraft.png
   '';
 
-  meta = {
-      description = "A sandbox-building game";
-      homepage = http://www.minecraft.net;
-      maintainers = with stdenv.lib.maintainers; [ cpages ryantm ];
-      license = stdenv.lib.licenses.unfreeRedistributable;
+  meta = with stdenv.lib; {
+    description = "A sandbox-building game";
+    homepage = https://minecraft.net;
+    maintainers = with maintainers; [ cpages ryantm infinisil ];
+    license = licenses.unfreeRedistributable;
   };
 }