aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-12 11:13:53 +0000
committertv <tv@krebsco.de>2026-11-12 11:13:53 +0000
commit1ecf303545d70da9b861b08874b71fd259ac4d3f (patch)
treef015eaacebd66df1b54ee806ceb0c02cabb3873e /README.md
parenta0238c05909757ec44015fafc786284d4dbf329e (diff)
populate file: add insecureLinks
rsync 3.5.0 opens merge files, including per-directory .rsync-filter files, walking the path one directory at a time, refusing symlinks that neither root nor the user running rsync owns, and opening each directory for reading. It treats the files it can't open that way as missing, without saying so. That happens, e.g., below a home directory with mode 711, which the user may enter but not read, or behind another user's symlink. Such a source then got synced without its .rsync-filter rules: excluded files got transferred, and --delete-excluded deleted nothing. Before syncing with rsync 3.5.0 or later a source containing .rsync-filter files, populate asks rsync which of them it reads: a dry run with --debug=FILTER2. If it reports an existing one as missing, the file source type's new insecureLinks option decides: with null, the default, populate fails with an error naming the file; with true, rsync reads such files anyway (--insecure-links); with false, rsync syncs without them. Both print a warning. File scenarios sync a source through a symlink owned by nobody, with each setting.
Diffstat (limited to 'README.md')
-rw-r--r--README.md11
1 files changed, 11 insertions, 0 deletions
diff --git a/README.md b/README.md
index e70da72..c0a9c6f 100644
--- a/README.md
+++ b/README.md
@@ -332,6 +332,17 @@ Supported attributes:
if they exist on the target. This is passed to the `--delete-excluded` option
of rsync. Defaults to `true`.
+* `insecureLinks` (optional) -
+ what to do if rsync can't read `.rsync-filter` files in `path`. rsync 3.5.0
+ and later open them more strictly than the files they transfer, and ignore
+ the ones they can't open, e.g. because a directory on the way may be
+ entered but not read, like a home directory with mode 711, or because a
+ symlink on the way belongs to neither root nor the user deploying. By
+ default, with `null`, populating fails with an error naming the file. With
+ `true`, rsync reads such files anyway (`--insecure-links`); with `false`,
+ rsync syncs without them. Both print a warning. Older versions of rsync
+ aren't affected.
+
* `inputs` (optional) -
inputs of the flake in this source to draw from other sources, see
[Flake inputs from sources](#flake-inputs-from-sources).