summary refs log tree commit diff
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2022-07-11 20:05:04 -0500
committerGitHub <noreply@github.com>2022-07-11 20:05:04 -0500
commitd632b9657c7dd5c994e5cdf0bc71cb016f63efa1 (patch)
tree1065bf2d9e3c6e59b098b3f3adfb996ef1c2a95d
parentedd709dcfc0e15e6b8b50c0dc320a6d16654b6f2 (diff)
parentcb730cf239b855b1dfab54e0b7598ad294a718ab (diff)
Merge pull request #180091 from thefloweringash/check-case-insensitive-path-conflicts
nixpkgs-basic-release-checks: check for case-insensitive path conflicts
-rw-r--r--pkgs/top-level/nixpkgs-basic-release-checks.nix8
1 files changed, 8 insertions, 0 deletions
diff --git a/pkgs/top-level/nixpkgs-basic-release-checks.nix b/pkgs/top-level/nixpkgs-basic-release-checks.nix
index 28f8cf3329774..e2b81b20c5b08 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