From: oynqr <oynqr@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] New package: PolyMC-1.0.6
Date: Tue, 22 Feb 2022 12:37:50 +0100 [thread overview]
Message-ID: <20220222113750.naY36IlgiHGhdsaSulrwrdbLB_dWmxQYxk3lThSU1mY@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-34979@inbox.vuxu.org>
[-- Attachment #1: Type: text/plain, Size: 1690 bytes --]
There is an updated pull request by oynqr against master on the void-packages repository
https://github.com/oynqr/void-packages PolyMC
https://github.com/void-linux/void-packages/pull/34979
New package: PolyMC-1.0.6
<!-- Uncomment relevant sections and delete options which are not applicable -->
#### Testing the changes
- I tested the changes in this PR: **YES**
Testing was done on my KDE workstation and also on a clean live booted environment (only manual packages were: base-system, xorg, PolyMC). Logging in with a Microsoft account was not tested, since I don't have one. Minecraft versions 1.16.5 and 21w18a were successfully tested with the system jdk and the latest Minecraft release 1.18.1 with jdk 17 from adoptium.
I wasn't too sure which license to pick, so I just tried to be as comprehensive as possible.
Closes #34933
<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- aarch64-musl
- armv7l
- armv6l-musl
-->
A patch file from https://github.com/void-linux/void-packages/pull/34979.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-PolyMC-34979.patch --]
[-- Type: text/x-diff, Size: 28824 bytes --]
From 4bc1d79e62725ecae569e3ae84ec8aa5e9df7032 Mon Sep 17 00:00:00 2001
From: Philipp David <pd@3b.pm>
Date: Mon, 10 Jan 2022 11:32:22 +0100
Subject: [PATCH] New package: PolyMC-1.0.6
---
.../PolyMC/patches/00-backport-fixes.patch | 693 ++++++++++++++++++
srcpkgs/PolyMC/template | 37 +
2 files changed, 730 insertions(+)
create mode 100644 srcpkgs/PolyMC/patches/00-backport-fixes.patch
create mode 100644 srcpkgs/PolyMC/template
diff --git a/srcpkgs/PolyMC/patches/00-backport-fixes.patch b/srcpkgs/PolyMC/patches/00-backport-fixes.patch
new file mode 100644
index 000000000000..7b237a01957f
--- /dev/null
+++ b/srcpkgs/PolyMC/patches/00-backport-fixes.patch
@@ -0,0 +1,693 @@
+# These are all upstream backports, to be dropped with the next release.
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b2507a48..d28b05f6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,7 +46,8 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_NO_DEPRECATED_WARNINGS=Y")
+ ##################################### Set Application options #####################################
+
+ ######## Set URLs ########
+-set(Launcher_NEWS_RSS_URL "https://multimc.org/rss.xml" CACHE STRING "URL to fetch Launcher's news RSS feed from.")
++set(Launcher_NEWS_RSS_URL "https://polymc.github.io/feed/feed.xml" CACHE STRING "URL to fetch PolyMC's news RSS feed from.")
++set(Launcher_NEWS_OPEN_URL "https://polymc.github.io/news/" CACHE STRING "URL that gets opened when the user clicks 'More News'")
+
+ ######## Set version numbers ########
+ set(Launcher_VERSION_MAJOR 1)
+@@ -68,9 +69,6 @@ set(Launcher_NOTIFICATION_URL "" CACHE STRING "URL for checking for notification
+ # The metadata server
+ set(Launcher_META_URL "https://meta.polymc.org/v1/" CACHE STRING "URL to fetch PolyMC's meta files from.")
+
+-# paste.ee API key
+-set(Launcher_PASTE_EE_API_KEY "utLvciUouSURFzfjPxLBf5W4ISsUX4pwBDF7N1AfZ" CACHE STRING "API key you can get from paste.ee when you register an account")
+-
+ # Imgur API Client ID
+ set(Launcher_IMGUR_CLIENT_ID "5b97b0713fba4a3" CACHE STRING "Client ID you can get from Imgur when you register an application")
+
+@@ -80,6 +78,9 @@ set(Launcher_MSA_CLIENT_ID "17b47edd-c884-4997-926d-9e7f9a6b4647" CACHE STRING "
+ # Bug tracker URL
+ set(Launcher_BUG_TRACKER_URL "https://github.com/PolyMC/PolyMC/issues" CACHE STRING "URL for the bug tracker.")
+
++# Translations Platform URL
++set(Launcher_TRANSLATIONS_URL "https://hosted.weblate.org/projects/polymc/polymc/" CACHE STRING "URL for the translations platform.")
++
+ # Discord URL
+ set(Launcher_DISCORD_URL "https://discord.gg/Z52pwxWCHP" CACHE STRING "URL for the Discord guild.")
+
+diff --git a/buildconfig/BuildConfig.cpp.in b/buildconfig/BuildConfig.cpp.in
+index af8845dc..2c872124 100644
+--- a/buildconfig/BuildConfig.cpp.in
++++ b/buildconfig/BuildConfig.cpp.in
+@@ -42,12 +42,13 @@ Config::Config()
+
+ VERSION_STR = "@Launcher_VERSION_STRING@";
+ NEWS_RSS_URL = "@Launcher_NEWS_RSS_URL@";
+- PASTE_EE_KEY = "@Launcher_PASTE_EE_API_KEY@";
++ NEWS_OPEN_URL = "@Launcher_NEWS_OPEN_URL@";
+ IMGUR_CLIENT_ID = "@Launcher_IMGUR_CLIENT_ID@";
+ MSA_CLIENT_ID = "@Launcher_MSA_CLIENT_ID@";
+ META_URL = "@Launcher_META_URL@";
+
+ BUG_TRACKER_URL = "@Launcher_BUG_TRACKER_URL@";
++ TRANSLATIONS_URL = "@Launcher_TRANSLATIONS_URL@";
+ DISCORD_URL = "@Launcher_DISCORD_URL@";
+ SUBREDDIT_URL = "@Launcher_SUBREDDIT_URL@";
+ }
+diff --git a/buildconfig/BuildConfig.h b/buildconfig/BuildConfig.h
+index 009fb2bc..e70cd5c0 100644
+--- a/buildconfig/BuildConfig.h
++++ b/buildconfig/BuildConfig.h
+@@ -68,9 +68,9 @@ public:
+ QString NEWS_RSS_URL;
+
+ /**
+- * API key you can get from paste.ee when you register an account
++ * URL that gets opened when the user clicks "More News"
+ */
+- QString PASTE_EE_KEY;
++ QString NEWS_OPEN_URL;
+
+ /**
+ * Client ID you can get from Imgur when you register an application
+@@ -88,6 +88,7 @@ public:
+ QString META_URL;
+
+ QString BUG_TRACKER_URL;
++ QString TRANSLATIONS_URL;
+ QString DISCORD_URL;
+ QString SUBREDDIT_URL;
+
+@@ -96,7 +97,7 @@ public:
+ QString AUTH_BASE = "https://authserver.mojang.com/";
+ QString IMGUR_BASE_URL = "https://api.imgur.com/3/";
+ QString FMLLIBS_BASE_URL = "https://files.multimc.org/fmllibs/";
+- QString TRANSLATIONS_BASE_URL = "https://files.multimc.org/translations/";
++ QString TRANSLATIONS_BASE_URL = "https://meta.polymc.org/translations/";
+
+ QString MODPACKSCH_API_BASE_URL = "https://api.modpacks.ch/";
+
+diff --git a/launcher/Application.cpp b/launcher/Application.cpp
+index 9bd4ebae..9472f0ef 100644
+--- a/launcher/Application.cpp
++++ b/launcher/Application.cpp
+@@ -14,7 +14,7 @@
+ #include "ui/pages/global/ProxyPage.h"
+ #include "ui/pages/global/ExternalToolsPage.h"
+ #include "ui/pages/global/AccountListPage.h"
+-#include "ui/pages/global/PasteEEPage.h"
++#include "ui/pages/global/PastePage.h"
+ #include "ui/pages/global/CustomCommandsPage.h"
+
+ #include "ui/themes/ITheme.h"
+@@ -714,8 +714,8 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
+
+ m_settings->registerSetting("UpdateDialogGeometry", "");
+
+- // paste.ee API key
+- m_settings->registerSetting("PasteEEAPIKey", "multimc");
++ // pastebin URL
++ m_settings->registerSetting("PastebinURL", "https://0x0.st");
+
+ // Init page provider
+ {
+@@ -728,7 +728,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
+ m_globalSettingsProvider->addPage<ProxyPage>();
+ m_globalSettingsProvider->addPage<ExternalToolsPage>();
+ m_globalSettingsProvider->addPage<AccountListPage>();
+- m_globalSettingsProvider->addPage<PasteEEPage>();
++ m_globalSettingsProvider->addPage<PastePage>();
+ }
+ qDebug() << "<> Settings loaded.";
+ }
+diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt
+index b5c52afa..c49b68b2 100644
+--- a/launcher/CMakeLists.txt
++++ b/launcher/CMakeLists.txt
+@@ -707,8 +707,8 @@ SET(LAUNCHER_SOURCES
+ ui/pages/global/LauncherPage.h
+ ui/pages/global/ProxyPage.cpp
+ ui/pages/global/ProxyPage.h
+- ui/pages/global/PasteEEPage.cpp
+- ui/pages/global/PasteEEPage.h
++ ui/pages/global/PastePage.cpp
++ ui/pages/global/PastePage.h
+
+ # GUI - platform pages
+ ui/pages/modplatform/VanillaPage.cpp
+@@ -842,7 +842,7 @@ qt5_wrap_ui(LAUNCHER_UI
+ ui/pages/global/AccountListPage.ui
+ ui/pages/global/JavaPage.ui
+ ui/pages/global/LauncherPage.ui
+- ui/pages/global/PasteEEPage.ui
++ ui/pages/global/PastePage.ui
+ ui/pages/global/ProxyPage.ui
+ ui/pages/global/MinecraftPage.ui
+ ui/pages/global/ExternalToolsPage.ui
+diff --git a/launcher/net/PasteUpload.cpp b/launcher/net/PasteUpload.cpp
+index 4b69b68a..6c5aa221 100644
+--- a/launcher/net/PasteUpload.cpp
++++ b/launcher/net/PasteUpload.cpp
+@@ -8,44 +8,34 @@
+ #include <QJsonDocument>
+ #include <QFile>
+
+-PasteUpload::PasteUpload(QWidget *window, QString text, QString key) : m_window(window)
++PasteUpload::PasteUpload(QWidget *window, QString text, QString url) : m_window(window), m_uploadUrl(url), m_text(text.toUtf8())
+ {
+- m_key = key;
+- QByteArray temp;
+- QJsonObject topLevelObj;
+- QJsonObject sectionObject;
+- sectionObject.insert("contents", text);
+- QJsonArray sectionArray;
+- sectionArray.append(sectionObject);
+- topLevelObj.insert("description", "Log Upload");
+- topLevelObj.insert("sections", sectionArray);
+- QJsonDocument docOut;
+- docOut.setObject(topLevelObj);
+- m_jsonContent = docOut.toJson();
+ }
+
+ PasteUpload::~PasteUpload()
+ {
+ }
+
+-bool PasteUpload::validateText()
+-{
+- return m_jsonContent.size() <= maxSize();
+-}
+-
+ void PasteUpload::executeTask()
+ {
+- QNetworkRequest request(QUrl("https://api.paste.ee/v1/pastes"));
++ QNetworkRequest request{QUrl(m_uploadUrl)};
+ request.setHeader(QNetworkRequest::UserAgentHeader, BuildConfig.USER_AGENT_UNCACHED);
+
+- request.setRawHeader("Content-Type", "application/json");
+- request.setRawHeader("Content-Length", QByteArray::number(m_jsonContent.size()));
+- request.setRawHeader("X-Auth-Token", m_key.toStdString().c_str());
++ QHttpMultiPart *multiPart = new QHttpMultiPart{QHttpMultiPart::FormDataType};
+
+- QNetworkReply *rep = APPLICATION->network()->post(request, m_jsonContent);
++ QHttpPart filePart;
++ filePart.setBody(m_text);
++ filePart.setHeader(QNetworkRequest::ContentTypeHeader, "text/plain");
++ filePart.setHeader(QNetworkRequest::ContentDispositionHeader, "form-data; name=\"file\"; filename=\"log.txt\"");
++
++ multiPart->append(filePart);
++
++ QNetworkReply *rep = APPLICATION->network()->post(request, multiPart);
++ multiPart->setParent(rep);
+
+ m_reply = std::shared_ptr<QNetworkReply>(rep);
+- setStatus(tr("Uploading to paste.ee"));
++ setStatus(tr("Uploading to %1").arg(m_uploadUrl));
++
+ connect(rep, &QNetworkReply::uploadProgress, this, &Task::setProgress);
+ connect(rep, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(downloadError(QNetworkReply::NetworkError)));
+ connect(rep, SIGNAL(finished()), this, SLOT(downloadFinished()));
+@@ -61,45 +51,23 @@ void PasteUpload::downloadError(QNetworkReply::NetworkError error)
+ void PasteUpload::downloadFinished()
+ {
+ QByteArray data = m_reply->readAll();
+- // if the download succeeded
+- if (m_reply->error() == QNetworkReply::NetworkError::NoError)
++ int statusCode = m_reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
++
++ if (m_reply->error() != QNetworkReply::NetworkError::NoError)
+ {
+- m_reply.reset();
+- QJsonParseError jsonError;
+- QJsonDocument doc = QJsonDocument::fromJson(data, &jsonError);
+- if (jsonError.error != QJsonParseError::NoError)
+- {
+- emitFailed(jsonError.errorString());
+- return;
+- }
+- if (!parseResult(doc))
+- {
+- emitFailed(tr("paste.ee returned an error. Please consult the logs for more information"));
+- return;
+- }
+- }
+- // else the download failed
+- else
+- {
+- emitFailed(QString("Network error: %1").arg(m_reply->errorString()));
++ emitFailed(tr("Network error: %1").arg(m_reply->errorString()));
+ m_reply.reset();
+ return;
+ }
++ else if (statusCode != 200)
++ {
++ QString reasonPhrase = m_reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString();
++ emitFailed(tr("Error: %1 returned unexpected status code %2 %3").arg(m_uploadUrl).arg(statusCode).arg(reasonPhrase));
++ qCritical() << m_uploadUrl << " returned unexpected status code " << statusCode << " with body: " << data;
++ m_reply.reset();
++ return;
++ }
++
++ m_pasteLink = QString::fromUtf8(data);
+ emitSucceeded();
+ }
+-
+-bool PasteUpload::parseResult(QJsonDocument doc)
+-{
+- auto object = doc.object();
+- auto status = object.value("success").toBool();
+- if (!status)
+- {
+- qCritical() << "paste.ee reported error:" << QString(object.value("error").toString());
+- return false;
+- }
+- m_pasteLink = object.value("link").toString();
+- m_pasteID = object.value("id").toString();
+- qDebug() << m_pasteLink;
+- return true;
+-}
+-
+diff --git a/launcher/net/PasteUpload.h b/launcher/net/PasteUpload.h
+index 5514e058..62b2dc36 100644
+--- a/launcher/net/PasteUpload.h
++++ b/launcher/net/PasteUpload.h
+@@ -8,37 +8,21 @@ class PasteUpload : public Task
+ {
+ Q_OBJECT
+ public:
+- PasteUpload(QWidget *window, QString text, QString key = "public");
++ PasteUpload(QWidget *window, QString text, QString url);
+ virtual ~PasteUpload();
+
+ QString pasteLink()
+ {
+ return m_pasteLink;
+ }
+- QString pasteID()
+- {
+- return m_pasteID;
+- }
+- int maxSize()
+- {
+- // 2MB for paste.ee - public
+- if(m_key == "public")
+- return 1024*1024*2;
+- // 12MB for paste.ee - with actual key
+- return 1024*1024*12;
+- }
+- bool validateText();
+ protected:
+ virtual void executeTask();
+
+ private:
+- bool parseResult(QJsonDocument doc);
+- QString m_error;
+ QWidget *m_window;
+- QString m_pasteID;
+ QString m_pasteLink;
+- QString m_key;
+- QByteArray m_jsonContent;
++ QString m_uploadUrl;
++ QByteArray m_text;
+ std::shared_ptr<QNetworkReply> m_reply;
+ public
+ slots:
+diff --git a/launcher/news/NewsChecker.cpp b/launcher/news/NewsChecker.cpp
+index 4f4359b8..6724950f 100644
+--- a/launcher/news/NewsChecker.cpp
++++ b/launcher/news/NewsChecker.cpp
+@@ -70,7 +70,7 @@ void NewsChecker::rssDownloadFinished()
+ }
+
+ // If the parsing succeeded, read it.
+- QDomNodeList items = doc.elementsByTagName("item");
++ QDomNodeList items = doc.elementsByTagName("entry");
+ m_newsEntries.clear();
+ for (int i = 0; i < items.length(); i++)
+ {
+diff --git a/launcher/translations/TranslationsModel.cpp b/launcher/translations/TranslationsModel.cpp
+index 2e744007..5f7db4d7 100644
+--- a/launcher/translations/TranslationsModel.cpp
++++ b/launcher/translations/TranslationsModel.cpp
+@@ -576,7 +576,7 @@ void TranslationsModel::downloadIndex()
+ d->m_index_job = new NetJob("Translations Index", APPLICATION->network());
+ MetaEntryPtr entry = APPLICATION->metacache()->resolveEntry("translations", "index_v2.json");
+ entry->setStale(true);
+- d->m_index_task = Net::Download::makeCached(QUrl("https://files.multimc.org/translations/index_v2.json"), entry);
++ d->m_index_task = Net::Download::makeCached(QUrl(BuildConfig.TRANSLATIONS_BASE_URL + "index_v2.json"), entry);
+ d->m_index_job->addNetAction(d->m_index_task);
+ connect(d->m_index_job.get(), &NetJob::failed, this, &TranslationsModel::indexFailed);
+ connect(d->m_index_job.get(), &NetJob::succeeded, this, &TranslationsModel::indexReceived);
+diff --git a/launcher/ui/GuiUtil.cpp b/launcher/ui/GuiUtil.cpp
+index efb1a4df..9eb658e2 100644
+--- a/launcher/ui/GuiUtil.cpp
++++ b/launcher/ui/GuiUtil.cpp
+@@ -16,21 +16,8 @@
+ QString GuiUtil::uploadPaste(const QString &text, QWidget *parentWidget)
+ {
+ ProgressDialog dialog(parentWidget);
+- auto APIKeySetting = APPLICATION->settings()->get("PasteEEAPIKey").toString();
+- if(APIKeySetting == "multimc")
+- {
+- APIKeySetting = BuildConfig.PASTE_EE_KEY;
+- }
+- std::unique_ptr<PasteUpload> paste(new PasteUpload(parentWidget, text, APIKeySetting));
+-
+- if (!paste->validateText())
+- {
+- CustomMessageBox::selectable(
+- parentWidget, QObject::tr("Upload failed"),
+- QObject::tr("The log file is too big. You'll have to upload it manually."),
+- QMessageBox::Warning)->exec();
+- return QString();
+- }
++ auto pasteUrlSetting = APPLICATION->settings()->get("PastebinURL").toString();
++ std::unique_ptr<PasteUpload> paste(new PasteUpload(parentWidget, text, pasteUrlSetting));
+
+ dialog.execWithTask(paste.get());
+ if (!paste->wasSuccessful())
+diff --git a/launcher/ui/MainWindow.cpp b/launcher/ui/MainWindow.cpp
+index 3dcc8ee9..32b27afb 100644
+--- a/launcher/ui/MainWindow.cpp
++++ b/launcher/ui/MainWindow.cpp
+@@ -1687,7 +1687,7 @@ void MainWindow::on_actionReportBug_triggered()
+
+ void MainWindow::on_actionMoreNews_triggered()
+ {
+- DesktopServices::openUrl(QUrl("https://multimc.org/posts.html"));
++ DesktopServices::openUrl(QUrl(BuildConfig.NEWS_OPEN_URL));
+ }
+
+ void MainWindow::newsButtonClicked()
+@@ -1699,7 +1699,7 @@ void MainWindow::newsButtonClicked()
+ }
+ else
+ {
+- DesktopServices::openUrl(QUrl("https://multimc.org/posts.html"));
++ DesktopServices::openUrl(QUrl(BuildConfig.NEWS_OPEN_URL));
+ }
+ }
+
+diff --git a/launcher/ui/pages/global/PasteEEPage.cpp b/launcher/ui/pages/global/PastePage.cpp
+similarity index 51%
+rename from launcher/ui/pages/global/PasteEEPage.cpp
+rename to launcher/ui/pages/global/PastePage.cpp
+index 4b375d9a..7c69e1a4 100644
+--- a/launcher/ui/pages/global/PasteEEPage.cpp
++++ b/launcher/ui/pages/global/PastePage.cpp
+@@ -1,4 +1,4 @@
+-/* Copyright 2013-2021 MultiMC Contributors
++/* Copyright 2013-2021 MultiMC & PolyMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+@@ -13,69 +13,51 @@
+ * limitations under the License.
+ */
+
+-#include "PasteEEPage.h"
+-#include "ui_PasteEEPage.h"
++#include "PastePage.h"
++#include "ui_PastePage.h"
+
+ #include <QMessageBox>
+ #include <QFileDialog>
+ #include <QStandardPaths>
+ #include <QTabBar>
++#include <QVariant>
+
+ #include "settings/SettingsObject.h"
+ #include "tools/BaseProfiler.h"
+ #include "Application.h"
+
+-PasteEEPage::PasteEEPage(QWidget *parent) :
++PastePage::PastePage(QWidget *parent) :
+ QWidget(parent),
+- ui(new Ui::PasteEEPage)
++ ui(new Ui::PastePage)
+ {
++ static QRegularExpression validUrlRegExp("https?://.+");
+ ui->setupUi(this);
++ ui->urlChoices->setValidator(new QRegularExpressionValidator(validUrlRegExp, ui->urlChoices));
+ ui->tabWidget->tabBar()->hide();\
+- connect(ui->customAPIkeyEdit, &QLineEdit::textEdited, this, &PasteEEPage::textEdited);
+ loadSettings();
+ }
+
+-PasteEEPage::~PasteEEPage()
++PastePage::~PastePage()
+ {
+ delete ui;
+ }
+
+-void PasteEEPage::loadSettings()
++void PastePage::loadSettings()
+ {
+ auto s = APPLICATION->settings();
+- QString keyToUse = s->get("PasteEEAPIKey").toString();
+- if(keyToUse == "multimc")
+- {
+- ui->multimcButton->setChecked(true);
+- }
+- else
+- {
+- ui->customButton->setChecked(true);
+- ui->customAPIkeyEdit->setText(keyToUse);
+- }
++ QString pastebinURL = s->get("PastebinURL").toString();
++ ui->urlChoices->setCurrentText(pastebinURL);
+ }
+
+-void PasteEEPage::applySettings()
++void PastePage::applySettings()
+ {
+ auto s = APPLICATION->settings();
+-
+- QString pasteKeyToUse;
+- if (ui->customButton->isChecked())
+- pasteKeyToUse = ui->customAPIkeyEdit->text();
+- else
+- {
+- pasteKeyToUse = "multimc";
+- }
+- s->set("PasteEEAPIKey", pasteKeyToUse);
++ QString pastebinURL = ui->urlChoices->currentText();
++ s->set("PastebinURL", pastebinURL);
+ }
+
+-bool PasteEEPage::apply()
++bool PastePage::apply()
+ {
+ applySettings();
+ return true;
+ }
+-
+-void PasteEEPage::textEdited(const QString& text)
+-{
+- ui->customButton->setChecked(true);
+-}
+diff --git a/launcher/ui/pages/global/PasteEEPage.h b/launcher/ui/pages/global/PastePage.h
+similarity index 84%
+rename from launcher/ui/pages/global/PasteEEPage.h
+rename to launcher/ui/pages/global/PastePage.h
+index a1c7d434..d475dfd9 100644
+--- a/launcher/ui/pages/global/PasteEEPage.h
++++ b/launcher/ui/pages/global/PastePage.h
+@@ -21,16 +21,16 @@
+ #include <Application.h>
+
+ namespace Ui {
+-class PasteEEPage;
++class PastePage;
+ }
+
+-class PasteEEPage : public QWidget, public BasePage
++class PastePage : public QWidget, public BasePage
+ {
+ Q_OBJECT
+
+ public:
+- explicit PasteEEPage(QWidget *parent = 0);
+- ~PasteEEPage();
++ explicit PastePage(QWidget *parent = 0);
++ ~PastePage();
+
+ QString displayName() const override
+ {
+@@ -54,9 +54,7 @@ private:
+ void loadSettings();
+ void applySettings();
+
+-private slots:
+- void textEdited(const QString &text);
+-
+ private:
+- Ui::PasteEEPage *ui;
++ Ui::PastePage *ui;
+ };
++
+diff --git a/launcher/ui/pages/global/PasteEEPage.ui b/launcher/ui/pages/global/PastePage.ui
+similarity index 61%
+rename from launcher/ui/pages/global/PasteEEPage.ui
+rename to launcher/ui/pages/global/PastePage.ui
+index 10883781..2d13a765 100644
+--- a/launcher/ui/pages/global/PasteEEPage.ui
++++ b/launcher/ui/pages/global/PastePage.ui
+@@ -1,7 +1,7 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <ui version="4.0">
+- <class>PasteEEPage</class>
+- <widget class="QWidget" name="PasteEEPage">
++ <class>PastePage</class>
++ <widget class="QWidget" name="PastePage">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+@@ -36,39 +36,9 @@
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+- <string>paste.ee API key</string>
++ <string>Pastebin URL</string>
+ </property>
+- <layout class="QVBoxLayout" name="verticalLayout_10">
+- <item>
+- <widget class="QRadioButton" name="multimcButton">
+- <property name="text">
+- <string>MultiMC key - 12MB &upload limit</string>
+- </property>
+- <attribute name="buttonGroup">
+- <string notr="true">pasteButtonGroup</string>
+- </attribute>
+- </widget>
+- </item>
+- <item>
+- <widget class="QRadioButton" name="customButton">
+- <property name="text">
+- <string>&Your own key - 12MB upload limit:</string>
+- </property>
+- <attribute name="buttonGroup">
+- <string notr="true">pasteButtonGroup</string>
+- </attribute>
+- </widget>
+- </item>
+- <item>
+- <widget class="QLineEdit" name="customAPIkeyEdit">
+- <property name="echoMode">
+- <enum>QLineEdit::Password</enum>
+- </property>
+- <property name="placeholderText">
+- <string>Paste your API key here!</string>
+- </property>
+- </widget>
+- </item>
++ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="Line" name="line">
+ <property name="orientation">
+@@ -76,10 +46,45 @@
+ </property>
+ </widget>
+ </item>
++ <item>
++ <widget class="QLabel" name="label_2">
++ <property name="font">
++ <font>
++ <pointsize>10</pointsize>
++ </font>
++ </property>
++ <property name="text">
++ <string><html><head/><body><p>Note: only input that starts with <span style=" font-weight:600;">http://</span> or <span style=" font-weight:600;">https://</span> will be accepted.</p></body></html></string>
++ </property>
++ <property name="scaledContents">
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QComboBox" name="urlChoices">
++ <property name="editable">
++ <bool>true</bool>
++ </property>
++ <property name="insertPolicy">
++ <enum>QComboBox::NoInsert</enum>
++ </property>
++ <item>
++ <property name="text">
++ <string>https://0x0.st</string>
++ </property>
++ </item>
++ <item>
++ <property name="text">
++ <string>https://paste.polymc.org</string>
++ </property>
++ </item>
++ </widget>
++ </item>
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+- <string><html><head/><body><p><a href="https://paste.ee">paste.ee</a> is used by MultiMC for log uploads. If you have a <a href="https://paste.ee">paste.ee</a> account, you can add your API key here and have your uploaded logs paired with your account.</p></body></html></string>
++ <string><html><head/><body><p>Here you can choose from a predefined list of paste services, or input the URL of a different paste service of your choice, provided it supports the same protocol as 0x0.st, that is POST a file parameter to the URL and return a link in the response body.</p></body></html></string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::RichText</enum>
+@@ -116,13 +121,7 @@
+ </widget>
+ <tabstops>
+ <tabstop>tabWidget</tabstop>
+- <tabstop>multimcButton</tabstop>
+- <tabstop>customButton</tabstop>
+- <tabstop>customAPIkeyEdit</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+- <buttongroups>
+- <buttongroup name="pasteButtonGroup"/>
+- </buttongroups>
+ </ui>
+diff --git a/launcher/ui/pages/instance/LogPage.ui b/launcher/ui/pages/instance/LogPage.ui
+index ccfc1551..31bb368c 100644
+--- a/launcher/ui/pages/instance/LogPage.ui
++++ b/launcher/ui/pages/instance/LogPage.ui
+@@ -100,7 +100,7 @@
+ <item>
+ <widget class="QPushButton" name="btnPaste">
+ <property name="toolTip">
+- <string>Upload the log to paste.ee - it will stay online for a month</string>
++ <string>Upload the log to the paste service configured in preferences</string>
+ </property>
+ <property name="text">
+ <string>Upload</string>
+diff --git a/launcher/ui/pages/instance/OtherLogsPage.ui b/launcher/ui/pages/instance/OtherLogsPage.ui
+index 56ff3b62..77f3e647 100644
+--- a/launcher/ui/pages/instance/OtherLogsPage.ui
++++ b/launcher/ui/pages/instance/OtherLogsPage.ui
+@@ -84,7 +84,7 @@
+ <item row="3" column="2">
+ <widget class="QPushButton" name="btnPaste">
+ <property name="toolTip">
+- <string>Upload the log to paste.ee - it will stay online for a month</string>
++ <string>Upload the log to the paste service configured in preferences.</string>
+ </property>
+ <property name="text">
+ <string>Upload</string>
+diff --git a/launcher/ui/widgets/LanguageSelectionWidget.cpp b/launcher/ui/widgets/LanguageSelectionWidget.cpp
+index cf70c7b4..fc089f26 100644
+--- a/launcher/ui/widgets/LanguageSelectionWidget.cpp
++++ b/launcher/ui/widgets/LanguageSelectionWidget.cpp
+@@ -5,6 +5,7 @@
+ #include <QHeaderView>
+ #include <QLabel>
+ #include "Application.h"
++#include "BuildConfig.h"
+ #include "translations/TranslationsModel.h"
+
+ LanguageSelectionWidget::LanguageSelectionWidget(QWidget *parent) :
+@@ -48,7 +49,7 @@ QString LanguageSelectionWidget::getSelectedLanguageKey() const
+ void LanguageSelectionWidget::retranslate()
+ {
+ QString text = tr("Don't see your language or the quality is poor?<br/><a href=\"%1\">Help us with translations!</a>")
+- .arg("https://github.com/MultiMC/Launcher/wiki/Translating-MultiMC");
++ .arg(BuildConfig.TRANSLATIONS_URL);
+ helpUsLabel->setText(text);
+
+ }
diff --git a/srcpkgs/PolyMC/template b/srcpkgs/PolyMC/template
new file mode 100644
index 000000000000..68571b1bde28
--- /dev/null
+++ b/srcpkgs/PolyMC/template
@@ -0,0 +1,37 @@
+# Template file for 'PolyMC'
+pkgname=PolyMC
+version=1.0.6
+revision=1
+_nbtversion="dc72a20b7efd304d12af2025223fad07b4b78464"
+_quazipversion="c9ef32de19bceb58d236f5c22382698deaec69fd"
+build_style=cmake
+configure_args="-DLauncher_BUILD_PLATFORM=Void -DLauncher_LAYOUT=lin-system"
+hostmakedepends="openjdk11 qt5-host-tools qt5-qmake"
+makedepends="qt5-devel"
+depends="virtual?java-environment"
+short_desc="Custom launcher for Minecraft"
+maintainer="Philipp David <pd@3b.pm>"
+license="Apache-2.0, GPL-3.0-or-later, LGPL-3.0-or-later, LGPL-2.1-or-later,
+ MIT, BSD-3-Clause, BSD-2-Clause"
+homepage="https://polymc.org/"
+distfiles="https://github.com/PolyMC/PolyMC/archive/${version}.tar.gz
+ https://github.com/MultiMC/libnbtplusplus/archive/${_nbtversion}.tar.gz
+ https://github.com/PolyMC/quazip/archive/${_quazipversion}.tar.gz"
+checksum="78c7b24c6895a37f45f563b88cf0ad5cf26dd66264383ed77909e66065df9ea6
+ 2ed9dc824007b4f7b12f807f56c98e1248b8a7aba7eca4838085092958dc1595
+ 6c5e719833c143f300d7f6101b3c04dfb1bc025e3f672d803dcef0fbce29e254"
+
+case "$XBPS_TARGET_MACHINE" in
+ armv*) broken="https://github.com/MultiMC/MultiMC5/issues/2895";;
+esac
+
+post_extract() {
+ rmdir libraries/libnbtplusplus
+ rmdir libraries/quazip
+ mv ../libnbtplusplus-${_nbtversion} libraries/libnbtplusplus
+ mv ../quazip-${_quazipversion} libraries/quazip
+}
+
+post_install() {
+ vlicense COPYING.md
+}
next prev parent reply other threads:[~2022-02-22 11:37 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-10 12:06 [PR PATCH] New package: PolyMC-1.0.5 oynqr
2022-01-10 12:19 ` [PR PATCH] [Updated] " oynqr
2022-01-21 19:32 ` sug0
2022-01-22 9:28 ` oynqr
2022-01-31 10:27 ` [PR PATCH] [Updated] " oynqr
2022-01-31 12:13 ` New package: PolyMC-1.0.6 oynqr
2022-02-16 16:09 ` Scrumplex
2022-02-17 15:54 ` [PR PATCH] [Updated] " oynqr
2022-02-17 15:55 ` oynqr
2022-02-18 3:46 ` [PR REVIEW] " ericonr
2022-02-18 3:46 ` ericonr
2022-02-18 9:23 ` [PR PATCH] [Updated] " oynqr
2022-02-18 9:26 ` [PR REVIEW] " oynqr
2022-02-18 9:26 ` oynqr
2022-02-21 0:32 ` classabbyamp
2022-02-21 9:17 ` [PR PATCH] [Updated] " oynqr
2022-02-22 11:37 ` oynqr [this message]
2022-02-22 11:47 ` oynqr
2022-02-25 12:34 ` JamiKettunen
2022-02-25 12:55 ` JamiKettunen
2022-02-25 12:55 ` [PR REVIEW] " JamiKettunen
2022-02-25 12:55 ` JamiKettunen
2022-02-25 12:59 ` JamiKettunen
2022-02-25 15:06 ` classabbyamp
2022-02-25 19:47 ` JamiKettunen
2022-02-26 9:34 ` oynqr
2022-02-26 9:36 ` Scrumplex
2022-02-26 9:39 ` oynqr
2022-02-26 9:40 ` [PR PATCH] [Updated] " oynqr
2022-02-26 9:43 ` [PR REVIEW] " oynqr
2022-02-26 14:34 ` classabbyamp
2022-02-26 15:56 ` oynqr
2022-03-12 16:44 ` [PR PATCH] [Updated] " oynqr
2022-03-13 17:18 ` [PR PATCH] [Updated] New package: PolyMC-1.1.0 oynqr
2022-03-13 17:30 ` oynqr
2022-03-13 19:08 ` [PR REVIEW] " Johnnynator
2022-03-13 21:34 ` oynqr
2022-03-14 8:38 ` [PR PATCH] [Updated] " oynqr
2022-03-14 9:19 ` oynqr
2022-03-14 9:51 ` [PR REVIEW] " paper42
2022-03-14 20:04 ` oynqr
2022-03-14 20:13 ` paper42
2022-03-14 21:45 ` oynqr
2022-03-14 22:36 ` classabbyamp
2022-03-15 6:46 ` oynqr
2022-03-15 6:49 ` [PR PATCH] [Updated] " oynqr
2022-03-15 16:16 ` [PR REVIEW] " DioEgizio
2022-03-15 17:06 ` oynqr
2022-03-15 17:40 ` sug0
2022-03-15 17:41 ` DioEgizio
2022-03-15 22:40 ` [PR REVIEW] " paper42
2022-03-16 7:53 ` oynqr
2022-03-16 7:55 ` paper42
2022-03-16 7:59 ` oynqr
2022-03-16 8:09 ` [PR REVIEW] " oynqr
2022-03-16 9:32 ` [PR PATCH] [Updated] " oynqr
2022-03-16 13:01 ` classabbyamp
2022-03-16 15:53 ` [PR PATCH] [Updated] " oynqr
2022-03-16 16:17 ` [PR REVIEW] " DioEgizio
2022-03-20 20:18 ` [PR PATCH] [Updated] " oynqr
2022-03-24 16:04 ` DioEgizio
2022-03-25 1:24 ` [PR REVIEW] " tibequadorian
2022-03-25 14:08 ` JamiKettunen
2022-03-25 14:24 ` [PR REVIEW] " tibequadorian
2022-03-25 14:45 ` tibequadorian
2022-04-01 20:27 ` [PR PATCH] [Updated] " oynqr
2022-04-03 16:05 ` New package: PolyMC-1.1.1 DioEgizio
2022-04-04 14:07 ` [PR PATCH] [Updated] " oynqr
2022-04-04 17:59 ` oynqr
2022-04-04 18:09 ` [PR REVIEW] " classabbyamp
2022-04-04 18:47 ` Scrumplex
2022-04-04 20:21 ` oynqr
2022-04-04 21:41 ` classabbyamp
2022-04-05 0:07 ` tibequadorian
2022-04-05 7:50 ` oynqr
2022-04-08 16:30 ` Uiyx
2022-04-08 18:17 ` DioEgizio
2022-04-08 21:23 ` [PR PATCH] [Merged]: " Johnnynator
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220222113750.naY36IlgiHGhdsaSulrwrdbLB_dWmxQYxk3lThSU1mY@z \
--to=oynqr@users.noreply.github.com \
--cc=ml@inbox.vuxu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).