We needed to compile an old version of rdiff-backup on CentOS 7 but got the following error:
_librsyncmodule.c: In function â_librsync_new_sigmakerâ: _librsyncmodule.c:63:17: error: âRS_DEFAULT_STRONG_LENâ undeclared (first use in this function) (size_t)RS_DEFAULT_STRONG_LEN); ^ _librsyncmodule.c:63:17: note: each undeclared identifier is reported only once for each function it appears in _librsyncmodule.c:63:9: error: too few arguments to function ârs_sig_beginâ (size_t)RS_DEFAULT_STRONG_LEN); ^ In file included from _librsyncmodule.c:25:0: /usr/include/librsync.h:370:11: note: declared here rs_job_t *rs_sig_begin(size_t new_block_len, ^ error: command 'gcc' failed with exit status 1
The librsync library changed the colling convention of `rs_sig_begin` so if you get an error like that, then a patch like this might help:
]# diff -uw _librsyncmodule.c.ORIG _librsyncmodule.c --- _librsyncmodule.c.ORIG 2006-11-11 23:32:01.000000000 -0800 +++ _librsyncmodule.c 2018-02-20 11:22:06.529111816 -0800 @@ -59,8 +59,8 @@ if (sm == NULL) return NULL; sm->x_attr = NULL; - sm->sig_job = rs_sig_begin((size_t)blocklen, - (size_t)RS_DEFAULT_STRONG_LEN); + sm->sig_job = rs_sig_begin((size_t)blocklen, 8, + (size_t)RS_MD4_SIG_MAGIC); return (PyObject*)sm; }
-Eric
Hey Eric,
this one saved my day. Thank you very much 🙂