Subject: Re: Reprotest fails to run due to missing execute bit

From: Vagrant Cascadian <[email-masked]>
Date: Fri, 28 Feb 2025 13:50:23 -0800

On 2025-02-28, Lars-Dominik Braun wrote:
>> 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.

Good hint! It was switched to pyproject-build-system in
d3bad46f990fbd884ca114dddd5af0eae434aecc ... and reverting that commit
does get it running again!

I have had a git bisect running in the background for days now to try
and identify the commit, as most of the builds fail, but can stop that
now! *sigh*

> 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

Will try to wrap my head around that and get it fixed upstream...

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

Will try it! Thanks!

live well,
  vagrant