rpms/mingw32-sqlite/devel mingw32-sqlite-3.6.12-no-undefined.patch, NONE, 1.1 sqlite-3.6.12-libdl.patch, NONE, 1.1 sqlite-3.6.12-memalign.patch, NONE, 1.1 sqlite-3.6.12-no-sqlite-doc.patch, NONE, 1.1 .cvsignore, 1.2, 1.3 mingw32-sqlite.spec, 1.3, 1.4 sources, 1.2, 1.3 mingw32-sqlite-3.6.6.2-no-undefined.patch, 1.1, NONE sqlite-3.6.6.2-libdl.patch, 1.1, NONE

Thomas M. Sailer sailer at fedoraproject.org
Thu Apr 23 11:39:49 UTC 2009


Author: sailer

Update of /cvs/pkgs/rpms/mingw32-sqlite/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv11477

Modified Files:
	.cvsignore mingw32-sqlite.spec sources 
Added Files:
	mingw32-sqlite-3.6.12-no-undefined.patch 
	sqlite-3.6.12-libdl.patch sqlite-3.6.12-memalign.patch 
	sqlite-3.6.12-no-sqlite-doc.patch 
Removed Files:
	mingw32-sqlite-3.6.6.2-no-undefined.patch 
	sqlite-3.6.6.2-libdl.patch 
Log Message:
update to 3.6.12, to match native and enable rtree, fts3


mingw32-sqlite-3.6.12-no-undefined.patch:

--- NEW FILE mingw32-sqlite-3.6.12-no-undefined.patch ---
--- sqlite-3.6.12/Makefile.in.orig	2009-03-30 18:37:16.000000000 +0200
+++ sqlite-3.6.12/Makefile.in	2009-04-23 11:16:17.000000000 +0200
@@ -463,14 +463,15 @@
 
 libsqlite3.la:	$(LIBOBJ)
 	$(LTLINK) -o $@ $(LIBOBJ) $(TLIBS) \
-		${ALLOWRELEASE} -rpath "$(libdir)" -version-info "8:6:8"
+		${ALLOWRELEASE} -rpath "$(libdir)" -version-info "8:6:8" \
+		-no-undefined
 
 libtclsqlite3.la:	tclsqlite.lo libsqlite3.la
 	$(LTLINK) -o $@ tclsqlite.lo \
 		libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
 		-rpath "$(TCLLIBDIR)" \
 		-version-info "8:6:8" \
-		-avoid-version
+		-avoid-version -no-undefined
 
 sqlite3$(TEXE):	$(TOP)/src/shell.c libsqlite3.la sqlite3.h
 	$(LTLINK) $(READLINE_FLAGS) \

sqlite-3.6.12-libdl.patch:

--- NEW FILE sqlite-3.6.12-libdl.patch ---
diff -up sqlite-3.6.4/configure.ac.orig sqlite-3.6.4/configure.ac
--- sqlite-3.6.4/configure.ac.orig	2008-11-08 11:37:15.000000000 +0200
+++ sqlite-3.6.4/configure.ac	2008-11-08 11:35:50.000000000 +0200
@@ -606,6 +606,7 @@ AC_ARG_ENABLE(load-extension, AC_HELP_ST
       [use_loadextension=$enableval],[use_loadextension=no])
 if test "${use_loadextension}" = "yes" ; then
   OPT_FEATURE_FLAGS=""
+  AC_SEARCH_LIBS(dlopen, [dl])
 else
   OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1"
 fi

sqlite-3.6.12-memalign.patch:

--- NEW FILE sqlite-3.6.12-memalign.patch ---
---------------------
PatchSet 6171 
Date: 2009/04/05 15:22:09
Author: drh
Branch: HEAD
Tag: (none) 
Branches: 
Log:
Additional code to make sure and to assert that memory allocations have
8-byte alignment.  Ticket #3777.

Members: 
	src/btree.c:1.589->1.590 
	src/memjournal.c:1.10->1.11 
	src/pager.c:1.577->1.578 
	src/sqliteInt.h:1.850->1.851 
	src/vdbeaux.c:1.446->1.447 
	src/vdbemem.c:1.139->1.140 

Index: sqlite/src/btree.c
diff -u sqlite/src/btree.c:1.589 sqlite/src/btree.c:1.590
--- sqlite/src/btree.c:1.589	Thu Apr  2 20:16:59 2009
+++ sqlite/src/btree.c	Sun Apr  5 12:22:09 2009
@@ -5357,13 +5357,13 @@
   }
   szCell = (u16*)&apCell[nMaxCells];
   aCopy[0] = (u8*)&szCell[nMaxCells];
-  assert( ((aCopy[0] - (u8*)0) & 7)==0 ); /* 8-byte alignment required */
+  assert( EIGHT_BYTE_ALIGNMENT(aCopy[0]) );
   for(i=1; i<NB; i++){
     aCopy[i] = &aCopy[i-1][pBt->pageSize+ROUND8(sizeof(MemPage))];
     assert( ((aCopy[i] - (u8*)0) & 7)==0 ); /* 8-byte alignment required */
   }
   aSpace1 = &aCopy[NB-1][pBt->pageSize+ROUND8(sizeof(MemPage))];
-  assert( ((aSpace1 - (u8*)0) & 7)==0 ); /* 8-byte alignment required */
+  assert( EIGHT_BYTE_ALIGNMENT(aSpace1) );
   if( ISAUTOVACUUM ){
     aFrom = &aSpace1[pBt->pageSize];
   }
Index: sqlite/src/memjournal.c
diff -u sqlite/src/memjournal.c:1.10 sqlite/src/memjournal.c:1.11
--- sqlite/src/memjournal.c:1.10	Thu Apr  2 17:22:42 2009
+++ sqlite/src/memjournal.c	Sun Apr  5 12:22:09 2009
@@ -237,6 +237,7 @@
 */
 void sqlite3MemJournalOpen(sqlite3_file *pJfd){
   MemJournal *p = (MemJournal *)pJfd;
+  assert( EIGHT_BYTE_ALIGNMENT(p) );
   memset(p, 0, sqlite3MemJournalSize());
   p->pMethod = &MemJournalMethods;
 }
Index: sqlite/src/pager.c
diff -u sqlite/src/pager.c:1.577 sqlite/src/pager.c:1.578
--- sqlite/src/pager.c:1.577	Sat Apr  4 15:53:48 2009
+++ sqlite/src/pager.c	Sun Apr  5 12:22:09 2009
@@ -3114,9 +3114,9 @@
   ** source file journal.c).
   */
   if( sqlite3JournalSize(pVfs)>sqlite3MemJournalSize() ){
-    journalFileSize = sqlite3JournalSize(pVfs);
+    journalFileSize = ROUND8(sqlite3JournalSize(pVfs));
   }else{
-    journalFileSize = sqlite3MemJournalSize();
+    journalFileSize = ROUND8(sqlite3MemJournalSize());
   }
 
   /* Set the output variable to NULL in case an error occurs. */
@@ -3172,23 +3172,25 @@
   **     Journal file name               (nPathname+8+1 bytes)
   */
   pPtr = (u8 *)sqlite3MallocZero(
-    sizeof(*pPager) +           /* Pager structure */
-    pcacheSize      +           /* PCache object */
-    pVfs->szOsFile  +           /* The main db file */
-    journalFileSize * 2 +       /* The two journal files */ 
-    nPathname + 1 +             /* zFilename */
-    nPathname + 8 + 1           /* zJournal */
+    ROUND8(sizeof(*pPager)) +      /* Pager structure */
+    ROUND8(pcacheSize) +           /* PCache object */
+    ROUND8(pVfs->szOsFile) +       /* The main db file */
+    journalFileSize * 2 +          /* The two journal files */ 
+    nPathname + 1 +                /* zFilename */
+    nPathname + 8 + 1              /* zJournal */
   );
+  assert( EIGHT_BYTE_ALIGNMENT(journalFileSize) );
   if( !pPtr ){
     sqlite3_free(zPathname);
     return SQLITE_NOMEM;
   }
   pPager =              (Pager*)(pPtr);
-  pPager->pPCache =    (PCache*)(pPtr += sizeof(*pPager));
-  pPager->fd =   (sqlite3_file*)(pPtr += pcacheSize);
-  pPager->sjfd = (sqlite3_file*)(pPtr += pVfs->szOsFile);
+  pPager->pPCache =    (PCache*)(pPtr += ROUND8(sizeof(*pPager)));
+  pPager->fd =   (sqlite3_file*)(pPtr += ROUND8(pcacheSize));
+  pPager->sjfd = (sqlite3_file*)(pPtr += ROUND8(pVfs->szOsFile));
   pPager->jfd =  (sqlite3_file*)(pPtr += journalFileSize);
   pPager->zFilename =    (char*)(pPtr += journalFileSize);
+  assert( EIGHT_BYTE_ALIGNMENT(pPager->jfd) );
 
   /* Fill in the Pager.zFilename and Pager.zJournal buffers, if required. */
   if( zPathname ){
Index: sqlite/src/sqliteInt.h
diff -u sqlite/src/sqliteInt.h:1.850 sqlite/src/sqliteInt.h:1.851
--- sqlite/src/sqliteInt.h:1.850	Wed Apr  1 18:03:01 2009
+++ sqlite/src/sqliteInt.h	Sun Apr  5 12:22:09 2009
@@ -456,6 +456,11 @@
 #define ROUNDDOWN8(x) ((x)&~7)
 
 /*
+** Assert that the pointer X is aligned to an 8-byte boundary.
+*/
+#define EIGHT_BYTE_ALIGNMENT(X)   ((((char*)(X) - (char*)0)&7)==0)
+
+/*
 ** An instance of the following structure is used to store the busy-handler
 ** callback for a given sqlite handle. 
 **
Index: sqlite/src/vdbeaux.c
diff -u sqlite/src/vdbeaux.c:1.446 sqlite/src/vdbeaux.c:1.447
--- sqlite/src/vdbeaux.c:1.446	Wed Mar 25 15:43:09 2009
+++ sqlite/src/vdbeaux.c	Sun Apr  5 12:22:09 2009
@@ -1023,6 +1023,7 @@
   u8 *pEnd,            /* Pointer to 1 byte past the end of *ppFrom buffer */
   int *pnByte          /* If allocation cannot be made, increment *pnByte */
 ){
+  assert( EIGHT_BYTE_ALIGNMENT(*ppFrom) );
   if( (*(void**)pp)==0 ){
     nByte = ROUND8(nByte);
     if( (pEnd - *ppFrom)>=nByte ){
@@ -1096,6 +1097,8 @@
     if( isExplain && nMem<10 ){
       nMem = 10;
     }
+    zCsr += (zCsr - (u8*)0)&7;
+    assert( EIGHT_BYTE_ALIGNMENT(zCsr) );
 
     do {
       memset(zCsr, 0, zEnd-zCsr);
Index: sqlite/src/vdbemem.c
diff -u sqlite/src/vdbemem.c:1.139 sqlite/src/vdbemem.c:1.140
--- sqlite/src/vdbemem.c:1.139	Sun Mar 29 15:12:10 2009
+++ sqlite/src/vdbemem.c	Sun Apr  5 12:22:09 2009
@@ -209,6 +209,7 @@
   assert( !(fg&(MEM_Str|MEM_Blob)) );
   assert( fg&(MEM_Int|MEM_Real) );
   assert( (pMem->flags&MEM_RowSet)==0 );
+  assert( EIGHT_BYTE_ALIGNMENT(pMem) );
 
 
   if( sqlite3VdbeMemGrow(pMem, nByte, 0) ){
@@ -345,6 +346,7 @@
 i64 sqlite3VdbeIntValue(Mem *pMem){
   int flags;
   assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) );
+  assert( EIGHT_BYTE_ALIGNMENT(pMem) );
   flags = pMem->flags;
   if( flags & MEM_Int ){
     return pMem->u.i;
@@ -373,6 +375,7 @@
 */
 double sqlite3VdbeRealValue(Mem *pMem){
   assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) );
+  assert( EIGHT_BYTE_ALIGNMENT(pMem) );
   if( pMem->flags & MEM_Real ){
     return pMem->r;
   }else if( pMem->flags & MEM_Int ){
@@ -403,6 +406,7 @@
   assert( pMem->flags & MEM_Real );
   assert( (pMem->flags & MEM_RowSet)==0 );
   assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) );
+  assert( EIGHT_BYTE_ALIGNMENT(pMem) );
 
   pMem->u.i = doubleToInt64(pMem->r);
   if( pMem->r==(double)pMem->u.i ){
@@ -416,6 +420,8 @@
 int sqlite3VdbeMemIntegerify(Mem *pMem){
   assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) );
   assert( (pMem->flags & MEM_RowSet)==0 );
+  assert( EIGHT_BYTE_ALIGNMENT(pMem) );
+
   pMem->u.i = sqlite3VdbeIntValue(pMem);
   MemSetTypeFlag(pMem, MEM_Int);
   return SQLITE_OK;
@@ -427,6 +433,8 @@
 */
 int sqlite3VdbeMemRealify(Mem *pMem){
   assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) );
+  assert( EIGHT_BYTE_ALIGNMENT(pMem) );
+
   pMem->r = sqlite3VdbeRealValue(pMem);
   MemSetTypeFlag(pMem, MEM_Real);
   return SQLITE_OK;
diff -u sqlite/src/vdbeaux.c:1.447 sqlite/src/vdbeaux.c:1.448
--- sqlite/src/vdbeaux.c:1.447	Sun Apr  5 12:22:09 2009
+++ sqlite/src/vdbeaux.c	Mon Apr  6 11:11:43 2009
@@ -1099,6 +1099,7 @@
     }
     zCsr += (zCsr - (u8*)0)&7;
     assert( EIGHT_BYTE_ALIGNMENT(zCsr) );
+    if( zEnd<zCsr ) zEnd = zCsr;
 
     do {
       memset(zCsr, 0, zEnd-zCsr);

sqlite-3.6.12-no-sqlite-doc.patch:

--- NEW FILE sqlite-3.6.12-no-sqlite-doc.patch ---
diff -up sqlite-3.6.12/sqlite3.1.no-sqlite-doc sqlite-3.6.12/sqlite3.1
--- sqlite-3.6.12/sqlite3.1.no-sqlite-doc	2009-04-03 12:37:35.000000000 +0300
+++ sqlite-3.6.12/sqlite3.1	2009-04-03 12:37:44.000000000 +0300
@@ -221,8 +221,6 @@ o All other command line options are pro
 
 .SH SEE ALSO
 http://www.sqlite.org/
-.br
-The sqlite-doc package
 .SH AUTHOR
 This manual page was originally written by Andreas Rottmann
 <rotty at debian.org>, for the Debian GNU/Linux system (but may be used


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/mingw32-sqlite/devel/.cvsignore,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- .cvsignore	21 Dec 2008 11:15:27 -0000	1.2
+++ .cvsignore	23 Apr 2009 11:39:18 -0000	1.3
@@ -1 +1,2 @@
 sqlite-3.6.6.2.tar.gz
+sqlite-3.6.12.tar.gz


Index: mingw32-sqlite.spec
===================================================================
RCS file: /cvs/pkgs/rpms/mingw32-sqlite/devel/mingw32-sqlite.spec,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- mingw32-sqlite.spec	26 Feb 2009 01:26:08 -0000	1.3
+++ mingw32-sqlite.spec	23 Apr 2009 11:39:18 -0000	1.4
@@ -5,8 +5,8 @@
 %define __find_provides %{_mingw32_findprovides}
 
 Name:           mingw32-sqlite
-Version:        3.6.6.2
-Release:        3%{?dist}
+Version:        3.6.12
+Release:        1%{?dist}
 Summary:        MinGW Windows port of sqlite embeddable SQL database engine
 
 License:        Public Domain
@@ -18,11 +18,14 @@
 BuildArch:      noarch
 
 # Patches from Fedora native package.
-Patch1:         sqlite-3.6.6.2-libdl.patch
+Patch1:         sqlite-3.6.12-libdl.patch
+# Avoid insecure sprintf(), use a system path for lempar.c, patch from Debian 
 Patch2:         sqlite-3.6.6.2-lemon-snprintf.patch
+Patch3:         sqlite-3.6.12-no-sqlite-doc.patch
+Patch4:         sqlite-3.6.12-memalign.patch
 
 # Patches for MinGW port.
-Patch1000:      mingw32-sqlite-3.6.6.2-no-undefined.patch
+Patch1000:      mingw32-sqlite-3.6.12-no-undefined.patch
 
 BuildRequires:  mingw32-filesystem >= 49
 BuildRequires:  mingw32-gcc
@@ -55,6 +58,8 @@
 %setup -q -n sqlite-%{version}
 %patch1 -p1 -b .libdl
 %patch2 -p1 -b .lemon-sprintf
+%patch3 -p1 -b .no-sqlite-doc
+%patch4 -p1 -b .align
 %patch1000 -p1
 
 # Ships with an old/broken version of libtool which cannot create
@@ -72,6 +77,8 @@
 # the extension via this export.
 #   - RWMJ 2008-09-30
 export config_TARGET_EXEEXT=.exe
+# add compile flags to enable rtree, fts3
+export MINGW32_CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_ENABLE_FTS3=3 -DSQLITE_ENABLE_RTREE=1 -fno-strict-aliasing"
 
 %{_mingw32_configure}
 make
@@ -104,6 +111,10 @@
 
 
 %changelog
+* Thu Apr 23 2009 Thomas Sailer <t.sailer at alumni.ee.ethz.ch> - 3.6.12-1
+- update to 3.6.12 to match native
+- enable rtree, fts3
+
 * Wed Feb 25 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.6.6.2-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/mingw32-sqlite/devel/sources,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- sources	21 Dec 2008 11:15:27 -0000	1.2
+++ sources	23 Apr 2009 11:39:18 -0000	1.3
@@ -1 +1 @@
-23cd36188f21d427d45191d317bcbcd5  sqlite-3.6.6.2.tar.gz
+13600865a69a3f54d2ac42a0d6b743db  sqlite-3.6.12.tar.gz


--- mingw32-sqlite-3.6.6.2-no-undefined.patch DELETED ---


--- sqlite-3.6.6.2-libdl.patch DELETED ---




More information about the fedora-extras-commits mailing list