The default gcc toolchain on freebsd has been bumped to 4.8 so the build
scripts that hardcoded the gcc binary name are getting confused.
The new version of SQLite seems to be getting confused between editline
and readline.
The code to handle in-memory db exceptions is hideous and unreliable,
given the fact that SQLite does not expose much in terms of getting the
current value and the methods to check the compile time options can
themselves be disabled by a compile=time option in SQLite.
There really isn't much use for in-memory databases and if someone
really needs it, they can always choose to run in normal mode, so just
remove the extra code.
'mode=memory' query parameter is only supported from sqlite3 version
3.8.0 onwards. Make sure to check for the version before continuing with
the 'ATTACH' statement.
Turning off some of the tests, since they fail on the Travis CI setup
which uses sqlite version 3.6.0.
Prevent the users from attaching an external db file which they may not
have ownership of.
The current authorizer method is hooked in only when the LNAVSECURE
variable is set. This is done deliberately, since the method will be
called on every sqlite query and I did not want to incur a performance
hit.
If the scope of this authorizer increases, we should consider passing in
the lnav_data as pUserData and do the checks inside the authorizer
itself.
Read the value of the 'LNAVSECURE' environment variable upfront and
store it in the lnav_data structure. When this variable is set prior to
the binary execution, the following commands are disabled:
* 'open'
* 'pipe-to'
* 'pipe-line-to'
* 'write-*-to'
This is a proposed fix for tstack/lnav#305.