Hi Ludo, On Fri, 05 Feb 2021 at 11:09, Ludovic Courtès <l...@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