this, apparently, is a real/known/old issue, at least @/by the 'fink'
proj (and, apparently, by ubuntu proj ...)

after working with the folks at IRC(#fink), and porting their 'old
version' patch,

# orig PATCH:
http://fink.cvs.sourceforge.net/fink/dists/10.4/unstable/main/finkinfo/database/sqlite3.patch?revision=1.1&view=markup

to sqlite v3.3.8, the 'errors' are gone.

(NOTE: from "dmacks" @ #fink
"that -static patch is not really portable upstream ...
The tail syntax change is backward-compatible, but is the only one
recognized by new versions of tail, and the sprintf->snprintf changes
are to avoid some crasher/exploit bugs")

I have my MacBook Pro sitting on my desk
...
I used the very latest code from CVS
...
On my system (which is generic as far as I know) this runs
to completion without any errors.
...
I'm not sure what the difference is.

tbh, i have _no_ concrete idea either as to why you are NOT seeing
these issues on your MacBook :-/

anyway, the details:

% rm -rf /projects/sqlite*
% cd /Users/snowcrash/projects
% rm -rf sqlite*
% wget http://www.sqlite.org/sqlite-3.3.8.tar.gz
% gnutar zxvf sqlite-3.3.8.tar.gz

% vi /projects/patch.sqlite338
-----------------------------------------
diff -ru sqlite-3.3.8ORIG/ sqlite-3.3.8
diff -re sqlite-3.3.8ORIG/Makefile.in sqlite-3.3.8/Makefile.in
--- sqlite-3.3.8ORIG/Makefile.in        2007-01-02 13:17:56.000000000 -0800
+++ sqlite-3.3.8/Makefile.in    2007-01-02 13:39:48.000000000 -0800
@@ -271,7 +271,7 @@
# of the most recently modified source code file
#
last_change:    $(SRC)
-       cat $(SRC) | grep '$$Id: ' | sort -k 5 | tail -1 \
+       cat $(SRC) | grep '$$Id: ' | sort -k 5 | tail -n 1 \
          | $(NAWK) '{print $$5,$$6}' >last_change

libsqlite3.la:  $(LIBOBJ)
##
## Prevent link time warnings with multiply defined symbols when these
## two binaries linking against libsqlite3.dylib.  Instead, force a
## link against libsqlite3.a.
##
@@ -476,7 +476,7 @@
                 libsqlite3.la $(LIBTCL)

testfixture$(TEXE):     $(TOP)/src/tclsqlite.c libsqlite3.la $(TESTSRC)
-       $(LTLINK) -DTCLSH=1 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1 \
+       $(LTLINK) -static -DTCLSH=1 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1 \
                -DSQLITE_NO_SYNC=1 $(TEMP_STORE) \
                -o testfixture $(TESTSRC) $(TOP)/src/tclsqlite.c \
                libsqlite3.la $(LIBTCL)
##
## This patch was taken from Ubuntu's sqlite-2.8.16-1 package.
##
diff -ru sqlite-3.3.8ORIG/tool/lemon.c sqlite-3.3.8/tool/lemon.c
--- sqlite-3.3.8ORIG/tool/lemon.c       2007-01-02 13:17:55.000000000 -0800
+++ sqlite-3.3.8/tool/lemon.c   2007-01-02 13:30:36.000000000 -0800
@@ -1322,15 +1322,15 @@
  va_start(ap, format);
  /* Prepare a prefix to be prepended to every output line */
  if( lineno>0 ){
-    sprintf(prefix,"%.*s:%d: ",PREFIXLIMIT-10,filename,lineno);
+    snprintf(prefix,sizeof prefix,"%.*s:%d: ",PREFIXLIMIT-10,filename,lineno);
  }else{
-    sprintf(prefix,"%.*s: ",PREFIXLIMIT-10,filename);
+    snprintf(prefix,sizeof prefix,"%.*s: ",PREFIXLIMIT-10,filename);
  }
  prefixsize = strlen(prefix);
  availablewidth = LINEWIDTH - prefixsize;

  /* Generate the error message */
-  vsprintf(errmsg,format,ap);
+  vsnprintf(errmsg,sizeof errmsg,format,ap);
  va_end(ap);
  errmsgsize = strlen(errmsg);
  /* Remove trailing '\n's from the error message. */
@@ -2863,7 +2863,7 @@
    while( cfp ){
      char buf[20];
      if( cfp->dot==cfp->rp->nrhs ){
-        sprintf(buf,"(%d)",cfp->rp->index);
+        snprintf(buf,sizeof buf,"(%d)",cfp->rp->index);
        fprintf(fp,"    %5s ",buf);
      }else{
        fprintf(fp,"          ");
@@ -2909,7 +2909,7 @@
    c = *cp;
    *cp = 0;
    path = (char *)malloc( strlen(argv0) + strlen(name) + 2 );
-    if( path ) sprintf(path,"%s/%s",argv0,name);
+    if( path ) snprintf(path,sizeof path,"%s/%s",argv0,name);
    *cp = c;
  }else{
    extern char *getenv();
@@ -2922,7 +2922,7 @@
        if( cp==0 ) cp = &pathlist[strlen(pathlist)];
        c = *cp;
        *cp = 0;
-        sprintf(path,"%s/%s",pathlist,name);
+        snprintf(path,sizeof path,"%s/%s",pathlist,name);
        *cp = c;
        if( c==0 ) pathlist = "";
        else pathlist = &cp[1];
@@ -3002,14 +3002,16 @@

  cp = strrchr(lemp->filename,'.');
  if( cp ){
-    sprintf(buf,"%.*s.lt",(int)(cp-lemp->filename),lemp->filename);
+    snprintf(buf,sizeof buf,"%.*s.lt",(int)(cp-lemp->filename),lemp->filename);
  }else{
-    sprintf(buf,"%s.lt",lemp->filename);
+    snprintf(buf,sizeof buf,"%s.lt",lemp->filename);
  }
  if( access(buf,004)==0 ){
    tpltname = buf;
  }else if( access(templatename,004)==0 ){
    tpltname = templatename;
+  }else if( access("/usr/share/lemon/lempar.c",004)==0 ){
+    tpltname = "/usr/share/lemon/lempar.c";
  }else{
    tpltname = pathsearch(lemp->argv0,templatename,0);
  }
@@ -3021,7 +3023,7 @@
  }
  in = fopen(tpltname,"rb");
  if( in==0 ){
-    fprintf(stderr,"Can't open the template file \"%s\".\n",templatename);
+    fprintf(stderr,"Can't open the template file \"%s\".\n",tpltname);
    lemp->errorcnt++;
    return 0;
  }
@@ -3733,7 +3735,7 @@
  /* Generate a table containing the symbolic name of every symbol
  */
  for(i=0; i<lemp->nsymbol; i++){
-    sprintf(line,"\"%s\",",lemp->symbols[i]->name);
+    snprintf(line,sizeof line,"\"%s\",",lemp->symbols[i]->name);
    fprintf(out,"  %-15s",line);
    if( (i&3)==3 ){ fprintf(out,"\n"); lineno++; }
  }
@@ -3880,7 +3882,7 @@
  in = file_open(lemp,".h","rb");
  if( in ){
    for(i=1; i<lemp->nterminal && fgets(line,LINESIZE,in); i++){
-      sprintf(pattern,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i);
+      snprintf(pattern,sizeof pattern,"#define %s%-30s
%2d\n",prefix,lemp->symbols[i]->name,i);
      if( strcmp(line,pattern) ) break;
    }
    fclose(in);
-----------------------------------------

% cd /projects/sqlite-3.3.8

% setenv CFLAGS "-DSQLITE_DEBUG=1 -DSQLITE_MEMDEBUG=1
-DSQLITE_ALLOW_XTHREAD_CONNECT=1 -DSQLITE_THREAD_OVERRIDE_LOCK=1
-DASSERT_VIA_CALLBACK=1 -DENABLE_LOCKING_CALLBACKS=1"
% setenv LDFLAGS "-L/usr/local/lib -lreadline -L/usr/local/ncurses/lib
-lncurses"
% setenv CPPFLAGS "-no-cpp-precomp -I/usr/local/include/readline
-I/usr/local/ncurses/include"
% setenv LD_TWOLEVEL_NAMESPACE 1

% vi src/os_common.h
-----------------------------------------
@39
---     int sqlite3_os_trace = 0;
+++     int sqlite3_os_trace = 1;
-----------------------------------------

% aclocal
% glibtoolize -f -c
% autoconf -f

% rm -rf build
% mkdir build
% cd build
% ../sqlite-3.3.8/configure --prefix=/usr/local/sqlite-test


% ../sqlite-3.3.8/configure          \
 --prefix=/usr/local/sqlite         \
 --enable-debug                     \
 --enable-tcl                       \
 --enable-shared --enable-static    \
 --enable-threadsafe                \
 --enable-cross-thread-connections  \
 --enable-threads-override-locks    \
 --enable-tempstore=yes

% make
% make install

% ls -alR /usr/local/sqlite/
        /usr/local/sqlite/:
        total 0
        drwxr-xr-x  5 root    wheel  170 Jan  2 14:49 ./
        drwxrwxr-x 38 snowcrash wheel 1292 Jan  2 14:49 ../
        drwxr-xr-x  3 root    wheel  102 Jan  2 14:49 bin/
        drwxr-xr-x  3 root    wheel  102 Jan  2 14:49 include/
        drwxr-xr-x 13 root    wheel  442 Jan  2 14:51 lib/
        
        /usr/local/sqlite/bin:
        total 48
        drwxr-xr-x 3 root wheel   102 Jan  2 14:49 ./
        drwxr-xr-x 5 root wheel   170 Jan  2 14:49 ../
        -rwxr-xr-x 1 root wheel 45388 Jan  2 14:49 sqlite3
        
        /usr/local/sqlite/include:
        total 80
        drwxr-xr-x 3 root wheel   102 Jan  2 14:49 ./
        drwxr-xr-x 5 root wheel   170 Jan  2 14:49 ../
        -rw-r--r-- 1 root wheel 79013 Jan  2 14:49 sqlite3.h
        
        /usr/local/sqlite/lib:
        total 5120
        drwxr-xr-x 13 root wheel     442 Jan  2 14:51 ./
        drwxr-xr-x  5 root wheel     170 Jan  2 14:49 ../
        -rwxr-xr-x  1 root wheel  706976 Jan  2 14:49 libsqlite3.0.8.6.dylib
        lrwxr-xr-x  1 root wheel      22 Jan  2 14:49 libsqlite3.0.dylib ->
libsqlite3.0.8.6.dylib
        -rw-r--r--  1 root wheel 1125904 Jan  2 14:49 libsqlite3.a
        lrwxr-xr-x  1 root wheel      22 Jan  2 14:49 libsqlite3.dylib ->
libsqlite3.0.8.6.dylib
        -rwxr-xr-x  1 root wheel     853 Jan  2 14:49 libsqlite3.la
        -rw-r--r--  1 root wheel  736376 Jan  2 14:51 libtclsqlite3.0.8.6.dylib
        -rw-r--r--  1 root wheel  736376 Jan  2 14:51 libtclsqlite3.0.dylib
        -rw-r--r--  1 root wheel 1178120 Jan  2 14:51 libtclsqlite3.a
        -rw-r--r--  1 root wheel  736376 Jan  2 14:51 libtclsqlite3.dylib
        -rw-r--r--  1 root wheel     942 Jan  2 14:51 libtclsqlite3.la
        drwxr-xr-x  3 root wheel     102 Jan  2 14:49 pkgconfig/
        
        /usr/local/sqlite/lib/pkgconfig:
        total 4
        drwxr-xr-x  3 root wheel 102 Jan  2 14:49 ./
        drwxr-xr-x 13 root wheel 442 Jan  2 14:51 ../
        -rw-r--r--  1 root wheel 275 Jan  2 14:49 sqlite3.pc

% which sqlite3
        /usr/local/sqlite/bin/sqlite3
% sqlite3 -version
        3.3.8

% make testfixture
% ./testfixture ../sqlite-3.3.8/test/autovacuum_ioerr2.test
        ...
        Thread-specific data deallocated properly
        0 errors out of 1087 tests
        Failures on these tests:
%

!! finally !!

now, to check 'make fulltest', with,

% chown -R snowcrash /projects/b1
% chown -R snowcrash /projects/sqlite-3.3.8
% sudo -u snowcrash make fulltest

and see if this 'holds'.

this will take awhile, i think ... will report back.

thanks.

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to