@@ -82,6 +82,104 @@ The NixOS Facter module will attempt to do the following:
82
82
We continue to add to and improve [nixos-facter-modules]. Our eventual goal is to replace much if not all of the
83
83
functionality currently provided by [nixos-hardware] and [nixos-generate-config].
84
84
85
+ ## Introspection and debugging
86
+
87
+ You might be asking yourself:
88
+
89
+ > This is cool and all that, but how do I know what changes ` nixos-facter ` will be making to my system closure???
90
+
91
+ And you would be right to be concerned about just applying it without a way of understanding its impact.
92
+
93
+ That is why we have added the following options for introspecting how ` nixos-facter ` is affecting a system closure.
94
+
95
+ ### ` nvd `
96
+
97
+ You can output a [ nvd diff] of the system closure with and without ` nixos-facter ` enabled by running
98
+ ` nix run .#nixosConfigurations.<hostname>.config.facter.debug.nvd ` :
99
+
100
+ ``` shell
101
+ ❯ nix run .# nixosConfigurations.basic.config.facter.debug.nvd
102
+ <<< /nix/store/fqbia5p8hfnyzxipfjmzxn8v3b69mjvs-nixos-system-nixos-24.11.20240831.12228ff
103
+ >>> /nix/store/ijkh9sq03y72pfrjvncrsrhwh7g6k8q0-nixos-system-nixos-24.11.20240831.12228ff
104
+ Added packages:
105
+ [A.] # 01 X-Reload-Triggers-systemd-networkd <none>
106
+ [A.] # 02 X-Restart-Triggers-systemd-networkd <none>
107
+ [A.] # 03 X-Restart-Triggers-systemd-resolved <none>
108
+ [A.] # 04 etc-systemd-networkd.conf <none>
109
+ [A.] # 05 etc-systemd-resolved.conf <none>
110
+ [A.] # 06 graphics-driver.conf <none>
111
+ [A.] # 07 graphics-drivers <none>
112
+ [A.] # 08 hwdata 0.385
113
+ [A.] # 09 libXfixes 6.0.1
114
+ [A.] # 10 libXxf86vm 1.1.5
115
+ [A.] # 11 libdrm 2.4.122
116
+ [A.] # 12 libpciaccess 0.18.1
117
+ [A.] # 13 libxshmfence 1.3.2
118
+ [A.] # 14 llvm 18.1.8-lib
119
+ [A.] # 15 lm-sensors 3.6.0
120
+ [A.] # 16 mesa 24.2.1, 24.2.1-drivers
121
+ [A.] # 17 unit 99-ethernet-default-dhcp.network, 99-wireless-client-dhcp.network
122
+ [A.] # 18 unit-systemd-network-wait-online-.service <none>
123
+ [A.] # 19 unit-systemd-networkd-wait-online.service <none>
124
+ [A.] # 20 unit-systemd-networkd.service <none>
125
+ [A.] # 21 unit-systemd-networkd.socket <none>
126
+ [A.] # 22 unit-systemd-resolved.service <none>
127
+ [A.] # 23 vulkan-loader 1.3.283.0
128
+ [A.] # 24 wayland 1.23.0
129
+ [A.] # 25 xcb-util-keysyms 0.4.1
130
+ Removed packages:
131
+ [R.] # 1 X-Restart-Triggers-resolvconf <none>
132
+ [R-] # 2 dhcpcd 10.0.6
133
+ [R.] # 3 dhcpcd.conf <none>
134
+ [R-] # 4 openresolv 3.13.2
135
+ [R.] # 5 unit-dhcpcd.service <none>
136
+ [R.] # 6 unit-network-setup.service <none>
137
+ [R.] # 7 unit-resolvconf.service <none>
138
+ [R.] # 8 unit-script-network-setup-start <none>
139
+ Closure size: 562 -> 581 (55 paths added, 36 paths removed, delta +19, disk usage +700.6MiB).
140
+ ```
141
+
142
+ ### ` nix-diff `
143
+
144
+ You can output a [ nix-diff] of the system closure with and without ` nixos-facter ` enabled by running
145
+ ` nix run .#nixosConfigurations.<hostname>.config.facter.debug.nix-diff ` :
146
+
147
+ ``` shell
148
+ ❯ nix run .# nixosConfigurations.basic.config.facter.debug.nix-diff
149
+ - /nix/store/fqbia5p8hfnyzxipfjmzxn8v3b69mjvs-nixos-system-nixos-24.11.20240831.12228ff:{out}
150
+ + /nix/store/ijkh9sq03y72pfrjvncrsrhwh7g6k8q0-nixos-system-nixos-24.11.20240831.12228ff:{out}
151
+ • The input derivation named ` boot.json` differs
152
+ - /nix/store/zcmdy29f5di6rrfkkld3x773q1d7c1bv-boot.json.drv:{out}
153
+ + /nix/store/j0wxsmw6fxgzd59pdcljkpq430jbk8jn-boot.json.drv:{out}
154
+ • The input derivation named ` initrd-linux-6.6.48` differs
155
+ - /nix/store/3z3jgifv3rj5wrh4cx23gzc9hlrwrxwj-initrd-linux-6.6.48.drv:{out}
156
+ + /nix/store/ds7pcp97k33p93z460b5vzrii02jjkcf-initrd-linux-6.6.48.drv:{out}
157
+ • The input derivation named ` initrd-nixos.conf` differs
158
+ - /nix/store/y458hw08d5hv2bcf295fv9wvbsfvprrq-initrd-nixos.conf.drv:{out}
159
+ + /nix/store/989v278ws16mnvlx6fwsa925vgx9a0ia-initrd-nixos.conf.drv:{out}
160
+ • The environments do not match:
161
+ text=' '
162
+ virtio_balloon
163
+ virtio_console
164
+ virtio_rng
165
+ virtio_gpu
166
+ bochs
167
+ dm_mod
168
+ ' '
169
+ • The input derivation named ` linux-6.6.48-modules-shrunk` differs
170
+ - /nix/store/dk2xshi6hr85wjyia60nizahl2rq31sz-linux-6.6.48-modules-shrunk.drv:{out}
171
+ + /nix/store/xxk67p9wy7hxq33gd1mfz5dqcsm2mhsr-linux-6.6.48-modules-shrunk.drv:{out}
172
+ • The environments do not match:
173
+ rootModules=' '
174
+ virtio_net virtio_pci virtio_mmio virtio_blk 9p 9pnet_virtio uhci_hcd ata_piix floppy virtio_blk virtio_pci ext2 ext4 autofs tpm-tis tpm-crb efivarfs ahci sata_nv sata_via sata_sis sata_uli ata_piix pata_marvell nvme sd_mod sr_mod mmc_block uhci_hcd ehci_hcd ehci_pci ohci_hcd ohci_pci xhci_hcd xhci_pci usbhid hid_generic hid_lenovo hid_apple hid_roccat hid_logitech_hidpp hid_logitech_dj hid_microsoft hid_cherry hid_corsair pcips2 atkbd i8042 rtc_cmos virtio_balloon virtio_console virtio_rng virtio_gpu bochs dm_mod
175
+ ' '
176
+ • Skipping environment comparison
177
+ • Skipping environment comparison
178
+ ...
179
+ ...
180
+ ...
181
+ ```
182
+
85
183
[ NixOS configuration ] : https://nixos.org/manual/nixos/stable/#sec-configuration-syntax
86
184
[ detected architecture ] : https://github.com/numtide/nixos-facter-modules/blob/main/modules/nixos/system.nix
87
185
[ detected virtualisation ] : https://github.com/numtide/nixos-facter-modules/blob/main/modules/nixos/virtualisation.nix
@@ -91,3 +189,5 @@ The NixOS Facter module will attempt to do the following:
91
189
[ nixos-facter-modules ] : https://github.com/numtide/nixos-facter-modules
92
190
[ nixos-hardware ] : https://github.com/NixOS/nixos-hardware
93
191
[ nixos-generate-config ] : https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/tools/nixos-generate-config.pl
192
+ [ nvd diff ] : https://khumba.net/projects/nvd/
193
+ [ nix-diff ] : https://github.com/Gabriella439/nix-diff
0 commit comments