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 <sharlatanus@gmail.com>
This commit is contained in:
Nicolas Graves 2025-06-19 09:58:51 +02:00 committed by Sharlatan Hellseher
parent 9abb1ffe7d
commit 75614b830b
No known key found for this signature in database
GPG key ID: 76D727BFF62CD2B5

View file

@ -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/.