[SCM] The rsync repository. - branch master updated

2022-09-10 Thread Rsync CVS commit messages
The branch, master has been updated
   via  ad53a9b5 Also change dashes in the dict var names to make jq use 
easier.
   via  17502886 A few more tweaks.
   via  087fffaa Unify older protect-args capability to secluded-args name.
   via  5c1fa2a2 Use dict for capabilities & optimizations in json output.
  from  0efa63f2 Use JSON output if --version (-V) is repeated (client side 
only).

https://git.samba.org/?p=rsync.git;a=shortlog;h=master


- Log -
commit ad53a9b5a04829e84631ef633453b03d64684d1f
Author: Wayne Davison 
Date:   Sat Sep 10 17:30:54 2022 -0700

Also change dashes in the dict var names to make jq use easier.

commit 1750288660ab92ce6ea8c6aead4ca4a3a5107bde
Author: Wayne Davison 
Date:   Sat Sep 10 16:19:21 2022 -0700

A few more tweaks.

commit 087fffaa2be1029b7890b90a891fee6551aa4c1e
Author: Wayne Davison 
Date:   Sat Sep 10 16:17:32 2022 -0700

Unify older protect-args capability to secluded-args name.

commit 5c1fa2a21dbce9745483e2ae81afdf1dd9f1fea2
Author: Wayne Davison 
Date:   Sat Sep 10 15:39:25 2022 -0700

Use dict for capabilities & optimizations in json output.

---

Summary of changes:
 NEWS.md| 10 ++
 support/json-rsync-version | 20 
 usage.c| 34 +-
 3 files changed, 47 insertions(+), 17 deletions(-)


Changeset truncated at 500 lines:

diff --git a/NEWS.md b/NEWS.md
index 81d66b63..fe962ad0 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -13,7 +13,7 @@
   digests are at the highest priority in the new negotiation list.
 
 - Added support for SHA1, SHA256, and SHA512 digests in file checksums.  While
-  This tends to be overkill, if someone needs it, it is available.  These
+  this tends to be overkill, it is available if someone really needs it.  These
   overly-long checksums are at the lowest priority in the normal checksum
   negotation list.
 
@@ -21,9 +21,11 @@
   output in a (still human-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 the version output on
-  stdin **or** the name of an rsync to run as an arg.  If the text isn't
-  already in JSON format, the text is translated into equivalent JSON.
+  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 into equivalent JSON as rsync 3.2.7 would output it (though some
+  info may be missing from older versions).
 
 ### PACKAGING RELATED:
 
diff --git a/support/json-rsync-version b/support/json-rsync-version
index 79050e48..afaf7382 100755
--- a/support/json-rsync-version
+++ b/support/json-rsync-version
@@ -30,17 +30,29 @@ def main():
 elif line.startswith('  '):
 if not saw_comma and ',' in line:
 saw_comma = True
+info[sect_name] = { }
 if saw_comma:
-lst = line.strip(' ,').split(', ')
+for x in line.strip(' ,').split(', '):
+if ' ' in x:
+val, var = x.split(' ', 1)
+if var == 'protect-args':
+var = 'secluded-args'
+var = var.replace(' ', '_').replace('-', '_')
+info[sect_name][var] = False if val == 'no' else val
+else:
+x = x.replace('-', '_')
+info[sect_name][x] = True
 else:
-lst = [ x for x in line.split() if not x.startswith('(') ]
-info[sect_name] += lst
+info[sect_name] += [ x for x in line.split() if not 
x.startswith('(') ]
 elif line == '':
 break
 else:
-sect_name = line.strip(" \n:").replace(' ', '_').lower()
+sect_name = line.strip(' :').replace(' ', '_').lower()
 info[sect_name] = [ ]
 saw_comma = False
+for chk in 'capabilities optimizations'.split():
+if chk not in info:
+info[chk] = { }
 for chk in 'checksum_list compress_list daemon_auth_list'.split():
 if chk not in info:
 info[chk] = [ ]
diff --git a/usage.c b/usage.c
index dc66288f..a2c2a3f0 100644
--- a/usage.c
+++ b/usage.c
@@ -38,7 +38,7 @@ static void print_info_flags(enum logcode f)
 {
STRUCT_STAT *dumstat;
BOOL as_json = f == FNONE ? 1 : 0; /* We use 1 == first attribute, 2 == 
need closing array */
-   char line_buf[75], *quot = as_json ? "\"" : "";
+   char line_buf[75], item_buf[32];
int line_len, j;
char *info_flags[] = {
 
@@ -165,9 +165,25 @@ static void 

[SCM] The rsync repository. - branch master updated

2022-09-10 Thread Rsync CVS commit messages
The branch, master has been updated
   via  0efa63f2 Use JSON output if --version (-V) is repeated (client side 
only).
   via  ae16850d Add support for various SHA checksum digests
   via  7e2711bb Improve various things in the checksum code
   via  b8c2fde3 Try freebsd-13-1 to fix weird wget issue.
   via  1f12b196 When deleting a tag, del in the patches dir too.
   via  bafe73dd Start 3.2.7dev going.
  from  db5bfe67 Preparing for release of 3.2.6

https://git.samba.org/?p=rsync.git;a=shortlog;h=master


- Log -
commit 0efa63f2e601808cae02313311a7331af66a2313
Author: Wayne Davison 
Date:   Sat Sep 10 11:07:01 2022 -0700

Use JSON output if --version (-V) is repeated (client side only).

commit ae16850dc58e884eb9f5cb7f772342b2db28f471
Author: Wayne Davison 
Date:   Sat Sep 10 10:23:36 2022 -0700

Add support for various SHA checksum digests

The main purpose of the SHA checksums are to allow the daemon auth code
to pick a stonger digest method when negotiating the auth digest to use.
However, the SHA digests are also available for use in file checksums,
should someon really want to use one of them.

The new digests are listed from strongest to weakest at the start of the
daemon auth list, giving them the highest priority.

The new digests are listed from weakest to strongest near the end of the
checksum list, giving them the lowest priority of use for file
checksums.

commit 7e2711bb2b4b30bc842dd8670c34a87e2ca0c2df
Author: Wayne Davison 
Date:   Sat Sep 10 09:43:47 2022 -0700

Improve various things in the checksum code

- Size flist checksum data to hold the active size, not the max.
- Add a negotiated hash method to the daemon auth code.
- Use EVP for all openssl digests. This makes it easy to add more
  openssl digest methods and avoids deprecation warnings.
- Support a way to re-enable deprecated digests via openssl conf
  file and allow a default file to be configured.
- Supply a simple openssl-rsync.cnf file to enable legacy digests.

commit b8c2fde3a54abc1ebef6d375b687395b798412f5
Author: Wayne Davison 
Date:   Fri Sep 9 13:16:27 2022 -0700

Try freebsd-13-1 to fix weird wget issue.

commit 1f12b196fd049058e1d12bdf8e9b01dd05f656f0
Author: Wayne Davison 
Date:   Fri Sep 9 12:59:22 2022 -0700

When deleting a tag, del in the patches dir too.

commit bafe73dd5ce57f56b7d67e1f1eec0cafd1db9a7b
Author: Wayne Davison 
Date:   Fri Sep 9 12:58:22 2022 -0700

Start 3.2.7dev going.

---

Summary of changes:
 .cirrus.yml |   2 +-
 NEWS.md |  47 +
 authenticate.c  |  11 +-
 checksum.c  | 431 +---
 clientserver.c  |  19 +-
 compat.c| 190 +--
 configure.ac|  10 +
 flist.c |   6 +-
 lib/md-defines.h|  20 ++
 lib/md5.c   |   2 -
 lib/mdigest.h   |  12 +-
 log.c   |  10 +-
 main.c  |  11 ++
 match.c |  18 +-
 options.c   |   2 +-
 packaging/openssl-rsync.cnf |  18 ++
 packaging/release-rsync |   2 +
 receiver.c  |  13 +-
 rsync.1.md  |  14 +-
 rsync.h |  11 +-
 support/json-rsync-version  |  59 ++
 usage.c | 118 +---
 version.h   |   2 +-
 xattrs.c|  29 +--
 24 files changed, 759 insertions(+), 298 deletions(-)
 create mode 100644 packaging/openssl-rsync.cnf
 create mode 100755 support/json-rsync-version


Changeset truncated at 500 lines:

diff --git a/.cirrus.yml b/.cirrus.yml
index 16489f8f..33e2685e 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -1,7 +1,7 @@
 freebsd_task:
   name: FreeBSD
   freebsd_instance:
-image_family: freebsd-13-0
+image_family: freebsd-13-1
   env:
 PATH: /usr/local/bin:$PATH
   prep_script:
diff --git a/NEWS.md b/NEWS.md
index 02cc2fc7..81d66b63 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,49 @@
+# NEWS for rsync 3.2.7 (UNRELEASED)
+
+## Changes in this version:
+
+### BUG FIXES:
+
+- ...
+
+### ENHANCEMENTS:
+
+- Added negotiated daemon-auth support that allows a stronger checksum digest
+  to be used.  Added SHA512, SHA256, and SHA1 digests to MD5 & MD4.  These new
+  digests are at the highest priority in the new negotiation list.
+
+- Added support for SHA1, SHA256, and SHA512 digests in file checksums.  While
+  This tends to be overkill, if someone needs it, it is available.  These
+  overly-long checksums are at the lowest priority in the normal checksum
+  negotation list.
+
+- If the `--version` option is repeated (e.g. `-VV`) then the information is
+  output in a (still