diff options
-rw-r--r-- | COPYING.md | 14 | ||||
-rw-r--r-- | flake.lock | 6 | ||||
-rw-r--r-- | flake.nix | 39 | ||||
-rw-r--r-- | launcher/Application.cpp | 2 | ||||
-rw-r--r-- | launcher/java/JavaInstallList.cpp | 4 | ||||
-rw-r--r-- | launcher/java/JavaUtils.cpp | 21 | ||||
-rw-r--r-- | packages/nix/NIX.md | 4 | ||||
-rw-r--r-- | packages/nix/polymc/0001-pick-latest-java-first.patch | 48 | ||||
-rw-r--r-- | packages/nix/polymc/default.nix | 2 | ||||
-rw-r--r-- | program_info/CMakeLists.txt | 4 |
10 files changed, 55 insertions, 89 deletions
@@ -15,6 +15,20 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + +# Launcher (https://github.com/MultiMC/Launcher) + Copyright 2012-2021 MultiMC Contributors + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. # MinGW runtime (Windows) @@ -49,11 +49,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1641528457, - "narHash": "sha256-FyU9E63n1W7Ql4pMnhW2/rO9OftWZ37pLppn/c1aisY=", + "lastModified": 1641887635, + "narHash": "sha256-kDGpufwzVaiGe5e1sBUBPo9f1YN+nYHJlYqCaVpZTQQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ff377a78794d412a35245e05428c8f95fef3951f", + "rev": "b2737d4980a17cc2b7d600d7d0b32fd7333aca88", "type": "github" }, "original": { @@ -2,7 +2,7 @@ description = "PolyMC flake"; inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; inputs.flake-utils.url = "github:numtide/flake-utils"; - inputs.flake-compat = { + inputs.flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; @@ -15,13 +15,14 @@ flake = false; }; - outputs = inputs@{ self, nixpkgs, flake-utils, libnbtplusplus, quazip, ... }: - flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-linux" ] (system: - let - pkgs = import nixpkgs { - inherit system; - }; - + outputs = args@{ self, nixpkgs, flake-utils, libnbtplusplus, quazip, ... }: + { + overlay = final: prev: { + inherit (self.packages.${final.system}) polymc; + }; + } // flake-utils.lib.eachDefaultSystem (system: + let pkgs = import nixpkgs { inherit system; }; + in { packages = { polymc = pkgs.libsForQt5.callPackage ./packages/nix/polymc { inherit self; @@ -29,27 +30,13 @@ submoduleNbt = libnbtplusplus; }; }; - - # 'nix flake check' fails - overlay = (final: prev: rec { - polymc = prev.libsForQt5.callPackage ./packages/nix/polymc { - inherit self; - submoduleQuazip = quazip; - submoduleNbt = libnbtplusplus; - }; - }); - apps = { polymc = flake-utils.lib.mkApp { name = "polymc"; - drv = packages.polymc; + drv = self.packages.${system}.polymc; }; }; - in - { - inherit packages overlay apps; - defaultPackage = packages.polymc; - defaultApp = apps.polymc; - } - ); + defaultPackage = self.packages.${system}.polymc; + defaultApp = self.apps.${system}.polymc; + }); } diff --git a/launcher/Application.cpp b/launcher/Application.cpp index a3e2c44f..47c9c20e 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -662,7 +662,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv) // Memory m_settings->registerSetting({"MinMemAlloc", "MinMemoryAlloc"}, 512); - m_settings->registerSetting({"MaxMemAlloc", "MaxMemoryAlloc"}, 1024); + m_settings->registerSetting({"MaxMemAlloc", "MaxMemoryAlloc"}, 4096); m_settings->registerSetting("PermGen", 128); // Java Settings diff --git a/launcher/java/JavaInstallList.cpp b/launcher/java/JavaInstallList.cpp index 07f2bd8c..a0a60871 100644 --- a/launcher/java/JavaInstallList.cpp +++ b/launcher/java/JavaInstallList.cpp @@ -120,8 +120,8 @@ void JavaInstallList::updateListData(QList<BaseVersionPtr> versions) bool sortJavas(BaseVersionPtr left, BaseVersionPtr right) { - auto rleft = std::dynamic_pointer_cast<JavaInstall>(left); - auto rright = std::dynamic_pointer_cast<JavaInstall>(right); + auto rleft = std::dynamic_pointer_cast<JavaInstall>(right); + auto rright = std::dynamic_pointer_cast<JavaInstall>(left); return (*rleft) > (*rright); } diff --git a/launcher/java/JavaUtils.cpp b/launcher/java/JavaUtils.cpp index b5b1fd08..6e5dfeae 100644 --- a/launcher/java/JavaUtils.cpp +++ b/launcher/java/JavaUtils.cpp @@ -149,6 +149,21 @@ JavaInstallPtr JavaUtils::GetDefaultJava() return javaVersion; } +QStringList addJavasFromEnv(QList<QString> javas) +{ + QByteArray env = qgetenv("POLYMC_JAVA_PATHS"); +#if defined(Q_OS_WIN32) + QList<QString> javaPaths = QString::fromLocal8Bit(env).split(QLatin1String(";")); +#else + QList<QString> javaPaths = QString::fromLocal8Bit(env).split(QLatin1String(":")); +#endif + for(QString i : javaPaths) + { + javas.append(i); + }; + return javas; +} + #if defined(Q_OS_WIN32) QList<JavaInstallPtr> JavaUtils::FindJavaFromRegistryKey(DWORD keyType, QString keyName, QString keyJavaDir, QString subkeySuffix) { @@ -363,7 +378,7 @@ QList<QString> JavaUtils::FindJavaPaths() javas.append(systemLibraryJVMDir.absolutePath() + "/" + java + "/Contents/Home/bin/java"); javas.append(systemLibraryJVMDir.absolutePath() + "/" + java + "/Contents/Commands/java"); } - return javas; + return addJavasFromEnv(javas); } #elif defined(Q_OS_LINUX) @@ -409,7 +424,7 @@ QList<QString> JavaUtils::FindJavaPaths() scanJavaDir("/opt/jdks"); // flatpak scanJavaDir("/app/jdk"); - return javas; + return addJavasFromEnv(javas); } #else QList<QString> JavaUtils::FindJavaPaths() @@ -419,6 +434,6 @@ QList<QString> JavaUtils::FindJavaPaths() QList<QString> javas; javas.append(this->GetDefaultJava()->path); - return javas; + return addJavasFromEnv(javas); } #endif diff --git a/packages/nix/NIX.md b/packages/nix/NIX.md index f778dac1..1ceba9a3 100644 --- a/packages/nix/NIX.md +++ b/packages/nix/NIX.md @@ -8,7 +8,7 @@ inputs = { ... -nixpkgs.overlays = [ inputs.polymc.overlay.${system} ]; ## Within configuration.nix +nixpkgs.overlays = [ inputs.polymc.overlay ]; ## Within configuration.nix environment.systemPackages = with pkgs; [ polymc ]; ## ``` @@ -28,4 +28,4 @@ nixpkgs.overlays = [ ]; environment.systemPackages = with pkgs; [ polymc ]; -```
\ No newline at end of file +``` diff --git a/packages/nix/polymc/0001-pick-latest-java-first.patch b/packages/nix/polymc/0001-pick-latest-java-first.patch deleted file mode 100644 index a65dcbfd..00000000 --- a/packages/nix/polymc/0001-pick-latest-java-first.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 44e1b2a19a869b907b40e56c85c8a47aa6c22097 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mustafa=20=C3=87al=C4=B1=C5=9Fkan?= <musfay@protonmail.com> -Date: Tue, 22 Jun 2021 21:50:11 +0300 -Subject: [PATCH] pick latest java first - ---- - launcher/java/JavaInstallList.cpp | 4 ++-- - launcher/java/JavaUtils.cpp | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/launcher/java/JavaInstallList.cpp b/launcher/java/JavaInstallList.cpp -index 0bded03c..40898e20 100644 ---- a/launcher/java/JavaInstallList.cpp -+++ b/launcher/java/JavaInstallList.cpp -@@ -120,8 +120,8 @@ void JavaInstallList::updateListData(QList<BaseVersionPtr> versions) - - bool sortJavas(BaseVersionPtr left, BaseVersionPtr right) - { -- auto rleft = std::dynamic_pointer_cast<JavaInstall>(left); -- auto rright = std::dynamic_pointer_cast<JavaInstall>(right); -+ auto rleft = std::dynamic_pointer_cast<JavaInstall>(right); -+ auto rright = std::dynamic_pointer_cast<JavaInstall>(left); - return (*rleft) > (*rright); - } - -diff --git a/launcher/java/JavaUtils.cpp b/launcher/java/JavaUtils.cpp -index 5f004a10..6d633631 100644 ---- a/launcher/java/JavaUtils.cpp -+++ b/launcher/java/JavaUtils.cpp -@@ -350,7 +350,6 @@ QList<QString> JavaUtils::FindJavaPaths() - qDebug() << "Linux Java detection incomplete - defaulting to \"java\""; - - QList<QString> javas; -- javas.append(this->GetDefaultJava()->path); - auto scanJavaDir = [&](const QString & dirPath) - { - QDir dir(dirPath); -@@ -379,6 +378,7 @@ QList<QString> JavaUtils::FindJavaPaths() - // general locations used by distro packaging - scanJavaDir("/usr/lib/jvm"); - scanJavaDir("/usr/lib32/jvm"); -+ javas.append(this->GetDefaultJava()->path); - // javas stored in MultiMC's folder - scanJavaDir("java"); - return javas; --- -2.31.1 - diff --git a/packages/nix/polymc/default.nix b/packages/nix/polymc/default.nix index f49e59bb..5da00ff8 100644 --- a/packages/nix/polymc/default.nix +++ b/packages/nix/polymc/default.nix @@ -48,8 +48,6 @@ mkDerivation rec { dontWrapQtApps = true; - patches = [ ./0001-pick-latest-java-first.patch ]; - postPatch = '' # hardcode jdk paths substituteInPlace launcher/java/JavaUtils.cpp \ diff --git a/program_info/CMakeLists.txt b/program_info/CMakeLists.txt index d2f23277..77b971fc 100644 --- a/program_info/CMakeLists.txt +++ b/program_info/CMakeLists.txt @@ -3,8 +3,8 @@ 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_DisplayName "${Launcher_CommonName}" PARENT_SCOPE) +set(Launcher_UserAgent "${Launcher_CommonName}/${Launcher_RELEASE_VERSION_NAME}" PARENT_SCOPE) set(Launcher_ConfigFile "polymc.cfg" PARENT_SCOPE) set(Launcher_Git "https://github.com/PolyMC/PolyMC" PARENT_SCOPE) |