Wayne Davison [Sun, 16 Jan 2022 16:56:51 +0000 (08:56 -0800)]
More man page and NEWS improvements.
- Add link targets for all option choices, not just the first one.
- Tweak cross-link arg format.
- Add more links, including some in the latest NEWS.
- Split out a few numbered lists.
Wayne Davison [Sun, 16 Jan 2022 04:56:22 +0000 (20:56 -0800)]
Some NEWS.html improvements.
- Improve NEWS heading's link targets using version info.
- Optimize regex compilation.
- Make sure every link target is unique.
- Allow link targets to start with a number.
Wayne Davison [Thu, 13 Jan 2022 03:50:58 +0000 (19:50 -0800)]
Avoid a -8 in the progress output's remaining time
If the double "remain" value is so large that it overflows an int, make
the estimated seconds output as :00 instead of :-8. Similar for the
estimated remaining minutes. Support larger hours values.
Wayne Davison [Mon, 10 Jan 2022 01:35:39 +0000 (17:35 -0800)]
Add an arg-protection idiom using backslash-escapes
The new default is to protect args and options from unintended shell
interpretation using backslash escapes. See the new `--old-args` option
for a way to get the old-style splitting. This idiom was chosen over
making `--protect-args` enabled by default because it is more backward
compatible (e.g. it works with rrsync). Fixes #272.
Rodrigo Osorio [Sun, 2 Jan 2022 22:37:27 +0000 (23:37 +0100)]
Time-limit options are not being checked enough (#179)
The `--stop-at`, `--stop-after`, and `--time-limit`` options should have their
limit checked when receiving and sending data, not just when receiving.
Fixes #177.
Wayne Davison [Fri, 31 Dec 2021 18:58:19 +0000 (10:58 -0800)]
Some compression improvements.
The compression level of the first file in the transfer no longer sets
the level for all files that follow it. Document that per-file level
switching has no current effect (except for a global "dont compress = *"
rule in the daemon).
Wayne Davison [Sun, 26 Dec 2021 20:29:00 +0000 (12:29 -0800)]
rrsync improvements
- Convert rrsync to python.
- Enhance security of arg & option checking.
- Reject `-L` (`--copy-links`) by default.
- Add `-munge` and `-no-del` options.
- Tweak the logfile line format.
- Created an rrsync man page.
- Use `configure --with-rrsync` if you want `make install` to install
rrsync and its man page.
- Give lsh more rrsync testing support.
Wayne Davison [Sat, 13 Nov 2021 17:30:08 +0000 (09:30 -0800)]
Improve a couple support scripts:
- rsync-no-vanished now avoids joining stdout & stderr, avoids affecting
a non-client run, and gets the rsync status code correctly.
- rsync-slash-strip now avoids affecting a non-client run.
Achim Leitner [Sun, 17 Oct 2021 20:00:24 +0000 (22:00 +0200)]
Linux: Handle protected_regular in inplace writes (#241)
The Linux fs.protected_regular sysctl setting could cause rsync to fail to write a file in-place with the O_CREAT flag set, so the code now tries an open without O_CREAT when it might help to avoid an EACCES error. A testsuite script is included (and slightly improved by Wayne to ensure that it outputs a SKIP when fs.protected_regular is turned off).
Wayne Davison [Fri, 1 Oct 2021 21:13:00 +0000 (14:13 -0700)]
Always run `mkgitver` prior to a build
Some hosts were not running `mkgitver` when they should, so tweak the
script to only update the timestamp when the file's data changes and
then always run the script when performing a build.
In 2004, an allocation optimization has been added to the file
list handling code, that preallocates 32k of file_struct pointers
in a file_list. This optimization predates the incremental
recursion feature, for which it is not appropriate anymore. When
copying a tree containing a large number of small directories,
using the incremental recursion, rsync allocates many short
file_lists. Suddenly, the unused file_struct pointers can easily
take 90-95% of the memory allocated by rsync.
Wayne Davison [Mon, 27 Sep 2021 01:10:45 +0000 (18:10 -0700)]
configure improvements
- Make SIMD & ASM only default to enabled on linux for now (due to
FreeBSD & MacOS issues).
- Improve the enable/disable help messages so that they don't look
wrong when the opposite --enable-X/--disable-X arg is specified.
- use `grep -E` and `grep -F` (`egrep` and `fgrep` are non-standard)
- use same hashbang style for all test scripts
- use explicit comparisons in test scripts
- remove redundant ; from test scripts
- make test script not executable, just like all the other scripts
- unify codestyle across all test scripts
- make openssl license exception clearer by having it at the top
- use modern links in COPYING. The text now matches:
https://www.gnu.org/licenses/gpl-3.0.txt
- fix typo
Eventually add write permission when setting extended attributes (#212)
* Eventually add write permission when setting extended attributes
When we need to set extended atributes of file which does not
allow write then temporarily add write permission and after
attributes are set, remove it again.
Resolves #208
Co-authored-by: Wayne Davison <wayne@opencoder.net>