Files
dotfiles/common/optional/x86-64-v3/patches/cuda/propagated-build-output-arrays.patch
T
Richie d317060926
treefmt / nix fmt (pull_request) Successful in 2s
build_systems / prebuild-common-x86-64-v3 (pull_request) Successful in 21s
build_systems / build-portal-1 (pull_request) Successful in 18s
test ebook search / test-ebook-search (pull_request) Successful in 1m6s
build_systems / build-bob (pull_request) Successful in 1m58s
build_systems / build-rhapsody-in-green (pull_request) Failing after 38m40s
build_systems / build-jeeves (pull_request) Successful in 8h2m34s
build_systems / build-brain (pull_request) Failing after 12h0m0s
more patches
2026-10-02 16:26:10 -04:00

45 lines
1.9 KiB
Diff

Subject: [PATCH] Preserve structured CUDA output arrays
The multiple-outputs hook now accepts arrays. The old compatibility export
collapses include and lib into one array element, breaking indirect expansion.
Keep the array and iterate over each output when propagating to out.
--- a/buildRedistHook.bash
+++ b/buildRedistHook.bash
@@ -23,9 +23,6 @@
postInstallCheckHooks+=(checkCudaNonEmptyOutputs)
nixLog "added checkCudaNonEmptyOutputs to postInstallCheckHooks"
-
- preFixupHooks+=(fixupPropagatedBuildOutputsForMultipleOutputs)
- nixLog "added fixupPropagatedBuildOutputsForMultipleOutputs to preFixupHooks"
postFixupHooks+=(fixupCudaPropagatedBuildOutputsToOut)
nixLog "added fixupCudaPropagatedBuildOutputsToOut to postFixupHooks"
@@ -193,16 +190,6 @@
return 0
}
-# TODO(@connorbaker): https://github.com/NixOS/nixpkgs/issues/323126.
-# _multioutPropagateDev() currently expects a space-separated string rather than an array.
-# NOTE: Because _multioutPropagateDev is a postFixup hook, we correct it in preFixup.
-fixupPropagatedBuildOutputsForMultipleOutputs() {
- nixLog "converting propagatedBuildOutputs to a space-separated string"
- # shellcheck disable=SC2124
- export propagatedBuildOutputs="${propagatedBuildOutputs[@]}"
- return 0
-}
-
# The multiple outputs setup hook only propagates build outputs to dev.
# We want to propagate them to out as well, in case the user interpolates
# the package into a string -- in such a case, the dev output is not selected
@@ -217,7 +204,7 @@
mkdir -p "${out:?}/nix-support"
# NOTE: We must use printWords to ensure the output is a single line.
- for output in $propagatedBuildOutputs; do
+ for output in "${propagatedBuildOutputs[@]}"; do
# Propagate the other components to the out output
nixLog "adding ${!output:?} to propagatedBuildInputs of ${out:?}"
printWords "${!output:?}" >>"${out:?}/nix-support/propagated-build-inputs"