# This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # multimc # multimc/Makefile # multimc/files # multimc/files/patch-CMakeLists.txt # multimc/files/patch-api_gui_DesktopServices.cpp # multimc/files/patch-api_logic_FileSystem.cpp # multimc/files/patch-api_logic_FileSystem__test.cpp # multimc/files/patch-api_logic_java_JavaUtils.cpp # multimc/files/patch-api_logic_minecraft_MinecraftInstance.cpp # multimc/files/patch-api_logic_minecraft_OpSys.cpp # multimc/files/patch-api_logic_minecraft_OpSys.h # multimc/files/patch-api_logic_minecraft_launch_ExtractNatives.cpp # multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp # multimc/files/patch-application_CMakeLists.txt # multimc/files/patch-application_MultiMC.cpp # multimc/files/patch-application_UpdateController.cpp # multimc/files/patch-application_install__prereqs.cmake.in # multimc/files/patch-libraries_iconfix_internal_qiconloader.cpp # multimc/files/patch-libraries_systeminfo_src_sys__unix.cpp # multimc/pkg-descr # multimc/distinfo # multimc/pkg-plist # echo c - multimc mkdir -p multimc > /dev/null 2>&1 echo x - multimc/Makefile sed 's/^X//' >multimc/Makefile << '65cf9079dfa953b629fe9437ff78f595' X# $FreeBSD$ X XPORTNAME= multimc XDISTVERSION= 0.6.0 XCATEGORIES= games X XMAINTAINER= me@tsundoku.ne.jp XCOMMENT= Minecraft launcher with ability to manage multiple instances X XLICENSE= APACHE20 X XRUN_DEPENDS= ${LOCALBASE}/lib/lwjgl2.9.3/liblwjgl64.so:games/lwjgl X XUSES= cmake:outsource X XUSE_QT5+= core concurrent gui network widgets xml X XUSE_GITHUB= yes XGH_ACCOUNT= MultiMC XGH_PROJECT= libnbtplusplus:libnbtplusplus quazip:quazip MultiMC5 XGH_TAGNAME= 4b305bb:libnbtplusplus 164acc3:quazip XGH_SUBDIR= libraries/libnbtplusplus:libnbtplusplus libraries/quazip:quazip X XCMAKE_ARGS+= -DCMAKE_BUILD_TYPE="Release" XCMAKE_ARGS+= -DMultiMC_UPDATER="OFF" XCMAKE_ARGS+= -DMultiMC_LAYOUT="lin-system" XCMAKE_ARGS+= -DCMAKE_CXX_FLAGS="-Wno-inconsistent-missing-override" XCMAKE_ARGS+= -DCMAKE_CXX_FLAGS="-Wno-delete-non-virtual-dtor" X X.include 65cf9079dfa953b629fe9437ff78f595 echo c - multimc/files mkdir -p multimc/files > /dev/null 2>&1 echo x - multimc/files/patch-CMakeLists.txt sed 's/^X//' >multimc/files/patch-CMakeLists.txt << '2e6bb90b1164ccf5149eaa4b922f4b96' X--- CMakeLists.txt.orig 2017-12-18 00:19:43 UTC X+++ CMakeLists.txt X@@ -5,6 +5,8 @@ if(IS_IN_SOURCE_BUILD) X message(AUTHOR_WARNING "You are building MultiMC in-source. This is NOT recommended!") X endif() X X+set(CMAKE_INSTALL_PREFIX "/") X+ X if(WIN32) X # In Qt 5.1+ we have our own main() function, don't autolink to qtmain on Windows X cmake_policy(SET CMP0020 OLD) 2e6bb90b1164ccf5149eaa4b922f4b96 echo x - multimc/files/patch-api_gui_DesktopServices.cpp sed 's/^X//' >multimc/files/patch-api_gui_DesktopServices.cpp << '7b5f93b630f6065c501c8f3f13e882a0' X--- api/gui/DesktopServices.cpp.orig 2017-12-18 00:19:43 UTC X+++ api/gui/DesktopServices.cpp X@@ -7,7 +7,7 @@ X /** X * This shouldn't exist, but until QTBUG-9328 and other unreported bugs are fixed, it needs to be a thing. X */ X-#if defined(Q_OS_LINUX) X+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X X #include X #include X@@ -83,7 +83,7 @@ bool openDirectory(const QString &path, X { X return QDesktopServices::openUrl(QUrl::fromLocalFile(dir.absolutePath())); X }; X-#if defined(Q_OS_LINUX) X+#if defined(Q_OS_LINUX) || defined (Q_OS_FREEBSD) X return IndirectOpen(f); X #else X return f(); X@@ -97,7 +97,7 @@ bool openFile(const QString &path) X { X return QDesktopServices::openUrl(QUrl::fromLocalFile(path)); X }; X-#if defined(Q_OS_LINUX) X+#if defined(Q_OS_LINUX) || defined (Q_OS_FREEBSD) X return IndirectOpen(f); X #else X return f(); X@@ -107,7 +107,7 @@ bool openFile(const QString &path) X bool openFile(const QString &application, const QString &path, const QString &workingDirectory, qint64 *pid) X { X qDebug() << "Opening file" << path << "using" << application; X-#if defined(Q_OS_LINUX) X+#if defined(Q_OS_LINUX) || defined (Q_OS_FREEBSD) X // FIXME: the pid here is fake. So if something depends on it, it will likely misbehave X return IndirectOpen([&]() X { X@@ -121,7 +121,7 @@ bool openFile(const QString &application X bool run(const QString &application, const QStringList &args, const QString &workingDirectory, qint64 *pid) X { X qDebug() << "Running" << application << "with args" << args.join(' '); X-#if defined(Q_OS_LINUX) X+#if defined(Q_OS_LINUX) || defined (Q_OS_FREEBSD) X // FIXME: the pid here is fake. So if something depends on it, it will likely misbehave X return IndirectOpen([&]() X { X@@ -139,7 +139,7 @@ bool openUrl(const QUrl &url) X { X return QDesktopServices::openUrl(url); X }; X-#if defined(Q_OS_LINUX) X+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X return IndirectOpen(f); X #else X return f(); 7b5f93b630f6065c501c8f3f13e882a0 echo x - multimc/files/patch-api_logic_FileSystem.cpp sed 's/^X//' >multimc/files/patch-api_logic_FileSystem.cpp << '81633176e68e41d8516bc815cffc1f45' X--- api/logic/FileSystem.cpp.orig 2017-12-18 00:19:43 UTC X+++ api/logic/FileSystem.cpp X@@ -407,7 +407,7 @@ QString getDesktopDir() X bool createShortCut(QString location, QString dest, QStringList args, QString name, X QString icon) X { X-#if defined Q_OS_LINUX X+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X location = PathCombine(location, name + ".desktop"); X X QFile f(location); 81633176e68e41d8516bc815cffc1f45 echo x - multimc/files/patch-api_logic_FileSystem__test.cpp sed 's/^X//' >multimc/files/patch-api_logic_FileSystem__test.cpp << 'f2652ad4e8d62cb5b7ed301d58e1d5f2' X--- api/logic/FileSystem_test.cpp.orig 2017-12-18 00:19:43 UTC X+++ api/logic/FileSystem_test.cpp X@@ -119,7 +119,7 @@ slots: X X // this is only valid on linux X // FIXME: implement on windows, OSX, then test. X-#if defined(Q_OS_LINUX) X+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X void test_createShortcut_data() X { X QTest::addColumn("location"); X@@ -134,7 +134,7 @@ slots: X << (QStringList() << "arg1" << "arg2") X << "asdf" X << QString() X- #if defined(Q_OS_LINUX) X+ #if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X << MULTIMC_GET_TEST_FILE("data/FileSystem-test_createShortcut-unix") X #elif defined(Q_OS_WIN) X << QByteArray() f2652ad4e8d62cb5b7ed301d58e1d5f2 echo x - multimc/files/patch-api_logic_java_JavaUtils.cpp sed 's/^X//' >multimc/files/patch-api_logic_java_JavaUtils.cpp << 'd3e36b9140b328ceeb5c49eae8965898' X--- api/logic/java/JavaUtils.cpp.orig 2017-12-18 00:19:43 UTC X+++ api/logic/java/JavaUtils.cpp X@@ -81,7 +81,7 @@ QProcessEnvironment CleanEnviroment() X qDebug() << "Env: ignoring" << key << value; X continue; X } X-#ifdef Q_OS_LINUX X+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X // Do not pass LD_* variables to java. They were intended for MultiMC X if(key.startsWith("LD_")) X { X@@ -110,7 +110,7 @@ QProcessEnvironment CleanEnviroment() X qDebug() << "Env: " << key << value; X env.insert(key, value); X } X-#ifdef Q_OS_LINUX X+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X // HACK: Workaround for QTBUG42500 X if(!env.contains("LD_LIBRARY_PATH")) X { X@@ -291,7 +291,7 @@ QList JavaUtils::FindJavaPaths( X return javas; X } X X-#elif defined(Q_OS_LINUX) X+#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X QList JavaUtils::FindJavaPaths() X { X qDebug() << "Linux Java detection incomplete - defaulting to \"java\""; d3e36b9140b328ceeb5c49eae8965898 echo x - multimc/files/patch-api_logic_minecraft_MinecraftInstance.cpp sed 's/^X//' >multimc/files/patch-api_logic_minecraft_MinecraftInstance.cpp << '976dcca7970aa0204c3d34fb2acd730d' X--- api/logic/minecraft/MinecraftInstance.cpp.orig 2017-12-18 00:19:43 UTC X+++ api/logic/minecraft/MinecraftInstance.cpp X@@ -163,7 +163,11 @@ QString MinecraftInstance::binRoot() con X X QString MinecraftInstance::getNativePath() const X { X+#if defined(Q_OS_FREEBSD) X+ QDir natives_dir("/usr/local/lib/lwjgl2.9.3/"); X+#else X QDir natives_dir(FS::PathCombine(instanceRoot(), "natives/")); X+#endif X return natives_dir.absolutePath(); X } X 976dcca7970aa0204c3d34fb2acd730d echo x - multimc/files/patch-api_logic_minecraft_OpSys.cpp sed 's/^X//' >multimc/files/patch-api_logic_minecraft_OpSys.cpp << 'eddca053c0833770ab08a3617ec3e377' X--- api/logic/minecraft/OpSys.cpp.orig 2017-12-18 00:19:43 UTC X+++ api/logic/minecraft/OpSys.cpp X@@ -17,6 +17,8 @@ X X OpSys OpSys_fromString(QString name) X { X+ if (name == "freebsd") X+ return Os_FreeBSD; X if (name == "linux") X return Os_Linux; X if (name == "windows") X@@ -30,6 +32,8 @@ QString OpSys_toString(OpSys name) X { X switch (name) X { X+ case Os_FreeBSD: X+ return "freebsd"; X case Os_Linux: X return "linux"; X case Os_OSX: X@@ -39,4 +43,4 @@ QString OpSys_toString(OpSys name) X default: X return "other"; X } X-} X\ No newline at end of file X+} eddca053c0833770ab08a3617ec3e377 echo x - multimc/files/patch-api_logic_minecraft_OpSys.h sed 's/^X//' >multimc/files/patch-api_logic_minecraft_OpSys.h << 'ef720ee26c808ff1888b723d19246923' X--- api/logic/minecraft/OpSys.h.orig 2017-12-18 00:19:43 UTC X+++ api/logic/minecraft/OpSys.h X@@ -20,6 +20,7 @@ enum OpSys X Os_Windows, X Os_Linux, X Os_OSX, X+ Os_FreeBSD, X Os_Other X }; X X@@ -28,10 +29,10 @@ QString OpSys_toString(OpSys); X X #ifdef Q_OS_WIN32 X #define currentSystem Os_Windows X-#else X-#ifdef Q_OS_MAC X+#elif defined Q_OS_MAC X #define currentSystem Os_OSX X+#elif defined Q_OS_FREEBSD X+#define currentSystem Os_FreeBSD X #else X #define currentSystem Os_Linux X #endif X-#endif X\ No newline at end of file ef720ee26c808ff1888b723d19246923 echo x - multimc/files/patch-api_logic_minecraft_launch_ExtractNatives.cpp sed 's/^X//' >multimc/files/patch-api_logic_minecraft_launch_ExtractNatives.cpp << 'ce854915f2acd4ac316909053010ea4e' X--- api/logic/minecraft/launch/ExtractNatives.cpp.orig 2017-12-18 00:19:43 UTC X+++ api/logic/minecraft/launch/ExtractNatives.cpp X@@ -23,6 +23,14 @@ X #include "FileSystem.h" X #include X X+//C library defines interfere with Java version check X+#ifdef major X+ #undef major X+#endif X+#ifdef minor X+ #undef minor X+#endif X+ X static QString replaceSuffix (QString target, const QString &suffix, const QString &replacement) X { X if (!target.endsWith(suffix)) ce854915f2acd4ac316909053010ea4e echo x - multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp sed 's/^X//' >multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp << 'd6f7f4edddc016c42ddfaf6c3a05e77b' X--- api/logic/minecraft/launch/PrintInstanceInfo.cpp.orig 2017-12-18 00:19:43 UTC X+++ api/logic/minecraft/launch/PrintInstanceInfo.cpp X@@ -24,6 +24,10 @@ void PrintInstanceInfo::executeTask() X auto instance = m_parent->instance(); X auto lines = instance->verboseDescription(m_session); X X+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X+ X+ char buff[512]; X+ X #ifdef Q_OS_LINUX X std::ifstream cpuin("/proc/cpuinfo"); X for (std::string line; std::getline(cpuin, line);) X@@ -36,7 +40,6 @@ void PrintInstanceInfo::executeTask() X } X } X X- char buff[512]; X int gpuline = -1; X int cline = 0; X FILE *fp = popen("lspci -k", "r"); X@@ -64,6 +67,40 @@ void PrintInstanceInfo::executeTask() X cline++; X } X } X+#elif defined(Q_OS_FREEBSD) X+ X+ std::string strcard; X+ X+ FILE *fp3 = popen("sysctl hw.model", "r"); X+ if (fp3 != NULL) X+ { X+ fgets(buff, 512, fp3); X+ std::string str(buff); X+ QStringList clines = (QStringList() << QString::fromStdString(str.substr(10, std::string::npos))); X+ logLines(clines, MessageLevel::MultiMC); X+ } X+ X+ FILE *fp4 = popen("pciconf -lv -a vgapci0", "r"); X+ if (fp4 != NULL) X+ { X+ while (fgets(buff, 512, fp4) != NULL) X+ { X+ if (strncmp(buff, " vendor", 10) == 0) X+ { X+ std::string str(buff); X+ strcard.append(str.substr(str.find_first_of("'") + 1, str.find_last_not_of("'") - (str.find_first_of("'") + 2))); X+ strcard.append(" "); X+ } X+ else if (strncmp(buff, " device", 10) == 0) X+ { X+ std::string str2(buff); X+ strcard.append(str2.substr(str2.find_first_of("'") + 1, str2.find_last_not_of("'") - (str2.find_first_of("'") + 2))); X+ QStringList glines = (QStringList() << QString::fromStdString(strcard)); X+ logLines(glines, MessageLevel::MultiMC); X+ } X+ } X+ } X+#endif X X FILE *fp2 = popen("glxinfo", "r"); X if (fp2 != NULL) d6f7f4edddc016c42ddfaf6c3a05e77b echo x - multimc/files/patch-application_CMakeLists.txt sed 's/^X//' >multimc/files/patch-application_CMakeLists.txt << '87d7701fd850d33d6fb345034b250132' X--- application/CMakeLists.txt.orig 2017-12-18 00:19:43 UTC X+++ application/CMakeLists.txt X@@ -27,11 +27,11 @@ set(MultiMC_PASTE_EE_API_KEY "" CACHE ST X set(MultiMC_ANALYTICS_ID "" CACHE STRING "ID you can get from Google analytics") X X #### Check the current Git commit and branch X-include(GetGitRevisionDescription) X-get_git_head_revision(MultiMC_GIT_REFSPEC MultiMC_GIT_COMMIT) X+#include(GetGitRevisionDescription) X+#get_git_head_revision(MultiMC_GIT_REFSPEC MultiMC_GIT_COMMIT) X X-message(STATUS "Git commit: ${MultiMC_GIT_COMMIT}") X-message(STATUS "Git refspec: ${MultiMC_GIT_REFSPEC}") X+#message(STATUS "Git commit: ${MultiMC_GIT_COMMIT}") X+#message(STATUS "Git refspec: ${MultiMC_GIT_REFSPEC}") X X set(MultiMC_RELEASE_VERSION_NAME "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}") X X@@ -390,9 +390,9 @@ elseif(MultiMC_LAYOUT_REAL STREQUAL "lin X install(PROGRAMS package/linux/MultiMC DESTINATION ${BUNDLE_DEST_DIR}) X X elseif(MultiMC_LAYOUT_REAL STREQUAL "lin-system") X- set(MultiMC_BINARY_DEST_DIR "usr/bin" CACHE STRING "Relative path from packaging root to the binary directory") X- set(MultiMC_LIBRARY_DEST_DIR "usr/lib" CACHE STRING "Relative path from packaging root to the library directory") X- set(MultiMC_SHARE_DEST_DIR "usr/share/multimc" CACHE STRING "Relative path from packaging root to the shared data directory") X+ set(MultiMC_BINARY_DEST_DIR "usr/local/bin" CACHE STRING "Relative path from packaging root to the binary directory") X+ set(MultiMC_LIBRARY_DEST_DIR "usr/local/lib" CACHE STRING "Relative path from packaging root to the library directory") X+ set(MultiMC_SHARE_DEST_DIR "usr/local/share/multimc" CACHE STRING "Relative path from packaging root to the shared data directory") X set(MultiMC_APP_BINARY_NAME "multimc" CACHE STRING "Name of the MultiMC binary for the purposes of linux packaging") X set(JARS_DEST_DIR "${MultiMC_SHARE_DEST_DIR}") X 87d7701fd850d33d6fb345034b250132 echo x - multimc/files/patch-application_MultiMC.cpp sed 's/^X//' >multimc/files/patch-application_MultiMC.cpp << '5b59d39b5b3cb4ca25f242b55aaf00f7' X--- application/MultiMC.cpp.orig 2017-12-18 00:19:43 UTC X+++ application/MultiMC.cpp X@@ -322,7 +322,7 @@ MultiMC::MultiMC(int &argc, char **argv) X // Set up paths X { X // Root path is used for updates. X-#ifdef Q_OS_LINUX X+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X QDir foo(FS::PathCombine(binPath, "..")); X m_rootPath = foo.absolutePath(); X #elif defined(Q_OS_WIN32) 5b59d39b5b3cb4ca25f242b55aaf00f7 echo x - multimc/files/patch-application_UpdateController.cpp sed 's/^X//' >multimc/files/patch-application_UpdateController.cpp << '49c06f8b3f9d8f0dc3648ca1db591dbd' X--- application/UpdateController.cpp.orig 2017-12-18 00:19:43 UTC X+++ application/UpdateController.cpp X@@ -90,7 +90,7 @@ void UpdateController::installUpdates() X qDebug() << "Installing updates."; X #ifdef Q_OS_WIN X QString finishCmd = QApplication::applicationFilePath(); X-#elif defined Q_OS_LINUX X+#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X QString finishCmd = FS::PathCombine(m_root, "MultiMC"); X #elif defined Q_OS_MAC X QString finishCmd = QApplication::applicationFilePath(); 49c06f8b3f9d8f0dc3648ca1db591dbd echo x - multimc/files/patch-application_install__prereqs.cmake.in sed 's/^X//' >multimc/files/patch-application_install__prereqs.cmake.in << '2d733bb02cc03372199812836323fdf5' X--- application/install_prereqs.cmake.in.orig 2017-12-18 00:19:43 UTC X+++ application/install_prereqs.cmake.in X@@ -23,5 +23,4 @@ set(gp_cmd_paths ${gp_cmd_paths} X ) X X include(BundleUtilities) X-fixup_bundle("@APPS@" "${QTPLUGINS}" "@DIRS@") X 2d733bb02cc03372199812836323fdf5 echo x - multimc/files/patch-libraries_iconfix_internal_qiconloader.cpp sed 's/^X//' >multimc/files/patch-libraries_iconfix_internal_qiconloader.cpp << '1dacf57c90beb276fe16128015f3989f' X--- libraries/iconfix/internal/qiconloader.cpp.orig 2017-12-18 00:19:43 UTC X+++ libraries/iconfix/internal/qiconloader.cpp X@@ -320,7 +320,7 @@ Description: Make it so that the QIcon l X icon theme specification. X Bug: https://bugreports.qt.nokia.com/browse/QTBUG-12874 X *********************************************************************/ X-#ifdef Q_OS_LINUX X+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X /* Freedesktop standard says to look in /usr/share/pixmaps last */ X if (entries.isEmpty()) X { 1dacf57c90beb276fe16128015f3989f echo x - multimc/files/patch-libraries_systeminfo_src_sys__unix.cpp sed 's/^X//' >multimc/files/patch-libraries_systeminfo_src_sys__unix.cpp << 'd705f10158e9e6e20bc18e708b05fe46' X--- libraries/systeminfo/src/sys_unix.cpp.orig 2017-12-18 00:19:43 UTC X+++ libraries/systeminfo/src/sys_unix.cpp X@@ -16,6 +16,7 @@ Sys::KernelInfo Sys::getKernelInfo() X uint64_t Sys::getSystemRam() X { X std::string token; X+ #ifdef Q_OS_LINUX X std::ifstream file("/proc/meminfo"); X while(file >> token) X { X@@ -34,6 +35,19 @@ uint64_t Sys::getSystemRam() X // ignore rest of the line X file.ignore(std::numeric_limits::max(), '\n'); X } X+ #elif defined Q_OS_FREEBSD X+ char buff[512]; X+ FILE *fp = popen("sysctl hw.physmem", "r"); X+ if (fp != NULL) X+ { X+ while(fgets(buff, 512, fp) != NULL) X+ { X+ std::string str(buff); X+ uint64_t mem = std::stoull(str.substr(12, std::string::npos)); X+ return mem * 1024ull; X+ } X+ } X+ #endif X return 0; // nothing found X } X X@@ -43,7 +57,9 @@ bool Sys::isCPU64bit() X } X X bool Sys::isSystem64bit() X-{ X+{ X+ #if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) X // kernel build arch on linux X return QSysInfo::currentCpuArchitecture() == "x86_64"; X+ #endif X } d705f10158e9e6e20bc18e708b05fe46 echo x - multimc/pkg-descr sed 's/^X//' >multimc/pkg-descr << '7f9ec926dc6950777bb24e493aad93d4' XMultiMC is a custom launcher for Minecraft that allows you to easily manage Xmultiple installations of Minecraft at once. It also allows you to easily Xinstall and remove mods by simply dragging and dropping. 7f9ec926dc6950777bb24e493aad93d4 echo x - multimc/distinfo sed 's/^X//' >multimc/distinfo << '098fd7985f5082ad8b6df9efb362c77b' XTIMESTAMP = 1514826359 XSHA256 (MultiMC-MultiMC5-0.6.0_GH0.tar.gz) = ac458be99250d2a369ee805bf9560e396d0e0f16a95cc84c36eb0ef1e94a6374 XSIZE (MultiMC-MultiMC5-0.6.0_GH0.tar.gz) = 1844862 XSHA256 (MultiMC-libnbtplusplus-4b305bb_GH0.tar.gz) = 576391fb7aac44e8d8e2012f38b1f0bbb08cb9d0cd9104f162cfdee4b83e5627 XSIZE (MultiMC-libnbtplusplus-4b305bb_GH0.tar.gz) = 47080 XSHA256 (MultiMC-quazip-164acc3_GH0.tar.gz) = fb289ba497f2e315a8e85881ca78218f859d7a72f11463251cfb83271c4381b7 XSIZE (MultiMC-quazip-164acc3_GH0.tar.gz) = 103454 098fd7985f5082ad8b6df9efb362c77b echo x - multimc/pkg-plist sed 's/^X//' >multimc/pkg-plist << '6c4712b20514821cf5414ad9a907af1d' Xbin/multimc Xlib/libMultiMC_gui.so Xlib/libMultiMC_iconfix.so Xlib/libMultiMC_logic.so Xlib/libMultiMC_nbt++.so Xlib/libMultiMC_quazip.so Xlib/libMultiMC_rainbow.so Xlib/libMultiMC_unpack200.so Xshare/multimc/jars/JavaCheck.jar Xshare/multimc/jars/NewLaunch.jar 6c4712b20514821cf5414ad9a907af1d exit