channel.nix: Use filterSource to exclude unnecessary files from nixpkgs
Currently, if you try to build a NixOS config including channel.nix, e.g.: nix-build -I nixpkgs=. -I nixos-config=nixos/modules/installer/cd-dvd/installation-cd-minimal.nix nixos -A config.system.build.isoImage twice in a row, you end up with two different build results. This is caused by the 'result' symlink of the first build affecting the channel contents of the second build. If we use filterSource with a predicate that ignores the 'result' symlinks, the problem is gone. Do the same thing for VIM/Emacs swap/backup files to avoid even more 'spurious' rebuilds. Additionally, filter out the '.git' directory at the same time, as we 'rm -rf' it from the result anyway. This avoids a considerable amount of unnecessary file I/O copying and deleting the .git directory.
parent
872a15a0
Please register or sign in to comment