FYI, I CC'ed the bug for the record:

Kali Kaneko:
> On Tue, Apr 07, 2015 at 02:53:59PM -0400, Hans-Christoph Steiner
>
>> Unfortunately, I don't think it is going to be as simple as just
>> removing the patch that changes VERSION to the SQLCipher version.  Some 
>> places need
>> the SQLite version and other places need the SQLCipher version
> 
> I've been combing thru he sources, and in the source code for SQLCipher
> I don't seem to be able to find any place that's using the sqlcipher
> version for anything. crypto.h has a CYPHER_VERSION, but that's
> hardcoded, and sqlcipher.h doesn't seem to refer to any version string.
> 
> The only checks for the SQLITE_VERSION_NUMBER that I see, outside of the
> test suite, seem to be in the extensions (fts and rtree):
> 
> #if SQLITE_VERSION_NUMBER>=3008002
> 
> But this is expecting the sqlite version and not the sqlcipher one.
> 
> hans, do you remember which parts of the code (or the packaging) were
> expecting the SQLCipher version?

Here's what I found, its not especially conclusive.  In Makefile.in, the value
of VERSION is used to generate sqlite3.h:

sqlite3.h:      $(TOP)/src/sqlite.h.in $(TOP)/manifest.uuid $(TOP)/VERSION
        $(TCLSH_CMD) $(TOP)/tool/mksqlite3h.tcl $(TOP) >sqlite3.h


in configure.ac, the value in the file VERSION is put into Makefile variables
VERSION and VERSION_NUMBER:

VERSION=[`cat $srcdir/VERSION | sed 's/^\([0-9]*\.*[0-9]*\).*/\1/'`]
AC_MSG_NOTICE(Version set to $VERSION)
AC_SUBST(VERSION)
RELEASE=`cat $srcdir/VERSION`
AC_MSG_NOTICE(Release set to $RELEASE)
AC_SUBST(RELEASE)
VERSION_NUMBER=[`cat $srcdir/VERSION \
                           | sed 's/[^0-9]/ /g' \
                | awk '{printf "%d%03d%03d",$1,$2,$3}'`]
AC_MSG_NOTICE(Version number set to $VERSION_NUMBER)
AC_SUBST(VERSION_NUMBER)


in tool/mksqlite3h.tcl, it is parsed into zVersion and nVersion, which then
does replacements in src/sqlite.h.in:

set in [open $TOP/VERSION]
set zVersion [string trim [read $in]]
close $in
set nVersion [eval format "%d%03d%03d" [split $zVersion .]]

...

    regsub -- --VERS--           $line $zVersion line
    regsub -- --VERSION-NUMBER-- $line $nVersion line

But it seems that it might be that all those machinations end up with really
only SQLITE_VERSION_NUMBER being set in a way that we have to think about.

.hc



Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to