# # spec file for package sqlite3 (Version 3.5.7) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine # package are under the same license as the package itself. # # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild Name: sqlite3 BuildRequires: gcc-c++ readline-devel tcl-devel %if %{?suse_version:1}%{?!suse_version:0} BuildRequires: update-desktop-files %endif License: Public Domain, Freeware Group: Productivity/Databases/Servers Summary: Embeddable SQL Database Engine Url: http://www.sqlite.org/ Version: 3.5.7 Release: 10 Requires: libsqlite3-0 = %version Provides: sqlite = %version Obsoletes: sqlite < %version Source0: http://www.sqlite.org/sqlite-%version.tar.bz2 Source1: sqlite.desktop Source2: sqlite-check_fsync_dir.c Patch0: sqlite.diff Patch2: sqlite-test-notime.diff Patch8: disable-check.diff Patch9: sqlite3-tcl85.diff Patch10: sqlite-strcasecmp.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description SQLite is a C library that implements an embeddable SQL database engine. Programs that link with the SQLite library can have SQL database access without running a separate RDBMS process. SQLite is not a client library used to connect to a big database server. SQLite is a server and the SQLite library reads and writes directly to and from the database files on disk. SQLite can be used via the sqlite command line tool or via any application that supports the Qt database plug-ins. Authors: -------- D. Richard Hipp %package -n libsqlite3-0 License: Public Domain, Freeware Summary: Shared libraries for the Embeddable SQL Database Engine Group: Development/Libraries/C and C++ %description -n libsqlite3-0 This package contains the shared libraries for the Embeddable SQL Database Engine. SQLite is a C library that implements an embeddable SQL database engine. Programs that link with the SQLite library can have SQL database access without running a separate RDBMS process. SQLite is not a client library used to connect to a big database server. SQLite is a server and the SQLite library reads and writes directly to and from the database files on disk. SQLite can be used via the sqlite command line tool or via any application that supports the Qt database plug-ins. Authors: -------- D. Richard Hipp %package tcl License: Public Domain, Freeware Group: Development/Libraries/Tcl Summary: Tcl binding for SQLite Provides: sqlite-tcl = %version Obsoletes: sqlite-tcl < %version %description tcl SQLite is a C library that implements an embeddable SQL database engine. Programs that link with the SQLite library can have SQL database access without running a separate RDBMS process. This package contains an extension for the Tcl programming language to access SQLite databases. Authors: -------- D. Richard Hipp %package devel License: Public Domain, Freeware Group: Development/Libraries/C and C++ Summary: Embeddable SQL Database Engine Requires: %name = %version glibc-devel Provides: sqlite-devel = %version Obsoletes: sqlite-devel < %version %description devel SQLite is a C library that implements an embeddable SQL database engine. Programs that link with the SQLite library can have SQL database access without running a separate RDBMS process. SQLite is not a client library used to connect to a big database server; SQLite is the server. The SQLite library reads and writes directly to and from the database files on disk. SQLite can be used via the sqlite command-line tool or via any application which supports the Qt database plug-ins. Authors: -------- D. Richard Hipp %prep %setup -q -n sqlite-%version %patch0 %patch2 %patch8 %patch9 # does not work due to our ulimits in our build system rm test/bigfile.test %build autoreconf -f -i export CFLAGS="$RPM_OPT_FLAGS -DNDEBUG=1 -O3 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_SERVER=1" export CXXFLAGS="$CFLAGS" mkdir build cd build cp ../VERSION . ../configure \ --prefix=/usr \ --libdir=%_libdir \ --mandir=%_mandir \ --enable-threadsafe \ --disable-releasemode \ --enable-tempstore=yes \ --sysconfdir=/etc/ make # # check if fsync() on directories works with the current file # system, and skip the test suite if it doesn't. # As of this writing, fsync() fails on directories inside tmpfs. # gcc %optflags -o check_fsync_dir %SOURCE2 if false && ./check_fsync_dir; then make fulltest fi %install cd build make install \ DESTDIR="$RPM_BUILD_ROOT" \ TCLLIBDIR=%tcl_archdir echo 'package ifneeded sqlite3 %version [list load $dir/libtclsqlite3.so sqlite3]' \ > %buildroot%tcl_archdir/sqlite3/pkgIndex.tcl install -d $RPM_BUILD_ROOT%_mandir/man1/ install -m 0644 ../sqlite3.1 $RPM_BUILD_ROOT%_mandir/man1/ %clean rm -rf $RPM_BUILD_ROOT %post -n libsqlite3-0 -p /sbin/ldconfig %postun -n libsqlite3-0 -p /sbin/ldconfig %files %defattr(-,root,root) /usr/bin/sqlite3 %_mandir/man1/* %files -n libsqlite3-0 %defattr(-,root,root) %_libdir/libsqlite*.so.* %files tcl %defattr(-,root,root) %tcl_archdir %files devel %defattr(-,root,root) /usr/include/*.h %_libdir/libsqlite*.a %_libdir/libsqlite*.la %_libdir/libsqlite*.so %_libdir/pkgconfig/sqlite3.pc %changelog * Wed May 07 2008 coolo@suse.de - provide sqlite- * Tue Apr 29 2008 cthiel@suse.de - obsolete sqlite- via baselibs.conf * Mon Apr 28 2008 max@suse.de - Avoid an unresolved symbol in the Tcl extension (sqlite-strcasecmp.patch). - Use upstream fixes for test failures caused by Tcl 8.5 * Sun Apr 27 2008 coolo@suse.de - disable the test suite, it adds 5 hours to the build time * Thu Apr 10 2008 max@suse.de - update to version 3.5.7. Changes include: * Fix a bug in the register allocation for compound selects. * Do not apply the flattening optimization if the outer query is an aggregate and the inner query contains ORDER BY. * Accept "Z" as the zulu timezone at the end of date strings. * Fix a bug in the LIKE optimizer that occurs when the last character before the first wildcard is an upper-case "Z" * Added the "bitvec" object for keeping track of which pages have been journalled. Improves speed and reduces memory consumption, especially for large database files. * Add the new sqlite3_result_error_code() API. * Convert the underlying virtual machine to be a register-based machine rather than a stack-based machine. The only user-visible change is in the output of EXPLAIN. - Fix build for Tcl 8.5. - Don't --enable-releasemode anymore, because it recently started putting the package version into the library name (libsqlite3-3.5.7.so.0.8.6) * Thu Apr 10 2008 ro@suse.de - added baselibs.conf file to build xxbit packages for multilib support * Thu Apr 03 2008 max@suse.de - Fixed the tcl subpackage and adapted it to the new Tcl file system layout. * Thu Jan 10 2008 lrupp@suse.de - split of libsqlite3-0 package (Shared Library Packaging Policy) - rename sqlite to sqlite3 * Tue Dec 18 2007 adrian@suse.de - update to version 3.5.4 From official changelog: * Fix a critical bug in UPDATE or DELETE that occurs when an OR REPLACE clause or a trigger causes rows in the same table to be deleted as side effects. (See ticket #2832.) The most likely result of this bug is a segmentation fault, though database corruption is a possibility. * Bring the processing of ORDER BY into compliance with the SQL standard for case where a result alias and a table column name are in conflict. Correct behavior is to prefer the result alias. Older versions of SQLite incorrectly picked the table column. (See ticket #2822.) * The VACUUM command preserves the setting of the legacy_file_format pragma. (Ticket #2804.) * Productize and officially support the group_concat() SQL function. * Better optimization of some IN operator expressions. * Add the ability to change the auto_vacuum status of a database by setting the auto_vaccum pragma and VACUUMing the database. * Prefix search in FTS3 is much more efficient. * Relax the SQL statement length restriction in the CLI so that the ".dump" output of databases with very large BLOBs and strings can be played back to recreate the database. * Other small bug fixes and optimizations. * Fri Nov 30 2007 adrian@suse.de - update to version 3.5.3 * documentation has been removed from tar ball. From official changelog: * Fix a long-standing bug in INSERT INTO ... SELECT ... statements where the SELECT is compound. * Fix a long-standing bug in RAISE(IGNORE) as used in BEFORE triggers. * Fixed the operator precedence for the ~ operator. * Allow collating sequence names to be quoted. * Modify the TCL interface to use sqlite3_prepare_v2(). * Fix multiple bugs that can occur following a malloc() failure. * sqlite3_step() returns SQLITE_MISUSE instead of crashing when called with a NULL parameter. * FTS3 now uses the SQLite memory allocator exclusively. The FTS3 amalgamation can now be appended to the SQLite amalgamation to generate a super-amalgamation containing both. * The DISTINCT keyword now will sometimes use an INDEX if an appropriate index is available and the optimizer thinks its use might be advantageous. * Mon Nov 05 2007 adrian@suse.de - update to version 3.5.2 From the official changelog: * The OS interface layer and the memory allocation subsystems in SQLite have been reimplemented. The published API is largely unchanged but the (unpublished) OS interface has been modified extensively. Applications that implement their own OS interface will require modification. * This is a large change. Approximately 10%% of the source code was modified. * Fix a long-standing bug that might cause database corruption if a disk-full error occurs in the middle of a transaction and that transaction is not rolled back. * Thu Oct 18 2007 sbrabec@suse.cz - Build with column metadata support, as required by libgda. * Mon Aug 13 2007 adrian@suse.de - call %%post/%%pre ldconfig again (#298292) * Mon Aug 06 2007 adrian@suse.de - update to version 3.4.1 * Bugfix release to solve database corruption * remove static fts2 plugin patch, it is broken and get not used * Changelog from the release: - Fix a bug in VACUUM that can lead to database corruption if two processes are connected to the database at the same time and one VACUUMs then the other then modifies the database. - The expression "+column" is now considered the same as "column" when computing the collating sequence to use on the expression. - In the TCL language interface, "@variable" instead of "$variable" always binds as a blob. - Added PRAGMA freelist_count for determining the current size of the freelist. - The PRAGMA auto_vacuum=incremental setting is now persistent. - Add FD_CLOEXEC to all open files under unix. - Fix a bug in the min()/max() optimization when applied to descending indices. - Make sure the TCL language interface works correctly with 64-bit integers on 64-bit machines. - Allow the value -9223372036854775808 as an integer literal in SQL statements. - Add the capability of "hidden" columns in virtual tables. - Use the macro SQLITE_PRIVATE (defaulting to "static") on all internal functions in the amalgamation. - Add pluggable tokenizers and ICU tokenization support to FTS2 - Other minor bug fixes and documentation enhancements * Tue Jun 26 2007 adrian@suse.de - update to version 3.4.0 WARNING: this version might cause incompatibilities due to new limits. These limits could be raised again, if we run in trouble, but let's follow upstream for now. * Two important bugfixes for database corruption. * New features like incremental BLOB I/O and incremental vacuum * Fri Apr 27 2007 adrian@suse.de - update to version 3.3.17 * bug fix in forwards-compatibility logic of SQLite * Thu Apr 19 2007 adrian@suse.de - update to version 3.3.16 * speed improvements were not enabled in .15 by accident * Mon Apr 16 2007 adrian@suse.de - update to version 3.3.15 * speed improvements * new exclusive locking mode - switch to -O3 now - general spec file clean up * Mon Feb 19 2007 adrian@suse.de - update to version 3.3.13 from the changelog: * Add a "fragmentation" measurement in the output of sqlite3_analyzer. * Add the COLLATE operator used to explicitly set the collating sequence used by an expression. This feature is considered experimental pending additional testing. * Allow up to 64 tables in a join - the old limit was 32. * Added two new experimental functions: randomBlob() and hex(). Their intended use is to facilitate generating UUIDs. * Fix a problem where PRAGMA count_changes was causing incorrect results for updates on tables with triggers * Fix a bug in the ORDER BY clause optimizer for joins where the left-most table in the join is constrained by a UNIQUE index. * Fixed a bug in the "copy" method of the TCL interface. * Bug fixes in fts1 and fts2 modules. * Mon Feb 12 2007 dmueller@suse.de - fix library dependencies after loadable extensions were enabled * Tue Feb 06 2007 dmacvicar@suse.de - Enable support for loadable extensions * Mon Feb 05 2007 max@suse.de - Enable the fts1 and fts2 modules and link them in statically. * Wed Jan 31 2007 adrian@suse.de - update to version 3.3.12 * further bugfixes, esp. for bugs introduced in 3.3.9 * Thu Jan 11 2007 adrian@suse.de - update to version 3.3.10 * pure bug fix release * Tue Jan 09 2007 adrian@suse.de - update to version 3.3.9 * fixes database corruption "under obscure and difficult to reproduce circumstances". * new sqlite3_prepare v2() api (new header file) * Mon Nov 06 2006 adrian@suse.de - fix permissions of installed man page * Mon Oct 16 2006 adrian@suse.de - update to version 3.3.8 * full-text search using the FTS1 module * minor bufixes - two testcases got disabled, because they fail. We need to review the reason for that before shipping this package, but this package builds again at least. * Wed Aug 23 2006 adrian@suse.de - update to version 3.3.7 * support for loadable extensions and virtual tables * minor bugfixes * Thu May 18 2006 adrian@suse.de - update to version 3.3.5 Version 3.3 adds support for CHECK constraints, DESC indices, separate REAL and INTEGER column affinities, a new OS interface layer design, and many other changes. The file format for version 3.3 has changed slightly. SQLite 3.3 will read and write legacy databases created with any prior version of SQLite 3. But databases created by version 3.3.0 will not be readable or writable by earlier versions of the SQLite * Wed Mar 22 2006 schwab@suse.de - Fix another 64bit bug. * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires * Mon Jan 09 2006 adrian@suse.de - disable "same thread check". It is only needed with broken thread implementations and will be similar offered in sqlite 3.3 * Wed Jan 04 2006 adrian@suse.de - update to version 3.2.8 * bugfix release * Tue Jan 03 2006 rguenthe@suse.de - Correct 64bit issues causing x86_64 testsuite failures. * Fri Dec 02 2005 jw@suse.de - VERSION parsing back to normal. 3002007 looks better than 3000000 * Mon Oct 24 2005 adrian@suse.de - fix build for 64bit * Mon Oct 17 2005 adrian@suse.de - update to version 3.2.7 * needed an additional fix for conflict.test * Tue Aug 30 2005 jw@suse.de - disabled a timing test. This fixes failed builds on heavy loaded autobuild hosts. * Wed Jun 29 2005 jw@suse.de - configure script fixed: VERSION was misparsed. * Mon Jun 27 2005 max@suse.de - Skip the testsuite if the underlaying file system doesn't support fsync() on directories (e.g. tmpfs). * Tue Jun 21 2005 max@suse.de - Update to version 3.2.2. - Improved installation of the Tcl package. * Thu Apr 21 2005 max@suse.de - Disabling of certain tests for certain architectures does not seem to be needed anymore. * Wed Apr 20 2005 ro@suse.de - get patch to even apply * Tue Apr 19 2005 max@suse.de - Added a subpackage for the Tcl extension. * Fri Apr 08 2005 adrian@suse.de - update to version 3.2.1 * Tue Mar 29 2005 adrian@suse.de - update to version 3.2.0 * Mon Feb 28 2005 adrian@suse.de - update to version 3.1.3 * a minor bugfix for VACUUM databases * to remain compatible with future 3.2 databases - obsoletes a testsuite workaround * Fri Feb 18 2005 adrian@suse.de - fix library versioning * Wed Feb 16 2005 adrian@suse.de - update to version 3.1.2 * contains a criticial bugsfix, which can corrupted the database when using the VACUUM command * Mon Nov 29 2004 adrian@suse.de - update to version 3.0.8 * Mon Nov 15 2004 adrian@suse.de - add susehelp desktop file for developer documentation * Mon Nov 15 2004 adrian@suse.de - fix libdir path in .la file for lib64 systems * Mon Oct 25 2004 adrian@suse.de - enable utf-8 support * Fri Jul 30 2004 adrian@suse.de - run "make alltest" * Thu Jul 29 2004 adrian@suse.de - update to version 2.8.15 - disable wrong tcl test case on 64bit * Mon Jun 21 2004 adrian@suse.de - update to version 2.8.14 * Wed Jun 02 2004 adrian@suse.de - package sqlite man page * Fri Apr 23 2004 adrian@suse.de - update to version 2.8.13 * Mon Mar 01 2004 adrian@suse.de - disable format3 test case for ppc for now * Sun Feb 29 2004 adrian@suse.de - update to version 2.8.12 - add usual 64bit fixes - add -fno-strict-aliasing - disable bigfile test case due to limits in autobuild * Thu Jan 22 2004 adrian@suse.de - update to version 2.8.11 * one testcase fails on ppc, our ppc people will have a look * Mon Dec 29 2003 adrian@suse.de - update to version 2.8.8 * several 64 bit fixes have been merged, some more are needed now - ignore some not exact matching float test cases on s390* - enable threading support * Tue Dec 02 2003 adrian@suse.de - initial package of version 2.8.6 - a number of 64bit fixes - some test cases got disabled, because they use an invalid Tcl Interface for 64bit