OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 30-Oct-2006 20:21:11
Branch: OPENPKG_2_STABLE Handle: 2006103019211000
Modified files: (Branch: OPENPKG_2_STABLE)
openpkg-src/cvstrac cvstrac.patch cvstrac.spec
Log:
MFC: all recent fixes, including the segfault under 64-bit platforms
Summary:
Revision Changes Path
1.7.2.2 +257 -19 openpkg-src/cvstrac/cvstrac.patch
1.44.2.3 +6 -6 openpkg-src/cvstrac/cvstrac.spec
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/cvstrac/cvstrac.patch
============================================================================
$ cvs diff -u -r1.7.2.1 -r1.7.2.2 cvstrac.patch
--- openpkg-src/cvstrac/cvstrac.patch 16 Oct 2006 14:49:16 -0000 1.7.2.1
+++ openpkg-src/cvstrac/cvstrac.patch 30 Oct 2006 19:21:10 -0000 1.7.2.2
@@ -1,6 +1,6 @@
Index: attach.c
--- attach.c.orig 2006-05-26 16:20:28 +0200
-+++ attach.c 2006-09-28 17:43:45 +0200
++++ attach.c 2006-10-30 20:14:51 +0100
@@ -210,17 +210,20 @@
}
@@ -35,7 +35,7 @@
if( !got ){
Index: browse.c
--- browse.c.orig 2006-05-26 16:20:28 +0200
-+++ browse.c 2006-09-28 17:43:45 +0200
++++ browse.c 2006-10-30 20:14:51 +0100
@@ -503,6 +503,13 @@
){
int set = (zFld==zField[0]);
@@ -180,7 +180,16 @@
}
Index: cgi.c
--- cgi.c.orig 2006-05-26 16:20:28 +0200
-+++ cgi.c 2006-09-28 17:43:45 +0200
++++ cgi.c 2006-10-30 20:14:51 +0100
+@@ -187,7 +187,7 @@
+ char zETag[64];
+
+ MD5Init(&ctx);
+- MD5Update(&ctx,zTxt,nLen);
++ MD5Update(&ctx,(unsigned char *)zTxt,nLen);
+ MD5Final(digest,&ctx);
+ for(j=i=0; i<16; i++,j+=2){
+ bprintf(&zETag[j],sizeof(zETag)-j,"%02x",(int)digest[i]);
@@ -382,7 +382,7 @@
continue;
}
@@ -190,9 +199,27 @@
}
zDest[j++] = zDest[i];
}
+@@ -2343,7 +2343,7 @@
+ int i, n;
+
+ if( nData<=0 ){
+- nData = strlen(zData);
++ nData = strlen((const char *)zData);
+ }
+ z64 = malloc( (nData*4)/3 + 6 );
+ if(z64==0) return 0;
+@@ -2385,7 +2385,7 @@
+ for(i=0; zBase[i]; i++){ trans[zBase[i] & 0x7f] = i; }
+ isInit = 1;
+ }
+- n64 = strlen(z64);
++ n64 = strlen((const char *)z64);
+ while( n64>0 && z64[n64-1]=='=' ) n64--;
+ zData = malloc( (n64*3)/4 + 4 );
+ if( zData==0 ) return 0;
Index: common.c
--- common.c.orig 2006-05-26 16:20:28 +0200
-+++ common.c 2006-09-28 17:43:45 +0200
++++ common.c 2006-10-30 20:14:51 +0100
@@ -394,7 +394,10 @@
}
@ </small>
@@ -205,10 +232,55 @@
@ <a href="honeypot"><small><notatag arg="meaningless"></small></a>
@ <small><a href="login?nxp=%T(zUri)" title="Log in">Not logged
in</a></small>
}
+Index: config.h
+--- config.h.orig 2006-05-26 16:20:28 +0200
++++ config.h 2006-10-30 20:14:51 +0100
+@@ -9,6 +9,9 @@
+ #include <stdarg.h>
+ #include <sqlite3.h>
+ #include <assert.h>
++#if defined(__linux__) || defined(__sun__)
++#include <crypt.h>
++#endif
+
+ /*
+ ** Standard colors. These colors can also be changed using a stylesheet.
+Index: cvs.c
+--- cvs.c.orig 2006-05-26 16:20:28 +0200
++++ cvs.c 2006-10-30 20:14:51 +0100
+@@ -234,6 +234,7 @@
+ char **azFileList;
+ FILE *in;
+ int i, nField;
++ unsigned long ul;
+ time_t minTime, maxTime, tm;
+ struct stat statbuf;
+ int cnum = 0; /* check-in number to use for this checkin */
+@@ -307,7 +308,8 @@
+ ** T Tagging operations
+ */
+ if( (c = zLine[0])!='A' && c!='M' && c!='T' && c!='R' ) continue;
+- if( sscanf(&zLine[1],"%lx",&tm)!=1 ) continue;
++ if( sscanf(&zLine[1],"%lx",&ul)!=1 ) continue;
++ tm = (time_t)ul;
+ if( tm<minTime ) minTime = tm;
+ if( tm>maxTime ) maxTime = tm;
+
Index: db.c
--- db.c.orig 2006-05-26 16:20:28 +0200
-+++ db.c 2006-09-28 17:43:45 +0200
-@@ -602,7 +602,7 @@
++++ db.c 2006-10-30 20:14:51 +0100
+@@ -107,6 +107,10 @@
+ extern int sqlite3StrICmp(const char*, const char*);
+ if( type==SQLITE_SELECT ){
+ return SQLITE_OK;
++#ifdef SQLITE_FUNCTION
++ }else if( type==SQLITE_FUNCTION ){
++ return SQLITE_OK;
++#endif
+ }else if( type==SQLITE_READ ){
+ if( sqlite3StrICmp(zArg1,"user")==0 ){
+ if( sqlite3StrICmp(zArg2,"passwd")==0 ||
sqlite3StrICmp(zArg2,"email")==0 ){
+@@ -602,7 +606,7 @@
}
if( argc>1 && g.nAux<MX_AUX ){
char *zErr;
@@ -217,7 +289,7 @@
if( zQuery==0 ) {
db_err("Query cannot be NULL", "NULL", "Illegal option() query");
}
-@@ -1044,12 +1044,13 @@
+@@ -1044,12 +1048,13 @@
@ FROM ticket");
@
----------------------------------------------------------------------------
@ INSERT INTO reportfmt VALUES(5,NULL,'Tickets counts',NULL,"SELECT
@@ -237,18 +309,22 @@
@ FROM ticket GROUP BY status
@ UNION
@ SELECT
-@@ -1793,7 +1794,7 @@
- const char *zIn = (const char*)sqlite3_value_text(argv[0]);
+@@ -1790,10 +1795,10 @@
+ */
+ static void f_decode(sqlite3_context *context, int argc, sqlite3_value
**argv){
+ if( argc==2 ) {
+- const char *zIn = (const char*)sqlite3_value_text(argv[0]);
++ const unsigned char *zIn = sqlite3_value_text(argv[0]);
int nBytes = sqlite3_value_int(argv[1]);
if( zIn && zIn[0] && nBytes>0 ){
- const char *zOut = calloc(nBytes,1);
-+ char *zOut = calloc(nBytes,1);
++ char unsigned *zOut = calloc(nBytes,1);
int nDecoded;
if( zOut==0 ){
db_err( strerror(errno), 0,
Index: format.c
--- format.c.orig 2006-05-26 16:20:28 +0200
-+++ format.c 2006-09-28 17:43:45 +0200
++++ format.c 2006-10-30 20:14:51 +0100
@@ -760,7 +760,7 @@
if( az && az[0] && az[1] ){
cgi_printf("<a href=\"%z\" title=\"%h\">",zLink,az[0]);
@@ -260,7 +336,7 @@
cgi_printf("<strike>#%d</strike>",tn);
Index: login.c
--- login.c.orig 2006-05-26 16:20:28 +0200
-+++ login.c 2006-09-28 17:51:54 +0200
++++ login.c 2006-10-30 20:14:51 +0100
@@ -55,8 +55,8 @@
zGoto = P("g");
if( P("out")!=0 ){
@@ -272,9 +348,101 @@
cgi_redirect(PD("nxp","index"));
return;
}
+@@ -102,15 +102,15 @@
+ const char *zAddr;
+ const char *zAgent;
+ char zHash[200];
+- char zRawDigest[16];
++ unsigned char zRawDigest[16];
+ MD5Context ctx;
+
+ time(&now);
+ bprintf(zHash,sizeof(zHash),"%d%d%.19s", getpid(), (int)now, zPasswd);
+ MD5Init(&ctx);
+- MD5Update(&ctx, zHash, strlen(zHash));
++ MD5Update(&ctx, (unsigned char *)zHash, strlen(zHash));
+ MD5Final(zRawDigest, &ctx);
+- zDigest = encode64(zRawDigest, 16);
++ zDigest = (char *)encode64(zRawDigest, 16);
+ zAddr = getenv("REMOTE_ADDR");
+ if( zAddr==0 ) zAddr = "0.0.0.0";
+ zAgent = getenv("HTTP_USER_AGENT");
+Index: makeheaders.c
+--- makeheaders.c.orig 2006-05-26 16:20:28 +0200
++++ makeheaders.c 2006-10-30 20:14:51 +0100
+@@ -11,9 +11,8 @@
+ #include <assert.h>
+ #ifndef WIN32
+ # include <unistd.h>
+-#else
+-# include <string.h>
+ #endif
++#include <string.h>
+
+ /*
+ ** Macros for debugging.
+@@ -2137,7 +2136,7 @@
+ zArg++;
+ }
+ if( *zArg==0 || *zArg=='\n' ){ return 0; }
+- nArg = pToken->nText + (int)pToken->zText - (int)zArg;
++ nArg = pToken->nText + pToken->zText - zArg;
+ if( nArg==9 && strncmp(zArg,"INTERFACE",9)==0 ){
+ PushIfMacro(0,0,0,pToken->nLine,PS_Interface);
+ }else if( nArg==16 && strncmp(zArg,"EXPORT_INTERFACE",16)==0 ){
+@@ -2156,7 +2155,7 @@
+ zArg++;
+ }
+ if( *zArg==0 || *zArg=='\n' ){ return 0; }
+- nArg = pToken->nText + (int)pToken->zText - (int)zArg;
++ nArg = pToken->nText + pToken->zText - zArg;
+ PushIfMacro("defined",zArg,nArg,pToken->nLine,0);
+ }else if( nCmd==6 && strncmp(zCmd,"ifndef",6)==0 ){
+ /*
+@@ -2167,7 +2166,7 @@
+ zArg++;
+ }
+ if( *zArg==0 || *zArg=='\n' ){ return 0; }
+- nArg = pToken->nText + (int)pToken->zText - (int)zArg;
++ nArg = pToken->nText + pToken->zText - zArg;
+ PushIfMacro("!defined",zArg,nArg,pToken->nLine,0);
+ }else if( nCmd==4 && strncmp(zCmd,"else",4)==0 ){
+ /*
+@@ -2793,7 +2792,7 @@
+ fprintf(stderr,
+ "%s: Can't overwrite this file because it wasn't previously\n"
+ "%*s generated by 'makeheaders'.\n",
+- pFile->zHdr, strlen(pFile->zHdr), "");
++ pFile->zHdr, (int)strlen(pFile->zHdr), "");
+ nErr++;
+ }else if( strcmp(zOldVersion,zNewVersion)!=0 ){
+ if( report ) fprintf(report,"updated\n");
+@@ -2952,10 +2951,10 @@
+ pDecl->zName,
+ zLabel,
+ pDecl->zFile,
+- pDecl->pComment ? (int)pDecl->pComment/sizeof(Token) : 0,
++ pDecl->pComment ? /* TOTALLY BOGUS:
(int)pDecl->pComment/sizeof(Token) */ 0 : 0,
+ pDecl->pComment ? pDecl->pComment->nText+1 : 0,
+- pDecl->zIf ? strlen(pDecl->zIf)+1 : 0,
+- zDecl ? strlen(zDecl) : 0,
++ pDecl->zIf ? (int)strlen(pDecl->zIf)+1 : 0,
++ zDecl ? (int)strlen(zDecl) : 0,
+ pDecl->pComment ? pDecl->pComment->nLine : 0,
+ pDecl->tokenCode.nText ? pDecl->tokenCode.nText+1 : 0
+ );
Index: search.c
--- search.c.orig 2006-05-26 16:20:28 +0200
-+++ search.c 2006-09-28 17:43:45 +0200
++++ search.c 2006-10-30 20:14:51 +0100
+@@ -88,7 +88,7 @@
+ const char *zPattern;
+
+ if( argc<2 || argv[0]==0 ) return;
+- zPattern = sqlite3_value_text(argv[0]);
++ zPattern = (const char *)sqlite3_value_text(argv[0]);
+ total = 0;
+ if( zPattern && zPattern[0] ){
+ for(i=0; zPattern[i]; i++){
@@ -97,7 +97,7 @@
score = 0;
for(k=1; k<argc; k++){
@@ -295,7 +463,16 @@
/*
Index: setup.c
--- setup.c.orig 2006-05-26 16:20:28 +0200
-+++ setup.c 2006-09-28 17:43:45 +0200
++++ setup.c 2006-10-30 20:15:28 +0100
+@@ -334,7 +334,7 @@
+ @ passwords of all CVSTrac users. Enable or disable this feature
+ @ below.</p>
+ @ <p>Write User Changes to CVSROOT/passwd?
+- cgi_optionmenu(0, "wpw", zOldWPswd, "Yes", "yes", "No", "no", 0);
++ cgi_optionmenu(0, "wpw", zOldWPswd, "Yes", "yes", "No", "no", NULL);
+ @ <input type="submit" value="Submit">
+ @ </p>
+ }
@@ -499,7 +499,7 @@
@ <form action="%s(g.zPath)" method="POST">
@ Select a user to whom new tickets will be assigned by default:</p><p>
@@ -305,9 +482,26 @@
cgi_v_optionmenu(0, "asgnto", zOldAsgnto, (const char**)azResult);
@ </p>
@
+@@ -521,14 +521,14 @@
+ @ Select the default priority for new tickets:</p><p>
+ @ Default Priority:
+ cgi_optionmenu(0, "pri", zOldPri, "1", "1", "2", "2", "3", "3", "4", "4",
+- "5", "5", (char*)0);
++ "5", "5", NULL);
+ @ </p>
+ @
+ @ <p>
+ @ Select the default severity for new tickets:</p><p>
+ @ Default Severity:
+ cgi_optionmenu(0, "sev", zOldSev, "1", "1", "2", "2", "3", "3", "4", "4",
+- "5", "5", (char*)0);
++ "5", "5", NULL);
+ @ </p>
+ @
+ @ <p>
Index: throttle.c
--- throttle.c.orig 2006-05-26 16:20:28 +0200
-+++ throttle.c 2006-09-28 17:43:45 +0200
++++ throttle.c 2006-10-30 20:14:51 +0100
@@ -165,7 +165,7 @@
}
@@ -319,7 +513,25 @@
lockout();
Index: ticket.c
--- ticket.c.orig 2006-05-26 16:20:28 +0200
-+++ ticket.c 2006-09-28 17:43:45 +0200
++++ ticket.c 2006-10-30 20:14:51 +0100
+@@ -358,7 +358,7 @@
+ @ <td align="right"><nobr>
+ @ Severity:
+ cgi_optionmenu(0, "r", zSev,
+- "1", "1", "2", "2", "3", "3", "4", "4", "5", "5", 0);
++ "1", "1", "2", "2", "3", "3", "4", "4", "5", "5", NULL);
+ @ </nobr></td>
+ @ <td>
+ @ How debilitating is the problem? "1" is a show-stopper defect with
+@@ -372,7 +372,7 @@
+ @ <td align="right"><nobr>
+ @ Priority:
+ cgi_optionmenu(0, "p", zPri,
+- "1", "1", "2", "2", "3", "3", "4", "4", "5", "5", 0);
++ "1", "1", "2", "2", "3", "3", "4", "4", "5", "5", NULL);
+ @ </nobr></td>
+ @ <td>
+ @ How quickly do you need this ticket to be resolved?
@@ -388,7 +388,7 @@
@ <tr>
@ <td align="right"><nobr>
@@ -338,7 +550,15 @@
az = db_query("SELECT '', '' UNION ALL "
"SELECT name, value FROM enums WHERE type='subsys'");
if( az[0] && az[1] && az[2] ){
-@@ -1323,7 +1333,7 @@
+@@ -1316,14 +1318,14 @@
+ @ <nobr>
+ @ Severity:
+ cgi_optionmenu(0, "e", aParm[5].zNew,
+- "1", "1", "2", "2", "3", "3", "4", "4", "5", "5", 0);
++ "1", "1", "2", "2", "3", "3", "4", "4", "5", "5", NULL);
+ @ </nobr>
+ @
+ @
@ <nobr>
@ Assigned To:
azUsers = (const char**)db_query(
@@ -347,7 +567,16 @@
cgi_v_optionmenu(0, "a", aParm[4].zNew, azUsers);
@ </nobr>
@
-@@ -1442,16 +1452,18 @@
+@@ -1349,7 +1351,7 @@
+ @ <nobr>
+ @ Priority:
+ cgi_optionmenu(0, "p", aParm[6].zNew,
+- "1", "1", "2", "2", "3", "3", "4", "4", "5", "5", 0);
++ "1", "1", "2", "2", "3", "3", "4", "4", "5", "5", NULL);
+ @ </nobr>
+ @
+ @
+@@ -1442,16 +1444,18 @@
int doSubmit;
const char *zText;
const char *zTn;
@@ -369,7 +598,7 @@
doSubmit = P("submit")!=0;
Index: timeline.c
--- timeline.c.orig 2006-05-26 16:20:28 +0200
-+++ timeline.c 2006-09-28 17:43:45 +0200
++++ timeline.c 2006-10-30 20:14:51 +0100
@@ -1105,6 +1105,9 @@
z = db_short_query("SELECT date FROM chng WHERE cn=%d",cn);
if( z ) cgi_modified_since(atoi(z));
@@ -380,3 +609,12 @@
/* patchsets are raw output based one what are supposed to be unchanging
file
** revisions.
*/
+@@ -1383,7 +1386,7 @@
+ @ <td><input type="text" name="t" value="%s(zDate)" size=26></td>
+ @ <td width=20> </td>
+ @ <td>Type:
+- cgi_optionmenu(2,"y", zMType, "Release", "1", "Event", "2", 0);
++ cgi_optionmenu(2,"y", zMType, "Release", "1", "Event", "2", NULL);
+ @ </td></tr>
+ @ </td></tr>
+ @ <tr><td align="right">Branch:</td><td>
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/cvstrac/cvstrac.spec
============================================================================
$ cvs diff -u -r1.44.2.2 -r1.44.2.3 cvstrac.spec
--- openpkg-src/cvstrac/cvstrac.spec 16 Oct 2006 14:49:16 -0000 1.44.2.2
+++ openpkg-src/cvstrac/cvstrac.spec 30 Oct 2006 19:21:10 -0000 1.44.2.3
@@ -33,7 +33,7 @@
Group: SCM
License: GPL
Version: 2.0.0
-Release: 2.20061018
+Release: 2.20061030
# list of sources
Source0: http://www.cvstrac.org/cvstrac-%{version}.tar.gz
@@ -51,11 +51,11 @@
AutoReqProv: no
%description
- CVSTrac is bug tracking system for use with the CVS, Subversion
- and Git SCMs, appropriate for use on projects with up to a few
- hundred developers. CVSTrac is designed for low-ceremony development
- -- it provides mechanisms for tracking changes and bugs without
- unnecessary restrictions.
+ CVSTrac provides repository browsing, changeset tracking, issue
+ tracking and Wiki-based community documentation functionality for
+ use with the CVS, Subversion and Git source code management (SCM)
+ systems. It is appropriate for use on projects with up to a few
+ hundred developers and is designed for low-ceremony workflows.
%track
prog cvstrac = {
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [email protected]