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

Reply via email to