Unverified Commit a3f5d832 authored by Winter's avatar Winter Committed by GitHub
Browse files

minecraft: drop (#440663)

parents a0f62afe 560c08f2
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -913,7 +913,6 @@ in
  metabase = runTest ./metabase.nix;
  mihomo = runTest ./mihomo.nix;
  mindustry = runTest ./mindustry.nix;
  minecraft = runTest ./minecraft.nix;
  minecraft-server = runTest ./minecraft-server.nix;
  minidlna = runTest ./minidlna.nix;
  miniflux = runTest ./miniflux.nix;

nixos/tests/minecraft.nix

deleted100644 → 0
+0 −40
Original line number Diff line number Diff line
{ pkgs, lib, ... }:
{
  name = "minecraft";
  meta = with lib.maintainers; {
    maintainers = [ nequissimus ];
  };

  nodes.client =
    { nodes, ... }:
    let
      user = nodes.client.config.users.users.alice;
    in
    {
      imports = [
        ./common/user-account.nix
        ./common/x11.nix
      ];

      environment.systemPackages = [ pkgs.minecraft ];

      nixpkgs.config.allowUnfree = true;

      test-support.displayManager.auto.user = user.name;
    };

  enableOCR = true;

  testScript =
    { nodes, ... }:
    let
      user = nodes.client.config.users.users.alice;
    in
    ''
      client.wait_for_x()
      client.execute("su - alice -c minecraft-launcher >&2 &")
      client.wait_for_text("Create a new Microsoft account")
      client.sleep(10)
      client.screenshot("launcher")
    '';
}
+0 −172
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchurl,
  nixosTests,
  copyDesktopItems,
  makeDesktopItem,
  makeWrapper,
  wrapGAppsHook3,
  gobject-introspection,
  jre, # old or modded versions of the game may require Java 8 (https://aur.archlinux.org/packages/minecraft-launcher/#pinned-674960)
  xorg,
  zlib,
  nss,
  nspr,
  fontconfig,
  pango,
  cairo,
  expat,
  alsa-lib,
  cups,
  dbus,
  atk,
  gtk3-x11,
  gtk2-x11,
  gdk-pixbuf,
  glib,
  curl,
  freetype,
  libpulseaudio,
  libuuid,
  systemd,
  flite ? null,
  libXxf86vm ? null,
}:
let
  desktopItem = makeDesktopItem {
    name = "minecraft-launcher";
    exec = "minecraft-launcher";
    icon = "minecraft-launcher";
    comment = "Official launcher for Minecraft, a sandbox-building game";
    desktopName = "Minecraft Launcher";
    categories = [ "Game" ];
  };

  envLibPath = lib.makeLibraryPath [
    curl
    libpulseaudio
    systemd
    alsa-lib # needed for narrator
    flite # needed for narrator
    libXxf86vm # needed only for versions <1.13
  ];

  libPath = lib.makeLibraryPath (
    [
      alsa-lib
      atk
      cairo
      cups
      dbus
      expat
      fontconfig
      freetype
      gdk-pixbuf
      glib
      pango
      gtk3-x11
      gtk2-x11
      nspr
      nss
      stdenv.cc.cc
      zlib
      libuuid
    ]
    ++ (with xorg; [
      libX11
      libxcb
      libXcomposite
      libXcursor
      libXdamage
      libXext
      libXfixes
      libXi
      libXrandr
      libXrender
      libXtst
      libXScrnSaver
    ])
  );
in
stdenv.mkDerivation rec {
  pname = "minecraft-launcher";

  version = "2.2.1441";

  src = fetchurl {
    url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz";
    sha256 = "03q579hvxnsh7d00j6lmfh53rixdpf33xb5zlz7659pvb9j5w0cm";
  };

  icon = fetchurl {
    url = "https://launcher.mojang.com/download/minecraft-launcher.svg";
    sha256 = "0w8z21ml79kblv20wh5lz037g130pxkgs8ll9s3bi94zn2pbrhim";
  };

  nativeBuildInputs = [
    makeWrapper
    wrapGAppsHook3
    copyDesktopItems
    gobject-introspection
  ];

  sourceRoot = ".";

  dontWrapGApps = true;
  dontConfigure = true;
  dontBuild = true;

  installPhase = ''
    runHook preInstall

    mkdir -p $out/opt
    mv minecraft-launcher $out/opt

    install -D $icon $out/share/icons/hicolor/symbolic/apps/minecraft-launcher.svg

    runHook postInstall
  '';

  preFixup = ''
    patchelf \
      --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
      --set-rpath '$ORIGIN/'":${libPath}" \
      $out/opt/minecraft-launcher/minecraft-launcher
    patchelf \
      --set-rpath '$ORIGIN/'":${libPath}" \
      $out/opt/minecraft-launcher/libcef.so
    patchelf \
      --set-rpath '$ORIGIN/'":${libPath}" \
      $out/opt/minecraft-launcher/liblauncher.so
  '';

  postFixup = ''
    # Do not create `GPUCache` in current directory
    makeWrapper $out/opt/minecraft-launcher/minecraft-launcher $out/bin/minecraft-launcher \
      --prefix LD_LIBRARY_PATH : ${envLibPath} \
      --prefix PATH : ${lib.makeBinPath [ jre ]} \
      --set JAVA_HOME ${lib.getBin jre} \
      --chdir /tmp \
      "''${gappsWrapperArgs[@]}"
  '';

  desktopItems = [ desktopItem ];

  meta = with lib; {
    description = "Official launcher for Minecraft, a sandbox-building game";
    homepage = "https://minecraft.net";
    maintainers = with maintainers; [ ryantm ];
    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
    license = licenses.unfree;
    platforms = [ "x86_64-linux" ];
    # "minecraft-launcher will fail on NixOS for minecraft versions >1.19
    # try prismlauncher or atlauncher instead"
    broken = true;
  };

  passthru = {
    tests = { inherit (nixosTests) minecraft; };
    updateScript = ./update.sh;
  };
}
+0 −7
Original line number Diff line number Diff line
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq common-updater-scripts

set -eu -o pipefail

version=$(curl -s 'https://launchermeta.mojang.com/v1/products/launcher/6f083b80d5e6fabbc4236f81d0d8f8a350c665a9/linux.json' | jq -r '."launcher-core"[0].version.name')
update-source-version minecraft "${version}"
+1 −0
Original line number Diff line number Diff line
@@ -1602,6 +1602,7 @@ mapAliases {
  mihomo-party = throw "'mihomo-party' has been removed due to upstream license violation"; # Added 2025-08-20
  mikutter = throw "'mikutter' has been removed because the package was broken and had no maintainers"; # Added 2024-10-01
  mime-types = mailcap; # Added 2022-01-21
  minecraft = throw "'minecraft' has been removed because the package was broken. Consider using 'prismlauncher' instead"; # Added 2025-09-06
  minetest = luanti; # Added 2024-11-11
  minetestclient = luanti-client; # Added 2024-11-11
  minetestserver = luanti-server; # Added 2024-11-11