aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLenny McLennington <lennymclennington@protonmail.com>2021-12-20 02:41:08 +0000
committerLenny McLennington <lennymclennington@protonmail.com>2021-12-20 02:57:13 +0000
commite6246a9306567f5646d3bc1971a1c5c4cf8f4f54 (patch)
tree17a4e24951924f1cfcda2558bf5d13bd620a5625
parentdcb57f199531e45ac4bf947eaf8cbfe5e66fce23 (diff)
downloadPrismLauncher-e6246a9306567f5646d3bc1971a1c5c4cf8f4f54.tar.gz
PrismLauncher-e6246a9306567f5646d3bc1971a1c5c4cf8f4f54.tar.bz2
PrismLauncher-e6246a9306567f5646d3bc1971a1c5c4cf8f4f54.zip
Move MSA Client ID to the same place as the others
MSA Client ID has been moved to CMakeLists.txt, and defaults to the Client ID for the PolyMC application. Removed secrets/notsecrets library, replace with (temporary?) program_info subdirectory.
-rw-r--r--.gitignore2
-rw-r--r--CMakeLists.txt16
-rw-r--r--README.md2
-rw-r--r--buildconfig/BuildConfig.cpp.in1
-rw-r--r--buildconfig/BuildConfig.h5
-rw-r--r--launcher/Application.cpp6
-rw-r--r--launcher/Application.h2
-rw-r--r--launcher/CMakeLists.txt2
-rw-r--r--launcher/minecraft/auth/steps/MSAStep.cpp3
-rw-r--r--launcher/ui/instanceview/InstanceView.cpp9
-rw-r--r--launcher/ui/pages/global/AccountListPage.cpp4
-rw-r--r--notsecrets/CMakeLists.txt18
-rw-r--r--notsecrets/README.md13
-rw-r--r--notsecrets/Secrets.cpp40
-rw-r--r--notsecrets/Secrets.h8
-rw-r--r--program_info/CMakeLists.txt13
-rw-r--r--program_info/Launcher.icns (renamed from notsecrets/Launcher.icns)bin304757 -> 304757 bytes
-rw-r--r--program_info/Launcher.ico (renamed from notsecrets/Launcher.ico)bin102134 -> 102134 bytes
-rw-r--r--program_info/Launcher.manifest (renamed from notsecrets/Launcher.manifest)0
-rw-r--r--program_info/README.md5
-rwxr-xr-xprogram_info/genicons.sh (renamed from notsecrets/genicons.sh)0
-rw-r--r--program_info/launcher.rc (renamed from notsecrets/launcher.rc)0
-rw-r--r--program_info/logo.qrc (renamed from notsecrets/logo.qrc)0
-rw-r--r--program_info/logo.svg (renamed from notsecrets/logo.svg)0
24 files changed, 37 insertions, 112 deletions
diff --git a/.gitignore b/.gitignore
index 69dda72c..d73f9f22 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,3 +37,5 @@ tags
branding/
secrets/
run/
+
+.cache/
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8417be93..b7018d1b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -79,10 +79,13 @@ set(Launcher_PASTE_EE_API_KEY "utLvciUouSURFzfjPxLBf5W4ISsUX4pwBDF7N1AfZ" CACHE
set(Launcher_IMGUR_CLIENT_ID "5b97b0713fba4a3" CACHE STRING "Client ID you can get from Imgur when you register an application")
# Google analytics ID
-set(Launcher_ANALYTICS_ID "UA-87731965-2" CACHE STRING "ID you can get from Google analytics")
+set(Launcher_ANALYTICS_ID "" CACHE STRING "ID you can get from Google analytics")
+
+# MSA Client ID
+set(Launcher_MSA_CLIENT_ID "17b47edd-c884-4997-926d-9e7f9a6b4647" CACHE STRING "Client ID you can get from Microsoft Identity Platform when you register an application")
# Bug tracker URL
-set(Launcher_BUG_TRACKER_URL "" CACHE STRING "URL for the bug tracker.")
+set(Launcher_BUG_TRACKER_URL "https://github.com/PolyMC/PolyMC/issues" CACHE STRING "URL for the bug tracker.")
# Discord URL
set(Launcher_DISCORD_URL "" CACHE STRING "URL for the Discord guild.")
@@ -90,9 +93,6 @@ set(Launcher_DISCORD_URL "" CACHE STRING "URL for the Discord guild.")
# Subreddit URL
set(Launcher_SUBREDDIT_URL "" CACHE STRING "URL for the subreddit.")
-# Use the secrets library or a public stub?
-option(Launcher_EMBED_SECRETS "Determines whether to embed secrets. Secrets are separate and non-public." OFF)
-
#### Check the current Git commit and branch
include(GetGitRevisionDescription)
get_git_head_revision(Launcher_GIT_REFSPEC Launcher_GIT_COMMIT)
@@ -131,11 +131,7 @@ endif()
####################################### Secrets #######################################
-if(Launcher_EMBED_SECRETS)
- add_subdirectory(secrets)
-else()
- add_subdirectory(notsecrets)
-endif()
+add_subdirectory(program_info)
####################################### Install layout #######################################
diff --git a/README.md b/README.md
index 9c485604..4c78e08c 100644
--- a/README.md
+++ b/README.md
@@ -15,9 +15,9 @@ This is a **fork** of the MultiMC Launcher and not endorsed by MultiMC. The Poly
- [ ] Packaging for Linux--Any help packaging for your favorite distro is appreciated!
- [ ] Packaging for MacOS/Windows
- [ ] Stop relying on MultiMC-Hosted metadata services
-- [ ] Long-term solution for the MSA client ID issue
- [ ] Remove references to MultiMC
- [ ] Meson
+- [x] Long-term solution for the MSA client ID issue
- [x] Figure out a way to switch to GPL.
## Packages
diff --git a/buildconfig/BuildConfig.cpp.in b/buildconfig/BuildConfig.cpp.in
index 9e449aec..66cb0f17 100644
--- a/buildconfig/BuildConfig.cpp.in
+++ b/buildconfig/BuildConfig.cpp.in
@@ -45,6 +45,7 @@ Config::Config()
NEWS_RSS_URL = "@Launcher_NEWS_RSS_URL@";
PASTE_EE_KEY = "@Launcher_PASTE_EE_API_KEY@";
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@";
diff --git a/buildconfig/BuildConfig.h b/buildconfig/BuildConfig.h
index ac05f288..2d847f94 100644
--- a/buildconfig/BuildConfig.h
+++ b/buildconfig/BuildConfig.h
@@ -79,6 +79,11 @@ public:
* Client ID you can get from Imgur when you register an application
*/
QString IMGUR_CLIENT_ID;
+
+ /**
+ * Client ID you can get from Microsoft Identity Platform when you register an application
+ */
+ QString MSA_CLIENT_ID;
/**
* Metadata repository URL prefix
diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index 72ed5e5a..0d7eeaef 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -76,8 +76,6 @@
#include <ganalytics.h>
#include <sys.h>
-#include <Secrets.h>
-
#if defined Q_OS_WIN32
#ifndef WIN32_LEAN_AND_MEAN
@@ -1559,10 +1557,6 @@ void Application::on_windowClose()
}
}
-QString Application::msaClientId() const {
- return Secrets::getMSAClientID('-');
-}
-
void Application::updateProxySettings(QString proxyTypeStr, QString addr, int port, QString user, QString password)
{
// Set the application proxy settings.
diff --git a/launcher/Application.h b/launcher/Application.h
index 1b2a2b60..982e22e3 100644
--- a/launcher/Application.h
+++ b/launcher/Application.h
@@ -104,8 +104,6 @@ public:
return m_accounts;
}
- QString msaClientId() const;
-
Status status() const {
return m_status;
}
diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt
index 2dfc78b5..fceca8e2 100644
--- a/launcher/CMakeLists.txt
+++ b/launcher/CMakeLists.txt
@@ -935,7 +935,7 @@ target_link_libraries(Launcher_logic
ganalytics
)
-target_link_libraries(Launcher_logic secrets)
+target_link_libraries(Launcher_logic)
add_executable(${Launcher_Name} MACOSX_BUNDLE WIN32 main.cpp ${LAUNCHER_RCS})
target_link_libraries(${Launcher_Name} Launcher_logic)
diff --git a/launcher/minecraft/auth/steps/MSAStep.cpp b/launcher/minecraft/auth/steps/MSAStep.cpp
index be711f7e..bc10aa4e 100644
--- a/launcher/minecraft/auth/steps/MSAStep.cpp
+++ b/launcher/minecraft/auth/steps/MSAStep.cpp
@@ -2,6 +2,7 @@
#include <QNetworkRequest>
+#include "BuildConfig.h"
#include "minecraft/auth/AuthRequest.h"
#include "minecraft/auth/Parsers.h"
@@ -13,7 +14,7 @@ using Activity = Katabasis::Activity;
MSAStep::MSAStep(AccountData* data, Action action) : AuthStep(data), m_action(action) {
OAuth2::Options opts;
opts.scope = "XboxLive.signin offline_access";
- opts.clientIdentifier = APPLICATION->msaClientId();
+ opts.clientIdentifier = BuildConfig.MSA_CLIENT_ID;
opts.authorizationUrl = "https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode";
opts.accessTokenUrl = "https://login.microsoftonline.com/consumers/oauth2/v2.0/token";
diff --git a/launcher/ui/instanceview/InstanceView.cpp b/launcher/ui/instanceview/InstanceView.cpp
index 1f044866..25aec1ab 100644
--- a/launcher/ui/instanceview/InstanceView.cpp
+++ b/launcher/ui/instanceview/InstanceView.cpp
@@ -835,15 +835,6 @@ QModelIndex InstanceView::moveCursor(QAbstractItemView::CursorAction cursorActio
if(group_index < 0)
return current;
- auto real_group = m_groups[group_index];
- int beginning_row = 0;
- for(auto group: m_groups)
- {
- if(group == real_group)
- break;
- beginning_row += group->numRows();
- }
-
QPair<int, int> pos = cat->positionOf(current);
int column = pos.first;
int row = pos.second;
diff --git a/launcher/ui/pages/global/AccountListPage.cpp b/launcher/ui/pages/global/AccountListPage.cpp
index d3eb2655..87fcac86 100644
--- a/launcher/ui/pages/global/AccountListPage.cpp
+++ b/launcher/ui/pages/global/AccountListPage.cpp
@@ -37,8 +37,6 @@
#include "BuildConfig.h"
-#include "Secrets.h"
-
AccountListPage::AccountListPage(QWidget *parent)
: QMainWindow(parent), ui(new Ui::AccountListPage)
{
@@ -74,7 +72,7 @@ AccountListPage::AccountListPage(QWidget *parent)
updateButtonStates();
// Xbox authentication won't work without a client identifier, so disable the button if it is missing
- ui->actionAddMicrosoft->setVisible(Secrets::hasMSAClientID());
+ ui->actionAddMicrosoft->setVisible(BuildConfig.MSA_CLIENT_ID.size() != 0);
}
AccountListPage::~AccountListPage()
diff --git a/notsecrets/CMakeLists.txt b/notsecrets/CMakeLists.txt
deleted file mode 100644
index 00b132a3..00000000
--- a/notsecrets/CMakeLists.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-add_library(secrets STATIC Secrets.cpp Secrets.h)
-target_link_libraries(secrets Qt5::Core)
-target_compile_definitions(secrets PUBLIC -DEMBED_SECRETS)
-target_include_directories(secrets PUBLIC .)
-
-set(Launcher_CommonName "PolyMC")
-
-set(Launcher_Copyright "MultiMC Contributors" PARENT_SCOPE)
-set(Launcher_Domain "multimc.org" PARENT_SCOPE)
-set(Launcher_Name "${Launcher_CommonName}" PARENT_SCOPE)
-set(Launcher_DisplayName "${Launcher_CommonName} 5" PARENT_SCOPE)
-set(Launcher_UserAgent "${Launcher_CommonName}/5.0" PARENT_SCOPE)
-set(Launcher_ConfigFile "polymc.cfg" PARENT_SCOPE)
-set(Launcher_Git "https://github.com/MultiMC/Launcher" PARENT_SCOPE)
-
-set(Launcher_Branding_ICNS "notsecrets/Launcher.icns" PARENT_SCOPE)
-set(Launcher_Branding_WindowsRC "notsecrets/launcher.rc" PARENT_SCOPE)
-set(Launcher_Branding_LogoQRC "notsecrets/logo.qrc" PARENT_SCOPE)
diff --git a/notsecrets/README.md b/notsecrets/README.md
deleted file mode 100644
index dcc67699..00000000
--- a/notsecrets/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# PolyMC (Not) Secrets
-
-This is a dummy implementation of PolyMC's _Secrets_ library, used to store private information needed for:
-- Application name and logo (and branding in general)
-- Various URLs and API endpoints
-- Your Microsoft Identity Platform client ID. **This is required to use Microsoft accounts to play!**
- - If omitted, adding Microsoft accounts will be completely disabled.
-
-## MultiMC development
-
-In its current state, the `notsecrets` library is suitable for PolyMC code contributions.
-
-All you have to do is add the Microsoft client ID. See `Secrets.cpp` for details.
diff --git a/notsecrets/Secrets.cpp b/notsecrets/Secrets.cpp
deleted file mode 100644
index 6d2444a2..00000000
--- a/notsecrets/Secrets.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#include "Secrets.h"
-
-#include <array>
-#include <cstdio>
-
-namespace {
-
-/*
- * This is the MSA client ID. It is confidential and should not be reused.
- * You can obtain one for yourself by using azure app registration:
- * https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app
- *
- * The app registration should:
- * - Be only for personal accounts.
- * - Not have any redirect URI.
- * - Not have any platform.
- * - Have no credentials.
- * - No certificates.
- * - No client secrets.
- * - Enable 'Live SDK support' for access to XBox APIs.
- * - Enable 'public client flows' for OAuth2 device flow.
- *
- * By putting one in here, you accept the terms and conditions for using the MS Identity Plaform and assume all responsibilities associated with it.
- * See: https://docs.microsoft.com/en-us/legal/microsoft-identity-platform/terms-of-use
- *
- * If you intend to base your own launcher on this code, take care and customize this to obfuscate the client ID, so it cannot be trivially found by casual attackers.
- */
-
-QString MSAClientID = "";
-}
-
-namespace Secrets {
-bool hasMSAClientID() {
- return !MSAClientID.isEmpty();
-}
-
-QString getMSAClientID(uint8_t separator) {
- return MSAClientID;
-}
-}
diff --git a/notsecrets/Secrets.h b/notsecrets/Secrets.h
deleted file mode 100644
index 6872b68e..00000000
--- a/notsecrets/Secrets.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#pragma once
-#include <QString>
-#include <cstdint>
-
-namespace Secrets {
-bool hasMSAClientID();
-QString getMSAClientID(uint8_t separator);
-}
diff --git a/program_info/CMakeLists.txt b/program_info/CMakeLists.txt
new file mode 100644
index 00000000..f418f8b2
--- /dev/null
+++ b/program_info/CMakeLists.txt
@@ -0,0 +1,13 @@
+set(Launcher_CommonName "PolyMC")
+
+set(Launcher_Copyright "PolyMC Contributors" PARENT_SCOPE)
+set(Launcher_Domain "github.com/PolyMC" PARENT_SCOPE)
+set(Launcher_Name "${Launcher_CommonName}" PARENT_SCOPE)
+set(Launcher_DisplayName "${Launcher_CommonName} 5" PARENT_SCOPE)
+set(Launcher_UserAgent "${Launcher_CommonName}/5.0" PARENT_SCOPE)
+set(Launcher_ConfigFile "polymc.cfg" PARENT_SCOPE)
+set(Launcher_Git "https://github.com/PolyMC/Launcher" PARENT_SCOPE)
+
+set(Launcher_Branding_ICNS "program_info/Launcher.icns" PARENT_SCOPE)
+set(Launcher_Branding_WindowsRC "program_info/launcher.rc" PARENT_SCOPE)
+set(Launcher_Branding_LogoQRC "program_info/logo.qrc" PARENT_SCOPE)
diff --git a/notsecrets/Launcher.icns b/program_info/Launcher.icns
index 951b74fc..951b74fc 100644
--- a/notsecrets/Launcher.icns
+++ b/program_info/Launcher.icns
Binary files differ
diff --git a/notsecrets/Launcher.ico b/program_info/Launcher.ico
index 9308958f..9308958f 100644
--- a/notsecrets/Launcher.ico
+++ b/program_info/Launcher.ico
Binary files differ
diff --git a/notsecrets/Launcher.manifest b/program_info/Launcher.manifest
index 0ee781ee..0ee781ee 100644
--- a/notsecrets/Launcher.manifest
+++ b/program_info/Launcher.manifest
diff --git a/program_info/README.md b/program_info/README.md
new file mode 100644
index 00000000..01c4d02b
--- /dev/null
+++ b/program_info/README.md
@@ -0,0 +1,5 @@
+# PolyMC Program Info
+
+This is PolyMC's program info which contains information about:
+- Application name and logo (and branding in general)
+- Various URLs and API endpoints
diff --git a/notsecrets/genicons.sh b/program_info/genicons.sh
index e6f704f9..e6f704f9 100755
--- a/notsecrets/genicons.sh
+++ b/program_info/genicons.sh
diff --git a/notsecrets/launcher.rc b/program_info/launcher.rc
index f84104fb..f84104fb 100644
--- a/notsecrets/launcher.rc
+++ b/program_info/launcher.rc
diff --git a/notsecrets/logo.qrc b/program_info/logo.qrc
index f1da6fe6..f1da6fe6 100644
--- a/notsecrets/logo.qrc
+++ b/program_info/logo.qrc
diff --git a/notsecrets/logo.svg b/program_info/logo.svg
index a1c8e439..a1c8e439 100644
--- a/notsecrets/logo.svg
+++ b/program_info/logo.svg