!LemuOOvbWqRXodtSsw:nixos.org

NixOS Reproducible Builds

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

Load older messages


SenderMessageTime
5 May 2023
@rnhmjoj:maxwell.ydns.eu@rnhmjoj:maxwell.ydns.eu

xserver.conf

I think this is due to find order being essentially undefined behavior in nixos/modules/services/x11/xserver.nix. it needs a | sort to be deterministic.

16:55:05
@trofi:matrix.orgtrofi Yeah. I think find does filesystem order (and each does it's own ordering). 16:57:48
@delroth:delroth.netdelroth
In reply to @raboof:matrix.org
finally hacked in a way to get a report of just the runtime dependencies, https://reproducible.nixos.org/nixos-iso-minimal-runtime/ - no surprises there, the Linux BPF/BTF problem and Python remaining. Hoping to do the graphical iso later.
I worry a bit that this might be trading off false positives for false negatives. Let's say I have a derivation "drv" which does "cp ${otherdrv}/foo $out/foo" (unlikely, but in practice this could be e.g. gzip, or static linking, or some other kind of bundling). As far as I understand now the report wouldn't catch unreproducibility of "otherdrv", and it would happily say that "drv" is reproducible, which is irrelevant (since its "non-runtime dependencies" are what matters).
20:11:29
@delroth:delroth.netdelroth(Does that happen in practice in nixpkgs? I don't know, I wouldn't be surprised if it did. Is it a major issue? No clue either.)20:11:54
@raitobezarius:matrix.orgraitobezarius(Yes, it happens through trivial builders sometimes I suppose)20:15:21
@raitobezarius:matrix.orgraitobezarius(Though I'm okay if we keep both pieces ?)20:15:33
@delroth:delroth.netdelrothBy "both pieces" here do you mean "both types of report, runtime-only and all"? As long as people understand that the "runtime dependencies" report actually might exclude some runtime dependencies, then sure :)20:20:40
@delroth:delroth.netdelroth * By "both pieces" here do you mean "both types of report, runtime-only and all"? As long as people understand that the "runtime dependencies" report actually might accidentally miss some unreproducible runtime dependencies, then sure :)20:21:31
@raitobezarius:matrix.orgraitobezariuscorrect20:21:38
@raitobezarius:matrix.orgraitobezariusI guess we can probably engineer correctly the pages to reflect that20:21:51
@delroth:delroth.netdelrothI have experience with teams accidentally carving out a metric that doesn't actually cover the whole problem they want to solve, get the metric to the desired goal, then declare victory too early :) it's a pretty common pattern20:22:25
@delroth:delroth.netdelrothI actually wonder how the diff would look like between this definition of "runtime dependencies" and the definition of "runtime dependencies" you'd get by doing a cross-build of the same target and filtering by build vs. host system triple20:23:43
@delroth:delroth.netdelrothI suspect "different", but I don't know in which direction (better or worse), and I don't think it's practical or a useful metric either because it's not like the ISOs being shipped are built this way20:24:26
@raboof:matrix.orgraboofFor the ISO's there is a nice final check of actually rebuilding the iso on an ancient nixos version without substituters 😃. 20:24:50
@baloo_:matrix.orgbaloo
In reply to @delroth:delroth.net
I have experience with teams accidentally carving out a metric that doesn't actually cover the whole problem they want to solve, get the metric to the desired goal, then declare victory too early :) it's a pretty common pattern
Not that I disagree with the point, but ... having small victories along the way helps a ton with moral.
20:25:08
@genericnerdyusername:matrix.orgGenericNerdyUsername
In reply to @raboof:matrix.org
For the ISO's there is a nice final check of actually rebuilding the iso on an ancient nixos version without substituters 😃.
why not just use --offline?
20:25:17
@delroth:delroth.netdelroth
In reply to @baloo_:matrix.org
Not that I disagree with the point, but ... having small victories along the way helps a ton with moral.
oh absolutely, but if that's the goal you could just do a filter which hides 50% of the unreproducible targets at random and focus on that :P my main concern isn't having "partial" milestones, it's that it's not clear to me how much the set that was picked actually reflects its goal (no build packages, but all host packages that get shipped to the user)
20:27:18
@baloo_:matrix.orgbaloofair20:27:47
@baloo_:matrix.orgbalookeep in mind the end goal I guess. But I won't diminish the value of compromises.20:28:22
@delroth:delroth.netdelrothmy tribute to the reproducibility gods in exchange for this discussion: https://github.com/NixOS/nixpkgs/pull/230186 and https://github.com/google/libphonenumber/pull/2921 (to be backported if it gets merged) (Trying to keep my nitpicking / contributions ratio < 1 :P)21:07:39
6 May 2023
@genericnerdyusername:matrix.orgGenericNerdyUsernameim working on fixing the gegl unreprodicibility, should I use sed or a tool dedicated to xml? I dont want to increase the closure size just for some text substitution, but i dont want it to break every update23:35:49
7 May 2023
@genericnerdyusername:matrix.orgGenericNerdyUsernamewent for patching the source instead00:56:54
@genericnerdyusername:matrix.orgGenericNerdyUsernamehttps://github.com/NixOS/nixpkgs/pull/23042901:04:36
@lotte:chir.rs@lotte:chir.rs joined the room.07:41:00
@rnhmjoj:maxwell.ydns.eu@rnhmjoj:maxwell.ydns.eu

if anyone wants to make a PR the libnvme issue seems to be fixed with just:

--- a/pkgs/os-specific/linux/libnvme/default.nix
+++ b/pkgs/os-specific/linux/libnvme/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Ddocs=man"
-    "-Ddocs-build=true"
+    "-Ddocs-build=false"
   ];
 
   doCheck = true;
08:19:25
@rnhmjoj:maxwell.ydns.eu@rnhmjoj:maxwell.ydns.eu *

if anyone wants to make a PR, the libnvme issue seems to be fixed with just:

--- a/pkgs/os-specific/linux/libnvme/default.nix
+++ b/pkgs/os-specific/linux/libnvme/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Ddocs=man"
-    "-Ddocs-build=true"
+    "-Ddocs-build=false"
   ];
 
   doCheck = true;
08:19:32
@delroth:delroth.netdelroththat's more of a workaround than a fix... having the docs built would probably still be desirable19:56:00
@delroth:delroth.netdelrothah nvm, I misunderstood -- looks like -Ddocs-build=false just uses pre-built manpages bundled in the source repo19:58:56
@delroth:delroth.netdelrothbut I think libnvme is already fixed anyway by using the source epoch?19:59:10
8 May 2023
@rnhmjoj:maxwell.ydns.eu@rnhmjoj:maxwell.ydns.euI think so, but it's quite useless upstream stops bundling the manual pages05:50:34

Show newer messages


Back to Room ListRoom Version: 6