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>
Jonathan Davies [Sun, 26 Sep 2021 18:25:06 +0000 (19:25 +0100)]
configure.ac: Test IPv6 compatibility instead of relying on library probes (#206)
Legacy configure behaviour was to detect IPv6 support through known IPv6
capable version of common standard libraries. Now: it runs a POSIX test
to determine if IPv6 is usable (in case it has not been disabled).
Patch originally from Pierre-Olivier Mercier <nemunaire@nemunai.re>.
Signed-off-by: Jonathan Davies <jpds@protonmail.com>
Wayne Davison [Sat, 1 May 2021 16:00:03 +0000 (09:00 -0700)]
Unset DISPLAY in environment.
Without a DISPLAY var, ssh won't try to forward X11 when making an
ssh connection. This patch also makes use of setenv() and unsetenv()
if they are available.
Wayne Davison [Fri, 5 Feb 2021 04:46:00 +0000 (20:46 -0800)]
Stop checking for gmake in build scripts
Since a non-cygwin gmake trips up the github cygwin action, let's just
require that the user put a good "make" early on their path (a simple
`ln -s `which gmake` ~/bin/make` with the right $PATH works fine).
Wayne Davison [Tue, 29 Sep 2020 20:04:41 +0000 (13:04 -0700)]
Make gcc die on init overflow of an array.
- Use -pedantic-errors with gcc to make an array-init fatal.
- Fix all the extra warnings that gcc outputs due to this option.
- Also add -Wno-pedantic to gcc if we're using the internal popt
code (since it has lots of pedantic issues).
Wayne Davison [Tue, 22 Sep 2020 18:46:36 +0000 (11:46 -0700)]
Various file comparison improvements
- Rename unchanged_file() to quick_check_ok().
- Enhance quick_check_ok() to work with non-regular files.
- Add a get_file_type() function to the generator.
- Use the new functions in the generator code to make the logic simpler.
- Fix a bug where the `--alt-dest` functions were not checking if a
special file fully matched the non-permission mode bits before
deciding if we have found an alt-dest match.
- Enhance the `--info=skip --ignore-existing` output to include extra
info on if the existing file differs in type or passes the standard
quick-check logic.
- Add `--info=skip2` that authorizes rsync to perform a slow checksum
"quick check" when ignoring existing files. This provides the uptodate
and differs info even if we need to checksum a file to get it.