From 0678403d9c7218138c2bc5cbf1bd92cc4d450adc Mon Sep 17 00:00:00 2001 From: Cameron Katri Date: Wed, 29 Sep 2021 15:29:03 -0400 Subject: Bunch of fixes --- games/multimc/files/patch-CMakeLists.txt | 12 ---- .../files/patch-api_gui_DesktopServices.cpp | 56 ---------------- games/multimc/files/patch-api_logic_FileSystem.cpp | 11 ---- .../files/patch-api_logic_FileSystem__test.cpp | 11 ---- .../files/patch-api_logic_java_JavaUtils.cpp | 38 ----------- ...patch-api_logic_minecraft_MinecraftInstance.cpp | 14 ---- .../files/patch-api_logic_minecraft_OpSys.cpp | 27 -------- .../files/patch-api_logic_minecraft_OpSys.h | 26 -------- ...h-api_logic_minecraft_launch_ExtractNatives.cpp | 17 ----- ...pi_logic_minecraft_launch_PrintInstanceInfo.cpp | 74 ---------------------- .../files/patch-api_logic_tools_MCEditTool.cpp | 11 ---- games/multimc/files/patch-application_MultiMC.cpp | 11 ---- .../files/patch-application_UpdateController.cpp | 11 ---- .../patch-application_install__prereqs.cmake.in | 8 --- .../files/patch-launcher_DesktopServices.cpp | 56 ++++++++++++++++ games/multimc/files/patch-launcher_FileSystem.cpp | 11 ++++ .../files/patch-launcher_FileSystem__test.cpp | 11 ++++ games/multimc/files/patch-launcher_MultiMC.cpp | 11 ++++ .../files/patch-launcher_UpdateController.cpp | 11 ++++ .../files/patch-launcher_install__prereqs.cmake.in | 8 +++ .../files/patch-launcher_java_JavaUtils.cpp | 38 +++++++++++ .../patch-launcher_minecraft_MinecraftInstance.cpp | 14 ++++ .../files/patch-launcher_minecraft_OpSys.cpp | 27 ++++++++ .../multimc/files/patch-launcher_minecraft_OpSys.h | 26 ++++++++ ...ch-launcher_minecraft_launch_ExtractNatives.cpp | 17 +++++ ...launcher_minecraft_launch_PrintInstanceInfo.cpp | 74 ++++++++++++++++++++++ .../files/patch-launcher_tools_MCEditTool.cpp | 11 ++++ ...atch-libraries_iconfix_internal_qiconloader.cpp | 2 +- .../patch-libraries_systeminfo_src_sys__unix.cpp | 6 +- 29 files changed, 319 insertions(+), 331 deletions(-) delete mode 100644 games/multimc/files/patch-CMakeLists.txt delete mode 100644 games/multimc/files/patch-api_gui_DesktopServices.cpp delete mode 100644 games/multimc/files/patch-api_logic_FileSystem.cpp delete mode 100644 games/multimc/files/patch-api_logic_FileSystem__test.cpp delete mode 100644 games/multimc/files/patch-api_logic_java_JavaUtils.cpp delete mode 100644 games/multimc/files/patch-api_logic_minecraft_MinecraftInstance.cpp delete mode 100644 games/multimc/files/patch-api_logic_minecraft_OpSys.cpp delete mode 100644 games/multimc/files/patch-api_logic_minecraft_OpSys.h delete mode 100644 games/multimc/files/patch-api_logic_minecraft_launch_ExtractNatives.cpp delete mode 100644 games/multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp delete mode 100644 games/multimc/files/patch-api_logic_tools_MCEditTool.cpp delete mode 100644 games/multimc/files/patch-application_MultiMC.cpp delete mode 100644 games/multimc/files/patch-application_UpdateController.cpp delete mode 100644 games/multimc/files/patch-application_install__prereqs.cmake.in create mode 100644 games/multimc/files/patch-launcher_DesktopServices.cpp create mode 100644 games/multimc/files/patch-launcher_FileSystem.cpp create mode 100644 games/multimc/files/patch-launcher_FileSystem__test.cpp create mode 100644 games/multimc/files/patch-launcher_MultiMC.cpp create mode 100644 games/multimc/files/patch-launcher_UpdateController.cpp create mode 100644 games/multimc/files/patch-launcher_install__prereqs.cmake.in create mode 100644 games/multimc/files/patch-launcher_java_JavaUtils.cpp create mode 100644 games/multimc/files/patch-launcher_minecraft_MinecraftInstance.cpp create mode 100644 games/multimc/files/patch-launcher_minecraft_OpSys.cpp create mode 100644 games/multimc/files/patch-launcher_minecraft_OpSys.h create mode 100644 games/multimc/files/patch-launcher_minecraft_launch_ExtractNatives.cpp create mode 100644 games/multimc/files/patch-launcher_minecraft_launch_PrintInstanceInfo.cpp create mode 100644 games/multimc/files/patch-launcher_tools_MCEditTool.cpp (limited to 'games/multimc/files') diff --git a/games/multimc/files/patch-CMakeLists.txt b/games/multimc/files/patch-CMakeLists.txt deleted file mode 100644 index 4769c4d..0000000 --- a/games/multimc/files/patch-CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ ---- CMakeLists.txt.orig 2019-07-13 18:18:48 UTC -+++ CMakeLists.txt -@@ -38,6 +38,9 @@ if(UNIX AND APPLE) - endif() - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror=return-type") - -+# Fix build with Qt 5.13 -+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_NO_DEPRECATED_WARNINGS=Y") -+ - ##################################### Set Application options ##################################### - - ######## Set URLs ######## diff --git a/games/multimc/files/patch-api_gui_DesktopServices.cpp b/games/multimc/files/patch-api_gui_DesktopServices.cpp deleted file mode 100644 index eb4fd15..0000000 --- a/games/multimc/files/patch-api_gui_DesktopServices.cpp +++ /dev/null @@ -1,56 +0,0 @@ ---- api/gui/DesktopServices.cpp.orig 2019-02-20 23:45:36 UTC -+++ api/gui/DesktopServices.cpp -@@ -7,7 +7,7 @@ - /** - * This shouldn't exist, but until QTBUG-9328 and other unreported bugs are fixed, it needs to be a thing. - */ --#if defined(Q_OS_LINUX) -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - - #include - #include -@@ -83,7 +83,7 @@ bool openDirectory(const QString &path, bool ensureExi - { - return QDesktopServices::openUrl(QUrl::fromLocalFile(dir.absolutePath())); - }; --#if defined(Q_OS_LINUX) -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - return IndirectOpen(f); - #else - return f(); -@@ -97,7 +97,7 @@ bool openFile(const QString &path) - { - return QDesktopServices::openUrl(QUrl::fromLocalFile(path)); - }; --#if defined(Q_OS_LINUX) -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - return IndirectOpen(f); - #else - return f(); -@@ -107,7 +107,7 @@ bool openFile(const QString &path) - bool openFile(const QString &application, const QString &path, const QString &workingDirectory, qint64 *pid) - { - qDebug() << "Opening file" << path << "using" << application; --#if defined(Q_OS_LINUX) -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - // FIXME: the pid here is fake. So if something depends on it, it will likely misbehave - return IndirectOpen([&]() - { -@@ -121,7 +121,7 @@ bool openFile(const QString &application, const QStrin - bool run(const QString &application, const QStringList &args, const QString &workingDirectory, qint64 *pid) - { - qDebug() << "Running" << application << "with args" << args.join(' '); --#if defined(Q_OS_LINUX) -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - // FIXME: the pid here is fake. So if something depends on it, it will likely misbehave - return IndirectOpen([&]() - { -@@ -139,7 +139,7 @@ bool openUrl(const QUrl &url) - { - return QDesktopServices::openUrl(url); - }; --#if defined(Q_OS_LINUX) -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - return IndirectOpen(f); - #else - return f(); diff --git a/games/multimc/files/patch-api_logic_FileSystem.cpp b/games/multimc/files/patch-api_logic_FileSystem.cpp deleted file mode 100644 index 22c10d8..0000000 --- a/games/multimc/files/patch-api_logic_FileSystem.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- api/logic/FileSystem.cpp.orig 2019-03-07 17:30:10 UTC -+++ api/logic/FileSystem.cpp -@@ -398,7 +398,7 @@ QString getDesktopDir() - bool createShortCut(QString location, QString dest, QStringList args, QString name, - QString icon) - { --#if defined Q_OS_LINUX -+#if defined Q_OS_LINUX || defined(Q_OS_FREEBSD) - location = PathCombine(location, name + ".desktop"); - - QFile f(location); diff --git a/games/multimc/files/patch-api_logic_FileSystem__test.cpp b/games/multimc/files/patch-api_logic_FileSystem__test.cpp deleted file mode 100644 index ad6a41b..0000000 --- a/games/multimc/files/patch-api_logic_FileSystem__test.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- api/logic/FileSystem_test.cpp.orig 2019-03-07 17:32:17 UTC -+++ api/logic/FileSystem_test.cpp -@@ -119,7 +119,7 @@ slots: - - // this is only valid on linux - // FIXME: implement on windows, OSX, then test. --#if defined(Q_OS_LINUX) -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - void test_createShortcut_data() - { - QTest::addColumn("location"); diff --git a/games/multimc/files/patch-api_logic_java_JavaUtils.cpp b/games/multimc/files/patch-api_logic_java_JavaUtils.cpp deleted file mode 100644 index 4bad181..0000000 --- a/games/multimc/files/patch-api_logic_java_JavaUtils.cpp +++ /dev/null @@ -1,38 +0,0 @@ ---- api/logic/java/JavaUtils.cpp.orig 2021-07-16 14:03:58 UTC -+++ api/logic/java/JavaUtils.cpp -@@ -31,7 +31,7 @@ JavaUtils::JavaUtils() - { - } - --#ifdef Q_OS_LINUX -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - static QString processLD_LIBRARY_PATH(const QString & LD_LIBRARY_PATH) - { - QDir mmcBin(QCoreApplication::applicationDirPath()); -@@ -83,7 +83,7 @@ QProcessEnvironment CleanEnviroment() - qDebug() << "Env: ignoring" << key << value; - continue; - } --#ifdef Q_OS_LINUX -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - // Do not pass LD_* variables to java. They were intended for MultiMC - if(key.startsWith("LD_")) - { -@@ -112,7 +112,7 @@ QProcessEnvironment CleanEnviroment() - // qDebug() << "Env: " << key << value; - env.insert(key, value); - } --#ifdef Q_OS_LINUX -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - // HACK: Workaround for QTBUG42500 - if(!env.contains("LD_LIBRARY_PATH")) - { -@@ -142,6 +142,8 @@ JavaInstallPtr JavaUtils::GetDefaultJava() - javaVersion->arch = "unknown"; - #if defined(Q_OS_WIN32) - javaVersion->path = "javaw"; -+#elif defined(Q_OS_FREEBSD) -+ javaVersion->path = "multimc-minecraft-runtime"; - #else - javaVersion->path = "java"; - #endif diff --git a/games/multimc/files/patch-api_logic_minecraft_MinecraftInstance.cpp b/games/multimc/files/patch-api_logic_minecraft_MinecraftInstance.cpp deleted file mode 100644 index 67276a6..0000000 --- a/games/multimc/files/patch-api_logic_minecraft_MinecraftInstance.cpp +++ /dev/null @@ -1,14 +0,0 @@ ---- api/logic/minecraft/MinecraftInstance.cpp.orig 2019-03-08 14:41:15 UTC -+++ api/logic/minecraft/MinecraftInstance.cpp -@@ -161,7 +161,11 @@ QString MinecraftInstance::binRoot() const - - QString MinecraftInstance::getNativePath() const - { -+#if defined(Q_OS_FREEBSD) -+ QDir natives_dir(LWJGL_DIR "/"); -+#else - QDir natives_dir(FS::PathCombine(instanceRoot(), "natives/")); -+#endif - return natives_dir.absolutePath(); - } - diff --git a/games/multimc/files/patch-api_logic_minecraft_OpSys.cpp b/games/multimc/files/patch-api_logic_minecraft_OpSys.cpp deleted file mode 100644 index 3879286..0000000 --- a/games/multimc/files/patch-api_logic_minecraft_OpSys.cpp +++ /dev/null @@ -1,27 +0,0 @@ ---- api/logic/minecraft/OpSys.cpp.orig 2019-03-09 16:23:18 UTC -+++ api/logic/minecraft/OpSys.cpp -@@ -17,6 +17,8 @@ - - OpSys OpSys_fromString(QString name) - { -+ if (name == "freebsd") -+ return Os_FreeBSD; - if (name == "linux") - return Os_Linux; - if (name == "windows") -@@ -30,6 +32,8 @@ QString OpSys_toString(OpSys name) - { - switch (name) - { -+ case Os_FreeBSD: -+ return "freebsd"; - case Os_Linux: - return "linux"; - case Os_OSX: -@@ -39,4 +43,4 @@ QString OpSys_toString(OpSys name) - default: - return "other"; - } --} -\ No newline at end of file -+} diff --git a/games/multimc/files/patch-api_logic_minecraft_OpSys.h b/games/multimc/files/patch-api_logic_minecraft_OpSys.h deleted file mode 100644 index 5286946..0000000 --- a/games/multimc/files/patch-api_logic_minecraft_OpSys.h +++ /dev/null @@ -1,26 +0,0 @@ ---- api/logic/minecraft/OpSys.h.orig 2019-03-09 16:25:37 UTC -+++ api/logic/minecraft/OpSys.h -@@ -18,6 +18,7 @@ - enum OpSys - { - Os_Windows, -+ Os_FreeBSD, - Os_Linux, - Os_OSX, - Os_Other -@@ -28,10 +29,10 @@ QString OpSys_toString(OpSys); - - #ifdef Q_OS_WIN32 - #define currentSystem Os_Windows --#else --#ifdef Q_OS_MAC -+#elif Q_OS_MAC - #define currentSystem Os_OSX -+#elif defined Q_OS_FREEBSD -+#define currentSystem Os_FreeBSD - #else - #define currentSystem Os_Linux --#endif --#endif -\ No newline at end of file -+#endif diff --git a/games/multimc/files/patch-api_logic_minecraft_launch_ExtractNatives.cpp b/games/multimc/files/patch-api_logic_minecraft_launch_ExtractNatives.cpp deleted file mode 100644 index e981539..0000000 --- a/games/multimc/files/patch-api_logic_minecraft_launch_ExtractNatives.cpp +++ /dev/null @@ -1,17 +0,0 @@ ---- api/logic/minecraft/launch/ExtractNatives.cpp.orig 2017-12-18 00:19:43 UTC -+++ api/logic/minecraft/launch/ExtractNatives.cpp -@@ -23,6 +23,14 @@ - #include "FileSystem.h" - #include - -+//C library defines interfere with Java version check -+#ifdef major -+ #undef major -+#endif -+#ifdef minor -+ #undef minor -+#endif -+ - static QString replaceSuffix (QString target, const QString &suffix, const QString &replacement) - { - if (!target.endsWith(suffix)) diff --git a/games/multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp b/games/multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp deleted file mode 100644 index be5c158..0000000 --- a/games/multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp +++ /dev/null @@ -1,74 +0,0 @@ ---- api/logic/minecraft/launch/PrintInstanceInfo.cpp.orig 2019-03-07 21:42:07 UTC -+++ api/logic/minecraft/launch/PrintInstanceInfo.cpp -@@ -19,8 +19,9 @@ - #include "PrintInstanceInfo.h" - #include - --#ifdef Q_OS_LINUX -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - namespace { -+#if defined(Q_OS_LINUX) - void probeProcCpuinfo(QStringList &log) - { - std::ifstream cpuin("/proc/cpuinfo"); -@@ -66,7 +67,44 @@ void runLspci(QStringList &log) - } - pclose(lspci); - } -+#elif defined(Q_OS_FREEBSD) -+void runSysctlHwModel(QStringList &log) -+{ -+ char buff[512]; -+ FILE *hwmodel = popen("sysctl hw.model", "r"); -+ while (fgets(buff, 512, hwmodel) != NULL) -+ { -+ log << QString::fromUtf8(buff); -+ break; -+ } -+ pclose(hwmodel); -+} - -+void runPciconf(QStringList &log) -+{ -+ char buff[512]; -+ std::string strcard; -+ FILE *pciconf = popen("pciconf -lv -a vgapci0", "r"); -+ while (fgets(buff, 512, pciconf) != NULL) -+ { -+ if (strncmp(buff, " vendor", 10) == 0) -+ { -+ std::string str(buff); -+ strcard.append(str.substr(str.find_first_of("'") + 1, str.find_last_not_of("'") - (str.find_first_of("'") + 2))); -+ strcard.append(" "); -+ } -+ else if (strncmp(buff, " device", 10) == 0) -+ { -+ std::string str2(buff); -+ strcard.append(str2.substr(str2.find_first_of("'") + 1, str2.find_last_not_of("'") - (str2.find_first_of("'") + 2))); -+ } -+ log << QString::fromStdString(strcard); -+ break; -+ } -+ pclose(pciconf); -+} -+#endif -+ - void runGlxinfo(QStringList & log) - { - // FIXME: fixed size buffers... -@@ -94,10 +132,14 @@ void PrintInstanceInfo::executeTask() - auto instance = m_parent->instance(); - QStringList log; - --#ifdef Q_OS_LINUX -+#if defined(Q_OS_LINUX) - ::probeProcCpuinfo(log); - ::runLspci(log); - ::runGlxinfo(log); -+#elif defined(Q_OS_FREEBSD) -+ ::runSysctlHwModel(log); -+ ::runPciconf(log); -+ ::runGlxinfo(log); - #endif - - logLines(log, MessageLevel::MultiMC); diff --git a/games/multimc/files/patch-api_logic_tools_MCEditTool.cpp b/games/multimc/files/patch-api_logic_tools_MCEditTool.cpp deleted file mode 100644 index 81d3825..0000000 --- a/games/multimc/files/patch-api_logic_tools_MCEditTool.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- api/logic/tools/MCEditTool.cpp.orig 2019-03-09 18:30:20 UTC -+++ api/logic/tools/MCEditTool.cpp -@@ -52,7 +52,7 @@ QString MCEditTool::getProgramPath() - #else - const QString mceditPath = path(); - QDir mceditDir(mceditPath); --#ifdef Q_OS_LINUX -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - if (mceditDir.exists("mcedit.sh")) - { - return mceditDir.absoluteFilePath("mcedit.sh"); diff --git a/games/multimc/files/patch-application_MultiMC.cpp b/games/multimc/files/patch-application_MultiMC.cpp deleted file mode 100644 index e2691e4..0000000 --- a/games/multimc/files/patch-application_MultiMC.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- application/MultiMC.cpp.orig 2019-03-08 00:50:32 UTC -+++ application/MultiMC.cpp -@@ -324,7 +324,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplicatio - // Set up paths - { - // Root path is used for updates. --#ifdef Q_OS_LINUX -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - QDir foo(FS::PathCombine(binPath, "..")); - m_rootPath = foo.absolutePath(); - #elif defined(Q_OS_WIN32) diff --git a/games/multimc/files/patch-application_UpdateController.cpp b/games/multimc/files/patch-application_UpdateController.cpp deleted file mode 100644 index ab49773..0000000 --- a/games/multimc/files/patch-application_UpdateController.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- application/UpdateController.cpp.orig 2019-03-08 00:52:03 UTC -+++ application/UpdateController.cpp -@@ -90,7 +90,7 @@ void UpdateController::installUpdates() - qDebug() << "Installing updates."; - #ifdef Q_OS_WIN - QString finishCmd = QApplication::applicationFilePath(); --#elif defined Q_OS_LINUX -+#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - QString finishCmd = FS::PathCombine(m_root, "MultiMC"); - #elif defined Q_OS_MAC - QString finishCmd = QApplication::applicationFilePath(); diff --git a/games/multimc/files/patch-application_install__prereqs.cmake.in b/games/multimc/files/patch-application_install__prereqs.cmake.in deleted file mode 100644 index 8ca7a44..0000000 --- a/games/multimc/files/patch-application_install__prereqs.cmake.in +++ /dev/null @@ -1,8 +0,0 @@ ---- application/install_prereqs.cmake.in.orig 2019-03-08 00:54:15 UTC -+++ application/install_prereqs.cmake.in -@@ -23,5 +23,4 @@ set(gp_cmd_paths ${gp_cmd_paths} - ) - - include(BundleUtilities) --fixup_bundle("@APPS@" "${QTPLUGINS}" "@DIRS@") - diff --git a/games/multimc/files/patch-launcher_DesktopServices.cpp b/games/multimc/files/patch-launcher_DesktopServices.cpp new file mode 100644 index 0000000..0bc36b6 --- /dev/null +++ b/games/multimc/files/patch-launcher_DesktopServices.cpp @@ -0,0 +1,56 @@ +--- launcher/DesktopServices.cpp.orig 2021-09-08 22:27:46 UTC ++++ launcher/DesktopServices.cpp +@@ -7,7 +7,7 @@ + /** + * This shouldn't exist, but until QTBUG-9328 and other unreported bugs are fixed, it needs to be a thing. + */ +-#if defined(Q_OS_LINUX) ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + + #include + #include +@@ -83,7 +83,7 @@ bool openDirectory(const QString &path, bool ensureExi + { + return QDesktopServices::openUrl(QUrl::fromLocalFile(dir.absolutePath())); + }; +-#if defined(Q_OS_LINUX) ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + return IndirectOpen(f); + #else + return f(); +@@ -97,7 +97,7 @@ bool openFile(const QString &path) + { + return QDesktopServices::openUrl(QUrl::fromLocalFile(path)); + }; +-#if defined(Q_OS_LINUX) ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + return IndirectOpen(f); + #else + return f(); +@@ -107,7 +107,7 @@ bool openFile(const QString &path) + bool openFile(const QString &application, const QString &path, const QString &workingDirectory, qint64 *pid) + { + qDebug() << "Opening file" << path << "using" << application; +-#if defined(Q_OS_LINUX) ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + // FIXME: the pid here is fake. So if something depends on it, it will likely misbehave + return IndirectOpen([&]() + { +@@ -121,7 +121,7 @@ bool openFile(const QString &application, const QStrin + bool run(const QString &application, const QStringList &args, const QString &workingDirectory, qint64 *pid) + { + qDebug() << "Running" << application << "with args" << args.join(' '); +-#if defined(Q_OS_LINUX) ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + // FIXME: the pid here is fake. So if something depends on it, it will likely misbehave + return IndirectOpen([&]() + { +@@ -139,7 +139,7 @@ bool openUrl(const QUrl &url) + { + return QDesktopServices::openUrl(url); + }; +-#if defined(Q_OS_LINUX) ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + return IndirectOpen(f); + #else + return f(); diff --git a/games/multimc/files/patch-launcher_FileSystem.cpp b/games/multimc/files/patch-launcher_FileSystem.cpp new file mode 100644 index 0000000..0543fae --- /dev/null +++ b/games/multimc/files/patch-launcher_FileSystem.cpp @@ -0,0 +1,11 @@ +--- launcher/FileSystem.cpp.orig 2021-09-08 22:27:46 UTC ++++ launcher/FileSystem.cpp +@@ -403,7 +403,7 @@ QString getDesktopDir() + bool createShortCut(QString location, QString dest, QStringList args, QString name, + QString icon) + { +-#if defined Q_OS_LINUX ++#if defined Q_OS_LINUX || defined(Q_OS_FREEBSD) + location = PathCombine(location, name + ".desktop"); + + QFile f(location); diff --git a/games/multimc/files/patch-launcher_FileSystem__test.cpp b/games/multimc/files/patch-launcher_FileSystem__test.cpp new file mode 100644 index 0000000..c50df7e --- /dev/null +++ b/games/multimc/files/patch-launcher_FileSystem__test.cpp @@ -0,0 +1,11 @@ +--- launcher/FileSystem_test.cpp.orig 2021-09-08 22:27:46 UTC ++++ launcher/FileSystem_test.cpp +@@ -119,7 +119,7 @@ slots: + + // this is only valid on linux + // FIXME: implement on windows, OSX, then test. +-#if defined(Q_OS_LINUX) ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + void test_createShortcut_data() + { + QTest::addColumn("location"); diff --git a/games/multimc/files/patch-launcher_MultiMC.cpp b/games/multimc/files/patch-launcher_MultiMC.cpp new file mode 100644 index 0000000..10a72e5 --- /dev/null +++ b/games/multimc/files/patch-launcher_MultiMC.cpp @@ -0,0 +1,11 @@ +--- launcher/MultiMC.cpp.orig 2021-09-08 22:27:46 UTC ++++ launcher/MultiMC.cpp +@@ -487,7 +487,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplicatio + // Set up paths + { + // Root path is used for updates. +-#ifdef Q_OS_LINUX ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + QDir foo(FS::PathCombine(binPath, "..")); + m_rootPath = foo.absolutePath(); + #elif defined(Q_OS_WIN32) diff --git a/games/multimc/files/patch-launcher_UpdateController.cpp b/games/multimc/files/patch-launcher_UpdateController.cpp new file mode 100644 index 0000000..4dc9b99 --- /dev/null +++ b/games/multimc/files/patch-launcher_UpdateController.cpp @@ -0,0 +1,11 @@ +--- launcher/UpdateController.cpp.orig 2021-09-08 22:27:46 UTC ++++ launcher/UpdateController.cpp +@@ -90,7 +90,7 @@ void UpdateController::installUpdates() + qDebug() << "Installing updates."; + #ifdef Q_OS_WIN + QString finishCmd = QApplication::applicationFilePath(); +-#elif defined Q_OS_LINUX ++#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + QString finishCmd = FS::PathCombine(m_root, "MultiMC"); + #elif defined Q_OS_MAC + QString finishCmd = QApplication::applicationFilePath(); diff --git a/games/multimc/files/patch-launcher_install__prereqs.cmake.in b/games/multimc/files/patch-launcher_install__prereqs.cmake.in new file mode 100644 index 0000000..4a442c3 --- /dev/null +++ b/games/multimc/files/patch-launcher_install__prereqs.cmake.in @@ -0,0 +1,8 @@ +--- launcher/install_prereqs.cmake.in.orig 2021-09-08 22:27:46 UTC ++++ launcher/install_prereqs.cmake.in +@@ -23,5 +23,4 @@ set(gp_cmd_paths ${gp_cmd_paths} + ) + + include(BundleUtilities) +-fixup_bundle("@APPS@" "${QTPLUGINS}" "@DIRS@") + diff --git a/games/multimc/files/patch-launcher_java_JavaUtils.cpp b/games/multimc/files/patch-launcher_java_JavaUtils.cpp new file mode 100644 index 0000000..156841e --- /dev/null +++ b/games/multimc/files/patch-launcher_java_JavaUtils.cpp @@ -0,0 +1,38 @@ +--- launcher/java/JavaUtils.cpp.orig 2021-09-08 22:27:46 UTC ++++ launcher/java/JavaUtils.cpp +@@ -31,7 +31,7 @@ JavaUtils::JavaUtils() + { + } + +-#ifdef Q_OS_LINUX ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + static QString processLD_LIBRARY_PATH(const QString & LD_LIBRARY_PATH) + { + QDir mmcBin(QCoreApplication::applicationDirPath()); +@@ -83,7 +83,7 @@ QProcessEnvironment CleanEnviroment() + qDebug() << "Env: ignoring" << key << value; + continue; + } +-#ifdef Q_OS_LINUX ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + // Do not pass LD_* variables to java. They were intended for MultiMC + if(key.startsWith("LD_")) + { +@@ -112,7 +112,7 @@ QProcessEnvironment CleanEnviroment() + // qDebug() << "Env: " << key << value; + env.insert(key, value); + } +-#ifdef Q_OS_LINUX ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + // HACK: Workaround for QTBUG42500 + if(!env.contains("LD_LIBRARY_PATH")) + { +@@ -142,6 +142,8 @@ JavaInstallPtr JavaUtils::GetDefaultJava() + javaVersion->arch = "unknown"; + #if defined(Q_OS_WIN32) + javaVersion->path = "javaw"; ++#elif defined(Q_OS_FREEBSD) ++ javaVersion->path = "multimc-minecraft-runtime"; + #else + javaVersion->path = "java"; + #endif diff --git a/games/multimc/files/patch-launcher_minecraft_MinecraftInstance.cpp b/games/multimc/files/patch-launcher_minecraft_MinecraftInstance.cpp new file mode 100644 index 0000000..c073576 --- /dev/null +++ b/games/multimc/files/patch-launcher_minecraft_MinecraftInstance.cpp @@ -0,0 +1,14 @@ +--- launcher/minecraft/MinecraftInstance.cpp.orig 2021-09-08 22:27:46 UTC ++++ launcher/minecraft/MinecraftInstance.cpp +@@ -181,7 +181,11 @@ QString MinecraftInstance::binRoot() const + + QString MinecraftInstance::getNativePath() const + { ++#if defined(Q_OS_FREEBSD) ++ QDir natives_dir(LWJGL_DIR "/"); ++#else + QDir natives_dir(FS::PathCombine(instanceRoot(), "natives/")); ++#endif + return natives_dir.absolutePath(); + } + diff --git a/games/multimc/files/patch-launcher_minecraft_OpSys.cpp b/games/multimc/files/patch-launcher_minecraft_OpSys.cpp new file mode 100644 index 0000000..2b21d80 --- /dev/null +++ b/games/multimc/files/patch-launcher_minecraft_OpSys.cpp @@ -0,0 +1,27 @@ +--- launcher/minecraft/OpSys.cpp.orig 2021-09-08 22:27:46 UTC ++++ launcher/minecraft/OpSys.cpp +@@ -17,6 +17,8 @@ + + OpSys OpSys_fromString(QString name) + { ++ if (name == "freebsd") ++ return Os_FreeBSD; + if (name == "linux") + return Os_Linux; + if (name == "windows") +@@ -30,6 +32,8 @@ QString OpSys_toString(OpSys name) + { + switch (name) + { ++ case Os_FreeBSD: ++ return "freebsd"; + case Os_Linux: + return "linux"; + case Os_OSX: +@@ -39,4 +43,4 @@ QString OpSys_toString(OpSys name) + default: + return "other"; + } +-} +\ No newline at end of file ++} diff --git a/games/multimc/files/patch-launcher_minecraft_OpSys.h b/games/multimc/files/patch-launcher_minecraft_OpSys.h new file mode 100644 index 0000000..21899b8 --- /dev/null +++ b/games/multimc/files/patch-launcher_minecraft_OpSys.h @@ -0,0 +1,26 @@ +--- launcher/minecraft/OpSys.h.orig 2021-09-08 22:27:46 UTC ++++ launcher/minecraft/OpSys.h +@@ -18,6 +18,7 @@ + enum OpSys + { + Os_Windows, ++ Os_FreeBSD, + Os_Linux, + Os_OSX, + Os_Other +@@ -28,10 +29,10 @@ QString OpSys_toString(OpSys); + + #ifdef Q_OS_WIN32 + #define currentSystem Os_Windows +-#else +-#ifdef Q_OS_MAC ++#elif Q_OS_MAC + #define currentSystem Os_OSX ++#elif defined Q_OS_FREEBSD ++#define currentSystem Os_FreeBSD + #else + #define currentSystem Os_Linux +-#endif +-#endif +\ No newline at end of file ++#endif diff --git a/games/multimc/files/patch-launcher_minecraft_launch_ExtractNatives.cpp b/games/multimc/files/patch-launcher_minecraft_launch_ExtractNatives.cpp new file mode 100644 index 0000000..eb49eba --- /dev/null +++ b/games/multimc/files/patch-launcher_minecraft_launch_ExtractNatives.cpp @@ -0,0 +1,17 @@ +--- launcher/minecraft/launch/ExtractNatives.cpp.orig 2021-09-08 22:27:46 UTC ++++ launcher/minecraft/launch/ExtractNatives.cpp +@@ -23,6 +23,14 @@ + #include "FileSystem.h" + #include + ++//C library defines interfere with Java version check ++#ifdef major ++ #undef major ++#endif ++#ifdef minor ++ #undef minor ++#endif ++ + static QString replaceSuffix (QString target, const QString &suffix, const QString &replacement) + { + if (!target.endsWith(suffix)) diff --git a/games/multimc/files/patch-launcher_minecraft_launch_PrintInstanceInfo.cpp b/games/multimc/files/patch-launcher_minecraft_launch_PrintInstanceInfo.cpp new file mode 100644 index 0000000..7e02127 --- /dev/null +++ b/games/multimc/files/patch-launcher_minecraft_launch_PrintInstanceInfo.cpp @@ -0,0 +1,74 @@ +--- launcher/minecraft/launch/PrintInstanceInfo.cpp.orig 2021-09-08 22:27:46 UTC ++++ launcher/minecraft/launch/PrintInstanceInfo.cpp +@@ -19,8 +19,9 @@ + #include "PrintInstanceInfo.h" + #include + +-#ifdef Q_OS_LINUX ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + namespace { ++#if defined(Q_OS_LINUX) + void probeProcCpuinfo(QStringList &log) + { + std::ifstream cpuin("/proc/cpuinfo"); +@@ -66,7 +67,44 @@ void runLspci(QStringList &log) + } + pclose(lspci); + } ++#elif defined(Q_OS_FREEBSD) ++void runSysctlHwModel(QStringList &log) ++{ ++ char buff[512]; ++ FILE *hwmodel = popen("sysctl hw.model", "r"); ++ while (fgets(buff, 512, hwmodel) != NULL) ++ { ++ log << QString::fromUtf8(buff); ++ break; ++ } ++ pclose(hwmodel); ++} + ++void runPciconf(QStringList &log) ++{ ++ char buff[512]; ++ std::string strcard; ++ FILE *pciconf = popen("pciconf -lv -a vgapci0", "r"); ++ while (fgets(buff, 512, pciconf) != NULL) ++ { ++ if (strncmp(buff, " vendor", 10) == 0) ++ { ++ std::string str(buff); ++ strcard.append(str.substr(str.find_first_of("'") + 1, str.find_last_not_of("'") - (str.find_first_of("'") + 2))); ++ strcard.append(" "); ++ } ++ else if (strncmp(buff, " device", 10) == 0) ++ { ++ std::string str2(buff); ++ strcard.append(str2.substr(str2.find_first_of("'") + 1, str2.find_last_not_of("'") - (str2.find_first_of("'") + 2))); ++ } ++ log << QString::fromStdString(strcard); ++ break; ++ } ++ pclose(pciconf); ++} ++#endif ++ + void runGlxinfo(QStringList & log) + { + // FIXME: fixed size buffers... +@@ -94,10 +132,14 @@ void PrintInstanceInfo::executeTask() + auto instance = m_parent->instance(); + QStringList log; + +-#ifdef Q_OS_LINUX ++#if defined(Q_OS_LINUX) + ::probeProcCpuinfo(log); + ::runLspci(log); + ::runGlxinfo(log); ++#elif defined(Q_OS_FREEBSD) ++ ::runSysctlHwModel(log); ++ ::runPciconf(log); ++ ::runGlxinfo(log); + #endif + + logLines(log, MessageLevel::MultiMC); diff --git a/games/multimc/files/patch-launcher_tools_MCEditTool.cpp b/games/multimc/files/patch-launcher_tools_MCEditTool.cpp new file mode 100644 index 0000000..b644a0f --- /dev/null +++ b/games/multimc/files/patch-launcher_tools_MCEditTool.cpp @@ -0,0 +1,11 @@ +--- launcher/tools/MCEditTool.cpp.orig 2021-09-08 22:27:46 UTC ++++ launcher/tools/MCEditTool.cpp +@@ -52,7 +52,7 @@ QString MCEditTool::getProgramPath() + #else + const QString mceditPath = path(); + QDir mceditDir(mceditPath); +-#ifdef Q_OS_LINUX ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + if (mceditDir.exists("mcedit.sh")) + { + return mceditDir.absoluteFilePath("mcedit.sh"); diff --git a/games/multimc/files/patch-libraries_iconfix_internal_qiconloader.cpp b/games/multimc/files/patch-libraries_iconfix_internal_qiconloader.cpp index 859c764..7175349 100644 --- a/games/multimc/files/patch-libraries_iconfix_internal_qiconloader.cpp +++ b/games/multimc/files/patch-libraries_iconfix_internal_qiconloader.cpp @@ -1,4 +1,4 @@ ---- libraries/iconfix/internal/qiconloader.cpp.orig 2019-03-09 17:22:58 UTC +--- libraries/iconfix/internal/qiconloader.cpp.orig 2021-09-08 22:27:46 UTC +++ libraries/iconfix/internal/qiconloader.cpp @@ -320,7 +320,7 @@ Description: Make it so that the QIcon loader honors / icon theme specification. diff --git a/games/multimc/files/patch-libraries_systeminfo_src_sys__unix.cpp b/games/multimc/files/patch-libraries_systeminfo_src_sys__unix.cpp index d3d6d0b..74e972d 100644 --- a/games/multimc/files/patch-libraries_systeminfo_src_sys__unix.cpp +++ b/games/multimc/files/patch-libraries_systeminfo_src_sys__unix.cpp @@ -1,6 +1,6 @@ ---- libraries/systeminfo/src/sys_unix.cpp.orig 2019-03-09 17:25:33 UTC +--- libraries/systeminfo/src/sys_unix.cpp.orig 2021-09-08 22:27:46 UTC +++ libraries/systeminfo/src/sys_unix.cpp -@@ -18,6 +18,7 @@ Sys::KernelInfo Sys::getKernelInfo() +@@ -47,6 +47,7 @@ Sys::KernelInfo Sys::getKernelInfo() uint64_t Sys::getSystemRam() { std::string token; @@ -8,7 +8,7 @@ std::ifstream file("/proc/meminfo"); while(file >> token) { -@@ -36,6 +37,19 @@ uint64_t Sys::getSystemRam() +@@ -65,6 +66,19 @@ uint64_t Sys::getSystemRam() // ignore rest of the line file.ignore(std::numeric_limits::max(), '\n'); } -- cgit v1.2.3-56-ge451