diff options
author | root <root@rshg054.dnsready.net> | 2012-03-04 00:01:47 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-03-04 00:01:47 +0000 |
commit | f0fa42126da9e3eec6b98388b35c67929fa20dae (patch) | |
tree | 0a4ad5b073e8500ff0e8920ba509942598576463 /extra/cvsps | |
parent | d8fb549de0ef3299436c448f7b45fd8ebee8e733 (diff) |
Sun Mar 4 00:01:47 UTC 2012
Diffstat (limited to 'extra/cvsps')
-rw-r--r-- | extra/cvsps/PKGBUILD | 37 | ||||
-rw-r--r-- | extra/cvsps/call-cvs-q-option.patch | 34 | ||||
-rw-r--r-- | extra/cvsps/cvsps-2.2b1-bufferoverflow.patch | 65 | ||||
-rw-r--r-- | extra/cvsps/cvsps-2.2b1-dynamic-logbuf.patch | 133 | ||||
-rw-r--r-- | extra/cvsps/cvsps-2.2b1-man.patch | 29 | ||||
-rw-r--r-- | extra/cvsps/seperate-CPPFLAGS.patch | 29 | ||||
-rw-r--r-- | extra/cvsps/use-INADDR_NONE-define.patch | 28 | ||||
-rw-r--r-- | extra/cvsps/use-__linux__-define.patch | 36 | ||||
-rw-r--r-- | extra/cvsps/use-offsetof-macro.patch | 32 |
9 files changed, 415 insertions, 8 deletions
diff --git a/extra/cvsps/PKGBUILD b/extra/cvsps/PKGBUILD index 72a624c20..650259bc1 100644 --- a/extra/cvsps/PKGBUILD +++ b/extra/cvsps/PKGBUILD @@ -1,24 +1,45 @@ -# $Id: PKGBUILD 149335 2012-02-06 20:45:16Z stephane $ +# $Id: PKGBUILD 151779 2012-03-02 17:28:27Z dan $ # Maintainer: # Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org> pkgname=cvsps -pkgver=2.1 -pkgrel=4 +pkgver=2.2b1 +pkgrel=1 pkgdesc="Generating 'patchset' information from a CVS repository" url="http://www.cobite.com/cvsps/" license=('GPL') arch=('i686' 'x86_64') depends=('zlib') -source=("http://www.cobite.com/${pkgname}/${pkgname}-${pkgver}.tar.gz") -md5sums=('bde2110ed9f5d14de8f8cb04e9d596fe') +source=("http://www.cobite.com/${pkgname}/${pkgname}-${pkgver}.tar.gz" + call-cvs-q-option.patch + cvsps-2.2b1-bufferoverflow.patch + cvsps-2.2b1-dynamic-logbuf.patch + cvsps-2.2b1-man.patch + seperate-CPPFLAGS.patch + use-INADDR_NONE-define.patch + use-__linux__-define.patch + use-offsetof-macro.patch) +md5sums=('997580e8e283034995b9209076858c68' + '06324c5e3c321126b76dc97fc6c00b34' + '2910012a11a24d5e4192cf9eae7dd259' + '970566460e72cb159426965d6e5763b3' + 'f9d2ee40e52ecd5096fa9a885418eee1' + '6baafbd7512aa52e1b83ed0bead32a6e' + 'a3a81481c07dcc676f5a82ae07e8ee89' + '9e2763315cbda02665c47827d38df459' + '8f7e6f09f42f76deeefe24bbfa509150') build() { - cd "${srcdir}/${pkgname}-${pkgver}" + cd "$srcdir/$pkgname-$pkgver" + for file in ${source[@]}; do + if [[ $file == *.patch ]]; then + patch -Np1 < ../$file + fi + done make prefix=/usr } package() { - cd "${srcdir}/${pkgname}-${pkgver}" - make prefix="${pkgdir}/usr" install + cd "$srcdir/$pkgname-$pkgver" + make prefix="$pkgdir/usr" install } diff --git a/extra/cvsps/call-cvs-q-option.patch b/extra/cvsps/call-cvs-q-option.patch new file mode 100644 index 000000000..a754b7c60 --- /dev/null +++ b/extra/cvsps/call-cvs-q-option.patch @@ -0,0 +1,34 @@ +From 49d7a3e44b54f18b0e2762d8dbb087ad4c2f0276 Mon Sep 17 00:00:00 2001 +From: Yann Dirson <ydirson@altern.org> +Date: Thu, 15 Jun 2006 09:48:08 +0200 +Subject: [PATCH] Call cvs with -q flag when fetching the log + +This gets rid of the neverending output polution cvs sends to stderr, +which is mostly useless and has a strong potential to hide real problem +reports +--- + cvsps.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cvsps.c b/cvsps.c +index d94dfe0..be700ba 100644 +--- a/cvsps.c ++++ b/cvsps.c +@@ -301,12 +301,12 @@ static void load_from_cvs() + * which is necessary to fill in the pre_rev stuff for a + * PatchSetMember + */ +- snprintf(cmd, BUFSIZ, "cvs %s %s %s -d '%s<;%s' %s", compress_arg, norc, ltype, date_str, date_str, use_rep_buff); ++ snprintf(cmd, BUFSIZ, "cvs %s %s -q %s -d '%s<;%s' %s", compress_arg, norc, ltype, date_str, date_str, use_rep_buff); + } + else + { + date_str[0] = 0; +- snprintf(cmd, BUFSIZ, "cvs %s %s %s %s", compress_arg, norc, ltype, use_rep_buff); ++ snprintf(cmd, BUFSIZ, "cvs %s %s -q %s %s", compress_arg, norc, ltype, use_rep_buff); + } + + debug(DEBUG_STATUS, "******* USING CMD %s", cmd); +-- +1.6.5.GIT + diff --git a/extra/cvsps/cvsps-2.2b1-bufferoverflow.patch b/extra/cvsps/cvsps-2.2b1-bufferoverflow.patch new file mode 100644 index 000000000..2a82cd4e0 --- /dev/null +++ b/extra/cvsps/cvsps-2.2b1-bufferoverflow.patch @@ -0,0 +1,65 @@ +--- cvsps-2.2b1/cvsps.c 2010-09-07 18:13:42.760727491 +0200 ++++ cvsps-2.2b1_/cvsps.c 2010-09-07 18:05:11.083729441 +0200 +@@ -1065,17 +1065,16 @@ static CvsFile * parse_file(const char * + { + CvsFile * retval; + char fn[PATH_MAX]; +- int len = strlen(buff + 10); ++ size_t len = strlen(buff + 10); + char * p; + + /* once a single file has been parsed ok we set this */ + static int path_ok; +- ++ + /* chop the ",v" string and the "LF" */ + len -= 3; + memcpy(fn, buff + 10, len); + fn[len] = 0; +- + if (strncmp(fn, strip_path, strip_path_len) != 0) + { + /* if the very first file fails the strip path, +@@ -1096,10 +1095,10 @@ static CvsFile * parse_file(const char * + + while ((p = strstr(p, repository_path))) + lastp = p++; +- ++ + if (lastp) + { +- int len = strlen(repository_path); ++ size_t len = strlen(repository_path); + memcpy(strip_path, fn, lastp - fn + len + 1); + strip_path_len = lastp - fn + len + 1; + strip_path[strip_path_len] = 0; +@@ -1114,16 +1113,26 @@ static CvsFile * parse_file(const char * + * + * For now just ignore such files + */ +- debug(DEBUG_APPMSG1, "WARNING: file %s doesn't match strip_path %s. ignoring", ++ debug(DEBUG_APPMSG1, "WARNING: file %s doesn't match strip_path %s. ignoring", + fn, strip_path); + return NULL; + } + + ok: +- path_ok = 1; +- ++ /* ++ fix for rhbz#576076 ++ ./cvsps --norc -q --cvs-direct -u -A --root :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot NSS ++ */ ++ if(len <= strip_path_len) ++ { ++ debug(DEBUG_APPMSG1, "WARNING: file %s doesn't match strip_path %s. ignoring", ++ fn, strip_path); ++ return NULL; ++ } + /* remove from beginning the 'strip_path' string */ + len -= strip_path_len; ++ path_ok = 1; ++ + memmove(fn, fn + strip_path_len, len); + fn[len] = 0; + diff --git a/extra/cvsps/cvsps-2.2b1-dynamic-logbuf.patch b/extra/cvsps/cvsps-2.2b1-dynamic-logbuf.patch new file mode 100644 index 000000000..03e4e7672 --- /dev/null +++ b/extra/cvsps/cvsps-2.2b1-dynamic-logbuf.patch @@ -0,0 +1,133 @@ +# From: http://ydirson.free.fr/soft/git/cvsps.git + +commit 76a9c2aaa0d2957de0bc8f0c0b994abfd1645a50 +Author: David D. Kilzer <ddkilzer@kilzer.net> +Date: Mon Jun 20 01:04:34 2005 +0200 + + Dynamically allocate the log buffer to prevent warning messages + + On anoncvs.opensource.apple.com (Apple's anonymous CVS server for + WebKit), some very long log entries were included in CVS. I got tired + of cvsps-2.1 truncating them, so I made the 'logbuff' buffer be + dynamically allocated. + +diff --git i/cache.c w/cache.c +index 4c51cf7..01a8ed3 100644 +--- i/cache.c ++++ w/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 i/cvsps.c w/cvsps.c +index f0e7d29..db28d7c 100644 +--- i/cvsps.c ++++ w/cvsps.c +@@ -269,7 +269,8 @@ static void load_from_cvs() + PatchSetMember * psm = NULL; + char datebuff[26]; + 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]; +@@ -277,6 +278,12 @@ static void load_from_cvs() + char use_rep_buff[PATH_MAX]; + char * ltype; + ++ 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)) + { + ltype = "rlog"; +@@ -484,25 +491,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 +- * (unless truncation happens) +- * 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; + } + + debug(DEBUG_STATUS, "appending %s to log", buff); diff --git a/extra/cvsps/cvsps-2.2b1-man.patch b/extra/cvsps/cvsps-2.2b1-man.patch new file mode 100644 index 000000000..3e6816fd5 --- /dev/null +++ b/extra/cvsps/cvsps-2.2b1-man.patch @@ -0,0 +1,29 @@ +diff -up cvsps-2.2b1/cvsps.1~ cvsps-2.2b1/cvsps.1 +--- cvsps-2.2b1/cvsps.1~ 2008-04-02 04:18:44.000000000 +0300 ++++ cvsps-2.2b1/cvsps.1 2010-05-18 21:10:39.000000000 +0300 +@@ -11,7 +11,7 @@ to a collection of files, and all commit + single 'cvs commit' command). This information is valuable to seeing the + big picture of the evolution of a cvs project. While cvs tracks revision + information, it is often difficult to see what changes were committed +-'atomically' to the repository. ++\'atomically' to the repository. + .SH OPTIONS + .TP + .B \-h +@@ -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 +@@ -103,6 +103,7 @@ Override the setting of CVSROOT (overrid + .TP + .B \-q + Be quiet about warnings. ++.TP + .B \-A + Show ancestor branch when a new branch is found. + .TP diff --git a/extra/cvsps/seperate-CPPFLAGS.patch b/extra/cvsps/seperate-CPPFLAGS.patch new file mode 100644 index 000000000..a29923b49 --- /dev/null +++ b/extra/cvsps/seperate-CPPFLAGS.patch @@ -0,0 +1,29 @@ +From 5991e8b0acf1dbe3487c1f246a1d215b346a61f0 Mon Sep 17 00:00:00 2001 +From: Yann Dirson <ydirson@altern.org> +Date: Sat, 17 Jun 2006 00:03:41 +0200 +Subject: [PATCH] Separate CPPFLAGS from CFLAGS + +This allows to set CGLAGS on command-line without interfering with +preprocessor options +--- + Makefile | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 2e34ec6..05ca856 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,8 +1,8 @@ + MAJOR=2 + MINOR=1 + CC?=gcc +-CFLAGS?=-g -O2 -Wall +-CFLAGS+=-I. -DVERSION=\"$(MAJOR).$(MINOR)\" ++CFLAGS?=-g -O2 -Wall ++CPPFLAGS?=-I. -DVERSION=\"$(MAJOR).$(MINOR)\" + prefix?=/usr/local + OBJS=\ + cbtcommon/debug.o\ +-- +1.6.5.GIT + diff --git a/extra/cvsps/use-INADDR_NONE-define.patch b/extra/cvsps/use-INADDR_NONE-define.patch new file mode 100644 index 000000000..a1a529187 --- /dev/null +++ b/extra/cvsps/use-INADDR_NONE-define.patch @@ -0,0 +1,28 @@ +From c498733b4283b3987bdca6949a5e304244b64cfc Mon Sep 17 00:00:00 2001 +From: Pavel Roskin <proski@gnu.org> +Date: Tue, 13 Jun 2006 00:32:33 -0400 +Subject: [PATCH] Use INADDR_NONE instead of -1 to check inet_addr() result + +INADDR_NONE is not equal to -1 on 64-bit systems. + +Signed-off-by: Pavel Roskin <proski@gnu.org> +--- + cbtcommon/tcpsocket.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/cbtcommon/tcpsocket.c b/cbtcommon/tcpsocket.c +index a174007..f31060e 100644 +--- a/cbtcommon/tcpsocket.c ++++ b/cbtcommon/tcpsocket.c +@@ -198,7 +198,7 @@ convert_address(long *dest, const char *addr_str) + memcpy(dest, &ip.s_addr, sizeof(ip.s_addr)); + } + #else +- if ( (*dest = inet_addr(addr_str)) != -1) ++ if ( (*dest = inet_addr(addr_str)) != INADDR_NONE) + { + /* nothing */ + } +-- +1.6.5.GIT + diff --git a/extra/cvsps/use-__linux__-define.patch b/extra/cvsps/use-__linux__-define.patch new file mode 100644 index 000000000..132629593 --- /dev/null +++ b/extra/cvsps/use-__linux__-define.patch @@ -0,0 +1,36 @@ +From 4598349e81068d4af9a893c6433958cf9b4fa835 Mon Sep 17 00:00:00 2001 +From: Pavel Roskin <proski@gnu.org> +Date: Tue, 13 Jun 2006 00:32:31 -0400 +Subject: [PATCH] Use __linux__ conditional, not LINUX. + +__linux__ is defined automatically, LINUX is not. + +Signed-off-by: Pavel Roskin <proski@gnu.org> +--- + cbtcommon/tcpsocket.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cbtcommon/tcpsocket.c b/cbtcommon/tcpsocket.c +index 27cc13a..a174007 100644 +--- a/cbtcommon/tcpsocket.c ++++ b/cbtcommon/tcpsocket.c +@@ -185,14 +185,14 @@ tcp_connect(int sockfd, const char *rem_addr, unsigned short port) + int + convert_address(long *dest, const char *addr_str) + { +-#ifdef LINUX ++#ifdef __linux__ + struct in_addr ip; + #endif + int retval = 0; + char errstr[256]; + + /* first try converting "numbers and dots" notation */ +-#ifdef LINUX ++#ifdef __linux__ + if ( inet_aton(addr_str, &ip) ) + { + memcpy(dest, &ip.s_addr, sizeof(ip.s_addr)); +-- +1.6.5.GIT + diff --git a/extra/cvsps/use-offsetof-macro.patch b/extra/cvsps/use-offsetof-macro.patch new file mode 100644 index 000000000..ff2961f07 --- /dev/null +++ b/extra/cvsps/use-offsetof-macro.patch @@ -0,0 +1,32 @@ +From 4fad63b82746ea571edc2ec1100ad3208cf5af08 Mon Sep 17 00:00:00 2001 +From: Eric Hopper <hopper@omnifarious.org> +Date: Fri, 29 Jun 2007 01:30:09 -0700 +Subject: [PATCH] Use offsetof macro instead of unportable pointer arithmetic. + +--- + cbtcommon/list.h | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/cbtcommon/list.h b/cbtcommon/list.h +index 4ee245d..cf4b3ed 100644 +--- a/cbtcommon/list.h ++++ b/cbtcommon/list.h +@@ -23,6 +23,7 @@ + */ + + #include "inline.h" ++#include <stddef.h> + + struct list_head { + struct list_head *next, *prev; +@@ -107,6 +108,6 @@ static INLINE void list_splice(struct list_head *list, struct list_head *head) + } + + #define list_entry(ptr, type, member) \ +- ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) ++ ((type *)((char *)(ptr)-offsetof(type, member))) + + #endif /* _COMMON_LIST_H */ +-- +1.6.5.GIT + |