Hi Eckert, On Thu, Mar 21, 2002 at 03:15:39PM -0500, Eckert, Robert D wrote: > Greetings, here is the output of the 'configure' step and > the compile step (using the Compaq cc compiler that comes > with Tru64 V5.1A. The configure reported success and most of > the compile steps cam through error/warning free except for > the one that stumbled. Can someone help me out here? I am willing > to provide a binary for Tru64 V5.1A if we can swat this bug. I had the same problem. I managed to have rsync compiled OK on my Tru64 5.1 box with helps from couple of people from this list. Try with the patch I attach here. I am not a C programmer so you'd better check to make sure it is correct. > We depend greatly on Rsync to keep a fresh backup of our > 70gb storage system that is the backend of http://www.indiana.edu/, > Indiana University's main web site to the Internet. I plan to do the same here instead of Tru64 vdump and vrestore once I am sure backups by rsync is as reliable as vdump/vrestore. Do you use rsync for root, usr partitions and and database files? Have you had any problem with rsync so far? Cheers, -- Zoong Pham zpham@mercy.com.au UNIX Systems Administrator Mercy Health and Aged Care Inc. To get my PGP public key, email me with the subject: Request for Zoong Pham's PGP public key diff -u -r rsync-2.5.4/batch.c rsync-2.5.4.new/batch.c --- rsync-2.5.4/batch.c Thu Feb 7 08:20:48 2002 +++ rsync-2.5.4.new/batch.c Fri Mar 22 09:24:01 2002 @@ -405,7 +405,15 @@ /* FIXME: This will break if s->count is ever not exactly an int. */ write_batch_csums_file(flist_entry, sizeof(int)); + if (s) { + write_batch_csums_file(&s->count, sizeof(int)); + } + else if (!s) { + write_batch_csums_file(&int_zero, sizeof(int)); + } + /* write_batch_csums_file(s ? &s->count : &int_zero, sizeof(int)); + */ if (s) { for (i = 0; i < s->count; i++) { diff -u -r rsync-2.5.4/config.h.in rsync-2.5.4.new/config.h.in --- rsync-2.5.4/config.h.in Thu Feb 28 10:15:55 2002 +++ rsync-2.5.4.new/config.h.in Fri Mar 22 09:24:01 2002 @@ -140,6 +140,9 @@ /* Define if you have the `mknod' function. */ #undef HAVE_MKNOD +/* Define if you have the `mkfifo' function. */ +#undef HAVE_MKFIFO + /* Define if you have the `mtrace' function. */ #undef HAVE_MTRACE @@ -244,6 +247,9 @@ /* Define if you have the header file. */ #undef HAVE_SYS_SOCKET_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_UN_H /* Define if you have the header file. */ #undef HAVE_SYS_STAT_H diff -u -r rsync-2.5.4/configure rsync-2.5.4.new/configure --- rsync-2.5.4/configure Wed Mar 13 11:03:50 2002 +++ rsync-2.5.4.new/configure Fri Mar 22 09:24:01 2002 @@ -3414,7 +3414,7 @@ fi done -for ac_header in sys/filio.h string.h stdlib.h sys/socket.h sys/mode.h +for ac_header in sys/filio.h string.h stdlib.h sys/socket.h sys/mode.h sys/un.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:3420: checking for $ac_header" >&5 @@ -6165,7 +6165,7 @@ fi rm -f conftest.data -for ac_func in waitpid wait4 getcwd strdup strerror chown chmod mknod +for ac_func in waitpid wait4 getcwd strdup strerror chown chmod mknod mkfifo do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:6171: checking for $ac_func" >&5 diff -u -r rsync-2.5.4/configure.in rsync-2.5.4.new/configure.in --- rsync-2.5.4/configure.in Wed Mar 13 11:03:34 2002 +++ rsync-2.5.4.new/configure.in Fri Mar 22 09:24:01 2002 @@ -242,7 +242,7 @@ AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h unistd.h utime.h grp.h) AC_CHECK_HEADERS(compat.h sys/param.h ctype.h sys/wait.h sys/ioctl.h) -AC_CHECK_HEADERS(sys/filio.h string.h stdlib.h sys/socket.h sys/mode.h) +AC_CHECK_HEADERS(sys/filio.h string.h stdlib.h sys/socket.h sys/mode.h sys/un.h) AC_CHECK_HEADERS(glob.h alloca.h mcheck.h sys/sysctl.h arpa/inet.h arpa/nameser.h) AC_CHECK_HEADERS(netdb.h) AC_CHECK_HEADERS(malloc.h) @@ -315,7 +315,19 @@ AC_CHECK_FUNCS(inet_ntop, , AC_LIBOBJ(lib/inet_ntop)) AC_CHECK_FUNCS(inet_pton, , AC_LIBOBJ(lib/inet_pton)) -AC_CHECK_FUNCS(getaddrinfo, , AC_LIBOBJ(lib/getaddrinfo)) +# Tru64 UNIX has getaddrinfo() but has it renamed in libc as +# something else so we must include to get the +# redefinition. +AC_MSG_CHECKING([for getaddrinfo]) +AC_TRY_LINK([#include +#include +#include ],[getaddrinfo(NULL, NULL, NULL, NULL);], + [AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_GETADDRINFO, 1, + [Define if you have the `getaddrinfo' function.])], + [AC_MSG_RESULT([no]) + AC_LIBOBJ(lib/getaddrinfo)]) + AC_CHECK_FUNCS(getnameinfo, , AC_LIBOBJ(lib/getnameinfo)) AC_CHECK_MEMBER([struct sockaddr.sa_len], @@ -348,7 +360,7 @@ dnl AC_FUNC_MEMCMP AC_FUNC_UTIME_NULL -AC_CHECK_FUNCS(waitpid wait4 getcwd strdup strerror chown chmod mknod) +AC_CHECK_FUNCS(waitpid wait4 getcwd strdup strerror chown chmod mknod mkfifo) AC_CHECK_FUNCS(fchmod fstat strchr readlink link utime utimes strftime) AC_CHECK_FUNCS(memmove lchown vsnprintf snprintf asprintf setsid glob strpbrk) AC_CHECK_FUNCS(strlcat strlcpy mtrace mallinfo setgroups) diff -u -r rsync-2.5.4/lib/getaddrinfo.c rsync-2.5.4.new/lib/getaddrinfo.c --- rsync-2.5.4/lib/getaddrinfo.c Fri Dec 14 16:33:12 2001 +++ rsync-2.5.4.new/lib/getaddrinfo.c Fri Mar 22 09:24:10 2002 @@ -41,6 +41,20 @@ #include +/****** Start Zoong added here */ + +#define EAI_BADHINTS 12 +#define EAI_PROTOCOL 13 +#define EAI_MAX 14 + +#define AI_PASSIVE 0x00000001 /* get address to use bind() */ +#define AI_CANONNAME 0x00000002 /* fill ai_canonname */ +#define AI_NUMERICHOST 0x00000004 /* prevent name resolution */ +#define AI_MASK (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST) + +/****** End Zoong added here */ + + #if defined(__KAME__) && defined(INET6) # define FAITH #endif diff -u -r rsync-2.5.4/rsync.h rsync-2.5.4.new/rsync.h --- rsync-2.5.4/rsync.h Sat Feb 23 11:17:50 2002 +++ rsync-2.5.4.new/rsync.h Fri Mar 22 09:24:01 2002 @@ -109,6 +109,11 @@ #include #endif +#ifdef HAVE_SYS_UN_H +#define _SOCKADDR_LEN +#include +#endif + #ifdef HAVE_STRING_H #include #endif diff -u -r rsync-2.5.4/syscall.c rsync-2.5.4.new/syscall.c --- rsync-2.5.4/syscall.c Tue Feb 19 09:44:23 2002 +++ rsync-2.5.4.new/syscall.c Fri Mar 22 09:24:01 2002 @@ -67,6 +67,36 @@ { if (dry_run) return 0; CHECK_RO + +#if HAVE_MKFIFO + if (S_ISFIFO(mode)) { + return mkfifo(pathname, mode); + } +#endif + +#if HAVE_SYS_UN_H + if (S_ISSOCK(mode)) { + int sock; + struct sockaddr_un saddr; + int len = strlen(pathname) + 1; /* include null */ + + saddr.sun_family = AF_UNIX; + strncpy(saddr.sun_path, pathname, sizeof(saddr.sun_path)); + saddr.sun_len = len > sizeof(saddr.sun_path) ? sizeof(saddr.sun_path): len; + + if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) { + return -1; + } + unlink(pathname); + if ((bind(sock, (struct sockaddr*)&saddr, sizeof(saddr))) < 0) { + return -1; + } + close(sock); + return do_chmod(pathname, mode); + } +#endif + + return mknod(pathname, mode, dev); } #endif