diff options
author | scheidell <scheidell@FreeBSD.org> | 2012-07-04 02:06:01 +0800 |
---|---|---|
committer | scheidell <scheidell@FreeBSD.org> | 2012-07-04 02:06:01 +0800 |
commit | 131a0bbed7457505637c72c47fa934027236a9db (patch) | |
tree | c8c417d6d64261bf6e79bd83adc1cf98933537f3 /net | |
parent | b0ec23e875ae7b4858a8b11faef238816e1fca43 (diff) | |
download | freebsd-ports-gnome-131a0bbed7457505637c72c47fa934027236a9db.tar.gz freebsd-ports-gnome-131a0bbed7457505637c72c47fa934027236a9db.tar.zst freebsd-ports-gnome-131a0bbed7457505637c72c47fa934027236a9db.zip |
- Patch to handle files > 2GB
- Bump PORTREVISION
PR: ports/168972
Submitted by: Andre Albsmeier <Andre.Albsmeier@siemens.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/rdist6/Makefile | 2 | ||||
-rw-r--r-- | net/rdist6/files/patch-rdist.c | 404 |
2 files changed, 405 insertions, 1 deletions
diff --git a/net/rdist6/Makefile b/net/rdist6/Makefile index 1c3d6d57b4bc..7408c2d91e83 100644 --- a/net/rdist6/Makefile +++ b/net/rdist6/Makefile @@ -7,7 +7,7 @@ PORTNAME= rdist PORTVERSION= 6.1.5 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= net MASTER_SITES= http://www.magnicomp.com/download/rdist/ \ ftp://ftp.sunet.se/pub/unix/admin/mirror-magnicomp/download/rdist/ diff --git a/net/rdist6/files/patch-rdist.c b/net/rdist6/files/patch-rdist.c new file mode 100644 index 000000000000..a9e3061b8784 --- /dev/null +++ b/net/rdist6/files/patch-rdist.c @@ -0,0 +1,404 @@ +--- ./src/rdist.c.ORI 2012-06-12 07:35:16.000000000 +0200 ++++ ./src/rdist.c 2012-06-12 07:49:18.000000000 +0200 +@@ -62,8 +62,8 @@ + char *distfile = NULL; /* Name of distfile to use */ + int maxchildren = MAXCHILDREN; /* Max no of concurrent PIDs */ + int nflag = 0; /* Say without doing */ +-long min_freespace = 0; /* Min filesys free space */ +-long min_freefiles = 0; /* Min filesys free # files */ ++int64_t min_freespace = 0; /* Min filesys free space */ ++int64_t min_freefiles = 0; /* Min filesys free # files */ + FILE *fin = NULL; /* Input file pointer */ + struct group *gr = NULL; /* Static area for getgrent */ + char localmsglist[] = "stdout=all:notify=all:syslog=nerror,ferror"; +@@ -109,6 +109,7 @@ + register char *cp; + int cmdargs = 0; + int c; ++ const char *errstr; + + /* + * We initialize progname here instead of init() because +@@ -178,10 +179,20 @@ + error("\"%s\" is not a number.", optarg); + usage(); + } +- if (c == 'a') +- min_freespace = atoi(optarg); +- else if (c == 'A') +- min_freefiles = atoi(optarg); ++ if (c == 'a') { ++ min_freespace = (int64_t)strtonum(optarg, ++ 0, LLONG_MAX, &errstr); ++ if (errstr) ++ fatalerr("Minimum free space is %s: " ++ "'%s'", errstr, optarg); ++ } ++ else if (c == 'A') { ++ min_freefiles = (int64_t)strtonum(optarg, ++ 0, LLONG_MAX, &errstr); ++ if (errstr) ++ fatalerr("Minimum free files is %s: " ++ "'%s'", errstr, optarg); ++ } + else if (c == 'M') + maxchildren = atoi(optarg); + else if (c == 't') +--- ./src/server.c.ORI 2012-06-12 07:35:16.000000000 +0200 ++++ ./src/server.c 2012-06-12 08:14:41.651950502 +0200 +@@ -62,8 +62,8 @@ + int catname = 0; /* cat name to target name */ + char *sptarget[32]; /* stack of saved ptarget's for directories */ + char *fromhost = NULL; /* Client hostname */ +-static long min_freespace = 0; /* Minimium free space on a filesystem */ +-static long min_freefiles = 0; /* Minimium free # files on a filesystem */ ++static int64_t min_freespace = 0; /* Minimium free space on a filesystem */ ++static int64_t min_freefiles = 0; /* Minimium free # files on a filesystem */ + int oumask; /* Old umask */ + + /* +@@ -645,8 +645,8 @@ + case S_IFLNK: + case S_IFDIR: + case S_IFREG: +- (void) sendcmd(QC_YES, "%ld %ld %o %s %s", +- (long) stb.st_size, ++ (void) sendcmd(QC_YES, "%lld %ld %o %s %s", ++ (long long) stb.st_size, + stb.st_mtime, + stb.st_mode & 07777, + getusername(stb.st_uid, target, options), +@@ -783,13 +783,13 @@ + wrerr = 0; + olderrno = 0; + for (i = 0; i < size; i += BUFSIZ) { +- int amt = BUFSIZ; ++ off_t amt = BUFSIZ; + + cp = buf; + if (i + amt > size) + amt = size - i; + do { +- int j; ++ ssize_t j; + + j = readrem(cp, amt); + if (j <= 0) { +@@ -1306,6 +1306,7 @@ + { + register char *cp = cmd; + char *estr; ++ const char *errstr; + + switch (*cp++) { + case SC_HOSTNAME: /* Set hostname */ +@@ -1322,19 +1323,15 @@ + break; + + case SC_FREESPACE: /* Minimium free space */ +- if (!isdigit(*cp)) { +- fatalerr("Expected digit, got '%s'.", cp); +- return; +- } +- min_freespace = (unsigned long) atoi(cp); ++ min_freespace = (int64_t)strtonum(cp, 0, LLONG_MAX, &errstr); ++ if (errstr) ++ fatalerr("Minimum free space is %s: '%s'", errstr, optarg); + break; + + case SC_FREEFILES: /* Minimium free files */ +- if (!isdigit(*cp)) { +- fatalerr("Expected digit, got '%s'.", cp); +- return; +- } +- min_freefiles = (unsigned long) atoi(cp); ++ min_freefiles = (int64_t)strtonum(cp, 0, LLONG_MAX, &errstr); ++ if (errstr) ++ fatalerr("Minimum free files is %s: '%s'", errstr, optarg); + break; + + case SC_LOGGING: /* Logging options */ +@@ -1364,7 +1361,7 @@ + time_t mtime, atime; + char *owner, *group, *file; + char new[MAXPATHLEN]; +- long freespace = -1, freefiles = -1; ++ int64_t freespace = -1, freefiles = -1; + char *cp = cmd; + + /* +@@ -1388,7 +1385,7 @@ + /* + * Get file size + */ +- size = strtol(cp, &cp, 10); ++ size = (off_t) strtoll(cp, &cp, 10); + if (*cp++ != ' ') { + error("recvit: size not delimited"); + return; +@@ -1397,7 +1394,7 @@ + /* + * Get modification time + */ +- mtime = strtol(cp, &cp, 10); ++ mtime = (time_t) strtol(cp, &cp, 10); + if (*cp++ != ' ') { + error("recvit: mtime not delimited"); + return; +@@ -1441,8 +1438,8 @@ + } + + debugmsg(DM_MISC, +- "recvit: opts = %04o mode = %04o size = %d mtime = %d", +- opts, mode, size, mtime); ++ "recvit: opts = %04o mode = %04o size = %lld mtime = %d", ++ opts, mode, (long long) size, mtime); + debugmsg(DM_MISC, + "recvit: owner = '%s' group = '%s' file = '%s' catname = %d isdir = %d", + owner, group, file, catname, (type == S_IFDIR) ? 1 : 0); +@@ -1486,7 +1483,7 @@ + */ + if (min_freespace || min_freefiles) { + /* Convert file size to kilobytes */ +- long fsize = (long) (size / 1024); ++ int64_t fsize = (int64_t)size / 1024; + + if (getfilesysinfo(target, &freespace, &freefiles) != 0) + return; +@@ -1498,15 +1495,15 @@ + if (min_freespace && (freespace >= 0) && + (freespace - fsize < min_freespace)) { + error( +- "%s: Not enough free space on filesystem: min %d free %d", +- target, min_freespace, freespace); ++ "%s: Not enough free space on filesystem: min %lld " ++ "free %lld", target, min_freespace, freespace); + return; + } + if (min_freefiles && (freefiles >= 0) && + (freefiles - 1 < min_freefiles)) { + error( +- "%s: Not enough free files on filesystem: min %d free %d", +- target, min_freefiles, freefiles); ++ "%s: Not enough free files on filesystem: min %lld free " ++ "%lld", target, min_freefiles, freefiles); + return; + } + } +--- ./src/docmd.c.ORI 2012-06-12 07:35:16.000000000 +0200 ++++ ./src/docmd.c 2012-06-12 08:11:29.000000000 +0200 +@@ -102,7 +102,8 @@ + register struct namelist *to; + time_t lmod; + { +- register int fd, len; ++ register int fd; ++ ssize_t len; + FILE *pf, *popen(); + struct stat stb; + static char buf[BUFSIZ]; +@@ -325,7 +326,7 @@ + register char *ruser, *cp; + static char *cur_host = NULL; + extern char *locuser; +- extern long min_freefiles, min_freespace; ++ extern int64_t min_freefiles, min_freespace; + extern char *remotemsglist; + char tuser[BUFSIZ], buf[BUFSIZ]; + u_char respbuff[BUFSIZ]; +@@ -416,13 +417,13 @@ + return(0); + } + if (min_freespace) { +- (void) sendcmd(C_SETCONFIG, "%c%d", SC_FREESPACE, ++ (void) sendcmd(C_SETCONFIG, "%c%lld", SC_FREESPACE, + min_freespace); + if (response() < 0) + return(0); + } + if (min_freefiles) { +- (void) sendcmd(C_SETCONFIG, "%c%d", SC_FREEFILES, ++ (void) sendcmd(C_SETCONFIG, "%c%lld", SC_FREEFILES, + min_freefiles); + if (response() < 0) + return(0); +--- ./src/common.c.ORI 2012-06-12 07:35:16.000000000 +0200 ++++ ./src/common.c 2012-06-12 08:01:34.000000000 +0200 +@@ -379,14 +379,14 @@ + */ + static u_char rembuf[BUFSIZ]; + static u_char *remptr; +-static int remleft; ++static ssize_t remleft; + + #define remc() (--remleft < 0 ? remmore() : *remptr++) + + /* + * Back end to remote read() + */ +-static int remread(fd, buf, bufsiz) ++static ssize_t remread(fd, buf, bufsiz) + int fd; + u_char *buf; + int bufsiz; +@@ -480,7 +480,7 @@ + /* + * Non-line-oriented remote read. + */ +-readrem(p, space) ++ssize_t readrem(p, space) + char *p; + register int space; + { +@@ -878,7 +878,7 @@ + extern POINTER *malloc(); + + if ((ptr = (char *)malloc(amt)) == NULL) +- fatalerr("Cannot malloc %d bytes of memory.", amt); ++ fatalerr("Cannot malloc %zu bytes of memory.", amt); + + return(ptr); + } +@@ -894,7 +894,7 @@ + extern POINTER *realloc(); + + if ((new = (char *)realloc(baseptr, amt)) == NULL) +- fatalerr("Cannot realloc %d bytes of memory.", amt); ++ fatalerr("Cannot realloc %zu bytes of memory.", amt); + + return(new); + } +@@ -910,7 +910,7 @@ + extern POINTER *calloc(); + + if ((ptr = (char *)calloc(num, esize)) == NULL) +- fatalerr("Cannot calloc %d * %d = %d bytes of memory.", ++ fatalerr("Cannot calloc %zu * %zu = %zu bytes of memory.", + num, esize, num * esize); + + return(ptr); +--- ./src/filesys.c.ORI 2012-06-12 07:35:16.000000000 +0200 ++++ ./src/filesys.c 2012-06-12 08:12:20.000000000 +0200 +@@ -434,8 +434,8 @@ + */ + int getfilesysinfo(file, freespace, freefiles) + char *file; +- long *freespace; +- long *freefiles; ++ int64_t *freespace; ++ int64_t *freefiles; + { + #if defined(STATFS_TYPE) + static statfs_t statfsbuf; +--- ./config/config-data.h.ORI 1998-11-10 04:59:47.000000000 +0100 ++++ ./config/config-data.h 2012-06-12 07:55:48.000000000 +0200 +@@ -58,10 +58,10 @@ + * Set default write(2) return and amount types. + */ + #if !defined(WRITE_RETURN_T) +-#define WRITE_RETURN_T int /* What write() returns */ ++#define WRITE_RETURN_T ssize_t /* What write() returns */ + #endif /* WRITE_RETURN_T */ + #if !defined(WRITE_AMT_T) +-#define WRITE_AMT_T int /* Amount to write */ ++#define WRITE_AMT_T size_t /* Amount to write */ + #endif /* WRITE_AMT_T */ + + #endif /* __configdata_h__ */ +--- ./src/client.c.ORI 2012-06-12 08:26:35.000000000 +0200 ++++ ./src/client.c 2012-06-12 08:57:34.000000000 +0200 +@@ -399,9 +399,9 @@ + /* + * Send file info + */ +- (void) sendcmd(C_RECVREG, "%o %04o %ld %ld %ld %s %s %s", ++ (void) sendcmd(C_RECVREG, "%o %04o %lld %ld %ld %s %s %s", + opts, stb->st_mode & 07777, +- (long) stb->st_size, ++ (long long) stb->st_size, + stb->st_mtime, stb->st_atime, + user, group, rname); + if (response() < 0) { +@@ -409,8 +409,8 @@ + return(-1); + } + +- debugmsg(DM_MISC, "Send file '%s' %d bytes\n", +- rname, (long) stb->st_size); ++ debugmsg(DM_MISC, "Send file '%s' %ld bytes\n", ++ rname, (long long) stb->st_size); + + /* + * Set remote time out alarm handler. +@@ -661,9 +661,9 @@ + /* + * Gather and send basic link info + */ +- (void) sendcmd(C_RECVSYMLINK, "%o %04o %ld %ld %ld %s %s %s", ++ (void) sendcmd(C_RECVSYMLINK, "%o %04o %lld %ld %ld %s %s %s", + opts, stb->st_mode & 07777, +- (long) stb->st_size, ++ (long long) stb->st_size, + stb->st_mtime, stb->st_atime, + user, group, rname); + if (response() < 0) +@@ -843,7 +843,7 @@ + /* + * Parse size + */ +- size = strtol(cp, &cp, 10); ++ size = strtoll(cp, &cp, 10); + if (*cp++ != ' ') { + error("update: size not delimited"); + return(US_NOTHING); +@@ -895,8 +895,8 @@ + + debugmsg(DM_MISC, "update(%s,) local mode %04o remote mode %04o\n", + rname, lmode, rmode); +- debugmsg(DM_MISC, "update(%s,) size %d mtime %d owner '%s' grp '%s'\n", +- rname, (int) size, mtime, owner, group); ++ debugmsg(DM_MISC, "update(%s,) size %lld mtime %d owner '%s' grp '%s'\n", ++ rname, (long long) size, mtime, owner, group); + + if (statp->st_mtime != mtime) { + if (statp->st_mtime < mtime && IS_ON(opts, DO_YOUNGER)) { +@@ -922,8 +922,8 @@ + } + + if (statp->st_size != size) { +- debugmsg(DM_MISC, "size does not match (%d != %d).\n", +- (int) statp->st_size, size); ++ debugmsg(DM_MISC, "size does not match (%lld != %lld).\n", ++ (long long) statp->st_size, (long long)size); + return(US_OUTDATE); + } + +--- ./src/child.c.ORI 1998-11-10 05:18:57.000000000 +0100 ++++ ./src/child.c 2012-06-12 08:58:16.000000000 +0200 +@@ -189,7 +189,7 @@ + CHILD *child; + { + char rbuf[BUFSIZ]; +- int amt; ++ ssize_t amt; + + debugmsg(DM_CALL, "[readchild(%s, %d, %d) start]", + child->c_name, child->c_pid, child->c_readfd); +@@ -208,7 +208,7 @@ + */ + while ((amt = read(child->c_readfd, rbuf, sizeof(rbuf))) > 0) { + /* XXX remove these debug calls */ +- debugmsg(DM_MISC, "[readchild(%s, %d, %d) got %d bytes]", ++ debugmsg(DM_MISC, "[readchild(%s, %d, %d) got %lld bytes]", + child->c_name, child->c_pid, child->c_readfd, amt); + + (void) xwrite(fileno(stdout), rbuf, amt); +@@ -217,7 +217,7 @@ + child->c_name, child->c_pid, child->c_readfd); + } + +- debugmsg(DM_MISC, "readchild(%s, %d, %d) done: amt = %d errno = %d\n", ++ debugmsg(DM_MISC, "readchild(%s, %d, %d) done: amt = %lld errno = %d\n", + child->c_name, child->c_pid, child->c_readfd, amt, errno); + + /*
\ No newline at end of file |