guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Unreproducible “guix pack -f docker” because config.scm-builder


From: Ludovic Courtès
Subject: Re: Unreproducible “guix pack -f docker” because config.scm-builder
Date: Fri, 05 Feb 2021 11:09:07 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Hi,

zimoun <zimon.toutoune@gmail.com> skribis:

> then the sysconfdir is set to /usr/local/etc because it is the default.
> And so it leads to subtle differences really hard to guess.  I think it
> is worth to add one sentence or footnote at the end of the section
> «Running Guix Before It Is Installed», right after:
>
>         Note that ./pre-inst-env guix pull does not upgrade the local
>         source tree; it simply updates the ~/.config/guix/current
>         symlink (see Invoking guix pull). Run git pull instead if you
>         want to upgrade your local source tree.
>
> Something like: «Note that ’guix pull’ preserves the settings of the host
> Guix, for instance ’sysconfdir’, and by default the GNU standards set
> ’prefix’ to ’/usr/local/’ and ’sysconfdir’ to ’$prefix/etc’, whereas
> regular Guix uses ’--sysconfdir=/etc/’.»
>
> WDYT?

As often, I have mixed feelings: we would end up +/- duplicating the
Standards in the manual, possibly even without citing the primary source
(I could be a Wikipedian :-)).  So to me that’s not great.

OTOH, as you write, letting people stumble upon this kind of issue is
not an option, either.

So I guess you can propose a patch and let someone else review it.  :-)

>> You did find other differences eventually though, right?
>
> The produced tarballs have the same Guix hash, i.e., all the same
> inputs, but not the same outputs, compare with commit b9a54aa:

[...]

> --- 
> /tmp/docker-meary/4ca83868d5e98cb06179a2a7372afe029c10d43bdc9fbfcc5771b89da74889b8/layer.tar
> +++ 
> /tmp/docker-pfiuh02/4ca83868d5e98cb06179a2a7372afe029c10d43bdc9fbfcc5771b89da74889b8/layer.tar
> ├── file list
> │ @@ -823,17 +823,17 @@
>
> [...]
>
> │ --r-x… 29960 
> gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/libexec/getconf/POSIX_V6_LP64_OFF64
>
> [...]
>
> │ +hr-x…     0 
> gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/libexec/getconf/POSIX_V6_LP64_OFF64

Looks like tar made this file a hard link in one case and not in the
other.  This is weird because we don’t ask it to create hard links
(there’s even a comment in (guix scripts pack)).

Is this docker image the result of the same derivation?  Could you try
building that derivation on different machines?  (You can copy the .drv
around with ‘guix copy’.)

Could you also show the output of:

  stat 
/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/libexec/getconf/POSIX_V6_LP64_OFF64

on the two machines you used?

I wonder if it could be that tar nowadays decides to preserve hard links
by default and one of your machine had this file hard-linked while the
other one didn’t.

Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]