mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-10-30 16:10:36 +00:00
buildPythonPackage and buildPythonApplication now default to
__structuredAttrs = true, so makeWrapperArgs reaches wrapPythonPrograms
as a real bash array. Elements are no longer word-split or
shell-expanded, which breaks three common patterns:
- several arguments packed into one string, such as
"--prefix PATH : ${...}", which makeWrapper rejects with
"makeWrapper doesn't understand the arg ..."
- "\${gappsWrapperArgs[@]}" or "\${qtWrapperArgs[@]}" as list
elements, which also fail the build
- build-time shell variables ($out, $PYTHONPATH, $GI_TYPELIB_PATH, ...)
and shell quoting inside elements. These build fine but end up as
literal strings in the wrapper, e.g. beets got
export GI_TYPELIB_PATH='$GI_TYPELIB_PATH', and gam's --run lines
became single-quoted commands that abort the wrapper.
Split packed strings into one element per argument, append the
gapps/qt wrapper args in preFixup, use placeholder "out" instead of
$out, move other build-time variables into preFixup, and drop the
now-literal quotes.
Also fix the makeWrapperArgs example in the python propagated-inputs
warning.
Assisted-by: Claude Code (Claude Opus 5.5)
1.1 KiB
1.1 KiB