Subject: Re: bug#69284: guix pull is not reproducible

From: Andrew Tropin <[email-masked]>
Date: Sat, 09 Mar 2024 11:40:39 +0300

On 2024-03-07 12:45, Vagrant Cascadian wrote:

> On 2024-02-20, Andrew Tropin wrote:
>> guix pull -C channels-lock.scm produces different profiles on different
>> machines.
>>
>> I executed the same command on a few different machines.
>> channels-lock.scm contains channels list with exact commit specified.
>>
>> --8<---------------cut here---------------start------------->8---
>> curl https://paste.sr.ht/~abcdw/5f18e9e5cc6cb243c84a3975eb4e6a46ed17d996 > channels-lock.scm
>> guix pull -C channels-lock.scm -p tmp
>> readlink tmp-1-link
>> --8<---------------cut here---------------end--------------->8---
>>
>> The output log on all machines starts similiar:
>> --8<---------------cut here---------------start------------->8---
>> Updating channel 'rde' from Git repository at 'https://git.sr.ht/~abcdw/rde'...
>> Authenticating channel 'rde', commits 257cebd to 2a0c7e9 (2304 new commits)...
>> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
>> Authenticating channel 'guix', commits 9edb3f6 to d264237 (69420 new commits)...
>> Building from these channels:
>>   guix      https://git.savannah.gnu.org/git/guix.git   d264237
>>   rde       https://git.sr.ht/~abcdw/rde        2a0c7e9
>> --8<---------------cut here---------------end--------------->8---
>>
>> --8<---------------cut here---------------start------------->8---
>> Updating channel 'rde' from Git repository at 'https://git.sr.ht/~abcdw/rde'...
>> Authenticating channel 'rde', commits 257cebd to 2a0c7e9 (2,304 new commits)...
>> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
>> Authenticating channel 'guix', commits 9edb3f6 to d264237 (2,382 new commits)...
>> Building from these channels:
>>   guix      https://git.savannah.gnu.org/git/guix.git   d264237
>>   rde       https://git.sr.ht/~abcdw/rde        2a0c7e9
>> --8<---------------cut here---------------end--------------->8---
>>
>> but resulting profile is different:
>> /gnu/store/w3qq81dzdj9wckcw8fpz5lv6ylhw1m2d-profile (local fresh guix system)
>> /gnu/store/c2i8iyqkc146ac2hqzy1v6zkqs82xypp-profile (debian 11)
>> /gnu/store/svg0is4iwvlg6mgi2rvpkngcccqcvhys-profile (debian 12)
>> /gnu/store/w3qq81dzdj9wckcw8fpz5lv6ylhw1m2d-profile (remote fresh guix system)
>>
>> The first guix pull takes from 25 to 50 minutes, which is really long
>> time.  However, due to irreproducibility, building the guix profile on
>> CI doesn't help to cut that time to some manageable numbers.
>
> Does passing --cores=1 help? I have found building guix (and other guile
> packages) on Debian had reproducibility issues frequently triggered by
> parallelism.

I don't think that hash of the profile depends on the building process
itself.  And it seems on the same system it returns the same result on
consequent rebuilds.  It seems something leaks from the environment.

-- 
Best regards,
Andrew Tropin