Remove last remains of FSMID support from userland. The kernel side was added in 2005 (7d15906a7a159575b1983f7c1fadde4b) and removed again in 2009 (d98152a8b8a4b368ca0e08b84302f2f2). Approved-by: dillon
cpdup - Add support for lchmod(), lutimes(), and lchflags() * Add support for these functions, allowing symlinks to be fully replicated. * Fix issues when the destination of a rename is chflagged in a way that causes the rename to fail. * Delete temporary files when a rename files. * Set SrcHost/DstHost.version for local sources or targets to make version tests easier. Reported-by: Oliver Fromme
cpdup(1): Drop old compatible code for other OSes The compatible code of cpdup(1) for Linux and other BSDs has been better maintained in its standalone repository: https://github.com/DragonFlyBSD/cpdup So let's drop the old and unmaintained compatible code here.
cpdup(1): Use POSIX-defined timespec fields to be more portable While we defines 'st_atimespec', 'st_mtimespec' and 'st_ctimespec' macros in 'struct stat', they are not defined on Linux and maybe other platforms or C libraries. Change to check the definitions of 'st_atime', 'st_mtime' and 'st_ctime' macros to check whether we're on a modern POSIX (>= 2008) platform. See also: https://github.com/DragonFlyBSD/cpdup/commit/7a715bd5cc6853c3973ce84a5df3c779e47082d1 Credit: https://github.com/ninja-build/ninja/pull/1513
cpdup - Bump version, add usec timestamp precision * cpdup will now run utimes() with microsecond precision (the most it can handle), if possible. It previously only used seconds precision. * Compatibilty with older cpdup's is maintained for remote copies (though it will warn you of the version mismatch). Older cpdup's only transfer the seconds field. * cpdup still only uses the seconds field when comparing files, in order to maintain maximum compatibility between operating systems and filesystems.
cpdup(1): Add '-h' option and sort options in help and code * Add the '-h' option to show the help text * Sort options in both code and help text * Remove the redundant '-p' option from the source file * The '-n' and '-S' options are missing from the help text, so add them. See also: https://github.com/DragonFlyBSD/cpdup/commit/d87b2a60a95d0382135609bb17a014c8a0b61031
cpdup(1): Minor cleanups * In 'cpdup.h', remove an inaccurate comment about <strings.h> inclusion. * Change predefined macro '__linux' to '__linux__', meanwhile add an empty define of '__dead2' under '__linux__' scope. * In 'hcproto.c', put static variable 'chflags_warning' inside '_ST_FLAGS_PRESENT_' macro scrope. Referred to the changes I made in the standalone 'cpdup' repo: https://github.com/DragonFlyBSD/cpdup
cpdup - Enhance -X operation * Enhance -X operation. When the cpignore file is specified as an absolute path, it may contain wildcards which match against the concatenated source path and directory element (as specified in the source), instead of just match against directory elements. * Thus an absolute cpignore file may contain full paths and wildcards. For example, if you: cpdup -X $cwd/mycpignore /tmp /fubar And $cwd/mycpignore (specified with an absolute path) contains: /tmp/xyz/swap* Then cpdup will not copy files that match against /tmp/xyz/swap*. If you specify a relative path for the cpignore file, or use the -x option (instead of -X cpignorefile), operation remains as before and only matches against the directory element.
Add __attribute__((__noreturn__)) to various function prototypes in bin/. This general cleanup is useful in various ways. It helps the compiler optimize better and it also helps later GCCs detect better when to give -Wimplicit-fallthrough warnings and when not. Found-with: -Wsuggest-attribute=noreturn