From cd8681a955eea3e1b367d2349f50465a9323fdef Mon Sep 17 00:00:00 2001 From: IvarWithoutBones Date: Tue, 18 Jan 2022 02:12:32 +0100 Subject: [PATCH] optifinePackages: init --- .../games/minecraft/optifine/default.nix | 86 ++++++++++++------- .../games/minecraft/optifine/generic.nix | 44 ++++++++++ pkgs/top-level/all-packages.nix | 4 +- 3 files changed, 104 insertions(+), 30 deletions(-) create mode 100644 pkgs/tools/games/minecraft/optifine/generic.nix diff --git a/pkgs/tools/games/minecraft/optifine/default.nix b/pkgs/tools/games/minecraft/optifine/default.nix index b7ca74822c40..7152cb1eec46 100644 --- a/pkgs/tools/games/minecraft/optifine/default.nix +++ b/pkgs/tools/games/minecraft/optifine/default.nix @@ -1,39 +1,67 @@ -{ lib -, stdenv -, fetchurl -, makeWrapper -, jre }: +{ recurseIntoAttrs +, callPackage +}: -stdenv.mkDerivation rec { - pname = "optifine"; - version = "1.18.1_HD_U_H4"; +recurseIntoAttrs rec { + optifine-latest = optifine_1_18_1; - src = fetchurl { - url = "https://optifine.net/download?f=OptiFine_${version}.jar"; - sha256 = "325168569b21a2dcde82999876f69ec9d8af75202a7021691f2abede4d81dcec"; + optifine_1_18_1 = callPackage ./generic.nix { + version = "1.18.1_HD_U_H4"; + sha256 = "sha256-MlFoVpshotzegpmYdvaeydivdSAqcCFpHyq+3k2B3Ow="; }; - dontUnpack = true; + optifine_1_17_1 = callPackage ./generic.nix { + version = "1.17.1_HD_U_H1"; + sha256 = "sha256-HHt747bIHYY/WNAx19mNgvnLrLCqaKIqwXmmB7A895M="; + }; - nativeBuildInputs = [ jre makeWrapper ]; + optifine_1_16_5 = callPackage ./generic.nix { + version = "1.16.5_HD_U_G8"; + sha256 = "sha256-PHa8kO1EvOVnzufCDrLENhkm8jqG5TZ9WW9uYk0LSU8="; + }; - installPhase = '' - mkdir -p $out/{bin,lib/optifine} - cp $src $out/lib/optifine/optifine.jar + optifine_1_15_2 = callPackage ./generic.nix { + version = "1.16.5_HD_U_G8"; + sha256 = "sha256-PHa8kO1EvOVnzufCDrLENhkm8jqG5TZ9WW9uYk0LSU8="; + }; - makeWrapper ${jre}/bin/java $out/bin/optifine \ - --add-flags "-jar $out/lib/optifine/optifine.jar" - ''; + optifine_1_14_4 = callPackage ./generic.nix { + version = "1.14.4_HD_U_G5"; + sha256 = "sha256-I+65vQO6yG4AQ0ZLAfX73ImsFKAQkTyrIOnQHldTibs="; + }; - meta = with lib; { - homepage = "https://optifine.net/"; - description = "A Minecraft optimization mod"; - longDescription = '' - OptiFine is a Minecraft optimization mod. - It allows Minecraft to run faster and look better with full support for HD textures and many configuration options. - ''; - license = licenses.unfree; - maintainers = [ maintainers.ivar ]; - platforms = platforms.unix; + optifine_1_13_2 = callPackage ./generic.nix { + version = "1.13.2_HD_U_G5"; + sha256 = "sha256-sjUQot8fPdbZTiLqt+exbF5T8kI5bLQevu7atW9Xu3E="; + }; + + optifine_1_12_2 = callPackage ./generic.nix { + version = "1.12.2_HD_U_G5"; + sha256 = "sha256-OwAGeXdx/rl/LQ0pCK58mnjO+y5zCvHC6F0IqDm6Jx4="; + }; + + optifine_1_11_2 = callPackage ./generic.nix { + version = "1.11.2_HD_U_G5"; + sha256 = "sha256-1sLUBtM5e5LDTUFCRZf9UeH6WOA8zY6TAmB9PCS5iv4="; + }; + + optifine_1_10 = callPackage ./generic.nix { + version = "1.10_HD_U_I5"; + sha256 = "sha256-oKOsaNFnOKfhWLDDYG/0Z4h/ZCDtyJWS9LXPaKAApc0="; + }; + + optifine_1_9_4 = callPackage ./generic.nix { + version = "1.9.4_HD_U_I5"; + sha256 = "sha256-t+OxIf0Tl/NZxUTl+LGnWRUhEwZ+vxiZfhclxEAf6yI="; + }; + + optifine_1_8_9 = callPackage ./generic.nix { + version = "1.8.9_HD_U_M5"; + sha256 = "sha256-Jzl2CnD8pq5cfcgXvMYoPxj1Xjj6I3eNp/OHprckssQ="; + }; + + optifine_1_7_10 = callPackage ./generic.nix { + version = "1.7.10_HD_U_E7"; + sha256 = "sha256-i82dg94AGgWR9JgQXzafBwxH0skZJ3TVpbafZG5E+rQ="; }; } diff --git a/pkgs/tools/games/minecraft/optifine/generic.nix b/pkgs/tools/games/minecraft/optifine/generic.nix new file mode 100644 index 000000000000..d33e7d75126d --- /dev/null +++ b/pkgs/tools/games/minecraft/optifine/generic.nix @@ -0,0 +1,44 @@ +{ version +, sha256 +, lib +, runCommand +, fetchurl +, makeWrapper +, jre +}: + +let + mcVersion = builtins.head (lib.splitString "_" version); +in +runCommand "optifine-${mcVersion}" { + pname = "optifine"; + inherit version; + + src = fetchurl { + url = "https://optifine.net/download?f=OptiFine_${version}.jar"; + inherit sha256; + name = "OptiFine_${version}.jar"; + }; + + nativeBuildInputs = [ jre makeWrapper ]; + + meta = with lib; { + homepage = "https://optifine.net/"; + description = "A Minecraft ${mcVersion} optimization mod"; + longDescription = '' + OptiFine is a Minecraft optimization mod. + It allows Minecraft to run faster and look better with full support for HD textures and many configuration options. + This is for version ${mcVersion} of Minecraft. + ''; + license = licenses.unfree; + maintainers = [ maintainers.ivar ]; + platforms = platforms.unix; + mainProgram = "optifine"; + }; +} '' + mkdir -p $out/{bin,lib/optifine} + cp $src $out/lib/optifine/optifine.jar + + makeWrapper ${jre}/bin/java $out/bin/optifine \ + --add-flags "-jar $out/lib/optifine/optifine.jar" +'' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 203a6e9ea12d..914c944dfca3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8451,7 +8451,9 @@ with pkgs; openvswitch-lts = callPackage ../os-specific/linux/openvswitch/lts.nix { }; - optifine = callPackage ../tools/games/minecraft/optifine { }; + optifinePackages = callPackage ../tools/games/minecraft/optifine { }; + + optifine = optifinePackages.optifine-latest; optipng = callPackage ../tools/graphics/optipng { libpng = libpng12;