diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml index 02201861234..6f06838833e 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml @@ -1501,18 +1501,18 @@ - MultiMC has been replaced with the fork PolyMC due to upstream - developers being hostile to 3rd party package maintainers. - PolyMC removes all MultiMC branding and is aimed at providing - proper 3rd party packages like the one contained in Nixpkgs. - This change affects the data folder where game instances and - other save and configuration files are stored. Users with - existing installations should rename + MultiMC has been replaced with the fork PrismLauncher due to + upstream developers being hostile to 3rd party package + maintainers. PrismLauncher removes all MultiMC branding and is + aimed at providing proper 3rd party packages like the one + contained in Nixpkgs. This change affects the data folder + where game instances and other save and configuration files + are stored. Users with existing installations should rename ~/.local/share/multimc to - ~/.local/share/polymc. The main config - file’s path has also moved from + ~/.local/share/PrismLauncher. The main + config file’s path has also moved from ~/.local/share/multimc/multimc.cfg to - ~/.local/share/polymc/polymc.cfg. + ~/.local/share/PrismLauncher/prismlauncher.cfg. diff --git a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml index daae9180715..9eaf08d63d5 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml @@ -38,6 +38,24 @@ stdenv.buildPlatform.canExecute stdenv.hostPlatform. + + + The polymc package has been removed due to + a rogue maintainer. It has been replaced by + prismlauncher, a fork by the rest of the + maintainers. For more details, see + the + pull request that made this change and + this + issue detailing the vulnerability. Users with existing + installations should rename + ~/.local/share/polymc to + ~/.local/share/PrismLauncher. The main + config file’s path has also moved from + ~/.local/share/polymc/polymc.cfg to + ~/.local/share/PrismLauncher/prismlauncher.cfg. + + The nixpkgs.hostPlatform and diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index 2d2140d92d5..6fe5eba212f 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -581,7 +581,15 @@ In addition to numerous new and upgraded packages, this release has the followin - The `miller` package has been upgraded from 5.10.3 to [6.2.0](https://github.com/johnkerl/miller/releases/tag/v6.2.0). See [What's new in Miller 6](https://miller.readthedocs.io/en/latest/new-in-miller-6). -- MultiMC has been replaced with the fork PolyMC due to upstream developers being hostile to 3rd party package maintainers. PolyMC removes all MultiMC branding and is aimed at providing proper 3rd party packages like the one contained in Nixpkgs. This change affects the data folder where game instances and other save and configuration files are stored. Users with existing installations should rename `~/.local/share/multimc` to `~/.local/share/polymc`. The main config file's path has also moved from `~/.local/share/multimc/multimc.cfg` to `~/.local/share/polymc/polymc.cfg`. +- MultiMC has been replaced with the fork PrismLauncher due to upstream + developers being hostile to 3rd party package maintainers. PrismLauncher + removes all MultiMC branding and is aimed at providing proper 3rd party + packages like the one contained in Nixpkgs. This change affects the data + folder where game instances and other save and configuration files are stored. + Users with existing installations should rename `~/.local/share/multimc` to + `~/.local/share/PrismLauncher`. The main config file's path has also moved + from `~/.local/share/multimc/multimc.cfg` to + `~/.local/share/PrismLauncher/prismlauncher.cfg`. - `systemd-nspawn@.service` settings have been reverted to the default systemd behaviour. User namespaces are now activated by default. If you want to keep running nspawn containers without user namespaces you need to set `systemd.nspawn..execConfig.PrivateUsers = false` diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md index 821345e8925..3a2a2a0c9f9 100644 --- a/nixos/doc/manual/release-notes/rl-2211.section.md +++ b/nixos/doc/manual/release-notes/rl-2211.section.md @@ -20,6 +20,16 @@ In addition to numerous new and upgraded packages, this release has the followin built for `stdenv.hostPlatform` (i.e. produced by `stdenv.cc`) by evaluating `stdenv.buildPlatform.canExecute stdenv.hostPlatform`. +- The `polymc` package has been removed due to a rogue maintainer. It has been + replaced by `prismlauncher`, a fork by the rest of the maintainers. For more + details, see [the pull request that made this + change](https://github.com/NixOS/nixpkgs/pull/196624) and [this issue + detailing the vulnerability](https://github.com/NixOS/nixpkgs/issues/196460). + Users with existing installations should rename `~/.local/share/polymc` to + `~/.local/share/PrismLauncher`. The main config file's path has also moved + from `~/.local/share/polymc/polymc.cfg` to + `~/.local/share/PrismLauncher/prismlauncher.cfg`. + - The `nixpkgs.hostPlatform` and `nixpkgs.buildPlatform` options have been added. These cover and override the `nixpkgs.{system,localSystem,crossSystem}` options. diff --git a/pkgs/games/polymc/default.nix b/pkgs/games/polymc/default.nix deleted file mode 100644 index 53c1647aa99..00000000000 --- a/pkgs/games/polymc/default.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, jdk8 -, jdk -, zlib -, file -, wrapQtAppsHook -, xorg -, libpulseaudio -, qtbase -, libGL -, quazip -, glfw -, openal -, msaClientID ? "" -, jdks ? [ jdk jdk8 ] -, extra-cmake-modules -}: - -stdenv.mkDerivation rec { - pname = "polymc"; - version = "1.4.2"; - - src = fetchFromGitHub { - owner = "PolyMC"; - repo = "PolyMC"; - rev = version; - sha256 = "sha256-mqLk7ZcSrtvlUziNUCtnH7xQplXBruuiuN2b1+VX1ng="; - fetchSubmodules = true; - }; - - nativeBuildInputs = [ extra-cmake-modules cmake file jdk wrapQtAppsHook ]; - buildInputs = [ qtbase zlib quazip ]; - - cmakeFlags = lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ]; - - dontWrapQtApps = true; - - postInstall = let - libpath = with xorg; lib.makeLibraryPath [ - libX11 - libXext - libXcursor - libXrandr - libXxf86vm - libpulseaudio - libGL - glfw - openal - stdenv.cc.cc.lib - ]; - in '' - # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 - wrapQtApp $out/bin/polymc \ - --set LD_LIBRARY_PATH /run/opengl-driver/lib:${libpath} \ - --prefix POLYMC_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks} \ - --prefix PATH : ${lib.makeBinPath [ xorg.xrandr ]} - ''; - - meta = with lib; { - homepage = "https://polymc.org/"; - description = "A free, open source launcher for Minecraft"; - longDescription = '' - Allows you to have multiple, separate instances of Minecraft (each with - their own mods, texture packs, saves, etc) and helps you manage them and - their associated options with a simple interface. - ''; - platforms = platforms.linux; - changelog = "https://github.com/PolyMC/PolyMC/releases/tag/${version}"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ cleverca22 starcraft66 ]; - knownVulnerabilities = [ "OVE-20221017-0001" ]; - }; -} diff --git a/pkgs/games/prismlauncher/default.nix b/pkgs/games/prismlauncher/default.nix new file mode 100644 index 00000000000..a7797861f30 --- /dev/null +++ b/pkgs/games/prismlauncher/default.nix @@ -0,0 +1,94 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, jdk8 +, jdk +, zlib +, file +, wrapQtAppsHook +, xorg +, libpulseaudio +, qtbase +, libGL +, quazip +, glfw +, openal +, extra-cmake-modules +, tomlplusplus +, ghc_filesystem +, msaClientID ? "" +, jdks ? [ jdk jdk8 ] +, +}: +let + libnbtplusplus = fetchFromGitHub { + owner = "PrismLauncher"; + repo = "libnbtplusplus"; + rev = "2203af7eeb48c45398139b583615134efd8d407f"; + sha256 = "sha256-TvVOjkUobYJD9itQYueELJX3wmecvEdCbJ0FinW2mL4="; + }; +in +stdenv.mkDerivation rec { + pname = "prismlauncher"; + version = "5.0"; + + src = fetchFromGitHub { + owner = "PrismLauncher"; + repo = "PrismLauncher"; + rev = version; + sha256 = "sha256-oN+DpJ08N/ar5wLAahgpBV9DeHtMTwSrE7uOwT3A+Yo="; + }; + + nativeBuildInputs = [ extra-cmake-modules ghc_filesystem cmake file jdk wrapQtAppsHook ]; + buildInputs = [ qtbase zlib quazip tomlplusplus ]; + + cmakeFlags = lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ]; + dontWrapQtApps = true; + + postUnpack = '' + rm -rf source/libraries/libnbtplusplus + mkdir source/libraries/libnbtplusplus + ln -s ${libnbtplusplus}/* source/libraries/libnbtplusplus + chmod -R +r+w source/libraries/libnbtplusplus + chown -R $USER: source/libraries/libnbtplusplus + ''; + + postInstall = + let + libpath = with xorg; + lib.makeLibraryPath [ + libX11 + libXext + libXcursor + libXrandr + libXxf86vm + libpulseaudio + libGL + glfw + openal + stdenv.cc.cc.lib + ]; + in + '' + # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 + wrapQtApp $out/bin/prismlauncher \ + --set LD_LIBRARY_PATH /run/opengl-driver/lib:${libpath} \ + --prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks} \ + --prefix PATH : ${lib.makeBinPath [xorg.xrandr]} + ''; + + meta = with lib; { + homepage = "https://prismlauncher.org/"; + description = "A free, open source launcher for Minecraft"; + longDescription = '' + Allows you to have multiple, separate instances of Minecraft (each with + their own mods, texture packs, saves, etc) and helps you manage them and + their associated options with a simple interface. + ''; + platforms = platforms.linux; + changelog = "https://github.com/PrismLauncher/PrismLauncher/releases/tag/${version}"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ minion3665 Scrumplex ]; + }; +} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 067482791df..cbf77de74f4 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -934,7 +934,7 @@ mapAliases ({ mpich2 = throw "'mpich2' has been renamed to/replaced by 'mpich'"; # Converted to throw 2022-02-22 mqtt-bench = throw "mqtt-bench has been dropped due to the lack of maintenance from upstream since 2017"; # Added 2022-06-02 msf = throw "'msf' has been renamed to/replaced by 'metasploit'"; # Converted to throw 2022-02-22 - multimc = throw "multimc was removed from nixpkgs; use polymc instead (see https://github.com/NixOS/nixpkgs/pull/154051 for more information)"; # Added 2022-01-08 + multimc = throw "multimc was removed from nixpkgs; use prismlauncher instead (see https://github.com/NixOS/nixpkgs/pull/154051 for more information)"; # Added 2022-01-08 mumble_git = pkgs.mumble; # Added 2019-08-01 murmur_git = pkgs.murmur; # Added 2019-08-01 mutt-with-sidebar = mutt; # Added 2022-09-17 @@ -1151,6 +1151,7 @@ mapAliases ({ pmtools = throw "'pmtools' has been renamed to/replaced by 'acpica-tools'"; # Converted to throw 2022-02-22 pocketsphinx = throw "pocketsphinx has been removed: unmaintained"; # Added 2022-04-24 polarssl = throw "'polarssl' has been renamed to/replaced by 'mbedtls'"; # Converted to throw 2022-02-22 + polymc = throw "PolyMC has been removed from nixpkgs due to a hostile takeover by a rogue maintainer. The rest of the maintainers have made a fork which is packaged as 'prismlauncher'"; # Added 2022-10-18 polysh = throw "polysh has been removed from nixpkgs as the upstream has abandoned the project"; # Added 2022-01-01 pond = throw "pond has been dropped due to the lack of maintanence from upstream since 2016"; # Added 2022-06-02 poppler_qt5 = throw "'poppler_qt5' has been renamed to/replaced by 'libsForQt5.poppler'"; # Converted to throw 2022-02-22 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6a7e5c6e767..062d6841f26 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -34206,7 +34206,7 @@ with pkgs; planetary_annihilation = callPackage ../games/planetaryannihilation { }; - polymc = libsForQt5.callPackage ../games/polymc { }; + prismlauncher = libsForQt5.callPackage ../games/prismlauncher { }; pong3d = callPackage ../games/pong3d { };