guix_mirror_bot pushed a commit to branch python-team in repository guix. commit 2d89598ef5d282803fb478de98b5194cbf3bccd3 Author: Nicolas Graves <ngra...@ngraves.fr> AuthorDate: Thu Jun 19 09:58:51 2025 +0200
build-system/pyproject: Avoid PEP427 substitution on binary files. In some rare cases, the dest-path can be an elf-file, which are unreadable by substitute*, leading to an error instead of just continuing which makes more sense in this case. * guix/build-system/pyproject.scm (check): Guard substitution attempt with basic readability guarantees. Signed-off-by: Sharlatan Hellseher <sharlata...@gmail.com> --- guix/build/pyproject-build-system.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/guix/build/pyproject-build-system.scm b/guix/build/pyproject-build-system.scm index 1fa610faa9..1ca91701c3 100644 --- a/guix/build/pyproject-build-system.scm +++ b/guix/build/pyproject-build-system.scm @@ -218,10 +218,11 @@ builder.build_wheel(sys.argv[3], config_settings=config_settings)" (lambda (file) (chmod file #o755) ;; PEP 427 recommends that installers rewrite - ;; this odd shebang. - (substitute* file - (("#!python") - (string-append "#!" python "/bin/python")))) + ;; this odd shebang, but avoid the binary case. + (unless (elf-file? file) + (substitute* file + (("#!python") + (string-append "#!" python "/bin/python"))))) (find-files destination)))) ;; Data can be contained in arbitrary directory structures. Most ;; commonly it is used for share/.