summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devel/cvsps/Makefile4
-rw-r--r--devel/cvsps/distinfo8
-rw-r--r--devel/cvsps/patches/patch-ab71
-rw-r--r--devel/cvsps/patches/patch-ac55
-rw-r--r--devel/cvsps/patches/patch-ad26
-rw-r--r--devel/cvsps/patches/patch-ae13
-rw-r--r--devel/cvsps/patches/patch-af13
7 files changed, 175 insertions, 15 deletions
diff --git a/devel/cvsps/Makefile b/devel/cvsps/Makefile
index bfe42d46d1e..a2da78d3094 100644
--- a/devel/cvsps/Makefile
+++ b/devel/cvsps/Makefile
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.21 2008/10/26 23:52:11 wiz Exp $
+# $NetBSD: Makefile,v 1.22 2009/08/30 17:16:53 schmonz Exp $
#
DISTNAME= cvsps-2.1
-PKGREVISION= 1
+PKGREVISION= 2
CATEGORIES= devel scm
MASTER_SITES= ${HOMEPAGE}
diff --git a/devel/cvsps/distinfo b/devel/cvsps/distinfo
index 63066629694..64ef707cc5d 100644
--- a/devel/cvsps/distinfo
+++ b/devel/cvsps/distinfo
@@ -1,7 +1,11 @@
-$NetBSD: distinfo,v 1.8 2008/02/03 15:56:57 tnn Exp $
+$NetBSD: distinfo,v 1.9 2009/08/30 17:16:53 schmonz Exp $
SHA1 (cvsps-2.1.tar.gz) = a53a62b121e7b86e07a393bcb8aa4f0492a747c4
RMD160 (cvsps-2.1.tar.gz) = a3063f638fbf1136761549658432d5842e4a766f
Size (cvsps-2.1.tar.gz) = 61634 bytes
SHA1 (patch-aa) = 21e93db185459d7550ab30a117c4679f6d6fa0fb
-SHA1 (patch-ab) = d990e59b00f5d83057239371162d3c246b999323
+SHA1 (patch-ab) = c9357a01388a9631ba960661183981bb31cbf53b
+SHA1 (patch-ac) = 07f6d1955c0fde42784f8891b1136f12fa5dbfa4
+SHA1 (patch-ad) = 20d84dc236a5c259677fdf68268de5bb64e6d26f
+SHA1 (patch-ae) = 345036b4021f90a2f6629a5d32e85caa786d961f
+SHA1 (patch-af) = d32eb67ede1d81ee3abe55a7f94515fcf3ea93cf
diff --git a/devel/cvsps/patches/patch-ab b/devel/cvsps/patches/patch-ab
index a842d206b69..b02f39a3fd3 100644
--- a/devel/cvsps/patches/patch-ab
+++ b/devel/cvsps/patches/patch-ab
@@ -1,15 +1,64 @@
-$NetBSD: patch-ab,v 1.1 2005/07/15 22:25:58 kristerw Exp $
+$NetBSD: patch-ab,v 1.2 2009/08/30 17:16:54 schmonz Exp $
---- cvsps.c.orig Sat Jul 16 00:22:10 2005
-+++ cvsps.c Sat Jul 16 00:22:40 2005
-@@ -2550,9 +2550,9 @@
+--- cvsps.c.orig 2009-08-30 13:07:32.000000000 -0400
++++ cvsps.c
+@@ -265,7 +265,8 @@ static void load_from_cvs()
+ PatchSetMember * psm = NULL;
+ char datebuff[20];
+ char authbuff[AUTH_STR_MAX];
+- char logbuff[LOG_STR_MAX + 1];
++ int logbufflen = LOG_STR_MAX + 1;
++ char * logbuff = malloc(logbufflen);
+ int loglen = 0;
+ int have_log = 0;
+ char cmd[BUFSIZ];
+@@ -273,6 +274,12 @@ static void load_from_cvs()
+ char use_rep_buff[PATH_MAX];
+ char * ltype;
- for (next = ps->members.next; next != &ps->members; next = next->next)
++ if (logbuff == NULL)
++ {
++ debug(DEBUG_SYSERROR, "could not malloc %d bytes for logbuff in load_from_cvs", logbufflen);
++ exit(1);
++ }
++
+ if (!no_rlog && !test_log_file && cvs_check_cap(CAP_HAVE_RLOG))
{
-+ int d1, d2;
- PatchSetMember * psm = list_entry(next, PatchSetMember, link);
- rev = psm->pre_rev;
-- int d1, d2;
+ ltype = "rlog";
+@@ -480,24 +487,22 @@ static void load_from_cvs()
+ */
+ if (have_log || !is_revision_metadata(buff))
+ {
+- /* if the log buffer is full, that's it.
+- *
+- * Also, read lines (fgets) always have \n in them
+- * which we count on. So if truncation happens,
+- * be careful to put a \n on.
+- *
+- * Buffer has LOG_STR_MAX + 1 for room for \0 if
+- * necessary
+- */
+- if (loglen < LOG_STR_MAX)
++ /* If the log buffer is full, try to reallocate more. */
++ if (loglen < logbufflen)
+ {
+ int len = strlen(buff);
+
+- if (len >= LOG_STR_MAX - loglen)
++ if (len >= logbufflen - loglen)
+ {
+- debug(DEBUG_APPMSG1, "WARNING: maximum log length exceeded, truncating log");
+- len = LOG_STR_MAX - loglen;
+- buff[len - 1] = '\n';
++ debug(DEBUG_STATUS, "reallocating logbufflen to %d bytes for file %s", logbufflen, file->filename);
++ logbufflen += (len >= LOG_STR_MAX ? (len+1) : LOG_STR_MAX);
++ char * newlogbuff = realloc(logbuff, logbufflen);
++ if (newlogbuff == NULL)
++ {
++ debug(DEBUG_SYSERROR, "could not realloc %d bytes for logbuff in load_from_cvs", logbufflen);
++ exit(1);
++ }
++ logbuff = newlogbuff;
+ }
- /* the reason this is at all complicated has to do with a
- * branch off of a branch. it is possible (and indeed
+ debug(DEBUG_STATUS, "appending %s to log", buff);
diff --git a/devel/cvsps/patches/patch-ac b/devel/cvsps/patches/patch-ac
new file mode 100644
index 00000000000..7977987f23d
--- /dev/null
+++ b/devel/cvsps/patches/patch-ac
@@ -0,0 +1,55 @@
+$NetBSD: patch-ac,v 1.1 2009/08/30 17:16:54 schmonz Exp $
+
+--- cache.c.orig 2005-05-25 23:39:40.000000000 -0400
++++ cache.c
+@@ -108,10 +108,19 @@ time_t read_cache()
+ int tag_flags = 0;
+ char branchbuff[LOG_STR_MAX] = "";
+ int branch_add = 0;
+- char logbuff[LOG_STR_MAX] = "";
++ int logbufflen = LOG_STR_MAX + 1;
++ char * logbuff = malloc(logbufflen);
+ time_t cache_date = -1;
+ int read_version;
+
++ if (logbuff == NULL)
++ {
++ debug(DEBUG_SYSERROR, "could not malloc %d bytes for logbuff in read_cache", logbufflen);
++ exit(1);
++ }
++
++ logbuff[0] = 0;
++
+ if (!(fp = cache_open("r")))
+ goto out;
+
+@@ -299,8 +308,19 @@ time_t read_cache()
+ else
+ {
+ /* Make sure we have enough in the buffer */
+- if (strlen(logbuff)+strlen(buff)<LOG_STR_MAX)
+- strcat(logbuff, buff);
++ int len = strlen(buff);
++ if (strlen(logbuff) + len >= LOG_STR_MAX)
++ {
++ logbufflen += (len >= LOG_STR_MAX ? (len+1) : LOG_STR_MAX);
++ char * newlogbuff = realloc(logbuff, logbufflen);
++ if (newlogbuff == NULL)
++ {
++ debug(DEBUG_SYSERROR, "could not realloc %d bytes for logbuff in read_cache", logbufflen);
++ exit(1);
++ }
++ logbuff = newlogbuff;
++ }
++ strcat(logbuff, buff);
+ }
+ break;
+ case CACHE_NEED_PS_MEMBERS:
+@@ -332,6 +352,7 @@ time_t read_cache()
+ out_close:
+ fclose(fp);
+ out:
++ free(logbuff);
+ return cache_date;
+ }
+
diff --git a/devel/cvsps/patches/patch-ad b/devel/cvsps/patches/patch-ad
new file mode 100644
index 00000000000..91f410b34d1
--- /dev/null
+++ b/devel/cvsps/patches/patch-ad
@@ -0,0 +1,26 @@
+$NetBSD: patch-ad,v 1.1 2009/08/30 17:16:54 schmonz Exp $
+
+--- cap.c.orig 2005-05-25 23:39:40.000000000 -0400
++++ cap.c
+@@ -121,11 +121,19 @@ int check_version_string(const char * st
+ return 0;
+ }
+
++ /* We might have encountered a FreeBSD system which
++ * has a mucked up version string of:
++ * Concurrent Versions System (CVS) '1.11.17'-FreeBSD (client/server)
++ * so re-test just in case
++ */
+ p += skip;
+ if (sscanf(p, "%d.%d.%d", &major, &minor, &extra) != 3)
+ {
+- debug(DEBUG_APPMSG1, "WARNING: malformed CVS version: %s", str);
+- return 0;
++ if (sscanf(p, "'%d.%d.%d'", &major, &minor, &extra) != 3)
++ {
++ debug(DEBUG_APPMSG1, "WARNING: malformed CVS version: %s", str);
++ return 0;
++ }
+ }
+
+ return (major > req_major ||
diff --git a/devel/cvsps/patches/patch-ae b/devel/cvsps/patches/patch-ae
new file mode 100644
index 00000000000..01a492f61c0
--- /dev/null
+++ b/devel/cvsps/patches/patch-ae
@@ -0,0 +1,13 @@
+$NetBSD: patch-ae,v 1.1 2009/08/30 17:16:54 schmonz Exp $
+
+--- cbtcommon/tcpsocket.c.orig 2005-05-25 23:39:40.000000000 -0400
++++ cbtcommon/tcpsocket.c
+@@ -198,7 +198,7 @@ convert_address(long *dest, const char *
+ memcpy(dest, &ip.s_addr, sizeof(ip.s_addr));
+ }
+ #else
+- if ( (*dest = inet_addr(addr_str)) != -1)
++ if ( (*dest = inet_addr(addr_str)) != (in_addr_t)-1)
+ {
+ /* nothing */
+ }
diff --git a/devel/cvsps/patches/patch-af b/devel/cvsps/patches/patch-af
new file mode 100644
index 00000000000..70d5fded6be
--- /dev/null
+++ b/devel/cvsps/patches/patch-af
@@ -0,0 +1,13 @@
+$NetBSD: patch-af,v 1.1 2009/08/30 17:16:54 schmonz Exp $
+
+--- cvsps.1.orig 2005-05-25 23:39:40.000000000 -0400
++++ cvsps.1
+@@ -83,7 +83,7 @@ some hacks which are not generally appli
+ disable the use of rlog internally. Note: rlog is
+ required for stable PatchSet numbering. Use with care.
+ .TP
+-.B \-\-diffs\-opts <option string>
++.B \-\-diff\-opts <option string>
+ send a custom set of options to diff, for example to increase
+ the number of context lines, or change the diff format.
+ .TP