# # # rename "sqlite" # to "Attic/sqlite" # # patch "Makefile.am" # from [c850e4c62a84dd138a435f3c78c5bdabebcd6231] # to [2e17fe530d13e085ddb086ae555c2862c44a11d8] # # patch "configure.ac" # from [5dfd3b40a0493ea8f3e28d4b89886fbae91b8d6e] # to [7de4a4102fa40ee4b292c54cceaf2bb3521b542b] # # patch "database.cc" # from [d24ce5995a6d6f859afd4779cb567ae8267d6c0c] # to [a0c0cb98bc2bf3901bcd7a40ef9e9babfeb06e0a] # # patch "m4/sqlite.m4" # from [bcd8e50df9bfa103226129f5ee0f517826809bae] # to [6ca0fd9b9205604d17d8ba36b741d284ad769b64] # # patch "schema_migration.cc" # from [3949185f804a860857b4e59056e5f46c3c2ab349] # to [902ae090438daba762cc6b8af3aedc5dfa6586e3] # ============================================================ --- Makefile.am c850e4c62a84dd138a435f3c78c5bdabebcd6231 +++ Makefile.am 2e17fe530d13e085ddb086ae555c2862c44a11d8 @@ -111,31 +111,6 @@ BOOST_SANDBOX_SOURCES = \ boost/circular_buffer_fwd.hpp \ boost/circular_buffer.hpp -SQLITE_SOURCES = \ - sqlite/alter.c sqlite/attach.c sqlite/auth.c sqlite/btree.c \ - sqlite/build.c sqlite/date.c sqlite/delete.c sqlite/expr.c \ - sqlite/func.c sqlite/hash.c sqlite/insert.c \ - sqlite/legacy.c sqlite/main.c sqlite/opcodes.c \ - sqlite/os.c sqlite/os_unix.c sqlite/os_win.c sqlite/os_os2.c \ - sqlite/pager.c sqlite/parse.c sqlite/pragma.c sqlite/printf.c \ - sqlite/random.c sqlite/select.c \ - sqlite/table.c sqlite/tokenize.c \ - sqlite/trigger.c sqlite/update.c sqlite/utf.c \ - sqlite/util.c sqlite/vacuum.c \ - sqlite/vdbe.c sqlite/vdbeapi.c sqlite/vdbeaux.c \ - sqlite/vdbemem.c sqlite/where.c \ - sqlite/prepare.c sqlite/callback.c \ - sqlite/analyze.c sqlite/vdbefifo.c \ - sqlite/complete.c sqlite/malloc.c sqlite/vdbeblob.c \ - sqlite/loadext.c sqlite/vtab.c \ - \ - sqlite/btree.h sqlite/hash.h sqlite/opcodes.h sqlite/os.h \ - sqlite/os_common.h sqlite/os_os2.h \ - sqlite/parse.h sqlite/sqlite3.h sqlite/sqlite3ext.h \ - sqlite/sqliteInt.h \ - sqlite/vdbe.h sqlite/vdbeInt.h \ - sqlite/pager.h sqlite/btreeInt.h sqlite/sqliteLimit.h - IDNA_SOURCES = \ idna/gunibreak.h idna/gunidecomp.h idna/idna.h idna/nfkc.c \ idna/punycode.c idna/rfc3454.c idna/stringprep.h idna/version.c \ @@ -218,8 +193,7 @@ lib3rdparty_a_SOURCES = $(BOOST_SANDBOX_ libplatform_a_SOURCES = platform.hh tester-plaf.hh lib3rdparty_a_SOURCES = $(BOOST_SANDBOX_SOURCES) \ $(IDNA_SOURCES) \ - $(NETXX_SOURCES) \ - $(SQLITE_SOURCES) + $(NETXX_SOURCES) htmldir = $(datadir)/doc/monotone html_DATA = monotone.html @@ -254,7 +228,8 @@ AM_CPPFLAGS = SUFFIXES = .gch AM_CPPFLAGS = -AM_CFLAGS = $(AM_CPPFLAGS) -DTEMP_STORE=1 -DNDEBUG -DSQLITE_OMIT_CURSOR -DSQLITE_OMIT_LOAD_EXTENSION -DTHREADSAFE=0 -DSQLITE_THREAD_OVERRIDE_LOCK=-1 $(SQLITE_CPPFLAGS) +# is/was NDEBUG here just for sqlite? +AM_CFLAGS = $(AM_CPPFLAGS) -DNDEBUG AM_CXXFLAGS = $(AM_CPPFLAGS) AM_LDFLAGS = @@ -267,20 +242,20 @@ mtn_LDADD = libplatform.a lib3rdparty.a mtn_CFLAGS = $(AM_CFLAGS) $(MTN_CFLAGS) mtn_CXXFLAGS = $(AM_CXXFLAGS) $(PCH_FLAGS) $(MTN_CXXFLAGS) mtn_LDADD = libplatform.a lib3rdparty.a $(BOOSTLIBS) $(LIBICONV) $(LIBINTL) \ - $(PCRE_LIBS) $(BOTAN_LIBS) $(LUA_LIBS) + $(PCRE_LIBS) $(BOTAN_LIBS) $(LUA_LIBS) $(SQLITE_LIBS) unit_tester_LDFLAGS = unit_tester_CPPFLAGS = -DBUILD_UNIT_TESTS -I$(top_srcdir)/lua $(PCRE_FLAGS) $(BOTAN_CPPFLAGS) $(LUA_CFLAGS) unit_tester_CXXFLAGS = $(AM_CXXFLAGS) $(PCH_FLAGS) unit_tester_LDADD += libplatform.a lib3rdparty.a \ $(BOOSTLIBS) $(LIBICONV) $(LIBINTL) $(PCRE_LIBS) \ - $(BOTAN_LIBS) $(LUA_LIBS) + $(BOTAN_LIBS) $(LUA_LIBS) $(SQLITE_LIBS) tester_LDFLAGS = tester_CPPFLAGS = -I$(top_srcdir)/lua $(PCRE_FLAGS) $(BOTAN_CPPFLAGS) $(LUA_CFLAGS) tester_CXXFLAGS = $(AM_CXXFLAGS) tester_LDADD += libplatform.a lib3rdparty.a $(BOOSTLIBS) $(LIBICONV) \ - $(LIBINTL) $(PCRE_LIBS) $(BOTAN_LIBS) $(LUA_LIBS) + $(LIBINTL) $(PCRE_LIBS) $(BOTAN_LIBS) $(LUA_LIBS) $(SQLITE_LIBS) if WIN32_PLATFORM libplatform_a_SOURCES += $(WIN32_PLATFORM_SOURCES) @@ -349,7 +324,7 @@ EXTRA_DIST = $(PDF_FIGURES) $(PNG_FIGURE tester-testsuite.lua $(srcdir)/tester-tests \ unit-testsuite.lua package.m4 package_revision.txt \ package_full_revision_dist.txt $(wildcard $(srcdir)/m4/*.m4) \ - sqlite/keywordhash.h contrib/README contrib/monoprof.sh \ + contrib/README contrib/monoprof.sh \ contrib/monotone-notify.pl contrib/ciabot_monotone.py \ contrib/monotone.el contrib/monotone-nav.el \ contrib/monotone.bash_completion \ ============================================================ --- configure.ac 5dfd3b40a0493ea8f3e28d4b89886fbae91b8d6e +++ configure.ac 7de4a4102fa40ee4b292c54cceaf2bb3521b542b @@ -143,6 +143,7 @@ MTN_FIND_BOTAN MTN_FIND_LUA MTN_FIND_PCRE MTN_FIND_BOTAN +MTN_FIND_SQLITE # check for all things boost-related BOOST_VERSION_CHECK @@ -150,7 +151,6 @@ MTN_NETXX_DEPENDENCIES # more complex library checks MTN_NETXX_DEPENDENCIES -MTN_SQLITE_DEPENDENCIES # allow compiling with different flags/optimisation # for monotone versus libs, useful for testing. ============================================================ --- database.cc d24ce5995a6d6f859afd4779cb567ae8267d6c0c +++ database.cc a0c0cb98bc2bf3901bcd7a40ef9e9babfeb06e0a @@ -28,7 +28,7 @@ #include "lexical_cast.hh" -#include "sqlite/sqlite3.h" +#include #include "app_state.hh" #include "cert.hh" ============================================================ --- m4/sqlite.m4 bcd8e50df9bfa103226129f5ee0f517826809bae +++ m4/sqlite.m4 6ca0fd9b9205604d17d8ba36b741d284ad769b64 @@ -1,31 +1,60 @@ -dnl checks only done because the bundled sqlite needs them. -AC_DEFUN([MTN_SQLITE_DEPENDENCIES], -[SQLITE_CPPFLAGS= +# This is a separate macro primarily to trick autoconf into not looking +# for pkg-config. +AC_DEFUN([MTN_FIND_SQLITE], +[ PKG_PROG_PKG_CONFIG -# sqlite does not read our config.h so we have to shove all this on the -# command line. + # We manually test the variables here because we want them to work + # even if pkg-config isn't installed. The use of + instead of :+ is + # deliberate; the user should be able to tell us that the empty string + # is the correct set of flags. (PKG_CHECK_MODULES gets this wrong!) + if test -n "${SQLITE_CFLAGS+set}" || test -n "${SQLITE_LIBS+set}"; then + found_libsqlite=yes + else + PKG_CHECK_MODULES([SQLITE], [sqlite3], + [found_libsqlite=yes], [found_libsqlite=no]) + fi -AC_SEARCH_LIBS([fdatasync], [rt], - [SQLITE_CPPFLAGS="$SQLITE_CPPFLAGS -DHAVE_FDATASYNC=1"]) + if test $found_libsqlite = no; then + AC_MSG_RESULT([no; guessing]) + AC_CHECK_LIB([sqlite3], [sqlite3_exec], + [SQLITE_LIBS=-lsqlite3], + [SQLITE_LIBS=]) + SQLITE_CFLAGS= + fi -AC_SEARCH_LIBS([usleep], [rt], - [SQLITE_CPPFLAGS="$SQLITE_CPPFLAGS -DHAVE_USLEEP=1"]) + # Wherever we got the settings from, make sure they work. + SQLITE_CFLAGS="`echo :$SQLITE_CFLAGS | sed -e 's/^:@<:@ @:>@*//; s/@<:@ @:>@*$//'`" + SQLITE_LIBS="`echo :$SQLITE_LIBS | sed -e 's/^:@<:@ @:>@*//; s/@<:@ @:>@*$//'`" -AC_CHECK_FUNC([pread], - [AC_CHECK_FUNC([pwrite], - [SQLITE_CPPFLAGS="$SQLITE_CPPFLAGS -DUSE_PREAD=1"])]) + AC_MSG_NOTICE([using sqlite compile flags: "$SQLITE_CFLAGS"]) + AC_MSG_NOTICE([using sqlite link flags: "$SQLITE_LIBS"]) -# Let the user specify whether he wants large file support or not in sqlite. -AC_ARG_ENABLE([large-file], - AS_HELP_STRING( - [--disable-large-file], - [Disable large file support in builtin sqlite] - ), , enable_large_file=yes -) + AC_CACHE_CHECK([whether the sqlite library is usable], ac_cv_lib_sqlite_works, + [save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$LIBS $SQLITE_LIBS" + CFLAGS="$CFLAGS $SQLITE_CFLAGS" + CPPFLAGS="$CFLAGS $SQLITE_CFLAGS" + AC_LINK_IFELSE([AC_LANG_PROGRAM( + [ +extern "C" +{ + #include +} + ], + [ -if test "x$enable_large_file" = "xno"; then - SQLITE_CPPFLAGS="$SQLITE_CPPFLAGS -DSQLITE_DISABLE_LFS" -fi +#if SQLITE_VERSION_NUMBER != 3005009 +#error Sqlite version mismatch +#endif -AC_SUBST(SQLITE_CPPFLAGS) + int v = sqlite3_libversion_number(); + ])], + [ac_cv_lib_sqlite_works=yes], [ac_cv_lib_sqlite_works=no]) + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS"]) + if test $ac_cv_lib_sqlite_works = no; then + AC_MSG_ERROR([Your sqlite library is not usable.]) + fi + ]) ============================================================ --- schema_migration.cc 3949185f804a860857b4e59056e5f46c3c2ab349 +++ schema_migration.cc 902ae090438daba762cc6b8af3aedc5dfa6586e3 @@ -10,7 +10,7 @@ #include "base.hh" #include #include "lexical_cast.hh" -#include "sqlite/sqlite3.h" +#include #include #include "sanity.hh"