about summary refs log tree commit diff
path: root/pkgs/games/multimc
diff options
context:
space:
mode:
authormichael bishop <cleverca22@gmail.com>2015-11-25 06:34:26 -0400
committermichael bishop <cleverca22@gmail.com>2015-11-25 06:34:26 -0400
commit17020526a78b0814fc813900cabd7043d7b419e4 (patch)
tree5b16ae615cd91784fb451ab4f0ff43df22baeb7a /pkgs/games/multimc
parent2c502bc9d2780df8988234ca004e31d8b1d7b126 (diff)
downloadnixlib-17020526a78b0814fc813900cabd7043d7b419e4.tar
nixlib-17020526a78b0814fc813900cabd7043d7b419e4.tar.gz
nixlib-17020526a78b0814fc813900cabd7043d7b419e4.tar.bz2
nixlib-17020526a78b0814fc813900cabd7043d7b419e4.tar.lz
nixlib-17020526a78b0814fc813900cabd7043d7b419e4.tar.xz
nixlib-17020526a78b0814fc813900cabd7043d7b419e4.tar.zst
nixlib-17020526a78b0814fc813900cabd7043d7b419e4.zip
multimc: init at 0.4.8
Diffstat (limited to 'pkgs/games/multimc')
-rw-r--r--pkgs/games/multimc/default.nix55
-rw-r--r--pkgs/games/multimc/multimc.patch24
2 files changed, 79 insertions, 0 deletions
diff --git a/pkgs/games/multimc/default.nix b/pkgs/games/multimc/default.nix
new file mode 100644
index 000000000000..c07a76d397d3
--- /dev/null
+++ b/pkgs/games/multimc/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub, cmake, qt5Full, jdk7, zlib, file, makeWrapper, xorg, libpulseaudio }:
+
+let
+  libnbt = fetchFromGitHub {
+    owner = "MultiMC";
+    repo = "libnbtplusplus";
+    rev = "5d0ffb50a526173ce58ae57136bf5d79a7e1920d";
+    sha256 = "05hnwfb77rmm9ba7n96g4g1sgwqqcmplvbcafsl76yxr6ysgw5jg";
+  };
+in
+stdenv.mkDerivation {
+  name = "multimc-5";
+  src = fetchFromGitHub {
+    owner = "MultiMC";
+    repo = "MultiMC5";
+    rev = "895d8ab4699f1b50bf03532c967a91f5ecb62a50";
+    sha256 = "179vc1iv57fx4g4h1wy8yvyvdm671jnvp6zi8pcr1n6azqhwklds";
+  };
+  buildInputs = [ cmake qt5Full jdk7 zlib file makeWrapper ];
+
+  libpath = with xorg; [ libX11 libXext libXcursor libXrandr libXxf86vm libpulseaudio ];
+  postUnpack = ''
+    rmdir $sourceRoot/depends/libnbtplusplus
+    cp -r ${libnbt} $sourceRoot/depends/libnbtplusplus
+    chmod 755 -R $sourceRoot/depends/libnbtplusplus
+  '';
+
+  patches = [ ./multimc.patch ];
+
+  enableParallelBuilding = true;
+
+  # the install rule tries to bundle ALL deps into the output for portability
+  installPhase = ''
+    RESULT=/run/opengl-driver/lib/
+    for x in $libpath; do
+      RESULT=$x/lib/:$RESULT
+    done
+
+    mkdir -pv $out/bin/jars $out/lib
+    cp -v MultiMC $out/bin/
+    cp -v jars/*.jar $out/bin/jars/
+    cp -v librainbow.so libnbt++.so libMultiMC_logic.so $out/lib
+    wrapProgram $out/bin/MultiMC --add-flags "-d \$HOME/.multimc/" --set GAME_LIBRARY_PATH $RESULT --prefix PATH : ${jdk7}/bin/
+  '';
+
+  meta = {
+    homepage = https://multimc.org/;
+    description = "A free, open source launcher for Minecraft";
+    longDescription = ''
+      Allows you to have multiple, separate instances of Minecraft (each with their own mods, texture packs, saves, etc) and helps you manage them and their associated options with a simple interface.
+    '';
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.lgpl21Plus;
+  };
+}
diff --git a/pkgs/games/multimc/multimc.patch b/pkgs/games/multimc/multimc.patch
new file mode 100644
index 000000000000..39d0076f16a7
--- /dev/null
+++ b/pkgs/games/multimc/multimc.patch
@@ -0,0 +1,24 @@
+diff -ur MultiMC5-895d8ab4699f1b50bf03532c967a91f5ecb62a50-src-orig/application/MultiMC.cpp MultiMC5-895d8ab4699f1b50bf03532c967a91f5ecb62a50-src/application/MultiMC.cpp
+--- MultiMC5-895d8ab4699f1b50bf03532c967a91f5ecb62a50-src-orig/application/MultiMC.cpp	2015-10-25 03:29:25.270126028 -0300
++++ MultiMC5-895d8ab4699f1b50bf03532c967a91f5ecb62a50-src/application/MultiMC.cpp	2015-10-25 04:22:48.568437861 -0300
+@@ -330,7 +330,7 @@
+ 	}
+ 
+ 	m_mmc_translator.reset(new QTranslator());
+-	if (m_mmc_translator->load("mmc_" + locale.bcp47Name(), staticDataPath + "/translations"))
++	if (m_mmc_translator->load("mmc_" + locale.bcp47Name(), "translations"))
+ 	{
+ 		qDebug() << "Loading MMC Language File for"
+ 					 << locale.bcp47Name().toLocal8Bit().constData() << "...";
+diff -ur MultiMC5-895d8ab4699f1b50bf03532c967a91f5ecb62a50-src-orig/logic/Env.cpp MultiMC5-895d8ab4699f1b50bf03532c967a91f5ecb62a50-src/logic/Env.cpp
+--- MultiMC5-895d8ab4699f1b50bf03532c967a91f5ecb62a50-src-orig/logic/Env.cpp	2015-10-25 03:29:25.428124792 -0300
++++ MultiMC5-895d8ab4699f1b50bf03532c967a91f5ecb62a50-src/logic/Env.cpp	2015-10-25 04:29:24.145412196 -0300
+@@ -147,7 +147,7 @@
+ 	m_metacache->addBase("general", QDir("cache").absolutePath());
+ 	m_metacache->addBase("skins", QDir("accounts/skins").absolutePath());
+ 	m_metacache->addBase("root", QDir(rootPath).absolutePath());
+-	m_metacache->addBase("translations", QDir(staticDataPath + "/translations").absolutePath());
++	m_metacache->addBase("translations", QDir("translations").absolutePath());
+ 	m_metacache->addBase("icons", QDir("cache/icons").absolutePath());
+ 	m_metacache->Load();
+ }