[SCM] The rsync repository. - branch master updated
Rsync CVS commit messages
rsync-cvs at lists.samba.org
Fri Oct 21 00:56:38 UTC 2022
The branch, master has been updated
via 3b719d1d Improve JSON output a bit more.
via ebe1af74 Make use of -VV when checking rsync capabilities.
from de6848ed Re-run the exclude test using lsh.sh pull.
https://git.samba.org/?p=rsync.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 3b719d1d6e914a2ad29ad0dae5e24d64f71ae68b
Author: Wayne Davison <wayne at opencoder.net>
Date: Thu Oct 20 10:54:14 2022 -0700
Improve JSON output a bit more.
commit ebe1af749cf8debca9ca90f09306a67cac9c9d4d
Author: Wayne Davison <wayne at opencoder.net>
Date: Thu Oct 20 09:02:28 2022 -0700
Make use of -VV when checking rsync capabilities.
-----------------------------------------------------------------------
Summary of changes:
NEWS.md | 7 ++++---
support/json-rsync-version | 25 +++++++++++++++++++++----
testsuite/acls-default.test | 2 +-
testsuite/acls.test | 2 +-
testsuite/atimes.test | 2 +-
testsuite/chown.test | 2 +-
testsuite/crtimes.test | 2 +-
testsuite/daemon.test | 2 +-
testsuite/devices.test | 4 ++--
testsuite/itemize.test | 4 ++--
testsuite/xattrs.test | 2 +-
usage.c | 2 +-
12 files changed, 37 insertions(+), 19 deletions(-)
Changeset truncated at 500 lines:
diff --git a/NEWS.md b/NEWS.md
index 24862dd0..ad1aaee0 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -29,18 +29,19 @@
environment var for how to customize this.
- Improved the xattr hash table to use a 64-bit key without slowing down the
- key's computation. This should make extra sure that a collision doesn't
+ key's computation. This should make extra sure that a hash collision doesn't
happen.
- If the `--version` option is repeated (e.g. `-VV`) then the information is
- output in a (still fairly readable) JSON format. Client side only.
+ output in a (still readable) JSON format. Client side only.
- The script `support/json-rsync-version` is available to get the JSON style
version output from any rsync. The script accepts either text on stdin
**or** an arg that specifies an rsync executable to run with a doubled
`--version` option. If the text we get isn't already in JSON format, it is
converted. Newer rsync versions will provide more complete json info than
- older rsync versions.
+ older rsync versions. Various tweaks are made to keep the flag names
+ consistent across versions.
- The [`use chroot`](rsyncd.conf.5#) daemon parameter now defaults to "unset"
so that rsync can use chroot when it works and a sanitized copy when chroot
diff --git a/support/json-rsync-version b/support/json-rsync-version
index bf5684b7..31fed7f1 100755
--- a/support/json-rsync-version
+++ b/support/json-rsync-version
@@ -2,6 +2,17 @@
import sys, argparse, subprocess, json
+TWEAK_NAME = {
+ 'asm': 'asm_roll',
+ 'ASM': 'asm_roll',
+ 'hardlink_special': 'hardlink_specials',
+ 'protect_args': 'secluded_args',
+ 'protected_args': 'secluded_args',
+ 'SIMD': 'SIMD_roll',
+ }
+
+MOVE_OPTIM = set('asm_roll SIMD_roll'.split())
+
def main():
if not args.rsync or args.rsync == '-':
ver_out = sys.stdin.read().strip()
@@ -11,6 +22,7 @@ def main():
print(ver_out)
return
info = { }
+ misplaced_optims = { }
for line in ver_out.splitlines():
if line.startswith('rsync '):
prog, vstr, ver, pstr, vstr2, proto = line.split()
@@ -40,13 +52,16 @@ def main():
elif val.endswith('-bit'):
var = var[:-1] + '_bits'
val = int(val.split('-')[0])
- if var == 'protect-args':
- var = 'secluded-args'
else:
var = x
val = True
var = var.replace(' ', '_').replace('-', '_')
- info[sect_name][var] = val
+ if var in TWEAK_NAME:
+ var = TWEAK_NAME[var]
+ if sect_name[0] != 'o' and var in MOVE_OPTIM:
+ misplaced_optims[var] = val
+ else:
+ info[sect_name][var] = val
else:
info[sect_name] += [ x for x in line.split() if not x.startswith('(') ]
elif line == '':
@@ -58,10 +73,12 @@ def main():
for chk in 'capabilities optimizations'.split():
if chk not in info:
info[chk] = { }
+ if misplaced_optims:
+ info['optimizations'].update(misplaced_optims)
for chk in 'checksum_list compress_list daemon_auth_list'.split():
if chk not in info:
info[chk] = [ ]
- info['license'] = 'GPL3'
+ info['license'] = 'GPLv3' if ver[0] == '3' else 'GPLv2'
info['caveat'] = 'rsync comes with ABSOLUTELY NO WARRANTY'
print(json.dumps(info))
diff --git a/testsuite/acls-default.test b/testsuite/acls-default.test
index a0a482ce..d8fba7fe 100644
--- a/testsuite/acls-default.test
+++ b/testsuite/acls-default.test
@@ -7,7 +7,7 @@
. $suitedir/rsync.fns
-$RSYNC --version | grep "[, ] ACLs" >/dev/null || test_skipped "Rsync is configured without ACL support"
+$RSYNC -VV | grep '"ACLs": true' >/dev/null || test_skipped "Rsync is configured without ACL support"
case "$setfacl_nodef" in
true) test_skipped "I don't know how to use your setfacl command" ;;
diff --git a/testsuite/acls.test b/testsuite/acls.test
index 23449018..693da667 100644
--- a/testsuite/acls.test
+++ b/testsuite/acls.test
@@ -7,7 +7,7 @@
. $suitedir/rsync.fns
-$RSYNC --version | grep "[, ] ACLs" >/dev/null || test_skipped "Rsync is configured without ACL support"
+$RSYNC -VV | grep '"ACLs": true' >/dev/null || test_skipped "Rsync is configured without ACL support"
makepath "$fromdir/foo"
echo something >"$fromdir/file1"
diff --git a/testsuite/atimes.test b/testsuite/atimes.test
index 3bdb1d46..4d46eb05 100644
--- a/testsuite/atimes.test
+++ b/testsuite/atimes.test
@@ -4,7 +4,7 @@
. "$suitedir/rsync.fns"
-$RSYNC --version | grep "[, ] atimes" >/dev/null || test_skipped "Rsync is configured without atimes support"
+$RSYNC -VV | grep '"atimes": true' >/dev/null || test_skipped "Rsync is configured without atimes support"
mkdir "$fromdir"
diff --git a/testsuite/chown.test b/testsuite/chown.test
index 5dadb836..b53413e1 100644
--- a/testsuite/chown.test
+++ b/testsuite/chown.test
@@ -15,7 +15,7 @@
case $0 in
*fake*)
- $RSYNC --version | grep "[, ] xattrs" >/dev/null || test_skipped "Rsync needs xattrs for fake device tests"
+ $RSYNC -VV | grep '"xattrs": true' >/dev/null || test_skipped "Rsync needs xattrs for fake device tests"
RSYNC="$RSYNC --fake-super"
TLS_ARGS="$TLS_ARGS --fake-super"
case "$HOST_OS" in
diff --git a/testsuite/crtimes.test b/testsuite/crtimes.test
index 07d9269b..456f0a5f 100644
--- a/testsuite/crtimes.test
+++ b/testsuite/crtimes.test
@@ -4,7 +4,7 @@
. "$suitedir/rsync.fns"
-$RSYNC --version | grep "[, ] crtimes" >/dev/null || test_skipped "Rsync is configured without crtimes support"
+$RSYNC -VV | grep '"crtimes": true' >/dev/null || test_skipped "Rsync is configured without crtimes support"
# Setting an older time via touch sets the create time to the mtime.
# Setting it to a newer time affects just the mtime.
diff --git a/testsuite/daemon.test b/testsuite/daemon.test
index 80d2baf6..60aa334b 100644
--- a/testsuite/daemon.test
+++ b/testsuite/daemon.test
@@ -81,7 +81,7 @@ drwxr-xr-x DIR ####/##/## ##:##:## foo
EOT
diff $diffopt "$chkfile" "$outfile" || test_fail "test 3 failed"
-if $RSYNC --version | grep "[, ] atimes" >/dev/null; then
+if $RSYNC -VV | grep '"atimes": true' >/dev/null; then
checkdiff "$RSYNC -rU localhost::test-from/f*" \
"sed -e '$FILE_REPL' -e '$DIR_REPL' -e '$LS_REPL'" <<EOT
drwxr-xr-x DIR ####/##/## ##:##:## foo
diff --git a/testsuite/devices.test b/testsuite/devices.test
index cd9cf3a2..ad5f936b 100644
--- a/testsuite/devices.test
+++ b/testsuite/devices.test
@@ -13,7 +13,7 @@
case $0 in
*fake*)
- $RSYNC --version | grep "[, ] xattrs" >/dev/null || test_skipped "Rsync needs xattrs for fake device tests"
+ $RSYNC -VV | grep '"xattrs": true' >/dev/null || test_skipped "Rsync needs xattrs for fake device tests"
RSYNC="$RSYNC --fake-super"
TLS_ARGS="$TLS_ARGS --fake-super"
case "$HOST_OS" in
@@ -94,7 +94,7 @@ esac
# TODO: Need to test whether hardlinks are possible on this OS/filesystem
-$RSYNC --version | grep "[, ] hardlink-special" >/dev/null && CAN_HLINK_SPECIAL=yes || CAN_HLINK_SPECIAL=no
+$RSYNC -VV | grep '"hardlink_specials": true' >/dev/null && CAN_HLINK_SPECIAL=yes || CAN_HLINK_SPECIAL=no
mkdir "$fromdir"
mkdir "$todir"
diff --git a/testsuite/itemize.test b/testsuite/itemize.test
index 7c29f696..c1c57c59 100644
--- a/testsuite/itemize.test
+++ b/testsuite/itemize.test
@@ -25,7 +25,7 @@ ln "$fromdir/foo/config1" "$fromdir/foo/extra"
rm -f "$to2dir"
# Check if rsync is set to hard-link symlinks.
-if $RSYNC --version | grep "[, ] hardlink-symlinks" >/dev/null; then
+if $RSYNC -VV | grep '"hardlink_symlinks": true' >/dev/null; then
L=hL
sym_dots="$allspace"
L_sym_dots=".L$allspace"
@@ -45,7 +45,7 @@ case "$RSYNC" in
T=.T
;;
*)
- if $RSYNC --version | grep "[, ] symtimes" >/dev/null; then
+ if $RSYNC -VV | grep '"symtimes": true' >/dev/null; then
T=.t
else
T=.T
diff --git a/testsuite/xattrs.test b/testsuite/xattrs.test
index 455abef1..d94d5f95 100644
--- a/testsuite/xattrs.test
+++ b/testsuite/xattrs.test
@@ -8,7 +8,7 @@
. $suitedir/rsync.fns
lnkdir="$tmpdir/lnk"
-$RSYNC --version | grep "[, ] xattrs" >/dev/null || test_skipped "Rsync is configured without xattr support"
+$RSYNC -VV | grep '"xattrs": true' >/dev/null || test_skipped "Rsync is configured without xattr support"
case "$HOST_OS" in
darwin*)
diff --git a/usage.c b/usage.c
index 2db64767..a5b59ad8 100644
--- a/usage.c
+++ b/usage.c
@@ -290,7 +290,7 @@ void print_rsync_version(enum logcode f)
output_nno_list(f, "Daemon auth list", &valid_auth_checksums);
if (f == FNONE) {
- json_line("license", "GPL3");
+ json_line("license", "GPLv3");
json_line("caveat", "rsync comes with ABSOLUTELY NO WARRANTY");
printf("\n}\n");
return;
--
The rsync repository.
More information about the rsync-cvs
mailing list