[arch-commits] Commit in cvsps/repos (20 files)

Dan McGee dan at archlinux.org
Fri Mar 2 12:28:27 EST 2012


    Date: Friday, March 2, 2012 @ 12:28:27
  Author: dan
Revision: 151779

archrelease: copy trunk to extra-i686, extra-x86_64

Added:
  cvsps/repos/extra-i686/PKGBUILD
    (from rev 151778, cvsps/trunk/PKGBUILD)
  cvsps/repos/extra-i686/call-cvs-q-option.patch
    (from rev 151778, cvsps/trunk/call-cvs-q-option.patch)
  cvsps/repos/extra-i686/cvsps-2.2b1-bufferoverflow.patch
    (from rev 151778, cvsps/trunk/cvsps-2.2b1-bufferoverflow.patch)
  cvsps/repos/extra-i686/cvsps-2.2b1-dynamic-logbuf.patch
    (from rev 151778, cvsps/trunk/cvsps-2.2b1-dynamic-logbuf.patch)
  cvsps/repos/extra-i686/cvsps-2.2b1-man.patch
    (from rev 151778, cvsps/trunk/cvsps-2.2b1-man.patch)
  cvsps/repos/extra-i686/seperate-CPPFLAGS.patch
    (from rev 151778, cvsps/trunk/seperate-CPPFLAGS.patch)
  cvsps/repos/extra-i686/use-INADDR_NONE-define.patch
    (from rev 151778, cvsps/trunk/use-INADDR_NONE-define.patch)
  cvsps/repos/extra-i686/use-__linux__-define.patch
    (from rev 151778, cvsps/trunk/use-__linux__-define.patch)
  cvsps/repos/extra-i686/use-offsetof-macro.patch
    (from rev 151778, cvsps/trunk/use-offsetof-macro.patch)
  cvsps/repos/extra-x86_64/PKGBUILD
    (from rev 151778, cvsps/trunk/PKGBUILD)
  cvsps/repos/extra-x86_64/call-cvs-q-option.patch
    (from rev 151778, cvsps/trunk/call-cvs-q-option.patch)
  cvsps/repos/extra-x86_64/cvsps-2.2b1-bufferoverflow.patch
    (from rev 151778, cvsps/trunk/cvsps-2.2b1-bufferoverflow.patch)
  cvsps/repos/extra-x86_64/cvsps-2.2b1-dynamic-logbuf.patch
    (from rev 151778, cvsps/trunk/cvsps-2.2b1-dynamic-logbuf.patch)
  cvsps/repos/extra-x86_64/cvsps-2.2b1-man.patch
    (from rev 151778, cvsps/trunk/cvsps-2.2b1-man.patch)
  cvsps/repos/extra-x86_64/seperate-CPPFLAGS.patch
    (from rev 151778, cvsps/trunk/seperate-CPPFLAGS.patch)
  cvsps/repos/extra-x86_64/use-INADDR_NONE-define.patch
    (from rev 151778, cvsps/trunk/use-INADDR_NONE-define.patch)
  cvsps/repos/extra-x86_64/use-__linux__-define.patch
    (from rev 151778, cvsps/trunk/use-__linux__-define.patch)
  cvsps/repos/extra-x86_64/use-offsetof-macro.patch
    (from rev 151778, cvsps/trunk/use-offsetof-macro.patch)
Deleted:
  cvsps/repos/extra-i686/PKGBUILD
  cvsps/repos/extra-x86_64/PKGBUILD

-----------------------------------------------+
 extra-i686/PKGBUILD                           |   69 ++++++++----
 extra-i686/call-cvs-q-option.patch            |   34 ++++++
 extra-i686/cvsps-2.2b1-bufferoverflow.patch   |   65 +++++++++++
 extra-i686/cvsps-2.2b1-dynamic-logbuf.patch   |  133 ++++++++++++++++++++++++
 extra-i686/cvsps-2.2b1-man.patch              |   29 +++++
 extra-i686/seperate-CPPFLAGS.patch            |   29 +++++
 extra-i686/use-INADDR_NONE-define.patch       |   28 +++++
 extra-i686/use-__linux__-define.patch         |   36 ++++++
 extra-i686/use-offsetof-macro.patch           |   32 +++++
 extra-x86_64/PKGBUILD                         |   69 ++++++++----
 extra-x86_64/call-cvs-q-option.patch          |   34 ++++++
 extra-x86_64/cvsps-2.2b1-bufferoverflow.patch |   65 +++++++++++
 extra-x86_64/cvsps-2.2b1-dynamic-logbuf.patch |  133 ++++++++++++++++++++++++
 extra-x86_64/cvsps-2.2b1-man.patch            |   29 +++++
 extra-x86_64/seperate-CPPFLAGS.patch          |   29 +++++
 extra-x86_64/use-INADDR_NONE-define.patch     |   28 +++++
 extra-x86_64/use-__linux__-define.patch       |   36 ++++++
 extra-x86_64/use-offsetof-macro.patch         |   32 +++++
 18 files changed, 862 insertions(+), 48 deletions(-)

Deleted: extra-i686/PKGBUILD
===================================================================
--- extra-i686/PKGBUILD	2012-03-02 17:23:22 UTC (rev 151778)
+++ extra-i686/PKGBUILD	2012-03-02 17:28:27 UTC (rev 151779)
@@ -1,24 +0,0 @@
-# $Id$
-# Maintainer:
-# Contributor: Jeff 'codemac' Mickey <jeff at archlinux.org>
-
-pkgname=cvsps
-pkgver=2.1
-pkgrel=4
-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')
-
-build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  make prefix=/usr
-}
-
-package() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  make prefix="${pkgdir}/usr" install
-}

Copied: cvsps/repos/extra-i686/PKGBUILD (from rev 151778, cvsps/trunk/PKGBUILD)
===================================================================
--- extra-i686/PKGBUILD	                        (rev 0)
+++ extra-i686/PKGBUILD	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,45 @@
+# $Id$
+# Maintainer:
+# Contributor: Jeff 'codemac' Mickey <jeff at archlinux.org>
+
+pkgname=cvsps
+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"
+        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"
+  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
+}

Copied: cvsps/repos/extra-i686/call-cvs-q-option.patch (from rev 151778, cvsps/trunk/call-cvs-q-option.patch)
===================================================================
--- extra-i686/call-cvs-q-option.patch	                        (rev 0)
+++ extra-i686/call-cvs-q-option.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,34 @@
+From 49d7a3e44b54f18b0e2762d8dbb087ad4c2f0276 Mon Sep 17 00:00:00 2001
+From: Yann Dirson <ydirson at 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
+

Copied: cvsps/repos/extra-i686/cvsps-2.2b1-bufferoverflow.patch (from rev 151778, cvsps/trunk/cvsps-2.2b1-bufferoverflow.patch)
===================================================================
--- extra-i686/cvsps-2.2b1-bufferoverflow.patch	                        (rev 0)
+++ extra-i686/cvsps-2.2b1-bufferoverflow.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -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 at 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;
+ 

Copied: cvsps/repos/extra-i686/cvsps-2.2b1-dynamic-logbuf.patch (from rev 151778, cvsps/trunk/cvsps-2.2b1-dynamic-logbuf.patch)
===================================================================
--- extra-i686/cvsps-2.2b1-dynamic-logbuf.patch	                        (rev 0)
+++ extra-i686/cvsps-2.2b1-dynamic-logbuf.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,133 @@
+# From: http://ydirson.free.fr/soft/git/cvsps.git
+
+commit 76a9c2aaa0d2957de0bc8f0c0b994abfd1645a50
+Author: David D. Kilzer <ddkilzer at 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);

Copied: cvsps/repos/extra-i686/cvsps-2.2b1-man.patch (from rev 151778, cvsps/trunk/cvsps-2.2b1-man.patch)
===================================================================
--- extra-i686/cvsps-2.2b1-man.patch	                        (rev 0)
+++ extra-i686/cvsps-2.2b1-man.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -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

Copied: cvsps/repos/extra-i686/seperate-CPPFLAGS.patch (from rev 151778, cvsps/trunk/seperate-CPPFLAGS.patch)
===================================================================
--- extra-i686/seperate-CPPFLAGS.patch	                        (rev 0)
+++ extra-i686/seperate-CPPFLAGS.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,29 @@
+From 5991e8b0acf1dbe3487c1f246a1d215b346a61f0 Mon Sep 17 00:00:00 2001
+From: Yann Dirson <ydirson at 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
+

Copied: cvsps/repos/extra-i686/use-INADDR_NONE-define.patch (from rev 151778, cvsps/trunk/use-INADDR_NONE-define.patch)
===================================================================
--- extra-i686/use-INADDR_NONE-define.patch	                        (rev 0)
+++ extra-i686/use-INADDR_NONE-define.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,28 @@
+From c498733b4283b3987bdca6949a5e304244b64cfc Mon Sep 17 00:00:00 2001
+From: Pavel Roskin <proski at 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 at 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
+

Copied: cvsps/repos/extra-i686/use-__linux__-define.patch (from rev 151778, cvsps/trunk/use-__linux__-define.patch)
===================================================================
--- extra-i686/use-__linux__-define.patch	                        (rev 0)
+++ extra-i686/use-__linux__-define.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,36 @@
+From 4598349e81068d4af9a893c6433958cf9b4fa835 Mon Sep 17 00:00:00 2001
+From: Pavel Roskin <proski at 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 at 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
+

Copied: cvsps/repos/extra-i686/use-offsetof-macro.patch (from rev 151778, cvsps/trunk/use-offsetof-macro.patch)
===================================================================
--- extra-i686/use-offsetof-macro.patch	                        (rev 0)
+++ extra-i686/use-offsetof-macro.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,32 @@
+From 4fad63b82746ea571edc2ec1100ad3208cf5af08 Mon Sep 17 00:00:00 2001
+From: Eric Hopper <hopper at 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
+

Deleted: extra-x86_64/PKGBUILD
===================================================================
--- extra-x86_64/PKGBUILD	2012-03-02 17:23:22 UTC (rev 151778)
+++ extra-x86_64/PKGBUILD	2012-03-02 17:28:27 UTC (rev 151779)
@@ -1,24 +0,0 @@
-# $Id$
-# Maintainer:
-# Contributor: Jeff 'codemac' Mickey <jeff at archlinux.org>
-
-pkgname=cvsps
-pkgver=2.1
-pkgrel=4
-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')
-
-build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  make prefix=/usr
-}
-
-package() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-  make prefix="${pkgdir}/usr" install
-}

Copied: cvsps/repos/extra-x86_64/PKGBUILD (from rev 151778, cvsps/trunk/PKGBUILD)
===================================================================
--- extra-x86_64/PKGBUILD	                        (rev 0)
+++ extra-x86_64/PKGBUILD	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,45 @@
+# $Id$
+# Maintainer:
+# Contributor: Jeff 'codemac' Mickey <jeff at archlinux.org>
+
+pkgname=cvsps
+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"
+        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"
+  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
+}

Copied: cvsps/repos/extra-x86_64/call-cvs-q-option.patch (from rev 151778, cvsps/trunk/call-cvs-q-option.patch)
===================================================================
--- extra-x86_64/call-cvs-q-option.patch	                        (rev 0)
+++ extra-x86_64/call-cvs-q-option.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,34 @@
+From 49d7a3e44b54f18b0e2762d8dbb087ad4c2f0276 Mon Sep 17 00:00:00 2001
+From: Yann Dirson <ydirson at 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
+

Copied: cvsps/repos/extra-x86_64/cvsps-2.2b1-bufferoverflow.patch (from rev 151778, cvsps/trunk/cvsps-2.2b1-bufferoverflow.patch)
===================================================================
--- extra-x86_64/cvsps-2.2b1-bufferoverflow.patch	                        (rev 0)
+++ extra-x86_64/cvsps-2.2b1-bufferoverflow.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -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 at 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;
+ 

Copied: cvsps/repos/extra-x86_64/cvsps-2.2b1-dynamic-logbuf.patch (from rev 151778, cvsps/trunk/cvsps-2.2b1-dynamic-logbuf.patch)
===================================================================
--- extra-x86_64/cvsps-2.2b1-dynamic-logbuf.patch	                        (rev 0)
+++ extra-x86_64/cvsps-2.2b1-dynamic-logbuf.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,133 @@
+# From: http://ydirson.free.fr/soft/git/cvsps.git
+
+commit 76a9c2aaa0d2957de0bc8f0c0b994abfd1645a50
+Author: David D. Kilzer <ddkilzer at 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);

Copied: cvsps/repos/extra-x86_64/cvsps-2.2b1-man.patch (from rev 151778, cvsps/trunk/cvsps-2.2b1-man.patch)
===================================================================
--- extra-x86_64/cvsps-2.2b1-man.patch	                        (rev 0)
+++ extra-x86_64/cvsps-2.2b1-man.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -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

Copied: cvsps/repos/extra-x86_64/seperate-CPPFLAGS.patch (from rev 151778, cvsps/trunk/seperate-CPPFLAGS.patch)
===================================================================
--- extra-x86_64/seperate-CPPFLAGS.patch	                        (rev 0)
+++ extra-x86_64/seperate-CPPFLAGS.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,29 @@
+From 5991e8b0acf1dbe3487c1f246a1d215b346a61f0 Mon Sep 17 00:00:00 2001
+From: Yann Dirson <ydirson at 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
+

Copied: cvsps/repos/extra-x86_64/use-INADDR_NONE-define.patch (from rev 151778, cvsps/trunk/use-INADDR_NONE-define.patch)
===================================================================
--- extra-x86_64/use-INADDR_NONE-define.patch	                        (rev 0)
+++ extra-x86_64/use-INADDR_NONE-define.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,28 @@
+From c498733b4283b3987bdca6949a5e304244b64cfc Mon Sep 17 00:00:00 2001
+From: Pavel Roskin <proski at 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 at 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
+

Copied: cvsps/repos/extra-x86_64/use-__linux__-define.patch (from rev 151778, cvsps/trunk/use-__linux__-define.patch)
===================================================================
--- extra-x86_64/use-__linux__-define.patch	                        (rev 0)
+++ extra-x86_64/use-__linux__-define.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,36 @@
+From 4598349e81068d4af9a893c6433958cf9b4fa835 Mon Sep 17 00:00:00 2001
+From: Pavel Roskin <proski at 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 at 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
+

Copied: cvsps/repos/extra-x86_64/use-offsetof-macro.patch (from rev 151778, cvsps/trunk/use-offsetof-macro.patch)
===================================================================
--- extra-x86_64/use-offsetof-macro.patch	                        (rev 0)
+++ extra-x86_64/use-offsetof-macro.patch	2012-03-02 17:28:27 UTC (rev 151779)
@@ -0,0 +1,32 @@
+From 4fad63b82746ea571edc2ec1100ad3208cf5af08 Mon Sep 17 00:00:00 2001
+From: Eric Hopper <hopper at 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
+



More information about the arch-commits mailing list