tane/apps/app_seeds/lib
vjrj e41ec9872b fix(db): load bundled SQLCipher on Linux desktop (stop startup segfault)
The Linux app segfaulted when opening the encrypted DB. Root cause: on Linux we
overrode package:sqlite3 to the SYSTEM libsqlcipher.so, but sqlcipher_flutter_libs
statically links its own SQLCipher into libsqlcipher_flutter_libs_plugin.so and
exports the sqlite3_* symbols globally. Two SQLite/SQLCipher builds loaded in one
process → symbol clash → segfault at sqlite3_open (before PRAGMA key).

Fix: _openLinuxCipher() now prefers the ABI-matched bundled plugin .so
(libsqlcipher_flutter_libs_plugin.so), falling back to the system lib only if the
plugin isn't present (e.g. host test/CI layouts). Android is unaffected (uses the
bundled Android lib as before).

Verified: Linux desktop build runs without crashing; full suite 37/37, and the
"no plaintext at rest" test now runs (not skipped) on the dev host with system
libsqlcipher, confirming real encryption.
2026-07-07 23:45:09 +02:00
..
data feat(block1): photo thumbnails in the inventory list 2026-07-07 22:03:36 +02:00
db fix(db): load bundled SQLCipher on Linux desktop (stop startup segfault) 2026-07-07 23:45:09 +02:00
di feat(block1): bundled species catalog + autocomplete link 2026-07-07 21:21:59 +02:00
i18n feat(block1): germination tests per lot with derived rate 2026-07-07 21:59:34 +02:00
security feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
state feat(block1): germination tests per lot with derived rate 2026-07-07 21:59:34 +02:00
ui feat(block1): photo thumbnails in the inventory list 2026-07-07 22:03:36 +02:00
app.dart feat(block1): bundled species catalog + autocomplete link 2026-07-07 21:21:59 +02:00
main.dart feat(block1): bundled species catalog + autocomplete link 2026-07-07 21:21:59 +02:00