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 --- ...launcher_minecraft_launch_PrintInstanceInfo.cpp | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 games/multimc/files/patch-launcher_minecraft_launch_PrintInstanceInfo.cpp (limited to 'games/multimc/files/patch-launcher_minecraft_launch_PrintInstanceInfo.cpp') 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); -- cgit v1.2.3-56-ge451