From 2f92fb2805775dd531694a3507e3d3c3caf57009 Mon Sep 17 00:00:00 2001 From: "Echo J." Date: Wed, 11 Mar 2026 08:01:09 +0000 Subject: [PATCH 1/3] CI: Re-add missing cmake dependency Fixes a silent ccache not found error (which prevents ccache from working) --- .github/workflows/build-linux.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index fceea68b3..745a3b9df 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -32,7 +32,7 @@ jobs: - name: Install system dependencies run: | sudo apt-get update - sudo apt-get install -y build-essential python3 ninja-build meson libsdl2-dev libgl-dev libglu1-mesa-dev libpthread-stubs0-dev + sudo apt-get install -y build-essential ccache python3 ninja-build meson libsdl2-dev libgl-dev libglu1-mesa-dev libpthread-stubs0-dev # Set a reasonable ccache size ccache -M 5G || true @@ -86,7 +86,7 @@ jobs: - name: Install system dependencies run: | sudo apt-get update - sudo apt-get install -y build-essential python3 ninja-build meson libsdl2-dev libgl-dev libglu1-mesa-dev libpthread-stubs0-dev + sudo apt-get install -y build-essential ccache python3 ninja-build meson libsdl2-dev libgl-dev libglu1-mesa-dev libpthread-stubs0-dev # Set a reasonable ccache size ccache -M 5G || true From e9fe7fee4d2451dcf69db1cf617da79a91eced32 Mon Sep 17 00:00:00 2001 From: "Echo J." Date: Wed, 11 Mar 2026 08:07:00 +0000 Subject: [PATCH 2/3] LevelRenderer: Add missing namespace for player variable This caused compile errors on my GitHub Actions instance --- Minecraft.Client/Rendering/LevelRenderer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Minecraft.Client/Rendering/LevelRenderer.cpp b/Minecraft.Client/Rendering/LevelRenderer.cpp index 01d97cf09..51436e959 100644 --- a/Minecraft.Client/Rendering/LevelRenderer.cpp +++ b/Minecraft.Client/Rendering/LevelRenderer.cpp @@ -743,7 +743,7 @@ int LevelRenderer::renderChunks(int from, int to, int layer, double alpha) #if 1 // 4J - cut down version, we're not using offsetted render lists, or a sorted chunk list, anymore mc->gameRenderer->turnOnLightLayer(alpha); // 4J - brought forward from 1.8.2 - shared_ptr player = mc->cameraTargetPlayer; + std::shared_ptr player = mc->cameraTargetPlayer; double xOff = player->xOld + (player->x - player->xOld) * alpha; double yOff = player->yOld + (player->y - player->yOld) * alpha; double zOff = player->zOld + (player->z - player->zOld) * alpha; From 9add609856be6343d046373a339e5b34aba34d9a Mon Sep 17 00:00:00 2001 From: Hadi Chokr Date: Wed, 11 Mar 2026 08:24:28 +0100 Subject: [PATCH 3/3] flake.nix: Fix Input and make it a real package --- .gitignore | 3 +++ flake.nix | 65 +++++++++++++++++++++++++++++++++--------------------- 2 files changed, 43 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index 0c9c8e1f4..185d7a0a8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,9 @@ builddir/ build_meson/ cmake-build-debug/ +# Nix flake output +result + # Final binaries and platform output /Linux/ /x64/ diff --git a/flake.nix b/flake.nix index dc9acfbb7..a4eaaf3a1 100644 --- a/flake.nix +++ b/flake.nix @@ -1,11 +1,11 @@ { - description = "4jcraft-nix dev shell"; + description = "4jcraft-nix package and dev shell"; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; }; - outputs = { nixpkgs, ... }: + outputs = { self, nixpkgs, ... }: let allSystems = [ "x86_64-linux" @@ -19,30 +19,45 @@ }); in { - devShells = forAllSystems ({ pkgs }: - let - libs = with pkgs; [ - openssl.dev - libGL - libGLU - sdl2 - zlib - ]; - packages = with pkgs; [ - clang - lld - cmake - gnumake - meson - ninja - pkg-config - ]; - in + packages = forAllSystems ({ pkgs }: { - default = pkgs.mkShell { - LD_LIBRARY_PATH = "/run/opengl-driver/lib"; - buildInputs = libs; - nativeBuildInputs = packages; + default = pkgs.clangStdenv.mkDerivation { + pname = "4jcraft"; + version = "0.1.0"; + + src = ./.; + + buildInputs = with pkgs; [ + openssl.dev + libGL + libGLU + SDL2 + zlib + ]; + + nativeBuildInputs = with pkgs; [ + lld + meson + ninja + pkg-config + python3 + makeWrapper + ]; + + installPhase = '' + mkdir -p $out/share/4jcraft + cp -r Minecraft.Client/. $out/share/4jcraft/ + + mkdir -p $out/bin + makeWrapper $out/share/4jcraft/Minecraft.Client \ + $out/bin/4jcraft \ + --run "cd $out/share/4jcraft" + ''; + + meta = { + description = "4JCraft"; + platforms = pkgs.lib.platforms.linux; + }; }; } );