From cb730cf239b855b1dfab54e0b7598ad294a718ab Mon Sep 17 00:00:00 2001 From: Andrew Childs Date: Mon, 4 Jul 2022 17:46:13 +0900 Subject: [PATCH] nixpkgs-basic-release-checks: check for case-insensitive path conflicts --- pkgs/top-level/nixpkgs-basic-release-checks.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/top-level/nixpkgs-basic-release-checks.nix b/pkgs/top-level/nixpkgs-basic-release-checks.nix index 28f8cf332977..e2b81b20c5b0 100644 --- a/pkgs/top-level/nixpkgs-basic-release-checks.nix +++ b/pkgs/top-level/nixpkgs-basic-release-checks.nix @@ -19,6 +19,14 @@ pkgs.runCommand "nixpkgs-release-checks" { src = nixpkgs; buildInputs = [nix]; } exit 1 fi + # Make sure that no paths collide on case-preserving or case-insensitive filesysytems. + conflictingPaths=$(find $src | awk '{ print $1 " " tolower($1) }' | sort -k2 | uniq -D -f 1 | cut -d ' ' -f 1) + if [[ -n $conflictingPaths ]]; then + echo "Files in nixpkgs must not vary only by case" + echo "The offending paths: $conflictingPaths" + exit 1 + fi + src2=$TMPDIR/foo cp -rd $src $src2