[SCM] The rsync repository. - branch master updated
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
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