unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: zimoun <zimon.toutoune@gmail.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: Unreproducible “guix pack -f docker” because config.scm-builder
Date: Fri, 05 Feb 2021 18:22:10 +0100	[thread overview]
Message-ID: <86lfc2bfb1.fsf@gmail.com> (raw)
In-Reply-To: <87im766d30.fsf@gnu.org>

Hi Ludo,

On Fri, 05 Feb 2021 at 11:09, Ludovic Courtès <ludo@gnu.org> wrote:

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

I will. :-)


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

I have 2 machines running Debian and one running Ubuntu.  The 2 Debian
produces the same things.  Ubuntu not.


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

It was built with different derivations.  I mean the scenario where
Alice wants to rebuild what Bob did.

Now, let use the same derivation.  Some details in case I am doing
something wrong:

--8<---------------cut here---------------start------------->8---
$ echo Ubuntu

$ guix gc -D $(guix pack -f docker hello)
finding garbage collector roots...
[0 MiB] deleting
'/gnu/store/nkvlqwzvxdlhzlc7vhfcngxc19x2ay2f-docker-pack.tar.gz'
deleting `/gnu/store/trash'
deleting unused links...
  C-c C-c
 
$ guix gc -D $(guix pack -f docker hello -d)
finding garbage collector roots...
[0 MiB] deleting
'/gnu/store/323k33sfx869d0nkh69ary8sj6xiy4s4-docker-pack.tar.gz.drv'
deleting `/gnu/store/trash'
deleting unused links...
  C-c C-c
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
$ echo Debian

$ guix copy $(guix pack -f docker hello -d) --to=meary
guix copy: sending 1 store item (0 MiB) to '193.48.40.110'...
/gnu/store/323k33sfx869d0nkh69ary8sj6xiy4s4-docker-pack.tar.gz.drv
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
$ echo Ubuntu

$ guix build /gnu/store/323k33sfx869d0nkh69ary8sj6xiy4s4-docker-pack.tar.gz.drv
substitute: mise à jour des substituts depuis « https://ci.guix.gnu.org»... 100.0 %
La dérivation suivante sera compilée :
/gnu/store/323k33sfx869d0nkh69ary8sj6xiy4s4-docker-pack.tar.gz.drv                                                                   
construction de
/gnu/store/323k33sfx869d0nkh69ary8sj6xiy4s4-docker-pack.tar.gz.drv...
tar: Removing leading `/' from member names
tar: Removing leading `/' from hard link targets
construction de
/gnu/store/323k33sfx869d0nkh69ary8sj6xiy4s4-docker-pack.tar.gz.drv réussie
/gnu/store/nkvlqwzvxdlhzlc7vhfcngxc19x2ay2f-docker-pack.tar.gz  
--8<---------------cut here---------------end--------------->8---

So tar is appearing here… Hum?!  However, if I redo the same steps, it
does not.  Well, I do not like that…

Building on Ubuntu using the derivation from Debian gives the same image
as building on Ubuntu using the derivation from Ubuntu.

I thought the tools were captured by the commit: same commit, same
tools.  Well, I miss something…

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

First on Debian and second on Ubuntu

--8<---------------cut here---------------start------------->8---
$ stat /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/libexec/getconf/POSIX_V6_LP64_OFF64
  File: /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/libexec/getconf/POSIX_V6_LP64_OFF64
  Size: 29960           Blocks: 64         IO Block: 4096   regular file
Device: 801h/2049d      Inode: 8129616     Links: 5
Access: (0555/-r-xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-02-05 17:37:15.728728952 +0100
Modify: 1970-01-01 01:00:01.000000000 +0100
Change: 2020-06-17 12:40:06.389935679 +0200
Birth: -
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
$ stat /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/libexec/getconf/POSIX_V6_LP64_OFF64
Fichier : /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/libexec/getconf/POSIX_V6_LP64_OFF64
Taille : 29960       Blocs : 64         Blocs d'E/S : 4096   fichier
Périphérique : 814h/2068d       Inœud : 148900093   Liens : 1
Accès : (0555/-r-xr-xr-x)  UID : (    0/    root)   GID : (    0/ root)
Accès : 2021-02-05 17:46:05.537903382 +0100
Modif. : 1970-01-01 01:00:01.000000000 +0100
Changt : 2020-12-04 23:16:33.155711694 +0100
Créé : -
--8<---------------cut here---------------end--------------->8---
  


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

Wow, I thought that the same tar was used the one provided by Guix and
not by the host.  For sure the default tar are not the same on both
machine (v1.30 for Debian and v1.29 for Ubuntu).

What is the md5sum checksum of ’guix pack -f docker hello’ on Guix
System for commit b9a54aa?

Thanks for the help,
simon


  reply	other threads:[~2021-02-05 18:09 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20210116182957.31075-1-ludo@gnu.org>
2021-01-27 13:14 ` bug#45919: [PATCH 0/8] Exporting a manifest and channels from a profile Ludovic Courtès
2021-01-27 21:02   ` [bug#45919] " zimoun
2021-01-28 15:54     ` Ludovic Courtès
2021-02-01 22:37       ` Unreproducible “guix pack -f docker” because config.scm-builder zimoun
2021-02-02 14:48         ` zimoun
2021-02-02 18:12         ` Ludovic Courtès
2021-02-02 20:11           ` zimoun
2021-02-05 10:09             ` Ludovic Courtès
2021-02-05 17:22               ` zimoun [this message]
2021-02-06 21:46                 ` Ludovic Courtès
2021-02-08 18:44                   ` [PATCH] Fix unreproducible “guix pack -f docker” (hard link) zimoun
     [not found]                   ` <86lfbzad42.fsf@gmail.com>
2021-02-09  8:35                     ` Unreproducible “guix pack -f docker” because config.scm-builder Ludovic Courtès
2021-02-09  8:51                       ` zimoun
2021-01-28 17:57     ` [bug#45919] [PATCH 0/8] Exporting a manifest and channels from a profile Bengt Richter
2021-01-29 19:13       ` zimoun
2021-01-28 17:04   ` bug#45919: " Pierre Neidhardt
2021-01-29 17:57     ` [bug#45919] " Pierre Neidhardt
2021-01-29 18:57       ` zimoun
2021-01-29 21:51         ` Pierre Neidhardt
2021-01-30 14:31           ` zimoun
2021-01-30 21:23             ` bug#45919: " Ludovic Courtès
2021-01-31  5:08               ` Ryan Prior
2021-02-01 13:30                 ` Ludovic Courtès
2021-01-30 13:55       ` Ludovic Courtès
2021-01-31 17:26         ` Pierre Neidhardt
2021-02-01 13:25           ` Ludovic Courtès
2021-02-01 15:32             ` Pierre Neidhardt
2021-02-01 17:04               ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86lfc2bfb1.fsf@gmail.com \
    --to=zimon.toutoune@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).