From 19c06baf6c4bde49fbfb592d64ccac6ca69950d7 Mon Sep 17 00:00:00 2001 From: Rick van Schijndel Date: Thu, 18 Nov 2021 23:04:17 +0100 Subject: [PATCH 1/5] mindustry: unbreak by building with jdk15 Fixes: https://github.com/NixOS/nixpkgs/issues/128929 --- pkgs/games/mindustry/default.nix | 4 +--- pkgs/top-level/all-packages.nix | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix index 02ae1bfe9260..63892330b448 100644 --- a/pkgs/games/mindustry/default.nix +++ b/pkgs/games/mindustry/default.nix @@ -191,8 +191,6 @@ stdenv.mkDerivation rec { platforms = platforms.x86_64; # Hash mismatch on darwin: # https://github.com/NixOS/nixpkgs/pull/105590#issuecomment-737120293 - broken = stdenv.isDarwin - # does not work with any maintained java version (https://github.com/Anuken/Mindustry/issues/5114) - || true; + broken = stdenv.isDarwin; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 24b91291488a..934ff45541d1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -30290,8 +30290,8 @@ with pkgs; methane = callPackage ../games/methane { }; - mindustry = callPackage ../games/mindustry { }; - mindustry-wayland = callPackage ../games/mindustry { glew = glew-egl; }; + mindustry = callPackage ../games/mindustry { jdk = adoptopenjdk-hotspot-bin-15; }; + mindustry-wayland = callPackage ../games/mindustry { jdk = adoptopenjdk-hotspot-bin-15; glew = glew-egl; }; mindustry-server = callPackage ../games/mindustry { enableClient = false; From 7824302dd034e7e08088f5dda982aacde63aa3b4 Mon Sep 17 00:00:00 2001 From: Rick van Schijndel Date: Thu, 18 Nov 2021 23:05:38 +0100 Subject: [PATCH 2/5] mindustry: mitigate issue with missing glew Fixes: https://github.com/NixOS/nixpkgs/issues/109798 --- pkgs/games/mindustry/default.nix | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix index 63892330b448..92436128437c 100644 --- a/pkgs/games/mindustry/default.nix +++ b/pkgs/games/mindustry/default.nix @@ -129,6 +129,15 @@ stdenv.mkDerivation rec { rm Arc/backends/backend-sdl/libs/linux64/libsdl-arc*.so '' + cleanupMindustrySrc; + # Propagate glew to prevent it from being cleaned up. + # Since a jar is a compressed archive, nix can't figure out that the dependency is actually in there, + # and will assume that it's not actually needed. + # This can cause issues. + # See https://github.com/NixOS/nixpkgs/issues/109798. + propagatedBuildInputs = lib.optionals enableClient [ + glew.out + ]; + buildInputs = lib.optionals enableClient [ SDL2 glew @@ -157,9 +166,11 @@ stdenv.mkDerivation rec { '' + optionalString enableClient '' gradle --offline --no-daemon jnigenBuild -Pbuildversion=${buildVersion} gradle --offline --no-daemon sdlnatives -Pdynamic -Pbuildversion=${buildVersion} + glewlib=${lib.getLib glew}/lib/libGLEW.so + sdllib=${lib.getLib SDL2}/lib/libSDL2.so patchelf ../Arc/backends/backend-sdl/libs/linux64/libsdl-arc*.so \ - --add-needed ${glew.out}/lib/libGLEW.so \ - --add-needed ${SDL2}/lib/libSDL2.so + --add-needed $glewlib \ + --add-needed $sdllib gradle --offline --no-daemon desktop:dist -Pbuildversion=${buildVersion} '' + optionalString enableServer '' gradle --offline --no-daemon server:dist -Pbuildversion=${buildVersion} From a77943c99ae0a2c6cc465d084aec0ca269ba5b91 Mon Sep 17 00:00:00 2001 From: Rick van Schijndel Date: Tue, 23 Nov 2021 23:22:40 +0100 Subject: [PATCH 3/5] mindustry-server: use jdk15 to build server --- pkgs/top-level/all-packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 934ff45541d1..79780f508414 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -30294,6 +30294,7 @@ with pkgs; mindustry-wayland = callPackage ../games/mindustry { jdk = adoptopenjdk-hotspot-bin-15; glew = glew-egl; }; mindustry-server = callPackage ../games/mindustry { + jdk = adoptopenjdk-hotspot-bin-15; enableClient = false; enableServer = true; }; From 4179df352ba3d2dabf7039b795bebf5068283c28 Mon Sep 17 00:00:00 2001 From: Rick van Schijndel Date: Tue, 23 Nov 2021 23:34:50 +0100 Subject: [PATCH 4/5] mindustry: fix eval error due to #119444 The PR https://github.com/NixOS/nixpkgs/pull/119444 broke the build for mindustry even further. This patch fixes that again so it evals and builds properly. --- pkgs/games/mindustry/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix index 92436128437c..09507954670d 100644 --- a/pkgs/games/mindustry/default.nix +++ b/pkgs/games/mindustry/default.nix @@ -4,7 +4,7 @@ , copyDesktopItems , fetchFromGitHub , gradle_6 -, jdk11 +, jdk , perl # for arc @@ -87,8 +87,7 @@ let popd ''; - jdk = jdk11; - gradle = (gradle_6.override (old: { java = jdk11; })); + gradle = (gradle_6.override (old: { java = jdk; })); # fake build to pre-download deps into fixed-output derivation deps = stdenv.mkDerivation { From 9e58e392a463a5e0c6585e179746b20f138054f7 Mon Sep 17 00:00:00 2001 From: Rick van Schijndel Date: Tue, 23 Nov 2021 23:35:38 +0100 Subject: [PATCH 5/5] mindustry: format mindustry in top-level/all-packages nicely --- pkgs/top-level/all-packages.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 79780f508414..482ccac677f9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -30290,8 +30290,13 @@ with pkgs; methane = callPackage ../games/methane { }; - mindustry = callPackage ../games/mindustry { jdk = adoptopenjdk-hotspot-bin-15; }; - mindustry-wayland = callPackage ../games/mindustry { jdk = adoptopenjdk-hotspot-bin-15; glew = glew-egl; }; + mindustry = callPackage ../games/mindustry { + jdk = adoptopenjdk-hotspot-bin-15; + }; + mindustry-wayland = callPackage ../games/mindustry { + jdk = adoptopenjdk-hotspot-bin-15; + glew = glew-egl; + }; mindustry-server = callPackage ../games/mindustry { jdk = adoptopenjdk-hotspot-bin-15;