Non-reproducible .go files

  • Open
  • quality assurance status badge
Details
7 participants
  • Brett Gilio
  • Leo Famulari
  • Ludovic Courtès
  • Tobias Geerinckx-Rice
  • mikadoZero
  • Ricardo Wurmus
  • zimoun
Owner
unassigned
Submitted by
mikadoZero
Severity
normal
Merged with
M
M
mikadoZero wrote on 21 Feb 2019 00:31
`guix challenge` - 41 packages differ
(address . bug-guix@gnu.org)
20190220233151.GA23130@z.z
Attachment: file
B
B
Brett Gilio wrote on 21 Feb 2019 00:51
(name . mikadoZero)(address . mikadozero@yandex.com)(address . 34597@debbugs.gnu.org)
87mumqhvcz.fsf@posteo.net
mikadoZero writes:

Toggle quote (2 lines)
> After running `guix challenge` there are some packages which differ from ones I have built locally.

Hi Mikado,

Unless I am mistaken this isn't truly a reportable bug. As you can see
in the guix challenge documentation
the purpose of challenge is to check for deterministic qualities in
reproducible packages. Right now, not all packages are reproducible as
the guix team is hard at work trying to find the best solution for
replacing binary seeds with something fully bootstrappable (see:
https://bootstrappable.org)

If you look, all of the packages you showed are related to the guix core
system, which means that you are not getting any non-deterministic
packages from the relevant /gnu package repositories, which is good.

I think this bug can probably be closed.

All the best,
Brett Gilio
L
L
Leo Famulari wrote on 21 Feb 2019 01:01
(name . mikadoZero)(address . mikadozero@yandex.com)(address . 34597@debbugs.gnu.org)
20190221000134.GB28504@jasmine.lan
On Wed, Feb 20, 2019 at 06:31:51PM -0500, mikadoZero wrote:
Toggle quote (2 lines)
> After running `guix challenge` there are some packages which differ from ones I have built locally.

Thanks!

Toggle quote (3 lines)
> `guix --version`:
> guix (GNU Guix) 34372d3905e17c880180f811e5b5f83e423e9025

There is also `guix describe` which allows others to completely
reproduce your environment.

Toggle quote (4 lines)
> /gnu/store/0yzw2jrpzf0f4gg2i3dqy80ddkgrgf5c-guix-cli contents differ:
> local hash: 0jamz4xnkh3rf10fz6f5dcs046h4jxiyqg7byrqbj2wqk7lq1mdl
> https://ci.guix.info/nar/gzip/0yzw2jrpzf0f4gg2i3dqy80ddkgrgf5c-guix-cli: 00rdkjc12xrd3jj41k32gcizd0kfz47f9g8pkixrp04mi5vxnp5n

[...]

So these are all parts of Guix itself. Can you compare a couple of these
non-reproducible pairs of files and reply with the differences here?

Some useful tools available from Guix are diffoscope and vbindiff.

Since they are all part of Guix and using Guile I think the issue will
be the same for all of them.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlxt6l4ACgkQJkb6MLrK
fwi0JA/+LEK/Ti7gcefUvrt/RcBAqSSRylGmfDRUSAZp26ZEdYD/gzuWpCclQnFL
8B88R8MjVB94lNlJmvE/MkSEDQqyMdDF653yuAgc/p++drbpqL4XeiV3nFFcHo15
u22+qMHghChuM02kfLHsOnt0k3+elV+QypS7Zt/x0g4GhWAjmAuSA8RkUmngWVTk
uTIYso0sA4rC9s6YkNYohP5/Y+oDGPBB3h+eG6fTfj3fpEmDbdJL3sWBMrN3/dfL
zCkpQ+nyX/tjMjAUupG2/FoQy49P316slmSDtR2js+ntG7/gEXk3i1O2bnCLJEyu
c7iynFdDtqmLazK34iOyzGPukaRSerReZXnpOwxd/WwKiqhFVItVUGNJGlrHPNU9
xKDNLb9n2yl/rLEzfMzMa2sESiwpluC4kfJRstkZqOHLTaMPCRk4qrnKyHZponn8
A8USC9uZlVebDlM0lbTm/vRrHTDdrKEJIbm13MXXl/rQLboXetlbHKd+1KYaj+lV
drcaxCn9szED8yIKAfyqPXz6zrebUaYqfsbZOBRTM+Cy3RqEWAZ/+KazKY05MqWc
Hw2dCzmw4Wn5YuBRuXmma4U4Hc7tt09N3m0GGc9VB11+9Y4U3ljrvvR+enj9YJ8+
agoHUYI8muiZ1fIpk7whn7YfXegot5PGcw5T/HdyQ76B7VgRXRI=
=UCjt
-----END PGP SIGNATURE-----


L
L
Leo Famulari wrote on 21 Feb 2019 01:04
(name . Brett Gilio)(address . brettg@posteo.net)
20190221000414.GC28504@jasmine.lan
On Wed, Feb 20, 2019 at 05:51:24PM -0600, Brett Gilio wrote:
Toggle quote (9 lines)
> Unless I am mistaken this isn't truly a reportable bug. As you can see
> in the guix challenge documentation
> https://www.gnu.org/software/guix/manual/en/html_node/Invoking-guix-challenge.html
> the purpose of challenge is to check for deterministic qualities in
> reproducible packages. Right now, not all packages are reproducible as
> the guix team is hard at work trying to find the best solution for
> replacing binary seeds with something fully bootstrappable (see:
> https://bootstrappable.org)

There are a few types of reproducibility that we'd like to implement in
Guix. There is the bootstrapping issue, as you mentioned. But we can
still seek to build packages reproducibly even while Guix is built on
the binary seeds. In most cases that bootstrapping strategy does not
affect the reproducibility of packages.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlxt6v4ACgkQJkb6MLrK
fwjyKA/+LfqhP/uv4LMdvofoAyLhXY5huxZ1R2nzL3SjEEOhKNP8Tscsa3U+Zdti
iQsKghSnZ9xaUIGAPIBaiVNHukTqWOB2BgyzIxl7EUWQ3uG6fum2eqEkxLX7w3tn
S58nsbzQlEKcMwzxHH+BGFcfFN+8336s9giu+HPZgHxXHKRd1DhOjAnEfQ0jMSqY
0LZKO0WJIf9KLe0nwpr2Lh9fL+/aUm2oa9I3tujWQ95Nu5EzZlo/8dYAG6JJbk/V
afb5dcYYXhBNYDoRnePwBjti+bmD5bZVJbIzYMW1OWTOX9X8Kb9kBd9sYcATyEp1
P4lL/K1OTMH8xOcBYGSb2+yG/spovnlt+e3t5D8LtXssPRNQUZtykSIsFqunN4fD
hiFNP4B7LliAHGNPhkmlPxqzHNTZRl+chhi9Ti4LrjbBmXdEUs0mQ8YjvE0vsHCE
5uVz3lxm1tq266NAscwA65A6IdDrMX3sN65jwG2x9kT5HwwtNfNvYs+ESUo24Nqv
HqGMKw+Zs/3zn8fVXkBR5GMgbz0V0jHTk/YwGLJEsnX/49HKGKoY2psO7NLkeEWc
29Rc2Gvnr4YsdZti5e+yRKN+l/7nfkWLVrrrp+rysmStua9n4pXoXngWGhWQIgy9
JE9KHbmIBfE23ZF2rVitGjCoN5tJt44mrr5WbRHFNisQzNWOGec=
=Q9eG
-----END PGP SIGNATURE-----


M
M
mikadoZero wrote on 21 Feb 2019 01:48
(address . 34597@debbugs.gnu.org)
20190221004806.GA25712@z.z
Two packages did not have guix in their name are:
guile-2.2.4
python-3.7.0

Thank you for referencing that documentation. I will take a look at it.
M
M
mikadoZero wrote on 21 Feb 2019 03:14
(address . 34597@debbugs.gnu.org)
20190221021453.GA28673@z.z
As requested.

Output from `guix describe`:

guix 34372d3
branch: master
commit: 34372d3905e17c880180f811e5b5f83e423e9025

Output from `diffoscope` for three different packages that `guix challenge` highlighted as differing:

--- /gnu/store/9z98cvjm7p7z21xdid1ryydxy5vyz6wr-python-3.7.0
+++ 9z98cvjm7p7z21xdid1ryydxy5vyz6wr-python-3.7.0
@@ -1 +1 @@
-type: directory
+type: file

--- /gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4
+++ 9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4
@@ -1 +1 @@
-type: directory
+type: file

--- /gnu/store/lpwrv02rljddp84km9md8i0820p55dmk-guix-system
+++ lpwrv02rljddp84km9md8i0820p55dmk-guix-system
@@ -1 +1 @@
-type: directory
+type: file
R
R
Ricardo Wurmus wrote on 21 Feb 2019 16:51
(name . Brett Gilio)(address . brettg@posteo.net)
87k1ht3zs6.fsf@elephly.net
Brett Gilio <brettg@posteo.net> writes:

Toggle quote (3 lines)
> mikadoZero writes:
>
>> After running `guix challenge` there are some packages which differ from ones I have built locally.
[…]
Toggle quote (2 lines)
> Unless I am mistaken this isn't truly a reportable bug.

I asked for these differences to be reported. When a package cannot be
built reproducibly we consider this a bug.

--
Ricardo
L
L
Leo Famulari wrote on 21 Feb 2019 21:40
(name . mikadoZero)(address . mikadozero@yandex.com)(address . 34597@debbugs.gnu.org)
20190221204032.GC19893@jasmine.lan
On Wed, Feb 20, 2019 at 09:14:53PM -0500, mikadoZero wrote:
Toggle quote (6 lines)
> --- /gnu/store/9z98cvjm7p7z21xdid1ryydxy5vyz6wr-python-3.7.0
> +++ 9z98cvjm7p7z21xdid1ryydxy5vyz6wr-python-3.7.0
> @@ -1 +1 @@
> -type: directory
> +type: file

I think maybe you compared the wrong things here. Both things being
compared should be directories, and then diffoscope would be able to
report the difference in their contents.

Maybe the second file is actually a compressed archive of a directory?
You can use `file 9z98cvjm7p7z21xdid1ryydxy5vyz6wr-python-3.7.0` to find
out.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlxvDMAACgkQJkb6MLrK
fwjEBA//UyaUwdBqZZWXKJVXddMnxCJZF8jCEHeJyAkW5kgs39y6ec6UI4AXj7wA
U+IVrGtyp3rT5RjZcm6oaOJb43WEJ5d/niPya4nxeOwWJcFjDRXNLLPfYiluv0Ia
1hdRdQwqRtOvGkU4CJ2h7dyz5kH+WfoEZXf0x94ZLPIF83CmeY4aXGTEFGAj/nSm
ZdIZmSrxtzUXVDF8LJGceNivCz4POml34IJZKmS0HtSNJ4Tbn+OX81KV0+HrxIs5
WPek+pCOfLkAZKjCdVD3uZSP12/62fte9624O0uceVjbVZ8/GuIdM6qLcr98VSDy
ZxDHmRlmJwIvqeo8nr64JPJTCMiCWviSe3Mfz++6VgKljcNfAfjPnlr47rXyOKlf
F1WgiJED8Zwx9QYp8LDb2m1SzUYRZmUza3xlgAPlzcDCynA4yQJZvuW4rVRy5EvT
T9V8K8yaD8/fkRf93P/B0K+t9Miw1IFo7kntgwbPiWyvSxyGINsnOHcixb0uXTkd
WHC3shhqr80ams+X38BThrNQOWPMiJJu5TDNKAP4Nucfk40z3BwYQNXqTj6o9/pg
VbCotPAznfUvhEzhNDLDH765X5guW/xK6lWjTKVRjeK/qsOA8Ffi8da54Pb7TKH/
oGfF8XUcSH5gv5hxIK+9pvW7UVw9qq8zVWoJ8xCg0hMUP4UTdv4=
=oBtk
-----END PGP SIGNATURE-----


M
M
mikadoZero wrote on 22 Feb 2019 17:59
(address . 34597@debbugs.gnu.org)
20190222165949.GA22492@z.z
Attached are diffs for three of the packages listed in the `guix challenge` output that were listed as differing.
Attachment: python-diff
Binary files /gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/lib/guile/2.2/ccache/ice-9/suspendable-ports.go and /tmp/guile/lib/guile/2.2/ccache/ice-9/suspendable-ports.go differ
Binary files /gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/lib/guile/2.2/ccache/ice-9/vlist.go and /tmp/guile/lib/guile/2.2/ccache/ice-9/vlist.go differ
Binary files /gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/lib/guile/2.2/ccache/srfi/srfi-19.go and /tmp/guile/lib/guile/2.2/ccache/srfi/srfi-19.go differ
Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/gnu/ci.go and /tmp/guix-cli/gnu/ci.go differ
Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/build.go and /tmp/guix-cli/guix/scripts/build.go differ
Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/challenge.go and /tmp/guix-cli/guix/scripts/challenge.go differ
Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/describe.go and /tmp/guix-cli/guix/scripts/describe.go differ
Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/import/pypi.go and /tmp/guix-cli/guix/scripts/import/pypi.go differ
Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/lint.go and /tmp/guix-cli/guix/scripts/lint.go differ
Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/offload.go and /tmp/guix-cli/guix/scripts/offload.go differ
Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/pack.go and /tmp/guix-cli/guix/scripts/pack.go differ
Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/processes.go and /tmp/guix-cli/guix/scripts/processes.go differ
Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/publish.go and /tmp/guix-cli/guix/scripts/publish.go differ
Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/substitute.go and /tmp/guix-cli/guix/scripts/substitute.go differ
Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/weather.go and /tmp/guix-cli/guix/scripts/weather.go differ
R
R
Ricardo Wurmus wrote on 22 Feb 2019 19:35
(name . mikadoZero)(address . mikadozero@yandex.com)(address . 34597@debbugs.gnu.org)
87o9733c4a.fsf@elephly.net
mikadoZero <mikadozero@yandex.com> writes:

Toggle quote (3 lines)
> Attached are diffs for three of the packages listed in the `guix
> challenge` output that were listed as differing.

Thank you, this is very helpful!

Toggle quote (11 lines)
> diff -ru --no-dereference /gnu/store/9z98cvjm7p7z21xdid1ryydxy5vyz6wr-python-3.7.0/lib/python3.7/site-packages/pip-10.0.1.dist-info/RECORD /tmp/python/lib/python3.7/site-packages/pip-10.0.1.dist-info/RECORD
> --- /gnu/store/9z98cvjm7p7z21xdid1ryydxy5vyz6wr-python-3.7.0/lib/python3.7/site-packages/pip-10.0.1.dist-info/RECORD 1969-12-31 19:00:01.000000000 -0500
> +++ /tmp/python/lib/python3.7/site-packages/pip-10.0.1.dist-info/RECORD 1970-01-01 00:00:01.000000000 -0500
> @@ -295,285 +295,285 @@
> ../../../bin/pip3,sha256=78NRTi33kWTTiOubADOTlPa85pTXmVhJrO-OdccUy3Q,270
> ../../../bin/pip3.7,sha256=78NRTi33kWTTiOubADOTlPa85pTXmVhJrO-OdccUy3Q,270
> pip-10.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
> -pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-37.pyc,,
> -pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-37.pyc,,
> -pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-37.pyc,,
> -pip/_vendor/html5lib/treebuilders/__pycache__/etree_lxml.cpython-37.pyc,,
[…]

This looks like the output is not ordered; maybe it’s the result of
readdir, which can return files in arbitrary order. We’ll need to find
the code responsible for generating these RECORD files and patch it to
sort the result of readdir.

On to Guile:

Toggle quote (4 lines)
> Binary files /gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/lib/guile/2.2/ccache/ice-9/suspendable-ports.go and /tmp/guile/lib/guile/2.2/ccache/ice-9/suspendable-ports.go differ
> Binary files /gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/lib/guile/2.2/ccache/ice-9/vlist.go and /tmp/guile/lib/guile/2.2/ccache/ice-9/vlist.go differ
> Binary files /gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/lib/guile/2.2/ccache/srfi/srfi-19.go and /tmp/guile/lib/guile/2.2/ccache/srfi/srfi-19.go differ

I wonder if this is related to non-deterministic behaviour of macro expansion…?

Toggle quote (13 lines)
> Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/gnu/ci.go and /tmp/guix-cli/gnu/ci.go differ
> Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/build.go and /tmp/guix-cli/guix/scripts/build.go differ
> Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/challenge.go and /tmp/guix-cli/guix/scripts/challenge.go differ
> Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/describe.go and /tmp/guix-cli/guix/scripts/describe.go differ
> Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/import/pypi.go and /tmp/guix-cli/guix/scripts/import/pypi.go differ
> Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/lint.go and /tmp/guix-cli/guix/scripts/lint.go differ
> Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/offload.go and /tmp/guix-cli/guix/scripts/offload.go differ
> Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/pack.go and /tmp/guix-cli/guix/scripts/pack.go differ
> Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/processes.go and /tmp/guix-cli/guix/scripts/processes.go differ
> Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/publish.go and /tmp/guix-cli/guix/scripts/publish.go differ
> Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/substitute.go and /tmp/guix-cli/guix/scripts/substitute.go differ
> Binary files /gnu/store/cz9pln04cax43rdd9x7k9l7wlldzm7k3-guix-cli/guix/scripts/weather.go and /tmp/guix-cli/guix/scripts/weather.go differ

These are all files relating to “guix pull”. You listed other outputs
that are the result of work performed by “guix pull”. I suspect that
there’s something wrong about the environment in which “guix pull”
operates.

--
Ricardo
L
L
Ludovic Courtès wrote on 4 Mar 2019 23:05
Non-reproducible .go files
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87zhqamh1l.fsf_-_@gnu.org
Hi,

Ricardo Wurmus <rekado@elephly.net> skribis:

Toggle quote (5 lines)
> These are all files relating to “guix pull”. You listed other outputs
> that are the result of work performed by “guix pull”. I suspect that
> there’s something wrong about the environment in which “guix pull”
> operates.

It may be this old Guile issue popping up:


Ludo’.
Z
Z
zimoun wrote on 19 Dec 2020 01:21
control message for bug #34597
(address . control@debbugs.gnu.org)
86im8ysl0o.fsf@gmail.com
retitle 34597 Non-reproducible .go files
quit
T
T
Tobias Geerinckx-Rice wrote on 18 May 2021 13:13
(no subject)
(address . control@debbugs.gnu.org)
87tun0wb0i.fsf@nckx
merge 34597 48487 48490
thanks
<3
S
S
Simon Tournier wrote on 17 Jan 18:14 +0100
control message for bug #68398
(address . control@debbugs.gnu.org)
8734uvubju.fsf@gmail.com
merge 68398 48490
quit
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 34597@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 34597
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch