[mingw-sqlite: 5/31] update to 3.6.12, to match native and enable rtree, fts3
Kalev Lember
kalev at fedoraproject.org
Tue Mar 6 21:32:24 UTC 2012
commit a95fd8655a852c0a61501d8d1adad52e01800db3
Author: sailer <sailer at fedoraproject.org>
Date: Thu Apr 23 11:39:19 2009 +0000
update to 3.6.12, to match native and enable rtree, fts3
.cvsignore | 1 +
...tch => mingw32-sqlite-3.6.12-no-undefined.patch | 13 +-
mingw32-sqlite.spec | 19 ++-
sources | 2 +-
sqlite-3.6.12-libdl.patch | 11 +
sqlite-3.6.12-memalign.patch | 204 +++++++++++++++++
sqlite-3.6.12-no-sqlite-doc.patch | 12 +
sqlite-3.6.6.2-libdl.patch | 240 --------------------
8 files changed, 251 insertions(+), 251 deletions(-)
---
diff --git a/.cvsignore b/.cvsignore
index a54b4df..07380c4 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1,2 @@
sqlite-3.6.6.2.tar.gz
+sqlite-3.6.12.tar.gz
diff --git a/mingw32-sqlite-3.6.6.2-no-undefined.patch b/mingw32-sqlite-3.6.12-no-undefined.patch
similarity index 61%
rename from mingw32-sqlite-3.6.6.2-no-undefined.patch
rename to mingw32-sqlite-3.6.12-no-undefined.patch
index 3da0b54..211dcd3 100644
--- a/mingw32-sqlite-3.6.6.2-no-undefined.patch
+++ b/mingw32-sqlite-3.6.12-no-undefined.patch
@@ -1,6 +1,6 @@
---- sqlite-3.6.6.2/Makefile.in.orig 2008-12-16 15:43:08.000000000 +0000
-+++ sqlite-3.6.6.2/Makefile.in 2008-12-16 15:43:27.000000000 +0000
-@@ -448,13 +448,14 @@
+--- 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) \
@@ -11,9 +11,10 @@
libtclsqlite3.la: tclsqlite.lo libsqlite3.la
$(LTLINK) -o $@ tclsqlite.lo \
libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \
- -rpath "$(libdir)/sqlite" \
-- -version-info "8:6:8"
-+ -version-info "8:6:8" -no-undefined
+ -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) \
diff --git a/mingw32-sqlite.spec b/mingw32-sqlite.spec
index 9d3755f..4066509 100644
--- a/mingw32-sqlite.spec
+++ b/mingw32-sqlite.spec
@@ -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 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
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 @@ for Windows.
%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 @@ libtoolize --force
# 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 @@ rm -rf $RPM_BUILD_ROOT
%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
diff --git a/sources b/sources
index d80768a..2211e51 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-23cd36188f21d427d45191d317bcbcd5 sqlite-3.6.6.2.tar.gz
+13600865a69a3f54d2ac42a0d6b743db sqlite-3.6.12.tar.gz
diff --git a/sqlite-3.6.12-libdl.patch b/sqlite-3.6.12-libdl.patch
new file mode 100644
index 0000000..4d2c272
--- /dev/null
+++ b/sqlite-3.6.12-libdl.patch
@@ -0,0 +1,11 @@
+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
diff --git a/sqlite-3.6.12-memalign.patch b/sqlite-3.6.12-memalign.patch
new file mode 100644
index 0000000..f58609c
--- /dev/null
+++ b/sqlite-3.6.12-memalign.patch
@@ -0,0 +1,204 @@
+---------------------
+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);
diff --git a/sqlite-3.6.12-no-sqlite-doc.patch b/sqlite-3.6.12-no-sqlite-doc.patch
new file mode 100644
index 0000000..787f1bb
--- /dev/null
+++ b/sqlite-3.6.12-no-sqlite-doc.patch
@@ -0,0 +1,12 @@
+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
More information about the mingw
mailing list