From 055f524a04e4c25d220eecea987eeace570824b9 Mon Sep 17 00:00:00 2001 From: Kirill Elagin Date: Sun, 25 May 2025 20:28:11 +0200 Subject: [PATCH] pixelorama: Pin Godot version --- pkgs/by-name/pi/pixelorama/package.nix | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pi/pixelorama/package.nix b/pkgs/by-name/pi/pixelorama/package.nix index 56e25323dc9c..2247cfd5c9d8 100644 --- a/pkgs/by-name/pi/pixelorama/package.nix +++ b/pkgs/by-name/pi/pixelorama/package.nix @@ -2,7 +2,7 @@ lib, stdenv, fetchFromGitHub, - godot_4, + godot_4_4, nix-update-script, }: @@ -16,7 +16,7 @@ let presets.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); - godot = godot_4; + godot = godot_4_4; in stdenv.mkDerivation (finalAttrs: { pname = "pixelorama"; @@ -35,6 +35,17 @@ stdenv.mkDerivation (finalAttrs: { godot ]; + # Pixelorama is tightly coupled to the version of Godot that it is meant to be built with, + # and Godot does not follow semver, they break things in minor releases. + preConfigure = '' + godot_ver="${lib.versions.majorMinor godot.version}" + godot_expected=$(sed -n -E 's@config/features=PackedStringArray\("([0-9]+\.[0-9]+)"\)@\1@p' project.godot) + [ "$godot_ver" == "$godot_expected" ] || { + echo "Expected Godot version: $godot_expected; found: $godot_ver" >&2 + exit 1 + } + ''; + buildPhase = '' runHook preBuild