looking into this a bit more, FreeBSD already has a strlcpy() function in libc:
strlcpy, strlcat -- size-bounded string copying and concatenation
Standard C Library (libc, -lc)
strlcpy(char * restrict dst, const char * restrict src, size_t size);
strlcat(char * restrict dst, const char * restrict src, size_t size);
The following patch gets me past this point:
*** rsync.c.orig Thu Jul 16 03:56:31 2015
--- rsync.c Thu Jul 16 03:56:55 2015
*** 49,54 ****
--- 49,55 ----
* @return index of the terminating byte.
+ #ifndef __FreeBSD__
static size_t strlcpy(char *d, const char *s, size_t bufsize)
size_t len = strlen(s);
*** 61,66 ****
--- 62,68 ----
/* splits filepath at the last '/', if any, like so:
* dirname basename filepath
> On Jul 15, 2015, at 18:34, Marc Fournier <scra...@hub.org> wrote:
> Anyone have any experience / luck building it on FreeBSD 10.x?
> gmake all-am
> gmake: Entering directory '/usr/local/src/csync2-2.0'
> cc -DHAVE_CONFIG_H -I. -D'DBDIR="/usr/local/var/lib/csync2"'
> -D'ETCDIR="/usr/local/etc"' -I/usr/local/include
> -I/usr/local/include/p11-kit-1 -Wall -I/usr/local/include -MT rsync.o -MD
> -MP -MF .deps/rsync.Tpo -c -o rsync.o rsync.c
> rsync.c:52:15: error: static declaration of 'strlcpy' follows non-static
> static size_t strlcpy(char *d, const char *s, size_t bufsize)
> /usr/include/string.h:93:9: note: previous declaration is here
> size_t strlcpy(char * __restrict, const char * __restrict, size_t);
> rsync.c:120:27: warning: size argument in 'strlcpy' call appears to be size
> of the source; expected the size of the destination [-Wstrlcpy-strlcat-size]
> rsync.c:120:20: note: change size argument to be the size of the destination
> 1 warning and 1 error generated.
> Makefile:552: recipe for target 'rsync.o' failed
> gmake: *** [rsync.o] Error 1
> gmake: Leaving directory '/usr/local/src/csync2-2.0'
> Makefile:385: recipe for target 'all' failed
> gmake: *** [all] Error 2
>> On Jul 15, 2015, at 14:57, Lars Ellenberg <lars.ellenb...@linbit.com> wrote:
>> On Tue, Jul 14, 2015 at 08:47:38PM -0700, Marc Fournier wrote:
>>> Am working on using csync2 to backup remote servers to a central server …
>>> am using csync2 mainly because of the efficient way that it uses a local
>>> database to minimize the network traffic, as well as load on the ‘backup
>>> file system’
>>> now, I have a file that I’m trying to send across that is ~700M, and am
>>> gettign a ‘remote closed connection’ before it finishes … doing a bit of a
>>> search on the remote server, I’m finding tht /tmp is filling up fast, but
>>> there are no files in there that is growing, so figure its doing something
>>> that isn’t “visible” on that file system … and /var/log/messages verifies
>>> kernel: pid 23073 (csync2), uid 0 inumber 33 on /tmp: filesystem full
>>> Now, reading the docs, I see that there is a tempdir setting, but its
>>> recommended not to use it, and it states that it creates temp files in the
>>> order of ‘tempdir, same directory as currently processed file, directory
>>> given by TMPDIR variable, etc’ …
>>> so first question is, why is it creating it in /tmp (which, according to
>>> the docs, is pretty much the *last* think it will try) vs ‘same directory
>>> as currently processed file’ (that directory has 480G of disk space
>>> available) …
>>> I can set tempdir to the same file system as the final file will be put,
>>> but from what I’m reading, I shouldn’t need to …
>>> please advise …
>> Use recent versions of csync2 (2.0).
>> That no longer uses /tmp/, or at least only uses it as fallback,
>> but tries to create temp files next to the original (similar to rsync).
>> See also the section on "tempdir" (which you should not use) in
>> : Lars Ellenberg
>> : http://www.LINBIT.com | Your Way to High Availability
>> : DRBD, Linux-HA and Pacemaker support and consulting
>> DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.
>> Csync2 mailing list
Csync2 mailing list