!LemuOOvbWqRXodtSsw:nixos.org

NixOS Reproducible Builds

461 Members
Report: https://reproducible.nixos.org Project progress: https://github.com/orgs/NixOS/projects/3096 Servers

Load older messages


SenderMessageTime
7 Oct 2024
@sofie:fsfe.orgSofieThere exists this issue in nixpkgs, but its closed https://github.com/NixOS/nixpkgs/issues/22985813:59:53
@emilazy:matrix.orgemily(do we have a channel for bootstrap?)13:59:55
@emilazy:matrix.orgemilyit would be good to do it14:00:05
@raboof:matrix.orgraboofthere's https://github.com/NixOS/nixpkgs/issues/72606 / https://github.com/NixOS/nixpkgs/pull/8554214:02:22
@emilazy:matrix.orgemily

yeah, it's this:

Well the main problem still remains. And it does not look like mrustc is catching up build a new version of rust. It's just not feasible to have this long chain of rust builds for maintainers with commodity hardware. There 28 version of rust that need to be build in order. Guix has long delays in updating to the lastest version. They had rust 1.39 until very recently. If you want to see this happen consider contributing to mrustc.

14:03:10
@raboof:matrix.orgraboof(https://github.com/NixOS/nixpkgs/issues/229858 was about the 'current' approach not being deterministic, but I don't think we've seen that problem anymore)14:03:13
@emilazy:matrix.orgemilypersonally, I don't think that objection makes sense if we're working towards switching to the minimal bootstrap by default14:03:25
@emilazy:matrix.orgemilywhich itself involves absurd grand tours of decades of software history14:03:36
* @raboof:matrix.orgraboof dreams about ca-derivations where the 'long-way' and 'shortcut' builds arrive at the same result, but that's probably too much work to be feasible :) )14:06:37
@emilazy:matrix.orgemilyI think as long as our rustc is reproducible that should already be the case14:07:55
@emilazy:matrix.orgemily it's more a matter of making contributors and Hydra do the whole rigmarole on staging 14:08:08
@emilazy:matrix.orgemilyanyway, hopefully we get an independent Rust implementation that can bootstrap rustc without a long chain at some point. e.g. https://notgull.net/announcing-dozer/ or something14:08:34
@emilazy:matrix.orgemilybut I'd really like to see a source-based bootstrap, personally14:08:49
@lehmanator:tchncs.deSam Lehman changed their profile picture.14:24:49
8 Oct 2024
@rina/:matrix.orgkait joined the room.11:00:40
9 Oct 2024
@chayleaf:matrix.pavluk.orgchayleaf joined the room.11:35:31
@chayleaf:matrix.pavluk.orgchayleaf can someone please look into https://github.com/NixOS/nixpkgs/issues/346419? the binary cache is missing a file compared to local build for some reason 12:26:01
@raboof:matrix.orgraboof interesting. testing with nix-build '<nixpkgs>' -A freeplane --check --keep-failed it seems to consistently not generate that file - do you think the nondeterminism is in the 'main' build or one of its inputs? 12:35:44
@chayleaf:matrix.pavluk.orgchayleafthe inputs are all cached, so its definitely the main build12:38:30
@chayleaf:matrix.pavluk.orgchayleaf

basically:

  • i haven't built any of the native dependencies myself, they are copied from the cache
  • the java dependencies from gradle are downloaded by url+hash pairs, so they can't really differ
12:44:20
@raboof:matrix.orgrabooftbh I don't see anything obvious in https://github.com/search?q=repo%3Afreeplane%2Ffreeplane%20globalBin&type=code that'd put that file there... maybe compare the builds logs between your local build and the one from the binary cache?12:55:56
@chayleaf:matrix.pavluk.orgchayleafthe tasks run in a different order, maybe parallel building is the issue?14:16:40
@chayleaf:matrix.pavluk.orgchayleaf if its consistently not generating that file for you, can you try setting enableParallelBuilding to false? 14:17:18
@raboof:matrix.orgraboofthen I indeed see it14:21:10
12 Oct 2024
@steeringwheelrules:tchncs.desteeringwheelrules joined the room.22:47:32
14 Oct 2024
@msanft:matrix.orgMoritz Sanft Hey, we think there's a substantial problem about Nix's store optimisations in conjunction with reproducible builds, and we'd like to hear some opinions on it.

Consider the following:
  1. 2 distinct Files in Nix store, same content (-> same NAR hash). But different permissions, except for executability (e.g. 600 and 644). NAR hash is still the same.

  2. nix store optimise looks for deduplication possibilities by matching on NAR hashes. Finds the 2 files and hardlinks one to the other.

  3. File is used in an archive, image, etc. (i.e. any file where the permissions influence its actual contents) - Now this file is inherently irreproducible.


I think that either Nix should not use NAR hashes for store optimisation, change NAR to reflect all permissions (which is unrealistic due to the impact of the change). But curious to hear what you think about this. We just tracked down a image reproducibility bug we fought with for a long time to this and it was very annoying to actually find this.
08:16:40
@msanft:matrix.orgMoritz Sanft CC @Paul Meyer (katexochen) 08:16:50
@sandro:supersandro.deSandro 🐧Isn't this a common thing that such files need to resolve hard links?15:47:15
@sandro:supersandro.deSandro 🐧I think we had such problems before, not necessarily with permissions though15:47:34
@raboof:matrix.orgraboofshouldn't files in the store typically have 444/555 permissions anyway? or is that different for hardlinks?15:49:47

Show newer messages


Back to Room ListRoom Version: 6