NixOS Reproducible Builds | 541 Members | |
| Report: https://reproducible.nixos.org Project progress: https://github.com/orgs/NixOS/projects/30 | 122 Servers |
| Sender | Message | Time |
|---|---|---|
| 29 Nov 2024 | ||
| When the input path is different and the output is expected to be the same, e.g. when setting an unused environment variable | 17:10:36 | |
In reply to @raboof:matrix.org Except that it breaks CA derivations because if something varies on the input then the outPath varies, which means now you are varying the compiler args, which results in changes to the bits in the output (e.g because compiler args go into the binaries or the build id) where otherwise you would have bitwise identical outputs. So downstream packages then need to be rebuilt where otherwise they could have used the previous CA output. | 17:14:45 | |
| aah, so the theory would be that the args are hashed into the output somewhere before being 'interpreted' - yeah I suppose that could be. | 17:19:18 | |
| So it would be preferable to set it to a constant or a function of something which would not vary unless the output is going to vary anyway. | 17:20:41 | |
| a constant would violate the "must be different for each translation unit" requirement even more though | 17:22:15 | |
| but it'd be useful to find out what the impact of not specifying it at all like you suggested would be | 17:22:54 | |
| * but it'd be useful to find out what the impact of not specifying it at all would be like you suggested | 17:23:11 | |
In reply to @raboof:matrix.orgI haven’t seen anyone articulate why this is important though, I am wondering if it is bogus. I also wonder exactly how/whether it affects the build id as was suggested | 17:31:14 | |
| 18:30:27 | ||
| 30 Nov 2024 | ||
| raboof: the most significant lead I have for the rsync nonrepro is that the text section is different; and that a handful of symbols are different sizes. If I diff one of those symbols I find that it has extra code towards the end in my local build. | 09:15:03 | |
| It seems as-if I have a reproducible build locally though, so what is divergent is my local build vs what is in cache.nixos.org | 09:16:00 | |
| So I have another x86 machine, and the divergence with cache.nixos.org is not present there. Hardware difference? One's an old intel chip, another is a recent amd chip. | 10:31:20 | |
Diffing the config log shows that one machine is getting #define INET6 1 in the config.h and the other is not, from checking whether to enable ipv6. | 10:39:47 | |
| What does one do about this sort of non-reproducibility according to machine configuration (in this case ipv6 being disabled)? Is this a tractable problem? Will upstream care? Or is reproducibility only defined if we talk about machines having identical configuration? | 11:54:33 | |
| I think it makes sense to ask upstream whether this is intentional | 11:58:20 | |
| I'm writing an issue. | 11:58:29 | |
In reply to @rick:matrix.ciphernetics.nlhttps://github.com/RsyncProject/rsync/issues/675 | 11:59:59 | |
| Off topic: I enabled ipv6 to prove that this brings the builds into alignment (which it does), and immediately firefox is now hanging with 'firefox is not responding, force quit?', immediately making me remember why I had ipv6 disabled in the first place :( | 12:11:14 | |
| Uh, huh, check whether your network's IPv6 configuration is actually correct. I once had a rogue WAP announcing a prefix for instance which caused massive issues (though not FF hanging O.o) | 12:38:30 | |
| I wonder how a program in the sandbox would even know that IPv6 is disabled | 12:38:49 | |
| How did you disable that? | 12:38:52 | |
| Kernel command line ipv6.disable=1 | 12:39:03 | |
In reply to @atemu12:matrix.orgconfigure.sh does if (socket(AF_INET6, SOCK_STREAM, 0) < 0) | 12:39:58 | |