Unverified Commit ab6c14bf authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

Merge pull request #196624 from Minion3665/replace-polymc-with-prismlauncher

parents 4e221d74 49c81f00
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -1501,18 +1501,18 @@
      </listitem>
      <listitem>
        <para>
          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
          <literal>~/.local/share/multimc</literal> to
          <literal>~/.local/share/polymc</literal>. The main config
          file’s path has also moved from
          <literal>~/.local/share/PrismLauncher</literal>. The main
          config file’s path has also moved from
          <literal>~/.local/share/multimc/multimc.cfg</literal> to
          <literal>~/.local/share/polymc/polymc.cfg</literal>.
          <literal>~/.local/share/PrismLauncher/prismlauncher.cfg</literal>.
        </para>
      </listitem>
      <listitem>
+18 −0
Original line number Diff line number Diff line
@@ -38,6 +38,24 @@
          <literal>stdenv.buildPlatform.canExecute stdenv.hostPlatform</literal>.
        </para>
      </listitem>
      <listitem>
        <para>
          The <literal>polymc</literal> package has been removed due to
          a rogue maintainer. It has been replaced by
          <literal>prismlauncher</literal>, a fork by the rest of the
          maintainers. For more details, see
          <link xlink:href="https://github.com/NixOS/nixpkgs/pull/196624">the
          pull request that made this change</link> and
          <link xlink:href="https://github.com/NixOS/nixpkgs/issues/196460">this
          issue detailing the vulnerability</link>. Users with existing
          installations should rename
          <literal>~/.local/share/polymc</literal> to
          <literal>~/.local/share/PrismLauncher</literal>. The main
          config file’s path has also moved from
          <literal>~/.local/share/polymc/polymc.cfg</literal> to
          <literal>~/.local/share/PrismLauncher/prismlauncher.cfg</literal>.
        </para>
      </listitem>
      <listitem>
        <para>
          The <literal>nixpkgs.hostPlatform</literal> and
+9 −1
Original line number Diff line number Diff line
@@ -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.<name>.execConfig.PrivateUsers = false`

+10 −0
Original line number Diff line number Diff line
@@ -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.

+94 −0
Original line number Diff line number Diff line
@@ -14,32 +14,50 @@
, quazip
, glfw
, openal
, extra-cmake-modules
, tomlplusplus
, ghc_filesystem
, msaClientID ? ""
, jdks ? [ jdk jdk8 ]
, extra-cmake-modules
,
}:

let
  libnbtplusplus = fetchFromGitHub {
    owner = "PrismLauncher";
    repo = "libnbtplusplus";
    rev = "2203af7eeb48c45398139b583615134efd8d407f";
    sha256 = "sha256-TvVOjkUobYJD9itQYueELJX3wmecvEdCbJ0FinW2mL4=";
  };
in
stdenv.mkDerivation rec {
  pname = "polymc";
  version = "1.4.2";
  pname = "prismlauncher";
  version = "5.0";

  src = fetchFromGitHub {
    owner = "PolyMC";
    repo = "PolyMC";
    owner = "PrismLauncher";
    repo = "PrismLauncher";
    rev = version;
    sha256 = "sha256-mqLk7ZcSrtvlUziNUCtnH7xQplXBruuiuN2b1+VX1ng=";
    fetchSubmodules = true;
    sha256 = "sha256-oN+DpJ08N/ar5wLAahgpBV9DeHtMTwSrE7uOwT3A+Yo=";
  };

  nativeBuildInputs = [ extra-cmake-modules cmake file jdk wrapQtAppsHook ];
  buildInputs = [ qtbase zlib quazip ];
  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;

  postInstall = let
    libpath = with xorg; lib.makeLibraryPath [
  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
@@ -51,16 +69,17 @@ stdenv.mkDerivation rec {
          openal
          stdenv.cc.cc.lib
        ];
  in ''
    in
    ''
      # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
    wrapQtApp $out/bin/polymc \
      wrapQtApp $out/bin/prismlauncher \
        --set LD_LIBRARY_PATH /run/opengl-driver/lib:${libpath} \
      --prefix POLYMC_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks} \
        --prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks} \
        --prefix PATH : ${lib.makeBinPath [xorg.xrandr]}
    '';

  meta = with lib; {
    homepage = "https://polymc.org/";
    homepage = "https://prismlauncher.org/";
    description = "A free, open source launcher for Minecraft";
    longDescription = ''
      Allows you to have multiple, separate instances of Minecraft (each with
@@ -68,9 +87,8 @@ stdenv.mkDerivation rec {
      their associated options with a simple interface.
    '';
    platforms = platforms.linux;
    changelog = "https://github.com/PolyMC/PolyMC/releases/tag/${version}";
    changelog = "https://github.com/PrismLauncher/PrismLauncher/releases/tag/${version}";
    license = licenses.gpl3Only;
    maintainers = with maintainers; [ cleverca22 starcraft66 ];
    knownVulnerabilities = [ "OVE-20221017-0001" ];
    maintainers = with maintainers; [ minion3665 Scrumplex ];
  };
}
Loading