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/lwjgl3/Makefile | 28 ++++++-- games/multimc/Makefile | 28 ++++++-- games/multimc/distinfo | 6 +- 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 +- games/multimc/pkg-plist | 5 +- 33 files changed, 370 insertions(+), 347 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 diff --git a/games/lwjgl3/Makefile b/games/lwjgl3/Makefile index cb46f42..03edb20 100644 --- a/games/lwjgl3/Makefile +++ b/games/lwjgl3/Makefile @@ -15,14 +15,32 @@ BUILD_DEPENDS= ${LOCALBASE}/lib/libdyncall_s.a:devel/dyncall LIB_DEPENDS= libglfw.so:graphics/glfw \ libopenal.so:audio/openal-soft \ libopus.so:audio/opus \ - libOpenCL.so:devel/ocl-icd - -USES= gl gnome xorg pkgconfig + libOpenCL.so:devel/ocl-icd \ + libatk-bridge-2.0.so:accessibility/at-spi2-atk \ + libatspi.so:accessibility/at-spi2-core \ + libdbus-1.so:devel/dbus \ + libepoll-shim.so:devel/libepoll-shim \ + libepoxy.so:graphics/libepoxy \ + libexpat.so:textproc/expat2 \ + libffi.so:devel/libffi \ + libfontconfig.so:x11-fonts/fontconfig \ + libfreetype.so:print/freetype2 \ + libfribidi.so:converters/fribidi \ + libgraphite2.so:graphics/graphite2 \ + libharfbuzz.so:print/harfbuzz \ + libpcre.so:devel/pcre \ + libpng16.so:graphics/png \ + libwayland-client.so:graphics/wayland \ + libwayland-cursor.so:graphics/wayland \ + libwayland-egl.so:graphics/wayland \ + libxkbcommon.so:x11/libxkbcommon + +USES= gl gnome xorg pkgconfig iconv USE_ANT= yes USE_GL= gl egl glesv2 -USE_GNOME= gtk30 glib20 +USE_GNOME= gtk30 glib20 cairo gdkpixbuf2 USE_JAVA= yes -USE_XORG= x11 +USE_XORG= x11 pixman xau xcb xcomposite xcursor xdamage xdmcp xext xfixes xi xinerama xrandr xrender MAKE_ENV+= LWJGL_BUILD_OFFLINE=true ALL_TARGET= all release diff --git a/games/multimc/Makefile b/games/multimc/Makefile index e05c5b6..005eaee 100644 --- a/games/multimc/Makefile +++ b/games/multimc/Makefile @@ -1,5 +1,5 @@ PORTNAME= multimc -DISTVERSION= 0.6.12 +DISTVERSION= 0.6.13 CATEGORIES= games java MAINTAINER= me@cameronkatri.com @@ -8,19 +8,35 @@ COMMENT= Minecraft launcher with the ability to manage multiple instances LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/COPYING.md +LIB_DEPENDS= libGLdispatch.so:graphics/libglvnd \ + libdouble-conversion.so:devel/double-conversion \ + libfreetype.so:print/freetype2 \ + libgraphite2.so:graphics/graphite2 \ + libharfbuzz.so:print/harfbuzz \ + libicudata.so:devel/icu \ + libicui18n.so:devel/icu \ + libicuuc.so:devel/icu \ + libpcre.so:devel/pcre \ + libpcre2-16.so:devel/pcre2 \ + libpng16.so:graphics/png \ + libzstd.so:archivers/zstd \ + RUN_DEPENDS= lwjgl>=2.9.3:games/lwjgl \ ${JAVAJARDIR}/lwjgl3/lwjgl.jar:games/lwjgl3 -USES= cmake compiler:c++14-lang qt:5 +USES= cmake compiler:c++14-lang gettext-runtime gl gnome iconv qt:5 xorg USE_GITHUB= yes GH_ACCOUNT= MultiMC GH_PROJECT= MultiMC5 GH_TUPLE= MultiMC:libnbtplusplus:508eda8:libnbtplusplus/libraries/libnbtplusplus \ MultiMC:quazip:3691d57:quazip/libraries/quazip -USE_LDCONFIG= yes +USE_GL= gl +USE_GNOME= glib20 USE_JAVA= 1.8+ +USE_LDCONFIG= yes USE_QT= core concurrent gui network testlib_build widgets xml \ buildtools_build qmake_build +USE_XORG= x11 xau xcb xdmcp CMAKE_ARGS= -DMultiMC_LAYOUT="lin-system" CXXFLAGS+= -Wno-inconsistent-missing-override \ @@ -29,9 +45,9 @@ CXXFLAGS+= -Wno-inconsistent-missing-override \ post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libMultiMC_*.so - ${INSTALL_DATA} ${WRKSRC}/application/package/linux/${PORTNAME}.desktop ${STAGEDIR}${PREFIX}/share/applications/ - ${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/${PORTNAME}.svg - ${INSTALL_DATA} ${WRKSRC}/application/resources/multimc/scalable/multimc.svg ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/${PORTNAME}.svg + ${INSTALL_DATA} ${WRKSRC}/launcher/package/linux/${PORTNAME}.desktop ${STAGEDIR}${PREFIX}/share/applications/ + ${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/ + ${INSTALL_DATA} ${WRKSRC}/launcher/resources/multimc/scalable/multimc.svg ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/${PORTNAME}.svg ${INSTALL_SCRIPT} ${FILESDIR}/multimc-minecraft-runtime ${STAGEDIR}${PREFIX}/bin/ .include diff --git a/games/multimc/distinfo b/games/multimc/distinfo index a3c83dc..a0d442a 100644 --- a/games/multimc/distinfo +++ b/games/multimc/distinfo @@ -1,6 +1,6 @@ -TIMESTAMP = 1626036200 -SHA256 (MultiMC-MultiMC5-0.6.12_GH0.tar.gz) = c251744b77d93db4ead56940b7b81d30dc5390fb86a1676d3f0364cc4e570185 -SIZE (MultiMC-MultiMC5-0.6.12_GH0.tar.gz) = 2389805 +TIMESTAMP = 1632941077 +SHA256 (MultiMC-MultiMC5-0.6.13_GH0.tar.gz) = af083b41bda801c6d2b6639a2b7a8cfa3a472b1b5942a5af485900449343b967 +SIZE (MultiMC-MultiMC5-0.6.13_GH0.tar.gz) = 2493423 SHA256 (MultiMC-libnbtplusplus-508eda8_GH0.tar.gz) = 14f16c8e6dc264017684774cdd9c6f149855e464895b28c29f9f55ea76d34f1a SIZE (MultiMC-libnbtplusplus-508eda8_GH0.tar.gz) = 47406 SHA256 (MultiMC-quazip-3691d57_GH0.tar.gz) = 17a9457360053fa2c6c849c75fa760383036bd14d7d8f7bd0d958bfc2a584009 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'); } diff --git a/games/multimc/pkg-plist b/games/multimc/pkg-plist index b3a7126..270e398 100644 --- a/games/multimc/pkg-plist +++ b/games/multimc/pkg-plist @@ -1,9 +1,10 @@ bin/multimc -lib/libMultiMC_gui.so +bin/multimc-minecraft-runtime lib/libMultiMC_iconfix.so -lib/libMultiMC_logic.so lib/libMultiMC_nbt++.so lib/libMultiMC_quazip.so lib/libMultiMC_rainbow.so +share/applications/multimc.desktop +share/icons/hicolor/scalable/apps/multimc.svg %%DATADIR%%/jars/JavaCheck.jar %%DATADIR%%/jars/NewLaunch.jar -- cgit v1.2.3-56-ge451