~ruther/guix-local

977caf32ef4fbb08f56e412d1394e946cd96776e — Nicolas Graves 9 months ago 9a40c51
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>
1 files changed, 5 insertions(+), 4 deletions(-)

M guix/build/pyproject-build-system.scm
M guix/build/pyproject-build-system.scm => guix/build/pyproject-build-system.scm +5 -4
@@ 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/.