mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 15:03:28 +00:00
Merge pull request #200082 from panicgh/fetchgit-sparse-checkout
This commit is contained in:
commit
3a05360e53
@ -100,10 +100,10 @@ stdenv.mkDerivation {
|
||||
name = "hello";
|
||||
src = fetchgit {
|
||||
url = "https://...";
|
||||
sparseCheckout = ''
|
||||
directory/to/be/included
|
||||
another/directory
|
||||
'';
|
||||
sparseCheckout = [
|
||||
"directory/to/be/included"
|
||||
"another/directory"
|
||||
];
|
||||
sha256 = "0000000000000000000000000000000000000000000000000000";
|
||||
};
|
||||
}
|
||||
|
@ -580,6 +580,15 @@
|
||||
future Git update without notice.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>fetchgit</literal> fetcher supports sparse
|
||||
checkouts via the <literal>sparseCheckout</literal> option.
|
||||
This used to accept a multi-line string with
|
||||
directories/patterns to check out, but now requires a list of
|
||||
strings.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>openssh</literal> was updated to version 9.1,
|
||||
|
@ -191,6 +191,8 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
|
||||
|
||||
- The `fetchgit` fetcher now uses [cone mode](https://www.git-scm.com/docs/git-sparse-checkout/2.37.0#_internalscone_mode_handling) by default for sparse checkouts. [Non-cone mode](https://www.git-scm.com/docs/git-sparse-checkout/2.37.0#_internalsnon_cone_problems) can be enabled by passing `nonConeMode = true`, but note that non-cone mode is deprecated and this option may be removed alongside a future Git update without notice.
|
||||
|
||||
- The `fetchgit` fetcher supports sparse checkouts via the `sparseCheckout` option. This used to accept a multi-line string with directories/patterns to check out, but now requires a list of strings.
|
||||
|
||||
- `openssh` was updated to version 9.1, disabling the generation of DSA keys when using `ssh-keygen -A` as they are insecure. Also, `SetEnv` directives in `ssh_config` and `sshd_config` are now first-match-wins
|
||||
|
||||
- `bsp-layout` no longer uses the command `cycle` to switch to other window layouts, as it got replaced by the commands `previous` and `next`.
|
||||
|
@ -9,10 +9,10 @@ python3Packages.buildPythonApplication rec {
|
||||
owner = "ryanoasis";
|
||||
repo = "nerd-fonts";
|
||||
rev = "v${version}";
|
||||
sparseCheckout = ''
|
||||
font-patcher
|
||||
/src/glyphs
|
||||
'';
|
||||
sparseCheckout = [
|
||||
"font-patcher"
|
||||
"/src/glyphs"
|
||||
];
|
||||
sha256 = "sha256-boZUd1PM8puc9BTgOwCJpkfk6VMdXLsIyp+fQmW/ZqI=";
|
||||
};
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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=";
|
||||
};
|
||||
|
@ -3,7 +3,7 @@
|
||||
{ owner, repo, rev, name ? "source"
|
||||
, fetchSubmodules ? false, leaveDotGit ? null
|
||||
, deepClone ? false, private ? false, forceFetchGit ? false
|
||||
, sparseCheckout ? ""
|
||||
, sparseCheckout ? []
|
||||
, githubBase ? "github.com", varPrefix ? null
|
||||
, meta ? { }
|
||||
, ... # For hash agility
|
||||
@ -24,7 +24,7 @@ let
|
||||
};
|
||||
passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "forceFetchGit" "private" "githubBase" "varPrefix" ];
|
||||
varBase = "NIX${if varPrefix == null then "" else "_${varPrefix}"}_GITHUB_PRIVATE_";
|
||||
useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit || (sparseCheckout != "");
|
||||
useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit || !(sparseCheckout == "" || sparseCheckout == []);
|
||||
# We prefer fetchzip in cases we don't need submodules as the hash
|
||||
# is more stable in that case.
|
||||
fetcher = if useFetchGit then fetchgit else fetchzip;
|
||||
|
@ -71,7 +71,7 @@ let
|
||||
owner = "googlefonts";
|
||||
repo = "noto-cjk";
|
||||
inherit rev sha256;
|
||||
sparseCheckout = "${typeface}/Variable/OTC";
|
||||
sparseCheckout = [ "${typeface}/Variable/OTC" ];
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -18,9 +18,9 @@ stdenvNoCC.mkDerivation rec {
|
||||
owner = "gvolpe";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sparseCheckout = ''
|
||||
BeautyLine-V3
|
||||
'';
|
||||
sparseCheckout = [
|
||||
"BeautyLine-V3"
|
||||
];
|
||||
sha256 = "sha256-IkkypAj250+OXbf19TampCnqYsSbJVIjeYlxJoyhpzk=";
|
||||
};
|
||||
|
||||
|
@ -12,7 +12,7 @@ stdenvNoCC.mkDerivation rec {
|
||||
repo = "mod-dh";
|
||||
rev = "e846a5bd24d59ed15ba70b3a9d5363a38ca51d09";
|
||||
sha256 = "sha256-RFOpN+tIMfakb7AZN0ock9eq2mytvL0DWedvQV67+ks=";
|
||||
sparseCheckout = "console";
|
||||
sparseCheckout = [ "console" ];
|
||||
};
|
||||
|
||||
phases = [ "unpackPhase" "installPhase" ];
|
||||
|
@ -41,7 +41,7 @@ stdenvNoCC.mkDerivation rec {
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-DZBmf8fe0zw5uiQjNKXw8g/vU2hjNDa87z/7XuhyXog=";
|
||||
inherit sparseCheckout;
|
||||
sparseCheckout = [ sparseCheckout ];
|
||||
} + sparseCheckout;
|
||||
|
||||
nativeBuildInputs = [ copyDesktopItems makeWrapper ];
|
||||
|
Loading…
Reference in New Issue
Block a user