I have a remote x86_64-linux server I rebuild remotely from my mac using the following command:
nixos-rebuild build --flake ".#remote" --target-host "operator@remote" --build-host "operator@remote" --use-remote-sudo --fast
I then compare the derivations using nix-diff to check exactly what changed before applying / switching to the new config. Today while looking at the nix-diff output it was 17k lines of these types of logs:
• The input derivation named `iptables-1.8.11` differs
- /nix/store/ssfr95ll5ivkbckm4zw6hhbw57pbr1ci-iptables-1.8.11.drv:{out}
+ /nix/store/0sbi7kjkinka3xavsccz4ncmgq0nlnp6-iptables-1.8.11.drv:{out}
• The builders do not match
- /nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37/bin/bash
+ /nix/store/l9k32vj2aczxw62134j1x0dsh569jz2l-bash-5.2p37/bin/bash
• The input derivation named `autoreconf-hook` differs
• These two derivations have already been compared
• The input derivation named `bash-5.2p37` differs
• These two derivations have already been compared
• The input derivation named `bison-3.8.2` differs
• These two derivations have already been compared
• The input derivation named `flex-2.6.4` differs
• These two derivations have already been compared
• The input derivation named `iptables-1.8.11.tar.xz` differs
• These two derivations have already been compared
• The input derivation named `libmnl-1.0.5` differs
• These two derivations have already been compared
• The input derivation named `libnetfilter_conntrack-1.1.0` differs
• These two derivations have already been compared
• The input derivation named `libnfnetlink-1.0.2` differs
• These two derivations have already been compared
• The input derivation named `libnftnl-1.2.9` differs
• These two derivations have already been compared
• The input derivation named `libpcap-1.10.5` differs
• These two derivations have already been compared
• The input derivation named `pkg-config-wrapper-0.29.2` differs
• These two derivations have already been compared
• The input derivation named `prune-libtool-files` differs
• These two derivations have already been compared
• The input derivation named `stdenv-linux` differs
• These two derivations have already been compared
• Skipping environment comparison
• The input derivation named `make-shell-wrapper-hook` differs
• These two derivations have already been compared
• The input derivation named `procps-4.0.4` differs
- /nix/store/plawfkpihcgy5z190qfygrl0kxr5mq06-procps-4.0.4.drv:{out}
+ /nix/store/pqk8sr6zsf3f3w0dgkdjrfamvzxn10r1-procps-4.0.4.drv:{out}
• The builders do not match
- /nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37/bin/bash
+ /nix/store/l9k32vj2aczxw62134j1x0dsh569jz2l-bash-5.2p37/bin/bash
• The set of input derivation names do not match:
- systemd-257.9
+ systemd-257.10
• The input derivation named `autoreconf-hook` differs
• These two derivations have already been compared
• The input derivation named `bash-5.2p37` differs
• These two derivations have already been compared
• The input derivation named `ncurses-6.5` differs
• These two derivations have already been compared
• The input derivation named `pkg-config-wrapper-0.29.2` differs
• These two derivations have already been compared
• The input derivation named `procps-ng-4.0.4.tar.xz` differs
- /nix/store/k3r1rrkslic94z789g9hayh4w4lhclay-procps-ng-4.0.4.tar.xz.drv:{out}
+ /nix/store/rir2aisy6idhcpxhcjkrs0z0cfc071pn-procps-ng-4.0.4.tar.xz.drv:{out}
• The builders do not match
- /nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37/bin/bash
+ /nix/store/l9k32vj2aczxw62134j1x0dsh569jz2l-bash-5.2p37/bin/bash
• The input derivation named `bash-5.2p37` differs
• These two derivations have already been compared
• The input derivation named `curl-8.14.1` differs
• These two derivations have already been compared
• The input derivation named `mirrors-list` differs
• These two derivations have already been compared
• The input derivation named `stdenv-linux` differs
• These two derivations have already been compared
• Skipping environment comparison
• The input derivation named `stdenv-linux` differs
• These two derivations have already been compared
• Skipping environment comparison
• The input derivation named `shadow-4.17.4` differs
- /nix/store/84ddwq3arian73j3qm8gf6skdwwhinxg-shadow-4.17.4.drv:{out}
+ /nix/store/x2gmzz72nqlq58pxgmhqvh80jvqyv2pi-shadow-4.17.4.drv:{out}
• The builders do not match
- /nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37/bin/bash
+ /nix/store/l9k32vj2aczxw62134j1x0dsh569jz2l-bash-5.2p37/bin/bash
Nixpkgs version did not change, looking at the new derivation: /nix/store/x00f3a3nw2bm0f9nx6chyy9wdwikai87-nixos-system-remote-24.11.20241012.54cce65.drv
the end, 24.11.20241012.54cce65 matches both the flake.lock and output of the following:
# cat /run/current-system/nixos-version
24.11.20241012.54cce65
Now my question is how do i go about finding out what caused the mismatch? Can i do anything to see just the ‘meaningful’ changes? Is it related to some change on the local mac machine where i evaluate the config before building on the remote? Any info would be much appreciated.