Fossil backed by LumoSQL
LumoSQL is an SQL database library, intended to be identical in purpose and use to SQLite. This directory builds and tests Fossil and libfossil against LumoSQL. Fossil is a demanding SQLite application developed together with SQLite, so Fossil often exercises the latest SQLite features (sometimes even unreleased features.)
Fossil is the main application shipped with LumoSQL as an integration target.
In this directory you will find:
- A
Makefileso users can build Fossil against LumoSQL (which is just libsqlite3 from the point of view of Fossil) If you do not have Fossil installed, the Makefile usesgitfrom the GitHub mirror. The resulting fossil binary will work exactly as a normal fossil binary, only usually faster. The Makefile autodetects the version of SQLite that the current Fossil wants to build against, and builds a corresponding version of LumoSQL. - Manual Fossil and libfossil build notes for configurations not handled by the Makefile such as encryption.
- correctness and speed testing suites for Fossil and libfossil. These are to ensure that LumoSQL isn't either breaking Fossil or making it less useful.
- Brief notes for building LumoSQL/Fossil on NixOS, which is a little fussy
Quick Fossil build from scratch
Install the normal LumoSQL build dependencies from the top-level README. For the Fossil build you also need Git and OpenSSL development headers.
Debian/Ubuntu: sudo apt install git pkg-config libssl-dev .
Fedora/RHEL: sudo dnf install git pkgconf openssl-devel .
If fossil clone below fails with "426 Upgrade Required", use the commented-out git clone alternative instead. ```sh fossil clone https://lumosql.org/src/lumosql
git clone https://codeberg.org/lumosql/lumosql
after that we build:
sh cd lumosql make doctor # this will pick up any remaining dependency problems; iterate until fixed cd examples/fossil make ```
The Fossil binary is: lumosql/examples/fossil/build/fossil/fossil .
Speed and correctness tests
Run the Fossil-specific correctness test with the built binary:
FOSSIL="$PWD/build/fossil/fossil" \
CLONE_URL=https://lumosql.org/src/lumosql \
sh test/correctness-fossil-lmdb.sh
Run the Fossil-specific speed test, comparing the built binary to the native fossil in PATH:
NATIVE="$(command -v fossil)" \
CANDIDATES="lmdbv1:$PWD/build/fossil/fossil:" \
sh test/speed-fossil.sh