From 2c8f6e6e32e2b8ef048a69d94cab160f81504db3 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Mon, 23 Feb 2004 19:02:58 +0000 Subject: [PATCH] Updated to work with latest CVS source. --- tru64.diff | 249 +++++++++++------------------------------------------ 1 file changed, 50 insertions(+), 199 deletions(-) diff --git a/tru64.diff b/tru64.diff index 4afdf59..2376aab 100644 --- a/tru64.diff +++ b/tru64.diff @@ -1,172 +1,8 @@ -Hi Eckert, +This is an adapted version of the original by Zoong Pham. -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 @@ +--- rsync.h 11 Feb 2004 08:01:21 -0000 1.186 ++++ rsync.h 23 Feb 2004 18:56:02 -0000 +@@ -156,6 +156,11 @@ enum msgcode { #include #endif @@ -178,43 +14,58 @@ diff -u -r rsync-2.5.4/rsync.h rsync-2.5.4.new/rsync.h #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 @@ +--- syscall.c 18 Feb 2004 22:33:21 -0000 1.30 ++++ syscall.c 23 Feb 2004 18:56:02 -0000 +@@ -76,6 +76,29 @@ int do_mknod(char *pathname, mode_t mode { if (dry_run) return 0; - CHECK_RO + RETURN_ERROR_IF_RO_OR_LO; ++# 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 */ + -+#if HAVE_MKFIFO -+ if (S_ISFIFO(mode)) { -+ return mkfifo(pathname, mode); -+ } -+#endif ++ 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 HAVE_SYS_UN_H -+ if (S_ISSOCK(mode)) { -+ int sock; -+ struct sockaddr_un saddr; -+ int len = strlen(pathname) + 1; /* include null */ ++ 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 +--- lib/getaddrinfo.c 10 Jan 2003 22:38:25 -0000 1.17 ++++ lib/getaddrinfo.c 23 Feb 2004 18:56:02 -0000 +@@ -41,6 +41,20 @@ + + #include + ++/****** Start Zoong added here */ + -+ 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; ++#define EAI_BADHINTS 12 ++#define EAI_PROTOCOL 13 ++#define EAI_MAX 14 + -+ 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 ++#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 */ + - return mknod(pathname, mode, dev); - } ++ + #if defined(__KAME__) && defined(INET6) + # define FAITH #endif -- 2.34.1