From 17020526a78b0814fc813900cabd7043d7b419e4 Mon Sep 17 00:00:00 2001 From: michael bishop Date: Wed, 25 Nov 2015 06:34:26 -0400 Subject: multimc: init at 0.4.8 --- pkgs/games/multimc/default.nix | 55 ++++++++++++++++++++++++++++++++++++++++ pkgs/games/multimc/multimc.patch | 24 ++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 pkgs/games/multimc/default.nix create mode 100644 pkgs/games/multimc/multimc.patch (limited to 'pkgs/games/multimc') 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(); + } -- cgit 1.4.1