minecraft-server: fix using latest jre for all minecraft server versions

authored by Joel and committed by tomberek e0843a80 63c488bf

+51 -20
+8 -2
pkgs/games/minecraft-server/default.nix
··· 1 - { callPackage, lib }: 2 # if you add more versions make sure to add to all-packages.nix 3 let 4 versions = lib.importJSON ./versions.json; 5 latestVersion = lib.last (builtins.sort lib.versionOlder (builtins.attrNames versions)); 6 escapeVersion = builtins.replaceStrings [ "." ] [ "_" ]; 7 8 packages = lib.mapAttrs' 9 (version: value: { 10 name = "minecraft-server_${escapeVersion version}"; 11 - value = callPackage ./derivation.nix { inherit (value) version url sha1; }; 12 }) 13 versions; 14 in
··· 1 + { callPackage, lib, javaPackages }: 2 # if you add more versions make sure to add to all-packages.nix 3 let 4 versions = lib.importJSON ./versions.json; 5 + 6 latestVersion = lib.last (builtins.sort lib.versionOlder (builtins.attrNames versions)); 7 escapeVersion = builtins.replaceStrings [ "." ] [ "_" ]; 8 + 9 + getJavaVersion = v: (builtins.getAttr "openjdk${toString v}" javaPackages.compiler).headless; 10 11 packages = lib.mapAttrs' 12 (version: value: { 13 name = "minecraft-server_${escapeVersion version}"; 14 + value = callPackage ./derivation.nix { 15 + inherit (value) version url sha1; 16 + jre_headless = getJavaVersion (if value.javaVersion == null then 8 else value.javaVersion); # versions <= 1.6 will default to 8 17 + }; 18 }) 19 versions; 20 in
+8
pkgs/games/minecraft-server/update.py
··· 55 for download_name, download_info in self.get_manifest()["downloads"].items() 56 } 57 58 def get_server(self) -> Optional[Download]: 59 """ 60 If the version has a server download available, return the Download ··· 138 139 for version, server in servers.items(): 140 server["version"] = latest_major_releases[version].id 141 return servers 142 143
··· 55 for download_name, download_info in self.get_manifest()["downloads"].items() 56 } 57 58 + def get_java_version(self) -> Any: 59 + """ 60 + Return the java version specified in a version's manifest, if it is 61 + present. Versions <= 1.6 do not specify this. 62 + """ 63 + return self.get_manifest().get("javaVersion", {}).get("majorVersion", None) 64 + 65 def get_server(self) -> Optional[Download]: 66 """ 67 If the version has a server download available, return the Download ··· 145 146 for version, server in servers.items(): 147 server["version"] = latest_major_releases[version].id 148 + server["javaVersion"] = latest_major_releases[version].get_java_version() 149 return servers 150 151
+34 -17
pkgs/games/minecraft-server/versions.json
··· 2 "1.18": { 3 "url": "https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar", 4 "sha1": "125e5adf40c659fd3bce3e66e67a16bb49ecc1b9", 5 - "version": "1.18.1" 6 }, 7 "1.17": { 8 "url": "https://launcher.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar", 9 "sha1": "a16d67e5807f57fc4e550299cf20226194497dc2", 10 - "version": "1.17.1" 11 }, 12 "1.16": { 13 "url": "https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar", 14 "sha1": "1b557e7b033b583cd9f66746b7a9ab1ec1673ced", 15 - "version": "1.16.5" 16 }, 17 "1.15": { 18 "url": "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar", 19 "sha1": "bb2b6b1aefcd70dfd1892149ac3a215f6c636b07", 20 - "version": "1.15.2" 21 }, 22 "1.14": { 23 "url": "https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar", 24 "sha1": "3dc3d84a581f14691199cf6831b71ed1296a9fdf", 25 - "version": "1.14.4" 26 }, 27 "1.13": { 28 "url": "https://launcher.mojang.com/v1/objects/3737db93722a9e39eeada7c27e7aca28b144ffa7/server.jar", 29 "sha1": "3737db93722a9e39eeada7c27e7aca28b144ffa7", 30 - "version": "1.13.2" 31 }, 32 "1.12": { 33 "url": "https://launcher.mojang.com/v1/objects/886945bfb2b978778c3a0288fd7fab09d315b25f/server.jar", 34 "sha1": "886945bfb2b978778c3a0288fd7fab09d315b25f", 35 - "version": "1.12.2" 36 }, 37 "1.11": { 38 "url": "https://launcher.mojang.com/v1/objects/f00c294a1576e03fddcac777c3cf4c7d404c4ba4/server.jar", 39 "sha1": "f00c294a1576e03fddcac777c3cf4c7d404c4ba4", 40 - "version": "1.11.2" 41 }, 42 "1.10": { 43 "url": "https://launcher.mojang.com/v1/objects/3d501b23df53c548254f5e3f66492d178a48db63/server.jar", 44 "sha1": "3d501b23df53c548254f5e3f66492d178a48db63", 45 - "version": "1.10.2" 46 }, 47 "1.9": { 48 "url": "https://launcher.mojang.com/v1/objects/edbb7b1758af33d365bf835eb9d13de005b1e274/server.jar", 49 "sha1": "edbb7b1758af33d365bf835eb9d13de005b1e274", 50 - "version": "1.9.4" 51 }, 52 "1.8": { 53 "url": "https://launcher.mojang.com/v1/objects/b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd/server.jar", 54 "sha1": "b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd", 55 - "version": "1.8.9" 56 }, 57 "1.7": { 58 "url": "https://launcher.mojang.com/v1/objects/4cec86a928ec171fdc0c6b40de2de102f21601b5/server.jar", 59 "sha1": "4cec86a928ec171fdc0c6b40de2de102f21601b5", 60 - "version": "1.7.9" 61 }, 62 "1.6": { 63 "url": "https://launcher.mojang.com/v1/objects/050f93c1f3fe9e2052398f7bd6aca10c63d64a87/server.jar", 64 "sha1": "050f93c1f3fe9e2052398f7bd6aca10c63d64a87", 65 - "version": "1.6.4" 66 }, 67 "1.5": { 68 "url": "https://launcher.mojang.com/v1/objects/f9ae3f651319151ce99a0bfad6b34fa16eb6775f/server.jar", 69 "sha1": "f9ae3f651319151ce99a0bfad6b34fa16eb6775f", 70 - "version": "1.5.2" 71 }, 72 "1.4": { 73 "url": "https://launcher.mojang.com/v1/objects/2f0ec8efddd2f2c674c77be9ddb370b727dec676/server.jar", 74 "sha1": "2f0ec8efddd2f2c674c77be9ddb370b727dec676", 75 - "version": "1.4.7" 76 }, 77 "1.3": { 78 "url": "https://launcher.mojang.com/v1/objects/3de2ae6c488135596e073a9589842800c9f53bfe/server.jar", 79 "sha1": "3de2ae6c488135596e073a9589842800c9f53bfe", 80 - "version": "1.3.2" 81 }, 82 "1.2": { 83 "url": "https://launcher.mojang.com/v1/objects/d8321edc9470e56b8ad5c67bbd16beba25843336/server.jar", 84 "sha1": "d8321edc9470e56b8ad5c67bbd16beba25843336", 85 - "version": "1.2.5" 86 } 87 }
··· 2 "1.18": { 3 "url": "https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar", 4 "sha1": "125e5adf40c659fd3bce3e66e67a16bb49ecc1b9", 5 + "version": "1.18.1", 6 + "javaVersion": 17 7 }, 8 "1.17": { 9 "url": "https://launcher.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar", 10 "sha1": "a16d67e5807f57fc4e550299cf20226194497dc2", 11 + "version": "1.17.1", 12 + "javaVersion": 16 13 }, 14 "1.16": { 15 "url": "https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar", 16 "sha1": "1b557e7b033b583cd9f66746b7a9ab1ec1673ced", 17 + "version": "1.16.5", 18 + "javaVersion": 8 19 }, 20 "1.15": { 21 "url": "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar", 22 "sha1": "bb2b6b1aefcd70dfd1892149ac3a215f6c636b07", 23 + "version": "1.15.2", 24 + "javaVersion": 8 25 }, 26 "1.14": { 27 "url": "https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar", 28 "sha1": "3dc3d84a581f14691199cf6831b71ed1296a9fdf", 29 + "version": "1.14.4", 30 + "javaVersion": 8 31 }, 32 "1.13": { 33 "url": "https://launcher.mojang.com/v1/objects/3737db93722a9e39eeada7c27e7aca28b144ffa7/server.jar", 34 "sha1": "3737db93722a9e39eeada7c27e7aca28b144ffa7", 35 + "version": "1.13.2", 36 + "javaVersion": 8 37 }, 38 "1.12": { 39 "url": "https://launcher.mojang.com/v1/objects/886945bfb2b978778c3a0288fd7fab09d315b25f/server.jar", 40 "sha1": "886945bfb2b978778c3a0288fd7fab09d315b25f", 41 + "version": "1.12.2", 42 + "javaVersion": 8 43 }, 44 "1.11": { 45 "url": "https://launcher.mojang.com/v1/objects/f00c294a1576e03fddcac777c3cf4c7d404c4ba4/server.jar", 46 "sha1": "f00c294a1576e03fddcac777c3cf4c7d404c4ba4", 47 + "version": "1.11.2", 48 + "javaVersion": 8 49 }, 50 "1.10": { 51 "url": "https://launcher.mojang.com/v1/objects/3d501b23df53c548254f5e3f66492d178a48db63/server.jar", 52 "sha1": "3d501b23df53c548254f5e3f66492d178a48db63", 53 + "version": "1.10.2", 54 + "javaVersion": 8 55 }, 56 "1.9": { 57 "url": "https://launcher.mojang.com/v1/objects/edbb7b1758af33d365bf835eb9d13de005b1e274/server.jar", 58 "sha1": "edbb7b1758af33d365bf835eb9d13de005b1e274", 59 + "version": "1.9.4", 60 + "javaVersion": 8 61 }, 62 "1.8": { 63 "url": "https://launcher.mojang.com/v1/objects/b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd/server.jar", 64 "sha1": "b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd", 65 + "version": "1.8.9", 66 + "javaVersion": 8 67 }, 68 "1.7": { 69 "url": "https://launcher.mojang.com/v1/objects/4cec86a928ec171fdc0c6b40de2de102f21601b5/server.jar", 70 "sha1": "4cec86a928ec171fdc0c6b40de2de102f21601b5", 71 + "version": "1.7.9", 72 + "javaVersion": 8 73 }, 74 "1.6": { 75 "url": "https://launcher.mojang.com/v1/objects/050f93c1f3fe9e2052398f7bd6aca10c63d64a87/server.jar", 76 "sha1": "050f93c1f3fe9e2052398f7bd6aca10c63d64a87", 77 + "version": "1.6.4", 78 + "javaVersion": null 79 }, 80 "1.5": { 81 "url": "https://launcher.mojang.com/v1/objects/f9ae3f651319151ce99a0bfad6b34fa16eb6775f/server.jar", 82 "sha1": "f9ae3f651319151ce99a0bfad6b34fa16eb6775f", 83 + "version": "1.5.2", 84 + "javaVersion": null 85 }, 86 "1.4": { 87 "url": "https://launcher.mojang.com/v1/objects/2f0ec8efddd2f2c674c77be9ddb370b727dec676/server.jar", 88 "sha1": "2f0ec8efddd2f2c674c77be9ddb370b727dec676", 89 + "version": "1.4.7", 90 + "javaVersion": null 91 }, 92 "1.3": { 93 "url": "https://launcher.mojang.com/v1/objects/3de2ae6c488135596e073a9589842800c9f53bfe/server.jar", 94 "sha1": "3de2ae6c488135596e073a9589842800c9f53bfe", 95 + "version": "1.3.2", 96 + "javaVersion": null 97 }, 98 "1.2": { 99 "url": "https://launcher.mojang.com/v1/objects/d8321edc9470e56b8ad5c67bbd16beba25843336/server.jar", 100 "sha1": "d8321edc9470e56b8ad5c67bbd16beba25843336", 101 + "version": "1.2.5", 102 + "javaVersion": null 103 } 104 }
+1 -1
pkgs/top-level/all-packages.nix
··· 30810 30811 minecraft = callPackage ../games/minecraft { }; 30812 30813 - inherit (import ../games/minecraft-server { inherit callPackage lib; }) 30814 minecraft-server_1_2 30815 minecraft-server_1_3 30816 minecraft-server_1_4
··· 30810 30811 minecraft = callPackage ../games/minecraft { }; 30812 30813 + inherit (import ../games/minecraft-server { inherit callPackage lib javaPackages; }) 30814 minecraft-server_1_2 30815 minecraft-server_1_3 30816 minecraft-server_1_4