Subject: [bug#76602] Reprotest fails to run due to missing execute bit

From: Lars-Dominik Braun <[email-masked]>
Date: Fri, 28 Feb 2025 15:30:17 +0100

Hi,

> The reprotest version 0.7.21 included in guix v1.4.0 did have these
> files marked executable, but for some reason in recent versions (maybe
> changes in pyproject-build-system?), they are shipped without the
> execute bit set. I have not git bisected between all the versions of
> guix to see exactly where it starts failing.

my best guess is that the package previously used python-build-system
instead of pyproject-build-system. The latter basically builds a zip file
(wheel) of everything and extracts it to site-packages. Zip files don’t
include the +x bit and so it gets lost in the process.

I believe this is a bug in the package. It should either indirectly call
these files via the python3 executable or mark them as entry points[1],
so pyproject-build-system can put an executable into /bin.

[1] https://setuptools.pypa.io/en/latest/userguide/entry_point.html

> The attached patch marks the necessary files are executable with an
> added phase. Open to refactorring the patch, but my guile skills are
> quite limited and this works!

Perhaps (chmod file #o755) instead of (invoke …)? Otherwise should be
fine to get it working again.

Cheers,
Lars