aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorscheidell <scheidell@FreeBSD.org>2012-07-04 02:06:01 +0800
committerscheidell <scheidell@FreeBSD.org>2012-07-04 02:06:01 +0800
commit131a0bbed7457505637c72c47fa934027236a9db (patch)
treec8c417d6d64261bf6e79bd83adc1cf98933537f3 /net
parentb0ec23e875ae7b4858a8b11faef238816e1fca43 (diff)
downloadfreebsd-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/Makefile2
-rw-r--r--net/rdist6/files/patch-rdist.c404
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