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

From: Vagrant Cascadian <[email-masked]>
Date: Thu, 07 Mar 2024 12:45:34 -0800

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.

live well,
  vagrant