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

From: Vagrant Cascadian <[email-masked]>
Date: Sat, 01 Mar 2025 14:10:31 -0800

On 2025-02-28, Vagrant Cascadian wrote:
> 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...

Still should do this at some point...

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

Pushed as:

2558392803663f4381fa9c09a53d329b719152bd gnu: reprotest: Add phase fixing executable bit on virt files.

Thanks for your help!

live well,
  vagrant