Convert NEWS & OLDNEWS into .md files.

This commit is contained in:
Wayne Davison
2020-05-26 02:14:05 -07:00
parent 96ed96dabd
commit bcb0a24a8f
7 changed files with 3993 additions and 3940 deletions

111
NEWS
View File

@@ -1,111 +0,0 @@
NEWS for rsync 3.2.0 (UNRELEASED)
Protocol: 31 (unchanged)
Changes since 3.1.3:
BUG FIXES:
- Avoid a potential out-of-bounds read in daemon mode if argc can be made
to become 0.
- Fix the default list of skip-compress files for non-daemon transfers.
- Fix xattr filter rules losing an 'x' attribute in a non-local transfer.
- Avoid an error when a check for a potential fuzzy file happens to
reference a directory.
- Make the atomic-rsync helper script have a more consistent error-exit.
- Make sure that a signal handler calls _exit() instead of exit().
- Various zlib fixes, including security fixes for CVE-2016-9843,
CVE-2016-9842, CVE-2016-9841, and CVE-2016-9840.
- Fixed an issue with --remove-source-files not removing a source symlink
when combined with --copy-links.
- Fixed a bug where the daemon would fail to write early fatal error
messages to the client, such as refused or unknown command-line options.
- Fixed the block-size validation logic when dealing with older protocols.
- Some rrsync fixes and enhancements to handle the latest options.
- Fixed a crash in the --iconv code.
- Fixed a bug in the writing of the batch.sh file (w/--write-batch) when
the source & destination args were not last on the command-line.
ENHANCEMENTS:
- Various checksum enhancements, including the optional use of openssl's
MD4 & MD5 checksum algorithms, some x86_64 optimizations for the rolling
checksum, some x86_64 optimizations for the (non-openssl) MD5 checksum,
the addition of xxhash checksum support, and a negotiation heuristic that
ensures that it is easier to add new checksum algorithms in the future.
Currently the x86_64 optimizations require the use of the --enable-simd
flag to configure, but they will probably be enabled by default in the
near future. The environment variable RSYNC_CHECKSUM_LIST can be used
to customize the preference order of the negotiation.
- Various compression enhancements, including a negotiation heuristic that
tries to pick the best compression option supported by both sides. The
environment variable RSYNC_COMPRESS_LIST can be used to customize the
preference order of the heuristic (which will be more useful when new
compression options are added).
- Added the --atimes option based on the long-standing patch (just with
some fixes that the patch has been needing).
- Added --open-noatime option to open files using O_NOATIME.
- Added the --write-devices option based on the long-standing patch.
- Added openssl support to the rsync-ssl script via its renamed helper
script, rsync-ssl-rsh. Both bash scripts are now installed by default
(removing the install-ssl-client make target). Rsync was also enhanced
to set the RSYNC_PORT environment variable when running a daemon-over-rsh
script. Its value is the user-specified port number (set via --port or an
rsync:// URL) or 0 if the user didn't override the port.
- Added negated matching to the daemon's "refuse options" setting by using
match strings that start with a "!" (such as "!compress*").
- Added status output in response to a signal (via both SIGINFO & SIGVTALRM).
- Added a --copy-as=USER option to give some extra security to root-run
rsync commands into/from untrusted directories (such as backups and
restores).
- When resuming the transfer of a file in the --partial-dir, rsync will now
update that partial file in-place instead of creating yet another tmp
file copy. This requires both sender & receiver to be at least v3.2.0.
- Added support for RSYNC_SHELL & RSYNC_NO_XFER_EXEC environment variables
that affect the pre-xfer exec and post-xfer exec rsync daemon options.
- Fixed a problem with the --link-dest|--copy-dest code when --xattrs was
specified along with multiple alternate-destination directories (it could
possibly choose a bad file match while trying to find a better xattr
match).
- Various manpage improvements.
DEVELOPER RELATED:
- Silenced some annoying warnings about major()|minor() due to the autoconf
include-file check not being smart enough.
- Improved some configure checks to work better with strict C99 compilers.
- The --debug=FOO options are no longer auto-forwarded to the server side,
allowing more control over what is output & the ability to request debug
data from divergent rsync versions.
- Some perl scripts were recoded into awk and python3.
- Some defines in byteorder.h were changed into static inline functions
that will help to ensure that the args don't get evaluated multiple times
on "careful alignment" hosts.
- Some code typos were fixed (as pointed out by a Fossies run).

115
NEWS.md Normal file
View File

@@ -0,0 +1,115 @@
# NEWS for rsync 3.2.0 (UNRELEASED)
Protocol: 31 (unchanged)
## Changes since 3.1.3:
### BUG FIXES:
- Avoid a potential out-of-bounds read in daemon mode if argc can be made to
become 0.
- Fix the default list of skip-compress files for non-daemon transfers.
- Fix xattr filter rules losing an 'x' attribute in a non-local transfer.
- Avoid an error when a check for a potential fuzzy file happens to reference
a directory.
- Make the atomic-rsync helper script have a more consistent error-exit.
- Make sure that a signal handler calls `_exit()` instead of exit().
- Various zlib fixes, including security fixes for CVE-2016-9843,
CVE-2016-9842, CVE-2016-9841, and CVE-2016-9840.
- Fixed an issue with `--remove-source-files` not removing a source symlink
when combined with `--copy-links`.
- Fixed a bug where the daemon would fail to write early fatal error messages
to the client, such as refused or unknown command-line options.
- Fixed the block-size validation logic when dealing with older protocols.
- Some rrsync fixes and enhancements to handle the latest options.
- Fixed a crash in the `--iconv` code.
- Fixed a bug in the writing of the batch.sh file (w/--write-batch) when the
source & destination args were not last on the command-line.
### ENHANCEMENTS:
- Various checksum enhancements, including the optional use of openssl's MD4 &
MD5 checksum algorithms, some x86-64 optimizations for the rolling checksum,
some x86-64 optimizations for the (non-openssl) MD5 checksum, the addition
of xxhash checksum support, and a negotiation heuristic that ensures that it
is easier to add new checksum algorithms in the future. Currently the
x86-64 optimizations require the use of the `--enable-simd` flag to
configure, but they will probably be enabled by default in the near future.
The environment variable `RSYNC_CHECKSUM_LIST` can be used to customize the
preference order of the negotiation.
- Various compression enhancements, including a negotiation heuristic that
tries to pick the best compression option supported by both sides. The
environment variable `RSYNC_COMPRESS_LIST` can be used to customize the
preference order of the heuristic (which will be more useful when new
compression options are added).
- Added the `--atimes` option based on the long-standing patch (just with some
fixes that the patch has been needing).
- Added `--open-noatime` option to open files using `O_NOATIME`.
- Added the `--write-devices` option based on the long-standing patch.
- Added openssl support to the rsync-ssl script via its renamed helper script,
rsync-ssl-rsh. Both bash scripts are now installed by default (removing the
install-ssl-client make target). Rsync was also enhanced to set the
`RSYNC_PORT` environment variable when running a daemon-over-rsh script. Its
value is the user-specified port number (set via `--port` or an rsync://
URL) or 0 if the user didn't override the port.
- Added negated matching to the daemon's `refuse options` setting by using
match strings that start with a `!` (such as `!compress*`).
- Added status output in response to a signal (via both SIGINFO & SIGVTALRM).
- Added a `--copy-as=USER` option to give some extra security to root-run
rsync commands into/from untrusted directories (such as backups and
restores).
- When resuming the transfer of a file in the `--partial-dir`, rsync will now
update that partial file in-place instead of creating yet another tmp file
copy. This requires both sender & receiver to be at least v3.2.0.
- Added support for `RSYNC_SHELL` & `RSYNC_NO_XFER_EXEC` environment variables
that affect the pre-xfer exec and post-xfer exec rsync daemon options.
- Fixed a problem with the `--link-dest`|`--copy-dest` code when `--xattrs`
was specified along with multiple alternate-destination directories (it
could possibly choose a bad file match while trying to find a better xattr
match).
- Various manpage improvements.
### DEVELOPER RELATED:
- Silenced some annoying warnings about major()|minor() due to the autoconf
include-file check not being smart enough.
- Improved some configure checks to work better with strict C99 compilers.
- The `--debug=FOO` options are no longer auto-forwarded to the server side,
allowing more control over what is output & the ability to request debug
data from divergent rsync versions.
- Some perl scripts were recoded into awk and python3.
- Some defines in byteorder.h were changed into static inline functions that
will help to ensure that the args don't get evaluated multiple times on
`careful alignment` hosts.
- Some code typos were fixed (as pointed out by a Fossies run).
------------------------------------------------------------------------------

3814
OLDNEWS
View File

File diff suppressed because it is too large Load Diff

3863
OLDNEWS.md Normal file
View File

File diff suppressed because it is too large Load Diff

View File

@@ -66,7 +66,7 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%doc COPYING NEWS OLDNEWS README.md support/ tech_report.tex
%doc COPYING NEWS.md OLDNEWS.md README.md support/ tech_report.tex
%config(noreplace) /etc/xinetd.d/rsync
%{_prefix}/bin/rsync
%{_prefix}/bin/rsync-ssl

View File

@@ -201,11 +201,11 @@ def get_configure_version():
def get_OLDNEWS_version_info():
rel_re = re.compile(r'^\s+\S{2}\s\S{3}\s\d{4}\s+(?P<ver>\d+\.\d+\.\d+)\s+(?P<pdate>\d{2} \w{3} \d{4}\s+)?(?P<pver>\d+)$')
rel_re = re.compile(r'^\| \d{2} \w{3} \d{4}\s+\|\s+(?P<ver>\d+\.\d+\.\d+)\s+\|\s+(?P<pdate>\d{2} \w{3} \d{4}\s+)?\|\s+(?P<pver>\d+)\s+\|')
last_version = last_protocol_version = None
pdate = { }
with open('OLDNEWS', 'r', encoding='utf-8') as fh:
with open('OLDNEWS.md', 'r', encoding='utf-8') as fh:
for line in fh:
if not last_version:
m = re.search(r'(\d+\.\d+\.\d+)', line)

View File

@@ -157,7 +157,7 @@ release is "{release}"
About to:
- tweak SUBPROTOCOL_VERSION in rsync.h, if needed
- tweak the version in configure.ac and the spec files
- tweak NEWS and OLDNEWS to ensure header values are correct
- tweak NEWS.md and OLDNEWS.md to ensure header values are correct
- tweak the date in the *.yo files and generate the manpages
- generate configure.sh, config.h.in, and proto.h
- page through the differences
@@ -172,7 +172,7 @@ About to:
'%define srcdir': srcdir,
}
tweak_files = 'configure.ac rsync.h NEWS OLDNEWS'.split()
tweak_files = 'configure.ac rsync.h NEWS.md OLDNEWS.md'.split()
tweak_files += glob.glob('packaging/*.spec')
tweak_files += glob.glob('packaging/*/*.spec')
tweak_files += glob.glob('*.yo')
@@ -198,16 +198,16 @@ About to:
x_re = re.compile('(#define\s+SUBPROTOCOL_VERSION)\s+(\d+)')
repl = lambda m: m[1] + ' ' + '0' if not pre or proto_changed != 'changed' else 1 if m[2] == '0' else m[2]
txt = replace_or_die(x_re, repl, txt, f"Unable to find SUBPROTOCOL_VERSION define in {fn}")
elif fn == 'NEWS':
elif fn == 'NEWS.md':
x_re = re.compile(
r'^(NEWS for rsync %s )(\(UNRELEASED\))\s*(\nProtocol: )(\d+) (\([^)]+\))\n' % re.escape(finalversion),
r'^(# NEWS for rsync %s )(\(UNRELEASED\))\s*(\n\nProtocol: )(\d+) (\([^)]+\))\n' % re.escape(finalversion),
re.I)
repl = lambda m: m[1] + (m[2] if pre else f"({today})") + m[3] + f"{protocol_version} ({proto_changed})\n"
msg = (f"The first 2 lines of {fn} are not in the right format. They must be:\n"
+ f"NEWS for rsync {finalversion} (UNRELEASED)\n"
msg = (f"The first 3 lines of {fn} are not in the right format. They must be:\n"
+ f"# NEWS for rsync {finalversion} (UNRELEASED)\n\n"
+ f"Protocol: {protocol_version} ({proto_changed})")
txt = replace_or_die(x_re, repl, txt, msg)
elif fn == 'OLDNEWS':
elif fn == 'OLDNEWS.md':
x_re = re.compile(r'^(\t\S\S\s\S\S\S\s\d\d\d\d)(\t%s\t).*' % re.escape(finalversion), re.M)
repl = lambda m: (m[1] if pre else "\t" + ztoday) + m[2] + proto_change_date + protocol_version
txt = replace_or_die(x_re, repl, txt, f'Unable to find "?? ??? {year}\t{finalversion}" line in {fn}')
@@ -230,7 +230,7 @@ About to:
srctar_file = f"{dest}/{srcdir}/{srctar_name}"
pattar_file = f"{dest}/{srcdir}/{pattar_name}"
diff_file = f"{dest}/{srcdiffdir}/{diff_name}"
news_file = f"{dest}/{srcdir}/{rsync_ver}-NEWS"
news_file = f"{dest}/{srcdir}/{rsync_ver}-NEWS.md"
lasttar_file = f"{dest}/{lastsrcdir}/{rsync_lastver}.tar.gz"
print(f"""\
@@ -276,7 +276,7 @@ About to:
- create release tar, "{srctar_name}"
- generate {rsync_ver}/patches/* files
- create patches tar, "{pattar_name}"
- update top-level README.md, *NEWS, TODO, and ChangeLog
- update top-level README.md, *NEWS.md, TODO, and ChangeLog
- update top-level rsync*.html manpages
- gpg-sign the release files
- update hard-linked top-level release files{skipping}
@@ -347,10 +347,10 @@ About to:
shutil.rmtree(rsync_ver)
print(f"Updating the other files in {dest} ...")
cmd_chk('rsync -a README.md NEWS OLDNEWS TODO'.split() + [dest])
cmd_chk('rsync -a README.md NEWS.md OLDNEWS.md TODO'.split() + [dest])
if os.path.lexists(news_file):
os.unlink(news_file)
os.link(f"{dest}/NEWS", news_file)
os.link(f"{dest}/NEWS.md", news_file)
cmd_chk(f"git log --name-status | gzip -9 >{dest}/ChangeLog.gz")
for yo_fn in glob.glob('*.yo'):
@@ -364,7 +364,7 @@ About to:
cmd_chk(['gpg', '--batch', '--passphrase-fd=0', '-ba', fn], input=passphrase)
if not pre:
for find in f'{dest}/rsync-*.gz {dest}/rsync-*.asc {dest}/rsync-*-NEWS {dest}/src-previews/rsync-*diffs.gz*'.split():
for find in f'{dest}/rsync-*.gz {dest}/rsync-*.asc {dest}/rsync-*-NEWS.md {dest}/src-previews/rsync-*diffs.gz*'.split():
for fn in glob.glob(find):
os.unlink(fn)
top_link = [