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(a)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(a)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(a)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 ---