diff options
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/fetchgit/default.nix | 14 | ||||
-rw-r--r-- | pkgs/build-support/fetchgit/tests.nix | 16 |
2 files changed, 19 insertions, 11 deletions
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix index f516c3d5a03..1fec0c88747 100644 --- a/pkgs/build-support/fetchgit/default.nix +++ b/pkgs/build-support/fetchgit/default.nix @@ -15,7 +15,7 @@ in { url, rev ? "HEAD", md5 ? "", sha256 ? "", hash ? "", leaveDotGit ? deepClone , fetchSubmodules ? true, deepClone ? false , branchName ? null -, sparseCheckout ? "" +, sparseCheckout ? [] , nonConeMode ? false , name ? urlToName url rev , # Shell code executed after the file has been fetched @@ -55,13 +55,16 @@ in */ assert deepClone -> leaveDotGit; -assert nonConeMode -> (sparseCheckout != ""); +assert nonConeMode -> !(sparseCheckout == "" || sparseCheckout == []); if md5 != "" then throw "fetchgit does not support md5 anymore, please use sha256" else if hash != "" && sha256 != "" then throw "Only one of sha256 or hash can be set" else +# Added 2022-11-12 +lib.warnIf (builtins.isString sparseCheckout) + "Please provide directories/patterns for sparse checkout as a list of strings. Support for passing a (multi-line) string is deprecated and will be removed in the next release." stdenvNoCC.mkDerivation { inherit name; builder = ./builder.sh; @@ -79,7 +82,12 @@ stdenvNoCC.mkDerivation { else lib.fakeSha256; - inherit url rev leaveDotGit fetchLFS fetchSubmodules deepClone branchName sparseCheckout nonConeMode postFetch; + # git-sparse-checkout(1) says: + # > When the --stdin option is provided, the directories or patterns are read + # > from standard in as a newline-delimited list instead of from the arguments. + sparseCheckout = if builtins.isString sparseCheckout then sparseCheckout else builtins.concatStringsSep "\n" sparseCheckout; + + inherit url rev leaveDotGit fetchLFS fetchSubmodules deepClone branchName nonConeMode postFetch; postHook = if netrcPhase == null then null else '' ${netrcPhase} diff --git a/pkgs/build-support/fetchgit/tests.nix b/pkgs/build-support/fetchgit/tests.nix index 62fe3f77bbd..a18be65327b 100644 --- a/pkgs/build-support/fetchgit/tests.nix +++ b/pkgs/build-support/fetchgit/tests.nix @@ -12,10 +12,10 @@ name = "nix-source"; url = "https://github.com/NixOS/nix"; rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a"; - sparseCheckout = '' - src - tests - ''; + sparseCheckout = [ + "src" + "tests" + ]; sha256 = "sha256-g1PHGTWgAcd/+sXHo1o6AjVWCvC6HiocOfMbMh873LQ="; }; @@ -23,10 +23,10 @@ name = "nix-source"; url = "https://github.com/NixOS/nix"; rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a"; - sparseCheckout = '' - src - tests - ''; + sparseCheckout = [ + "src" + "tests" + ]; nonConeMode = true; sha256 = "sha256-FknO6C/PSnMPfhUqObD4vsW4PhkwdmPa9blNzcNvJQ4="; }; |