From c4d4a899bf70067c72708deefe9049b3cef52521 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Tue, 6 Jan 2026 11:42:51 +0100 Subject: [PATCH 1/6] glslang: only enable shared builds for non-static hosts Signed-off-by: Marcin Serwin --- pkgs/by-name/gl/glslang/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/gl/glslang/package.nix b/pkgs/by-name/gl/glslang/package.nix index e62d8596d31c..ea9cbc57b14a 100644 --- a/pkgs/by-name/gl/glslang/package.nix +++ b/pkgs/by-name/gl/glslang/package.nix @@ -39,7 +39,9 @@ stdenv.mkDerivation rec { jq ]; - cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; + cmakeFlags = [ + (lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) + ]; postPatch = '' cp --no-preserve=mode -r "${spirv-tools.src}" External/spirv-tools From c110fbdba85eba5ba211f4e47222e8113c2bb01b Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Tue, 6 Jan 2026 11:42:51 +0100 Subject: [PATCH 2/6] glslang: use spirv-tools from nixpkgs Signed-off-by: Marcin Serwin --- pkgs/by-name/gl/glslang/package.nix | 32 ++++++++--------------------- 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/pkgs/by-name/gl/glslang/package.nix b/pkgs/by-name/gl/glslang/package.nix index ea9cbc57b14a..09d650f67660 100644 --- a/pkgs/by-name/gl/glslang/package.nix +++ b/pkgs/by-name/gl/glslang/package.nix @@ -26,12 +26,6 @@ stdenv.mkDerivation rec { "dev" ]; - # These get set at all-packages, keep onto them for child drvs - passthru = { - spirv-tools = spirv-tools; - spirv-headers = spirv-headers; - }; - nativeBuildInputs = [ cmake python3 @@ -39,28 +33,18 @@ stdenv.mkDerivation rec { jq ]; - cmakeFlags = [ - (lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) + propagatedBuildInputs = [ + spirv-tools + spirv-headers ]; - postPatch = '' - cp --no-preserve=mode -r "${spirv-tools.src}" External/spirv-tools - ln -s "${spirv-headers.src}" External/spirv-tools/external/spirv-headers - ''; + cmakeFlags = [ + (lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) + (lib.cmakeBool "BUILD_EXTERNAL" false) + (lib.cmakeBool "ALLOW_EXTERNAL_SPIRV_TOOLS" true) + ]; - # This is a dirty fix for lib/cmake/SPIRVTargets.cmake:51 which includes this directory postInstall = '' - mkdir -p $dev/include/External - moveToOutput lib/pkgconfig "''${!outputDev}" - moveToOutput lib/cmake "''${!outputDev}" - ''; - - # Fix the paths in .pc, even though it's unclear if these .pc are really useful. - postFixup = '' - substituteInPlace $dev/lib/pkgconfig/*.pc \ - --replace-fail '=''${prefix}//' '=/' \ - --replace-fail "includedir=$dev/$dev" "includedir=$dev" - # add a symlink for backwards compatibility ln -s $bin/bin/glslang $bin/bin/glslangValidator ''; From 8f18ecfe81e1fa1a9cbd0c5b363fffa8975069df Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Tue, 6 Jan 2026 12:04:05 +0100 Subject: [PATCH 3/6] glslang: switch to finalAttrs pattern --- pkgs/by-name/gl/glslang/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/gl/glslang/package.nix b/pkgs/by-name/gl/glslang/package.nix index 09d650f67660..7a6bc8db8f66 100644 --- a/pkgs/by-name/gl/glslang/package.nix +++ b/pkgs/by-name/gl/glslang/package.nix @@ -9,14 +9,14 @@ spirv-headers, spirv-tools, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "glslang"; version = "16.1.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "glslang"; - rev = version; + rev = finalAttrs.version; hash = "sha256-cEREniYgSd62mnvKaQkgs69ETL5pLl5Gyv3hKOtSv3w="; }; @@ -50,10 +50,10 @@ stdenv.mkDerivation rec { ''; meta = { - inherit (src.meta) homepage; + inherit (finalAttrs.src.meta) homepage; description = "Khronos reference front-end for GLSL and ESSL"; license = lib.licenses.asl20; platforms = lib.platforms.unix; maintainers = [ lib.maintainers.ralith ]; }; -} +}) From 9ab760a94fe7ed28e9e20275b0bf6df30685985d Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Tue, 6 Jan 2026 12:04:05 +0100 Subject: [PATCH 4/6] glslang: drop unused nativeBuildInputs Signed-off-by: Marcin Serwin --- pkgs/by-name/gl/glslang/package.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/by-name/gl/glslang/package.nix b/pkgs/by-name/gl/glslang/package.nix index 7a6bc8db8f66..0e1da5e5a81d 100644 --- a/pkgs/by-name/gl/glslang/package.nix +++ b/pkgs/by-name/gl/glslang/package.nix @@ -2,9 +2,7 @@ lib, stdenv, fetchFromGitHub, - bison, cmake, - jq, python3, spirv-headers, spirv-tools, @@ -29,8 +27,6 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake python3 - bison - jq ]; propagatedBuildInputs = [ From 1358848933851395cc6ae81c6931e7f1532f78fb Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Tue, 6 Jan 2026 12:54:38 +0100 Subject: [PATCH 5/6] glslang: change rev to tag Signed-off-by: Marcin Serwin --- pkgs/by-name/gl/glslang/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/gl/glslang/package.nix b/pkgs/by-name/gl/glslang/package.nix index 0e1da5e5a81d..5eadb09b215f 100644 --- a/pkgs/by-name/gl/glslang/package.nix +++ b/pkgs/by-name/gl/glslang/package.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "KhronosGroup"; repo = "glslang"; - rev = finalAttrs.version; + tag = finalAttrs.version; hash = "sha256-cEREniYgSd62mnvKaQkgs69ETL5pLl5Gyv3hKOtSv3w="; }; From 77ea24c325569e50ca9b17574e02d95ceda59260 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Tue, 6 Jan 2026 18:53:40 +0100 Subject: [PATCH 6/6] glslang: add throwing aliases for removed passthru packages Signed-off-by: Marcin Serwin --- pkgs/by-name/gl/glslang/package.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/by-name/gl/glslang/package.nix b/pkgs/by-name/gl/glslang/package.nix index 5eadb09b215f..b0fcf1bf56f5 100644 --- a/pkgs/by-name/gl/glslang/package.nix +++ b/pkgs/by-name/gl/glslang/package.nix @@ -6,6 +6,7 @@ python3, spirv-headers, spirv-tools, + config, }: stdenv.mkDerivation (finalAttrs: { pname = "glslang"; @@ -45,6 +46,14 @@ stdenv.mkDerivation (finalAttrs: { ln -s $bin/bin/glslang $bin/bin/glslangValidator ''; + passthru = lib.optionalAttrs config.allowAliases { + # Added 2026-01-06, https://github.com/NixOS/nixpkgs/pull/477412 + spirv-tools = throw "'glslang' no longer pins to specific 'spirv-tools'"; + + # Added 2026-01-06, https://github.com/NixOS/nixpkgs/pull/477412 + spirv-headers = throw "'glslang' no longer pins to specific 'spirv-headers'"; + }; + meta = { inherit (finalAttrs.src.meta) homepage; description = "Khronos reference front-end for GLSL and ESSL";