summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorSeth Flynn2021-10-30 22:20:48 -0400
committerSeth Flynn2021-10-30 22:56:32 -0400
commit120f472b4a858ee810475ddfe65592d9d0224b8a (patch)
tree0dd81478eb6a00d3e5a8707c2cf8d94b625cacdb
parente0ec5ef3944095cc331082cc52c0726c5e7191fc (diff)
downloadaur-120f472b4a858ee810475ddfe65592d9d0224b8a.tar.gz
clean up PKGBUILD and patches
-rw-r--r--.SRCINFO22
-rw-r--r--.gitignore7
-rwxr-xr-xPKGBUILD63
-rw-r--r--fix_shared_ptr_crashes.patch709
-rw-r--r--quazip-fix-build-with-qt-511.patch33
5 files changed, 49 insertions, 785 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f868acdba12f..b281e783edea 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,17 +1,23 @@
pkgbase = multimc5
pkgdesc = Minecraft launcher with ability to manage multiple instances.
pkgver = 0.6.13
- pkgrel = 1
+ pkgrel = 2
url = https://multimc.org/
arch = i686
arch = x86_64
license = Apache
makedepends = cmake
makedepends = java-environment
+ makedepends = git
depends = zlib
depends = libgl
depends = qt5-base
+ depends = qt5-x11extras
depends = java-runtime
+ depends = qt5-svg
+ depends = xorg-xrandr
+ depends = zenity
+ depends = wget
optdepends = mcedit: Allows editing of minecraft worlds
optdepends = visualvm: Profiling support
optdepends = xorg-xrandr: for older minecraft versions
@@ -19,15 +25,13 @@ pkgbase = multimc5
optdepends = glfw: to use system GLFW libraries
provides = multimc
conflicts = multimc
- source = multimc5-0.6.13.tar.gz::https://github.com/MultiMC/MultiMC5/archive/0.6.13.tar.gz
- source = https://github.com/MultiMC/libnbtplusplus/archive/multimc-0.6.1.tar.gz
- source = https://github.com/MultiMC/quazip/archive/multimc-3.tar.gz
- source = quazip-fix-build-with-qt-511.patch
+ source = multimc5::git+https://github.com/MultiMC/Launcher#tag=0.6.13
+ source = libnbtplusplus::git+https://github.com/MultiMC/libnbtplusplus#commit=dc72a20b7efd304d12af2025223fad07b4b78464
+ source = quazip::git+https://github.com/MultiMC/quazip#commit=b1a72ac0bb5a732bf887a535ab75c6f9bedb6b6b
source = modern-java.patch
- sha512sums = c897f75d01c0e7f73a860166bce3b4efccb3e3f8ec8b811c7e465ac97986c67c0d1149130429fcccb4bdd9af323d01e687f3d7afb5cb7d2c0299e61c0298cad9
- sha512sums = 81a1640a069d88df7ba0abf72089aecbe1e9d791c88acaaa7e70c8f0bcd0512cf8698178342657e363524ce8488dd072368a0aa8cc091a24912d6f8b6b0f4f2d
- sha512sums = 2e9074203c67bc7ad98621c551047e5367f06e54cacfecc755a5bf2c9f99266eab42ad972f86ae28ed7e1507f6d27d8d2680a87ce9fd5b1e93a18bcb627ec3f0
- sha512sums = ca7a350bdeecf65dbca7de8d6912c935c6ba603edcddcd4ffe71d8997e50e4046335dde6d1d7c629d35025073d18be4d112a960d43a8801de979687bc26e46d4
+ sha512sums = SKIP
+ sha512sums = SKIP
+ sha512sums = SKIP
sha512sums = ede87db7e1ce67184409123720b48f65d35884bac5dfff34cc099c5d7520fd9173be00997df82ad29da4640928134a7199ffdd1cbaa83a72101dbed72736508b
pkgname = multimc5
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..2772a8916edd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+*.pkg.tar.zst
+*.tar.gz
+multimc5/
+libnbtplusplus/
+quazip/
+pkg/
+src/
diff --git a/PKGBUILD b/PKGBUILD
index 8f2bdc6ccbe8..778f3f34adb3 100755
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,21 +1,23 @@
-# Maintainer: xiretza <xiretza+aur@gmail.com>
+# Maintainer: getchoo <getchoo at tuta dot io>
# Contributor: vorpalblade77@gmail.com
# Contributor: b.klettbach@gmail.com
# Contributor: Patrik Plihal <patrik.plihal at gmail dot com>
+# Contributor: xiretza <xiretza+aur@gmail.com>
pkgname=multimc5
+_pkgname=multimc5
pkgver=0.6.13
-pkgrel=1
-__pkgver_libnbtplusplus=multimc-0.6.1
-__pkgver_quazip=multimc-3
+_nbtplusplusver=dc72a20b7efd304d12af2025223fad07b4b78464
+_quazipver=b1a72ac0bb5a732bf887a535ab75c6f9bedb6b6b
+pkgrel=2
pkgdesc="Minecraft launcher with ability to manage multiple instances."
arch=('i686' 'x86_64')
url="https://multimc.org/"
license=('Apache')
-depends=('zlib' 'libgl' 'qt5-base' 'java-runtime')
+depends=('zlib' 'libgl' 'qt5-base' 'qt5-x11extras' 'java-runtime' 'qt5-svg' 'xorg-xrandr' 'zenity' 'wget')
+makedepends=('cmake' 'java-environment' 'git')
provides=('multimc')
conflicts=('multimc')
-makedepends=('cmake' 'java-environment')
optdepends=('mcedit: Allows editing of minecraft worlds'
'visualvm: Profiling support'
'xorg-xrandr: for older minecraft versions'
@@ -23,37 +25,30 @@ optdepends=('mcedit: Allows editing of minecraft worlds'
'glfw: to use system GLFW libraries'
)
-source=("$pkgname-$pkgver.tar.gz::https://github.com/MultiMC/MultiMC5/archive/${pkgver}.tar.gz"
- "https://github.com/MultiMC/libnbtplusplus/archive/${__pkgver_libnbtplusplus}.tar.gz"
- "https://github.com/MultiMC/quazip/archive/${__pkgver_quazip}.tar.gz"
- "quazip-fix-build-with-qt-511.patch"
+source=("${_pkgname}::git+https://github.com/MultiMC/Launcher#tag=${pkgver}"
+ "libnbtplusplus::git+https://github.com/MultiMC/libnbtplusplus#commit=${_nbtplusplusver}"
+ "quazip::git+https://github.com/MultiMC/quazip#commit=${_quazipver}"
"modern-java.patch"
)
-sha512sums=('c897f75d01c0e7f73a860166bce3b4efccb3e3f8ec8b811c7e465ac97986c67c0d1149130429fcccb4bdd9af323d01e687f3d7afb5cb7d2c0299e61c0298cad9'
- '81a1640a069d88df7ba0abf72089aecbe1e9d791c88acaaa7e70c8f0bcd0512cf8698178342657e363524ce8488dd072368a0aa8cc091a24912d6f8b6b0f4f2d'
- '2e9074203c67bc7ad98621c551047e5367f06e54cacfecc755a5bf2c9f99266eab42ad972f86ae28ed7e1507f6d27d8d2680a87ce9fd5b1e93a18bcb627ec3f0'
- 'ca7a350bdeecf65dbca7de8d6912c935c6ba603edcddcd4ffe71d8997e50e4046335dde6d1d7c629d35025073d18be4d112a960d43a8801de979687bc26e46d4'
+sha512sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
'ede87db7e1ce67184409123720b48f65d35884bac5dfff34cc099c5d7520fd9173be00997df82ad29da4640928134a7199ffdd1cbaa83a72101dbed72736508b')
prepare() {
- cd "${srcdir}/MultiMC5-${pkgver}"
+ cd "${srcdir}/${_pkgname}"
- patch -p1 < "${srcdir}/modern-java.patch"
-
- rmdir "libraries/libnbtplusplus" 2>/dev/null || true
- ln -sfT "${srcdir}/libnbtplusplus-${__pkgver_libnbtplusplus}/" \
- "libraries/libnbtplusplus"
+ # https://wiki.archlinux.org/title/VCS_package_guidelines#Git_submodules
+ git submodule init
+ git config submodule.depends/libnbtplusplus.url "${srcdir}/libnbtplusplus"
+ git config submodule.libraries/quazip.url "${srcdir}/quazip"
+ git submodule update
- rmdir "libraries/quazip" 2>/dev/null || true
- ln -sfT "${srcdir}/quazip-${__pkgver_quazip}/" \
- "libraries/quazip"
-
- cd "libraries/quazip"
- # https://github.com/MultiMC/quazip/pull/1
- patch -p1 < "${srcdir}/quazip-fix-build-with-qt-511.patch"
+ # update build target to modern java version
+ patch -p1 < "${srcdir}/modern-java.patch"
}
build() {
- cd "${srcdir}/MultiMC5-${pkgver}"
+ cd "${srcdir}/${_pkgname}"
mkdir -p build
cd build
@@ -66,15 +61,15 @@ build() {
}
check() {
- cd "${srcdir}/MultiMC5-${pkgver}/build"
+ cd "${srcdir}/${_pkgname}/build"
make test
}
package() {
- cd "${srcdir}/MultiMC5-${pkgver}/build"
+ cd "${srcdir}/${_pkgname}/build"
make install DESTDIR="${pkgdir}"
- install -D "${srcdir}/MultiMC5-${pkgver}/launcher/resources/multimc/scalable/multimc.svg" "${pkgdir}/usr/share/pixmaps/multimc.svg"
- install -D "${srcdir}/MultiMC5-${pkgver}/launcher/package/linux/multimc.desktop" "${pkgdir}/usr/share/applications/multimc.desktop"
- install -D "${srcdir}/MultiMC5-${pkgver}/build/libMultiMC_quazip.so" "${pkgdir}/usr/lib/libMultiMC_quazip.so"
- install -D "${srcdir}/MultiMC5-${pkgver}/build/libMultiMC_nbt++.so" "${pkgdir}/usr/lib/libMultiMC_nbt++.so"
+ install -D "${srcdir}/${_pkgname}/launcher/resources/multimc/scalable/multimc.svg" "${pkgdir}/usr/share/pixmaps/multimc.svg"
+ install -D "${srcdir}/${_pkgname}/launcher/package/linux/multimc.desktop" "${pkgdir}/usr/share/applications/multimc.desktop"
+ install -D "${srcdir}/${_pkgname}/build/libMultiMC_quazip.so" "${pkgdir}/usr/lib/libMultiMC_quazip.so"
+ install -D "${srcdir}/${_pkgname}/build/libMultiMC_nbt++.so" "${pkgdir}/usr/lib/libMultiMC_nbt++.so"
}
diff --git a/fix_shared_ptr_crashes.patch b/fix_shared_ptr_crashes.patch
deleted file mode 100644
index 55dc9a389d09..000000000000
--- a/fix_shared_ptr_crashes.patch
+++ /dev/null
@@ -1,709 +0,0 @@
-From 70ed30f9e6b47fbfb3151078ca61a2bb419feccb Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= <peterix@gmail.com>
-Date: Sun, 7 Apr 2019 23:59:04 +0200
-Subject: [PATCH] GH-2591 less std::shared_ptr and more shared_qobject_ptr
-
-This eliminates some weird crashes.
----
- api/gui/icons/IconList.h | 2 +-
- api/logic/BaseInstance.cpp | 7 +---
- api/logic/BaseInstance.h | 12 +++---
- api/logic/NullInstance.h | 23 ++++++------
- api/logic/java/JavaChecker.cpp | 4 +-
- api/logic/java/JavaChecker.h | 6 ++-
- api/logic/java/JavaCheckerJob.h | 2 +-
- api/logic/java/JavaInstallList.cpp | 2 +-
- api/logic/java/JavaInstallList.h | 4 +-
- api/logic/java/launch/CheckJava.cpp | 2 +-
- api/logic/launch/LaunchTask.cpp | 8 ++--
- api/logic/launch/LaunchTask.h | 8 ++--
- api/logic/minecraft/MinecraftInstance.cpp | 41 +++++++++------------
- api/logic/minecraft/MinecraftInstance.h | 2 +-
- api/logic/minecraft/legacy/LegacyInstance.h | 3 +-
- api/logic/tools/BaseProfiler.cpp | 3 +-
- api/logic/tools/BaseProfiler.h | 5 ++-
- api/logic/tools/JProfiler.cpp | 4 +-
- api/logic/tools/JVisualVM.cpp | 4 +-
- application/InstanceWindow.cpp | 2 +-
- application/InstanceWindow.h | 4 +-
- application/LaunchController.cpp | 2 +-
- application/LaunchController.h | 2 +-
- application/pages/instance/LogPage.cpp | 4 +-
- application/pages/instance/LogPage.h | 6 +--
- 25 files changed, 79 insertions(+), 83 deletions(-)
-
-diff --git a/api/gui/icons/IconList.h b/api/gui/icons/IconList.h
-index 2bacdac3b..274a9f022 100644
---- a/api/gui/icons/IconList.h
-+++ b/api/gui/icons/IconList.h
-@@ -80,7 +80,7 @@ protected slots:
- void fileChanged(const QString &path);
- void SettingChanged(const Setting & setting, QVariant value);
- private:
-- std::shared_ptr<QFileSystemWatcher> m_watcher;
-+ shared_qobject_ptr<QFileSystemWatcher> m_watcher;
- bool is_watching;
- QMap<QString, int> name_index;
- QVector<MMCIcon> icons;
-diff --git a/api/logic/BaseInstance.cpp b/api/logic/BaseInstance.cpp
-index 469d0d9ff..7a95e2559 100644
---- a/api/logic/BaseInstance.cpp
-+++ b/api/logic/BaseInstance.cpp
-@@ -175,11 +175,6 @@ QString BaseInstance::instanceRoot() const
- return m_rootDir;
- }
-
--InstancePtr BaseInstance::getSharedPtr()
--{
-- return shared_from_this();
--}
--
- SettingsObjectPtr BaseInstance::settings() const
- {
- return m_settings;
-@@ -253,7 +248,7 @@ QStringList BaseInstance::extraArguments() const
- return Commandline::splitArgs(settings()->get("JvmArgs").toString());
- }
-
--std::shared_ptr<LaunchTask> BaseInstance::getLaunchTask()
-+shared_qobject_ptr<LaunchTask> BaseInstance::getLaunchTask()
- {
- return m_launchProcess;
- }
-diff --git a/api/logic/BaseInstance.h b/api/logic/BaseInstance.h
-index 73500b1a9..3c342cb3f 100644
---- a/api/logic/BaseInstance.h
-+++ b/api/logic/BaseInstance.h
-@@ -134,8 +134,6 @@ class MULTIMC_LOGIC_EXPORT BaseInstance : public QObject, public std::enable_sha
- /// Sets the last launched time to 'val' milliseconds since epoch
- void setLastLaunch(qint64 val = QDateTime::currentMSecsSinceEpoch());
-
-- InstancePtr getSharedPtr();
--
- /*!
- * \brief Gets this instance's settings object.
- * This settings object stores instance-specific settings.
-@@ -147,10 +145,10 @@ class MULTIMC_LOGIC_EXPORT BaseInstance : public QObject, public std::enable_sha
- virtual shared_qobject_ptr<Task> createUpdateTask(Net::Mode mode) = 0;
-
- /// returns a valid launcher (task container)
-- virtual std::shared_ptr<LaunchTask> createLaunchTask(AuthSessionPtr account) = 0;
-+ virtual shared_qobject_ptr<LaunchTask> createLaunchTask(AuthSessionPtr account) = 0;
-
- /// returns the current launch task (if any)
-- std::shared_ptr<LaunchTask> getLaunchTask();
-+ shared_qobject_ptr<LaunchTask> getLaunchTask();
-
- /*!
- * Create envrironment variables for running the instance
-@@ -241,7 +239,7 @@ class MULTIMC_LOGIC_EXPORT BaseInstance : public QObject, public std::enable_sha
- */
- void propertiesChanged(BaseInstance *inst);
-
-- void launchTaskChanged(std::shared_ptr<LaunchTask>);
-+ void launchTaskChanged(shared_qobject_ptr<LaunchTask>);
-
- void runningStatusChanged(bool running);
-
-@@ -255,7 +253,7 @@ protected slots:
- SettingsObjectPtr m_settings;
- // InstanceFlags m_flags;
- bool m_isRunning = false;
-- std::shared_ptr<LaunchTask> m_launchProcess;
-+ shared_qobject_ptr<LaunchTask> m_launchProcess;
- QDateTime m_timeStarted;
-
- private: /* data */
-@@ -265,6 +263,6 @@ protected slots:
- bool m_hasBrokenVersion = false;
- };
-
--Q_DECLARE_METATYPE(std::shared_ptr<BaseInstance>)
-+Q_DECLARE_METATYPE(shared_qobject_ptr<BaseInstance>)
- //Q_DECLARE_METATYPE(BaseInstance::InstanceFlag)
- //Q_DECLARE_OPERATORS_FOR_FLAGS(BaseInstance::InstanceFlags)
-diff --git a/api/logic/NullInstance.h b/api/logic/NullInstance.h
-index ff3551c5f..e9ba1a13c 100644
---- a/api/logic/NullInstance.h
-+++ b/api/logic/NullInstance.h
-@@ -1,5 +1,6 @@
- #pragma once
- #include "BaseInstance.h"
-+#include "launch/LaunchTask.h"
-
- class NullInstance: public BaseInstance
- {
-@@ -11,46 +12,46 @@ class NullInstance: public BaseInstance
- setVersionBroken(true);
- }
- virtual ~NullInstance() {};
-- virtual void saveNow() override
-+ void saveNow() override
- {
- }
-- virtual QString getStatusbarDescription() override
-+ QString getStatusbarDescription() override
- {
- return tr("Unknown instance type");
- };
-- virtual QSet< QString > traits() const override
-+ QSet< QString > traits() const override
- {
- return {};
- };
-- virtual QString instanceConfigFolder() const override
-+ QString instanceConfigFolder() const override
- {
- return instanceRoot();
- };
-- virtual std::shared_ptr<LaunchTask> createLaunchTask(AuthSessionPtr) override
-+ shared_qobject_ptr<LaunchTask> createLaunchTask(AuthSessionPtr) override
- {
- return nullptr;
- }
-- virtual shared_qobject_ptr< Task > createUpdateTask(Net::Mode mode) override
-+ shared_qobject_ptr< Task > createUpdateTask(Net::Mode mode) override
- {
- return nullptr;
- }
-- virtual QProcessEnvironment createEnvironment() override
-+ QProcessEnvironment createEnvironment() override
- {
- return QProcessEnvironment();
- }
-- virtual QMap<QString, QString> getVariables() const override
-+ QMap<QString, QString> getVariables() const override
- {
- return QMap<QString, QString>();
- }
-- virtual IPathMatcher::Ptr getLogFileMatcher() override
-+ IPathMatcher::Ptr getLogFileMatcher() override
- {
- return nullptr;
- }
-- virtual QString getLogFileRoot() override
-+ QString getLogFileRoot() override
- {
- return instanceRoot();
- }
-- virtual QString typeName() const override
-+ QString typeName() const override
- {
- return "Null";
- }
-diff --git a/api/logic/java/JavaChecker.cpp b/api/logic/java/JavaChecker.cpp
-index 9ba3933f2..ca0f4bde7 100644
---- a/api/logic/java/JavaChecker.cpp
-+++ b/api/logic/java/JavaChecker.cpp
-@@ -75,8 +75,8 @@ void JavaChecker::stderrReady()
- void JavaChecker::finished(int exitcode, QProcess::ExitStatus status)
- {
- killTimer.stop();
-- QProcessPtr _process;
-- _process.swap(process);
-+ QProcessPtr _process = process;
-+ process.reset();
-
- JavaCheckResult result;
- {
-diff --git a/api/logic/java/JavaChecker.h b/api/logic/java/JavaChecker.h
-index d5d4b0de6..af0dcb90c 100644
---- a/api/logic/java/JavaChecker.h
-+++ b/api/logic/java/JavaChecker.h
-@@ -3,6 +3,8 @@
- #include <QTimer>
- #include <memory>
-
-+#include "QObjectPtr.h"
-+
- #include "multimc_logic_export.h"
-
- #include "JavaVersion.h"
-@@ -27,8 +29,8 @@ struct MULTIMC_LOGIC_EXPORT JavaCheckResult
- } validity = Validity::Errored;
- };
-
--typedef std::shared_ptr<QProcess> QProcessPtr;
--typedef std::shared_ptr<JavaChecker> JavaCheckerPtr;
-+typedef shared_qobject_ptr<QProcess> QProcessPtr;
-+typedef shared_qobject_ptr<JavaChecker> JavaCheckerPtr;
- class MULTIMC_LOGIC_EXPORT JavaChecker : public QObject
- {
- Q_OBJECT
-diff --git a/api/logic/java/JavaCheckerJob.h b/api/logic/java/JavaCheckerJob.h
-index ab8a4bbcd..24d0d1b8f 100644
---- a/api/logic/java/JavaCheckerJob.h
-+++ b/api/logic/java/JavaCheckerJob.h
-@@ -20,7 +20,7 @@
- #include "tasks/Task.h"
-
- class JavaCheckerJob;
--typedef std::shared_ptr<JavaCheckerJob> JavaCheckerJobPtr;
-+typedef shared_qobject_ptr<JavaCheckerJob> JavaCheckerJobPtr;
-
- // FIXME: this just seems horribly redundant
- class JavaCheckerJob : public Task
-diff --git a/api/logic/java/JavaInstallList.cpp b/api/logic/java/JavaInstallList.cpp
-index a80ee2dac..a71a7dbea 100644
---- a/api/logic/java/JavaInstallList.cpp
-+++ b/api/logic/java/JavaInstallList.cpp
-@@ -149,7 +149,7 @@ void JavaListLoadTask::executeTask()
- JavaUtils ju;
- QList<QString> candidate_paths = ju.FindJavaPaths();
-
-- m_job = std::shared_ptr<JavaCheckerJob>(new JavaCheckerJob("Java detection"));
-+ m_job = new JavaCheckerJob("Java detection");
- connect(m_job.get(), &Task::finished, this, &JavaListLoadTask::javaCheckerFinished);
- connect(m_job.get(), &Task::progress, this, &Task::setProgress);
-
-diff --git a/api/logic/java/JavaInstallList.h b/api/logic/java/JavaInstallList.h
-index fc7e7a921..b98908f38 100644
---- a/api/logic/java/JavaInstallList.h
-+++ b/api/logic/java/JavaInstallList.h
-@@ -24,6 +24,8 @@
- #include "JavaCheckerJob.h"
- #include "JavaInstall.h"
-
-+#include "QObjectPtr.h"
-+
- #include "multimc_logic_export.h"
-
- class JavaListLoadTask;
-@@ -75,7 +77,7 @@ public slots:
- void javaCheckerFinished();
-
- protected:
-- std::shared_ptr<JavaCheckerJob> m_job;
-+ shared_qobject_ptr<JavaCheckerJob> m_job;
- JavaInstallList *m_list;
- JavaInstall *m_currentRecommended;
- };
-diff --git a/api/logic/java/launch/CheckJava.cpp b/api/logic/java/launch/CheckJava.cpp
-index f4c852456..b75c6dc62 100644
---- a/api/logic/java/launch/CheckJava.cpp
-+++ b/api/logic/java/launch/CheckJava.cpp
-@@ -60,7 +60,7 @@ void CheckJava::executeTask()
- // if timestamps are not the same, or something is missing, check!
- if (javaUnixTime != storedUnixTime || storedVersion.size() == 0 || storedArchitecture.size() == 0)
- {
-- m_JavaChecker = std::make_shared<JavaChecker>();
-+ m_JavaChecker = new JavaChecker();
- emit logLine(tr("Checking Java version..."), MessageLevel::MultiMC);
- connect(m_JavaChecker.get(), &JavaChecker::checkFinished, this, &CheckJava::checkJavaFinished);
- m_JavaChecker->m_path = realJavaPath;
-diff --git a/api/logic/launch/LaunchTask.cpp b/api/logic/launch/LaunchTask.cpp
-index d39a92083..841b83633 100644
---- a/api/logic/launch/LaunchTask.cpp
-+++ b/api/logic/launch/LaunchTask.cpp
-@@ -33,9 +33,9 @@ void LaunchTask::init()
- m_instance->setRunning(true);
- }
-
--std::shared_ptr<LaunchTask> LaunchTask::create(InstancePtr inst)
-+shared_qobject_ptr<LaunchTask> LaunchTask::create(InstancePtr inst)
- {
-- std::shared_ptr<LaunchTask> proc(new LaunchTask(inst));
-+ shared_qobject_ptr<LaunchTask> proc(new LaunchTask(inst));
- proc->init();
- return proc;
- }
-@@ -44,12 +44,12 @@ LaunchTask::LaunchTask(InstancePtr instance): m_instance(instance)
- {
- }
-
--void LaunchTask::appendStep(std::shared_ptr<LaunchStep> step)
-+void LaunchTask::appendStep(shared_qobject_ptr<LaunchStep> step)
- {
- m_steps.append(step);
- }
-
--void LaunchTask::prependStep(std::shared_ptr<LaunchStep> step)
-+void LaunchTask::prependStep(shared_qobject_ptr<LaunchStep> step)
- {
- m_steps.prepend(step);
- }
-diff --git a/api/logic/launch/LaunchTask.h b/api/logic/launch/LaunchTask.h
-index 4f6efe0a1..ee04bd9af 100644
---- a/api/logic/launch/LaunchTask.h
-+++ b/api/logic/launch/LaunchTask.h
-@@ -45,11 +45,11 @@ class MULTIMC_LOGIC_EXPORT LaunchTask: public Task
- };
-
- public: /* methods */
-- static std::shared_ptr<LaunchTask> create(InstancePtr inst);
-+ static shared_qobject_ptr<LaunchTask> create(InstancePtr inst);
- virtual ~LaunchTask() {};
-
-- void appendStep(std::shared_ptr<LaunchStep> step);
-- void prependStep(std::shared_ptr<LaunchStep> step);
-+ void appendStep(shared_qobject_ptr<LaunchStep> step);
-+ void prependStep(shared_qobject_ptr<LaunchStep> step);
- void setCensorFilter(QMap<QString, QString> filter);
-
- InstancePtr instance()
-@@ -117,7 +117,7 @@ public slots:
- protected: /* data */
- InstancePtr m_instance;
- shared_qobject_ptr<LogModel> m_logModel;
-- QList <std::shared_ptr<LaunchStep>> m_steps;
-+ QList <shared_qobject_ptr<LaunchStep>> m_steps;
- QMap<QString, QString> m_censorFilter;
- int currentStep = -1;
- State state = NotStarted;
-diff --git a/api/logic/minecraft/MinecraftInstance.cpp b/api/logic/minecraft/MinecraftInstance.cpp
-index 449a2ed5b..0d97e4aff 100644
---- a/api/logic/minecraft/MinecraftInstance.cpp
-+++ b/api/logic/minecraft/MinecraftInstance.cpp
-@@ -777,22 +777,22 @@ shared_qobject_ptr<Task> MinecraftInstance::createUpdateTask(Net::Mode mode)
- return nullptr;
- }
-
--std::shared_ptr<LaunchTask> MinecraftInstance::createLaunchTask(AuthSessionPtr session)
-+shared_qobject_ptr<LaunchTask> MinecraftInstance::createLaunchTask(AuthSessionPtr session)
- {
-- auto process = LaunchTask::create(std::dynamic_pointer_cast<MinecraftInstance>(getSharedPtr()));
-+ // FIXME: get rid of shared_from_this ...
-+ auto process = LaunchTask::create(std::dynamic_pointer_cast<MinecraftInstance>(shared_from_this()));
- auto pptr = process.get();
-
- ENV.icons()->saveIcon(iconKey(), FS::PathCombine(gameRoot(), "icon.png"), "PNG");
-
- // print a header
- {
-- process->appendStep(std::make_shared<TextPrint>(pptr, "Minecraft folder is:\n" + gameRoot() + "\n\n", MessageLevel::MultiMC));
-+ process->appendStep(new TextPrint(pptr, "Minecraft folder is:\n" + gameRoot() + "\n\n", MessageLevel::MultiMC));
- }
-
- // check java
- {
-- auto step = std::make_shared<CheckJava>(pptr);
-- process->appendStep(step);
-+ process->appendStep(new CheckJava(pptr));
- }
-
- // check launch method
-@@ -800,14 +800,14 @@ std::shared_ptr<LaunchTask> MinecraftInstance::createLaunchTask(AuthSessionPtr s
- QString method = launchMethod();
- if(!validMethods.contains(method))
- {
-- process->appendStep(std::make_shared<TextPrint>(pptr, "Selected launch method \"" + method + "\" is not valid.\n", MessageLevel::Fatal));
-+ process->appendStep(new TextPrint(pptr, "Selected launch method \"" + method + "\" is not valid.\n", MessageLevel::Fatal));
- return process;
- }
-
- // run pre-launch command if that's needed
- if(getPreLaunchCommand().size())
- {
-- auto step = std::make_shared<PreLaunchCommand>(pptr);
-+ auto step = new PreLaunchCommand(pptr);
- step->setWorkingDirectory(gameRoot());
- process->appendStep(step);
- }
-@@ -815,42 +815,37 @@ std::shared_ptr<LaunchTask> MinecraftInstance::createLaunchTask(AuthSessionPtr s
- // if we aren't in offline mode,.
- if(session->status != AuthSession::PlayableOffline)
- {
-- process->appendStep(std::make_shared<ClaimAccount>(pptr, session));
-- process->appendStep(std::make_shared<Update>(pptr, Net::Mode::Online));
-+ process->appendStep(new ClaimAccount(pptr, session));
-+ process->appendStep(new Update(pptr, Net::Mode::Online));
- }
- else
- {
-- process->appendStep(std::make_shared<Update>(pptr, Net::Mode::Offline));
-+ process->appendStep(new Update(pptr, Net::Mode::Offline));
- }
-
- // if there are any jar mods
- {
-- auto step = std::make_shared<ModMinecraftJar>(pptr);
-- process->appendStep(step);
-+ process->appendStep(new ModMinecraftJar(pptr));
- }
-
- // print some instance info here...
- {
-- auto step = std::make_shared<PrintInstanceInfo>(pptr, session);
-- process->appendStep(step);
-+ process->appendStep(new PrintInstanceInfo(pptr, session));
- }
-
- // create the server-resource-packs folder (workaround for Minecraft bug MCL-3732)
- {
-- auto step = std::make_shared<CreateServerResourcePacksFolder>(pptr);
-- process->appendStep(step);
-+ process->appendStep(new CreateServerResourcePacksFolder(pptr));
- }
-
- // extract native jars if needed
- {
-- auto step = std::make_shared<ExtractNatives>(pptr);
-- process->appendStep(step);
-+ process->appendStep(new ExtractNatives(pptr));
- }
-
- // reconstruct assets if needed
- {
-- auto step = std::make_shared<ReconstructAssets>(pptr);
-- process->appendStep(step);
-+ process->appendStep(new ReconstructAssets(pptr));
- }
-
- {
-@@ -858,14 +853,14 @@ std::shared_ptr<LaunchTask> MinecraftInstance::createLaunchTask(AuthSessionPtr s
- auto method = launchMethod();
- if(method == "LauncherPart")
- {
-- auto step = std::make_shared<LauncherPartLaunch>(pptr);
-+ auto step = new LauncherPartLaunch(pptr);
- step->setWorkingDirectory(gameRoot());
- step->setAuthSession(session);
- process->appendStep(step);
- }
- else if (method == "DirectJava")
- {
-- auto step = std::make_shared<DirectJavaLaunch>(pptr);
-+ auto step = new DirectJavaLaunch(pptr);
- step->setWorkingDirectory(gameRoot());
- step->setAuthSession(session);
- process->appendStep(step);
-@@ -875,7 +870,7 @@ std::shared_ptr<LaunchTask> MinecraftInstance::createLaunchTask(AuthSessionPtr s
- // run post-exit command if that's needed
- if(getPostExitCommand().size())
- {
-- auto step = std::make_shared<PostLaunchCommand>(pptr);
-+ auto step = new PostLaunchCommand(pptr);
- step->setWorkingDirectory(gameRoot());
- process->appendStep(step);
- }
-diff --git a/api/logic/minecraft/MinecraftInstance.h b/api/logic/minecraft/MinecraftInstance.h
-index d9fffe576..fac309c25 100644
---- a/api/logic/minecraft/MinecraftInstance.h
-+++ b/api/logic/minecraft/MinecraftInstance.h
-@@ -78,7 +78,7 @@ class MULTIMC_LOGIC_EXPORT MinecraftInstance: public BaseInstance
-
- ////// Launch stuff //////
- shared_qobject_ptr<Task> createUpdateTask(Net::Mode mode) override;
-- std::shared_ptr<LaunchTask> createLaunchTask(AuthSessionPtr account) override;
-+ shared_qobject_ptr<LaunchTask> createLaunchTask(AuthSessionPtr account) override;
- QStringList extraArguments() const override;
- QStringList verboseDescription(AuthSessionPtr session) override;
- QList<Mod> getJarMods() const;
-diff --git a/api/logic/minecraft/legacy/LegacyInstance.h b/api/logic/minecraft/legacy/LegacyInstance.h
-index 56602a1e5..8bbc2d887 100644
---- a/api/logic/minecraft/legacy/LegacyInstance.h
-+++ b/api/logic/minecraft/legacy/LegacyInstance.h
-@@ -17,6 +17,7 @@
-
- #include "BaseInstance.h"
- #include "minecraft/Mod.h"
-+#include "launch/LaunchTask.h"
-
- #include "multimc_logic_export.h"
-
-@@ -112,7 +113,7 @@ class MULTIMC_LOGIC_EXPORT LegacyInstance : public BaseInstance
- {
- return false;
- }
-- std::shared_ptr<LaunchTask> createLaunchTask(AuthSessionPtr account) override
-+ shared_qobject_ptr<LaunchTask> createLaunchTask(AuthSessionPtr account) override
- {
- return nullptr;
- }
-diff --git a/api/logic/tools/BaseProfiler.cpp b/api/logic/tools/BaseProfiler.cpp
-index c7d83549d..300d1a736 100644
---- a/api/logic/tools/BaseProfiler.cpp
-+++ b/api/logic/tools/BaseProfiler.cpp
-@@ -1,4 +1,5 @@
- #include "BaseProfiler.h"
-+#include "QObjectPtr.h"
-
- #include <QProcess>
-
-@@ -7,7 +8,7 @@ BaseProfiler::BaseProfiler(SettingsObjectPtr settings, InstancePtr instance, QOb
- {
- }
-
--void BaseProfiler::beginProfiling(std::shared_ptr<LaunchTask> process)
-+void BaseProfiler::beginProfiling(shared_qobject_ptr<LaunchTask> process)
- {
- beginProfilingImpl(process);
- }
-diff --git a/api/logic/tools/BaseProfiler.h b/api/logic/tools/BaseProfiler.h
-index f3e1ce3d9..da817f523 100644
---- a/api/logic/tools/BaseProfiler.h
-+++ b/api/logic/tools/BaseProfiler.h
-@@ -1,6 +1,7 @@
- #pragma once
-
- #include "BaseExternalTool.h"
-+#include "QObjectPtr.h"
-
- #include "multimc_logic_export.h"
-
-@@ -17,13 +18,13 @@ class MULTIMC_LOGIC_EXPORT BaseProfiler : public BaseExternalTool
-
- public
- slots:
-- void beginProfiling(std::shared_ptr<LaunchTask> process);
-+ void beginProfiling(shared_qobject_ptr<LaunchTask> process);
- void abortProfiling();
-
- protected:
- QProcess *m_profilerProcess;
-
-- virtual void beginProfilingImpl(std::shared_ptr<LaunchTask> process) = 0;
-+ virtual void beginProfilingImpl(shared_qobject_ptr<LaunchTask> process) = 0;
- virtual void abortProfilingImpl();
-
- signals:
-diff --git a/api/logic/tools/JProfiler.cpp b/api/logic/tools/JProfiler.cpp
-index b50322fe9..1dc0d109f 100644
---- a/api/logic/tools/JProfiler.cpp
-+++ b/api/logic/tools/JProfiler.cpp
-@@ -17,7 +17,7 @@ private slots:
- void profilerFinished(int exit, QProcess::ExitStatus status);
-
- protected:
-- void beginProfilingImpl(std::shared_ptr<LaunchTask> process);
-+ void beginProfilingImpl(shared_qobject_ptr<LaunchTask> process);
-
- private:
- int listeningPort = 0;
-@@ -47,7 +47,7 @@ void JProfiler::profilerFinished(int exit, QProcess::ExitStatus status)
- }
- }
-
--void JProfiler::beginProfilingImpl(std::shared_ptr<LaunchTask> process)
-+void JProfiler::beginProfilingImpl(shared_qobject_ptr<LaunchTask> process)
- {
- listeningPort = globalSettings->get("JProfilerPort").toInt();
- QProcess *profiler = new QProcess(this);
-diff --git a/api/logic/tools/JVisualVM.cpp b/api/logic/tools/JVisualVM.cpp
-index 108868570..b1acc3c0a 100644
---- a/api/logic/tools/JVisualVM.cpp
-+++ b/api/logic/tools/JVisualVM.cpp
-@@ -18,7 +18,7 @@ private slots:
- void profilerFinished(int exit, QProcess::ExitStatus status);
-
- protected:
-- void beginProfilingImpl(std::shared_ptr<LaunchTask> process);
-+ void beginProfilingImpl(shared_qobject_ptr<LaunchTask> process);
- };
-
-
-@@ -45,7 +45,7 @@ void JVisualVM::profilerFinished(int exit, QProcess::ExitStatus status)
- }
- }
-
--void JVisualVM::beginProfilingImpl(std::shared_ptr<LaunchTask> process)
-+void JVisualVM::beginProfilingImpl(shared_qobject_ptr<LaunchTask> process)
- {
- QProcess *profiler = new QProcess(this);
- QStringList profilerArgs =
-diff --git a/application/InstanceWindow.cpp b/application/InstanceWindow.cpp
-index 8a9c3bdf4..cf445f121 100644
---- a/application/InstanceWindow.cpp
-+++ b/application/InstanceWindow.cpp
-@@ -144,7 +144,7 @@ void InstanceWindow::on_btnLaunchMinecraftOffline_clicked()
- MMC->launch(m_instance, false, nullptr);
- }
-
--void InstanceWindow::on_InstanceLaunchTask_changed(std::shared_ptr<LaunchTask> proc)
-+void InstanceWindow::on_InstanceLaunchTask_changed(shared_qobject_ptr<LaunchTask> proc)
- {
- m_proc = proc;
- }
-diff --git a/application/InstanceWindow.h b/application/InstanceWindow.h
-index 792624e2c..e5bd4464f 100644
---- a/application/InstanceWindow.h
-+++ b/application/InstanceWindow.h
-@@ -52,7 +52,7 @@ private
- void on_btnKillMinecraft_clicked();
- void on_btnLaunchMinecraftOffline_clicked();
-
-- void on_InstanceLaunchTask_changed(std::shared_ptr<LaunchTask> proc);
-+ void on_InstanceLaunchTask_changed(shared_qobject_ptr<LaunchTask> proc);
- void on_RunningState_changed(bool running);
- void on_instanceStatusChanged(BaseInstance::Status, BaseInstance::Status newStatus);
-
-@@ -63,7 +63,7 @@ private
- void updateLaunchButtons();
-
- private:
-- std::shared_ptr<LaunchTask> m_proc;
-+ shared_qobject_ptr<LaunchTask> m_proc;
- InstancePtr m_instance;
- bool m_doNotSave = false;
- PageContainer *m_container = nullptr;
-diff --git a/application/LaunchController.cpp b/application/LaunchController.cpp
-index 0115bba46..8f3e6596f 100644
---- a/application/LaunchController.cpp
-+++ b/application/LaunchController.cpp
-@@ -218,7 +218,7 @@ void LaunchController::launchInstance()
- connect(m_launcher.get(), &LaunchTask::requestProgress, this, &LaunchController::onProgressRequested);
-
-
-- m_launcher->prependStep(std::make_shared<TextPrint>(m_launcher.get(), "MultiMC version: " + BuildConfig.printableVersionString() + "\n\n", MessageLevel::MultiMC));
-+ m_launcher->prependStep(new TextPrint(m_launcher.get(), "MultiMC version: " + BuildConfig.printableVersionString() + "\n\n", MessageLevel::MultiMC));
- m_launcher->start();
- }
-
-diff --git a/application/LaunchController.h b/application/LaunchController.h
-index 1434dec9b..1d879028d 100644
---- a/application/LaunchController.h
-+++ b/application/LaunchController.h
-@@ -57,5 +57,5 @@ private slots:
- QWidget * m_parentWidget = nullptr;
- InstanceWindow *m_console = nullptr;
- AuthSessionPtr m_session;
-- std::shared_ptr <LaunchTask> m_launcher;
-+ shared_qobject_ptr<LaunchTask> m_launcher;
- };
-diff --git a/application/pages/instance/LogPage.cpp b/application/pages/instance/LogPage.cpp
-index 0e480a3a6..94ada4248 100644
---- a/application/pages/instance/LogPage.cpp
-+++ b/application/pages/instance/LogPage.cpp
-@@ -192,7 +192,7 @@ void LogPage::UIToModelState()
- m_model->suspend(ui->trackLogCheckbox->checkState() != Qt::Checked);
- }
-
--void LogPage::setInstanceLaunchTaskChanged(std::shared_ptr<LaunchTask> proc, bool initial)
-+void LogPage::setInstanceLaunchTaskChanged(shared_qobject_ptr<LaunchTask> proc, bool initial)
- {
- m_process = proc;
- if(m_process)
-@@ -215,7 +215,7 @@ void LogPage::setInstanceLaunchTaskChanged(std::shared_ptr<LaunchTask> proc, boo
- }
- }
-
--void LogPage::onInstanceLaunchTaskChanged(std::shared_ptr<LaunchTask> proc)
-+void LogPage::onInstanceLaunchTaskChanged(shared_qobject_ptr<LaunchTask> proc)
- {
- setInstanceLaunchTaskChanged(proc, false);
- }
-diff --git a/application/pages/instance/LogPage.h b/application/pages/instance/LogPage.h
-index 34ed210a0..9c3b56a9a 100644
---- a/application/pages/instance/LogPage.h
-+++ b/application/pages/instance/LogPage.h
-@@ -69,17 +69,17 @@ private slots:
- void findNextActivated();
- void findPreviousActivated();
-
-- void onInstanceLaunchTaskChanged(std::shared_ptr<LaunchTask> proc);
-+ void onInstanceLaunchTaskChanged(shared_qobject_ptr<LaunchTask> proc);
-
- private:
- void modelStateToUI();
- void UIToModelState();
-- void setInstanceLaunchTaskChanged(std::shared_ptr<LaunchTask> proc, bool initial);
-+ void setInstanceLaunchTaskChanged(shared_qobject_ptr<LaunchTask> proc, bool initial);
-
- private:
- Ui::LogPage *ui;
- InstancePtr m_instance;
-- std::shared_ptr<LaunchTask> m_process;
-+ shared_qobject_ptr<LaunchTask> m_process;
-
- LogFormatProxyModel * m_proxy;
- shared_qobject_ptr <LogModel> m_model;
diff --git a/quazip-fix-build-with-qt-511.patch b/quazip-fix-build-with-qt-511.patch
deleted file mode 100644
index 14b58438f8d6..000000000000
--- a/quazip-fix-build-with-qt-511.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 469b97b618314ec009a37cad22e9d2541d6481f7 Mon Sep 17 00:00:00 2001
-From: Sergey Shatunov <me@prok.pw>
-Date: Fri, 1 Jun 2018 21:07:13 +0700
-Subject: [PATCH] Fix build with Qt 5.11+
-
----
- CMakeLists.txt | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 376583c..7c0c6eb 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -44,10 +44,9 @@ endif()
-
- add_library(MultiMC_quazip SHARED ${QUAZIP_SRC})
- target_include_directories(MultiMC_quazip PUBLIC "quazip" "${CMAKE_CURRENT_BINARY_DIR}" PRIVATE ${ZLIB_INCLUDE_DIRS})
--target_link_libraries(MultiMC_quazip ${ZLIB_LIBRARIES})
-+target_link_libraries(MultiMC_quazip Qt5::Core ${ZLIB_LIBRARIES})
- target_compile_definitions(MultiMC_quazip PRIVATE "-DQUAZIP_BUILD")
- set_target_properties(MultiMC_quazip PROPERTIES CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN 1)
--qt5_use_modules(MultiMC_quazip Core)
-
- # Install it
- install(
-@@ -84,6 +83,5 @@ set(QUAZIP_TEST_SRC
- )
-
- add_executable(MultiMC_quazip_test ${QUAZIP_TEST_SRC})
--target_link_libraries(MultiMC_quazip_test MultiMC_quazip)
--qt5_use_modules(MultiMC_quazip_test Network Test)
-+target_link_libraries(MultiMC_quazip_test MultiMC_quazip Qt5::Network Qt5::Test)
- add_test(NAME quazip_testsuite COMMAND MultiMC_quazip_test)