···2828 useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit || (sparseCheckout != []);
2929 # We prefer fetchzip in cases we don't need submodules as the hash
3030 # is more stable in that case.
3131- fetcher = if useFetchGit then fetchgit else fetchzip.override { withUnzip = false; };
3131+ fetcher =
3232+ if useFetchGit then fetchgit
3333+ # fetchzip may not be overridable when using external tools, for example nix-prefetch
3434+ else if fetchzip ? override then fetchzip.override { withUnzip = false; }
3535+ else fetchzip;
3236 privateAttrs = lib.optionalAttrs private {
3337 netrcPhase = ''
3438 if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then