Github messages for voidlinux
 help / color / mirror / Atom feed
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 &amp;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>&amp;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>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Note: only input that starts with &lt;span style=&quot; font-weight:600;&quot;&gt;http://&lt;/span&gt; or &lt;span style=&quot; font-weight:600;&quot;&gt;https://&lt;/span&gt; will be accepted.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://paste.ee&quot;&gt;paste.ee&lt;/a&gt; is used by MultiMC for log uploads. If you have a &lt;a href=&quot;https://paste.ee&quot;&gt;paste.ee&lt;/a&gt; account, you can add your API key here and have your uploaded logs paired with your account.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
++             <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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
+}

  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).